mirror of
https://github.com/HbmMods/Hbm-s-Nuclear-Tech-GIT.git
synced 2026-01-25 10:32:49 +00:00
Compare commits
No commits in common. "master" and "1.0.27X3654" have entirely different histories.
master
...
1.0.27X365
@ -1,16 +0,0 @@
|
||||
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
|
||||
@ -1,12 +0,0 @@
|
||||
---
|
||||
name: Issue template (mandatory)
|
||||
about: Template for mod-related issues
|
||||
title: ''
|
||||
labels: ''
|
||||
assignees: ''
|
||||
|
||||
---
|
||||
|
||||
### Describe the bug
|
||||
|
||||
Please describe the issue in as much detail as possible. Also mention the version of the mod you're running, if it's not the newest. In the case of a crash, please attach a crash log.
|
||||
62
.github/workflows/build.yml
vendored
62
.github/workflows/build.yml
vendored
@ -1,62 +0,0 @@
|
||||
# This workflow uses actions that are not certified by GitHub.
|
||||
# They are provided by a third-party and are governed by
|
||||
# separate terms of service, privacy policy, and support
|
||||
# documentation.
|
||||
# This workflow will build a Java project with Gradle and cache/restore any dependencies to improve the workflow execution time
|
||||
# For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-java-with-gradle
|
||||
|
||||
# Yes this is a mostly untouched Github actions template
|
||||
|
||||
|
||||
name: Java CI with Gradle
|
||||
|
||||
on:
|
||||
schedule:
|
||||
- cron: "0 0 * * *"
|
||||
workflow_dispatch:
|
||||
|
||||
jobs:
|
||||
build:
|
||||
runs-on: ubuntu-latest
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
- name: Set up JDK 8
|
||||
uses: actions/setup-java@v4
|
||||
with:
|
||||
java-version: '8'
|
||||
distribution: 'temurin' # Temurin because it's default :P
|
||||
|
||||
# Calculate days since 10/10/10
|
||||
- name: Calculate days since 10/10/10
|
||||
id: calculate_days
|
||||
run: |
|
||||
start_date="2010-10-10"
|
||||
current_date=$(date +%Y-%m-%d)
|
||||
days_since=$(( ($(date -d "$current_date" +%s) - $(date -d "$start_date" +%s)) / 86400 ))
|
||||
echo "days=$days_since" >> $GITHUB_OUTPUT
|
||||
|
||||
# Update version files with proper sed syntax
|
||||
- name: Update version files
|
||||
run: |
|
||||
days=${{ steps.calculate_days.outputs.days }}
|
||||
# Use proper sed syntax for Linux runners
|
||||
sed -i "s/public static final String VERSION = \".*\";/public static final String VERSION = \"1.0.27 BETA ($days)\";/" src/main/java/com/hbm/lib/RefStrings.java
|
||||
sed -i "s/mod_build_number=.*/mod_build_number=$days/" gradle.properties
|
||||
|
||||
# Configure Gradle for optimal use in GitHub Actions, including caching of downloaded dependencies.
|
||||
# See: https://github.com/gradle/actions/blob/main/setup-gradle/README.md
|
||||
- name: Setup Gradle
|
||||
uses: gradle/actions/setup-gradle@af1da67850ed9a4cedd57bfd976089dd991e2582 # v4.0.0
|
||||
|
||||
- name: Build with Gradle Wrapper
|
||||
run: ./gradlew build
|
||||
|
||||
- name: Upload a Build Artifact
|
||||
uses: actions/upload-artifact@v4.6.0
|
||||
with:
|
||||
# A file, directory or wildcard pattern that describes what to upload
|
||||
path: ./build/libs
|
||||
36
.gitignore
vendored
36
.gitignore
vendored
@ -1,31 +1,11 @@
|
||||
# eclipse
|
||||
/eclipse
|
||||
/bin
|
||||
/*.launch
|
||||
/.settings
|
||||
/.metadata
|
||||
/.gradle/
|
||||
/bin/
|
||||
/build/
|
||||
/eclipse/
|
||||
/lib/
|
||||
/.git/
|
||||
/.gradle/
|
||||
/.settings/
|
||||
/.classpath
|
||||
/.project
|
||||
|
||||
# idea
|
||||
/out
|
||||
/*.ipr
|
||||
/*.iws
|
||||
/*.iml
|
||||
/.idea
|
||||
|
||||
# gradle
|
||||
/build
|
||||
/.gradle
|
||||
|
||||
# vscode
|
||||
/.vscode
|
||||
|
||||
# other
|
||||
/run
|
||||
|
||||
# CurseForge configuration
|
||||
/curseforge.properties
|
||||
|
||||
# Changelog backup
|
||||
/changelog.bak
|
||||
|
||||
@ -1,43 +0,0 @@
|
||||
# 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)
|
||||
* updating the changelog (you're guaranteed to cause a merge conflict with that)
|
||||
* any use of `I18n`, use `I18nUtil` instead
|
||||
|
||||
## 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.
|
||||
|
||||
## No refactor PRs
|
||||
Your refactors suck ass and usually something ends up breaking.
|
||||
|
||||
## 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.
|
||||
165
LICENSE.LESSER
165
LICENSE.LESSER
@ -1,165 +0,0 @@
|
||||
GNU LESSER GENERAL PUBLIC LICENSE
|
||||
Version 3, 29 June 2007
|
||||
|
||||
Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/>
|
||||
Everyone is permitted to copy and distribute verbatim copies
|
||||
of this license document, but changing it is not allowed.
|
||||
|
||||
|
||||
This version of the GNU Lesser General Public License incorporates
|
||||
the terms and conditions of version 3 of the GNU General Public
|
||||
License, supplemented by the additional permissions listed below.
|
||||
|
||||
0. Additional Definitions.
|
||||
|
||||
As used herein, "this License" refers to version 3 of the GNU Lesser
|
||||
General Public License, and the "GNU GPL" refers to version 3 of the GNU
|
||||
General Public License.
|
||||
|
||||
"The Library" refers to a covered work governed by this License,
|
||||
other than an Application or a Combined Work as defined below.
|
||||
|
||||
An "Application" is any work that makes use of an interface provided
|
||||
by the Library, but which is not otherwise based on the Library.
|
||||
Defining a subclass of a class defined by the Library is deemed a mode
|
||||
of using an interface provided by the Library.
|
||||
|
||||
A "Combined Work" is a work produced by combining or linking an
|
||||
Application with the Library. The particular version of the Library
|
||||
with which the Combined Work was made is also called the "Linked
|
||||
Version".
|
||||
|
||||
The "Minimal Corresponding Source" for a Combined Work means the
|
||||
Corresponding Source for the Combined Work, excluding any source code
|
||||
for portions of the Combined Work that, considered in isolation, are
|
||||
based on the Application, and not on the Linked Version.
|
||||
|
||||
The "Corresponding Application Code" for a Combined Work means the
|
||||
object code and/or source code for the Application, including any data
|
||||
and utility programs needed for reproducing the Combined Work from the
|
||||
Application, but excluding the System Libraries of the Combined Work.
|
||||
|
||||
1. Exception to Section 3 of the GNU GPL.
|
||||
|
||||
You may convey a covered work under sections 3 and 4 of this License
|
||||
without being bound by section 3 of the GNU GPL.
|
||||
|
||||
2. Conveying Modified Versions.
|
||||
|
||||
If you modify a copy of the Library, and, in your modifications, a
|
||||
facility refers to a function or data to be supplied by an Application
|
||||
that uses the facility (other than as an argument passed when the
|
||||
facility is invoked), then you may convey a copy of the modified
|
||||
version:
|
||||
|
||||
a) under this License, provided that you make a good faith effort to
|
||||
ensure that, in the event an Application does not supply the
|
||||
function or data, the facility still operates, and performs
|
||||
whatever part of its purpose remains meaningful, or
|
||||
|
||||
b) under the GNU GPL, with none of the additional permissions of
|
||||
this License applicable to that copy.
|
||||
|
||||
3. Object Code Incorporating Material from Library Header Files.
|
||||
|
||||
The object code form of an Application may incorporate material from
|
||||
a header file that is part of the Library. You may convey such object
|
||||
code under terms of your choice, provided that, if the incorporated
|
||||
material is not limited to numerical parameters, data structure
|
||||
layouts and accessors, or small macros, inline functions and templates
|
||||
(ten or fewer lines in length), you do both of the following:
|
||||
|
||||
a) Give prominent notice with each copy of the object code that the
|
||||
Library is used in it and that the Library and its use are
|
||||
covered by this License.
|
||||
|
||||
b) Accompany the object code with a copy of the GNU GPL and this license
|
||||
document.
|
||||
|
||||
4. Combined Works.
|
||||
|
||||
You may convey a Combined Work under terms of your choice that,
|
||||
taken together, effectively do not restrict modification of the
|
||||
portions of the Library contained in the Combined Work and reverse
|
||||
engineering for debugging such modifications, if you also do each of
|
||||
the following:
|
||||
|
||||
a) Give prominent notice with each copy of the Combined Work that
|
||||
the Library is used in it and that the Library and its use are
|
||||
covered by this License.
|
||||
|
||||
b) Accompany the Combined Work with a copy of the GNU GPL and this license
|
||||
document.
|
||||
|
||||
c) For a Combined Work that displays copyright notices during
|
||||
execution, include the copyright notice for the Library among
|
||||
these notices, as well as a reference directing the user to the
|
||||
copies of the GNU GPL and this license document.
|
||||
|
||||
d) Do one of the following:
|
||||
|
||||
0) Convey the Minimal Corresponding Source under the terms of this
|
||||
License, and the Corresponding Application Code in a form
|
||||
suitable for, and under terms that permit, the user to
|
||||
recombine or relink the Application with a modified version of
|
||||
the Linked Version to produce a modified Combined Work, in the
|
||||
manner specified by section 6 of the GNU GPL for conveying
|
||||
Corresponding Source.
|
||||
|
||||
1) Use a suitable shared library mechanism for linking with the
|
||||
Library. A suitable mechanism is one that (a) uses at run time
|
||||
a copy of the Library already present on the user's computer
|
||||
system, and (b) will operate properly with a modified version
|
||||
of the Library that is interface-compatible with the Linked
|
||||
Version.
|
||||
|
||||
e) Provide Installation Information, but only if you would otherwise
|
||||
be required to provide such information under section 6 of the
|
||||
GNU GPL, and only to the extent that such information is
|
||||
necessary to install and execute a modified version of the
|
||||
Combined Work produced by recombining or relinking the
|
||||
Application with a modified version of the Linked Version. (If
|
||||
you use option 4d0, the Installation Information must accompany
|
||||
the Minimal Corresponding Source and Corresponding Application
|
||||
Code. If you use option 4d1, you must provide the Installation
|
||||
Information in the manner specified by section 6 of the GNU GPL
|
||||
for conveying Corresponding Source.)
|
||||
|
||||
5. Combined Libraries.
|
||||
|
||||
You may place library facilities that are a work based on the
|
||||
Library side by side in a single library together with other library
|
||||
facilities that are not Applications and are not covered by this
|
||||
License, and convey such a combined library under terms of your
|
||||
choice, if you do both of the following:
|
||||
|
||||
a) Accompany the combined library with a copy of the same work based
|
||||
on the Library, uncombined with any other library facilities,
|
||||
conveyed under the terms of this License.
|
||||
|
||||
b) Give prominent notice with the combined library that part of it
|
||||
is a work based on the Library, and explaining where to find the
|
||||
accompanying uncombined form of the same work.
|
||||
|
||||
6. Revised Versions of the GNU Lesser General Public License.
|
||||
|
||||
The Free Software Foundation may publish revised and/or new versions
|
||||
of the GNU Lesser General Public License from time to time. Such new
|
||||
versions will be similar in spirit to the present version, but may
|
||||
differ in detail to address new problems or concerns.
|
||||
|
||||
Each version is given a distinguishing version number. If the
|
||||
Library as you received it specifies that a certain numbered version
|
||||
of the GNU Lesser General Public License "or any later version"
|
||||
applies to it, you have the option of following the terms and
|
||||
conditions either of that published version or of any later version
|
||||
published by the Free Software Foundation. If the Library as you
|
||||
received it does not specify a version number of the GNU Lesser
|
||||
General Public License, you may choose any version of the GNU Lesser
|
||||
General Public License ever published by the Free Software Foundation.
|
||||
|
||||
If the Library as you received it specifies that a proxy can decide
|
||||
whether future versions of the GNU Lesser General Public License shall
|
||||
apply, that proxy's public statement of acceptance of any version is
|
||||
permanent authorization for you to choose that version for the
|
||||
Library.
|
||||
162
README.md
162
README.md
@ -1,144 +1,42 @@
|
||||
# HBM's Nuclear Tech Mod for Minecraft 1.7.10
|
||||
# Hbm-s-Nuclear-Tech-GIT
|
||||
|
||||
[NTM on Modrinth](https://modrinth.com/mod/ntm)
|
||||
https://minecraft.curseforge.com/projects/hbms-nuclear-tech-mod?gameCategorySlug=mc-mods&projectID=235439
|
||||
|
||||
[NTM on CurseForge](https://www.curseforge.com/minecraft/mc-mods/hbms-nuclear-tech-mod)
|
||||
For a 1.12 fork, check this link: https://github.com/Drillgon200/Hbm-s-Nuclear-Tech-GIT/releases
|
||||
|
||||
[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 Community Edition (WarFactory): https://github.com/MisterNorwood/Hbm-s-Nuclear-Tech-CE
|
||||
* NTM Extended Edition (Alcater): https://github.com/Alcatergit/Hbm-s-Nuclear-Tech-GIT/releases
|
||||
* NTM Reloaded: https://github.com/TheOriginalGolem/Hbm-s-Nuclear-Tech-GIT/releases
|
||||
|
||||
For 1.18, try Martin's remake: https://codeberg.org/MartinTheDragon/Nuclear-Tech-Mod-Remake/releases
|
||||
|
||||
## Downloading pre-compiled versions from GitHub
|
||||
|
||||
Simply navigate to "Releases" on the right side of the page, download links for the compiled JAR as well as the corresponding source code are under the "Assets" category below the changelog. Make sure to review all changelogs when updating!
|
||||
|
||||
## Building from source
|
||||
## Installation Instructions
|
||||
|
||||
Tired of waiting until the next version comes out? Here is a tutorial on how to compile the very newest version yourself:
|
||||
Please note that these installation instructions are assuming you're running Microsoft Windows operating system. Linux users should know what to do by looking at the same guide.
|
||||
|
||||
1. Make sure you have JDK8 installed. If not, download it from [adoptium.net](https://adoptium.net/temurin/releases?version=8)
|
||||
2. If you don't have git installed, download&install it from [here](https://git-scm.com/downloads).
|
||||
3. Open up "Git Bash":
|
||||
* Press Windows Button, type "Git Bash" and press ENTER
|
||||
4. Enter the directory where you would like the sources to be (advanced users can use any directory)
|
||||
```bash
|
||||
cd $HOME/Downloads
|
||||
```
|
||||
5. Download the source code:
|
||||
```bash
|
||||
git clone https://github.com/HbmMods/Hbm-s-Nuclear-Tech-GIT.git
|
||||
```
|
||||
4. Enter the source code directory
|
||||
```bash
|
||||
cd Hbm-s-Nuclear-Tech-GIT
|
||||
```
|
||||
5. Build the mod
|
||||
```bash
|
||||
./gradlew build
|
||||
```
|
||||
6. Locate the mod file.
|
||||
1. Open up your file explorer.
|
||||
2. Navigate to the location where you downloaded the sources.
|
||||
* If you exactly followed step 1, it should be `C:/Users/%USER%/Downloads`.
|
||||
3. Enter the downloaded source tree.
|
||||
4. Navigate to `build/libs`.
|
||||
5. Grab the "HBM-NTM-<version>.jar" one.
|
||||
* This is your mod file. You can install it like any other mod by putting it into your mods directory.
|
||||
|
||||
## Contributing
|
||||
If you want to make some changes to the mod, follow this guide:
|
||||
1. Follow steps 1-2 from *Building from source* section
|
||||
2. Create a directory where the repository will reside, using a name that is not "Hbm-s-Nuclear-Tech-GIT"
|
||||
3. Download the forge src from [here](https://files.minecraftforge.net/net/minecraftforge/forge/index_1.7.10.html) and extract it into the directory.
|
||||
4. Download the source code:
|
||||
* Using Git Bash, enter wherever your directory is located:
|
||||
```bash
|
||||
cd $HOME/Downloads
|
||||
1. Download minecraft forge 1.7.10 src
|
||||
2. Unpack it somewhere
|
||||
3. Download the source and insert it into the same folder. This will overwrite a couple of files, for example build.gradle
|
||||
4. Run `gradlew setupDecompWorkspace` on windows or `./gradlew setupDecompWorkspace` on linux (remember: do not take the name of root in vain). Running this command on a blank forge workspace will yield errors, so it's important you insert the mod's source in step 3. The source has corrected versions of guild.gradle and the gradle wrapper, if done correctly it should run just fine.
|
||||
5. The `build.gradle` file will reference these following files:
|
||||
```
|
||||
* Download the source code:
|
||||
```bash
|
||||
git clone https://github.com/HbmMods/Hbm-s-Nuclear-Tech-GIT.git
|
||||
```
|
||||
* Move or copy every file within the new folder into your directory, making sure to overwrite any files.
|
||||
* Feel free to delete the remaining folder and rename your directory (such as "Hbm-s-Nuclear-Tech-GIT")
|
||||
5. Enter the source directory
|
||||
```bash
|
||||
cd Hbm-s-Nuclear-Tech-GIT
|
||||
compile files('lib/CodeChickenCore-1.7.10-1.0.4.29-dev.jar')
|
||||
compile files('lib/CodeChickenLib-1.7.10-1.1.3.140-dev.jar')
|
||||
compile files('lib/NotEnoughItems-1.7.10-1.0.3.74-dev.jar')
|
||||
```
|
||||
6. Setup forge decompilation workspace
|
||||
```bash
|
||||
./gradlew setupDecompWorkspace
|
||||
```
|
||||
### Necessary for Eclipse users
|
||||
7. Generate eclipse files
|
||||
```bash
|
||||
./gradlew eclipse
|
||||
```
|
||||
8. Switch to the **eclipse** folder inside your directory as a workspace.
|
||||
9. If necessary, make sure that Eclipse is using the JDK8.
|
||||
* On Linux, enter Windows>Preferences>Java>Installed JREs.
|
||||
* Click search to navigate to /usr/lib/jvm and open it. Select the Java 8 JDK (e.g., java-8-openjdk).
|
||||
* Afterwards, enter Execution Environment, select JavaSE-1.8, and select the jre listed as a **[perfect match]**
|
||||
* On Windows, you may need to set your JAVA_HOME.
|
||||
* Search for Environment Variables and click Edit the System Environment Variables.
|
||||
* Click Environment Variables. Click new under System Variables.
|
||||
* Enter **JAVA_HOME** under Variable Name and enter the path to your JDK 8 under Variable Value (e.g., C:\Program-Files\Java\jdk1.8.0_102).
|
||||
* In Eclipse, now enter Windows>Preferences>Java>Installed JREs.
|
||||
* 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!
|
||||
which means you need to do one of the following things:
|
||||
1) Find these exact versions of the dependencies, download them and put them into a folder called `libs` in your project's root folder. You can download a zip containing all files here: https://bit.ly/3fBxMq0
|
||||
2) Find other versions, change the `build.gradle` file to reflect this difference and fix any potential errors this could cause (unlikely but not impossible)
|
||||
3) Remove these dependencies from `build.gradle` along with all the API code. Note that this will break NEI-integration.
|
||||
7. Open up the CMD in the root directory and run `gradlew build` on windows or `./gradlew build` on linux
|
||||
8. Head over to `build/libs` and get the jar (named modid.jar)
|
||||
9. Open the jar file with an archieve manager of your choice and insert the mod's asset folder into the jar's main directory
|
||||
|
||||
## 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.
|
||||
If you want to do some changes in the code yourself, start here after 6. and continue with 7. once you are done:
|
||||
1) Get the IDE of your choice and prepare the workspace (for eclipse, it's `gradlew eclipse` or `./gradlew eclipse`, then use the eclipse folder as workspace directory in eclipse)
|
||||
2) Meddle with the code, you can always test the code in the IDE (eclipse has a convenient green play button)
|
||||
3) Save changes, close the IDE and continue with 7. of the previous list
|
||||
|
||||
## 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.
|
||||
## Installation Instructions for a non-standard Workspace
|
||||
|
||||
### 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`.
|
||||
|
||||
### Custom world provider
|
||||
A world provider is a piece of code that minecraft can load to determine certain aspects of how the world should be handled, like light levels, sky color, day/night cycle, etc. In order for the Tom impact effects to work, NTM employs such a world provider, although this is known to cause issues with Hardcore Darkness. The world provider can be disabled with the config option `1.32_enableImpactWorldProvider`.
|
||||
|
||||
### Stat re-registering
|
||||
An often overlooked aspect of Minecraft is its stats, the game keeps track of how many of an item were crafted, placed, broken, etc. By default, Minecraft can only handle vanilla items, modded items would not show up in the stats window. Forge does little to fix this, and since NTM has to keep track of certain things (such as the use of an acidizer for spawning Mask Man) it will run its own code which re-registers all stats for all modded items. In the event that re-registering causes issues, or another mod already does this better already, this behavior can be disabled with the config option `1.33_enableStatReRegistering`.
|
||||
|
||||
### 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`.
|
||||
I cannot offer any help on compiling the mod in a GregTech-workspace as I never managed to get it to work myself, here's a rough guide on how it might be possible:
|
||||
1. Prepare the workspace
|
||||
2. Slap this mod's `src` into the project's root directory
|
||||
3. Pray
|
||||
|
||||
# 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.
|
||||
|
||||
This software is licensed under the GNU 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. You win this round, Stallman. The full license can be found in the `LICENSE` file.
|
||||
|
||||
215
build.gradle
215
build.gradle
@ -1,189 +1,56 @@
|
||||
import org.gradle.plugins.ide.eclipse.model.internal.FileReferenceFactory
|
||||
|
||||
import java.nio.file.Files
|
||||
import java.nio.file.Paths
|
||||
import java.nio.file.StandardCopyOption
|
||||
|
||||
buildscript {
|
||||
repositories {
|
||||
maven { url = 'https://maven.ntmr.dev/proxy/' }
|
||||
maven { url = 'https://maven.minecraftforge.net/' }
|
||||
maven { url = 'https://plugins.gradle.org/m2' }
|
||||
mavenCentral()
|
||||
}
|
||||
dependencies {
|
||||
classpath ('com.anatawa12.forge:ForgeGradle:1.2-1.0.+') {changing = true}
|
||||
}
|
||||
repositories {
|
||||
mavenCentral()
|
||||
maven {
|
||||
name = "forge"
|
||||
url = "https://files.minecraftforge.net/maven"
|
||||
}
|
||||
maven {
|
||||
name = "sonatype"
|
||||
url = "https://oss.sonatype.org/content/repositories/snapshots/"
|
||||
}
|
||||
maven {
|
||||
url = "https://repo1.maven.org/maven2/"
|
||||
}
|
||||
}
|
||||
dependencies {
|
||||
classpath 'net.minecraftforge.gradle:ForgeGradle:1.2-SNAPSHOT'
|
||||
}
|
||||
}
|
||||
|
||||
apply plugin: 'forge'
|
||||
apply plugin: 'curseforge'
|
||||
|
||||
|
||||
if(Files.exists(Paths.get("curseforge.properties"))) {
|
||||
// Load CurseForge configuration
|
||||
ext.cfprops = parseConfig(file("curseforge.properties"))
|
||||
}
|
||||
|
||||
def version_name = version = mod_version
|
||||
if(!mod_build_number.isEmpty()) {
|
||||
version_name = mod_version + "_X" + mod_build_number
|
||||
version = "[${version_name}]"
|
||||
}
|
||||
group = "com.hbm" // http://maven.apache.org/guides/mini/guide-naming-conventions.html
|
||||
archivesBaseName = "HBM-NTM"
|
||||
compileJava.options.encoding = 'UTF-8'
|
||||
|
||||
sourceCompatibility = targetCompatibility = compileJava.sourceCompatibility = compileJava.targetCompatibility = '1.8'
|
||||
version = "1.0"
|
||||
group= "com.yourname.modid" // http://maven.apache.org/guides/mini/guide-naming-conventions.html
|
||||
archivesBaseName = "modid"
|
||||
|
||||
minecraft {
|
||||
version = "1.7.10-10.13.4.1614-1.7.10"
|
||||
runDir = "eclipse"
|
||||
}
|
||||
|
||||
// A little hack to fix codechicken's crazy maven structure (at least in 1.7.10)
|
||||
eclipse.classpath.file.whenMerged { cp ->
|
||||
// Find all codechicken source jars
|
||||
def srcent = cp.entries.findAll { entry -> entry.path.contains("codechicken") && entry.path.endsWith("-src.jar") }
|
||||
|
||||
// Remove them from classpath
|
||||
cp.entries.removeAll srcent
|
||||
|
||||
// Map the source entries to their dev counterparts based on basename
|
||||
Map<String, File> srcmap = new HashMap<String, File>()
|
||||
srcent.forEach { entry ->
|
||||
def file = new File(entry.path)
|
||||
srcmap.put(file.getName().replace("-src.jar", "-dev.jar"), file)
|
||||
}
|
||||
|
||||
// Create file reference factory
|
||||
def fileref = new FileReferenceFactory()
|
||||
|
||||
// Find all codechicken development jars
|
||||
cp.entries.findAll { entry -> entry.path.contains("codechicken") && entry.path.endsWith("-dev.jar") }.forEach { entry ->
|
||||
File srcmapping = new File(entry.path) // Initialize the srcmapping from the dev jar path
|
||||
srcmapping = srcmap.get(srcmapping.getName()) // Transform it using the sourcemap
|
||||
entry.sourcePath = fileref.fromFile(srcmapping) // Set the source path
|
||||
}
|
||||
}
|
||||
|
||||
repositories {
|
||||
maven {
|
||||
name = 'Blerg'
|
||||
url = 'https://maven.ntmr.dev/proxy/'
|
||||
}
|
||||
maven {
|
||||
name = 'ModMaven'
|
||||
url = 'https://modmaven.dev'
|
||||
}
|
||||
maven {
|
||||
name = "gt"
|
||||
url = "https://gregtech.mechaenetia.com/"
|
||||
}
|
||||
//maven {
|
||||
// name = "CurseForge"
|
||||
// url = "https://minecraft.curseforge.com/api/maven/"
|
||||
//}
|
||||
maven {
|
||||
name = "Jitpack"
|
||||
url = "https://jitpack.io"
|
||||
}
|
||||
maven {
|
||||
name = "CurseMaven"
|
||||
url = "https://cursemaven.com"
|
||||
}
|
||||
maven {
|
||||
name = "OpenComputers"
|
||||
url = "https://maven.cil.li/"
|
||||
}
|
||||
version = "1.7.10-10.13.4.1558-1.7.10"
|
||||
runDir = "eclipse"
|
||||
}
|
||||
|
||||
dependencies {
|
||||
implementation 'codechicken:CodeChickenCore:1.7.10-1.0.4.29:dev'
|
||||
compileOnly 'codechicken:CodeChickenCore:1.7.10-1.0.4.29:src'
|
||||
|
||||
implementation 'codechicken:CodeChickenLib:1.7.10-1.1.3.140:dev'
|
||||
compileOnly 'codechicken:CodeChickenLib:1.7.10-1.1.3.140:src'
|
||||
|
||||
implementation 'codechicken:NotEnoughItems:1.7.10-1.0.3.74:dev'
|
||||
compileOnly 'codechicken:NotEnoughItems:1.7.10-1.0.3.74:src'
|
||||
|
||||
compileOnly "inventorytweaks:InventoryTweaks:1.59-dev:deobf"
|
||||
|
||||
implementation "li.cil.oc:OpenComputers:MC1.7.10-1.5.+:api"
|
||||
|
||||
compileOnly "com.github.GTNewHorizons:Applied-Energistics-2-Unofficial:rv3-beta.56-GTNH:dev"
|
||||
compile files('lib/CodeChickenCore-1.7.10-1.0.4.29-dev.jar')
|
||||
compile files('lib/CodeChickenLib-1.7.10-1.1.3.140-dev.jar')
|
||||
compile files('lib/NotEnoughItems-1.7.10-1.0.3.74-dev.jar')
|
||||
}
|
||||
|
||||
processResources {
|
||||
// this will ensure that this task is redone when the versions change.
|
||||
inputs.property "version", project.version
|
||||
inputs.property "mcversion", project.minecraft.version
|
||||
processResources
|
||||
{
|
||||
// this will ensure that this task is redone when the versions change.
|
||||
inputs.property "version", project.version
|
||||
inputs.property "mcversion", project.minecraft.version
|
||||
|
||||
// replace stuff in mcmod.info, nothing else
|
||||
from(sourceSets.main.resources.srcDirs) {
|
||||
include 'mcmod.info'
|
||||
|
||||
// replace version and mcversion
|
||||
filesMatching('mcmod.info') {
|
||||
// replace version, mcversion and credits
|
||||
expand([
|
||||
version: version_name,
|
||||
credits: project.credits
|
||||
])
|
||||
}
|
||||
}
|
||||
|
||||
// copy everything else, thats not the mcmod.info
|
||||
from(sourceSets.main.resources.srcDirs) {
|
||||
exclude 'mcmod.info'
|
||||
}
|
||||
}
|
||||
|
||||
// add AT to meta-inf
|
||||
jar {
|
||||
manifest {
|
||||
attributes 'FMLAT': 'HBM_at.cfg'
|
||||
// replace stuff in mcmod.info, nothing else
|
||||
from(sourceSets.main.resources.srcDirs) {
|
||||
include 'mcmod.info'
|
||||
|
||||
// replace version and mcversion
|
||||
expand 'version':project.version, 'mcversion':project.minecraft.version
|
||||
}
|
||||
|
||||
// copy everything else, thats not the mcmod.info
|
||||
from(sourceSets.main.resources.srcDirs) {
|
||||
exclude 'mcmod.info'
|
||||
}
|
||||
}
|
||||
|
||||
task version {
|
||||
doFirst {
|
||||
println project.version
|
||||
}
|
||||
}
|
||||
|
||||
if(Files.exists(Paths.get("curseforge.properties"))) {
|
||||
curse {
|
||||
apiKey = cfprops.api_key
|
||||
projectId = cfprops.project_id
|
||||
releaseType = "release"
|
||||
|
||||
displayName = "Hbm's Nuclear Tech Mod " + version_name.replace("_", "") + " for Minecraft 1.7.10"
|
||||
|
||||
gameVersions.addAll([
|
||||
"Forge",
|
||||
"Java 8",
|
||||
"Client", "Server"
|
||||
])
|
||||
|
||||
if (Files.exists(Paths.get("changelog"))) {
|
||||
changelog = String.join("\r\n", Files.readAllLines(Paths.get("changelog")))
|
||||
|
||||
// Perform a backup of the changelog and create a new file for next changes
|
||||
doLast {
|
||||
Files.move(Paths.get("changelog"), Paths.get("changelog.bak"), StandardCopyOption.REPLACE_EXISTING)
|
||||
Files.createFile(Paths.get("changelog"))
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Properties file parsing helper
|
||||
static def parseConfig(File config) {
|
||||
config.withReader {
|
||||
def prop = new Properties()
|
||||
prop.load(it)
|
||||
return (new ConfigSlurper().parse(prop))
|
||||
}
|
||||
}
|
||||
|
||||
27
changelog
27
changelog
@ -1,27 +0,0 @@
|
||||
## Changed
|
||||
* Updated russian localization
|
||||
* Rad absorbers now use metadata, existing blocks will be converted automatically
|
||||
* Fissure bombs that go off in crater biomes now create fissures with metadata 1 which creates radioactive volcanic lava
|
||||
* If a crater biome is created on top of an existing fissure, it will keep producing normal volcanic lava
|
||||
* Simplified the battery socket's client packets, reducing CPU load
|
||||
* Muzzle flashes on guns now work in third person mode, including on other players and on NPCs, making it more apparent when you're being fired at
|
||||
* This includes non-standard special effects like the .44 gap flash and the .35-800 ejector plume
|
||||
* Removed the old unused satelite deco blocks, freeing up 6 block IDs
|
||||
* Crucibles that smelt metal with no template set will no place the metal in the recipe stack instead of the waste stack, this should make it easier to get a recipe to work in the many, many cases where people add the template after smelting the material
|
||||
* Battery sockets and the FENSU now support the copy tool
|
||||
* Removed unused displaylist support from the model loader
|
||||
* DLs have been long phased out in favor of VBOs anyway
|
||||
* Rebranded canned horse slime
|
||||
* Now with extra bone marrow
|
||||
* Updated the deuterium tower's model
|
||||
* Increased the energy requirement for welding osmiridium
|
||||
|
||||
# Fixed
|
||||
* Potentially fixed yet another issue regarding crates
|
||||
* Fixed battery socket `fillpercent` RoR function always assuming a max power of 1
|
||||
* Fixed issue where multiblock ports would generate many OpenComputers component entries
|
||||
* Fixed RBMK automatic control rods having incorrect settings when using the copy tool
|
||||
* Fixed battery sockets producing junk debug data in the logs
|
||||
* Fixed an issue where the charging station would crash when trying to charge certain items
|
||||
* Fixed the DFC's core component not dropping its contents when mined
|
||||
* Fixed audio problems with guns
|
||||
@ -1,5 +0,0 @@
|
||||
# CurseForge API token (obtainable from https://legacy.curseforge.com/account/api-tokens)
|
||||
api_key=
|
||||
|
||||
# CurseForge project ID
|
||||
project_id=
|
||||
@ -1,80 +0,0 @@
|
||||
mod_version=1.0.27
|
||||
# Empty build number makes a release type
|
||||
mod_build_number=5572
|
||||
|
||||
credits=HbMinecraft,\
|
||||
\ rodolphito (explosion algorithms),\
|
||||
\ grangerave (explosion algorithms),\
|
||||
\ Hoboy (textures, models),\
|
||||
\ Drillgon200 (effects, models),\
|
||||
\ MartinTheDragon (calculator, chunk-based fallout, bendable cranes, pipe improvements, PWR sounds),\
|
||||
\ Alcater (GUI textures),\
|
||||
\ MellowArpeggiation (new animation system, turbine sounds, sound fixes, industrial lights, conveyor wand, NBT structures, MSU displays),\
|
||||
\ Pheo (textures, various machines, models, weapons),\
|
||||
\ Vær (gas centrifuges, better worldgen, ZIRNOX, CP-1 parts, starter guide, new cyclotron, weapon animations),\
|
||||
\ UFFR (RTG pellets, guns, casings, euphemium capacitor, nucleartech.wiki),\
|
||||
\ LePeep (coilgun model, BDCL QC),\
|
||||
\ Adam29 (liquid petroleum, ethanol, electric furnace),\
|
||||
\ Pvndols (thorium fuel recipe, gas turbine),\
|
||||
\ JamesH2 (blood mechanics, nitric acid, particle emitter),\
|
||||
\ Lazzzycat (structures, mob gear),\
|
||||
\ PastaBaguette (coal horse decal),\
|
||||
\ Doctor17 (russian localization)),\
|
||||
\ Pashtet (russian localization),\
|
||||
\ 7H40 (russian localization),\
|
||||
\ RayzerHan (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),\
|
||||
\ Nycticoraxnightheron (chinese localization),\
|
||||
\ NarekoMichigami810 (chinese localization),\
|
||||
\ Maksymisio (polish localization)\
|
||||
\ el3ctro4ndre (italian localization),\
|
||||
\ Goaty1208 (italian localization),\
|
||||
\ Pu-238 (Tom impact effects),\
|
||||
\ Frooz (gun models),\
|
||||
\ VT-6/24 (models, textures),\
|
||||
\ Nos (models),\
|
||||
\ WushiThe (models),\
|
||||
\ Minecreep (models),\
|
||||
\ ackbarcrowbars (models),\
|
||||
\ haru315 (spiral point algorithm),\
|
||||
\ mlbv (threaded MK5),\
|
||||
\ 70k (textures, glyphid AI, strand caster, electrolyzer changes, cryolite),\
|
||||
\ instantnootles (concept artist),\
|
||||
\ 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, RBMK and packet optimization, crate backpacks),\
|
||||
\ PewPewCricket (OpenComputers integration),\
|
||||
\ kelllllen (OpenComputers integration),\
|
||||
\ sdddddf80 (recipe configs, chinese localization, custom machine holograms),\
|
||||
\ Abel1502 (abilities GUI, optimization, crate upgrade recipes, strand caster improvements, varous tweaks),\
|
||||
\ Darek505 (armor rendering compatibility fix),\
|
||||
\ ranch21 (improved HUD gauges),\
|
||||
\ 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, OpenComputers integration, fluid counter valve),\
|
||||
\ Dash (PA particle serialization fix),\
|
||||
\ archiecarrot123 (armor rendering compatibility fix),\
|
||||
\ mikkerlo (mining laser & builder's jetpack improvements),\
|
||||
\ icomet (refactoring),\
|
||||
\ martemen (project settings),\
|
||||
\ OvermindDL1 (project settings),\
|
||||
\ impbk2002 (project settings)\
|
||||
2
gradle/wrapper/gradle-wrapper.properties
vendored
2
gradle/wrapper/gradle-wrapper.properties
vendored
@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME
|
||||
distributionPath=wrapper/dists
|
||||
zipStoreBase=GRADLE_USER_HOME
|
||||
zipStorePath=wrapper/dists
|
||||
distributionUrl=https\://services.gradle.org/distributions/gradle-4.4.1-bin.zip
|
||||
distributionUrl=https\://services.gradle.org/distributions/gradle-3.0-bin.zip
|
||||
|
||||
@ -1,10 +0,0 @@
|
||||
package api.hbm.block;
|
||||
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraftforge.common.util.ForgeDirection;
|
||||
|
||||
public interface IBlowable { //sloppy toppy
|
||||
|
||||
/** Called server-side when a fan blows on an IBlowable in range every tick. */
|
||||
public void applyFan(World world, int x, int y, int z, ForgeDirection dir, int dist);
|
||||
}
|
||||
@ -1,25 +0,0 @@
|
||||
package api.hbm.block;
|
||||
|
||||
import com.hbm.inventory.material.Mats.MaterialStack;
|
||||
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraftforge.common.util.ForgeDirection;
|
||||
|
||||
public interface ICrucibleAcceptor {
|
||||
|
||||
/*
|
||||
* Pouring: The metal leaves the channel/crucible and usually (but not always) falls down. The additional double coords give a more precise impact location.
|
||||
* Also useful for entities like large crucibles since they are filled from the top.
|
||||
*/
|
||||
//public boolean canAcceptPour(World world, int x, int y, int z, double dX, double dY, double dZ, ForgeDirection side, MaterialStack stack);
|
||||
public boolean canAcceptPartialPour(World world, int x, int y, int z, double dX, double dY, double dZ, ForgeDirection side, MaterialStack stack);
|
||||
public MaterialStack pour(World world, int x, int y, int z, double dX, double dY, double dZ, ForgeDirection side, MaterialStack stack);
|
||||
|
||||
/*
|
||||
* Flowing: The "safe" transfer of metal using a channel or other means, usually from block to block and usually horizontally (but not necessarily).
|
||||
* May also be used for entities like minecarts that could be loaded from the side.
|
||||
*/
|
||||
//public boolean canAcceptFlow(World world, int x, int y, int z, ForgeDirection side, MaterialStack stack);
|
||||
public boolean canAcceptPartialFlow(World world, int x, int y, int z, ForgeDirection side, MaterialStack stack);
|
||||
public MaterialStack flow(World world, int x, int y, int z, ForgeDirection side, MaterialStack stack);
|
||||
}
|
||||
@ -1,43 +0,0 @@
|
||||
package api.hbm.block;
|
||||
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
@Deprecated
|
||||
public interface IDrillInteraction {
|
||||
|
||||
/**
|
||||
* Whether the breaking of the block should be successful. Will destroy the block and not drop anything from clusters.
|
||||
* Should use a random function, otherwise the clusters will stay there indefinitely printing free ore.
|
||||
* @param world
|
||||
* @param x
|
||||
* @param y
|
||||
* @param z
|
||||
* @param drill Might be a tool, tile entity or anything that breaks blocks
|
||||
* @return
|
||||
*/
|
||||
public boolean canBreak(World world, int x, int y, int z, int meta, IMiningDrill drill);
|
||||
|
||||
/**
|
||||
* Returns an itemstack, usually when the block is not destroyed. Laser drills may drop this and mechanical drills will add it to their inventories.
|
||||
* @param world
|
||||
* @param x
|
||||
* @param y
|
||||
* @param z
|
||||
* @param drill Might be a tool, tile entity or anything that breaks blocks
|
||||
* @return
|
||||
*/
|
||||
public ItemStack extractResource(World world, int x, int y, int z, int meta, IMiningDrill drill);
|
||||
|
||||
/**
|
||||
* The hardness that should be considered instead of the hardness value of the block itself
|
||||
* @param world
|
||||
* @param x
|
||||
* @param y
|
||||
* @param z
|
||||
* @param meta
|
||||
* @param drill
|
||||
* @return
|
||||
*/
|
||||
public float getRelativeHardness(World world, int x, int y, int z, int meta, IMiningDrill drill);
|
||||
}
|
||||
@ -1,15 +0,0 @@
|
||||
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);
|
||||
|
||||
}
|
||||
@ -1,10 +0,0 @@
|
||||
package api.hbm.block;
|
||||
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraftforge.common.util.ForgeDirection;
|
||||
|
||||
public interface IInsertable { //uwu
|
||||
|
||||
public boolean insertItem(World world, int x, int y, int z, ForgeDirection dir, ItemStack stack);
|
||||
}
|
||||
@ -1,11 +0,0 @@
|
||||
package api.hbm.block;
|
||||
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraftforge.common.util.ForgeDirection;
|
||||
|
||||
//applicable to blocks and tile entities
|
||||
public interface ILaserable {
|
||||
|
||||
public void addEnergy(World world, int x, int y, int z, long energy, ForgeDirection dir);
|
||||
|
||||
}
|
||||
@ -1,23 +0,0 @@
|
||||
package api.hbm.block;
|
||||
|
||||
@Deprecated
|
||||
public interface IMiningDrill {
|
||||
|
||||
/**
|
||||
* What era the drill belongs to, usually for IDrillInteraction to adjust outputs
|
||||
* @return
|
||||
*/
|
||||
public DrillType getDrillTier();
|
||||
|
||||
/**
|
||||
* An arbitrary "rating" of the drill. Hand powered pre-industrial drills would be <10, the auto mining drill is 50 and the laser miner is 100.
|
||||
* @return
|
||||
*/
|
||||
public int getDrillRating();
|
||||
|
||||
public static enum DrillType {
|
||||
PRIMITIVE,
|
||||
INDUSTRIAL,
|
||||
HITECH
|
||||
}
|
||||
}
|
||||
@ -1,6 +0,0 @@
|
||||
package api.hbm.block;
|
||||
|
||||
public interface IPileNeutronReceiver {
|
||||
|
||||
public void receiveNeutrons(int n);
|
||||
}
|
||||
@ -1,9 +0,0 @@
|
||||
package api.hbm.block;
|
||||
|
||||
import net.minecraft.world.World;
|
||||
|
||||
public interface IRadioControllable {
|
||||
|
||||
public String[] getVariables(World world, int x, int y, int z);
|
||||
public void receiveSignal(World world, int x, int y, int z, String channel, String signal);
|
||||
}
|
||||
@ -1,47 +0,0 @@
|
||||
package api.hbm.block;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
|
||||
import com.hbm.inventory.RecipesCommon.ComparableStack;
|
||||
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
public interface IToolable {
|
||||
|
||||
public boolean onScrew(World world, EntityPlayer player, int x, int y, int z, int side, float fX, float fY, float fZ, ToolType tool);
|
||||
|
||||
public static enum ToolType {
|
||||
SCREWDRIVER,
|
||||
HAND_DRILL,
|
||||
DEFUSER,
|
||||
WRENCH,
|
||||
TORCH,
|
||||
BOLT;
|
||||
|
||||
public List<ItemStack> stacksForDisplay = new ArrayList();
|
||||
private static HashMap<ComparableStack, ToolType> map = new HashMap();
|
||||
|
||||
public void register(ItemStack stack) {
|
||||
stacksForDisplay.add(stack);
|
||||
}
|
||||
|
||||
public static ToolType getType(ItemStack stack) {
|
||||
|
||||
if(!map.isEmpty()) {
|
||||
return map.get(new ComparableStack(stack));
|
||||
}
|
||||
|
||||
for(ToolType type : ToolType.values()) {
|
||||
for(ItemStack tool : type.stacksForDisplay) {
|
||||
map.put(new ComparableStack(tool), type);
|
||||
}
|
||||
}
|
||||
|
||||
return map.get(new ComparableStack(stack));
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1,12 +0,0 @@
|
||||
package api.hbm.conveyor;
|
||||
|
||||
import net.minecraft.util.Vec3;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
public interface IConveyorBelt {
|
||||
|
||||
/** Returns true if the item should stay on the conveyor, false if the item should drop off */
|
||||
public boolean canItemStay(World world, int x, int y, int z, Vec3 itemPos);
|
||||
public Vec3 getTravelLocation(World world, int x, int y, int z, Vec3 itemPos, double speed);
|
||||
public Vec3 getClosestSnappingPosition(World world, int x, int y, int z, Vec3 itemPos);
|
||||
}
|
||||
@ -1,8 +0,0 @@
|
||||
package api.hbm.conveyor;
|
||||
|
||||
import net.minecraft.item.ItemStack;
|
||||
|
||||
public interface IConveyorItem {
|
||||
|
||||
public ItemStack getItemStack();
|
||||
}
|
||||
@ -1,8 +0,0 @@
|
||||
package api.hbm.conveyor;
|
||||
|
||||
import net.minecraft.item.ItemStack;
|
||||
|
||||
public interface IConveyorPackage {
|
||||
|
||||
public ItemStack[] getItemStacks();
|
||||
}
|
||||
@ -1,23 +0,0 @@
|
||||
package api.hbm.conveyor;
|
||||
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraftforge.common.util.ForgeDirection;
|
||||
|
||||
public interface IEnterableBlock {
|
||||
|
||||
/**
|
||||
* Returns true of the moving item can enter from the given side. When this happens, the IConveyorItem will call onEnter and despawn
|
||||
* @param world
|
||||
* @param x
|
||||
* @param y
|
||||
* @param z
|
||||
* @param dir
|
||||
* @param entity
|
||||
* @return
|
||||
*/
|
||||
public boolean canItemEnter(World world, int x, int y, int z, ForgeDirection dir, IConveyorItem entity);
|
||||
public void onItemEnter(World world, int x, int y, int z, ForgeDirection dir, IConveyorItem entity);
|
||||
|
||||
public boolean canPackageEnter(World world, int x, int y, int z, ForgeDirection dir, IConveyorPackage entity);
|
||||
public void onPackageEnter(World world, int x, int y, int z, ForgeDirection dir, IConveyorPackage entity);
|
||||
}
|
||||
14
src/main/java/api/hbm/energy/IBatteryItem.java
Normal file
14
src/main/java/api/hbm/energy/IBatteryItem.java
Normal file
@ -0,0 +1,14 @@
|
||||
package api.hbm.energy;
|
||||
|
||||
import net.minecraft.item.ItemStack;
|
||||
|
||||
public interface IBatteryItem {
|
||||
|
||||
public void chargeBattery(ItemStack stack, long i);
|
||||
public void setCharge(ItemStack stack, long i);
|
||||
public void dischargeBattery(ItemStack stack, long i);
|
||||
public long getCharge(ItemStack stack);
|
||||
public long getMaxCharge();
|
||||
public long getChargeRate();
|
||||
public long getDischargeRate();
|
||||
}
|
||||
5
src/main/java/api/hbm/energy/IEnergyConsumer.java
Normal file
5
src/main/java/api/hbm/energy/IEnergyConsumer.java
Normal file
@ -0,0 +1,5 @@
|
||||
package api.hbm.energy;
|
||||
|
||||
public interface IEnergyConsumer {
|
||||
/// WIP ///
|
||||
}
|
||||
5
src/main/java/api/hbm/energy/IEnergySource.java
Normal file
5
src/main/java/api/hbm/energy/IEnergySource.java
Normal file
@ -0,0 +1,5 @@
|
||||
package api.hbm.energy;
|
||||
|
||||
public interface IEnergySource {
|
||||
/// WIP ///
|
||||
}
|
||||
@ -1,43 +0,0 @@
|
||||
package api.hbm.energymk2;
|
||||
|
||||
import net.minecraft.item.Item;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
|
||||
public interface IBatteryItem {
|
||||
|
||||
public void chargeBattery(ItemStack stack, long i);
|
||||
public void setCharge(ItemStack stack, long i);
|
||||
public void dischargeBattery(ItemStack stack, long i);
|
||||
public long getCharge(ItemStack stack);
|
||||
public long getMaxCharge(ItemStack stack);
|
||||
public long getChargeRate(ItemStack stack);
|
||||
public long getDischargeRate(ItemStack stack);
|
||||
|
||||
/** Returns a string for the NBT tag name of the long storing power */
|
||||
public default String getChargeTagName() {
|
||||
return "charge";
|
||||
}
|
||||
|
||||
/** Returns a string for the NBT tag name of the long storing power */
|
||||
public static String getChargeTagName(ItemStack stack) {
|
||||
return ((IBatteryItem) stack.getItem()).getChargeTagName();
|
||||
}
|
||||
|
||||
/** Returns an empty battery stack from the passed ItemStack, the original won't be modified */
|
||||
public static ItemStack emptyBattery(ItemStack stack) {
|
||||
if(stack != null && stack.getItem() instanceof IBatteryItem) {
|
||||
String keyName = getChargeTagName(stack);
|
||||
ItemStack stackOut = stack.copy();
|
||||
stackOut.stackTagCompound = new NBTTagCompound();
|
||||
stackOut.stackTagCompound.setLong(keyName, 0);
|
||||
return stackOut.copy();
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
/** Returns an empty battery stack from the passed Item */
|
||||
public static ItemStack emptyBattery(Item item) {
|
||||
return item instanceof IBatteryItem ? emptyBattery(new ItemStack(item)) : null;
|
||||
}
|
||||
}
|
||||
@ -1,23 +0,0 @@
|
||||
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)
|
||||
);
|
||||
}
|
||||
}
|
||||
@ -1,24 +0,0 @@
|
||||
package api.hbm.energymk2;
|
||||
|
||||
import net.minecraft.world.IBlockAccess;
|
||||
import net.minecraftforge.common.util.ForgeDirection;
|
||||
|
||||
/**
|
||||
* Interface for all blocks that should visually connect to cables without having an IEnergyConnector tile entity.
|
||||
* This is meant for BLOCKS
|
||||
* @author hbm
|
||||
*
|
||||
*/
|
||||
public interface IEnergyConnectorBlock {
|
||||
|
||||
/**
|
||||
* Same as IEnergyConnector's method but for regular blocks that might not even have TEs. Used for rendering only!
|
||||
* @param world
|
||||
* @param x
|
||||
* @param y
|
||||
* @param z
|
||||
* @param dir
|
||||
* @return
|
||||
*/
|
||||
public boolean canConnect(IBlockAccess world, int x, int y, int z, ForgeDirection dir);
|
||||
}
|
||||
@ -1,16 +0,0 @@
|
||||
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;
|
||||
}
|
||||
}
|
||||
@ -1,29 +0,0 @@
|
||||
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());
|
||||
}
|
||||
}
|
||||
@ -1,67 +0,0 @@
|
||||
package api.hbm.energymk2;
|
||||
|
||||
import com.hbm.handler.threading.PacketThreading;
|
||||
import com.hbm.packet.toclient.AuxParticlePacketNT;
|
||||
|
||||
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 = TileAccessCache.getTileOrCache(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()) && rec.allowDirectProvision()) {
|
||||
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));
|
||||
PacketThreading.createAllAroundThreadedPacket(new AuxParticlePacketNT(data, posX, posY, posZ), new TargetPoint(world.provider.dimensionId, posX, posY, posZ, 25));
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1,95 +0,0 @@
|
||||
package api.hbm.energymk2;
|
||||
|
||||
import com.hbm.handler.threading.PacketThreading;
|
||||
import com.hbm.interfaces.NotableComments;
|
||||
import com.hbm.packet.toclient.AuxParticlePacketNT;
|
||||
import com.hbm.util.fauxpointtwelve.DirPos;
|
||||
|
||||
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();
|
||||
}
|
||||
|
||||
/** Whether a provider can provide power by touching the block (i.e. via proxies), bypassing the need for a network entirely */
|
||||
public default boolean allowDirectProvision() { return true; }
|
||||
|
||||
public default void trySubscribe(World world, DirPos pos) { trySubscribe(world, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); }
|
||||
|
||||
public default void trySubscribe(World world, int x, int y, int z, ForgeDirection dir) {
|
||||
|
||||
TileEntity te = TileAccessCache.getTileOrCache(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));
|
||||
PacketThreading.createAllAroundThreadedPacket(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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public enum ConnectionPriority {
|
||||
LOWEST,
|
||||
LOW,
|
||||
NORMAL,
|
||||
HIGH,
|
||||
HIGHEST
|
||||
}
|
||||
|
||||
public default ConnectionPriority getPriority() {
|
||||
return ConnectionPriority.NORMAL;
|
||||
}
|
||||
}
|
||||
@ -1,62 +0,0 @@
|
||||
package api.hbm.energymk2;
|
||||
|
||||
import com.hbm.interfaces.NotableComments;
|
||||
import com.hbm.uninos.GenNode;
|
||||
import com.hbm.uninos.UniNodespace;
|
||||
import com.hbm.uninos.networkproviders.PowerNetProvider;
|
||||
import com.hbm.util.fauxpointtwelve.BlockPos;
|
||||
import com.hbm.util.fauxpointtwelve.DirPos;
|
||||
|
||||
import net.minecraft.world.World;
|
||||
|
||||
/**
|
||||
* The dead fucking corpse of nodespace MK1.
|
||||
* A fantastic proof of concept, but ultimately it was killed for being just not that versatile.
|
||||
* This class is mostly just a compatibility husk that should allow uninodespace to slide into the mod with as much lubrication as it deserves.
|
||||
*
|
||||
* @author hbm
|
||||
*/
|
||||
@NotableComments
|
||||
public class Nodespace {
|
||||
|
||||
public static final PowerNetProvider THE_POWER_PROVIDER = new PowerNetProvider();
|
||||
|
||||
@Deprecated public static PowerNode getNode(World world, int x, int y, int z) {
|
||||
return (PowerNode) UniNodespace.getNode(world, x, y, z, THE_POWER_PROVIDER);
|
||||
}
|
||||
|
||||
@Deprecated public static void createNode(World world, PowerNode node) {
|
||||
UniNodespace.createNode(world, node);
|
||||
}
|
||||
|
||||
@Deprecated public static void destroyNode(World world, int x, int y, int z) {
|
||||
UniNodespace.destroyNode(world, x, y, z, THE_POWER_PROVIDER);
|
||||
}
|
||||
|
||||
@NotableComments
|
||||
public static class PowerNode extends GenNode<PowerNetMK2> {
|
||||
|
||||
/**
|
||||
* 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 PowerNode(BlockPos... positions) {
|
||||
super(THE_POWER_PROVIDER, positions);
|
||||
this.positions = positions;
|
||||
}
|
||||
|
||||
@Override
|
||||
public PowerNode setConnections(DirPos... connections) {
|
||||
super.setConnections(connections);
|
||||
return this;
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1,156 +0,0 @@
|
||||
package api.hbm.energymk2;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
|
||||
import com.hbm.uninos.NodeNet;
|
||||
import com.hbm.util.Tuple.Pair;
|
||||
|
||||
import java.util.Map.Entry;
|
||||
|
||||
import api.hbm.energymk2.IEnergyReceiverMK2.ConnectionPriority;
|
||||
import api.hbm.energymk2.Nodespace.PowerNode;
|
||||
|
||||
/**
|
||||
* Technically MK3 since it's now UNINOS compatible, although UNINOS was build out of 95% nodespace code
|
||||
*
|
||||
* @author hbm
|
||||
*/
|
||||
public class PowerNetMK2 extends NodeNet<IEnergyReceiverMK2, IEnergyProviderMK2, PowerNode> {
|
||||
|
||||
public long energyTracker = 0L;
|
||||
|
||||
protected static int timeout = 3_000;
|
||||
|
||||
@Override public void resetTrackers() { this.energyTracker = 0; }
|
||||
|
||||
@Override
|
||||
public void update() {
|
||||
|
||||
if(providerEntries.isEmpty()) return;
|
||||
if(receiverEntries.isEmpty()) return;
|
||||
|
||||
long timestamp = System.currentTimeMillis();
|
||||
|
||||
List<Pair<IEnergyProviderMK2, Long>> providers = new ArrayList();
|
||||
long powerAvailable = 0;
|
||||
|
||||
// sum up available power
|
||||
Iterator<Entry<IEnergyProviderMK2, Long>> provIt = providerEntries.entrySet().iterator();
|
||||
while(provIt.hasNext()) {
|
||||
Entry<IEnergyProviderMK2, Long> entry = provIt.next();
|
||||
if(timestamp - entry.getValue() > timeout || isBadLink(entry.getKey())) { provIt.remove(); continue; }
|
||||
long src = Math.min(entry.getKey().getPower(), entry.getKey().getProviderSpeed());
|
||||
if(src > 0) {
|
||||
providers.add(new Pair(entry.getKey(), src));
|
||||
powerAvailable += src;
|
||||
}
|
||||
}
|
||||
|
||||
// sum up total demand, categorized by priority
|
||||
List<Pair<IEnergyReceiverMK2, Long>>[] 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<Entry<IEnergyReceiverMK2, Long>> recIt = receiverEntries.entrySet().iterator();
|
||||
|
||||
while(recIt.hasNext()) {
|
||||
Entry<IEnergyReceiverMK2, Long> entry = recIt.next();
|
||||
if(timestamp - entry.getValue() > timeout || isBadLink(entry.getKey())) { recIt.remove(); continue; }
|
||||
long rec = Math.min(entry.getKey().getMaxPower() - entry.getKey().getPower(), entry.getKey().getReceiverSpeed());
|
||||
if(rec > 0) {
|
||||
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;
|
||||
|
||||
// add power to receivers, ordered by priority
|
||||
for(int i = ConnectionPriority.values().length - 1; i >= 0; i--) {
|
||||
List<Pair<IEnergyReceiverMK2, Long>> list = receivers[i];
|
||||
long priorityDemand = demand[i];
|
||||
|
||||
for(Pair<IEnergyReceiverMK2, Long> entry : list) {
|
||||
double weight = (double) entry.getValue() / (double) (priorityDemand);
|
||||
long toSend = (long) Math.min(Math.max(toTransfer * weight, 0D), entry.getValue());
|
||||
energyUsed += (toSend - entry.getKey().transferPower(toSend)); //leftovers are subtracted from the intended amount to use up
|
||||
}
|
||||
|
||||
toTransfer -= energyUsed;
|
||||
}
|
||||
|
||||
this.energyTracker += energyUsed;
|
||||
long leftover = energyUsed;
|
||||
|
||||
// remove power from providers
|
||||
for(Pair<IEnergyProviderMK2, Long> 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<IEnergyProviderMK2, Long> selected = providers.get(rand.nextInt(providers.size()));
|
||||
IEnergyProviderMK2 scapegoat = selected.getKey();
|
||||
|
||||
long toUse = Math.min(leftover, scapegoat.getPower());
|
||||
scapegoat.usePower(toUse);
|
||||
leftover -= toUse;
|
||||
}
|
||||
}
|
||||
|
||||
public long sendPowerDiode(long power) {
|
||||
|
||||
if(receiverEntries.isEmpty()) return power;
|
||||
|
||||
long timestamp = System.currentTimeMillis();
|
||||
|
||||
List<Pair<IEnergyReceiverMK2, Long>>[] 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<Entry<IEnergyReceiverMK2, Long>> recIt = receiverEntries.entrySet().iterator();
|
||||
|
||||
while(recIt.hasNext()) {
|
||||
Entry<IEnergyReceiverMK2, Long> 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<Pair<IEnergyReceiverMK2, Long>> list = receivers[i];
|
||||
long priorityDemand = demand[i];
|
||||
|
||||
for(Pair<IEnergyReceiverMK2, Long> 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;
|
||||
}
|
||||
}
|
||||
@ -1,33 +0,0 @@
|
||||
/**
|
||||
*
|
||||
*/
|
||||
/**
|
||||
* @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
|
||||
|
||||
*/
|
||||
@ -1,6 +1,5 @@
|
||||
package api.hbm.entity;
|
||||
|
||||
@Deprecated //Use IRadarDetectableNT instead, old interface will still work though
|
||||
public interface IRadarDetectable {
|
||||
|
||||
public static enum RadarTargetType {
|
||||
@ -15,8 +14,7 @@ public interface IRadarDetectable {
|
||||
MISSILE_15_20("Size 15/20 Custom Missile"), //size 15/20 custom missiles
|
||||
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"); //artillery shells
|
||||
PLAYER("Player"); //airborne players
|
||||
|
||||
public String name;
|
||||
|
||||
|
||||
@ -1,45 +0,0 @@
|
||||
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;
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1,3 +0,0 @@
|
||||
package api.hbm.entity;
|
||||
|
||||
public interface IRadiationImmune { }
|
||||
@ -1,16 +0,0 @@
|
||||
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);
|
||||
}
|
||||
@ -1,66 +0,0 @@
|
||||
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);
|
||||
}
|
||||
}
|
||||
@ -1,6 +0,0 @@
|
||||
package api.hbm.fluid;
|
||||
|
||||
import api.hbm.fluidmk2.IFluidConnectorMK2;
|
||||
|
||||
@Deprecated
|
||||
public interface IFluidConnector extends IFluidConnectorMK2 { }
|
||||
@ -1,6 +0,0 @@
|
||||
package api.hbm.fluid;
|
||||
|
||||
import api.hbm.fluidmk2.IFluidConnectorBlockMK2;
|
||||
|
||||
@Deprecated
|
||||
public interface IFluidConnectorBlock extends IFluidConnectorBlockMK2 { }
|
||||
@ -1,35 +0,0 @@
|
||||
package api.hbm.fluid;
|
||||
|
||||
import com.hbm.inventory.fluid.FluidType;
|
||||
import com.hbm.uninos.GenNode;
|
||||
import com.hbm.uninos.UniNodespace;
|
||||
|
||||
import api.hbm.fluidmk2.IFluidStandardReceiverMK2;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraftforge.common.util.ForgeDirection;
|
||||
|
||||
@Deprecated
|
||||
public interface IFluidStandardReceiver extends IFluidStandardReceiverMK2 {
|
||||
|
||||
public default void subscribeToAllAround(FluidType type, TileEntity tile) {
|
||||
subscribeToAllAround(type, tile.getWorldObj(), tile.xCoord, tile.yCoord, tile.zCoord);
|
||||
}
|
||||
|
||||
public default void subscribeToAllAround(FluidType type, World world, int x, int y, int z) {
|
||||
for(ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) {
|
||||
trySubscribe(type, world, x + dir.offsetX, y + dir.offsetY, z + dir.offsetZ, dir);
|
||||
}
|
||||
}
|
||||
|
||||
public default void tryUnsubscribe(FluidType type, World world, int x, int y, int z) {
|
||||
GenNode node = UniNodespace.getNode(world, x, y, z, type.getNetworkProvider());
|
||||
if(node != null && node.net != null) node.net.removeReceiver(this);
|
||||
}
|
||||
|
||||
public default void unsubscribeToAllAround(FluidType type, TileEntity tile) {
|
||||
for(ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) {
|
||||
tryUnsubscribe(type, tile.getWorldObj(), tile.xCoord + dir.offsetX, tile.yCoord + dir.offsetY, tile.zCoord + dir.offsetZ);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1,22 +0,0 @@
|
||||
package api.hbm.fluid;
|
||||
|
||||
import com.hbm.inventory.fluid.tank.FluidTank;
|
||||
|
||||
import api.hbm.fluidmk2.IFluidStandardSenderMK2;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraftforge.common.util.ForgeDirection;
|
||||
|
||||
@Deprecated
|
||||
public interface IFluidStandardSender extends IFluidStandardSenderMK2 {
|
||||
|
||||
public default void sendFluid(FluidTank tank, World world, int x, int y, int z, ForgeDirection dir) {
|
||||
tryProvide(tank, world, x, y, z, dir);
|
||||
}
|
||||
|
||||
public default void sendFluidToAll(FluidTank tank, TileEntity tile) {
|
||||
for(ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) {
|
||||
tryProvide(tank, tile.getWorldObj(), tile.xCoord + dir.offsetX, tile.yCoord + dir.offsetY, tile.zCoord + dir.offsetZ, dir);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1,4 +0,0 @@
|
||||
package api.hbm.fluid;
|
||||
|
||||
@Deprecated
|
||||
public interface IFluidStandardTransceiver extends IFluidStandardReceiver, IFluidStandardSender { }
|
||||
@ -1,152 +0,0 @@
|
||||
package api.hbm.fluidmk2;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
import java.util.Map.Entry;
|
||||
|
||||
import com.hbm.inventory.fluid.FluidType;
|
||||
import com.hbm.uninos.NodeNet;
|
||||
import com.hbm.util.Tuple.Pair;
|
||||
|
||||
import api.hbm.energymk2.IEnergyReceiverMK2.ConnectionPriority;
|
||||
|
||||
public class FluidNetMK2 extends NodeNet<IFluidReceiverMK2, IFluidProviderMK2, FluidNode> {
|
||||
|
||||
public long fluidTracker = 0L;
|
||||
|
||||
protected static int timeout = 3_000;
|
||||
protected static long currentTime = 0;
|
||||
protected FluidType type;
|
||||
|
||||
public FluidNetMK2(FluidType type) {
|
||||
this.type = type;
|
||||
for(int i = 0; i < IFluidUserMK2.HIGHEST_VALID_PRESSURE + 1; i++) providers[i] = new ArrayList();
|
||||
for(int i = 0; i < IFluidUserMK2.HIGHEST_VALID_PRESSURE + 1; i++) for(int j = 0; j < ConnectionPriority.values().length; j++) receivers[i][j] = new ArrayList();
|
||||
}
|
||||
|
||||
@Override public void resetTrackers() { this.fluidTracker = 0; }
|
||||
|
||||
@Override
|
||||
public void update() {
|
||||
|
||||
if(providerEntries.isEmpty()) return;
|
||||
if(receiverEntries.isEmpty()) return;
|
||||
currentTime = System.currentTimeMillis();
|
||||
|
||||
setupFluidProviders();
|
||||
setupFluidReceivers();
|
||||
transferFluid();
|
||||
|
||||
cleanUp();
|
||||
}
|
||||
|
||||
//this sucks ass, but it makes the code just a smidge more structured
|
||||
public long[] fluidAvailable = new long[IFluidUserMK2.HIGHEST_VALID_PRESSURE + 1];
|
||||
public List<Pair<IFluidProviderMK2, Long>>[] providers = new ArrayList[IFluidUserMK2.HIGHEST_VALID_PRESSURE + 1];
|
||||
public long[][] fluidDemand = new long[IFluidUserMK2.HIGHEST_VALID_PRESSURE + 1][ConnectionPriority.values().length];
|
||||
public List<Pair<IFluidReceiverMK2, Long>>[][] receivers = new ArrayList[IFluidUserMK2.HIGHEST_VALID_PRESSURE + 1][ConnectionPriority.values().length];
|
||||
public long[] transfered = new long[IFluidUserMK2.HIGHEST_VALID_PRESSURE + 1];
|
||||
|
||||
public void setupFluidProviders() {
|
||||
Iterator<Entry<IFluidProviderMK2, Long>> iterator = providerEntries.entrySet().iterator();
|
||||
|
||||
while(iterator.hasNext()) {
|
||||
Entry<IFluidProviderMK2, Long> entry = iterator.next();
|
||||
if(currentTime - entry.getValue() > timeout || isBadLink(entry.getKey())) { iterator.remove(); continue; }
|
||||
IFluidProviderMK2 provider = entry.getKey();
|
||||
int[] pressureRange = provider.getProvidingPressureRange(type);
|
||||
for(int p = pressureRange[0]; p <= pressureRange[1]; p++) {
|
||||
long available = Math.min(provider.getFluidAvailable(type, p), provider.getProviderSpeed(type, p));
|
||||
providers[p].add(new Pair(provider, available));
|
||||
fluidAvailable[p] += available;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void setupFluidReceivers() {
|
||||
Iterator<Entry<IFluidReceiverMK2, Long>> iterator = receiverEntries.entrySet().iterator();
|
||||
|
||||
while(iterator.hasNext()) {
|
||||
Entry<IFluidReceiverMK2, Long> entry = iterator.next();
|
||||
if(currentTime - entry.getValue() > timeout || isBadLink(entry.getKey())) { iterator.remove(); continue; }
|
||||
IFluidReceiverMK2 receiver = entry.getKey();
|
||||
int[] pressureRange = receiver.getReceivingPressureRange(type);
|
||||
for(int p = pressureRange[0]; p <= pressureRange[1]; p++) {
|
||||
long required = Math.min(receiver.getDemand(type, p), receiver.getReceiverSpeed(type, p));
|
||||
int priority = receiver.getFluidPriority().ordinal();
|
||||
receivers[p][priority].add(new Pair(receiver, required));
|
||||
fluidDemand[p][priority] += required;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void transferFluid() {
|
||||
|
||||
long[] received = new long[IFluidUserMK2.HIGHEST_VALID_PRESSURE + 1];
|
||||
long[] notAccountedFor = new long[IFluidUserMK2.HIGHEST_VALID_PRESSURE + 1];
|
||||
|
||||
for(int p = 0; p <= IFluidUserMK2.HIGHEST_VALID_PRESSURE; p++) { // if the pressure range were ever to increase, we might have to rethink this
|
||||
|
||||
long totalAvailable = fluidAvailable[p];
|
||||
|
||||
for(int i = ConnectionPriority.values().length - 1; i >= 0; i--) {
|
||||
|
||||
long toTransfer = Math.min(fluidDemand[p][i], totalAvailable);
|
||||
if(toTransfer <= 0) continue;
|
||||
|
||||
long priorityDemand = fluidDemand[p][i];
|
||||
|
||||
for(Pair<IFluidReceiverMK2, Long> entry : receivers[p][i]) {
|
||||
double weight = (double) entry.getValue() / (double) (priorityDemand);
|
||||
long toSend = (long) Math.max(toTransfer * weight, 0D);
|
||||
toSend -= entry.getKey().transferFluid(type, p, toSend);
|
||||
received[p] += toSend;
|
||||
fluidTracker += toSend;
|
||||
}
|
||||
|
||||
totalAvailable -= received[p];
|
||||
}
|
||||
|
||||
notAccountedFor[p] = received[p];
|
||||
}
|
||||
|
||||
for(int p = 0; p <= IFluidUserMK2.HIGHEST_VALID_PRESSURE; p++) {
|
||||
|
||||
for(Pair<IFluidProviderMK2, Long> entry : providers[p]) {
|
||||
double weight = (double) entry.getValue() / (double) fluidAvailable[p];
|
||||
long toUse = (long) Math.max(received[p] * weight, 0D);
|
||||
entry.getKey().useUpFluid(type, p, toUse);
|
||||
notAccountedFor[p] -= toUse;
|
||||
}
|
||||
}
|
||||
|
||||
for(int p = 0; p <= IFluidUserMK2.HIGHEST_VALID_PRESSURE; p++) {
|
||||
|
||||
int iterationsLeft = 100;
|
||||
while(iterationsLeft > 0 && notAccountedFor[p] > 0 && providers[p].size() > 0) {
|
||||
iterationsLeft--;
|
||||
|
||||
Pair<IFluidProviderMK2, Long> selected = providers[p].get(rand.nextInt(providers[p].size()));
|
||||
IFluidProviderMK2 scapegoat = selected.getKey();
|
||||
|
||||
long toUse = Math.min(notAccountedFor[p], scapegoat.getFluidAvailable(type, p));
|
||||
scapegoat.useUpFluid(type, p, toUse);
|
||||
notAccountedFor[p] -= toUse;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void cleanUp() {
|
||||
for(int i = 0; i < IFluidUserMK2.HIGHEST_VALID_PRESSURE + 1; i++) {
|
||||
fluidAvailable[i] = 0;
|
||||
providers[i].clear();
|
||||
transfered[i] = 0;
|
||||
|
||||
for(int j = 0; j < ConnectionPriority.values().length; j++) {
|
||||
fluidDemand[i][j] = 0;
|
||||
receivers[i][j].clear();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1,19 +0,0 @@
|
||||
package api.hbm.fluidmk2;
|
||||
|
||||
import com.hbm.uninos.GenNode;
|
||||
import com.hbm.uninos.INetworkProvider;
|
||||
import com.hbm.util.fauxpointtwelve.BlockPos;
|
||||
import com.hbm.util.fauxpointtwelve.DirPos;
|
||||
|
||||
public class FluidNode extends GenNode<FluidNetMK2> {
|
||||
|
||||
public FluidNode(INetworkProvider<FluidNetMK2> provider, BlockPos... positions) {
|
||||
super(provider, positions);
|
||||
}
|
||||
|
||||
@Override
|
||||
public FluidNode setConnections(DirPos... connections) {
|
||||
super.setConnections(connections);
|
||||
return this;
|
||||
}
|
||||
}
|
||||
@ -1,21 +0,0 @@
|
||||
package api.hbm.fluidmk2;
|
||||
|
||||
import com.hbm.inventory.fluid.FluidType;
|
||||
|
||||
import net.minecraft.item.ItemStack;
|
||||
|
||||
public interface IFillableItem {
|
||||
|
||||
/** Whether this stack can be filled with this type. Not particularly useful for normal operations */
|
||||
public boolean acceptsFluid(FluidType type, ItemStack stack);
|
||||
/** Tries to fill the stack, returns the remainder that couldn't be added */
|
||||
public int tryFill(FluidType type, int amount, ItemStack stack);
|
||||
/** Whether this stack can fill tiles with this type. Not particularly useful for normal operations */
|
||||
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);
|
||||
}
|
||||
@ -1,12 +0,0 @@
|
||||
package api.hbm.fluidmk2;
|
||||
|
||||
import com.hbm.inventory.fluid.FluidType;
|
||||
|
||||
import net.minecraft.world.IBlockAccess;
|
||||
import net.minecraftforge.common.util.ForgeDirection;
|
||||
|
||||
public interface IFluidConnectorBlockMK2 {
|
||||
|
||||
/** dir is the face that is connected to, the direction going outwards from the block */
|
||||
public boolean canConnect(FluidType type, IBlockAccess world, int x, int y, int z, ForgeDirection dir);
|
||||
}
|
||||
@ -1,17 +0,0 @@
|
||||
package api.hbm.fluidmk2;
|
||||
|
||||
import com.hbm.inventory.fluid.FluidType;
|
||||
|
||||
import net.minecraftforge.common.util.ForgeDirection;
|
||||
|
||||
public interface IFluidConnectorMK2 {
|
||||
|
||||
/**
|
||||
* Whether the given side can be connected to
|
||||
* @param dir
|
||||
* @return
|
||||
*/
|
||||
public default boolean canConnect(FluidType type, ForgeDirection dir) {
|
||||
return dir != ForgeDirection.UNKNOWN;
|
||||
}
|
||||
}
|
||||
@ -1,27 +0,0 @@
|
||||
package api.hbm.fluidmk2;
|
||||
|
||||
import com.hbm.inventory.fluid.FluidType;
|
||||
import com.hbm.lib.Library;
|
||||
import com.hbm.util.fauxpointtwelve.BlockPos;
|
||||
import com.hbm.util.fauxpointtwelve.DirPos;
|
||||
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
|
||||
/**
|
||||
* IFluidConductorMK2 with added node creation method
|
||||
* @author hbm
|
||||
*/
|
||||
public interface IFluidPipeMK2 extends IFluidConnectorMK2 {
|
||||
|
||||
public default FluidNode createNode(FluidType type) {
|
||||
TileEntity tile = (TileEntity) this;
|
||||
return new FluidNode(type.getNetworkProvider(), 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)
|
||||
);
|
||||
}
|
||||
}
|
||||
@ -1,12 +0,0 @@
|
||||
package api.hbm.fluidmk2;
|
||||
|
||||
import com.hbm.inventory.fluid.FluidType;
|
||||
|
||||
public interface IFluidProviderMK2 extends IFluidUserMK2 {
|
||||
|
||||
public void useUpFluid(FluidType type, int pressure, long amount);
|
||||
public default long getProviderSpeed(FluidType type, int pressure) { return 1_000_000_000; }
|
||||
public long getFluidAvailable(FluidType type, int pressure);
|
||||
|
||||
public default int[] getProvidingPressureRange(FluidType type) { return DEFAULT_PRESSURE_RANGE; }
|
||||
}
|
||||
@ -1,63 +0,0 @@
|
||||
package api.hbm.fluidmk2;
|
||||
|
||||
import com.hbm.inventory.fluid.FluidType;
|
||||
import com.hbm.packet.PacketDispatcher;
|
||||
import com.hbm.packet.toclient.AuxParticlePacketNT;
|
||||
import com.hbm.uninos.GenNode;
|
||||
import com.hbm.uninos.UniNodespace;
|
||||
import com.hbm.util.fauxpointtwelve.DirPos;
|
||||
|
||||
import api.hbm.energymk2.IEnergyReceiverMK2.ConnectionPriority;
|
||||
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 IFluidReceiverMK2 extends IFluidUserMK2 {
|
||||
|
||||
/** Sends fluid of the desired type and pressure to the receiver, returns the remainder */
|
||||
public long transferFluid(FluidType type, int pressure, long amount);
|
||||
public default long getReceiverSpeed(FluidType type, int pressure) { return 1_000_000_000; }
|
||||
public long getDemand(FluidType type, int pressure);
|
||||
|
||||
public default int[] getReceivingPressureRange(FluidType type) { return DEFAULT_PRESSURE_RANGE; }
|
||||
|
||||
public default void trySubscribe(FluidType type, World world, DirPos pos) { trySubscribe(type, world, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); }
|
||||
|
||||
public default void trySubscribe(FluidType type, World world, int x, int y, int z, ForgeDirection dir) {
|
||||
|
||||
TileEntity te = TileAccessCache.getTileOrCache(world, x, y, z);
|
||||
boolean red = false;
|
||||
|
||||
if(te instanceof IFluidConnectorMK2) {
|
||||
IFluidConnectorMK2 con = (IFluidConnectorMK2) te;
|
||||
if(!con.canConnect(type, dir.getOpposite())) return;
|
||||
|
||||
GenNode node = UniNodespace.getNode(world, x, y, z, type.getNetworkProvider());
|
||||
|
||||
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", "fluid");
|
||||
data.setInteger("color", type.getColor());
|
||||
double posX = x + 0.5 + dir.offsetX * 0.5 + world.rand.nextDouble() * 0.5 - 0.25;
|
||||
double posY = y + 0.5 + dir.offsetY * 0.5 + world.rand.nextDouble() * 0.5 - 0.25;
|
||||
double posZ = z + 0.5 + dir.offsetZ * 0.5 + world.rand.nextDouble() * 0.5 - 0.25;
|
||||
data.setDouble("mX", -dir.offsetX * (red ? 0.025 : 0.1));
|
||||
data.setDouble("mY", -dir.offsetY * (red ? 0.025 : 0.1));
|
||||
data.setDouble("mZ", -dir.offsetZ * (red ? 0.025 : 0.1));
|
||||
PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, posX, posY, posZ), new TargetPoint(world.provider.dimensionId, posX, posY, posZ, 25));
|
||||
}
|
||||
}
|
||||
|
||||
public default ConnectionPriority getFluidPriority() {
|
||||
return ConnectionPriority.NORMAL;
|
||||
}
|
||||
}
|
||||
@ -1,9 +0,0 @@
|
||||
package api.hbm.fluidmk2;
|
||||
|
||||
public interface IFluidRegisterListener {
|
||||
|
||||
/**
|
||||
* Called when the fluid registry initializes all fluids. Use CompatFluidRegistry to create new instances of FluidType, which are automatically registered.
|
||||
*/
|
||||
public void onFluidsLoad();
|
||||
}
|
||||
@ -1,68 +0,0 @@
|
||||
package api.hbm.fluidmk2;
|
||||
|
||||
import com.hbm.inventory.fluid.FluidType;
|
||||
import com.hbm.inventory.fluid.tank.FluidTank;
|
||||
|
||||
/**
|
||||
* IFluidReceiverMK2 with standard implementation for transfer and demand getter.
|
||||
* @author hbm
|
||||
*/
|
||||
public interface IFluidStandardReceiverMK2 extends IFluidReceiverMK2 {
|
||||
|
||||
public FluidTank[] getReceivingTanks();
|
||||
|
||||
@Override
|
||||
public default long getDemand(FluidType type, int pressure) {
|
||||
long amount = 0;
|
||||
for(FluidTank tank : getReceivingTanks()) {
|
||||
if(tank.getTankType() == type && tank.getPressure() == pressure) amount += (tank.getMaxFill() - tank.getFill());
|
||||
}
|
||||
return amount;
|
||||
}
|
||||
|
||||
@Override
|
||||
public default long transferFluid(FluidType type, int pressure, long amount) {
|
||||
int tanks = 0;
|
||||
for(FluidTank tank : getReceivingTanks()) {
|
||||
if(tank.getTankType() == type && tank.getPressure() == pressure) tanks++;
|
||||
}
|
||||
if(tanks > 1) {
|
||||
int firstRound = (int) Math.floor((double) amount / (double) tanks);
|
||||
for(FluidTank tank : getReceivingTanks()) {
|
||||
if(tank.getTankType() == type && tank.getPressure() == pressure) {
|
||||
int toAdd = Math.min(firstRound, tank.getMaxFill() - tank.getFill());
|
||||
tank.setFill(tank.getFill() + toAdd);
|
||||
amount -= toAdd;
|
||||
}
|
||||
}
|
||||
}
|
||||
if(amount > 0) for(FluidTank tank : getReceivingTanks()) {
|
||||
if(tank.getTankType() == type && tank.getPressure() == pressure) {
|
||||
int toAdd = (int) Math.min(amount, tank.getMaxFill() - tank.getFill());
|
||||
tank.setFill(tank.getFill() + toAdd);
|
||||
amount -= toAdd;
|
||||
}
|
||||
}
|
||||
return amount;
|
||||
}
|
||||
|
||||
@Override
|
||||
public default int[] getReceivingPressureRange(FluidType type) {
|
||||
int lowest = HIGHEST_VALID_PRESSURE;
|
||||
int highest = 0;
|
||||
|
||||
for(FluidTank tank : getReceivingTanks()) {
|
||||
if(tank.getTankType() == type) {
|
||||
if(tank.getPressure() < lowest) lowest = tank.getPressure();
|
||||
if(tank.getPressure() > highest) highest = tank.getPressure();
|
||||
}
|
||||
}
|
||||
|
||||
return lowest <= highest ? new int[] {lowest, highest} : DEFAULT_PRESSURE_RANGE;
|
||||
}
|
||||
|
||||
@Override
|
||||
public default long getReceiverSpeed(FluidType type, int pressure) {
|
||||
return 1_000_000_000;
|
||||
}
|
||||
}
|
||||
@ -1,129 +0,0 @@
|
||||
package api.hbm.fluidmk2;
|
||||
|
||||
import com.hbm.inventory.fluid.tank.FluidTank;
|
||||
import com.hbm.inventory.fluid.FluidType;
|
||||
import com.hbm.packet.PacketDispatcher;
|
||||
import com.hbm.packet.toclient.AuxParticlePacketNT;
|
||||
import com.hbm.uninos.GenNode;
|
||||
import com.hbm.uninos.UniNodespace;
|
||||
import com.hbm.util.fauxpointtwelve.DirPos;
|
||||
|
||||
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;
|
||||
|
||||
/**
|
||||
* IFluidProviderMK2 with standard implementation for fluid provision and fluid removal.
|
||||
* @author hbm
|
||||
*/
|
||||
public interface IFluidStandardSenderMK2 extends IFluidProviderMK2 {
|
||||
|
||||
public default void tryProvide(FluidTank tank, World world, DirPos pos) { tryProvide(tank.getTankType(), tank.getPressure(), world, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); }
|
||||
public default void tryProvide(FluidType type, World world, DirPos pos) { tryProvide(type, 0, world, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); }
|
||||
public default void tryProvide(FluidType type, int pressure, World world, DirPos pos) { tryProvide(type, pressure, world, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); }
|
||||
|
||||
public default void tryProvide(FluidTank tank, World world, int x, int y, int z, ForgeDirection dir) { tryProvide(tank.getTankType(), tank.getPressure(), world, x, y, z, dir); }
|
||||
public default void tryProvide(FluidType type, World world, int x, int y, int z, ForgeDirection dir) { tryProvide(type, 0, world, x, y, z, dir); }
|
||||
|
||||
public default void tryProvide(FluidType type, int pressure, World world, int x, int y, int z, ForgeDirection dir) {
|
||||
|
||||
TileEntity te = TileAccessCache.getTileOrCache(world, x, y, z);
|
||||
boolean red = false;
|
||||
|
||||
if(te instanceof IFluidConnectorMK2) {
|
||||
IFluidConnectorMK2 con = (IFluidConnectorMK2) te;
|
||||
if(con.canConnect(type, dir.getOpposite())) {
|
||||
|
||||
GenNode<FluidNetMK2> node = UniNodespace.getNode(world, x, y, z, type.getNetworkProvider());
|
||||
|
||||
if(node != null && node.net != null) {
|
||||
node.net.addProvider(this);
|
||||
red = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if(te != this && te instanceof IFluidReceiverMK2) {
|
||||
IFluidReceiverMK2 rec = (IFluidReceiverMK2) te;
|
||||
if(rec.canConnect(type, dir.getOpposite())) {
|
||||
long provides = Math.min(this.getFluidAvailable(type, pressure), this.getProviderSpeed(type, pressure));
|
||||
long receives = Math.min(rec.getDemand(type, pressure), rec.getReceiverSpeed(type, pressure));
|
||||
long toTransfer = Math.min(provides, receives);
|
||||
toTransfer -= rec.transferFluid(type, pressure, toTransfer);
|
||||
this.useUpFluid(type, pressure, toTransfer);
|
||||
}
|
||||
}
|
||||
|
||||
if(particleDebug) {
|
||||
NBTTagCompound data = new NBTTagCompound();
|
||||
data.setString("type", "network");
|
||||
data.setString("mode", "fluid");
|
||||
data.setInteger("color", type.getColor());
|
||||
double posX = x + 0.5 - dir.offsetX * 0.5 + world.rand.nextDouble() * 0.5 - 0.25;
|
||||
double posY = y + 0.5 - dir.offsetY * 0.5 + world.rand.nextDouble() * 0.5 - 0.25;
|
||||
double posZ = z + 0.5 - dir.offsetZ * 0.5 + world.rand.nextDouble() * 0.5 - 0.25;
|
||||
data.setDouble("mX", dir.offsetX * (red ? 0.025 : 0.1));
|
||||
data.setDouble("mY", dir.offsetY * (red ? 0.025 : 0.1));
|
||||
data.setDouble("mZ", dir.offsetZ * (red ? 0.025 : 0.1));
|
||||
PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, posX, posY, posZ), new TargetPoint(world.provider.dimensionId, posX, posY, posZ, 25));
|
||||
}
|
||||
}
|
||||
|
||||
public FluidTank[] getSendingTanks();
|
||||
|
||||
@Override
|
||||
public default long getFluidAvailable(FluidType type, int pressure) {
|
||||
long amount = 0;
|
||||
for(FluidTank tank : getSendingTanks()) {
|
||||
if(tank.getTankType() == type && tank.getPressure() == pressure) amount += tank.getFill();
|
||||
}
|
||||
return amount;
|
||||
}
|
||||
|
||||
@Override
|
||||
public default void useUpFluid(FluidType type, int pressure, long amount) {
|
||||
int tanks = 0;
|
||||
for(FluidTank tank : getSendingTanks()) {
|
||||
if(tank.getTankType() == type && tank.getPressure() == pressure) tanks++;
|
||||
}
|
||||
if(tanks > 1) {
|
||||
int firstRound = (int) Math.floor((double) amount / (double) tanks);
|
||||
for(FluidTank tank : getSendingTanks()) {
|
||||
if(tank.getTankType() == type && tank.getPressure() == pressure) {
|
||||
int toRem = Math.min(firstRound, tank.getFill());
|
||||
tank.setFill(tank.getFill() - toRem);
|
||||
amount -= toRem;
|
||||
}
|
||||
}
|
||||
}
|
||||
if(amount > 0) for(FluidTank tank : getSendingTanks()) {
|
||||
if(tank.getTankType() == type && tank.getPressure() == pressure) {
|
||||
int toRem = (int) Math.min(amount, tank.getFill());
|
||||
tank.setFill(tank.getFill() - toRem);
|
||||
amount -= toRem;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public default int[] getProvidingPressureRange(FluidType type) {
|
||||
int lowest = HIGHEST_VALID_PRESSURE;
|
||||
int highest = 0;
|
||||
|
||||
for(FluidTank tank : getSendingTanks()) {
|
||||
if(tank.getTankType() == type) {
|
||||
if(tank.getPressure() < lowest) lowest = tank.getPressure();
|
||||
if(tank.getPressure() > highest) highest = tank.getPressure();
|
||||
}
|
||||
}
|
||||
|
||||
return lowest <= highest ? new int[] {lowest, highest} : DEFAULT_PRESSURE_RANGE;
|
||||
}
|
||||
|
||||
@Override
|
||||
public default long getProviderSpeed(FluidType type, int pressure) {
|
||||
return 1_000_000_000;
|
||||
}
|
||||
}
|
||||
@ -1,5 +0,0 @@
|
||||
package api.hbm.fluidmk2;
|
||||
|
||||
public interface IFluidStandardTransceiverMK2 extends IFluidStandardReceiverMK2, IFluidStandardSenderMK2 {
|
||||
|
||||
}
|
||||
@ -1,15 +0,0 @@
|
||||
package api.hbm.fluidmk2;
|
||||
|
||||
import com.hbm.inventory.fluid.tank.FluidTank;
|
||||
|
||||
import api.hbm.tile.ILoadedTile;
|
||||
|
||||
public interface IFluidUserMK2 extends IFluidConnectorMK2, ILoadedTile {
|
||||
|
||||
public static final int HIGHEST_VALID_PRESSURE = 5;
|
||||
public static final int[] DEFAULT_PRESSURE_RANGE = new int[] {0, 0};
|
||||
|
||||
public static final boolean particleDebug = false;
|
||||
|
||||
public FluidTank[] getAllTanks();
|
||||
}
|
||||
@ -1,24 +0,0 @@
|
||||
package api.hbm.fluidmk2;
|
||||
|
||||
/*
|
||||
|
||||
It's rather shrimple: the shiny new energy system using universal nodespace, but hit with a hammer until it works with fluids.
|
||||
Has a few extra bits and pieces for handling, but the concept is basically the same.
|
||||
Sounds good?
|
||||
|
||||
*/
|
||||
|
||||
/*
|
||||
|
||||
Quick explanation for implementing new fluids via addon:
|
||||
Fluids are subject to /ntmreload so they get wiped and rebuilt using the init function in Fluids, which means that if fluids
|
||||
are simply added externally during startup, they are removed permanently until the game restarts. Same concept as with recipes, really.
|
||||
To fix this we need to make sure that externally registered fluids are re-registered during reload, for that purpose we have
|
||||
IFluidRegisterListener, a simple interface with a small method that runs whenever the fluid list is reloaded. IFluidRegisterListeners
|
||||
need to be registered with CompatExternal.registerFluidRegisterListener to be used, make sure to do this during PreInit.
|
||||
Inside the IFluidRegisterListener, fluids can be added using CompatFluidRegistry.registerFluid, which will generate a Fluid instance
|
||||
using the supplied arguments and automatically register it. Do note that like with custom fluids, fluids need numeric IDs assigned manually.
|
||||
To prevent collisions with stock fluids when NTM updates, make sure to choose a high starting ID (e.g. 10,000).
|
||||
The fluid created by registerFluid can have traits added to them, just like how NTM does it with its stock fluids.
|
||||
|
||||
*/
|
||||
@ -1,22 +0,0 @@
|
||||
package api.hbm.item;
|
||||
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
public interface IDepthRockTool {
|
||||
|
||||
/**
|
||||
* Whether our item can break depthrock, has a couple of params so we can restrict mining for certain blocks, dimensions or positions
|
||||
* @param world
|
||||
* @param player
|
||||
* @param tool
|
||||
* @param block
|
||||
* @param x
|
||||
* @param y
|
||||
* @param z
|
||||
* @return
|
||||
*/
|
||||
public boolean canBreakRock(World world, EntityPlayer player, ItemStack tool, Block block, int x, int y, int z);
|
||||
}
|
||||
@ -1,30 +0,0 @@
|
||||
package api.hbm.item;
|
||||
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.util.Vec3;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
public interface IDesignatorItem {
|
||||
|
||||
/**
|
||||
* Whether the target is valid
|
||||
* @param world for things like restricting dimensions or getting entities
|
||||
* @param stack to check NBT and metadata
|
||||
* @param x position of the launch pad
|
||||
* @param y position of the launch pad
|
||||
* @param z position of the launch pad
|
||||
* @return
|
||||
*/
|
||||
public boolean isReady(World world, ItemStack stack, int x, int y, int z);
|
||||
|
||||
/**
|
||||
* The target position if the designator is ready
|
||||
* @param world
|
||||
* @param stack
|
||||
* @param x
|
||||
* @param y
|
||||
* @param z
|
||||
* @return the target
|
||||
*/
|
||||
public Vec3 getCoords(World world, ItemStack stack, int x, int y, int z);
|
||||
}
|
||||
@ -1,52 +0,0 @@
|
||||
package api.hbm.item;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
||||
import com.hbm.util.ArmorRegistry.HazardClass;
|
||||
|
||||
import net.minecraft.entity.EntityLivingBase;
|
||||
import net.minecraft.item.ItemStack;
|
||||
|
||||
public interface IGasMask {
|
||||
|
||||
/**
|
||||
* Returns a list of HazardClasses which can not be protected against by this mask (e.g. chlorine gas for half masks)
|
||||
* @param stack
|
||||
* @param entity
|
||||
* @return an empty list if there's no blacklist
|
||||
*/
|
||||
public ArrayList<HazardClass> getBlacklist(ItemStack stack, EntityLivingBase entity);
|
||||
|
||||
/**
|
||||
* Returns the loaded filter, if there is any
|
||||
* @param stack
|
||||
* @param entity
|
||||
* @return null if no filter is installed
|
||||
*/
|
||||
public ItemStack getFilter(ItemStack stack, EntityLivingBase entity);
|
||||
|
||||
/**
|
||||
* Checks whether the provided filter can be screwed into the mask, does not take already applied filters into account (those get ejected)
|
||||
* @param stack
|
||||
* @param entity
|
||||
* @param filter
|
||||
* @return
|
||||
*/
|
||||
public boolean isFilterApplicable(ItemStack stack, EntityLivingBase entity, ItemStack filter);
|
||||
|
||||
/**
|
||||
* This will write the filter to the stack's NBT, it ignores any previously installed filter and won't eject those
|
||||
* @param stack
|
||||
* @param entity
|
||||
* @param filter
|
||||
*/
|
||||
public void installFilter(ItemStack stack, EntityLivingBase entity, ItemStack filter);
|
||||
|
||||
/**
|
||||
* Damages the installed filter, if there is one
|
||||
* @param stack
|
||||
* @param entity
|
||||
* @param damage
|
||||
*/
|
||||
public void damageFilter(ItemStack stack, EntityLivingBase entity, int damage);
|
||||
}
|
||||
@ -1,31 +0,0 @@
|
||||
package api.hbm.item;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import com.hbm.util.Tuple.Pair;
|
||||
import com.hbm.util.Tuple.Triplet;
|
||||
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.util.IIcon;
|
||||
|
||||
public interface IGunHUDProvider {
|
||||
|
||||
/**
|
||||
* Gets the progress for the status bar right of the toolbar. Usually reserved for durability.
|
||||
* It's now a list! More bars for stuff like overheating and special charges!
|
||||
* @param stack
|
||||
* @param player
|
||||
* @return a list of triplets holding progress, foreground and background color.
|
||||
*/
|
||||
public List<Triplet<Double, Integer, Integer>> getStatusBars(ItemStack stack, EntityPlayer player);
|
||||
|
||||
/**
|
||||
* Gets a list of any size containing a preview icon for loaded ammo as well as text indicating the ammo count.
|
||||
* Can also be used for any kind of tooltip or maybe a built-in compass of sorts.
|
||||
* @param stack
|
||||
* @param player
|
||||
* @return
|
||||
*/
|
||||
public List<Pair<IIcon, String>> getAmmoInfo(ItemStack stack, EntityPlayer player);
|
||||
}
|
||||
@ -1,6 +0,0 @@
|
||||
package api.hbm.ntl;
|
||||
|
||||
public enum EnumStorageType {
|
||||
CLUTTER, //potentially unsorted storage (like crates) with many slots that have low capacity
|
||||
MASS //storage with very few lots (usually 1) and very high capacity
|
||||
}
|
||||
@ -1,29 +0,0 @@
|
||||
package api.hbm.ntl;
|
||||
|
||||
import net.minecraft.item.ItemStack;
|
||||
|
||||
public interface IStorageComponent {
|
||||
|
||||
/**
|
||||
* @return The type of storage this tile entity represents.
|
||||
*/
|
||||
public EnumStorageType getType();
|
||||
|
||||
/**
|
||||
* @return A StorageManifest instance containing all managed stacks
|
||||
*/
|
||||
public StorageManifest getManifest();
|
||||
|
||||
/**
|
||||
* @return An integer representing the version of the manifest. The higher the numberm, the more recent the manifest
|
||||
* (i.e. always count up), the version has to change every time the manifest updates.
|
||||
*/
|
||||
public int getManifestVersion();
|
||||
|
||||
/**
|
||||
* @param stack The stack to be stored
|
||||
* @param simulate Whether the changes should actually be written or if the operation is only for checking
|
||||
* @return The remainder of the stack after being stored, null if nothing remains
|
||||
*/
|
||||
public ItemStack storeStack(ItemStack stack, boolean simulate);
|
||||
}
|
||||
@ -1,68 +0,0 @@
|
||||
package api.hbm.ntl;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map.Entry;
|
||||
|
||||
import net.minecraft.item.Item;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
|
||||
public class StorageManifest {
|
||||
|
||||
public HashMap<Integer, MetaNode> itemMeta = new HashMap();
|
||||
|
||||
public void writeStack(ItemStack stack) {
|
||||
int id = Item.getIdFromItem(stack.getItem());
|
||||
|
||||
MetaNode meta = itemMeta.get(id);
|
||||
|
||||
if(meta == null) {
|
||||
meta = new MetaNode();
|
||||
itemMeta.put(id, meta);
|
||||
}
|
||||
|
||||
NBTNode nbt = meta.metaNBT.get(stack.getItemDamage());
|
||||
|
||||
if(nbt == null) {
|
||||
nbt = new NBTNode();
|
||||
meta.metaNBT.put(stack.getItemDamage(), nbt);
|
||||
}
|
||||
|
||||
NBTTagCompound compound = stack.hasTagCompound() ? (NBTTagCompound) stack.stackTagCompound.copy() : null;
|
||||
long amount = nbt.nbtAmount.containsKey(compound) ? nbt.nbtAmount.get(compound) : 0;
|
||||
|
||||
amount += stack.stackSize;
|
||||
|
||||
nbt.nbtAmount.put(compound, amount);
|
||||
}
|
||||
|
||||
public List<StorageStack> getStacks() {
|
||||
List<StorageStack> stacks = new ArrayList();
|
||||
|
||||
for(Entry<Integer, MetaNode> itemNode : itemMeta.entrySet()) {
|
||||
for(Entry<Integer, NBTNode> metaNode : itemNode.getValue().metaNBT.entrySet()) {
|
||||
for(Entry<NBTTagCompound, Long> nbtNode : metaNode.getValue().nbtAmount.entrySet()) {
|
||||
|
||||
ItemStack itemStack = new ItemStack(Item.getItemById(itemNode.getKey()), 1, metaNode.getKey());
|
||||
itemStack.stackTagCompound = nbtNode.getKey();
|
||||
StorageStack stack = new StorageStack(itemStack, nbtNode.getValue());
|
||||
stacks.add(stack);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return stacks;
|
||||
}
|
||||
|
||||
public class MetaNode {
|
||||
|
||||
public HashMap<Integer, NBTNode> metaNBT = new HashMap();
|
||||
}
|
||||
|
||||
public class NBTNode {
|
||||
|
||||
public HashMap<NBTTagCompound, Long> nbtAmount = new HashMap();
|
||||
}
|
||||
}
|
||||
@ -1,27 +0,0 @@
|
||||
package api.hbm.ntl;
|
||||
|
||||
import net.minecraft.item.ItemStack;
|
||||
|
||||
public class StorageStack {
|
||||
|
||||
private ItemStack type;
|
||||
private long amount;
|
||||
|
||||
public StorageStack(ItemStack type) {
|
||||
this(type, type.stackSize);
|
||||
}
|
||||
|
||||
public StorageStack(ItemStack type, long amount) {
|
||||
this.type = type.copy();
|
||||
this.amount = amount;
|
||||
this.type.stackSize = 0;
|
||||
}
|
||||
|
||||
public ItemStack getType() {
|
||||
return this.type.copy();
|
||||
}
|
||||
|
||||
public long getAmount() {
|
||||
return this.amount;
|
||||
}
|
||||
}
|
||||
@ -1,13 +0,0 @@
|
||||
package api.hbm.recipe;
|
||||
|
||||
public interface IRecipeRegisterListener {
|
||||
|
||||
/**
|
||||
* Called during SerializableRecipe.initialize(), after the defaults are loaded but before the template is written.
|
||||
* Due to the way the recipes are handled, calling it once is not enough, it has to be called once for every SerializableRecipe
|
||||
* instance handled, therefore the load operation passes the type name of the recipe, so that the listeners know what type of recipe
|
||||
* to register at that point. Note that the actual SerializableRecipe instance is irrelevant, since recipes are static anyway,
|
||||
* and direct tampering with SerializableRecipes is not recommended.
|
||||
*/
|
||||
public void onRecipeLoad(String recipeClassName);
|
||||
}
|
||||
@ -1,17 +0,0 @@
|
||||
package api.hbm.recipe;
|
||||
|
||||
/*
|
||||
|
||||
Quick guide on how to make robust and safe recipe integration:
|
||||
* Implement IRecipeRegisterListener, the resulting class will handle all recipes, and the onRecipeLoad method is called every time the SerializableRecipe system updates
|
||||
* Register your IRecipeRegisterListener using CompatExternal.registerRecipeRegisterListener, this has to happen before the SerializableRecipe initializes, doing this during PreInit should be safe
|
||||
* In your IRecipeRegisterListener, check the supplied recipe type string (which will be the class name of the SerializableRecipe currently being registered) and register your custom recipes accordingly using CompatRecipeRegistry
|
||||
|
||||
Explanation:
|
||||
* Order of operations is important for the recipes to work, if recipes are loaded outside the scope of SerializableRecipe.initialize, they will not work correctly
|
||||
* If recipes are registered before the init, they are deleted, if they are registered after the init, they will not be part of the config template file, and get deleted when running /ntmreload
|
||||
* Machines change all the time, so the recipe classes should not be considered API, since the compat would break immediately if a machine is changed or removed
|
||||
* CompatRecipeRegistry promises to never change its method signatures, and have solid sanity checking when recipes are registered, allowing it to make the bst of whatever data is thrown at it
|
||||
* Using this dedicated registry class means that even if a machine is changed or removed, the recipes will continue to work to the best of its abilities
|
||||
|
||||
*/
|
||||
@ -1,9 +0,0 @@
|
||||
package api.hbm.redstoneoverradio;
|
||||
|
||||
public interface IRORInfo {
|
||||
|
||||
public static String PREFIX_VALUE = "VAL:";
|
||||
public static String PREFIX_FUNCTION = "FUN:";
|
||||
|
||||
public String[] getFunctionInfo();
|
||||
}
|
||||
@ -1,41 +0,0 @@
|
||||
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";
|
||||
public static String EX_FORMAT = "Exception: Parameter in Invalid Format";
|
||||
|
||||
/** Runs a function on the ROR component, usually causing the component to change or do something. Returns are optional. */
|
||||
public String 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);
|
||||
if(parts[0].isEmpty()) throw new RORFunctionException(EX_NULL);
|
||||
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;
|
||||
}
|
||||
|
||||
public static int parseInt(String val, int min, int max) {
|
||||
int result = 0;
|
||||
try { result = Integer.parseInt(val); } catch(Exception x) { throw new RORFunctionException(EX_FORMAT); };
|
||||
if(result < min || result > max) throw new RORFunctionException(EX_FORMAT);
|
||||
return result;
|
||||
}
|
||||
}
|
||||
@ -1,7 +0,0 @@
|
||||
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 String provideRORValue(String name);
|
||||
}
|
||||
@ -1,8 +0,0 @@
|
||||
package api.hbm.redstoneoverradio;
|
||||
|
||||
public class RORFunctionException extends RuntimeException {
|
||||
|
||||
public RORFunctionException(String message) {
|
||||
super(message);
|
||||
}
|
||||
}
|
||||
@ -1,49 +0,0 @@
|
||||
/**
|
||||
* @author hbm
|
||||
*
|
||||
*/
|
||||
package api.hbm.redstoneoverradio;
|
||||
|
||||
/*
|
||||
|
||||
__ __ __ _________ ________ __ __ __ __ ______ __
|
||||
/_/| /_/\ /_/| /________/\ /_______/| /_/| /_/| /_/|_____ /_/| /_____/| /_/|
|
||||
| || | \\ | || | ___ \ \ | ______|/ | |\_| || | |/_____| || |___ || | ||
|
||||
| || | \ \\ | || | || \ \/ | ||___ | \/_/ |/ | ______ || /__| || | ||__
|
||||
| || | |\ \\| || | || \ || | |/__/| \ // | |/_____| || | ___|/ | |/_/|
|
||||
| || | ||\ \| || | || | || | ____|/ > </\ |____ ____|/_ | |/__/| | __|/
|
||||
| || | || \ | || | ||___/ |/ | ||_____ / __ \/| /_____| |______/| |______|/ | ||
|
||||
| || | || \ || | |/__/ / | |/____/| | /| \ || |________________|/ | ||
|
||||
|__|/ |__|/ \__|/ |_________/ |________|/ |__|/ |__|/ |__|/
|
||||
|
||||
(not AN index, INDEX is just the codename)
|
||||
(also no i did not use an ASCII font generator i spent like half an hour on this)
|
||||
|
||||
INDEX includes Redstone-over-Radio APIs for interacting with ROR torches in ways more complex than simple comparator output,
|
||||
simply put, certain ROR torches may run functions on the ROR component or read more complex values. This means that with the ROR
|
||||
system alone, one can make complex monitoring and logic systems controlling machines via redstone automation.
|
||||
|
||||
INDEX includes:
|
||||
- IRORInfo, an interface that provides a list of all valid functions. This interface should never be implemented directly because
|
||||
it is worthless on its own, rather it is extended by all other ROR API interfaces
|
||||
- IRORValueProvider, a simple interface that returns values based on names, serving as a simple getter. Get operations should never
|
||||
cause changes within the ROR component, and should be kept simple
|
||||
- IRORInteractive, an interface providing functions equivalent to java, usually performing a state change within the component and
|
||||
optionally returning a value
|
||||
|
||||
On the implementation side we can expect:
|
||||
- ROR readers, torches which have a list of named values which are read, as well as frequencies on which these values are broadcasted
|
||||
- ROR controllers, torches which have one frequency and can receive commands with parameters which will be executed on the component
|
||||
- ROR programmers, torches which have a list of frequencies and return frequencies which can receive commands with parameters and
|
||||
then send the return value on the return frequency
|
||||
- ROR logic receivers, torches which can turn signals into redstone based on various factors like arithmetic comparison and string
|
||||
operators like matches, matches not and substring (thanks to vær for taking care of that)
|
||||
|
||||
ROR programmers can indeed do everything that the readers and controllers can, but their added complexity requires more GUI elements
|
||||
which are more time-consuming to set up and limits the amount of command channels available, hence why readers and controllers exist
|
||||
when only a simple solution is required
|
||||
|
||||
Addendum: While the RTTY system can support any arbitrary object as a signal, INDEX will strictly use strings, since that simplifies
|
||||
things regarding serialization and saving signals to NBT. Counters already use a parse to int32 function, so this still checks out.
|
||||
|
||||
*/
|
||||
@ -1,12 +0,0 @@
|
||||
package api.hbm.tile;
|
||||
|
||||
public interface IHeatSource {
|
||||
|
||||
public int getHeatStored();
|
||||
|
||||
/**
|
||||
* Removes heat from the system. Implementation has to include the checks preventing the heat from going into the negative.
|
||||
* @param heat
|
||||
*/
|
||||
public void useUpHeat(int heat);
|
||||
}
|
||||
@ -1,20 +0,0 @@
|
||||
package api.hbm.tile;
|
||||
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
|
||||
/**
|
||||
* Info providers for ENERGY CONTROL
|
||||
*
|
||||
* For EC's implementation, refer to:
|
||||
* https://github.com/Zuxelus/Energy-Control/blob/1.7.10/src/main/java/com/zuxelus/energycontrol/crossmod/CrossHBM.java
|
||||
* https://github.com/Zuxelus/Energy-Control/blob/1.7.10/src/main/java/com/zuxelus/energycontrol/items/cards/ItemCardHBM.java
|
||||
* https://github.com/Zuxelus/Energy-Control/blob/1.7.10/src/main/java/com/zuxelus/energycontrol/utils/DataHelper.java
|
||||
*
|
||||
* (keys are from DataHelper.java and CrossHBM.java)
|
||||
*
|
||||
* */
|
||||
public interface IInfoProviderEC {
|
||||
|
||||
/** Adds any custom data that isn't covered by the standard energy and fluid implementations. */
|
||||
public void provideExtraInfo(NBTTagCompound data);
|
||||
}
|
||||
@ -1,55 +0,0 @@
|
||||
package api.hbm.tile;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
import com.hbm.util.Compat;
|
||||
import com.hbm.util.Tuple.Quartet;
|
||||
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
/** For anything that should be removed off networks when considered unloaded, only affects providers and receivers, not links. Must not necessarily be a tile. */
|
||||
public interface ILoadedTile {
|
||||
|
||||
public boolean isLoaded();
|
||||
|
||||
// should we gunk this into the API? no, but i don't care
|
||||
public static class TileAccessCache {
|
||||
|
||||
public static Map<Quartet, TileAccessCache> cache = new HashMap();
|
||||
|
||||
public static int NULL_CACHE = 20;
|
||||
public static int NONNULL_CACHE = 60;
|
||||
|
||||
public TileEntity tile;
|
||||
public long expiresOn;
|
||||
|
||||
public TileAccessCache(TileEntity tile, long expiresOn) {
|
||||
this.tile = tile;
|
||||
this.expiresOn = expiresOn;
|
||||
}
|
||||
|
||||
public boolean hasExpired(long worldTime) {
|
||||
if(tile != null && tile.isInvalid()) return true;
|
||||
if(worldTime >= expiresOn) return true;
|
||||
if(tile instanceof ILoadedTile && !((ILoadedTile) tile).isLoaded()) return true;
|
||||
return false;
|
||||
}
|
||||
|
||||
public static Quartet publicCumRag = new Quartet(0, 0, 0, 0);
|
||||
public static TileEntity getTileOrCache(World world, int x, int y, int z) {
|
||||
publicCumRag.mangle(x, y, z, world.provider.dimensionId);
|
||||
TileAccessCache cache = TileAccessCache.cache.get(publicCumRag);
|
||||
|
||||
if(cache == null || cache.hasExpired(world.getTotalWorldTime())) {
|
||||
TileEntity tile = Compat.getTileStandard(world, x, y, z);
|
||||
cache = new TileAccessCache(tile, world.getTotalWorldTime() + (tile == null ? NULL_CACHE : NONNULL_CACHE));
|
||||
TileAccessCache.cache.put(publicCumRag.clone(), cache);
|
||||
return tile;
|
||||
} else {
|
||||
return cache.tile;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
2444
src/main/java/assets/hbm/lang/de_DE.lang
Normal file
2444
src/main/java/assets/hbm/lang/de_DE.lang
Normal file
File diff suppressed because it is too large
Load Diff
2019
src/main/java/assets/hbm/lang/en_NT.lang
Normal file
2019
src/main/java/assets/hbm/lang/en_NT.lang
Normal file
File diff suppressed because it is too large
Load Diff
2444
src/main/java/assets/hbm/lang/en_US.lang
Normal file
2444
src/main/java/assets/hbm/lang/en_US.lang
Normal file
File diff suppressed because it is too large
Load Diff
@ -37,7 +37,7 @@ hbmfluid.heatingoil=Huile de chauffage
|
||||
hbmfluid.naphtha=Naphta
|
||||
hbmfluid.lightoil=Huile légère
|
||||
hbmfluid.petroleum=Gaz pétrolier
|
||||
hbmfluid.peroxide=Peroxyde d'hydrogène
|
||||
hbmfluid.acid=Peroxyde d'hydrogène
|
||||
hbmfluid.watz=Boue vénéneuse
|
||||
hbmfluid.biogas=Biogaz
|
||||
hbmfluid.biofuel=Biocarburant
|
||||
@ -477,9 +477,6 @@ 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
|
||||
@ -916,7 +913,6 @@ 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
|
||||
@ -1127,9 +1123,9 @@ item.stealth_boy.name=Module de furtiviter
|
||||
entity.hbm.entity_bullet.name=Balle
|
||||
entity.hbm.entity_rocket.name=Roquettes
|
||||
entity.hbm.entity_schrabnel.name=Shrapnel
|
||||
entity.hbm.entity_mob_nuclear_creeper.name=Creeper nucléaire
|
||||
entity.hbm.entity_mob_hunter_chopper.name=Hélicoptère de chasse
|
||||
entity.hbm.entity_cyber_crab.name=Cyber-crabe
|
||||
entity.entity_mob_nuclear_creeper.name=Creeper nucléaire
|
||||
entity.entity_mob_hunter_chopper.name=Hélicoptère de chasse
|
||||
entity.entity_cyber_crab.name=Cyber-crabe
|
||||
|
||||
item.cap_aluminium.name=Capuchon en aluminium
|
||||
item.hull_small_steel.name=Petite coque en acier
|
||||
2963
src/main/java/assets/hbm/lang/ns_OC.lang
Normal file
2963
src/main/java/assets/hbm/lang/ns_OC.lang
Normal file
File diff suppressed because it is too large
Load Diff
2695
src/main/java/assets/hbm/lang/ru_RU.lang
Normal file
2695
src/main/java/assets/hbm/lang/ru_RU.lang
Normal file
File diff suppressed because it is too large
Load Diff
1262
src/main/java/assets/hbm/lang/te_ST.lang
Normal file
1262
src/main/java/assets/hbm/lang/te_ST.lang
Normal file
File diff suppressed because it is too large
Load Diff
2437
src/main/java/assets/hbm/lang/zh_CN.lang
Normal file
2437
src/main/java/assets/hbm/lang/zh_CN.lang
Normal file
File diff suppressed because it is too large
Load Diff
690
src/main/java/assets/hbm/models/BalefireCrashed.obj
Normal file
690
src/main/java/assets/hbm/models/BalefireCrashed.obj
Normal file
@ -0,0 +1,690 @@
|
||||
# Blender v2.76 (sub 0) OBJ File: 'BalefireCrashed.blend'
|
||||
# www.blender.org
|
||||
o Sphere
|
||||
v -0.192358 1.600254 -1.342660
|
||||
v -0.385711 1.581224 -1.324975
|
||||
v -0.515121 2.447250 -1.807938
|
||||
v 0.002518 -3.248903 2.055765
|
||||
v 0.082170 -3.153232 2.205975
|
||||
v -0.260442 -2.766209 2.233894
|
||||
v 0.147114 2.008001 -0.702470
|
||||
v 0.215449 1.926895 -0.866215
|
||||
v 0.086039 2.792921 -1.349178
|
||||
v -0.592517 -2.498903 1.766917
|
||||
v -0.398402 -2.931915 1.973723
|
||||
v 0.223221 -3.072126 2.313615
|
||||
v -0.016133 -2.625729 2.420332
|
||||
v 0.209324 1.831224 -1.036127
|
||||
v 0.129673 1.735553 -1.186336
|
||||
v 0.000262 2.601579 -1.669299
|
||||
v -0.433214 -2.307561 2.067336
|
||||
v -0.354920 2.062194 -0.470774
|
||||
v -0.484330 2.928220 -0.953737
|
||||
v -0.665308 2.874027 -1.002420
|
||||
v 0.017704 2.874027 -1.185433
|
||||
v -0.114686 2.928220 -1.052783
|
||||
v 0.297331 -2.531864 2.504655
|
||||
v 0.210847 -2.036963 2.379984
|
||||
v 0.079914 2.697250 -1.519089
|
||||
v 0.404200 -3.017933 2.362299
|
||||
v -0.535898 2.008001 -0.519458
|
||||
v -0.806360 2.792921 -1.110060
|
||||
v 0.632228 -2.498903 2.474023
|
||||
v 0.597553 -1.998903 2.344614
|
||||
v -0.161567 2.081224 -0.488459
|
||||
v 0.014724 2.062194 -0.569820
|
||||
v 0.597553 -2.998903 2.344614
|
||||
v -0.290977 2.947250 -0.971422
|
||||
v 0.937573 -2.531864 2.333102
|
||||
v -0.756601 1.831224 -0.777308
|
||||
v -0.676950 1.926895 -0.627098
|
||||
v 0.773844 -3.017933 2.263253
|
||||
v -0.762726 1.735553 -0.947218
|
||||
v -0.892136 2.601579 -1.430181
|
||||
v -0.823802 2.520473 -1.593927
|
||||
v 1.166879 -2.625729 2.103345
|
||||
v 1.214915 -2.145350 1.916591
|
||||
v -0.694392 1.654447 -1.110963
|
||||
v -0.691412 2.466280 -1.726577
|
||||
v 0.906234 -3.072126 2.130603
|
||||
v 1.285238 -2.766209 1.819730
|
||||
v -0.886012 2.697250 -1.260270
|
||||
v 0.974568 -3.153232 1.966858
|
||||
v -0.011379 1.654447 -1.293977
|
||||
v -0.321768 2.466280 -1.825623
|
||||
v 0.968443 -3.248903 1.796946
|
||||
v 1.274630 -2.931916 1.525435
|
||||
v 0.662393 0.773857 -0.982993
|
||||
v 1.339334 -2.498903 1.249279
|
||||
v -0.720955 0.503259 -1.097548
|
||||
v -0.562002 1.600254 -1.243614
|
||||
v 0.888792 -3.344573 1.646737
|
||||
v -0.950852 1.156541 0.135484
|
||||
v 1.136669 -3.097622 1.265264
|
||||
v 1.180032 -2.690245 0.948859
|
||||
v 0.432497 1.427138 0.250040
|
||||
v 0.697277 1.318752 -0.015261
|
||||
v 0.747740 -3.425679 1.539097
|
||||
v 0.892360 -3.238102 1.078826
|
||||
v -0.668748 1.318752 0.350765
|
||||
v 0.897927 -2.852456 0.733579
|
||||
v 0.380289 0.611645 -1.198273
|
||||
v 0.566762 -3.479873 1.490413
|
||||
v 0.578896 -3.331967 0.994504
|
||||
v -0.985735 0.611646 -0.832247
|
||||
v -0.306791 1.427138 0.448132
|
||||
v 0.373409 -3.498903 1.508098
|
||||
v 0.243999 -3.364928 1.025135
|
||||
v 0.833946 1.156540 -0.342751
|
||||
v 0.535970 -2.960843 0.636212
|
||||
v 0.197118 -3.479872 1.589459
|
||||
v 0.018332 0.503259 -1.295640
|
||||
v 0.149265 -2.998903 0.671582
|
||||
v -0.061346 -3.331967 1.166056
|
||||
v -1.122404 0.773857 -0.504757
|
||||
v 0.079915 1.465199 0.412762
|
||||
v -0.203317 -2.960842 0.834304
|
||||
v -0.290652 -3.238101 1.395814
|
||||
v 0.821696 0.965199 -0.682573
|
||||
v 0.064728 -3.425679 1.722109
|
||||
v -0.368373 0.465199 -1.260270
|
||||
v -0.409011 -3.097622 1.679429
|
||||
v -0.604766 -2.690244 1.427095
|
||||
v -1.110155 0.965199 -0.164935
|
||||
v -0.003607 -3.344573 1.885854
|
||||
v 0.502818 -3.364928 1.991061
|
||||
v 0.950135 -2.036963 2.181892
|
||||
v -0.151110 -2.145349 2.282616
|
||||
v 1.351584 -2.307561 1.589101
|
||||
v -0.468097 -2.852456 1.099605
|
||||
v -0.140790 2.520473 -1.776940
|
||||
v 0.304880 2.200599 -2.418174
|
||||
v -1.530379 2.200599 -1.926418
|
||||
v -1.407440 1.377875 -1.467603
|
||||
v -0.981567 2.327875 0.121777
|
||||
v -1.015420 2.331225 0.188618
|
||||
v 0.916431 2.331225 -0.329019
|
||||
v 0.853692 2.327875 -0.369979
|
||||
v 0.730753 3.150599 -0.828793
|
||||
v -1.104505 3.150599 -0.337037
|
||||
v 0.468144 1.331224 -2.002052
|
||||
v 0.338734 2.197250 -2.485015
|
||||
v -1.463708 1.331224 -1.484414
|
||||
v -1.593117 2.197250 -1.967377
|
||||
v 0.427819 1.377875 -1.959360
|
||||
v -1.144830 3.197250 -0.294344
|
||||
v 0.787022 3.197250 -0.811982
|
||||
v 0.640756 1.852875 -1.164669
|
||||
v 0.517817 2.675599 -1.623483
|
||||
v -1.317442 2.675599 -1.131727
|
||||
v -1.194503 1.852875 -0.672913
|
||||
v -0.612749 2.200599 -2.172296
|
||||
v -0.489810 1.377875 -1.713482
|
||||
v -0.186876 3.150599 -0.582915
|
||||
v -0.063937 2.327875 -0.124101
|
||||
v 1.214915 -2.145350 1.916591
|
||||
v 0.432497 1.427138 0.250040
|
||||
v 0.697277 1.318752 -0.015261
|
||||
v 0.950135 -2.036963 2.181892
|
||||
vt 0.519290 0.058179
|
||||
vt 0.519290 0.044033
|
||||
vt 0.591799 0.044033
|
||||
vt 0.073830 0.171353
|
||||
vt 0.073830 0.157208
|
||||
vt 0.111004 0.152030
|
||||
vt 0.519289 0.199636
|
||||
vt 0.519289 0.185490
|
||||
vt 0.591797 0.185490
|
||||
vt 0.148490 0.178426
|
||||
vt 0.111004 0.176531
|
||||
vt 0.073830 0.143062
|
||||
vt 0.073830 0.128916
|
||||
vt 0.111004 0.123738
|
||||
vt 0.519290 0.143053
|
||||
vt 0.519290 0.128907
|
||||
vt 0.591799 0.128907
|
||||
vt 0.148490 0.150135
|
||||
vt 0.111004 0.148240
|
||||
vt 0.519281 0.100625
|
||||
vt 0.591789 0.100625
|
||||
vt 0.591789 0.114770
|
||||
vt 0.519269 0.270370
|
||||
vt 0.591778 0.270370
|
||||
vt 0.591778 0.284515
|
||||
vt 0.111004 0.119948
|
||||
vt 0.111004 0.095447
|
||||
vt 0.148490 0.093552
|
||||
vt 0.519289 0.157199
|
||||
vt 0.591798 0.157199
|
||||
vt 0.591798 0.171345
|
||||
vt 0.073830 0.114771
|
||||
vt 0.073830 0.100625
|
||||
vt 0.591790 0.143062
|
||||
vt 0.111004 0.091657
|
||||
vt 0.111004 0.067156
|
||||
vt 0.148490 0.065261
|
||||
vt 0.073830 0.086479
|
||||
vt 0.073830 0.072333
|
||||
vt 0.519280 0.086479
|
||||
vt 0.519280 0.072334
|
||||
vt 0.591788 0.072334
|
||||
vt 0.111004 0.063365
|
||||
vt 0.111004 0.038864
|
||||
vt 0.519282 0.171354
|
||||
vt 0.073830 0.058188
|
||||
vt 0.073830 0.044042
|
||||
vt 0.519281 0.213791
|
||||
vt 0.591790 0.213791
|
||||
vt 0.591790 0.227937
|
||||
vt 0.110996 0.289698
|
||||
vt 0.110996 0.265197
|
||||
vt 0.148481 0.263302
|
||||
vt 0.519280 0.242082
|
||||
vt 0.591788 0.242082
|
||||
vt 0.591788 0.256228
|
||||
vt 0.073822 0.284520
|
||||
vt 0.073822 0.270375
|
||||
vt 0.148498 0.206708
|
||||
vt 0.111013 0.204813
|
||||
vt 0.111013 0.180312
|
||||
vt 0.591790 0.199645
|
||||
vt 0.073839 0.199635
|
||||
vt 0.073839 0.185490
|
||||
vt 0.867947 0.185572
|
||||
vt 0.852531 0.208643
|
||||
vt 0.802245 0.198641
|
||||
vt 0.073838 0.171344
|
||||
vt 0.438531 0.121834
|
||||
vt 0.438523 0.263301
|
||||
vt 0.519281 0.284519
|
||||
vt 0.438523 0.150135
|
||||
vt 0.148498 0.121834
|
||||
vt 0.438511 0.291588
|
||||
vt 0.148498 0.093543
|
||||
vt 0.438531 0.093543
|
||||
vt 0.111013 0.067147
|
||||
vt 0.438523 0.235009
|
||||
vt 0.111013 0.091648
|
||||
vt 0.438523 0.093552
|
||||
vt 0.519281 0.114770
|
||||
vt 0.438531 0.206709
|
||||
vt 0.438531 0.178417
|
||||
vt 0.438531 0.065252
|
||||
vt 0.148489 0.291592
|
||||
vt 0.519281 0.227937
|
||||
vt 0.111004 0.261405
|
||||
vt 0.111004 0.236904
|
||||
vt 0.519289 0.171345
|
||||
vt 0.073830 0.256227
|
||||
vt 0.073830 0.242082
|
||||
vt 0.438531 0.036960
|
||||
vt 0.111004 0.233114
|
||||
vt 0.111004 0.208613
|
||||
vt 0.073830 0.227936
|
||||
vt 0.073830 0.213790
|
||||
vt 0.036969 0.164280
|
||||
vt 0.036969 0.135989
|
||||
vt 0.036969 0.107698
|
||||
vt 0.036969 0.079406
|
||||
vt 0.036970 0.051115
|
||||
vt 0.148490 0.036969
|
||||
vt 0.036961 0.277447
|
||||
vt 0.036978 0.192562
|
||||
vt 0.036969 0.249154
|
||||
vt 0.036969 0.220863
|
||||
vt 0.148490 0.235009
|
||||
vt 0.192327 0.347853
|
||||
vt 0.192327 0.485619
|
||||
vt 0.123444 0.485619
|
||||
vt 0.699469 0.172501
|
||||
vt 0.699469 0.034735
|
||||
vt 0.768352 0.034735
|
||||
vt 0.443577 0.396280
|
||||
vt 0.584968 0.400334
|
||||
vt 0.439951 0.400334
|
||||
vt 0.581343 0.396280
|
||||
vt 0.443577 0.327397
|
||||
vt 0.581343 0.327397
|
||||
vt 0.319721 0.480769
|
||||
vt 0.319721 0.335752
|
||||
vt 0.392229 0.335752
|
||||
vt 0.695415 0.176127
|
||||
vt 0.622907 0.031110
|
||||
vt 0.695416 0.031110
|
||||
vt 0.903489 0.115635
|
||||
vt 0.964650 0.186331
|
||||
vt 0.903489 0.188144
|
||||
vt 0.866342 0.040735
|
||||
vt 0.866342 0.109618
|
||||
vt 0.805181 0.111431
|
||||
vt 0.712656 0.540579
|
||||
vt 0.651495 0.469883
|
||||
vt 0.712656 0.468071
|
||||
vt 0.781166 0.340069
|
||||
vt 0.781166 0.271186
|
||||
vt 0.842327 0.269373
|
||||
vt 0.622907 0.176127
|
||||
vt 0.618854 0.172502
|
||||
vt 0.443577 0.476895
|
||||
vt 0.439951 0.472842
|
||||
vt 0.584968 0.472842
|
||||
vt 0.396282 0.477144
|
||||
vt 0.392229 0.480769
|
||||
vt 0.315668 0.339377
|
||||
vt 0.315667 0.477144
|
||||
vt 0.246785 0.339377
|
||||
vt 0.876104 0.584646
|
||||
vt 0.877917 0.552017
|
||||
vt 0.946800 0.552017
|
||||
vt 0.558888 0.554541
|
||||
vt 0.490005 0.554541
|
||||
vt 0.488192 0.521912
|
||||
vt 0.971580 0.044744
|
||||
vt 0.900884 0.077373
|
||||
vt 0.902697 0.044744
|
||||
vt 0.927650 0.489798
|
||||
vt 0.925837 0.522427
|
||||
vt 0.856954 0.522427
|
||||
vt 0.835610 0.458829
|
||||
vt 0.933025 0.389946
|
||||
vt 0.933025 0.458829
|
||||
vt 0.724805 0.327967
|
||||
vt 0.724805 0.425382
|
||||
vt 0.655922 0.425382
|
||||
vt 0.636432 0.274081
|
||||
vt 0.636432 0.205198
|
||||
vt 0.733848 0.205198
|
||||
vt 0.957268 0.244504
|
||||
vt 0.957268 0.341919
|
||||
vt 0.888385 0.341919
|
||||
vt 0.042829 0.347853
|
||||
vt 0.046882 0.344228
|
||||
vt 0.046882 0.489245
|
||||
vt 0.119390 0.344228
|
||||
vt 0.119390 0.489245
|
||||
vt 0.591799 0.058179
|
||||
vt 0.591788 0.086479
|
||||
vt 0.591790 0.171354
|
||||
vt 0.519280 0.256228
|
||||
vt 0.796832 0.185572
|
||||
vt 0.796832 0.171427
|
||||
vt 0.802245 0.158358
|
||||
vt 0.812247 0.148355
|
||||
vt 0.825316 0.142942
|
||||
vt 0.839462 0.142942
|
||||
vt 0.852531 0.148355
|
||||
vt 0.862533 0.158357
|
||||
vt 0.867947 0.171426
|
||||
vt 0.862534 0.198641
|
||||
vt 0.839462 0.214057
|
||||
vt 0.825317 0.214057
|
||||
vt 0.812248 0.208644
|
||||
vt 0.123444 0.347853
|
||||
vt 0.768352 0.172501
|
||||
vt 0.964650 0.117448
|
||||
vt 0.805181 0.038922
|
||||
vt 0.651495 0.538767
|
||||
vt 0.842327 0.341882
|
||||
vt 0.618854 0.034735
|
||||
vt 0.581343 0.476896
|
||||
vt 0.396282 0.339378
|
||||
vt 0.246784 0.477143
|
||||
vt 0.948613 0.584646
|
||||
vt 0.560701 0.521912
|
||||
vt 0.973392 0.077373
|
||||
vt 0.855141 0.489798
|
||||
vt 0.835610 0.389946
|
||||
vt 0.655922 0.327967
|
||||
vt 0.733848 0.274081
|
||||
vt 0.888385 0.244504
|
||||
vt 0.042829 0.485620
|
||||
vt 0.021699 0.793428
|
||||
vt 0.021698 0.699267
|
||||
vt 0.986999 0.699267
|
||||
vt 0.986999 0.793427
|
||||
vn -0.031400 -0.490400 -0.870900
|
||||
vn -0.554500 -0.536800 0.635900
|
||||
vn 0.927700 0.277800 0.249500
|
||||
vn -0.841100 -0.125800 0.526100
|
||||
vn -0.393900 -0.408100 0.823600
|
||||
vn 0.903600 -0.097500 -0.417000
|
||||
vn -0.623400 0.048500 0.780400
|
||||
vn -0.350300 0.415700 0.839300
|
||||
vn 0.723000 0.415700 0.551700
|
||||
vn -0.305900 0.182000 0.934500
|
||||
vn 0.991100 0.097500 -0.090700
|
||||
vn -0.159500 -0.309600 0.937400
|
||||
vn -0.678600 0.277800 0.679900
|
||||
vn 0.063300 0.254200 0.965100
|
||||
vn 0.408300 0.490400 0.770000
|
||||
vn 0.113000 -0.256300 0.960000
|
||||
vn 0.031400 0.490400 0.870900
|
||||
vn 0.427800 0.254200 0.867400
|
||||
vn -0.903600 0.097500 0.417000
|
||||
vn 0.382100 -0.256300 0.887900
|
||||
vn -0.927700 -0.277800 -0.249500
|
||||
vn 0.732200 0.182000 0.656400
|
||||
vn -0.723000 -0.415700 -0.551700
|
||||
vn 0.606800 -0.309600 0.732100
|
||||
vn 0.930100 0.048500 0.364100
|
||||
vn -0.991100 -0.097500 0.090600
|
||||
vn 0.752900 -0.408100 0.516300
|
||||
vn 0.350300 -0.415700 -0.839300
|
||||
vn -0.129400 0.866000 -0.483000
|
||||
vn 0.798200 -0.536800 0.273500
|
||||
vn 0.754400 0.293700 -0.587100
|
||||
vn 0.991400 -0.125800 0.035100
|
||||
vn -0.423600 -0.059000 -0.903900
|
||||
vn 0.735700 -0.676000 0.040400
|
||||
vn -0.868300 0.468900 0.161800
|
||||
vn 0.906900 -0.314500 -0.280600
|
||||
vn 0.592200 0.754600 0.282700
|
||||
vn 0.575100 -0.804700 -0.147300
|
||||
vn -0.666300 0.630700 0.397800
|
||||
vn 0.689200 -0.488800 -0.534900
|
||||
vn 0.552300 0.131900 -0.823100
|
||||
vn 0.340700 -0.903200 -0.261000
|
||||
vn -0.706100 0.008000 -0.708000
|
||||
vn 0.371700 -0.622200 -0.689000
|
||||
vn -0.371500 0.754600 0.540900
|
||||
vn 0.068200 -0.956500 -0.283600
|
||||
vn 0.775900 0.630700 0.011400
|
||||
vn 0.002500 -0.694400 -0.719600
|
||||
vn -0.200900 -0.956500 -0.211500
|
||||
vn 0.257500 0.008000 -0.966200
|
||||
vn -0.362000 -0.694400 -0.621900
|
||||
vn -0.889900 0.131900 -0.436700
|
||||
vn -0.028800 0.821600 0.569300
|
||||
vn -0.666400 -0.622200 -0.410900
|
||||
vn 0.832900 0.468900 -0.294000
|
||||
vn -0.425600 -0.903200 -0.055700
|
||||
vn -0.085200 -0.059000 -0.994600
|
||||
vn -0.864300 -0.488800 -0.118600
|
||||
vn -0.946800 0.293700 -0.131300
|
||||
vn -0.571700 -0.804700 0.160000
|
||||
vn -0.408300 -0.490400 -0.769900
|
||||
vn -0.113300 -0.809700 0.575800
|
||||
vn -0.054000 -0.762200 0.645100
|
||||
vn 0.032500 -0.725800 0.687100
|
||||
vn 0.133100 -0.706200 0.695400
|
||||
vn 0.232400 -0.706200 0.668800
|
||||
vn 0.408300 0.490400 0.769900
|
||||
vn 0.315400 -0.725800 0.611300
|
||||
vn 0.369300 -0.762200 0.531700
|
||||
vn 0.386000 -0.809700 0.442000
|
||||
vn 0.363000 -0.861100 0.356000
|
||||
vn 0.303700 -0.908600 0.286700
|
||||
vn 0.217100 -0.945000 0.244700
|
||||
vn 0.116600 -0.964600 0.236400
|
||||
vn 0.017200 -0.964600 0.263000
|
||||
vn 0.678600 -0.277800 -0.679900
|
||||
vn -0.065700 -0.945000 0.320500
|
||||
vn -0.119600 -0.908600 0.400100
|
||||
vn -0.925700 -0.314500 0.210400
|
||||
vn -0.136400 -0.861100 0.489800
|
||||
vn 0.309600 0.821600 0.478700
|
||||
vn -0.617000 -0.676000 0.402900
|
||||
vn 0.224100 0.500000 0.836500
|
||||
vn 0.965900 -0.000000 -0.258800
|
||||
vn 0.015500 -0.998200 0.057900
|
||||
vn -0.224100 -0.500000 -0.836500
|
||||
vn -0.965900 0.000000 0.258800
|
||||
vn -0.524500 0.353600 0.774500
|
||||
vn 0.841500 0.353600 0.408500
|
||||
vn 0.316200 0.774600 -0.547700
|
||||
vn -0.216000 0.551000 -0.806100
|
||||
vn -0.547700 0.774600 -0.316200
|
||||
vn -0.316200 -0.774600 0.547700
|
||||
vn -0.015500 0.998200 -0.057900
|
||||
vn 0.216000 -0.551000 0.806100
|
||||
vn 0.547700 -0.774600 0.316200
|
||||
vn -0.991100 -0.097500 0.090700
|
||||
vn -0.129400 0.866000 -0.482900
|
||||
vn -0.408300 -0.490400 -0.770000
|
||||
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 10/10/4 11/11/4 6/6/4
|
||||
f 5/12/5 12/13/5 13/14/5
|
||||
f 14/15/6 15/16/6 16/17/6
|
||||
f 17/18/7 6/19/7 13/14/7
|
||||
f 18/20/8 19/21/8 20/22/8
|
||||
f 7/23/9 21/24/9 22/25/9
|
||||
f 13/26/10 23/27/10 24/28/10
|
||||
f 14/29/11 25/30/11 9/31/11
|
||||
f 12/32/12 26/33/12 23/27/12
|
||||
f 27/16/13 20/17/13 28/34/13
|
||||
f 23/35/14 29/36/14 30/37/14
|
||||
f 31/1/15 32/2/15 22/3/15
|
||||
f 23/35/16 26/38/16 33/39/16
|
||||
f 18/40/17 31/41/17 34/42/17
|
||||
f 30/37/18 29/43/18 35/44/18
|
||||
f 36/45/19 37/29/19 28/30/19
|
||||
f 33/46/20 38/47/20 35/44/20
|
||||
f 39/48/21 40/49/21 41/50/21
|
||||
f 35/51/22 42/52/22 43/53/22
|
||||
f 44/54/23 41/55/23 45/56/23
|
||||
f 38/57/24 46/58/24 42/52/24
|
||||
f 43/59/25 42/60/25 47/61/25
|
||||
f 36/8/26 48/9/26 40/62/26
|
||||
f 42/60/27 46/63/27 49/64/27
|
||||
f 50/40/28 1/41/28 51/42/28
|
||||
f 16/65/29 51/66/29 40/67/29
|
||||
f 49/68/30 52/5/30 53/6/30
|
||||
f 54/69/31 15/16/31 14/15/31
|
||||
f 47/11/32 53/6/32 55/18/32
|
||||
f 56/70/33 57/23/33 2/71/33
|
||||
f 53/19/34 52/12/34 58/13/34
|
||||
f 59/72/35 37/29/35 36/45/35
|
||||
f 53/19/36 60/14/36 61/73/36
|
||||
f 62/74/37 63/70/37 7/23/37
|
||||
f 58/32/38 64/33/38 65/27/38
|
||||
f 66/69/39 27/16/39 37/15/39
|
||||
f 60/26/40 65/27/40 67/75/40
|
||||
f 54/69/41 68/76/41 50/20/41
|
||||
f 64/38/42 69/39/42 70/77/42
|
||||
f 56/70/43 71/78/43 44/54/43
|
||||
f 67/75/44 65/79/44 70/77/44
|
||||
f 72/80/45 18/20/45 27/81/45
|
||||
f 69/46/46 73/47/46 74/44/46
|
||||
f 63/82/47 75/83/47 8/8/47
|
||||
f 76/37/48 70/43/48 74/44/48
|
||||
f 74/51/49 73/57/49 77/58/49
|
||||
f 78/84/50 1/41/50 50/40/50
|
||||
f 79/85/51 74/51/51 80/52/51
|
||||
f 81/82/52 39/48/52 44/86/52
|
||||
f 82/84/53 31/41/53 18/40/53
|
||||
f 83/53/54 80/87/54 84/88/54
|
||||
f 85/72/55 14/29/55 8/89/55
|
||||
f 77/90/56 86/91/56 84/88/56
|
||||
f 78/84/57 87/92/57 2/2/57
|
||||
f 84/93/58 88/94/58 89/59/58
|
||||
f 90/83/59 36/8/59 39/7/59
|
||||
f 86/95/60 91/96/60 88/94/60
|
||||
f 57/23/61 45/24/61 3/25/61
|
||||
f 4/4/62 92/97/62 5/5/62
|
||||
f 5/12/63 92/98/63 12/13/63
|
||||
f 10/10/19 17/18/19 59/72/19
|
||||
f 12/32/64 92/99/64 26/33/64
|
||||
f 61/73/6 54/69/6 85/72/6
|
||||
f 26/38/65 92/100/65 33/39/65
|
||||
f 55/18/11 85/72/11 75/83/11
|
||||
f 33/46/66 92/101/66 38/47/66
|
||||
f 93/102/67 62/92/67 82/84/67
|
||||
f 38/57/68 92/103/68 46/58/68
|
||||
f 30/37/17 82/84/17 72/80/17
|
||||
f 46/63/69 92/104/69 49/64/69
|
||||
f 79/102/1 87/92/1 78/84/1
|
||||
f 49/68/70 92/97/70 52/5/70
|
||||
f 94/73/13 66/69/13 59/72/13
|
||||
f 76/37/28 78/84/28 68/76/28
|
||||
f 52/12/71 92/98/71 58/13/71
|
||||
f 94/73/8 24/28/8 72/80/8
|
||||
f 58/32/72 92/99/72 64/33/72
|
||||
f 95/10/3 75/83/3 63/82/3
|
||||
f 64/38/73 92/100/73 69/39/73
|
||||
f 69/46/74 92/101/74 73/47/74
|
||||
f 89/59/21 81/82/21 71/78/21
|
||||
f 73/57/75 92/103/75 77/58/75
|
||||
f 67/75/76 68/76/76 54/69/76
|
||||
f 77/90/77 92/105/77 86/91/77
|
||||
f 79/85/61 83/53/61 56/70/61
|
||||
f 86/95/78 92/106/78 91/96/78
|
||||
f 83/53/23 96/107/23 71/78/23
|
||||
f 89/59/79 88/60/79 11/61/79
|
||||
f 91/63/80 92/104/80 4/64/80
|
||||
f 62/92/81 32/2/81 31/1/81
|
||||
f 10/10/26 90/83/26 81/82/26
|
||||
f 91/63/82 4/64/82 11/61/82
|
||||
f 50/20/76 97/21/76 16/22/76
|
||||
f 98/108/83 99/109/83 100/110/83
|
||||
f 101/111/84 100/112/84 99/113/84
|
||||
f 101/114/85 103/115/85 102/116/85
|
||||
f 104/117/86 106/118/86 105/119/86
|
||||
f 103/120/84 107/121/84 108/122/84
|
||||
f 102/123/87 110/124/87 109/125/87
|
||||
f 7/126/88 105/127/88 21/128/88
|
||||
f 106/129/89 101/130/89 27/131/89
|
||||
f 41/132/88 100/133/88 44/134/88
|
||||
f 111/135/89 98/136/89 97/137/89
|
||||
f 110/124/90 112/138/90 106/139/90
|
||||
f 106/140/91 112/141/91 113/142/91
|
||||
f 105/143/92 113/144/92 108/122/92
|
||||
f 103/120/93 111/145/93 107/121/93
|
||||
f 103/115/83 113/142/83 112/141/83
|
||||
f 104/146/87 98/147/87 111/145/87
|
||||
f 14/148/83 114/149/83 115/150/83
|
||||
f 116/151/83 117/152/83 36/153/83
|
||||
f 118/154/84 2/155/84 119/156/84
|
||||
f 34/157/84 120/158/84 121/159/84
|
||||
f 116/160/88 121/161/88 120/162/88
|
||||
f 115/163/89 120/164/89 121/165/89
|
||||
f 118/166/88 119/167/88 114/168/88
|
||||
f 118/169/89 116/170/89 117/171/89
|
||||
f 98/172/94 108/173/94 110/174/94
|
||||
f 107/175/95 100/110/95 109/176/95
|
||||
f 108/173/86 109/176/86 110/174/86
|
||||
f 100/112/96 102/123/96 109/125/96
|
||||
f 51/177/1 1/1/1 3/3/1
|
||||
f 11/11/2 4/4/2 6/6/2
|
||||
f 21/62/3 7/7/3 9/9/3
|
||||
f 17/18/4 10/10/4 6/6/4
|
||||
f 6/19/5 5/12/5 13/14/5
|
||||
f 25/34/6 14/15/6 16/17/6
|
||||
f 94/73/7 17/18/7 13/14/7
|
||||
f 27/81/8 18/20/8 20/22/8
|
||||
f 32/71/9 7/23/9 22/25/9
|
||||
f 94/73/10 13/26/10 24/28/10
|
||||
f 8/89/11 14/29/11 9/31/11
|
||||
f 13/26/12 12/32/12 23/27/12
|
||||
f 37/15/13 27/16/13 28/34/13
|
||||
f 24/28/14 23/35/14 30/37/14
|
||||
f 34/177/15 31/1/15 22/3/15
|
||||
f 29/36/16 23/35/16 33/39/16
|
||||
f 19/178/17 18/40/17 34/42/17
|
||||
f 93/102/18 30/37/18 35/44/18
|
||||
f 48/179/19 36/45/19 28/30/19
|
||||
f 29/43/20 33/46/20 35/44/20
|
||||
f 44/86/21 39/48/21 41/50/21
|
||||
f 93/85/22 35/51/22 43/53/22
|
||||
f 57/180/23 44/54/23 45/56/23
|
||||
f 35/51/24 38/57/24 42/52/24
|
||||
f 95/10/25 43/59/25 47/61/25
|
||||
f 39/7/97 36/8/97 40/62/97
|
||||
f 47/61/27 42/60/27 49/64/27
|
||||
f 97/178/28 50/40/28 51/42/28
|
||||
f 40/67/29 48/181/29 28/182/29
|
||||
f 28/182/29 20/183/29 40/67/29
|
||||
f 19/184/29 34/185/29 22/186/29
|
||||
f 22/186/29 21/187/29 9/188/29
|
||||
f 9/188/29 25/189/29 16/65/29
|
||||
f 16/65/98 97/190/98 51/66/98
|
||||
f 51/66/29 3/191/29 45/192/29
|
||||
f 45/192/29 41/193/29 40/67/29
|
||||
f 40/67/29 20/183/29 19/184/29
|
||||
f 19/184/29 22/186/29 40/67/29
|
||||
f 9/188/29 16/65/29 40/67/29
|
||||
f 51/66/29 45/192/29 40/67/29
|
||||
f 40/67/29 22/186/29 9/188/29
|
||||
f 47/11/30 49/68/30 53/6/30
|
||||
f 85/72/31 54/69/31 14/15/31
|
||||
f 95/10/32 47/11/32 55/18/32
|
||||
f 87/74/33 56/70/33 2/71/33
|
||||
f 60/14/34 53/19/34 58/13/34
|
||||
f 90/83/35 59/72/35 36/45/35
|
||||
f 55/18/36 53/19/36 61/73/36
|
||||
f 32/71/37 62/74/37 7/23/37
|
||||
f 60/26/38 58/32/38 65/27/38
|
||||
f 59/72/39 66/69/39 37/15/39
|
||||
f 61/73/40 60/26/40 67/75/40
|
||||
f 15/81/41 54/69/41 50/20/41
|
||||
f 65/79/42 64/38/42 70/77/42
|
||||
f 57/180/43 56/70/43 44/54/43
|
||||
f 76/37/44 67/75/44 70/77/44
|
||||
f 66/69/45 72/80/45 27/81/45
|
||||
f 70/43/46 69/46/46 74/44/46
|
||||
f 7/7/47 63/82/47 8/8/47
|
||||
f 79/102/48 76/37/48 74/44/48
|
||||
f 80/52/49 74/51/49 77/58/49
|
||||
f 68/76/50 78/84/50 50/40/50
|
||||
f 83/53/51 79/85/51 80/52/51
|
||||
f 71/78/52 81/82/52 44/86/52
|
||||
f 72/80/53 82/84/53 18/40/53
|
||||
f 96/107/54 83/53/54 84/88/54
|
||||
f 75/83/55 85/72/55 8/89/55
|
||||
f 80/87/56 77/90/56 84/88/56
|
||||
f 1/1/57 78/84/57 2/2/57
|
||||
f 96/107/58 84/93/58 89/59/58
|
||||
f 81/82/59 90/83/59 39/7/59
|
||||
f 84/93/60 86/95/60 88/94/60
|
||||
f 2/71/99 57/23/99 3/25/99
|
||||
f 90/83/19 10/10/19 59/72/19
|
||||
f 55/18/6 61/73/6 85/72/6
|
||||
f 95/10/11 55/18/11 75/83/11
|
||||
f 30/37/67 93/102/67 82/84/67
|
||||
f 24/28/17 30/37/17 72/80/17
|
||||
f 76/37/1 79/102/1 78/84/1
|
||||
f 17/18/13 94/73/13 59/72/13
|
||||
f 67/75/28 76/37/28 68/76/28
|
||||
f 66/69/8 94/73/8 72/80/8
|
||||
f 43/59/3 95/10/3 63/82/3
|
||||
f 96/107/21 89/59/21 71/78/21
|
||||
f 61/73/76 67/75/76 54/69/76
|
||||
f 87/74/61 79/85/61 56/70/61
|
||||
f 56/70/23 83/53/23 71/78/23
|
||||
f 10/10/79 89/59/79 11/61/79
|
||||
f 82/84/81 62/92/81 31/1/81
|
||||
f 89/59/26 10/10/26 81/82/26
|
||||
f 88/60/82 91/63/82 11/61/82
|
||||
f 15/81/76 50/20/76 16/22/76
|
||||
f 111/194/83 98/108/83 100/110/83
|
||||
f 106/195/84 101/111/84 99/113/84
|
||||
f 104/117/85 103/115/85 101/114/85
|
||||
f 101/114/86 106/118/86 104/117/86
|
||||
f 113/144/84 103/120/84 108/122/84
|
||||
f 112/138/87 110/124/87 102/123/87
|
||||
f 104/196/88 105/127/88 7/126/88
|
||||
f 20/197/89 106/129/89 27/131/89
|
||||
f 99/198/88 100/133/88 41/132/88
|
||||
f 50/199/89 111/135/89 97/137/89
|
||||
f 99/200/90 110/124/90 106/139/90
|
||||
f 105/201/91 106/140/91 113/142/91
|
||||
f 98/202/92 105/143/92 108/122/92
|
||||
f 104/146/93 111/145/93 103/120/93
|
||||
f 102/116/83 103/115/83 112/141/83
|
||||
f 105/203/87 98/147/87 104/146/87
|
||||
f 25/204/83 14/148/83 115/150/83
|
||||
f 48/205/83 116/151/83 36/153/83
|
||||
f 3/206/84 2/155/84 118/154/84
|
||||
f 31/207/84 34/157/84 121/159/84
|
||||
f 117/208/88 121/161/88 116/160/88
|
||||
f 114/209/89 115/163/89 121/165/89
|
||||
f 115/210/88 118/166/88 114/168/88
|
||||
f 119/211/89 118/169/89 117/171/89
|
||||
f 99/212/94 98/172/94 110/174/94
|
||||
f 111/194/95 100/110/95 107/175/95
|
||||
f 107/175/86 109/176/86 108/173/86
|
||||
f 101/111/96 102/123/96 100/112/96
|
||||
f 125/213/9 122/214/9 124/215/9
|
||||
f 123/216/9 125/213/9 124/215/9
|
||||
685
src/main/java/assets/hbm/models/BombGenericLarge.obj
Normal file
685
src/main/java/assets/hbm/models/BombGenericLarge.obj
Normal file
@ -0,0 +1,685 @@
|
||||
# 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
|
||||
685
src/main/java/assets/hbm/models/FatMan.obj
Normal file
685
src/main/java/assets/hbm/models/FatMan.obj
Normal file
@ -0,0 +1,685 @@
|
||||
# Blender v2.76 (sub 0) OBJ File: 'FatMan.blend'
|
||||
# www.blender.org
|
||||
o Cube.002_Cube.004
|
||||
v 1.700000 1.100000 0.350000
|
||||
v 1.700000 0.400000 0.350000
|
||||
v 1.700000 1.100000 -0.350000
|
||||
v 1.700000 0.400000 -0.350000
|
||||
v 1.300000 1.050000 0.000000
|
||||
v 1.700000 1.050000 0.000001
|
||||
v 1.300000 0.992705 -0.176335
|
||||
v 1.700000 0.992705 -0.176335
|
||||
v 1.300000 0.842705 -0.285317
|
||||
v 1.700000 0.842705 -0.285317
|
||||
v 1.300000 0.657295 -0.285317
|
||||
v 1.700000 0.657295 -0.285317
|
||||
v 1.300000 0.507295 -0.176336
|
||||
v 1.700000 0.507295 -0.176336
|
||||
v 1.300000 0.450000 -0.000000
|
||||
v 1.700000 0.450000 0.000000
|
||||
v 1.300000 0.507295 0.176335
|
||||
v 1.700000 0.507295 0.176336
|
||||
v 1.300000 0.657295 0.285317
|
||||
v 1.700000 0.657295 0.285317
|
||||
v 1.300000 0.842705 0.285317
|
||||
v 1.700000 0.842705 0.285317
|
||||
v 1.300000 0.992705 0.176336
|
||||
v 1.700000 0.992705 0.176336
|
||||
v 1.300000 0.100000 0.650000
|
||||
v 1.300000 0.100000 -0.650000
|
||||
v 1.900000 0.100000 -0.650000
|
||||
v 1.900000 0.100000 0.650000
|
||||
v 1.300000 1.400000 0.650000
|
||||
v 1.300000 1.400000 -0.650000
|
||||
v 1.900000 1.400000 -0.650000
|
||||
v 1.900000 1.400000 0.650000
|
||||
v 1.300000 0.000000 0.750000
|
||||
v 1.900000 0.000000 0.750000
|
||||
v 1.300000 1.500000 0.750000
|
||||
v 1.900000 1.500000 0.750000
|
||||
v 1.300000 0.000000 -0.750000
|
||||
v 1.900000 0.000000 -0.750000
|
||||
v 1.300000 1.500000 -0.750000
|
||||
v 1.900000 1.500000 -0.750000
|
||||
v 1.300000 0.750000 0.650000
|
||||
v 1.900000 0.750000 0.650000
|
||||
v 1.900000 0.750000 -0.650000
|
||||
v 1.300000 0.750000 -0.650000
|
||||
v 1.300000 0.100000 -0.000000
|
||||
v 1.900000 0.100000 -0.000000
|
||||
v 1.300000 1.400000 -0.000000
|
||||
v 1.900000 1.400000 -0.000000
|
||||
v 0.900000 0.750000 -0.150000
|
||||
v 1.700000 0.750000 -0.150000
|
||||
v 0.899999 0.643934 -0.106066
|
||||
v 1.700000 0.643934 -0.106066
|
||||
v 0.899999 0.600000 0.000000
|
||||
v 1.700000 0.600000 0.000000
|
||||
v 0.899999 0.643934 0.106066
|
||||
v 1.700000 0.643934 0.106066
|
||||
v 0.900000 0.750000 0.150000
|
||||
v 1.700000 0.750000 0.150000
|
||||
v 0.900000 0.856066 0.106066
|
||||
v 1.700000 0.856066 0.106066
|
||||
v 0.900000 0.900000 0.000000
|
||||
v 1.700000 0.900000 0.000000
|
||||
v 0.900000 0.856066 -0.106066
|
||||
v 1.700000 0.856066 -0.106066
|
||||
v -0.850000 1.000000 -0.250000
|
||||
v -0.850000 1.000000 -0.350000
|
||||
v -0.550000 1.000000 -0.350000
|
||||
v -0.550000 1.000000 -0.250000
|
||||
v -0.850000 1.100000 -0.250000
|
||||
v -0.850000 1.100000 -0.350000
|
||||
v -0.550000 1.100000 -0.350000
|
||||
v -0.550000 1.100000 -0.250000
|
||||
v -0.850000 1.000000 0.350000
|
||||
v -0.850000 1.000000 0.250000
|
||||
v -0.550000 1.000000 0.250000
|
||||
v -0.550000 1.000000 0.350000
|
||||
v -0.850000 1.100000 0.350000
|
||||
v -0.850000 1.100000 0.250000
|
||||
v -0.550000 1.100000 0.250000
|
||||
v -0.550000 1.100000 0.350000
|
||||
v -0.850000 0.400000 -0.250000
|
||||
v -0.850000 0.400000 -0.350000
|
||||
v -0.550000 0.400000 -0.350000
|
||||
v -0.550000 0.400000 -0.250000
|
||||
v -0.850000 0.500000 -0.250000
|
||||
v -0.850000 0.500000 -0.350000
|
||||
v -0.550000 0.500000 -0.350000
|
||||
v -0.550000 0.500000 -0.250000
|
||||
v -0.850000 0.400000 0.350000
|
||||
v -0.850000 0.400000 0.250000
|
||||
v -0.550000 0.400000 0.250000
|
||||
v -0.550000 0.400000 0.350000
|
||||
v -0.850000 0.500000 0.350000
|
||||
v -0.850000 0.500000 0.250000
|
||||
v -0.550000 0.500000 0.250000
|
||||
v -0.550000 0.500000 0.350000
|
||||
v 0.382684 1.442910 0.000000
|
||||
v 0.000001 1.500000 0.000000
|
||||
v -0.382683 1.442910 0.000000
|
||||
v -0.707106 1.280330 0.000000
|
||||
v -0.923879 1.037013 0.000000
|
||||
v -0.999999 0.750000 0.000000
|
||||
v 0.382684 1.310576 -0.407282
|
||||
v 0.000001 1.356763 -0.440839
|
||||
v -0.382683 1.310576 -0.407282
|
||||
v -0.707106 1.179046 -0.311720
|
||||
v -0.923879 0.982198 -0.168702
|
||||
v 0.382684 0.964121 -0.658996
|
||||
v 0.000001 0.981763 -0.713292
|
||||
v -0.382683 0.964121 -0.658996
|
||||
v -0.707106 0.913881 -0.504374
|
||||
v -0.923879 0.838692 -0.272965
|
||||
v 0.382684 0.535880 -0.658996
|
||||
v 0.000001 0.518238 -0.713292
|
||||
v -0.382683 0.535880 -0.658996
|
||||
v -0.707106 0.586119 -0.504374
|
||||
v -0.923879 0.661309 -0.272965
|
||||
v 0.382684 0.189425 -0.407282
|
||||
v 0.000001 0.143238 -0.440839
|
||||
v -0.382683 0.189425 -0.407282
|
||||
v -0.707106 0.320954 -0.311720
|
||||
v -0.923879 0.517802 -0.168702
|
||||
v 0.382684 0.057091 0.000000
|
||||
v 0.000001 0.000000 0.000000
|
||||
v -0.382683 0.057091 0.000000
|
||||
v -0.707106 0.219670 0.000000
|
||||
v -0.923879 0.462988 0.000000
|
||||
v 0.382684 0.189425 0.407282
|
||||
v 0.000001 0.143238 0.440839
|
||||
v -0.382683 0.189425 0.407282
|
||||
v -0.707106 0.320954 0.311720
|
||||
v -0.923879 0.517802 0.168702
|
||||
v 0.382684 0.535880 0.658996
|
||||
v 0.000001 0.518238 0.713292
|
||||
v -0.382683 0.535880 0.658996
|
||||
v -0.707106 0.586119 0.504374
|
||||
v -0.923879 0.661309 0.272965
|
||||
v 0.382684 0.964121 0.658996
|
||||
v 0.000001 0.981763 0.713292
|
||||
v -0.382683 0.964121 0.658996
|
||||
v -0.707106 0.913881 0.504374
|
||||
v -0.923879 0.838692 0.272965
|
||||
v 0.382684 1.310576 0.407282
|
||||
v 0.000001 1.356763 0.440839
|
||||
v -0.382683 1.310576 0.407282
|
||||
v -0.707106 1.179046 0.311720
|
||||
v -0.923879 0.982198 0.168702
|
||||
vt 0.988701 0.847760
|
||||
vt 0.988701 0.905908
|
||||
vt 0.863256 0.905908
|
||||
vt 0.863220 0.847759
|
||||
vt 0.863239 0.905906
|
||||
vt 0.022598 0.714404
|
||||
vt 0.106492 0.714404
|
||||
vt 0.098481 0.739059
|
||||
vt 0.022598 0.568772
|
||||
vt 0.106492 0.568772
|
||||
vt 0.106492 0.659658
|
||||
vt 0.706128 0.609077
|
||||
vt 0.706128 0.699962
|
||||
vt 0.622234 0.699962
|
||||
vt 0.725194 0.211026
|
||||
vt 0.725194 0.301911
|
||||
vt 0.641300 0.301911
|
||||
vt 0.212229 0.568772
|
||||
vt 0.212229 0.652667
|
||||
vt 0.121344 0.652667
|
||||
vt 0.022598 0.315025
|
||||
vt 0.127466 0.301043
|
||||
vt 0.232334 0.315025
|
||||
vt 0.471773 0.147236
|
||||
vt 0.541685 0.105289
|
||||
vt 0.541685 0.196174
|
||||
vt 0.626448 0.245113
|
||||
vt 0.556536 0.287060
|
||||
vt 0.556536 0.196174
|
||||
vt 0.064545 0.553921
|
||||
vt 0.022598 0.484009
|
||||
vt 0.113483 0.484009
|
||||
vt 0.456922 0.315025
|
||||
vt 0.442939 0.301042
|
||||
vt 0.442939 0.210157
|
||||
vt 0.127466 0.119271
|
||||
vt 0.022598 0.105289
|
||||
vt 0.232334 0.105289
|
||||
vt 0.456921 0.105289
|
||||
vt 0.352054 0.119271
|
||||
vt 0.247185 0.105289
|
||||
vt 0.774794 0.329876
|
||||
vt 0.774794 0.420762
|
||||
vt 0.690899 0.420762
|
||||
vt 0.218352 0.210157
|
||||
vt 0.218352 0.119271
|
||||
vt 0.442070 0.090437
|
||||
vt 0.232334 0.090437
|
||||
vt 0.232334 0.006543
|
||||
vt 0.725194 0.105289
|
||||
vt 0.725194 0.196174
|
||||
vt 0.641300 0.196174
|
||||
vt 0.036580 0.210157
|
||||
vt 0.352053 0.301042
|
||||
vt 0.651806 0.006543
|
||||
vt 0.861541 0.006543
|
||||
vt 0.861541 0.090437
|
||||
vt 0.556328 0.639248
|
||||
vt 0.556328 0.723142
|
||||
vt 0.465443 0.723142
|
||||
vt 0.022598 0.090437
|
||||
vt 0.212229 0.667518
|
||||
vt 0.212229 0.751413
|
||||
vt 0.121344 0.751413
|
||||
vt 0.442070 0.006543
|
||||
vt 0.651806 0.090437
|
||||
vt 0.261168 0.210157
|
||||
vt 0.247185 0.315025
|
||||
vt 0.380680 0.329876
|
||||
vt 0.408644 0.437434
|
||||
vt 0.324750 0.437434
|
||||
vt 0.535321 0.539633
|
||||
vt 0.465443 0.452286
|
||||
vt 0.554974 0.452286
|
||||
vt 0.130858 0.441010
|
||||
vt 0.022598 0.469158
|
||||
vt 0.049663 0.350987
|
||||
vt 0.709581 0.524347
|
||||
vt 0.622234 0.594225
|
||||
vt 0.622234 0.504694
|
||||
vt 0.253969 0.441010
|
||||
vt 0.145709 0.469158
|
||||
vt 0.172774 0.350987
|
||||
vt 0.535355 0.437434
|
||||
vt 0.423496 0.437434
|
||||
vt 0.479425 0.329876
|
||||
vt 0.577302 0.554484
|
||||
vt 0.605267 0.624397
|
||||
vt 0.521372 0.624397
|
||||
vt 0.356168 0.609111
|
||||
vt 0.268820 0.678989
|
||||
vt 0.268820 0.589458
|
||||
vt 0.408644 0.452286
|
||||
vt 0.450592 0.522198
|
||||
vt 0.359706 0.522198
|
||||
vt 0.906630 0.571602
|
||||
vt 0.896743 0.561715
|
||||
vt 0.906630 0.551828
|
||||
vt 0.876969 0.601264
|
||||
vt 0.867082 0.591377
|
||||
vt 0.916517 0.561715
|
||||
vt 0.936291 0.522167
|
||||
vt 0.867082 0.532054
|
||||
vt 0.876969 0.522167
|
||||
vt 0.936291 0.601264
|
||||
vt 0.906630 0.665550
|
||||
vt 0.896743 0.655663
|
||||
vt 0.906630 0.645776
|
||||
vt 0.876969 0.695211
|
||||
vt 0.867082 0.685324
|
||||
vt 0.916517 0.655663
|
||||
vt 0.936291 0.616115
|
||||
vt 0.867082 0.626002
|
||||
vt 0.876969 0.616115
|
||||
vt 0.936291 0.695211
|
||||
vt 0.896919 0.464638
|
||||
vt 0.906806 0.454751
|
||||
vt 0.916693 0.464638
|
||||
vt 0.867258 0.434977
|
||||
vt 0.877145 0.425090
|
||||
vt 0.906806 0.474525
|
||||
vt 0.946354 0.494299
|
||||
vt 0.936467 0.425090
|
||||
vt 0.946354 0.434977
|
||||
vt 0.867258 0.494299
|
||||
vt 0.913788 0.349949
|
||||
vt 0.913788 0.363931
|
||||
vt 0.899806 0.363931
|
||||
vt 0.955735 0.349949
|
||||
vt 0.955735 0.363931
|
||||
vt 0.899806 0.349949
|
||||
vt 0.857859 0.363931
|
||||
vt 0.913788 0.405878
|
||||
vt 0.899806 0.405878
|
||||
vt 0.913788 0.308001
|
||||
vt 0.197478 0.825439
|
||||
vt 0.197478 0.928229
|
||||
vt 0.098037 0.904649
|
||||
vt 0.431403 0.804150
|
||||
vt 0.431403 0.949518
|
||||
vt 0.310187 0.943985
|
||||
vt 0.310187 0.809683
|
||||
vt 0.552620 0.809683
|
||||
vt 0.552620 0.943985
|
||||
vt 0.310150 0.809683
|
||||
vt 0.197442 0.928230
|
||||
vt 0.197442 0.825440
|
||||
vt 0.098001 0.904650
|
||||
vt 0.098018 0.849020
|
||||
vt 0.431386 0.804150
|
||||
vt 0.009166 0.876834
|
||||
vt 0.009129 0.876836
|
||||
vt 0.863256 0.847760
|
||||
vt 0.077507 0.754298
|
||||
vt 0.051583 0.754298
|
||||
vt 0.030609 0.739059
|
||||
vt 0.030609 0.689748
|
||||
vt 0.051583 0.674509
|
||||
vt 0.077507 0.674509
|
||||
vt 0.098481 0.689748
|
||||
vt 0.022598 0.659658
|
||||
vt 0.622234 0.609077
|
||||
vt 0.641300 0.211026
|
||||
vt 0.121344 0.568772
|
||||
vt 0.218352 0.301043
|
||||
vt 0.036581 0.301043
|
||||
vt 0.541685 0.287060
|
||||
vt 0.471773 0.245113
|
||||
vt 0.556536 0.105289
|
||||
vt 0.626448 0.147236
|
||||
vt 0.204369 0.484009
|
||||
vt 0.162422 0.553921
|
||||
vt 0.442939 0.119271
|
||||
vt 0.036580 0.119272
|
||||
vt 0.261168 0.119271
|
||||
vt 0.690899 0.329876
|
||||
vt 0.641300 0.105289
|
||||
vt 0.261168 0.301042
|
||||
vt 0.465443 0.639248
|
||||
vt 0.022598 0.006543
|
||||
vt 0.121344 0.667518
|
||||
vt 0.268820 0.329876
|
||||
vt 0.607382 0.517796
|
||||
vt 0.130858 0.329876
|
||||
vt 0.687744 0.452286
|
||||
vt 0.253969 0.329876
|
||||
vt 0.563320 0.329876
|
||||
vt 0.465443 0.554485
|
||||
vt 0.334331 0.537049
|
||||
vt 0.268820 0.522198
|
||||
vt 0.310768 0.452286
|
||||
vt 0.946178 0.532054
|
||||
vt 0.946178 0.591377
|
||||
vt 0.946178 0.626002
|
||||
vt 0.946178 0.685324
|
||||
vt 0.936467 0.504186
|
||||
vt 0.877145 0.504186
|
||||
vt 0.857859 0.349949
|
||||
vt 0.899806 0.308001
|
||||
vn 0.000000 0.951100 -0.309000
|
||||
vn 0.000000 0.587800 -0.809000
|
||||
vn 0.000000 0.000000 -1.000000
|
||||
vn 0.000000 -0.587800 -0.809000
|
||||
vn 0.000000 -0.951100 -0.309000
|
||||
vn -0.000000 -0.951100 0.309000
|
||||
vn -0.000000 -0.587800 0.809000
|
||||
vn -0.000000 -0.000000 1.000000
|
||||
vn 1.000000 0.000000 0.000000
|
||||
vn -0.000000 0.951100 0.309000
|
||||
vn -0.000000 0.587800 0.809000
|
||||
vn 0.000000 1.000000 0.000000
|
||||
vn 0.000000 -1.000000 0.000000
|
||||
vn -0.600000 0.000000 -0.800000
|
||||
vn -0.600000 0.000000 0.800000
|
||||
vn -0.600000 -0.800000 0.000000
|
||||
vn -1.000000 0.000000 0.000000
|
||||
vn 0.000000 0.707100 0.707100
|
||||
vn -0.000000 -0.707100 0.707100
|
||||
vn 0.000000 0.707100 -0.707100
|
||||
vn -0.600000 0.800000 0.000000
|
||||
vn -0.729800 0.650200 -0.211300
|
||||
vn -0.140500 0.941600 -0.306000
|
||||
vn -0.430200 0.858500 -0.279000
|
||||
vn 0.140500 0.941600 -0.306000
|
||||
vn -0.140500 0.582000 -0.801000
|
||||
vn -0.430200 0.530600 -0.730300
|
||||
vn 0.140500 0.582000 -0.801000
|
||||
vn -0.729800 0.401800 -0.553100
|
||||
vn -0.430200 0.000000 -0.902700
|
||||
vn 0.140500 0.000000 -0.990100
|
||||
vn -0.729800 0.000000 -0.683700
|
||||
vn -0.140500 0.000000 -0.990100
|
||||
vn 0.140500 -0.582000 -0.801000
|
||||
vn -0.729800 -0.401800 -0.553100
|
||||
vn -0.140500 -0.582000 -0.801000
|
||||
vn -0.430200 -0.530600 -0.730300
|
||||
vn -0.729800 -0.650200 -0.211300
|
||||
vn -0.140500 -0.941600 -0.306000
|
||||
vn -0.430200 -0.858500 -0.279000
|
||||
vn 0.140500 -0.941600 -0.306000
|
||||
vn -0.430200 -0.858500 0.279000
|
||||
vn 0.140500 -0.941600 0.306000
|
||||
vn -0.729800 -0.650200 0.211300
|
||||
vn -0.140500 -0.941600 0.306000
|
||||
vn -0.430200 -0.530600 0.730300
|
||||
vn 0.140500 -0.582000 0.801000
|
||||
vn -0.729800 -0.401800 0.553100
|
||||
vn -0.140500 -0.582000 0.801000
|
||||
vn -0.729800 0.000000 0.683700
|
||||
vn -0.140500 0.000000 0.990100
|
||||
vn -0.430200 0.000000 0.902700
|
||||
vn 0.140500 0.000000 0.990100
|
||||
vn -0.729800 0.401800 0.553100
|
||||
vn -0.140500 0.582000 0.801000
|
||||
vn -0.430200 0.530600 0.730300
|
||||
vn 0.140500 0.582000 0.801000
|
||||
vn -0.963200 0.255500 -0.083000
|
||||
vn -0.963200 0.157900 -0.217300
|
||||
vn -0.963200 0.000000 -0.268600
|
||||
vn 0.377300 0.880800 0.286200
|
||||
vn 0.377300 0.880800 -0.286200
|
||||
vn -0.963200 -0.157900 -0.217300
|
||||
vn 0.377300 0.544400 -0.749200
|
||||
vn -0.963200 -0.255500 -0.083000
|
||||
vn 0.377300 0.000000 -0.926100
|
||||
vn -0.963200 -0.255500 0.083000
|
||||
vn -0.963200 -0.157900 0.217300
|
||||
vn 0.377300 -0.544400 -0.749200
|
||||
vn 0.377300 -0.880800 -0.286200
|
||||
vn -0.963200 0.000000 0.268600
|
||||
vn 0.377300 -0.880800 0.286200
|
||||
vn -0.963200 0.157900 0.217300
|
||||
vn 0.377300 -0.544400 0.749200
|
||||
vn -0.963200 0.255500 0.083000
|
||||
vn -0.430200 0.858500 0.279000
|
||||
vn 0.140500 0.941600 0.306000
|
||||
vn 0.377300 0.000000 0.926100
|
||||
vn -0.729800 0.650200 0.211300
|
||||
vn -0.140500 0.941600 0.306000
|
||||
vn 0.377300 0.544400 0.749200
|
||||
s off
|
||||
f 6/1/1 8/2/1 7/3/1
|
||||
f 7/4/2 8/1/2 10/2/2
|
||||
f 10/1/3 12/2/3 11/3/3
|
||||
f 12/1/4 14/2/4 13/3/4
|
||||
f 13/4/5 14/1/5 16/2/5
|
||||
f 16/1/6 18/2/6 17/5/6
|
||||
f 17/4/7 18/1/7 20/2/7
|
||||
f 20/1/8 22/2/8 21/5/8
|
||||
f 22/6/9 12/7/9 10/8/9
|
||||
f 23/4/10 24/1/10 6/2/10
|
||||
f 22/1/11 24/2/11 23/3/11
|
||||
f 27/9/12 26/10/12 45/11/12
|
||||
f 43/12/8 31/13/8 30/14/8
|
||||
f 41/15/3 29/16/3 32/17/3
|
||||
f 30/18/13 31/19/13 48/20/13
|
||||
f 36/21/9 48/22/9 40/23/9
|
||||
f 2/24/14 25/25/14 41/26/14
|
||||
f 3/27/15 30/28/15 44/29/15
|
||||
f 1/30/16 29/31/16 47/32/16
|
||||
f 33/33/17 25/34/17 45/35/17
|
||||
f 46/36/9 34/37/9 38/38/9
|
||||
f 37/39/17 44/40/17 39/41/17
|
||||
f 25/42/3 41/43/3 42/44/3
|
||||
f 43/45/9 27/46/9 38/38/9
|
||||
f 40/47/3 38/48/3 37/49/3
|
||||
f 27/50/8 43/51/8 44/52/8
|
||||
f 36/21/9 34/37/9 42/53/9
|
||||
f 41/54/17 25/34/17 33/33/17
|
||||
f 35/55/8 33/56/8 34/57/8
|
||||
f 46/58/12 45/59/12 25/60/12
|
||||
f 37/49/13 38/48/13 34/61/13
|
||||
f 47/62/13 48/63/13 32/64/13
|
||||
f 39/65/12 35/55/12 36/66/12
|
||||
f 39/41/17 47/67/17 35/68/17
|
||||
f 64/69/18 31/70/18 30/71/18
|
||||
f 50/72/13 49/73/13 44/74/13
|
||||
f 52/75/19 51/76/19 26/77/19
|
||||
f 54/78/8 53/79/8 45/80/8
|
||||
f 56/81/18 55/82/18 25/83/18
|
||||
f 60/84/20 59/85/20 29/86/20
|
||||
f 62/87/8 48/88/8 47/89/8
|
||||
f 58/90/12 57/91/12 41/92/12
|
||||
f 4/93/21 26/94/21 45/95/21
|
||||
f 70/96/17 66/97/17 65/98/17
|
||||
f 71/99/3 67/100/3 66/97/3
|
||||
f 69/101/8 65/98/8 68/102/8
|
||||
f 66/97/13 67/103/13 68/104/13
|
||||
f 71/105/12 70/96/12 69/101/12
|
||||
f 78/106/17 74/107/17 73/108/17
|
||||
f 79/109/3 75/110/3 74/107/3
|
||||
f 77/111/8 73/108/8 76/112/8
|
||||
f 74/107/13 75/113/13 76/114/13
|
||||
f 79/115/12 78/106/12 77/111/12
|
||||
f 86/116/17 82/117/17 81/118/17
|
||||
f 87/119/3 83/120/3 82/117/3
|
||||
f 85/121/8 81/118/8 84/122/8
|
||||
f 82/117/13 83/123/13 84/124/13
|
||||
f 87/125/12 86/116/12 85/121/12
|
||||
f 94/126/17 90/127/17 89/128/17
|
||||
f 95/129/3 91/130/3 90/127/3
|
||||
f 93/131/8 89/128/8 92/132/8
|
||||
f 90/127/13 91/133/13 92/134/13
|
||||
f 95/135/12 94/126/12 93/131/12
|
||||
f 100/136/22 106/137/22 107/138/22
|
||||
f 98/139/23 104/140/23 105/141/23
|
||||
f 100/136/24 99/142/24 105/141/24
|
||||
f 97/143/25 103/144/25 104/140/25
|
||||
f 104/139/26 109/140/26 110/141/26
|
||||
f 105/145/27 110/141/27 111/146/27
|
||||
f 103/143/28 108/144/28 109/140/28
|
||||
f 106/147/29 111/146/29 112/148/29
|
||||
f 110/142/30 115/141/30 116/137/30
|
||||
f 108/143/31 113/144/31 114/140/31
|
||||
f 111/136/32 116/137/32 117/148/32
|
||||
f 110/142/33 109/139/33 114/140/33
|
||||
f 114/139/34 113/143/34 118/144/34
|
||||
f 116/136/35 121/137/35 122/138/35
|
||||
f 114/139/36 119/140/36 120/141/36
|
||||
f 115/142/37 120/141/37 121/137/37
|
||||
f 122/149/38 121/136/38 126/137/38
|
||||
f 119/139/39 124/140/39 125/141/39
|
||||
f 120/142/40 125/141/40 126/137/40
|
||||
f 118/143/41 123/144/41 124/140/41
|
||||
f 125/142/42 130/141/42 131/137/42
|
||||
f 123/143/43 128/144/43 129/140/43
|
||||
f 126/136/44 131/137/44 132/138/44
|
||||
f 125/142/45 124/150/45 129/140/45
|
||||
f 131/136/46 130/142/46 135/141/46
|
||||
f 128/143/47 133/144/47 134/140/47
|
||||
f 131/136/48 136/137/48 137/138/48
|
||||
f 129/139/49 134/140/49 135/141/49
|
||||
f 136/136/50 141/137/50 142/148/50
|
||||
f 135/142/51 134/139/51 139/140/51
|
||||
f 136/136/52 135/142/52 140/141/52
|
||||
f 133/143/53 138/144/53 139/140/53
|
||||
f 142/149/54 141/136/54 146/137/54
|
||||
f 140/142/55 139/139/55 144/140/55
|
||||
f 140/142/56 145/141/56 146/137/56
|
||||
f 138/143/57 143/144/57 144/140/57
|
||||
f 102/151/58 101/149/58 107/138/58
|
||||
f 102/152/59 107/149/59 112/148/59
|
||||
f 102/151/60 112/149/60 117/148/60
|
||||
f 97/144/61 143/143/61 23/4/61
|
||||
f 5/153/62 7/3/62 103/144/62
|
||||
f 102/151/63 117/149/63 122/138/63
|
||||
f 9/5/64 108/144/64 103/143/64
|
||||
f 102/152/65 122/149/65 127/138/65
|
||||
f 113/144/66 108/143/66 9/153/66
|
||||
f 102/152/67 127/149/67 132/138/67
|
||||
f 102/151/68 132/149/68 137/138/68
|
||||
f 13/3/69 118/144/69 113/143/69
|
||||
f 15/5/70 123/144/70 118/143/70
|
||||
f 102/151/71 137/149/71 142/148/71
|
||||
f 17/5/72 128/144/72 123/143/72
|
||||
f 102/151/73 142/149/73 147/148/73
|
||||
f 19/5/74 133/144/74 128/143/74
|
||||
f 102/152/75 147/149/75 101/148/75
|
||||
f 145/142/76 99/141/76 100/137/76
|
||||
f 143/143/77 97/144/77 98/140/77
|
||||
f 21/5/78 138/144/78 133/143/78
|
||||
f 146/136/79 100/137/79 101/148/79
|
||||
f 144/139/80 98/140/80 99/141/80
|
||||
f 23/3/81 143/144/81 138/143/81
|
||||
f 5/153/1 6/1/1 7/3/1
|
||||
f 9/5/2 7/4/2 10/2/2
|
||||
f 9/153/3 10/1/3 11/3/3
|
||||
f 11/153/4 12/1/4 13/3/4
|
||||
f 15/5/5 13/4/5 16/2/5
|
||||
f 15/4/6 16/1/6 17/5/6
|
||||
f 19/5/7 17/4/7 20/2/7
|
||||
f 19/4/8 20/1/8 21/5/8
|
||||
f 10/8/9 8/154/9 6/155/9
|
||||
f 6/155/9 24/156/9 22/6/9
|
||||
f 22/6/9 20/157/9 18/158/9
|
||||
f 18/158/9 16/159/9 14/160/9
|
||||
f 14/160/9 12/7/9 22/6/9
|
||||
f 10/8/9 6/155/9 22/6/9
|
||||
f 22/6/9 18/158/9 14/160/9
|
||||
f 5/5/10 23/4/10 6/2/10
|
||||
f 21/153/11 22/1/11 23/3/11
|
||||
f 46/161/12 27/9/12 45/11/12
|
||||
f 44/162/8 43/12/8 30/14/8
|
||||
f 42/163/3 41/15/3 32/17/3
|
||||
f 47/164/13 30/18/13 48/20/13
|
||||
f 31/165/9 40/23/9 48/22/9
|
||||
f 36/21/9 32/166/9 48/22/9
|
||||
f 41/26/14 29/167/14 1/168/14
|
||||
f 1/168/14 2/24/14 41/26/14
|
||||
f 44/29/15 26/169/15 4/170/15
|
||||
f 4/170/15 3/27/15 44/29/15
|
||||
f 47/32/16 30/171/16 3/172/16
|
||||
f 3/172/16 1/30/16 47/32/16
|
||||
f 45/35/17 26/173/17 37/39/17
|
||||
f 37/39/17 33/33/17 45/35/17
|
||||
f 46/36/9 28/174/9 34/37/9
|
||||
f 38/38/9 27/46/9 46/36/9
|
||||
f 30/175/17 39/41/17 44/40/17
|
||||
f 37/39/17 26/173/17 44/40/17
|
||||
f 28/176/3 25/42/3 42/44/3
|
||||
f 38/38/9 40/23/9 43/45/9
|
||||
f 31/165/9 43/45/9 40/23/9
|
||||
f 39/65/3 40/47/3 37/49/3
|
||||
f 26/177/8 27/50/8 44/52/8
|
||||
f 28/174/9 42/53/9 34/37/9
|
||||
f 32/166/9 36/21/9 42/53/9
|
||||
f 33/33/17 35/68/17 41/54/17
|
||||
f 29/178/17 41/54/17 35/68/17
|
||||
f 36/66/8 35/55/8 34/57/8
|
||||
f 28/179/12 46/58/12 25/60/12
|
||||
f 33/180/13 37/49/13 34/61/13
|
||||
f 29/181/13 47/62/13 32/64/13
|
||||
f 40/47/12 39/65/12 36/66/12
|
||||
f 29/178/17 35/68/17 47/67/17
|
||||
f 39/41/17 30/175/17 47/67/17
|
||||
f 63/182/18 64/69/18 30/71/18
|
||||
f 43/183/13 50/72/13 44/74/13
|
||||
f 27/184/19 52/75/19 26/77/19
|
||||
f 46/185/8 54/78/8 45/80/8
|
||||
f 28/186/18 56/81/18 25/83/18
|
||||
f 32/187/20 60/84/20 29/86/20
|
||||
f 61/188/8 62/87/8 47/89/8
|
||||
f 42/189/12 58/90/12 41/92/12
|
||||
f 45/95/21 25/190/21 2/191/21
|
||||
f 2/191/21 4/93/21 45/95/21
|
||||
f 69/101/17 70/96/17 65/98/17
|
||||
f 70/96/3 71/99/3 66/97/3
|
||||
f 72/192/8 69/101/8 68/102/8
|
||||
f 65/98/13 66/97/13 68/104/13
|
||||
f 72/193/12 71/105/12 69/101/12
|
||||
f 77/111/17 78/106/17 73/108/17
|
||||
f 78/106/3 79/109/3 74/107/3
|
||||
f 80/194/8 77/111/8 76/112/8
|
||||
f 73/108/13 74/107/13 76/114/13
|
||||
f 80/195/12 79/115/12 77/111/12
|
||||
f 85/121/17 86/116/17 81/118/17
|
||||
f 86/116/3 87/119/3 82/117/3
|
||||
f 88/196/8 85/121/8 84/122/8
|
||||
f 81/118/13 82/117/13 84/124/13
|
||||
f 88/197/12 87/125/12 85/121/12
|
||||
f 93/131/17 94/126/17 89/128/17
|
||||
f 94/126/3 95/129/3 90/127/3
|
||||
f 96/198/8 93/131/8 92/132/8
|
||||
f 89/128/13 90/127/13 92/134/13
|
||||
f 96/199/12 95/135/12 93/131/12
|
||||
f 101/149/22 100/136/22 107/138/22
|
||||
f 99/142/23 98/139/23 105/141/23
|
||||
f 106/137/24 100/136/24 105/141/24
|
||||
f 98/139/25 97/143/25 104/140/25
|
||||
f 105/145/26 104/139/26 110/141/26
|
||||
f 106/147/27 105/145/27 111/146/27
|
||||
f 104/139/28 103/143/28 109/140/28
|
||||
f 107/149/29 106/147/29 112/148/29
|
||||
f 111/136/30 110/142/30 116/137/30
|
||||
f 109/139/31 108/143/31 114/140/31
|
||||
f 112/149/32 111/136/32 117/148/32
|
||||
f 115/141/33 110/142/33 114/140/33
|
||||
f 119/140/34 114/139/34 118/144/34
|
||||
f 117/149/35 116/136/35 122/138/35
|
||||
f 115/142/36 114/139/36 120/141/36
|
||||
f 116/136/37 115/142/37 121/137/37
|
||||
f 127/138/38 122/149/38 126/137/38
|
||||
f 120/142/39 119/139/39 125/141/39
|
||||
f 121/136/40 120/142/40 126/137/40
|
||||
f 119/139/41 118/143/41 124/140/41
|
||||
f 126/136/42 125/142/42 131/137/42
|
||||
f 124/150/43 123/143/43 129/140/43
|
||||
f 127/149/44 126/136/44 132/138/44
|
||||
f 130/141/45 125/142/45 129/140/45
|
||||
f 136/137/46 131/136/46 135/141/46
|
||||
f 129/139/47 128/143/47 134/140/47
|
||||
f 132/149/48 131/136/48 137/138/48
|
||||
f 130/142/49 129/139/49 135/141/49
|
||||
f 137/149/50 136/136/50 142/148/50
|
||||
f 140/141/51 135/142/51 139/140/51
|
||||
f 141/137/52 136/136/52 140/141/52
|
||||
f 134/139/53 133/143/53 139/140/53
|
||||
f 147/148/54 142/149/54 146/137/54
|
||||
f 145/141/55 140/142/55 144/140/55
|
||||
f 141/136/56 140/142/56 146/137/56
|
||||
f 139/139/57 138/143/57 144/140/57
|
||||
f 5/5/61 97/144/61 23/4/61
|
||||
f 97/143/62 5/153/62 103/144/62
|
||||
f 7/4/64 9/5/64 103/143/64
|
||||
f 11/3/66 113/144/66 9/153/66
|
||||
f 11/153/69 13/3/69 113/143/69
|
||||
f 13/4/70 15/5/70 118/143/70
|
||||
f 15/4/72 17/5/72 123/143/72
|
||||
f 17/4/74 19/5/74 128/143/74
|
||||
f 146/136/76 145/142/76 100/137/76
|
||||
f 144/139/77 143/143/77 98/140/77
|
||||
f 19/4/78 21/5/78 133/143/78
|
||||
f 147/149/79 146/136/79 101/148/79
|
||||
f 145/142/80 144/139/80 99/141/80
|
||||
f 21/153/81 23/3/81 138/143/81
|
||||
1664
src/main/java/assets/hbm/models/Fleija.obj
Normal file
1664
src/main/java/assets/hbm/models/Fleija.obj
Normal file
File diff suppressed because it is too large
Load Diff
504
src/main/java/assets/hbm/models/IvyMike.obj
Normal file
504
src/main/java/assets/hbm/models/IvyMike.obj
Normal file
@ -0,0 +1,504 @@
|
||||
# Blender v2.76 (sub 0) OBJ File: 'IvyMike.blend'
|
||||
# www.blender.org
|
||||
o Circle
|
||||
v 0.000000 0.000000 -0.900000
|
||||
v -0.344415 0.000000 -0.831492
|
||||
v -0.636396 0.000000 -0.636396
|
||||
v -0.831492 0.000000 -0.344415
|
||||
v -0.900000 0.000000 0.000000
|
||||
v -0.831492 0.000000 0.344415
|
||||
v -0.636396 0.000000 0.636396
|
||||
v -0.344415 0.000000 0.831492
|
||||
v -0.000000 0.000000 0.900000
|
||||
v 0.344415 0.000000 0.831492
|
||||
v 0.636396 0.000000 0.636396
|
||||
v 0.831492 0.000000 0.344415
|
||||
v 0.900000 0.000000 -0.000000
|
||||
v 0.831491 0.000000 -0.344415
|
||||
v 0.636396 0.000000 -0.636396
|
||||
v 0.344415 0.000000 -0.831492
|
||||
v 0.000000 0.200000 -1.000000
|
||||
v 0.000000 5.200000 -1.000000
|
||||
v 0.382683 0.200000 -0.923880
|
||||
v 0.382683 5.200000 -0.923880
|
||||
v 0.707107 0.200000 -0.707107
|
||||
v 0.707107 5.200000 -0.707107
|
||||
v 0.923880 0.200000 -0.382683
|
||||
v 0.923880 5.200000 -0.382683
|
||||
v 1.000000 0.200000 0.000000
|
||||
v 1.000000 5.200000 0.000000
|
||||
v 0.923880 0.200000 0.382684
|
||||
v 0.923880 5.200000 0.382684
|
||||
v 0.707107 0.200000 0.707107
|
||||
v 0.707107 5.200000 0.707107
|
||||
v 0.382683 0.200000 0.923880
|
||||
v 0.382683 5.200000 0.923880
|
||||
v 0.000000 0.200000 1.000000
|
||||
v 0.000000 5.200000 1.000000
|
||||
v -0.382683 0.200000 0.923880
|
||||
v -0.382683 5.200000 0.923880
|
||||
v -0.707107 0.200000 0.707107
|
||||
v -0.707107 5.200000 0.707107
|
||||
v -0.923880 0.200000 0.382684
|
||||
v -0.923880 5.200000 0.382684
|
||||
v -1.000000 0.200000 -0.000000
|
||||
v -1.000000 5.200000 -0.000000
|
||||
v -0.923879 0.200000 -0.382684
|
||||
v -0.923879 5.200000 -0.382684
|
||||
v -0.707107 0.200000 -0.707107
|
||||
v -0.707107 5.200000 -0.707107
|
||||
v -0.382683 0.200000 -0.923880
|
||||
v -0.382683 5.200000 -0.923880
|
||||
v 0.000000 5.800000 -0.900000
|
||||
v -0.344415 5.800000 -0.831492
|
||||
v -0.636396 5.800000 -0.636396
|
||||
v -0.831492 5.800000 -0.344415
|
||||
v -0.900000 5.800000 0.000000
|
||||
v -0.831492 5.800000 0.344415
|
||||
v -0.636396 5.800000 0.636396
|
||||
v -0.344415 5.800000 0.831492
|
||||
v -0.000000 5.800000 0.900000
|
||||
v 0.344415 5.800000 0.831492
|
||||
v 0.636396 5.800000 0.636396
|
||||
v 0.831492 5.800000 0.344415
|
||||
v 0.900000 5.800000 -0.000000
|
||||
v 0.831491 5.800000 -0.344415
|
||||
v 0.636396 5.800000 -0.636396
|
||||
v 0.344415 5.800000 -0.831492
|
||||
v 0.000000 5.800000 -1.000000
|
||||
v -0.382683 5.800000 -0.923880
|
||||
v -0.707107 5.800000 -0.707107
|
||||
v -0.923880 5.800000 -0.382683
|
||||
v -1.000000 5.800000 0.000000
|
||||
v -0.923880 5.800000 0.382684
|
||||
v -0.707107 5.800000 0.707107
|
||||
v -0.382683 5.800000 0.923880
|
||||
v -0.000000 5.800000 1.000000
|
||||
v 0.382683 5.800000 0.923880
|
||||
v 0.707107 5.800000 0.707107
|
||||
v 0.923880 5.800000 0.382684
|
||||
v 1.000000 5.800000 -0.000000
|
||||
v 0.923879 5.800000 -0.382684
|
||||
v 0.707107 5.800000 -0.707107
|
||||
v 0.382683 5.800000 -0.923880
|
||||
v 0.600000 1.900000 1.100000
|
||||
v 0.600000 1.900000 0.500000
|
||||
v -0.600000 1.900000 0.500000
|
||||
v -0.600000 1.900000 1.100000
|
||||
v 0.600000 1.100000 1.100000
|
||||
v 0.600000 1.100000 0.500000
|
||||
v -0.600000 1.100000 0.500000
|
||||
v -0.600000 1.100000 1.100000
|
||||
v 0.000000 6.000000 0.000000
|
||||
vt 0.617150 0.518932
|
||||
vt 0.579584 0.518932
|
||||
vt 0.579586 0.037535
|
||||
vt 0.542018 0.518932
|
||||
vt 0.542019 0.037534
|
||||
vt 0.504451 0.518932
|
||||
vt 0.504453 0.037534
|
||||
vt 0.466885 0.518932
|
||||
vt 0.466886 0.037534
|
||||
vt 0.429318 0.518932
|
||||
vt 0.429320 0.037534
|
||||
vt 0.391752 0.518932
|
||||
vt 0.391753 0.037534
|
||||
vt 0.354185 0.518931
|
||||
vt 0.354186 0.037534
|
||||
vt 0.316619 0.518931
|
||||
vt 0.316620 0.037534
|
||||
vt 0.279052 0.518931
|
||||
vt 0.279053 0.037534
|
||||
vt 0.241486 0.518931
|
||||
vt 0.241486 0.037534
|
||||
vt 0.203920 0.518931
|
||||
vt 0.203920 0.037534
|
||||
vt 0.166353 0.518931
|
||||
vt 0.166353 0.037533
|
||||
vt 0.128787 0.518931
|
||||
vt 0.128787 0.037533
|
||||
vt 0.091220 0.518931
|
||||
vt 0.091220 0.037533
|
||||
vt 0.314740 0.577466
|
||||
vt 0.280931 0.577466
|
||||
vt 0.053654 0.518931
|
||||
vt 0.016087 0.518931
|
||||
vt 0.016087 0.037534
|
||||
vt 0.053653 0.037533
|
||||
vt 0.782454 0.173122
|
||||
vt 0.662264 0.149215
|
||||
vt 0.686172 0.029025
|
||||
vt 0.427441 0.016087
|
||||
vt 0.465008 0.016087
|
||||
vt 0.468765 0.016087
|
||||
vt 0.502575 0.016087
|
||||
vt 0.506331 0.016087
|
||||
vt 0.540141 0.016088
|
||||
vt 0.543898 0.016088
|
||||
vt 0.577708 0.016088
|
||||
vt 0.581464 0.016088
|
||||
vt 0.615274 0.016088
|
||||
vt 0.617153 0.037535
|
||||
vt 0.017965 0.016087
|
||||
vt 0.051775 0.016087
|
||||
vt 0.055532 0.016087
|
||||
vt 0.089342 0.016087
|
||||
vt 0.093098 0.016087
|
||||
vt 0.126908 0.016087
|
||||
vt 0.130665 0.016087
|
||||
vt 0.164475 0.016087
|
||||
vt 0.202042 0.016087
|
||||
vt 0.239608 0.016087
|
||||
vt 0.277175 0.016087
|
||||
vt 0.314741 0.016087
|
||||
vt 0.352308 0.016087
|
||||
vt 0.389875 0.016087
|
||||
vt 0.352307 0.577466
|
||||
vt 0.318497 0.577466
|
||||
vt 0.389873 0.577466
|
||||
vt 0.427440 0.577466
|
||||
vt 0.393630 0.577466
|
||||
vt 0.465006 0.577466
|
||||
vt 0.502573 0.577466
|
||||
vt 0.468763 0.577466
|
||||
vt 0.540139 0.577466
|
||||
vt 0.577706 0.577467
|
||||
vt 0.543896 0.577467
|
||||
vt 0.615272 0.577467
|
||||
vt 0.581462 0.577467
|
||||
vt 0.051776 0.577466
|
||||
vt 0.017966 0.577466
|
||||
vt 0.089342 0.577466
|
||||
vt 0.055532 0.577466
|
||||
vt 0.126908 0.577466
|
||||
vt 0.093099 0.577466
|
||||
vt 0.164475 0.577466
|
||||
vt 0.130665 0.577466
|
||||
vt 0.202041 0.577466
|
||||
vt 0.168231 0.577466
|
||||
vt 0.239608 0.577466
|
||||
vt 0.277174 0.577466
|
||||
vt 0.116571 0.796777
|
||||
vt 0.106943 0.796777
|
||||
vt 0.114272 0.759932
|
||||
vt 0.123167 0.763617
|
||||
vt 0.135143 0.728697
|
||||
vt 0.170063 0.716721
|
||||
vt 0.141951 0.735505
|
||||
vt 0.166378 0.707826
|
||||
vt 0.203223 0.700497
|
||||
vt 0.203223 0.710125
|
||||
vt 0.240068 0.707826
|
||||
vt 0.236383 0.716721
|
||||
vt 0.271303 0.728697
|
||||
vt 0.264495 0.735505
|
||||
vt 0.292174 0.759932
|
||||
vt 0.283279 0.763617
|
||||
vt 0.299503 0.796777
|
||||
vt 0.289875 0.796777
|
||||
vt 0.292174 0.833621
|
||||
vt 0.264495 0.858049
|
||||
vt 0.283279 0.829937
|
||||
vt 0.271303 0.864857
|
||||
vt 0.240068 0.885728
|
||||
vt 0.203223 0.883429
|
||||
vt 0.236383 0.876833
|
||||
vt 0.203223 0.893056
|
||||
vt 0.166379 0.885728
|
||||
vt 0.123167 0.829937
|
||||
vt 0.114272 0.833621
|
||||
vt 0.141951 0.858049
|
||||
vt 0.135143 0.864857
|
||||
vt 0.170063 0.876833
|
||||
vt 0.595837 0.802200
|
||||
vt 0.480301 0.802200
|
||||
vt 0.480301 0.744432
|
||||
vt 0.240447 0.983913
|
||||
vt 0.165999 0.983913
|
||||
vt 0.097219 0.955423
|
||||
vt 0.044577 0.902781
|
||||
vt 0.016087 0.834001
|
||||
vt 0.016087 0.759553
|
||||
vt 0.044576 0.690772
|
||||
vt 0.097219 0.638130
|
||||
vt 0.165999 0.609640
|
||||
vt 0.480301 0.609640
|
||||
vt 0.595836 0.609640
|
||||
vt 0.595836 0.667408
|
||||
vt 0.480301 0.667408
|
||||
vt 0.595837 0.744432
|
||||
vt 0.653604 0.667408
|
||||
vt 0.422533 0.744432
|
||||
vt 0.422533 0.667408
|
||||
vt 0.390360 0.834001
|
||||
vt 0.361870 0.902781
|
||||
vt 0.390360 0.759553
|
||||
vt 0.361870 0.690772
|
||||
vt 0.309227 0.638130
|
||||
vt 0.309227 0.955423
|
||||
vt 0.240447 0.609640
|
||||
vt 0.717408 0.016087
|
||||
vt 0.751218 0.016087
|
||||
vt 0.782454 0.029025
|
||||
vt 0.806361 0.052932
|
||||
vt 0.819300 0.084168
|
||||
vt 0.819300 0.117978
|
||||
vt 0.806361 0.149215
|
||||
vt 0.751218 0.186060
|
||||
vt 0.717408 0.186060
|
||||
vt 0.686172 0.173122
|
||||
vt 0.649326 0.117978
|
||||
vt 0.649326 0.084168
|
||||
vt 0.662264 0.052932
|
||||
vt 0.393631 0.016087
|
||||
vt 0.431198 0.016087
|
||||
vt 0.168232 0.016087
|
||||
vt 0.205798 0.016087
|
||||
vt 0.243365 0.016087
|
||||
vt 0.280931 0.016087
|
||||
vt 0.318498 0.016087
|
||||
vt 0.356065 0.016087
|
||||
vt 0.356064 0.577466
|
||||
vt 0.431196 0.577466
|
||||
vt 0.506329 0.577466
|
||||
vt 0.205798 0.577466
|
||||
vt 0.243364 0.577466
|
||||
vt 0.653604 0.744432
|
||||
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 -0.980800 0.000000 -0.195100
|
||||
vn -0.831500 0.000000 -0.555600
|
||||
vn -0.192500 0.161300 0.967900
|
||||
vn -0.195100 0.000000 -0.980800
|
||||
vn -0.555600 0.000000 -0.831500
|
||||
vn 0.000000 -1.000000 0.000000
|
||||
vn 0.746500 -0.440300 0.498800
|
||||
vn 0.880600 -0.440300 0.175200
|
||||
vn 0.880600 -0.440300 -0.175200
|
||||
vn 0.746500 -0.440300 -0.498800
|
||||
vn 0.498800 -0.440300 -0.746500
|
||||
vn 0.175200 -0.440300 -0.880600
|
||||
vn -0.175200 -0.440300 -0.880600
|
||||
vn -0.498800 -0.440300 -0.746500
|
||||
vn -0.746500 -0.440300 -0.498800
|
||||
vn -0.880600 -0.440300 -0.175200
|
||||
vn -0.880600 -0.440300 0.175200
|
||||
vn -0.746500 -0.440300 0.498800
|
||||
vn -0.498800 -0.440300 0.746500
|
||||
vn -0.175200 -0.440300 0.880600
|
||||
vn 0.175200 -0.440300 0.880600
|
||||
vn 0.498800 -0.440300 0.746500
|
||||
vn 0.192500 0.161300 0.967900
|
||||
vn 0.548300 0.161300 0.820600
|
||||
vn 0.820600 0.161300 0.548300
|
||||
vn 0.967900 0.161300 0.192500
|
||||
vn 0.967900 0.161300 -0.192500
|
||||
vn 0.820600 0.161300 -0.548300
|
||||
vn 0.548300 0.161300 -0.820600
|
||||
vn 0.192500 0.161300 -0.967900
|
||||
vn -0.192500 0.161300 -0.967900
|
||||
vn -0.548300 0.161300 -0.820600
|
||||
vn -0.820600 0.161300 -0.548300
|
||||
vn -0.967900 0.161300 -0.192500
|
||||
vn -0.967900 0.161300 0.192500
|
||||
vn -0.820600 0.161300 0.548300
|
||||
vn -0.548300 0.161300 0.820600
|
||||
vn 0.000000 1.000000 0.000000
|
||||
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.000000 0.000000 1.000000
|
||||
vn 1.000000 0.000000 0.000000
|
||||
vn -1.000000 0.000000 0.000000
|
||||
vn 0.196000 0.979800 0.039000
|
||||
vn 0.166100 0.979800 0.111000
|
||||
vn 0.196000 0.979800 -0.039000
|
||||
vn 0.166100 0.979800 -0.111000
|
||||
vn 0.111000 0.979800 -0.166100
|
||||
vn 0.111000 0.979800 0.166100
|
||||
vn 0.039000 0.979800 -0.196000
|
||||
s off
|
||||
f 18/1/1 20/2/1 19/3/1
|
||||
f 20/2/2 22/4/2 21/5/2
|
||||
f 22/4/3 24/6/3 23/7/3
|
||||
f 24/6/4 26/8/4 25/9/4
|
||||
f 26/8/5 28/10/5 27/11/5
|
||||
f 28/10/6 30/12/6 29/13/6
|
||||
f 30/12/7 32/14/7 31/15/7
|
||||
f 32/14/8 34/16/8 33/17/8
|
||||
f 34/16/9 36/18/9 35/19/9
|
||||
f 36/18/10 38/20/10 37/21/10
|
||||
f 38/20/11 40/22/11 39/23/11
|
||||
f 40/22/12 42/24/12 41/25/12
|
||||
f 42/24/13 44/26/13 43/27/13
|
||||
f 44/26/14 46/28/14 45/29/14
|
||||
f 34/16/15 57/30/15 56/31/15
|
||||
f 48/32/16 18/33/16 17/34/16
|
||||
f 46/28/17 48/32/17 47/35/17
|
||||
f 11/36/18 7/37/18 3/38/18
|
||||
f 12/39/19 27/11/19 29/13/19
|
||||
f 13/40/20 25/9/20 27/11/20
|
||||
f 13/41/21 14/42/21 23/7/21
|
||||
f 14/43/22 15/44/22 21/5/22
|
||||
f 15/45/23 16/46/23 19/3/23
|
||||
f 16/47/24 1/48/24 17/49/24
|
||||
f 1/50/25 2/51/25 47/35/25
|
||||
f 2/52/26 3/53/26 45/29/26
|
||||
f 3/54/27 4/55/27 43/27/27
|
||||
f 4/56/28 5/57/28 41/25/28
|
||||
f 6/58/29 39/23/29 41/25/29
|
||||
f 7/59/30 37/21/30 39/23/30
|
||||
f 8/60/31 35/19/31 37/21/31
|
||||
f 9/61/32 33/17/32 35/19/32
|
||||
f 10/62/33 31/15/33 33/17/33
|
||||
f 11/63/34 29/13/34 31/15/34
|
||||
f 32/14/35 58/64/35 57/65/35
|
||||
f 32/14/36 30/12/36 59/66/36
|
||||
f 28/10/37 60/67/37 59/68/37
|
||||
f 28/10/38 26/8/38 61/69/38
|
||||
f 24/6/39 62/70/39 61/71/39
|
||||
f 24/6/40 22/4/40 63/72/40
|
||||
f 20/2/41 64/73/41 63/74/41
|
||||
f 18/1/42 49/75/42 64/76/42
|
||||
f 48/32/43 50/77/43 49/78/43
|
||||
f 46/28/44 51/79/44 50/80/44
|
||||
f 44/26/45 52/81/45 51/82/45
|
||||
f 42/24/46 53/83/46 52/84/46
|
||||
f 40/22/47 54/85/47 53/86/47
|
||||
f 40/22/48 38/20/48 55/87/48
|
||||
f 38/20/49 36/18/49 56/88/49
|
||||
f 53/89/18 69/90/18 68/91/18
|
||||
f 52/92/18 68/91/18 67/93/18
|
||||
f 50/94/18 51/95/18 67/93/18
|
||||
f 50/94/18 66/96/18 65/97/18
|
||||
f 49/98/18 65/97/18 80/99/18
|
||||
f 64/100/18 80/99/18 79/101/18
|
||||
f 63/102/18 79/101/18 78/103/18
|
||||
f 62/104/18 78/103/18 77/105/18
|
||||
f 61/106/18 77/105/18 76/107/18
|
||||
f 59/108/18 60/109/18 76/107/18
|
||||
f 59/108/18 75/110/18 74/111/18
|
||||
f 57/112/18 58/113/18 74/111/18
|
||||
f 57/112/18 73/114/18 72/115/18
|
||||
f 53/89/18 54/116/18 70/117/18
|
||||
f 55/118/18 71/119/18 70/117/18
|
||||
f 56/120/18 72/115/18 71/119/18
|
||||
f 82/121/50 83/122/50 84/123/50
|
||||
f 73/114/51 74/111/51 89/124/51
|
||||
f 72/115/52 73/114/52 89/125/52
|
||||
f 71/119/53 72/115/53 89/126/53
|
||||
f 70/117/54 71/119/54 89/127/54
|
||||
f 69/90/55 70/117/55 89/128/55
|
||||
f 68/91/56 69/90/56 89/129/56
|
||||
f 67/93/57 68/91/57 89/130/57
|
||||
f 66/96/58 67/93/58 89/131/58
|
||||
f 65/97/59 66/96/59 89/132/59
|
||||
f 87/133/18 86/134/18 85/135/18
|
||||
f 84/123/60 88/136/60 85/135/60
|
||||
f 81/137/61 85/135/61 86/138/61
|
||||
f 83/139/62 87/140/62 88/136/62
|
||||
f 76/107/63 77/105/63 89/141/63
|
||||
f 75/110/64 76/107/64 89/142/64
|
||||
f 77/105/65 78/103/65 89/143/65
|
||||
f 78/103/66 79/101/66 89/144/66
|
||||
f 80/99/67 89/145/67 79/101/67
|
||||
f 74/111/68 75/110/68 89/146/68
|
||||
f 80/99/69 65/97/69 89/147/69
|
||||
f 17/49/1 18/1/1 19/3/1
|
||||
f 19/3/2 20/2/2 21/5/2
|
||||
f 21/5/3 22/4/3 23/7/3
|
||||
f 23/7/4 24/6/4 25/9/4
|
||||
f 25/9/5 26/8/5 27/11/5
|
||||
f 27/11/6 28/10/6 29/13/6
|
||||
f 29/13/7 30/12/7 31/15/7
|
||||
f 31/15/8 32/14/8 33/17/8
|
||||
f 33/17/9 34/16/9 35/19/9
|
||||
f 35/19/10 36/18/10 37/21/10
|
||||
f 37/21/11 38/20/11 39/23/11
|
||||
f 39/23/12 40/22/12 41/25/12
|
||||
f 41/25/13 42/24/13 43/27/13
|
||||
f 43/27/14 44/26/14 45/29/14
|
||||
f 36/18/15 34/16/15 56/31/15
|
||||
f 47/35/16 48/32/16 17/34/16
|
||||
f 45/29/17 46/28/17 47/35/17
|
||||
f 3/38/18 2/148/18 1/149/18
|
||||
f 1/149/18 16/150/18 15/151/18
|
||||
f 15/151/18 14/152/18 13/153/18
|
||||
f 13/153/18 12/154/18 11/36/18
|
||||
f 11/36/18 10/155/18 9/156/18
|
||||
f 9/156/18 8/157/18 7/37/18
|
||||
f 7/37/18 6/158/18 5/159/18
|
||||
f 5/159/18 4/160/18 3/38/18
|
||||
f 3/38/18 1/149/18 15/151/18
|
||||
f 15/151/18 13/153/18 3/38/18
|
||||
f 11/36/18 9/156/18 7/37/18
|
||||
f 7/37/18 5/159/18 3/38/18
|
||||
f 3/38/18 13/153/18 11/36/18
|
||||
f 11/161/19 12/39/19 29/13/19
|
||||
f 12/162/20 13/40/20 27/11/20
|
||||
f 25/9/21 13/41/21 23/7/21
|
||||
f 23/7/22 14/43/22 21/5/22
|
||||
f 21/5/23 15/45/23 19/3/23
|
||||
f 19/3/24 16/47/24 17/49/24
|
||||
f 17/34/25 1/50/25 47/35/25
|
||||
f 47/35/26 2/52/26 45/29/26
|
||||
f 45/29/27 3/54/27 43/27/27
|
||||
f 43/27/28 4/56/28 41/25/28
|
||||
f 5/163/29 6/58/29 41/25/29
|
||||
f 6/164/30 7/59/30 39/23/30
|
||||
f 7/165/31 8/60/31 37/21/31
|
||||
f 8/166/32 9/61/32 35/19/32
|
||||
f 9/167/33 10/62/33 33/17/33
|
||||
f 10/168/34 11/63/34 31/15/34
|
||||
f 34/16/35 32/14/35 57/65/35
|
||||
f 58/169/36 32/14/36 59/66/36
|
||||
f 30/12/37 28/10/37 59/68/37
|
||||
f 60/170/38 28/10/38 61/69/38
|
||||
f 26/8/39 24/6/39 61/71/39
|
||||
f 62/171/40 24/6/40 63/72/40
|
||||
f 22/4/41 20/2/41 63/74/41
|
||||
f 20/2/42 18/1/42 64/76/42
|
||||
f 18/33/43 48/32/43 49/78/43
|
||||
f 48/32/44 46/28/44 50/80/44
|
||||
f 46/28/45 44/26/45 51/82/45
|
||||
f 44/26/46 42/24/46 52/84/46
|
||||
f 42/24/47 40/22/47 53/86/47
|
||||
f 54/172/48 40/22/48 55/87/48
|
||||
f 55/173/49 38/20/49 56/88/49
|
||||
f 52/92/18 53/89/18 68/91/18
|
||||
f 51/95/18 52/92/18 67/93/18
|
||||
f 66/96/18 50/94/18 67/93/18
|
||||
f 49/98/18 50/94/18 65/97/18
|
||||
f 64/100/18 49/98/18 80/99/18
|
||||
f 63/102/18 64/100/18 79/101/18
|
||||
f 62/104/18 63/102/18 78/103/18
|
||||
f 61/106/18 62/104/18 77/105/18
|
||||
f 60/109/18 61/106/18 76/107/18
|
||||
f 75/110/18 59/108/18 76/107/18
|
||||
f 58/113/18 59/108/18 74/111/18
|
||||
f 73/114/18 57/112/18 74/111/18
|
||||
f 56/120/18 57/112/18 72/115/18
|
||||
f 69/90/18 53/89/18 70/117/18
|
||||
f 54/116/18 55/118/18 70/117/18
|
||||
f 55/118/18 56/120/18 71/119/18
|
||||
f 81/137/50 82/121/50 84/123/50
|
||||
f 88/136/18 87/133/18 85/135/18
|
||||
f 81/137/60 84/123/60 85/135/60
|
||||
f 82/174/61 81/137/61 86/138/61
|
||||
f 84/123/62 83/139/62 88/136/62
|
||||
302
src/main/java/assets/hbm/models/LaunchPad.obj
Normal file
302
src/main/java/assets/hbm/models/LaunchPad.obj
Normal file
@ -0,0 +1,302 @@
|
||||
# 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
|
||||
132
src/main/java/assets/hbm/models/Mirv.obj
Normal file
132
src/main/java/assets/hbm/models/Mirv.obj
Normal file
@ -0,0 +1,132 @@
|
||||
# Blender v2.76 (sub 0) OBJ File: ''
|
||||
# www.blender.org
|
||||
o Cone
|
||||
v 0.000000 0.000000 -0.250000
|
||||
v 0.095671 0.000000 -0.230970
|
||||
v 0.176777 0.000000 -0.176777
|
||||
v 0.230970 0.000000 -0.095671
|
||||
v 0.250000 0.000000 0.000000
|
||||
v 0.000000 1.000000 0.000000
|
||||
v 0.230970 0.000000 0.095671
|
||||
v 0.176777 0.000000 0.176777
|
||||
v 0.095671 0.000000 0.230970
|
||||
v 0.000000 0.000000 0.250000
|
||||
v -0.095671 0.000000 0.230970
|
||||
v -0.176777 0.000000 0.176777
|
||||
v -0.230970 0.000000 0.095671
|
||||
v -0.250000 0.000000 -0.000000
|
||||
v -0.230970 0.000000 -0.095671
|
||||
v -0.176777 0.000000 -0.176777
|
||||
v -0.095671 0.000000 -0.230970
|
||||
vt 0.604260 0.026082
|
||||
vt 0.604260 0.474169
|
||||
vt 0.562802 0.028089
|
||||
vt 0.377812 0.973917
|
||||
vt 0.398565 0.526333
|
||||
vt 0.419317 0.973918
|
||||
vt 0.419224 0.026082
|
||||
vt 0.419224 0.474169
|
||||
vt 0.377766 0.028089
|
||||
vt 0.025530 0.739009
|
||||
vt 0.046282 0.291425
|
||||
vt 0.067035 0.739009
|
||||
vt 0.470284 0.472162
|
||||
vt 0.511742 0.026082
|
||||
vt 0.511742 0.474169
|
||||
vt 0.118094 0.739009
|
||||
vt 0.138846 0.291425
|
||||
vt 0.159599 0.739009
|
||||
vt 0.840401 0.973416
|
||||
vt 0.861154 0.525831
|
||||
vt 0.881906 0.973416
|
||||
vt 0.747837 0.973416
|
||||
vt 0.768589 0.525831
|
||||
vt 0.789342 0.973416
|
||||
vt 0.285248 0.472162
|
||||
vt 0.326707 0.026082
|
||||
vt 0.326707 0.474169
|
||||
vt 0.747837 0.473667
|
||||
vt 0.768589 0.026082
|
||||
vt 0.789342 0.473667
|
||||
vt 0.655319 0.472162
|
||||
vt 0.696778 0.026082
|
||||
vt 0.696778 0.474169
|
||||
vt 0.285248 0.973918
|
||||
vt 0.306001 0.526333
|
||||
vt 0.326753 0.973918
|
||||
vt 0.562941 0.973918
|
||||
vt 0.583693 0.526333
|
||||
vt 0.604446 0.973918
|
||||
vt 0.840401 0.473667
|
||||
vt 0.861154 0.026082
|
||||
vt 0.881906 0.473667
|
||||
vt 0.932966 0.473667
|
||||
vt 0.953718 0.026082
|
||||
vt 0.974470 0.473667
|
||||
vt 0.470377 0.973918
|
||||
vt 0.491129 0.526333
|
||||
vt 0.511882 0.973918
|
||||
vt 0.218306 0.072293
|
||||
vt 0.188957 0.223033
|
||||
vt 0.070761 0.042310
|
||||
vt 0.041413 0.193049
|
||||
vt 0.025530 0.153873
|
||||
vt 0.025530 0.111469
|
||||
vt 0.041413 0.072293
|
||||
vt 0.109107 0.026082
|
||||
vt 0.150612 0.026082
|
||||
vt 0.188957 0.042310
|
||||
vt 0.234189 0.111469
|
||||
vt 0.234189 0.153873
|
||||
vt 0.218306 0.193049
|
||||
vt 0.150612 0.239260
|
||||
vt 0.109107 0.239260
|
||||
vt 0.070761 0.223032
|
||||
vn -0.539600 0.238100 -0.807500
|
||||
vn 0.189500 0.238100 -0.952600
|
||||
vn -0.807500 0.238100 -0.539600
|
||||
vn -0.952600 0.238100 -0.189500
|
||||
vn -0.952600 0.238100 0.189500
|
||||
vn -0.807500 0.238100 0.539600
|
||||
vn -0.539600 0.238100 0.807500
|
||||
vn -0.189500 0.238100 0.952600
|
||||
vn 0.189500 0.238100 0.952600
|
||||
vn 0.539600 0.238100 0.807500
|
||||
vn 0.807500 0.238100 0.539600
|
||||
vn 0.952600 0.238100 0.189500
|
||||
vn 0.952600 0.238100 -0.189500
|
||||
vn 0.807500 0.238100 -0.539600
|
||||
vn -0.189500 0.238100 -0.952600
|
||||
vn 0.539600 0.238100 -0.807500
|
||||
vn 0.000000 -1.000000 0.000000
|
||||
s off
|
||||
f 16/1/1 6/2/1 17/3/1
|
||||
f 1/4/2 6/5/2 2/6/2
|
||||
f 15/7/3 6/8/3 16/9/3
|
||||
f 14/10/4 6/11/4 15/12/4
|
||||
f 13/13/5 6/14/5 14/15/5
|
||||
f 12/16/6 6/17/6 13/18/6
|
||||
f 11/19/7 6/20/7 12/21/7
|
||||
f 10/22/8 6/23/8 11/24/8
|
||||
f 9/25/9 6/26/9 10/27/9
|
||||
f 8/28/10 6/29/10 9/30/10
|
||||
f 7/31/11 6/32/11 8/33/11
|
||||
f 5/34/12 6/35/12 7/36/12
|
||||
f 4/37/13 6/38/13 5/39/13
|
||||
f 3/40/14 6/41/14 4/42/14
|
||||
f 17/43/15 6/44/15 1/45/15
|
||||
f 2/46/16 6/47/16 3/48/16
|
||||
f 9/49/17 13/50/17 4/51/17
|
||||
f 17/52/17 1/53/17 2/54/17
|
||||
f 2/54/17 3/55/17 17/52/17
|
||||
f 4/51/17 5/56/17 7/57/17
|
||||
f 7/57/17 8/58/17 4/51/17
|
||||
f 9/49/17 10/59/17 13/50/17
|
||||
f 11/60/17 12/61/17 13/50/17
|
||||
f 13/50/17 14/62/17 15/63/17
|
||||
f 15/63/17 16/64/17 17/52/17
|
||||
f 17/52/17 3/55/17 4/51/17
|
||||
f 4/51/17 8/58/17 9/49/17
|
||||
f 10/59/17 11/60/17 13/50/17
|
||||
f 13/50/17 15/63/17 17/52/17
|
||||
f 17/52/17 4/51/17 13/50/17
|
||||
704
src/main/java/assets/hbm/models/Missile.obj
Normal file
704
src/main/java/assets/hbm/models/Missile.obj
Normal file
@ -0,0 +1,704 @@
|
||||
# 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
|
||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user