diff --git a/.circleci/config.yml b/.circleci/config.yml index 9deaa401a8..b94abb8cfd 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -1,50 +1,98 @@ -# Java Gradle CircleCI 2.0 configuration file -# -# Check https://circleci.com/docs/2.0/language-java/ for more details -# -version: 2 -jobs: - build: - docker: - # specify the version you desire here - - image: cimg/openjdk:8.0.282 +version: 2.1 - # Specify service dependencies here if necessary - # CircleCI maintains a library of pre-built images - # documented at https://circleci.com/docs/2.0/circleci-images/ - # - image: circleci/postgres:9.4 +orbs: + gradle: circleci/gradle@3.0.0 - working_directory: ~/repo +parameters: + artifact-name: + type: string + default: aether_ii +jobs: + build: + machine: + image: ubuntu-2204:2022.07.1 + resource_class: large environment: - # Customize the JVM maximum heap limit - JVM_OPTS: -Xmx3200m - TERM: dumb + _JAVA_OPTIONS: -Xmx9600m + GRADLE_OPTS: -Dorg.gradle.daemon=false + steps: + - setup + - run: + name: Remove sources before persist + command: | + cd ~/project/build/libs + rm *-sources.jar + - persist_to_workspace: + root: ~/project/build/libs + paths: + - << pipeline.parameters.artifact-name >>-*.jar + - run: + name: Publish artifact link to Discord + command: | + artifact_path=$(curl --request GET --url https://circleci.com/api/v2/project/gh/$CIRCLE_PROJECT_USERNAME/$CIRCLE_PROJECT_REPONAME/$CIRCLE_BUILD_NUM/artifacts --header 'authorization: Basic REPLACE_BASIC_AUTH' | jq -r '.items[1].path') + if [ -z "${WEBHOOK_URL}" ]; then + echo "NO DISCORD WEBHOOK SET" + echo "Please input your DISCORD_WEBHOOK value either in the settings for this project, or as a parameter for this orb." + exit 1 + else + curl -X POST -H 'Content-type: application/json' \ + --data \ + "{ \ + \"embeds\": [{ \ + \"title\": \"$CIRCLE_BRANCH\", \ + \"description\": \"The latest CircleCI job has completed, a direct download link for the build can be found here: https://output.circle-artifacts.com/output/job/${CIRCLE_WORKFLOW_JOB_ID}/artifacts/${CIRCLE_NODE_INDEX}/${artifact_path}\", \ + \"color\": \"301898\", \ + \"fields\": [ \ + { \ + \"name\": \"Project\", \ + \"value\": \"$CIRCLE_PROJECT_REPONAME\", \ + \"inline\": true \ + }, \ + { \ + \"name\": \"Job Number\", \ + \"value\": \"$CIRCLE_BUILD_NUM\", \ + \"inline\": true \ + } \ + ] \ + }] \ + }" ${WEBHOOK_URL} + fi + publish: + machine: + image: ubuntu-2204:2022.07.1 + resource_class: large + environment: + _JAVA_OPTIONS: -Xmx3200m + GRADLE_OPTS: -Dorg.gradle.daemon=false steps: - - checkout - # Download and cache dependencies - - restore_cache: - keys: - - v2-dependencies-{{ checksum "build.gradle" }} - # fallback to using the latest cache if no exact match is found - - v2-dependencies- + - setup + - run: gradle publish - - run: git clone -b master https://github.com/Gilded-Games/OrbisLib lib/orbis-lib - - run: ./gradlew -p lib/orbis-lib build +commands: + setup: + steps: + - checkout + - gradle/with_cache: + steps: + - run: gradle build --build-cache - store_artifacts: - path: ~/repo/lib/orbis-lib/build/libs/orbis-lib-1.12.2-0.2.0-SNAPSHOT-universal.jar - - - run: chmod +x gradlew - - - run: ./gradlew dependencies + path: ~/project/build/libs - - save_cache: - paths: - - ~/repo/.gradle - key: v2-dependencies-{{ checksum "build.gradle" }} - - - run: ./gradlew test - - run: ./gradlew build - - store_artifacts: - path: ~/repo/build/libs \ No newline at end of file +workflows: + build: + jobs: + - build + publish: + jobs: + - publish: + context: + - maven + filters: + tags: + only: + - /.*/ + branches: + ignore: + - /.*/ \ No newline at end of file diff --git a/.gitattributes b/.gitattributes index 673ee4985f..f811f6ae6a 100644 --- a/.gitattributes +++ b/.gitattributes @@ -1 +1,5 @@ -*.webp binary \ No newline at end of file +# Disable autocrlf on generated files, they always generate with LF +# Add any extra files or paths here to make git stop saying they +# are changed when only line endings change. +src/generated/**/.cache/cache text eol=lf +src/generated/**/*.json text eol=lf diff --git a/.githooks/commit-msg b/.githooks/commit-msg new file mode 100644 index 0000000000..ee2d7b9e37 --- /dev/null +++ b/.githooks/commit-msg @@ -0,0 +1,20 @@ +#!/usr/bin/env bash +# Based on https://github.com/dwmkerr/java-maven-standard-version-sample/blob/master/.githooks/commit-msg + +# Create a regex for a conventional commit. +conventional_commit_regex="^(update|feat|improv|perf|fix|refactor|style|docs|ci|build|test|chore|revert)(\([a-z \-]+\))?!?: .+$" + +# Get the commit message (the parameter we're given is just the path to the temporary file which holds the message). +commit_message=$(cat "$1") + +# Check the message, if we match, all good baby. +if [[ "$commit_message" =~ $conventional_commit_regex ]]; then + echo -e "\e[32mCommit message meets Conventional Commit standards...\e[0m" + exit 0 +fi + +# Uh-oh, this is not a conventional commit, show an example and link to the spec. +echo -e "\e[31mThe commit message does not meet the Conventional Commit standard\e[0m" +echo "Examples of valid messages can be found at: https://github.com/Gilded-Games/The-Aether-II/blob/1.19/docs/references/COMMITS.md#examples" +echo "More details at: https://www.conventionalcommits.org/en/v1.0.0-beta.4/" +exit 1 \ No newline at end of file diff --git a/.github/ISSUE_TEMPLATE/bug-report.yml b/.github/ISSUE_TEMPLATE/bug-report.yml new file mode 100644 index 0000000000..ed50a4eeb3 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug-report.yml @@ -0,0 +1,115 @@ +name: '🐛 Bug Report' +description: Create an issue about a bug. +labels: [ "type/bug" ] +title: 'Bug: ' +body: + - type: dropdown + id: feat-type + attributes: + label: What Feature Types Apply to This Bug? + multiple: true + options: + - Art + - Audio + - Block + - Config + - Copy + - Docs + - Entity + - Gui + - Item + - System + - World-Gen + - Other (Please Describe) + - type: input + id: other-type + attributes: + label: Other Type + description: If you selected other in the dropdown above, please what type it is. + validations: + required: false + - type: dropdown + id: bug-type + attributes: + label: What Type of Bug Is This? + options: + - Annoyance + - Compatibility + - Crash + - Design + - Performance + - Unexpected Behavior + - type: input + id: forge-ver + attributes: + label: Forge Version + description: What version of Forge are you running? This can be found on the installation jar you have downloaded, in the Mod Options menu, or the profile's version. Please note "latest" is NOT a version. + placeholder: "39.0.0" + validations: + required: true + - type: input + id: aether-ii-ver + attributes: + label: The Aether II Version + description: What version of The Aether are you running? This can be found on the jar file you have downloaded or the Mod Options menu. Please note "latest" is NOT a version. + placeholder: "1.1.1" + validations: + required: true + - type: input + id: mod-conflict + attributes: + label: Is This Bug a Conflict With Another Mod? + description: If this happens due to another mod, please put the name and version of the mod here. Leave blank otherwise. + validations: + required: false + - type: input + id: client-log + attributes: + label: Client Log + description: A **[Gist](https://gist.github.com/)** link to the full game log. This can be found in the game files under the `logs` folder. Though not necessary, a client log can help diagnose an issue better in case a bug is caused by a reported error. Provide the `latest.log` or `debug.log` file as a Gist as soon as you find the bug, as these files are reset every time the game is opened. + - type: input + id: crash-log + attributes: + label: Crash Report (if applicable) + description: A **[Gist](https://gist.github.com/)** link to the crash report. This can be found in the game files under the `crash-reports` folder, and all the contents of the file should be pasted into the Gist file. If the bug does not result in a crash, ignore this field. + - type: textarea + id: steps + attributes: + label: Steps to Reproduce + description: A detailed list of how you encountered this bug if it is not immediately obvious. If the bug is immediately obvious, briefly mention how to replicate it. + placeholder: | + How often this happens + 1. Step 1 + 2. Step 2 + 3. Step 3, etc. + validations: + required: true + - type: textarea + attributes: + label: What You Expect To Happen + description: Describe what you thought was supposed to have happened. Don't worry if you think what you expected may be wrong. + validations: + required: true + - type: textarea + attributes: + label: What Actually Happened + description: Describe what happened to you that wasn't to expectations. + validations: + required: true + - type: textarea + attributes: + label: Additional Details + description: Provide any other information you think might be useful for this report. This may include screenshots, video footage, other mod details, anything you think might be relevant. + - type: checkboxes + id: confirmation + attributes: + label: Please Read and Confirm The Following + options: + - label: I have confirmed this bug can be replicated without the use of Optifine. + required: true + - label: I have confirmed this bug is on the most recently supported version of Minecraft. + required: true + - label: I have confirmed the details provided in this report are concise as possible and does not contained vague information (ie. Versions are properly recorded, answers to questions are clear). + required: true + - label: I have confirmed this issue is unique and has not been reported already. + required: true \ No newline at end of file diff --git a/.github/workflows/add-issue.yml b/.github/workflows/add-issue.yml new file mode 100644 index 0000000000..12beca42ac --- /dev/null +++ b/.github/workflows/add-issue.yml @@ -0,0 +1,15 @@ +name: Add issues to project + +on: + issues: + types: + - opened +jobs: + add-issue-to-project: + name: Add issue to project + runs-on: ubuntu-latest + steps: + - uses: actions/add-to-project@v0.3.0 + with: + project-url: https://github.com/orgs/Gilded-Games/projects/5 + github-token: ${{ secrets.PROJECT_ADD_TOKEN }} \ No newline at end of file diff --git a/.github/workflows/add-pull-request.yml b/.github/workflows/add-pull-request.yml new file mode 100644 index 0000000000..125fac9bde --- /dev/null +++ b/.github/workflows/add-pull-request.yml @@ -0,0 +1,16 @@ +name: Add pull requests to project + +on: + pull_request: + types: + - opened +jobs: + add-pull-request-to-project: + name: Add pull request to project + runs-on: ubuntu-latest + steps: + - if: github.event.pull_request.head.repo.full_name == github.repository + uses: actions/add-to-project@v0.3.0 + with: + project-url: https://github.com/orgs/Gilded-Games/projects/5 + github-token: ${{ secrets.PROJECT_ADD_TOKEN }} \ No newline at end of file diff --git a/.github/workflows/trigger-build.yml b/.github/workflows/trigger-build.yml new file mode 100644 index 0000000000..0ebbc9d199 --- /dev/null +++ b/.github/workflows/trigger-build.yml @@ -0,0 +1,59 @@ +name: Trigger build + +on: + workflow_dispatch: + inputs: + remote_user: + description: 'GitHub name of the fork organization' + required: true + default: 'Gilded-Games' + type: string + remote_name: + description: 'GitHub name of the fork repository' + required: true + default: 'The-Aether-II' + type: string + remote_branch: + description: 'GitHub branch that the pull request is merging from' + required: true + default: '1.19' + type: string + +jobs: + trigger-build: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + with: + token: ${{ secrets.GIT_TOKEN }} + fetch-depth: 0 + - name: Trigger build + env: + REMOTE_USER: ${{ inputs.remote_user }} + REMOTE_URL: ${{ format('https://Gilded-Games-Bot:{0}@github.com/{1}/{2}', secrets.GIT_TOKEN, inputs.remote_user, inputs.remote_name) }} + BRANCH: ${{ inputs.remote_branch }} + REMOTE_BRANCH: ${{ format('{0}/{1}', inputs.remote_user, inputs.remote_branch) }} + LOCAL_BRANCH: ${{ format('local/{0}/{1}', inputs.remote_user, inputs.remote_branch) }} + MERGE_BRANCH: ${{ format('merge/{0}', inputs.remote_branch) }} + run: | + git config --local user.email "machine@gildedgames.com" + git config --local user.name "Gilded-Games-Bot" + + git checkout -b ${MERGE_BRANCH} ${{ github.action_ref }} + + git remote add ${REMOTE_USER} ${REMOTE_URL} + git fetch ${REMOTE_USER} + git checkout -b ${LOCAL_BRANCH} ${REMOTE_BRANCH} + + git checkout ${MERGE_BRANCH} + git merge ${LOCAL_BRANCH} + git commit --allow-empty -m "chore: Trigger build" + git push --set-upstream origin ${MERGE_BRANCH} + + git checkout ${LOCAL_BRANCH} + git merge ${MERGE_BRANCH} + git push ${REMOTE_USER} HEAD:${BRANCH} + + sleep 60 + git branch -d ${MERGE_BRANCH} + git push origin --delete ${MERGE_BRANCH} \ No newline at end of file diff --git a/.gitignore b/.gitignore index 443be5b7de..b0f9908cd6 100644 --- a/.gitignore +++ b/.gitignore @@ -1,38 +1,30 @@ -# Compiled Java -#zephyroos -*.class - -# Eclipse +# eclipse +bin +*.launch +.settings +.metadata .classpath .project -.settings -# IntelliJ IDEA -*.iml +# idea +out *.ipr *.iws +*.iml .idea -/out -/classes -/libs -/logs -# Gradle +# gradle +build .gradle -/build -/bin -/run - -# Gradle Wrapper -/gradle/wrapper/dists - -# Windows image file caches -Thumbs.db -ehthumbs.db -# Folder config file -Desktop.ini +# other +eclipse +run +__pycache__ +logs -# JVM crash logs -hs_err_pid*.log -replay_pid*.log \ No newline at end of file +# Files from Forge MDK +forge*changelog.txt +.vscode/ +/Users/ +src/generated/resources/.cache/cache diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml deleted file mode 100644 index 7c200a6b30..0000000000 --- a/.gitlab-ci.yml +++ /dev/null @@ -1,20 +0,0 @@ -before_script: - - which java - - which javac - - java -version - - javac -version - -build: - cache: - paths: - - .gradle - - lib/OrbisAPI/.gradle - script: - - export SIGN_BUILD=true - - ./gradlew build - artifacts: - paths: - - build/libs/*.jar - expire_in: 1 month - variables: - GIT_SUBMODULE_STRATEGY: recursive diff --git a/.gitmodules b/.gitmodules deleted file mode 100644 index 543a36f558..0000000000 --- a/.gitmodules +++ /dev/null @@ -1,3 +0,0 @@ -[submodule "OrbisAPI"] - path = lib/orbis-lib - url = https://github.com/Gilded-Games/OrbisLib.git diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md deleted file mode 100644 index 0168ab07a6..0000000000 --- a/CONTRIBUTING.md +++ /dev/null @@ -1,32 +0,0 @@ -### Getting started for programmers -We're excited to hear that you're interested in contributing to the Aether! - -Before getting started, you'll need to install the latest 64-bit version of the OpenJDK 8 for your environment. -- Windows users: We **strongly** recommend you use the Hotspot OpenJDK 8 builds provided by the [AdoptOpenJDK project](https://adoptopenjdk.net/) instead of the builds provided by Oracle. -- macOS and Linux users: If you are already using a package manager, OpenJDK builds should be present in your software repositories. If not, we recommend using [SDKMan](https://sdkman.io/) to install the Hotspot OpenJDK 8 builds provided by the [AdoptOpenJDK](https://adoptopenjdk.net/) project. - -We strongly recommend you use [IntelliJ IDEA Community Edition](https://www.jetbrains.com/idea/) when making code contributions. While other IDEs may work (in theory, anyways), support is spotty and you will often run into issues and other roadblocks. If you're not familiar with setting up IntelliJ IDEA for use with ForgeGradle projects, cpw has created a setup video which runs over a few of the basics of ForgeGradle [here](https://www.youtube.com/watch?v=PfmlNiHonV0). - -If you have any questions or issues, or would just like to discuss Aether development, feel free to [join us on Discord](https://discord.gg/yrFDeVZEwt). - -### Creating merge requests -When contributing source code changes to the Aether II, it is **mandatory** to keep consistent use of the formatting and style guidelines used throughout the codebase. Merge requests which do not adhere to them will be held back until they're updated to meet our requirements. - -If you are using IntelliJ IDEA 2017 or newer, we provide configuration files for our code formatting guidelines and inspections in the `idea` folder. - -Furthermore, please make sure before opening a merge request that: - -- Your merge request has an overview of the changes it makes, along with a link to the open issue(s) it resolves, if applicable. -- Your changes include appropriate documentation and conform to our style guidelines. -- If your merge request contains multiple commits, that you squash them before submitting. -- You state in the description of your merge request that you agree to the Contributor License Agreement (CLA) found below. - -### Contributor License Agreement -By submitting code, assets, or documentation to the repository you are hereby agreeing that: - -- You grant Gilded Games and other users the right to use your contributions under one of the following respective licenses: - - [CC BY-SA 4.0](https://creativecommons.org/licenses/by-sa/4.0/) for assets in `/src/main/java/resources` and wiki pages. - - [LGPL v3.0](https://www.gnu.org/licenses/lgpl-3.0.en.html) for code or other changes. -- Your contributions are of your own work and are free of legal restrictions (such as patents or copyrights). - -If you have any questions about these terms, please [get in contact with us](mailto:support@gildedgames.com). **If you do not agree to these terms, please do not submit contributions to this repository.** diff --git a/CREDITS.txt b/CREDITS.txt new file mode 100644 index 0000000000..e69de29bb2 diff --git a/JAVA_DELAUNAY_README.txt b/JAVA_DELAUNAY_README.txt deleted file mode 100644 index d964f60e70..0000000000 --- a/JAVA_DELAUNAY_README.txt +++ /dev/null @@ -1,26 +0,0 @@ -/* - * Java implementation by Connor Clark (www.hotengames.com). Pretty much a 1:1 - * translation of a wonderful map generating algorthim by Amit Patel of Red Blob Games, - * which can be found here (http://www-cs-students.stanford.edu/~amitp/game-programming/polygon-map-generation/) - * Hopefully it's of use to someone out there who needed it in Java like I did! - * - * FORTUNE'S ALGORTIHIM - * - * This is a java implementation of an AS3 (Flash) implementation of an algorthim - * originally created in C++. Pretty much a 1:1 translation from as3 to java, save - * for some necessary workarounds. Original as3 implementation by Alan Shaw (of nodename) - * can be found here (https://github.com/nodename/as3delaunay). Original algorthim - * by Steven Fortune (see lisence for c++ implementation below) - * - * The author of this software is Steven Fortune. Copyright (c) 1994 by AT&T - * Bell Laboratories. - * Permission to use, copy, modify, and distribute this software for any - * purpose without fee is hereby granted, provided that this entire notice - * is included in all copies of any software which is or includes a copy - * or modification of this software and in all copies of the supporting - * documentation for such software. - * THIS SOFTWARE IS BEING PROVIDED "AS IS", WITHOUT ANY EXPRESS OR IMPLIED - * WARRANTY. IN PARTICULAR, NEITHER THE AUTHORS NOR AT&T MAKE ANY - * REPRESENTATION OR WARRANTY OF ANY KIND CONCERNING THE MERCHANTABILITY - * OF THIS SOFTWARE OR ITS FITNESS FOR ANY PARTICULAR PURPOSE. - */ \ No newline at end of file diff --git a/Jenkinsfile b/Jenkinsfile deleted file mode 100644 index eb85182ec7..0000000000 --- a/Jenkinsfile +++ /dev/null @@ -1,37 +0,0 @@ -pipeline { - agent { - docker { - image 'gradle:4.10.3-jdk8-alpine' - args '-v gradle-cache:/home/gradle/.gradle' - } - } - - stages { - stage('Clean') { - steps { - dir('build/libs') { - deleteDir() - } - } - } - - stage('Build') { - environment { - MAVEN_SECRETS_FILE = credentials('maven-secrets') - - JARSIGN_KEYSTORE_FILE = credentials('gilded-games-jarsign-keystore') - JARSIGN_SECRETS_FILE = credentials('gilded-games-jarsign-secrets') - } - - steps { - sh 'gradle build --no-daemon' - } - } - } - - post { - success { - archiveArtifacts artifacts: 'build/libs/*.jar', fingerprint: true - } - } -} \ No newline at end of file diff --git a/LICENSE-ASSETS.txt b/LICENSE-ASSETS.txt new file mode 100644 index 0000000000..0e7da07448 --- /dev/null +++ b/LICENSE-ASSETS.txt @@ -0,0 +1,4 @@ + ALL RIGHTS RESERVED + + The copyright holder reserves all the rights provided by copyright +law for the licensed material. \ No newline at end of file diff --git a/LICENSE.txt b/LICENSE.txt index 0a041280bd..153d416dc8 100644 --- a/LICENSE.txt +++ b/LICENSE.txt @@ -162,4 +162,4 @@ General Public License ever published by the Free Software Foundation. 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. +Library. \ No newline at end of file diff --git a/README.md b/README.md deleted file mode 100644 index 92706f3de5..0000000000 --- a/README.md +++ /dev/null @@ -1,72 +0,0 @@ -![Banner image](doc/banner.webp) - -# The Aether II -[![Code license (LGPL v3.0)](https://img.shields.io/badge/code%20license-LGPL%20v3.0-green.svg?style=flat-square)](https://www.gnu.org/licenses/lgpl-3.0.en.html) -[![Asset license (CC BY-SA 4.0)](https://img.shields.io/badge/asset%20license-CC%20BY--SA%204.0-blue.svg?style=flat-square)](https://creativecommons.org/licenses/by-sa/4.0/) -[![CurseForge downloads](http://cf.way2muchnoise.eu/223796.svg)](https://www.curseforge.com/minecraft/mc-mods/the-aether-ii) -[![Gilded-Games](https://circleci.com/gh/Gilded-Games/The-Aether-II/tree/1.12.2.svg?style=shield)](https://app.circleci.com/pipelines/github/Gilded-Games/The-Aether-II?branch=1.12.2) - -The Aether II is the sequel to the highly popular dimension mod "The Aether", set in a hostile paradise miles up in the clouds, the Aether is an entirely different world from what regular players are used to, filled with fantastic creatures and mysterious structures, the Aether is a world brimming with life and history. You'll have to relearn key ideas as the Aether challenges you with twisted materials, terrifying monsters and deep lore if you want to survive and prosper in this strange new land. - -## :heart: Support Gilded Games - -[![Patreon pledgers](https://img.shields.io/endpoint.svg?url=https%3A%2F%2Fshieldsio-patreon.vercel.app%2Fapi%3Fusername%3DGildedGames%26type%3Dpatrons&style=flat-square)](https://patreon.com/GildedGames) -[![Discord user count](https://img.shields.io/discord/118816101936267265.svg?logoColor=FFFFFF&logo=discord&color=7289DA&style=flat-square)](https://discord.gg/yrFDeVZEwt) -[![Twitter followers](https://img.shields.io/twitter/follow/DevAether.svg?logo=twitter&label=twitter&style=flat-square)](https://twitter.com/DevAether) - -**The Aether II would not have been possible without the generous support of our patrons on Patreon.** If you enjoy our work, [please consider making a pledge](https://patreon.com/GildedGames) today to help fund development and gain access to special perks. Every pledge goes directly into the development process and enables us to continue making the Minecraft mods you know and love. - -You can also support the Aether project and Gilded Games by telling your friends, joining our Discord server, and sharing our progress and announcements on social media. Every bit helps! - -## :warning: Disclaimer - -This availability is intended for programmers and early adopters only. **Content may be missing, broken, or subject to major change.** We ask that you have experience with Minecraft modding, locating crash reports, editing configuration files, and a bit of patience, if you're wishing to report issues or contribute back. We recommend joining our [official Discord server](https://discord.gg/YgTv7Vg) for the latest news, discussion, and chat support. - - -## :package: Download the latest releases -### "Stable" builds -We use Curseforge to publish **stable builds** of the Aether for Minecraft. You can download the latest stable builds from our [official page found here](https://www.curseforge.com/minecraft/mc-mods/the-aether-ii) without signing up for an account, and even install the Aether for Minecraft using the [Overwolf Launcher](https://curseforge.overwolf.com/) with built-in integration for Curseforge mods. We recommend using our stable Curseforge releases for most people. - -### Bleeding edge builds -If you're feeling a bit more adventurous (or a developer has suggested you to do so), we provide **bleeding edge builds** which are produced on [CircleCI](https://app.circleci.com/pipelines/github/Gilded-Games/The-Aether-II?branch=1.12.2). These builds are very frequently created through the continuous integration service and contain the latest available code without undergoing any form of quality control. We do not generally recommend users use these builds as they may contain serious issues and will not generally receive support. Select the "build" job on a recently ran workflow, and find the binary under the artifacts tab. - -## :bug: Report bugs or other issues -If you're running into bugs or other problems, feel free to open an issue on our [issue tracker](https://github.com/Gilded-Games/The-Aether-II/issues). When doing so, we ask that you provide the following information: - -- The exact version of the Aether you are running, such as `1.10.2-1.0.0`, and the version of Forge you are using, such as `14.23.5.2768`. Please do not state "the latest stable release" or "latest Forge". -- If your issue is a bug or otherwise unexpected behavior, state what you expected to happen. -- If your issue is a crash, attach the latest client or server log and the complete crash report as a file. -- If your issue only occurs with other mods/plugins installed, list the exact mod/plugin versions installed. - -Make sure to keep your issue's description clear and concise. Your issue's title should also be easy to digest, giving our developers and reporters a good idea of what's wrong without including too many details. Failure to follow any of the above may result in your issue being closed. - -Our reporters and developers work around the clock, and will take care of debugging, labeling, and sorting your issues. However, please note that there are currently _many_ open issues, and that it may take some time (up to a few weeks in the worst case) for your issue to be triaged and resolved. Typically, issues are resolved in order of severity and complexity, not the date submitted. - -## :wrench: Contribute to the project -Looking to contribute to the project? We're excited to see what you've got! We ask that you read over our [Contributor's Guide](https://github.com/Gilded-Games/The-Aether-II/blob/1.12.2/CONTRIBUTING.md) for more details and our Contributor License Agreement (CLA) before getting started. Additionally, please note that due to the rapid development pace of the Aether, we're currently not accepting issues or merge requests of which are purely content or feature requests. - -Not sure what to help with? Take a look at our issue tracker for some ideas! [Here's a quick link](https://github.com/Gilded-Games/The-Aether-II/labels/status%2Fhelp-wanted) which shows all the currently open issues that we'd love some help on. - -## :scroll: License information -If you're wanting to create a gameplay video/review, extension or addon, parody, or any other fan work of your own for the Aether, go for it! We love seeing the content our community creates, and we hope to make it as welcoming as possible for everyone. We ask however that if you are using code or assets from the Aether II project that you adhere to the licenses below, and that you please don't advertise using our brand. If you're interested in sponsoring the Aether project or Gilded Games or wish to otherwise use our brand, please [contact us](mailto:support@gildedgames.com). - -The source code of the Aether II for Minecraft 1.8+ is under the [LGPL v3.0](https://www.gnu.org/licenses/lgpl-3.0.en.html) license. All assets of the Aether II for Minecraft 1.8+ (found in the [resources folder](https://github.com/Gilded-Games/The-Aether-II/tree/1.12.2/src/main/resources/assets)) and [Wiki contributions](https://github.com/Gilded-Games/The-Aether-II/wiki) are under the [CC BY-SA 4.0 license](https://creativecommons.org/licenses/by-sa/4.0/) unless otherwise stated. Previous versions of the Aether are not licensed freely and all rights are reserved to them by Gilded Games. - -## :star2: Special mentions -### :speech_balloon: Translations -The Aether II project makes use of crowd sourced translations. The Aether is available in these languages thanks to the following contributors: - -- :es: **Spanish**: Contributed by Khaoss -- :ru: **Russian**: Contributed by Dr_Hesperus -- :cn: **Simplified Chinese**: Contributed by ETStareak -- :taiwan: **Traditional Chinese**: Contributed by aianlinb - -The above list is incomplete, and as such, if your name is missing from it, please contact us. **You can help translate The Aether II Mod to additional languages by joining our team of avid translators [here](https://aether.oneskyapp.com/collaboration/project?id=158537).** - - -### :nut_and_bolt: Open-source projects used - -The open-source community is important to Gilded Games, and we hope to contribute as much as we can back to it. We'd like to take a moment to give special mentions to the following projects and their authors, which without their contributions, the Aether II would not have been possible. - -- **Amit Patel**: [Polygonal Map Generation for games](http://www-cs-students.stanford.edu/~amitp/game-programming/polygon-map-generation/) -- **Connor Clark**: [Java Delaunay Library](https://github.com/Hoten/Java-Delaunay) diff --git a/build.gradle b/build.gradle index f2fb6acc8d..0d0a9a7e91 100644 --- a/build.gradle +++ b/build.gradle @@ -1,143 +1,189 @@ buildscript { repositories { - jcenter() maven { - name = "forge" - url = "http://files.minecraftforge.net/maven" + name 'Forge' + url 'https://maven.minecraftforge.net' } + maven { + name 'Sponge' + url 'https://repo.spongepowered.org/maven' + } + maven { + name 'Parchment' + url 'https://maven.parchmentmc.org' + } + maven { + name 'Gradle' + url "https://plugins.gradle.org/m2/" + } + mavenCentral() } dependencies { - classpath 'net.minecraftforge.gradle:ForgeGradle:2.3-SNAPSHOT' + classpath group: 'net.minecraftforge.gradle', name: 'ForgeGradle', version: '5.1.+', changing: true + classpath group: 'org.spongepowered', name: 'mixingradle', version: '0.7.+', changing: true + classpath group: 'org.parchmentmc', name: 'librarian', version: '1.+', changing: true + classpath group: 'io.github.0ffz', name: 'gpr-for-gradle', version: '1.+', changing: true } } - -apply plugin: 'net.minecraftforge.gradle.forge' +apply plugin: 'net.minecraftforge.gradle' +apply plugin: 'org.spongepowered.mixin' +apply plugin: 'org.parchmentmc.librarian.forgegradle' +apply plugin: 'eclipse' apply plugin: 'maven-publish' +apply plugin: 'io.github.0ffz.github-packages' -repositories { - mavenCentral() +version = project.mc_version + '-' + project.aether_ii_version +group = 'com.gildedgames.aether_ii' // http://maven.apache.org/guides/mini/guide-naming-conventions.html +archivesBaseName = 'aether_ii' - maven { url = 'https://repo.spongepowered.org/maven' } -} +java.toolchain.languageVersion = JavaLanguageVersion.of(17) // Mojang ships Java 8 to end users, so your mod should target Java 8. -configurations { - shaded - shaded.exclude group: "org.spongepowered" -} +minecraft { + mappings channel: 'parchment', version: project.mappings -dependencies { - compile project(":orbis-lib") - shaded project(":orbis-lib") -} + accessTransformer = file('src/main/resources/META-INF/accesstransformer.cfg') -allprojects { - sourceCompatibility = 1.8 - targetCompatibility = 1.8 -} + runs { + client { + workingDirectory project.file('run') -if (System.getenv("BUILD_NUMBER") != null) { - version = "${minecraft_version}-${mod_version}+build${System.getenv("BUILD_NUMBER")}" -} else { - version = "${minecraft_version}-${mod_version}-SNAPSHOT" -} + //Only uncomment this if you actually need the debug logging! If you enable this the log will be full of incredibly useless information spam + //property 'forge.logging.markers', 'SCAN,REGISTRIES,REGISTRYDUMP' + //property 'forge.logging.console.level', 'debug' -group = "com.gildedgames" -archivesBaseName = "aether_ii" + mods { + aether_ii { + source sourceSets.main + } + } + } -sourceSets { - api { - java { srcDir "src/api/java" } - } - test { - java { srcDir "src/test/java" } - } -} + server { + workingDirectory project.file('run') -jar { - from sourceSets.api.output - from sourceSets.main.output + //property 'forge.logging.markers', 'SCAN,REGISTRIES,REGISTRYDUMP' + //property 'forge.logging.console.level', 'debug' + + mods { + aether_ii { + source sourceSets.main + } + } + } - classifier "universal" + data { + workingDirectory project.file('run') - gradle.projectsEvaluated({ - def artifacts = configurations.shaded.files - .findAll { it.name.contains("-universal.jar") } - .toList() - .reverse() + //property 'forge.logging.markers', 'SCAN,REGISTRIES,REGISTRYDUMP' + //property 'forge.logging.console.level', 'debug' - from(artifacts) + args '--mod', 'aether_ii', '--all', '--output', file('src/generated/resources/'), '--existing', file('src/main/resources/'), '--existing', file('src/generated/resources/') - manifest { - attributes "ContainedDeps": artifacts.collect { it.name }.join(' ') - attributes "FMLAT": "aether_at.cfg" - attributes "SignedFileName": jar.archivePath.name + environment 'target', 'fmluserdevdata' + + mods { + aether_ii { + source sourceSets.main + } + } } - }) + } } -task apiJar(type: Jar) { - classifier = "api" - - from sourceSets.api.output +sourceSets.main.resources { + srcDir 'src/generated/resources' } -minecraft { - version = "$minecraft_version-$forge_version" - mappings = "$forge_mappings" +dependencies { + minecraft "net.minecraftforge:forge:${project.mc_version}-${project.forge_version}" - runDir = "run" + annotationProcessor 'org.spongepowered:mixin:0.8.5:processor' - clientJvmArgs = serverJvmArgs -} +// compileOnly "com.gildedgames.nitrogen:nitrogen:${project.nitrogen_version}" +// runtimeOnly fg.deobf("com.gildedgames.nitrogen:nitrogen:${project.nitrogen_version}") -processResources { - inputs.property "version", project.version - inputs.property "mcversion", project.minecraft.version + compileOnly "top.theillusivec4.curios:curios-forge:${project.curios_version}:api" + compileOnly "top.theillusivec4.curios:curios-forge:${project.curios_version}" + runtimeOnly fg.deobf("top.theillusivec4.curios:curios-forge:${project.curios_version}") - from(sourceSets.main.resources.srcDirs) { - include 'mcmod.info' +// jarJar fg.deobf("com.gildedgames.nitrogen:nitrogen:${project.nitrogen_version}") { +// jarJar.ranged(it, "[${project.nitrogen_version},)") +// jarJar.pin(it, "${project.nitrogen_version}") +// } - expand 'version': project.version, 'mcversion': project.minecraft.version + jarJar fg.deobf("top.theillusivec4.curios:curios-forge:${project.curios_version}") { + jarJar.ranged(it, "[${project.curios_version},)") + jarJar.pin(it, "${project.curios_version}") } +} - from(sourceSets.main.resources.srcDirs) { - exclude 'mcmod.info' - } +repositories { + maven { url = "https://maven.blamejared.com" } + maven { url = "https://maven.theillusivec4.top/" } + maven { url = "https://www.cursemaven.com" } + maven { url = "https://dvs1.progwml6.com/files/maven/"} +// maven githubPackage.invoke("Gilded-Games/Nitrogen") } -idea { - module { - inheritOutputDirs = true +jar { + manifest { + attributes([ + "Specification-Title" : "The Aether II", + "Specification-Vendor" : "Gilded Games", + "Specification-Version" : "1", // We are version 1 of ourselves + "Implementation-Title" : "The Aether II", + "Implementation-Version" : "${version}", + "Implementation-Vendor" : "Gilded Games", + "Implementation-Timestamp": new Date().format("yyyy-MM-dd'T'HH:mm:ssZ"), + "MixinConfigs" : "aether_ii.mixins.json" + ]) } } -// We disable this because Gradle will fail to build otherwise for some reason. -// See https://github.com/MinecraftForge/Srg2Source/issues/10 -minecraft { - makeObfSourceJar = false +task sourcesJar(type: Jar) { + archiveClassifier.set('sources') + from sourceSets.main.allJava } -if (System.getenv("JARSIGN_SECRETS_FILE") != null) { - def secretsFile = file(System.getenv("JARSIGN_SECRETS_FILE")) +artifacts { + archives sourcesJar +} - def secrets = new Properties() - secrets.load(secretsFile.newReader()) +jar.finalizedBy('reobfJar') - [jar, apiJar].each { jarTask -> - def task = task(jarTask.name + 'Sign', type: SignJar) { - keyStore = System.getenv("JARSIGN_KEYSTORE_FILE") - alias = secrets.alias - storePass = secrets.storePassword - keyPass = secrets.keyPassword +reobf.create('jarJar') - inputFile = jarTask.archivePath - outputFile = jarTask.archivePath - } +def reobfFile = file("$buildDir/reobfJar/output.jar") +def jar = artifacts.add('default', reobfFile) { + type 'jar' + builtBy 'reobfJar' +} - build.dependsOn task - } +tasks.jarJar.configure { + archiveClassifier = "" } -build.dependsOn apiJar +publishing { + publications { + mavenJava(MavenPublication) { + artifactId project.archivesBaseName + artifact jar + artifact sourcesJar + } + } + repositories { + maven { + name = "GitHubPackages" + url = "https://maven.pkg.github.com/Gilded-Games/The-Aether-II" + credentials { + username = System.getenv("GITHUB_ACTOR") + password = System.getenv("GITHUB_TOKEN") + } + } + } +} -jar.dependsOn ":orbis-lib:build" +mixin { + config "aether_ii.mixins.json" + add sourceSets.main, "aether_ii.refmap.json" +} \ No newline at end of file diff --git a/docs/AGREEMENT.md b/docs/AGREEMENT.md new file mode 100644 index 0000000000..6c8f21fd9e --- /dev/null +++ b/docs/AGREEMENT.md @@ -0,0 +1,9 @@ +## Contributor License Agreement +By making contributions to this repository you are hereby agreeing that: + +- You grant Gilded Games and other users the right to use your contributions under one of the following respective licenses: + - [All Rights Reserved](https://en.wikipedia.org/wiki/All_rights_reserved) for contributed or updated assets in `/src/main/java/resources`. + - [LGPL v3.0](https://www.gnu.org/licenses/lgpl-3.0.en.html) for code or other changes. +- Your contributions are of your own work and are free of legal restrictions (such as patents or copyrights). + +If you have any questions about these terms, please [get in contact with us](mailto:support@gildedgames.com). **If you do not agree to these terms, please do not submit contributions to this repository.** \ No newline at end of file diff --git a/docs/CONTRIBUTING.md b/docs/CONTRIBUTING.md new file mode 100644 index 0000000000..aca58ef014 --- /dev/null +++ b/docs/CONTRIBUTING.md @@ -0,0 +1,53 @@ +# Contributing to The Aether II +## Getting started for programmers +1. Install the latest 64-bit version of OpenJDK 17. Check out [Adoptium](https://adoptium.net/) for the relevant JDK build for your OS. + +2. Install the latest 64-bit version of Git, which can be found on the [Git website](https://git-scm.com/). + +3. Fork The Aether repository with the [fork](https://github.com/Gilded-Games/The-Aether-II/fork) button in the top right of GitHub. + +4. We recommend to use [IntelliJ IDEA Community Edition](https://www.jetbrains.com/idea/) for contributions. Other IDEs may work but any issues or roadblocks will not receive support. + +5. We recommend a Git client if you are new to contributing, however if you know how to use Git you can also use the [command line](https://docs.gitlab.com/ee/gitlab-basics/start-using-git.html). Some client options are: + 1. IntelliJ IDEA itself ([Tutorial](https://blog.jetbrains.com/idea/2020/10/clone-a-project-from-github/)) + 2. [GitHub Desktop](https://desktop.github.com/) ([Tutorial](https://docs.github.com/en/desktop/installing-and-configuring-github-desktop/overview/getting-started-with-github-desktop)) + 3. [GitKraken](https://www.gitkraken.com/) ([Tutorial](https://help.gitkraken.com/gitkraken-client/guide/)) + 4. [SourceTree](https://www.sourcetreeapp.com/) ([Tutorial](https://confluence.atlassian.com/get-started-with-sourcetree)) + +6. Clone your fork of the repository with Git (note: if using IntelliJ IDEA for Git, this will automatically open the project as well). + +7. Open the locally cloned repository with IntelliJ IDEA and set up the project workspace. + + If you're not familiar with setting up IntelliJ IDEA for use with ForgeGradle projects, cpw has created a setup video on a few of the basics of ForgeGradle [here](https://www.youtube.com/watch?v=PfmlNiHonV0). + +8. Create a branch for your changes named `feat/<username>/<title>`. Read up on your relevant Git tutorial if you are unsure how to do this. + +9. Run `git config core.hooksPath .githooks` in your Git client's terminal to configure git hooks for the workspace. + +10. Start developing! + +If you have any questions or issues, or would just like to discuss Aether II development, feel free to [join us on Discord](https://discord.gg/aethermod). + +## Writing commits +If you are looking to commit to your fork and don't know how, make sure to read up on your relevant Git tutorial. + +Once you're ready to commit, there are some things to know about our commit styling. The Aether II makes uses of conventional commits. To understand this, we recommend you read up on [Semantic Versioning](https://github.com/Gilded-Games/.github/blob/main/references/VERSIONING.md) first, and then our [Conventional Commit](https://github.com/Gilded-Games/.github/blob/main/references/COMMITS.md) standards. + +It is important to use conventional commits because The Aether II's workflow depends on them for code review and changelogs. Not using it makes management of contributions more difficult. + +It is also important to understand semantic versioning as we recommend avoiding breaking changes, and also avoiding anything that could lead to future breaking changes being made. + +## Creating pull requests +To open a pull request, go to the [pull requests page](https://github.com/Gilded-Games/The-Aether-II/pulls), and an indicator should show up on the page to create a PR from a recent commit to a fork. + +When creating a PR: +- Make sure your code conforms to the project's documentation and code styling. +- Mark it as a draft if the changes are WIP. +- Follow the template and example given when creating the PR. +- Follow the instructions of anything written in `[]`. +- Make sure the section in the code block meets [Conventional Commit](https://github.com/Gilded-Games/.github/blob/main/references/COMMITS.md) standards, as we put the information into the merge commit, just keep in mind the header becomes the title of the PR. + +## Code review +After your PR has been opened, we will make sure to label it with the relevant status, feat, and type labels and assign it to a developer for review. We will then review your code and test if it builds through CircleCI, as well as test the contents to verify they do as described. + +If we request any changes, you will have to make them for your PR to be accepted. \ No newline at end of file diff --git a/docs/README.md b/docs/README.md new file mode 100644 index 0000000000..1e3872332b --- /dev/null +++ b/docs/README.md @@ -0,0 +1,109 @@ +![Banner image](assets/banner.webp) +# The Aether II + +*Work in progress...* + +## :heart: Support Gilded Games + +[![Patreon pledgers](https://img.shields.io/endpoint.svg?url=https%3A%2F%2Fshieldsio-patreon.vercel.app%2Fapi%3Fusername%3DGildedGames%26type%3Dpatrons&style=flat-square)](https://patreon.com/GildedGames) +[![Discord user count](https://img.shields.io/discord/118816101936267265.svg?logoColor=FFFFFF&logo=discord&color=7289DA&style=flat-square)](https://discord.gg/aethermod) +[![Twitter followers](https://img.shields.io/twitter/follow/DevAether.svg?logo=twitter&label=twitter&style=flat-square)](https://twitter.com/DevAether) + +If you enjoy our work, [please consider making a pledge](https://patreon.com/GildedGames) today to help fund development. Every pledge goes directly into our development process and services, enabling us to continue making the Minecraft mods you know and love. + +You can also support the Aether project and Gilded Games by telling your friends, joining our Discord server, and sharing our progress and announcements on social media. Every bit helps! + +If you're interested in sponsoring the Aether project or Gilded Games, please [contact us](mailto:support@gildedgames.com). + +## :package: Download the latest releases +[![Mod loader: Forge](https://img.shields.io/badge/mod%20loader-forge-CC974D?style=flat-square)](https://files.minecraftforge.net/net/minecraftforge/forge/) +[![](http://cf.way2muchnoise.eu/aether-ii.svg)]() +[![](http://cf.way2muchnoise.eu/versions/aether-ii_latest.svg)]() +[![Gilded-Games](https://circleci.com/gh/Gilded-Games/The-Aether/tree/1.19.svg?style=shield)](https://app.circleci.com/pipelines/github/Gilded-Games/The-Aether-II?branch=1.19) +### Release builds +The Aether II has no stable release builds for the latest version of Minecraft just yet, but this port is in active development so keep an eye out for its eventual release. + +### Bleeding edge builds +If you’re feeling a bit more adventurous or wish to help test the in-development versions, we provide **bleeding edge builds** which are produced on [CircleCI](https://app.circleci.com/pipelines/github/Gilded-Games/The-Aether-II). These builds are created for every new commit and contain the latest available code. We do not recommend users treat these builds as releases, as they are unfinished and may contain serious issues. If you wish to download these builds, check out [this guide](https://github.com/Gilded-Games/The-Aether-II/wiki/CircleCI-Guide). + +### Packages +To install this mod through GitHub Packages in Gradle for development, you will need the [Gradle Github Packages Plugin](https://github.com/0ffz/gpr-for-gradle). To use it, make sure you have access to the Gradle plugins maven and the plugin as a buildscript dependency: + +<details> +<summary> Buildscript Code</summary> + +``` +buildscript { + repositories { + ... + maven { + name 'Gradle' + url "https://plugins.gradle.org/m2/" + } + } + dependencies { + ... + classpath group: 'io.github.0ffz', name: 'gpr-for-gradle', version: '1.+', changing: true + } +} +... +apply plugin: 'io.github.0ffz.github-packages' +``` + +</details> + +Then you need to specify the package you want to use in your repository: + +<details> +<summary> Repositories Code</summary> + +``` +repositories { + ... + maven githubPackage.invoke("Gilded-Games/The-Aether-II") +} +``` + +</details> + +Then load it through your dependencies, with `project.aether_ii_version` specified in the `gradle.properties`: + +<details> +<summary> Dependencies Code</summary> + +``` +dependencies { + ... + compileOnly "com.gildedgames.aether_ii:aether_ii:${project.aether_ii_version}" + runtimeOnly fg.deobf("com.gildedgames.aether_ii:aether_ii:${project.aether_ii_version}") + ... +} +``` + +</details> + +## :bug: Report bugs or other issues +If you're running into bugs or other problems, feel free to open an issue on our [issue tracker](https://github.com/Gilded-Games/The-Aether-II/issues). When doing so, make sure to use one of the provided templates and fill out all the requested information. Make sure to keep your issue's description clear and concise. Your issue's title should also be easy to digest, giving our developers and reporters a good idea of what's wrong without including too many details. Failure to follow any of the above may result in your issue being closed. + +## :wrench: Contribute to the project +Looking to contribute to the project? We ask that you read over our [Contributor's Guide](https://github.com/Gilded-Games/The-Aether-II/blob/1.19/docs/CONTRIBUTING.md) for more details as well as our [Contributor License Agreement (CLA)](https://github.com/Gilded-Games/The-Aether-II/blob/1.19/docs/AGREEMENT.md) before getting started. + +Not sure what to help with? Take a look at our issue tracker for some ideas! [Here's a quick link](https://github.com/Gilded-Games/The-Aether-II/labels/status%2Fhelp-wanted) which shows all the currently open issues that we'd love some help on. + +## :scroll: License information +[![Asset license (Unlicensed)](https://img.shields.io/badge/assets%20license-All%20Rights%20Reserved-red.svg?style=flat-square)](https://en.wikipedia.org/wiki/All_rights_reserved) +[![Code license (LGPL v3.0)](https://img.shields.io/badge/code%20license-LGPL%20v3.0-green.svg?style=flat-square)](https://github.com/Gilded-Games/The-Aether-II/blob/1.19/LICENSE.txt) + +If you're wanting to create a gameplay video/review, extension or addon, parody, or any other fan work of your own for The Aether II, go for it! We love seeing the content our community creates, and we hope to make it as welcoming as possible for everyone. We ask however that you please don't advertise using our brand (our specific logo assets, team name, official social media posts). + +If you are thinking about using the Aether project's code or assets, please note our licensing. **All assets of The Aether II are unlicensed and all rights are reserved to them by Gilded Games and their respective authors.** The source code of The Aether mod for Minecraft 1.10+ is under the LGPL v3.0 license. Any previous versions' source code is unlicensed and all rights are reserved to it by Gilded Games. + +If you have a reason that you wish to use our brand or any unlicensed material, please [get in contact with us](mailto:support@gildedgames.com) for details. + +## :star2: Special mentions +### :speech_balloon: Translations + +*Work in progress...* + +### :hammer: Contributions +All of our code contribution credits can be found [here](https://github.com/Gilded-Games/The-Aether-II/blob/1.19/CREDITS.txt). If you contributed to the project and do not see your name, please contact us. \ No newline at end of file diff --git a/doc/banner.webp b/docs/assets/banner.webp similarity index 100% rename from doc/banner.webp rename to docs/assets/banner.webp diff --git a/gradle.properties b/gradle.properties index 17a7c348ff..9485c69938 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,6 +1,14 @@ -org.gradle.jvmargs=-Xmx2G -mod_version=0.3.0 -minecraft_version=1.12.2 -forge_version=14.23.5.2816 -forge_mappings=stable_39 -phosphor_version=1.12.2-0.2.6+build50 +# Sets default memory used for gradle commands. Can be overridden by user or command line properties. +# This is required to provide enough memory for the Minecraft decompilation process. +org.gradle.jvmargs=-Xmx3G +org.gradle.daemon=false + +# Mod +aether_ii_version=0.0.1 +mc_version=1.19.2 +forge_version=43.1.38 +mappings=1.19.2-2022.08.14-1.19.2 + +# Dependencies +#nitrogen_version=1.19.2-0.0.1 +curios_version=1.19.2-5.1.1.0 \ No newline at end of file diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar index f6b961fd5a..249e5832f0 100644 Binary files a/gradle/wrapper/gradle-wrapper.jar and b/gradle/wrapper/gradle-wrapper.jar differ diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 16d28051c9..8049c684f0 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-4.7-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-7.5-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/gradlew b/gradlew old mode 100755 new mode 100644 index cccdd3d517..a69d9cb6c2 --- a/gradlew +++ b/gradlew @@ -1,78 +1,129 @@ -#!/usr/bin/env sh +#!/bin/sh + +# +# Copyright © 2015-2021 the original authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ############################################################################## -## -## Gradle start up script for UN*X -## +# +# Gradle start up script for POSIX generated by Gradle. +# +# Important for running: +# +# (1) You need a POSIX-compliant shell to run this script. If your /bin/sh is +# noncompliant, but you have some other compliant shell such as ksh or +# bash, then to run this script, type that shell name before the whole +# command line, like: +# +# ksh Gradle +# +# Busybox and similar reduced shells will NOT work, because this script +# requires all of these POSIX shell features: +# * functions; +# * expansions «$var», «${var}», «${var:-default}», «${var+SET}», +# «${var#prefix}», «${var%suffix}», and «$( cmd )»; +# * compound commands having a testable exit status, especially «case»; +# * various built-in commands including «command», «set», and «ulimit». +# +# Important for patching: +# +# (2) This script targets any POSIX shell, so it avoids extensions provided +# by Bash, Ksh, etc; in particular arrays are avoided. +# +# The "traditional" practice of packing multiple parameters into a +# space-separated string is a well documented source of bugs and security +# problems, so this is (mostly) avoided, by progressively accumulating +# options in "$@", and eventually passing that to Java. +# +# Where the inherited environment variables (DEFAULT_JVM_OPTS, JAVA_OPTS, +# and GRADLE_OPTS) rely on word-splitting, this is performed explicitly; +# see the in-line comments for details. +# +# There are tweaks for specific operating systems such as AIX, CygWin, +# Darwin, MinGW, and NonStop. +# +# (3) This script is generated from the Groovy template +# https://github.com/gradle/gradle/blob/master/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt +# within the Gradle project. +# +# You can find Gradle at https://github.com/gradle/gradle/. +# ############################################################################## # Attempt to set APP_HOME + # Resolve links: $0 may be a link -PRG="$0" -# Need this for relative symlinks. -while [ -h "$PRG" ] ; do - ls=`ls -ld "$PRG"` - link=`expr "$ls" : '.*-> \(.*\)$'` - if expr "$link" : '/.*' > /dev/null; then - PRG="$link" - else - PRG=`dirname "$PRG"`"/$link" - fi +app_path=$0 + +# Need this for daisy-chained symlinks. +while + APP_HOME=${app_path%"${app_path##*/}"} # leaves a trailing /; empty if no leading path + [ -h "$app_path" ] +do + ls=$( ls -ld "$app_path" ) + link=${ls#*' -> '} + case $link in #( + /*) app_path=$link ;; #( + *) app_path=$APP_HOME$link ;; + esac done -SAVED="`pwd`" -cd "`dirname \"$PRG\"`/" >/dev/null -APP_HOME="`pwd -P`" -cd "$SAVED" >/dev/null + +APP_HOME=$( cd "${APP_HOME:-./}" && pwd -P ) || exit APP_NAME="Gradle" -APP_BASE_NAME=`basename "$0"` +APP_BASE_NAME=${0##*/} # Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. -DEFAULT_JVM_OPTS="" +DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' # Use the maximum available, or set MAX_FD != -1 to use that value. -MAX_FD="maximum" +MAX_FD=maximum warn () { echo "$*" -} +} >&2 die () { echo echo "$*" echo exit 1 -} +} >&2 # OS specific support (must be 'true' or 'false'). cygwin=false msys=false darwin=false nonstop=false -case "`uname`" in - CYGWIN* ) - cygwin=true - ;; - Darwin* ) - darwin=true - ;; - MINGW* ) - msys=true - ;; - NONSTOP* ) - nonstop=true - ;; +case "$( uname )" in #( + CYGWIN* ) cygwin=true ;; #( + Darwin* ) darwin=true ;; #( + MSYS* | MINGW* ) msys=true ;; #( + NONSTOP* ) nonstop=true ;; esac CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar + # Determine the Java command to use to start the JVM. if [ -n "$JAVA_HOME" ] ; then if [ -x "$JAVA_HOME/jre/sh/java" ] ; then # IBM's JDK on AIX uses strange locations for the executables - JAVACMD="$JAVA_HOME/jre/sh/java" + JAVACMD=$JAVA_HOME/jre/sh/java else - JAVACMD="$JAVA_HOME/bin/java" + JAVACMD=$JAVA_HOME/bin/java fi if [ ! -x "$JAVACMD" ] ; then die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME @@ -81,7 +132,7 @@ Please set the JAVA_HOME variable in your environment to match the location of your Java installation." fi else - JAVACMD="java" + JAVACMD=java which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. Please set the JAVA_HOME variable in your environment to match the @@ -89,84 +140,101 @@ location of your Java installation." fi # Increase the maximum file descriptors if we can. -if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then - MAX_FD_LIMIT=`ulimit -H -n` - if [ $? -eq 0 ] ; then - if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then - MAX_FD="$MAX_FD_LIMIT" - fi - ulimit -n $MAX_FD - if [ $? -ne 0 ] ; then - warn "Could not set maximum file descriptor limit: $MAX_FD" - fi - else - warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT" - fi +if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then + case $MAX_FD in #( + max*) + MAX_FD=$( ulimit -H -n ) || + warn "Could not query maximum file descriptor limit" + esac + case $MAX_FD in #( + '' | soft) :;; #( + *) + ulimit -n "$MAX_FD" || + warn "Could not set maximum file descriptor limit to $MAX_FD" + esac fi -# For Darwin, add options to specify how the application appears in the dock -if $darwin; then - GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" -fi +# Collect all arguments for the java command, stacking in reverse order: +# * args from the command line +# * the main class name +# * -classpath +# * -D...appname settings +# * --module-path (only if needed) +# * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables. + +# For Cygwin or MSYS, switch paths to Windows format before running java +if "$cygwin" || "$msys" ; then + APP_HOME=$( cygpath --path --mixed "$APP_HOME" ) + CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" ) + + JAVACMD=$( cygpath --unix "$JAVACMD" ) -# For Cygwin, switch paths to Windows format before running java -if $cygwin ; then - APP_HOME=`cygpath --path --mixed "$APP_HOME"` - CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` - JAVACMD=`cygpath --unix "$JAVACMD"` - - # We build the pattern for arguments to be converted via cygpath - ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` - SEP="" - for dir in $ROOTDIRSRAW ; do - ROOTDIRS="$ROOTDIRS$SEP$dir" - SEP="|" - done - OURCYGPATTERN="(^($ROOTDIRS))" - # Add a user-defined pattern to the cygpath arguments - if [ "$GRADLE_CYGPATTERN" != "" ] ; then - OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)" - fi # Now convert the arguments - kludge to limit ourselves to /bin/sh - i=0 - for arg in "$@" ; do - CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -` - CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option - - if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition - eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"` - else - eval `echo args$i`="\"$arg\"" + for arg do + if + case $arg in #( + -*) false ;; # don't mess with options #( + /?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath + [ -e "$t" ] ;; #( + *) false ;; + esac + then + arg=$( cygpath --path --ignore --mixed "$arg" ) fi - i=$((i+1)) + # Roll the args list around exactly as many times as the number of + # args, so each arg winds up back in the position where it started, but + # possibly modified. + # + # NB: a `for` loop captures its iteration list before it begins, so + # changing the positional parameters here affects neither the number of + # iterations, nor the values presented in `arg`. + shift # remove old arg + set -- "$@" "$arg" # push replacement arg done - case $i in - (0) set -- ;; - (1) set -- "$args0" ;; - (2) set -- "$args0" "$args1" ;; - (3) set -- "$args0" "$args1" "$args2" ;; - (4) set -- "$args0" "$args1" "$args2" "$args3" ;; - (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; - (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; - (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; - (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; - (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; - esac fi -# Escape application args -save () { - for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done - echo " " -} -APP_ARGS=$(save "$@") - -# Collect all arguments for the java command, following the shell quoting and substitution rules -eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS" - -# by default we should be in the correct project dir, but when run from Finder on Mac, the cwd is wrong -if [ "$(uname)" = "Darwin" ] && [ "$HOME" = "$PWD" ]; then - cd "$(dirname "$0")" +# Collect all arguments for the java command; +# * $DEFAULT_JVM_OPTS, $JAVA_OPTS, and $GRADLE_OPTS can contain fragments of +# shell script including quotes and variable substitutions, so put them in +# double quotes to make sure that they get re-expanded; and +# * put everything else in single quotes, so that it's not re-expanded. + +set -- \ + "-Dorg.gradle.appname=$APP_BASE_NAME" \ + -classpath "$CLASSPATH" \ + org.gradle.wrapper.GradleWrapperMain \ + "$@" + +# Stop when "xargs" is not available. +if ! command -v xargs >/dev/null 2>&1 +then + die "xargs is not available" fi +# Use "xargs" to parse quoted args. +# +# With -n1 it outputs one arg per line, with the quotes and backslashes removed. +# +# In Bash we could simply go: +# +# readarray ARGS < <( xargs -n1 <<<"$var" ) && +# set -- "${ARGS[@]}" "$@" +# +# but POSIX shell has neither arrays nor command substitution, so instead we +# post-process each arg (as a line of input to sed) to backslash-escape any +# character that might be a shell metacharacter, then use eval to reverse +# that process (while maintaining the separation between arguments), and wrap +# the whole thing up as a single "set" statement. +# +# This will of course break if any of these variables contains a newline or +# an unmatched quote. +# + +eval "set -- $( + printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" | + xargs -n1 | + sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' | + tr '\n' ' ' + )" '"$@"' + exec "$JAVACMD" "$@" diff --git a/gradlew.bat b/gradlew.bat index e95643d6a2..f127cfd49d 100644 --- a/gradlew.bat +++ b/gradlew.bat @@ -1,84 +1,91 @@ -@if "%DEBUG%" == "" @echo off -@rem ########################################################################## -@rem -@rem Gradle startup script for Windows -@rem -@rem ########################################################################## - -@rem Set local scope for the variables with windows NT shell -if "%OS%"=="Windows_NT" setlocal - -set DIRNAME=%~dp0 -if "%DIRNAME%" == "" set DIRNAME=. -set APP_BASE_NAME=%~n0 -set APP_HOME=%DIRNAME% - -@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. -set DEFAULT_JVM_OPTS= - -@rem Find java.exe -if defined JAVA_HOME goto findJavaFromJavaHome - -set JAVA_EXE=java.exe -%JAVA_EXE% -version >NUL 2>&1 -if "%ERRORLEVEL%" == "0" goto init - -echo. -echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. -echo. -echo Please set the JAVA_HOME variable in your environment to match the -echo location of your Java installation. - -goto fail - -:findJavaFromJavaHome -set JAVA_HOME=%JAVA_HOME:"=% -set JAVA_EXE=%JAVA_HOME%/bin/java.exe - -if exist "%JAVA_EXE%" goto init - -echo. -echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% -echo. -echo Please set the JAVA_HOME variable in your environment to match the -echo location of your Java installation. - -goto fail - -:init -@rem Get command-line arguments, handling Windows variants - -if not "%OS%" == "Windows_NT" goto win9xME_args - -:win9xME_args -@rem Slurp the command line arguments. -set CMD_LINE_ARGS= -set _SKIP=2 - -:win9xME_args_slurp -if "x%~1" == "x" goto execute - -set CMD_LINE_ARGS=%* - -:execute -@rem Setup the command line - -set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar - -@rem Execute Gradle -"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS% - -:end -@rem End local scope for the variables with windows NT shell -if "%ERRORLEVEL%"=="0" goto mainEnd - -:fail -rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of -rem the _cmd.exe /c_ return code! -if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 -exit /b 1 - -:mainEnd -if "%OS%"=="Windows_NT" endlocal - -:omega +@rem +@rem Copyright 2015 the original author or authors. +@rem +@rem Licensed under the Apache License, Version 2.0 (the "License"); +@rem you may not use this file except in compliance with the License. +@rem You may obtain a copy of the License at +@rem +@rem https://www.apache.org/licenses/LICENSE-2.0 +@rem +@rem Unless required by applicable law or agreed to in writing, software +@rem distributed under the License is distributed on an "AS IS" BASIS, +@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +@rem See the License for the specific language governing permissions and +@rem limitations under the License. +@rem + +@if "%DEBUG%"=="" @echo off +@rem ########################################################################## +@rem +@rem Gradle startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +set DIRNAME=%~dp0 +if "%DIRNAME%"=="" set DIRNAME=. +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@rem Resolve any "." and ".." in APP_HOME to make it shorter. +for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi + +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if %ERRORLEVEL% equ 0 goto execute + +echo. +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto execute + +echo. +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:execute +@rem Setup the command line + +set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + + +@rem Execute Gradle +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* + +:end +@rem End local scope for the variables with windows NT shell +if %ERRORLEVEL% equ 0 goto mainEnd + +:fail +rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +set EXIT_CODE=%ERRORLEVEL% +if %EXIT_CODE% equ 0 set EXIT_CODE=1 +if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE% +exit /b %EXIT_CODE% + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega diff --git a/idea/code_style.xml b/idea/code_style.xml deleted file mode 100644 index 8e2a7b7d97..0000000000 --- a/idea/code_style.xml +++ /dev/null @@ -1,56 +0,0 @@ -<code_scheme name="Aether II Formatting Guidelines"> - <option name="RIGHT_MARGIN" value="160"/> - <option name="ENABLE_JAVADOC_FORMATTING" value="false"/> - <JSON> - <option name="OBJECT_WRAPPING" value="5"/> - <option name="ARRAY_WRAPPING" value="5"/> - </JSON> - <codeStyleSettings language="JAVA"> - <option name="KEEP_FIRST_COLUMN_COMMENT" value="false"/> - <option name="KEEP_CONTROL_STATEMENT_IN_ONE_LINE" value="false"/> - <option name="KEEP_BLANK_LINES_IN_DECLARATIONS" value="1"/> - <option name="KEEP_BLANK_LINES_IN_CODE" value="1"/> - <option name="KEEP_BLANK_LINES_BEFORE_RBRACE" value="1"/> - <option name="BLANK_LINES_AROUND_FIELD" value="1"/> - <option name="BRACE_STYLE" value="2"/> - <option name="CLASS_BRACE_STYLE" value="2"/> - <option name="METHOD_BRACE_STYLE" value="2"/> - <option name="ELSE_ON_NEW_LINE" value="true"/> - <option name="WHILE_ON_NEW_LINE" value="true"/> - <option name="CATCH_ON_NEW_LINE" value="true"/> - <option name="FINALLY_ON_NEW_LINE" value="true"/> - <option name="ALIGN_MULTILINE_PARAMETERS" value="false"/> - <option name="ALIGN_MULTILINE_RESOURCES" value="false"/> - <option name="SPACE_WITHIN_ARRAY_INITIALIZER_BRACES" value="true"/> - <option name="SPACE_BEFORE_ARRAY_INITIALIZER_LBRACE" value="true"/> - <option name="CALL_PARAMETERS_WRAP" value="1"/> - <option name="METHOD_PARAMETERS_WRAP" value="1"/> - <option name="RESOURCE_LIST_WRAP" value="5"/> - <option name="EXTENDS_LIST_WRAP" value="1"/> - <option name="THROWS_LIST_WRAP" value="1"/> - <option name="EXTENDS_KEYWORD_WRAP" value="1"/> - <option name="THROWS_KEYWORD_WRAP" value="1"/> - <option name="METHOD_CALL_CHAIN_WRAP" value="1"/> - <option name="BINARY_OPERATION_WRAP" value="1"/> - <option name="BINARY_OPERATION_SIGN_ON_NEXT_LINE" value="true"/> - <option name="TERNARY_OPERATION_WRAP" value="5"/> - <option name="ARRAY_INITIALIZER_WRAP" value="1"/> - <option name="IF_BRACE_FORCE" value="3"/> - <option name="DOWHILE_BRACE_FORCE" value="3"/> - <option name="FOR_BRACE_FORCE" value="3"/> - <option name="CLASS_ANNOTATION_WRAP" value="0"/> - <option name="FIELD_ANNOTATION_WRAP" value="0"/> - <indentOptions> - <option name="USE_TAB_CHARACTER" value="true"/> - </indentOptions> - </codeStyleSettings> - <codeStyleSettings language="JSON"> - <option name="KEEP_BLANK_LINES_IN_CODE" value="2"/> - <option name="SPACE_WITHIN_BRACKETS" value="true"/> - <option name="SPACE_WITHIN_BRACES" value="true"/> - <indentOptions> - <option name="INDENT_SIZE" value="4"/> - <option name="USE_TAB_CHARACTER" value="true"/> - </indentOptions> - </codeStyleSettings> -</code_scheme> diff --git a/idea/inspections.xml b/idea/inspections.xml deleted file mode 100644 index 3e7001988e..0000000000 --- a/idea/inspections.xml +++ /dev/null @@ -1,31 +0,0 @@ -<component name="InspectionProjectProfileManager"> - <profile version="1.0"> - <option name="myName" value="Aether II"/> - <inspection_tool class="ClassReferencesSubclass" enabled="true" level="WARNING" enabled_by_default="true"/> - <inspection_tool class="InstanceofThis" enabled="true" level="WARNING" enabled_by_default="true"/> - <inspection_tool class="MissingOverrideAnnotation" enabled="true" level="ERROR" enabled_by_default="true"> - <option name="ignoreObjectMethods" value="true"/> - <option name="ignoreAnonymousClassMethods" value="false"/> - </inspection_tool> - <inspection_tool class="NullableProblems" enabled="true" level="WARNING" enabled_by_default="true"> - <option name="REPORT_NULLABLE_METHOD_OVERRIDES_NOTNULL" value="true"/> - <option name="REPORT_NOT_ANNOTATED_METHOD_OVERRIDES_NOTNULL" value="false"/> - <option name="REPORT_NOTNULL_PARAMETER_OVERRIDES_NULLABLE" value="false"/> - <option name="REPORT_NOT_ANNOTATED_PARAMETER_OVERRIDES_NOTNULL" value="true"/> - <option name="REPORT_NOT_ANNOTATED_GETTER" value="false"/> - <option name="REPORT_NOT_ANNOTATED_SETTER_PARAMETER" value="true"/> - <option name="REPORT_ANNOTATION_NOT_PROPAGATED_TO_OVERRIDERS" value="false"/> - <option name="REPORT_NULLS_PASSED_TO_NON_ANNOTATED_METHOD" value="true"/> - </inspection_tool> - <inspection_tool class="ObsoleteCollection" enabled="true" level="WARNING" enabled_by_default="true"> - <option name="ignoreRequiredObsoleteCollectionTypes" value="false"/> - </inspection_tool> - <inspection_tool class="RedundantSuppression" enabled="true" level="WARNING" enabled_by_default="true"/> - <inspection_tool class="SystemOutErr" enabled="true" level="WARNING" enabled_by_default="true"/> - <inspection_tool class="ThrowablePrintStackTrace" enabled="true" level="WARNING" enabled_by_default="true"/> - <inspection_tool class="UnqualifiedFieldAccess" enabled="true" level="WARNING" enabled_by_default="true"/> - <inspection_tool class="UnqualifiedMethodAccess" enabled="true" level="WARNING" enabled_by_default="true"/> - <inspection_tool class="UnusedImport" enabled="true" level="WARNING" enabled_by_default="true"/> - <inspection_tool class="UseOfObsoleteDateTimeApi" enabled="true" level="WARNING" enabled_by_default="true"/> - </profile> -</component> \ No newline at end of file diff --git a/lib/orbis-lib b/lib/orbis-lib deleted file mode 160000 index 147af30f2d..0000000000 --- a/lib/orbis-lib +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 147af30f2d7ff854c7bdbb4cc47d4e55db24d728 diff --git a/settings.gradle b/settings.gradle index ea88b89d58..3703f364a9 100644 --- a/settings.gradle +++ b/settings.gradle @@ -1,4 +1,6 @@ -rootProject.name = 'aether-ii' - -include 'orbis-lib' -project(':orbis-lib').projectDir = file("lib/orbis-lib") +pluginManagement { + repositories { + gradlePluginPortal() + maven { url = 'https://maven.minecraftforge.net/' } + } +} \ No newline at end of file diff --git a/src/api/java/com/gildedgames/aether/api/AetherAPI.java b/src/api/java/com/gildedgames/aether/api/AetherAPI.java deleted file mode 100644 index ded6546d0e..0000000000 --- a/src/api/java/com/gildedgames/aether/api/AetherAPI.java +++ /dev/null @@ -1,28 +0,0 @@ -package com.gildedgames.aether.api; - -import com.gildedgames.aether.api.registry.IContentRegistry; - -public class AetherAPI -{ - private static IAetherServices services; - - public static IContentRegistry content() - { - return AetherAPI.services().content(); - } - - public static void registerProvider(final IAetherServices services) - { - if (AetherAPI.services != null) - { - throw new IllegalStateException("The Aether API provider is already initialized"); - } - - AetherAPI.services = services; - } - - public static IAetherServices services() - { - return AetherAPI.services; - } -} diff --git a/src/api/java/com/gildedgames/aether/api/IAetherServices.java b/src/api/java/com/gildedgames/aether/api/IAetherServices.java deleted file mode 100644 index cef441e8d6..0000000000 --- a/src/api/java/com/gildedgames/aether/api/IAetherServices.java +++ /dev/null @@ -1,11 +0,0 @@ -package com.gildedgames.aether.api; - -import com.gildedgames.aether.api.net.IGildedGamesAccountApi; -import com.gildedgames.aether.api.registry.IContentRegistry; - -public interface IAetherServices -{ - IContentRegistry content(); - - IGildedGamesAccountApi gildedGamesAccountApi(); -} diff --git a/src/api/java/com/gildedgames/aether/api/cache/IEntityStats.java b/src/api/java/com/gildedgames/aether/api/cache/IEntityStats.java deleted file mode 100644 index b2c17b3529..0000000000 --- a/src/api/java/com/gildedgames/aether/api/cache/IEntityStats.java +++ /dev/null @@ -1,18 +0,0 @@ -package com.gildedgames.aether.api.cache; - -import com.gildedgames.aether.api.entity.effects.IAetherStatusEffects; - -import java.util.Map; - -public interface IEntityStats -{ - float getMaxHealth(); - - double getSlashDefenseLevel(); - - double getPierceDefenseLevel(); - - double getImpactDefenseLevel(); - - Map<IAetherStatusEffects.effectTypes, Double> getResistances(); -} diff --git a/src/api/java/com/gildedgames/aether/api/cache/IEntityStatsCache.java b/src/api/java/com/gildedgames/aether/api/cache/IEntityStatsCache.java deleted file mode 100644 index b2f809f656..0000000000 --- a/src/api/java/com/gildedgames/aether/api/cache/IEntityStatsCache.java +++ /dev/null @@ -1,8 +0,0 @@ -package com.gildedgames.aether.api.cache; - -import net.minecraft.util.ResourceLocation; - -public interface IEntityStatsCache -{ - IEntityStats getStats(final ResourceLocation entityId); -} diff --git a/src/api/java/com/gildedgames/aether/api/chunk/IPlacementFlagCapability.java b/src/api/java/com/gildedgames/aether/api/chunk/IPlacementFlagCapability.java deleted file mode 100644 index 595b988124..0000000000 --- a/src/api/java/com/gildedgames/aether/api/chunk/IPlacementFlagCapability.java +++ /dev/null @@ -1,31 +0,0 @@ -package com.gildedgames.aether.api.chunk; - -import com.gildedgames.orbis.lib.util.mc.NBT; -import net.minecraft.util.math.BlockPos; - -/** - * Stores which blocks in a chunk have been player-modified. Used primarily by - * Skyroot Tools to decide whether or not to drop extra items. - */ -public interface IPlacementFlagCapability extends NBT -{ - /** - * Marks the world coordinate as player-modified. - * @param pos The world coordinates of the block to mark - */ - void markModified(BlockPos pos); - - /** - * Clears the player-modified flag for the world coordinate. - * @param pos The world coordinates of the block to clear - */ - void clearModified(BlockPos pos); - - /** - * Returns whether or not the block at world coordinates {@param pos} has - * been player-modified. - * @param pos The world coordinates of the block to check - * @return True if the block was player-modified, otherwise false. - */ - boolean isModified(BlockPos pos); -} diff --git a/src/api/java/com/gildedgames/aether/api/dialog/IDialogAction.java b/src/api/java/com/gildedgames/aether/api/dialog/IDialogAction.java deleted file mode 100644 index 9f855f94d1..0000000000 --- a/src/api/java/com/gildedgames/aether/api/dialog/IDialogAction.java +++ /dev/null @@ -1,15 +0,0 @@ -package com.gildedgames.aether.api.dialog; - -/** - * An action that can be performed during a dialog scene either by the user - * pressing a {@link IDialogButton} or after a {@link IDialogNode} completes. - */ -public interface IDialogAction -{ - /** - * Called when the action is performed. - * - * @param controller The controller this action was called from - */ - void performAction(IDialogController controller); -} diff --git a/src/api/java/com/gildedgames/aether/api/dialog/IDialogButton.java b/src/api/java/com/gildedgames/aether/api/dialog/IDialogButton.java deleted file mode 100644 index 95e925930d..0000000000 --- a/src/api/java/com/gildedgames/aether/api/dialog/IDialogButton.java +++ /dev/null @@ -1,43 +0,0 @@ -package com.gildedgames.aether.api.dialog; - -import net.minecraft.util.text.ITextComponent; - -import javax.annotation.Nonnull; -import java.util.Collection; - -/** - * A user-pressable button that can appear at the end of a dialog node. - */ -public interface IDialogButton -{ - - /** - * @return The conditions required for this button to display, but using or operation. - */ - @Nonnull - Collection<IDialogCondition> getOrConditions(); - - /** - * @return The conditions required for this button to display. - */ - @Nonnull - Collection<IDialogCondition> getConditions(); - - /** - * Returns the unlocalized label of this button. - */ - @Nonnull - String getLabel(); - - /** - * Returns the localized display string of this button. - */ - @Nonnull - ITextComponent getLocalizedLabel(); - - /** - * Returns the action to perform when this button is clicked. - */ - @Nonnull - Collection<IDialogAction> getActions(); -} diff --git a/src/api/java/com/gildedgames/aether/api/dialog/IDialogChangeListener.java b/src/api/java/com/gildedgames/aether/api/dialog/IDialogChangeListener.java deleted file mode 100644 index cc519c9fb2..0000000000 --- a/src/api/java/com/gildedgames/aether/api/dialog/IDialogChangeListener.java +++ /dev/null @@ -1,18 +0,0 @@ -package com.gildedgames.aether.api.dialog; - -/** - * A listener interface that can be implemented to subscribe to - * dialog events. - */ -public interface IDialogChangeListener -{ - /** - * Called when the dialog controller advances or otherwise updates. - */ - void onDialogChanged(); - - /** - * Called when the dialog controller closes a scene. - */ - void beforeSceneCloses(); -} diff --git a/src/api/java/com/gildedgames/aether/api/dialog/IDialogCondition.java b/src/api/java/com/gildedgames/aether/api/dialog/IDialogCondition.java deleted file mode 100644 index 46518ded92..0000000000 --- a/src/api/java/com/gildedgames/aether/api/dialog/IDialogCondition.java +++ /dev/null @@ -1,15 +0,0 @@ -package com.gildedgames.aether.api.dialog; - -/** - * A condition that has to be met during a dialog scene before, for example, - * a button can be displayed. - */ -public interface IDialogCondition -{ - /** - * Called when the condition needs to be met. - * - * @param controller The controller this condition was called from - */ - boolean isMet(IDialogController controller); -} diff --git a/src/api/java/com/gildedgames/aether/api/dialog/IDialogController.java b/src/api/java/com/gildedgames/aether/api/dialog/IDialogController.java deleted file mode 100644 index 278faff32d..0000000000 --- a/src/api/java/com/gildedgames/aether/api/dialog/IDialogController.java +++ /dev/null @@ -1,100 +0,0 @@ -package com.gildedgames.aether.api.dialog; - -import com.gildedgames.aether.api.entity.EntityCharacter; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.util.ResourceLocation; - -import javax.annotation.Nonnull; -import javax.annotation.Nullable; -import java.util.Map; - -/** - * Controls the progression and displaying of a scene to the player. - */ -public interface IDialogController -{ - void setConditionsMetData(Map<String, Boolean> data); - - /** - * @param button The button we're checking if their conditions are met. - * @return Whether or not the conditions were met for this button. - */ - boolean conditionsMet(IDialogButton button); - - EntityPlayer getDialogPlayer(); - - @Nullable - EntityCharacter getTalkingCharacter(); - - void setTalkingEntity(EntityCharacter entity); - - /** - * Adds a {@link IDialogChangeListener} to this controller. All listeners are removed - * when the scene is changed. - * @param listener The listener to add - */ - void addListener(IDialogChangeListener listener); - - /** - * Opens and displays the scene at it's starting node. - * @param path The resource path to the scene file - */ - void openScene(ResourceLocation path, String startinNodeId); - - /** - * Sets the current node in the scene. - */ - void navigateNode(String nodeId); - - /** - * Sets the current node in the scene to the last active node. - */ - void navigateBack(); - - /** - * Called when the player presses a button in the dialog node. - * - * @param button The button to press - */ - void activateButton(IDialogButton button); - - /** - * Advances the scene forward, automatically performing any actions. - */ - void advance(); - - /** - * Returns the current scene of this controller. - * @return The currently active scene of this controller - */ - IDialogScene getCurrentScene(); - - ISceneInstance getCurrentSceneInstance(); - - /** - * Returns the current node of the controller's scene. - * @return An {@link IDialogNode} of the current scene - */ - @Nonnull - IDialogNode getCurrentNode(); - - /** - * Returns the current line of the controller's scene. - * @return An {@link IDialogLine} of the current node - */ - @Nonnull - IDialogLine getCurrentLine(); - - /** - * Returns whether or not the current node has been read completely. - * This is really only used to determine whether or not the buttons should be - * shown yet. - * @return True if all lines of the node have been read - */ - boolean isNodeFinished(); - - /** - * Kills the scene instance, not gui counterpart. - */ - void closeScene(ISceneInstance scene); -} diff --git a/src/api/java/com/gildedgames/aether/api/dialog/IDialogLine.java b/src/api/java/com/gildedgames/aether/api/dialog/IDialogLine.java deleted file mode 100644 index 21bc4fab47..0000000000 --- a/src/api/java/com/gildedgames/aether/api/dialog/IDialogLine.java +++ /dev/null @@ -1,32 +0,0 @@ -package com.gildedgames.aether.api.dialog; - -import net.minecraft.util.ResourceLocation; -import net.minecraft.util.text.ITextComponent; - -import javax.annotation.Nonnull; -import java.util.Optional; - -/** - * Represents a line of text in a scene. - */ -public interface IDialogLine -{ - /** - * Returns the formatted body component of this line. - * - * @return The formatted body as a {@link ITextComponent} - */ - @Nonnull - ITextComponent getLocalizedBody(); - - /** - * Returns the speaker of this line. If the result is empty, no speaker will be shown. - * If the returned ResourceLocation has a #address suffix, it will use that to point to - * a given slide registered within that speaker's json file. - * - * @return An {@link Optional} containing the {@link ResourceLocation} representing the speaker, - * empty if there is no speaker. - */ - @Nonnull - Optional<ResourceLocation> getSpeaker(); -} diff --git a/src/api/java/com/gildedgames/aether/api/dialog/IDialogManager.java b/src/api/java/com/gildedgames/aether/api/dialog/IDialogManager.java deleted file mode 100644 index 2afa848c07..0000000000 --- a/src/api/java/com/gildedgames/aether/api/dialog/IDialogManager.java +++ /dev/null @@ -1,54 +0,0 @@ -package com.gildedgames.aether.api.dialog; - -import net.minecraft.util.ResourceLocation; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; - -import java.util.Optional; - -/** - * Manages the loading and caching of dialog scenes. - */ -public interface IDialogManager -{ - /** - * Returns a {@link IDialogSpeaker} for the specified resource location. The default - * implementation may also cache the speaker in memory for faster access later. - * - * This expects the file to be located at /assets/DOMAIN/dialog/speakers/NAME.json - * @param resource The resource name of the speaker. - * @return The {@link IDialogSpeaker} representing the resource. - */ - Optional<IDialogSpeaker> getSpeaker(ResourceLocation resource); - - /** - * Returns a {@link IDialogScene} for the specified resource location. The default - * implementation may also cache the scene in memory for faster access later. - * - * This expects the file to be located at /assets/DOMAIN/dialog/scenes/NAME.json. - * - * @param resource The resource name of the scene - * @return The {@link IDialogScene} representing the resource - */ - Optional<IDialogScene> getScene(ResourceLocation resource); - - /** - * Attempts to find a slide with the given slideAddress. If not defined, - * it will return an empty optional. - * @param slideAddress The address of the slide we're attempting to find. - * @param speaker The speaker where the slide is defined. - * @return The {@link IDialogSlide} representing the address - */ - Optional<IDialogSlide> findSlide(String slideAddress, IDialogSpeaker speaker); - - /** - * Attempts to find a slide renderer implementation tied with the given - * String. If not defined, it will return an empty optional. - * @param type The defined String key/type for that registered renderer - * @return The {@link IDialogSlideRenderer} representing the given String. - */ - Optional<IDialogSlideRenderer> findRenderer(String type); - - @SideOnly(Side.CLIENT) - void attachReloadListener(); -} diff --git a/src/api/java/com/gildedgames/aether/api/dialog/IDialogNode.java b/src/api/java/com/gildedgames/aether/api/dialog/IDialogNode.java deleted file mode 100644 index b9b504ecf7..0000000000 --- a/src/api/java/com/gildedgames/aether/api/dialog/IDialogNode.java +++ /dev/null @@ -1,39 +0,0 @@ -package com.gildedgames.aether.api.dialog; - -import javax.annotation.Nonnull; -import java.util.Collection; -import java.util.List; - -/** - * Represents a node that can be navigated to by scene buttons or actions. - */ -public interface IDialogNode -{ - /** - * Returns the dialog lines of this node. - */ - @Nonnull - List<IDialogLine> getLines(); - - /** - * Returns the buttons the player is given after all lines have been read. - * - * @return A collection of {@link IDialogButton} - */ - @Nonnull - Collection<IDialogButton> getButtons(); - - /** - * Returns a collection of actions to perform after the node has been completed. - * - * @return A collection of {@link IDialogAction} - */ - @Nonnull - Collection<IDialogAction> getEndActions(); - - /** - * This node's unique ID for use by other parts of the dialog system. Must be unique. - */ - @Nonnull - String getIdentifier(); -} diff --git a/src/api/java/com/gildedgames/aether/api/dialog/IDialogScene.java b/src/api/java/com/gildedgames/aether/api/dialog/IDialogScene.java deleted file mode 100644 index fb501d96d0..0000000000 --- a/src/api/java/com/gildedgames/aether/api/dialog/IDialogScene.java +++ /dev/null @@ -1,32 +0,0 @@ -package com.gildedgames.aether.api.dialog; - -import javax.annotation.Nonnull; -import java.util.Optional; - -/** - * A scene representing it's dialog nodes and starting point. - */ -public interface IDialogScene -{ - /** - * Returns a dialog node for the scene. - * - * @param id The name of the node - * @return An {@link Optional} value containing the node, if it exists - */ - Optional<IDialogNode> getNode(String id); - - /** - * Returns the starting node for this scene. - * - * @return A {@link IDialogNode} that kicks off the scene. - */ - @Nonnull - IDialogNode getStartingNode(); - - /** - * Sets the starting node for this scene. - * @param id The name of the node - */ - void setStartingNode(String id); -} diff --git a/src/api/java/com/gildedgames/aether/api/dialog/IDialogSlide.java b/src/api/java/com/gildedgames/aether/api/dialog/IDialogSlide.java deleted file mode 100644 index 57ef6fdf87..0000000000 --- a/src/api/java/com/gildedgames/aether/api/dialog/IDialogSlide.java +++ /dev/null @@ -1,27 +0,0 @@ -package com.gildedgames.aether.api.dialog; - -import java.util.Map; -import java.util.Optional; - -/** - * Represents a Slide which will be rendered in a scene. - * Currently, {@link IDialogSpeaker} objects define what Slides - * a {@link IDialogScene} can utilize. - */ -public interface IDialogSlide -{ - /** - * The returned String represents an implementation that is used to draw - * the {@link #getSlideData()} defined by this Slide. - * @return An {@link Optional} object containing a String which represents - * a renderer implementation - */ - Optional<String> getRenderer(); - - /** - * Slide data that will eventually be interpreted by this Slide's - * Renderer and drawn on screen. - * @return An {@link Optional} object containing a map of String data. - */ - Optional<Map<String, String>> getSlideData(); -} diff --git a/src/api/java/com/gildedgames/aether/api/dialog/IDialogSlideRenderer.java b/src/api/java/com/gildedgames/aether/api/dialog/IDialogSlideRenderer.java deleted file mode 100644 index 793d597867..0000000000 --- a/src/api/java/com/gildedgames/aether/api/dialog/IDialogSlideRenderer.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.gildedgames.aether.api.dialog; - -/** - * Used to render the data provided by a {@link IDialogSlide} object. - */ -public interface IDialogSlideRenderer -{ - /** - * Should ideally be used to interpret and transform slide data for the - * {@link #draw(IDialogSlide, double, double, int, int, float) draw()} method. - * @param slide The slide that will be rendered by this implementation. - */ - void setup(IDialogSlide slide); - - /** - * Should interpret the data defined by the provided slide and - * render it based on this implementation's goals. - * @param slide The slide that will be rendered by this implementation. - */ - void draw(IDialogSlide slide, double screenWidth, double screenHeight, int mouseX, int mouseY, float partialTicks); -} diff --git a/src/api/java/com/gildedgames/aether/api/dialog/IDialogSpeaker.java b/src/api/java/com/gildedgames/aether/api/dialog/IDialogSpeaker.java deleted file mode 100644 index 4a5544e177..0000000000 --- a/src/api/java/com/gildedgames/aether/api/dialog/IDialogSpeaker.java +++ /dev/null @@ -1,24 +0,0 @@ -package com.gildedgames.aether.api.dialog; - -import javax.annotation.Nonnull; -import java.util.Map; -import java.util.Optional; - -/** - * Represents the data associated with a speaker. - */ -public interface IDialogSpeaker -{ - /** - * @return The name of the speaker. - */ - @Nonnull - String getUnlocalizedName(); - - /** - * Returns the slides for the viewer GUI to use. First one is default, if exists. - * @return An {@link Optional} value containing the {@link IDialogSlide}s, if they exist. - */ - Optional<Map<String, IDialogSlide>> getSlides(); - -} diff --git a/src/api/java/com/gildedgames/aether/api/dialog/ISceneInstance.java b/src/api/java/com/gildedgames/aether/api/dialog/ISceneInstance.java deleted file mode 100644 index c988c8477b..0000000000 --- a/src/api/java/com/gildedgames/aether/api/dialog/ISceneInstance.java +++ /dev/null @@ -1,22 +0,0 @@ -package com.gildedgames.aether.api.dialog; - -import java.util.Map; - -public interface ISceneInstance -{ - IDialogScene getScene(); - - IDialogNode getNode(); - - IDialogLine getLine(); - - void navigate(String nodeId); - - void forwards(); - - Map<String, Boolean> getConditionsMet(); - - void setConditionsMet(Map<String, Boolean> conditionsMet); - - boolean isDoneReading(); -} diff --git a/src/api/java/com/gildedgames/aether/api/entity/Character.java b/src/api/java/com/gildedgames/aether/api/entity/Character.java deleted file mode 100644 index 5cfaa10982..0000000000 --- a/src/api/java/com/gildedgames/aether/api/entity/Character.java +++ /dev/null @@ -1,11 +0,0 @@ -package com.gildedgames.aether.api.entity; - -import com.gildedgames.aether.api.shop.IShopInstanceGroup; - -import javax.annotation.Nullable; - -public interface Character -{ - @Nullable - IShopInstanceGroup getShopInstanceGroup(); -} diff --git a/src/api/java/com/gildedgames/aether/api/entity/EntityCharacter.java b/src/api/java/com/gildedgames/aether/api/entity/EntityCharacter.java deleted file mode 100644 index 7b8cd50581..0000000000 --- a/src/api/java/com/gildedgames/aether/api/entity/EntityCharacter.java +++ /dev/null @@ -1,182 +0,0 @@ -package com.gildedgames.aether.api.entity; - -import com.gildedgames.aether.api.shop.IShopInstance; -import com.gildedgames.aether.api.shop.IShopInstanceGroup; -import com.gildedgames.aether.api.world.IWorldObjectHoverable; -import com.gildedgames.orbis.lib.util.io.NBTFunnel; -import net.minecraft.entity.EntityCreature; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.network.datasync.DataParameter; -import net.minecraft.network.datasync.DataSerializers; -import net.minecraft.util.DamageSource; -import net.minecraft.util.math.RayTraceResult; -import net.minecraft.util.text.ITextComponent; -import net.minecraft.util.text.TextComponentTranslation; -import net.minecraft.world.World; -import net.minecraftforge.event.entity.EntityMountEvent; -import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; - -import javax.annotation.Nullable; - -public abstract class EntityCharacter extends EntityCreature implements Character, IWorldObjectHoverable -{ - private static final DataParameter<NBTTagCompound> SHOP_INSTANCE_GROUP_TAG = new DataParameter<>(16, DataSerializers.COMPOUND_TAG); - - private IShopInstanceGroup shopInstanceGroup; - - private boolean startupSynced; - - private NBTTagCompound prevShopInstanceTag; - - public EntityCharacter(final World worldIn) - { - super(worldIn); - - this.isImmuneToFire = true; - this.shopInstanceGroup = this.createShopInstanceGroup(); - } - - @Override - public boolean isEntityInvulnerable(final DamageSource source) - { - return !source.canHarmInCreative(); - } - - @Override - @SideOnly(Side.CLIENT) - public boolean canRenderOnFire() - { - return false; - } - - @Override - protected boolean canDespawn() - { - return false; - } - - @Override - public boolean canBeLeashedTo(final EntityPlayer player) - { - return false; - } - - @Nullable - public abstract IShopInstanceGroup createShopInstanceGroup(); - - public NBTTagCompound getShopInstanceGroupTag() - { - return this.dataManager.get(SHOP_INSTANCE_GROUP_TAG); - } - - public void setShopInstanceGroupTag(NBTTagCompound tag) - { - this.dataManager.set(SHOP_INSTANCE_GROUP_TAG, tag); - } - - @Override - protected void entityInit() - { - super.entityInit(); - - this.dataManager.register(SHOP_INSTANCE_GROUP_TAG, new NBTTagCompound()); - } - - @Override - public IShopInstanceGroup getShopInstanceGroup() - { - return this.shopInstanceGroup; - } - - private void onClientUpdate() - { - if (this.getShopInstanceGroup() != null) - { - if (this.prevShopInstanceTag != this.getShopInstanceGroupTag()) - { - this.prevShopInstanceTag = this.getShopInstanceGroupTag(); - - this.getShopInstanceGroup().read(this.getShopInstanceGroupTag()); - } - } - } - - private void onServerUpdate() - { - if (this.getShopInstanceGroup() != null) - { - for (IShopInstance shopInstance : this.getShopInstanceGroup().getShopInstances()) - { - if (shopInstance != null) - { - shopInstance.tick(); - - if (shopInstance.isDirty() || !this.startupSynced) - { - this.startupSynced = true; - - NBTTagCompound tag = new NBTTagCompound(); - this.getShopInstanceGroup().write(tag); - - this.setShopInstanceGroupTag(tag); - - this.getShopInstanceGroup().getShopInstances().forEach(IShopInstance::markClean); - } - } - } - } - } - - @Override - public void onUpdate() - { - super.onUpdate(); - - if (!this.world.isRemote) - { - this.onServerUpdate(); - } - else - { - this.onClientUpdate(); - } - } - - @Override - public void writeEntityToNBT(final NBTTagCompound compound) - { - super.writeEntityToNBT(compound); - - NBTFunnel funnel = new NBTFunnel(compound); - - funnel.set("shopInstanceGroup", this.shopInstanceGroup); - } - - @Override - public void readEntityFromNBT(final NBTTagCompound compound) - { - super.readEntityFromNBT(compound); - - NBTFunnel funnel = new NBTFunnel(compound); - - this.shopInstanceGroup = funnel.getWithDefault("shopInstanceGroup", () -> this.shopInstanceGroup); - } - - @Override - public ITextComponent getHoverText(World world, RayTraceResult result) - { - return new TextComponentTranslation("gui.aether.hover.npc", this.getName()); - } - - @SubscribeEvent - public static void onEntityMounted(final EntityMountEvent event) - { - if (EntityCharacter.class.isAssignableFrom(event.getEntityMounting().getClass())) - { - event.setCanceled(true); - } - } -} diff --git a/src/api/java/com/gildedgames/aether/api/entity/IEntityEyesComponent.java b/src/api/java/com/gildedgames/aether/api/entity/IEntityEyesComponent.java deleted file mode 100644 index 1dd7e741e7..0000000000 --- a/src/api/java/com/gildedgames/aether/api/entity/IEntityEyesComponent.java +++ /dev/null @@ -1,12 +0,0 @@ -package com.gildedgames.aether.api.entity; - -import net.minecraft.entity.Entity; - -public interface IEntityEyesComponent -{ - Entity lookingAtEntity(); - - int getTicksEyesClosed(); - - void update(); -} diff --git a/src/api/java/com/gildedgames/aether/api/entity/IMount.java b/src/api/java/com/gildedgames/aether/api/entity/IMount.java deleted file mode 100644 index ebc7ef22f7..0000000000 --- a/src/api/java/com/gildedgames/aether/api/entity/IMount.java +++ /dev/null @@ -1,8 +0,0 @@ -package com.gildedgames.aether.api.entity; - -public interface IMount -{ - - IMountProcessor getMountProcessor(); - -} diff --git a/src/api/java/com/gildedgames/aether/api/entity/IMountProcessor.java b/src/api/java/com/gildedgames/aether/api/entity/IMountProcessor.java deleted file mode 100644 index 41dca9e3ea..0000000000 --- a/src/api/java/com/gildedgames/aether/api/entity/IMountProcessor.java +++ /dev/null @@ -1,22 +0,0 @@ -package com.gildedgames.aether.api.entity; - -import net.minecraft.entity.Entity; - -public interface IMountProcessor -{ - - void onUpdate(Entity mount, Entity rider); - - void onHoldSpaceBar(Entity mount, Entity rider); - - float getMountedStepHeight(Entity mount); - - boolean canBeMounted(Entity mount); - - boolean canProcessMountInteraction(Entity mount, Entity rider); - - void onMountedBy(Entity mount, Entity rider); - - void onDismountedBy(Entity mount, Entity rider); - -} diff --git a/src/api/java/com/gildedgames/aether/api/entity/damage/DamageTypeAttributes.java b/src/api/java/com/gildedgames/aether/api/entity/damage/DamageTypeAttributes.java deleted file mode 100644 index a684ad2730..0000000000 --- a/src/api/java/com/gildedgames/aether/api/entity/damage/DamageTypeAttributes.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.gildedgames.aether.api.entity.damage; - -import net.minecraft.entity.ai.attributes.IAttribute; -import net.minecraft.entity.ai.attributes.RangedAttribute; - -public class DamageTypeAttributes -{ - public static final IAttribute SLASH_DEFENSE_LEVEL = new RangedAttribute(null, "attribute.name.aether.slash", 0.0F, -4.0F, 4.0F).setShouldWatch(true); - - public static final IAttribute PIERCE_DEFENSE_LEVEL = new RangedAttribute(null, "attribute.name.aether.pierce", 0.0F, -4.0F, 4.0F).setShouldWatch(true); - - public static final IAttribute IMPACT_DEFENSE_LEVEL = new RangedAttribute(null, "attribute.name.aether.impact", 0.0F, -4.0F, 4.0F).setShouldWatch(true); -} diff --git a/src/api/java/com/gildedgames/aether/api/entity/damage/IDamageLevelsHolder.java b/src/api/java/com/gildedgames/aether/api/entity/damage/IDamageLevelsHolder.java deleted file mode 100644 index 8efc5b4f40..0000000000 --- a/src/api/java/com/gildedgames/aether/api/entity/damage/IDamageLevelsHolder.java +++ /dev/null @@ -1,10 +0,0 @@ -package com.gildedgames.aether.api.entity.damage; - -public interface IDamageLevelsHolder -{ - float getSlashDamageLevel(); - - float getPierceDamageLevel(); - - float getImpactDamageLevel(); -} diff --git a/src/api/java/com/gildedgames/aether/api/entity/damage/IDefenseLevelsHolder.java b/src/api/java/com/gildedgames/aether/api/entity/damage/IDefenseLevelsHolder.java deleted file mode 100644 index 2022f9f3c4..0000000000 --- a/src/api/java/com/gildedgames/aether/api/entity/damage/IDefenseLevelsHolder.java +++ /dev/null @@ -1,4 +0,0 @@ -package com.gildedgames.aether.api.entity.damage; - -public interface IDefenseLevelsHolder { -} diff --git a/src/api/java/com/gildedgames/aether/api/entity/effects/EEffectIntensity.java b/src/api/java/com/gildedgames/aether/api/entity/effects/EEffectIntensity.java deleted file mode 100644 index 3f83867730..0000000000 --- a/src/api/java/com/gildedgames/aether/api/entity/effects/EEffectIntensity.java +++ /dev/null @@ -1,35 +0,0 @@ -package com.gildedgames.aether.api.entity.effects; - - -/** - * MINOR_AMBRO_POISON = 3; - * ORDINARY_AMBRO_POISON = 25; - * MAJOR_AMBRO_POISON = 50; - * - * MINOR_BLEED = 3; - * ORDINARY_BLEED = 10; - * MAJOR_BLEED = 35; - * - * ORDINARY_COCKATRICE_VENOM = 55; - * - * MINOR_FRACTURE = 15; - * ORDINARY_FRACTURE = 35; - * MAJOR_FRACTURE = 75; - * - * MINOR_FUNGAL_ROT = 5; - * ORDINARY_FUNGAL_ROT = 15; - * MAJOR_FUNGAL_ROT = 40; - * - * MINOR_TOXIN = 15; - * ORDINARY_TOXIN = 50; - * MAJOR_TOXIN = 80; - * - * MINOR_STUN = 25; - * ORDINARY_STUN = 60; - * MAJOR_STUN = 90; - */ - -public enum EEffectIntensity -{ - MINOR, ORDINARY, MAJOR -} \ No newline at end of file diff --git a/src/api/java/com/gildedgames/aether/api/entity/effects/IAetherStatusEffectIntensity.java b/src/api/java/com/gildedgames/aether/api/entity/effects/IAetherStatusEffectIntensity.java deleted file mode 100644 index 59bd149c2f..0000000000 --- a/src/api/java/com/gildedgames/aether/api/entity/effects/IAetherStatusEffectIntensity.java +++ /dev/null @@ -1,9 +0,0 @@ -package com.gildedgames.aether.api.entity.effects; - -public interface IAetherStatusEffectIntensity -{ - static int getBuildupFromEffect(IAetherStatusEffects effect, EEffectIntensity intensity) - { - return effect.getBuildupFromIntensity(intensity); - } -} diff --git a/src/api/java/com/gildedgames/aether/api/entity/effects/IAetherStatusEffectPool.java b/src/api/java/com/gildedgames/aether/api/entity/effects/IAetherStatusEffectPool.java deleted file mode 100644 index 9e1c484c84..0000000000 --- a/src/api/java/com/gildedgames/aether/api/entity/effects/IAetherStatusEffectPool.java +++ /dev/null @@ -1,123 +0,0 @@ -package com.gildedgames.aether.api.entity.effects; - -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.nbt.NBTTagCompound; - -import javax.annotation.Nonnegative; -import java.util.HashMap; - -/** - * Requires an EntityLivingBase being attached to it (recommended through constructor - */ -public interface IAetherStatusEffectPool -{ - - /** - * Call supplied tick() method for all StatusEffects in pool. - */ - void tick(); - - /** - * Handles all calls to add buildup to effects. - * Given the effectType and buildup, addBuildup to corresponding effect. - * Method handles any temporary additions to resistances. - * @param effectType The effect buildup should be applied to. - * @param buildup The amount of buildup to add to the effect. - */ - void applyStatusEffect(IAetherStatusEffects.effectTypes effectType, @Nonnegative int buildup); - - /** - * @param effectType The effect to retrieve buildup from. - * @return integer representing the current effect's buildup. - */ - int getBuildupFromEffect(IAetherStatusEffects.effectTypes effectType); - - /** - * @param effectType The effect to retrieve application status information. - * @return boolean representing if the effect is being applied or not. - */ - boolean isEffectApplied(IAetherStatusEffects.effectTypes effectType); - - boolean effectExists(IAetherStatusEffects.effectTypes effectType); - - /** - * @param effectType The effect to retrive resistance information. - * @return double representing effect resistance. - */ - double getResistanceToEffect(IAetherStatusEffects.effectTypes effectType); - - /** - * Resistances to effects are multiplied towards buildup, given this they have the limits of 0.0 and 2.0. - * Due to multiplication principles, adding more resistance to an effect will lower that Entity's resistance. (buildup * 2.0resistance) = - * buildup*2 additional buildup. - * Decreasing resistance to an effect will raise that Entity's resistance. (buildup * 0.0resistance) = 0 additional buildup. - * @param effectType The effect to apply resistance to. - * @param addResistance The amount of resistance to add to effect (can be negative, to lower resistance number). - */ - void addResistanceToEffect(IAetherStatusEffects.effectTypes effectType, double addResistance); - - /** - * Reset's a specified resistance back to its default (1.0) - * @param effectType effect to reset. - */ - void resetResistanceToEffect(IAetherStatusEffects.effectTypes effectType); - - /** - * Reset's every effect's resistance in the pool. - */ - void resetAllResistances(); - - /** - * Method to change how long an effect lasts. - * @param effectType The effect to modify - * @param activeEffectTimeModifier Multiplied by the active effect time of an effect. - */ - void modifyActiveEffectTime(IAetherStatusEffects.effectTypes effectType, double activeEffectTimeModifier); - - /** - * Modifies all the active effect times in the pool. - * @param activeEffectTimeModifier Multiplied by the active effect time of an effect. - */ - void modifyAllActiveEffectTimes(double activeEffectTimeModifier); - - /** - * Modifies the buildup value of an effect. - * @param effectType The effect to modify. - * @param activeEffectBuildup The buildup value of the active effect. - */ - void modifyActiveEffectBuildup(IAetherStatusEffects.effectTypes effectType, int activeEffectBuildup); - - /** - * Modifies whether the effect is applied or not (which means it has reached maximum buildup). - * @param effectType The effect to modify. - * @param setApplied Whether the effect should be applied or not. - */ - void modifyActiveEffectApplication(IAetherStatusEffects.effectTypes effectType, boolean setApplied); - - /** - * Cures a specific effect, method essentially modifies the active effect time to 0. - * @param effectType The effect to cure. - */ - void cureActiveEffect(IAetherStatusEffects.effectTypes effectType); - - /** - * Cures all active effects by modifying their active effect time to 0. - */ - void cureAllActiveEffects(); - - IAetherStatusEffects createEffect(String name, EntityLivingBase entity); - - HashMap<String, IAetherStatusEffects> getPool(); - - /** - * Writes this capability to {@param tag}. - * @param tag The {@link NBTTagCompound} to write to - */ - void write(NBTTagCompound tag); - - /** - * Updates this capability from {@param tag}. - * @param tag The {@link NBTTagCompound} to read from - */ - void read(NBTTagCompound tag); -} diff --git a/src/api/java/com/gildedgames/aether/api/entity/effects/IAetherStatusEffects.java b/src/api/java/com/gildedgames/aether/api/entity/effects/IAetherStatusEffects.java deleted file mode 100644 index f3080544f7..0000000000 --- a/src/api/java/com/gildedgames/aether/api/entity/effects/IAetherStatusEffects.java +++ /dev/null @@ -1,251 +0,0 @@ -package com.gildedgames.aether.api.entity.effects; - -import com.gildedgames.aether.api.registrar.CapabilitiesAether; -import com.gildedgames.orbis.lib.util.mc.NBT; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.ai.attributes.AttributeModifier; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; - -import javax.annotation.Nonnegative; -import javax.annotation.Nullable; -import java.util.Collection; - -public interface IAetherStatusEffects extends NBT -{ - int TICKS_PER_SECOND = 20; - - /** - * Called every tick. - * Handle's applying and managing effects and reducing buildup. - * @param livingBase EntityLivingBase being updated. - */ - void tick(EntityLivingBase livingBase); - - /** - * Apply the status effect. - * @param livingBase EntityLivingBase to apply effect to. - * @param timer Current state of the timer. - */ - void applyEffect(EntityLivingBase livingBase, int timer); - - /** - * Called when the effect ends/wears off. - */ - void onEffectEnd(); - - /** - * Adds buildup to this effect and temporary additional resistances. - * Should to calculations on buildup and stored resistance for 0 and MAX checking, as well as applying the modifier additonalResistance. - * Resistances to effects are multiplied towards buildup, given this they have limits of 0.0 and 2.0. - * The lower the resistance, the higher the actual entity's resistance to buildup is. - * The higher the resistance, the lower the actual entity's resistance to buildup is. - * @see IAetherStatusEffectPool#addResistanceToEffect(effectTypes, double) for more information. - * @param buildup The amount to increment buildup, excludes negatives since reductions of buildup should be done in #setBuildup or #reduceBuildup - * @param additionalResistance The amount of temporary additional resistance to modify the buildup amount. - */ - void addBuildup(@Nonnegative int buildup, double additionalResistance); - - /** - * Assign the buildup of this effect to a certain value. Primarily used for curing effects, resetting, and network sync. - * @param buildup the buildup to be assigned to effect. - */ - void setBuildup(@Nonnegative int buildup); - - /** - * Set whether effect is applied or not. - * Note applied references whether effect is currently effecting an entity, not whether buildup is applied. - * @param isApplied boolean representing what state effect should be in. - */ - void setApplied(boolean isApplied); - - /** - * Reduce the buildup by the effect's specified amount of reduction. - * Handle's timer incrementing, since the timer should only be active if effect is applied or buildup is greater than 0. - */ - void reduceBuildup(); - - /** - * Reset's all data corresponding to effects. - */ - void resetEffect(); - - /** - * Adds stored resistance's to effects, this is different then the temporary addResistance in addBuildup, but the same rules apply. - * @param addResistance The resistance to add. - */ - void addResistance(double addResistance); - - /** - * Reset's the resistance to this effect back to default (1.0) - */ - void resetResistance(); - - /** - * Calculates all resistances, including temporary ones (like from Ambrosium Poisoning effect), - * and ensures they are in the correct value ranges, and returns result. - * @return calculated resistance, including temporary resistance. - */ - double calculateResistances(); - - /** - * The active effect time varies between different effects, this modifier multiples to the active effect time. - * 0.0 Modifier will reduce active effect time to 0. - * 2.0 Modifier will increase active effect time by 2. - * @param activeEffectTimeModifier The modifier to active effect time. - */ - void setActiveEffectTimeModifier(double activeEffectTimeModifier); - - /** - * Add information about the effect (it's name) from lang file, to provided collection. - * @param label Collection to add information too. - */ - @SideOnly(Side.CLIENT) - void addInformation(Collection<String> label); - - /** - * Retrieves the amount of buildup to use from a specified intensity (minor, ordinary, and major). - * @param intensity intensity to get buildup for. - * @return buildup according to instensity. - */ - int getBuildupFromIntensity(EEffectIntensity intensity); - - /** - * Check if living has appropriate capabilities, and apply buildup for status effect. - * @param livingBase living to apply effect buildup to. - * @param effectType effect to apply buildup for. - * @param buildup amount of buildup to add. - * @return boolean if successful. - */ - static boolean applyStatusEffect(EntityLivingBase livingBase, effectTypes effectType, @Nonnegative int buildup) - { - IAetherStatusEffectPool effects = livingBase.getCapability(CapabilitiesAether.STATUS_EFFECT_POOL, null); - - if (effects != null) - { - effects.applyStatusEffect(effectType, buildup); - - return true; - } - - return false; - } - - static boolean isEffectApplying(EntityLivingBase livingBase, effectTypes effectType) - { - IAetherStatusEffectPool effects = livingBase.getCapability(CapabilitiesAether.STATUS_EFFECT_POOL, null); - - if (effects != null) - { - return effects.isEffectApplied(effectType); - } - - return false; - } - - static boolean doesEffectHaveBuildup(EntityLivingBase livingBase, effectTypes effectType) - { - IAetherStatusEffectPool effects = livingBase.getCapability(CapabilitiesAether.STATUS_EFFECT_POOL, null); - - if (effects != null) - { - return effects.getBuildupFromEffect(effectType) > 0; - } - - return false; - } - - boolean isDirty(); - void markDirty(); - void markClean(); - - void adjustDecrease(int reductionRate); - - void resetDecrease(); - - int getBuildup(); - double getResistance(); - int getTimer(); - int getActiveEffectTime(); - double getActiveEffectTimeModifier(); - boolean getIsEffectApplied(); - effectTypes getEffectType(); - - float getEffectTextAlpha(); - - /** - * @return the effect's name in code, does not refer to how the effect should read on a GUI. - * @see #addInformation(Collection) to get the effect's readable name. - */ - String getEffectName(); - - @Nullable - AttributeModifier getAttributeModifier(); - - int NUMBER_OF_EFFECTS = 12; - - enum effectTypes - { - AMBROSIUM_POISONING("effect.aether.ambrosium_poisoning",0, 1, 1, 120,10), - TOXIN("effect.aether.toxin",1, 1, 1, 10,10), - COCKATRICE_VENOM("effect.aether.cockatrice_venom",2, 5, 60, 60,10), - STUN("effect.aether.stun", 3,5, 1, 5,10), - BLEED("effect.aether.bleed", 4,1,10,0,10), - FRACTURE("effect.aether.fracture", 5,1, 1, 60*5,10), - FUNGAL_ROT("effect.aether.fungal_rot", 6,1, 10, 20,10), - FREEZE("effect.aether.freeze", 7,1, 5, 20,10), - WEBBING("effect.aether.webbing", 8,1, 10, 20,10), - SATURATION_BOOST("effect.aether.saturation_boost", 9,1, 1, 60*5,10), - GUARD_BREAK("effect.aether.guard_break", 10, 20, 1, 5, 10), - IRRADIATION("effect.aether.irradiation", 11, 1, 1, 120, 10); - - public final int numericValue; // identifier for this effect. - public final String name; - public final int reductionRate; // amount to reduce by. - public final int timeTillReduction; // time between each reduction in seconds. - public final int activeEffectTime; // how long the active effect lasts in seconds. (0 is instant) - public final int buildupSpeed; - - effectTypes(String name, int numericValue, int reductionRate, int timeTillReduction, int activeEffectTime, int buildupSpeed) { - this.name = name; - this.numericValue = numericValue; - this.reductionRate = reductionRate; - this.timeTillReduction = timeTillReduction; - this.activeEffectTime = activeEffectTime; - this.buildupSpeed = buildupSpeed; - } - - public static effectTypes getEffectFromNumericValue(int numericValue) - { - switch(numericValue) - { - case 0: - return AMBROSIUM_POISONING; - case 1: - return TOXIN; - case 2: - return COCKATRICE_VENOM; - case 3: - return STUN; - case 4: - return BLEED; - case 5: - return FRACTURE; - case 6: - return FUNGAL_ROT; - case 7: - return FREEZE; - case 8: - return WEBBING; - case 9: - return SATURATION_BOOST; - case 10: - return GUARD_BREAK; - case 11: - return IRRADIATION; - default: - return null; - } - } - } -} diff --git a/src/api/java/com/gildedgames/aether/api/entity/genes/Gene.java b/src/api/java/com/gildedgames/aether/api/entity/genes/Gene.java deleted file mode 100644 index 31ea04c8ec..0000000000 --- a/src/api/java/com/gildedgames/aether/api/entity/genes/Gene.java +++ /dev/null @@ -1,14 +0,0 @@ -package com.gildedgames.aether.api.entity.genes; - -public interface Gene -{ - - String localizedName(); - - String unlocalizedName(); - - Mutation[] potentialMutations(); - - Inheritance inheritance(); - -} diff --git a/src/api/java/com/gildedgames/aether/api/entity/genes/GeneRegion.java b/src/api/java/com/gildedgames/aether/api/entity/genes/GeneRegion.java deleted file mode 100644 index ba1cc36adf..0000000000 --- a/src/api/java/com/gildedgames/aether/api/entity/genes/GeneRegion.java +++ /dev/null @@ -1,26 +0,0 @@ -package com.gildedgames.aether.api.entity.genes; - -public class GeneRegion<T extends Gene> -{ - - private final String name; - - private final T gene; - - public GeneRegion(String name, T gene) - { - this.name = name; - this.gene = gene; - } - - public String name() - { - return this.name; - } - - public T gene() - { - return this.gene; - } - -} diff --git a/src/api/java/com/gildedgames/aether/api/entity/genes/IGenePool.java b/src/api/java/com/gildedgames/aether/api/entity/genes/IGenePool.java deleted file mode 100644 index 958d2b6fa2..0000000000 --- a/src/api/java/com/gildedgames/aether/api/entity/genes/IGenePool.java +++ /dev/null @@ -1,12 +0,0 @@ -package com.gildedgames.aether.api.entity.genes; - -public interface IGenePool -{ - - IGeneStorage getStorage(); - - void transformFromParents(int seed, int fatherSeed, int motherSeed); - - void transformFromSeed(int seed); - -} diff --git a/src/api/java/com/gildedgames/aether/api/entity/genes/IGeneStorage.java b/src/api/java/com/gildedgames/aether/api/entity/genes/IGeneStorage.java deleted file mode 100644 index ee183aaa66..0000000000 --- a/src/api/java/com/gildedgames/aether/api/entity/genes/IGeneStorage.java +++ /dev/null @@ -1,22 +0,0 @@ -package com.gildedgames.aether.api.entity.genes; - -import com.gildedgames.orbis.lib.util.mc.NBT; - -public interface IGeneStorage extends NBT -{ - - int getSeed(); - - void setSeed(int seed); - - int getFatherSeed(); - - void setFatherSeed(int seed); - - int getMotherSeed(); - - void setMotherSeed(int seed); - - void setShouldRetransform(boolean flag); - -} diff --git a/src/api/java/com/gildedgames/aether/api/entity/genes/Inheritance.java b/src/api/java/com/gildedgames/aether/api/entity/genes/Inheritance.java deleted file mode 100644 index bc6c2ea4bb..0000000000 --- a/src/api/java/com/gildedgames/aether/api/entity/genes/Inheritance.java +++ /dev/null @@ -1,10 +0,0 @@ -package com.gildedgames.aether.api.entity.genes; - -import java.util.Random; - -public interface Inheritance -{ - - float generateChanceToInherit(Random r); - -} diff --git a/src/api/java/com/gildedgames/aether/api/entity/genes/Mutation.java b/src/api/java/com/gildedgames/aether/api/entity/genes/Mutation.java deleted file mode 100644 index e959dee0f1..0000000000 --- a/src/api/java/com/gildedgames/aether/api/entity/genes/Mutation.java +++ /dev/null @@ -1,28 +0,0 @@ -package com.gildedgames.aether.api.entity.genes; - -import java.util.function.Supplier; - -public class Mutation<T extends Gene> -{ - - private final Supplier<T> geneSupplier; - - private final float chanceToMutate; - - private Mutation(Supplier<T> geneSupplier, float chanceToMutate) - { - this.geneSupplier = geneSupplier; - this.chanceToMutate = chanceToMutate; - } - - public T getGene() - { - return this.geneSupplier.get(); - } - - public float getChanceToMutate() - { - return this.chanceToMutate; - } - -} diff --git a/src/api/java/com/gildedgames/aether/api/entity/spawning/EntitySpawn.java b/src/api/java/com/gildedgames/aether/api/entity/spawning/EntitySpawn.java deleted file mode 100644 index 75560886c5..0000000000 --- a/src/api/java/com/gildedgames/aether/api/entity/spawning/EntitySpawn.java +++ /dev/null @@ -1,40 +0,0 @@ -package com.gildedgames.aether.api.entity.spawning; - -public class EntitySpawn -{ - - private final int dim, areaX, areaZ; - - private final String spawnHandlerUniqueID; - - public EntitySpawn(String spawnHandlerUniqueID, int dim, int areaX, int areaZ) - { - this.spawnHandlerUniqueID = spawnHandlerUniqueID; - - this.dim = dim; - - this.areaX = areaX; - this.areaZ = areaZ; - } - - public String getSpawnHandlerUniqueID() - { - return this.spawnHandlerUniqueID; - } - - public int getDim() - { - return this.dim; - } - - public int getAreaX() - { - return this.areaX; - } - - public int getAreaZ() - { - return this.areaZ; - } - -} diff --git a/src/api/java/com/gildedgames/aether/api/entity/spawning/ISpawningInfo.java b/src/api/java/com/gildedgames/aether/api/entity/spawning/ISpawningInfo.java deleted file mode 100644 index c2cce08404..0000000000 --- a/src/api/java/com/gildedgames/aether/api/entity/spawning/ISpawningInfo.java +++ /dev/null @@ -1,8 +0,0 @@ -package com.gildedgames.aether.api.entity.spawning; - -public interface ISpawningInfo -{ - EntitySpawn getSpawnArea(); - - void setSpawnArea(EntitySpawn area); -} diff --git a/src/api/java/com/gildedgames/aether/api/items/EffectActivator.java b/src/api/java/com/gildedgames/aether/api/items/EffectActivator.java deleted file mode 100644 index 5365cb55de..0000000000 --- a/src/api/java/com/gildedgames/aether/api/items/EffectActivator.java +++ /dev/null @@ -1,6 +0,0 @@ -package com.gildedgames.aether.api.items; - -public enum EffectActivator -{ - WHEN_HELD, WHEN_EQUIPPED -} diff --git a/src/api/java/com/gildedgames/aether/api/items/equipment/ItemEquipmentSlot.java b/src/api/java/com/gildedgames/aether/api/items/equipment/ItemEquipmentSlot.java deleted file mode 100644 index 9eff6dfabb..0000000000 --- a/src/api/java/com/gildedgames/aether/api/items/equipment/ItemEquipmentSlot.java +++ /dev/null @@ -1,32 +0,0 @@ -package com.gildedgames.aether.api.items.equipment; - -/** - * The possible equipment slots for an item. - */ -public enum ItemEquipmentSlot -{ - NONE("gui.aether.slot.none"), - RING("gui.aether.slot.ring"), - NECKWEAR("gui.aether.slot.neckwear"), - COMPANION("gui.aether.slot.companion"), - HANDWEAR("gui.aether.slot.handwear"), - RELIC("gui.aether.slot.relic"), - CHARM("gui.aether.slot.charm"), - ARTIFACT("gui.aether.slot.artifact"), - OFFHAND("gui.aether.slot.offhand"); - - private final String unlocalizedName; - - ItemEquipmentSlot(String unlocalizedName) - { - this.unlocalizedName = unlocalizedName; - } - - /** - * @return Returns the unlocalized name of the the slot. - */ - public String getUnlocalizedName() - { - return this.unlocalizedName; - } -} diff --git a/src/api/java/com/gildedgames/aether/api/items/equipment/effects/EffectHelper.java b/src/api/java/com/gildedgames/aether/api/items/equipment/effects/EffectHelper.java deleted file mode 100644 index c71fe56570..0000000000 --- a/src/api/java/com/gildedgames/aether/api/items/equipment/effects/EffectHelper.java +++ /dev/null @@ -1,53 +0,0 @@ -package com.gildedgames.aether.api.items.equipment.effects; - -import java.util.Collection; -import java.util.function.Function; - -public class EffectHelper -{ - /** - * A helper method to combine the specific value of multiple effect instances together. - * - * This method iterates through each object, using {@param func} to collect the values. - * - * @param instances The collection of objects to combine - * @param func A {@link Function} which returns the value of each object to be combined - * @param <T> The object type - * - * @return The combined value of every object in {@param instances} - */ - public static <T> double combineDouble(Collection<T> instances, Function<T, Double> func) - { - double total = 0.0f; - - for (T instance : instances) - { - total += func.apply(instance); - } - - return total; - } - - /** - * A helper method to combine the specific value of multiple effect instances together. - * - * This method iterates through each object, using {@param func} to collect the values. - * - * @param instances The collection of objects to combine - * @param func A {@link Function} which returns the value of each object to be combined - * @param <T> The object type - * - * @return The combined value of every object in {@param instances} - */ - public static <T> int combineInt(Collection<T> instances, Function<T, Integer> func) - { - int total = 0; - - for (T instance : instances) - { - total += func.apply(instance); - } - - return total; - } -} diff --git a/src/api/java/com/gildedgames/aether/api/items/equipment/effects/EffectInstance.java b/src/api/java/com/gildedgames/aether/api/items/equipment/effects/EffectInstance.java deleted file mode 100644 index 813ad2e063..0000000000 --- a/src/api/java/com/gildedgames/aether/api/items/equipment/effects/EffectInstance.java +++ /dev/null @@ -1,56 +0,0 @@ -package com.gildedgames.aether.api.items.equipment.effects; - -import com.gildedgames.aether.api.player.IPlayerAether; -import net.minecraft.util.text.TextFormatting; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; - -import java.util.Collection; - -/** - * Implementor of an effect for an entity. Effect instances are re-created - * when the active {@link IEffectProvider} are changed, and are not persistent. - * - * Implementors should never store data passed to them, such as {@link IPlayerAether}. - */ -public abstract class EffectInstance -{ - /** - * Called each tick when the entity this instance belongs to updates. Server-side only. - * - * @param player The player entity that is updating - */ - public void onEntityUpdate(IPlayerAether player) - { - } - - /** - * Called when this instance is removed from a player. This is only called once per entity - * for the duration of the instance. In the event a player logs out or the entity containing - * this instance is destroyed, this method will not be called. Server-side only. - * - * @param player The player this instance was removed from - */ - public void onInstanceRemoved(IPlayerAether player) - { - } - - /** - * Called when this instance is added to a player. This is guaranteed to called exactly once, - * when the instance is attached to an entity. Server-side only. - * - * @param player The player this instance was added to - */ - public void onInstanceAdded(IPlayerAether player) - { - } - - /** - * Adds information about this instance to {@param label}, such as the stats - * it provides or a short description. Client-side only. - * - * @param label The {@link Collection} to add to - */ - @SideOnly(Side.CLIENT) - public abstract void addInformation(Collection<String> label, TextFormatting format1, TextFormatting format2); -} diff --git a/src/api/java/com/gildedgames/aether/api/items/equipment/effects/IEffectFactory.java b/src/api/java/com/gildedgames/aether/api/items/equipment/effects/IEffectFactory.java deleted file mode 100644 index 17b6ce72ae..0000000000 --- a/src/api/java/com/gildedgames/aether/api/items/equipment/effects/IEffectFactory.java +++ /dev/null @@ -1,31 +0,0 @@ -package com.gildedgames.aether.api.items.equipment.effects; - -import net.minecraft.util.ResourceLocation; - -/*** - * Creates an {@link EffectInstance} from the collection of {@link IEffectProvider} an entity has. - * - * When a {@link IEffectProvider} is added to or removed from an entity (via equipping or - * removing an item, usually), a new {@link EffectInstance} will be created to represent the - * updated effect, clearing the previous state of it. - * - * @param <T> The {@link IEffectProvider} for this factory - */ -public interface IEffectFactory<T extends IEffectProvider> -{ - /** - * Creates an {@link EffectInstance} of this effect from {@param instances}. - * - * @param pool The pool this instance will be created for - * @return The {@link EffectInstance} for the entity - */ - EffectInstance createInstance(IEffectPool<T> pool); - - /** - * The unique identifier used to link the factory a {@link IEffectProvider} uses. This - * should never change during runtime. - * - * @return The {@link ResourceLocation} representing this effect's unique identifier - */ - ResourceLocation getIdentifier(); -} diff --git a/src/api/java/com/gildedgames/aether/api/items/equipment/effects/IEffectPool.java b/src/api/java/com/gildedgames/aether/api/items/equipment/effects/IEffectPool.java deleted file mode 100644 index ffc24f3708..0000000000 --- a/src/api/java/com/gildedgames/aether/api/items/equipment/effects/IEffectPool.java +++ /dev/null @@ -1,38 +0,0 @@ -package com.gildedgames.aether.api.items.equipment.effects; - -import net.minecraft.item.ItemStack; - -import java.util.Collection; -import java.util.Optional; - -/** - * Manages the providers for a specific {@link IEffectFactory}. - */ -public interface IEffectPool<T extends IEffectProvider> -{ - /** - * Returns the {@link ItemStack} providing {@param instance} to the player. - * - * @param instance The effect instance - * @return The {@link ItemStack}, empty if none - */ - ItemStack getProvider(T instance); - - /** - * Returns the collection of active providers for this pool. - * @return A collection of {@link IEffectProvider} - */ - Collection<T> getActiveProviders(); - - /** - * Returns the {@link EffectInstance} that's currently owned by this pool. - * @return The {@link EffectInstance} of this pool, empty if it has no instance. - */ - Optional<EffectInstance> getInstance(); - - /** - * Returns whether or not the effect pool has providers. - * @return True if the pool has providers, otherwise false. - */ - boolean isEmpty(); -} diff --git a/src/api/java/com/gildedgames/aether/api/items/equipment/effects/IEffectPrecondition.java b/src/api/java/com/gildedgames/aether/api/items/equipment/effects/IEffectPrecondition.java deleted file mode 100644 index bc3004a3aa..0000000000 --- a/src/api/java/com/gildedgames/aether/api/items/equipment/effects/IEffectPrecondition.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.gildedgames.aether.api.items.equipment.effects; - -import com.gildedgames.aether.api.player.IPlayerAether; -import net.minecraft.item.ItemStack; - -public interface IEffectPrecondition -{ - /** - * Returns whether or not this effect can be applied to the entity. If this changes - * while the effect is currently applied, the equipment system will re-evaluate the - * entity's effects. - * - * @param player The {@link IPlayerAether} this provider will be applied to if the - * result is true. - * - * @param stack The {@link ItemStack} this provider belongs to, ItemStack.EMPTY if none. This - * will typically be non-empty unless the effect is being applied from - * another source by force. You should take care to handle an empty stack. - * - * @return True if this provider can provide an effect to {@param entity}, otherwise false. - */ - boolean canApply(IPlayerAether player, ItemStack stack); -} diff --git a/src/api/java/com/gildedgames/aether/api/items/equipment/effects/IEffectProvider.java b/src/api/java/com/gildedgames/aether/api/items/equipment/effects/IEffectProvider.java deleted file mode 100644 index a555aea43f..0000000000 --- a/src/api/java/com/gildedgames/aether/api/items/equipment/effects/IEffectProvider.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.gildedgames.aether.api.items.equipment.effects; - -import net.minecraft.util.ResourceLocation; - -/** - * Provides an effect to an entity. This class should never be mutable. - */ -public interface IEffectProvider -{ - /** - * Returns the unique identifier of this effect's {@link IEffectFactory}. - * - * @return The {@link ResourceLocation} which identifies the factory - */ - ResourceLocation getFactory(); - - /** - * Returns a copy of this provider. - */ - IEffectProvider copy(); -} diff --git a/src/api/java/com/gildedgames/aether/api/items/loot/Loot.java b/src/api/java/com/gildedgames/aether/api/items/loot/Loot.java deleted file mode 100644 index cdb6a90ea7..0000000000 --- a/src/api/java/com/gildedgames/aether/api/items/loot/Loot.java +++ /dev/null @@ -1,17 +0,0 @@ -package com.gildedgames.aether.api.items.loot; - -import net.minecraft.item.ItemStack; - -import java.util.Random; - -@Deprecated -// Will be replaced with vanilla's loot tables. -public interface Loot -{ - /** - * Selects a random {@link ItemStack} from this loot pool. - * @param random An instance of {@link Random} - * @return A non-empty {@link ItemStack} picked from the pool - */ - ItemStack select(Random random); -} diff --git a/src/api/java/com/gildedgames/aether/api/items/properties/IItemProperties.java b/src/api/java/com/gildedgames/aether/api/items/properties/IItemProperties.java deleted file mode 100644 index c65c30a6d8..0000000000 --- a/src/api/java/com/gildedgames/aether/api/items/properties/IItemProperties.java +++ /dev/null @@ -1,45 +0,0 @@ -package com.gildedgames.aether.api.items.properties; - -import com.gildedgames.aether.api.items.EffectActivator; -import com.gildedgames.aether.api.items.equipment.ItemEquipmentSlot; -import com.gildedgames.aether.api.items.equipment.effects.IEffectPrecondition; -import com.gildedgames.aether.api.items.equipment.effects.IEffectProvider; - -import javax.annotation.Nonnull; -import java.util.Collection; - -/** - * An immutable container for optional item properties, such as rarities and equipment effects. - */ -public interface IItemProperties -{ - /** - * @return The equipment slot this item uses. - */ - @Nonnull - ItemEquipmentSlot getEquipmentSlot(); - - /** - * @return The rarity of this item. - */ - @Nonnull - ItemRarity getRarity(); - - /** - * @return A collection of effect preconditions that are checked before applying effects - * to the player. - */ - Collection<IEffectPrecondition> getEffectPreconditions(); - - /** - * @return The collection of effect instances this item provides, empty if it provides none. - */ - @Nonnull - Collection<IEffectProvider> getEffectProviders(); - - /** - * @return The collection of effect activators that this item provides. This defines what activates the effects this item has. - */ - @Nonnull - Collection<EffectActivator> getEffectActivators(); -} diff --git a/src/api/java/com/gildedgames/aether/api/items/properties/ItemPropertiesBuilder.java b/src/api/java/com/gildedgames/aether/api/items/properties/ItemPropertiesBuilder.java deleted file mode 100644 index b00c476e0a..0000000000 --- a/src/api/java/com/gildedgames/aether/api/items/properties/ItemPropertiesBuilder.java +++ /dev/null @@ -1,112 +0,0 @@ -package com.gildedgames.aether.api.items.properties; - -import com.gildedgames.aether.api.items.EffectActivator; -import com.gildedgames.aether.api.items.equipment.ItemEquipmentSlot; -import com.gildedgames.aether.api.items.equipment.effects.IEffectPrecondition; -import com.gildedgames.aether.api.items.equipment.effects.IEffectProvider; -import org.apache.commons.lang3.Validate; - -import javax.annotation.Nonnull; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collection; -import java.util.Collections; - -public class ItemPropertiesBuilder -{ - private final Collection<IEffectProvider> effects = new ArrayList<>(); - - private final Collection<IEffectPrecondition> preconditions = new ArrayList<>(); - - private final Collection<EffectActivator> effectActivators = new ArrayList<>(); - - private ItemEquipmentSlot slot = ItemEquipmentSlot.NONE; - - private ItemRarity rarity = ItemRarity.NONE; - - /** - * Sets the rarity of this item. - * @param rarity The rarity of this item - */ - public ItemPropertiesBuilder withRarity(@Nonnull ItemRarity rarity) - { - Validate.notNull(rarity, "Rarity cannot be null, use ItemRarity#NONE"); - - this.rarity = rarity; - - return this; - } - - /** - * Sets the slot this equipment item will use and turns this item into equipment. - * @param slot The equipment slot this item will use - */ - public ItemPropertiesBuilder withSlot(@Nonnull ItemEquipmentSlot slot) - { - Validate.notNull("Equipment slot cannot be null, use ItemEquipmentSlot#NONE"); - - this.slot = slot; - - return this; - } - - /** - * Adds an {@link IEffectProvider} this equipment item will provide. - * @param effect The effect provider to add - */ - public ItemPropertiesBuilder withEffect(IEffectProvider effect) - { - this.effects.add(effect); - - return this; - } - - /** - * Adds an {@link IEffectPrecondition} to this item that will determine whether or - * not it can provide effects to an entity. - * @param precondition The precondition to add - */ - public ItemPropertiesBuilder withPrecondition(IEffectPrecondition precondition) - { - this.preconditions.add(precondition); - - return this; - } - - /** - * Adds {@link EffectActivator}s to this item that will determine when it will - * provide the effects the item has to an entity. - * @param effectActivators The effect activators to add - */ - public ItemPropertiesBuilder withEffectActivators(EffectActivator... effectActivators) - { - this.effectActivators.addAll(Arrays.asList(effectActivators)); - - return this; - } - - public Collection<IEffectProvider> getEffects() - { - return Collections.unmodifiableCollection(this.effects); - } - - public Collection<IEffectPrecondition> getPreconditions() - { - return Collections.unmodifiableCollection(this.preconditions); - } - - public Collection<EffectActivator> getEffectActivators() - { - return Collections.unmodifiableCollection(this.effectActivators); - } - - public ItemEquipmentSlot getSlot() - { - return this.slot; - } - - public ItemRarity getRarity() - { - return this.rarity; - } -} diff --git a/src/api/java/com/gildedgames/aether/api/items/properties/ItemRarity.java b/src/api/java/com/gildedgames/aether/api/items/properties/ItemRarity.java deleted file mode 100644 index bbd7663150..0000000000 --- a/src/api/java/com/gildedgames/aether/api/items/properties/ItemRarity.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.gildedgames.aether.api.items.properties; - -public enum ItemRarity -{ - NONE("item.rarity.none.name"), - COMMON("item.rarity.common.name"), - RARE("item.rarity.rare.name"), - EPIC("item.rarity.epic.name"), - MYTHIC("item.rarity.mythic.name"), - GODLY("item.rarity.godly.name"); - - private final String unlocalizedName; - - ItemRarity(String unlocalizedName) - { - this.unlocalizedName = unlocalizedName; - } - - public String getUnlocalizedName() - { - return this.unlocalizedName; - } -} diff --git a/src/api/java/com/gildedgames/aether/api/net/IGildedGamesAccountApi.java b/src/api/java/com/gildedgames/aether/api/net/IGildedGamesAccountApi.java deleted file mode 100644 index 6bcdeb7c04..0000000000 --- a/src/api/java/com/gildedgames/aether/api/net/IGildedGamesAccountApi.java +++ /dev/null @@ -1,11 +0,0 @@ -package com.gildedgames.aether.api.net; - -import com.gildedgames.aether.api.net.data.UserFeatures; - -import java.util.UUID; -import java.util.concurrent.Future; - -public interface IGildedGamesAccountApi -{ - Future<UserFeatures> retrieveUserFeatures(UUID uuid); -} \ No newline at end of file diff --git a/src/api/java/com/gildedgames/aether/api/net/data/UserFeatures.java b/src/api/java/com/gildedgames/aether/api/net/data/UserFeatures.java deleted file mode 100644 index f3248eb0db..0000000000 --- a/src/api/java/com/gildedgames/aether/api/net/data/UserFeatures.java +++ /dev/null @@ -1,12 +0,0 @@ -package com.gildedgames.aether.api.net.data; - -import com.google.gson.annotations.SerializedName; - -import java.util.ArrayList; -import java.util.List; - -public class UserFeatures -{ - @SerializedName("skins") - public List<String> skins = new ArrayList<>(); -} diff --git a/src/api/java/com/gildedgames/aether/api/patron/IPatronReward.java b/src/api/java/com/gildedgames/aether/api/patron/IPatronReward.java deleted file mode 100644 index cfa3dced88..0000000000 --- a/src/api/java/com/gildedgames/aether/api/patron/IPatronReward.java +++ /dev/null @@ -1,27 +0,0 @@ -package com.gildedgames.aether.api.patron; - -import com.gildedgames.aether.api.net.data.UserFeatures; -import net.minecraft.util.ResourceLocation; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; - -public interface IPatronReward -{ - - /** - * @return A 16x16 icon - */ - ResourceLocation getRewardIcon(); - - String getUnlocalizedName(); - - boolean isUnlocked(UserFeatures details); - - void onUse(); - - void onRemove(); - - @SideOnly(Side.CLIENT) - IPatronRewardRenderer getPreviewRenderer(); - -} diff --git a/src/api/java/com/gildedgames/aether/api/patron/IPatronRewardRenderer.java b/src/api/java/com/gildedgames/aether/api/patron/IPatronRewardRenderer.java deleted file mode 100644 index ea08088768..0000000000 --- a/src/api/java/com/gildedgames/aether/api/patron/IPatronRewardRenderer.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.gildedgames.aether.api.patron; - -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; - -public interface IPatronRewardRenderer -{ - @SideOnly(Side.CLIENT) - void renderInit(); - - @SideOnly(Side.CLIENT) - void renderPreview(int posX, int posY); -} diff --git a/src/api/java/com/gildedgames/aether/api/patron/PatronRewardRegistry.java b/src/api/java/com/gildedgames/aether/api/patron/PatronRewardRegistry.java deleted file mode 100644 index 15d3ff33d4..0000000000 --- a/src/api/java/com/gildedgames/aether/api/patron/PatronRewardRegistry.java +++ /dev/null @@ -1,36 +0,0 @@ -package com.gildedgames.aether.api.patron; - -import com.google.common.collect.BiMap; -import com.google.common.collect.HashBiMap; - -import java.util.Collection; - -public class PatronRewardRegistry -{ - private final BiMap<Integer, IPatronReward> rewards = HashBiMap.create(); - - public PatronRewardRegistry() - { - - } - - public void register(int id, IPatronReward reward) - { - this.rewards.put(id, reward); - } - - public <T extends IPatronReward> T get(int id) - { - return (T) this.rewards.get(id); - } - - public int get(IPatronReward reward) - { - return this.rewards.inverse().get(reward); - } - - public Collection<IPatronReward> getRewards() - { - return this.rewards.values(); - } -} diff --git a/src/api/java/com/gildedgames/aether/api/patron/PatronUnlocks.java b/src/api/java/com/gildedgames/aether/api/patron/PatronUnlocks.java deleted file mode 100644 index 6d797124c5..0000000000 --- a/src/api/java/com/gildedgames/aether/api/patron/PatronUnlocks.java +++ /dev/null @@ -1,12 +0,0 @@ -package com.gildedgames.aether.api.patron; - -import com.gildedgames.aether.api.net.data.UserFeatures; -import com.gildedgames.aether.api.util.FunctionBoolean; - -public class PatronUnlocks -{ - public static FunctionBoolean<UserFeatures> hasSkin(String name) - { - return p -> p.skins.contains(name); - } -} diff --git a/src/api/java/com/gildedgames/aether/api/player/ICurrencyModule.java b/src/api/java/com/gildedgames/aether/api/player/ICurrencyModule.java deleted file mode 100644 index ac75f2d8d6..0000000000 --- a/src/api/java/com/gildedgames/aether/api/player/ICurrencyModule.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.gildedgames.aether.api.player; - -import com.gildedgames.aether.api.shop.ICurrencyListener; - -public interface ICurrencyModule -{ - long getCurrencyValue(); - - void add(long gilt); - - void take(long gilt); - - void listen(ICurrencyListener listener); - - boolean unlisten(ICurrencyListener listener); -} diff --git a/src/api/java/com/gildedgames/aether/api/player/IEquipmentModule.java b/src/api/java/com/gildedgames/aether/api/player/IEquipmentModule.java deleted file mode 100644 index e3f9f0748e..0000000000 --- a/src/api/java/com/gildedgames/aether/api/player/IEquipmentModule.java +++ /dev/null @@ -1,35 +0,0 @@ -package com.gildedgames.aether.api.player; - -import com.gildedgames.aether.api.items.equipment.effects.IEffectFactory; -import com.gildedgames.aether.api.items.equipment.effects.IEffectPool; -import com.gildedgames.aether.api.items.equipment.effects.IEffectProvider; -import com.gildedgames.aether.api.player.inventory.IInventoryEquipment; -import net.minecraft.util.ResourceLocation; - -import java.util.Optional; - -public interface IEquipmentModule -{ - /** - * Returns the player's equipment inventory. - * - * @return The player's {@link IInventoryEquipment} - */ - IInventoryEquipment getInventory(); - - /** - * Returns the active {@link IEffectPool} for the effect ID. - * - * @param id The resource name of the effect - * @return The {@link IEffectPool}, empty if there is no active pool for the effect - */ - Optional<IEffectPool<IEffectProvider>> getEffectPool(ResourceLocation id); - - /** - * Checks whether or not a player currently has an active effect for the factory {@param effect}. - * - * @param effect The factory to check - * @return True if the player has an active instance of the effect, otherwise false. - */ - boolean isEffectActive(IEffectFactory<?> effect); -} diff --git a/src/api/java/com/gildedgames/aether/api/player/IPlayerAether.java b/src/api/java/com/gildedgames/aether/api/player/IPlayerAether.java deleted file mode 100644 index 9377e9da7e..0000000000 --- a/src/api/java/com/gildedgames/aether/api/player/IPlayerAether.java +++ /dev/null @@ -1,40 +0,0 @@ -package com.gildedgames.aether.api.player; - -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.nbt.NBTTagCompound; - -import javax.annotation.Nonnull; - -/** - * The Aether's extended player capability that manages all Aether-related additions - * and states. - */ -public interface IPlayerAether -{ - /** - * @return The {@link EntityPlayer} entity this capability belongs to. - */ - EntityPlayer getEntity(); - - void registerModule(@Nonnull IPlayerAetherModule module); - - @Nonnull - <T extends IPlayerAetherModule> T getModule(@Nonnull Class<T> clazz); - - /** - * @return This player's mining speed modifier. - */ - float getMiningSpeedMultiplier(); - - /** - * Writes this capability to {@param tag}. - * @param tag The {@link NBTTagCompound} to write to - */ - void write(NBTTagCompound tag); - - /** - * Updates this capability from {@param tag}. - * @param tag The {@link NBTTagCompound} to read from - */ - void read(NBTTagCompound tag); -} diff --git a/src/api/java/com/gildedgames/aether/api/player/IPlayerAetherModule.java b/src/api/java/com/gildedgames/aether/api/player/IPlayerAetherModule.java deleted file mode 100644 index 27b5100216..0000000000 --- a/src/api/java/com/gildedgames/aether/api/player/IPlayerAetherModule.java +++ /dev/null @@ -1,34 +0,0 @@ -package com.gildedgames.aether.api.player; - -import com.gildedgames.orbis.lib.util.mc.NBT; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.util.ResourceLocation; -import net.minecraft.world.World; -import net.minecraftforge.event.entity.living.LivingDeathEvent; -import net.minecraftforge.event.entity.player.PlayerDropsEvent; -import net.minecraftforge.fml.common.gameevent.PlayerEvent; -import net.minecraftforge.fml.common.gameevent.TickEvent; - -public interface IPlayerAetherModule -{ - void onDrops(PlayerDropsEvent event); - - void onDeath(LivingDeathEvent event); - - void onRespawn(PlayerEvent.PlayerRespawnEvent event); - - void tickStart(TickEvent.PlayerTickEvent event); - - void tickEnd(TickEvent.PlayerTickEvent event); - - IPlayerAether getPlayer(); - - EntityPlayer getEntity(); - - World getWorld(); - - interface Serializable extends NBT - { - ResourceLocation getIdentifier(); - } -} diff --git a/src/api/java/com/gildedgames/aether/api/player/IPlayerConditionModule.java b/src/api/java/com/gildedgames/aether/api/player/IPlayerConditionModule.java deleted file mode 100644 index 5003a4b422..0000000000 --- a/src/api/java/com/gildedgames/aether/api/player/IPlayerConditionModule.java +++ /dev/null @@ -1,17 +0,0 @@ -package com.gildedgames.aether.api.player; - -import com.gildedgames.aether.api.player.conditions.IConditionResolution; -import com.gildedgames.aether.api.travellers_guidebook.ITGEntry; -import com.gildedgames.orbis.lib.util.mc.NBT; -import net.minecraft.util.ResourceLocation; - -public interface IPlayerConditionModule extends NBT -{ - void flagCondition(ResourceLocation conditionUniqueIdentifier); - - boolean isConditionFlagged(ResourceLocation conditionUniqueIdentifier); - - boolean areConditionsFlagged(final IConditionResolution conditionResolution, ResourceLocation... conditionUniqueIdentifiers); - - boolean isEntryUnlocked(final ITGEntry entry); -} diff --git a/src/api/java/com/gildedgames/aether/api/player/conditions/ConditionResolutionDeserializer.java b/src/api/java/com/gildedgames/aether/api/player/conditions/ConditionResolutionDeserializer.java deleted file mode 100644 index d99591693c..0000000000 --- a/src/api/java/com/gildedgames/aether/api/player/conditions/ConditionResolutionDeserializer.java +++ /dev/null @@ -1,36 +0,0 @@ -package com.gildedgames.aether.api.player.conditions; - -import com.gildedgames.aether.api.player.conditions.resolutions.ConditionResolutionRequireAll; -import com.gildedgames.aether.api.player.conditions.resolutions.ConditionResolutionRequireAny; -import com.google.gson.JsonDeserializationContext; -import com.google.gson.JsonDeserializer; -import com.google.gson.JsonElement; -import com.google.gson.JsonParseException; - -import java.lang.reflect.Type; -import java.util.HashMap; - -public class ConditionResolutionDeserializer implements JsonDeserializer<IConditionResolution> -{ - private final HashMap<String, Class<? extends IConditionResolution>> resolutions = new HashMap<>(); - - public ConditionResolutionDeserializer() - { - this.resolutions.put("requireAll", ConditionResolutionRequireAll.class); - this.resolutions.put("requireAny", ConditionResolutionRequireAny.class); - } - - @Override - public IConditionResolution deserialize(final JsonElement json, final Type typeOfT, final JsonDeserializationContext context) throws JsonParseException - { - final String type = json.getAsString(); - final Class clazz = this.resolutions.get(type); - - if (clazz == null) - { - throw new JsonParseException("Invalid condition resolution type " + type); - } - - return context.deserialize(json, this.resolutions.get(type)); - } -} diff --git a/src/api/java/com/gildedgames/aether/api/player/conditions/IConditionResolution.java b/src/api/java/com/gildedgames/aether/api/player/conditions/IConditionResolution.java deleted file mode 100644 index 85c9910e2f..0000000000 --- a/src/api/java/com/gildedgames/aether/api/player/conditions/IConditionResolution.java +++ /dev/null @@ -1,15 +0,0 @@ -package com.gildedgames.aether.api.player.conditions; - -import com.gildedgames.aether.api.player.conditions.resolutions.ConditionResolutionRequireAll; -import com.gildedgames.aether.api.player.conditions.resolutions.ConditionResolutionRequireAny; -import net.minecraft.util.ResourceLocation; - -import java.util.function.Function; - -public interface IConditionResolution -{ - IConditionResolution REQUIRE_ALL = new ConditionResolutionRequireAll(); - IConditionResolution REQUIRE_ANY = new ConditionResolutionRequireAny(); - - boolean areConditionsMet(ResourceLocation[] conditionIDs, Function<ResourceLocation, Boolean> isConditionMet); -} diff --git a/src/api/java/com/gildedgames/aether/api/player/conditions/IPlayerCondition.java b/src/api/java/com/gildedgames/aether/api/player/conditions/IPlayerCondition.java deleted file mode 100644 index 712592fb2c..0000000000 --- a/src/api/java/com/gildedgames/aether/api/player/conditions/IPlayerCondition.java +++ /dev/null @@ -1,41 +0,0 @@ -package com.gildedgames.aether.api.player.conditions; - -import com.gildedgames.aether.api.player.conditions.types.IPlayerConditionListener; -import net.minecraft.util.ResourceLocation; - -public interface IPlayerCondition -{ - /** - * This identifier must be globally unique, representing both the - * base condition and the unique data that this particular condition - * is handling. - * - * E.G: Let's say you have a "SeeEntity" condition, and the entity - * that this particular condition is looking for is a "Pig". The unique - * identifier could be: - * - * seeEntity:entity.pig - * @return The unique identifier for this condition and its sub data. - */ - ResourceLocation getUniqueIdentifier(); - - void listen(IPlayerConditionListener listener); - - void unlisten(IPlayerConditionListener listener); - - /** - * Called when this condition is tracked by the - * {@link IPlayerConditionTracker} - * - * Should subscribe to any events needed. - */ - void onTracked(); - - /** - * Called when this condition is no longer tracked by the - * {@link IPlayerConditionTracker} - * - * Should unsubscribe from any events needed. - */ - void onUntracked(); -} diff --git a/src/api/java/com/gildedgames/aether/api/player/conditions/IPlayerConditionTracker.java b/src/api/java/com/gildedgames/aether/api/player/conditions/IPlayerConditionTracker.java deleted file mode 100644 index 29fcce274a..0000000000 --- a/src/api/java/com/gildedgames/aether/api/player/conditions/IPlayerConditionTracker.java +++ /dev/null @@ -1,20 +0,0 @@ -package com.gildedgames.aether.api.player.conditions; - -import java.util.Collection; - -public interface IPlayerConditionTracker -{ - /** - * Should only register conditions that aren't already registered. - * - * @param conditions The conditions you want to actively register - * to the manager. - * @return The unique identifiers for the registered conditions. - */ - void trackConditions(Collection<IPlayerCondition> conditions); - - /** - * Should untrack all conditions within. - */ - void unload(); -} diff --git a/src/api/java/com/gildedgames/aether/api/player/conditions/PlayerConditionUtils.java b/src/api/java/com/gildedgames/aether/api/player/conditions/PlayerConditionUtils.java deleted file mode 100644 index a0076a6cb8..0000000000 --- a/src/api/java/com/gildedgames/aether/api/player/conditions/PlayerConditionUtils.java +++ /dev/null @@ -1,30 +0,0 @@ -package com.gildedgames.aether.api.player.conditions; - -import com.google.common.collect.Lists; -import net.minecraft.util.ResourceLocation; - -import java.util.Collection; -import java.util.List; - -public class PlayerConditionUtils -{ - /** - * Assemble all ids of conditions and return them. - */ - public static Collection<ResourceLocation> getIDs(final Collection<IPlayerCondition> conditions) - { - final List<ResourceLocation> conditionIDs = Lists.newArrayList(); - - for (final IPlayerCondition c : conditions) - { - final ResourceLocation id = c.getUniqueIdentifier(); - - if (!conditionIDs.contains(id)) - { - conditionIDs.add(c.getUniqueIdentifier()); - } - } - - return conditionIDs; - } -} diff --git a/src/api/java/com/gildedgames/aether/api/player/conditions/events/ISeeEntityEventsListener.java b/src/api/java/com/gildedgames/aether/api/player/conditions/events/ISeeEntityEventsListener.java deleted file mode 100644 index 710a345880..0000000000 --- a/src/api/java/com/gildedgames/aether/api/player/conditions/events/ISeeEntityEventsListener.java +++ /dev/null @@ -1,9 +0,0 @@ -package com.gildedgames.aether.api.player.conditions.events; - -import net.minecraft.entity.Entity; -import net.minecraft.entity.player.EntityPlayer; - -public interface ISeeEntityEventsListener -{ - void onSeeEntity(Entity entity, EntityPlayer player); -} diff --git a/src/api/java/com/gildedgames/aether/api/player/conditions/events/SeeEntityEvents.java b/src/api/java/com/gildedgames/aether/api/player/conditions/events/SeeEntityEvents.java deleted file mode 100644 index 8a0a99452b..0000000000 --- a/src/api/java/com/gildedgames/aether/api/player/conditions/events/SeeEntityEvents.java +++ /dev/null @@ -1,71 +0,0 @@ -package com.gildedgames.aether.api.player.conditions.events; - -import com.google.common.collect.Lists; -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.util.math.AxisAlignedBB; -import net.minecraftforge.event.entity.living.LivingEvent; -import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; - -import java.util.List; - -public class SeeEntityEvents -{ - private static final int SEE_ENTITY_RADIUS = 10; - - private final List<ISeeEntityEventsListener> listeners = Lists.newArrayList(); - - public SeeEntityEvents() - { - - } - - public void listen(final ISeeEntityEventsListener listener) - { - if (!this.listeners.contains(listener)) - { - this.listeners.add(listener); - } - } - - public void unlisten(final ISeeEntityEventsListener listener) - { - this.listeners.remove(listener); - } - - @SubscribeEvent - public void onLivingEntityUpdate(final LivingEvent.LivingUpdateEvent event) - { - final Entity entity = event.getEntity(); - - if (!entity.world.isRemote && entity instanceof EntityPlayer) - { - final EntityPlayer player = ((EntityPlayer) entity); - - final double minX = entity.posX - SEE_ENTITY_RADIUS; - final double minY = entity.posY - SEE_ENTITY_RADIUS; - final double minZ = entity.posZ - SEE_ENTITY_RADIUS; - - final double maxX = entity.posX + SEE_ENTITY_RADIUS; - final double maxY = entity.posY + SEE_ENTITY_RADIUS; - final double maxZ = entity.posZ + SEE_ENTITY_RADIUS; - - final AxisAlignedBB checkingArea = new AxisAlignedBB(minX, minY, minZ, maxX, maxY, maxZ); - - final List<EntityLivingBase> entitiesInSight = entity.world.getEntitiesWithinAABB(EntityLivingBase.class, checkingArea); - - for (final EntityLivingBase e : entitiesInSight) - { - if (player.canEntityBeSeen(e)) - { - for (final ISeeEntityEventsListener l : this.listeners) - { - l.onSeeEntity(e, player); - } - } - } - } - } - -} diff --git a/src/api/java/com/gildedgames/aether/api/player/conditions/resolutions/ConditionResolutionRequireAll.java b/src/api/java/com/gildedgames/aether/api/player/conditions/resolutions/ConditionResolutionRequireAll.java deleted file mode 100644 index a6f51f4fee..0000000000 --- a/src/api/java/com/gildedgames/aether/api/player/conditions/resolutions/ConditionResolutionRequireAll.java +++ /dev/null @@ -1,38 +0,0 @@ -package com.gildedgames.aether.api.player.conditions.resolutions; - -import com.gildedgames.aether.api.player.conditions.IConditionResolution; -import com.google.gson.JsonDeserializationContext; -import com.google.gson.JsonDeserializer; -import com.google.gson.JsonElement; -import com.google.gson.JsonParseException; -import net.minecraft.util.ResourceLocation; - -import java.lang.reflect.Type; -import java.util.function.Function; - -public class ConditionResolutionRequireAll implements IConditionResolution -{ - @Override - public boolean areConditionsMet(final ResourceLocation[] conditionIDs, final Function<ResourceLocation, Boolean> isConditionMet) - { - for (final ResourceLocation condition : conditionIDs) - { - if (!isConditionMet.apply(condition)) - { - return false; - } - } - - return true; - } - - public static class Deserializer implements JsonDeserializer<ConditionResolutionRequireAll> - { - @Override - public ConditionResolutionRequireAll deserialize(final JsonElement json, final Type typeOfT, final JsonDeserializationContext context) - throws JsonParseException - { - return new ConditionResolutionRequireAll(); - } - } -} diff --git a/src/api/java/com/gildedgames/aether/api/player/conditions/resolutions/ConditionResolutionRequireAny.java b/src/api/java/com/gildedgames/aether/api/player/conditions/resolutions/ConditionResolutionRequireAny.java deleted file mode 100644 index b34dfd149b..0000000000 --- a/src/api/java/com/gildedgames/aether/api/player/conditions/resolutions/ConditionResolutionRequireAny.java +++ /dev/null @@ -1,38 +0,0 @@ -package com.gildedgames.aether.api.player.conditions.resolutions; - -import com.gildedgames.aether.api.player.conditions.IConditionResolution; -import com.google.gson.JsonDeserializationContext; -import com.google.gson.JsonDeserializer; -import com.google.gson.JsonElement; -import com.google.gson.JsonParseException; -import net.minecraft.util.ResourceLocation; - -import java.lang.reflect.Type; -import java.util.function.Function; - -public class ConditionResolutionRequireAny implements IConditionResolution -{ - @Override - public boolean areConditionsMet(final ResourceLocation[] conditionIDs, final Function<ResourceLocation, Boolean> isConditionMet) - { - for (final ResourceLocation condition : conditionIDs) - { - if (isConditionMet.apply(condition)) - { - return true; - } - } - - return false; - } - - public static class Deserializer implements JsonDeserializer<ConditionResolutionRequireAny> - { - @Override - public ConditionResolutionRequireAny deserialize(final JsonElement json, final Type typeOfT, final JsonDeserializationContext context) - throws JsonParseException - { - return new ConditionResolutionRequireAny(); - } - } -} diff --git a/src/api/java/com/gildedgames/aether/api/player/conditions/types/IPlayerConditionEntity.java b/src/api/java/com/gildedgames/aether/api/player/conditions/types/IPlayerConditionEntity.java deleted file mode 100644 index e08881eaa5..0000000000 --- a/src/api/java/com/gildedgames/aether/api/player/conditions/types/IPlayerConditionEntity.java +++ /dev/null @@ -1,12 +0,0 @@ -package com.gildedgames.aether.api.player.conditions.types; - -import com.gildedgames.aether.api.player.conditions.IPlayerCondition; -import net.minecraft.util.ResourceLocation; -import net.minecraftforge.fml.common.registry.EntityEntry; - -public interface IPlayerConditionEntity extends IPlayerCondition -{ - ResourceLocation getEntityId(); - - EntityEntry getEntityEntry(); -} diff --git a/src/api/java/com/gildedgames/aether/api/player/conditions/types/IPlayerConditionListener.java b/src/api/java/com/gildedgames/aether/api/player/conditions/types/IPlayerConditionListener.java deleted file mode 100644 index 53357d005b..0000000000 --- a/src/api/java/com/gildedgames/aether/api/player/conditions/types/IPlayerConditionListener.java +++ /dev/null @@ -1,9 +0,0 @@ -package com.gildedgames.aether.api.player.conditions.types; - -import com.gildedgames.aether.api.player.conditions.IPlayerCondition; -import net.minecraft.entity.player.EntityPlayer; - -public interface IPlayerConditionListener -{ - void onTriggered(IPlayerCondition condition, EntityPlayer player); -} diff --git a/src/api/java/com/gildedgames/aether/api/player/inventory/IInventoryEquipment.java b/src/api/java/com/gildedgames/aether/api/player/inventory/IInventoryEquipment.java deleted file mode 100644 index 6fba75cb2c..0000000000 --- a/src/api/java/com/gildedgames/aether/api/player/inventory/IInventoryEquipment.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.gildedgames.aether.api.player.inventory; - -import com.gildedgames.aether.api.items.equipment.ItemEquipmentSlot; -import com.gildedgames.orbis.lib.util.mc.NBT; -import net.minecraft.inventory.IInventory; - -public interface IInventoryEquipment extends IInventory, NBT -{ - /** - * Returns the slot ID of the first available inventory slot for equipment of {@param type}. - * - * @param type The slot type to search for - * @return A positive integer corresponding to next available inventory slot. Returns -1 if there are no eligible slots. - */ - int getNextEmptySlotForType(ItemEquipmentSlot type); -} diff --git a/src/api/java/com/gildedgames/aether/api/recipes/IIndexableRecipe.java b/src/api/java/com/gildedgames/aether/api/recipes/IIndexableRecipe.java deleted file mode 100644 index d08b2b9c90..0000000000 --- a/src/api/java/com/gildedgames/aether/api/recipes/IIndexableRecipe.java +++ /dev/null @@ -1,35 +0,0 @@ -package com.gildedgames.aether.api.recipes; - -import com.gildedgames.aether.api.util.ItemMetaPair; -import net.minecraft.item.ItemStack; -import net.minecraft.item.crafting.Ingredient; -import net.minecraft.util.NonNullList; - -import java.util.Collection; -import java.util.List; - -/** - * Implemented to provide an abstract way of looking into other recipes from - * other locations. This can be implemented as either a wrapper or directly by - * your recipe class. - */ -public interface IIndexableRecipe -{ - /** - * Returns a {@link List} of Ingredients in crafting matrix order. - * @return The recipe's matrix. - */ - NonNullList<Ingredient> getCraftingMatrix(); - - /** - * Returns the collection of unique items this recipe requires to be crafted. - * @return A non-empty collection of unique items this recipe requires as input - */ - Collection<ItemMetaPair> getRecipeItems(); - - /** - * Returns the output {@link ItemStack} this recipe will return when it is crafted. - * @return An {@link ItemStack} representing this recipe's output - */ - ItemStack getCraftingResult(); -} diff --git a/src/api/java/com/gildedgames/aether/api/recipes/altar/IAltarRecipe.java b/src/api/java/com/gildedgames/aether/api/recipes/altar/IAltarRecipe.java deleted file mode 100644 index a0de6e57b1..0000000000 --- a/src/api/java/com/gildedgames/aether/api/recipes/altar/IAltarRecipe.java +++ /dev/null @@ -1,45 +0,0 @@ -package com.gildedgames.aether.api.recipes.altar; - -import net.minecraft.item.ItemStack; - -public interface IAltarRecipe -{ - /** - * Used internally by the Altar to search for matching recipes. - * - * @param stack The {@link ItemStack} on the Altar. - * @return True if this recipe accepts this item. - */ - boolean matchesInput(ItemStack stack); - - /** - * Used internally by the Altar to search for matching recipes. - * - * @param stack The {@link ItemStack} on the Altar. - * @return True if this recipe accepts this item. - */ - boolean matchesOutput(ItemStack stack); - - /** - * Used internally to determine how much Ambrosium this recipe will use upon completion with - * the {@param stack}. - * - * @param stack The {@link ItemStack} on the Altar. - * @return The amount of Ambrosium the Altar should consume when this recipe is completed. - */ - int getAmbrosiumCost(ItemStack stack); - - /** - * Returns the output {@link ItemStack} this recipe will create upon completion with the - * {@param stack}. - * - * @param stack The {@link ItemStack} on the Altar. - * @return The output of this recipe when completed. - */ - ItemStack getOutput(ItemStack stack); - - /** - * @return The inputs for this recipe. - */ - ItemStack getInput(); -} diff --git a/src/api/java/com/gildedgames/aether/api/recipes/altar/IAltarRecipeRegistry.java b/src/api/java/com/gildedgames/aether/api/recipes/altar/IAltarRecipeRegistry.java deleted file mode 100644 index 0f1b01aea1..0000000000 --- a/src/api/java/com/gildedgames/aether/api/recipes/altar/IAltarRecipeRegistry.java +++ /dev/null @@ -1,26 +0,0 @@ -package com.gildedgames.aether.api.recipes.altar; - -import net.minecraft.item.ItemStack; - -public interface IAltarRecipeRegistry -{ - /** - * Registers an {@link IAltarRecipe} with the registry. - * @param recipe The recipe to register - */ - void registerAltarRecipe(IAltarRecipe recipe); - - /** - * Returns the first matching recipe that accepts {@param stack} as input. - * @param stack The input stack - * @return The first matching recipe, null if none match. - */ - IAltarRecipe getMatchingRecipeFromInput(ItemStack stack); - - /** - * Returns the first matching recipe that accepts {@param stack} as output. - * @param stack The output stack - * @return The first matching recipe, null if none match. - */ - IAltarRecipe getMatchingRecipeFromOutput(ItemStack stack); -} diff --git a/src/api/java/com/gildedgames/aether/api/recipes/simple/ISimpleCraftingRegistry.java b/src/api/java/com/gildedgames/aether/api/recipes/simple/ISimpleCraftingRegistry.java deleted file mode 100644 index 1a792d6e1a..0000000000 --- a/src/api/java/com/gildedgames/aether/api/recipes/simple/ISimpleCraftingRegistry.java +++ /dev/null @@ -1,18 +0,0 @@ -package com.gildedgames.aether.api.recipes.simple; - -import java.util.Collection; - -public interface ISimpleCraftingRegistry -{ - - Collection<ISimpleRecipe> getAllRecipes(); - - void registerRecipe(ISimpleRecipe recipe); - - ISimpleRecipe getRecipeFromID(int id); - - int getIDFromRecipe(ISimpleRecipe recipe); - - Collection<ISimpleRecipeGroup> getRecipesFromRequirement(Object req); - -} diff --git a/src/api/java/com/gildedgames/aether/api/recipes/simple/ISimpleRecipe.java b/src/api/java/com/gildedgames/aether/api/recipes/simple/ISimpleRecipe.java deleted file mode 100644 index d150ce33d1..0000000000 --- a/src/api/java/com/gildedgames/aether/api/recipes/simple/ISimpleRecipe.java +++ /dev/null @@ -1,12 +0,0 @@ -package com.gildedgames.aether.api.recipes.simple; - -import net.minecraft.item.ItemStack; - -public interface ISimpleRecipe -{ - - Object[] getRequired(); - - ItemStack getResult(); - -} diff --git a/src/api/java/com/gildedgames/aether/api/recipes/simple/ISimpleRecipeGroup.java b/src/api/java/com/gildedgames/aether/api/recipes/simple/ISimpleRecipeGroup.java deleted file mode 100644 index ec3583cd12..0000000000 --- a/src/api/java/com/gildedgames/aether/api/recipes/simple/ISimpleRecipeGroup.java +++ /dev/null @@ -1,12 +0,0 @@ -package com.gildedgames.aether.api.recipes.simple; - -import java.util.Collection; - -public interface ISimpleRecipeGroup -{ - - Collection<ISimpleRecipe> getRecipes(); - - void addRecipe(ISimpleRecipe recipe); - -} diff --git a/src/api/java/com/gildedgames/aether/api/registrar/AbstractRegistrar.java b/src/api/java/com/gildedgames/aether/api/registrar/AbstractRegistrar.java deleted file mode 100644 index 04da5d53f2..0000000000 --- a/src/api/java/com/gildedgames/aether/api/registrar/AbstractRegistrar.java +++ /dev/null @@ -1,17 +0,0 @@ -package com.gildedgames.aether.api.registrar; - -import javax.annotation.Nonnull; - -public abstract class AbstractRegistrar -{ - /** - * This method doesn't make much sense at first glance. We're using it to trick IDEs into thinking - * that the fields above will *not* be set to null by annotating this method as never to be null. - */ - @SuppressWarnings("ConstantConditions") - @Nonnull - protected static <T> T getDefault() - { - return null; - } -} diff --git a/src/api/java/com/gildedgames/aether/api/registrar/BiomesAether.java b/src/api/java/com/gildedgames/aether/api/registrar/BiomesAether.java deleted file mode 100644 index cef08e1e1c..0000000000 --- a/src/api/java/com/gildedgames/aether/api/registrar/BiomesAether.java +++ /dev/null @@ -1,29 +0,0 @@ -package com.gildedgames.aether.api.registrar; - -import net.minecraft.world.biome.Biome; -import net.minecraftforge.fml.common.registry.GameRegistry; - -@GameRegistry.ObjectHolder("aether") -public class BiomesAether extends AbstractRegistrar -{ - @GameRegistry.ObjectHolder("aether_highlands") - public static final Biome HIGHLANDS = getDefault(); - - @GameRegistry.ObjectHolder("aether_magnetic_hills") - public static final Biome MAGNETIC_HILLS = getDefault(); - - @GameRegistry.ObjectHolder("aether_arctic_peaks") - public static final Biome ARCTIC_PEAKS = getDefault(); - - @GameRegistry.ObjectHolder("aether_forgotten_highlands") - public static final Biome FORGOTTEN_HIGHLANDS = getDefault(); - - @GameRegistry.ObjectHolder("aether_irradiated_forests") - public static final Biome IRRADIATED_FORESTS = getDefault(); - - @GameRegistry.ObjectHolder("aether_void") - public static final Biome VOID = getDefault(); - - @GameRegistry.ObjectHolder("instanced_zone") - public static final Biome INSTANCED_ZONE = getDefault(); -} diff --git a/src/api/java/com/gildedgames/aether/api/registrar/BlocksAether.java b/src/api/java/com/gildedgames/aether/api/registrar/BlocksAether.java deleted file mode 100644 index d0151b3f55..0000000000 --- a/src/api/java/com/gildedgames/aether/api/registrar/BlocksAether.java +++ /dev/null @@ -1,433 +0,0 @@ -package com.gildedgames.aether.api.registrar; - -import net.minecraft.block.Block; -import net.minecraftforge.fml.common.registry.GameRegistry; - -@SuppressWarnings("SpellCheckingInspection") -@GameRegistry.ObjectHolder("aether") -public class BlocksAether extends AbstractRegistrar -{ - public static final Block aercloud = getDefault(); - - public static final Block aether_crafting_table = getDefault(); - - public static final Block aether_dirt = getDefault(); - - public static final Block aether_flower = getDefault(); - - public static final Block aether_grass = getDefault(); - - public static final Block aether_portal = getDefault(); - - public static final Block aether_teleporter = getDefault(); - - public static final Block agiosite = getDefault(); - - public static final Block agiosite_brick = getDefault(); - - public static final Block agiosite_brick_decorative = getDefault(); - - public static final Block agiosite_brick_slab = getDefault(); - - public static final Block agiosite_brick_stairs = getDefault(); - - public static final Block agiosite_brick_wall = getDefault(); - - public static final Block agiosite_pillar = getDefault(); - - public static final Block agiosite_slab = getDefault(); - - public static final Block agiosite_stairs = getDefault(); - - public static final Block agiosite_wall = getDefault(); - - public static final Block altar = getDefault(); - - public static final Block amberoot_leaves = getDefault(); - - public static final Block ambrosium_ore = getDefault(); - - public static final Block ambrosium_torch = getDefault(); - - public static final Block arctic_spikespring = getDefault(); - - public static final Block arkenium_door = getDefault(); - - public static final Block arkenium_ore = getDefault(); - - public static final Block barkshroom = getDefault(); - - public static final Block blue_dark_skyroot_leaves = getDefault(); - - public static final Block blue_light_skyroot_leaves = getDefault(); - - public static final Block blue_skyroot_leaves = getDefault(); - - public static final Block blue_swingtip = getDefault(); - - public static final Block blueberry_bush = getDefault(); - - public static final Block brettl_plant = getDefault(); - - public static final Block candy_cane_block = getDefault(); - - public static final Block candy_cane_wall = getDefault(); - - public static final Block cloudwool_block = getDefault(); - - public static final Block cloudwool_carpet = getDefault(); - - public static final Block crude_scatterglass = getDefault(); - - public static final Block crude_scatterglass_decorative = getDefault(); - - public static final Block crude_scatterglass_pane = getDefault(); - - public static final Block crude_scatterglass_pane_decorative = getDefault(); - - public static final Block dark_blue_dark_skyroot_leaves = getDefault(); - - public static final Block dark_blue_light_skyroot_leaves = getDefault(); - - public static final Block dark_blue_skyroot_leaves = getDefault(); - - public static final Block dark_skyroot_beam = getDefault(); - - public static final Block dark_skyroot_decorative = getDefault(); - - public static final Block dark_skyroot_log = getDefault(); - - public static final Block dark_skyroot_planks = getDefault(); - - public static final Block faded_holystone_brick = getDefault(); - - public static final Block faded_holystone_brick_decorative = getDefault(); - - public static final Block faded_holystone_brick_slab = getDefault(); - - public static final Block faded_holystone_brick_stairs = getDefault(); - - public static final Block faded_holystone_pillar = getDefault(); - - public static final Block faded_holystone_brick_wall = getDefault(); - - public static final Block ferrosite = getDefault(); - - public static final Block ferrosite_sand = getDefault(); - - public static final Block forgotten_rose = getDefault(); - - public static final Block golden_oak_log = getDefault(); - - public static final Block gravitite_block = getDefault(); - - public static final Block gravitite_ore = getDefault(); - - public static final Block greatroot_button = getDefault(); - - public static final Block greatroot_fence = getDefault(); - - public static final Block greatroot_fence_gate = getDefault(); - - public static final Block greatroot_log_wall = getDefault(); - - public static final Block greatroot_pressure_plate = getDefault(); - - public static final Block greatroot_sapling = getDefault(); - - public static final Block greatroot_slab = getDefault(); - - public static final Block greatroot_stairs = getDefault(); - - public static final Block green_dark_skyroot_leaves = getDefault(); - - public static final Block green_light_skyroot_leaves = getDefault(); - - public static final Block green_skyroot_leaves = getDefault(); - - public static final Block green_swingtip = getDefault(); - - public static final Block hellfirestone_brick = getDefault(); - - public static final Block hellfirestone_brick_decorative = getDefault(); - - public static final Block hellfirestone_brick_slab = getDefault(); - - public static final Block hellfirestone_brick_stairs = getDefault(); - - public static final Block hellfirestone_brick_wall = getDefault(); - - public static final Block hellfirestone_lantern = getDefault(); - - public static final Block hellfirestone_pillar = getDefault(); - - public static final Block highlands_bush = getDefault(); - - public static final Block highlands_ice = getDefault(); - - public static final Block highlands_ice_crystal = getDefault(); - - public static final Block highlands_packed_ice = getDefault(); - - public static final Block highlands_snow = getDefault(); - - public static final Block highlands_snow_layer = getDefault(); - - public static final Block highlands_tulips = getDefault(); - - public static final Block holystone = getDefault(); - - public static final Block holystone_bookshelf = getDefault(); - - public static final Block holystone_brick = getDefault(); - - public static final Block holystone_brick_decorative = getDefault(); - - public static final Block holystone_brick_slab = getDefault(); - - public static final Block holystone_brick_stairs = getDefault(); - - public static final Block holystone_brick_wall = getDefault(); - - public static final Block holystone_button = getDefault(); - - public static final Block holystone_furnace = getDefault(); - - public static final Block holystone_pillar = getDefault(); - - public static final Block holystone_pressure_plate = getDefault(); - - public static final Block holystone_rock = getDefault(); - - public static final Block holystone_slab = getDefault(); - - public static final Block holystone_stairs = getDefault(); - - public static final Block holystone_wall = getDefault(); - - public static final Block icestone_brick_stairs = getDefault(); - - public static final Block icestone_bricks = getDefault(); - - public static final Block icestone_bricks_decorative = getDefault(); - - public static final Block icestone_cooler = getDefault(); - - public static final Block icestone_ore = getDefault(); - - public static final Block holystone_quartz_ore = getDefault(); - - public static final Block icestone_pillar = getDefault(); - - public static final Block icestone_slab = getDefault(); - - public static final Block icestone_wall = getDefault(); - - public static final Block incubator = getDefault(); - - public static final Block irradiated_dust_block = getDefault(); - - public static final Block irradiated_flower = getDefault(); - - public static final Block light_skyroot_beam = getDefault(); - - public static final Block light_skyroot_decorative = getDefault(); - - public static final Block light_skyroot_log = getDefault(); - - public static final Block light_skyroot_planks = getDefault(); - - public static final Block magnetic_shroom = getDefault(); - - public static final Block masonry_bench = getDefault(); - - public static final Block moa_egg = getDefault(); - - public static final Block mossy_holystone_slab = getDefault(); - - public static final Block mossy_holystone_stairs = getDefault(); - - public static final Block mossy_holystone_wall = getDefault(); - - public static final Block multiblock_dummy = getDefault(); - - public static final Block multiblock_dummy_half = getDefault(); - - public static final Block mutant_leaves = getDefault(); - - public static final Block mutant_leaves_decorated = getDefault(); - - public static final Block neverbloom = getDefault(); - - public static final Block orange_tree = getDefault(); - - public static final Block outpost_campfire = getDefault(); - - public static final Block pink_swingtip = getDefault(); - - public static final Block plumproot = getDefault(); - - public static final Block present = getDefault(); - - public static final Block quickshoot = getDefault(); - - public static final Block quicksoil = getDefault(); - - public static final Block quicksoil_glass = getDefault(); - - public static final Block quicksoil_glass_decorative = getDefault(); - - public static final Block quicksoil_glass_pane = getDefault(); - - public static final Block quicksoil_glass_pane_decorative = getDefault(); - - public static final Block rusted_ferrosite = getDefault(); - - public static final Block scatterglass = getDefault(); - - public static final Block scatterglass_decorative = getDefault(); - - public static final Block scatterglass_pane = getDefault(); - - public static final Block scatterglass_pane_decorative = getDefault(); - - public static final Block scatterglass_slab = getDefault(); - - public static final Block scatterglass_stairs = getDefault(); - - public static final Block scatterglass_wall = getDefault(); - - public static final Block secret_skyroot_door = getDefault(); - - public static final Block secret_skyroot_trapdoor = getDefault(); - - public static final Block sentrystone_brick = getDefault(); - - public static final Block sentrystone_brick_decorative = getDefault(); - - public static final Block sentrystone_brick_decorative_lit = getDefault(); - - public static final Block sentrystone_brick_slab = getDefault(); - - public static final Block sentrystone_brick_stairs = getDefault(); - - public static final Block sentrystone_brick_wall = getDefault(); - - public static final Block sentrystone_pillar = getDefault(); - - public static final Block sentrystone_pillar_lit = getDefault(); - - public static final Block skyroot_beam = getDefault(); - - public static final Block skyroot_bed = getDefault(); - - public static final Block skyroot_bookshelf = getDefault(); - - public static final Block skyroot_button = getDefault(); - - public static final Block skyroot_chest = getDefault(); - - public static final Block skyroot_decorative = getDefault(); - - public static final Block skyroot_door = getDefault(); - - public static final Block skyroot_fence = getDefault(); - - public static final Block skyroot_fence_gate = getDefault(); - - public static final Block skyroot_ladder = getDefault(); - - public static final Block skyroot_log = getDefault(); - - public static final Block skyroot_log_wall = getDefault(); - - public static final Block skyroot_planks = getDefault(); - - public static final Block skyroot_pressure_plate = getDefault(); - - public static final Block skyroot_sapling = getDefault(); - - public static final Block skyroot_slab = getDefault(); - - public static final Block skyroot_stairs = getDefault(); - - public static final Block skyroot_trapdoor = getDefault(); - - public static final Block skyroot_twigs = getDefault(); - - public static final Block standing_skyroot_sign = getDefault(); - - public static final Block stoneshroom = getDefault(); - - public static final Block tall_aether_grass = getDefault(); - - public static final Block thera_dirt = getDefault(); - - public static final Block thera_grass = getDefault(); - - public static final Block therastone_brick = getDefault(); - - public static final Block therastone_brick_decorative = getDefault(); - - public static final Block therastone_brick_slab = getDefault(); - - public static final Block therastone_brick_stairs = getDefault(); - - public static final Block therastone_brick_wall = getDefault(); - - public static final Block therastone_pillar = getDefault(); - - public static final Block therawood_beam = getDefault(); - - public static final Block therawood_button= getDefault(); - - public static final Block therawood_decorative = getDefault(); - - public static final Block therawood_fence = getDefault(); - - public static final Block therawood_fence_gate = getDefault(); - - public static final Block therawood_leaves = getDefault(); - - public static final Block therawood_log = getDefault(); - - public static final Block therawood_log_wall = getDefault(); - - public static final Block therawood_planks = getDefault(); - - public static final Block therawood_pressure_plate = getDefault(); - - public static final Block therawood_slab = getDefault(); - - public static final Block therawood_stairs = getDefault(); - - public static final Block unique_sapling = getDefault(); - - public static final Block valkyrie_grass = getDefault(); - - public static final Block wall_skyroot_sign = getDefault(); - - public static final Block wildcard = getDefault(); - - public static final Block wisproot_button = getDefault(); - - public static final Block wisproot_fence = getDefault(); - - public static final Block wisproot_fence_gate = getDefault(); - - public static final Block wisproot_log_wall = getDefault(); - - public static final Block wisproot_pressure_plate = getDefault(); - - public static final Block wisproot_sapling = getDefault(); - - public static final Block wisproot_slab = getDefault(); - - public static final Block wisproot_stairs = getDefault(); - - public static final Block woven_sticks = getDefault(); - - public static final Block zanite_block = getDefault(); - - public static final Block zanite_ore = getDefault(); -} diff --git a/src/api/java/com/gildedgames/aether/api/registrar/CapabilitiesAether.java b/src/api/java/com/gildedgames/aether/api/registrar/CapabilitiesAether.java deleted file mode 100644 index fcff6bfe25..0000000000 --- a/src/api/java/com/gildedgames/aether/api/registrar/CapabilitiesAether.java +++ /dev/null @@ -1,35 +0,0 @@ -package com.gildedgames.aether.api.registrar; - -import com.gildedgames.aether.api.chunk.IPlacementFlagCapability; -import com.gildedgames.aether.api.entity.effects.IAetherStatusEffectPool; -import com.gildedgames.aether.api.entity.spawning.ISpawningInfo; -import com.gildedgames.aether.api.player.IPlayerAether; -import com.gildedgames.aether.api.world.islands.precipitation.IPrecipitationManager; -import com.gildedgames.aether.api.world.preparation.IPrepManager; -import com.gildedgames.aether.api.world.spawn.ISpawnSystem; -import net.minecraftforge.common.capabilities.Capability; -import net.minecraftforge.common.capabilities.CapabilityInject; - -public class CapabilitiesAether extends AbstractRegistrar -{ - @CapabilityInject(IPlayerAether.class) - public static final Capability<IPlayerAether> PLAYER_DATA = getDefault(); - - @CapabilityInject(ISpawningInfo.class) - public static final Capability<ISpawningInfo> ENTITY_SPAWNING_INFO = getDefault(); - - @CapabilityInject(IPlacementFlagCapability.class) - public static final Capability<IPlacementFlagCapability> CHUNK_PLACEMENT_FLAG = getDefault(); - - @CapabilityInject(ISpawnSystem.class) - public static final Capability<ISpawnSystem> SPAWN_SYSTEM = getDefault(); - - @CapabilityInject(IPrecipitationManager.class) - public static final Capability<IPrecipitationManager> PRECIPITATION_MANAGER = getDefault(); - - @CapabilityInject(IAetherStatusEffectPool.class) - public static final Capability<IAetherStatusEffectPool> STATUS_EFFECT_POOL = getDefault(); - - @CapabilityInject(IPrepManager.class) - public static final Capability<IPrepManager> PREP_MANAGER = getDefault(); -} diff --git a/src/api/java/com/gildedgames/aether/api/registrar/ItemsAether.java b/src/api/java/com/gildedgames/aether/api/registrar/ItemsAether.java deleted file mode 100644 index 6c17af18ec..0000000000 --- a/src/api/java/com/gildedgames/aether/api/registrar/ItemsAether.java +++ /dev/null @@ -1,396 +0,0 @@ -package com.gildedgames.aether.api.registrar; - -import net.minecraft.item.Item; -import net.minecraftforge.fml.common.registry.GameRegistry; - -@GameRegistry.ObjectHolder("aether") -public class ItemsAether extends AbstractRegistrar -{ - public static final Item aechor_petal = getDefault(); - - public static final Item aerwhale_music_disc = getDefault(); - - public static final Item aether_saddle = getDefault(); - - public static final Item antitoxin_vial = getDefault(); - - public static final Item antivenom_vial = getDefault(); - - public static final Item ambrosium_chunk = getDefault(); - - public static final Item ambrosium_shard = getDefault(); - - public static final Item arkenium = getDefault(); - - public static final Item arkenium_axe = getDefault(); - - public static final Item arkenium_boots = getDefault(); - - public static final Item arkenium_chestplate = getDefault(); - - public static final Item arkenium_crossbow = getDefault(); - - public static final Item arkenium_door_item = getDefault(); - - public static final Item arkenium_gloves = getDefault(); - - public static final Item arkenium_helmet = getDefault(); - - public static final Item arkenium_leggings = getDefault(); - - public static final Item arkenium_pickaxe = getDefault(); - - public static final Item arkenium_shears = getDefault(); - - public static final Item arkenium_shield = getDefault(); - - public static final Item arkenium_shovel = getDefault(); - - public static final Item arkenium_strip = getDefault(); - - public static final Item arkenium_sword = getDefault(); - - public static final Item bandage = getDefault(); - - public static final Item blueberries = getDefault(); - - public static final Item blueberry_lollipop = getDefault(); - - public static final Item bolt = getDefault(); - - public static final Item brettl_cane = getDefault(); - - public static final Item brettl_grass = getDefault(); - - public static final Item brettl_rope = getDefault(); - - public static final Item burrukai_pelt = getDefault(); - - public static final Item burrukai_pelt_boots = getDefault(); - - public static final Item burrukai_pelt_chestplate = getDefault(); - - public static final Item burrukai_pelt_gloves = getDefault(); - - public static final Item burrukai_pelt_helmet = getDefault(); - - public static final Item burrukai_pelt_leggings = getDefault(); - - public static final Item burrukai_rib_cut = getDefault(); - - public static final Item burrukai_ribs = getDefault(); - - public static final Item candy_cane = getDefault(); - - public static final Item candy_corn = getDefault(); - - //public static final Item charm_arm_01 = getDefault(); - - //public static final Item charm_arm_02 = getDefault(); - - //public static final Item charm_arm_tgh_01 = getDefault(); - - //public static final Item charm_arm_tgh_02 = getDefault(); - - //public static final Item charm_imp_dmg_01 = getDefault(); - - //public static final Item charm_imp_dmg_02 = getDefault(); - - //public static final Item charm_atk_spd_01 = getDefault(); - - //public static final Item charm_atk_spd_02 = getDefault(); - - //public static final Item charm_kbk_res_01 = getDefault(); - - //public static final Item charm_kbk_res_02 = getDefault(); - - //public static final Item charm_lck_01 = getDefault(); - - //public static final Item charm_lck_02 = getDefault(); - - public static final Item charm_max_hlt_01 = getDefault(); - - //public static final Item charm_max_hlt_02 = getDefault(); - - public static final Item charm_mve_spd_01 = getDefault(); - - public static final Item charm_mve_spd_02 = getDefault(); - - //public static final Item charm_prc_dmg_01 = getDefault(); - - //public static final Item charm_prc_dmg_02 = getDefault(); - - //public static final Item charm_slsh_dmg_01 = getDefault(); - - //public static final Item charm_slsh_dmg_02 = getDefault(); - - public static final Item charm_res_amb_01 = getDefault(); - - public static final Item charm_res_amb_02 = getDefault(); - - public static final Item charm_res_bld_01 = getDefault(); - - public static final Item charm_res_bld_02 = getDefault(); - - public static final Item charm_res_fra_01 = getDefault(); - - public static final Item charm_res_fra_02 = getDefault(); - - public static final Item charm_res_frz_01 = getDefault(); - - public static final Item charm_res_frz_02 = getDefault(); - - public static final Item charm_res_grd_brk_01 = getDefault(); - - public static final Item charm_res_grd_brk_02 = getDefault(); - - public static final Item charm_res_irr_01 = getDefault(); - - public static final Item charm_res_irr_02 = getDefault(); - - public static final Item charm_res_stn_01 = getDefault(); - - public static final Item charm_res_stn_02 = getDefault(); - - public static final Item charm_res_tox_01 = getDefault(); - - public static final Item charm_res_tox_02 = getDefault(); - - public static final Item charm_res_ven_01 = getDefault(); - - public static final Item charm_res_ven_02 = getDefault(); - - public static final Item charm_res_web_01 = getDefault(); - - public static final Item charm_res_web_02 = getDefault(); - - - - - - public static final Item cloud_parachute = getDefault(); - - public static final Item cloudtwine = getDefault(); - - public static final Item cockatrice_feather = getDefault(); - - public static final Item cocoatrice = getDefault(); - - public static final Item crude_scatterglass_shard = getDefault(); - - public static final Item dart = getDefault(); - - public static final Item dart_shooter = getDefault(); - - public static final Item eggnog = getDefault(); - - public static final Item enchanted_blueberry = getDefault(); - - public static final Item enchanted_wyndberry = getDefault(); - - public static final Item fried_moa_egg = getDefault(); - - public static final Item ginger_bread_man = getDefault(); - - public static final Item golden_amber = getDefault(); - - public static final Item gravitite_axe = getDefault(); - - public static final Item gravitite_boots = getDefault(); - - public static final Item gravitite_chestplate = getDefault(); - - public static final Item gravitite_crossbow = getDefault(); - - public static final Item gravitite_gloves = getDefault(); - - public static final Item gravitite_helmet = getDefault(); - - public static final Item gravitite_leggings = getDefault(); - - public static final Item gravitite_pickaxe = getDefault(); - - public static final Item gravitite_plate = getDefault(); - - public static final Item gravitite_shield = getDefault(); - - public static final Item gravitite_shovel = getDefault(); - - public static final Item gravitite_sword = getDefault(); - - public static final Item healing_stone = getDefault(); - - public static final Item healing_stone_depleted = getDefault(); - - public static final Item holystone_axe = getDefault(); - - public static final Item holystone_crossbow = getDefault(); - - public static final Item holystone_pickaxe = getDefault(); - - public static final Item holystone_shield = getDefault(); - - public static final Item holystone_shovel = getDefault(); - - public static final Item holystone_sword = getDefault(); - - public static final Item icestone = getDefault(); - - public static final Item icestone_poprocks = getDefault(); - - public static final Item irradiated_armor = getDefault(); - - public static final Item irradiated_charm = getDefault(); - - public static final Item irradiated_chunk = getDefault(); - - public static final Item irradiated_dust = getDefault(); - - public static final Item irradiated_neckwear = getDefault(); - - public static final Item irradiated_ring = getDefault(); - - public static final Item irradiated_sword = getDefault(); - - public static final Item irradiated_tool = getDefault(); - - public static final Item jelly_plumproot = getDefault(); - - public static final Item kirrid_cutlet = getDefault(); - - public static final Item kirrid_loin = getDefault(); - - public static final Item labyrinth_music_disc = getDefault(); - - public static final Item moa_egg_item = getDefault(); - - public static final Item moa_feather = getDefault(); - - public static final Item moa_feed = getDefault(); - - public static final Item moa_feed_blueberries = getDefault(); - - public static final Item moa_feed_enchanted_blueberries = getDefault(); - - public static final Item moa_music_disc = getDefault(); - - public static final Item orange = getDefault(); - - public static final Item orange_lollipop = getDefault(); - - public static final Item plumproot_mash = getDefault(); - - public static final Item plumproot_pie = getDefault(); - - public static final Item rainbow_moa_egg = getDefault(); - - public static final Item raw_taegore_meat = getDefault(); - - public static final Item recording_892 = getDefault(); - - public static final Item scatterglass_vial = getDefault(); - - public static final Item secret_skyroot_door_item = getDefault(); - - public static final Item shard_of_life = getDefault(); - - public static final Item skyroot_axe = getDefault(); - - public static final Item skyroot_bed_item = getDefault(); - - public static final Item skyroot_bucket = getDefault(); - - public static final Item skyroot_crossbow = getDefault(); - - public static final Item skyroot_door_item = getDefault(); - - public static final Item skyroot_lizard_stick = getDefault(); - - public static final Item skyroot_lizard_stick_roasted = getDefault(); - - public static final Item skyroot_milk_bucket = getDefault(); - - public static final Item skyroot_pickaxe = getDefault(); - - public static final Item skyroot_pinecone = getDefault(); - - public static final Item skyroot_poison_bucket = getDefault(); - - public static final Item skyroot_shield = getDefault(); - - public static final Item skyroot_shovel = getDefault(); - - public static final Item skyroot_sign = getDefault(); - - public static final Item skyroot_stick = getDefault(); - - public static final Item skyroot_sword = getDefault(); - - public static final Item skyroot_water_bucket = getDefault(); - - public static final Item splint = getDefault(); - - public static final Item stomper_pop = getDefault(); - - public static final Item swet_gel = getDefault(); - - public static final Item swet_jelly = getDefault(); - - public static final Item swet_sugar = getDefault(); - - public static final Item taegore_hide = getDefault(); - - public static final Item taegore_hide_boots = getDefault(); - - public static final Item taegore_hide_chestplate = getDefault(); - - public static final Item taegore_hide_gloves = getDefault(); - - public static final Item taegore_hide_helmet = getDefault(); - - public static final Item taegore_hide_leggings = getDefault(); - - public static final Item taegore_steak = getDefault(); - - public static final Item valkyrie_music_disc = getDefault(); - - public static final Item valkyrie_tea = getDefault(); - - public static final Item valkyrie_wings = getDefault(); - - public static final Item water_vial = getDefault(); - - public static final Item winter_hat = getDefault(); - - public static final Item wrapped_chocolates = getDefault(); - - public static final Item wrapping_paper = getDefault(); - - public static final Item wyndberry = getDefault(); - - public static final Item yule_log = getDefault(); - - public static final Item zanite_axe = getDefault(); - - public static final Item zanite_boots = getDefault(); - - public static final Item zanite_chestplate = getDefault(); - - public static final Item zanite_crossbow = getDefault(); - - public static final Item zanite_gemstone = getDefault(); - - public static final Item zanite_gloves = getDefault(); - - public static final Item zanite_helmet = getDefault(); - - public static final Item zanite_leggings = getDefault(); - - public static final Item zanite_pickaxe = getDefault(); - - public static final Item zanite_shield = getDefault(); - - public static final Item zanite_shovel = getDefault(); - - public static final Item zanite_sword = getDefault(); -} diff --git a/src/api/java/com/gildedgames/aether/api/registrar/SoundsAether.java b/src/api/java/com/gildedgames/aether/api/registrar/SoundsAether.java deleted file mode 100644 index 1d71b4f666..0000000000 --- a/src/api/java/com/gildedgames/aether/api/registrar/SoundsAether.java +++ /dev/null @@ -1,146 +0,0 @@ -package com.gildedgames.aether.api.registrar; - -import net.minecraft.util.SoundEvent; -import net.minecraftforge.fml.common.registry.GameRegistry.ObjectHolder; - -@ObjectHolder("aether") -public class SoundsAether extends AbstractRegistrar -{ - @ObjectHolder("portal.glowstone.hum") - public static final SoundEvent glowstone_portal_hum = getDefault(); - - @ObjectHolder("portal.glowstone.trigger") - public static final SoundEvent glowstone_portal_trigger = getDefault(); - - @ObjectHolder("portal.glowstone.travel") - public static final SoundEvent glowstone_portal_travel = getDefault(); - - @ObjectHolder("portal.labyrinth_totem.drone") - public static final SoundEvent labyrinth_totem_drone = getDefault(); - - @ObjectHolder("block.aercloud.bounce") - public static final SoundEvent aercloud_bounce = getDefault(); - - @ObjectHolder("mob.aerbunny.ambient") - public static final SoundEvent aerbunny_ambient = getDefault(); - - @ObjectHolder("mob.aerbunny.hurt") - public static final SoundEvent aerbunny_hurt = getDefault(); - - @ObjectHolder("mob.aerbunny.death") - public static final SoundEvent aerbunny_death = getDefault(); - - @ObjectHolder("mob.aerbunny.lift") - public static final SoundEvent aerbunny_lift = getDefault(); - - @ObjectHolder("record.aerwhale") - public static final SoundEvent record_aerwhale = getDefault(); - - @ObjectHolder("record.moa") - public static final SoundEvent record_moa = getDefault(); - - @ObjectHolder("record.valkyrie") - public static final SoundEvent record_valkyrie = getDefault(); - - @ObjectHolder("record.labyrinth") - public static final SoundEvent record_labyrinth = getDefault(); - - @ObjectHolder("record.recording_892") - public static final SoundEvent record_recording_892 = getDefault(); - - @ObjectHolder("random.dart_shooter.fire") - public static final SoundEvent dart_shooter_fire = getDefault(); - - @ObjectHolder("mob.cockatrice.hurt") - public static final SoundEvent cockatrice_hurt = getDefault(); - - @ObjectHolder("mob.cockatrice.death") - public static final SoundEvent cockatrice_death = getDefault(); - - @ObjectHolder("mob.cockatrice.ambient") - public static final SoundEvent cockatrice_ambient = getDefault(); - - @ObjectHolder("mob.zephyr.ambient") - public static final SoundEvent zephyr_ambient = getDefault(); - - @ObjectHolder("mob.tempest.ambient") - public static final SoundEvent tempest_ambient = getDefault(); - - @ObjectHolder("mob.tempest.hurt") - public static final SoundEvent tempest_hurt = getDefault(); - - @ObjectHolder("mob.tempest.death") - public static final SoundEvent tempest_death = getDefault(); - - @ObjectHolder("mob.aerwhale.ambient") - public static final SoundEvent aerwhale_ambient = getDefault(); - - @ObjectHolder("mob.aerwhale.death") - public static final SoundEvent aerwhale_death = getDefault(); - - @ObjectHolder("mob.tempest.electric_shock") - public static final SoundEvent tempest_electric_shock = getDefault(); - - @ObjectHolder("mob.tempest.angry") - public static final SoundEvent tempest_angry = getDefault(); - - @ObjectHolder("mob.zephyr.puff") - public static final SoundEvent zephyr_puff = getDefault(); - - @ObjectHolder("mob.moa.ambient") - public static final SoundEvent moa_ambient = getDefault(); - - @ObjectHolder("mob.moa.hurt") - public static final SoundEvent moa_hurt = getDefault(); - - @ObjectHolder("random.present_unwrap") - public static final SoundEvent present_unwrap = getDefault(); - - @ObjectHolder("random.dungeon.container.smash") - public static final SoundEvent break_labyrinth_container = getDefault(); - - @ObjectHolder("mob.generic.wings.flap") - public static final SoundEvent generic_wing_flap = getDefault(); - - @ObjectHolder("mob.kirrid.ambient") - public static final SoundEvent kirrid_ambient = getDefault(); - - @ObjectHolder("mob.kirrid.hurt") - public static final SoundEvent kirrid_hurt = getDefault(); - - @ObjectHolder("mob.kirrid.death") - public static final SoundEvent kirrid_death = getDefault(); - - @ObjectHolder("mob.taegore.ambient") - public static final SoundEvent taegore_ambient = getDefault(); - - @ObjectHolder("mob.taegore.hurt") - public static final SoundEvent taegore_hurt = getDefault(); - - @ObjectHolder("mob.taegore.death") - public static final SoundEvent taegore_death = getDefault(); - - @ObjectHolder("mob.taegore.attack") - public static final SoundEvent taegore_attack = getDefault(); - - @ObjectHolder("mob.burrukai.ambient") - public static final SoundEvent burrukai_ambient = getDefault(); - - @ObjectHolder("mob.burrukai.hurt") - public static final SoundEvent burrukai_hurt = getDefault(); - - @ObjectHolder("mob.burrukai.death") - public static final SoundEvent burrukai_death = getDefault(); - - @ObjectHolder("mob.burrukai.attack") - public static final SoundEvent burrukai_attack = getDefault(); - - @ObjectHolder("environment.rain.light") - public static final SoundEvent environment_rain_light = getDefault(); - - @ObjectHolder("environment.rain.heavy") - public static final SoundEvent environment_rain_heavy = getDefault(); - - @ObjectHolder("environment.snow.wind") - public static final SoundEvent environment_snow_wind = getDefault(); -} diff --git a/src/api/java/com/gildedgames/aether/api/registry/IContentRegistry.java b/src/api/java/com/gildedgames/aether/api/registry/IContentRegistry.java deleted file mode 100644 index ee65fbca64..0000000000 --- a/src/api/java/com/gildedgames/aether/api/registry/IContentRegistry.java +++ /dev/null @@ -1,93 +0,0 @@ -package com.gildedgames.aether.api.registry; - -import com.gildedgames.aether.api.cache.IEntityStatsCache; -import com.gildedgames.aether.api.dialog.IDialogManager; -import com.gildedgames.aether.api.patron.PatronRewardRegistry; -import com.gildedgames.aether.api.player.conditions.IPlayerConditionTracker; -import com.gildedgames.aether.api.player.conditions.events.SeeEntityEvents; -import com.gildedgames.aether.api.recipes.altar.IAltarRecipeRegistry; -import com.gildedgames.aether.api.recipes.simple.ISimpleCraftingRegistry; -import com.gildedgames.aether.api.registry.recipes.IRecipeIndexRegistry; -import com.gildedgames.aether.api.registry.tab.ITabRegistry; -import com.gildedgames.aether.api.shop.ICurrencyRegistry; -import com.gildedgames.aether.api.shop.IShopManager; -import com.gildedgames.aether.api.travellers_guidebook.ITGManager; -import com.gildedgames.aether.api.world.preparation.IPrepRegistry; -import com.gildedgames.aether.api.world.templates.ITemplateRegistry; - -/** - * Provider for Aether content interfaces. - */ -public interface IContentRegistry -{ - /** - * @return The {@link SeeEntityEvents} provider for the Aether. - */ - SeeEntityEvents seeEntityEvents(); - - /** - * @return The {@link IEntityStatsCache} provider for the Aether. - */ - IEntityStatsCache entityStatsCache(); - - /** - * @return The {@link IPlayerConditionTracker} provider for the Aether. - */ - IPlayerConditionTracker playerConditionTracker(); - - /** - * @return The {@link ITGManager} provider for the Aether. - */ - ITGManager tgManager(); - - /** - * @return The {@link IShopManager} provider for the Aether. - */ - IShopManager shop(); - - /** - * @return The {@link ICurrencyRegistry} provider for the Aether. - */ - ICurrencyRegistry currency(); - - /** - * @return The {@link ITemplateRegistry} provider for the Aether. - */ - ITemplateRegistry templates(); - - /** - * @return The {@link IAltarRecipeRegistry} provider for the Aether. - */ - IAltarRecipeRegistry altar(); - - /** - * @return The {@link ITabRegistry} provider for the Aether. - */ - ITabRegistry tabs(); - - /** - * @return The {@link IItemPropertiesRegistry} provider for the Aether. - */ - IItemPropertiesRegistry items(); - - /** - * @return The {@link IEffectRegistry} provider for the Aether. - */ - IEffectRegistry effects(); - - /** - * @return The {@link IDialogManager} provider for the Aether. - */ - IDialogManager dialog(); - - /** - * @return The {@link IRecipeIndexRegistry} provider for the Aether. - */ - IRecipeIndexRegistry craftable(); - - ISimpleCraftingRegistry masonry(); - - PatronRewardRegistry patronRewards(); - - IPrepRegistry prep(); -} diff --git a/src/api/java/com/gildedgames/aether/api/registry/IEffectRegistry.java b/src/api/java/com/gildedgames/aether/api/registry/IEffectRegistry.java deleted file mode 100644 index e77c669080..0000000000 --- a/src/api/java/com/gildedgames/aether/api/registry/IEffectRegistry.java +++ /dev/null @@ -1,22 +0,0 @@ -package com.gildedgames.aether.api.registry; - -import com.gildedgames.aether.api.items.equipment.effects.IEffectFactory; -import com.gildedgames.aether.api.items.equipment.effects.IEffectProvider; -import net.minecraft.util.ResourceLocation; - -public interface IEffectRegistry -{ - /** - * Registers an {@link IEffectFactory} implementation. The identifier is determined by - * {@link IEffectFactory#getIdentifier()}. - * @param processor The processor to register - */ - void registerEffect(IEffectFactory processor); - - /** - * Returns the {@link IEffectFactory} registered to identifier {@param key}. - * @param key The {@link ResourceLocation} identifier - * @return The {@link IEffectFactory} for {@param key}, if it exists - */ - IEffectFactory<IEffectProvider> getFactory(ResourceLocation key); -} diff --git a/src/api/java/com/gildedgames/aether/api/registry/IItemPropertiesRegistry.java b/src/api/java/com/gildedgames/aether/api/registry/IItemPropertiesRegistry.java deleted file mode 100644 index 9ed534183c..0000000000 --- a/src/api/java/com/gildedgames/aether/api/registry/IItemPropertiesRegistry.java +++ /dev/null @@ -1,27 +0,0 @@ -package com.gildedgames.aether.api.registry; - -import com.gildedgames.aether.api.items.properties.IItemProperties; -import com.gildedgames.aether.api.items.properties.ItemPropertiesBuilder; -import net.minecraft.item.Item; - -import javax.annotation.Nonnull; - -public interface IItemPropertiesRegistry -{ - /** - * Retrieves the properties of {@param item}. - * - * @param item The item to retrieve properties from - * @return The item's properties - */ - @Nonnull - IItemProperties getProperties(Item item); - - /** - * Registers an item with the registry, throwing an {@link IllegalArgumentException} if - * it is already registered. - * @param item The item to register - * @param def The {@link IItemProperties} to register - */ - void registerItem(Item item, ItemPropertiesBuilder def); -} diff --git a/src/api/java/com/gildedgames/aether/api/registry/recipes/IRecipeIndexRegistry.java b/src/api/java/com/gildedgames/aether/api/registry/recipes/IRecipeIndexRegistry.java deleted file mode 100644 index a7f495cfa1..0000000000 --- a/src/api/java/com/gildedgames/aether/api/registry/recipes/IRecipeIndexRegistry.java +++ /dev/null @@ -1,49 +0,0 @@ -package com.gildedgames.aether.api.registry.recipes; - -import com.gildedgames.aether.api.recipes.IIndexableRecipe; -import net.minecraft.item.ItemStack; - -import java.util.Collection; - -/** - * Index manager for recipes. Adding items to this registry will create indexes for - * it's input items, allowing you to search for recipes that use a specific item. - */ -public interface IRecipeIndexRegistry -{ - void clearRegistrations(); - - /** - * Registers a recipe with this index. - * - * @param recipe The recipe to register - */ - void registerRecipe(IIndexableRecipe recipe); - - /** - * Returns the number of indexes (keys) in this index. Not very useful other than for - * statistical reporting. - * @return The number of indexes this registry has currently allocated - */ - int getIndexSize(); - - /** - * Gets a collection of recipes that use {@param item} as an input. This is damage - * value sensitive. - * - * @param item The item index to search by - * @return A {@link Collection} containing {@link IIndexableRecipe} which - * contain {@param item}, empty if none. - */ - Collection<IIndexableRecipe> getRecipesContainingIngredient(ItemStack item); - - /** - * Gets a collection of recipes that use {@param item} as an input. This is damage - * value sensitive. - * - * @param item The item index to search by - * @return A {@link Collection} containing {@link IIndexableRecipe} which - * contain {@param item}, empty if none. - */ - Collection<IIndexableRecipe> getRecipesContainingResult(ItemStack item); -} diff --git a/src/api/java/com/gildedgames/aether/api/registry/tab/ITab.java b/src/api/java/com/gildedgames/aether/api/registry/tab/ITab.java deleted file mode 100644 index 02c0521a1b..0000000000 --- a/src/api/java/com/gildedgames/aether/api/registry/tab/ITab.java +++ /dev/null @@ -1,40 +0,0 @@ -package com.gildedgames.aether.api.registry.tab; - -import net.minecraft.client.gui.GuiScreen; -import net.minecraft.entity.player.EntityPlayer; - -/** - * This is the interface you should use to construct a Tab and its functionality. With two or more {@link ITab}s, - * you can develop a whole {@link ITabGroupHandler} to link to a {@link GuiScreen}'s interface. - * @author Brandon Pearce - */ -public interface ITab -{ - /** - * This is the name which is displayed upon hovering over this {@link ITab} or when it is currently selected. Note that this is - * unlocalized and will be translated to the correct value if your mod uses a language file. - * @return This {@link ITab}'s unlocalized name which is used for rendering. - */ - String getUnlocalizedName(); - - /** - * Called when the player selects this {@link ITab} within its parent {@link ITabGroupHandler}. This includes - * when the {@link ITabGroupHandler} is opened up again and this {@link ITab} was its last-remembered tab. - */ - void onOpen(EntityPlayer player); - - /** - * When an {@link ITab} is enabled, it will render as normal within its parent {@link ITabGroupHandler}. However, - * if it is disabled, it will not render and can not be selected by the player. - * @return Whether or not this {@link ITab} is enabled - */ - boolean isEnabled(); - - /** - * If an {@link ITab} can be remembered and it was the last {@link ITab} selected upon the closing of its parent - * {@link ITabGroupHandler}, it will be opened up the next time that {@link ITabGroupHandler} is reopened. - * @return Whether or not this {@link ITab} should be remembered by its parent {@link ITabGroupHandler} - */ - boolean isRemembered(); - -} diff --git a/src/api/java/com/gildedgames/aether/api/registry/tab/ITabClient.java b/src/api/java/com/gildedgames/aether/api/registry/tab/ITabClient.java deleted file mode 100644 index dca2533641..0000000000 --- a/src/api/java/com/gildedgames/aether/api/registry/tab/ITabClient.java +++ /dev/null @@ -1,40 +0,0 @@ -package com.gildedgames.aether.api.registry.tab; - -import net.minecraft.client.gui.GuiScreen; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.util.ResourceLocation; -import net.minecraft.util.math.Vec2f; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; - -public interface ITabClient extends ITab -{ - /** - * List all {@link GuiScreen} classes which are used within this tab. If you use a class which you have not listed here, - * the {@link ITabRegistry} will not be able to recognize its association with this particular tab, meaning it - * won't display when the {@link GuiScreen} is open. - * @return All of the {@link GuiScreen} classes which are used within this tab. - */ - @SideOnly(Side.CLIENT) - boolean isTabValid(GuiScreen gui); - - /** - * Called when the player selects another {@link ITab} within this {@link ITab}'s parent {@link ITabGroupHandler}. This includes - * when the {@link ITabGroupHandler} is closed and this {@link ITab} was open. - */ - void onClose(EntityPlayer player); - - /** - * @return Returns the icon this tab has. - */ - @SideOnly(Side.CLIENT) - ResourceLocation getIcon(); - - /** - * Default tabs use Minecraft's default tab texture with an icon drawn over it. - * A custom tab means instead of using the default tab texture, a custom tab texture should be used. - * @return 2D Vector of the tab's texture x and y. - */ - @SideOnly(Side.CLIENT) - Vec2f getCustomTabVec2(); -} diff --git a/src/api/java/com/gildedgames/aether/api/registry/tab/ITabGroup.java b/src/api/java/com/gildedgames/aether/api/registry/tab/ITabGroup.java deleted file mode 100644 index 08ddbff85e..0000000000 --- a/src/api/java/com/gildedgames/aether/api/registry/tab/ITabGroup.java +++ /dev/null @@ -1,76 +0,0 @@ -package com.gildedgames.aether.api.registry.tab; - -import net.minecraft.client.gui.GuiScreen; -import net.minecraft.inventory.Container; - -import java.util.List; - -public interface ITabGroup<T extends ITab> -{ - - /** - * This adds an {@link ITab} to this {@link ITabGroupHandler}, allowing it to render. If this {@link ITabGroupHandler} only - * contains one {@link ITab}, it will not render over the {@link GuiScreen} interface. - * @param tab The {@link ITab} you'd like added to this {@link ITabGroupHandler} - */ - void add(T tab); - - /** - * @return The amount of {@link ITab}s contained within this {@link ITabGroupHandler} - */ - int getTabAmount(); - - /** - * @return A List of the {@link ITabGroupHandler}'s contained {@link ITab}s which are currently enabled. This is achieved through checking their {@link ITab#isEnabled()} method - */ - List<T> getEnabledTabs(); - - /** - * @return A List of the {@link ITabGroupHandler}'s contained {@link ITab}s, regardless of if they are enabled or not. - * Just note that this List includes disabled {@link ITab}s as well. - */ - List<T> getTabs(); - - /** - * If this {@link ITabGroupHandler} remembers the selected {@link ITab}, it'll open up that {@link ITab} next time - * the {@link ITabGroupHandler} is re-opened. - * @return Whether this {@link ITabGroupHandler} should remember its last selected tab or not - */ - boolean getRememberSelectedTab(); - - /** - * If this {@link ITabGroupHandler} remembers the selected {@link ITab}, it'll open up that {@link ITab} next time - * the {@link ITabGroupHandler} is re-opened. - * @param rememberSelectedTab Whether this {@link ITabGroupHandler} should remember its last selected tab or not - */ - void setRememberSelectedTab(boolean rememberSelectedTab); - - /** - * The selected {@link ITab} in a {@link ITabGroupHandler} will display its associated {@link GuiScreen} - * and {@link Container} to the player. - * @return The selected {@link ITab} in this {@link ITabGroupHandler} - */ - T getSelectedTab(); - - /** - * The selected {@link ITab} in a {@link ITabGroupHandler} will display its associated {@link GuiScreen} - * and {@link Container} to the player. - * @param tab The {@link ITab} you'd like selected within this {@link ITabGroupHandler} - */ - void setSelectedTab(T tab); - - /** - * The remembered {@link ITab} in a {@link ITabGroupHandler} will open up the next time its parent - * {@link ITabGroupHandler} is opened. - * @return The currently-remembered {@link ITab} - */ - T getRememberedTab(); - - /** - * This makes the passed {@link ITab} remembered by this {@link ITabGroupHandler}, meaning the next time - * this {@link ITabGroupHandler} is opened, it will open to the currently-remembered {@link ITab}. - * @param tab The {@link ITab} you'd like this {@link ITabGroupHandler} to remember - */ - void setRememberedTab(T tab); - -} diff --git a/src/api/java/com/gildedgames/aether/api/registry/tab/ITabGroupHandler.java b/src/api/java/com/gildedgames/aether/api/registry/tab/ITabGroupHandler.java deleted file mode 100644 index 817286d19c..0000000000 --- a/src/api/java/com/gildedgames/aether/api/registry/tab/ITabGroupHandler.java +++ /dev/null @@ -1,14 +0,0 @@ -package com.gildedgames.aether.api.registry.tab; - -public interface ITabGroupHandler -{ - void registerServerTab(ITab tab); - - void registerClientTab(ITabClient tab); - - int getDiscriminant(ITab tab); - - ITabGroup<ITabClient> getClientGroup(); - - ITabGroup<ITab> getServerGroup(); -} diff --git a/src/api/java/com/gildedgames/aether/api/registry/tab/ITabRegistry.java b/src/api/java/com/gildedgames/aether/api/registry/tab/ITabRegistry.java deleted file mode 100644 index 5b0d8d4b62..0000000000 --- a/src/api/java/com/gildedgames/aether/api/registry/tab/ITabRegistry.java +++ /dev/null @@ -1,35 +0,0 @@ -package com.gildedgames.aether.api.registry.tab; - -import net.minecraft.client.gui.GuiScreen; - -import java.util.Map; - -public interface ITabRegistry -{ - /** - * This method is used to register a {@link ITabGroupHandler} to the {@link ITabRegistry}. A registered {@link ITabGroupHandler} will be rendered - * onto the associated {@link GuiScreen}s and all functionality will be handled by the {@link ITabRegistry}. Note that if a - * {@link ITabGroupHandler} is not registered, it will not function in-game. - * @param tabGroup The {@link ITabGroupHandler} you'd like to register to the {@link ITabRegistry} - */ - void registerGroup(ITabGroupHandler tabGroup); - - ITabGroupHandler getActiveGroup(); - - void setActiveGroup(ITabGroupHandler activeGroup); - - /** - * @return The default {@link ITabGroupHandler} which holds a {@link #getBackpackTab() Backpack} {@link ITab} for the vanilla Inventory GUI. - */ - ITabGroupHandler getInventoryGroup(); - - /** - * @return The default {@link ITab} associated with Minecraft's vanilla Inventory GUI. - */ - ITab getBackpackTab(); - - /** - * @return A map of the registered {@link ITabGroupHandler}s active within the game - */ - Map<Integer, ITabGroupHandler> getRegisteredTabGroups(); -} diff --git a/src/api/java/com/gildedgames/aether/api/shop/ICurrencyListener.java b/src/api/java/com/gildedgames/aether/api/shop/ICurrencyListener.java deleted file mode 100644 index 3c5d24a88a..0000000000 --- a/src/api/java/com/gildedgames/aether/api/shop/ICurrencyListener.java +++ /dev/null @@ -1,8 +0,0 @@ -package com.gildedgames.aether.api.shop; - -public interface ICurrencyListener -{ - - void onCurrencyChange(long prevCurrency, long newCurrency); - -} diff --git a/src/api/java/com/gildedgames/aether/api/shop/ICurrencyRegistry.java b/src/api/java/com/gildedgames/aether/api/shop/ICurrencyRegistry.java deleted file mode 100644 index 3d7deab9bd..0000000000 --- a/src/api/java/com/gildedgames/aether/api/shop/ICurrencyRegistry.java +++ /dev/null @@ -1,18 +0,0 @@ -package com.gildedgames.aether.api.shop; - -import net.minecraft.item.ItemStack; - -public interface ICurrencyRegistry -{ - - void clearRegistrations(); - - void registerValue(ItemStack stack, double value, Class<? extends IShopCurrency> currency); - - double getValue(ItemStack stack, Class<? extends IShopCurrency> currency); - - double getSingleValue(ItemStack stack, Class<? extends IShopCurrency> currency); - - boolean hasValue(ItemStack stack, Class<? extends IShopCurrency> currency); - -} diff --git a/src/api/java/com/gildedgames/aether/api/shop/IGuiCurrencyValue.java b/src/api/java/com/gildedgames/aether/api/shop/IGuiCurrencyValue.java deleted file mode 100644 index 34eb9e8e42..0000000000 --- a/src/api/java/com/gildedgames/aether/api/shop/IGuiCurrencyValue.java +++ /dev/null @@ -1,10 +0,0 @@ -package com.gildedgames.aether.api.shop; - -import com.gildedgames.orbis.lib.client.gui.util.gui_library.IGuiElement; - -public interface IGuiCurrencyValue extends IGuiElement -{ - void setCurrencyValue(double value); - - void setNonFilteredCurrencyValue(double value); -} diff --git a/src/api/java/com/gildedgames/aether/api/shop/IShopBuy.java b/src/api/java/com/gildedgames/aether/api/shop/IShopBuy.java deleted file mode 100644 index 3fd400cd45..0000000000 --- a/src/api/java/com/gildedgames/aether/api/shop/IShopBuy.java +++ /dev/null @@ -1,31 +0,0 @@ -package com.gildedgames.aether.api.shop; - -import com.gildedgames.orbis.lib.util.mc.NBT; -import net.minecraft.item.ItemStack; - -import java.util.List; - -public interface IShopBuy extends NBT -{ - ItemStack getItemStack(); - - void addStock(int stock); - - int getStock(); - - List<String> getUnlocalizedDescriptions(); - - int getMaxStock(); - - int getTicksUntilRestock(); - - int getPrice(); - - double getSellingPrice(); - - void tick(); - - boolean isDirty(); - - void markClean(); -} diff --git a/src/api/java/com/gildedgames/aether/api/shop/IShopBuyDefinition.java b/src/api/java/com/gildedgames/aether/api/shop/IShopBuyDefinition.java deleted file mode 100644 index fc70845fc9..0000000000 --- a/src/api/java/com/gildedgames/aether/api/shop/IShopBuyDefinition.java +++ /dev/null @@ -1,29 +0,0 @@ -package com.gildedgames.aether.api.shop; - -import net.minecraft.item.ItemStack; - -import java.util.Collection; -import java.util.Optional; - -public interface IShopBuyDefinition -{ - Optional<ItemStack> getItemStack(); - - Collection<String> getUnlocalizedDescriptions(); - - int getTicksUntilRestock(); - - float getRarityWeight(); - - double getMinSellPrice(); - - double getMaxSellPrice(); - - int getMinPrice(); - - int getMaxPrice(); - - int getMaxStock(); - - int getMinStock(); -} diff --git a/src/api/java/com/gildedgames/aether/api/shop/IShopCurrency.java b/src/api/java/com/gildedgames/aether/api/shop/IShopCurrency.java deleted file mode 100644 index ec42722000..0000000000 --- a/src/api/java/com/gildedgames/aether/api/shop/IShopCurrency.java +++ /dev/null @@ -1,31 +0,0 @@ -package com.gildedgames.aether.api.shop; - -import com.gildedgames.aether.api.player.IPlayerAether; -import com.gildedgames.orbis.lib.client.rect.Rect; -import com.gildedgames.orbis.lib.util.mc.NBT; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; - -public interface IShopCurrency extends NBT -{ - long getValue(IPlayerAether playerAether); - - void addValue(long value, IPlayerAether playerAether); - - void removeValue(long value, IPlayerAether playerAether); - - @SideOnly(Side.CLIENT) - IGuiCurrencyValue createCurrencyValueGui(Rect rect); - - @SideOnly(Side.CLIENT) - IGuiCurrencyValue createBuyItemCurrencyValueGui(Rect rect); - - @SideOnly(Side.CLIENT) - IGuiCurrencyValue createSellItemCurrencyValueGui(Rect rect); - - void listenForCurrency(IPlayerAether playerAether, ICurrencyListener listener); - - boolean unlistenForCurrency(IPlayerAether playerAether, ICurrencyListener listener); - - void update(IPlayerAether playerAether); -} diff --git a/src/api/java/com/gildedgames/aether/api/shop/IShopDefinition.java b/src/api/java/com/gildedgames/aether/api/shop/IShopDefinition.java deleted file mode 100644 index 1195fd4b42..0000000000 --- a/src/api/java/com/gildedgames/aether/api/shop/IShopDefinition.java +++ /dev/null @@ -1,17 +0,0 @@ -package com.gildedgames.aether.api.shop; - -import java.util.Collection; -import java.util.List; - -public interface IShopDefinition -{ - List<IShopBuyDefinition> getBuyDefinitions(); - - Collection<String> getUnlocalizedGreetings(); - - int getMaxStock(); - - int getMinStock(); - - String getCurrencyType(); -} diff --git a/src/api/java/com/gildedgames/aether/api/shop/IShopFilter.java b/src/api/java/com/gildedgames/aether/api/shop/IShopFilter.java deleted file mode 100644 index 5ba809d1ff..0000000000 --- a/src/api/java/com/gildedgames/aether/api/shop/IShopFilter.java +++ /dev/null @@ -1,10 +0,0 @@ -package com.gildedgames.aether.api.shop; - -import net.minecraft.item.ItemStack; - -public interface IShopFilter -{ - double getFilteredPrice(IShopInstance instance, ItemStack stack, double originalPrice); - - int getFilteredPrice(IShopInstance instance, ItemStack stack, int originalPrice); -} diff --git a/src/api/java/com/gildedgames/aether/api/shop/IShopInstance.java b/src/api/java/com/gildedgames/aether/api/shop/IShopInstance.java deleted file mode 100644 index e4a3102476..0000000000 --- a/src/api/java/com/gildedgames/aether/api/shop/IShopInstance.java +++ /dev/null @@ -1,27 +0,0 @@ -package com.gildedgames.aether.api.shop; - -import com.gildedgames.orbis.lib.util.mc.NBT; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.inventory.IInventory; -import net.minecraft.util.ResourceLocation; - -import java.util.List; - -public interface IShopInstance extends NBT -{ - ResourceLocation getShopDefinitionLocation(); - - List<IShopBuy> getStock(); - - List<String> getUnlocalizedGreetings(); - - void tick(); - - IInventory getInventory(EntityPlayer player); - - boolean isDirty(); - - void markClean(); - - IShopCurrency getCurrencyType(); -} diff --git a/src/api/java/com/gildedgames/aether/api/shop/IShopInstanceGroup.java b/src/api/java/com/gildedgames/aether/api/shop/IShopInstanceGroup.java deleted file mode 100644 index f797ab358f..0000000000 --- a/src/api/java/com/gildedgames/aether/api/shop/IShopInstanceGroup.java +++ /dev/null @@ -1,14 +0,0 @@ -package com.gildedgames.aether.api.shop; - -import com.gildedgames.orbis.lib.util.mc.NBT; - -import java.util.Collection; - -public interface IShopInstanceGroup extends NBT -{ - IShopInstance getShopInstance(int key); - - void setShopInstance(int key, IShopInstance shopInstance); - - Collection<IShopInstance> getShopInstances(); -} diff --git a/src/api/java/com/gildedgames/aether/api/shop/IShopManager.java b/src/api/java/com/gildedgames/aether/api/shop/IShopManager.java deleted file mode 100644 index 2eab2759ea..0000000000 --- a/src/api/java/com/gildedgames/aether/api/shop/IShopManager.java +++ /dev/null @@ -1,20 +0,0 @@ -package com.gildedgames.aether.api.shop; - -import net.minecraft.util.ResourceLocation; - -import java.util.List; -import java.util.Optional; -import java.util.Random; - -public interface IShopManager -{ - - Optional<IShopDefinition> getShopDefinition(final ResourceLocation resource); - - IShopInstance createInstance(ResourceLocation definitionLocation, IShopDefinition definition, Random rand); - - List<IShopFilter> getGlobalFilters(); - - void registerGlobalFilter(IShopFilter filter); - -} diff --git a/src/api/java/com/gildedgames/aether/api/shop/ShopUtil.java b/src/api/java/com/gildedgames/aether/api/shop/ShopUtil.java deleted file mode 100644 index fa482f5013..0000000000 --- a/src/api/java/com/gildedgames/aether/api/shop/ShopUtil.java +++ /dev/null @@ -1,53 +0,0 @@ -package com.gildedgames.aether.api.shop; - -import com.gildedgames.aether.api.AetherAPI; -import net.minecraft.item.ItemStack; - -import java.util.List; - -public class ShopUtil -{ - public static int getFilteredPrice(IShopInstance instance, ItemStack stack, int price, List<IShopFilter> filters) - { - int filteredPrice = price; - - for (IShopFilter filter : filters) - { - filteredPrice = filter.getFilteredPrice(instance, stack, filteredPrice); - } - - return filteredPrice; - } - - public static int getFilteredPrice(IShopInstance instance, ItemStack stack, int price) - { - return getFilteredPrice(instance, stack, price, AetherAPI.content().shop().getGlobalFilters()); - } - - public static double getFilteredPrice(IShopInstance instance, ItemStack stack, double price, List<IShopFilter> filters) - { - double filteredPrice = price; - - for (IShopFilter filter : filters) - { - filteredPrice = filter.getFilteredPrice(instance, stack, filteredPrice); - } - - return filteredPrice; - } - - public static int getFilteredPrice(IShopInstance instance, IShopBuy buy, List<IShopFilter> filters) - { - return getFilteredPrice(instance, buy.getItemStack(), buy.getPrice(), filters); - } - - public static int getFilteredPrice(IShopInstance instance, IShopBuy buy) - { - return getFilteredPrice(instance, buy, AetherAPI.content().shop().getGlobalFilters()); - } - - public static double getFilteredPrice(IShopInstance instance, ItemStack stack, double price) - { - return getFilteredPrice(instance, stack, price, AetherAPI.content().shop().getGlobalFilters()); - } -} diff --git a/src/api/java/com/gildedgames/aether/api/travellers_guidebook/ITGDefinition.java b/src/api/java/com/gildedgames/aether/api/travellers_guidebook/ITGDefinition.java deleted file mode 100644 index de7b13c23a..0000000000 --- a/src/api/java/com/gildedgames/aether/api/travellers_guidebook/ITGDefinition.java +++ /dev/null @@ -1,20 +0,0 @@ -package com.gildedgames.aether.api.travellers_guidebook; - -import com.gildedgames.aether.api.player.conditions.IConditionResolution; -import com.gildedgames.aether.api.player.conditions.IPlayerCondition; - -import javax.annotation.Nonnull; -import java.util.Collection; -import java.util.Map; - -public interface ITGDefinition -{ - @Nonnull - Collection<IPlayerCondition> conditions(); - - @Nonnull - IConditionResolution resolution(); - - @Nonnull - Map<String, ITGEntry> entries(); -} diff --git a/src/api/java/com/gildedgames/aether/api/travellers_guidebook/ITGEntry.java b/src/api/java/com/gildedgames/aether/api/travellers_guidebook/ITGEntry.java deleted file mode 100644 index 71be17fb2d..0000000000 --- a/src/api/java/com/gildedgames/aether/api/travellers_guidebook/ITGEntry.java +++ /dev/null @@ -1,39 +0,0 @@ -package com.gildedgames.aether.api.travellers_guidebook; - -import com.gildedgames.aether.api.player.IPlayerAether; -import com.gildedgames.aether.api.player.conditions.IConditionResolution; -import com.gildedgames.aether.api.player.conditions.IPlayerCondition; -import net.minecraft.util.ResourceLocation; - -import java.util.Collection; - -public interface ITGEntry -{ - /** - * Called by the TGManager giving this entry the opportunity to - * populate and manually register player conditions that are used - * for sub data within this entry. - * - * This is especially useful if you need to transform any data - * detailed by the json into extra entries, instead of getting - * the designer to manually fill those entries out and understand - * the intricate relationships between them. - * - * Should return Collections.emptyList() if this entry does not want - * any sub player conditions. - * @return The player conditions this entry wants to register. - */ - Collection<IPlayerCondition> providePlayerConditions(); - - String getTag(); - - IConditionResolution getConditionResolution(); - - void setConditionResolution(IConditionResolution conditionResolution); - - Collection<ResourceLocation> getConditionIDs(); - - void setConditionIDs(Collection<ResourceLocation> conditionIDs); - - boolean isUnlocked(IPlayerAether playerAether); -} diff --git a/src/api/java/com/gildedgames/aether/api/travellers_guidebook/ITGManager.java b/src/api/java/com/gildedgames/aether/api/travellers_guidebook/ITGManager.java deleted file mode 100644 index c4b6103673..0000000000 --- a/src/api/java/com/gildedgames/aether/api/travellers_guidebook/ITGManager.java +++ /dev/null @@ -1,26 +0,0 @@ -package com.gildedgames.aether.api.travellers_guidebook; - -import net.minecraft.util.ResourceLocation; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; - -import java.util.List; -import java.util.Optional; - -public interface ITGManager -{ - void registerEntry(ResourceLocation entry); - - void load(); - - void unload(); - - List<ITGEntry> getEntriesWithTag(String tag); - - <T extends ITGEntry> List<T> getEntriesWithTagAndClass(String tag, Class<T> clazzType); - - <T extends ITGEntry> Optional<T> getEntry(String entryId, Class<T> clazzType); - - @SideOnly(Side.CLIENT) - void attachReloadListener(); -} diff --git a/src/api/java/com/gildedgames/aether/api/travellers_guidebook/entries/ITGEntryBestiaryPage.java b/src/api/java/com/gildedgames/aether/api/travellers_guidebook/entries/ITGEntryBestiaryPage.java deleted file mode 100644 index 1ee37c9c5d..0000000000 --- a/src/api/java/com/gildedgames/aether/api/travellers_guidebook/entries/ITGEntryBestiaryPage.java +++ /dev/null @@ -1,44 +0,0 @@ -package com.gildedgames.aether.api.travellers_guidebook.entries; - -import com.gildedgames.aether.api.cache.IEntityStats; -import com.gildedgames.aether.api.player.IPlayerAether; -import net.minecraft.util.ResourceLocation; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; - -public interface ITGEntryBestiaryPage extends ITGEntryEntity -{ - @SideOnly(Side.CLIENT) - ResourceLocation getSilhouetteTexture(); - - @SideOnly(Side.CLIENT) - ResourceLocation getDiscoveredTexture(); - - @SideOnly(Side.CLIENT) - ResourceLocation getDiscoveredSlotTexture(); - - @SideOnly(Side.CLIENT) - ResourceLocation getSilhouetteSlotTexture(); - - IEntityStats getEntityStats(); - - String getUnlocalizedDescription(); - - String getEntityName(); - - /** - * Whether or not the player has killed or fed the beast. - * @param playerAether - * @return Whether or not the player has killed or fed the beast. - */ - boolean isUnderstood(IPlayerAether playerAether); - - /** - * The complete overview of the bestiary page includes - * the description of the creature as well as a visible - * pixel art portrait of the creature. - * - * @return Whether or not the complete overview has been unlocked. - */ - boolean hasUnlockedCompleteOverview(IPlayerAether playerAether); -} diff --git a/src/api/java/com/gildedgames/aether/api/travellers_guidebook/entries/ITGEntryEffects.java b/src/api/java/com/gildedgames/aether/api/travellers_guidebook/entries/ITGEntryEffects.java deleted file mode 100644 index d53b70c0de..0000000000 --- a/src/api/java/com/gildedgames/aether/api/travellers_guidebook/entries/ITGEntryEffects.java +++ /dev/null @@ -1,8 +0,0 @@ -package com.gildedgames.aether.api.travellers_guidebook.entries; - -import com.gildedgames.aether.api.travellers_guidebook.ITGEntry; - -public interface ITGEntryEffects extends ITGEntry -{ - String getEffectName(); -} diff --git a/src/api/java/com/gildedgames/aether/api/travellers_guidebook/entries/ITGEntryEffectsPage.java b/src/api/java/com/gildedgames/aether/api/travellers_guidebook/entries/ITGEntryEffectsPage.java deleted file mode 100644 index 94594f6b56..0000000000 --- a/src/api/java/com/gildedgames/aether/api/travellers_guidebook/entries/ITGEntryEffectsPage.java +++ /dev/null @@ -1,41 +0,0 @@ -package com.gildedgames.aether.api.travellers_guidebook.entries; - -import com.gildedgames.aether.api.player.IPlayerAether; -import net.minecraft.util.ResourceLocation; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; - -import java.util.ArrayList; -import java.util.List; - -public interface ITGEntryEffectsPage extends ITGEntryEffects -{ - - @SideOnly(Side.CLIENT) - ResourceLocation getDisplayTexture(); - - @SideOnly(Side.CLIENT) - ResourceLocation getSlotTexture(); - - String getUnlocalizedDescription(); - - List<String> getCurativeItems(); - - String getLocalizedEffectName(); - - /** - * Whether or not the player has killed or fed the beast. - * @param playerAether - * @return Whether or not the player has killed or fed the beast. - */ - boolean isUnderstood(IPlayerAether playerAether); - - /** - * The complete overview of the bestiary page includes - * the description of the creature as well as a visible - * pixel art portrait of the creature. - * - * @return Whether or not the complete overview has been unlocked. - */ - boolean hasUnlockedCompleteOverview(IPlayerAether playerAether); -} diff --git a/src/api/java/com/gildedgames/aether/api/travellers_guidebook/entries/ITGEntryEntity.java b/src/api/java/com/gildedgames/aether/api/travellers_guidebook/entries/ITGEntryEntity.java deleted file mode 100644 index 507612d1e9..0000000000 --- a/src/api/java/com/gildedgames/aether/api/travellers_guidebook/entries/ITGEntryEntity.java +++ /dev/null @@ -1,9 +0,0 @@ -package com.gildedgames.aether.api.travellers_guidebook.entries; - -import com.gildedgames.aether.api.travellers_guidebook.ITGEntry; -import net.minecraft.util.ResourceLocation; - -public interface ITGEntryEntity extends ITGEntry -{ - ResourceLocation getEntityId(); -} diff --git a/src/api/java/com/gildedgames/aether/api/util/FunctionBoolean.java b/src/api/java/com/gildedgames/aether/api/util/FunctionBoolean.java deleted file mode 100644 index 10923847fc..0000000000 --- a/src/api/java/com/gildedgames/aether/api/util/FunctionBoolean.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.gildedgames.aether.api.util; - -import java.util.Objects; -import java.util.function.Function; - -public interface FunctionBoolean<T> extends Function<T, Boolean> -{ - default Function<T, Boolean> or(Function<? super T, ? extends Boolean> after) - { - Objects.requireNonNull(after); - return (b) -> after.apply(b) || this.apply(b); - } -} \ No newline at end of file diff --git a/src/api/java/com/gildedgames/aether/api/util/ItemMetaPair.java b/src/api/java/com/gildedgames/aether/api/util/ItemMetaPair.java deleted file mode 100644 index dc35f73072..0000000000 --- a/src/api/java/com/gildedgames/aether/api/util/ItemMetaPair.java +++ /dev/null @@ -1,51 +0,0 @@ -package com.gildedgames.aether.api.util; - -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; - -public class ItemMetaPair -{ - private final Item item; - - private final int meta; - - public ItemMetaPair(ItemStack stack) - { - this(stack.getItem(), stack.isItemStackDamageable() ? stack.getItemDamage() : 0); - } - - public ItemMetaPair(Item item, int meta) - { - this.item = item; - this.meta = meta; - } - - public Item getItem() - { - return this.item; - } - - public int getMeta() - { - return this.meta; - } - - @Override - public int hashCode() - { - return Item.getIdFromItem(this.item); - } - - @Override - public boolean equals(Object obj) - { - if (obj instanceof ItemMetaPair) - { - ItemMetaPair pair = (ItemMetaPair) obj; - - return pair.item == this.item && pair.meta == this.meta; - } - - return false; - } -} diff --git a/src/api/java/com/gildedgames/aether/api/util/NoiseUtil.java b/src/api/java/com/gildedgames/aether/api/util/NoiseUtil.java deleted file mode 100644 index 68f52afaab..0000000000 --- a/src/api/java/com/gildedgames/aether/api/util/NoiseUtil.java +++ /dev/null @@ -1,57 +0,0 @@ -package com.gildedgames.aether.api.util; - -public class NoiseUtil -{ - - public static float lerpReverse(final float b, final float a, final float f) - { - return (a * (1.0F - f)) + (b * f); - } - - public static float lerp(final float a, final float b, final float f) - { - return (a * (1.0F - f)) + (b * f); - } - - public static double lerp(final double a, final double b, final double f) - { - return (a * (1.0 - f)) + (b * f); - } - - public static double genNoise(final OpenSimplexNoise noise, final double nx, final double ny, final double nz) - { - // Generate evalNormalised for X/Z coordinate - final double noise1 = noise.eval(nx, ny, nz); - final double noise2 = 0.5D * noise.eval(nx * 8D, ny * 8D, nz * 8D); - final double noise3 = 0.25D * noise.eval(nx * 16D, ny * 16D, nz * 16D); - final double noise4 = 0.1D * noise.eval(nx * 32D, ny * 32D, nz * 32D); - - // Averages evalNormalised samples linearly - return (noise1 + noise2 + noise3 + noise4) / 4.0D; - } - - public static double normalise(final double value) - { - return 0.5 + (value * 0.5); - } - - public static double something(final OpenSimplexNoise noise, final double x, final double z) - { - double frequency = 0.5; - double amplitude = 1.5; - final double lacunarity = 3.0; - final double gain = 0.25; - final int octaves = 3; - - double total = 0.0; - - for (int i = 0; i < octaves; ++i) - { - total += noise.eval(x * frequency, z * frequency) * amplitude; - frequency *= lacunarity; - amplitude *= gain; - } - - return total; - } -} diff --git a/src/api/java/com/gildedgames/aether/api/util/OpenSimplexNoise.java b/src/api/java/com/gildedgames/aether/api/util/OpenSimplexNoise.java deleted file mode 100644 index 869ea36afb..0000000000 --- a/src/api/java/com/gildedgames/aether/api/util/OpenSimplexNoise.java +++ /dev/null @@ -1,392 +0,0 @@ -package com.gildedgames.aether.api.util; - -/* - * A speed-improved simplex noise algorithm for 2D and 3D in Java. - * - * Based on example code by Stefan Gustavson (stegu@itn.liu.se). - * Optimisations by Peter Eastman (peastman@drizzle.stanford.edu). - * - * "This could be sped up even further, but it's useful as it is." - * - * With additional changes by Angeline (angeline@gildedgames.com) for - * seeding the permutation table. - */ -public class OpenSimplexNoise -{ - // Skewing and unskewing factors for 2, 3, and 4 dimensions - private static final double F2 = 0.5 * (Math.sqrt(3.0) - 1.0); - - private static final double G2 = (3.0 - Math.sqrt(3.0)) / 6.0; - - private static final double F3 = 1.0 / 3.0; - - private static final double G3 = 1.0 / 6.0; - - private static Grad[] GRAD3 = { - new Grad(1, 1, 0), new Grad(-1, 1, 0), new Grad(1, -1, 0), - new Grad(-1, -1, 0), new Grad(1, 0, 1), new Grad(-1, 0, 1), - new Grad(1, 0, -1), new Grad(-1, 0, -1), new Grad(0, 1, 1), - new Grad(0, -1, 1), new Grad(0, 1, -1), new Grad(0, -1, -1) - }; - - // To remove the need for index wrapping, double the permutation table length - private short[] perm = new short[512]; - - private short[] permMod12 = new short[512]; - - public OpenSimplexNoise() - { - this(0L); - } - - public OpenSimplexNoise(long seed) - { - final short[] source = new short[256]; - - for (short i = 0; i < 256; i++) - { - source[i] = i; - } - - seed = seed * 6364136223846793005L + 1442695040888963407L; - seed = seed * 6364136223846793005L + 1442695040888963407L; - seed = seed * 6364136223846793005L + 1442695040888963407L; - - for (int i = 255; i >= 0; i--) - { - seed = seed * 6364136223846793005L + 1442695040888963407L; - - int r = (int) ((seed + 31) % (i + 1)); - - if (r < 0) - { - r += (i + 1); - } - - this.perm[i] = source[r]; - this.perm[i + 256] = source[r]; - this.permMod12[i] = (short) (this.perm[i] % 12); - this.permMod12[i + 256] = (short) (this.perm[i + 256] % 12); - - source[r] = source[i]; - } - } - - // 2D simplex noise - public double eval(double xin, double yin) - { - // Noise contributions from the three corners - double n0, n1, n2; - - // Skew the input space to determine which simplex cell we're in - double s = (xin + yin) * F2; // Hairy factor for 2D - - int i = fastFloor(xin + s); - int j = fastFloor(yin + s); - - double t = (i + j) * G2; - - // Un-skew the cell origin back to (x,y) space - double X0 = i - t; - double Y0 = j - t; - - // The x,y distances from the cell origin - double x0 = xin - X0; - double y0 = yin - Y0; - - // For the 2D case, the simplex shape is an equilateral triangle. - // Determine which simplex we are in. - - // Offsets for second (middle) corner of simplex in (i,j) coordinates - int i1, j1; - - if (x0 > y0) - { - // lower triangle, XY order: (0,0)->(1,0)->(1,1) - i1 = 1; - j1 = 0; - } - else - { - // upper triangle, YX order: (0,0)->(0,1)->(1,1) - i1 = 0; - j1 = 1; - } - - // A step of (1,0) in (i,j) means a step of (1-c,-c) in (x,y), and - // a step of (0,1) in (i,j) means a step of (-c,1-c) in (x,y), where - // c = (3-sqrt(3))/6 - - double x1 = x0 - i1 + G2; // Offsets for middle corner in (x,y) un-skewed coordinates - double y1 = y0 - j1 + G2; - - double x2 = x0 - 1.0 + 2.0 * G2; // Offsets for last corner in (x,y) un-skewed coordinates - double y2 = y0 - 1.0 + 2.0 * G2; - - // Work out the hashed gradient indices of the three simplex corners - int ii = i & 255; - int jj = j & 255; - - int gi0 = this.permMod12[ii + this.perm[jj]]; - int gi1 = this.permMod12[ii + i1 + this.perm[jj + j1]]; - int gi2 = this.permMod12[ii + 1 + this.perm[jj + 1]]; - - // Calculate the contribution from the three corners - double t0 = 0.5 - x0 * x0 - y0 * y0; - - if (t0 < 0.0) - { - n0 = 0.0; - } - else - { - t0 *= t0; - n0 = t0 * t0 * dot(GRAD3[gi0], x0, y0); // (x,y) of grad3 used for 2D gradient - } - - double t1 = 0.5 - x1 * x1 - y1 * y1; - - if (t1 < 0.0) - { - n1 = 0.0; - } - else - { - t1 *= t1; - n1 = t1 * t1 * dot(GRAD3[gi1], x1, y1); - } - - double t2 = 0.5 - x2 * x2 - y2 * y2; - - if (t2 < 0.0) - { - n2 = 0.0; - } - else - { - t2 *= t2; - n2 = t2 * t2 * dot(GRAD3[gi2], x2, y2); - } - - // Add contributions from each corner to get the final noise value. - // The result is scaled to return values in the interval [-1,1]. - return 70.0 * (n0 + n1 + n2); - } - - // 3D simplex noise - public double eval(double xin, double yin, double zin) - { - // Noise contributions from the four corners - double n0, n1, n2, n3; - - // Skew the input space to determine which simplex cell we're in - double s = (xin + yin + zin) * F3; // Very nice and simple skew factor for 3D - - int i = fastFloor(xin + s); - int j = fastFloor(yin + s); - int k = fastFloor(zin + s); - - double t = (i + j + k) * G3; - - // Unskew the cell origin back to (x,y,z) space - double X0 = i - t; - double Y0 = j - t; - double Z0 = k - t; - - // The x,y,z distances from the cell origin - double x0 = xin - X0; - double y0 = yin - Y0; - double z0 = zin - Z0; - - // For the 3D case, the simplex shape is a slightly irregular tetrahedron. - // Determine which simplex we are in. - - // Offsets for second corner of simplex in (i,j,k) coords - int i1, j1, k1; - - // Offsets for third corner of simplex in (i,j,k) coords - int i2, j2, k2; - - if (x0 >= y0) - { - if (y0 >= z0) - { - // X Y Z order - i1 = 1; - j1 = 0; - k1 = 0; - i2 = 1; - j2 = 1; - k2 = 0; - } - else if (x0 >= z0) - { - // X Z Y order - i1 = 1; - j1 = 0; - k1 = 0; - i2 = 1; - j2 = 0; - k2 = 1; - } - else - { - // Z X Y order - i1 = 0; - j1 = 0; - k1 = 1; - i2 = 1; - j2 = 0; - k2 = 1; - } - } - else - { - if (y0 < z0) - { - // Z Y X order - i1 = 0; - j1 = 0; - k1 = 1; - i2 = 0; - j2 = 1; - k2 = 1; - } - else if (x0 < z0) - { - // Y Z X order - i1 = 0; - j1 = 1; - k1 = 0; - i2 = 0; - j2 = 1; - k2 = 1; - } - else - { - // Y X Z order - i1 = 0; - j1 = 1; - k1 = 0; - i2 = 1; - j2 = 1; - k2 = 0; - } - } - - // A step of (1,0,0) in (i,j,k) means a step of (1-c,-c,-c) in (x,y,z), - // a step of (0,1,0) in (i,j,k) means a step of (-c,1-c,-c) in (x,y,z), and - // a step of (0,0,1) in (i,j,k) means a step of (-c,-c,1-c) in (x,y,z), where - // c = 1/6. - - // Offsets for second corner in (x,y,z) coords - double x1 = x0 - i1 + G3; - double y1 = y0 - j1 + G3; - double z1 = z0 - k1 + G3; - - // Offsets for third corner in (x,y,z) coords - double x2 = x0 - i2 + 2.0 * G3; - double y2 = y0 - j2 + 2.0 * G3; - double z2 = z0 - k2 + 2.0 * G3; - - // Offsets for last corner in (x,y,z) coords - double x3 = x0 - 1.0 + 3.0 * G3; - double y3 = y0 - 1.0 + 3.0 * G3; - double z3 = z0 - 1.0 + 3.0 * G3; - - // Work out the hashed gradient indices of the four simplex corners - int ii = i & 255; - int jj = j & 255; - int kk = k & 255; - - int gi0 = this.permMod12[ii + this.perm[jj + this.perm[kk]]]; - int gi1 = this.permMod12[ii + i1 + this.perm[jj + j1 + this.perm[kk + k1]]]; - int gi2 = this.permMod12[ii + i2 + this.perm[jj + j2 + this.perm[kk + k2]]]; - int gi3 = this.permMod12[ii + 1 + this.perm[jj + 1 + this.perm[kk + 1]]]; - - // Calculate the contribution from the four corners - double t0 = 0.6 - x0 * x0 - y0 * y0 - z0 * z0; - - if (t0 < 0.0) - { - n0 = 0.0; - } - else - { - t0 *= t0; - n0 = t0 * t0 * dot(GRAD3[gi0], x0, y0, z0); - } - - double t1 = 0.6 - x1 * x1 - y1 * y1 - z1 * z1; - - if (t1 < 0.0) - { - n1 = 0.0; - } - else - { - t1 *= t1; - n1 = t1 * t1 * dot(GRAD3[gi1], x1, y1, z1); - } - - double t2 = 0.6 - x2 * x2 - y2 * y2 - z2 * z2; - - if (t2 < 0.0) - { - n2 = 0.0; - } - else - { - t2 *= t2; - n2 = t2 * t2 * dot(GRAD3[gi2], x2, y2, z2); - } - - double t3 = 0.6 - x3 * x3 - y3 * y3 - z3 * z3; - - if (t3 < 0.0) - { - n3 = 0.0; - } - else - { - t3 *= t3; - n3 = t3 * t3 * dot(GRAD3[gi3], x3, y3, z3); - } - - // Add contributions from each corner to get the final noise value. - // The result is scaled to stay just inside [-1,1] - return 32.0 * (n0 + n1 + n2 + n3); - } - - // This method is a *lot* faster than using (int)Math.floor(x) - private static int fastFloor(double x) - { - int xi = (int) x; - - return x < xi ? xi - 1 : xi; - } - - private static double dot(Grad g, double x, double y) - { - return g.x * x + g.y * y; - } - - private static double dot(Grad g, double x, double y, double z) - { - return g.x * x + g.y * y + g.z * z; - } - - // Inner class to speed upp gradient computations - // (In Java, array access is a lot slower than member access) - private static class Grad - { - double x, y, z; - - Grad(double x, double y, double z) - { - this.x = x; - this.y = y; - this.z = z; - } - } -} \ No newline at end of file diff --git a/src/api/java/com/gildedgames/aether/api/util/TemplateUtil.java b/src/api/java/com/gildedgames/aether/api/util/TemplateUtil.java deleted file mode 100644 index 247e23840f..0000000000 --- a/src/api/java/com/gildedgames/aether/api/util/TemplateUtil.java +++ /dev/null @@ -1,131 +0,0 @@ -package com.gildedgames.aether.api.util; - -import com.gildedgames.aether.api.world.templates.TemplateDefinition; -import com.gildedgames.aether.api.world.templates.TemplateLoc; -import com.gildedgames.orbis.lib.processing.IBlockAccessExtended; -import net.minecraft.block.Block; -import net.minecraft.block.material.Material; -import net.minecraft.block.state.IBlockState; -import net.minecraft.util.Rotation; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.ChunkPos; -import net.minecraft.world.gen.structure.StructureBoundingBox; - -import java.util.Random; - -public class TemplateUtil -{ - - public static StructureBoundingBox getBoundingBoxFromTemplate(final TemplateDefinition def, final TemplateLoc loc) - { - final Rotation rotation = loc.getSettings().getRotation(); - final BlockPos size = def.getTemplate().transformedSize(rotation); - - final StructureBoundingBox bb = new StructureBoundingBox(0, 0, 0, size.getX(), size.getY() - 1, size.getZ()); - - switch (rotation) - { - case NONE: - default: - break; - case CLOCKWISE_90: - bb.offset(-size.getX(), 0, 0); - break; - case COUNTERCLOCKWISE_90: - bb.offset(0, 0, -size.getZ()); - break; - case CLOCKWISE_180: - bb.offset(-size.getX(), 0, -size.getZ()); - } - - BlockPos pos = loc.getPos(); - - if (loc.isCentered()) - { - pos = TemplateUtil.getCenteredPos(def, loc); - } - - bb.offset(pos.getX(), pos.getY(), pos.getZ()); - - return bb; - } - - public static BlockPos getCenteredPos(final TemplateDefinition def, final TemplateLoc info) - { - BlockPos pos = info.getPos(); - - final BlockPos size = def.getTemplate().transformedSize(info.getSettings().getRotation()); - - switch (info.getSettings().getRotation()) - { - case NONE: - default: - pos = pos.add(-(size.getX() / 2.0) + 1, 0, -(size.getZ() / 2.0) + 1); - break; - case CLOCKWISE_90: - pos = pos.add(size.getX() / 2.0, 0, -(size.getZ() / 2.0) + 1); - break; - case COUNTERCLOCKWISE_90: - pos = pos.add(-(size.getX() / 2.0) + 1, 0, (size.getZ() / 2.0)); - break; - case CLOCKWISE_180: - pos = pos.add((size.getX() / 2.0), 0, (size.getZ() / 2.0)); - break; - } - - if (def.getOffset() != null) - { - pos = pos.add(def.getOffset().process(info.getSettings().getRotation())); - } - - return pos; - } - - public static ChunkPos[] getChunksInsideTemplate(final TemplateDefinition template, final TemplateLoc loc) - { - final StructureBoundingBox bb = TemplateUtil.getBoundingBoxFromTemplate(template, loc); - - final int startChunkX = bb.minX >> 4; - final int startChunkY = bb.minZ >> 4; - - final int endChunkX = bb.maxX >> 4; - final int endChunkY = bb.maxZ >> 4; - - final int width = endChunkX - startChunkX + 1; - final int length = endChunkY - startChunkY + 1; - - final ChunkPos[] chunks = new ChunkPos[width * length]; - - for (int x = 0; x < width; x++) - { - for (int y = 0; y < length; y++) - { - chunks[x + (y * width)] = new ChunkPos(startChunkX + x, startChunkY + y); - } - } - - return chunks; - } - - public static boolean canGrowInto(final Block block) - { - final Material material = block.getDefaultState().getMaterial(); - - return material == Material.AIR || material == Material.LEAVES || material == Material.PLANTS || material == Material.SNOW; - } - - public static boolean isReplaceable(final IBlockAccessExtended world, final BlockPos pos) - { - final IBlockState state = world.getBlockState(pos); - - return state.getBlock().isAir(state, world, pos) || state.getBlock().isLeaves(state, world, pos) - || TemplateUtil.canGrowInto(state.getBlock()); - } - - @SafeVarargs - public static <T> T pickRandom(final Random rand, final T... objects) - { - return objects[rand.nextInt(objects.length)]; - } - -} diff --git a/src/api/java/com/gildedgames/aether/api/world/IChunkInfoAether.java b/src/api/java/com/gildedgames/aether/api/world/IChunkInfoAether.java deleted file mode 100644 index 7a5ecfd9ff..0000000000 --- a/src/api/java/com/gildedgames/aether/api/world/IChunkInfoAether.java +++ /dev/null @@ -1,12 +0,0 @@ -package com.gildedgames.aether.api.world; - -import com.gildedgames.aether.api.world.islands.IIslandChunkInfo; -import com.gildedgames.aether.api.world.preparation.IChunkInfo; - -public interface IChunkInfoAether extends IChunkInfo -{ - void setIslandData(int index, IIslandChunkInfo data); - - @SuppressWarnings("unchecked") - <T extends IIslandChunkInfo> T getIslandData(int index, Class<T> clazz); -} diff --git a/src/api/java/com/gildedgames/aether/api/world/IWorldObjectHoverable.java b/src/api/java/com/gildedgames/aether/api/world/IWorldObjectHoverable.java deleted file mode 100644 index e96e3e5827..0000000000 --- a/src/api/java/com/gildedgames/aether/api/world/IWorldObjectHoverable.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.gildedgames.aether.api.world; - -import net.minecraft.util.math.RayTraceResult; -import net.minecraft.util.text.ITextComponent; -import net.minecraft.world.World; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; - -public interface IWorldObjectHoverable -{ - @SideOnly(Side.CLIENT) - ITextComponent getHoverText(World world, RayTraceResult result); -} diff --git a/src/api/java/com/gildedgames/aether/api/world/decoration/WorldDecoration.java b/src/api/java/com/gildedgames/aether/api/world/decoration/WorldDecoration.java deleted file mode 100644 index c9425aa709..0000000000 --- a/src/api/java/com/gildedgames/aether/api/world/decoration/WorldDecoration.java +++ /dev/null @@ -1,24 +0,0 @@ -package com.gildedgames.aether.api.world.decoration; - -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.World; -import net.minecraftforge.event.terraingen.DecorateBiomeEvent; - -import java.util.Random; - -public interface WorldDecoration -{ - - DecorateBiomeEvent.Decorate.EventType getDecorateType(); - - boolean shouldGenerate(Random random); - - /** - * @return Number of times this decoration should attempt to generate per chunk. - */ - int getGenerationCount(); - - WorldDecorationGenerator getGenerator(Random rand); - - BlockPos findPositionToPlace(World world, Random rand, BlockPos pos); -} diff --git a/src/api/java/com/gildedgames/aether/api/world/decoration/WorldDecorationGenerator.java b/src/api/java/com/gildedgames/aether/api/world/decoration/WorldDecorationGenerator.java deleted file mode 100644 index a2e3416e47..0000000000 --- a/src/api/java/com/gildedgames/aether/api/world/decoration/WorldDecorationGenerator.java +++ /dev/null @@ -1,11 +0,0 @@ -package com.gildedgames.aether.api.world.decoration; - -import com.gildedgames.orbis.lib.world.WorldSlice; -import net.minecraft.util.math.BlockPos; - -import java.util.Random; - -public interface WorldDecorationGenerator -{ - boolean generate(WorldSlice slice, Random rand, BlockPos pos); -} diff --git a/src/api/java/com/gildedgames/aether/api/world/decoration/WorldDecorationPositioner.java b/src/api/java/com/gildedgames/aether/api/world/decoration/WorldDecorationPositioner.java deleted file mode 100644 index d075dc395e..0000000000 --- a/src/api/java/com/gildedgames/aether/api/world/decoration/WorldDecorationPositioner.java +++ /dev/null @@ -1,11 +0,0 @@ -package com.gildedgames.aether.api.world.decoration; - -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.World; - -import java.util.Random; - -public interface WorldDecorationPositioner -{ - BlockPos findPositionToPlace(World world, Random rand, BlockPos pos); -} diff --git a/src/api/java/com/gildedgames/aether/api/world/decoration/WorldDecorationSimple.java b/src/api/java/com/gildedgames/aether/api/world/decoration/WorldDecorationSimple.java deleted file mode 100644 index 66b5cd42fa..0000000000 --- a/src/api/java/com/gildedgames/aether/api/world/decoration/WorldDecorationSimple.java +++ /dev/null @@ -1,75 +0,0 @@ -package com.gildedgames.aether.api.world.decoration; - -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.World; -import net.minecraftforge.event.terraingen.DecorateBiomeEvent.Decorate.EventType; - -import java.util.Random; - -public class WorldDecorationSimple implements WorldDecoration -{ - - private final int count; - - private final WorldDecorationGenerator[] generators; - - private final float percentRequired; - - private final EventType decorateType; - - private final WorldDecorationPositioner positioner; - - public WorldDecorationSimple(final int count, final float percentRequired, EventType decorateType, - WorldDecorationPositioner positioner, final WorldDecorationGenerator... generators) - { - this.decorateType = decorateType; - - for (final WorldDecorationGenerator generator : generators) - { - if (generator == null) - { - throw new IllegalArgumentException("Argument cannot be null"); - } - } - - this.count = count; - this.generators = generators; - this.percentRequired = percentRequired; - this.positioner = positioner; - } - - @Override - public EventType getDecorateType() - { - return this.decorateType; - } - - @Override - public boolean shouldGenerate(final Random random) - { - if (this.percentRequired <= 0) - { - return true; - } - - return random.nextFloat() <= this.percentRequired; - } - - @Override - public int getGenerationCount() - { - return this.count; - } - - @Override - public WorldDecorationGenerator getGenerator(final Random rand) - { - return this.generators[rand.nextInt(this.generators.length)]; - } - - @Override - public final BlockPos findPositionToPlace(World world, Random rand, BlockPos pos) - { - return this.positioner.findPositionToPlace(world, rand, pos); - } -} diff --git a/src/api/java/com/gildedgames/aether/api/world/decoration/WorldDecorationUtil.java b/src/api/java/com/gildedgames/aether/api/world/decoration/WorldDecorationUtil.java deleted file mode 100644 index 1c869651af..0000000000 --- a/src/api/java/com/gildedgames/aether/api/world/decoration/WorldDecorationUtil.java +++ /dev/null @@ -1,68 +0,0 @@ -package com.gildedgames.aether.api.world.decoration; - -import com.gildedgames.aether.api.util.OpenSimplexNoise; -import com.gildedgames.orbis.lib.world.WorldSlice; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.ChunkPos; -import net.minecraft.world.World; -import net.minecraftforge.event.terraingen.TerrainGen; - -import java.util.List; -import java.util.Random; - -public class WorldDecorationUtil -{ - - public static void generateDecorations(List<WorldDecoration> decorations, World world, Random rand, BlockPos pos) - { - ChunkPos chunkPos = new ChunkPos(pos); - - WorldSlice slice = new WorldSlice(world, chunkPos); - - for (final WorldDecoration decoration : decorations) - { - for (int count = 0; count < decoration.getGenerationCount(); count++) - { - if (decoration.shouldGenerate(rand) && TerrainGen.decorate(world, rand, chunkPos, decoration.getDecorateType())) - { - final BlockPos placeAt = decoration.findPositionToPlace(world, rand, pos); - - decoration.getGenerator(rand).generate(slice, rand, placeAt); - } - } - } - } - - public static void generateDecorationsWithNoise(List<WorldDecoration> decorations, World world, Random rand, BlockPos pos, - OpenSimplexNoise noise, float openAreaChance, float clumpedDecorationCountModifier) - { - ChunkPos chunkPos = new ChunkPos(pos); - - WorldSlice slice = new WorldSlice(world, chunkPos); - - for (final WorldDecoration decoration : decorations) - { - for (int count = 0; count < decoration.getGenerationCount() * clumpedDecorationCountModifier; count++) - { - if (decoration.shouldGenerate(rand) && TerrainGen.decorate(world, rand, chunkPos, decoration.getDecorateType())) - { - final BlockPos placeAt = decoration.findPositionToPlace(world, rand, pos); - - boolean isClumped = noise.eval(placeAt.getX() / 100D, placeAt.getZ() / 100D) + 1.0F < rand.nextFloat(); - boolean override = rand.nextFloat() < openAreaChance; - - if (isClumped || override) - { - decoration.getGenerator(rand).generate(slice, rand, placeAt); - - if (!isClumped) - { - break; - } - } - } - } - } - } - -} diff --git a/src/api/java/com/gildedgames/aether/api/world/generation/BlockRotationProcessorExtended.java b/src/api/java/com/gildedgames/aether/api/world/generation/BlockRotationProcessorExtended.java deleted file mode 100644 index c75e653eb5..0000000000 --- a/src/api/java/com/gildedgames/aether/api/world/generation/BlockRotationProcessorExtended.java +++ /dev/null @@ -1,39 +0,0 @@ -package com.gildedgames.aether.api.world.generation; - -import com.gildedgames.aether.api.world.templates.ITemplateProcessorExtended; -import com.gildedgames.orbis.lib.processing.IBlockAccessExtended; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.World; -import net.minecraft.world.gen.structure.template.PlacementSettings; -import net.minecraft.world.gen.structure.template.Template; - -import javax.annotation.Nullable; -import java.util.Random; - -public class BlockRotationProcessorExtended implements ITemplateProcessorExtended -{ - private final float chance; - - private final Random random; - - public BlockRotationProcessorExtended(final BlockPos pos, final PlacementSettings - settings) - { - this.chance = settings.getIntegrity(); - this.random = settings.getRandom(pos); - } - - @Override - @Nullable - public Template.BlockInfo processBlock(final IBlockAccessExtended worldIn, final BlockPos pos, final Template.BlockInfo blockInfoIn) - { - return this.chance < 1.0F && this.random.nextFloat() > this.chance ? null : blockInfoIn; - } - - @Nullable - @Override - public Template.BlockInfo processBlock(final World worldIn, final BlockPos pos, final Template.BlockInfo blockInfoIn) - { - return this.processBlock((IBlockAccessExtended) null, pos, blockInfoIn); - } -} \ No newline at end of file diff --git a/src/api/java/com/gildedgames/aether/api/world/generation/BlueprintWorldGen.java b/src/api/java/com/gildedgames/aether/api/world/generation/BlueprintWorldGen.java deleted file mode 100644 index 8507bdedd8..0000000000 --- a/src/api/java/com/gildedgames/aether/api/world/generation/BlueprintWorldGen.java +++ /dev/null @@ -1,56 +0,0 @@ -package com.gildedgames.aether.api.world.generation; - -import com.gildedgames.aether.api.world.decoration.WorldDecorationGenerator; -import com.gildedgames.orbis.lib.core.BlueprintDefinition; -import com.gildedgames.orbis.lib.core.CreationData; -import com.gildedgames.orbis.lib.core.ICreationData; -import com.gildedgames.orbis.lib.core.baking.BakedBlueprint; -import com.gildedgames.orbis.lib.core.util.BlueprintPlacer; -import com.gildedgames.orbis.lib.processing.BlockAccessWorldSlice; -import com.gildedgames.orbis.lib.processing.DataPrimer; -import com.gildedgames.orbis.lib.world.WorldSlice; -import net.minecraft.util.Rotation; -import net.minecraft.util.math.BlockPos; - -import java.util.Random; - -public class BlueprintWorldGen implements WorldDecorationGenerator -{ - private final BlueprintDefinition def; - - private BakedBlueprint baked; - - public BlueprintWorldGen(final BlueprintDefinition def) - { - this.def = def; - } - - @Override - public boolean generate(WorldSlice slice, Random rand, BlockPos pos) - { - if (this.baked == null) - { - final Rotation rotation = this.def.hasRandomRotation() ? BlueprintPlacer.getRandomRotation(rand) : Rotation.NONE; - - final ICreationData<CreationData> data = new CreationData(slice.getWorld()); - data.rotation(rotation); - - this.baked = new BakedBlueprint(this.def, data); - } - - // We should choose a better location for blueprints which generate at an offset - BlockPos offsetPosition = pos.up(this.def.getFloorHeight()); - - DataPrimer primer = new DataPrimer(new BlockAccessWorldSlice(slice)); - boolean result = primer.canGenerate(this.baked, offsetPosition); - - if (result) - { - primer.place(this.baked, offsetPosition); - - this.baked = null; - } - - return result; - } -} \ No newline at end of file diff --git a/src/api/java/com/gildedgames/aether/api/world/generation/caves/CaveSystemNode.java b/src/api/java/com/gildedgames/aether/api/world/generation/caves/CaveSystemNode.java deleted file mode 100644 index d9b76f653e..0000000000 --- a/src/api/java/com/gildedgames/aether/api/world/generation/caves/CaveSystemNode.java +++ /dev/null @@ -1,20 +0,0 @@ -package com.gildedgames.aether.api.world.generation.caves; - -import java.util.ArrayList; -import java.util.List; - -public class CaveSystemNode -{ - public final List<CaveSystemNode> branches = new ArrayList<>(); - - public final List<CaveSystemTunnel> entries = new ArrayList<>(); - - public CaveSystemNode addBranch() - { - CaveSystemNode node = new CaveSystemNode(); - - this.branches.add(node); - - return node; - } -} diff --git a/src/api/java/com/gildedgames/aether/api/world/generation/caves/CaveSystemTunnel.java b/src/api/java/com/gildedgames/aether/api/world/generation/caves/CaveSystemTunnel.java deleted file mode 100644 index d4242ce226..0000000000 --- a/src/api/java/com/gildedgames/aether/api/world/generation/caves/CaveSystemTunnel.java +++ /dev/null @@ -1,27 +0,0 @@ -package com.gildedgames.aether.api.world.generation.caves; - -public class CaveSystemTunnel -{ - public final double posX, posY, posZ; - - public final boolean isRoom; - - public final double nodeWidthRadius, nodeHeightRadius; - - public final double nodeSizeMultiplier; - - public final int nodesLeft; - - public CaveSystemTunnel(double posX, double posY, double posZ, boolean isRoom, double nodeWidthRadius, double nodeHeightRadius, double nodeSizeMultiplier, - int noOfNodes, int nodeIndex) - { - this.posX = posX; - this.posY = posY; - this.posZ = posZ; - this.isRoom = isRoom; - this.nodeWidthRadius = nodeWidthRadius; - this.nodeHeightRadius = nodeHeightRadius; - this.nodeSizeMultiplier = nodeSizeMultiplier; - this.nodesLeft = noOfNodes - nodeIndex; - } -} diff --git a/src/api/java/com/gildedgames/aether/api/world/generation/caves/ICaveSystemGenerator.java b/src/api/java/com/gildedgames/aether/api/world/generation/caves/ICaveSystemGenerator.java deleted file mode 100644 index b0fded2211..0000000000 --- a/src/api/java/com/gildedgames/aether/api/world/generation/caves/ICaveSystemGenerator.java +++ /dev/null @@ -1,8 +0,0 @@ -package com.gildedgames.aether.api.world.generation.caves; - -public interface ICaveSystemGenerator -{ - CaveSystemNode getNode(int chunkX, int chunkZ); - - int getNeighborChunkSearchRadius(); -} diff --git a/src/api/java/com/gildedgames/aether/api/world/generation/positioners/PositionerLevels.java b/src/api/java/com/gildedgames/aether/api/world/generation/positioners/PositionerLevels.java deleted file mode 100644 index faba2bd529..0000000000 --- a/src/api/java/com/gildedgames/aether/api/world/generation/positioners/PositionerLevels.java +++ /dev/null @@ -1,25 +0,0 @@ -package com.gildedgames.aether.api.world.generation.positioners; - -import com.gildedgames.aether.api.world.decoration.WorldDecorationPositioner; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.World; - -import java.util.Random; - -public class PositionerLevels implements WorldDecorationPositioner -{ - private final int min, max; - - public PositionerLevels(int min, int max) - { - this.min = min; - this.max = max; - } - - @Override - public BlockPos findPositionToPlace(World world, Random rand, BlockPos pos) - { - final int width = 16; - return pos.add(rand.nextInt(width), this.min + rand.nextInt(this.max - this.min), rand.nextInt(width)); - } -} diff --git a/src/api/java/com/gildedgames/aether/api/world/generation/positioners/PositionerSurface.java b/src/api/java/com/gildedgames/aether/api/world/generation/positioners/PositionerSurface.java deleted file mode 100644 index 86bb65749b..0000000000 --- a/src/api/java/com/gildedgames/aether/api/world/generation/positioners/PositionerSurface.java +++ /dev/null @@ -1,19 +0,0 @@ -package com.gildedgames.aether.api.world.generation.positioners; - -import com.gildedgames.aether.api.world.decoration.WorldDecorationPositioner; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.World; - -import java.util.Random; - -public class PositionerSurface implements WorldDecorationPositioner -{ - @Override - public BlockPos findPositionToPlace(World world, Random rand, BlockPos pos) - { - final int x = rand.nextInt(16) + 8; - final int z = rand.nextInt(16) + 8; - - return world.getTopSolidOrLiquidBlock(new BlockPos(pos.getX() + x, pos.getY(), pos.getZ() + z)); - } -} diff --git a/src/api/java/com/gildedgames/aether/api/world/islands/IIslandBounds.java b/src/api/java/com/gildedgames/aether/api/world/islands/IIslandBounds.java deleted file mode 100644 index a2ae2cbd80..0000000000 --- a/src/api/java/com/gildedgames/aether/api/world/islands/IIslandBounds.java +++ /dev/null @@ -1,110 +0,0 @@ -package com.gildedgames.aether.api.world.islands; - -import net.minecraft.nbt.NBTBase; - -public interface IIslandBounds -{ - - /** - * Tests if this bounding box intersects the specified bounding box - * - * @param minX The minimum X value of the box - * @param minY The minimum Y value of the boz - * @param minZ The minimum Z value of the box - * @param maxX The maximum X value of the box - * @param maxY The maximum Y value of the box - * @param maxZ The maximum Z value of the box - * @return True if the boxes intersect - */ - boolean intersects(int minX, int minY, int minZ, int maxX, int maxY, int maxZ); - - /** - * Tests if this bounding box contains the specified bounding box - * - * @param minX The minimum X value of the box - * @param minY The minimum Y value of the boz - * @param minZ The minimum Z value of the box - * @param maxX The maximum X value of the box - * @param maxY The maximum Y value of the box - * @param maxZ The maximum Z value of the box - * @return True if the box is contained - */ - boolean contains(int minX, int minY, int minZ, int maxX, int maxY, int maxZ); - - /** - * Tests if this bounding box contains the point. - * - * @param x The x-coordinate to test - * @param y The y-coordinate to test - * @param z The z-coordinate to test - * @return True if this bounding box contains the point - */ - boolean contains(int x, int y, int z); - - /** - * @return The x-coordinate this bounding box begins at in sector coordinates - */ - int getMinX(); - - /** - * @return The y-coordinate this bounding box begins at in sector coordinates - */ - int getMinY(); - - /** - * @return The z-coordinate this bounding box begins at in sector coordinates - */ - int getMinZ(); - - /** - * @return The width of this bounding box in sector coordinates - */ - int getMaxX(); - - /** - * @return The height of this bounding box in sector coordinates - */ - int getMaxY(); - - /** - * @return The length of this bounding box in sector coordinates - */ - int getMaxZ(); - - /** - * @return The width of this bounding box - */ - int getWidth(); - - /** - * @return The height of this bounding box - */ - int getHeight(); - - /** - * @return The length of this bounding box - */ - int getLength(); - - /** - * @return The center x-coordinate of this bounding box - */ - double getCenterX(); - - /** - * @return The center y-coordinate of this bounding box - */ - double getCenterY(); - - /** - * @return The center z-coordinate of this bounding box - */ - double getCenterZ(); - - /** - * Serializes this bounding box to NBT. - * - * @return A {@link NBTBase} representing this bounding box - */ - NBTBase serialize(); -} diff --git a/src/api/java/com/gildedgames/aether/api/world/islands/IIslandChunkInfo.java b/src/api/java/com/gildedgames/aether/api/world/islands/IIslandChunkInfo.java deleted file mode 100644 index 372fb75e29..0000000000 --- a/src/api/java/com/gildedgames/aether/api/world/islands/IIslandChunkInfo.java +++ /dev/null @@ -1,10 +0,0 @@ -package com.gildedgames.aether.api.world.islands; - -import com.gildedgames.aether.api.world.noise.IChunkNoiseBuffer2D; - -public interface IIslandChunkInfo -{ - IChunkNoiseBuffer2D getTerrainDepthBuffer(); - - IChunkNoiseBuffer2D getCloudDepthBuffer(); -} diff --git a/src/api/java/com/gildedgames/aether/api/world/islands/IIslandData.java b/src/api/java/com/gildedgames/aether/api/world/islands/IIslandData.java deleted file mode 100644 index dad36896ea..0000000000 --- a/src/api/java/com/gildedgames/aether/api/world/islands/IIslandData.java +++ /dev/null @@ -1,90 +0,0 @@ -package com.gildedgames.aether.api.world.islands; - -import com.gildedgames.aether.api.world.decoration.WorldDecoration; -import com.gildedgames.aether.api.world.generation.caves.ICaveSystemGenerator; -import com.gildedgames.aether.api.world.preparation.IPrepSectorData; -import com.gildedgames.orbis.lib.core.PlacedBlueprint; -import com.gildedgames.orbis.lib.core.baking.BakedBlueprint; -import com.gildedgames.orbis.lib.util.mc.NBT; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.biome.Biome; - -import javax.annotation.Nonnull; -import javax.annotation.Nullable; -import java.util.Collection; -import java.util.List; - -public interface IIslandData extends NBT -{ - /** - * The contained components have specialised data, usually - * based on the biome that this island uses. - */ - <T extends NBT> void addComponents(Collection<T> components); - - /** - * The contained components have specialised data, usually - * based on the biome that this island uses. - * @return The components for this Island - */ - Collection<NBT> getComponents(); - - List<WorldDecoration> getBasicDecorations(); - - List<WorldDecoration> getTreeDecorations(); - - float getForestTreeCountModifier(); - - float getOpenAreaDecorationGenChance(); - - @Nonnull - IIslandGenerator getGenerator(); - - /** - * Returns the position of the Outpost on this island. - * - * @return The {@link BlockPos} of this island's Outpost, null if it doesn't exist - */ - @Nullable - BlockPos getOutpostPos(); - - /** - * Sets the position of the Outpost on this island. - * - * @param pos The {@link BlockPos} of the new respawn point, null to remove it. - */ - void setOutpostPos(@Nullable BlockPos pos); - - /** - * Returns the seed of the island used for generation. - * - * @return The seed of the island - */ - long getSeed(); - - PlacedBlueprint placeBlueprint(BakedBlueprint baked, BlockPos pos); - - List<PlacedBlueprint> getPlacedBlueprintsInChunk(int chunkX, int chunkZ); - - /** - * Returns the bounding box of the island. These coordinates are normalized - * to the sector's region. - * - * @return The bounding box of the island - */ - @Nonnull - IIslandBounds getBounds(); - - /** - * @return The biome of this island. - */ - @Nonnull - Biome getBiome(); - - @Nonnull - ICaveSystemGenerator getCaveSystemGenerator(); - - IPrepSectorData getParentSectorData(); - - void tick(); -} diff --git a/src/api/java/com/gildedgames/aether/api/world/islands/IIslandGenerator.java b/src/api/java/com/gildedgames/aether/api/world/islands/IIslandGenerator.java deleted file mode 100644 index 436747f981..0000000000 --- a/src/api/java/com/gildedgames/aether/api/world/islands/IIslandGenerator.java +++ /dev/null @@ -1,18 +0,0 @@ -package com.gildedgames.aether.api.world.islands; - -import com.gildedgames.aether.api.util.OpenSimplexNoise; -import com.gildedgames.aether.api.world.IChunkInfoAether; -import com.gildedgames.aether.api.world.preparation.IChunkMask; -import com.gildedgames.aether.api.world.preparation.IChunkMaskTransformer; - -import javax.annotation.Nonnull; - -public interface IIslandGenerator -{ - void generateChunkSegment(IChunkInfoAether info, IChunkMask mask, IIslandData island, int chunkX, int chunkZ); - - @Nonnull - IIslandChunkInfo generateColumnInfo(OpenSimplexNoise noise, IIslandData island, int chunkX, int chunkZ); - - IChunkMaskTransformer createMaskTransformer(IIslandData island, int chunkX, int chunkZ); -} diff --git a/src/api/java/com/gildedgames/aether/api/world/islands/precipitation/IPrecipitationManager.java b/src/api/java/com/gildedgames/aether/api/world/islands/precipitation/IPrecipitationManager.java deleted file mode 100644 index 40567a7f3d..0000000000 --- a/src/api/java/com/gildedgames/aether/api/world/islands/precipitation/IPrecipitationManager.java +++ /dev/null @@ -1,17 +0,0 @@ -package com.gildedgames.aether.api.world.islands.precipitation; - -import net.minecraft.nbt.NBTTagCompound; -import net.minecraftforge.common.util.INBTSerializable; - -import javax.vecmath.Vector2f; - -public interface IPrecipitationManager extends INBTSerializable<NBTTagCompound> -{ - float getSkyDarkness(); - - PrecipitationStrength getStrength(); - - Vector2f getWindVector(); - - void tick(); -} diff --git a/src/api/java/com/gildedgames/aether/api/world/islands/precipitation/PrecipitationStrength.java b/src/api/java/com/gildedgames/aether/api/world/islands/precipitation/PrecipitationStrength.java deleted file mode 100644 index e4959bd980..0000000000 --- a/src/api/java/com/gildedgames/aether/api/world/islands/precipitation/PrecipitationStrength.java +++ /dev/null @@ -1,50 +0,0 @@ -package com.gildedgames.aether.api.world.islands.precipitation; - -public enum PrecipitationStrength -{ - LIGHT("light"), - HEAVY("heavy"), - STORM("storm"); - - public static final PrecipitationStrength[] VALUES = PrecipitationStrength.values(); - - private final String id; - - PrecipitationStrength(String id) - { - this.id = id; - } - - public static PrecipitationStrength lookup(String name) - { - for (PrecipitationStrength type : PrecipitationStrength.VALUES) - { - if (type.name().equals(name)) - { - return type; - } - } - - return PrecipitationStrength.LIGHT; - } - - public String getResourceId() - { - return this.id; - } - - public float getWindForceMultiplier() - { - switch (this) - { - case LIGHT: - return 0.1f; - case HEAVY: - return 0.2f; - case STORM: - return 0.4f; - } - - return 0.0f; - } -} diff --git a/src/api/java/com/gildedgames/aether/api/world/islands/precipitation/PrecipitationType.java b/src/api/java/com/gildedgames/aether/api/world/islands/precipitation/PrecipitationType.java deleted file mode 100644 index 06978a5b93..0000000000 --- a/src/api/java/com/gildedgames/aether/api/world/islands/precipitation/PrecipitationType.java +++ /dev/null @@ -1,35 +0,0 @@ -package com.gildedgames.aether.api.world.islands.precipitation; - -public enum PrecipitationType -{ - NONE("none"), - RAIN("rain"), - SNOW("snow"); - - private static final PrecipitationType[] VALUES = PrecipitationType.values(); - - private final String id; - - PrecipitationType(String id) - { - this.id = id; - } - - public static PrecipitationType lookup(String name) - { - for (PrecipitationType type : PrecipitationType.VALUES) - { - if (type.name().equals(name)) - { - return type; - } - } - - return PrecipitationType.NONE; - } - - public String getResourceId() - { - return this.id; - } -} diff --git a/src/api/java/com/gildedgames/aether/api/world/noise/IChunkNoiseBuffer2D.java b/src/api/java/com/gildedgames/aether/api/world/noise/IChunkNoiseBuffer2D.java deleted file mode 100644 index 23ed5fe3de..0000000000 --- a/src/api/java/com/gildedgames/aether/api/world/noise/IChunkNoiseBuffer2D.java +++ /dev/null @@ -1,6 +0,0 @@ -package com.gildedgames.aether.api.world.noise; - -public interface IChunkNoiseBuffer2D -{ - float get(int x, int z); -} diff --git a/src/api/java/com/gildedgames/aether/api/world/noise/IChunkNoiseBuffer3D.java b/src/api/java/com/gildedgames/aether/api/world/noise/IChunkNoiseBuffer3D.java deleted file mode 100644 index b2547b9d1f..0000000000 --- a/src/api/java/com/gildedgames/aether/api/world/noise/IChunkNoiseBuffer3D.java +++ /dev/null @@ -1,6 +0,0 @@ -package com.gildedgames.aether.api.world.noise; - -public interface IChunkNoiseBuffer3D -{ - float get(int x, int y, int z); -} diff --git a/src/api/java/com/gildedgames/aether/api/world/noise/INoiseGenerator2D.java b/src/api/java/com/gildedgames/aether/api/world/noise/INoiseGenerator2D.java deleted file mode 100644 index b7272cf197..0000000000 --- a/src/api/java/com/gildedgames/aether/api/world/noise/INoiseGenerator2D.java +++ /dev/null @@ -1,6 +0,0 @@ -package com.gildedgames.aether.api.world.noise; - -public interface INoiseGenerator2D -{ - double generate(double worldX, double worldZ); -} diff --git a/src/api/java/com/gildedgames/aether/api/world/noise/INoiseTransformer.java b/src/api/java/com/gildedgames/aether/api/world/noise/INoiseTransformer.java deleted file mode 100644 index 3299f7114c..0000000000 --- a/src/api/java/com/gildedgames/aether/api/world/noise/INoiseTransformer.java +++ /dev/null @@ -1,6 +0,0 @@ -package com.gildedgames.aether.api.world.noise; - -public interface INoiseTransformer -{ - double transform(double v); -} diff --git a/src/api/java/com/gildedgames/aether/api/world/preparation/IChunkInfo.java b/src/api/java/com/gildedgames/aether/api/world/preparation/IChunkInfo.java deleted file mode 100644 index cda1fea109..0000000000 --- a/src/api/java/com/gildedgames/aether/api/world/preparation/IChunkInfo.java +++ /dev/null @@ -1,6 +0,0 @@ -package com.gildedgames.aether.api.world.preparation; - -public interface IChunkInfo -{ - -} diff --git a/src/api/java/com/gildedgames/aether/api/world/preparation/IChunkMask.java b/src/api/java/com/gildedgames/aether/api/world/preparation/IChunkMask.java deleted file mode 100644 index c2519d0ccc..0000000000 --- a/src/api/java/com/gildedgames/aether/api/world/preparation/IChunkMask.java +++ /dev/null @@ -1,22 +0,0 @@ -package com.gildedgames.aether.api.world.preparation; - -public interface IChunkMask -{ - void setBlock(int x, int y, int z, int b); - - int getBlock(int x, int y, int z); - - int getX(); - - int getZ(); - - IChunkMaskSegment getSegment(int y); - - int getMaxYSegment(); - - int getMinYSegment(); - - int getHighestBlock(int x, int z); - - void fill(int b); -} diff --git a/src/api/java/com/gildedgames/aether/api/world/preparation/IChunkMaskSegment.java b/src/api/java/com/gildedgames/aether/api/world/preparation/IChunkMaskSegment.java deleted file mode 100644 index 1d58f29e97..0000000000 --- a/src/api/java/com/gildedgames/aether/api/world/preparation/IChunkMaskSegment.java +++ /dev/null @@ -1,10 +0,0 @@ -package com.gildedgames.aether.api.world.preparation; - -public interface IChunkMaskSegment -{ - void setBlock(int x, int y, int z, int b); - - int getBlock(int x, int y, int z); - - void fill(int b); -} diff --git a/src/api/java/com/gildedgames/aether/api/world/preparation/IChunkMaskTransformer.java b/src/api/java/com/gildedgames/aether/api/world/preparation/IChunkMaskTransformer.java deleted file mode 100644 index f95146daa4..0000000000 --- a/src/api/java/com/gildedgames/aether/api/world/preparation/IChunkMaskTransformer.java +++ /dev/null @@ -1,10 +0,0 @@ -package com.gildedgames.aether.api.world.preparation; - -import net.minecraft.block.state.IBlockState; - -public interface IChunkMaskTransformer -{ - IBlockState getBlockState(int key); - - int getBlockCount(); -} diff --git a/src/api/java/com/gildedgames/aether/api/world/preparation/IPrepChunkManager.java b/src/api/java/com/gildedgames/aether/api/world/preparation/IPrepChunkManager.java deleted file mode 100644 index 195ce6d690..0000000000 --- a/src/api/java/com/gildedgames/aether/api/world/preparation/IPrepChunkManager.java +++ /dev/null @@ -1,15 +0,0 @@ -package com.gildedgames.aether.api.world.preparation; - -import net.minecraft.world.World; - -/** - * Actually manages the chunks within a world. - */ -public interface IPrepChunkManager<T extends IChunkInfo> -{ - World getWorld(); - - IChunkMask getChunk(IPrepSectorData sectorData, final int chunkX, final int chunkZ); - - IChunkMaskTransformer createMaskTransformer(); -} diff --git a/src/api/java/com/gildedgames/aether/api/world/preparation/IPrepManager.java b/src/api/java/com/gildedgames/aether/api/world/preparation/IPrepManager.java deleted file mode 100644 index bb82dad975..0000000000 --- a/src/api/java/com/gildedgames/aether/api/world/preparation/IPrepManager.java +++ /dev/null @@ -1,12 +0,0 @@ -package com.gildedgames.aether.api.world.preparation; - -public interface IPrepManager -{ - IPrepRegistryEntry getRegistryEntry(); - - IPrepSectorAccess getAccess(); - - IPrepSectorData createSector(int sectorX, int sectorZ); - - void decorateSectorData(IPrepSectorData data); -} diff --git a/src/api/java/com/gildedgames/aether/api/world/preparation/IPrepRegistry.java b/src/api/java/com/gildedgames/aether/api/world/preparation/IPrepRegistry.java deleted file mode 100644 index e245d464ce..0000000000 --- a/src/api/java/com/gildedgames/aether/api/world/preparation/IPrepRegistry.java +++ /dev/null @@ -1,12 +0,0 @@ -package com.gildedgames.aether.api.world.preparation; - -import java.util.List; - -public interface IPrepRegistry -{ - - void register(IPrepRegistryEntry registration); - - List<IPrepRegistryEntry> getEntries(); - -} diff --git a/src/api/java/com/gildedgames/aether/api/world/preparation/IPrepRegistryEntry.java b/src/api/java/com/gildedgames/aether/api/world/preparation/IPrepRegistryEntry.java deleted file mode 100644 index 8b790f8018..0000000000 --- a/src/api/java/com/gildedgames/aether/api/world/preparation/IPrepRegistryEntry.java +++ /dev/null @@ -1,34 +0,0 @@ -package com.gildedgames.aether.api.world.preparation; - -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.util.ResourceLocation; -import net.minecraft.world.World; - -/** - * Implementations will handle the creation of IPrepSectors. - * Example is a registration which finds locations to place Blueprints, then - * schedules them into the sector. - */ -public interface IPrepRegistryEntry<T> -{ - ResourceLocation getUniqueId(); - - /** - * @return The area size of each IPrepSectorData created by this registration. - */ - int getSectorChunkArea(); - - boolean shouldAttachTo(World world); - - void postSectorDataCreate(World world, IPrepSectorData data); - - IPrepSectorData createData(World world, long seed, int sectorX, int sectorY); - - IPrepSectorData createDataAndRead(World world, NBTTagCompound tag); - - void threadSafeGenerateMask(T info, World world, IPrepSectorData sectorData, IChunkMask mask, int x, int z); - - IChunkMaskTransformer createMaskTransformer(); - - T generateChunkColumnInfo(World world, IPrepSectorData sectorData, int chunkX, int chunkY); -} diff --git a/src/api/java/com/gildedgames/aether/api/world/preparation/IPrepSector.java b/src/api/java/com/gildedgames/aether/api/world/preparation/IPrepSector.java deleted file mode 100644 index a0101c4f00..0000000000 --- a/src/api/java/com/gildedgames/aether/api/world/preparation/IPrepSector.java +++ /dev/null @@ -1,40 +0,0 @@ -package com.gildedgames.aether.api.world.preparation; - -public interface IPrepSector -{ - /** - * @return This sector's data. - */ - IPrepSectorData getData(); - - /** - * Adds a belonging loaded chunk to this sector. - * @param chunkX The chunk's x-coordinate - * @param chunkZ The chunk's z-coordinate - * - * @return True if the chunk wasn't watching before - */ - boolean addWatchingChunk(int chunkX, int chunkZ); - - /** - * Removes a loaded chunk belonging to this sector. - * @param chunkX The chunk's x-coordinate - * @param chunkZ The chunk's z-coordinate - * - * @return True if the chunk was watching - */ - boolean removeWatchingChunk(int chunkX, int chunkZ); - - void addWatchingPlayer(int entityId); - - void removeWatchingPlayer(int entityId); - - /** - * @return True if the sector has currently watching chunks or watching players - */ - boolean hasWatchers(); - - int getDormantTicks(); - - void tick(); -} diff --git a/src/api/java/com/gildedgames/aether/api/world/preparation/IPrepSectorAccess.java b/src/api/java/com/gildedgames/aether/api/world/preparation/IPrepSectorAccess.java deleted file mode 100644 index e88ccfe412..0000000000 --- a/src/api/java/com/gildedgames/aether/api/world/preparation/IPrepSectorAccess.java +++ /dev/null @@ -1,97 +0,0 @@ -package com.gildedgames.aether.api.world.preparation; - -import com.google.common.util.concurrent.ListenableFuture; - -import java.util.Collection; -import java.util.Optional; - -public interface IPrepSectorAccess -{ - /** - * Fetches an {@link IPrepSector} from the world that belongs to the chunk at the specified coordinates. - * - * This will only return currently loaded sectors. Use {@link IPrepSectorAccess#provideSectorForChunk(int, int, boolean)} - * if you want to fetch offline sectors or generate new ones. - * - * @param sectorX The x-coordinate of the sector - * @param sectorZ The z-coordinate of the sector - * - * @return The {@link IPrepSector}, if it exists and is loaded in the world, otherwise empty - */ - Optional<IPrepSector> getLoadedSector(int sectorX, int sectorZ); - - /** - * Fetches an {@link IPrepSector} from the world at the specified sector coordinates. - * - * This will only return currently loaded sectors. Use {@link IPrepSectorAccess#provideSectorForChunk(int, int, boolean)} - * if you want to fetch offline sectors or generate new ones. - * - * @param sectorX The x-coordinate of the chunk - * @param sectorZ The z-coordinate of the chunk - * - * @return The {@link IPrepSector}, if it exists and is loaded in the world, otherwise empty - */ - Optional<IPrepSector> getLoadedSectorForChunk(int sectorX, int sectorZ); - - /** - * Fetches an {@link IPrepSector} from the world that belongs to the specified chunk. - * - * If the sector is not already in memory, it will be loaded from disk synchronously and - * loaded. If the sector has not been created yet, the sector will be generated and marked as - * dirty for saving later. - * - * @param sectorX The x-coordinate of the chunk - * @param sectorZ The y-coordinate of the chunk - * @param background True if the sector should be generated on another thread, or False if it should be - * immediately completed - * - * @return The {@link IPrepSector} for the chunk - */ - ListenableFuture<IPrepSector> provideSector(int sectorX, int sectorZ, boolean background); - - /** - * Fetches an {@link IPrepSector} from the world that belongs to the specified chunk. - * - * If the sector is not already in memory, it will be loaded from disk synchronously and - * loaded. If the sector has not been created yet, the sector will be generated and marked as - * dirty for saving later. - * - * @param chunkX The x-coordinate of the chunk - * @param chunkZ The y-coordinate of the chunk - * @param background True if the sector should be generated on another thread, or False if it should be - * immediately completed - * - * @return The {@link IPrepSector} for the chunk - */ - ListenableFuture<IPrepSector> provideSectorForChunk(int chunkX, int chunkZ, boolean background); - - /** - * Called when a chunk possibly containing a sector is loaded for the world. - * - * If the sector for the chunk is not already loaded, it will load the sector from disk - * synchronously. This will not generate new sectors. - * - * @param chunkX The x-coordinate of the chunk - * @param chunkZ The y-coordinate of the chunk - */ - void onChunkLoaded(int chunkX, int chunkZ); - - /** - * Called when a chunk is unloaded from the world, hinting to the access to - * unload the sector. - * - * @param chunkX The x-coordinate of the sector - * @param chunkZ The y-coordinate of the sector - */ - void onChunkUnloaded(int chunkX, int chunkZ); - - /** - * Called to retain a sector in memory. If no entities are watching the sector, this method will do nothing. If - * a sector no longer has any watching entities when it is saved, it will be unloaded. - */ - void retainSector(IPrepSector sector); - - Collection<IPrepSector> getLoadedSectors(); - - void update(); -} diff --git a/src/api/java/com/gildedgames/aether/api/world/preparation/IPrepSectorAccessClient.java b/src/api/java/com/gildedgames/aether/api/world/preparation/IPrepSectorAccessClient.java deleted file mode 100644 index ba68f2f759..0000000000 --- a/src/api/java/com/gildedgames/aether/api/world/preparation/IPrepSectorAccessClient.java +++ /dev/null @@ -1,8 +0,0 @@ -package com.gildedgames.aether.api.world.preparation; - -public interface IPrepSectorAccessClient extends IPrepSectorAccess -{ - void addSector(IPrepSector sector); - - void removeSector(IPrepSector sector); -} diff --git a/src/api/java/com/gildedgames/aether/api/world/preparation/IPrepSectorData.java b/src/api/java/com/gildedgames/aether/api/world/preparation/IPrepSectorData.java deleted file mode 100644 index c5b47d99a2..0000000000 --- a/src/api/java/com/gildedgames/aether/api/world/preparation/IPrepSectorData.java +++ /dev/null @@ -1,35 +0,0 @@ -package com.gildedgames.aether.api.world.preparation; - -import com.gildedgames.orbis.lib.util.mc.NBT; - -/** - * A sector of variable size which holds data for future generation. - * These are used to prepare the terrain data in memory, then use it to - * coordinate structures and other data ahead of time. - * - * Sectors do not hold any chunks, but rather just the data relevant to that sector - * (such as Blueprints). - */ -public interface IPrepSectorData extends NBT -{ - /** - * @return True if this sector should be saved again, such as if it's data has changed. - */ - boolean isDirty(); - - /** - * Marks the sector as dirty for saving later. - */ - void markDirty(); - - /** - * Marks the sector as clean. Should be called after saving. - */ - void markClean(); - - int getSectorX(); - - int getSectorY(); - - long getSeed(); -} \ No newline at end of file diff --git a/src/api/java/com/gildedgames/aether/api/world/spawn/IPositionSelector.java b/src/api/java/com/gildedgames/aether/api/world/spawn/IPositionSelector.java deleted file mode 100644 index 3441b7dbfb..0000000000 --- a/src/api/java/com/gildedgames/aether/api/world/spawn/IPositionSelector.java +++ /dev/null @@ -1,12 +0,0 @@ -package com.gildedgames.aether.api.world.spawn; - -import net.minecraft.world.World; - -public interface IPositionSelector -{ - - int getPosY(World world, int posX, int posZ); - - int getScatter(World world); - -} diff --git a/src/api/java/com/gildedgames/aether/api/world/spawn/ISpawnArea.java b/src/api/java/com/gildedgames/aether/api/world/spawn/ISpawnArea.java deleted file mode 100644 index a75af27da7..0000000000 --- a/src/api/java/com/gildedgames/aether/api/world/spawn/ISpawnArea.java +++ /dev/null @@ -1,32 +0,0 @@ -package com.gildedgames.aether.api.world.spawn; - -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.util.math.ChunkPos; -import net.minecraftforge.common.util.INBTSerializable; - -public interface ISpawnArea extends INBTSerializable<NBTTagCompound> -{ - ChunkPos getMinChunkPos(); - - ChunkPos getMaxChunkPos(); - - int getAreaX(); - - int getAreaZ(); - - void addToEntityCount(int count); - - int getEntityCount(); - - void setEntityCount(int entityCount); - - boolean hasPlayerInside(); - - void setInPlayersRenderDistance(boolean flag); - - boolean isDirty(); - - void markDirty(); - - void markClean(); -} diff --git a/src/api/java/com/gildedgames/aether/api/world/spawn/ISpawnAreaManager.java b/src/api/java/com/gildedgames/aether/api/world/spawn/ISpawnAreaManager.java deleted file mode 100644 index ca9e0b6b47..0000000000 --- a/src/api/java/com/gildedgames/aether/api/world/spawn/ISpawnAreaManager.java +++ /dev/null @@ -1,20 +0,0 @@ -package com.gildedgames.aether.api.world.spawn; - -import com.gildedgames.orbis.lib.world.data.IWorldData; -import net.minecraft.world.World; -import net.minecraftforge.event.entity.living.LivingDeathEvent; - -import java.util.Collection; - -public interface ISpawnAreaManager extends IWorldData -{ - World getWorld(); - - void tick(); - - Collection<ISpawnArea> getLoaded(); - - ISpawnArea getLoadedArea(int areaX, int areaZ); - - void onLivingDeath(LivingDeathEvent event); -} diff --git a/src/api/java/com/gildedgames/aether/api/world/spawn/ISpawnEntry.java b/src/api/java/com/gildedgames/aether/api/world/spawn/ISpawnEntry.java deleted file mode 100644 index 7b886fd9aa..0000000000 --- a/src/api/java/com/gildedgames/aether/api/world/spawn/ISpawnEntry.java +++ /dev/null @@ -1,26 +0,0 @@ -package com.gildedgames.aether.api.world.spawn; - -import com.gildedgames.aether.api.world.spawn.conditions.IConditionPosition; -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLiving; - -import java.util.List; - -public interface ISpawnEntry -{ - EntityLiving.SpawnPlacementType getPlacementType(); - - ISpawnEntry addCondition(IConditionPosition condition); - - List<IConditionPosition> getConditions(); - - Class<? extends Entity> getEntityClass(); - - int getMinGroupSize(); - - int getMaxGroupSize(); - - float getRarityWeight(); - - IPositionSelector getPositionSelector(); -} diff --git a/src/api/java/com/gildedgames/aether/api/world/spawn/ISpawnHandler.java b/src/api/java/com/gildedgames/aether/api/world/spawn/ISpawnHandler.java deleted file mode 100644 index 0304d67212..0000000000 --- a/src/api/java/com/gildedgames/aether/api/world/spawn/ISpawnHandler.java +++ /dev/null @@ -1,31 +0,0 @@ -package com.gildedgames.aether.api.world.spawn; - -import com.gildedgames.aether.api.world.spawn.conditions.IConditionPosition; -import com.gildedgames.aether.api.world.spawn.conditions.IConditionWorld; -import net.minecraft.world.World; -import net.minecraftforge.event.entity.living.LivingDeathEvent; - -public interface ISpawnHandler -{ - void init(World world); - - String getUniqueID(); - - ISpawnHandler targetEntityCountPerArea(int targetEntityCountPerArea); - - ISpawnHandler chunkArea(int chunkArea); - - ISpawnHandler updateFrequencyInTicks(int updateFrequencyInTicks); - - <T extends IConditionWorld> ISpawnHandler addWorldCondition(T condition); - - <T extends IConditionPosition> ISpawnHandler condition(T condition); - - void addEntry(ISpawnEntry entry); - - void tick(); - - int getChunkArea(); - - void onLivingDeath(LivingDeathEvent event); -} diff --git a/src/api/java/com/gildedgames/aether/api/world/spawn/ISpawnSystem.java b/src/api/java/com/gildedgames/aether/api/world/spawn/ISpawnSystem.java deleted file mode 100644 index f440b85ace..0000000000 --- a/src/api/java/com/gildedgames/aether/api/world/spawn/ISpawnSystem.java +++ /dev/null @@ -1,10 +0,0 @@ -package com.gildedgames.aether.api.world.spawn; - -import java.util.Collection; - -public interface ISpawnSystem -{ - Collection<ISpawnHandler> getSpawnHandlers(); - - void tick(); -} diff --git a/src/api/java/com/gildedgames/aether/api/world/spawn/conditions/IConditionPosition.java b/src/api/java/com/gildedgames/aether/api/world/spawn/conditions/IConditionPosition.java deleted file mode 100644 index 0f80cd4154..0000000000 --- a/src/api/java/com/gildedgames/aether/api/world/spawn/conditions/IConditionPosition.java +++ /dev/null @@ -1,11 +0,0 @@ -package com.gildedgames.aether.api.world.spawn.conditions; - -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.World; - -public interface IConditionPosition -{ - - boolean isMet(World world, BlockPos spawnAt, BlockPos underneath); - -} diff --git a/src/api/java/com/gildedgames/aether/api/world/spawn/conditions/IConditionWorld.java b/src/api/java/com/gildedgames/aether/api/world/spawn/conditions/IConditionWorld.java deleted file mode 100644 index 872ac4d630..0000000000 --- a/src/api/java/com/gildedgames/aether/api/world/spawn/conditions/IConditionWorld.java +++ /dev/null @@ -1,10 +0,0 @@ -package com.gildedgames.aether.api.world.spawn.conditions; - -import net.minecraft.world.World; - -public interface IConditionWorld -{ - - boolean isMet(World world); - -} diff --git a/src/api/java/com/gildedgames/aether/api/world/templates/ITemplateProcessorExtended.java b/src/api/java/com/gildedgames/aether/api/world/templates/ITemplateProcessorExtended.java deleted file mode 100644 index 7ce15e4506..0000000000 --- a/src/api/java/com/gildedgames/aether/api/world/templates/ITemplateProcessorExtended.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.gildedgames.aether.api.world.templates; - -import com.gildedgames.orbis.lib.processing.IBlockAccessExtended; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.gen.structure.template.ITemplateProcessor; -import net.minecraft.world.gen.structure.template.Template; - -import javax.annotation.Nullable; - -public interface ITemplateProcessorExtended extends ITemplateProcessor -{ - - @Nullable - Template.BlockInfo processBlock(IBlockAccessExtended worldIn, BlockPos pos, Template.BlockInfo blockInfoIn); - -} diff --git a/src/api/java/com/gildedgames/aether/api/world/templates/ITemplateRegistry.java b/src/api/java/com/gildedgames/aether/api/world/templates/ITemplateRegistry.java deleted file mode 100644 index 748b35c6c0..0000000000 --- a/src/api/java/com/gildedgames/aether/api/world/templates/ITemplateRegistry.java +++ /dev/null @@ -1,10 +0,0 @@ -package com.gildedgames.aether.api.world.templates; - -public interface ITemplateRegistry -{ - int getID(TemplateDefinition def); - - TemplateDefinition get(int id); - - void register(int id, TemplateDefinition def); -} diff --git a/src/api/java/com/gildedgames/aether/api/world/templates/PlacementConditionTemplate.java b/src/api/java/com/gildedgames/aether/api/world/templates/PlacementConditionTemplate.java deleted file mode 100644 index 4cc51e86ee..0000000000 --- a/src/api/java/com/gildedgames/aether/api/world/templates/PlacementConditionTemplate.java +++ /dev/null @@ -1,17 +0,0 @@ -package com.gildedgames.aether.api.world.templates; - -import com.gildedgames.orbis.lib.processing.IBlockAccessExtended; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.gen.structure.template.Template; - -import java.util.List; - -public interface PlacementConditionTemplate -{ - - boolean canPlace(Template template, IBlockAccessExtended world, BlockPos placedAt, Template.BlockInfo block); - - /** Should return true by default **/ - boolean canPlaceCheckAll(Template template, IBlockAccessExtended world, BlockPos placedAt, List<Template.BlockInfo> blocks); - -} \ No newline at end of file diff --git a/src/api/java/com/gildedgames/aether/api/world/templates/PostPlacementTemplate.java b/src/api/java/com/gildedgames/aether/api/world/templates/PostPlacementTemplate.java deleted file mode 100644 index 5681d8f553..0000000000 --- a/src/api/java/com/gildedgames/aether/api/world/templates/PostPlacementTemplate.java +++ /dev/null @@ -1,12 +0,0 @@ -package com.gildedgames.aether.api.world.templates; - -import net.minecraft.world.World; - -import java.util.Random; - -public interface PostPlacementTemplate -{ - - void postGenerate(World world, Random rand, TemplateLoc loc); - -} diff --git a/src/api/java/com/gildedgames/aether/api/world/templates/TemplateDefinition.java b/src/api/java/com/gildedgames/aether/api/world/templates/TemplateDefinition.java deleted file mode 100644 index db1fd7eff5..0000000000 --- a/src/api/java/com/gildedgames/aether/api/world/templates/TemplateDefinition.java +++ /dev/null @@ -1,93 +0,0 @@ -package com.gildedgames.aether.api.world.templates; - -import com.gildedgames.orbis.lib.processing.CenterOffsetProcessor; -import com.google.common.collect.Lists; -import net.minecraft.world.gen.structure.template.Template; - -import java.util.List; - -public class TemplateDefinition -{ - - private final Template template; - - private CenterOffsetProcessor offset; - - private List<PlacementConditionTemplate> conditions = Lists.newArrayList(); - - private List<PostPlacementTemplate> postPlacements = Lists.newArrayList(); - - private boolean randomRotation; - - public TemplateDefinition(final Template template) - { - this.template = template; - } - - public TemplateDefinition setPostPlacements(final PostPlacementTemplate postPlacement, final PostPlacementTemplate... postPlacements) - { - this.postPlacements = Lists.newArrayList(postPlacements); - - this.postPlacements.add(postPlacement); - - return this; - } - - public List<PostPlacementTemplate> getPostPlacements() - { - return this.postPlacements; - } - - public TemplateDefinition setConditions(final PlacementConditionTemplate condition, final PlacementConditionTemplate... conditions) - { - this.conditions = Lists.newArrayList(conditions); - - this.conditions.add(condition); - - return this; - } - - public CenterOffsetProcessor getOffset() - { - return this.offset; - } - - public TemplateDefinition setOffset(final CenterOffsetProcessor offset) - { - this.offset = offset; - - return this; - } - - public List<PlacementConditionTemplate> getConditions() - { - return this.conditions; - } - - public Template getTemplate() - { - return this.template; - } - - public TemplateDefinition setRandomRotation(final boolean flag) - { - this.randomRotation = flag; - - return this; - } - - public boolean hasRandomRotation() - { - return this.randomRotation; - } - - @Override - public TemplateDefinition clone() - { - final TemplateDefinition clone = new TemplateDefinition(this.template).setOffset(this.offset).setRandomRotation(this.randomRotation); - - clone.conditions = this.conditions; - - return clone; - } -} diff --git a/src/api/java/com/gildedgames/aether/api/world/templates/TemplateDefinitionPool.java b/src/api/java/com/gildedgames/aether/api/world/templates/TemplateDefinitionPool.java deleted file mode 100644 index 519be08e3b..0000000000 --- a/src/api/java/com/gildedgames/aether/api/world/templates/TemplateDefinitionPool.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.gildedgames.aether.api.world.templates; - -import com.google.common.collect.Lists; - -import java.util.List; -import java.util.Random; - -public class TemplateDefinitionPool -{ - - private final List<TemplateDefinition> definitions; - - public TemplateDefinitionPool(final TemplateDefinition... definitions) - { - this.definitions = Lists.newArrayList(definitions); - } - - public TemplateDefinition getRandomDefinition(final Random rand) - { - return this.definitions.get(rand.nextInt(this.definitions.size())); - } - -} diff --git a/src/api/java/com/gildedgames/aether/api/world/templates/TemplateInstance.java b/src/api/java/com/gildedgames/aether/api/world/templates/TemplateInstance.java deleted file mode 100644 index db410ba573..0000000000 --- a/src/api/java/com/gildedgames/aether/api/world/templates/TemplateInstance.java +++ /dev/null @@ -1,116 +0,0 @@ -package com.gildedgames.aether.api.world.templates; - -import com.gildedgames.aether.api.AetherAPI; -import com.gildedgames.aether.api.util.TemplateUtil; -import com.gildedgames.orbis.lib.util.mc.NBT; -import com.gildedgames.orbis.lib.util.mc.NBTHelper; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.util.math.ChunkPos; -import org.apache.commons.lang3.builder.EqualsBuilder; -import org.apache.commons.lang3.builder.HashCodeBuilder; - -public class TemplateInstance implements NBT -{ - - private final ChunkPos[] chunksOccupied; - - private TemplateDefinition def; - - private int templateID; - - private TemplateLoc loc; - - private boolean hasGeneratedAChunk; - - public TemplateInstance(final TemplateDefinition def, final TemplateLoc loc) - { - this.def = def; - this.templateID = AetherAPI.content().templates().getID(this.def); - this.loc = loc; - this.chunksOccupied = TemplateUtil.getChunksInsideTemplate(this.getDef(), this.getLoc()); - } - - public TemplateInstance(final NBTTagCompound tag) - { - this.read(tag); - - this.chunksOccupied = TemplateUtil.getChunksInsideTemplate(this.getDef(), this.getLoc()); - } - - public TemplateDefinition getDef() - { - return this.def; - } - - public TemplateLoc getLoc() - { - return this.loc; - } - - public ChunkPos[] getChunksOccupied() - { - return this.chunksOccupied; - } - - public void markGeneratedAChunk() - { - this.hasGeneratedAChunk = true; - } - - public boolean hasGeneratedAChunk() - { - return this.hasGeneratedAChunk; - } - - @Override - public boolean equals(final Object obj) - { - boolean flag = false; - - if (obj == this) - { - flag = true; - } - else if (obj instanceof TemplateInstance) - { - final TemplateInstance o = (TemplateInstance) obj; - final EqualsBuilder builder = new EqualsBuilder(); - - builder.append(this.templateID, o.templateID); - builder.append(this.loc, o.loc); - builder.append(this.hasGeneratedAChunk, o.hasGeneratedAChunk); - - flag = builder.isEquals(); - } - - return flag; - } - - @Override - public int hashCode() - { - final HashCodeBuilder builder = new HashCodeBuilder(); - - builder.append(this.templateID); - builder.append(this.loc); - builder.append(this.hasGeneratedAChunk); - - return builder.toHashCode(); - } - - @Override - public void write(final NBTTagCompound tag) - { - tag.setInteger("id", this.templateID); - tag.setTag("loc", NBTHelper.writeRaw(this.loc)); - tag.setBoolean("hasGeneratedAChunk", this.hasGeneratedAChunk); - } - - @Override - public void read(final NBTTagCompound tag) - { - this.def = AetherAPI.content().templates().get(tag.getInteger("id")); - this.loc = new TemplateLoc(tag.getCompoundTag("loc")); - this.hasGeneratedAChunk = tag.getBoolean("hasGeneratedAChunk"); - } -} diff --git a/src/api/java/com/gildedgames/aether/api/world/templates/TemplateLoc.java b/src/api/java/com/gildedgames/aether/api/world/templates/TemplateLoc.java deleted file mode 100644 index 6edac929d4..0000000000 --- a/src/api/java/com/gildedgames/aether/api/world/templates/TemplateLoc.java +++ /dev/null @@ -1,129 +0,0 @@ -package com.gildedgames.aether.api.world.templates; - -import com.gildedgames.orbis.lib.util.mc.NBT; -import com.gildedgames.orbis.lib.util.mc.NBTHelper; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.util.Mirror; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.gen.structure.template.PlacementSettings; -import org.apache.commons.lang3.builder.EqualsBuilder; -import org.apache.commons.lang3.builder.HashCodeBuilder; - -public class TemplateLoc implements NBT -{ - - private BlockPos pos; - - private PlacementSettings settings; - - private boolean isCentered; - - public TemplateLoc() - { - this.pos = BlockPos.ORIGIN; - this.settings = new PlacementSettings().setMirror(Mirror.NONE).setIgnoreEntities(false).setIgnoreStructureBlock(false); - } - - public TemplateLoc(final NBTTagCompound tag) - { - this.read(tag); - } - - public TemplateLoc set(final BlockPos pos) - { - this.pos = pos; - - return this; - } - - public TemplateLoc set(final PlacementSettings settings) - { - this.settings = settings; - - return this; - } - - public TemplateLoc set(final boolean isCentered) - { - this.isCentered = isCentered; - - return this; - } - - public BlockPos getPos() - { - return this.pos; - } - - public PlacementSettings getSettings() - { - return this.settings; - } - - public boolean isCentered() - { - return this.isCentered; - } - - @Override - public boolean equals(final Object obj) - { - boolean flag = false; - - if (obj == this) - { - flag = true; - } - else if (obj instanceof TemplateLoc) - { - final TemplateLoc o = (TemplateLoc) obj; - final EqualsBuilder builder = new EqualsBuilder(); - - builder.append(this.pos.toLong(), o.pos.toLong()); - builder.append(this.isCentered, o.isCentered); - - flag = builder.isEquals(); - } - - return flag; - } - - @Override - public int hashCode() - { - final HashCodeBuilder builder = new HashCodeBuilder(); - - builder.append(this.pos.toLong()); - builder.append(this.isCentered); - - return builder.toHashCode(); - } - - @Override - public TemplateLoc clone() - { - return new TemplateLoc().set(this.pos).set(this.settings).set(this.isCentered); - } - - @Override - public void write(final NBTTagCompound tag) - { - tag.setTag("pos", NBTHelper.writeBlockPos(this.pos)); - - //TODO: Write settings somehow - - tag.setBoolean("isCentered", this.isCentered); - } - - @Override - public void read(final NBTTagCompound tag) - { - this.pos = NBTHelper.readBlockPos(tag.getCompoundTag("pos")); - - //TODO: Read settings back instead of creating new settings - - this.settings = new PlacementSettings().setMirror(Mirror.NONE).setIgnoreEntities(false).setIgnoreStructureBlock(false); - - this.isCentered = tag.getBoolean("isCentered"); - } -} diff --git a/src/main/java/com/gildedgames/aether/client/ClientProxy.java b/src/main/java/com/gildedgames/aether/client/ClientProxy.java deleted file mode 100644 index b0a9e299d1..0000000000 --- a/src/main/java/com/gildedgames/aether/client/ClientProxy.java +++ /dev/null @@ -1,223 +0,0 @@ -package com.gildedgames.aether.client; - -import com.gildedgames.aether.api.AetherAPI; -import com.gildedgames.aether.client.events.listeners.gui.GuiOverlayListener; -import com.gildedgames.aether.client.gui.misc.CustomLoadingRenderer; -import com.gildedgames.aether.client.renderer.AetherRenderers; -import com.gildedgames.aether.client.renderer.particles.ParticleAetherStatusEffect; -import com.gildedgames.aether.client.renderer.particles.ParticleImpact; -import com.gildedgames.aether.client.renderer.particles.ParticlePierce; -import com.gildedgames.aether.client.renderer.particles.ParticleSlash; -import com.gildedgames.aether.common.AetherCore; -import com.gildedgames.aether.common.CommonProxy; -import com.gildedgames.aether.common.analytics.GameAnalytics; -import com.gildedgames.aether.common.containers.overlays.tabs.guidebook.*; -import com.gildedgames.aether.common.util.helpers.PerfHelper; -import net.minecraft.client.Minecraft; -import net.minecraft.client.resources.I18n; -import net.minecraft.client.settings.KeyBinding; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.util.EnumParticleTypes; -import net.minecraft.util.IThreadListener; -import net.minecraft.world.World; -import net.minecraftforge.common.MinecraftForge; -import net.minecraftforge.fml.client.FMLClientHandler; -import net.minecraftforge.fml.common.event.FMLInitializationEvent; -import net.minecraftforge.fml.common.event.FMLPreInitializationEvent; - -import java.util.Random; - -public class ClientProxy extends CommonProxy -{ - @Override - public void spawnSlashParticleFrom( - final World world, final double x, final double y, final double z, final double offsetX, final double offsetY, final double offsetZ) - { - final ParticleSlash effect = new ParticleSlash(world, x, y, z,1.0F, 1.0F, 1.0F, 1.0F); - - Minecraft.getMinecraft().effectRenderer.addEffect(effect); - } - - @Override - public void spawnPierceParticleFrom( - final World world, final double x, final double y, final double z, final double offsetX, final double offsetY, final double offsetZ) - { - final ParticlePierce effect = new ParticlePierce(world, x, y, z,1.0F, 1.0F, 1.0F, 1.0F); - - Minecraft.getMinecraft().effectRenderer.addEffect(effect); - } - - @Override - public void spawnImpactParticleFrom( - final World world, final double x, final double y, final double z, final double offsetX, final double offsetY, final double offsetZ) - { - final ParticleImpact effect = new ParticleImpact(world, x, y, z,1.0F, 1.0F, 1.0F, 1.0F); - - Minecraft.getMinecraft().effectRenderer.addEffect(effect); - } - - @Override - public void spawnEffectParticles(final World world, final double x, final double y, final double z, final double motionX, final double motionY, final double motionZ, - final float particleRed, final float particleGreen, final float particleBlue) - { - final ParticleAetherStatusEffect particle = new ParticleAetherStatusEffect(world, x, y, z, motionX, motionY, motionZ, particleRed, particleGreen, particleBlue); - - Minecraft.getMinecraft().effectRenderer.addEffect(particle); - } - - @Override - public void turnOffScreen() - { - Minecraft.getMinecraft().displayGuiScreen(null); - } - - @Override - public void preInit(final FMLPreInitializationEvent event) - { - super.preInit(event); - - Minecraft.getMinecraft().loadingScreen = new CustomLoadingRenderer(Minecraft.getMinecraft(), Minecraft.getMinecraft().loadingScreen); - - MinecraftForge.EVENT_BUS.register(this); - - PerfHelper.measure("Pre-initialize special renders", AetherRenderers::preInit); - } - - @Override - public void init(final FMLInitializationEvent event) - { - super.init(event); - - PerfHelper.measure("Initialize analytics", () -> - { - AetherCore.ANALYTICS = AetherCore.isInsideDevEnvironment() ? new GameAnalytics() : - new GameAnalytics("c8e4d94251ce253e138ae8a702e20301", "1ba3cb91e03cbb578b97c26f872e812dd05f5bbb"); - - if (Minecraft.getMinecraft().isSnooperEnabled() && AetherCore.CONFIG.analyticsEnabled) - { - AetherCore.ANALYTICS.setup(); - } - else - { - AetherCore.LOGGER.info("GameAnalytics disabled by user preference (by config or vanilla snooper settings)"); - - AetherCore.ANALYTICS.disable(); - } - }); - - PerfHelper.measure("Initialize special renders", AetherRenderers::init); - - GuiOverlayListener.init(); - - //AetherAPI.content().tabs().getInventoryGroup().registerClientTab(new TabBugReport.Client()); - //AetherAPI.content().tabs().getInventoryGroup().registerClientTab(new TabPatronRewards.Client()); - - /* Traveler's Guidebook tabs */ - AetherAPI.content().tabs().getInventoryGroup().registerClientTab(new TabGuidebook.Client()); - AetherAPI.content().tabs().getInventoryGroup().registerClientTab(new TabEquipment.Client()); - AetherAPI.content().tabs().getInventoryGroup().registerClientTab(new TabStatus.Client()); - AetherAPI.content().tabs().getInventoryGroup().registerClientTab(new TabDiscovery.Client()); - AetherAPI.content().tabs().getInventoryGroup().registerClientTab(new TabLoreTome.Client()); - - AetherAPI.content().dialog().attachReloadListener(); - AetherAPI.content().tgManager().attachReloadListener(); - } - - @Override - public void displayDismountMessage(final EntityPlayer player) - { - if (player == Minecraft.getMinecraft().player) - { - Minecraft.getMinecraft().ingameGUI - .setOverlayMessage(I18n.format("mount.onboard", Minecraft.getMinecraft().gameSettings.keyBindSneak.getDisplayName()), false); - } - } - - @Override - public void modifyEntityQuicksoil(final EntityLivingBase entity) - { - if (entity == Minecraft.getMinecraft().player) - { - KeyBinding.setKeyBindState(Minecraft.getMinecraft().gameSettings.keyBindSneak.getKeyCode(), false); - } - - super.modifyEntityQuicksoil(entity); - } - - @Override - public void spawnCampfireStartParticles(final World world, final double x, final double y, final double z) - { - final Random r = world.rand; - - for (int i = 0; i < 50; i++) - { - final double range = r.nextDouble() * 0.9; - - if (r.nextInt(10) == 0) - { - world.spawnParticle(EnumParticleTypes.LAVA, x + (r.nextDouble() * (r.nextBoolean() ? range : -range)), y, - z + (r.nextDouble() * (r.nextBoolean() ? range : -range)), - (r.nextDouble() * (r.nextBoolean() ? range : -range)) * 0.2, 0.075 * r.nextDouble(), - (r.nextDouble() * (r.nextBoolean() ? range : -range)) * 0.2); - } - - if (r.nextInt(4) == 0) - { - world.spawnParticle(EnumParticleTypes.FLAME, x + (r.nextDouble() * (r.nextBoolean() ? range : -range)), y, - z + (r.nextDouble() * (r.nextBoolean() ? range : -range)), - (r.nextDouble() * (r.nextBoolean() ? range : -range)) * 0.1, 0.1 * r.nextDouble(), - (r.nextDouble() * (r.nextBoolean() ? range : -range)) * 0.1); - } - - if (r.nextInt(4) == 0) - { - world.spawnParticle(EnumParticleTypes.SMOKE_NORMAL, x + (r.nextDouble() * (r.nextBoolean() ? range : -range)), y, - z + (r.nextDouble() * (r.nextBoolean() ? range : -range)), - (r.nextDouble() * (r.nextBoolean() ? range : -range)) * 0.1, 0.1 * r.nextDouble(), - (r.nextDouble() * (r.nextBoolean() ? range : -range)) * 0.1); - } - } - } - - @Override - public void spawnCampfireParticles(final World world, final double x, final double y, final double z) - { - final Random r = world.rand; - - for (int i = 0; i < 10; i++) - { - final double range = r.nextDouble() * 0.75; - - if (r.nextInt(800) == 0) - { - world.spawnParticle(EnumParticleTypes.LAVA, (r.nextDouble() * (r.nextBoolean() ? range : -range)), y, - z + (r.nextDouble() * (r.nextBoolean() ? range : -range)), - (r.nextDouble() * (r.nextBoolean() ? range : -range)) * 0.001, 0.075 * r.nextDouble(), - (r.nextDouble() * (r.nextBoolean() ? range : -range)) * 0.001); - } - - if (r.nextInt(4) == 0) - { - world.spawnParticle(EnumParticleTypes.FLAME, x + (r.nextDouble() * (r.nextBoolean() ? range : -range)), y, - z + (r.nextDouble() * (r.nextBoolean() ? range : -range)), - (r.nextDouble() * (r.nextBoolean() ? range : -range)) * 0.001, 0.04 * r.nextDouble(), - (r.nextDouble() * (r.nextBoolean() ? range : -range)) * 0.001); - } - - if (r.nextInt(4) == 0) - { - world.spawnParticle(EnumParticleTypes.SMOKE_NORMAL, x + (r.nextDouble() * (r.nextBoolean() ? range : -range)), y, - z + (r.nextDouble() * (r.nextBoolean() ? range : -range)), - (r.nextDouble() * (r.nextBoolean() ? range : -range)) * 0.001, 0.075 * r.nextDouble(), - (r.nextDouble() * (r.nextBoolean() ? range : -range)) * 0.001); - } - } - } - - @Override - public IThreadListener getMinecraftThread() - { - return Minecraft.getMinecraft(); - } -} diff --git a/src/main/java/com/gildedgames/aether/client/events/listeners/FOVUpdateListener.java b/src/main/java/com/gildedgames/aether/client/events/listeners/FOVUpdateListener.java deleted file mode 100644 index 9e9848c3a1..0000000000 --- a/src/main/java/com/gildedgames/aether/client/events/listeners/FOVUpdateListener.java +++ /dev/null @@ -1,113 +0,0 @@ -package com.gildedgames.aether.client.events.listeners; - -import com.gildedgames.aether.api.registrar.ItemsAether; -import com.gildedgames.aether.common.capabilities.entity.player.PlayerAether; -import com.gildedgames.aether.common.capabilities.entity.player.modules.PlayerEquipmentModule; -import com.gildedgames.aether.common.items.armor.ItemAetherGloves; -import com.gildedgames.aether.common.items.armor.ItemArkeniumArmor; -import com.gildedgames.aether.common.items.weapons.crossbow.ItemCrossbow; -import net.minecraft.client.Minecraft; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.inventory.EntityEquipmentSlot; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.util.EnumHand; -import net.minecraftforge.client.event.FOVUpdateEvent; -import net.minecraftforge.fml.common.Mod; -import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; -import net.minecraftforge.fml.relauncher.Side; - -@Mod.EventBusSubscriber(Side.CLIENT) -public class FOVUpdateListener -{ - @SubscribeEvent - public static void onFOVUpdate(final FOVUpdateEvent event) - { - EntityPlayer player = Minecraft.getMinecraft().player; - - int armorCount = 0; - - for (ItemStack armor : player.getArmorInventoryList()) - { - if (armor.getItem() instanceof ItemArkeniumArmor) - { - ++armorCount; - - if (event.getNewfov() < 1.0f) - { - event.setNewfov(event.getFov() + (0.0375f * armorCount)); - } - } - } - - final ItemStack gloveStack = PlayerAether.getPlayer(player).getModule(PlayerEquipmentModule.class).getInventory().getStackInSlot(2); - - if (!gloveStack.isEmpty() && gloveStack.getItem() == ItemsAether.arkenium_gloves) - { - ++armorCount; - - if (event.getNewfov() < 1.0f) - { - event.setNewfov(event.getFov() + (0.0375f * armorCount)); - } - } - - Item item = player.getActiveItemStack().getItem(); - - if (item instanceof ItemCrossbow) - { - if (((ItemCrossbow) item).getIsSpecialLoaded() && player.isSneaking()) - { - if (event.getFov() <= 0.5f) - { - event.setNewfov(event.getNewfov() + 0.3f); - } - } - } - - if ((player.getHeldItem(EnumHand.MAIN_HAND).getItem() == ItemsAether.skyroot_shield && player.getActiveItemStack() != player.getHeldItemOffhand()) - || (player.getHeldItem(EnumHand.OFF_HAND).getItem() == ItemsAether.skyroot_shield && player.getActiveItemStack() != player.getHeldItemMainhand())) - { - float additional = 0; - - if (event.getNewfov() > 1.0f) - { - additional = event.getNewfov() - 1.0f; - } - - event.setNewfov(event.getNewfov() - additional); - } - - if ((player.getHeldItem(EnumHand.MAIN_HAND).getItem() == ItemsAether.arkenium_shield && player.getActiveItemStack() != player.getHeldItemOffhand()) - || (player.getHeldItem(EnumHand.OFF_HAND).getItem() == ItemsAether.arkenium_shield && player.getActiveItemStack() != player.getHeldItemMainhand())) - { - float additional = 0; - - if (event.getNewfov() > 1.0f) - { - additional = event.getNewfov() - 1.0f; - } - - if (event.getFov() <= 0.5f) - { - event.setNewfov(event.getFov() + 0.5f - additional); - } - } - - if ((player.getHeldItem(EnumHand.MAIN_HAND).getItem() == ItemsAether.gravitite_shield && player.getActiveItemStack() != player.getHeldItemOffhand()) - || (player.getHeldItem(EnumHand.OFF_HAND).getItem() == ItemsAether.gravitite_shield && player.getActiveItemStack() != player.getHeldItemMainhand())) - { - float additional = 0; - - if (event.getNewfov() > 1.0f) - { - additional = event.getNewfov() - 1.0f; - } - - if (event.getFov() <= 0.9f) - { - event.setNewfov(event.getFov() + 0.1f - additional); - } - } - } -} diff --git a/src/main/java/com/gildedgames/aether/client/events/listeners/TextureStitchListener.java b/src/main/java/com/gildedgames/aether/client/events/listeners/TextureStitchListener.java deleted file mode 100644 index 3423227bb6..0000000000 --- a/src/main/java/com/gildedgames/aether/client/events/listeners/TextureStitchListener.java +++ /dev/null @@ -1,24 +0,0 @@ -package com.gildedgames.aether.client.events.listeners; - -import com.gildedgames.aether.common.containers.slots.*; -import com.gildedgames.aether.common.containers.slots.icestone_cooler.SlotCoolingItem; -import com.gildedgames.aether.common.containers.slots.incubator.SlotMoaEgg; -import net.minecraftforge.client.event.TextureStitchEvent; -import net.minecraftforge.fml.common.Mod; -import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; -import net.minecraftforge.fml.relauncher.Side; - -@Mod.EventBusSubscriber(Side.CLIENT) -public class TextureStitchListener -{ - @SubscribeEvent - public static void onTextureStitchPre(final TextureStitchEvent.Pre event) - { - SlotEquipment.registerIcons(event); - SlotAmbrosium.registerIcons(event); - SlotMoaEgg.registerIcons(event); - SlotFlintAndSteel.registerIcons(event); - SlotCoolingItem.registerIcons(event); - } - -} diff --git a/src/main/java/com/gildedgames/aether/client/events/listeners/gui/GuiHudListener.java b/src/main/java/com/gildedgames/aether/client/events/listeners/gui/GuiHudListener.java deleted file mode 100644 index 7432675b9a..0000000000 --- a/src/main/java/com/gildedgames/aether/client/events/listeners/gui/GuiHudListener.java +++ /dev/null @@ -1,92 +0,0 @@ -package com.gildedgames.aether.client.events.listeners.gui; - -import com.gildedgames.aether.api.registrar.ItemsAether; -import com.gildedgames.aether.client.gui.EffectSystemOverlay; -import com.gildedgames.aether.common.AetherCore; -import com.gildedgames.aether.common.init.DimensionsAether; -import com.gildedgames.aether.common.items.weapons.ItemDart; -import com.gildedgames.aether.common.items.weapons.ItemDartType; -import com.gildedgames.aether.common.items.weapons.crossbow.ItemCrossbow; -import net.minecraft.client.Minecraft; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.init.MobEffects; -import net.minecraft.inventory.EntityEquipmentSlot; -import net.minecraft.item.ItemStack; -import net.minecraftforge.client.GuiIngameForge; -import net.minecraftforge.client.event.RenderGameOverlayEvent; -import net.minecraftforge.fml.common.Mod; -import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; -import net.minecraftforge.fml.common.gameevent.TickEvent; -import net.minecraftforge.fml.relauncher.Side; - -@Mod.EventBusSubscriber(Side.CLIENT) -public class GuiHudListener -{ - private static final Minecraft mc = Minecraft.getMinecraft(); - - private static final EffectSystemOverlay EFFECT_SYSTEM_OVERLAY = new EffectSystemOverlay(); - - private static int old_left_height, old_right_height; - - /** - * Adds client-side modifiers for the damage system rendering so crossbows - * and dart shooters show the damage they cause with their ammo - * @param event - */ - - @SubscribeEvent - public static void onRenderGameOverlay(RenderGameOverlayEvent.Pre event) - { - if (mc.world != null) - { - boolean atNecromancerInstance = mc.world.provider.getDimensionType() == DimensionsAether.NECROMANCER_TOWER; - - if (atNecromancerInstance && (event.getType() == RenderGameOverlayEvent.ElementType.AIR - || event.getType() == RenderGameOverlayEvent.ElementType.HEALTH - || event.getType() == RenderGameOverlayEvent.ElementType.HEALTHMOUNT || event.getType() == RenderGameOverlayEvent.ElementType.ARMOR - || event.getType() == RenderGameOverlayEvent.ElementType.FOOD || event.getType() == RenderGameOverlayEvent.ElementType.HOTBAR - || event.getType() == RenderGameOverlayEvent.ElementType.EXPERIENCE || event.getType() == RenderGameOverlayEvent.ElementType.EXPERIENCE)) - { - event.setCanceled(true); - } - } - } - - @SubscribeEvent - public static void onRenderGameOverlay(RenderGameOverlayEvent.Post event) - { - if (mc.world != null) - { - boolean atNecromancerInstance = mc.world.provider.getDimensionType() == DimensionsAether.NECROMANCER_TOWER; - - if (atNecromancerInstance && (event.getType() == RenderGameOverlayEvent.ElementType.AIR - || event.getType() == RenderGameOverlayEvent.ElementType.HEALTH - || event.getType() == RenderGameOverlayEvent.ElementType.HEALTHMOUNT || event.getType() == RenderGameOverlayEvent.ElementType.ARMOR - || event.getType() == RenderGameOverlayEvent.ElementType.FOOD || event.getType() == RenderGameOverlayEvent.ElementType.HOTBAR - || event.getType() == RenderGameOverlayEvent.ElementType.EXPERIENCE || event.getType() == RenderGameOverlayEvent.ElementType.EXPERIENCE)) - { - event.setCanceled(true); - } - else if (event.getType() == RenderGameOverlayEvent.ElementType.HOTBAR) - { - EFFECT_SYSTEM_OVERLAY.render(mc); - } - } - } - - - - @SubscribeEvent - public static void onRenderIngameOverlay(final RenderGameOverlayEvent.Pre event) - { - if (event.getType() == RenderGameOverlayEvent.ElementType.AIR) - { - final EntityPlayer player = Minecraft.getMinecraft().player; - - if (player.getAir() == 300 && player.isPotionActive(MobEffects.WATER_BREATHING)) - { - event.setCanceled(true); - } - } - } -} diff --git a/src/main/java/com/gildedgames/aether/client/events/listeners/gui/GuiLoadingListener.java b/src/main/java/com/gildedgames/aether/client/events/listeners/gui/GuiLoadingListener.java deleted file mode 100644 index b72757652e..0000000000 --- a/src/main/java/com/gildedgames/aether/client/events/listeners/gui/GuiLoadingListener.java +++ /dev/null @@ -1,264 +0,0 @@ -package com.gildedgames.aether.client.events.listeners.gui; - -import com.gildedgames.aether.client.gui.misc.CustomLoadingRenderer; -import com.gildedgames.aether.client.gui.misc.GuiAetherLoading; -import com.gildedgames.aether.client.gui.misc.GuiBlackScreen; -import com.gildedgames.aether.common.init.DimensionsAether; -import com.gildedgames.orbis.lib.client.PartialTicks; -import com.gildedgames.orbis.lib.client.gui.util.GuiFrameUtils; -import com.gildedgames.orbis.lib.util.InputHelper; -import net.minecraft.client.LoadingScreenRenderer; -import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.GuiDownloadTerrain; -import net.minecraft.client.gui.inventory.GuiInventory; -import net.minecraft.client.renderer.GlStateManager; -import net.minecraft.util.math.MathHelper; -import net.minecraftforge.client.event.GuiOpenEvent; -import net.minecraftforge.fml.client.config.GuiUtils; -import net.minecraftforge.fml.common.Mod; -import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; -import net.minecraftforge.fml.common.gameevent.TickEvent; -import net.minecraftforge.fml.common.gameevent.TickEvent.ClientTickEvent; -import net.minecraftforge.fml.relauncher.Side; - -@Mod.EventBusSubscriber(Side.CLIENT) -public class GuiLoadingListener -{ - private static final Minecraft mc = Minecraft.getMinecraft(); - - private static boolean DRAW_BLACK_SCREEN = false; - - private static boolean DRAW_LOADING_SCREEN = false; - - private static boolean DRAWING_BLACK_FADE_OUT = false; - - private static boolean DRAWING_BLACK_FADE_IN = false; - - private static boolean CHANGE_FROM_BLACK_TO_LOAD = false; - - private static double TIME_STARTED_FADE = -1; - - private static double TIME_TO_FADE; - - private static Runnable AFTER_FADE; - - private static GuiAetherLoading LOADING = new GuiAetherLoading(); - - private static final CustomLoadingRenderer.ICustomLoading BLACK_LOADING = GuiLoadingListener::drawOverlay; - - public static boolean isFadingIn() - { - return DRAWING_BLACK_FADE_IN; - } - - public static void drawBlackFade(double time) - { - TIME_STARTED_FADE = System.currentTimeMillis(); - - DRAWING_BLACK_FADE_IN = false; - DRAWING_BLACK_FADE_OUT = true; - TIME_TO_FADE = time; - } - - public static void drawBlackFadeIn(double time, Runnable after) - { - TIME_STARTED_FADE = System.currentTimeMillis(); - - DRAWING_BLACK_FADE_OUT = false; - DRAWING_BLACK_FADE_IN = true; - TIME_TO_FADE = time; - AFTER_FADE = after; - } - - public static boolean isLoadingScreen() - { - return DRAW_LOADING_SCREEN; - } - - public static void setDrawBlackScreen(boolean flag) - { - DRAW_BLACK_SCREEN = flag; - - if (flag) - { - CustomLoadingRenderer.CURRENT = BLACK_LOADING; - } - else if (CustomLoadingRenderer.CURRENT == BLACK_LOADING) - { - CustomLoadingRenderer.CURRENT = null; - } - } - - public static void setChangeFromBlackToLoad(boolean flag) - { - CHANGE_FROM_BLACK_TO_LOAD = flag; - } - - public static void setDrawLoading(boolean flag) - { - DRAW_LOADING_SCREEN = flag; - - if (flag) - { - LOADING = new GuiAetherLoading(); - - LOADING.setWorldAndResolution(Minecraft.getMinecraft(), MathHelper.floor(InputHelper.getScreenWidth()), - MathHelper.floor(InputHelper.getScreenHeight())); - LOADING.initGui(); - - CustomLoadingRenderer.CURRENT = LOADING; - } - else if (CustomLoadingRenderer.CURRENT == LOADING) - { - CustomLoadingRenderer.CURRENT = null; - } - } - - @SubscribeEvent - public static void onOpenGui(final GuiOpenEvent event) - { - if (mc.world != null && event.getGui() instanceof GuiInventory) - { - boolean necro = mc.world.provider.getDimensionType() == DimensionsAether.NECROMANCER_TOWER; - - if (necro && !mc.player.isCreative()) - { - event.setCanceled(true); - } - } - - if (DRAW_BLACK_SCREEN && event.getGui() instanceof GuiDownloadTerrain) - { - event.setGui(new GuiBlackScreen()); - } - } - - private static double getSecondsSinceStart() - { - return (System.currentTimeMillis() - TIME_STARTED_FADE) / 1000.0D; - } - - public static void drawFade(boolean disableDepth) - { - if (DRAWING_BLACK_FADE_OUT || DRAWING_BLACK_FADE_IN) - { - final float bgAlpha = Math - .max(0.0F, DRAWING_BLACK_FADE_OUT ? - 1.0F - (float) (getSecondsSinceStart() / TIME_TO_FADE) : - (float) (getSecondsSinceStart() / TIME_TO_FADE)); - - final int bg = GuiFrameUtils.changeAlpha(0xFF000000, (int) (bgAlpha * 255)); - - GlStateManager.pushMatrix(); - - if (disableDepth) - { - GlStateManager.disableDepth(); - } - - GuiUtils.drawGradientRect(0, 0, 0, MathHelper.floor(InputHelper.getScreenWidth()), - MathHelper.floor(InputHelper.getScreenHeight()), bg, bg); - - if (disableDepth) - { - GlStateManager.enableDepth(); - } - - GlStateManager.popMatrix(); - - if (getSecondsSinceStart() >= TIME_TO_FADE) - { - DRAWING_BLACK_FADE_OUT = false; - DRAWING_BLACK_FADE_IN = false; - - if (AFTER_FADE != null) - { - AFTER_FADE.run(); - - AFTER_FADE = null; - } - } - } - } - - public static void drawOverlay() - { - if (CHANGE_FROM_BLACK_TO_LOAD && DRAW_BLACK_SCREEN) - { - setChangeFromBlackToLoad(false); - setDrawBlackScreen(false); - - drawBlackFade(2.0D); - setDrawLoading(true); - } - - if (DRAW_LOADING_SCREEN) - { - if (Minecraft.getMinecraft().world != null) - { - Minecraft.getMinecraft().getSoundHandler().stopSounds(); - } - - setChangeFromBlackToLoad(false); - - CustomLoadingRenderer.CURRENT = LOADING; - - GlStateManager.pushMatrix(); - - if (!DRAWING_BLACK_FADE_OUT) - { - //GlStateManager.disableDepth(); - } - - LOADING.drawScreen(InputHelper.getMouseX(), InputHelper.getMouseY(), PartialTicks.get()); - - if (!DRAWING_BLACK_FADE_OUT) - { - //GlStateManager.enableDepth(); - } - - GlStateManager.popMatrix(); - } - else - { - if (DRAW_BLACK_SCREEN) - { - CustomLoadingRenderer.CURRENT = BLACK_LOADING; - - GlStateManager.pushMatrix(); - - GlStateManager.disableDepth(); - - GuiUtils.drawGradientRect(0, 0, 0, MathHelper.floor(InputHelper.getScreenWidth()), - MathHelper.floor(InputHelper.getScreenHeight()), 0xFF000000, 0xFF000000); - - GlStateManager.enableDepth(); - - GlStateManager.popMatrix(); - } - - drawFade(true); - } - } - - @SubscribeEvent - public static void onRenderTick(final TickEvent.RenderTickEvent event) - { - if (event.phase == TickEvent.Phase.END) - { - drawOverlay(); - } - } - - @SubscribeEvent - public static void onTick(final ClientTickEvent event) - { - if (event.phase == TickEvent.Phase.END) - { - if (Minecraft.getMinecraft().loadingScreen.getClass() == LoadingScreenRenderer.class) - { - Minecraft.getMinecraft().loadingScreen = new CustomLoadingRenderer(Minecraft.getMinecraft(), Minecraft.getMinecraft().loadingScreen); - } - } - } -} diff --git a/src/main/java/com/gildedgames/aether/client/events/listeners/gui/GuiMenuListener.java b/src/main/java/com/gildedgames/aether/client/events/listeners/gui/GuiMenuListener.java deleted file mode 100644 index 44002dd77f..0000000000 --- a/src/main/java/com/gildedgames/aether/client/events/listeners/gui/GuiMenuListener.java +++ /dev/null @@ -1,26 +0,0 @@ -package com.gildedgames.aether.client.events.listeners.gui; - -import com.gildedgames.aether.client.gui.misc.GuiAetherUnsigned; -import com.gildedgames.aether.common.AetherCore; -import net.minecraft.client.gui.GuiMainMenu; -import net.minecraftforge.client.event.GuiOpenEvent; -import net.minecraftforge.fml.common.Mod; -import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; -import net.minecraftforge.fml.relauncher.Side; - -@Mod.EventBusSubscriber(Side.CLIENT) -public class GuiMenuListener -{ - @SubscribeEvent - public static void onOpenGui(final GuiOpenEvent event) - { - if (event.getGui() instanceof GuiMainMenu && !AetherCore.IS_SIGNED && !AetherCore.isInsideDevEnvironment() && !AetherCore.CONFIG - .acknowledgeFingerprintViolation) - { - event.setGui(new GuiAetherUnsigned(event.getGui())); - - return; - } - - } -} diff --git a/src/main/java/com/gildedgames/aether/client/events/listeners/gui/GuiOverlayListener.java b/src/main/java/com/gildedgames/aether/client/events/listeners/gui/GuiOverlayListener.java deleted file mode 100644 index f9145e25f4..0000000000 --- a/src/main/java/com/gildedgames/aether/client/events/listeners/gui/GuiOverlayListener.java +++ /dev/null @@ -1,56 +0,0 @@ -package com.gildedgames.aether.client.events.listeners.gui; - -import com.gildedgames.aether.client.gui.overlays.IOverlay; -import com.gildedgames.aether.client.gui.overlays.PortalOverlay; -import com.gildedgames.aether.client.gui.overlays.SwetOverlay; -import com.gildedgames.aether.client.models.entities.player.*; -import com.gildedgames.aether.client.renderer.particles.ParticleRainProxyFactory; -import com.google.common.collect.Lists; -import net.minecraft.client.Minecraft; -import net.minecraft.client.renderer.entity.RenderLivingBase; -import net.minecraft.util.EnumParticleTypes; -import net.minecraftforge.client.event.RenderGameOverlayEvent; -import net.minecraftforge.fml.common.Mod; -import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; -import net.minecraftforge.fml.relauncher.Side; - -import java.util.HashSet; -import java.util.List; - -@Mod.EventBusSubscriber(Side.CLIENT) -public class GuiOverlayListener -{ - private static final List<IOverlay> overlays = Lists.newArrayList(); - - public static void init() - { - for (RenderLivingBase<?> playerRender : new HashSet<>(Minecraft.getMinecraft().getRenderManager().getSkinMap().values())) - { - playerRender.addLayer(new LayerArmorProxy(playerRender, new LayerAetherPlayerGloves(playerRender))); - playerRender.addLayer(new LayerArmorProxy(playerRender, new LayerHeadShadow(playerRender))); - playerRender.addLayer(new LayerArmorProxy(playerRender, new LayerSwetLatch(playerRender))); - playerRender.addLayer(new LayerAetherPatronArmor(playerRender)); - } - - overlays.add(new PortalOverlay()); - overlays.add(new SwetOverlay()); - - // See documentation of ParticleRainProxyFactory. Ugly hack. - Minecraft.getMinecraft().effectRenderer.registerParticle(EnumParticleTypes.WATER_DROP.getParticleID(), new ParticleRainProxyFactory()); - } - - @SubscribeEvent - public static void onRenderIngameOverlay(final RenderGameOverlayEvent.Pre event) - { - if (event.getType() == RenderGameOverlayEvent.ElementType.ALL) - { - for (final IOverlay overlay : overlays) - { - if (overlay.isEnabled()) - { - overlay.draw(); - } - } - } - } -} diff --git a/src/main/java/com/gildedgames/aether/client/events/listeners/gui/GuiOverlayTooltipListener.java b/src/main/java/com/gildedgames/aether/client/events/listeners/gui/GuiOverlayTooltipListener.java deleted file mode 100644 index 987ed02be5..0000000000 --- a/src/main/java/com/gildedgames/aether/client/events/listeners/gui/GuiOverlayTooltipListener.java +++ /dev/null @@ -1,84 +0,0 @@ -package com.gildedgames.aether.client.events.listeners.gui; - -import com.gildedgames.aether.api.world.IWorldObjectHoverable; -import net.minecraft.block.Block; -import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.Gui; -import net.minecraft.client.gui.ScaledResolution; -import net.minecraft.entity.Entity; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.RayTraceResult; -import net.minecraft.util.text.ITextComponent; -import net.minecraft.util.text.TextFormatting; -import net.minecraftforge.client.event.RenderGameOverlayEvent; -import net.minecraftforge.fml.common.Mod; -import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; -import net.minecraftforge.fml.relauncher.Side; - -@Mod.EventBusSubscriber(Side.CLIENT) -public class GuiOverlayTooltipListener -{ - @SubscribeEvent - public static void onRenderIngameOverlay(final RenderGameOverlayEvent.Pre event) - { - if (event.getType() == RenderGameOverlayEvent.ElementType.CROSSHAIRS) - { - Minecraft minecraft = Minecraft.getMinecraft(); - - if (minecraft.currentScreen == null && minecraft.objectMouseOver != null) - { - IWorldObjectHoverable hoverable = null; - - if (minecraft.objectMouseOver.typeOfHit == RayTraceResult.Type.BLOCK) - { - BlockPos pos = minecraft.objectMouseOver.getBlockPos(); - - Block block = minecraft.world.getBlockState(pos).getBlock(); - - if (!(block instanceof IWorldObjectHoverable)) - { - return; - } - - hoverable = (IWorldObjectHoverable) block; - } - else if (minecraft.objectMouseOver.typeOfHit == RayTraceResult.Type.ENTITY) - { - Entity entity = minecraft.objectMouseOver.entityHit; - - if (!(entity instanceof IWorldObjectHoverable)) - { - return; - } - - hoverable = (IWorldObjectHoverable) entity; - } - - if (hoverable != null) - { - ITextComponent body = hoverable.getHoverText(minecraft.world, minecraft.objectMouseOver); - - if (body == null) - { - return; - } - - String button = minecraft.gameSettings.keyBindUseItem.getDisplayName(); - - String label = String.format("%s[%s]%s %s", TextFormatting.YELLOW, button, TextFormatting.WHITE, body.getFormattedText()); - - ScaledResolution resolution = new ScaledResolution(minecraft); - - int width = minecraft.fontRenderer.getStringWidth(label); - int x = (resolution.getScaledWidth() / 2) - (width / 2); - int y = ((resolution.getScaledHeight() / 2) - 1) + 20; - - Gui.drawRect(x - 3, y - 3, x + width + 3, y + 10, Integer.MIN_VALUE); - - minecraft.fontRenderer.drawString(label, x, y, 0xFFFFFF); - } - } - } - } - -} diff --git a/src/main/java/com/gildedgames/aether/client/events/listeners/gui/GuiRespawnListener.java b/src/main/java/com/gildedgames/aether/client/events/listeners/gui/GuiRespawnListener.java deleted file mode 100644 index e8f9828f24..0000000000 --- a/src/main/java/com/gildedgames/aether/client/events/listeners/gui/GuiRespawnListener.java +++ /dev/null @@ -1,57 +0,0 @@ -package com.gildedgames.aether.client.events.listeners.gui; - -import com.gildedgames.aether.common.init.DimensionsAether; -import com.gildedgames.aether.common.network.NetworkingAether; -import com.gildedgames.aether.common.network.packets.PacketSetShouldRespawnAtCampfire; -import net.minecraft.client.gui.GuiButton; -import net.minecraft.client.gui.GuiGameOver; -import net.minecraft.client.gui.GuiScreen; -import net.minecraft.client.resources.I18n; -import net.minecraftforge.client.event.GuiScreenEvent; -import net.minecraftforge.fml.common.Mod; -import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; -import net.minecraftforge.fml.relauncher.Side; - -@Mod.EventBusSubscriber(Side.CLIENT) -public class GuiRespawnListener -{ - @SubscribeEvent - public static void onEvent(GuiScreenEvent.DrawScreenEvent event) - { - GuiScreen gui = event.getGui(); - - if (gui instanceof GuiGameOver && gui.mc.world.provider.getDimensionType() == DimensionsAether.AETHER) - { - gui.buttonList.get(2).enabled = gui.buttonList.get(1).enabled; - } - } - - @SubscribeEvent - public static void onEvent(GuiScreenEvent.InitGuiEvent.Post event) - { - GuiScreen gui = event.getGui(); - - if (gui instanceof GuiGameOver && gui.mc.world.provider.getDimensionType() == DimensionsAether.AETHER) - { - event.getButtonList().get(0).displayString = I18n.format("gui.aether.respawn.bed"); - event.getButtonList().get(1).y += 24; - event.getButtonList().add(new GuiButton(2, gui.width / 2 - 100, gui.height / 4 + 96, I18n.format("gui.aether.campfire.bed"))); - } - } - - @SubscribeEvent - public static void onEvent(GuiScreenEvent.ActionPerformedEvent event) - { - GuiScreen gui = event.getGui(); - - if (gui instanceof GuiGameOver && gui.mc.world.provider.getDimensionType() == DimensionsAether.AETHER) - { - if (event.getButton() != null && event.getButton().id == 2) - { - NetworkingAether.sendPacketToServer(new PacketSetShouldRespawnAtCampfire()); - gui.mc.player.respawnPlayer(); - gui.mc.displayGuiScreen(null); - } - } - } -} diff --git a/src/main/java/com/gildedgames/aether/client/events/listeners/gui/GuiSignListener.java b/src/main/java/com/gildedgames/aether/client/events/listeners/gui/GuiSignListener.java deleted file mode 100644 index 6c98fbbbca..0000000000 --- a/src/main/java/com/gildedgames/aether/client/events/listeners/gui/GuiSignListener.java +++ /dev/null @@ -1,29 +0,0 @@ -package com.gildedgames.aether.client.events.listeners.gui; - -import com.gildedgames.aether.client.gui.misc.GuiSkyrootSign; -import com.gildedgames.aether.common.entities.tiles.TileEntitySkyrootSign; -import net.minecraft.client.gui.GuiScreen; -import net.minecraft.client.gui.inventory.GuiEditSign; -import net.minecraftforge.client.event.GuiOpenEvent; -import net.minecraftforge.fml.common.Mod; -import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; -import net.minecraftforge.fml.relauncher.Side; - -@Mod.EventBusSubscriber(Side.CLIENT) -public class GuiSignListener -{ - @SubscribeEvent - public static void onOpenGui(final GuiOpenEvent event) - { - GuiScreen gui = event.getGui(); - - if (gui instanceof GuiEditSign) - { - if (((GuiEditSign) gui).tileSign instanceof TileEntitySkyrootSign) - { - event.setGui(new GuiSkyrootSign(((GuiEditSign) gui).tileSign)); - } - } - } - -} diff --git a/src/main/java/com/gildedgames/aether/client/events/listeners/gui/GuiTabListener.java b/src/main/java/com/gildedgames/aether/client/events/listeners/gui/GuiTabListener.java deleted file mode 100644 index 9c1394db65..0000000000 --- a/src/main/java/com/gildedgames/aether/client/events/listeners/gui/GuiTabListener.java +++ /dev/null @@ -1,176 +0,0 @@ -package com.gildedgames.aether.client.events.listeners.gui; - -import com.gildedgames.aether.api.AetherAPI; -import com.gildedgames.aether.api.registry.tab.ITabClient; -import com.gildedgames.aether.api.registry.tab.ITabGroup; -import com.gildedgames.aether.api.registry.tab.ITabGroupHandler; -import com.gildedgames.aether.client.gui.tab.RenderTabGroup; -import com.gildedgames.aether.common.network.NetworkingAether; -import com.gildedgames.aether.common.network.packets.PacketOpenTab; -import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.GuiScreen; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraftforge.client.event.GuiOpenEvent; -import net.minecraftforge.client.event.GuiScreenEvent; -import net.minecraftforge.fml.common.Mod; -import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; -import net.minecraftforge.fml.common.gameevent.TickEvent; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; -import org.lwjgl.input.Mouse; - -@Mod.EventBusSubscriber(Side.CLIENT) -public class GuiTabListener -{ - @SideOnly(Side.CLIENT) - private final static RenderTabGroup tabGroupRenderer = new RenderTabGroup(); - - @SubscribeEvent - public static void onGuiOpen(final GuiOpenEvent event) - { - if (Minecraft.getMinecraft().world == null) - { - return; - } - - final GuiScreen gui = event.getGui(); - - final ITabGroupHandler groupHandler = AetherAPI.content().tabs().getActiveGroup(); - - if (groupHandler != null) - { - final ITabClient selectedTab = groupHandler.getClientGroup().getSelectedTab(); - - if (gui != null && selectedTab.isTabValid(gui)) - { - return; - } - - AetherAPI.content().tabs().setActiveGroup(null); - } - - for (final ITabGroupHandler tabGroupHandler : AetherAPI.content().tabs().getRegisteredTabGroups().values()) - { - final ITabGroup<ITabClient> tabGroup = tabGroupHandler.getClientGroup(); - - for (final ITabClient tab : tabGroup.getTabs()) - { - if (event.getGui() != null && tab.isTabValid(gui)) - { - if (tabGroup.getRememberSelectedTab() && tabGroup.getRememberedTab() != null) - { - tabGroup.setSelectedTab(tabGroup.getRememberedTab()); - } - else - { - tabGroup.setSelectedTab(tab); - } - - AetherAPI.content().tabs().setActiveGroup(tabGroupHandler); - - tabGroup.getSelectedTab().onOpen(Minecraft.getMinecraft().player); - NetworkingAether.sendPacketToServer(new PacketOpenTab(tabGroup.getSelectedTab())); - - event.setCanceled(true); - - return; - } - } - } - } - - @SubscribeEvent - public static void onGuiMouseEvent(final GuiScreenEvent.MouseInputEvent.Pre event) - { - if (Minecraft.getMinecraft().world == null) - { - return; - } - - final EntityPlayer player = Minecraft.getMinecraft().player; - - if (player == null || !player.inventory.getItemStack().isEmpty()) - { - return; - } - - final ITabGroupHandler groupHandler = AetherAPI.content().tabs().getActiveGroup(); - - if (groupHandler != null) - { - final ITabGroup<ITabClient> activeGroup = groupHandler.getClientGroup(); - - if (activeGroup != null) - { - final ITabClient hoveredTab; - - hoveredTab = tabGroupRenderer.getHoveredTab(activeGroup); - - if (Mouse.getEventButtonState() && hoveredTab != null) - { - if (hoveredTab != activeGroup.getSelectedTab()) - { - activeGroup.getSelectedTab().onClose(Minecraft.getMinecraft().player); - - if (hoveredTab.getUnlocalizedName().equals("tab.guidebook")) - { - activeGroup.setSelectedTab(activeGroup.getTabs().get(2)); - } - else - { - activeGroup.setSelectedTab(hoveredTab); - } - - if (hoveredTab != activeGroup.getRememberedTab() && hoveredTab.isRemembered()) - { - if (activeGroup.getRememberedTab() != null) - { - activeGroup.getRememberedTab().onClose(Minecraft.getMinecraft().player); - } - - if (hoveredTab.getUnlocalizedName().equals("tab.guidebook")) - { - activeGroup.setRememberedTab(activeGroup.getTabs().get(2)); - } - else - { - activeGroup.setRememberedTab(hoveredTab); - } - } - - hoveredTab.onOpen(Minecraft.getMinecraft().player); - NetworkingAether.sendPacketToServer(new PacketOpenTab(hoveredTab)); - - event.setCanceled(true); - } - } - } - } - } - - @SubscribeEvent - public static void tickEnd(final TickEvent.RenderTickEvent event) - { - if (event.phase == TickEvent.Phase.END) - { - final EntityPlayer player = Minecraft.getMinecraft().player; - - if (player == null || !player.inventory.getItemStack().isEmpty()) - { - return; - } - - final ITabGroupHandler groupHandler = AetherAPI.content().tabs().getActiveGroup(); - - if (groupHandler != null) - { - final ITabGroup<ITabClient> activeGroup = groupHandler.getClientGroup(); - - if (activeGroup != null) - { - tabGroupRenderer.render(activeGroup); - } - } - } - } -} diff --git a/src/main/java/com/gildedgames/aether/client/events/listeners/network/ClientNetworkStateListener.java b/src/main/java/com/gildedgames/aether/client/events/listeners/network/ClientNetworkStateListener.java deleted file mode 100644 index 27a8221bf4..0000000000 --- a/src/main/java/com/gildedgames/aether/client/events/listeners/network/ClientNetworkStateListener.java +++ /dev/null @@ -1,28 +0,0 @@ -package com.gildedgames.aether.client.events.listeners.network; - -import com.gildedgames.aether.common.AetherCore; -import com.gildedgames.aether.common.analytics.GAUser; -import net.minecraftforge.fml.common.Mod; -import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; -import net.minecraftforge.fml.common.network.FMLNetworkEvent; -import net.minecraftforge.fml.relauncher.Side; - -@Mod.EventBusSubscriber(Side.CLIENT) -public class ClientNetworkStateListener -{ - @SubscribeEvent - public static void onClientJoinServer(FMLNetworkEvent.ClientConnectedToServerEvent event) - { - GAUser user = AetherCore.ANALYTICS.getUser(); - user.startSession(AetherCore.ANALYTICS); - } - - @SubscribeEvent - public static void onClientLeaveServer(FMLNetworkEvent.ClientDisconnectionFromServerEvent event) - { - GAUser user = AetherCore.ANALYTICS.getUser(); - user.endSession(AetherCore.ANALYTICS); - - AetherCore.ANALYTICS.flush(); - } -} diff --git a/src/main/java/com/gildedgames/aether/client/events/listeners/render/RenderCameraSetupListener.java b/src/main/java/com/gildedgames/aether/client/events/listeners/render/RenderCameraSetupListener.java deleted file mode 100644 index ba79cc7d67..0000000000 --- a/src/main/java/com/gildedgames/aether/client/events/listeners/render/RenderCameraSetupListener.java +++ /dev/null @@ -1,135 +0,0 @@ -package com.gildedgames.aether.client.events.listeners.render; - -import com.gildedgames.aether.common.AetherCore; -import com.gildedgames.aether.common.capabilities.entity.player.PlayerAether; -import com.gildedgames.aether.common.capabilities.entity.player.modules.PlayerRollMovementModule; -import com.gildedgames.aether.common.network.NetworkingAether; -import com.gildedgames.aether.common.network.packets.PacketSpecialMovement; -import com.gildedgames.aether.common.util.helpers.AetherHelper; -import net.minecraft.client.Minecraft; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraftforge.client.event.EntityViewRenderEvent; -import net.minecraftforge.fml.client.FMLClientHandler; -import net.minecraftforge.fml.common.Mod; -import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; -import net.minecraftforge.fml.common.gameevent.InputEvent; -import net.minecraftforge.fml.relauncher.Side; -import org.lwjgl.input.Keyboard; - -@Mod.EventBusSubscriber(Side.CLIENT) -public class RenderCameraSetupListener -{ - - private static long sneakKeyDownTimeStamp, rollKeyDownTimeStamp; - - private static final int sneakTimeRequired = 300; - - private static final int maxRollHold = 300; - - private static int lastKey; - - @SubscribeEvent - public static void onClientTick(final InputEvent.KeyInputEvent event) - { - //TODO: Temp disable of rolling - if (true) - { - return; - } - - final Minecraft mc = FMLClientHandler.instance().getClient(); - long time = System.currentTimeMillis(); - - if (mc.player == null) - { - return; - } - - if (!AetherHelper.isEnabled(mc.world)) - { - return; - } - - PlayerAether playerAether = PlayerAether.getPlayer(mc.player); - - Keyboard.enableRepeatEvents(false); - - int key = Keyboard.getEventKey(); - - if (!Keyboard.getEventKeyState()) - { - if (rollKeyDownTimeStamp > 0 && time - rollKeyDownTimeStamp < maxRollHold) - { - PacketSpecialMovement.Action action = null; - - if (lastKey == mc.gameSettings.keyBindForward.getKeyCode()) - { - action = PacketSpecialMovement.Action.ROLL_FORWARD; - } - else if (lastKey == mc.gameSettings.keyBindBack.getKeyCode()) - { - action = PacketSpecialMovement.Action.ROLL_BACK; - } - else if (lastKey == mc.gameSettings.keyBindLeft.getKeyCode()) - { - action = PacketSpecialMovement.Action.ROLL_LEFT; - } - else if (lastKey == mc.gameSettings.keyBindRight.getKeyCode()) - { - action = PacketSpecialMovement.Action.ROLL_RIGHT; - } - - if (action != null) - { - playerAether.getModule(PlayerRollMovementModule.class).startRolling(action); - NetworkingAether.sendPacketToServer(new PacketSpecialMovement(action)); - - sneakKeyDownTimeStamp = 0; - } - - lastKey = Keyboard.KEY_NONE; - } - else - { - rollKeyDownTimeStamp = 0; - } - - return; - } - - boolean forward = key == mc.gameSettings.keyBindForward.getKeyCode(); - boolean back = key == mc.gameSettings.keyBindBack.getKeyCode(); - boolean left = key == mc.gameSettings.keyBindLeft.getKeyCode(); - boolean right = key == mc.gameSettings.keyBindRight.getKeyCode(); - - if (forward || left || back || right) - { - if (!playerAether.getModule(PlayerRollMovementModule.class).isRolling() && key == lastKey && time - sneakKeyDownTimeStamp < sneakTimeRequired) - { - rollKeyDownTimeStamp = System.currentTimeMillis(); - } - - if (time - sneakKeyDownTimeStamp >= sneakTimeRequired) - { - sneakKeyDownTimeStamp = System.currentTimeMillis(); - - if (forward) - { - lastKey = mc.gameSettings.keyBindForward.getKeyCode(); - } - else if (back) - { - lastKey = mc.gameSettings.keyBindBack.getKeyCode(); - } - else if (left) - { - lastKey = mc.gameSettings.keyBindLeft.getKeyCode(); - } - else - { - lastKey = mc.gameSettings.keyBindRight.getKeyCode(); - } - } - } - } -} diff --git a/src/main/java/com/gildedgames/aether/client/events/listeners/render/RenderDebugOverlayListener.java b/src/main/java/com/gildedgames/aether/client/events/listeners/render/RenderDebugOverlayListener.java deleted file mode 100644 index 9fd0ab9ae7..0000000000 --- a/src/main/java/com/gildedgames/aether/client/events/listeners/render/RenderDebugOverlayListener.java +++ /dev/null @@ -1,39 +0,0 @@ -package com.gildedgames.aether.client.events.listeners.render; - -import com.gildedgames.aether.api.registrar.CapabilitiesAether; -import com.gildedgames.aether.api.world.islands.precipitation.IPrecipitationManager; -import net.minecraft.client.Minecraft; -import net.minecraft.util.text.TextFormatting; -import net.minecraftforge.client.event.RenderGameOverlayEvent; -import net.minecraftforge.fml.common.Mod; -import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; -import net.minecraftforge.fml.relauncher.Side; - -@Mod.EventBusSubscriber(Side.CLIENT) -public class RenderDebugOverlayListener -{ - - @SubscribeEvent - public static void onRenderDebugInfo(RenderGameOverlayEvent.Text event) - { - if (!Minecraft.getMinecraft().gameSettings.showDebugInfo) - { - return; - } - - if (Minecraft.getMinecraft().world.getWorldInfo().isRaining()) - { - IPrecipitationManager precipitation = Minecraft.getMinecraft().world.getCapability(CapabilitiesAether.PRECIPITATION_MANAGER, null); - - if (precipitation != null) - { - event.getLeft().add(""); - event.getLeft().add(TextFormatting.DARK_AQUA + "[" + TextFormatting.AQUA + "Aether Precipitation" + TextFormatting.DARK_AQUA + "]"); - event.getLeft().add("- Strength: " + precipitation.getStrength().name()); - event.getLeft().add("- Wind Velocity: (" + String.format("%.2f, %.2f", precipitation.getWindVector().x, precipitation.getWindVector().y) + ")"); - } - } - - - } -} diff --git a/src/main/java/com/gildedgames/aether/client/events/listeners/render/RenderFirstPersonHandListener.java b/src/main/java/com/gildedgames/aether/client/events/listeners/render/RenderFirstPersonHandListener.java deleted file mode 100644 index 03dc3f2119..0000000000 --- a/src/main/java/com/gildedgames/aether/client/events/listeners/render/RenderFirstPersonHandListener.java +++ /dev/null @@ -1,27 +0,0 @@ -package com.gildedgames.aether.client.events.listeners.render; - -import com.gildedgames.aether.client.renderer.entities.living.RenderPlayerHelper; -import com.gildedgames.aether.common.capabilities.entity.player.PlayerAether; -import com.gildedgames.aether.common.items.weapons.crossbow.ItemCrossbow; -import net.minecraft.client.Minecraft; -import net.minecraft.client.renderer.GlStateManager; -import net.minecraft.util.EnumHand; -import net.minecraftforge.client.event.RenderSpecificHandEvent; -import net.minecraftforge.fml.common.Mod; -import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; -import net.minecraftforge.fml.relauncher.Side; - -@Mod.EventBusSubscriber(Side.CLIENT) -public class RenderFirstPersonHandListener -{ - @SubscribeEvent - public static void onRenderSpecificHandEvent(RenderSpecificHandEvent event) - { - if (event.getItemStack().getItem() instanceof ItemCrossbow) - { - event.setCanceled(true); - } - - RenderPlayerHelper.renderItemFirstPerson(Minecraft.getMinecraft().player, event.getPartialTicks(), event.getInterpolatedPitch(), event.getHand(), event.getSwingProgress(), event.getItemStack(), event.getEquipProgress()); - } -} diff --git a/src/main/java/com/gildedgames/aether/client/events/listeners/render/RenderMountHotbarListener.java b/src/main/java/com/gildedgames/aether/client/events/listeners/render/RenderMountHotbarListener.java deleted file mode 100644 index 17e2f29866..0000000000 --- a/src/main/java/com/gildedgames/aether/client/events/listeners/render/RenderMountHotbarListener.java +++ /dev/null @@ -1,44 +0,0 @@ -package com.gildedgames.aether.client.events.listeners.render; - -import com.gildedgames.aether.api.entity.IMount; -import com.gildedgames.aether.api.entity.IMountProcessor; -import com.gildedgames.aether.common.entities.mounts.FlyingMount; -import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.ScaledResolution; -import net.minecraftforge.client.event.RenderGameOverlayEvent; -import net.minecraftforge.fml.common.Mod; -import net.minecraftforge.fml.common.eventhandler.EventPriority; -import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; -import net.minecraftforge.fml.relauncher.Side; - -@Mod.EventBusSubscriber(Side.CLIENT) -public class RenderMountHotbarListener -{ - private static final Minecraft mc = Minecraft.getMinecraft(); - - @SubscribeEvent(priority = EventPriority.NORMAL) - public static void onRenderGui(final RenderGameOverlayEvent event) - { - final ScaledResolution scaledRes = new ScaledResolution(mc); - - if (event.getType() == RenderGameOverlayEvent.ElementType.HOTBAR) - { - if (mc.player.isRiding()) - { - if (mc.player.getRidingEntity() instanceof IMount) - { - final IMount mount = (IMount) mc.player.getRidingEntity(); - final IMountProcessor processor = mount.getMountProcessor(); - - if (processor instanceof FlyingMount) - { - final FlyingMount flyingMount = (FlyingMount) processor; - - mc.ingameGUI.drawCenteredString(mc.fontRenderer, String.valueOf((int) (flyingMount.getData().getRemainingAirborneTime())), - scaledRes.getScaledWidth() / 2, scaledRes.getScaledHeight() - 30, 0xFFFFFF); - } - } - } - } - } -} diff --git a/src/main/java/com/gildedgames/aether/client/events/listeners/render/RenderPerformanceIndicatorListener.java b/src/main/java/com/gildedgames/aether/client/events/listeners/render/RenderPerformanceIndicatorListener.java deleted file mode 100644 index 9594facde2..0000000000 --- a/src/main/java/com/gildedgames/aether/client/events/listeners/render/RenderPerformanceIndicatorListener.java +++ /dev/null @@ -1,27 +0,0 @@ -package com.gildedgames.aether.client.events.listeners.render; - -import com.gildedgames.aether.client.gui.PerformanceIngame; -import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.ScaledResolution; -import net.minecraftforge.client.event.RenderGameOverlayEvent; -import net.minecraftforge.fml.common.Mod; -import net.minecraftforge.fml.common.eventhandler.EventPriority; -import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; -import net.minecraftforge.fml.relauncher.Side; - -@Mod.EventBusSubscriber(Side.CLIENT) -public class RenderPerformanceIndicatorListener -{ - private static final PerformanceIngame PERFORMANCE_LOGGER = new PerformanceIngame(); - - @SubscribeEvent(priority = EventPriority.NORMAL) - public static void onRenderGui(final RenderGameOverlayEvent event) - { - final ScaledResolution scaledRes = new ScaledResolution(Minecraft.getMinecraft()); - - if (event.getType() == RenderGameOverlayEvent.ElementType.HOTBAR) - { - PERFORMANCE_LOGGER.renderIcon(); - } - } -} diff --git a/src/main/java/com/gildedgames/aether/client/events/listeners/render/RenderWorldPrecipitationListener.java b/src/main/java/com/gildedgames/aether/client/events/listeners/render/RenderWorldPrecipitationListener.java deleted file mode 100644 index 70a39570a6..0000000000 --- a/src/main/java/com/gildedgames/aether/client/events/listeners/render/RenderWorldPrecipitationListener.java +++ /dev/null @@ -1,32 +0,0 @@ -package com.gildedgames.aether.client.events.listeners.render; - -import com.gildedgames.aether.client.renderer.world.RenderWorldPrecipitation; -import net.minecraft.client.Minecraft; -import net.minecraft.world.World; -import net.minecraftforge.client.IRenderHandler; -import net.minecraftforge.fml.common.Mod; -import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; -import net.minecraftforge.fml.common.gameevent.TickEvent; -import net.minecraftforge.fml.relauncher.Side; - -@Mod.EventBusSubscriber(Side.CLIENT) -public class RenderWorldPrecipitationListener -{ - @SubscribeEvent - public static void onClientRenderTick(TickEvent.ClientTickEvent event) - { - World world = Minecraft.getMinecraft().world; - - if (world == null || !world.isRemote) - { - return; - } - - IRenderHandler handler = world.provider.getWeatherRenderer(); - - if (handler instanceof RenderWorldPrecipitation) - { - ((RenderWorldPrecipitation) handler).tick(); - } - } -} diff --git a/src/main/java/com/gildedgames/aether/client/events/listeners/sound/ItemUseSoundListener.java b/src/main/java/com/gildedgames/aether/client/events/listeners/sound/ItemUseSoundListener.java deleted file mode 100644 index 0b32fb069c..0000000000 --- a/src/main/java/com/gildedgames/aether/client/events/listeners/sound/ItemUseSoundListener.java +++ /dev/null @@ -1,36 +0,0 @@ -package com.gildedgames.aether.client.events.listeners.sound; - -import com.gildedgames.aether.common.items.IUsesCustomSound; -import net.minecraft.client.Minecraft; -import net.minecraft.item.ItemStack; -import net.minecraftforge.client.event.sound.PlaySoundEvent; -import net.minecraftforge.fml.common.Mod; -import net.minecraftforge.fml.common.eventhandler.EventPriority; -import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; -import net.minecraftforge.fml.relauncher.Side; - -@Mod.EventBusSubscriber(Side.CLIENT) -public class ItemUseSoundListener -{ - @SubscribeEvent(priority = EventPriority.LOWEST) - public static void onSoundEvent(final PlaySoundEvent event) - { - if (Minecraft.getMinecraft().player != null) - { - ItemStack stack = Minecraft.getMinecraft().player.getHeldItemMainhand(); - - if (stack.getItem() instanceof IUsesCustomSound) - { - IUsesCustomSound item = (IUsesCustomSound) stack.getItem(); - - if (item.usesCustomSound(stack)) - { - if (event.getName().equals(item.getDefaultSound().getSoundName().getPath())) - { - event.setResultSound(null); - } - } - } - } - } -} diff --git a/src/main/java/com/gildedgames/aether/client/events/listeners/sound/PlaySoundListener.java b/src/main/java/com/gildedgames/aether/client/events/listeners/sound/PlaySoundListener.java deleted file mode 100644 index 1cbd33f27b..0000000000 --- a/src/main/java/com/gildedgames/aether/client/events/listeners/sound/PlaySoundListener.java +++ /dev/null @@ -1,45 +0,0 @@ -package com.gildedgames.aether.client.events.listeners.sound; - -import com.gildedgames.aether.common.capabilities.DamageSystem; -import com.gildedgames.aether.common.util.helpers.AetherHelper; -import net.minecraft.client.Minecraft; -import net.minecraft.init.SoundEvents; -import net.minecraftforge.client.event.sound.PlaySoundEvent; -import net.minecraftforge.fml.common.Mod; -import net.minecraftforge.fml.common.eventhandler.EventPriority; -import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; -import net.minecraftforge.fml.relauncher.Side; - -@Mod.EventBusSubscriber(Side.CLIENT) -public class PlaySoundListener -{ - @SubscribeEvent(priority = EventPriority.LOWEST) - public static void onRainSoundEvent(final PlaySoundEvent event) - { - if (AetherHelper.isAether(Minecraft.getMinecraft().world)) - { - if (event.getName().equals(SoundEvents.WEATHER_RAIN.getSoundName().getPath()) || - event.getName().equals(SoundEvents.WEATHER_RAIN_ABOVE.getSoundName().getPath())) - { - event.setResultSound(null); - } - } - } - - @SubscribeEvent(priority = EventPriority.LOWEST) - public static void onAttackSoundEvent(final PlaySoundEvent event) - { - if (DamageSystem.blocked) - { - if (event.getName().equals(SoundEvents.ENTITY_PLAYER_ATTACK_CRIT.getSoundName().getPath()) || - event.getName().equals(SoundEvents.ENTITY_PLAYER_ATTACK_STRONG.getSoundName().getPath()) || - event.getName().equals(SoundEvents.ENTITY_PLAYER_ATTACK_KNOCKBACK.getSoundName().getPath()) || - event.getName().equals(SoundEvents.ENTITY_PLAYER_ATTACK_NODAMAGE.getSoundName().getPath()) || - event.getName().equals(SoundEvents.ENTITY_PLAYER_ATTACK_SWEEP.getSoundName().getPath()) || - event.getName().equals(SoundEvents.ENTITY_PLAYER_ATTACK_WEAK.getSoundName().getPath())) - { - event.setResultSound(null); - } - } - } -} diff --git a/src/main/java/com/gildedgames/aether/client/events/listeners/tick/ClientTickMusicListener.java b/src/main/java/com/gildedgames/aether/client/events/listeners/tick/ClientTickMusicListener.java deleted file mode 100644 index d2754ee9f7..0000000000 --- a/src/main/java/com/gildedgames/aether/client/events/listeners/tick/ClientTickMusicListener.java +++ /dev/null @@ -1,83 +0,0 @@ -package com.gildedgames.aether.client.events.listeners.tick; - -import com.gildedgames.aether.client.sound.AetherMusicManager; -import com.gildedgames.aether.common.AetherCore; -import com.gildedgames.aether.common.init.DimensionsAether; -import net.minecraft.client.Minecraft; -import net.minecraft.client.audio.ISound; -import net.minecraft.util.SoundCategory; -import net.minecraftforge.client.event.sound.PlaySoundEvent; -import net.minecraftforge.fml.common.Mod; -import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; -import net.minecraftforge.fml.common.gameevent.TickEvent; -import net.minecraftforge.fml.relauncher.Side; - -@Mod.EventBusSubscriber(Side.CLIENT) -public class ClientTickMusicListener -{ - private static Minecraft mc = Minecraft.getMinecraft(); - - private static AetherMusicManager musicTicker = new AetherMusicManager(mc); - - @SubscribeEvent - public static void onClientTick(final TickEvent.ClientTickEvent event) - { - TickEvent.Phase phase = event.phase; - TickEvent.Type type = event.type; - - if (phase == TickEvent.Phase.END) - { - if (type.equals(TickEvent.Type.CLIENT)) - { - if (!mc.isGamePaused()) - { - if (!musicTicker.playingRecord()) - { - musicTicker.update(); - } - } - } - } - - if (!(mc.getSoundHandler().isSoundPlaying(musicTicker.getRecord()))) - { - musicTicker.trackRecord(null); - } - } - - @SubscribeEvent - public static void onMusicControl(final PlaySoundEvent event) - { - ISound sound = event.getResultSound(); - - if (sound == null) - { - return; - } - - SoundCategory category = sound.getCategory(); - - if (category == SoundCategory.MUSIC) - { - if (mc.player != null) - { - if (mc.player.world.provider.getDimensionType() == DimensionsAether.AETHER || mc.player.world.provider.getDimensionType() == DimensionsAether.NECROMANCER_TOWER) - { - if (!sound.getSoundLocation().toString().contains(AetherCore.MOD_ID) && (musicTicker.playingMusic() || !musicTicker.playingMusic())) - { - event.setResultSound(null); - - return; - } - } - } - } - else if (category == SoundCategory.RECORDS && !(event.getName().contains("block.note"))) - { - musicTicker.trackRecord(event.getSound()); - mc.getSoundHandler().stopSounds(); - - return; - } - } -} diff --git a/src/main/java/com/gildedgames/aether/client/events/listeners/tick/ClientTickSpecialInputListener.java b/src/main/java/com/gildedgames/aether/client/events/listeners/tick/ClientTickSpecialInputListener.java deleted file mode 100644 index 30d96dec04..0000000000 --- a/src/main/java/com/gildedgames/aether/client/events/listeners/tick/ClientTickSpecialInputListener.java +++ /dev/null @@ -1,63 +0,0 @@ -package com.gildedgames.aether.client.events.listeners.tick; - -import com.gildedgames.aether.api.registrar.SoundsAether; -import com.gildedgames.aether.common.capabilities.entity.player.PlayerAether; -import com.gildedgames.aether.common.capabilities.entity.player.modules.PlayerAbilitiesModule; -import com.gildedgames.aether.common.network.NetworkingAether; -import com.gildedgames.aether.common.network.packets.PacketSpecialMovement; -import net.minecraft.client.Minecraft; -import net.minecraft.client.entity.EntityPlayerSP; -import net.minecraft.util.SoundCategory; -import net.minecraft.world.World; -import net.minecraftforge.fml.client.FMLClientHandler; -import net.minecraftforge.fml.common.Mod; -import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; -import net.minecraftforge.fml.common.gameevent.TickEvent; -import net.minecraftforge.fml.relauncher.Side; - -@Mod.EventBusSubscriber(Side.CLIENT) -public class ClientTickSpecialInputListener -{ - private static boolean PREV_JUMP_BIND_STATE; - - @SubscribeEvent - public static void onClientTick(final TickEvent.ClientTickEvent event) - { - if (event.phase != TickEvent.Phase.END) - { - return; - } - - final Minecraft mc = FMLClientHandler.instance().getClient(); - - final World world = FMLClientHandler.instance().getWorldClient(); - - final EntityPlayerSP player = FMLClientHandler.instance().getClientPlayerEntity(); - - if (world != null && player != null) - { - final PlayerAether aePlayer = PlayerAether.getPlayer(player); - - PlayerAbilitiesModule abilitiesModule = aePlayer.getModule(PlayerAbilitiesModule.class); - - if (abilitiesModule.getMidAirJumpsAllowed() > 0) - { - if (mc.gameSettings.keyBindJump.isKeyDown() && !PREV_JUMP_BIND_STATE) - { - if (!player.isInWater() && abilitiesModule.getTicksAirborne() > 2 && !player.capabilities.isCreativeMode) - { - if (abilitiesModule.performMidAirJump()) - { - NetworkingAether.sendPacketToServer(new PacketSpecialMovement(PacketSpecialMovement.Action.EXTRA_JUMP)); - - world.playSound(player.posX, player.posY, player.posZ, SoundsAether.generic_wing_flap, SoundCategory.PLAYERS, 0.4f, - 0.8f + (world.rand.nextFloat() * 0.6f), false); - } - } - } - } - - PREV_JUMP_BIND_STATE = mc.gameSettings.keyBindJump.isKeyDown(); - } - } -} diff --git a/src/main/java/com/gildedgames/aether/client/events/listeners/tooltip/TooltipItemPropertiesListener.java b/src/main/java/com/gildedgames/aether/client/events/listeners/tooltip/TooltipItemPropertiesListener.java deleted file mode 100644 index 92ec5bcad9..0000000000 --- a/src/main/java/com/gildedgames/aether/client/events/listeners/tooltip/TooltipItemPropertiesListener.java +++ /dev/null @@ -1,326 +0,0 @@ -package com.gildedgames.aether.client.events.listeners.tooltip; - -import com.gildedgames.aether.api.AetherAPI; -import com.gildedgames.aether.api.entity.damage.IDamageLevelsHolder; -import com.gildedgames.aether.api.items.equipment.ItemEquipmentSlot; -import com.gildedgames.aether.api.items.equipment.effects.EffectInstance; -import com.gildedgames.aether.api.items.equipment.effects.IEffectFactory; -import com.gildedgames.aether.api.items.equipment.effects.IEffectPool; -import com.gildedgames.aether.api.items.equipment.effects.IEffectProvider; -import com.gildedgames.aether.api.items.properties.IItemProperties; -import com.gildedgames.aether.api.items.properties.ItemRarity; -import com.gildedgames.aether.client.gui.util.ToolTipCurrencyHelper; -import com.gildedgames.aether.common.entities.effects.IEffectDamageHolder; -import com.gildedgames.aether.common.entities.effects.IEffectResistanceHolder; -import com.gildedgames.aether.common.entities.effects.StatusEffect; -import com.gildedgames.aether.common.items.armor.ItemAetherArmor; -import com.gildedgames.aether.common.items.weapons.swords.ItemAetherSword; -import com.gildedgames.aether.common.shop.ShopCurrencyGilt; -import com.google.common.collect.Lists; -import net.minecraft.client.Minecraft; -import net.minecraft.client.resources.I18n; -import net.minecraft.item.ItemStack; -import net.minecraft.util.text.TextFormatting; -import net.minecraftforge.client.event.RenderTooltipEvent; -import net.minecraftforge.event.entity.player.ItemTooltipEvent; -import net.minecraftforge.fml.common.Mod; -import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; -import net.minecraftforge.fml.relauncher.Side; - -import java.util.*; - -@Mod.EventBusSubscriber(Side.CLIENT) -public class TooltipItemPropertiesListener -{ - private static final ToolTipCurrencyHelper toolTipHelper = new ToolTipCurrencyHelper(); - - @SubscribeEvent - @SuppressWarnings("unchecked") - public static void onTooltipConstruction(final ItemTooltipEvent event) - { - final IItemProperties properties = AetherAPI.content().items().getProperties(event.getItemStack().getItem()); - - final double value = AetherAPI.content().currency().getValue(event.getItemStack(), ShopCurrencyGilt.class); - - String durability = null; - String modID = null; - String NBT = null; - - for (String tooltip : event.getToolTip()) - { - { - if (tooltip.contains("Durability:")) - { - durability = tooltip; - } - - if (tooltip.contains(event.getItemStack().getItem().getCreatorModId(event.getItemStack()) + ":")) - { - modID = tooltip; - } - - if (tooltip.contains("NBT:")) - { - NBT = tooltip; - } - } - } - - event.getToolTip().removeIf(tooltip -> tooltip.contains(event.getItemStack().getItem().getCreatorModId(event.getItemStack()) + ":") || tooltip.contains("NBT:") - || tooltip.contains("Durability:")); - - if (event.getItemStack().getItem() instanceof IDamageLevelsHolder) - { - IDamageLevelsHolder item = (IDamageLevelsHolder) event.getItemStack().getItem(); - - event.getToolTip().removeIf(tooltip -> tooltip.contains("Attack Damage")); - - if (item.getSlashDamageLevel() > 0) - { - String slashValue; - - if (item.getSlashDamageLevel() % 1 == 0) - { - int n = Math.round(item.getSlashDamageLevel()); - slashValue = String.valueOf(n); - } - else - { - float n = item.getSlashDamageLevel(); - slashValue = String.valueOf(n); - } - - event.getToolTip().add(String.format(" %s %s", - slashValue, - String.format("%s %s", - TextFormatting.BLUE + I18n.format("attribute.name.aether.slash"), - TextFormatting.GRAY + I18n.format("attribute.name.aether.damageLevel")))); - } - - if (item.getPierceDamageLevel() > 0) - { - String pierceValue; - - if (item.getPierceDamageLevel() % 1 == 0) - { - int n = Math.round(item.getPierceDamageLevel()); - pierceValue = String.valueOf(n); - } - else - { - float n = item.getPierceDamageLevel(); - pierceValue = String.valueOf(n); - } - - event.getToolTip().add(String.format(" %s %s", - pierceValue, - String.format("%s %s", - TextFormatting.RED + I18n.format("attribute.name.aether.pierce"), - TextFormatting.GRAY + I18n.format("attribute.name.aether.damageLevel")))); - } - - if (item.getImpactDamageLevel() > 0) - { - String impactValue; - - if (item.getImpactDamageLevel() % 1 == 0) - { - int n = Math.round(item.getImpactDamageLevel()); - impactValue = String.valueOf(n); - } - else - { - float n = item.getImpactDamageLevel(); - impactValue = String.valueOf(n); - } - - event.getToolTip().add(String.format(" %s %s", - impactValue, - String.format("%s %s", - TextFormatting.YELLOW + I18n.format("attribute.name.aether.impact"), - TextFormatting.GRAY + I18n.format("attribute.name.aether.damageLevel")))); - } - } - - if (event.getItemStack().getItem() instanceof IEffectDamageHolder) - { - IEffectDamageHolder item = (IEffectDamageHolder) event.getItemStack().getItem(); - - if (!item.getStatusEffects().isEmpty()) - { - for (Map.Entry<StatusEffect, Integer> effect : item.getStatusEffects().entrySet()) - { - Collection<String> stringCollection = Lists.newArrayList(); - effect.getKey().addInformation(stringCollection); - - event.getToolTip().add(String.format(" %s %s", - effect.getValue(), - String.format("%s %s", - stringCollection.toArray()[0], - TextFormatting.GRAY + I18n.format("attribute.name.aether.damageLevel")))); - } - } - } - - if (event.getItemStack().getItem() instanceof IEffectResistanceHolder) - { - IEffectResistanceHolder item = (IEffectResistanceHolder) event.getItemStack().getItem(); - - if (!item.getStatusEffects().isEmpty()) - { - for (Map.Entry<StatusEffect, Double> effect : item.getStatusEffects().entrySet()) - { - Collection<String> stringCollection = Lists.newArrayList(); - effect.getKey().addInformation(stringCollection); - - String trueValue; - - if (effect.getValue() >= -1.0D && effect.getValue() < 1.0D && effect.getValue() != 0.0D) - { - if (effect.getValue() > 0.0) - { - trueValue = ((int) (effect.getValue() * 100)) + "%"; - - event.getToolTip().add(String.format(" +%s %s", - trueValue, - String.format("%s %s", - stringCollection.toArray()[0], - TextFormatting.GRAY + I18n.format("attribute.name.aether.resistance")))); - } - else if (effect.getValue() < 0.0) - { - trueValue = ((int) (effect.getValue() * -100)) + "%"; - - event.getToolTip().add(String.format(" +%s %s", - trueValue, - String.format("%s %s", - stringCollection.toArray()[0], - TextFormatting.GRAY + I18n.format("attribute.name.aether.weakness")))); - } - } - else if (effect.getValue() >= 1.0D) - { - event.getToolTip().add(String.format(" %s %s", - TextFormatting.GRAY + I18n.format("attribute.name.aether.complete_resistance"), - stringCollection.toArray()[0])); - } - } - } - } - - // Equipment Effects - for (final IEffectProvider provider : properties.getEffectProviders()) - { - final IEffectFactory<IEffectProvider> factory = AetherAPI.content().effects().getFactory(provider.getFactory()); - - final EffectPoolTemporary pool = new EffectPoolTemporary(event.getItemStack(), provider); - - TextFormatting textFormatting1 = TextFormatting.BLUE; - TextFormatting textFormatting2 = TextFormatting.RED; - - if (properties.getEquipmentSlot() == ItemEquipmentSlot.NONE) - { - textFormatting1 = TextFormatting.GRAY; - textFormatting2 = TextFormatting.GRAY; - } - - factory.createInstance(pool).addInformation(event.getToolTip(), textFormatting1, textFormatting2); - } - - // Slot Type - if (properties.getEquipmentSlot() != ItemEquipmentSlot.NONE) - { - final ItemEquipmentSlot slot = properties.getEquipmentSlot(); - - event.getToolTip().add(""); - event.getToolTip().add(I18n.format(slot.getUnlocalizedName())); - } - - // Rarity - if (properties.getRarity() != ItemRarity.NONE) - { - event.getToolTip().add(I18n.format(properties.getRarity().getUnlocalizedName())); - } - - if (Minecraft.getMinecraft().gameSettings.advancedItemTooltips) - { - if (durability != null) - { - event.getToolTip().add(durability); - } - - if (modID != null) - { - event.getToolTip().add(modID); - } - - if (event.getItemStack().hasTagCompound()) - { - if (NBT != null) - { - event.getToolTip().add(NBT); - } - } - } - - //Currency - if (value >= 1 && value < 100) - { - event.getToolTip().add(""); - } - else if (value >= 100 && value < 10000) - { - event.getToolTip().add(" "); - } - else if (value >= 10000) - { - event.getToolTip().add(" "); - event.getToolTip().add(""); - } - } - - @SubscribeEvent - public static void onToolTipRender(final RenderTooltipEvent.PostText event) - { - final double value = AetherAPI.content().currency().getValue(event.getStack(), ShopCurrencyGilt.class); - - toolTipHelper.render(event.getFontRenderer(), event.getX(), event.getY(), event.getHeight(), value); - } - - private static class EffectPoolTemporary<T extends IEffectProvider> implements IEffectPool<T> - { - private final ItemStack stack; - - private final T provider; - - public EffectPoolTemporary(final ItemStack stack, final T provider) - { - this.stack = stack; - this.provider = provider; - } - - @Override - public ItemStack getProvider(final IEffectProvider instance) - { - return this.provider == instance ? this.stack : ItemStack.EMPTY; - } - - @Override - public Collection<T> getActiveProviders() - { - return Collections.singleton(this.provider); - } - - @Override - public Optional<EffectInstance> getInstance() - { - return Optional.empty(); - } - - @Override - public boolean isEmpty() - { - return false; - } - } -} diff --git a/src/main/java/com/gildedgames/aether/client/gui/EffectSystemOverlay.java b/src/main/java/com/gildedgames/aether/client/gui/EffectSystemOverlay.java deleted file mode 100644 index ca157e0184..0000000000 --- a/src/main/java/com/gildedgames/aether/client/gui/EffectSystemOverlay.java +++ /dev/null @@ -1,368 +0,0 @@ -package com.gildedgames.aether.client.gui; - -import com.gildedgames.aether.api.entity.effects.IAetherStatusEffectPool; -import com.gildedgames.aether.api.entity.effects.IAetherStatusEffects; -import com.gildedgames.aether.api.registrar.CapabilitiesAether; -import com.gildedgames.aether.common.AetherCore; -import com.google.common.collect.Maps; -import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.Gui; -import net.minecraft.client.gui.ScaledResolution; -import net.minecraft.client.renderer.GlStateManager; -import net.minecraft.client.resources.I18n; -import net.minecraft.util.ResourceLocation; - -import java.util.Map; - -public class EffectSystemOverlay extends Gui -{ - private static final ResourceLocation BAR_OUTLINE = AetherCore.getResource("textures/gui/overlay/effects/bar_outline.png"); - private static final ResourceLocation BAR_HIGHLIGHT = AetherCore.getResource("textures/gui/overlay/effects/bar_highlight.png"); - private static final ResourceLocation BAR_BUILDUP = AetherCore.getResource("textures/gui/overlay/effects/buildup_bar.png"); - - private static final ResourceLocation AMBROSIUM_ICON = AetherCore.getResource("textures/gui/overlay/effects/ambrosium_poisoning.png"); - private static final ResourceLocation BLEED_ICON = AetherCore.getResource("textures/gui/overlay/effects/bleed.png"); - private static final ResourceLocation COCKATRICE_VENOM_ICON = AetherCore.getResource("textures/gui/overlay/effects/cockatrice_venom.png"); - private static final ResourceLocation FRACTURE_ICON = AetherCore.getResource("textures/gui/overlay/effects/fracture.png"); - private static final ResourceLocation FUNGAL_ROT_ICON = AetherCore.getResource("textures/gui/overlay/effects/fungal_rot.png"); - private static final ResourceLocation STUN_ICON = AetherCore.getResource("textures/gui/overlay/effects/stun.png"); - private static final ResourceLocation TOXIN_ICON = AetherCore.getResource("textures/gui/overlay/effects/toxin.png"); - private static final ResourceLocation FREEZE_ICON = AetherCore.getResource("textures/gui/overlay/effects/freeze.png"); - private static final ResourceLocation WEBBING_ICON = AetherCore.getResource("textures/gui/overlay/effects/webbing.png"); - private static final ResourceLocation IRRADIATION_ICON = AetherCore.getResource("textures/gui/overlay/effects/irradiation.png"); - - private static final ResourceLocation SATURATION_BOOST_ICON = AetherCore.getResource("textures/gui/overlay/effects/teas/saturation_boost.png"); - - private static final ResourceLocation GUARD_BREAK_ICON = AetherCore.getResource("textures/gui/overlay/effects/guard_break.png"); - - private final int BAR_OUTLINE_TEXTURE_WIDTH = 22; - private final int BAR_OUTLINE_TEXTURE_HEIGHT = 5; - - private final int BAR_HIGHLIGHT_TEXTURE_WIDTH = 24; - private final int BAR_HIGHLIGHT_TEXTURE_HEIGHT = 7; - - private final int BAR_TEXTURE_WIDTH = 20; - private final int BAR_TEXTURE_HEIGHT = 3; - - private float highlightAlpha = 0.0f; - private boolean increasing = true; - - private Map<IAetherStatusEffects.effectTypes, Integer> buildup = Maps.newHashMap(); - private Map<IAetherStatusEffects.effectTypes, Integer> barBuildup = Maps.newHashMap(); - - public void render(Minecraft mc) - { - ScaledResolution res = new ScaledResolution(mc); - - IAetherStatusEffectPool statusEffectPool = mc.player.getCapability(CapabilitiesAether.STATUS_EFFECT_POOL, null); - - if (statusEffectPool != null) - { - int numOfEffectsApplied = 0; - - for (IAetherStatusEffects effect : statusEffectPool.getPool().values()) - { - if (effect != null) - { - if (effect.getBuildup() > 0) - { - numOfEffectsApplied++; - } - } - } - - int numOfTextsActive = 0; - - for (IAetherStatusEffects effect : statusEffectPool.getPool().values()) - { - if (effect != null) - { - if (effect.getTimer() < 60 && effect.getTimer() > 0) - { - numOfTextsActive++; - } - } - } - - float xPos = (res.getScaledWidth() / 2.0F) - (12.f * numOfEffectsApplied) + 4f; - float yPos = 2f; - int barWidth = 0; - float yPosShift = 6.0F; - - int i = 0; - - for (IAetherStatusEffects effect : statusEffectPool.getPool().values()) - { - if (effect == null) - { - continue; - } - - if (effect.getBuildup() > 0) - { - if (!effect.getIsEffectApplied()) - { - this.renderBar(mc, BAR_OUTLINE, 22, 5, this.BAR_OUTLINE_TEXTURE_WIDTH, this.BAR_OUTLINE_TEXTURE_HEIGHT, xPos + (i * 25.f), yPos, - false, effect); - - barWidth = effect.getBuildup() / 5; - - this.renderBar(mc, BAR_BUILDUP, barWidth, 3, this.BAR_TEXTURE_WIDTH, this.BAR_TEXTURE_HEIGHT, (xPos + 1F) + (i * 25.f), (yPos + 1F), - true, effect); - - this.highlightAlpha = 0.0f; - this.increasing = true; - - yPosShift = 6.0F; - } - else - { - this.renderBar(mc, BAR_OUTLINE, 22, 5, this.BAR_OUTLINE_TEXTURE_WIDTH, this.BAR_OUTLINE_TEXTURE_HEIGHT, xPos + (i * 25.f), yPos, - false, effect); - - barWidth = 20 - (int) (effect.getTimer() / (effect.getActiveEffectTime() * effect.getActiveEffectTimeModifier())); - - this.renderBar(mc, BAR_BUILDUP, barWidth, 3, this.BAR_TEXTURE_WIDTH, this.BAR_TEXTURE_HEIGHT, (xPos + 1F) + (i * 25.f), (yPos + 1F), - true, effect); - - this.renderBar(mc, BAR_HIGHLIGHT, 24, 7, this.BAR_HIGHLIGHT_TEXTURE_WIDTH, this.BAR_HIGHLIGHT_TEXTURE_HEIGHT, (xPos - 1) + (i * 25.f), (yPos - 1), - true, effect); - - if (this.increasing) - { - this.highlightAlpha += 0.02f; - - if (this.highlightAlpha >= 1f) - { - this.increasing = false; - } - } - else - { - this.highlightAlpha -= 0.02f; - - if (this.highlightAlpha <= 0f) - { - this.increasing = true; - } - } - - this.renderHighlight(mc, BAR_HIGHLIGHT, 24, 7, this.BAR_HIGHLIGHT_TEXTURE_WIDTH, this.BAR_HIGHLIGHT_TEXTURE_HEIGHT, (xPos - 1) + (i * 25.f), (yPos - 1), - true, effect, this.highlightAlpha); - - float yTextPos = 0.0f; - - if (numOfTextsActive > 1) - { - yTextPos = yPos + ((i + 1) * 10) + 12.f; - } - else - { - yTextPos = yPos + 22.f; - } - - if (effect.getTimer() < 60 && effect.getTimer() >= 0) - { - this.renderText(mc, (xPos + 11) + (i * 25.f), yTextPos, effect, effect.getEffectTextAlpha()); - } - - yPosShift = 6.0F; - } - - this.renderIcon(mc, this.getEffectIconFromType(effect.getEffectType()), 16,16,16,16,xPos + 3f + (i * 25.f),yPos+yPosShift); - i++; - } - } - } - } - - private void renderText(Minecraft mc, float x, float y, IAetherStatusEffects effect, float alpha) - { - GlStateManager.pushMatrix(); - - float r = 0, g = 0, b = 0, a = 0 ; - - r = Color.getColorFromEffect(effect.getEffectType()).r / 255.F; - g = Color.getColorFromEffect(effect.getEffectType()).g / 255.F; - b = Color.getColorFromEffect(effect.getEffectType()).b / 255.F; - a = alpha; - - if (alpha > 0) - { - int rgb = new java.awt.Color(r, g, b, a).getRGB(); - - this.drawCenteredString(mc.fontRenderer, I18n.format(effect.getEffectName()), (int) x, (int) y, rgb); - } - - GlStateManager.color(1,1,1, 1); - - GlStateManager.popMatrix(); - } - - private void renderHighlight(Minecraft mc, ResourceLocation texture, int width, int height, int textureWidth, int textureHeight, float x, float y, boolean doAlpha, IAetherStatusEffects effect, - float alpha) - { - GlStateManager.pushMatrix(); - - GlStateManager.enableBlend(); - GlStateManager.disableRescaleNormal(); - - mc.getTextureManager().bindTexture(texture); - GlStateManager.translate(x,y,0.0f); - - if (doAlpha) - { - Color color = Color.getColorFromEffect(effect.getEffectType()); - float a = 0 ; - - a = alpha; - - GlStateManager.color(1,1,1, a); - } - - Gui.drawModalRectWithCustomSizedTexture(0,0,0, 0, width, height, textureWidth, textureHeight); - - GlStateManager.color(1,1,1, 1); - - GlStateManager.popMatrix(); - } - - private void renderBar(Minecraft mc, ResourceLocation texture, int width, int height, int textureWidth, int textureHeight, float x, float y, boolean doColor, IAetherStatusEffects effect) - { - GlStateManager.pushMatrix(); - - GlStateManager.enableBlend(); - GlStateManager.disableRescaleNormal(); - - mc.getTextureManager().bindTexture(texture); - GlStateManager.translate(x,y,0.0f); - - if (doColor) - { - Color color = Color.getColorFromEffect(effect.getEffectType()); - float r = 0, g = 0, b = 0, a = 0 ; - - r = Color.getColorFromEffect(effect.getEffectType()).r / 255.F; - g = Color.getColorFromEffect(effect.getEffectType()).g / 255.F; - b = Color.getColorFromEffect(effect.getEffectType()).b / 255.F; - a = 1.0f; - - GlStateManager.color(r,g,b,a); - } - - Gui.drawModalRectWithCustomSizedTexture(0,0,0, 0, width, height, textureWidth, textureHeight); - - GlStateManager.color(1,1,1, 1); - - GlStateManager.popMatrix(); - } - - private void renderIcon(Minecraft mc, ResourceLocation texture, int width, int height, int textureWidth, int textureHeight, float x, float y) - { - GlStateManager.pushMatrix(); - - GlStateManager.enableBlend(); - GlStateManager.disableRescaleNormal(); - - mc.getTextureManager().bindTexture(texture); - GlStateManager.translate(x,y,0.0f); - - Gui.drawModalRectWithCustomSizedTexture(0,0,0, 0, width, height, textureWidth, textureHeight); - - GlStateManager.popMatrix(); - } - - private ResourceLocation getEffectIconFromType(IAetherStatusEffects.effectTypes effectType) - { - switch(effectType) - { - case AMBROSIUM_POISONING: - return AMBROSIUM_ICON; - case BLEED: - return BLEED_ICON; - case FRACTURE: - return FRACTURE_ICON; - case COCKATRICE_VENOM: - return COCKATRICE_VENOM_ICON; - case FUNGAL_ROT: - return FUNGAL_ROT_ICON; - case STUN: - return STUN_ICON; - case TOXIN: - return TOXIN_ICON; - case FREEZE: - return FREEZE_ICON; - case WEBBING: - return WEBBING_ICON; - case SATURATION_BOOST: - return SATURATION_BOOST_ICON; - case GUARD_BREAK: - return GUARD_BREAK_ICON; - case IRRADIATION: - return IRRADIATION_ICON; - } - - return STUN_ICON; - } - - public enum Color { - AMBROSIUM_POISONING(219,198,66), - BLEED(148,21,12), - COCKATRICE_VENOM(111,57,153), - FRACTURE(214,210,180), - FUNGAL_ROT(163,130,87), - STUN(255,255,255), - TOXIN(69,122,65), - FREEZE(174,203,209), - WEBBING(199, 197, 187), - SATURATION_BOOST(212, 200, 121), - GUARD_BREAK(163, 199, 135), - IRRADIATION(219,198,66), - DEFAULT_COLOR(1,1,1); - - public final int r; - public final int g; - public final int b; - public final int a = 255; - - Color(int r, int g, int b) - { - this.r = r; - this.g = g; - this.b = b; - } - - public static Color getColorFromEffect(IAetherStatusEffects.effectTypes effectType) - { - switch(effectType) - { - case AMBROSIUM_POISONING: - return AMBROSIUM_POISONING; - case BLEED: - return BLEED; - case FRACTURE: - return FRACTURE; - case COCKATRICE_VENOM: - return COCKATRICE_VENOM; - case FUNGAL_ROT: - return FUNGAL_ROT; - case STUN: - return STUN; - case TOXIN: - return TOXIN; - case FREEZE: - return FREEZE; - case WEBBING: - return WEBBING; - case SATURATION_BOOST: - return SATURATION_BOOST; - case GUARD_BREAK: - return GUARD_BREAK; - case IRRADIATION: - return IRRADIATION; - default: - return DEFAULT_COLOR; - } - } - } -} diff --git a/src/main/java/com/gildedgames/aether/client/gui/PerformanceIngame.java b/src/main/java/com/gildedgames/aether/client/gui/PerformanceIngame.java deleted file mode 100644 index c7bf1e4439..0000000000 --- a/src/main/java/com/gildedgames/aether/client/gui/PerformanceIngame.java +++ /dev/null @@ -1,126 +0,0 @@ -package com.gildedgames.aether.client.gui; - -import com.gildedgames.aether.common.AetherCore; -import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.Gui; -import net.minecraft.client.gui.ScaledResolution; -import net.minecraft.client.renderer.GlStateManager; -import net.minecraft.util.ResourceLocation; -import net.minecraftforge.fml.common.FMLCommonHandler; - -public class PerformanceIngame extends Gui -{ - private static final ResourceLocation SERVER_STALL_ICON = AetherCore.getResource("textures/gui/overlay/server_stall.png"); - - private static final int ANIMATION_FRAMES = 4; - - private float iconAlpha = -1.0f; - - private float iconFrame; - - private long visibleUntil; - - private long lastRenderSystemTime; - - private long timeSinceLastTick; - - private boolean isDisabled; - - public void renderIcon() - { - Minecraft mc = Minecraft.getMinecraft(); - - this.update(mc); - - if (!this.isDisabled && AetherCore.CONFIG.displayPerformanceIndicator) - { - this.renderIcon(mc); - } - } - - private void renderIcon(Minecraft mc) - { - ScaledResolution res = new ScaledResolution(mc); - - long now = System.currentTimeMillis(); - - if (now < this.visibleUntil) - { - this.iconAlpha += 0.02f * mc.getRenderPartialTicks(); - - if (this.iconAlpha > 1.0f) - { - this.iconAlpha = 1.0f; - } - } - else - { - this.iconAlpha -= 0.02f * mc.getRenderPartialTicks(); - - if (this.iconAlpha < 0.0f) - { - this.iconAlpha = 0.0f; - } - } - - if (this.iconAlpha > 0.0f) - { - GlStateManager.enableBlend(); - - if (this.timeSinceLastTick > 800) - { - GlStateManager.color(255 / 255.0f, 78 / 255.0f, 41 / 255.0f, this.iconAlpha); - } - else if (this.timeSinceLastTick > 400) - { - GlStateManager.color(255 / 255.0f, 137 / 255.0f, 41 / 255.0f, this.iconAlpha); - } - else - { - GlStateManager.color(255 / 255.0f, 198 / 255.0f, 41 / 255.0f, this.iconAlpha); - } - - mc.getTextureManager().bindTexture(SERVER_STALL_ICON); - - this.iconFrame += ((now - this.lastRenderSystemTime) / 400.0f); - - if (this.iconFrame > ANIMATION_FRAMES) - { - this.iconFrame = 0.0f; - } - - GlStateManager.pushMatrix(); - GlStateManager.enableRescaleNormal(); - - GlStateManager.translate(res.getScaledWidth() - 24.0f, 8.0f, 0.0f); - GlStateManager.scale(0.25f, 0.25f, 0.25f); - - this.drawTexturedModalRect(0, 0, 0, 64 * (int) this.iconFrame, 64, 64); - - GlStateManager.color(1.0f, 1.0f, 1.0f, 1.0f); - GlStateManager.popMatrix(); - } - - this.lastRenderSystemTime = now; - } - - private void update(Minecraft mc) - { - // No server to measure... - if (FMLCommonHandler.instance().getMinecraftServerInstance() == null) - { - this.isDisabled = true; - - return; - } - - this.isDisabled = false; - - this.timeSinceLastTick = System.currentTimeMillis() - FMLCommonHandler.instance().getMinecraftServerInstance().currentTime; - - if (this.timeSinceLastTick > 200) - { - this.visibleUntil = System.currentTimeMillis() + 1000; - } - } -} diff --git a/src/main/java/com/gildedgames/aether/client/gui/container/GuiIcestoneCooler.java b/src/main/java/com/gildedgames/aether/client/gui/container/GuiIcestoneCooler.java deleted file mode 100644 index d781a357ca..0000000000 --- a/src/main/java/com/gildedgames/aether/client/gui/container/GuiIcestoneCooler.java +++ /dev/null @@ -1,89 +0,0 @@ -package com.gildedgames.aether.client.gui.container; - -import com.gildedgames.aether.common.AetherCore; -import com.gildedgames.aether.common.containers.tiles.ContainerIcestoneCooler; -import com.gildedgames.aether.common.entities.tiles.TileEntityIcestoneCooler; -import net.minecraft.client.gui.inventory.GuiContainer; -import net.minecraft.client.renderer.GlStateManager; -import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.inventory.IInventory; -import net.minecraft.util.ResourceLocation; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; - -@SideOnly(Side.CLIENT) -public class GuiIcestoneCooler extends GuiContainer -{ - private static final ResourceLocation TEXTURE = AetherCore.getResource("textures/gui/inventory/icestone_cooler.png"); - - private final IInventory tileCooler; - - private final InventoryPlayer playerInventory; - - public GuiIcestoneCooler(InventoryPlayer playerInv, IInventory coolerInv) - { - super(new ContainerIcestoneCooler(playerInv, coolerInv)); - this.tileCooler = coolerInv; - this.playerInventory = playerInv; - } - - /** - * Draws the screen and all the components in it. - */ - @Override - public void drawScreen(int mouseX, int mouseY, float partialTicks) - { - this.drawDefaultBackground(); - super.drawScreen(mouseX, mouseY, partialTicks); - this.renderHoveredToolTip(mouseX, mouseY); - } - - /** - * Draw the foreground layer for the GuiContainer (everything in front of the items) - */ - @Override - protected void drawGuiContainerForegroundLayer(int mouseX, int mouseY) - { - String s = this.tileCooler.getDisplayName().getUnformattedText(); - this.fontRenderer.drawString(s, this.xSize / 2 - this.fontRenderer.getStringWidth(s) / 2, 6, 4210752); - this.fontRenderer.drawString(this.playerInventory.getDisplayName().getUnformattedText(), 8, this.ySize - 96 + 2, 4210752); - } - - @Override - protected void drawGuiContainerBackgroundLayer(float partialTicks, int mouseX, int mouseY) - { - GlStateManager.color(1.0F, 1.0F, 1.0F, 1.0F); - this.mc.getTextureManager().bindTexture(TEXTURE); - int i = (this.width - this.xSize) / 2; - int j = (this.height - this.ySize) / 2; - this.drawTexturedModalRect(i, j, 0, 0, this.xSize, this.ySize); - - if (TileEntityIcestoneCooler.isCooling(this.tileCooler)) - { - int k = this.getCoolLeftScaled(16); - this.drawTexturedModalRect(i + 51, j + 36 + 14 - k, 176, 15 - k, 14, k + 1); - } - - int l = this.getCoolProgressScaled(24); - this.drawTexturedModalRect(i + 72, j + 34, 176, 16, l + 1, 16); - } - - private int getCoolProgressScaled(int pixels) - { - int i = this.tileCooler.getField(2); - int j = this.tileCooler.getField(3); - return j != 0 && i != 0 ? i * pixels / j : 0; - } - - private int getCoolLeftScaled(int pixels) - { - int i = this.tileCooler.getField(1); - - if (i == 0) - { - i = 1; - } - - return this.tileCooler.getField(0) * pixels / i; - } -} diff --git a/src/main/java/com/gildedgames/aether/client/gui/container/GuiIncubator.java b/src/main/java/com/gildedgames/aether/client/gui/container/GuiIncubator.java deleted file mode 100644 index ccc444759c..0000000000 --- a/src/main/java/com/gildedgames/aether/client/gui/container/GuiIncubator.java +++ /dev/null @@ -1,91 +0,0 @@ -package com.gildedgames.aether.client.gui.container; - -import com.gildedgames.aether.common.AetherCore; -import com.gildedgames.aether.common.containers.tiles.ContainerIncubator; -import com.gildedgames.aether.common.entities.tiles.TileEntityIcestoneCooler; -import com.gildedgames.aether.common.entities.tiles.TileEntityIncubator; -import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.inventory.GuiContainer; -import net.minecraft.client.renderer.GlStateManager; -import net.minecraft.client.resources.I18n; -import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.inventory.IInventory; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.ResourceLocation; -import net.minecraft.util.math.BlockPos; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; - -//TODO: Adding/Removing ambrosium chunks freezes the GUI which requires to close and reopen GUI. - -@SideOnly(Side.CLIENT) -public class GuiIncubator extends GuiContainer -{ - private static final ResourceLocation TEXTURE = AetherCore.getResource("textures/gui/inventory/incubator.png"); - - private final InventoryPlayer playerInventory; - - private final IInventory tileIncubator; - - public GuiIncubator(InventoryPlayer playerInv, IInventory incubatorInv) - { - super(new ContainerIncubator(playerInv, incubatorInv)); - - this.playerInventory = playerInv; - this.tileIncubator = incubatorInv; - } - - @Override - public void drawScreen(int mouseX, int mouseY, float partialTicks) - { - this.drawDefaultBackground(); - super.drawScreen(mouseX, mouseY, partialTicks); - this.renderHoveredToolTip(mouseX, mouseY); - } - - @Override - protected void drawGuiContainerForegroundLayer(int mouseX, int mouseY) - { - String s = this.tileIncubator.getDisplayName().getUnformattedText(); - this.fontRenderer.drawString(s, this.xSize / 2 - this.fontRenderer.getStringWidth(s) / 2, 6, 4210752); - this.fontRenderer.drawString(this.playerInventory.getDisplayName().getUnformattedText(), 8, this.ySize - 96 + 2, 4210752); - } - - @Override - protected void drawGuiContainerBackgroundLayer(float partialTicks, int mouseX, int mouseY) - { - GlStateManager.color(1.0F, 1.0F, 1.0F, 1.0F); - this.mc.getTextureManager().bindTexture(TEXTURE); - int i = (this.width - this.xSize) / 2; - int j = (this.height - this.ySize) / 2; - this.drawTexturedModalRect(i, j, 0, 0, this.xSize, this.ySize); - - if (TileEntityIncubator.isHeating(this.tileIncubator)) - { - int k = this.getHeatingProgressScaled(13); - - this.drawTexturedModalRect(i + 65, j + 36 + k, 176, k, 20, 13); - } - - if (TileEntityIncubator.isIncubating(this.tileIncubator)) - { - int l = this.getIncubationProgressScaled(55); - - this.drawTexturedModalRect(i + 101, j + 36 + 33 - l, 196, 54 - l, 10, l + 1); - } - } - - private int getHeatingProgressScaled(int pixels) - { - int i = this.tileIncubator.getField(3); - int j = this.tileIncubator.getField(2); - return j != 0 && i != 0 ? i * pixels / j : 0; - } - - private int getIncubationProgressScaled(int pixels) - { - int i = this.tileIncubator.getField(1); - int j = this.tileIncubator.getField(0); - return j != 0 && i != 0 ? i * pixels / j : 0; - } -} diff --git a/src/main/java/com/gildedgames/aether/client/gui/container/IExtendedContainer.java b/src/main/java/com/gildedgames/aether/client/gui/container/IExtendedContainer.java deleted file mode 100644 index f5d4adcbfe..0000000000 --- a/src/main/java/com/gildedgames/aether/client/gui/container/IExtendedContainer.java +++ /dev/null @@ -1,10 +0,0 @@ -package com.gildedgames.aether.client.gui.container; - -import net.minecraft.item.ItemStack; - -import java.util.List; - -public interface IExtendedContainer -{ - void setHoveredDescription(ItemStack stack, List<String> desc); -} diff --git a/src/main/java/com/gildedgames/aether/client/gui/container/guidebook/AbstractGuidebookPage.java b/src/main/java/com/gildedgames/aether/client/gui/container/guidebook/AbstractGuidebookPage.java deleted file mode 100644 index ee603fa9bb..0000000000 --- a/src/main/java/com/gildedgames/aether/client/gui/container/guidebook/AbstractGuidebookPage.java +++ /dev/null @@ -1,93 +0,0 @@ -package com.gildedgames.aether.client.gui.container.guidebook; - -import com.gildedgames.aether.common.AetherCore; -import com.gildedgames.aether.common.capabilities.entity.player.PlayerAether; -import com.gildedgames.orbis.lib.client.gui.util.GuiTexture; -import com.gildedgames.orbis.lib.client.gui.util.gui_library.*; -import com.gildedgames.orbis.lib.client.rect.Dim2D; -import net.minecraft.inventory.Container; -import net.minecraft.util.ResourceLocation; - -import java.util.List; - -public abstract class AbstractGuidebookPage extends GuiViewer -{ - public static final ResourceLocation TEXTURE_GUI = AetherCore.getResource("textures/gui/guidebook/guidebook_gui.png"); - - private static final ResourceLocation TEXTURE_BASE = AetherCore.getResource("textures/gui/guidebook/guidebook_base.png"); - - protected final int TEXTURE_WIDTH = 512; // size of entire texture width. - - protected final int TEXTURE_HEIGHT = 256; // size of entire texture height. - - protected final int PAGE_WIDTH = 176; // width of page in texture. - - protected final int PAGE_HEIGHT = 185; // height of page in texture. - - protected final PlayerAether aePlayer; - - public AbstractGuidebookPage(final IGuiViewer prevViewer, final PlayerAether aePlayer, final Container container) - { - super(new GuiElement(Dim2D.flush(), false), prevViewer, container); - - this.allowUserInput = true; - this.aePlayer = aePlayer; - } - - @Override - public void build(final IGuiContext context) - { - final GuiTexture baseBook = new GuiTexture( - Dim2D.build().x((this.width / 2) - 176 - 11).y(this.height / 2 - 185 / 2).width(375).height(198).flush(), - TEXTURE_BASE); - - context.addChildren(baseBook); - - final List<IGuiElement> leftPageElements = this.createLeftPage((this.width / 2) - this.PAGE_WIDTH + 1, (this.height / 2) - (185 / 2), 0, 0); - final List<IGuiElement> rightPageElements = this.createRightPage(this.width / 2, (this.height / 2) - (185 / 2), this.PAGE_WIDTH - 13, 0); - - for (final IGuiElement e : leftPageElements) - { - context.addChildren(e); - } - - for (final IGuiElement e : rightPageElements) - { - context.addChildren(e); - } - } - - @Override - public void initGui() - { - super.initGui(); - - this.guiLeft = (this.width / 2) - 153 - 11; - this.guiTop = (this.height / 2) - 69; - - this.xSize = 176 * 2; - this.ySize = 169; - } - - /** - * Called by #drawGuiContainerBackgroundLayer - * handles the render calls for drawing the left page of the guidebook. - * Contains any logic calls to dictate what page should be called and texture binding. - * @param screenX x position on the screen. - * @param screenY y position on the screen. - * @param u texture x. - * @param v texture y. - */ - abstract protected List<IGuiElement> createLeftPage(int screenX, int screenY, float u, float v); - - /** - * Called by #drawGuiContainerBackgroundLayer - * handles the render calls for drawing the right page of the guidebook. - * Contains any logic calls to dictate what page should be called and texture binding. - * @param screenX x position on the screen. - * @param screenY y position on the screen. - * @param u texture x. - * @param v texture y. - */ - abstract protected List<IGuiElement> createRightPage(int screenX, int screenY, float u, float v); -} diff --git a/src/main/java/com/gildedgames/aether/client/gui/container/guidebook/GuiGuidebookInventory.java b/src/main/java/com/gildedgames/aether/client/gui/container/guidebook/GuiGuidebookInventory.java deleted file mode 100644 index 0d398080e1..0000000000 --- a/src/main/java/com/gildedgames/aether/client/gui/container/guidebook/GuiGuidebookInventory.java +++ /dev/null @@ -1,153 +0,0 @@ -package com.gildedgames.aether.client.gui.container.guidebook; - -import com.gildedgames.aether.api.items.equipment.ItemEquipmentSlot; -import com.gildedgames.aether.common.AetherCore; -import com.gildedgames.aether.common.capabilities.entity.player.PlayerAether; -import com.gildedgames.aether.common.capabilities.entity.player.modules.PlayerEquipmentModule; -import com.gildedgames.aether.common.containers.guidebook.ContainerGuidebookInventory; -import com.gildedgames.aether.common.containers.slots.SlotEquipment; -import com.gildedgames.orbis.lib.client.gui.data.Text; -import com.gildedgames.orbis.lib.client.gui.util.GuiText; -import com.gildedgames.orbis.lib.client.gui.util.GuiTexture; -import com.gildedgames.orbis.lib.client.gui.util.gui_library.IGuiElement; -import com.gildedgames.orbis.lib.client.gui.util.gui_library.IGuiViewer; -import com.gildedgames.orbis.lib.client.rect.Dim2D; -import com.google.common.collect.Lists; -import net.minecraft.client.gui.inventory.GuiInventory; -import net.minecraft.client.renderer.GlStateManager; -import net.minecraft.client.resources.I18n; -import net.minecraft.inventory.Slot; -import net.minecraft.util.ResourceLocation; -import net.minecraft.util.text.TextComponentTranslation; -import net.minecraft.util.text.TextFormatting; -import org.apache.commons.lang3.StringUtils; - -import java.util.ArrayList; -import java.util.List; - -public class GuiGuidebookInventory extends AbstractGuidebookPage -{ - - private static final ResourceLocation LEFT_PAGE = AetherCore.getResource("textures/gui/guidebook/inventory/guidebook_inventory_left.png"); - - private static final ResourceLocation RIGHT_PAGE_CREATIVE = AetherCore - .getResource("textures/gui/guidebook/inventory/guidebook_inventory_right_creative.png"); - - private static final ResourceLocation RIGHT_PAGE_SURVIVAL = AetherCore - .getResource("textures/gui/guidebook/inventory/guidebook_inventory_right_survival.png"); - - public GuiGuidebookInventory(final IGuiViewer prevViewer, final PlayerAether aePlayer) - { - super(prevViewer, aePlayer, new ContainerGuidebookInventory(aePlayer)); - } - - @Override - public void drawScreen(final int mouseX, final int mouseY, final float partialTick) - { - super.drawScreen(mouseX, mouseY, partialTick); - - // TODO: Move out into gui element so has proper render order - this.drawPlayer(mouseX, mouseY); - - final String slotName = this.getSlotName(mouseX, mouseY); - - if (slotName != null) - { - this.setHoveredDescription(Lists.newArrayList(slotName)); - } - - this.renderHoveredToolTip(mouseX, mouseY); - } - - @Override - protected List<IGuiElement> createLeftPage(final int screenX, final int screenY, final float u, final float v) - { - final GuiTexture leftPage = new GuiTexture(Dim2D.build().width(this.PAGE_WIDTH).height(this.PAGE_HEIGHT).x(screenX).y(screenY).flush(), - LEFT_PAGE); - - final GuiText header = new GuiText(Dim2D.build().x(screenX + 64).y(screenY + 13).flush(), - new Text(new TextComponentTranslation("tab.guidebook.equipment"), 1.0F)); - - return Lists.newArrayList(leftPage, header); - } - - @Override - protected List<IGuiElement> createRightPage(final int screenX, final int screenY, final float u, final float v) - { - final GuiTexture rightPage = new GuiTexture(Dim2D.build().width(this.PAGE_WIDTH).height(this.PAGE_HEIGHT).x(screenX).y(screenY).flush(), - this.aePlayer.getEntity().capabilities.isCreativeMode ? RIGHT_PAGE_CREATIVE : RIGHT_PAGE_SURVIVAL); - - return Lists.newArrayList(rightPage); - } - - private void drawPlayer(final int mouseX, final int mouseY) - { - GlStateManager.color(1.0f, 1.0f, 1.0f, 1.0f); - - GuiInventory.drawEntityOnScreen( - this.width / 2 - 48, - this.height / 2, 32, (this.guiLeft + 88) - mouseX, (this.guiTop + 35) - mouseY, this.mc.player); - } - - private boolean isMouseOverSlot(final Slot slot, final int mouseX, final int mouseY) - { - return this.isPointInRegion(slot.xPos, slot.yPos, 16, 16, mouseX, mouseY); - } - - private String getSlotName(final int mouseX, final int mouseY) - { - String unlocalizedTooltip = null; - - for (final Slot slot : this.inventorySlots.inventorySlots) - { - if (slot.isEnabled() && !slot.getHasStack()) - { - if (this.isMouseOverSlot(slot, mouseX, mouseY)) - { - if (slot instanceof SlotEquipment) - { - final ItemEquipmentSlot type = ((SlotEquipment) slot).getEquipmentType(); - - unlocalizedTooltip = type.getUnlocalizedName(); - } - - final int dif = this.aePlayer.getEntity().inventory.getSizeInventory() - 2; - - if (slot.getSlotIndex() == dif + 1) - { - unlocalizedTooltip = "gui.aether.slot.offhand"; - } - - if (slot.getSlotIndex() == dif) - { - unlocalizedTooltip = "gui.aether.slot.helmet"; - } - - if (slot.getSlotIndex() == dif - 1) - { - unlocalizedTooltip = "gui.aether.slot.chestplate"; - } - - if (slot.getSlotIndex() == dif - 2) - { - unlocalizedTooltip = "gui.aether.slot.leggings"; - } - - if (slot.getSlotIndex() == dif - 3) - { - unlocalizedTooltip = "gui.aether.slot.boots"; - } - - break; - } - } - } - - if (unlocalizedTooltip != null) - { - return I18n.format(unlocalizedTooltip); - } - - return null; - } -} diff --git a/src/main/java/com/gildedgames/aether/client/gui/container/guidebook/GuiGuidebookLoreTome.java b/src/main/java/com/gildedgames/aether/client/gui/container/guidebook/GuiGuidebookLoreTome.java deleted file mode 100644 index 4755d7125a..0000000000 --- a/src/main/java/com/gildedgames/aether/client/gui/container/guidebook/GuiGuidebookLoreTome.java +++ /dev/null @@ -1,43 +0,0 @@ -package com.gildedgames.aether.client.gui.container.guidebook; - -import com.gildedgames.aether.common.AetherCore; -import com.gildedgames.aether.common.capabilities.entity.player.PlayerAether; -import com.gildedgames.aether.common.containers.guidebook.EmptyContainer; -import com.gildedgames.orbis.lib.client.gui.util.GuiTexture; -import com.gildedgames.orbis.lib.client.gui.util.gui_library.IGuiElement; -import com.gildedgames.orbis.lib.client.gui.util.gui_library.IGuiViewer; -import com.gildedgames.orbis.lib.client.rect.Dim2D; -import com.google.common.collect.Lists; -import net.minecraft.util.ResourceLocation; - -import java.util.List; - -public class GuiGuidebookLoreTome extends AbstractGuidebookPage -{ - private static final ResourceLocation LEFT_PAGE = AetherCore.getResource("textures/gui/guidebook/lore_tome/guidebook_loretome_left.png"); - - private static final ResourceLocation RIGHT_PAGE = AetherCore.getResource("textures/gui/guidebook/lore_tome/guidebook_loretome_right.png"); - - public GuiGuidebookLoreTome(final IGuiViewer prevViewer, final PlayerAether aePlayer) - { - super(prevViewer, aePlayer, new EmptyContainer()); - } - - @Override - protected List<IGuiElement> createLeftPage(final int screenX, final int screenY, final float u, final float v) - { - final GuiTexture leftPage = new GuiTexture(Dim2D.build().width(this.PAGE_WIDTH).height(this.PAGE_HEIGHT).x(screenX).y(screenY).flush(), - LEFT_PAGE); - - return Lists.newArrayList(leftPage); - } - - @Override - protected List<IGuiElement> createRightPage(final int screenX, final int screenY, final float u, final float v) - { - final GuiTexture rightPage = new GuiTexture(Dim2D.build().width(this.PAGE_WIDTH).height(this.PAGE_HEIGHT).x(screenX).y(screenY).flush(), - RIGHT_PAGE); - - return Lists.newArrayList(rightPage); - } -} diff --git a/src/main/java/com/gildedgames/aether/client/gui/container/guidebook/discovery/BestiarySlot.java b/src/main/java/com/gildedgames/aether/client/gui/container/guidebook/discovery/BestiarySlot.java deleted file mode 100644 index 8038fbd0f6..0000000000 --- a/src/main/java/com/gildedgames/aether/client/gui/container/guidebook/discovery/BestiarySlot.java +++ /dev/null @@ -1,62 +0,0 @@ -package com.gildedgames.aether.client.gui.container.guidebook.discovery; - -import com.gildedgames.aether.common.AetherCore; -import com.gildedgames.aether.common.capabilities.entity.player.PlayerAether; -import com.gildedgames.aether.common.travellers_guidebook.entries.TGEntryBestiaryPage; -import com.gildedgames.orbis.lib.client.gui.util.GuiAbstractButton; -import com.gildedgames.orbis.lib.client.gui.util.GuiTexture; -import com.gildedgames.orbis.lib.client.gui.util.gui_library.GuiElement; -import com.gildedgames.orbis.lib.client.rect.Dim2D; -import com.gildedgames.orbis.lib.client.rect.Pos2D; -import net.minecraft.util.ResourceLocation; - -public class BestiarySlot extends GuiAbstractButton -{ - private static final ResourceLocation DARK_OVERLAY = AetherCore.getResource("textures/gui/inventory/dark_slot_overlay.png"); - - private final TGEntryBestiaryPage page; - - private final ResourceLocation discovered, silhouette; - - private final PlayerAether playerAether; - - private GuiTexture icon; - - public BestiarySlot(final PlayerAether playerAether, final Pos2D pos, final TGEntryBestiaryPage page) - { - super(Dim2D.build().width(18).height(18).pos(pos).flush(), new GuiTexture(Dim2D.build().width(18).height(18).flush(), DARK_OVERLAY)); - - this.playerAether = playerAether; - this.page = page; - this.discovered = page.getDiscoveredSlotTexture(); - this.silhouette = page.getSilhouetteSlotTexture(); - } - - @Override - public void build() - { - super.build(); - - final ResourceLocation texture = this.page.isUnlocked(this.playerAether) ? this.discovered : this.silhouette; - - this.icon = new GuiTexture(Dim2D.build().width(16).height(16).x(2).y(2).flush(), texture); - - this.context().addChildren(this.icon); - } - - @Override - public void onDraw(final GuiElement element) - { - super.onDraw(element); - - final ResourceLocation texture = this.page.isUnlocked(this.playerAether) ? this.discovered : this.silhouette; - - this.icon.setResourceLocation(texture); - } - - public TGEntryBestiaryPage getPage() - { - return this.page; - } - -} diff --git a/src/main/java/com/gildedgames/aether/client/gui/container/guidebook/discovery/CurativeItemSlot.java b/src/main/java/com/gildedgames/aether/client/gui/container/guidebook/discovery/CurativeItemSlot.java deleted file mode 100644 index bd0a5cba96..0000000000 --- a/src/main/java/com/gildedgames/aether/client/gui/container/guidebook/discovery/CurativeItemSlot.java +++ /dev/null @@ -1,49 +0,0 @@ -package com.gildedgames.aether.client.gui.container.guidebook.discovery; - -import com.gildedgames.aether.common.AetherCore; -import com.gildedgames.orbis.lib.client.gui.util.GuiTexture; -import com.gildedgames.orbis.lib.client.gui.util.gui_library.GuiElement; -import com.gildedgames.orbis.lib.client.gui.util.gui_library.IGuiViewer; -import com.gildedgames.orbis.lib.client.gui.util.vanilla.GuiItemStackRender; -import com.gildedgames.orbis.lib.client.rect.Rect; -import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.GuiScreen; -import net.minecraft.client.renderer.GlStateManager; -import net.minecraft.client.renderer.RenderHelper; -import net.minecraft.client.util.ITooltipFlag; -import net.minecraft.util.ResourceLocation; - -public class CurativeItemSlot extends GuiItemStackRender -{ - private static final ResourceLocation DARK_OVERLAY = AetherCore.getResource("textures/gui/inventory/dark_slot_overlay.png"); - - public CurativeItemSlot(Rect rect) - { - super(rect); - } - - @Override - public void build() - { - super.build(); - } - - @Override - public void onDraw(final GuiElement element) - { - if (!this.getItemStack().isEmpty()) - { - Minecraft.getMinecraft().getTextureManager().bindTexture(DARK_OVERLAY); - GuiTexture.drawModalRectWithCustomSizedTexture(this.dim().x(), this.dim().y(), 0, 0, 17, 17, 16, 16); - } - - GlStateManager.enableRescaleNormal(); - RenderHelper.enableGUIStandardItemLighting(); - GlStateManager.enableDepth(); - - Minecraft.getMinecraft().getRenderItem().renderItemIntoGUI(this.getItemStack(), (int) this.dim().x() + 1, (int) this.dim().y() + 1); - - RenderHelper.disableStandardItemLighting(); - GlStateManager.disableRescaleNormal(); - } -} diff --git a/src/main/java/com/gildedgames/aether/client/gui/container/guidebook/discovery/DiscoveryTab.java b/src/main/java/com/gildedgames/aether/client/gui/container/guidebook/discovery/DiscoveryTab.java deleted file mode 100644 index 305b77d0cf..0000000000 --- a/src/main/java/com/gildedgames/aether/client/gui/container/guidebook/discovery/DiscoveryTab.java +++ /dev/null @@ -1,106 +0,0 @@ -package com.gildedgames.aether.client.gui.container.guidebook.discovery; - -import com.gildedgames.aether.common.AetherCore; -import com.gildedgames.aether.common.capabilities.entity.player.PlayerAether; -import com.gildedgames.orbis.lib.client.gui.util.GuiAbstractButton; -import com.gildedgames.orbis.lib.client.gui.util.GuiTexture; -import com.gildedgames.orbis.lib.client.rect.Dim2D; -import com.gildedgames.orbis.lib.client.rect.Pos2D; -import net.minecraft.client.gui.inventory.GuiContainer; -import net.minecraft.util.ResourceLocation; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; - -public class DiscoveryTab extends GuiAbstractButton -{ - private static final ResourceLocation TEXTURE = AetherCore.getResource("textures/gui/guidebook/discovery/guidebook_discovery_tab.png"); - - private static final ResourceLocation TEXTURE_PRESSED = AetherCore.getResource("textures/gui/guidebook/discovery/guidebook_discovery_tab_pressed.png"); - - private final DiscoveryTabType type; - - private ResourceLocation icon; - - public DiscoveryTab(final Pos2D pos, final DiscoveryTabType type, final DiscoveryTabType selectedType, final ResourceLocation icon) - { - super(Dim2D.build().width(32).height(20).pos(pos).flush(), - new GuiTexture(Dim2D.build().width(32).height(20).flush(), TEXTURE), - new GuiTexture(Dim2D.build().width(32).height(20).flush(), TEXTURE_PRESSED), - new GuiTexture(Dim2D.build().width(32).height(20).flush(), TEXTURE)); - - this.type = type; - - this.icon = icon; - - if (type == selectedType) - { - this.setSelected(true); - } - } - - @Override - public void build() - { - super.build(); - - GuiTexture icon = new GuiTexture(Dim2D.build().width(22).height(16).x(5).y(3).flush(), this.icon); - - this.context().addChildren(icon); - } - - public DiscoveryTabType getType() - { - return this.type; - } - - public enum DiscoveryTabType - { - BESTIARY - { - @Override - @SideOnly(Side.CLIENT) - public GuiContainer createPageContainer(final PlayerAether playerAether) - { - return new GuiGuidebookDiscoveryBestiary(null, playerAether); - } - }, - EFFECTS - { - @Override - @SideOnly(Side.CLIENT) - public GuiContainer createPageContainer(final PlayerAether playerAether) - { - return new GuiGuidebookDiscoveryEffects(null, playerAether); - } - }, - LANDMARKS - { - @Override - @SideOnly(Side.CLIENT) - public GuiContainer createPageContainer(final PlayerAether playerAether) - { - return new GuiGuidebookDiscoveryLandmarks(null, playerAether); - } - }, - CHARACTERS - { - @Override - @SideOnly(Side.CLIENT) - public GuiContainer createPageContainer(final PlayerAether playerAether) - { - return new GuiGuidebookDiscoveryCharacters(null, playerAether); - } - }; - - DiscoveryTabType() - { - - } - - @SideOnly(Side.CLIENT) - public GuiContainer createPageContainer(final PlayerAether playerAether) - { - return null; - } - } -} diff --git a/src/main/java/com/gildedgames/aether/client/gui/container/guidebook/discovery/EffectsSlot.java b/src/main/java/com/gildedgames/aether/client/gui/container/guidebook/discovery/EffectsSlot.java deleted file mode 100644 index 0219c7387c..0000000000 --- a/src/main/java/com/gildedgames/aether/client/gui/container/guidebook/discovery/EffectsSlot.java +++ /dev/null @@ -1,60 +0,0 @@ -package com.gildedgames.aether.client.gui.container.guidebook.discovery; - -import com.gildedgames.aether.common.AetherCore; -import com.gildedgames.aether.common.capabilities.entity.player.PlayerAether; -import com.gildedgames.aether.common.travellers_guidebook.entries.TGEntryEffectsPage; -import com.gildedgames.orbis.lib.client.gui.util.GuiAbstractButton; -import com.gildedgames.orbis.lib.client.gui.util.GuiTexture; -import com.gildedgames.orbis.lib.client.gui.util.gui_library.GuiElement; -import com.gildedgames.orbis.lib.client.rect.Dim2D; -import com.gildedgames.orbis.lib.client.rect.Pos2D; -import net.minecraft.util.ResourceLocation; - -public class EffectsSlot extends GuiAbstractButton -{ - private static final ResourceLocation DARK_OVERLAY = AetherCore.getResource("textures/gui/inventory/dark_slot_overlay.png"); - - private final TGEntryEffectsPage page; - - private final ResourceLocation texture; - - private final PlayerAether playerAether; - - private GuiTexture icon; - - public EffectsSlot(final PlayerAether playerAether, final Pos2D pos, final TGEntryEffectsPage page) - { - super(Dim2D.build().width(18).height(18).pos(pos).flush(), new GuiTexture(Dim2D.build().width(18).height(18).flush(), DARK_OVERLAY)); - - this.playerAether = playerAether; - this.page = page; - this.texture = page.getSlotTexture(); - } - - @Override - public void build() - { - super.build(); - - final ResourceLocation texture = this.texture; - - this.icon = new GuiTexture(Dim2D.build().width(16).height(16).x(2).y(2).flush(), texture); - - this.context().addChildren(this.icon); - } - - @Override - public void onDraw(final GuiElement element) - { - super.onDraw(element); - - final ResourceLocation texture = this.texture; - - this.icon.setResourceLocation(texture); - } - - public TGEntryEffectsPage getPage() - { - return this.page; - } -} diff --git a/src/main/java/com/gildedgames/aether/client/gui/container/guidebook/discovery/GuiGuidebookDiscovery.java b/src/main/java/com/gildedgames/aether/client/gui/container/guidebook/discovery/GuiGuidebookDiscovery.java deleted file mode 100644 index 5987416f48..0000000000 --- a/src/main/java/com/gildedgames/aether/client/gui/container/guidebook/discovery/GuiGuidebookDiscovery.java +++ /dev/null @@ -1,145 +0,0 @@ -package com.gildedgames.aether.client.gui.container.guidebook.discovery; - -import com.gildedgames.aether.client.gui.container.guidebook.AbstractGuidebookPage; -import com.gildedgames.aether.common.AetherCore; -import com.gildedgames.aether.common.capabilities.entity.player.PlayerAether; -import com.gildedgames.aether.common.capabilities.entity.player.modules.PlayerProgressModule; -import com.gildedgames.aether.common.containers.guidebook.EmptyContainer; -import com.gildedgames.orbis.lib.client.gui.data.Text; -import com.gildedgames.orbis.lib.client.gui.util.GuiText; -import com.gildedgames.orbis.lib.client.gui.util.GuiTexture; -import com.gildedgames.orbis.lib.client.gui.util.gui_library.IGuiContext; -import com.gildedgames.orbis.lib.client.gui.util.gui_library.IGuiElement; -import com.gildedgames.orbis.lib.client.gui.util.gui_library.IGuiViewer; -import com.gildedgames.orbis.lib.client.rect.Dim2D; -import com.gildedgames.orbis.lib.client.rect.Pos2D; -import com.google.common.collect.Lists; -import net.minecraft.util.ResourceLocation; -import net.minecraft.util.text.TextComponentTranslation; - -import java.util.List; - -public class GuiGuidebookDiscovery extends AbstractGuidebookPage -{ - private static final ResourceLocation LEFT_PAGE = AetherCore.getResource("textures/gui/guidebook/discovery/guidebook_discovery_left.png"); - - private static final ResourceLocation RIGHT_PAGE_GENERAL = AetherCore.getResource("textures/gui/guidebook/discovery/guidebook_discovery_right_general.png"); - - private static final ResourceLocation BESTIARY_ICON = AetherCore.getResource("textures/gui/guidebook/discovery/icon_bestiary.png"); - - private static final ResourceLocation EFFECTS_ICON = AetherCore.getResource("textures/gui/guidebook/discovery/icon_effects.png"); - - private static final ResourceLocation LANDMARK_ICON = AetherCore.getResource("textures/gui/guidebook/discovery/icon_landmark.png"); - - private static final ResourceLocation CHARACTER_ICON = AetherCore.getResource("textures/gui/guidebook/discovery/icon_character.png"); - - private DiscoveryTab bestiaryTab; - - private DiscoveryTab effectTab; - - private DiscoveryTab landmarkTab; - - private DiscoveryTab characterTab; - - public GuiGuidebookDiscovery(final IGuiViewer prevViewer, final PlayerAether aePlayer) - { - super(prevViewer, aePlayer, new EmptyContainer()); - } - - @Override - public void build(final IGuiContext context) - { - super.build(context); - } - - private void onClickTab(final DiscoveryTab tab) - { - this.bestiaryTab.setSelected(false); - this.effectTab.setSelected(false); - this.landmarkTab.setSelected(false); - this.characterTab.setSelected(false); - - this.aePlayer.getModule(PlayerProgressModule.class).setOpenedDiscoveryTabType(tab.getType()); - - tab.setSelected(true); - - switch (tab.getType()) - { - case BESTIARY: - { - this.mc.displayGuiScreen(new GuiGuidebookDiscoveryBestiary(this, this.aePlayer)); - break; - } - case EFFECTS: - { - this.mc.displayGuiScreen(new GuiGuidebookDiscoveryEffects(this, this.aePlayer)); - break; - } - case LANDMARKS: - { - this.mc.displayGuiScreen(new GuiGuidebookDiscoveryLandmarks(this, this.aePlayer)); - break; - } - case CHARACTERS: - { - this.mc.displayGuiScreen(new GuiGuidebookDiscoveryCharacters(this, this.aePlayer)); - break; - } - } - } - - @Override - protected List<IGuiElement> createLeftPage(final int screenX, final int screenY, final float u, final float v) - { - final GuiTexture leftPage = new GuiTexture(Dim2D.build().width(this.PAGE_WIDTH).height(this.PAGE_HEIGHT).x(screenX).y(screenY).flush(), LEFT_PAGE); - - final DiscoveryTab.DiscoveryTabType openedTab = this.aePlayer.getModule(PlayerProgressModule.class).getOpenedDiscoveryTabType(); - - final GuiText header = new GuiText(Dim2D.build().x(screenX + 63).y(screenY + 13).flush(), - new Text(new TextComponentTranslation("tab.guidebook.discovery"), 1.0F)); - - Pos2D screen = Pos2D.flush(screenX, screenY); - - this.bestiaryTab = new DiscoveryTab(screen.clone().addX(24).addY(26).flush(), DiscoveryTab.DiscoveryTabType.BESTIARY, openedTab, BESTIARY_ICON); - this.effectTab = new DiscoveryTab(screen.clone().addX(24 + 32).addY(26).flush(), DiscoveryTab.DiscoveryTabType.EFFECTS, openedTab, EFFECTS_ICON); - this.landmarkTab = new DiscoveryTab(screen.clone().addX(24 + 64).addY(26).flush(), DiscoveryTab.DiscoveryTabType.LANDMARKS, openedTab, LANDMARK_ICON); - this.characterTab = new DiscoveryTab(screen.clone().addX(24 + 96).addY(26).flush(), DiscoveryTab.DiscoveryTabType.CHARACTERS, openedTab, CHARACTER_ICON); - - this.bestiaryTab.addAdvancedClickEvent(this::onClickTab); - this.effectTab.addAdvancedClickEvent(this::onClickTab); - this.landmarkTab.addAdvancedClickEvent(this::onClickTab); - this.characterTab.addAdvancedClickEvent(this::onClickTab); - - final GuiText text = new GuiText(Dim2D.build().x(screenX + 26).y(screenY + 48).flush(), - new Text(new TextComponentTranslation("tab.guidebook.discovery" + this.getTypeName(openedTab)), 1.0F)); - - return Lists.newArrayList(leftPage, header, this.bestiaryTab, this.effectTab, this.landmarkTab, this.characterTab, text); - // - } - - @Override - protected List<IGuiElement> createRightPage(final int screenX, final int screenY, final float u, final float v) - { - final GuiTexture rightPage = new GuiTexture(Dim2D.build().width(this.PAGE_WIDTH).height(this.PAGE_HEIGHT).x(screenX).y(screenY).flush(), - RIGHT_PAGE_GENERAL); - - return Lists.newArrayList(rightPage); - } - - public String getTypeName(DiscoveryTab.DiscoveryTabType type) - { - switch (type) - { - case BESTIARY: - return ".bestiary"; - case EFFECTS: - return ".effects"; - case LANDMARKS: - return ".landmarks"; - case CHARACTERS: - return ".characters"; - } - - return ""; - } -} diff --git a/src/main/java/com/gildedgames/aether/client/gui/container/guidebook/discovery/GuiGuidebookDiscoveryBestiary.java b/src/main/java/com/gildedgames/aether/client/gui/container/guidebook/discovery/GuiGuidebookDiscoveryBestiary.java deleted file mode 100644 index e30ee5fa59..0000000000 --- a/src/main/java/com/gildedgames/aether/client/gui/container/guidebook/discovery/GuiGuidebookDiscoveryBestiary.java +++ /dev/null @@ -1,318 +0,0 @@ -package com.gildedgames.aether.client.gui.container.guidebook.discovery; - -import com.gildedgames.aether.api.cache.IEntityStats; -import com.gildedgames.aether.api.entity.effects.IAetherStatusEffects; -import com.gildedgames.aether.api.travellers_guidebook.ITGManager; -import com.gildedgames.aether.client.gui.container.guidebook.discovery.stats.GuiStat; -import com.gildedgames.aether.client.gui.misc.GuiScrollableGuidebook; -import com.gildedgames.aether.common.AetherCore; -import com.gildedgames.aether.common.capabilities.entity.player.PlayerAether; -import com.gildedgames.aether.common.travellers_guidebook.entries.TGEntryBestiaryPage; -import com.gildedgames.orbis.lib.client.gui.data.Text; -import com.gildedgames.orbis.lib.client.gui.util.GuiText; -import com.gildedgames.orbis.lib.client.gui.util.GuiTextBox; -import com.gildedgames.orbis.lib.client.gui.util.GuiTexture; -import com.gildedgames.orbis.lib.client.gui.util.gui_library.*; -import com.gildedgames.orbis.lib.client.rect.Dim2D; -import com.gildedgames.orbis.lib.client.rect.Pos2D; -import com.gildedgames.orbis.lib.client.rect.Rect; -import com.gildedgames.orbis.lib.util.InputHelper; -import com.google.common.collect.Lists; -import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.FontRenderer; -import net.minecraft.client.gui.ScaledResolution; -import net.minecraft.util.ResourceLocation; -import net.minecraft.util.math.MathHelper; -import net.minecraft.util.text.TextComponentString; -import net.minecraft.util.text.TextComponentTranslation; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; -import org.lwjgl.input.Mouse; -import org.lwjgl.opengl.GL11; - -import java.util.ArrayList; -import java.util.List; -import java.util.Map; - -public class GuiGuidebookDiscoveryBestiary extends GuiGuidebookDiscovery -{ - private static final ResourceLocation RIGHT_PAGE_MOB = AetherCore.getResource("textures/gui/guidebook/discovery/guidebook_discovery_right_mob.png"); - - private static final ResourceLocation HEALTH_ICON = AetherCore.getResource("textures/gui/guidebook/icons/heart.png"); - - private static final ResourceLocation SLASH_DEFENSE_ICON = AetherCore.getResource("textures/gui/overlay/slash_damage.png"); - - private static final ResourceLocation PIERCE_DEFENSE_ICON = AetherCore.getResource("textures/gui/overlay/pierce_damage.png"); - - private static final ResourceLocation IMPACT_DEFENSE_ICON = AetherCore.getResource("textures/gui/overlay/impact_damage.png"); - - private static final ResourceLocation AMBROSIUM_ICON = AetherCore.getResource("textures/gui/overlay/effects/ambrosium_poisoning.png"); - private static final ResourceLocation BLEED_ICON = AetherCore.getResource("textures/gui/overlay/effects/bleed.png"); - private static final ResourceLocation COCKATRICE_VENOM_ICON = AetherCore.getResource("textures/gui/overlay/effects/cockatrice_venom.png"); - private static final ResourceLocation FRACTURE_ICON = AetherCore.getResource("textures/gui/overlay/effects/fracture.png"); - private static final ResourceLocation FUNGAL_ROT_ICON = AetherCore.getResource("textures/gui/overlay/effects/fungal_rot.png"); - private static final ResourceLocation STUN_ICON = AetherCore.getResource("textures/gui/overlay/effects/stun.png"); - private static final ResourceLocation TOXIN_ICON = AetherCore.getResource("textures/gui/overlay/effects/toxin.png"); - private static final ResourceLocation FREEZE_ICON = AetherCore.getResource("textures/gui/overlay/effects/freeze.png"); - private static final ResourceLocation WEBBING_ICON = AetherCore.getResource("textures/gui/overlay/effects/webbing.png"); - private static final ResourceLocation IRRADIATION_ICON = AetherCore.getResource("textures/gui/overlay/effects/irradiation.png"); - - private List<TGEntryBestiaryPage> bestiaryEntries; - - private List<BestiarySlot> slots; - - private GuiTexture beastFrame; - - private GuiText beastTitle; - - private GuiTextBox beastDescription; - - private GuiScrollableGuidebook statsArea; - - public GuiGuidebookDiscoveryBestiary(final IGuiViewer prevViewer, final PlayerAether aePlayer) - { - super(prevViewer, aePlayer); - } - - @Override - public void build(final IGuiContext context) - { - super.build(context); - } - - private IGuiElement buildStats(final TGEntryBestiaryPage page) - { - final IEntityStats stats = page.getEntityStats(); - final IGuiElement statsElement = new GuiElement(Dim2D.build().width(52).flush(), false); - - final GuiStat healthStat = new GuiStat( - new GuiTexture(Dim2D.build().width(14).height(14).flush(), HEALTH_ICON), - new Text(new TextComponentString(String.valueOf(MathHelper.floor(stats.getMaxHealth()))), 1.0F)); - final GuiStat slashStat = new GuiStat( - new GuiTexture(Dim2D.build().width(14).height(14).flush(), SLASH_DEFENSE_ICON), - new Text(new TextComponentString(String.valueOf(MathHelper.floor(stats.getSlashDefenseLevel()))), 1.0F)); - final GuiStat pierceStat = new GuiStat( - new GuiTexture(Dim2D.build().width(14).height(14).flush(), PIERCE_DEFENSE_ICON), - new Text(new TextComponentString(String.valueOf(MathHelper.floor(stats.getPierceDefenseLevel()))), 1.0F)); - final GuiStat impactStat = new GuiStat( - new GuiTexture(Dim2D.build().width(14).height(14).flush(), IMPACT_DEFENSE_ICON), - new Text(new TextComponentString(String.valueOf(MathHelper.floor(stats.getImpactDefenseLevel()))), 1.0F)); - - List<GuiElement> statsArray = new ArrayList<>(); - - statsArray.add(healthStat); - statsArray.add(slashStat); - statsArray.add(pierceStat); - statsArray.add(impactStat); - - for (Map.Entry<IAetherStatusEffects.effectTypes, Double> stat : stats.getResistances().entrySet()) - { - final GuiStat effectTestStat = new GuiStat( - new GuiTexture(Dim2D.build().width(16).height(16).flush(), getEffectIconFromType(stat.getKey())), - new Text(new TextComponentString(String.valueOf(stat.getValue())), 1.0F)); - - statsArray.add(effectTestStat); - } - - GuiElement[] elements = statsArray.toArray(new GuiElement[0]); - - statsElement.build(this); - - GuiLibHelper.alignVertically(this, Pos2D.flush(5, 5), 5, elements); - statsElement.context().addChildren(elements); - - GuiLibHelper.assembleMinMaxArea(statsElement); - - return statsElement; - } - - private IGuiElement resetStats(final TGEntryBestiaryPage page) - { - final IGuiElement statsElement = new GuiElement(Dim2D.build().width(52).flush(), false); - - statsElement.build(this); - - return statsElement; - } - - @Override - protected List<IGuiElement> createLeftPage(final int screenX, final int screenY, final float u, final float v) { - List<IGuiElement> elements = super.createLeftPage(screenX, screenY, u, v); - final ITGManager tgManager = AetherCore.PROXY.content().tgManager(); - - this.bestiaryEntries = tgManager.getEntriesWithTagAndClass("bestiary", TGEntryBestiaryPage.class); - this.slots = Lists.newArrayList(); - - for (int i = 0; i < this.bestiaryEntries.size(); i++) { - final TGEntryBestiaryPage page = this.bestiaryEntries.get(i); - - final int x = screenX + 29 + ((i % 6) * 18); - final int y = screenY + 58 + ((i / 6) * 18); - - final BestiarySlot slot = new BestiarySlot(this.aePlayer, Pos2D.flush(x, y), page); - - slot.addClickEvent(() -> { - final boolean isUnderstood = page.isUnderstood(this.aePlayer); - final boolean completeOverview = page.hasUnlockedCompleteOverview(this.aePlayer); - - this.beastFrame.setResourceLocation(page.isUnlocked(this.aePlayer) ? page.getDiscoveredTexture() : page.getSilhouetteTexture()); - this.beastFrame.state().setVisible(true); - - this.beastTitle.setText(new Text(new TextComponentTranslation(page.getEntityName()), 1.0F)); - - if (!isUnderstood) { - // Replace beast name with ? characters - this.beastTitle.setTextMutator((text) -> text.replaceAll("[^\\s]", "?")); - } - - this.beastDescription - .setText(new Text(new TextComponentTranslation(completeOverview ? page.getUnlocalizedDescription() : "?"), - 0.65F)); - - this.beastDescription.tryRebuild(); - - if (isUnderstood) { - final IGuiElement statsContent = this.buildStats(page); - - statsContent.dim().mod().pos(this.statsArea.dim().min()).flush(); - - this.statsArea.setDecorated(statsContent); - } - else - { - final IGuiElement statsContent = this.resetStats(page); - - statsContent.dim().mod().pos(this.statsArea.dim().min()).flush(); - - this.statsArea.setDecorated(statsContent); - } - }); - - this.slots.add(slot); - elements.add(slot); - } - - return elements; - } - - @Override - protected List<IGuiElement> createRightPage(final int screenX, final int screenY, final float u, final float v) - { - this.beastFrame = new GuiTexture(Dim2D.build().x(screenX + 25).y(screenY + 27).width(58).height(71).flush(), null); - this.beastFrame.state().setVisible(false); - - this.beastTitle = new GuiText(Dim2D.build().x(screenX + 88).y(screenY + 11).flush(), new Text(new TextComponentString(""), 1.0F)); - this.beastTitle.dim().mod().centerX(true).flush(); - - this.beastDescription = new GuiTextBox(Dim2D.build().x(screenX + 24).y(screenY + 105).width(120).flush(), false, - new Text(new TextComponentString(""), - 0.65F)); - - // Empty stats scroll until click on entry - this.statsArea = new GuiScrollableGuidebook(new GuiElement(Dim2D.build().x(screenX + 92).y(screenY + 35).flush(), false), - Dim2D.build().width(52 + 9).height(64).flush(), true); - - final Rect beastDescriptionScrollArea = Dim2D.build().width(120 + 9).height(61).flush(); - - final GuiTexture rightPage = new GuiTexture(Dim2D.build().width(this.PAGE_WIDTH).height(this.PAGE_HEIGHT).x(screenX).y(screenY).flush(), - RIGHT_PAGE_MOB); - - final GuiText stats = new GuiText(Dim2D.build().x(screenX + 106).y(screenY + 25).flush(), - new Text(new TextComponentTranslation("gui.guidebook.discovery.stats"), 1.0F)); - - return Lists.newArrayList(rightPage, - this.beastFrame, - this.beastTitle, - new GuiScrollableGuidebook(this.beastDescription, beastDescriptionScrollArea, true), - stats, - this.statsArea); - } - - @Override - public void drawScreen(final int mouseX, final int mouseY, final float partialTicks) - { - super.drawScreen(mouseX, mouseY, partialTicks); - - Minecraft mc = Minecraft.getMinecraft(); - ScaledResolution scaledresolution = new ScaledResolution(mc); - - for (BestiarySlot slot : this.slots) - { - String beastName = slot.getPage().getEntityName(); - - if (!slot.getPage().isUnderstood(this.aePlayer)) - { - beastName = beastName.replaceAll("[^\\s]", "?"); - } - - if (InputHelper.isHovered(slot)) - { - this.drawHoveringText(beastName, - Mouse.getX() * scaledresolution.getScaledWidth() / mc.displayWidth, - scaledresolution.getScaledHeight() - (Mouse.getY() - 42) * scaledresolution.getScaledHeight() / mc.displayHeight - - 1, mc.fontRenderer); - } - } - } - - @SideOnly(Side.CLIENT) - protected void drawHoveringText(String text, int x, int y, FontRenderer font) - { - GL11.glDisable(GL11.GL_DEPTH_TEST); - - int k = font.getStringWidth(text); - - int x1 = x + 12; - int y1 = y - 12; - int z1 = 8; - - this.zLevel = 300.0F; - int color1 = -267386864; - this.drawGradientRect(x1 - 3, y1 - 4, x1 + k + 3, y1 - 3, color1, color1); - this.drawGradientRect(x1 - 3, y1 + z1 + 3, x1 + k + 3, y1 + z1 + 4, color1, color1); - this.drawGradientRect(x1 - 3, y1 - 3, x1 + k + 3, y1 + z1 + 3, color1, color1); - this.drawGradientRect(x1 - 4, y1 - 3, x1 - 3, y1 + z1 + 3, color1, color1); - this.drawGradientRect(x1 + k + 3, y1 - 3, x1 + k + 4, y1 + z1 + 3, color1, color1); - int color2 = 1347420415; - int color2BG = (color2 & 16711422) >> 1 | color2 & -16777216; - this.drawGradientRect(x1 - 3, y1 - 3 + 1, x1 - 3 + 1, y1 + z1 + 3 - 1, color2, color2BG); - this.drawGradientRect(x1 + k + 2, y1 - 3 + 1, x1 + k + 3, y1 + z1 + 3 - 1, color2, color2BG); - this.drawGradientRect(x1 - 3, y1 - 3, x1 + k + 3, y1 - 3 + 1, color2, color2); - this.drawGradientRect(x1 - 3, y1 + z1 + 2, x1 + k + 3, y1 + z1 + 3, color2BG, color2BG); - - font.drawString(text, x1, y1, -1); - - this.zLevel = 0.0F; - - GL11.glEnable(GL11.GL_DEPTH_TEST); - } - - private ResourceLocation getEffectIconFromType(IAetherStatusEffects.effectTypes effectType) - { - switch(effectType) - { - case AMBROSIUM_POISONING: - return AMBROSIUM_ICON; - case BLEED: - return BLEED_ICON; - case FRACTURE: - return FRACTURE_ICON; - case COCKATRICE_VENOM: - return COCKATRICE_VENOM_ICON; - case FUNGAL_ROT: - return FUNGAL_ROT_ICON; - case STUN: - return STUN_ICON; - case TOXIN: - return TOXIN_ICON; - case FREEZE: - return FREEZE_ICON; - case WEBBING: - return WEBBING_ICON; - case IRRADIATION: - return IRRADIATION_ICON; - } - - return STUN_ICON; - } -} diff --git a/src/main/java/com/gildedgames/aether/client/gui/container/guidebook/discovery/GuiGuidebookDiscoveryCharacters.java b/src/main/java/com/gildedgames/aether/client/gui/container/guidebook/discovery/GuiGuidebookDiscoveryCharacters.java deleted file mode 100644 index a8ecd49f2e..0000000000 --- a/src/main/java/com/gildedgames/aether/client/gui/container/guidebook/discovery/GuiGuidebookDiscoveryCharacters.java +++ /dev/null @@ -1,27 +0,0 @@ -package com.gildedgames.aether.client.gui.container.guidebook.discovery; - -import com.gildedgames.aether.common.capabilities.entity.player.PlayerAether; -import com.gildedgames.orbis.lib.client.gui.util.gui_library.IGuiViewer; -import net.minecraft.client.gui.GuiButton; - -import java.io.IOException; - -public class GuiGuidebookDiscoveryCharacters extends GuiGuidebookDiscovery -{ - public GuiGuidebookDiscoveryCharacters(final IGuiViewer prevViewer, final PlayerAether aePlayer) - { - super(prevViewer, aePlayer); - } - - @Override - public void initGui() - { - super.initGui(); - } - - @Override - protected void actionPerformed(final GuiButton button) throws IOException - { - super.actionPerformed(button); - } -} diff --git a/src/main/java/com/gildedgames/aether/client/gui/container/guidebook/discovery/GuiGuidebookDiscoveryEffects.java b/src/main/java/com/gildedgames/aether/client/gui/container/guidebook/discovery/GuiGuidebookDiscoveryEffects.java deleted file mode 100644 index 0d827c0b34..0000000000 --- a/src/main/java/com/gildedgames/aether/client/gui/container/guidebook/discovery/GuiGuidebookDiscoveryEffects.java +++ /dev/null @@ -1,243 +0,0 @@ -package com.gildedgames.aether.client.gui.container.guidebook.discovery; - -import com.gildedgames.aether.api.travellers_guidebook.ITGManager; -import com.gildedgames.aether.client.gui.container.IExtendedContainer; -import com.gildedgames.aether.client.gui.misc.GuiScrollableGuidebook; -import com.gildedgames.aether.common.AetherCore; -import com.gildedgames.aether.common.capabilities.entity.player.PlayerAether; -import com.gildedgames.aether.common.travellers_guidebook.entries.TGEntryEffectsPage; -import com.gildedgames.orbis.lib.client.gui.data.Text; -import com.gildedgames.orbis.lib.client.gui.util.GuiText; -import com.gildedgames.orbis.lib.client.gui.util.GuiTextBox; -import com.gildedgames.orbis.lib.client.gui.util.GuiTexture; -import com.gildedgames.orbis.lib.client.gui.util.gui_library.IGuiElement; -import com.gildedgames.orbis.lib.client.gui.util.gui_library.IGuiViewer; -import com.gildedgames.orbis.lib.client.rect.Dim2D; -import com.gildedgames.orbis.lib.client.rect.Pos2D; -import com.gildedgames.orbis.lib.client.rect.Rect; -import com.gildedgames.orbis.lib.util.InputHelper; -import com.google.common.collect.Lists; -import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.FontRenderer; -import net.minecraft.client.gui.GuiButton; -import net.minecraft.client.gui.GuiScreen; -import net.minecraft.client.gui.ScaledResolution; -import net.minecraft.client.util.ITooltipFlag; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.util.ResourceLocation; -import net.minecraft.util.text.TextComponentString; -import net.minecraft.util.text.TextComponentTranslation; -import net.minecraftforge.fml.common.registry.ForgeRegistries; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; -import org.lwjgl.input.Mouse; -import org.lwjgl.opengl.GL11; - -import java.io.IOException; -import java.util.ArrayList; -import java.util.List; - -public class GuiGuidebookDiscoveryEffects extends GuiGuidebookDiscovery -{ - private static final ResourceLocation RIGHT_PAGE_EFFECTS = AetherCore.getResource("textures/gui/guidebook/discovery/guidebook_discovery_right_effect.png"); - - private List<TGEntryEffectsPage> effectsEntries; - - private List<EffectsSlot> slots; - - private GuiTexture effectFrame; - - private GuiText effectTitle; - - private GuiTextBox effectDescription; - - private List<CurativeItemSlot> curativesEntries; - - public GuiGuidebookDiscoveryEffects(final IGuiViewer prevViewer, final PlayerAether aePlayer) - { - super(prevViewer, aePlayer); - } - - @Override - public void initGui() - { - super.initGui(); - } - - @Override - protected void actionPerformed(final GuiButton button) throws IOException - { - super.actionPerformed(button); - } - - @Override - protected List<IGuiElement> createLeftPage(final int screenX, final int screenY, final float u, final float v) { - List<IGuiElement> elements = super.createLeftPage(screenX, screenY, u, v); - final ITGManager tgManager = AetherCore.PROXY.content().tgManager(); - - this.effectsEntries = tgManager.getEntriesWithTagAndClass("effects", TGEntryEffectsPage.class); - this.slots = Lists.newArrayList(); - - for (int i = 0; i < this.effectsEntries.size(); i++) { - final TGEntryEffectsPage page = this.effectsEntries.get(i); - - final int x = screenX + 29 + ((i % 6) * 18); - final int y = screenY + 58 + ((i / 6) * 18); - - final EffectsSlot slot = new EffectsSlot(this.aePlayer, Pos2D.flush(x, y), page); - - slot.addClickEvent(() -> { - this.effectFrame.setResourceLocation(page.getDisplayTexture()); - this.effectFrame.state().setVisible(true); - - this.effectTitle.setText(new Text(new TextComponentTranslation(page.getLocalizedEffectName()), 1.0F)); - - this.effectDescription - .setText(new Text(new TextComponentTranslation(page.getUnlocalizedDescription()), - 0.65F)); - - this.effectDescription.tryRebuild(); - - for (int j = 0; j < 6; j++) - { - CurativeItemSlot curativeRender = this.curativesEntries.get(j); - - if (!page.getCurativeItems().isEmpty() && j < page.getCurativeItems().size()) - { - String curativeName = page.getCurativeItems().get(j); - Item curativeItem = ForgeRegistries.ITEMS.getValue(new ResourceLocation(curativeName.replaceAll("\"", ""))); - - if (curativeItem != null) - { - ItemStack curativeStack = new ItemStack(curativeItem); - - curativeRender.setItemStack(curativeStack); - } - } - else - { - curativeRender.setItemStack(ItemStack.EMPTY); - } - } - }); - - this.slots.add(slot); - elements.add(slot); - } - - return elements; - } - - @Override - protected List<IGuiElement> createRightPage(final int screenX, final int screenY, final float u, final float v) - { - List<IGuiElement> elements = super.createRightPage(screenX, screenY, u, v); - - this.effectFrame = new GuiTexture(Dim2D.build().x(screenX + 72).y(screenY + 30).width(32).height(32).flush(), null); - this.effectFrame.state().setVisible(false); - - this.effectTitle = new GuiText(Dim2D.build().x(screenX + 88).y(screenY + 10).flush(), new Text(new TextComponentString(""), 1.0F)); - this.effectTitle.dim().mod().centerX(true).flush(); - - this.effectDescription = new GuiTextBox(Dim2D.build().x(screenX + 24).y(screenY + 74).width(120).flush(), false, - new Text(new TextComponentString(""), - 0.65F)); - - // Empty stats scroll until click on entry - final Rect effectDescriptionScrollArea = Dim2D.build().width(120 + 9).height(61).flush(); - - final GuiTexture rightPage = new GuiTexture(Dim2D.build().width(this.PAGE_WIDTH).height(this.PAGE_HEIGHT).x(screenX).y(screenY).flush(), - RIGHT_PAGE_EFFECTS); - - final GuiText curatives = new GuiText(Dim2D.build().x(screenX + 63).y(screenY + 138).flush(), - new Text(new TextComponentTranslation("gui.guidebook.discovery.curatives"), 1.0F)); - - elements.addAll(Lists.newArrayList(rightPage, - this.effectFrame, - this.effectTitle, - new GuiScrollableGuidebook(this.effectDescription, effectDescriptionScrollArea, true), - curatives)); - - this.curativesEntries = new ArrayList<>(); - - // Creates "ghost" entries that will be filled when an effect is clicked. - for (int i = 0; i < 6; i++) - { - final int x = 30 + ((i % 6) * 18); - final int y = 149 + ((i / 6) * 18); - - CurativeItemSlot curativeElement = new CurativeItemSlot(Dim2D.build().x(screenX + x).y(screenY + y).width(18).height(18).flush()); - - this.curativesEntries.add(curativeElement); - elements.add(curativeElement); - } - - return elements; - } - - @Override - public void drawScreen(final int mouseX, final int mouseY, final float partialTicks) - { - super.drawScreen(mouseX, mouseY, partialTicks); - - Minecraft mc = Minecraft.getMinecraft(); - ScaledResolution scaledresolution = new ScaledResolution(mc); - - for (EffectsSlot slot : this.slots) - { - String effectName = slot.getPage().getLocalizedEffectName(); - - if (InputHelper.isHovered(slot)) - { - this.drawHoveringText(effectName, - Mouse.getX() * scaledresolution.getScaledWidth() / mc.displayWidth, - scaledresolution.getScaledHeight() - (Mouse.getY() - 42) * scaledresolution.getScaledHeight() / mc.displayHeight - - 1, mc.fontRenderer); - } - } - - for (CurativeItemSlot slot : this.curativesEntries) - { - if (InputHelper.isHovered(slot) && !slot.getItemStack().isEmpty()) - { - this.setHoveredDescription(slot.getItemStack().getTooltip(Minecraft.getMinecraft().player, Minecraft.getMinecraft().gameSettings.advancedItemTooltips ? - ITooltipFlag.TooltipFlags.ADVANCED : - ITooltipFlag.TooltipFlags.NORMAL)); - } - - } - } - - @SideOnly(Side.CLIENT) - protected void drawHoveringText(String text, int x, int y, FontRenderer font) - { - GL11.glDisable(GL11.GL_DEPTH_TEST); - - int k = font.getStringWidth(text); - - int x1 = x + 12; - int y1 = y - 12; - int z1 = 8; - - this.zLevel = 300.0F; - int color1 = -267386864; - this.drawGradientRect(x1 - 3, y1 - 4, x1 + k + 3, y1 - 3, color1, color1); - this.drawGradientRect(x1 - 3, y1 + z1 + 3, x1 + k + 3, y1 + z1 + 4, color1, color1); - this.drawGradientRect(x1 - 3, y1 - 3, x1 + k + 3, y1 + z1 + 3, color1, color1); - this.drawGradientRect(x1 - 4, y1 - 3, x1 - 3, y1 + z1 + 3, color1, color1); - this.drawGradientRect(x1 + k + 3, y1 - 3, x1 + k + 4, y1 + z1 + 3, color1, color1); - int color2 = 1347420415; - int color2BG = (color2 & 16711422) >> 1 | color2 & -16777216; - this.drawGradientRect(x1 - 3, y1 - 3 + 1, x1 - 3 + 1, y1 + z1 + 3 - 1, color2, color2BG); - this.drawGradientRect(x1 + k + 2, y1 - 3 + 1, x1 + k + 3, y1 + z1 + 3 - 1, color2, color2BG); - this.drawGradientRect(x1 - 3, y1 - 3, x1 + k + 3, y1 - 3 + 1, color2, color2); - this.drawGradientRect(x1 - 3, y1 + z1 + 2, x1 + k + 3, y1 + z1 + 3, color2BG, color2BG); - - font.drawString(text, x1, y1, -1); - - this.zLevel = 0.0F; - - GL11.glEnable(GL11.GL_DEPTH_TEST); - } -} diff --git a/src/main/java/com/gildedgames/aether/client/gui/container/guidebook/discovery/GuiGuidebookDiscoveryLandmarks.java b/src/main/java/com/gildedgames/aether/client/gui/container/guidebook/discovery/GuiGuidebookDiscoveryLandmarks.java deleted file mode 100644 index 91e7bb3ee8..0000000000 --- a/src/main/java/com/gildedgames/aether/client/gui/container/guidebook/discovery/GuiGuidebookDiscoveryLandmarks.java +++ /dev/null @@ -1,27 +0,0 @@ -package com.gildedgames.aether.client.gui.container.guidebook.discovery; - -import com.gildedgames.aether.common.capabilities.entity.player.PlayerAether; -import com.gildedgames.orbis.lib.client.gui.util.gui_library.IGuiViewer; -import net.minecraft.client.gui.GuiButton; - -import java.io.IOException; - -public class GuiGuidebookDiscoveryLandmarks extends GuiGuidebookDiscovery -{ - public GuiGuidebookDiscoveryLandmarks(final IGuiViewer prevViewer, final PlayerAether aePlayer) - { - super(prevViewer, aePlayer); - } - - @Override - public void initGui() - { - super.initGui(); - } - - @Override - protected void actionPerformed(final GuiButton button) throws IOException - { - super.actionPerformed(button); - } -} diff --git a/src/main/java/com/gildedgames/aether/client/gui/container/guidebook/discovery/stats/GuiStat.java b/src/main/java/com/gildedgames/aether/client/gui/container/guidebook/discovery/stats/GuiStat.java deleted file mode 100644 index d043064d73..0000000000 --- a/src/main/java/com/gildedgames/aether/client/gui/container/guidebook/discovery/stats/GuiStat.java +++ /dev/null @@ -1,36 +0,0 @@ -package com.gildedgames.aether.client.gui.container.guidebook.discovery.stats; - -import com.gildedgames.orbis.lib.client.gui.data.Text; -import com.gildedgames.orbis.lib.client.gui.util.GuiText; -import com.gildedgames.orbis.lib.client.gui.util.GuiTexture; -import com.gildedgames.orbis.lib.client.gui.util.gui_library.GuiElement; -import com.gildedgames.orbis.lib.client.gui.util.gui_library.GuiLibHelper; -import com.gildedgames.orbis.lib.client.rect.Dim2D; - -public class GuiStat extends GuiElement -{ - private final GuiTexture icon; - - private final Text text; - - private GuiText textElement; - - public GuiStat(final GuiTexture icon, final Text text) - { - super(Dim2D.flush(), true); - - this.text = text; - this.icon = icon; - } - - @Override - public void build() - { - this.textElement = new GuiText(Dim2D.build().x(this.icon.dim().maxX() + 5).y(this.icon.dim().centerY()).flush(), this.text); - this.textElement.dim().mod().centerY(true).flush(); - - this.context().addChildren(this.icon, this.textElement); - - GuiLibHelper.assembleMinMaxArea(this); - } -} diff --git a/src/main/java/com/gildedgames/aether/client/gui/container/guidebook/status/GuiGuidebookStatus.java b/src/main/java/com/gildedgames/aether/client/gui/container/guidebook/status/GuiGuidebookStatus.java deleted file mode 100644 index 326167e9fe..0000000000 --- a/src/main/java/com/gildedgames/aether/client/gui/container/guidebook/status/GuiGuidebookStatus.java +++ /dev/null @@ -1,397 +0,0 @@ -package com.gildedgames.aether.client.gui.container.guidebook.status; - -import com.gildedgames.aether.api.entity.effects.IAetherStatusEffectPool; -import com.gildedgames.aether.api.entity.effects.IAetherStatusEffects; -import com.gildedgames.aether.api.player.IPlayerAether; -import com.gildedgames.aether.api.registrar.CapabilitiesAether; -import com.gildedgames.aether.api.shop.IGuiCurrencyValue; -import com.gildedgames.aether.client.gui.container.guidebook.AbstractGuidebookPage; -import com.gildedgames.aether.client.gui.container.guidebook.status.info.GuiEffectBar; -import com.gildedgames.aether.client.gui.container.guidebook.status.info.GuiResistance; -import com.gildedgames.aether.client.gui.misc.GuiScrollableGuidebook; -import com.gildedgames.aether.common.AetherCore; -import com.gildedgames.aether.common.capabilities.entity.player.PlayerAether; -import com.gildedgames.aether.common.capabilities.entity.player.modules.PlayerCurrencyModule; -import com.gildedgames.aether.common.capabilities.entity.player.modules.PlayerEquipmentModule; -import com.gildedgames.aether.common.containers.guidebook.EmptyContainer; -import com.gildedgames.aether.common.shop.ShopCurrencyGilt; -import com.gildedgames.orbis.lib.client.gui.data.Text; -import com.gildedgames.orbis.lib.client.gui.util.GuiText; -import com.gildedgames.orbis.lib.client.gui.util.GuiTexture; -import com.gildedgames.orbis.lib.client.gui.util.gui_library.GuiElement; -import com.gildedgames.orbis.lib.client.gui.util.gui_library.GuiLibHelper; -import com.gildedgames.orbis.lib.client.gui.util.gui_library.IGuiElement; -import com.gildedgames.orbis.lib.client.gui.util.gui_library.IGuiViewer; -import com.gildedgames.orbis.lib.client.rect.Dim2D; -import com.gildedgames.orbis.lib.client.rect.Pos2D; -import com.gildedgames.orbis.lib.util.InputHelper; -import com.google.common.collect.Lists; -import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.FontRenderer; -import net.minecraft.client.gui.ScaledResolution; -import net.minecraft.client.gui.inventory.GuiInventory; -import net.minecraft.client.renderer.GlStateManager; -import net.minecraft.client.resources.I18n; -import net.minecraft.init.Items; -import net.minecraft.inventory.EntityEquipmentSlot; -import net.minecraft.item.Item; -import net.minecraft.item.ItemArmor; -import net.minecraft.item.ItemStack; -import net.minecraft.util.ResourceLocation; -import net.minecraft.util.text.TextComponentString; -import net.minecraft.util.text.TextComponentTranslation; -import net.minecraft.util.text.TextFormatting; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; -import org.apache.commons.lang3.StringUtils; -import org.lwjgl.input.Mouse; -import org.lwjgl.opengl.GL11; - -import java.util.*; - -public class GuiGuidebookStatus extends AbstractGuidebookPage -{ - private static final ResourceLocation HEALTH_ICON = AetherCore.getResource("textures/gui/guidebook/icons/heart.png"); - private static final ResourceLocation ARMOR_ICON = AetherCore.getResource("textures/gui/guidebook/icons/armor.png"); - - private static final ResourceLocation LEFT_PAGE = AetherCore.getResource("textures/gui/guidebook/status/guidebook_status_left.png"); - - private static final ResourceLocation RIGHT_PAGE = AetherCore.getResource("textures/gui/guidebook/status/guidebook_status_right.png"); - - private GuiText healthText, armorText; - - private IGuiCurrencyValue coins; - - private GuiScrollableGuidebook statsArea, effectsArea; - - private List<GuiElement> effectBars, resistanceElements; - - private HashMap<String, IAetherStatusEffects> pool = new HashMap<>(); - - public GuiGuidebookStatus(final IGuiViewer prevViewer, final PlayerAether aePlayer) - { - super(prevViewer, aePlayer, new EmptyContainer()); - } - - //PLAYER - @Override - protected List<IGuiElement> createLeftPage(final int screenX, final int screenY, final float u, final float v) - { - final GuiTexture leftPage = new GuiTexture(Dim2D.build().width(this.PAGE_WIDTH).height(this.PAGE_HEIGHT).x(screenX).y(screenY).flush(), - LEFT_PAGE); - - final GuiText header = new GuiText(Dim2D.build().x(screenX + 72).y(screenY + 13).flush(), - new Text(new TextComponentTranslation("tab.guidebook.status"), 1.0F)); - - GuiTexture heartTexture = new GuiTexture(Dim2D.build().x(screenX + 32).y(screenY + 29).width(9).height(9).flush(), HEALTH_ICON); - this.healthText = new GuiText(Dim2D.build().x(screenX + 44).y(screenY + 30).flush(), - new Text(new TextComponentString(""), 1.0F)); - - GuiTexture armorTexture = new GuiTexture(Dim2D.build().x(screenX + 32).y(screenY + 42).width(9).height(9).flush(), ARMOR_ICON); - this.armorText = new GuiText(Dim2D.build().x(screenX + 44).y(screenY + 43).flush(), - new Text(new TextComponentString(""), 1.0F)); - - this.coins = new ShopCurrencyGilt().createCurrencyValueGui(Dim2D.build().x(screenX + 92).y(screenY + 98).flush()); - - this.statsArea = new GuiScrollableGuidebook(new GuiElement(Dim2D.build().x(screenX + 24).y(screenY + 59).flush(), false), - Dim2D.build().width(52 + 9).height(107).flush(), true); - - this.effectsArea = new GuiScrollableGuidebook(new GuiElement(Dim2D.build().x(screenX + 92).y(screenY + 118).flush(), false), - Dim2D.build().width(52 + 9).height(48).flush(), true); - - return Lists.newArrayList(leftPage, - header, - heartTexture, - this.healthText, - armorTexture, - this.armorText, - this.coins, - this.statsArea, - this.effectsArea); - } - - //MOA - @Override - protected List<IGuiElement> createRightPage(final int screenX, final int screenY, final float u, final float v) - { - final GuiTexture rightPage = new GuiTexture(Dim2D.build().width(this.PAGE_WIDTH).height(this.PAGE_HEIGHT).x(screenX).y(screenY).flush(), - RIGHT_PAGE); - - final GuiText header = new GuiText(Dim2D.build().x(screenX + 73).y(screenY + 13).flush(), - new Text(new TextComponentTranslation("tab.guidebook.mount"), 1.0F)); - - return Lists.newArrayList(rightPage, - header); - } - - @Override - public void drawScreen(final int mouseX, final int mouseY, final float partialTick) - { - super.drawScreen(mouseX, mouseY, partialTick); - - Minecraft mc = Minecraft.getMinecraft(); - ScaledResolution scaledresolution = new ScaledResolution(mc); - - this.drawPlayer(mouseX, mouseY); - - int health = (int) Minecraft.getMinecraft().player.getHealth(); - int maxHealth = (int) Minecraft.getMinecraft().player.getMaxHealth(); - this.healthText.setText(new Text(new TextComponentString(health + "/" + maxHealth), 1.0F)); - - int armor = Minecraft.getMinecraft().player.getTotalArmorValue(); - int maxArmor = 20; - this.armorText.setText(new Text(new TextComponentString(armor + "/" + maxArmor), 1.0F)); - - IPlayerAether playerAether = PlayerAether.getPlayer(Minecraft.getMinecraft().player); - int value = (int) playerAether.getModule(PlayerCurrencyModule.class).getCurrencyValue(); - this.coins.setCurrencyValue(value); - - this.resetStats(); - - this.resetEffects(); - - if (this.effectBars != null && !this.effectBars.isEmpty()) - { - for (GuiElement element : this.effectBars) - { - if (element instanceof GuiEffectBar) - { - GuiEffectBar effect = (GuiEffectBar) element; - - if (InputHelper.isHovered(effect)) - { - this.drawHoveringText(I18n.format(effect.getEffect().getEffectName()), - Mouse.getX() * scaledresolution.getScaledWidth() / mc.displayWidth, - scaledresolution.getScaledHeight() - (Mouse.getY() - 42) * scaledresolution.getScaledHeight() / mc.displayHeight - - 1, mc.fontRenderer); - } - } - } - } - - if (this.resistanceElements != null && !this.resistanceElements.isEmpty()) - { - for (GuiElement element : this.resistanceElements) - { - if (element instanceof GuiResistance) - { - GuiResistance resistance = (GuiResistance) element; - - if (InputHelper.isHovered(resistance)) - { - float effectResistance = (float) resistance.getEffect().getResistance(); - int trueValue; - String amountText = ""; - - if (effectResistance >= 0.0D && effectResistance < 2.0D && effectResistance != 1.0D) - { - if (effectResistance > 1.0) - { - trueValue = (int) ((effectResistance - 1) * 100); - - amountText = String.format("+%s %s", - trueValue, - String.format("%s %s", - I18n.format(resistance.getEffect().getEffectType().name), - I18n.format("attribute.name.aether.resistance"))); - } - else if (effectResistance < 1.0) - { - trueValue = (int) ((effectResistance - 1) * -100); - - amountText = String.format("+%s %s", - trueValue, - String.format("%s %s", - I18n.format(resistance.getEffect().getEffectType().name), - I18n.format("attribute.name.aether.weakness"))); - } - } - else if (effectResistance >= 2.0D) - { - amountText = String.format("%s %s", - I18n.format("attribute.name.aether.complete_resistance"), - I18n.format(resistance.getEffect().getEffectType().name)); - } - - this.drawHoveringText(amountText, - Mouse.getX() * scaledresolution.getScaledWidth() / mc.displayWidth, - scaledresolution.getScaledHeight() - (Mouse.getY() - 42) * scaledresolution.getScaledHeight() / mc.displayHeight - - 1, mc.fontRenderer); - } - } - } - } - } - - private void drawPlayer(final int mouseX, final int mouseY) - { - GlStateManager.color(1.0f, 1.0f, 1.0f, 1.0f); - - GuiInventory.drawEntityOnScreen( - this.width / 2 - 54, - this.height / 2, 32, (this.guiLeft + 88) - mouseX, (this.guiTop + 35) - mouseY, this.mc.player); - } - - private void resetStats() - { - updateResistances(); - updateAttributes(); - } - - private void updateResistances() - { - IAetherStatusEffectPool statusEffectPool = Minecraft.getMinecraft().player.getCapability(CapabilitiesAether.STATUS_EFFECT_POOL, null); - - final IGuiElement statsElement = new GuiElement(Dim2D.build().width(52).flush(), false); - - List<GuiElement> statsArray = new ArrayList<>(); - - if (statusEffectPool != null) - { - for (Map.Entry<String, IAetherStatusEffects> effect : statusEffectPool.getPool().entrySet()) - { - if (effect.getValue().getResistance() != 1.0) - { - final GuiResistance effectTestStat = new GuiResistance(effect.getValue()); - - statsArray.add(effectTestStat); - } - } - } - - GuiElement[] elements = statsArray.toArray(new GuiElement[0]); - - statsElement.build(this); - - GuiLibHelper.alignVertically(this, Pos2D.flush(0, 0), 0, elements); - statsElement.context().addChildren(elements); - - GuiLibHelper.assembleMinMaxArea(statsElement); - - statsElement.dim().mod().pos(this.statsArea.dim().min()).flush(); - - this.statsArea.setDecorated(statsElement); - - this.resistanceElements = statsArray; - } - - private void updateAttributes() - { - final ArrayList<String> label = new ArrayList<>(); - - final PlayerEquipmentModule equipment = this.aePlayer.getModule(PlayerEquipmentModule.class); - equipment.getActivePools().forEach((pool) -> pool.getInstance().ifPresent(instance -> instance.addInformation(label, TextFormatting.BLUE, TextFormatting.RED))); - - final String compiled = StringUtils.join(label, TextFormatting.RESET + ", "); - - this.mc.fontRenderer.drawString(compiled, this.guiLeft, this.guiTop + 160, 0xFFFFFF, true); - - for (ItemStack stack : Minecraft.getMinecraft().player.inventory.armorInventory) - { - Item item = stack.getItem(); - - if (item instanceof ItemArmor) - { - ItemArmor itemArmor = (ItemArmor) item; - - //System.out.println(item.getAttributeModifiers(itemArmor.armorType, stack)); - } - } - } - - private void resetEffects() - { - IAetherStatusEffectPool statusEffectPool = Minecraft.getMinecraft().player.getCapability(CapabilitiesAether.STATUS_EFFECT_POOL, null); - - if (statusEffectPool != null) - { - if ((this.pool.isEmpty() && !statusEffectPool.getPool().isEmpty()) || (!this.pool.isEmpty() && statusEffectPool.getPool().isEmpty())) - { - this.updateEffects(statusEffectPool); - } - - this.pool = new HashMap<>(statusEffectPool.getPool()); - } - else - { - this.pool.clear(); - } - } - - private void updateEffects(IAetherStatusEffectPool statusEffectPool) - { - final IGuiElement statsElement = new GuiElement(Dim2D.build().width(52).flush(), false); - - List<GuiElement> statsArray = new ArrayList<>(); - - for (IAetherStatusEffects effect : statusEffectPool.getPool().values()) - { - if (effect.getResistance() == 1.0D) - { - final GuiEffectBar effectBar = new GuiEffectBar(effect); - statsArray.add(effectBar); - } - } - - GuiElement[] elements = statsArray.toArray(new GuiElement[0]); - - statsElement.build(this); - - GuiLibHelper.alignVertically(this, Pos2D.flush(0, 0), 0, elements); - statsElement.context().addChildren(elements); - - GuiLibHelper.assembleMinMaxArea(statsElement); - - statsElement.dim().mod().pos(this.effectsArea.dim().min()).flush(); - - this.effectsArea.setDecorated(statsElement); - - this.effectBars = statsArray; - } - - @SideOnly(Side.CLIENT) - protected void drawHoveringText(String text, int x, int y, FontRenderer font) - { - GL11.glDisable(GL11.GL_DEPTH_TEST); - - int k = font.getStringWidth(text); - - int x1 = x + 12; - int y1 = y - 12; - int z1 = 8; - - this.zLevel = 300.0F; - int color1 = -267386864; - this.drawGradientRect(x1 - 3, y1 - 4, x1 + k + 3, y1 - 3, color1, color1); - this.drawGradientRect(x1 - 3, y1 + z1 + 3, x1 + k + 3, y1 + z1 + 4, color1, color1); - this.drawGradientRect(x1 - 3, y1 - 3, x1 + k + 3, y1 + z1 + 3, color1, color1); - this.drawGradientRect(x1 - 4, y1 - 3, x1 - 3, y1 + z1 + 3, color1, color1); - this.drawGradientRect(x1 + k + 3, y1 - 3, x1 + k + 4, y1 + z1 + 3, color1, color1); - int color2 = 1347420415; - int color2BG = (color2 & 16711422) >> 1 | color2 & -16777216; - this.drawGradientRect(x1 - 3, y1 - 3 + 1, x1 - 3 + 1, y1 + z1 + 3 - 1, color2, color2BG); - this.drawGradientRect(x1 + k + 2, y1 - 3 + 1, x1 + k + 3, y1 + z1 + 3 - 1, color2, color2BG); - this.drawGradientRect(x1 - 3, y1 - 3, x1 + k + 3, y1 - 3 + 1, color2, color2); - this.drawGradientRect(x1 - 3, y1 + z1 + 2, x1 + k + 3, y1 + z1 + 3, color2BG, color2BG); - - font.drawString(text, x1, y1, -1); - - this.zLevel = 0.0F; - - GL11.glEnable(GL11.GL_DEPTH_TEST); - } - - - -// private void drawEquipmentEffects() -// { -// final ArrayList<String> label = new ArrayList<>(); -// -// final PlayerEquipmentModule equipment = this.aePlayer.getModule(PlayerEquipmentModule.class); -// equipment.getActivePools().forEach((pool) -> pool.getInstance().ifPresent(instance -> instance.addInformation(label, TextFormatting.BLUE, TextFormatting.RED))); -// -// final String compiled = StringUtils.join(label, TextFormatting.RESET + ", "); -// -// this.mc.fontRenderer.drawString(compiled, this.guiLeft, this.guiTop + 160, 0xFFFFFF, true); -// } -} diff --git a/src/main/java/com/gildedgames/aether/client/gui/container/guidebook/status/info/GuiBuildupBar.java b/src/main/java/com/gildedgames/aether/client/gui/container/guidebook/status/info/GuiBuildupBar.java deleted file mode 100644 index 46fea3f4ef..0000000000 --- a/src/main/java/com/gildedgames/aether/client/gui/container/guidebook/status/info/GuiBuildupBar.java +++ /dev/null @@ -1,54 +0,0 @@ -package com.gildedgames.aether.client.gui.container.guidebook.status.info; - -import com.gildedgames.aether.client.gui.EffectSystemOverlay; -import com.gildedgames.orbis.lib.client.gui.util.GuiFrameUtils; -import com.gildedgames.orbis.lib.client.gui.util.GuiTexture; -import com.gildedgames.orbis.lib.client.gui.util.gui_library.GuiElement; -import com.gildedgames.orbis.lib.client.rect.Rect; -import net.minecraft.client.renderer.GlStateManager; -import net.minecraft.util.ResourceLocation; - -public class GuiBuildupBar extends GuiTexture -{ - private final ResourceLocation texture; - - private EffectSystemOverlay.Color color; - - public GuiBuildupBar(final Rect rect, final ResourceLocation texture, EffectSystemOverlay.Color color) - { - super(rect, texture); - - this.texture = texture; - this.color = color; - } - - @Override - public void onDraw(GuiElement element) - { - GlStateManager.pushMatrix(); - - GuiFrameUtils.applyAlpha(this.state()); - - float r, g, b, a; - r = this.color.r / 255.F; - g = this.color.g / 255.F; - b = this.color.b / 255.F; - a = 1.0f; - - GlStateManager.color(r,g,b,a); - - this.viewer().mc().getTextureManager().bindTexture(this.texture); - - drawModalRectWithCustomSizedTexture(this.dim().x(), this.dim().y(), 0, 0, this.dim().width(), - this.dim().height(), - this.dim().width(), this.dim().height()); - - GlStateManager.color(1,1,1, 1); - GlStateManager.popMatrix(); - } - - public void setColor(EffectSystemOverlay.Color color) - { - this.color = color; - } -} diff --git a/src/main/java/com/gildedgames/aether/client/gui/container/guidebook/status/info/GuiEffectBar.java b/src/main/java/com/gildedgames/aether/client/gui/container/guidebook/status/info/GuiEffectBar.java deleted file mode 100644 index 7dd8e7ee3f..0000000000 --- a/src/main/java/com/gildedgames/aether/client/gui/container/guidebook/status/info/GuiEffectBar.java +++ /dev/null @@ -1,131 +0,0 @@ -package com.gildedgames.aether.client.gui.container.guidebook.status.info; - -import com.gildedgames.aether.api.entity.effects.IAetherStatusEffectPool; -import com.gildedgames.aether.api.entity.effects.IAetherStatusEffects; -import com.gildedgames.aether.api.registrar.CapabilitiesAether; -import com.gildedgames.aether.client.gui.EffectSystemOverlay; -import com.gildedgames.aether.common.AetherCore; -import com.gildedgames.orbis.lib.client.gui.data.Text; -import com.gildedgames.orbis.lib.client.gui.util.GuiText; -import com.gildedgames.orbis.lib.client.gui.util.GuiTexture; -import com.gildedgames.orbis.lib.client.gui.util.gui_library.GuiElement; -import com.gildedgames.orbis.lib.client.gui.util.gui_library.GuiLibHelper; -import com.gildedgames.orbis.lib.client.rect.Dim2D; -import net.minecraft.client.Minecraft; -import net.minecraft.util.ResourceLocation; -import net.minecraft.util.text.TextComponentString; - -public class GuiEffectBar extends GuiElement -{ - public static final ResourceLocation BACKING = AetherCore.getResource("textures/gui/guidebook/icons/backing.png"); - - private static final ResourceLocation BAR_OUTLINE = AetherCore.getResource("textures/gui/guidebook/icons/bar_outline.png"); - private static final ResourceLocation BAR_BUILDUP = AetherCore.getResource("textures/gui/guidebook/icons/buildup_bar.png"); - - private static final ResourceLocation AMBROSIUM_ICON = AetherCore.getResource("textures/gui/overlay/effects/ambrosium_poisoning.png"); - private static final ResourceLocation BLEED_ICON = AetherCore.getResource("textures/gui/overlay/effects/bleed.png"); - private static final ResourceLocation COCKATRICE_VENOM_ICON = AetherCore.getResource("textures/gui/overlay/effects/cockatrice_venom.png"); - private static final ResourceLocation FRACTURE_ICON = AetherCore.getResource("textures/gui/overlay/effects/fracture.png"); - private static final ResourceLocation FUNGAL_ROT_ICON = AetherCore.getResource("textures/gui/overlay/effects/fungal_rot.png"); - private static final ResourceLocation STUN_ICON = AetherCore.getResource("textures/gui/overlay/effects/stun.png"); - private static final ResourceLocation TOXIN_ICON = AetherCore.getResource("textures/gui/overlay/effects/toxin.png"); - private static final ResourceLocation FREEZE_ICON = AetherCore.getResource("textures/gui/overlay/effects/freeze.png"); - private static final ResourceLocation WEBBING_ICON = AetherCore.getResource("textures/gui/overlay/effects/webbing.png"); - private static final ResourceLocation IRRADIATION_ICON = AetherCore.getResource("textures/gui/overlay/effects/irradiation.png"); - - private static final ResourceLocation SATURATION_BOOST_ICON = AetherCore.getResource("textures/gui/overlay/effects/teas/saturation_boost.png"); - - private static final ResourceLocation GUARD_BREAK_ICON = AetherCore.getResource("textures/gui/overlay/effects/guard_break.png"); - - private final IAetherStatusEffects effect; - - private final GuiTexture effectIcon; - - private final GuiBuildupBar buildupBar; - - private GuiText textElement; - - public GuiEffectBar(IAetherStatusEffects effect) - { - super(Dim2D.flush(), true); - - this.dim().mod().width(52).height(20).flush(); - - this.effect = effect; - this.effectIcon = new GuiTexture(Dim2D.build().width(16).height(16).x(2).y(2).flush(), - this.getEffectIconFromType(this.effect.getEffectType())); - this.buildupBar = new GuiBuildupBar(Dim2D.build().width(27).height(3).x(21).y(5).flush(), BAR_BUILDUP, - EffectSystemOverlay.Color.DEFAULT_COLOR); - } - - @Override - public void build() - { - this.textElement = new GuiText(Dim2D.build().addY(11).flush(), - new Text(new TextComponentString(""), 0.75F)); - - GuiTexture backing = new GuiTexture(Dim2D.build().width(52).height(20).x(0).y(0).flush(), BACKING); - - GuiTexture effectBar = new GuiTexture(Dim2D.build().width(29).height(5).x(20).y(4).flush(), BAR_OUTLINE); - - this.context().addChildren(backing, this.effectIcon, this.textElement, effectBar, this.buildupBar); - - GuiLibHelper.assembleMinMaxArea(this); - } - - @Override - public void onDraw(GuiElement element) - { - IAetherStatusEffectPool statusEffectPool = Minecraft.getMinecraft().player.getCapability(CapabilitiesAether.STATUS_EFFECT_POOL, null); - - if (statusEffectPool != null) - { - int buildup = this.effect.getBuildup(); - - this.buildupBar.setColor(EffectSystemOverlay.Color.getColorFromEffect(this.effect.getEffectType())); - int width = (int) (27F * (buildup / 100F)); - this.buildupBar.dim().mod().width(width).flush(); - - this.textElement.setText(new Text(new TextComponentString(buildup + "/" + 100), 0.75F)); - this.textElement.dim().mod().x(24 - ((float) this.viewer().fontRenderer().getStringWidth(String.valueOf(buildup)) / 4)).flush(); - } - } - - public IAetherStatusEffects getEffect() - { - return this.effect; - } - - private ResourceLocation getEffectIconFromType(IAetherStatusEffects.effectTypes effectType) - { - switch(effectType) - { - case AMBROSIUM_POISONING: - return AMBROSIUM_ICON; - case BLEED: - return BLEED_ICON; - case FRACTURE: - return FRACTURE_ICON; - case COCKATRICE_VENOM: - return COCKATRICE_VENOM_ICON; - case FUNGAL_ROT: - return FUNGAL_ROT_ICON; - case STUN: - return STUN_ICON; - case TOXIN: - return TOXIN_ICON; - case FREEZE: - return FREEZE_ICON; - case WEBBING: - return WEBBING_ICON; - case SATURATION_BOOST: - return SATURATION_BOOST_ICON; - case GUARD_BREAK: - return GUARD_BREAK_ICON; - case IRRADIATION: - return IRRADIATION_ICON; - } - - return STUN_ICON; - } -} diff --git a/src/main/java/com/gildedgames/aether/client/gui/container/guidebook/status/info/GuiResistance.java b/src/main/java/com/gildedgames/aether/client/gui/container/guidebook/status/info/GuiResistance.java deleted file mode 100644 index 6cd0f4f547..0000000000 --- a/src/main/java/com/gildedgames/aether/client/gui/container/guidebook/status/info/GuiResistance.java +++ /dev/null @@ -1,127 +0,0 @@ -package com.gildedgames.aether.client.gui.container.guidebook.status.info; - -import com.gildedgames.aether.api.entity.effects.IAetherStatusEffects; -import com.gildedgames.aether.common.AetherCore; -import com.gildedgames.orbis.lib.client.gui.data.Text; -import com.gildedgames.orbis.lib.client.gui.util.GuiText; -import com.gildedgames.orbis.lib.client.gui.util.GuiTexture; -import com.gildedgames.orbis.lib.client.gui.util.gui_library.GuiElement; -import com.gildedgames.orbis.lib.client.gui.util.gui_library.GuiLibHelper; -import com.gildedgames.orbis.lib.client.rect.Dim2D; -import com.google.common.collect.Lists; -import net.minecraft.client.resources.I18n; -import net.minecraft.util.ResourceLocation; -import net.minecraft.util.text.TextComponentString; -import net.minecraft.util.text.TextFormatting; - -import java.util.Collection; - -public class GuiResistance extends GuiElement -{ - public static final ResourceLocation BACKING = AetherCore.getResource("textures/gui/guidebook/icons/backing.png"); - - private static final ResourceLocation AMBROSIUM_ICON = AetherCore.getResource("textures/gui/overlay/effects/ambrosium_poisoning.png"); - private static final ResourceLocation BLEED_ICON = AetherCore.getResource("textures/gui/overlay/effects/bleed.png"); - private static final ResourceLocation COCKATRICE_VENOM_ICON = AetherCore.getResource("textures/gui/overlay/effects/cockatrice_venom.png"); - private static final ResourceLocation FRACTURE_ICON = AetherCore.getResource("textures/gui/overlay/effects/fracture.png"); - private static final ResourceLocation FUNGAL_ROT_ICON = AetherCore.getResource("textures/gui/overlay/effects/fungal_rot.png"); - private static final ResourceLocation STUN_ICON = AetherCore.getResource("textures/gui/overlay/effects/stun.png"); - private static final ResourceLocation TOXIN_ICON = AetherCore.getResource("textures/gui/overlay/effects/toxin.png"); - private static final ResourceLocation FREEZE_ICON = AetherCore.getResource("textures/gui/overlay/effects/freeze.png"); - private static final ResourceLocation WEBBING_ICON = AetherCore.getResource("textures/gui/overlay/effects/webbing.png"); - private static final ResourceLocation IRRADIATION_ICON = AetherCore.getResource("textures/gui/overlay/effects/irradiation.png"); - - private final IAetherStatusEffects effect; - - private final GuiTexture effectIcon; - - private GuiText textElement; - - public GuiResistance(final IAetherStatusEffects effect) - { - super(Dim2D.flush(), true); - - this.dim().mod().width(52).height(20).flush(); - - this.effect = effect; - this.effectIcon = new GuiTexture(Dim2D.build().width(16).height(16).x(2).y(2).flush(), - this.getEffectIconFromType(this.effect.getEffectType())); - } - - @Override - public void build() - { - this.textElement = new GuiText(Dim2D.build().addX(19).addY(7).flush(), getResistanceAmount()); - - GuiTexture backing = new GuiTexture(Dim2D.build().width(52).height(20).x(0).y(0).flush(), BACKING); - - this.context().addChildren(backing, this.effectIcon, this.textElement); - - GuiLibHelper.assembleMinMaxArea(this); - } - - private Text getResistanceAmount() - { - float effectResistance = (float) this.effect.getResistance(); - int trueValue; - - if (effectResistance >= 0.0D && effectResistance < 2.0D && effectResistance != 1.0D) - { - if (effectResistance > 1.0) - { - trueValue = (int) ((effectResistance - 1) * 100); - - return new Text(new TextComponentString(I18n.format("gui.guidebook.status.res") - + String.format(" +%s%s", trueValue, "%")), 0.675F); - } - else if (effectResistance < 1.0) - { - trueValue = (int) ((effectResistance - 1) * -100); - - return new Text(new TextComponentString(I18n.format("gui.guidebook.status.weak") - + String.format(" +%s%s", trueValue, "%")), 0.675F); - } - } - else if (effectResistance >= 2.0D) - { - return new Text(new TextComponentString(I18n.format("gui.guidebook.status.res") - + " " + I18n.format("gui.guidebook.status.full")), 0.675F); - } - - return new Text(new TextComponentString(""), 0.675F); - } - - public IAetherStatusEffects getEffect() - { - return this.effect; - } - - private ResourceLocation getEffectIconFromType(IAetherStatusEffects.effectTypes effectType) - { - switch(effectType) - { - case AMBROSIUM_POISONING: - return AMBROSIUM_ICON; - case BLEED: - return BLEED_ICON; - case FRACTURE: - return FRACTURE_ICON; - case COCKATRICE_VENOM: - return COCKATRICE_VENOM_ICON; - case FUNGAL_ROT: - return FUNGAL_ROT_ICON; - case STUN: - return STUN_ICON; - case TOXIN: - return TOXIN_ICON; - case FREEZE: - return FREEZE_ICON; - case WEBBING: - return WEBBING_ICON; - case IRRADIATION: - return IRRADIATION_ICON; - } - - return STUN_ICON; - } -} diff --git a/src/main/java/com/gildedgames/aether/client/gui/container/masonry_bench/GuiMasonryBench.java b/src/main/java/com/gildedgames/aether/client/gui/container/masonry_bench/GuiMasonryBench.java deleted file mode 100644 index 85bf8eb105..0000000000 --- a/src/main/java/com/gildedgames/aether/client/gui/container/masonry_bench/GuiMasonryBench.java +++ /dev/null @@ -1,362 +0,0 @@ -package com.gildedgames.aether.client.gui.container.masonry_bench; - -import com.gildedgames.aether.client.gui.container.IExtendedContainer; -import com.gildedgames.aether.common.AetherCore; -import com.gildedgames.aether.common.containers.tiles.ContainerMasonryBench; -import com.gildedgames.aether.common.network.NetworkingAether; -import com.gildedgames.aether.common.network.packets.PacketMasonryProcessOutput; -import com.gildedgames.aether.common.network.packets.PacketMasonryProcessOutputShift; -import com.gildedgames.aether.common.recipes.MasonryRecipes; -import com.gildedgames.aether.common.util.helpers.ItemHelper; -import com.google.common.collect.Lists; -import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.GuiButton; -import net.minecraft.client.gui.inventory.GuiContainer; -import net.minecraft.client.renderer.GlStateManager; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.inventory.ClickType; -import net.minecraft.inventory.IInventory; -import net.minecraft.inventory.Slot; -import net.minecraft.item.ItemStack; -import net.minecraft.util.ResourceLocation; -import net.minecraft.util.math.MathHelper; -import net.minecraftforge.fml.client.config.GuiUtils; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; -import org.lwjgl.input.Keyboard; -import org.lwjgl.input.Mouse; - -import java.io.IOException; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; - -@SideOnly(Side.CLIENT) -public class GuiMasonryBench extends GuiContainer implements IExtendedContainer -{ - private static final ResourceLocation MASONRY_BENCH = AetherCore.getResource("textures/gui/inventory/masonry_bench.png"); - - private static final ResourceLocation SCROLL_BAR = AetherCore.getResource("textures/gui/inventory/scroll_bar.png"); - - private final int ySize = 206; - - private final List<GuiMasonryCraftingOption> options = new ArrayList<>(20); - - public final List<ItemStack> recipes = Lists.newArrayList(); - - private final InventoryPlayer playerInventory; - - private final IInventory tileMasonry; - - private ContainerMasonryBench container; - - public List<String> hoverDescription; - - private ItemStack hoveredStack; - - private float currentScroll; - - private boolean isScrolling; - - private boolean wasClicking; - - public GuiMasonryBench(EntityPlayer player, InventoryPlayer playerInv, IInventory masonryInv) - { - super(new ContainerMasonryBench(player, playerInv, masonryInv)); - this.playerInventory = playerInv; - this.tileMasonry = masonryInv; - this.container = new ContainerMasonryBench(player, playerInv, masonryInv); - - this.allowUserInput = true; - } - - @Override - public void initGui() - { - super.initGui(); - - int guiLeft = 134 + ((this.width - this.xSize) / 2); - int guiTop = ((this.height - this.ySize) / 2) - 3; - - for (int i = 0; i < 5; ++i) - { - for (int j = 0; j < 4; ++j) - { - GuiMasonryCraftingOption option = new GuiMasonryCraftingOption(j + i * 4, guiLeft - 126 + (j * 18), guiTop + (21 + i * 18), ItemStack.EMPTY); - - this.buttonList.add(option); - this.options.add(j + i * 4, option); - } - } - - this.updateCraftingOptions(); - } - - @Override - public void drawScreen(int mouseX, int mouseY, float partialTicks) - { - this.drawDefaultBackground(); - - boolean flag = Mouse.isButtonDown(0); - int i = this.guiLeft; - int j = this.guiTop; - int k = i - 48; - int l = j + 22; - int i1 = k + 14; - int j1 = l + 108; - - if (!this.wasClicking && flag && mouseX >= k && mouseY >= l && mouseX < i1 && mouseY < j1) - { - this.isScrolling = this.needsScrollBars(); - } - - if (!flag) - { - this.isScrolling = false; - } - - this.wasClicking = flag; - - if (this.isScrolling) - { - this.currentScroll = ((float) (mouseY - l) - 7.5F) / ((float) (j1 - l) - 15.0F); - this.currentScroll = MathHelper.clamp(this.currentScroll, 0.0F, 1.0F); - - this.scrollTo(this.currentScroll); - } - - super.drawScreen(mouseX, mouseY, partialTicks); - - if (this.hoverDescription != null && this.hoverDescription.size() > 0) - { - if (this.hoveredStack != null) - { - GuiUtils.preItemToolTip(this.hoveredStack); - GuiUtils.drawHoveringText(this.hoverDescription, mouseX, mouseY, width, height, -1, - Minecraft.getMinecraft().fontRenderer); - GuiUtils.postItemToolTip(); - } - else - { - GuiUtils.drawHoveringText(this.hoverDescription, mouseX, mouseY, width, height, -1, - Minecraft.getMinecraft().fontRenderer); - } - } - - this.hoverDescription = null; - - this.renderHoveredToolTip(mouseX, mouseY); - } - - @Override - public void updateScreen() - { - super.updateScreen(); - - if (!this.container.inventorySlots.get(0).getHasStack()) - { - this.container.setOutput(ItemStack.EMPTY); - this.updateCraftingOptions(); - } - - if (this.container.inventorySlots.get(0).getHasStack()) - { - this.updateCraftingOptions(); - } - } - - @Override - protected void drawGuiContainerForegroundLayer(int mouseX, int mouseY) - { - String s = this.tileMasonry.getDisplayName().getUnformattedText(); - this.fontRenderer.drawString(s, this.xSize / 2 - this.fontRenderer.getStringWidth(s) / 2, -14, 4210752); - this.fontRenderer.drawString(this.playerInventory.getDisplayName().getUnformattedText(), 8, this.ySize - 116 + 2, 4210752); - } - - @Override - protected void drawGuiContainerBackgroundLayer(float partialTicks, int mouseX, int mouseY) - { - GlStateManager.color(1.0F, 1.0F, 1.0F, 1.0F); - this.mc.getTextureManager().bindTexture(MASONRY_BENCH); - int x = (this.width - this.xSize) / 2; - int y = (this.height - this.ySize) / 2; - this.drawTexturedModalRect(x, y, 0, 0, this.xSize, this.ySize); - - int i = 88 + this.guiLeft; - int j = this.guiTop - 2; - int k = j + 108; - this.mc.getTextureManager().bindTexture(SCROLL_BAR); - - this.drawTexturedModalRect(i, j + (int) ((float) (k - j - 17) * this.currentScroll), 232 + (this.needsScrollBars() ? 0 : 12), 0, 12, 15); - } - - @Override - protected void mouseReleased(int mouseX, int mouseY, int state) - { - super.mouseReleased(mouseX, mouseY, state); - - if (this.getSlotUnderMouse() != null && this.getSlotUnderMouse().slotNumber == 0) - { - this.updateCraftingOptions(); - } - - if (this.getSlotUnderMouse() != null && this.getSlotUnderMouse().slotNumber == 1) - { - if (this.container.inventorySlots.get(1).getHasStack()) - { - if (!Keyboard.isKeyDown(Keyboard.KEY_LSHIFT)) - { - NetworkingAether.sendPacketToServer(new PacketMasonryProcessOutput()); - - ItemStack outputStack = this.container.inventorySlots.get(1).getStack(); - - if (this.mc.player.inventory.getItemStack().isEmpty()) - { - this.mc.player.inventory.setItemStack(outputStack.copy()); - } - else if (ItemHelper.getKeyForItemStack(this.mc.player.inventory.getItemStack()) == ItemHelper - .getKeyForItemStack(this.container.inventorySlots.get(1).getStack())) - { - this.mc.player.inventory.getItemStack().setCount(this.mc.player.inventory.getItemStack().getCount() + 1); - } - - this.container.inventorySlots.get(0).decrStackSize(1); - } - else - { - NetworkingAether.sendPacketToServer(new PacketMasonryProcessOutputShift()); - - ItemStack newOutputStack = this.container.inventorySlots.get(1).getStack().copy(); - newOutputStack.setCount(this.container.inventorySlots.get(0).getStack().getCount()); - - this.mc.player.inventory.addItemStackToInventory(newOutputStack); - - this.container.inventorySlots.get(0).decrStackSize(this.container.inventorySlots.get(0).getStack().getCount()); - } - } - } - } - - @Override - protected void handleMouseClick(Slot slotIn, int slotId, int mouseButton, ClickType type) - { - super.handleMouseClick(slotIn, slotId, mouseButton, type); - - if (slotIn != null && slotIn.slotNumber == 1) - { - this.updateCraftingOptions(); - } - } - - @Override - protected void actionPerformed(GuiButton button) - { - if (button instanceof GuiMasonryCraftingOption) - { - GuiMasonryCraftingOption option = (GuiMasonryCraftingOption) button; - - if (option.getOutputItemStack() != null) - { - if (option.getOutputItemStack() != this.container.inventorySlots.get(1).getStack()) - { - this.container.setOutput(option.getOutputItemStack().copy()); - } - } - } - } - - @Override - public void handleMouseInput() throws IOException - { - super.handleMouseInput(); - - int i = Mouse.getEventDWheel(); - - if (i != 0) - { - if (this.needsScrollBars()) - { - int j = (this.recipes.size() + 4 - 1) / 4 - 6; - - if (i > 0) - { - i = 1; - } - - if (i < 0) - { - i = -1; - } - - this.currentScroll = (float) ((double) this.currentScroll - (double) i / (double) j); - this.currentScroll = MathHelper.clamp(this.currentScroll, 0.0F, 1.0F); - - this.scrollTo(this.currentScroll); - } - } - } - - private void scrollTo(float scroll) - { - int i = (this.recipes.size() + 4 - 1) / 4 - 6; - int j = (int) ((double) (scroll * (float) i) + 0.5D); - - if (j < 0) - { - j = 0; - } - - for (int k = 0; k < 5; ++k) - { - for (int l = 0; l < 4; ++l) - { - int i1 = l + (k + j) * 4; - - if (i1 >= 0 && i1 < this.recipes.size()) - { - this.options.get(l + k * 4).setOutputItemStack(this.recipes.get(i1)); - } - else - { - this.options.get(l + k * 4).setOutputItemStack(ItemStack.EMPTY); - } - } - } - } - - private boolean canScroll() - { - return this.recipes.size() > this.options.size(); - } - - private boolean needsScrollBars() - { - return this.canScroll(); - } - - private void updateCraftingOptions() - { - this.recipes.clear(); - - if (!this.tileMasonry.getStackInSlot(0).isEmpty()) - { - ItemStack[] outputStack = MasonryRecipes.instance().getOutput(this.tileMasonry.getStackInSlot(0)); - - if (outputStack != null) - { - this.recipes.addAll(Arrays.asList(outputStack)); - } - } - - this.currentScroll = 0.0F; - this.scrollTo(0.0F); - } - - @Override - public void setHoveredDescription(ItemStack stack, List<String> desc) - { - this.hoveredStack = stack; - this.hoverDescription = desc; - } -} \ No newline at end of file diff --git a/src/main/java/com/gildedgames/aether/client/gui/container/masonry_bench/GuiMasonryCraftingOption.java b/src/main/java/com/gildedgames/aether/client/gui/container/masonry_bench/GuiMasonryCraftingOption.java deleted file mode 100644 index d2927d2d7e..0000000000 --- a/src/main/java/com/gildedgames/aether/client/gui/container/masonry_bench/GuiMasonryCraftingOption.java +++ /dev/null @@ -1,83 +0,0 @@ -package com.gildedgames.aether.client.gui.container.masonry_bench; - -import com.gildedgames.aether.client.gui.container.IExtendedContainer; -import com.gildedgames.aether.common.AetherCore; -import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.GuiButton; -import net.minecraft.client.gui.GuiScreen; -import net.minecraft.client.renderer.GlStateManager; -import net.minecraft.client.renderer.RenderHelper; -import net.minecraft.client.util.ITooltipFlag; -import net.minecraft.item.ItemStack; -import net.minecraft.util.ResourceLocation; - -public class GuiMasonryCraftingOption extends GuiButton -{ - private static final ResourceLocation OPTION = AetherCore.getResource("textures/gui/inventory/crafting_option.png"); - - private static final ResourceLocation OPTION_HOVER = AetherCore.getResource("textures/gui/inventory/crafting_option_hover.png"); - - private ItemStack itemStack; - - public GuiMasonryCraftingOption(int buttonId, int x, int y, ItemStack itemStack) - { - super(buttonId, x, y, 18, 18, ""); - - this.itemStack = itemStack; - } - - public void setOutputItemStack(ItemStack stack) - { - this.itemStack = stack; - } - - public ItemStack getOutputItemStack() - { - return this.itemStack; - } - - @Override - public void drawButton(Minecraft mc, int mouseX, int mouseY, float partialTicks) - { - if (!this.itemStack.isEmpty()) - { - this.hovered = mouseX >= this.x && mouseY >= this.y && mouseX < this.x + this.width && mouseY < this.y + this.height; - - if (!this.hovered) - { - Minecraft.getMinecraft().getTextureManager().bindTexture(OPTION); - } - else - { - Minecraft.getMinecraft().getTextureManager().bindTexture(OPTION_HOVER); - } - drawModalRectWithCustomSizedTexture(this.x, this.y, 0, 0, this.width, this.height, 18, 18); - - GlStateManager.enableRescaleNormal(); - RenderHelper.enableGUIStandardItemLighting(); - GlStateManager.enableDepth(); - Minecraft.getMinecraft().getRenderItem().renderItemIntoGUI(this.itemStack, this.x + 1, this.y + 1); - RenderHelper.disableStandardItemLighting(); - GlStateManager.disableRescaleNormal(); - - if (this.hovered) - { - GuiScreen gui = Minecraft.getMinecraft().currentScreen; - - if (gui instanceof IExtendedContainer) - { - IExtendedContainer extendedGui = (IExtendedContainer) gui; - - extendedGui.setHoveredDescription(this.itemStack, - this.itemStack.getTooltip(Minecraft.getMinecraft().player, Minecraft.getMinecraft().gameSettings.advancedItemTooltips ? - ITooltipFlag.TooltipFlags.ADVANCED : - ITooltipFlag.TooltipFlags.NORMAL)); - } - } - - GlStateManager.pushMatrix(); - GlStateManager.translate(0.0F, 0.0F, 300.0F); - GlStateManager.popMatrix(); - } - } -} diff --git a/src/main/java/com/gildedgames/aether/client/gui/container/simple_crafting/GuiCounterButton.java b/src/main/java/com/gildedgames/aether/client/gui/container/simple_crafting/GuiCounterButton.java deleted file mode 100644 index e56161b34a..0000000000 --- a/src/main/java/com/gildedgames/aether/client/gui/container/simple_crafting/GuiCounterButton.java +++ /dev/null @@ -1,33 +0,0 @@ -package com.gildedgames.aether.client.gui.container.simple_crafting; - -import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.Gui; -import net.minecraft.client.gui.GuiButton; -import net.minecraft.util.ResourceLocation; - -public class GuiCounterButton extends GuiButton -{ - - private final ResourceLocation texture; - - public GuiCounterButton(int buttonId, int x, int y, ResourceLocation texture) - { - super(buttonId, x, y, 10, 7, ""); - - this.texture = texture; - } - - @Override - public void drawButton(Minecraft mc, int mouseX, int mouseY, float partialTicks) - { - if (this.visible) - { - this.hovered = - mouseX >= this.x && mouseY >= this.y && mouseX < this.x + this.width && mouseY < this.y + this.height; - - Minecraft.getMinecraft().getTextureManager().bindTexture(this.texture); - Gui.drawModalRectWithCustomSizedTexture(this.x, this.y, 0, 0, 10, 7, 10, 7); - } - } - -} diff --git a/src/main/java/com/gildedgames/aether/client/gui/container/simple_crafting/GuiCraftingOption.java b/src/main/java/com/gildedgames/aether/client/gui/container/simple_crafting/GuiCraftingOption.java deleted file mode 100644 index 07efb62822..0000000000 --- a/src/main/java/com/gildedgames/aether/client/gui/container/simple_crafting/GuiCraftingOption.java +++ /dev/null @@ -1,104 +0,0 @@ -package com.gildedgames.aether.client.gui.container.simple_crafting; - -import com.gildedgames.aether.api.recipes.simple.ISimpleRecipe; -import com.gildedgames.aether.client.gui.container.IExtendedContainer; -import com.gildedgames.aether.common.AetherCore; -import com.gildedgames.aether.common.util.helpers.RecipeUtil; -import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.Gui; -import net.minecraft.client.gui.GuiButton; -import net.minecraft.client.gui.GuiScreen; -import net.minecraft.client.renderer.GlStateManager; -import net.minecraft.client.renderer.RenderHelper; -import net.minecraft.client.util.ITooltipFlag; -import net.minecraft.util.ResourceLocation; -import net.minecraft.util.text.TextFormatting; - -public class GuiCraftingOption extends GuiButton -{ - - private static final ResourceLocation DARK_OVERLAY = AetherCore.getResource("textures/gui/inventory/dark_slot_overlay.png"); - - private ISimpleRecipe recipe; - - public GuiCraftingOption(int buttonId, int x, int y, ISimpleRecipe recipe) - { - super(buttonId, x, y, 18, 18, ""); - - this.recipe = recipe; - } - - public ISimpleRecipe getRecipe() - { - return this.recipe; - } - - public void setRecipe(ISimpleRecipe recipe) - { - this.recipe = recipe; - } - - @Override - public void drawButton(Minecraft mc, int mouseX, int mouseY, float partialTicks) - { - //super.drawButton(mc, mouseX, mouseY); - - if (this.visible && this.recipe != null) - { - this.hovered = - mouseX >= this.x && mouseY >= this.y && mouseX < this.x + this.width && mouseY < this.y + this.height; - - GlStateManager.enableRescaleNormal(); - RenderHelper.enableGUIStandardItemLighting(); - GlStateManager.enableDepth(); - - Minecraft.getMinecraft().getRenderItem().renderItemIntoGUI(this.recipe.getResult(), this.x + 1, this.y + 1); - - RenderHelper.disableStandardItemLighting(); - GlStateManager.disableRescaleNormal(); - - if (this.hovered) - { - GuiScreen gui = Minecraft.getMinecraft().currentScreen; - - if (gui instanceof IExtendedContainer) - { - IExtendedContainer extendedGui = (IExtendedContainer) gui; - - extendedGui.setHoveredDescription(this.recipe.getResult(), - this.recipe.getResult().getTooltip(Minecraft.getMinecraft().player, Minecraft.getMinecraft().gameSettings.advancedItemTooltips ? - ITooltipFlag.TooltipFlags.ADVANCED : - ITooltipFlag.TooltipFlags.NORMAL)); - } - } - - GlStateManager.pushMatrix(); - GlStateManager.translate(0.0F, 0.0F, 300.0F); - - int timesCanCraft = RecipeUtil.getTotalTimesCanCraft(Minecraft.getMinecraft().player, this.recipe); - - if (timesCanCraft > 0) - { - String count = (timesCanCraft <= 0 ? TextFormatting.RED : "") + String.valueOf(Math.min(64, timesCanCraft)); - int xOffset = (Math.max(String.valueOf(timesCanCraft).length() - 1, 0)) * -6; - - //this.drawString(Minecraft.getMinecraft().fontRendererObj, count, this.x + 12 + xOffset, this.y + this.height - 8, 0xFFFFFF); - } - - if (!RecipeUtil.canCraft(Minecraft.getMinecraft().player, this.recipe)) - { - mc.getTextureManager().bindTexture(DARK_OVERLAY); - GlStateManager.color(1.0F, 1.0F, 1.0F, 1.0F); - - GlStateManager.enableBlend(); - GlStateManager.tryBlendFuncSeparate(GlStateManager.SourceFactor.SRC_ALPHA, GlStateManager.DestFactor.ONE_MINUS_SRC_ALPHA, - GlStateManager.SourceFactor.ONE, GlStateManager.DestFactor.ZERO); - GlStateManager.blendFunc(GlStateManager.SourceFactor.SRC_ALPHA, GlStateManager.DestFactor.ONE_MINUS_SRC_ALPHA); - Gui.drawModalRectWithCustomSizedTexture(this.x + 1, this.y + 1, 0, 0, 16, 16, 16, 16); - } - - GlStateManager.popMatrix(); - } - } - -} diff --git a/src/main/java/com/gildedgames/aether/client/gui/container/simple_crafting/GuiRequiredMaterial.java b/src/main/java/com/gildedgames/aether/client/gui/container/simple_crafting/GuiRequiredMaterial.java deleted file mode 100644 index ea9e25597a..0000000000 --- a/src/main/java/com/gildedgames/aether/client/gui/container/simple_crafting/GuiRequiredMaterial.java +++ /dev/null @@ -1,127 +0,0 @@ -package com.gildedgames.aether.client.gui.container.simple_crafting; - -import com.gildedgames.aether.client.gui.container.IExtendedContainer; -import com.gildedgames.aether.common.recipes.simple.OreDictionaryRequirement; -import com.gildedgames.aether.common.util.helpers.RecipeUtil; -import net.minecraft.client.Minecraft; -import net.minecraft.client.audio.SoundHandler; -import net.minecraft.client.gui.GuiButton; -import net.minecraft.client.gui.GuiScreen; -import net.minecraft.client.renderer.GlStateManager; -import net.minecraft.client.renderer.RenderHelper; -import net.minecraft.client.util.ITooltipFlag; -import net.minecraft.item.ItemStack; -import net.minecraft.util.text.TextFormatting; -import net.minecraftforge.oredict.OreDictionary; - -public class GuiRequiredMaterial extends GuiButton -{ - - public boolean resultStack; - - private Object required; - - private ItemStack displayStack; - - public GuiRequiredMaterial(int buttonId, int x, int y, ItemStack stack) - { - super(buttonId, x, y, 18, 18, ""); - - this.setRequiredObject(stack); - } - - public Object getRequiredObject() - { - return this.required; - } - - public void setRequiredObject(Object obj) - { - if (obj instanceof ItemStack) - { - ItemStack stack = (ItemStack) obj; - - if (stack.getItemDamage() == OreDictionary.WILDCARD_VALUE) - { - this.required = stack; - this.displayStack = new ItemStack(stack.getItem(), stack.getCount()); - return; - } - } - - this.required = obj; - - if (obj instanceof OreDictionaryRequirement) - { - OreDictionaryRequirement ore = (OreDictionaryRequirement) obj; - this.displayStack = OreDictionary.getOres(((OreDictionaryRequirement) obj).getKey()).get(0).copy(); - this.displayStack.setCount(ore.getCount()); - } - else if (obj instanceof ItemStack) - { - ItemStack stack = (ItemStack) obj; - this.displayStack = stack.copy(); - } - else - { - this.displayStack = null; - } - } - - @Override - public void drawButton(Minecraft mc, int mouseX, int mouseY, float partialTicks) - { - //super.drawButton(mc, mouseX, mouseY); - - if (this.visible && this.displayStack != null) - { - this.hovered = - mouseX >= this.x && mouseY >= this.y && mouseX < this.x + this.width && mouseY < this.y + this.height; - - GlStateManager.enableRescaleNormal(); - RenderHelper.enableGUIStandardItemLighting(); - GlStateManager.enableDepth(); - - Minecraft.getMinecraft().getRenderItem().renderItemIntoGUI(this.displayStack, this.x + 1, this.y + 1); - - RenderHelper.disableStandardItemLighting(); - GlStateManager.disableRescaleNormal(); - - GlStateManager.pushMatrix(); - GlStateManager.translate(0.0F, 0.0F, 300.0F); - - if (!this.resultStack || this.displayStack.getCount() > 1) - { - boolean hasEnough = RecipeUtil.hasEnoughOfMaterial(Minecraft.getMinecraft().player, this.required) || this.resultStack; - - int xOffset = (Math.max(String.valueOf(this.displayStack.getCount()).length() - 1, 0)) * -6; - - this.drawString(Minecraft.getMinecraft().fontRenderer, (!hasEnough ? TextFormatting.RED : "") + String.valueOf(this.displayStack.getCount()), - this.x + 12 + xOffset, this.y + this.height - 8, 0xFFFFFF); - } - - if (this.hovered) - { - GuiScreen gui = Minecraft.getMinecraft().currentScreen; - - if (gui instanceof IExtendedContainer) - { - IExtendedContainer extendedGui = (IExtendedContainer) gui; - extendedGui.setHoveredDescription(this.displayStack, this.displayStack.getTooltip(Minecraft.getMinecraft().player, - Minecraft.getMinecraft().gameSettings.advancedItemTooltips ? - ITooltipFlag.TooltipFlags.ADVANCED : - ITooltipFlag.TooltipFlags.NORMAL)); - } - } - - GlStateManager.popMatrix(); - } - } - - @Override - public void playPressSound(SoundHandler soundHandlerIn) - { - - } - -} diff --git a/src/main/java/com/gildedgames/aether/client/gui/container/simple_crafting/GuiXButton.java b/src/main/java/com/gildedgames/aether/client/gui/container/simple_crafting/GuiXButton.java deleted file mode 100644 index 1fb74499cb..0000000000 --- a/src/main/java/com/gildedgames/aether/client/gui/container/simple_crafting/GuiXButton.java +++ /dev/null @@ -1,32 +0,0 @@ -package com.gildedgames.aether.client.gui.container.simple_crafting; - -import com.gildedgames.aether.common.AetherCore; -import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.Gui; -import net.minecraft.client.gui.GuiButton; -import net.minecraft.util.ResourceLocation; - -public class GuiXButton extends GuiButton -{ - - private static final ResourceLocation X_BUTTON = AetherCore.getResource("textures/gui/inventory/x_button.png"); - - public GuiXButton(int buttonId, int x, int y) - { - super(buttonId, x, y, 9, 9, ""); - } - - @Override - public void drawButton(Minecraft mc, int mouseX, int mouseY, float partialTicks) - { - if (this.visible) - { - this.hovered = - mouseX >= this.x && mouseY >= this.y && mouseX < this.x + this.width && mouseY < this.y + this.height; - - Minecraft.getMinecraft().getTextureManager().bindTexture(X_BUTTON); - Gui.drawModalRectWithCustomSizedTexture(this.x, this.y, 0, 0, 9, 9, 9, 9); - } - } - -} diff --git a/src/main/java/com/gildedgames/aether/client/gui/dialog/ContainerShop.java b/src/main/java/com/gildedgames/aether/client/gui/dialog/ContainerShop.java deleted file mode 100644 index 46ae91147c..0000000000 --- a/src/main/java/com/gildedgames/aether/client/gui/dialog/ContainerShop.java +++ /dev/null @@ -1,778 +0,0 @@ -package com.gildedgames.aether.client.gui.dialog; - -import com.gildedgames.aether.api.AetherAPI; -import com.gildedgames.aether.api.dialog.IDialogSlide; -import com.gildedgames.aether.api.dialog.IDialogSlideRenderer; -import com.gildedgames.aether.api.shop.*; -import com.gildedgames.aether.client.gui.container.IExtendedContainer; -import com.gildedgames.aether.client.gui.util.GuiItemStack; -import com.gildedgames.aether.common.AetherCelebrations; -import com.gildedgames.aether.common.AetherCore; -import com.gildedgames.aether.common.capabilities.entity.player.PlayerAether; -import com.gildedgames.aether.common.network.NetworkingAether; -import com.gildedgames.aether.common.network.packets.PacketShopBack; -import com.gildedgames.aether.common.network.packets.PacketShopBuy; -import com.gildedgames.aether.common.network.packets.PacketShopSell; -import com.gildedgames.aether.common.util.helpers.ItemHelper; -import com.gildedgames.aether.common.util.helpers.MathUtil; -import com.gildedgames.orbis.lib.client.gui.data.Text; -import com.gildedgames.orbis.lib.client.gui.util.GuiAbstractButton; -import com.gildedgames.orbis.lib.client.gui.util.GuiTexture; -import com.gildedgames.orbis.lib.client.gui.util.gui_library.GuiElement; -import com.gildedgames.orbis.lib.client.gui.util.gui_library.GuiViewer; -import com.gildedgames.orbis.lib.client.gui.util.gui_library.IGuiContext; -import com.gildedgames.orbis.lib.client.gui.util.vanilla.GuiButtonVanilla; -import com.gildedgames.orbis.lib.client.rect.Dim2D; -import com.gildedgames.orbis.lib.client.rect.Pos2D; -import com.gildedgames.orbis.lib.util.InputHelper; -import com.google.common.collect.Lists; -import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.Gui; -import net.minecraft.client.renderer.GlStateManager; -import net.minecraft.client.resources.I18n; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraft.util.ResourceLocation; -import net.minecraft.util.math.MathHelper; -import net.minecraft.util.text.TextComponentTranslation; -import net.minecraftforge.client.event.GuiScreenEvent; -import net.minecraftforge.common.MinecraftForge; -import net.minecraftforge.fml.client.config.GuiUtils; -import org.lwjgl.input.Keyboard; -import org.lwjgl.input.Mouse; - -import java.io.IOException; -import java.util.List; -import java.util.Random; - -public class ContainerShop extends GuiViewer implements ICurrencyListener, IExtendedContainer -{ - private static final ResourceLocation INVENTORY = AetherCore.getResource("textures/gui/shop/inventory.png"); - - private static final ResourceLocation STOCK = AetherCore.getResource("textures/gui/shop/stock.png"); - - private static final ResourceLocation UP_ARROW = AetherCore.getResource("textures/gui/shop/up_button.png"); - - private static final ResourceLocation DOWN_ARROW = AetherCore.getResource("textures/gui/shop/down_button.png"); - - private static final ResourceLocation UP_ARROW_HOVER = AetherCore.getResource("textures/gui/shop/up_button_hover.png"); - - private static final ResourceLocation DOWN_ARROW_HOVER = AetherCore.getResource("textures/gui/shop/down_button_hover.png"); - - private static final ResourceLocation LOCK = AetherCore.getResource("textures/gui/shop/lock.png"); - - private static final ResourceLocation UNLOCK = AetherCore.getResource("textures/gui/shop/unlock.png"); - - private static final ResourceLocation GILT_BAG = AetherCore.getResource("textures/gui/shop/gilt_bag.png"); - - private static final ResourceLocation HOLIDAY_NOTICE = AetherCore.getResource("textures/gui/shop/shop_notice.png"); - - private static final ResourceLocation HOLIDAY_ICON = AetherCore.getResource("textures/gui/shop/holiday_icon.png"); - - private static int buyCount = 1, prevBuyCount = 1; - - private static boolean isCountLocked; - - private final IDialogSlide slide; - - private final IDialogSlideRenderer renderer; - - private final IShopInstance shopInstance; - - private final List<GuiShopBuy> buys = Lists.newArrayList(); - - private final com.gildedgames.aether.common.containers.ContainerShop container; - - private final PlayerAether playerAether; - - private final int shopIndex; - - private int buyCountUnlocked = 1, prevBuyCountUnlocked = 1; - - private GuiButtonVanilla sell, buy; - - private IGuiCurrencyValue playerCoins, sellCoins, buyCoins; - - private ItemStack lastSellStack; - - private int lastSellStackCount; - - private GuiItemStack stackGui; - - private com.gildedgames.orbis.lib.client.gui.util.GuiTextBox buyTitle; - - private GuiTextBox npcDialogue, npcGreeting; - - private int selectedBuy = -1, prevBuy = -1; - - private GuiButtonVanilla back; - - private GuiAbstractButton upArrow, downArrow; - - private GuiButtonVanilla lockButton; - - private GuiTexture lock, unlock, giltBag; - - private boolean upArrowHeld, downArrowHeld, pressLongEnough; - - private long lastBuyCountChangeTime; - - private List<String> hoverDescription; - - private ItemStack hoveredStack; - - private GuiTexture holidayNotice, holidayIcon; - - private com.gildedgames.orbis.lib.client.gui.util.GuiTextBox holidayNoticeText; - - public ContainerShop(GuiViewer prevViewer, EntityPlayer player, IDialogSlide slide, IDialogSlideRenderer renderer, IShopInstance shopInstance, int shopIndex) - { - super(new GuiElement(Dim2D.flush(), false), prevViewer, new com.gildedgames.aether.common.containers.ContainerShop(player.inventory, shopInstance)); - - this.shopIndex = shopIndex; - - this.setDrawDefaultBackground(false); - - this.container = (com.gildedgames.aether.common.containers.ContainerShop) this.inventorySlots; - - this.slide = slide; - this.renderer = renderer; - this.shopInstance = shopInstance; - - this.playerAether = PlayerAether.getPlayer(player); - } - - private IShopBuy getSelectedBuy() - { - return this.selectedBuy == -1 ? null : this.shopInstance.getStock().get(this.selectedBuy); - } - - @Override - public void initContainerSize() - { - Pos2D center = InputHelper.getCenter().clone().addX(15).flush(); - - this.guiLeft = (int) center.x() - 189 - 7; - this.guiTop = this.height - 198 - 14; - - this.xSize = 385; - this.ySize = 180; - } - - @Override - public void onGuiClosed() - { - super.onGuiClosed(); - - this.shopInstance.getCurrencyType().unlistenForCurrency(this.playerAether, this); - } - - @Override - public void build(IGuiContext context) - { - this.getViewing().dim().mod().width(300).height(300).flush(); - - Pos2D center = InputHelper.getCenter().clone().addX(17).flush(); - - this.holidayNotice = new GuiTexture(Dim2D.build().width(110).height(50).flush(), HOLIDAY_NOTICE); - - this.holidayIcon = new GuiTexture(Dim2D.build().width(14).height(16).x(8).y(18).flush(), HOLIDAY_ICON); - - this.holidayNoticeText = new com.gildedgames.orbis.lib.client.gui.util.GuiTextBox(Dim2D.build().width(80).height(40).x(27).y(17).flush(), false, - new Text(new TextComponentTranslation("edison.shop.holiday_notice"), 1.0F)); - - this.sellCoins = this.shopInstance.getCurrencyType() - .createSellItemCurrencyValueGui(Dim2D.build().center(true).pos(center).y(this.height).addX(23).addY(-197).flush()); - this.sellCoins.state().setVisible(false); - - this.buyCoins = this.shopInstance.getCurrencyType() - .createBuyItemCurrencyValueGui(Dim2D.build().center(true).pos(center).y(this.height).addX(-167).addY(-157).flush()); - this.buyCoins.state().setVisible(false); - - this.playerCoins = this.shopInstance.getCurrencyType() - .createCurrencyValueGui(Dim2D.build().centerY(true).pos(center).y(this.height).addX(168).addY(-118).flush()); - this.playerCoins.state().setVisible(true); - - GuiTexture inventory = new GuiTexture(Dim2D.build().center(true).width(176).height(120).pos(center).y(this.height).addX(75).addY(-157F).flush(), - INVENTORY); - GuiTexture stock = new GuiTexture(Dim2D.build().center(true).width(176).height(80).pos(center).y(this.height).addX(-115).addY(-137).flush(), STOCK); - - this.sell = new GuiButtonVanilla(Dim2D.build().width(72).height(20).pos(center).y(this.height).addX(84).addY(-207).flush()); - - this.sell.getInner().displayString = I18n.format("aether.shop.sell"); - this.sell.getInner().enabled = false; - - if (AetherCelebrations.isEdisonNewYearsSale(this.shopInstance)) - { - context.addChildren(this.holidayNotice, this.holidayNoticeText, this.holidayIcon); - } - - context.addChildren(stock, inventory, this.sell); - - this.stackGui = new GuiItemStack(Dim2D.build().pos(center).y(this.height).addX(-132).addY(-166).scale(1.0F).flush()); - this.buy = new GuiButtonVanilla(Dim2D.build().width(44).height(20).pos(center).y(this.height).addX(-106).addY(-167).flush()); - - this.buy.getInner().displayString = I18n.format("aether.shop.buy", isCountLocked ? buyCount : this.buyCountUnlocked); - this.buy.state().setEnabled(false); - - this.back = new GuiButtonVanilla(Dim2D.build().width(20).height(20).pos(center).y(this.height).addX(-236).addY(-125).flush()); - - this.back.getInner().displayString = "<"; - - context.addChildren(this.stackGui, this.buy, this.back); - - int baseBoxSize = 350; - final boolean resize = this.width - 40 > baseBoxSize; - - this.npcDialogue = new GuiTextBox(0, resize ? (this.width / 2) - (baseBoxSize / 2) : 20, this.height - 85, baseBoxSize, 70); - - int greetingBoxSize = 350; - final boolean greetingResize = this.width - 40 > greetingBoxSize; - - this.npcGreeting = new GuiTextBox(1, greetingResize ? (this.width / 2) - (greetingBoxSize / 2) : 20, this.height - 85, greetingBoxSize, 70); - - String greeting = MathUtil.getRandomElement(this.shopInstance.getUnlocalizedGreetings(), new Random()); - - this.npcGreeting.setText(new TextComponentTranslation(greeting)); - - this.buyTitle = new com.gildedgames.orbis.lib.client.gui.util.GuiTextBox( - Dim2D.build().centerX(true).pos(center).width(60).height(50).y(this.height).addX(-178).addY(-40).flush(), true); - - this.buttonList.add(this.npcDialogue); - this.buttonList.add(this.npcGreeting); - - //this.addChildren(this.buyTitle); - - for (int i = 0; i < this.shopInstance.getStock().size(); i++) - { - GuiShopBuy gui = new GuiShopBuy( - Dim2D.build().width(18).height(18).pos(center).y(this.height).addX(-196 + (i * 18) - ((i / 9) * 162)).addY(-140F + ((i / 9) * 18)).flush(), - i, - this.shopInstance); - this.buys.add(gui); - - context.addChildren(gui); - } - - this.upArrow = new GuiAbstractButton(Dim2D.build().width(15).height(10).pos(center).y(this.height).addX(-49).addY(-167).flush(), - new GuiTexture(Dim2D.build().width(15).height(10).flush(), UP_ARROW), - new GuiTexture(Dim2D.build().width(15).height(10).flush(), UP_ARROW_HOVER), - new GuiTexture(Dim2D.build().width(15).height(10).flush(), UP_ARROW)); - - this.downArrow = new GuiAbstractButton(Dim2D.build().width(15).height(10).pos(center).y(this.height).addX(-49).addY(-157).flush(), - new GuiTexture(Dim2D.build().width(15).height(10).flush(), DOWN_ARROW), - new GuiTexture(Dim2D.build().width(15).height(10).flush(), DOWN_ARROW_HOVER), - new GuiTexture(Dim2D.build().width(15).height(10).flush(), DOWN_ARROW)); - - this.lockButton = new GuiButtonVanilla(Dim2D.build().width(14).height(20).pos(center).y(this.height).addX(-63).addY(-167).flush()); - - this.lock = new GuiTexture(Dim2D.build().center(true).height(16).width(16).pos(center).y(this.height).addX(-65 + 9).addY(-167 + 10).flush(), LOCK); - this.unlock = new GuiTexture(Dim2D.build().center(true).height(16).width(16).pos(center).y(this.height).addX(-65 + 9).addY(-167 + 10).flush(), UNLOCK); - - context.addChildren(this.playerCoins); - - this.giltBag = new GuiTexture( - Dim2D.build().center(true).height(16).width(16).pos(center).y(this.height) - .x(this.playerCoins.state().dim().x() + (this.playerCoins.state().dim().width() / 2) - 1) - .addY(-138).scale(1.5F).flush(), - GILT_BAG); - - this.playerCoins.setCurrencyValue(this.shopInstance.getCurrencyType().getValue(this.playerAether)); - - context.addChildren(this.upArrow, this.downArrow, this.sellCoins, this.buyCoins, this.lockButton, this.lock, this.unlock, this.giltBag); - } - - public void addBuyCount(int buyCount) - { - if (isCountLocked) - { - ContainerShop.buyCount = MathHelper.clamp(ContainerShop.buyCount + buyCount, 1, 64); - - if (this.getSelectedBuy() != null) - { - int count = (int) Math - .min(this.getSelectedBuy().getStock(), Math.min(ContainerShop.buyCount, Math.min(this.getSelectedBuy().getItemStack().getMaxStackSize(), - this.shopInstance.getCurrencyType().getValue(this.playerAether) / ShopUtil - .getFilteredPrice(this.shopInstance, this.getSelectedBuy())))); - - if (count <= 0) - { - count = 1; - } - - if (this.stackGui.getItemStack() != null) - { - this.stackGui.getItemStack().setCount(count); - } - - int value = ShopUtil.getFilteredPrice(this.shopInstance, this.getSelectedBuy()) * count; - - this.buyCoins.setCurrencyValue(value); - this.buyCoins.setNonFilteredCurrencyValue(this.getSelectedBuy().getPrice() * count); - this.buyCoins.state().setVisible(true); - } - } - else - { - if (this.getSelectedBuy() != null) - { - int max = (int) Math.min(this.getSelectedBuy().getStock(), Math.min(this.getSelectedBuy().getItemStack().getMaxStackSize(), - this.shopInstance.getCurrencyType().getValue(this.playerAether) / ShopUtil.getFilteredPrice(this.shopInstance, this.getSelectedBuy()))); - - if (max <= 0) - { - max = 1; - } - - this.buyCountUnlocked = MathHelper.clamp(this.buyCountUnlocked + buyCount, 1, max); - - if (this.stackGui.getItemStack() != null) - { - this.stackGui.getItemStack().setCount(this.buyCountUnlocked); - } - - int value = ShopUtil.getFilteredPrice(this.shopInstance, this.getSelectedBuy()) * this.buyCountUnlocked; - - this.buyCoins.setCurrencyValue(value); - this.buyCoins.setNonFilteredCurrencyValue(this.getSelectedBuy().getPrice() * this.buyCountUnlocked); - this.buyCoins.state().setVisible(true); - } - } - } - - @Override - public void drawScreen(final int mouseX, final int mouseY, final float partialTicks) - { - this.shopInstance.getCurrencyType().listenForCurrency(this.playerAether, this); - this.shopInstance.getCurrencyType().update(this.playerAether); - - if (InputHelper.isHovered(this.back)) - { - this.setHoveredDescription(null, Lists.newArrayList(I18n.format("aether.shop.back"))); - } - - this.stackGui.setDrawCount(isCountLocked); - - this.lock.state().setVisible(isCountLocked); - this.unlock.state().setVisible(!isCountLocked); - - if ((this.upArrowHeld || this.downArrowHeld) && !this.pressLongEnough && System.currentTimeMillis() - this.lastBuyCountChangeTime >= 300L) - { - this.lastBuyCountChangeTime = System.currentTimeMillis(); - - this.pressLongEnough = true; - } - - if (this.pressLongEnough) - { - if (System.currentTimeMillis() - this.lastBuyCountChangeTime >= 50L) - { - this.lastBuyCountChangeTime = System.currentTimeMillis(); - - if (this.upArrowHeld) - { - this.addBuyCount(1); - } - else if (this.downArrowHeld) - { - this.addBuyCount(-1); - } - } - } - - this.drawWorldBackground(0); - MinecraftForge.EVENT_BUS.post(new GuiScreenEvent.BackgroundDrawnEvent(this)); - - GlStateManager.pushMatrix(); - - GlStateManager.disableDepth(); - - GlStateManager.translate(0, 0, 100F); - GlStateManager.color(1.0F, 1.0F, 1.0F); - - if (this.slide != null && this.renderer != null) - { - GlStateManager.pushMatrix(); - - GlStateManager.translate(-100F, 0F, 0F); - - this.renderer.draw(this.slide, this.width, this.height, mouseX, mouseY, partialTicks); - GlStateManager.popMatrix(); - } - - GlStateManager.translate(0, 0, 100F); - - Gui.drawRect(0, this.height - 90, this.width, this.height, Integer.MIN_VALUE); - - super.drawScreen(mouseX, mouseY, partialTicks); - - GlStateManager.enableDepth(); - - GlStateManager.popMatrix(); - - if (this.hoverDescription != null && this.hoverDescription.size() > 0) - { - if (this.hoveredStack != null) - { - GuiUtils.preItemToolTip(this.hoveredStack); - GuiUtils.drawHoveringText(this.hoverDescription, mouseX, mouseY, width, height, -1, - Minecraft.getMinecraft().fontRenderer); - GuiUtils.postItemToolTip(); - } - else - { - GuiUtils.drawHoveringText(this.hoverDescription, mouseX, mouseY, width, height, -1, - Minecraft.getMinecraft().fontRenderer); - } - } - - if (InputHelper.isHovered(this.lockButton)) - { - GuiUtils - .drawHoveringText(Lists.newArrayList(I18n.format("aether.shop.lockTooltip")), mouseX, mouseY, this.width, this.height, 120, - Minecraft.getMinecraft().fontRenderer); - } - - this.hoverDescription = null; - - this.renderHoveredToolTip(mouseX, mouseY); - - ItemStack stack = this.container.getSlot(0).getStack(); - - if (stack != this.lastSellStack || stack.getCount() != this.lastSellStackCount) - { - int hash = ItemHelper.getKeyForItemStack(stack); - IShopBuy shopBuy = null; - - for (IShopBuy buy : this.shopInstance.getStock()) - { - int buyHash = ItemHelper.getKeyForItemStack(buy.getItemStack()); - - if (buyHash == hash) - { - shopBuy = buy; - break; - } - } - - double value; - - if (shopBuy != null) - { - value = ShopUtil.getFilteredPrice(this.shopInstance, stack, shopBuy.getSellingPrice()) * (double) stack.getCount(); - this.sellCoins.setNonFilteredCurrencyValue(shopBuy.getSellingPrice() * stack.getCount()); - } - else - { - double originalValue = AetherAPI.content().currency().getValue(stack, this.shopInstance.getCurrencyType().getClass()); - - value = ShopUtil.getFilteredPrice(this.shopInstance, stack, originalValue); - this.sellCoins.setNonFilteredCurrencyValue(originalValue); - } - - this.sellCoins.setCurrencyValue(value); - - this.lastSellStack = stack; - this.lastSellStackCount = stack.getCount(); - - this.sell.state().setEnabled(value >= 1); - this.sellCoins.state().setVisible(true); - } - - if (this.getSelectedBuy() != null) - { - this.npcGreeting.visible = false; - - int maxAllowedWithHeldStack = this.getSelectedBuy().getItemStack().getMaxStackSize() - this.mc.player.inventory.getItemStack().getCount(); - - int amount = Math.min(maxAllowedWithHeldStack, Math.min(buyCount, this.getSelectedBuy().getStock())); - - boolean canAfford = - this.shopInstance.getCurrencyType().getValue(this.playerAether) >= ShopUtil.getFilteredPrice(this.shopInstance, this.getSelectedBuy()); - boolean isHandFree = this.mc.player.inventory.getItemStack().isEmpty(); - boolean isBuyItem = ItemHelper.getKeyForItemStack(this.mc.player.inventory.getItemStack()) == ItemHelper - .getKeyForItemStack(this.getSelectedBuy().getItemStack()); - boolean canStack = this.mc.player.inventory.getItemStack().isStackable(); - boolean isAtStackLimit = this.mc.player.inventory.getItemStack().getCount() >= this.mc.player.inventory.getItemStack().getMaxStackSize(); - boolean hasStock = this.getSelectedBuy().getStock() > 0 && amount > 0; - - this.buy.state() - .setEnabled(hasStock && !isAtStackLimit && canStack && canAfford && (isHandFree || isBuyItem) && this.getSelectedBuy().getStock() > 0); - } - else - { - this.npcGreeting.visible = true; - } - - if (this.getSelectedBuy() != null && this.prevBuy != this.selectedBuy) - { - this.stackGui.setItemStack(this.getSelectedBuy().getItemStack()); - //this.buyTitle.setText(new Text(new TextComponentTranslation(this.getSelectedBuy().getItemStack().getDisplayName()), 1.0F)); - //this.buyTitle.init(); - - String chosenDesc = MathUtil.getRandomElement(this.getSelectedBuy().getUnlocalizedDescriptions(), new Random()); - - this.npcDialogue.setText(new TextComponentTranslation(chosenDesc)); - - this.prevBuy = this.selectedBuy; - - int count = (int) Math - .min(isCountLocked ? ContainerShop.buyCount : this.buyCountUnlocked, Math.min(this.getSelectedBuy().getItemStack().getMaxStackSize(), - this.shopInstance.getCurrencyType().getValue(this.playerAether) / ShopUtil - .getFilteredPrice(this.shopInstance, this.getSelectedBuy()))); - - if (count <= 0) - { - count = 1; - } - - int value = ShopUtil.getFilteredPrice(this.shopInstance, this.getSelectedBuy()) * count; - - this.buyCoins.setCurrencyValue(value); - this.buyCoins.setNonFilteredCurrencyValue(this.getSelectedBuy().getPrice() * count); - this.buyCoins.state().setVisible(true); - } - - if (buyCount != prevBuyCount && isCountLocked) - { - prevBuyCount = buyCount; - - this.buy.getInner().displayString = I18n.format("aether.shop.buy", buyCount); - } - - if (this.buyCountUnlocked != this.prevBuyCountUnlocked && !isCountLocked) - { - this.prevBuyCountUnlocked = this.buyCountUnlocked; - - this.buy.getInner().displayString = I18n.format("aether.shop.buy", this.buyCountUnlocked); - } - } - - @Override - public void drawGuiContainerBackgroundLayer(final float partialTicks, final int mouseX, final int mouseY) - { - - } - - @Override - public void drawDefaultBackground() - { - - } - - @Override - protected void mouseReleased(int mouseX, int mouseY, int state) - { - super.mouseReleased(mouseX, mouseY, state); - - this.upArrowHeld = false; - this.downArrowHeld = false; - this.lastBuyCountChangeTime = 0; - this.pressLongEnough = false; - } - - @Override - protected void mouseClicked(final int mouseX, final int mouseY, final int mouseButton) throws IOException - { - super.mouseClicked(mouseX, mouseY, mouseButton); - - if (InputHelper.isHovered(this.lockButton)) - { - isCountLocked = !isCountLocked; - - if (isCountLocked) - { - this.buy.getInner().displayString = I18n.format("aether.shop.buy", buyCount); - - if (this.getSelectedBuy() != null) - { - int count = (int) Math - .min(this.getSelectedBuy().getStock(), Math.min(ContainerShop.buyCount, Math.min(this.getSelectedBuy().getItemStack().getMaxStackSize(), - this.shopInstance.getCurrencyType().getValue(this.playerAether) / ShopUtil - .getFilteredPrice(this.shopInstance, this.getSelectedBuy())))); - - if (this.stackGui.getItemStack() != null) - { - this.stackGui.getItemStack().setCount(count); - } - - int value = ShopUtil.getFilteredPrice(this.shopInstance, this.getSelectedBuy()) * count; - - this.buyCoins.setCurrencyValue(value); - this.buyCoins.setNonFilteredCurrencyValue(this.getSelectedBuy().getPrice() * count); - this.buyCoins.state().setVisible(true); - } - - this.addBuyCount(0); - } - else - { - this.buy.getInner().displayString = I18n.format("aether.shop.buy", this.buyCountUnlocked); - - if (this.stackGui.getItemStack() != null) - { - this.stackGui.getItemStack().setCount(this.buyCountUnlocked); - } - - if (this.getSelectedBuy() != null) - { - int value = ShopUtil.getFilteredPrice(this.shopInstance, this.getSelectedBuy()) * this.buyCountUnlocked; - - this.buyCoins.setCurrencyValue(value); - this.buyCoins.setNonFilteredCurrencyValue(this.getSelectedBuy().getPrice() * this.buyCountUnlocked); - this.buyCoins.state().setVisible(true); - } - } - } - - if (InputHelper.isHovered(this.upArrow)) - { - this.upArrowHeld = true; - this.addBuyCount(1); - this.lastBuyCountChangeTime = System.currentTimeMillis(); - - if (Keyboard.isKeyDown(Keyboard.KEY_LSHIFT) || Keyboard.isKeyDown(Keyboard.KEY_RSHIFT)) - { - this.addBuyCount(64); - } - } - - if (InputHelper.isHovered(this.downArrow)) - { - this.downArrowHeld = true; - this.addBuyCount(-1); - this.lastBuyCountChangeTime = System.currentTimeMillis(); - - if (Keyboard.isKeyDown(Keyboard.KEY_LSHIFT) || Keyboard.isKeyDown(Keyboard.KEY_RSHIFT)) - { - this.addBuyCount(-64); - } - } - - if (InputHelper.isHovered(this.back)) - { - NetworkingAether.sendPacketToServer(new PacketShopBack()); - } - - if (InputHelper.isHovered(this.buy) && this.buy.state().isEnabled()) - { - int index = 0; - - for (int i = 0; i < this.shopInstance.getStock().size(); i++) - { - IShopBuy shopBuy = this.shopInstance.getStock().get(i); - - if (shopBuy == this.getSelectedBuy()) - { - index = i; - break; - } - } - - NetworkingAether.sendPacketToServer(new PacketShopBuy(index, isCountLocked ? buyCount : this.buyCountUnlocked, this.shopIndex)); - - int maxAllowedWithHeldStack = this.getSelectedBuy().getItemStack().getMaxStackSize() - this.mc.player.inventory.getItemStack().getCount(); - - int amount = Math.min(maxAllowedWithHeldStack, Math.min(isCountLocked ? buyCount : this.buyCountUnlocked, this.getSelectedBuy().getStock())); - - boolean isHandFree = this.mc.player.inventory.getItemStack().isEmpty(); - boolean isBuyItem = ItemHelper.getKeyForItemStack(this.mc.player.inventory.getItemStack()) == ItemHelper - .getKeyForItemStack(this.getSelectedBuy().getItemStack()); - - if (isHandFree) - { - this.getSelectedBuy().addStock(-amount); - - ItemStack stack = this.getSelectedBuy().getItemStack().copy(); - stack.setCount(amount); - - this.mc.player.inventory.setItemStack(stack); - } - else if (isBuyItem) - { - this.getSelectedBuy().addStock(-amount); - - this.mc.player.inventory.getItemStack().setCount(this.mc.player.inventory.getItemStack().getCount() + amount); - } - - this.addBuyCount(0); - } - - if (InputHelper.isHovered(this.sell) && this.sell.state().isEnabled()) - { - ItemStack stack = this.container.getSlot(0).getStack(); - double singleValue = ShopUtil - .getFilteredPrice(this.shopInstance, stack, - AetherAPI.content().currency().getSingleValue(stack, this.shopInstance.getCurrencyType().getClass())); - - if (singleValue < 1) - { - double wholeValue = ShopUtil - .getFilteredPrice(this.shopInstance, stack, - AetherAPI.content().currency().getValue(stack, this.shopInstance.getCurrencyType().getClass())); - double decimals = wholeValue - MathHelper.floor(wholeValue); - - double howManyTimesDivInto = decimals / singleValue; - - int leftover = MathHelper.floor(howManyTimesDivInto); - - this.container.getSlot(0).getStack().setCount(leftover); - } - else - { - this.container.getSlot(0).putStack(ItemStack.EMPTY); - } - - NetworkingAether.sendPacketToServer(new PacketShopSell(this.shopIndex)); - } - - for (GuiShopBuy b : this.buys) - { - if (InputHelper.isHovered(b)) - { - this.buyCountUnlocked = 1; - this.selectedBuy = b.getBuyIndex(); - - break; - } - } - } - - @Override - public void onCurrencyChange(long prevCurrency, long newCurrency) - { - this.playerCoins.setCurrencyValue(newCurrency); - - this.giltBag.dim().mod().x(this.playerCoins.dim().x() + (this.playerCoins.dim().width() / 2) - 1).flush(); - - this.addBuyCount(0); - } - - @Override - public void handleMouseInput() throws IOException - { - super.handleMouseInput(); - - int scroll = MathHelper.clamp(Mouse.getEventDWheel(), -1, 1); - - if (scroll != 0 && (InputHelper.isHovered(this.buy) || InputHelper.isHovered(this.upArrow) || InputHelper.isHovered(this.downArrow) || InputHelper - .isHovered(this.lockButton))) - { - if (Keyboard.isKeyDown(Keyboard.KEY_LSHIFT) || Keyboard.isKeyDown(Keyboard.KEY_RSHIFT)) - { - this.addBuyCount(scroll * 64); - } - else - { - this.addBuyCount(scroll); - } - } - } - - @Override - public void setHoveredDescription(ItemStack stack, List<String> desc) - { - this.hoveredStack = stack; - this.hoverDescription = desc; - } -} diff --git a/src/main/java/com/gildedgames/aether/client/gui/dialog/GuiAbstractButton.java b/src/main/java/com/gildedgames/aether/client/gui/dialog/GuiAbstractButton.java deleted file mode 100644 index 702d6c80a8..0000000000 --- a/src/main/java/com/gildedgames/aether/client/gui/dialog/GuiAbstractButton.java +++ /dev/null @@ -1,48 +0,0 @@ -package com.gildedgames.aether.client.gui.dialog; - -import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.FontRenderer; -import net.minecraft.client.gui.GuiButton; - -public abstract class GuiAbstractButton extends GuiButton -{ - - protected boolean hasInit; - - public GuiAbstractButton(final int elementId, final int x, final int y) - { - super(elementId, x, y, ""); - } - - public GuiAbstractButton(final int elementId, final int x, final int y, final int width, final int height) - { - super(elementId, x, y, width, height, ""); - } - - @Override - public final void drawButton(final Minecraft mc, final int mouseX, final int mouseY, final float partialTicks) - { - final FontRenderer fontRenderer = Minecraft.getMinecraft().fontRenderer; - - if (!this.hasInit) - { - this.init(fontRenderer); - this.hasInit = true; - } - - if (this.visible) - { - this.draw(fontRenderer); - } - } - - public void markForReInit() - { - this.hasInit = false; - } - - public abstract void init(FontRenderer fontRenderer); - - public abstract void draw(FontRenderer fontRenderer); - -} diff --git a/src/main/java/com/gildedgames/aether/client/gui/dialog/GuiCoins.java b/src/main/java/com/gildedgames/aether/client/gui/dialog/GuiCoins.java deleted file mode 100644 index 1794432c80..0000000000 --- a/src/main/java/com/gildedgames/aether/client/gui/dialog/GuiCoins.java +++ /dev/null @@ -1,95 +0,0 @@ -package com.gildedgames.aether.client.gui.dialog; - -import com.gildedgames.aether.common.AetherCore; -import com.gildedgames.aether.common.capabilities.entity.player.modules.PlayerCurrencyModule; -import com.gildedgames.orbis.lib.client.gui.data.Text; -import com.gildedgames.orbis.lib.client.gui.util.GuiText; -import com.gildedgames.orbis.lib.client.gui.util.GuiTexture; -import com.gildedgames.orbis.lib.client.gui.util.gui_library.GuiElement; -import com.gildedgames.orbis.lib.client.rect.Dim2D; -import com.gildedgames.orbis.lib.client.rect.Pos2D; -import com.gildedgames.orbis.lib.client.rect.Rect; -import net.minecraft.util.ResourceLocation; -import net.minecraft.util.text.TextComponentString; -import net.minecraft.util.text.TextFormatting; - -import java.util.Arrays; - -public class GuiCoins extends GuiElement -{ - - public static final ResourceLocation GILT = AetherCore.getResource("textures/gui/shop/gilt.png"); - - private Coin gilt; - - private double value; - - public GuiCoins(Rect rect, boolean shouldDisplayAlways) - { - super(rect, true); - - this.dim().mod().width(32).height(19).flush(); - } - - public double getCurrencyValue() - { - return this.value; - } - - public void setCurrencyValue(double value) - { - this.value = value; - - this.gilt.setCount(value); - - this.gilt.state().setVisible(true); - - Pos2D center = Pos2D.flush(this.dim().width() / 2, this.dim().height() / 2); - - this.gilt.dim().mod().pos(center).center(true).flush(); - } - - @Override - public void build() - { - this.gilt = new Coin(Dim2D.build().width(7).height(7).addX(0).addY(0).flush(), GILT); - - this.context().addChildren(this.gilt); - } - - private static class Coin extends GuiElement - { - private GuiTexture icon; - - private final ResourceLocation iconResource; - - private GuiText count; - - public Coin(Rect rect, ResourceLocation icon) - { - super(rect, false); - - this.iconResource = icon; - } - - public void setCount(double count) - { - String text = count < 1 && count > 0 ? TextFormatting.GRAY + String.format("%.2f", count) : String.valueOf((int) count); - - this.count.setText(new Text(new TextComponentString(text), 1.0F)); - - this.dim().mod().width(9 + (this.viewer().fontRenderer().getStringWidth(text))).height(8).flush(); - } - - @Override - public void build() - { - this.icon = new GuiTexture(Dim2D.build().width(7).height(7).addX(0).addY(0).flush(), this.iconResource); - this.count = new GuiText(Dim2D.build().addX(9).addY(0).flush(), - new Text(new TextComponentString(String.valueOf(0)), 1.0F)); - - this.context().addChildren(this.icon, this.count); - } - } - -} diff --git a/src/main/java/com/gildedgames/aether/client/gui/dialog/GuiCoinsContainer.java b/src/main/java/com/gildedgames/aether/client/gui/dialog/GuiCoinsContainer.java deleted file mode 100644 index 9b7034b4bd..0000000000 --- a/src/main/java/com/gildedgames/aether/client/gui/dialog/GuiCoinsContainer.java +++ /dev/null @@ -1,149 +0,0 @@ -package com.gildedgames.aether.client.gui.dialog; - -import com.gildedgames.aether.api.shop.IGuiCurrencyValue; -import com.gildedgames.aether.common.AetherCore; -import com.gildedgames.orbis.lib.client.gui.util.GuiLine; -import com.gildedgames.orbis.lib.client.gui.util.GuiTextLabel; -import com.gildedgames.orbis.lib.client.gui.util.GuiTexture; -import com.gildedgames.orbis.lib.client.gui.util.gui_library.GuiElement; -import com.gildedgames.orbis.lib.client.gui.util.gui_library.IGuiElement; -import com.gildedgames.orbis.lib.client.gui.util.gui_library.IGuiEvent; -import com.gildedgames.orbis.lib.client.rect.Dim2D; -import com.gildedgames.orbis.lib.client.rect.Pos2D; -import com.gildedgames.orbis.lib.client.rect.Rect; -import com.gildedgames.orbis.lib.util.InputHelper; -import com.gildedgames.orbis.lib.util.MathUtil; -import net.minecraft.util.ResourceLocation; - -public class GuiCoinsContainer extends GuiElement implements IGuiCurrencyValue -{ - private static final ResourceLocation PRICE_UP = AetherCore.getResource("textures/gui/shop/price_up.png"); - - private static final ResourceLocation PRICE_DOWN = AetherCore.getResource("textures/gui/shop/price_down.png"); - - private GuiCoins coinsCount, originalPrice; - - private GuiTextLabel origPriceBg; - - private GuiTexture discountIndicator; - - private final boolean shouldDisplayAlways; - - private final boolean displaysDiscount; - - public GuiCoinsContainer(Rect rect, boolean shouldDisplayAlways, boolean displaysDiscount) - { - super(rect, true); - - this.dim().mod().width(51).height(19).flush(); - - this.shouldDisplayAlways = shouldDisplayAlways; - this.displaysDiscount = displaysDiscount; - } - - @Override - public void setCurrencyValue(double value) - { - this.coinsCount.setCurrencyValue(value); - - this.coinsCount.state().setVisible(true); - - Pos2D center = Pos2D.flush(this.dim().width() / 2, this.dim().height() / 2); - - this.coinsCount.dim().mod().pos(center).center(true).flush(); - } - - @Override - public void setNonFilteredCurrencyValue(double value) - { - this.originalPrice.setCurrencyValue(value); - - this.originalPrice.state().setVisible(false); - this.originalPrice.state().setEnabled(false); - - if (MathUtil.epsilonEquals(this.originalPrice.getCurrencyValue(), this.coinsCount.getCurrencyValue()) || value <= 0.0D || !this.displaysDiscount) - { - this.discountIndicator.state().setVisible(false); - } - else if (this.originalPrice.getCurrencyValue() > this.coinsCount.getCurrencyValue()) - { - this.discountIndicator.setResourceLocation(PRICE_DOWN); - this.discountIndicator.state().setVisible(true); - } - else - { - this.discountIndicator.setResourceLocation(PRICE_UP); - this.discountIndicator.state().setVisible(true); - } - } - - @Override - public void build() - { - this.discountIndicator = new GuiTexture(Dim2D.build().width(7).height(9).x(-2).y(-3).flush(), PRICE_DOWN); - - this.discountIndicator.state().setVisible(false); - - this.coinsCount = new GuiCoins(Dim2D.flush(), this.shouldDisplayAlways); - this.originalPrice = new GuiCoins(Dim2D.flush(), this.shouldDisplayAlways); - - this.origPriceBg = new GuiTextLabel(Dim2D.build().area(this.dim().width(), this.dim().height()).flush()); - - this.context().addChildren(this.coinsCount, this.discountIndicator, this.origPriceBg, this.originalPrice); - - this.originalPrice.state().setZOrder(5); - this.origPriceBg.state().setZOrder(5); - - this.origPriceBg.state().setEnabled(false); - this.origPriceBg.state().setVisible(false); - - this.originalPrice.state().setVisible(false); - this.originalPrice.state().setEnabled(false); - - float edge = -2.9F; - - GuiLine line = new GuiLine(-edge - 0.65F, -edge, - this.originalPrice.dim().width() + edge + 0.65F, this.originalPrice.dim().height() + edge, 155, 0, 0, 255, 8.0F); - - this.originalPrice.context().addChildren(line); - - line.state().setZOrder(5); - - if (this.displaysDiscount) - { - this.discountIndicator.state().addEvent(new IGuiEvent() - { - @Override - public void onHovered(IGuiElement element) - { - float x = -element.dim().x() + InputHelper.getMouseX() + 3; - float y = -element.dim().y() + InputHelper.getMouseY() - GuiCoinsContainer.this.originalPrice.dim().height() - 3; - - GuiCoinsContainer.this.originalPrice.dim().mod().pos(x, y).flush(); - GuiCoinsContainer.this.origPriceBg.dim().mod().pos(x, y).flush(); - } - - @Override - public void onHoverEnter(IGuiElement element) - { - GuiCoinsContainer.this.originalPrice.state().setVisible(true); - GuiCoinsContainer.this.originalPrice.state().setEnabled(true); - - GuiCoinsContainer.this.origPriceBg.state().setEnabled(true); - GuiCoinsContainer.this.origPriceBg.state().setVisible(true); - } - - @Override - public void onHoverExit(IGuiElement element) - { - GuiCoinsContainer.this.originalPrice.state().setVisible(false); - GuiCoinsContainer.this.originalPrice.state().setEnabled(false); - - GuiCoinsContainer.this.origPriceBg.state().setEnabled(false); - GuiCoinsContainer.this.origPriceBg.state().setVisible(false); - } - }); - } - } - -} diff --git a/src/main/java/com/gildedgames/aether/client/gui/dialog/GuiDialogButton.java b/src/main/java/com/gildedgames/aether/client/gui/dialog/GuiDialogButton.java deleted file mode 100644 index 36033ceebe..0000000000 --- a/src/main/java/com/gildedgames/aether/client/gui/dialog/GuiDialogButton.java +++ /dev/null @@ -1,28 +0,0 @@ -package com.gildedgames.aether.client.gui.dialog; - -import com.gildedgames.aether.api.dialog.IDialogButton; - -public class GuiDialogButton extends GuiFlatButton -{ - - private final IDialogButton buttonData; - - public GuiDialogButton(final int buttonId, final int x, final int y, final IDialogButton buttonData) - { - super(buttonId, x, y, 0, 15, ""); - - this.buttonData = buttonData; - } - - public IDialogButton getButtonData() - { - return this.buttonData; - } - - @Override - public String getText() - { - return this.buttonData.getLocalizedLabel().getFormattedText(); - } - -} diff --git a/src/main/java/com/gildedgames/aether/client/gui/dialog/GuiDialogViewer.java b/src/main/java/com/gildedgames/aether/client/gui/dialog/GuiDialogViewer.java deleted file mode 100644 index 9f35cfa4a7..0000000000 --- a/src/main/java/com/gildedgames/aether/client/gui/dialog/GuiDialogViewer.java +++ /dev/null @@ -1,445 +0,0 @@ -package com.gildedgames.aether.client.gui.dialog; - -import com.gildedgames.aether.api.AetherAPI; -import com.gildedgames.aether.api.dialog.*; -import com.gildedgames.aether.common.AetherCore; -import com.gildedgames.aether.common.containers.ContainerDialogController; -import com.gildedgames.orbis.lib.client.gui.util.gui_library.GuiElement; -import com.gildedgames.orbis.lib.client.gui.util.gui_library.GuiViewer; -import com.gildedgames.orbis.lib.client.gui.util.gui_library.IGuiContext; -import com.gildedgames.orbis.lib.client.rect.Dim2D; -import com.google.common.collect.Lists; -import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.Gui; -import net.minecraft.client.gui.GuiButton; -import net.minecraft.client.renderer.GlStateManager; -import net.minecraft.client.resources.I18n; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.util.ResourceLocation; -import net.minecraft.util.math.MathHelper; -import net.minecraft.util.text.ITextComponent; -import net.minecraft.util.text.Style; -import net.minecraft.util.text.TextComponentTranslation; -import net.minecraft.util.text.TextFormatting; -import org.lwjgl.Sys; -import org.lwjgl.input.Mouse; - -import java.io.IOException; -import java.util.Collection; -import java.util.LinkedList; -import java.util.Map; - -public class GuiDialogViewer extends GuiViewer implements IDialogChangeListener -{ - - private static final ResourceLocation NEXT_ARROW = AetherCore.getResource("textures/gui/conversation/next_arrow.png"); - - public static boolean preventDialogControllerClose; - - private final IDialogController controller; - - private final LinkedList<GuiDialogButton> buttons = Lists.newLinkedList(); - - private GuiTextBox topTextBox, bottomTextBox, namePlate; - - private double nextArrowAnim, prevTime; - - private boolean canApplyNextAction = true; - - private IDialogNode node; - - private IDialogSpeaker speaker; - - private IDialogSlide slide; - - private IDialogSlideRenderer renderer; - - private int currentScroll, maxScroll; - - private ISceneInstance sceneInstance; - - public GuiDialogViewer(final EntityPlayer player, final IDialogController controller, ISceneInstance sceneInstance) - { - super(new GuiElement(Dim2D.flush(), false), null, new ContainerDialogController(player)); - - this.sceneInstance = sceneInstance; - - this.controller = controller; - this.controller.addListener(this); - - this.setDrawDefaultBackground(false); - } - - @Override - public void drawScreen(final int mouseX, final int mouseY, final float partialTicks) - { - this.drawWorldBackground(0); - net.minecraftforge.common.MinecraftForge.EVENT_BUS.post(new net.minecraftforge.client.event.GuiScreenEvent.BackgroundDrawnEvent(this)); - - GlStateManager.pushMatrix(); - - GlStateManager.disableDepth(); - - GlStateManager.translate(0, 0, 100F); - GlStateManager.color(1.0F, 1.0F, 1.0F); - - if (this.slide != null && this.renderer != null) - { - this.renderer.draw(this.slide, this.width, this.height, mouseX, mouseY, partialTicks); - } - - GlStateManager.translate(0, 0, 100F); - - Gui.drawRect(0, this.height - 90, this.width, this.height, Integer.MIN_VALUE); - - if (this.maxScroll > 0 && this.controller.isNodeFinished() && this.controller.getCurrentNode().getButtons().size() > 0) - { - int baseBoxSize = 350; - int x = (this.width / 2) - (baseBoxSize / 2); - int y = this.height - 85; - - Gui.drawRect(x - 17, this.height - 85, x - 7, this.height - 10, Integer.MIN_VALUE); - - int scrollYOffset = this.currentScroll == 0 ? 0 : MathHelper.floor((float) this.currentScroll * (55.0F / (float) this.maxScroll)); - - Gui.drawRect(x - 17, y + scrollYOffset, x - 7, y + 20 + scrollYOffset, 0x96FFFFFF); - } - - super.drawScreen(mouseX, mouseY, partialTicks); - - GlStateManager.enableDepth(); - - GlStateManager.popMatrix(); - - if (!this.controller.isNodeFinished() || (this.controller.isNodeFinished() && this.node.getButtons().isEmpty())) - { - GlStateManager.pushMatrix(); - - GlStateManager.disableDepth(); - - final double time = (Sys.getTime() * 1000) / Sys.getTimerResolution(); - final double timePassed = time - this.prevTime; - - this.prevTime = time; - - if (this.nextArrowAnim < 1000) - { - this.nextArrowAnim += timePassed; - } - else - { - this.nextArrowAnim = 0.0; - } - - final double anim = this.nextArrowAnim; - - if (this.nextArrowAnim < 500.0) - { - GlStateManager.translate(0, anim / 500.0, 0); - } - else if (this.nextArrowAnim >= 500.0) - { - GlStateManager.translate(0, -((anim - 500.0) / 500.0), 0); - } - - GlStateManager.translate(0, 0, 302F); - GlStateManager.color(1.0F, 1.0F, 1.0F); - - Minecraft.getMinecraft().renderEngine.bindTexture(NEXT_ARROW); - - if (this.controller.isNodeFinished() && this.controller.getCurrentNode().getButtons().size() > 0) - { - Gui.drawModalRectWithCustomSizedTexture( - this.topTextBox.x + this.topTextBox.width + 5, - this.topTextBox.y + this.topTextBox.height - 20, 0, 0, 13, 12, 13, 12); - } - else - { - Gui.drawModalRectWithCustomSizedTexture( - this.bottomTextBox.x + this.bottomTextBox.width, - this.bottomTextBox.y + this.bottomTextBox.height - 20, 0, 0, 13, 12, 13, 12); - } - - GlStateManager.enableDepth(); - - GlStateManager.popMatrix(); - } - } - - @Override - public void drawGuiContainerBackgroundLayer(final float partialTicks, final int mouseX, final int mouseY) - { - - } - - @Override - public void drawDefaultBackground() - { - - } - - @Override - protected void actionPerformed(final GuiButton button) - { - if (button instanceof GuiDialogButton) - { - final GuiDialogButton dialogButton = (GuiDialogButton) button; - - this.controller.activateButton(dialogButton.getButtonData()); - - if (this.controller.getCurrentScene() == null) - { - Minecraft.getMinecraft().displayGuiScreen(null); - } - } - } - - @Override - public void initGui() - { - super.initGui(); - - this.buildGui(this.controller.getCurrentNode()); - } - - private void resetGui() - { - this.buttonList.clear(); - } - - private void buildGui(final IDialogNode node) - { - if (this.node != node) - { - this.canApplyNextAction = false; - } - - this.node = node; - - this.resetGui(); - - if (this.mc == null) - { - return; - } - - final Collection<IDialogButton> beforeConditionButtons = node.getButtons(); - - int baseBoxSize = 350; - final boolean resize = this.width - 40 > baseBoxSize; - - if (!resize) - { - baseBoxSize = this.width - 40; - } - - if (this.controller.isNodeFinished()) - { - this.buttons.clear(); - - int index = 0; - - for (final IDialogButton btn : beforeConditionButtons) - { - if (this.controller.conditionsMet(btn)) - { - GuiDialogButton button = new GuiDialogButton(index, (this.width / 2) - (baseBoxSize / 2), this.height - 85 + (index * 20), btn); - - button.visible = false; - button.enabled = false; - - this.buttonList.add(button); - this.buttons.add(button); - - index++; - } - } - } - - this.currentScroll = 0; - - this.topTextBox = new GuiTextBox(this.buttons.size(), - resize ? (this.width / 2) - (baseBoxSize / 2) : 20, this.height - 175, baseBoxSize, 80); - this.bottomTextBox = new GuiTextBox( - this.buttons.size() + 1, resize ? (this.width / 2) - (baseBoxSize / 2) : 20, this.height - 85, baseBoxSize, 70); - - this.topTextBox.showBackdrop = true; - this.topTextBox.bottomToTop = true; - - this.refreshButtonsWithScroll(); - - this.maxScroll = Math.max(0, this.buttons.size() - 4); - - final IDialogLine line = this.controller.getCurrentLine(); - - if (this.controller.isNodeFinished() && this.controller.getCurrentNode().getButtons().size() > 0) - { - this.topTextBox.setText(line.getLocalizedBody()); - } - else - { - this.bottomTextBox.setText(line.getLocalizedBody()); - } - - if (this.controller.getCurrentLine().getSpeaker().isPresent()) - { - final ResourceLocation speakerPath = this.controller.getCurrentLine().getSpeaker().get(); - - this.speaker = AetherAPI.content().dialog().getSpeaker(speakerPath).orElseThrow(() -> - new IllegalArgumentException("Couldn't getByte speaker: " + speakerPath)); - - final String address; - - // Check if the speaker resourcelocation has a slide address - if (speakerPath.getPath().contains("#")) - { - // Obtain the slide address from the Speaker resourcelocation - address = speakerPath.getPath().substring(speakerPath.getPath().indexOf("#") + 1); - - this.slide = AetherAPI.content().dialog().findSlide(address, this.speaker).orElseThrow(() -> - new IllegalArgumentException("Couldn't find slide: " + address)); - } - else if (this.speaker.getSlides().isPresent()) - { - final Map<String, IDialogSlide> slides = this.speaker.getSlides().get(); - - if (!slides.isEmpty() && slides.containsKey("default")) - { - this.slide = slides.get("default"); - } - } - - if (this.slide != null && this.slide.getRenderer().isPresent()) - { - final String renderType = this.slide.getRenderer().get(); - - this.renderer = AetherAPI.content().dialog().findRenderer(renderType).orElseThrow(() -> - new IllegalArgumentException("Couldn't find slide renderer: " + renderType)); - - this.renderer.setup(this.slide); - } - - this.fontRenderer = Minecraft.getMinecraft().fontRenderer; - - final boolean topText = this.controller.isNodeFinished() && this.controller.getCurrentNode().getButtons().size() > 0; - - final String name = I18n.format(this.speaker.getUnlocalizedName()); - - this.namePlate = new GuiTextBox( - this.buttons.size() + 2, - resize ? (this.width / 2) - (baseBoxSize / 2) : 20, - this.height - (topText ? 122 + this.topTextBox.getTextHeight(this.fontRenderer) : 107), - this.fontRenderer.getStringWidth(name + 10), 20); - - final ITextComponent textComponent = new TextComponentTranslation(name); - textComponent.setStyle(new Style().setColor(TextFormatting.YELLOW).setItalic(true)); - - this.namePlate.setText(textComponent); - - this.buttonList.add(this.namePlate); - } - - this.buttonList.add(this.topTextBox); - this.buttonList.add(this.bottomTextBox); - } - - private void nextAction() - { - if (!this.canApplyNextAction) - { - this.canApplyNextAction = true; - - return; - } - - this.controller.advance(); - } - - @Override - protected void keyTyped(final char typedChar, final int keyCode) throws IOException - { - super.keyTyped(typedChar, keyCode); - - this.nextAction(); - } - - @Override - protected void mouseReleased(final int mouseX, final int mouseY, final int state) - { - this.nextAction(); - - super.mouseReleased(mouseX, mouseY, state); - } - - @Override - public void onDialogChanged() - { - this.buildGui(this.controller.getCurrentNode()); - } - - @Override - public void beforeSceneCloses() - { - - } - - @Override - public void build(IGuiContext context) - { - this.getViewing().dim().mod().width(this.width).height(this.height).flush(); - } - - private void refreshButtonsWithScroll() - { - for (int i = 0; i < this.buttons.size(); i++) - { - GuiDialogButton button = this.buttons.get(i); - - if (i >= this.currentScroll && i <= this.currentScroll + 3) - { - button.y = this.height - 85 + ((i - this.currentScroll) * 20); - - button.enabled = true; - button.visible = true; - } - else - { - button.enabled = false; - button.visible = false; - } - } - } - - @Override - public void handleMouseInput() throws IOException - { - super.handleMouseInput(); - - int scroll = MathHelper.clamp(Mouse.getEventDWheel(), -1, 1); - - if (scroll != 0) - { - this.currentScroll = MathHelper.clamp(this.currentScroll - scroll, 0, this.maxScroll); - - this.refreshButtonsWithScroll(); - } - } - - @Override - public void onGuiClosed() - { - super.onGuiClosed(); - - if (this.controller.getCurrentScene() != null) - { - if (preventDialogControllerClose) - { - preventDialogControllerClose = false; - } - else - { - this.controller.closeScene(this.sceneInstance); - } - } - } -} diff --git a/src/main/java/com/gildedgames/aether/client/gui/dialog/GuiExpandableCoinTab.java b/src/main/java/com/gildedgames/aether/client/gui/dialog/GuiExpandableCoinTab.java deleted file mode 100644 index 6240e70ae8..0000000000 --- a/src/main/java/com/gildedgames/aether/client/gui/dialog/GuiExpandableCoinTab.java +++ /dev/null @@ -1,106 +0,0 @@ -package com.gildedgames.aether.client.gui.dialog; - -import com.gildedgames.aether.common.AetherCore; -import com.gildedgames.orbis.lib.client.gui.util.GuiTexture; -import com.gildedgames.orbis.lib.client.gui.util.gui_library.GuiElement; -import com.gildedgames.orbis.lib.client.rect.Dim2D; -import com.gildedgames.orbis.lib.client.rect.Pos2D; -import com.gildedgames.orbis.lib.client.rect.Rect; -import com.gildedgames.orbis.lib.util.InputHelper; -import net.minecraft.util.ResourceLocation; - -public class GuiExpandableCoinTab extends GuiElement -{ - - private static final ResourceLocation GILT_BAG = AetherCore.getResource("textures/gui/shop/gilt_bag.png"); - - private static final ResourceLocation GILT_GROW = AetherCore.getResource("textures/gui/trade/gilt_grow.png"); - - private static final ResourceLocation GILT_GROW_LEFT = AetherCore.getResource("textures/gui/trade/gilt_grow_left.png"); - - private static final ResourceLocation GILT_GROW_RIGHT = AetherCore.getResource("textures/gui/trade/gilt_grow_right.png"); - - private GuiCoins coinsCount; - - private GuiTexture giltBag, shape, extent; - - private boolean left, inactive; - - private float x, y, width; - - public GuiExpandableCoinTab(Rect rect, boolean shouldDisplayAlways, boolean left, boolean inactive, float x, float y) - { - super(rect, shouldDisplayAlways); - - this.left = left; - this.inactive = inactive; - this.x = x; - this.y = y; - } - - @Override - public void build() - { - this.giltBag = new GuiTexture(Dim2D.build().width(16).height(16).flush(), - GILT_BAG); - - this.coinsCount = new GuiCoins(Dim2D.build().flush(), true); - - this.extent = new GuiTexture(Dim2D.build().width(1).height(23).flush(), - GILT_GROW); - - if (this.left) - { - this.shape = new GuiTexture(Dim2D.build().width(3).height(23).flush(), - GILT_GROW_LEFT); - } - else - { - this.shape = new GuiTexture(Dim2D.build().width(3).height(23).flush(), - GILT_GROW_RIGHT); - } - - this.update(); - this.context().addChildren(this.shape, this.extent, this.coinsCount, this.giltBag); - } - - private void update() - { - Pos2D center = InputHelper.getCenter().clone().flush(); - - float off = this.coinsCount.dim().width(); - - this.dim().mod().pos(center).addX(this.x - (this.left ? off : 0)).y(this.y).flush(); - - this.giltBag.dim().mod().pos((this.left ? -18 : off + 2), 4).flush(); - - this.coinsCount.dim().mod().pos(0, 4).flush(); - - this.extent.dim().mod().width(off + 21).pos((this.left ? -19 : -2), 0).flush(); - - if (this.left) - { - this.shape.dim().mod().pos(-22, 0).flush(); - } - else - { - this.shape.dim().mod().pos(off + 19, 0).flush(); - } - - this.width = off + 27; - } - - public boolean intersected(int mouseX, int mouseY) - { - Pos2D center = InputHelper.getCenter().clone().flush(); - float off = (this.left ? this.width - 12 : 0); - - return mouseX > center.x() - 7 + this.x - off && mouseX < center.x() - 7 + this.x - off + this.width && mouseY > this.y && mouseY < this.y + 21; - } - - public void setCurrencyValue(double value) - { - this.coinsCount.setCurrencyValue(value); - this.update(); - } -} diff --git a/src/main/java/com/gildedgames/aether/client/gui/dialog/GuiFlatButton.java b/src/main/java/com/gildedgames/aether/client/gui/dialog/GuiFlatButton.java deleted file mode 100644 index 7d5c347bac..0000000000 --- a/src/main/java/com/gildedgames/aether/client/gui/dialog/GuiFlatButton.java +++ /dev/null @@ -1,52 +0,0 @@ -package com.gildedgames.aether.client.gui.dialog; - -import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.FontRenderer; -import net.minecraft.client.gui.Gui; -import net.minecraft.client.gui.GuiButton; - -import java.awt.*; - -public class GuiFlatButton extends GuiButton -{ - - public GuiFlatButton(final int buttonId, final int x, final int y, int widthIn, int heightIn, String displayString) - { - super(buttonId, x, y, widthIn, heightIn, displayString); - } - - public void setText(String text) - { - this.displayString = text; - } - - public String getText() - { - return this.displayString; - } - - @Override - public void drawButton(final Minecraft mc, final int mouseX, final int mouseY, final float partialTicks) - { - if (this.visible) - { - this.hovered = mouseX >= this.x && mouseY >= this.y && mouseX < this.x + this.width - && mouseY < this.y + this.height; - - Gui.drawRect(this.x, this.y, - this.x + this.width, this.y + this.height, this.enabled ? (this.hovered ? Integer.MAX_VALUE : Integer.MIN_VALUE) : new Color(100, 100, 100, 100).getRGB()); - - this.hovered = mouseX >= this.x && mouseY >= this.y && mouseX < this.x + this.width - && mouseY < this.y + this.height; - - final FontRenderer fontRenderer = Minecraft.getMinecraft().fontRenderer; - - final String label = this.getText(); - - this.width = fontRenderer.getStringWidth(label) + 5; - - this.drawString(fontRenderer, label, this.x + 3, this.y + 3, this.enabled ? 0xFFFFFF : 0x2D2D2D); - } - } - -} diff --git a/src/main/java/com/gildedgames/aether/client/gui/dialog/GuiNextArrow.java b/src/main/java/com/gildedgames/aether/client/gui/dialog/GuiNextArrow.java deleted file mode 100644 index a605e5683c..0000000000 --- a/src/main/java/com/gildedgames/aether/client/gui/dialog/GuiNextArrow.java +++ /dev/null @@ -1,62 +0,0 @@ -package com.gildedgames.aether.client.gui.dialog; - -import com.gildedgames.aether.common.AetherCore; -import com.gildedgames.orbis.lib.client.gui.util.gui_library.GuiElement; -import com.gildedgames.orbis.lib.client.rect.Dim2D; -import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.Gui; -import net.minecraft.client.renderer.GlStateManager; -import net.minecraft.util.ResourceLocation; -import org.lwjgl.Sys; - -public class GuiNextArrow extends GuiElement -{ - private static final ResourceLocation NEXT_ARROW = AetherCore.getResource("textures/gui/conversation/next_arrow.png"); - - private double nextArrowAnim, prevTime; - - public GuiNextArrow() - { - super(Dim2D.flush(), true); - } - - @Override - public void onDraw(GuiElement element) - { - GlStateManager.pushMatrix(); - - final double time = (Sys.getTime() * 1000) / Sys.getTimerResolution(); - final double timePassed = time - this.prevTime; - - this.prevTime = time; - - if (this.nextArrowAnim < 1000) - { - this.nextArrowAnim += timePassed; - } - else - { - this.nextArrowAnim = 0.0; - } - - final double anim = this.nextArrowAnim; - - if (this.nextArrowAnim < 500.0) - { - GlStateManager.translate(0, anim / 500.0, 0); - } - else if (this.nextArrowAnim >= 500.0) - { - GlStateManager.translate(0, -((anim - 500.0) / 500.0), 0); - } - - GlStateManager.translate(0, 0, 302F); - GlStateManager.color(1.0F, 1.0F, 1.0F); - - Minecraft.getMinecraft().renderEngine.bindTexture(NEXT_ARROW); - - Gui.drawModalRectWithCustomSizedTexture((int) this.dim().x(), (int) this.dim().y(), 0, 0, 13, 12, 13, 12); - - GlStateManager.popMatrix(); - } -} diff --git a/src/main/java/com/gildedgames/aether/client/gui/dialog/GuiPumpkinCurrency.java b/src/main/java/com/gildedgames/aether/client/gui/dialog/GuiPumpkinCurrency.java deleted file mode 100644 index e46d7f0043..0000000000 --- a/src/main/java/com/gildedgames/aether/client/gui/dialog/GuiPumpkinCurrency.java +++ /dev/null @@ -1,92 +0,0 @@ -package com.gildedgames.aether.client.gui.dialog; - -import com.gildedgames.aether.api.shop.IGuiCurrencyValue; -import com.gildedgames.aether.common.AetherCore; -import com.gildedgames.orbis.lib.client.gui.data.Text; -import com.gildedgames.orbis.lib.client.gui.util.GuiText; -import com.gildedgames.orbis.lib.client.gui.util.GuiTexture; -import com.gildedgames.orbis.lib.client.gui.util.gui_library.GuiElement; -import com.gildedgames.orbis.lib.client.rect.Dim2D; -import com.gildedgames.orbis.lib.client.rect.Pos2D; -import com.gildedgames.orbis.lib.client.rect.Rect; -import net.minecraft.util.ResourceLocation; -import net.minecraft.util.text.TextComponentString; -import net.minecraft.util.text.TextFormatting; - -public class GuiPumpkinCurrency extends GuiElement implements IGuiCurrencyValue -{ - - private static final ResourceLocation COIN_ICON = AetherCore.getResource("textures/gui/shop/plumproot_coin.png"); - - private PlumprootCount plumprootCount; - - public GuiPumpkinCurrency(Rect rect) - { - super(rect, true); - - this.dim().mod().width(51).height(19).flush(); - } - - @Override - public void setCurrencyValue(double value) - { - this.plumprootCount.setCount(value); - - this.plumprootCount.state().setVisible(true); - - Pos2D center = Pos2D.flush(this.dim().width() / 2, this.dim().height() / 2); - - this.plumprootCount.dim().mod().pos(center).center(true).flush(); - } - - @Override - public void setNonFilteredCurrencyValue(double value) - { - - } - - @Override - public void build() - { - this.plumprootCount = new PlumprootCount(Dim2D.build().width(7).height(7).addX(0).addY(0).flush(), COIN_ICON); - - this.context().addChildren(this.plumprootCount); - } - - private static class PlumprootCount extends GuiElement - { - private GuiTexture icon; - - private final ResourceLocation iconResource; - - private GuiText count; - - public PlumprootCount(Rect rect, ResourceLocation icon) - { - super(rect, false); - - this.iconResource = icon; - } - - public void setCount(double count) - { - String text = count < 1 && count > 0 ? TextFormatting.GRAY + String.format("%.2f", count) : String.valueOf((int) count); - - this.count.setText( - new Text(new TextComponentString(text), 1.0F)); - - this.dim().mod().width(9 + (this.viewer().fontRenderer().getStringWidth(text))).height(8).flush(); - } - - @Override - public void build() - { - this.icon = new GuiTexture(Dim2D.build().width(7).height(7).addX(0).addY(0).flush(), this.iconResource); - this.count = new GuiText(Dim2D.build().addX(9).addY(0).flush(), - new Text(new TextComponentString(String.valueOf(0)), 1.0F)); - - this.context().addChildren(this.icon, this.count); - } - } - -} diff --git a/src/main/java/com/gildedgames/aether/client/gui/dialog/GuiShopBuy.java b/src/main/java/com/gildedgames/aether/client/gui/dialog/GuiShopBuy.java deleted file mode 100644 index 65bce41b71..0000000000 --- a/src/main/java/com/gildedgames/aether/client/gui/dialog/GuiShopBuy.java +++ /dev/null @@ -1,140 +0,0 @@ -package com.gildedgames.aether.client.gui.dialog; - -import com.gildedgames.aether.api.shop.IShopBuy; -import com.gildedgames.aether.api.shop.IShopInstance; -import com.gildedgames.aether.api.shop.ShopUtil; -import com.gildedgames.aether.client.gui.container.IExtendedContainer; -import com.gildedgames.aether.client.gui.util.ToolTipCurrencyHelper; -import com.gildedgames.aether.common.AetherCore; -import com.gildedgames.aether.common.capabilities.entity.player.PlayerAether; -import com.gildedgames.orbis.lib.client.gui.util.GuiAbstractButton; -import com.gildedgames.orbis.lib.client.gui.util.GuiTexture; -import com.gildedgames.orbis.lib.client.gui.util.gui_library.GuiElement; -import com.gildedgames.orbis.lib.client.rect.Dim2D; -import com.gildedgames.orbis.lib.client.rect.Rect; -import com.gildedgames.orbis.lib.util.InputHelper; -import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.FontRenderer; -import net.minecraft.client.gui.GuiScreen; -import net.minecraft.client.renderer.GlStateManager; -import net.minecraft.client.renderer.OpenGlHelper; -import net.minecraft.client.renderer.RenderHelper; -import net.minecraft.client.renderer.RenderItem; -import net.minecraft.client.util.ITooltipFlag; -import net.minecraft.item.ItemStack; -import net.minecraft.util.ResourceLocation; - -public class GuiShopBuy extends GuiElement -{ - private static final ResourceLocation BUTTON = AetherCore.getResource("textures/gui/shop/button.png"); - - private static final ResourceLocation BUTTON_PRESSED = AetherCore.getResource("textures/gui/shop/button_pressed.png"); - - private static final ToolTipCurrencyHelper toolTipHelper = new ToolTipCurrencyHelper(); - - private final IShopInstance shopInstance; - - private final int buyIndex; - - public GuiShopBuy(Rect rect, int buyIndex, IShopInstance shopInstance) - { - super(rect, true); - - this.buyIndex = buyIndex; - this.shopInstance = shopInstance; - } - - public IShopBuy getShopBuy() - { - return this.shopInstance.getStock().get(this.buyIndex); - } - - public int getBuyIndex() - { - return this.buyIndex; - } - - @Override - public void build() - { - GuiAbstractButton button = new GuiAbstractButton(Dim2D.build().width(18).height(18).flush(), - new GuiTexture(Dim2D.build().width(18).height(18).flush(), BUTTON), - new GuiTexture(Dim2D.build().width(18).height(18).flush(), BUTTON_PRESSED), - new GuiTexture(Dim2D.build().width(18).height(18).flush(), BUTTON)); - - GuiElement itemstack = new GuiElement(Dim2D.flush(), true) - { - @Override - public void onDraw(GuiElement element) - { - GlStateManager.pushMatrix(); - GlStateManager.color(1.0F, 1.0F, 1.0F, 1.0F); - GlStateManager.enableRescaleNormal(); - OpenGlHelper.setLightmapTextureCoords(OpenGlHelper.lightmapTexUnit, 240.0F, 240.0F); - GlStateManager.color(1.0F, 1.0F, 1.0F, 1.0F); - - GlStateManager.pushMatrix(); - - //TODO: WHY IS THE LIGHTING REVERSED, EVEN WITH STANDARD GUI ITEM LIGHTING. WTF???? - RenderHelper.enableStandardItemLighting(); - - GlStateManager.popMatrix(); - GlStateManager.disableLighting(); - - FontRenderer font = GuiShopBuy.this.getShopBuy().getItemStack().getItem().getFontRenderer(GuiShopBuy.this.getShopBuy().getItemStack()); - - if (font == null) - { - font = this.viewer().fontRenderer(); - } - - RenderItem renderitem = this.viewer().mc().getRenderItem(); - renderitem.zLevel = 200.0F; - - renderitem - .renderItemAndEffectIntoGUI(this.viewer().mc().player, GuiShopBuy.this.getShopBuy().getItemStack(), (int) GuiShopBuy.this.dim().x() + 1, - (int) GuiShopBuy.this.dim().y() + 1); - - RenderHelper.disableStandardItemLighting(); - - renderitem.zLevel = 0.0F; - - boolean hasEnough = - GuiShopBuy.this.shopInstance.getCurrencyType().getValue(PlayerAether.getPlayer(Minecraft.getMinecraft().player)) >= ShopUtil - .getFilteredPrice(GuiShopBuy.this.shopInstance, GuiShopBuy.this - .getShopBuy()); - - int xOffset = (Math.max(String.valueOf(GuiShopBuy.this.getShopBuy().getStock()).length() - 1, 0)) * -6; - - this.viewer().getActualScreen().drawString(font, String.valueOf(GuiShopBuy.this.getShopBuy().getStock()), - (int) GuiShopBuy.this.dim().x() + 12 + xOffset, (int) GuiShopBuy.this.dim().y() + (int) GuiShopBuy.this.dim().height() - 8, - !hasEnough ? 0xba4a4a : 0xFFFFFF); - - if (InputHelper.isHovered(GuiShopBuy.this)) - { - GuiScreen gui = Minecraft.getMinecraft().currentScreen; - - if (gui instanceof IExtendedContainer) - { - ItemStack stack = GuiShopBuy.this.getShopBuy().getItemStack(); - - IExtendedContainer extendedGui = (IExtendedContainer) gui; - extendedGui.setHoveredDescription(stack, stack.getTooltip(Minecraft.getMinecraft().player, - Minecraft.getMinecraft().gameSettings.advancedItemTooltips ? - ITooltipFlag.TooltipFlags.ADVANCED : - ITooltipFlag.TooltipFlags.NORMAL)); - } - } - - GlStateManager.popMatrix(); - GlStateManager.enableLighting(); - GlStateManager.enableDepth(); - RenderHelper.enableStandardItemLighting(); - } - }; - - this.context().addChildren(button, itemstack); - - itemstack.state().setZOrder(1); - } -} diff --git a/src/main/java/com/gildedgames/aether/client/gui/dialog/GuiTextBox.java b/src/main/java/com/gildedgames/aether/client/gui/dialog/GuiTextBox.java deleted file mode 100644 index 9d94dd7189..0000000000 --- a/src/main/java/com/gildedgames/aether/client/gui/dialog/GuiTextBox.java +++ /dev/null @@ -1,118 +0,0 @@ -package com.gildedgames.aether.client.gui.dialog; - -import com.google.common.collect.Lists; -import net.minecraft.client.audio.SoundHandler; -import net.minecraft.client.gui.FontRenderer; -import net.minecraft.client.gui.Gui; -import net.minecraft.client.gui.GuiUtilRenderComponents; -import net.minecraft.util.text.ITextComponent; - -import java.util.List; - -public class GuiTextBox extends GuiAbstractButton -{ - - public boolean showBackdrop = false; - - public boolean bottomToTop = false; - - public boolean center; - - private ITextComponent text; - - private List<ITextComponent> cachedSplitText = Lists.newArrayList(); - - public GuiTextBox(final int elementId, final int x, final int z, final int width, final int height) - { - super(elementId, x, z); - - this.width = width; - this.height = height; - } - - public ITextComponent getText() - { - return this.text; - } - - public void setText(final ITextComponent text) - { - this.text = text; - - this.markForReInit(); - } - - public void setCentered(boolean center) - { - this.center = center; - } - - public int getTextHeight(final FontRenderer fontRenderer) - { - if (!this.hasInit) - { - this.init(fontRenderer); - this.hasInit = true; - } - - final int splitCount = Math.min((this.width + 12 - 5) / fontRenderer.FONT_HEIGHT, this.cachedSplitText.size()); - - return splitCount * fontRenderer.FONT_HEIGHT; - } - - @Override - public void init(final FontRenderer fontRenderer) - { - if (this.text != null) - { - this.cachedSplitText = GuiUtilRenderComponents.splitText(this.text, this.width - 6, fontRenderer, true, true); - } - } - - @Override - public void playPressSound(final SoundHandler soundHandlerIn) - { - // NO-OP - } - - @Override - public void draw(final FontRenderer fontRenderer) - { - if (this.text != null) - { - final int splitCount = Math.min((this.width + 12 - 5) / fontRenderer.FONT_HEIGHT, this.cachedSplitText.size()); - - if (this.showBackdrop) - { - if (this.bottomToTop) - { - Gui.drawRect(this.x, - this.y + this.height - (splitCount * fontRenderer.FONT_HEIGHT) - 10, - this.x + this.width, this.y + this.height, Integer.MIN_VALUE); - } - else - { - Gui.drawRect(this.x, this.y, - this.x + this.width, this.y + this.height, Integer.MIN_VALUE); - } - } - - for (int index = 0; index < splitCount; ++index) - { - final ITextComponent text = this.cachedSplitText.get(index); - float offset = 5; - - if (this.center) - { - offset = (this.width - fontRenderer.getStringWidth(text.getUnformattedText())) / 2f; - } - - fontRenderer.drawStringWithShadow(text.getUnformattedText(), - this.x + offset, - this.y + (this.bottomToTop ? this.height - 5 : 5) + index * fontRenderer.FONT_HEIGHT - (this.bottomToTop ? - (splitCount * fontRenderer.FONT_HEIGHT) : 0), 0xFFFFFF); - } - } - } - -} diff --git a/src/main/java/com/gildedgames/aether/client/gui/dialog/GuiTrade.java b/src/main/java/com/gildedgames/aether/client/gui/dialog/GuiTrade.java deleted file mode 100644 index 4947ea9ee0..0000000000 --- a/src/main/java/com/gildedgames/aether/client/gui/dialog/GuiTrade.java +++ /dev/null @@ -1,702 +0,0 @@ -package com.gildedgames.aether.client.gui.dialog; - -import com.gildedgames.aether.api.AetherAPI; -import com.gildedgames.aether.api.player.IPlayerAether; -import com.gildedgames.aether.client.gui.util.IRemoteClose; -import com.gildedgames.aether.client.gui.util.ToolTipCurrencyHelper; -import com.gildedgames.aether.common.AetherCore; -import com.gildedgames.aether.common.capabilities.entity.player.PlayerAether; -import com.gildedgames.aether.common.capabilities.entity.player.modules.PlayerCurrencyModule; -import com.gildedgames.aether.common.capabilities.entity.player.modules.PlayerTradeModule; -import com.gildedgames.aether.common.containers.ContainerTrade; -import com.gildedgames.aether.common.network.AetherGuiHandler; -import com.gildedgames.aether.common.network.NetworkingAether; -import com.gildedgames.aether.common.network.packets.trade.PacketChangeCoinAmount; -import com.gildedgames.aether.common.network.packets.trade.PacketTradeMessage; -import com.gildedgames.aether.common.shop.ShopCurrencyGilt; -import com.gildedgames.orbis.lib.client.gui.util.GuiAbstractButton; -import com.gildedgames.orbis.lib.client.gui.util.GuiTexture; -import com.gildedgames.orbis.lib.client.gui.util.gui_library.*; -import com.gildedgames.orbis.lib.client.rect.Dim2D; -import com.gildedgames.orbis.lib.client.rect.Pos2D; -import com.gildedgames.orbis.lib.util.InputHelper; -import com.google.common.collect.Lists; -import net.minecraft.client.gui.*; -import net.minecraft.client.renderer.GlStateManager; -import net.minecraft.client.renderer.OpenGlHelper; -import net.minecraft.client.renderer.RenderHelper; -import net.minecraft.client.resources.I18n; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.inventory.Slot; -import net.minecraft.item.ItemStack; -import net.minecraft.util.NonNullList; -import net.minecraft.util.ResourceLocation; -import net.minecraft.util.math.MathHelper; -import net.minecraft.util.text.*; -import net.minecraftforge.fml.client.config.GuiUtils; -import org.apache.commons.lang3.tuple.Pair; -import org.lwjgl.input.Keyboard; -import org.lwjgl.input.Mouse; - -import java.io.IOException; -import java.util.List; - -public class GuiTrade extends GuiViewer implements IRemoteClose -{ - - private static final ResourceLocation INVENTORY = AetherCore.getResource("textures/gui/trade/inventory.png"); - - private static final ResourceLocation TRADE_INVENTORY = AetherCore.getResource("textures/gui/trade/trade.png"); - - private static final ResourceLocation TRADE_VIEW = AetherCore.getResource("textures/gui/trade/view.png"); - - private static final ResourceLocation LEFT_ARROW = AetherCore.getResource("textures/gui/trade/left_button.png"); - - private static final ResourceLocation LEFT_ARROW_HOVER = AetherCore.getResource("textures/gui/trade/left_button_hover.png"); - - private static final ResourceLocation RIGHT_ARROW = AetherCore.getResource("textures/gui/trade/right_button.png"); - - private static final ResourceLocation RIGHT_ARROW_HOVER = AetherCore.getResource("textures/gui/trade/right_button_hover.png"); - - private static final ResourceLocation SLOT_BLOCKED = AetherCore.getResource("textures/gui/trade/prevent_tile.png"); - - private static final ToolTipCurrencyHelper TOOLTIP_HELPER = new ToolTipCurrencyHelper(); - - private final NonNullList<ItemStack> offeredContents; - - private final List<TradeChatLine> chatLines = Lists.newArrayList(); - - private final PlayerAether playerAether; - - private final PlayerTradeModule module; - - private final String lockinLocalText, unlockLocalText; - - private GuiAbstractButton leftArrow, rightArrow; - - private GuiExpandableCoinTab coinTab, tradeTab, viewTab; - - private GuiTextBox tradePlate, tradeStatus; - - private GuiFlatButton lockStateButton, confirmButton; - - private GuiTextField textField; - - private boolean pressLongEnough, rightArrowHeld, leftArrowHeld, labelUpdated; - - private long lastBuyCountChangeTime; - - private double transferCoins, viewValue; - - public GuiTrade(GuiViewer prevViewer, EntityPlayer player) - { - super(new GuiElement(Dim2D.flush(), false), prevViewer, new ContainerTrade(player.inventory)); - - this.playerAether = PlayerAether.getPlayer(player); - this.module = this.playerAether.getModule(PlayerTradeModule.class); - this.offeredContents = NonNullList.withSize(16, ItemStack.EMPTY); - this.lockinLocalText = I18n.format("aether.trade.gui.lock"); - this.unlockLocalText = I18n.format("aether.trade.gui.unlock"); - } - - @Override - public void initContainerSize() - { - Pos2D center = InputHelper.getCenter().clone().addX(15).flush(); - - this.guiLeft = (int) center.x() - 189 - 7; - this.guiTop = this.height - 198 - 14; - - this.xSize = 385; - this.ySize = 180; - } - - @Override - public void build(IGuiContext context) - { - this.getViewing().dim().mod().width(300).height(300).flush(); - - Pos2D center = InputHelper.getCenter().clone().flush(); - - GuiTexture inventory = new GuiTexture(Dim2D.build().center(true).width(176).height(110).pos(center).y(this.height).addX(-98).addY(-157F).flush(), - INVENTORY); - - GuiTexture tradeInventory = new GuiTexture(Dim2D.build().center(true).width(86).height(110).pos(center).y(this.height).addX(54).addY(-157F).flush(), - TRADE_INVENTORY); - - tradeInventory.state().addEvent(new IGuiEvent() - { - @Override - public void onPostDraw(IGuiElement element) - { - GlStateManager.pushMatrix(); - GuiTrade.this.mc.getTextureManager().bindTexture(SLOT_BLOCKED); - - for (int i = GuiTrade.this.module.getTradeSlots(); i < 16; i++) - { - Gui.drawModalRectWithCustomSizedTexture(GuiTrade.this.guiLeft + 199 + (i % 4) * 18, GuiTrade.this.height - 183 + (i / 4) * 18, 0, 0, 18, 18, 18, 18); - } - - GlStateManager.popMatrix(); - } - }); - - GuiTexture tradeView = new GuiTexture(Dim2D.build().center(true).width(86).height(110).pos(center).y(this.height).addX(147).addY(-157F).flush(), - TRADE_VIEW); - - tradeView.state().addEvent(new IGuiEvent() - { - @Override - public void onPostDraw(IGuiElement element) - { - GlStateManager.pushMatrix(); - GuiTrade.this.mc.getTextureManager().bindTexture(SLOT_BLOCKED); - - for (int i = GuiTrade.this.module.getOpenSlots(); i < 16; i++) - { - Gui.drawModalRectWithCustomSizedTexture(GuiTrade.this.guiLeft + 292 + (i % 4) * 18, GuiTrade.this.height - 183 + (i / 4) * 18, 0, 0, 18, 18, 18, 18); - } - - GlStateManager.popMatrix(); - } - }); - - this.leftArrow = new GuiAbstractButton(Dim2D.build().width(9).height(15).pos(center).y(this.height).addX(-9).addY(-205).flush(), - new GuiTexture(Dim2D.build().width(9).height(15).flush(), LEFT_ARROW), - new GuiTexture(Dim2D.build().width(9).height(15).flush(), LEFT_ARROW_HOVER), - new GuiTexture(Dim2D.build().width(9).height(15).flush(), LEFT_ARROW)); - - this.rightArrow = new GuiAbstractButton(Dim2D.build().width(9).height(15).pos(center).y(this.height).addX(1).addY(-205).flush(), - new GuiTexture(Dim2D.build().width(9).height(15).flush(), RIGHT_ARROW), - new GuiTexture(Dim2D.build().width(9).height(15).flush(), RIGHT_ARROW_HOVER), - new GuiTexture(Dim2D.build().width(9).height(15).flush(), RIGHT_ARROW)); - - this.coinTab = new GuiExpandableCoinTab(Dim2D.build().width(9).height(15).flush(), true, true, false, -15, this.height - 212); - this.tradeTab = new GuiExpandableCoinTab(Dim2D.build().width(9).height(15).flush(), true, false, false, 17, this.height - 212); - this.viewTab = new GuiExpandableCoinTab(Dim2D.build().width(9).height(15).flush(), true, true, false, 185, this.height - 212); - - context.addChildren(inventory, tradeInventory, tradeView, this.leftArrow, this.rightArrow, this.coinTab, this.tradeTab, this.viewTab); - - final String name = I18n.format("aether.trade.gui.firsttrade"); - final String nameOther = I18n.format("aether.trade.gui.thirdtrade", ""); - final String status = I18n.format("aether.trade.status.waitingboth"); - - final ITextComponent clientTextComp = new TextComponentTranslation(name); - final ITextComponent traderTextComp = new TextComponentTranslation(nameOther); - final ITextComponent statusComp = new TextComponentTranslation(status); - - this.tradePlate = new GuiTextBox(0, (int) center.x() + 104, this.height - 229, 86, 15); - this.tradeStatus = new GuiTextBox(0, this.width - 88, this.height - 60, 76, 40); - - GuiTextBox namePlate = new GuiTextBox(0, (int) center.x() + 10, this.height - 229, 86, 15); - - clientTextComp.setStyle(new Style().setColor(TextFormatting.YELLOW).setItalic(true)); - traderTextComp.setStyle(new Style().setColor(TextFormatting.YELLOW).setItalic(true)); - statusComp.setStyle(new Style().setColor(TextFormatting.YELLOW)); - - this.tradePlate.setText(traderTextComp); - this.tradePlate.setCentered(true); - this.tradeStatus.setText(statusComp); - this.tradeStatus.setCentered(true); - - namePlate.setText(clientTextComp); - namePlate.setCentered(true); - - this.buttonList.add(this.tradePlate); - this.buttonList.add(this.tradeStatus); - this.buttonList.add(namePlate); - - this.lockStateButton = new GuiFlatButton(1, this.width - 88, this.height - 80, 25, 15, this.lockinLocalText); - - final String unlockText = I18n.format("aether.trade.gui.confirm"); - - this.confirmButton = new GuiFlatButton(2, this.width - 88, this.height - 17, 37, 15, unlockText); - this.confirmButton.enabled = false; - - this.textField = new GuiTextField(0, this.fontRenderer, 4, this.height - 12, this.width - 104, 12); - this.textField.setMaxStringLength(256); - this.textField.setEnableBackgroundDrawing(false); - - this.buttonList.add(this.lockStateButton); - this.buttonList.add(this.confirmButton); - } - - @Override - protected void keyTyped(char typedChar, int keyCode) throws IOException - { - if (keyCode == 1 || !this.textField.textboxKeyTyped(typedChar, keyCode)) - { - super.keyTyped(typedChar, keyCode); - } - - if (keyCode == 28 && !this.textField.getText().isEmpty()) - { - String text = this.textField.getText(); - - NetworkingAether.sendPacketToServer(new PacketTradeMessage(text)); - - this.sendTradeMessage(this.playerAether.getEntity(), new TextComponentString(this.textField.getText())); - this.textField.setText(""); - } - } - - public void sendTradeMessage(EntityPlayer sender, ITextComponent textComponent) - { - ITextComponent name = new TextComponentString("<" + sender.getDisplayNameString() + "> "); - - this.sendMessage(name.appendSibling(textComponent)); - } - - public void sendMessage(ITextComponent textComponent) - { - List<ITextComponent> split = GuiUtilRenderComponents.splitText(textComponent, this.width - 104, this.fontRenderer, true, true); - - for (ITextComponent text : split) - { - this.chatLines.add(new TradeChatLine(text)); - } - } - - @Override - protected void mouseReleased(int mouseX, int mouseY, int state) - { - super.mouseReleased(mouseX, mouseY, state); - - this.rightArrowHeld = false; - this.leftArrowHeld = false; - this.lastBuyCountChangeTime = 0; - this.pressLongEnough = false; - } - - @Override - protected void mouseClicked(int mouseX, int mouseY, int mouseButton) throws IOException - { - super.mouseClicked(mouseX, mouseY, mouseButton); - - if (InputHelper.isHovered(this.rightArrow)) - { - this.addTradeCoins(1); - this.rightArrowHeld = true; - this.lastBuyCountChangeTime = System.currentTimeMillis(); - - if (Keyboard.isKeyDown(Keyboard.KEY_LSHIFT) || Keyboard.isKeyDown(Keyboard.KEY_RSHIFT)) - { - this.addTradeCoins(64); - } - } - - if (InputHelper.isHovered(this.leftArrow)) - { - this.leftArrowHeld = true; - this.addTradeCoins(-1); - this.lastBuyCountChangeTime = System.currentTimeMillis(); - - if (Keyboard.isKeyDown(Keyboard.KEY_LSHIFT) || Keyboard.isKeyDown(Keyboard.KEY_RSHIFT)) - { - this.addTradeCoins(-64); - } - } - - this.textField.mouseClicked(mouseX, mouseY, mouseButton); - } - - @Override - public void handleMouseInput() throws IOException - { - super.handleMouseInput(); - - int scroll = MathHelper.clamp(Mouse.getEventDWheel(), -1, 1); - - if (scroll != 0 && (InputHelper.isHovered(this.rightArrow) || InputHelper.isHovered(this.leftArrow))) - { - if (Keyboard.isKeyDown(Keyboard.KEY_LSHIFT) || Keyboard.isKeyDown(Keyboard.KEY_RSHIFT)) - { - this.addTradeCoins(scroll * 64); - } - else - { - this.addTradeCoins(scroll); - } - } - } - - private void addTradeCoins(double val) - { - if (this.module.isLockedIn()) - { - return; - } - - long currency = this.playerAether.getModule(PlayerCurrencyModule.class).getCurrencyValue(); - - this.transferCoins += val; - - if (this.transferCoins > currency) - { - this.transferCoins = currency; - } - - if (this.transferCoins < 0) - { - this.transferCoins = 0; - } - - NetworkingAether.sendPacketToServer(new PacketChangeCoinAmount(this.transferCoins)); - } - - public void setCoinCount(double count) - { - this.viewTab.setCurrencyValue(count); - } - - private void renderToolTip(int x, int y) - { - ItemStack stack = null; - Slot hoveredSlot = this.getSlotUnderMouse(); - - if (hoveredSlot != null && hoveredSlot.getHasStack()) - { - stack = hoveredSlot.getStack(); - } - else - { - for (int i = 0; i < 16; i++) - { - ItemStack offeredStack = this.offeredContents.get(i); - - if (!offeredStack.isEmpty()) - { - int slotX = this.guiLeft + 293 + (i % 4) * 18; - int slotY = this.height - 182 + (i / 4) * 18; - - if (x >= slotX && x < slotX + 18 && y >= slotY && y < slotY + 18) - { - stack = offeredStack; - } - } - } - } - - if (this.mc.player.inventory.getItemStack().isEmpty() && stack != null) - { - FontRenderer font = stack.getItem().getFontRenderer(stack); - FontRenderer renderer = (font == null ? this.fontRenderer : font); - GuiUtils.preItemToolTip(stack); - - List<String> stackText = this.getItemToolTip(stack); - - this.drawHoveringText(stackText, x, y, renderer); - GuiUtils.postItemToolTip(); - } - } - - @Override - public void updateScreen() - { - this.textField.updateCursorCounter(); - } - - @Override - public void drawScreen(final int mouseX, final int mouseY, final float partialTicks) - { - Gui.drawRect(0, this.height - 90, this.width, this.height, Integer.MIN_VALUE); - - if (!this.labelUpdated) - { - this.updateTraderLabel(); - } - - super.drawScreen(mouseX, mouseY, partialTicks); - - GlStateManager.pushMatrix(); - RenderHelper.enableGUIStandardItemLighting(); - GlStateManager.disableLighting(); - GlStateManager.disableDepth(); - OpenGlHelper.setLightmapTextureCoords(OpenGlHelper.lightmapTexUnit, 240.0F, 240.0F); - - if (this.inventorySlots instanceof ContainerTrade) - { - ContainerTrade container = (ContainerTrade) this.inventorySlots; - - container.updateSlots(this.module.getTradeSlots()); - } - - for (int i = 0; i < 16; i++) - { - ItemStack stack = this.offeredContents.get(i); - - this.drawItemStack(stack, this.guiLeft + 293 + (i % 4) * 18, this.height - 182 + (i / 4) * 18); - } - - GlStateManager.popMatrix(); - - GlStateManager.pushMatrix(); - this.renderToolTip(mouseX, mouseY); - GlStateManager.popMatrix(); - - GlStateManager.color(1.0f, 1.0f, 1.0f, 1.0f); - - if ((this.rightArrowHeld || this.leftArrowHeld) && !this.pressLongEnough && System.currentTimeMillis() - this.lastBuyCountChangeTime >= 300L) - { - this.lastBuyCountChangeTime = System.currentTimeMillis(); - - this.pressLongEnough = true; - } - - if (this.pressLongEnough) - { - if (System.currentTimeMillis() - this.lastBuyCountChangeTime >= 50L) - { - this.lastBuyCountChangeTime = System.currentTimeMillis(); - - if (this.rightArrowHeld) - { - this.addTradeCoins(1); - } - else if (this.leftArrowHeld) - { - this.addTradeCoins(-1); - } - } - } - - long currency = this.playerAether.getModule(PlayerCurrencyModule.class).getCurrencyValue(); - - if (this.coinTab != null) - { - this.coinTab.setCurrencyValue(currency - this.transferCoins); - } - - if (this.tradeTab != null) - { - this.tradeTab.setCurrencyValue(this.transferCoins); - } - - Gui.drawRect(2, this.height - 14, this.width - 102, this.height - 2, Integer.MIN_VALUE); - Gui.drawRect(2, this.height - 80, this.width - 102, this.height - 16, Integer.MIN_VALUE); - - this.textField.drawTextBox(); - - for (int i = 0; i < Math.min(7, this.chatLines.size()); i++) - { - TradeChatLine tradeChatLine = this.chatLines.get(this.chatLines.size() - i - 1); - int y = this.height - 25 - this.fontRenderer.FONT_HEIGHT * i; - - if (tradeChatLine instanceof TriggerChatLine) - { - this.drawString(this.fontRenderer, tradeChatLine.text.getUnformattedText(), 4, y - this.fontRenderer.FONT_HEIGHT / 2, 0xFFFFFF); - i++; - } - else - { - this.drawString(this.fontRenderer, tradeChatLine.text.getUnformattedText(), 4, y, 0xFFFFFF); - } - } - - double value = 0; - - if (this.tradeTab.intersected(mouseX, mouseY)) - { - value = this.module.getValue(); - } - else if (this.viewTab.intersected(mouseX, mouseY)) - { - value = this.viewValue; - } - - if (value != 0) - { - List<String> text = TOOLTIP_HELPER.getText(value); - - int i = 0; - - for (String s : text) - { - int j = this.fontRenderer.getStringWidth(s); - - if (j > i) - { - i = j; - } - } - - int l1 = mouseX + 12; - int i2 = mouseY - 12; - int k = 8; - - if (text.size() > 1) - { - k += 2 + (text.size() - 1) * 10; - } - - if (l1 + i + 4 > this.width) - { - l1 -= 28 + i; - } - - if (i2 + k + 6 > this.height) - { - i2 = this.height - k - 6; - } - - this.drawHoveringText(text, mouseX, mouseY); - TOOLTIP_HELPER.render(this.fontRenderer, l1, i2, 8 + (text.size() - 1) * 10, value); - } - } - - private void drawItemStack(ItemStack stack, int x, int y) - { - GlStateManager.translate(0.0F, 0.0F, 32.0F); - - this.zLevel = 200.0F; - this.itemRender.zLevel = 200.0F; - - FontRenderer font = stack.getItem().getFontRenderer(stack); - - if (font == null) - { - font = this.fontRenderer; - } - - this.itemRender.renderItemAndEffectIntoGUI(stack, x, y); - this.itemRender.renderItemOverlayIntoGUI(font, stack, x, y, null); - this.zLevel = 0.0F; - this.itemRender.zLevel = 0.0F; - } - - - @Override - public int getConfirmID() - { - return AetherGuiHandler.TRADE_ID; - } - - @Override - protected void actionPerformed(GuiButton button) - { - boolean locked = this.module.isLockedIn(); - - if (button.id == 1) - { - this.module.setLockedIn(!locked); - this.updateLockedButton(); - } - else if (button.id == 2 && locked) - { - this.module.setConfirmed(true); - } - } - - private void updateLockedButton() - { - this.lockStateButton.setText(this.module.isLockedIn() ? this.unlockLocalText : this.lockinLocalText); - this.lockStateButton.x = this.width - (this.module.isLockedIn() ? 85 : 88); - } - - public void setTradeOffer(List<Pair<Integer,ItemStack>> changes) - { - int count = 0; - this.viewValue = 0; - - for (final Pair<Integer, ItemStack> pair : changes) - { - this.viewValue += AetherAPI.content().currency().getValue(pair.getValue(), ShopCurrencyGilt.class); - this.offeredContents.set(pair.getKey(), pair.getValue()); - count++; - } - - for (int i = count; i < this.offeredContents.size(); i++) - { - this.offeredContents.set(i, ItemStack.EMPTY); - } - } - - public void setTradeState(int state) - { - this.updateLockedButton(); - - String append = state < 3 ? "waiting" : "confirm"; - - if (state == -1) - { - this.lockStateButton.enabled = false; - - append = "sizeerror"; - } - else - { - this.lockStateButton.enabled = true; - - final int modState = state % 3; - - if (modState == 0) - { - append += "both"; - } - else if (modState == 1) - { - append += "you"; - } - else - { - append += "them"; - } - } - - this.confirmButton.enabled = state >= 3 && state < 5; - - final String status = I18n.format("aether.trade.status." + append); - final ITextComponent statusComp = new TextComponentTranslation(status); - - statusComp.setStyle(new Style().setColor(state == -1 ? TextFormatting.RED : TextFormatting.YELLOW)); - - this.tradeStatus.setText(statusComp); - } - - private void updateTraderLabel() - { - IPlayerAether target = this.module.getTarget(); - - if (target != null) - { - final String nameOther = I18n.format("aether.trade.gui.thirdtrade", target.getEntity().getDisplayNameString()); - final ITextComponent traderTextComp = new TextComponentTranslation(nameOther); - - traderTextComp.setStyle(new Style().setColor(TextFormatting.YELLOW).setItalic(true)); - - int count = GuiUtilRenderComponents.splitText(traderTextComp, this.tradePlate.width - 10, this.fontRenderer, true, true).size() - 1; - - this.tradePlate.y = this.height - 229 - this.fontRenderer.FONT_HEIGHT * count; - this.tradePlate.setText(traderTextComp); - this.labelUpdated = true; - } - } - - public String getTrader() - { - return this.module.getTarget().getEntity().getDisplayNameString(); - } - - class TradeChatLine - { - protected ITextComponent text; - - public TradeChatLine(ITextComponent text) - { - this.text = text; - } - } - - class TriggerChatLine extends TradeChatLine - { - protected int id; - - public TriggerChatLine(int id, ITextComponent text) - { - super(text); - - this.id = id; - } - } -} - diff --git a/src/main/java/com/gildedgames/aether/client/gui/misc/CustomLoadingRenderer.java b/src/main/java/com/gildedgames/aether/client/gui/misc/CustomLoadingRenderer.java deleted file mode 100644 index bededf9be4..0000000000 --- a/src/main/java/com/gildedgames/aether/client/gui/misc/CustomLoadingRenderer.java +++ /dev/null @@ -1,173 +0,0 @@ -package com.gildedgames.aether.client.gui.misc; - -import net.minecraft.client.LoadingScreenRenderer; -import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.ScaledResolution; -import net.minecraft.client.renderer.GlStateManager; -import net.minecraft.client.renderer.OpenGlHelper; -import net.minecraft.client.shader.Framebuffer; - -/** - * Ugly hack to override loading renderer when teleporting to Necromancer Tower - */ -public class CustomLoadingRenderer extends LoadingScreenRenderer -{ - public static ICustomLoading CURRENT; - - /** A reference to the Minecraft object. */ - private final Minecraft mc; - - private final Framebuffer framebuffer; - - private final LoadingScreenRenderer original; - - /** The system's time represented in milliseconds. */ - private long systemTime = Minecraft.getSystemTime(); - - public CustomLoadingRenderer(final Minecraft mcIn, final LoadingScreenRenderer original) - { - super(mcIn); - - this.mc = mcIn; - this.framebuffer = new Framebuffer(mcIn.displayWidth, mcIn.displayHeight, false); - this.framebuffer.setFramebufferFilter(9728); - - this.original = original; - } - - @Override - public void resetProgressAndMessage(final String message) - { - if (CURRENT == null) - { - this.original.resetProgressAndMessage(message); - return; - } - - super.resetProgressAndMessage(message); - } - - @Override - public void displaySavingString(final String message) - { - if (CURRENT == null) - { - this.original.displaySavingString(message); - return; - } - - super.displaySavingString(message); - } - - @Override - public void displayLoadingString(final String message) - { - if (CURRENT == null) - { - this.original.displayLoadingString(message); - return; - } - - super.displayLoadingString(message); - } - - @Override - public void setDoneWorking() - { - if (CURRENT == null) - { - this.original.setDoneWorking(); - return; - } - - super.setDoneWorking(); - } - - public LoadingScreenRenderer getOriginal() - { - return this.original; - } - - @Override - public void setLoadingProgress(final int progress) - { - if (CURRENT == null) - { - this.original.setLoadingProgress(progress); - return; - } - - final long i = Minecraft.getSystemTime(); - - if (i - this.systemTime >= 100L) - { - this.systemTime = i; - final ScaledResolution scaledresolution = new ScaledResolution(this.mc); - final int j = scaledresolution.getScaleFactor(); - final int k = scaledresolution.getScaledWidth(); - final int l = scaledresolution.getScaledHeight(); - - if (OpenGlHelper.isFramebufferEnabled()) - { - this.framebuffer.framebufferClear(); - } - else - { - GlStateManager.clear(256); - } - - this.framebuffer.bindFramebuffer(false); - GlStateManager.matrixMode(5889); - GlStateManager.loadIdentity(); - GlStateManager.ortho(0.0D, scaledresolution.getScaledWidth_double(), scaledresolution.getScaledHeight_double(), 0.0D, 100.0D, 300.0D); - GlStateManager.matrixMode(5888); - GlStateManager.loadIdentity(); - GlStateManager.translate(0.0F, 0.0F, -200.0F); - - if (!OpenGlHelper.isFramebufferEnabled()) - { - GlStateManager.clear(16640); - } - - try - { - if (!net.minecraftforge.fml.client.FMLClientHandler.instance() - .handleLoadingScreen(scaledresolution)) //FML Don't render while FML's pre-screen is rendering - { - GlStateManager.disableDepth(); - - CURRENT.drawCustomLoading(); - - GlStateManager.enableDepth(); - - GlStateManager.enableBlend(); - } - } - catch (final java.io.IOException e) - { - throw new RuntimeException(e); - } //FML End - this.framebuffer.unbindFramebuffer(); - - if (OpenGlHelper.isFramebufferEnabled()) - { - this.framebuffer.framebufferRender(k * j, l * j); - } - - this.mc.updateDisplay(); - - try - { - Thread.yield(); - } - catch (final Exception ignored) - { - } - } - } - - public interface ICustomLoading - { - void drawCustomLoading(); - } -} diff --git a/src/main/java/com/gildedgames/aether/client/gui/misc/GuiAetherLoading.java b/src/main/java/com/gildedgames/aether/client/gui/misc/GuiAetherLoading.java deleted file mode 100644 index cfefc663b7..0000000000 --- a/src/main/java/com/gildedgames/aether/client/gui/misc/GuiAetherLoading.java +++ /dev/null @@ -1,132 +0,0 @@ -package com.gildedgames.aether.client.gui.misc; - -import com.gildedgames.aether.client.events.listeners.gui.GuiLoadingListener; -import com.gildedgames.aether.common.AetherCore; -import com.gildedgames.aether.common.util.helpers.MathUtil; -import com.gildedgames.orbis.lib.client.PartialTicks; -import com.gildedgames.orbis.lib.client.gui.data.Text; -import com.gildedgames.orbis.lib.client.gui.util.GuiText; -import com.gildedgames.orbis.lib.client.gui.util.GuiTexture; -import com.gildedgames.orbis.lib.client.gui.util.gui_library.GuiElement; -import com.gildedgames.orbis.lib.client.gui.util.gui_library.GuiViewer; -import com.gildedgames.orbis.lib.client.gui.util.gui_library.IGuiContext; -import com.gildedgames.orbis.lib.client.rect.Dim2D; -import com.gildedgames.orbis.lib.client.rect.Pos2D; -import com.gildedgames.orbis.lib.util.InputHelper; -import net.minecraft.client.renderer.GlStateManager; -import net.minecraft.util.ResourceLocation; -import net.minecraft.util.math.MathHelper; -import net.minecraft.util.text.TextComponentString; -import net.minecraft.util.text.TextComponentTranslation; -import org.lwjgl.opengl.GL11; - -public class GuiAetherLoading extends GuiViewer implements CustomLoadingRenderer.ICustomLoading -{ - private static final String[] SPINNER_STATES = new String[] { "0oo", "o0o", "oo0" }; - - private static final ResourceLocation HIGHLANDS = AetherCore.getResource("textures/gui/intro/highlands.png"); - - private static final ResourceLocation HUE_BACKGROUND = AetherCore.getResource("textures/gui/intro/hue_background.png"); - - public static float PERCENT = 0.0F; - - private GuiTexture highlands; - - private GuiText loading, spinner; - - private float lastPercent; - - private long millis; - - public GuiAetherLoading() - { - super(new GuiElement(Dim2D.flush(), false)); - } - - @Override - public void build(IGuiContext context) - { - this.getViewing().dim().mod().width(this.width).height(this.height).flush(); - - final Pos2D center = InputHelper.getCenter(); - - this.highlands = new GuiTexture(Dim2D.build().scale(0.5F).width(512).height(235).center(true).pos(center).flush(), HIGHLANDS); - - this.loading = new GuiText(Dim2D.build().pos(InputHelper.getBottomLeft()).addY(-16).addX(8).flush(), - new Text(new TextComponentTranslation("gui.aether.loading.indeterminate"), 1.0F)); - - this.spinner = new GuiText(Dim2D.build().pos(InputHelper.getBottomRight()).addY(-16).addX(-24).flush(), - new Text(new TextComponentString(SPINNER_STATES[0]), 1.0f)); - - context.addChildren(this.highlands, this.loading, this.spinner); - - this.millis = System.currentTimeMillis(); - } - - @Override - public void drawElements() - { - preventInnerTyping(); - - GlStateManager.pushMatrix(); - - GlStateManager.disableDepth(); - - GlStateManager.enableBlend(); - GlStateManager.blendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - GlStateManager - .tryBlendFuncSeparate(GlStateManager.SourceFactor.SRC_ALPHA, GlStateManager.DestFactor.ONE_MINUS_SRC_ALPHA, - GlStateManager.SourceFactor.ZERO, - GlStateManager.DestFactor.ONE); - - GL11.glEnable(GL11.GL_ALPHA_TEST); - - GlStateManager.enableAlpha(); - - GlStateManager.color(1.0F, 1.0F, 1.0F, 1.0F); - - this.mc.getTextureManager().bindTexture(HUE_BACKGROUND); - - drawModalRectWithCustomSizedTexture(0, 0, 0, 0, this.width, - this.height, - this.width, this.height); - - GlStateManager.enableDepth(); - - GlStateManager.enableBlend(); - - GlStateManager.popMatrix(); - - if (this.mc.world != null) - { - if (!MathUtil.epsilonEquals(PERCENT, this.lastPercent) && PERCENT > 0.0F) - { - this.lastPercent = PERCENT; - - String percentString = String.valueOf(MathHelper.floor(PERCENT)); - - this.loading.setText(new Text(new TextComponentTranslation("gui.aether.loading.progress", percentString), 1.0F)); - } - } - - int spinnerStateIndex = (int) ((System.currentTimeMillis() - this.millis) / 150) % SPINNER_STATES.length; - - this.spinner.setText(new Text(new TextComponentString(SPINNER_STATES[spinnerStateIndex]), 1.0F)); - - super.drawElements(); - } - - @Override - public void drawScreen(int mouseX, int mouseY, float partialTicks) - { - super.drawScreen(mouseX, mouseY, partialTicks); - - GuiLoadingListener.drawFade(false); - } - - @Override - public void drawCustomLoading() - { - this.drawScreen(InputHelper.getMouseX(), InputHelper.getMouseY(), PartialTicks.get()); - } -} diff --git a/src/main/java/com/gildedgames/aether/client/gui/misc/GuiAetherTeleporterNotice.java b/src/main/java/com/gildedgames/aether/client/gui/misc/GuiAetherTeleporterNotice.java deleted file mode 100644 index 1b747a5092..0000000000 --- a/src/main/java/com/gildedgames/aether/client/gui/misc/GuiAetherTeleporterNotice.java +++ /dev/null @@ -1,130 +0,0 @@ -package com.gildedgames.aether.client.gui.misc; - -import com.gildedgames.aether.api.registrar.BlocksAether; -import com.gildedgames.aether.common.AetherCore; -import com.gildedgames.orbis.lib.client.gui.data.Text; -import com.gildedgames.orbis.lib.client.gui.util.GuiText; -import com.gildedgames.orbis.lib.client.gui.util.GuiTextBox; -import com.gildedgames.orbis.lib.client.gui.util.GuiTexture; -import com.gildedgames.orbis.lib.client.gui.util.gui_library.GuiElement; -import com.gildedgames.orbis.lib.client.gui.util.gui_library.GuiViewer; -import com.gildedgames.orbis.lib.client.gui.util.gui_library.IGuiContext; -import com.gildedgames.orbis.lib.client.gui.util.vanilla.GuiButtonVanilla; -import com.gildedgames.orbis.lib.client.rect.Dim2D; -import com.gildedgames.orbis.lib.client.rect.Pos2D; -import com.gildedgames.orbis.lib.util.InputHelper; -import net.minecraft.client.Minecraft; -import net.minecraft.client.renderer.GlStateManager; -import net.minecraft.client.renderer.RenderHelper; -import net.minecraft.client.resources.I18n; -import net.minecraft.init.Blocks; -import net.minecraft.init.Items; -import net.minecraft.item.ItemStack; -import net.minecraft.util.ResourceLocation; -import net.minecraft.util.text.TextComponentTranslation; - -import java.io.IOException; - -public class GuiAetherTeleporterNotice extends GuiViewer -{ - private static final ResourceLocation BACKDROP = AetherCore.getResource("textures/gui/notice/backdrop.png"); - - private static final ResourceLocation MATRIX = AetherCore.getResource("textures/gui/notice/matrix.png"); - - private GuiText title; - - private GuiTextBox body; - - private GuiButtonVanilla close; - - private GuiTexture backdrop, matrix; - - private final ItemStack teleporter; - - private final ItemStack stone; - - private final ItemStack iron_ingot; - - private Pos2D center; - - public GuiAetherTeleporterNotice() - { - super(new GuiElement(Dim2D.flush(), false)); - - this.allowUserInput = true; - - this.teleporter = new ItemStack(BlocksAether.aether_teleporter); - this.stone = new ItemStack(Blocks.STONE); - this.iron_ingot = new ItemStack(Items.IRON_INGOT); - } - - @Override - public void build(IGuiContext context) - { - this.setDrawDefaultBackground(true); - - this.getViewing().dim().mod().width(this.width).height(this.height).flush(); - - this.center = InputHelper.getCenter().clone().addX(-67).flush(); - - this.backdrop = new GuiTexture(Dim2D.build().width(200).height(134).pos(this.center).center(true).flush(), BACKDROP); - - this.matrix = new GuiTexture(Dim2D.build().width(111).height(68).pos(this.center).addX(170).center(true).flush(), MATRIX); - - this.title = new GuiText(Dim2D.build().pos(this.center).addX(-67).addY(-90).flush(), - new Text(new TextComponentTranslation("notice.holdUp"), 2.0F)); - - this.body = new GuiTextBox(Dim2D.build().pos(this.center).width(180).height(60).addX(-84).addY(-52).flush(), - false, new Text(new TextComponentTranslation( - "notice.body"), - 1.0F)); - - this.close = new GuiButtonVanilla(Dim2D.build().width(80).height(20).pos(this.center).addX(-84).addY(33).flush()); - - this.close.getInner().displayString = I18n.format("notice.gotcha"); - - context.addChildren(this.backdrop, this.matrix, this.body, this.title, this.close); - } - - @Override - public void drawScreen(int mouseX, int mouseY, float partialTicks) - { - this.drawDefaultBackground(); - super.drawScreen(mouseX, mouseY, partialTicks); - - GlStateManager.enableRescaleNormal(); - RenderHelper.enableGUIStandardItemLighting(); - GlStateManager.enableDepth(); - - GlStateManager.translate(0.5F, 0.5F, 0.0F); - - int x = (int) this.center.x() + 140; - int y = (int) this.center.y() - 8; - - Minecraft.getMinecraft().getRenderItem().renderItemIntoGUI(this.teleporter, x + 57, y); - - Minecraft.getMinecraft().getRenderItem().renderItemIntoGUI(this.stone, x + 18, y - 18); - Minecraft.getMinecraft().getRenderItem().renderItemIntoGUI(this.stone, x - 18, y + 18); - Minecraft.getMinecraft().getRenderItem().renderItemIntoGUI(this.stone, x + 18, y + 18); - Minecraft.getMinecraft().getRenderItem().renderItemIntoGUI(this.stone, x - 18, y - 18); - - Minecraft.getMinecraft().getRenderItem().renderItemIntoGUI(this.iron_ingot, x - 18, y); - Minecraft.getMinecraft().getRenderItem().renderItemIntoGUI(this.iron_ingot, x + 18, y); - Minecraft.getMinecraft().getRenderItem().renderItemIntoGUI(this.iron_ingot, x, y - 18); - Minecraft.getMinecraft().getRenderItem().renderItemIntoGUI(this.iron_ingot, x, y + 18); - - RenderHelper.disableStandardItemLighting(); - GlStateManager.disableRescaleNormal(); - } - - @Override - protected void mouseClicked(final int mouseX, final int mouseY, final int mouseButton) throws IOException - { - super.mouseClicked(mouseX, mouseY, mouseButton); - - if (InputHelper.isHovered(this.close)) - { - this.mc.displayGuiScreen(null); - } - } -} diff --git a/src/main/java/com/gildedgames/aether/client/gui/misc/GuiAetherUnsigned.java b/src/main/java/com/gildedgames/aether/client/gui/misc/GuiAetherUnsigned.java deleted file mode 100644 index 2e83ffe9ab..0000000000 --- a/src/main/java/com/gildedgames/aether/client/gui/misc/GuiAetherUnsigned.java +++ /dev/null @@ -1,113 +0,0 @@ -package com.gildedgames.aether.client.gui.misc; - -import com.gildedgames.aether.common.AetherCore; -import net.minecraft.client.gui.GuiButton; -import net.minecraft.client.gui.GuiScreen; -import net.minecraft.client.gui.ScaledResolution; -import net.minecraft.util.text.TextFormatting; -import net.minecraftforge.fml.client.config.GuiCheckBox; - -import javax.annotation.Nullable; -import java.io.IOException; -import java.net.URI; - -public class GuiAetherUnsigned extends GuiScreen -{ - private static final String CURSEFORGE_URL = "https://go.aetherii.com/curseforge"; - - private final GuiScreen parent; - - private GuiCheckBox checkbox; - - private GuiButton dlButton, ackButton; - - public GuiAetherUnsigned(@Nullable GuiScreen parent) - { - this.parent = parent; - } - - @Override - public void initGui() - { - ScaledResolution sr = new ScaledResolution(this.mc); - - this.checkbox = new GuiCheckBox(0, (sr.getScaledWidth() / 2) - 172, 180, "Yes, I understand this installation will not receive official support.", false); - - this.ackButton = new GuiButton(1, (sr.getScaledWidth() / 2) - 60, 204, 120, 20, "Acknowledge"); - this.ackButton.enabled = false; - - this.dlButton = new GuiButton(10, (sr.getScaledWidth() / 2) - 90, 104, 180, 20, "Download from CurseForge"); - - this.buttonList.add(this.checkbox); - this.buttonList.add(this.ackButton); - this.buttonList.add(this.dlButton); - - super.initGui(); - } - - @Override - public void drawScreen(int mouseX, int mouseY, float partialTicks) - { - String text1 = String.valueOf(TextFormatting.RED) + TextFormatting.BOLD + "Panic!" + TextFormatting.RESET + " An integrity check has failed!"; - - String[] desc = (TextFormatting.RED + "It appears you have downloaded the Aether II from an unofficial source.\n\n" - + "If you were not expecting this warning, you should immediately re-download\n" - + "the Aether II from our official CurseForge page. " + TextFormatting.RED + "Otherwise, you may run into\n" - + TextFormatting.RED + "issues which could cause instability, break your game, or corrupt your worlds.\n\n\n\n\n\n" - + "If you are a developer hacking on the code or otherwise know what you're\n" - + "doing, then you can ignore this warning at your risk. " + TextFormatting.RED + "Gilded Games will not\n" - + TextFormatting.RED + "provide support if you choose not to heed this warning.").split("\n"); - - ScaledResolution sr = new ScaledResolution(this.mc); - - this.drawDefaultBackground(); - this.drawString(this.fontRenderer, text1, (sr.getScaledWidth() / 2) - (this.fontRenderer.getStringWidth(text1) / 2), 20, 0xFFFFFF); - - for (int i = 0; i < desc.length; i++) - { - String str = desc[i]; - - this.drawString(this.fontRenderer, str, (sr.getScaledWidth() / 2) - (this.fontRenderer.getStringWidth(str) / 2), 40 + (i * 10), 0xFFFFFF); - } - - super.drawScreen(mouseX, mouseY, partialTicks); - - // Backup option in case the platform doesn't support opening links - if (this.dlButton.isMouseOver()) - { - this.drawHoveringText("Opens link in new window:\n" + TextFormatting.BLUE + CURSEFORGE_URL, mouseX, mouseY); - } - } - - @Override - protected void actionPerformed(GuiButton button) throws IOException - { - if (button.id == this.checkbox.id) - { - this.ackButton.enabled = this.checkbox.isChecked(); - } - else if (button.id == this.ackButton.id && this.ackButton.enabled) - { - AetherCore.CONFIG.acknowledgeFingerprintViolation = true; - - this.mc.displayGuiScreen(this.parent); - } - else if (button.id == this.dlButton.id) - { - // Prevents crashes on unsupported platforms - try - { - Class<?> oclass = Class.forName("java.awt.Desktop"); - - Object object = oclass.getMethod("getDesktop").invoke(null); - oclass.getMethod("browse", URI.class).invoke(object, new URI(CURSEFORGE_URL)); - } - catch (Throwable throwable) - { - AetherCore.LOGGER.error("Couldn't open link", throwable); - } - } - - super.actionPerformed(button); - } -} diff --git a/src/main/java/com/gildedgames/aether/client/gui/misc/GuiBlackScreen.java b/src/main/java/com/gildedgames/aether/client/gui/misc/GuiBlackScreen.java deleted file mode 100644 index 6f365de8d0..0000000000 --- a/src/main/java/com/gildedgames/aether/client/gui/misc/GuiBlackScreen.java +++ /dev/null @@ -1,22 +0,0 @@ -package com.gildedgames.aether.client.gui.misc; - -import net.minecraft.client.gui.GuiScreen; -import net.minecraft.client.renderer.GlStateManager; - -public class GuiBlackScreen extends GuiScreen -{ - @Override - public void drawScreen(int mouseX, int mouseY, float partialTicks) - { - GlStateManager.pushMatrix(); - - GlStateManager.disableDepth(); - - this.drawGradientRect(0, 0, this.width, this.height, 0xFF000000, 0xFF000000); - - GlStateManager.enableDepth(); - - GlStateManager.popMatrix(); - } - -} diff --git a/src/main/java/com/gildedgames/aether/client/gui/misc/GuiIntro.java b/src/main/java/com/gildedgames/aether/client/gui/misc/GuiIntro.java deleted file mode 100644 index 1e39123285..0000000000 --- a/src/main/java/com/gildedgames/aether/client/gui/misc/GuiIntro.java +++ /dev/null @@ -1,419 +0,0 @@ -package com.gildedgames.aether.client.gui.misc; - -import com.gildedgames.aether.client.events.listeners.gui.GuiLoadingListener; -import com.gildedgames.aether.client.gui.dialog.GuiNextArrow; -import com.gildedgames.aether.client.sound.AetherMusicManager; -import com.gildedgames.aether.common.AetherCore; -import com.gildedgames.aether.common.capabilities.entity.player.PlayerAether; -import com.gildedgames.aether.common.capabilities.entity.player.modules.PlayerTeleportingModule; -import com.gildedgames.aether.common.network.NetworkingAether; -import com.gildedgames.aether.common.network.packets.PacketCancelIntro; -import com.gildedgames.aether.common.network.packets.PacketSetPlayedIntro; -import com.gildedgames.orbis.lib.client.gui.data.Text; -import com.gildedgames.orbis.lib.client.gui.util.GuiText; -import com.gildedgames.orbis.lib.client.gui.util.GuiTextBox; -import com.gildedgames.orbis.lib.client.gui.util.GuiTexture; -import com.gildedgames.orbis.lib.client.gui.util.gui_library.GuiElement; -import com.gildedgames.orbis.lib.client.gui.util.gui_library.GuiViewerNoContainer; -import com.gildedgames.orbis.lib.client.gui.util.gui_library.IGuiContext; -import com.gildedgames.orbis.lib.client.gui.util.vanilla.GuiButtonVanilla; -import com.gildedgames.orbis.lib.client.rect.Dim2D; -import com.gildedgames.orbis.lib.client.rect.Pos2D; -import com.gildedgames.orbis.lib.util.InputHelper; -import net.minecraft.client.Minecraft; -import net.minecraft.client.audio.PositionedSoundRecord; -import net.minecraft.client.renderer.GlStateManager; -import net.minecraft.client.resources.I18n; -import net.minecraft.util.ResourceLocation; -import net.minecraft.util.SoundEvent; -import net.minecraft.util.text.TextComponentTranslation; -import org.lwjgl.input.Keyboard; -import org.lwjgl.opengl.GL11; - -import java.io.IOException; - -public class GuiIntro extends GuiViewerNoContainer -{ - private static final ResourceLocation GILDED_GAMES = AetherCore.getResource("textures/gui/intro/gg_logo.png"); - - private static final ResourceLocation HIGHLANDS = AetherCore.getResource("textures/gui/intro/highlands.png"); - - private static final ResourceLocation HUE_BACKGROUND = AetherCore.getResource("textures/gui/intro/hue_background.png"); - - private int tipIndex = 0; - - private GuiTexture ggLogo, highlands; - - private GuiNextArrow nextArrow; - - private GuiText proudlyPresents, holdToSkip; - - private GuiTextBox prologue, tip1, tip2, tip3, tip4; - - private GuiButtonVanilla yes, no; - - private long timeStarted, timeSinceHoldSkip, timeSinceStopSkip; - - private boolean playedMusic, startIntro, holding; - - private PositionedSoundRecord music; - - private int keyHeld = Keyboard.KEY_NONE; - - public GuiIntro() - { - super(new GuiElement(Dim2D.flush(), false)); - } - - private double getSecondsSinceStopSkip() - { - return (System.currentTimeMillis() - this.timeSinceStopSkip) / 1000.0D; - } - - private double getSecondsSinceHoldSkip() - { - return (System.currentTimeMillis() - this.timeSinceHoldSkip) / 1000.0D; - } - - private double getSecondsSinceStart() - { - return (System.currentTimeMillis() - this.timeStarted) / 1000.0D; - } - - @Override - public void onGuiClosed() - { - super.onGuiClosed(); - - this.mc.getSoundHandler().stopSound(this.music); - } - - @Override - public void build(IGuiContext context) - { - this.getViewing().dim().mod().width(this.width).height(this.height).flush(); - - final Pos2D center = InputHelper.getCenter(); - - this.ggLogo = new GuiTexture(Dim2D.build().scale(0.5F).width(256).height(242).center(true).pos(center).flush(), GILDED_GAMES); - this.highlands = new GuiTexture(Dim2D.build().scale(0.45F).width(512).height(235).center(true).pos(center).flush(), HIGHLANDS); - - this.proudlyPresents = new GuiText(Dim2D.build().center(true).pos(center).addY(70).flush(), - new Text(new TextComponentTranslation("intro.proudlyPresents"), 1.0F)); - - this.holdToSkip = new GuiText(Dim2D.build().pos(this.width - 65, this.height - 17).flush(), - new Text(new TextComponentTranslation("intro.holdToSkip"), 1.0F)); - - this.holdToSkip.build(this); - - this.holdToSkip.state().setVisible(false); - - this.prologue = new GuiTextBox(Dim2D.build().center(true).pos(center).width(300).addY(30).flush(), false, - new Text(new TextComponentTranslation( - "intro.prologue"), - 1.0F)); - - this.tip1 = new GuiTextBox(Dim2D.build().center(true).pos(center).width(300).flush(), false, - new Text(new TextComponentTranslation( - "intro.tip1"), - 1.0F)); - - this.tip2 = new GuiTextBox(Dim2D.build().center(true).pos(center).width(300).flush(), false, - new Text(new TextComponentTranslation( - "intro.tip2"), - 1.0F)); - - this.tip3 = new GuiTextBox(Dim2D.build().center(true).pos(center).width(300).flush(), false, - new Text(new TextComponentTranslation( - "intro.tip3"), - 1.0F)); - - this.tip4 = new GuiTextBox(Dim2D.build().center(true).pos(center).width(300).flush(), false, - new Text(new TextComponentTranslation( - "intro.tip4"), - 1.0F)); - - this.ggLogo.build(this); - - this.ggLogo.state().setVisible(false); - - this.nextArrow = new GuiNextArrow(); - - this.nextArrow.dim().mod().center(true).pos(center).addY(-7).addX(-170).flush(); - - this.proudlyPresents.dim().mod().addX(3).flush(); - - this.yes = new GuiButtonVanilla(Dim2D.build().width(80).height(20).center(true).pos(center).addX(5).flush()); - this.no = new GuiButtonVanilla(Dim2D.build().width(80).height(20).center(true).pos(center).addX(95).flush()); - - this.yes.getInner().displayString = I18n.format("intro.yes"); - this.no.getInner().displayString = I18n.format("intro.no"); - - context.addChildren(this.ggLogo, this.proudlyPresents, this.highlands, this.prologue, this.tip1, this.tip2, this.tip3, this.tip4, this.nextArrow, - this.holdToSkip, this.yes, this.no); - - this.proudlyPresents.state().setVisible(false); - this.prologue.state().setVisible(false); - this.highlands.state().setVisible(false); - - this.nextArrow.state().setVisible(false); - this.tip1.state().setVisible(false); - this.tip2.state().setVisible(false); - this.tip3.state().setVisible(false); - this.tip4.state().setVisible(false); - - this.yes.state().setVisible(false); - this.no.state().setVisible(false); - } - - @Override - public void drawScreen(int mouseX, int mouseY, float partialTicks) - { - final int bg = 0xFF000000; - - this.drawGradientRect(0, 0, this.width, this.height, bg, bg); - - preventInnerTyping(); - - if (this.startIntro && this.holding && !Keyboard.isKeyDown(this.keyHeld) && this.keyHeld != Keyboard.KEY_NONE) - { - this.timeSinceStopSkip = System.currentTimeMillis(); - this.holding = false; - this.keyHeld = Keyboard.KEY_NONE; - } - - if (!this.startIntro) - { - this.tip1.state().setVisible(this.tipIndex == 0); - this.tip2.state().setVisible(this.tipIndex == 1); - this.tip3.state().setVisible(this.tipIndex == 2); - this.tip4.state().setVisible(this.tipIndex == 3); - - this.nextArrow.state().setVisible(this.tipIndex != 3); - - this.yes.state().setVisible(this.tipIndex == 3); - this.no.state().setVisible(this.tipIndex == 3); - - super.drawScreen(mouseX, mouseY, partialTicks); - - return; - } - - if (this.getSecondsSinceStart() >= 1) - { - final float alpha = (float) Math.min(1.0F, this.getSecondsSinceHoldSkip()); - - if (this.holding) - { - this.holdToSkip.state().setAlpha(alpha); - } - else - { - final float combined = (float) Math.max(0.0F, alpha - this.getSecondsSinceStopSkip()); - - this.holdToSkip.state().setAlpha(combined); - } - - this.holdToSkip.state().setVisible(true); - - if (this.holding && this.getSecondsSinceHoldSkip() >= 2.5) - { - GuiLoadingListener.drawBlackFade(10.0D); - Minecraft.getMinecraft().displayGuiScreen(null); - - Minecraft.getMinecraft().getSoundHandler().stopSounds(); - - PlayerAether.getPlayer(this.mc.player).getModule(PlayerTeleportingModule.class).setPlayedIntro(true); - NetworkingAether.sendPacketToServer(new PacketSetPlayedIntro(true)); - - GuiLoadingListener.setDrawBlackScreen(false); - - return; - } - } - - if (this.getSecondsSinceStart() <= 15) - { - final float fade = Math.min(1.0F, (float) ((this.getSecondsSinceStart()) / 15.0D)); - - this.ggLogo.state().setAlpha(fade); - this.ggLogo.state().setVisible(true); - - if (this.getSecondsSinceStart() >= 10) - { - this.proudlyPresents.state().setAlpha(Math.min(1.0F, Math.max(0.0F, (float) ((this.getSecondsSinceStart() - 10) / 5.0D)))); - - this.proudlyPresents.state().setVisible(true); - } - else - { - this.proudlyPresents.state().setVisible(false); - } - } - else if (this.getSecondsSinceStart() <= 20) - { - final float fade = Math.max(0.0F, 1.0F - Math.min(1.0F, (float) ((this.getSecondsSinceStart() - 15) / 5.0D))); - - this.ggLogo.state().setAlpha(fade); - this.proudlyPresents.state().setAlpha(fade); - } - else - { - this.ggLogo.state().setVisible(false); - this.proudlyPresents.state().setVisible(false); - } - - if (this.getSecondsSinceStart() >= 20 && this.getSecondsSinceStart() < 30) - { - final float alpha = (float) Math.min(1.0F, (this.getSecondsSinceStart() - 20) / 10.0D); - - this.highlands.state().setAlpha(alpha); - - this.highlands.state().setVisible(true); - } - - if (this.getSecondsSinceStart() >= 30) - { - final float dif = (float) ((this.getSecondsSinceStart() - 30D) * 10.0D); - - this.highlands.dim().mod().y(InputHelper.getCenter().y() - Math.min(55, dif)).flush(); - - GlStateManager.pushMatrix(); - - float alpha = Math.min(1.0F, (float) ((this.getSecondsSinceStart() - 30D) / 10.0D)); - float pAlpha = Math.min(1.0F, (float) ((this.getSecondsSinceStart() - 34D) / 8.5D)); - - if (this.getSecondsSinceStart() >= 42.5D) - { - pAlpha = alpha = Math.min(1.0F, 1.0F - (float) ((this.getSecondsSinceStart() - 42.5D) / 10.0D)); - - this.highlands.state().setAlpha(alpha); - } - - this.prologue.state().setAlpha(pAlpha); - this.prologue.state().setVisible(true); - - GlStateManager.enableBlend(); - GlStateManager.blendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - GlStateManager - .tryBlendFuncSeparate(GlStateManager.SourceFactor.SRC_ALPHA, GlStateManager.DestFactor.ONE_MINUS_SRC_ALPHA, - GlStateManager.SourceFactor.ZERO, - GlStateManager.DestFactor.ONE); - - GL11.glEnable(GL11.GL_ALPHA_TEST); - - GlStateManager.enableAlpha(); - - GlStateManager.color(1.0F, 1.0F, 1.0F, alpha); - - this.mc.getTextureManager().bindTexture(HUE_BACKGROUND); - - drawModalRectWithCustomSizedTexture(0, 0, 0, 0, this.width, - this.height, - this.width, this.height); - - GlStateManager.popMatrix(); - } - - if (this.getSecondsSinceStart() >= 60) - { - PlayerAether.getPlayer(this.mc.player).getModule(PlayerTeleportingModule.class).setPlayedIntro(true); - NetworkingAether.sendPacketToServer(new PacketSetPlayedIntro(true)); - - GuiLoadingListener.setDrawBlackScreen(false); - - GuiLoadingListener.drawBlackFade(10.0D); - Minecraft.getMinecraft().displayGuiScreen(null); - } - - if (!this.playedMusic) - { - Minecraft.getMinecraft().getSoundHandler().stopSounds(); - this.music = PositionedSoundRecord.getMusicRecord(new SoundEvent(AetherCore.getResource("music.intro"))); - this.mc.getSoundHandler().playSound(this.music); - this.playedMusic = true; - } - - super.drawScreen(mouseX, mouseY, partialTicks); - } - - @Override - protected void keyTyped(final char typedChar, final int keyCode) throws IOException - { - if (!this.startIntro) - { - this.advanceTips(); - } - else - { - this.timeSinceHoldSkip = System.currentTimeMillis(); - this.holding = true; - this.keyHeld = keyCode; - } - } - - private void advanceTips() - { - if (this.tipIndex == 3) - { - if (InputHelper.isHovered(this.no)) - { - NetworkingAether.sendPacketToServer(new PacketCancelIntro()); - Minecraft.getMinecraft().displayGuiScreen(new GuiBlackScreen()); - - GuiLoadingListener.setDrawBlackScreen(false); - - return; - } - - if (!InputHelper.isHovered(this.yes)) - { - return; - } - } - - if (this.tipIndex >= 3) - { - this.nextArrow.state().setVisible(false); - this.tip4.state().setVisible(false); - this.yes.state().setVisible(false); - this.no.state().setVisible(false); - - this.startIntro = true; - - this.timeStarted = System.currentTimeMillis(); - } - - this.tipIndex++; - } - - @Override - protected void mouseClicked(final int mouseX, final int mouseY, final int mouseButton) throws IOException - { - super.mouseClicked(mouseX, mouseY, mouseButton); - - if (!this.startIntro) - { - this.advanceTips(); - } - else - { - this.timeSinceHoldSkip = System.currentTimeMillis(); - this.holding = true; - } - - } - - @Override - protected void mouseReleased(final int mouseX, final int mouseY, final int state) - { - super.mouseReleased(mouseX, mouseY, state); - - if (this.startIntro) - { - this.timeSinceStopSkip = System.currentTimeMillis(); - this.holding = false; - } - } - -} diff --git a/src/main/java/com/gildedgames/aether/client/gui/misc/GuiPatronRewardEntry.java b/src/main/java/com/gildedgames/aether/client/gui/misc/GuiPatronRewardEntry.java deleted file mode 100644 index 71400e8c67..0000000000 --- a/src/main/java/com/gildedgames/aether/client/gui/misc/GuiPatronRewardEntry.java +++ /dev/null @@ -1,67 +0,0 @@ -package com.gildedgames.aether.client.gui.misc; - -import com.gildedgames.aether.common.AetherCore; -import com.gildedgames.orbis.lib.client.gui.data.Text; -import com.gildedgames.orbis.lib.client.gui.util.GuiAbstractButton; -import com.gildedgames.orbis.lib.client.gui.util.GuiText; -import com.gildedgames.orbis.lib.client.gui.util.GuiTexture; -import com.gildedgames.orbis.lib.client.gui.util.gui_library.GuiElement; -import com.gildedgames.orbis.lib.client.rect.Dim2D; -import net.minecraft.client.resources.I18n; -import net.minecraft.util.ResourceLocation; -import net.minecraft.util.text.TextComponentString; - -public class GuiPatronRewardEntry extends GuiElement -{ - private static final ResourceLocation BUTTON = AetherCore.getResource("textures/gui/patron/reward_button.png"); - - private static final ResourceLocation BUTTON_HOVERED = AetherCore.getResource("textures/gui/patron/reward_button_hovered.png"); - - public static int SELECTED_INDEX = -1; - - private final String name; - - private final ResourceLocation icon; - - private final int index; - - private GuiAbstractButton button; - - /** - * @param name The text for ths button - * @param icon Has to be a 16x16 icon - */ - public GuiPatronRewardEntry(String name, ResourceLocation icon, int index) - { - super(Dim2D.build().width(110).height(22).flush(), true); - - this.name = name; - this.icon = icon; - this.index = index; - } - - @Override - public void build() - { - GuiTexture icon = new GuiTexture(Dim2D.build().x(4).y(3).width(16).height(16).flush(), this.icon); - - this.button = new GuiAbstractButton(Dim2D.build().width(110).height(22).flush(), - new GuiTexture(Dim2D.build().width(110).height(22).flush(), BUTTON), - new GuiTexture(Dim2D.build().width(110).height(22).flush(), BUTTON_HOVERED), - new GuiTexture(Dim2D.build().width(110).height(22).flush(), BUTTON)); - - this.button.addClickEvent(() -> SELECTED_INDEX = this.index); - - GuiText text = new GuiText( - Dim2D.build().centerY(true).x(25).y(this.dim().originalState().height() / 2).addY(2).flush(), - new Text(new TextComponentString(I18n.format(this.name)), 1.0F)); - - this.context().addChildren(this.button, text, icon); - } - - @Override - public void onDraw(GuiElement element) - { - this.button.setSelected(this.index == SELECTED_INDEX); - } -} diff --git a/src/main/java/com/gildedgames/aether/client/gui/misc/GuiPatronRewards.java b/src/main/java/com/gildedgames/aether/client/gui/misc/GuiPatronRewards.java deleted file mode 100644 index 76e70a1fb5..0000000000 --- a/src/main/java/com/gildedgames/aether/client/gui/misc/GuiPatronRewards.java +++ /dev/null @@ -1,229 +0,0 @@ -package com.gildedgames.aether.client.gui.misc; - -import com.gildedgames.aether.api.AetherAPI; -import com.gildedgames.aether.api.patron.IPatronReward; -import com.gildedgames.aether.common.AetherCore; -import com.gildedgames.aether.common.capabilities.entity.player.PlayerAether; -import com.gildedgames.aether.common.capabilities.entity.player.modules.PlayerPatronRewardModule; -import com.gildedgames.aether.common.patron.PatronChoices; -import com.gildedgames.aether.common.patron.PatronRewards; -import com.gildedgames.aether.common.patron.armor.PatronRewardArmor; -import com.gildedgames.orbis.lib.client.gui.data.Text; -import com.gildedgames.orbis.lib.client.gui.data.list.IListNavigator; -import com.gildedgames.orbis.lib.client.gui.data.list.IListNavigatorListener; -import com.gildedgames.orbis.lib.client.gui.data.list.ListNavigator; -import com.gildedgames.orbis.lib.client.gui.util.GuiAbstractButton; -import com.gildedgames.orbis.lib.client.gui.util.GuiText; -import com.gildedgames.orbis.lib.client.gui.util.GuiTexture; -import com.gildedgames.orbis.lib.client.gui.util.gui_library.GuiElement; -import com.gildedgames.orbis.lib.client.gui.util.gui_library.GuiViewer; -import com.gildedgames.orbis.lib.client.gui.util.gui_library.IGuiContext; -import com.gildedgames.orbis.lib.client.gui.util.list.GuiListViewer; -import com.gildedgames.orbis.lib.client.rect.Dim2D; -import com.gildedgames.orbis.lib.client.rect.Pos2D; -import com.gildedgames.orbis.lib.util.InputHelper; -import net.minecraft.client.Minecraft; -import net.minecraft.client.renderer.GlStateManager; -import net.minecraft.util.ResourceLocation; -import net.minecraft.util.text.TextComponentString; -import net.minecraft.util.text.TextComponentTranslation; - -import java.io.IOException; -import java.util.Comparator; - -public class GuiPatronRewards extends GuiViewer implements IListNavigatorListener<IPatronReward> -{ - private static final ResourceLocation BACKDROP = AetherCore.getResource("textures/gui/patron/backdrop.png"); - - private static final ResourceLocation QUESTION = AetherCore.getResource("textures/gui/patron/reward_question.png"); - - private static final ResourceLocation QUESTION_HOVERED = AetherCore.getResource("textures/gui/patron/reward_question_hovered.png"); - - private static final ResourceLocation USE = AetherCore.getResource("textures/gui/patron/reward_use.png"); - - private static final ResourceLocation USE_HOVERED = AetherCore.getResource("textures/gui/patron/reward_use_hovered.png"); - - private GuiListViewer<IPatronReward, GuiPatronRewardEntry> rewardViewer; - - private final IListNavigator<IPatronReward> rewards = new ListNavigator<>(); - - private GuiText patronRewardText; - - private GuiAbstractButton use, question; - - private GuiTexture backdrop; - - private IPatronReward selected; - - private final PatronRewardArmor defaultArmor = new PatronRewardArmor("aether.reward.none.name", PatronRewards.armorIcon("none"), null, null, null, (d) -> true); - - private GuiText useText; - - private final PlayerPatronRewardModule patronRewards; - - private final Text useString = new Text(new TextComponentTranslation("gui.aether.patreon.rewards.button.use"), 1.0F); - - private final Text lockedString = new Text(new TextComponentTranslation("gui.aether.patreon.rewards.button.locked"), 1.0F); - - public GuiPatronRewards() - { - super(new GuiElement(Dim2D.flush(), false)); - - PlayerAether playerAether = PlayerAether.getPlayer(Minecraft.getMinecraft().player); - - this.patronRewards = playerAether.getModule(PlayerPatronRewardModule.class); - - this.allowUserInput = true; - } - - @Override - public void onGuiClosed() - { - super.onGuiClosed(); - - GuiPatronRewardEntry.SELECTED_INDEX = -1; - } - - @Override - public void build(IGuiContext context) - { - this.setDrawDefaultBackground(true); - - this.getViewing().dim().mod().width(this.width).height(this.height).flush(); - - final Pos2D center = InputHelper.getCenter().clone().addY(10).flush(); - - this.backdrop = new GuiTexture(Dim2D.build().width(256).height(213).pos(center).center(true).flush(), BACKDROP); - - this.patronRewardText = new GuiText(Dim2D.build().pos(center).addX(-83).addY(-89).flush(), - new Text(new TextComponentString("Cosmetic Patron Rewards"), 1.0F)); - - this.use = new GuiAbstractButton(Dim2D.build().pos(center).addX(16).addY(61).width(70).height(21).flush(), - new GuiTexture(Dim2D.build().width(70).height(21).flush(), USE), - new GuiTexture(Dim2D.build().width(70).height(21).flush(), USE_HOVERED), - new GuiTexture(Dim2D.build().width(70).height(21).flush(), USE), - new GuiTexture(Dim2D.build().width(70).height(21).flush(), USE_HOVERED)); - - this.useText = new GuiText( - Dim2D.build().x(this.use.dim().originalState().width() / 2).y(this.use.dim().originalState().height() / 2).addY(1).center(true).flush(), - this.useString); - - this.question = new GuiAbstractButton(Dim2D.build().pos(center).addX(92).addY(61).width(21).height(21).flush(), - new GuiTexture(Dim2D.build().width(21).height(21).flush(), QUESTION), - new GuiTexture(Dim2D.build().width(21).height(21).flush(), QUESTION_HOVERED), - new GuiTexture(Dim2D.build().width(21).height(21).flush(), QUESTION)); - - this.rewardViewer = new GuiListViewer<> - ( - Dim2D.build().width(110).height(154).pos(center).addX(-100).addY(-71).flush(), - navigator -> navigator.getNodes().inverse().values().stream().max(Comparator.naturalOrder()) - .orElse(-1) + 1, - this.rewards, - (pos, node, index) -> - { - GuiPatronRewardEntry entry = new GuiPatronRewardEntry(node.getUnlocalizedName(), node.getRewardIcon(), index); - - entry.dim().mod().pos(pos).flush(); - - return entry; - }, - i -> null, - 22 - ).allowModifications(false); - - this.rewards.addListener(this); - - this.rewards.put(this.defaultArmor, 0, false); - - int i = 1; - - for (IPatronReward reward : AetherAPI.content().patronRewards().getRewards()) - { - this.rewards.put(reward, i, false); - - i++; - } - - context.addChildren(this.backdrop, this.patronRewardText, this.use, this.question, this.rewardViewer); - - this.use.context().addChildren(this.useText); - } - - @Override - public void drawScreen(int mouseX, int mouseY, float partialTicks) - { - this.drawDefaultBackground(); - super.drawScreen(mouseX, mouseY, partialTicks); - - if (this.selected != null) - { - GlStateManager.pushMatrix(); - - this.selected.getPreviewRenderer().renderPreview((this.width / 2) + 64, (this.height / 2) + 40); - - GlStateManager.popMatrix(); - } - } - - @Override - public void drawElements() - { - super.drawElements(); - - if (this.selected != null) - { - if (this.selected.isUnlocked(this.patronRewards.getFeatures())) - { - this.useText.setText(this.useString); - this.use.state().setEnabled(true); - } - else - { - this.useText.setText(this.lockedString); - this.use.state().setEnabled(false); - } - } - } - - @Override - protected void mouseClicked(final int mouseX, final int mouseY, final int mouseButton) throws IOException - { - super.mouseClicked(mouseX, mouseY, mouseButton); - - if (InputHelper.isHovered(this.use)) - { - if (this.selected instanceof PatronRewardArmor) - { - PatronChoices choices = this.patronRewards.getChoices(); - - if (this.selected == this.defaultArmor) - { - choices.setArmorChoice(null); - } - else if (choices.getArmorChoice() != this.selected) - { - choices.setArmorChoice((PatronRewardArmor) this.selected); - } - } - } - } - - @Override - public void onRemoveNode(IPatronReward node, int index) - { - - } - - @Override - public void onAddNode(IPatronReward node, int index, boolean newNode) - { - - } - - @Override - public void onNodeClicked(IPatronReward node, int index) - { - this.selected = node; - this.selected.getPreviewRenderer().renderInit(); - } -} diff --git a/src/main/java/com/gildedgames/aether/client/gui/misc/GuiScrollableGuidebook.java b/src/main/java/com/gildedgames/aether/client/gui/misc/GuiScrollableGuidebook.java deleted file mode 100644 index 0d2df87dfe..0000000000 --- a/src/main/java/com/gildedgames/aether/client/gui/misc/GuiScrollableGuidebook.java +++ /dev/null @@ -1,359 +0,0 @@ -package com.gildedgames.aether.client.gui.misc; - -import com.gildedgames.aether.common.AetherCore; -import com.gildedgames.orbis.lib.client.gui.util.GuiTexture; -import com.gildedgames.orbis.lib.client.gui.util.gui_library.*; -import com.gildedgames.orbis.lib.client.rect.Dim2D; -import com.gildedgames.orbis.lib.client.rect.Rect; -import com.gildedgames.orbis.lib.client.rect.RectModifier; -import net.minecraft.client.gui.ScaledResolution; -import net.minecraft.inventory.ClickType; -import net.minecraft.inventory.Slot; -import net.minecraft.util.ResourceLocation; -import org.lwjgl.opengl.GL11; - -public class GuiScrollableGuidebook extends GuiElement -{ - private static final ResourceLocation SCROLL_KNOB = AetherCore.getResource("textures/gui/guidebook/guidebook_scroll_knob.png"); - - private static final ResourceLocation SCROLL_KNOB_DISABLED = AetherCore.getResource("textures/gui/guidebook/guidebook_scroll_knob_disabled.png"); - - private static final ResourceLocation SCROLL_BAR = AetherCore.getResource("textures/gui/guidebook/guidebook_scroll_bar.png"); - - private final boolean scrollBarOnRightSide; - - private IGuiElement window; - - private final IGuiEvent<IGuiElement> scissorEvent = new IGuiEvent<IGuiElement>() - { - @Override - public void onPreDraw(final IGuiElement element) - { - final ScaledResolution res = new ScaledResolution(GuiScrollableGuidebook.this.viewer().mc()); - final IGuiViewer viewer = GuiScrollableGuidebook.this.viewer(); - - final double scaleW = viewer.mc().displayWidth / res.getScaledWidth_double(); - final double scaleH = viewer.mc().displayHeight / res.getScaledHeight_double(); - - final IGuiElement window = GuiScrollableGuidebook.this.window; - final boolean rightBar = GuiScrollableGuidebook.this.scrollBarOnRightSide; - final double scrollBarWidth = GuiScrollableGuidebook.this.scrollBar.dim().width(); - - final double windowWidth = window.dim().width(); - final double windowHeight = window.dim().height(); - - final int scissorX = (int) ((window.dim().x()) * scaleW); - final int scissorY = (int) (viewer.mc().displayHeight - ((window.dim().y() + window.dim().height()) * scaleH)); - final int scissorWidth = (int) ((window.dim().width() - (rightBar ? scrollBarWidth : 0)) * scaleW); - final int scissorHeight = (int) (window.dim().height() * scaleH); - - GL11.glEnable(GL11.GL_SCISSOR_TEST); - - if (!(windowWidth < 0 || windowHeight < 0)) - { - GL11.glScissor(scissorX, scissorY, scissorWidth, scissorHeight); - } - } - - @Override - public void onPostDraw(final IGuiElement element) - { - GL11.glDisable(GL11.GL_SCISSOR_TEST); - } - - @Override - public void onMouseClicked(final IGuiElement element, final int mouseX, final int mouseY, final int mouseButton) - { - - } - - @Override - public boolean isMouseClickedEnabled(final IGuiElement element, final int mouseX, final int mouseY, final int mouseButton) - { - final boolean enabled = element == GuiScrollableGuidebook.this.window || GuiScrollableGuidebook.this.window.state().isHovered(); - - if (!enabled) - { - for (final IGuiEvent event : element.state().getEvents()) - { - if (event instanceof IInputEnabledOutsideBounds) - { - final IInputEnabledOutsideBounds input = (IInputEnabledOutsideBounds) event; - - input.onMouseClickedOutsideBounds(element, mouseX, mouseY, mouseButton); - - return false; - } - } - } - - return enabled; - } - - @Override - public boolean isMouseClickMoveEnabled(final IGuiElement element, final int mouseX, final int mouseY, final int clickedMouseButton, - final long timeSinceLastClick) - { - final boolean enabled = element == GuiScrollableGuidebook.this.window || GuiScrollableGuidebook.this.window.state().isHovered(); - - if (!enabled) - { - for (final IGuiEvent event : element.state().getEvents()) - { - if (event instanceof IInputEnabledOutsideBounds) - { - final IInputEnabledOutsideBounds input = (IInputEnabledOutsideBounds) event; - - input.onMouseClickMoveOutsideBounds(element, mouseX, mouseY, clickedMouseButton, timeSinceLastClick); - - return false; - } - } - } - - return enabled; - } - - @Override - public boolean isMouseReleasedEnabled(final IGuiElement element, final int mouseX, final int mouseY, final int state) - { - final boolean enabled = element == GuiScrollableGuidebook.this.window || GuiScrollableGuidebook.this.window.state().isHovered(); - - if (!enabled) - { - for (final IGuiEvent event : element.state().getEvents()) - { - if (event instanceof IInputEnabledOutsideBounds) - { - final IInputEnabledOutsideBounds input = (IInputEnabledOutsideBounds) event; - - input.onMouseReleasedOutsideBounds(element, mouseX, mouseY, state); - - return false; - } - } - } - - return enabled; - } - - @Override - public boolean isMouseWheelEnabled(final IGuiElement element, final int state) - { - final boolean enabled = element == GuiScrollableGuidebook.this.window || GuiScrollableGuidebook.this.window.state().isHovered(); - - if (!enabled) - { - for (final IGuiEvent event : element.state().getEvents()) - { - if (event instanceof IInputEnabledOutsideBounds) - { - final IInputEnabledOutsideBounds input = (IInputEnabledOutsideBounds) event; - - input.onMouseWheelOutsideBounds(element, state); - } - } - } - - return enabled; - } - - @Override - public boolean isHandleMouseClickEnabled(final IGuiElement element, final Slot slotIn, final int slotId, final int mouseButton, final ClickType type) - { - final boolean enabled = element == GuiScrollableGuidebook.this.window || GuiScrollableGuidebook.this.window.state().isHovered(); - - if (!enabled) - { - for (final IGuiEvent event : element.state().getEvents()) - { - if (event instanceof IInputEnabledOutsideBounds) - { - final IInputEnabledOutsideBounds input = (IInputEnabledOutsideBounds) event; - - input.onHandleMouseClickOutsideBounds(element, slotIn, slotId, mouseButton, type); - - return false; - } - } - } - - return enabled; - } - - @Override - public boolean canBeHovered(final IGuiElement element) - { - for (final IGuiEvent event : element.state().getEvents()) - { - if (event instanceof IInputEnabledOutsideBounds) - { - if (((IInputEnabledOutsideBounds) event).shouldHoverOutsideBounds(element)) - { - return true; - } - } - } - - return element == GuiScrollableGuidebook.this.window || GuiScrollableGuidebook.this.window.state().isHovered(); - } - }; - - private IGuiElement pane; - - private IGuiElement decorated; - - private float scroll; - - private GuiTexture scrollKnob, scrollBar; - - public GuiScrollableGuidebook(final IGuiElement decorated, final Rect pane) - { - this(decorated, pane, false); - } - - public GuiScrollableGuidebook(final IGuiElement decorated, final Rect pane, final boolean scrollBarOnRightSide) - { - super(pane, true); - - this.scrollBarOnRightSide = scrollBarOnRightSide; - - this.setDecorated(decorated); - } - - public void setDecorated(final IGuiElement decorated) - { - this.dim().mod().x(decorated.dim().x()).y(decorated.dim().y()).flush(); - - this.decorated = decorated; - - this.window = new GuiElement(Dim2D.build().width(0).x(0).y(0).flush(), false); - this.pane = new GuiElement(Dim2D.build().x(this.scrollBarOnRightSide ? 0 : 16).y(0).flush(), false); - - this.window.dim().add("scrollableArea", this, RectModifier.ModifierType.AREA); - this.pane.dim().add("scrollableArea", this, RectModifier.ModifierType.AREA); - - this.tryRebuild(); - } - - public float getScrollBarWidth() - { - return this.scrollBar.dim().width(); - } - - @Override - public void build() - { - this.decorated.dim().mod().x(0).y(0).flush(); - - this.pane.build(this.viewer()); - - this.pane.context().addChildren(this.decorated); - - this.scrollKnob = new GuiTexture(Dim2D.build().width(6).height(9).x(1).y(1).flush(), SCROLL_KNOB); - this.scrollBar = new GuiTexture(Dim2D.build().width(8).flush(), SCROLL_BAR); - - if (this.scrollBarOnRightSide) - { - this.scrollBar.dim().mod().x(this.dim().width() - this.scrollBar.dim().width()).flush(); - this.scrollKnob.dim().mod().x(this.scrollBar.dim().x() + 1).flush(); - } - - this.scrollBar.dim().add("scrollableHeight", this, RectModifier.ModifierType.HEIGHT); - - this.context().addChildren(this.window, this.pane, this.scrollBar, this.scrollKnob); - - this.window.state().setCanBeTopHoverElement(true); - } - - @Override - public void onGlobalContextChanged(final GuiElement element) - { - for (final IGuiElement child : GuiLibHelper.getAllChildrenRecursivelyFor(this.decorated)) - { - child.state().addEvent(this.scissorEvent); - } - } - - @Override - public void onDraw(final GuiElement element) - { - if (this.dim().height() >= this.decorated.dim().height()) - { - this.scrollKnob.setResourceLocation(SCROLL_KNOB_DISABLED); - } - else - { - this.scrollKnob.setResourceLocation(SCROLL_KNOB); - } - } - - @Override - public void onMouseWheel(final GuiElement element, final int state) - { - if (this.window.state().isHoveredAndTopElement()) - { - final float height = this.decorated.dim().height() - this.dim().height(); - - this.scroll -= (float) (state / 120) * 10.0F; - - this.scroll = Math.max(0.0F, Math.min(height, this.scroll)); - - this.pane.dim().mod().y(-this.scroll).flush(); - - final float percent = this.scroll / height; - final float yScrollBarPadding = 1; - final float y = percent * (this.dim().height() - this.scrollKnob.dim().height() - (yScrollBarPadding * 2)); - - this.scrollKnob.dim().mod().y(y + yScrollBarPadding).flush(); - } - } - - public void resetScroll() - { - this.pane.dim().mod().y(0).flush(); - - this.scrollKnob.dim().mod().y(1).flush(); - - this.scroll = 0.0F; - } - - public interface IInputEnabledOutsideBounds<T extends IGuiElement> - { - default void onMouseClickedOutsideBounds(final T element, final int mouseX, final int mouseY, final int mouseButton) - { - - } - - default void onMouseClickMoveOutsideBounds(final T element, final int mouseX, final int mouseY, final int clickedMouseButton, - final long timeSinceLastClick) - { - - } - - default void onMouseReleasedOutsideBounds(final T element, final int mouseX, final int mouseY, final int state) - { - - } - - default void onMouseWheelOutsideBounds(final T element, final int state) - { - - } - - default void onHandleMouseClickOutsideBounds(final T element, final Slot slotIn, final int slotId, final int mouseButton, final ClickType type) - { - - } - - default boolean shouldHoverOutsideBounds(final T element) - { - return false; - } - } - - public static class InputEnabledOutsideBounds<T extends IGuiElement> implements IGuiEvent<T>, IInputEnabledOutsideBounds<T> - { - - } -} diff --git a/src/main/java/com/gildedgames/aether/client/gui/misc/GuiSkyrootSign.java b/src/main/java/com/gildedgames/aether/client/gui/misc/GuiSkyrootSign.java deleted file mode 100644 index c2b7537709..0000000000 --- a/src/main/java/com/gildedgames/aether/client/gui/misc/GuiSkyrootSign.java +++ /dev/null @@ -1,184 +0,0 @@ -package com.gildedgames.aether.client.gui.misc; - -import com.gildedgames.aether.api.registrar.BlocksAether; -import net.minecraft.block.Block; -import net.minecraft.client.gui.GuiButton; -import net.minecraft.client.gui.GuiScreen; -import net.minecraft.client.network.NetHandlerPlayClient; -import net.minecraft.client.renderer.GlStateManager; -import net.minecraft.client.renderer.tileentity.TileEntityRendererDispatcher; -import net.minecraft.client.resources.I18n; -import net.minecraft.network.play.client.CPacketUpdateSign; -import net.minecraft.tileentity.TileEntitySign; -import net.minecraft.util.ChatAllowedCharacters; -import net.minecraft.util.text.TextComponentString; -import org.lwjgl.input.Keyboard; - -public class GuiSkyrootSign extends GuiScreen -{ - /** Reference to the sign object. */ - private final TileEntitySign tileSign; - - /** Counts the number of screen updates. */ - private int updateCounter; - - /** The index of the line that is being edited. */ - private int editLine; - - /** "Done" button for the GUI. */ - private GuiButton doneBtn; - - public GuiSkyrootSign(TileEntitySign teSign) - { - this.tileSign = teSign; - } - - /** - * Adds the buttons (and other controls) to the screen in question. Called when the GUI is displayed and when the - * window resizes, the buttonList is cleared beforehand. - */ - @Override - public void initGui() - { - this.buttonList.clear(); - Keyboard.enableRepeatEvents(true); - this.doneBtn = this.addButton(new GuiButton(0, this.width / 2 - 100, this.height / 4 + 120, I18n.format("gui.done"))); - this.tileSign.setEditable(false); - } - - /** - * Called when the screen is unloaded. Used to disable keyboard repeat events - */ - @Override - public void onGuiClosed() - { - Keyboard.enableRepeatEvents(false); - NetHandlerPlayClient nethandlerplayclient = this.mc.getConnection(); - - if (nethandlerplayclient != null) - { - nethandlerplayclient.sendPacket(new CPacketUpdateSign(this.tileSign.getPos(), this.tileSign.signText)); - } - - this.tileSign.setEditable(true); - } - - /** - * Called from the main game loop to update the screen. - */ - @Override - public void updateScreen() - { - ++this.updateCounter; - } - - /** - * Called by the controls from the buttonList when activated. (Mouse pressed for buttons) - */ - @Override - protected void actionPerformed(GuiButton button) - { - if (button.enabled) - { - if (button.id == 0) - { - this.tileSign.markDirty(); - this.mc.displayGuiScreen(null); - } - } - } - - /** - * Fired when a key is typed (except F11 which toggles full screen). This is the equivalent of - * KeyListener.keyTyped(KeyEvent e). Args : character (character on the key), keyCode (lwjgl Keyboard key code) - */ - @Override - protected void keyTyped(char typedChar, int keyCode) - { - if (keyCode == 200) - { - this.editLine = this.editLine - 1 & 3; - } - - if (keyCode == 208 || keyCode == 28 || keyCode == 156) - { - this.editLine = this.editLine + 1 & 3; - } - - String s = this.tileSign.signText[this.editLine].getUnformattedText(); - - if (keyCode == 14 && !s.isEmpty()) - { - s = s.substring(0, s.length() - 1); - } - - if (ChatAllowedCharacters.isAllowedCharacter(typedChar) && this.fontRenderer.getStringWidth(s + typedChar) <= 90) - { - s = s + typedChar; - } - - this.tileSign.signText[this.editLine] = new TextComponentString(s); - - if (keyCode == 1) - { - this.actionPerformed(this.doneBtn); - } - } - - /** - * Draws the screen and all the components in it. - */ - @Override - public void drawScreen(int mouseX, int mouseY, float partialTicks) - { - this.drawDefaultBackground(); - this.drawCenteredString(this.fontRenderer, I18n.format("sign.edit"), this.width / 2, 40, 16777215); - GlStateManager.color(1.0F, 1.0F, 1.0F, 1.0F); - GlStateManager.pushMatrix(); - GlStateManager.translate((float) (this.width / 2), 0.0F, 50.0F); - float f = 93.75F; - GlStateManager.scale(-93.75F, -93.75F, -93.75F); - GlStateManager.rotate(180.0F, 0.0F, 1.0F, 0.0F); - Block block = this.tileSign.getBlockType(); - - if (block == BlocksAether.standing_skyroot_sign) - { - float f1 = (float) (this.tileSign.getBlockMetadata() * 360) / 16.0F; - GlStateManager.rotate(f1, 0.0F, 1.0F, 0.0F); - GlStateManager.translate(0.0F, -1.0625F, 0.0F); - } - else - { - int i = this.tileSign.getBlockMetadata(); - float f2 = 0.0F; - - if (i == 2) - { - f2 = 180.0F; - } - - if (i == 4) - { - f2 = 90.0F; - } - - if (i == 5) - { - f2 = -90.0F; - } - - GlStateManager.rotate(f2, 0.0F, 1.0F, 0.0F); - GlStateManager.translate(0.0F, -1.0625F, 0.0F); - } - - if (this.updateCounter / 6 % 2 == 0) - { - this.tileSign.lineBeingEdited = this.editLine; - } - - TileEntityRendererDispatcher.instance.render(this.tileSign, -0.5D, -0.75D, -0.5D, 0.0F); - this.tileSign.lineBeingEdited = -1; - GlStateManager.popMatrix(); - super.drawScreen(mouseX, mouseY, partialTicks); - } -} diff --git a/src/main/java/com/gildedgames/aether/client/gui/overlays/IOverlay.java b/src/main/java/com/gildedgames/aether/client/gui/overlays/IOverlay.java deleted file mode 100644 index 379c0696dc..0000000000 --- a/src/main/java/com/gildedgames/aether/client/gui/overlays/IOverlay.java +++ /dev/null @@ -1,10 +0,0 @@ -package com.gildedgames.aether.client.gui.overlays; - -public interface IOverlay -{ - - boolean isEnabled(); - - void draw(); - -} diff --git a/src/main/java/com/gildedgames/aether/client/gui/overlays/PortalOverlay.java b/src/main/java/com/gildedgames/aether/client/gui/overlays/PortalOverlay.java deleted file mode 100644 index 76414ed32e..0000000000 --- a/src/main/java/com/gildedgames/aether/client/gui/overlays/PortalOverlay.java +++ /dev/null @@ -1,81 +0,0 @@ -package com.gildedgames.aether.client.gui.overlays; - -import com.gildedgames.aether.api.registrar.BlocksAether; -import com.gildedgames.aether.common.capabilities.entity.player.PlayerAether; -import com.gildedgames.aether.common.capabilities.entity.player.modules.PlayerTeleportingModule; -import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.ScaledResolution; -import net.minecraft.client.renderer.BufferBuilder; -import net.minecraft.client.renderer.GlStateManager; -import net.minecraft.client.renderer.Tessellator; -import net.minecraft.client.renderer.texture.TextureAtlasSprite; -import net.minecraft.client.renderer.texture.TextureMap; -import net.minecraft.client.renderer.vertex.DefaultVertexFormats; -import net.minecraft.init.MobEffects; -import net.minecraft.util.Timer; - -public class PortalOverlay implements IOverlay -{ - - private final Timer timer = new Timer(20.0F); - - private final Minecraft mc = Minecraft.getMinecraft(); - - public PortalOverlay() - { - - } - - @Override - public boolean isEnabled() - { - return Minecraft.getMinecraft().world != null; - } - - @Override - public void draw() - { - if (!this.mc.player.isPotionActive(MobEffects.NAUSEA)) - { - final PlayerAether playerAether = PlayerAether.getPlayer(this.mc.player); - final PlayerTeleportingModule teleportModule = playerAether.getModule(PlayerTeleportingModule.class); - - float timeInPortal = (teleportModule.getPrevTicksInTeleporter() + ((teleportModule.getTicksInTeleporter() - teleportModule.getPrevTicksInTeleporter())) * this.timer.renderPartialTicks) - / (float) PlayerTeleportingModule.TELEPORT_DELAY; - timeInPortal *= 0.8f; - - if (timeInPortal > 0.0F) - { - final ScaledResolution scaledRes = new ScaledResolution(this.mc); - - GlStateManager.enableBlend(); - GlStateManager.disableAlpha(); - GlStateManager.disableDepth(); - GlStateManager.depthMask(false); - GlStateManager.tryBlendFuncSeparate(GlStateManager.SourceFactor.SRC_ALPHA, GlStateManager.DestFactor.ONE_MINUS_SRC_ALPHA, - GlStateManager.SourceFactor.ONE, GlStateManager.DestFactor.ZERO); - GlStateManager.color(1.0F, 1.0F, 1.0F, timeInPortal); - this.mc.getTextureManager().bindTexture(TextureMap.LOCATION_BLOCKS_TEXTURE); - final TextureAtlasSprite textureatlassprite = this.mc.getBlockRendererDispatcher().getBlockModelShapes() - .getTexture(BlocksAether.aether_portal.getDefaultState()); - final float f = textureatlassprite.getMinU(); - final float f1 = textureatlassprite.getMinV(); - final float f2 = textureatlassprite.getMaxU(); - final float f3 = textureatlassprite.getMaxV(); - final Tessellator tessellator = Tessellator.getInstance(); - final BufferBuilder vertexbuffer = tessellator.getBuffer(); - vertexbuffer.begin(7, DefaultVertexFormats.POSITION_TEX); - vertexbuffer.pos(0.0D, (double) scaledRes.getScaledHeight(), -90.0D).tex((double) f, (double) f3).endVertex(); - vertexbuffer.pos((double) scaledRes.getScaledWidth(), (double) scaledRes.getScaledHeight(), -90.0D).tex((double) f2, (double) f3).endVertex(); - vertexbuffer.pos((double) scaledRes.getScaledWidth(), 0.0D, -90.0D).tex((double) f2, (double) f1).endVertex(); - vertexbuffer.pos(0.0D, 0.0D, -90.0D).tex((double) f, (double) f1).endVertex(); - tessellator.draw(); - GlStateManager.depthMask(true); - GlStateManager.enableDepth(); - GlStateManager.enableAlpha(); - GlStateManager.color(1.0F, 1.0F, 1.0F, 1.0F); - } - } - } - -} diff --git a/src/main/java/com/gildedgames/aether/client/gui/overlays/SwetOverlay.java b/src/main/java/com/gildedgames/aether/client/gui/overlays/SwetOverlay.java deleted file mode 100644 index 911fc43683..0000000000 --- a/src/main/java/com/gildedgames/aether/client/gui/overlays/SwetOverlay.java +++ /dev/null @@ -1,122 +0,0 @@ -package com.gildedgames.aether.client.gui.overlays; - -import com.gildedgames.aether.common.capabilities.entity.player.PlayerAether; -import com.gildedgames.aether.common.capabilities.entity.player.modules.PlayerSwetTrackerModule; -import com.gildedgames.aether.common.entities.monsters.EntitySwet; -import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.Gui; -import net.minecraft.client.gui.ScaledResolution; -import net.minecraft.client.renderer.GlStateManager; -import net.minecraft.util.ResourceLocation; - -public class SwetOverlay implements IOverlay -{ - - private final Minecraft mc = Minecraft.getMinecraft(); - - public SwetOverlay() - { - - } - - @Override - public boolean isEnabled() - { - return this.mc.world != null; - } - - @Override - public void draw() - { - boolean hasBlue = false, hasGreen = false, hasPurple = false; - - final PlayerAether player = PlayerAether.getPlayer(this.mc.player); - - for (final EntitySwet swet : player.getModule(PlayerSwetTrackerModule.class).getLatchedSwets()) - { - switch (swet.getType()) - { - case BLUE: - hasBlue = true; - break; - case GREEN: - hasGreen = true; - break; - case PURPLE: - hasPurple = true; - break; - default: - break; - } - } - - if (hasBlue) - { - this.drawSwet(EntitySwet.Type.BLUE); - } - - if (hasGreen) - { - this.drawSwet(EntitySwet.Type.GREEN); - } - - if (hasPurple) - { - this.drawSwet(EntitySwet.Type.PURPLE); - } - } - - private void drawSwet(final EntitySwet.Type type) - { - final ScaledResolution scaledRes = new ScaledResolution(this.mc); - - final int y = scaledRes.getScaledHeight() - 64; - - this.drawCorner(0, y, type.left1, type.left2, 2.0F); - this.drawCorner((int) (scaledRes.getScaledWidth() - (64 * 2.0F)), y, type.right1, type.right2, 2.0F); - } - - private void drawCorner(final int x, final int y, final ResourceLocation corner1, final ResourceLocation corner2, final float scale) - { - final float startRange = 0.1F; - final float endRange = 0.7F; - - final float oscilationRange = (endRange - startRange) / 2; - final float oscilationOffset = oscilationRange + startRange; - - this.drawSingle(x, y, corner1, oscilationOffset + (float) Math.sin(System.currentTimeMillis() / 200.0) * oscilationRange, scale); - this.drawSingle(x, y, corner2, oscilationOffset + (float) Math.sin((System.currentTimeMillis() / 200.0) + 60.0) * oscilationRange, scale); - } - - private void drawSingle(final int x, final int y, final ResourceLocation texture, final float alpha, final float scale) - { - GlStateManager.pushMatrix(); - - GlStateManager.enableBlend(); - GlStateManager.disableAlpha(); - - GlStateManager.depthMask(true); - - final double width = 64; - final double height = 64; - - GlStateManager.translate(x, y, 0); - GlStateManager.translate(0, -((height * scale) - height), 0); - - GlStateManager.scale(scale, scale, 0); - - GlStateManager.color(1.0F, 1.0F, 1.0F, alpha); - - this.mc.getTextureManager().bindTexture(texture); - - Gui.drawModalRectWithCustomSizedTexture(0, 0, 0, 0, 64, 64, 64, 64); - - GlStateManager.disableBlend(); - GlStateManager.enableAlpha(); - - GlStateManager.color(1.0F, 1.0F, 1.0F, 1.0F); - - GlStateManager.popMatrix(); - } - -} diff --git a/src/main/java/com/gildedgames/aether/client/gui/tab/RenderTabGroup.java b/src/main/java/com/gildedgames/aether/client/gui/tab/RenderTabGroup.java deleted file mode 100644 index e7a2b70058..0000000000 --- a/src/main/java/com/gildedgames/aether/client/gui/tab/RenderTabGroup.java +++ /dev/null @@ -1,191 +0,0 @@ -package com.gildedgames.aether.client.gui.tab; - -import com.gildedgames.aether.api.registry.tab.ITab; -import com.gildedgames.aether.api.registry.tab.ITabClient; -import com.gildedgames.aether.api.registry.tab.ITabGroup; -import com.gildedgames.aether.client.gui.container.guidebook.AbstractGuidebookPage; -import com.gildedgames.aether.common.containers.overlays.TabGroupHandler; -import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.FontRenderer; -import net.minecraft.client.gui.Gui; -import net.minecraft.client.gui.ScaledResolution; -import net.minecraft.util.ResourceLocation; -import net.minecraft.util.math.Vec2f; -import net.minecraft.util.text.TextComponentTranslation; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; -import org.lwjgl.input.Mouse; -import org.lwjgl.opengl.GL11; - -public class RenderTabGroup extends Gui -{ - - private static final ResourceLocation TEXTURE_TAB_ITEMS = new ResourceLocation("textures/gui/container/creative_inventory/tab_items.png"); - - private static final ResourceLocation TEXTURE_TABS = new ResourceLocation("textures/gui/container/creative_inventory/tabs.png"); - - @SideOnly(Side.CLIENT) - protected void drawHoveringText(String text, int x, int y, FontRenderer font) - { - GL11.glDisable(GL11.GL_DEPTH_TEST); - - int k = font.getStringWidth(text); - - int x1 = x + 12; - int y1 = y - 12; - int z1 = 8; - - this.zLevel = 300.0F; - int color1 = -267386864; - this.drawGradientRect(x1 - 3, y1 - 4, x1 + k + 3, y1 - 3, color1, color1); - this.drawGradientRect(x1 - 3, y1 + z1 + 3, x1 + k + 3, y1 + z1 + 4, color1, color1); - this.drawGradientRect(x1 - 3, y1 - 3, x1 + k + 3, y1 + z1 + 3, color1, color1); - this.drawGradientRect(x1 - 4, y1 - 3, x1 - 3, y1 + z1 + 3, color1, color1); - this.drawGradientRect(x1 + k + 3, y1 - 3, x1 + k + 4, y1 + z1 + 3, color1, color1); - int color2 = 1347420415; - int color2BG = (color2 & 16711422) >> 1 | color2 & -16777216; - this.drawGradientRect(x1 - 3, y1 - 3 + 1, x1 - 3 + 1, y1 + z1 + 3 - 1, color2, color2BG); - this.drawGradientRect(x1 + k + 2, y1 - 3 + 1, x1 + k + 3, y1 + z1 + 3 - 1, color2, color2BG); - this.drawGradientRect(x1 - 3, y1 - 3, x1 + k + 3, y1 - 3 + 1, color2, color2); - this.drawGradientRect(x1 - 3, y1 + z1 + 2, x1 + k + 3, y1 + z1 + 3, color2BG, color2BG); - - font.drawString(text, x1, y1, -1); - - this.zLevel = 0.0F; - - GL11.glEnable(GL11.GL_DEPTH_TEST); - } - - /** - * Renders the {@link TabGroupHandler} and all of its containing {@link ITab ITab}s - */ - public void render(ITabGroup<ITabClient> tabGroup) - { - if (tabGroup.getEnabledTabs().size() <= 1) - { - return; - } - - Minecraft mc = Minecraft.getMinecraft(); - ScaledResolution scaledresolution = new ScaledResolution(mc); - - int xPosition = (scaledresolution.getScaledWidth() - 28 * tabGroup.getEnabledTabs().size()) / 2; - int yPosition = 0; - - mc.getTextureManager().bindTexture(TEXTURE_TAB_ITEMS); - - GL11.glColor4f(1.f, 1.f, 1.f, 1.f); - GL11.glDisable(GL11.GL_LIGHTING); - - //this.drawTexturedModalRect(centerX - width / 2, topY, 0, 0, width / 2, 15); - //this.drawTexturedModalRect(centerX - width / 2, topY + 15, 0, 130, width / 2, 5); - //this.drawTexturedModalRect(centerX, topY, 194 - width / 2, 0, width / 2, 15); - //this.drawTexturedModalRect(centerX, topY + 15, 194 - width / 2, 130, width / 2, 5); - - //this.drawCenteredString(mc.fontRendererObj, I18n.translateToLocal(tabGroup.getSelectedTab().getVariantName()), centerX, topY + 8, 0xFFFFFFFF); - - boolean flag1 = true; - boolean flag2 = true; - - for (ITabClient tab : tabGroup.getEnabledTabs()) - { - if (tab != null && tab.isEnabled()) - { - GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); - - if (tab.getCustomTabVec2() != null) - { - if (flag1) - { - xPosition += 2; - } - - flag1 = false; - - mc.getTextureManager().bindTexture(AbstractGuidebookPage.TEXTURE_GUI); - - Vec2f vec = tab.getCustomTabVec2(); - int v = 0; - int height = 31; - int width = 26; - if (tab == tabGroup.getSelectedTab()) - { - v = 35; - height = 35; - } - - this.drawTexturedModalRect(xPosition, yPosition, (int)vec.x, (int)vec.y + v, width, height); - } - else - { - mc.getTextureManager().bindTexture(TEXTURE_TABS); - - int u = 28; - - if (tab == tabGroup.getSelectedTab()) - { - int v = 3 * 32; - this.drawTexturedModalRect(xPosition, yPosition - 3, u, v, 28, 14); - this.drawTexturedModalRect(xPosition, yPosition + 10, u, v + 22, 28, 10); - } - else - { - int v = 2 * 32; - this.drawTexturedModalRect(xPosition, yPosition, u, v, 28, 11); - this.drawTexturedModalRect(xPosition, yPosition + 10, u, v + 20, 28, 12); - } - } - - if (tab.getIcon() != null) - { - mc.renderEngine.bindTexture(tab.getIcon()); - - Gui.drawModalRectWithCustomSizedTexture(xPosition + 6, yPosition - 1, 0, 0, 16, 16, 16, 16); - } - - xPosition += 27; - } - } - - ITab hoveredTab = this.getHoveredTab(tabGroup); - - if (hoveredTab != null) - { - this.drawHoveringText(new TextComponentTranslation(hoveredTab.getUnlocalizedName()).getFormattedText(), - Mouse.getX() * scaledresolution.getScaledWidth() / mc.displayWidth, - scaledresolution.getScaledHeight() - (Mouse.getY() - 42) * scaledresolution.getScaledHeight() / mc.displayHeight - - 1, mc.fontRenderer); - } - } - - /** - * @return The current {@link ITab} that is hovered over by the player's mouse cursor - */ - public ITabClient getHoveredTab(ITabGroup<ITabClient> tabGroup) - { - Minecraft mc = Minecraft.getMinecraft(); - ScaledResolution scaledresolution = new ScaledResolution(mc); - - int x = Mouse.getX() * scaledresolution.getScaledWidth() / mc.displayWidth; - int y = scaledresolution.getScaledHeight() - Mouse.getY() * scaledresolution.getScaledHeight() / mc.displayHeight - 1; - - if (y >= 0 && y <= 19) - { - int xPosition = (scaledresolution.getScaledWidth() - 28 * tabGroup.getEnabledTabs().size()) / 2; - x -= xPosition; - - if ((x / 28) > 1) - { - x += 2; - } - - if (x > 0 && x < 28 * tabGroup.getEnabledTabs().size()) - { - return tabGroup.getEnabledTabs().get(x / 28); - } - } - - return null; - } - -} diff --git a/src/main/java/com/gildedgames/aether/client/gui/util/GuiItemStack.java b/src/main/java/com/gildedgames/aether/client/gui/util/GuiItemStack.java deleted file mode 100644 index 675dd70d5b..0000000000 --- a/src/main/java/com/gildedgames/aether/client/gui/util/GuiItemStack.java +++ /dev/null @@ -1,110 +0,0 @@ -package com.gildedgames.aether.client.gui.util; - -import com.gildedgames.aether.client.gui.container.IExtendedContainer; -import com.gildedgames.orbis.lib.client.gui.util.gui_library.GuiElement; -import com.gildedgames.orbis.lib.client.rect.Rect; -import com.gildedgames.orbis.lib.util.InputHelper; -import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.FontRenderer; -import net.minecraft.client.gui.GuiScreen; -import net.minecraft.client.renderer.GlStateManager; -import net.minecraft.client.renderer.OpenGlHelper; -import net.minecraft.client.renderer.RenderHelper; -import net.minecraft.client.renderer.RenderItem; -import net.minecraft.client.util.ITooltipFlag; -import net.minecraft.item.ItemStack; - -public class GuiItemStack extends GuiElement -{ - private ItemStack stack; - - private boolean drawCount = true; - - public GuiItemStack(Rect rect) - { - super(rect, true); - - this.dim().mod().width(18).height(18).flush(); - } - - public void setDrawCount(boolean drawCount) - { - this.drawCount = drawCount; - } - - public ItemStack getItemStack() - { - return this.stack; - } - - public void setItemStack(ItemStack stack) - { - this.stack = stack.copy(); - } - - @Override - public void onDraw(GuiElement element) - { - if (this.stack == null || this.stack == ItemStack.EMPTY) - { - return; - } - - GlStateManager.pushMatrix(); - GlStateManager.color(1.0F, 1.0F, 1.0F, 1.0F); - GlStateManager.enableRescaleNormal(); - OpenGlHelper.setLightmapTextureCoords(OpenGlHelper.lightmapTexUnit, 240.0F, 240.0F); - GlStateManager.color(1.0F, 1.0F, 1.0F, 1.0F); - - GlStateManager.pushMatrix(); - - //TODO: WHY IS THE LIGHTING REVERSED, EVEN WITH STANDARD GUI ITEM LIGHTING. WTF???? - RenderHelper.enableStandardItemLighting(); - - GlStateManager.popMatrix(); - GlStateManager.disableLighting(); - - FontRenderer font = this.stack.getItem().getFontRenderer(this.stack); - - if (font == null) - { - font = this.viewer().fontRenderer(); - } - - RenderItem renderitem = this.viewer().mc().getRenderItem(); - renderitem.zLevel = 200.0F; - renderitem.renderItemAndEffectIntoGUI(this.viewer().mc().player, this.stack, (int) this.dim().x() + 1, (int) this.dim().y() + 1); - - RenderHelper.disableStandardItemLighting(); - - renderitem.zLevel = 0.0F; - - if (this.drawCount) - { - int xOffset = (Math.max(String.valueOf(this.stack.getCount()).length() - 1, 0)) * -6; - - this.viewer().getActualScreen().drawString(font, String.valueOf(this.stack.getCount()), (int) this.dim().x() + 12 + xOffset, - (int) this.dim().y() + (int) this.dim().height() + -8, - 0xFFFFFF); - } - - if (InputHelper.isHovered(this)) - { - GuiScreen gui = Minecraft.getMinecraft().currentScreen; - - if (gui instanceof IExtendedContainer) - { - IExtendedContainer extendedGui = (IExtendedContainer) gui; - extendedGui.setHoveredDescription(this.stack, this.stack.getTooltip(Minecraft.getMinecraft().player, - Minecraft.getMinecraft().gameSettings.advancedItemTooltips ? - ITooltipFlag.TooltipFlags.ADVANCED : - ITooltipFlag.TooltipFlags.NORMAL)); - } - } - - GlStateManager.popMatrix(); - GlStateManager.enableLighting(); - GlStateManager.enableDepth(); - RenderHelper.enableStandardItemLighting(); - } -} diff --git a/src/main/java/com/gildedgames/aether/client/gui/util/IRemoteClose.java b/src/main/java/com/gildedgames/aether/client/gui/util/IRemoteClose.java deleted file mode 100644 index eeed00dcac..0000000000 --- a/src/main/java/com/gildedgames/aether/client/gui/util/IRemoteClose.java +++ /dev/null @@ -1,7 +0,0 @@ -package com.gildedgames.aether.client.gui.util; - -public interface IRemoteClose -{ - int getConfirmID(); - -} diff --git a/src/main/java/com/gildedgames/aether/client/gui/util/ToolTipCurrencyHelper.java b/src/main/java/com/gildedgames/aether/client/gui/util/ToolTipCurrencyHelper.java deleted file mode 100644 index 0c45cd4fc6..0000000000 --- a/src/main/java/com/gildedgames/aether/client/gui/util/ToolTipCurrencyHelper.java +++ /dev/null @@ -1,62 +0,0 @@ -package com.gildedgames.aether.client.gui.util; - -import com.gildedgames.aether.client.gui.dialog.GuiCoins; -import com.google.common.collect.Lists; -import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.FontRenderer; -import net.minecraft.client.gui.Gui; -import net.minecraft.client.renderer.GlStateManager; -import net.minecraft.client.renderer.texture.TextureManager; -import net.minecraft.util.ResourceLocation; - -import java.util.List; - -public class ToolTipCurrencyHelper -{ - private final List<String> cachedText = Lists.newArrayList(); - - private double lastValue; - - private static final ResourceLocation[] resourceMap = new ResourceLocation[] { GuiCoins.GILT }; - - public List<String> getText(double value) - { - if (value != this.lastValue) - { - this.cachedText.clear(); - - this.lastValue = value; - } - - return this.cachedText; - } - - public void render(FontRenderer fontRenderer, int x, int y, int height, double value) - { - int amount = (int) value; - - if (amount >= 1) - { - if (fontRenderer == null) - { - fontRenderer = Minecraft.getMinecraft().fontRenderer; - } - - TextureManager textureManager = Minecraft.getMinecraft().getTextureManager(); - - int x2 = x + 1, y2 = y + height - fontRenderer.FONT_HEIGHT + 1; - - GlStateManager.pushMatrix(); - GlStateManager.enableBlend(); - GlStateManager.disableRescaleNormal(); - GlStateManager.disableLighting(); - GlStateManager.color(1, 1, 1, 1); - - textureManager.bindTexture(resourceMap[0]); - Gui.drawModalRectWithCustomSizedTexture(x2, y2, 0, 0, 7, 7, 7, 7); - fontRenderer.drawStringWithShadow(String.valueOf(amount), (float) (x2 + 9.8), y2, 11184810); - - GlStateManager.popMatrix(); - } - } -} diff --git a/src/main/java/com/gildedgames/aether/client/init/BlockModelsAetherInit.java b/src/main/java/com/gildedgames/aether/client/init/BlockModelsAetherInit.java deleted file mode 100644 index 4bb93e912c..0000000000 --- a/src/main/java/com/gildedgames/aether/client/init/BlockModelsAetherInit.java +++ /dev/null @@ -1,143 +0,0 @@ -package com.gildedgames.aether.client.init; - -import com.gildedgames.aether.api.registrar.BlocksAether; -import com.gildedgames.aether.common.blocks.construction.signs.BlockStandingSkyrootSign; -import com.gildedgames.aether.common.blocks.construction.signs.BlockWallSkyrootSign; -import com.gildedgames.aether.common.blocks.construction.walls.BlockSkyrootWall; -import com.gildedgames.aether.common.blocks.containers.BlockAltar; -import com.gildedgames.aether.common.blocks.containers.BlockIcestoneCooler; -import com.gildedgames.aether.common.blocks.containers.BlockMasonryBench; -import com.gildedgames.aether.common.blocks.natural.BlockAercloud; -import com.gildedgames.aether.common.blocks.natural.leaves.BlockAetherLeaves; -import com.gildedgames.aether.common.blocks.natural.plants.BlockBrettlPlant; -import com.gildedgames.aether.common.blocks.natural.plants.BlockOrangeTree; -import com.gildedgames.aether.common.blocks.natural.plants.BlockValkyrieGrass; -import com.gildedgames.aether.common.blocks.natural.plants.saplings.BlockAetherSapling; -import com.gildedgames.aether.common.blocks.util.BlockCustomDoor; -import com.google.common.collect.Maps; -import net.minecraft.block.Block; -import net.minecraft.block.BlockBed; -import net.minecraft.block.BlockChest; -import net.minecraft.block.BlockFenceGate; -import net.minecraft.block.properties.IProperty; -import net.minecraft.block.state.IBlockState; -import net.minecraft.client.renderer.block.model.ModelResourceLocation; -import net.minecraft.client.renderer.block.statemap.StateMap; -import net.minecraft.client.renderer.block.statemap.StateMapperBase; -import net.minecraft.util.ResourceLocation; -import net.minecraftforge.client.event.ModelRegistryEvent; -import net.minecraftforge.client.model.ModelLoader; -import net.minecraftforge.fml.common.Mod; -import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; - -import java.util.LinkedHashMap; - -@SideOnly(Side.CLIENT) -@Mod.EventBusSubscriber(Side.CLIENT) -public class BlockModelsAetherInit -{ - @SubscribeEvent() - public static void onModelRegistryReady(final ModelRegistryEvent event) - { - registerStateMappers(); - } - - private static void registerStateMappers() - { - final StateMap leavesMapper = new StateMap.Builder().ignore(BlockAetherLeaves.PROPERTY_CHECK_DECAY, BlockAetherLeaves.PROPERTY_DECAYABLE).build(); - - ModelLoader.setCustomStateMapper(BlocksAether.therawood_leaves, leavesMapper); - ModelLoader.setCustomStateMapper(BlocksAether.blue_skyroot_leaves, leavesMapper); - ModelLoader.setCustomStateMapper(BlocksAether.green_skyroot_leaves, leavesMapper); - ModelLoader.setCustomStateMapper(BlocksAether.dark_blue_skyroot_leaves, leavesMapper); - ModelLoader.setCustomStateMapper(BlocksAether.amberoot_leaves, leavesMapper); - ModelLoader.setCustomStateMapper(BlocksAether.blue_dark_skyroot_leaves, leavesMapper); - ModelLoader.setCustomStateMapper(BlocksAether.green_dark_skyroot_leaves, leavesMapper); - ModelLoader.setCustomStateMapper(BlocksAether.dark_blue_dark_skyroot_leaves, leavesMapper); - ModelLoader.setCustomStateMapper(BlocksAether.blue_light_skyroot_leaves, leavesMapper); - ModelLoader.setCustomStateMapper(BlocksAether.green_light_skyroot_leaves, leavesMapper); - ModelLoader.setCustomStateMapper(BlocksAether.dark_blue_light_skyroot_leaves, leavesMapper); - ModelLoader.setCustomStateMapper(BlocksAether.mutant_leaves, leavesMapper); - ModelLoader.setCustomStateMapper(BlocksAether.mutant_leaves_decorated, leavesMapper); - ModelLoader.setCustomStateMapper(BlocksAether.highlands_bush, leavesMapper); - - ModelLoader.setCustomStateMapper(BlocksAether.skyroot_sapling, new StateMap.Builder().ignore(BlockAetherSapling.PROPERTY_STAGE).build()); - ModelLoader.setCustomStateMapper(BlocksAether.unique_sapling, new StateMap.Builder().ignore(BlockAetherSapling.PROPERTY_STAGE).build()); - ModelLoader.setCustomStateMapper(BlocksAether.wisproot_sapling, new StateMap.Builder().ignore(BlockAetherSapling.PROPERTY_STAGE).build()); - ModelLoader.setCustomStateMapper(BlocksAether.greatroot_sapling, new StateMap.Builder().ignore(BlockAetherSapling.PROPERTY_STAGE).build()); - - ModelLoader.setCustomStateMapper(BlocksAether.tall_aether_grass, new StateMap.Builder().ignore().build()); - - ModelLoader.setCustomStateMapper(BlocksAether.skyroot_door, new StateMap.Builder().ignore(BlockCustomDoor.POWERED).build()); - ModelLoader.setCustomStateMapper(BlocksAether.secret_skyroot_door, new StateMap.Builder().ignore(BlockCustomDoor.POWERED).build()); - ModelLoader.setCustomStateMapper(BlocksAether.arkenium_door, new StateMap.Builder().ignore(BlockCustomDoor.POWERED).build()); - - ModelLoader.setCustomStateMapper(BlocksAether.skyroot_chest, new StateMap.Builder().ignore(BlockChest.FACING).build()); - - ModelLoader.setCustomStateMapper(BlocksAether.skyroot_log_wall, new StateMap.Builder().ignore(BlockSkyrootWall.PROPERTY_GENERATED).build()); - ModelLoader.setCustomStateMapper(BlocksAether.wisproot_log_wall, new StateMap.Builder().ignore(BlockSkyrootWall.PROPERTY_GENERATED).build()); - ModelLoader.setCustomStateMapper(BlocksAether.greatroot_log_wall, new StateMap.Builder().ignore(BlockSkyrootWall.PROPERTY_GENERATED).build()); - ModelLoader.setCustomStateMapper(BlocksAether.therawood_log_wall, new StateMap.Builder().ignore(BlockSkyrootWall.PROPERTY_GENERATED).build()); - - ModelLoader.setCustomStateMapper(BlocksAether.aercloud, new StateMapperBase() - { - @Override - protected ModelResourceLocation getModelResourceLocation(final IBlockState state) - { - final LinkedHashMap<IProperty<?>, Comparable<?>> mappings = Maps.newLinkedHashMap(state.getProperties()); - - if (state.getValue(BlockAercloud.PROPERTY_VARIANT) != BlockAercloud.PURPLE_AERCLOUD) - { - mappings.remove(BlockAercloud.PROPERTY_FACING); - } - - final ResourceLocation resource = Block.REGISTRY.getNameForObject(state.getBlock()); - - return new ModelResourceLocation(resource, this.getPropertyString(mappings)); - } - }); - - ModelLoader.setCustomStateMapper(BlocksAether.orange_tree, new StateMapperBase() - { - @Override - protected ModelResourceLocation getModelResourceLocation(final IBlockState state) - { - final LinkedHashMap<IProperty<?>, Comparable<?>> mappings = Maps.newLinkedHashMap(state.getProperties()); - - if (state.getValue(BlockOrangeTree.PROPERTY_IS_TOP_BLOCK)) - { - if (state.getValue(BlockOrangeTree.PROPERTY_STAGE) < 3) - { - mappings.remove(BlockOrangeTree.PROPERTY_IS_TOP_BLOCK); - mappings.remove(BlockOrangeTree.PROPERTY_STAGE); - } - } - - final ResourceLocation resourceLocation = Block.REGISTRY.getNameForObject(state.getBlock()); - - return new ModelResourceLocation(resourceLocation, this.getPropertyString(mappings)); - } - }); - - ModelLoader.setCustomStateMapper(BlocksAether.valkyrie_grass, new StateMap.Builder().ignore(BlockValkyrieGrass.PROPERTY_HARVESTABLE).build()); - ModelLoader.setCustomStateMapper(BlocksAether.brettl_plant, - new StateMap.Builder().ignore(BlockBrettlPlant.PROPERTY_HARVESTABLE).ignore(BlockBrettlPlant.PROPERTY_AGE).build()); - - ModelLoader.setCustomStateMapper(BlocksAether.altar, new StateMap.Builder().ignore(BlockAltar.PROPERTY_FACING).build()); - ModelLoader.setCustomStateMapper(BlocksAether.icestone_cooler, new StateMap.Builder().ignore(BlockIcestoneCooler.PROPERTY_FACING).build()); - ModelLoader.setCustomStateMapper(BlocksAether.masonry_bench, new StateMap.Builder().ignore(BlockMasonryBench.PROPERTY_FACING).build()); - ModelLoader.setCustomStateMapper(BlocksAether.aether_teleporter, new StateMap.Builder().ignore(BlockAltar.PROPERTY_FACING).build()); - - ModelLoader.setCustomStateMapper(BlocksAether.standing_skyroot_sign, new StateMap.Builder().ignore(BlockStandingSkyrootSign.ROTATION).build()); - ModelLoader.setCustomStateMapper(BlocksAether.wall_skyroot_sign, new StateMap.Builder().ignore(BlockWallSkyrootSign.FACING).build()); - ModelLoader.setCustomStateMapper(BlocksAether.skyroot_fence_gate, new StateMap.Builder().ignore(BlockFenceGate.POWERED).build()); - ModelLoader.setCustomStateMapper(BlocksAether.wisproot_fence_gate, new StateMap.Builder().ignore(BlockFenceGate.POWERED).build()); - ModelLoader.setCustomStateMapper(BlocksAether.greatroot_fence_gate, new StateMap.Builder().ignore(BlockFenceGate.POWERED).build()); - ModelLoader.setCustomStateMapper(BlocksAether.therawood_fence_gate, new StateMap.Builder().ignore(BlockFenceGate.POWERED).build()); - ModelLoader.setCustomStateMapper(BlocksAether.skyroot_bed, new StateMap.Builder().ignore(BlockBed.OCCUPIED).build()); - - ModelLoader.setCustomStateMapper(BlocksAether.moa_egg, new StateMap.Builder().ignore().build()); - } -} diff --git a/src/main/java/com/gildedgames/aether/client/init/ItemModelsAetherInit.java b/src/main/java/com/gildedgames/aether/client/init/ItemModelsAetherInit.java deleted file mode 100644 index 2c03351a49..0000000000 --- a/src/main/java/com/gildedgames/aether/client/init/ItemModelsAetherInit.java +++ /dev/null @@ -1,802 +0,0 @@ -package com.gildedgames.aether.client.init; - -import com.gildedgames.aether.api.registrar.BlocksAether; -import com.gildedgames.aether.api.registrar.ItemsAether; -import com.gildedgames.aether.client.util.ItemModelBuilder; -import com.gildedgames.aether.common.AetherCore; -import com.gildedgames.aether.common.blocks.containers.BlockHolystoneFurnace; -import com.gildedgames.aether.common.blocks.containers.BlockIncubator; -import com.gildedgames.aether.common.blocks.decorative.*; -import com.gildedgames.aether.common.blocks.natural.*; -import com.gildedgames.aether.common.blocks.natural.plants.*; -import com.gildedgames.aether.common.blocks.natural.plants.saplings.BlockAetherGreatrootSapling; -import com.gildedgames.aether.common.blocks.natural.plants.saplings.BlockAetherSkyrootSapling; -import com.gildedgames.aether.common.blocks.natural.plants.saplings.BlockAetherUniqueSapling; -import com.gildedgames.aether.common.blocks.natural.plants.saplings.BlockAetherWisprootSapling; -import com.gildedgames.aether.common.entities.blocks.EntityParachute; -import com.gildedgames.aether.common.entities.effects.*; -import com.gildedgames.aether.common.entities.effects.unique.StatusEffectGuardBreak; -import com.gildedgames.aether.common.entities.monsters.EntitySwet; -import com.gildedgames.aether.common.entities.tiles.*; -import com.gildedgames.aether.common.init.CreativeTabsAether; -import com.gildedgames.aether.common.items.accessories.ItemAccessory; -import com.gildedgames.aether.common.items.weapons.ItemDartType; -import net.minecraft.block.Block; -import net.minecraft.client.renderer.block.model.ModelResourceLocation; -import net.minecraft.item.Item; -import net.minecraftforge.client.ForgeHooksClient; -import net.minecraftforge.client.event.ModelRegistryEvent; -import net.minecraftforge.client.model.ModelLoader; -import net.minecraftforge.fml.common.Mod; -import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; - -import java.util.Map; - -@SideOnly(Side.CLIENT) -@Mod.EventBusSubscriber(Side.CLIENT) -public class ItemModelsAetherInit -{ - @SubscribeEvent() - public static void onModelRegistryReady(final ModelRegistryEvent event) - { - registerModels(); - - ForgeHooksClient.registerTESRItemStack(getItem(BlocksAether.skyroot_chest), 0, TileEntitySkyrootChest.class); - ForgeHooksClient.registerTESRItemStack(getItem(BlocksAether.altar), 0, TileEntityAltar.class); - ForgeHooksClient.registerTESRItemStack(getItem(BlocksAether.present), 0, TileEntityPresent.class); - ForgeHooksClient.registerTESRItemStack(getItem(BlocksAether.icestone_cooler), 0, TileEntityIcestoneCooler.class); - ForgeHooksClient.registerTESRItemStack(getItem(BlocksAether.masonry_bench), 0, TileEntityMasonryBench.class); - ForgeHooksClient.registerTESRItemStack(getItem(BlocksAether.outpost_campfire), 0, TileEntityOutpostCampfire.class); - } - - private static void registerModels() - { - registerItemModels(BlocksAether.therastone_brick_decorative, new ItemModelBuilder("therastone_bricks/") - .add(BlockTherastoneDecorative.BASE_BRICKS.getMeta(), "base_bricks") - .add(BlockTherastoneDecorative.BASE_PILLAR.getMeta(), "base_pillar") - .add(BlockTherastoneDecorative.CAPSTONE_BRICKS.getMeta(), "capstone_bricks") - .add(BlockTherastoneDecorative.CAPSTONE_PILLAR.getMeta(), "capstone_pillar") - .add(BlockTherastoneDecorative.FLAGSTONES.getMeta(), "flagstones") - .add(BlockTherastoneDecorative.HEADSTONE.getMeta(), "headstone") - .add(BlockTherastoneDecorative.KEYSTONE.getMeta(), "keystone")); - - registerItemModels(BlocksAether.therastone_brick, "therastone_bricks/normal"); - - registerItemModels(BlocksAether.therastone_pillar, "therastone_bricks/pillar"); - - registerItemModels(BlocksAether.therawood_log, "logs/therawood_log"); - - registerItemModels(BlocksAether.therawood_leaves, "leaves/therawood_leaves"); - - registerItemModels(BlocksAether.therawood_planks, "therawood_planks/normal"); - - registerItemModels(BlocksAether.therawood_decorative, new ItemModelBuilder("therawood_planks/") - .add(BlockTherawoodDecorative.BASE_PLANKS.getMeta(), "base_planks") - .add(BlockTherawoodDecorative.BASE_BEAM.getMeta(), "base_beam") - .add(BlockTherawoodDecorative.TOP_PLANKS.getMeta(), "top_planks") - .add(BlockTherawoodDecorative.TOP_BEAM.getMeta(), "top_beam") - .add(BlockTherawoodDecorative.FLOORBOARDS.getMeta(), "floorboards") - .add(BlockTherawoodDecorative.HIGHLIGHT.getMeta(), "highlight")); - - registerItemModels(BlocksAether.therawood_beam, "therawood_planks/beam"); - - registerItemModels(BlocksAether.aether_dirt, new ItemModelBuilder("aether_dirt/") - .add(BlockAetherDirt.DIRT.getMeta(), "dirt") - .add(BlockAetherDirt.COARSE_DIRT.getMeta(), "coarse_dirt")); - - registerItemModels(BlocksAether.aether_grass, new ItemModelBuilder("grass/") - .add(BlockAetherGrass.AETHER.getMeta(), "aether_grass") - .add(BlockAetherGrass.ENCHANTED.getMeta(), "enchanted_grass") - .add(BlockAetherGrass.ARCTIC.getMeta(), "arctic_grass") - .add(BlockAetherGrass.MAGNETIC.getMeta(), "magnetic_grass") - .add(BlockAetherGrass.IRRADIATED.getMeta(), "irradiated_grass")); - - registerItemModels(BlocksAether.thera_dirt, new ItemModelBuilder("thera_dirt/") - .add(BlockTheraDirt.DIRT.getMeta(), "thera_dirt")); - - registerItemModels(BlocksAether.thera_grass, new ItemModelBuilder("thera_grass/") - .add(BlockTheraGrass.NORMAL.getMeta(), "thera_grass")); - - registerItemModels(BlocksAether.holystone, new ItemModelBuilder("holystone/") - .add(BlockHolystone.NORMAL_HOLYSTONE.getMeta(), "holystone") - .add(BlockHolystone.MOSSY_HOLYSTONE.getMeta(), "mossy_holystone") - .add(BlockHolystone.IRRADIATED_HOLYSTONE.getMeta(), "irradiated_holystone")); - - registerItemModels(BlocksAether.aercloud, new ItemModelBuilder("aercloud/") - .add(BlockAercloud.COLD_AERCLOUD.getMeta(), "cold_aercloud") - .add(BlockAercloud.BLUE_AERCLOUD.getMeta(), "blue_aercloud") - .add(BlockAercloud.GOLDEN_AERCLOUD.getMeta(), "golden_aercloud") - .add(BlockAercloud.GREEN_AERCLOUD.getMeta(), "green_aercloud") - .add(BlockAercloud.STORM_AERCLOUD.getMeta(), "storm_aercloud") - .add(BlockAercloud.PURPLE_AERCLOUD.getMeta(), "purple_aercloud")); - - registerItemModels(BlocksAether.cloudwool_block, "cloudwool_block"); - - registerItemModels(BlocksAether.ferrosite, "ferrosite"); - registerItemModels(BlocksAether.rusted_ferrosite, "rusted_ferrosite"); - - registerItemModels(BlocksAether.skyroot_log, "logs/skyroot_log"); - registerItemModels(BlocksAether.dark_skyroot_log, "logs/dark_skyroot_log"); - registerItemModels(BlocksAether.light_skyroot_log, "logs/light_skyroot_log"); - registerItemModels(BlocksAether.golden_oak_log, "logs/golden_oak_log"); - - registerItemModels(BlocksAether.blue_skyroot_leaves, "leaves/blue_skyroot_leaves"); - registerItemModels(BlocksAether.green_skyroot_leaves, "leaves/green_skyroot_leaves"); - registerItemModels(BlocksAether.dark_blue_skyroot_leaves, "leaves/dark_blue_skyroot_leaves"); - - registerItemModels(BlocksAether.blue_dark_skyroot_leaves, "leaves/blue_dark_skyroot_leaves"); - registerItemModels(BlocksAether.green_dark_skyroot_leaves, "leaves/green_dark_skyroot_leaves"); - registerItemModels(BlocksAether.dark_blue_dark_skyroot_leaves, "leaves/dark_blue_dark_skyroot_leaves"); - - registerItemModels(BlocksAether.blue_light_skyroot_leaves, "leaves/blue_light_skyroot_leaves"); - registerItemModels(BlocksAether.green_light_skyroot_leaves, "leaves/green_light_skyroot_leaves"); - registerItemModels(BlocksAether.dark_blue_light_skyroot_leaves, "leaves/dark_blue_light_skyroot_leaves"); - - registerItemModels(BlocksAether.amberoot_leaves, "leaves/amberoot_leaves"); - - registerItemModels(BlocksAether.highlands_bush, "bushes/highlands_bush"); - - registerItemModels(BlocksAether.mutant_leaves, "leaves/mutant_leaves"); - registerItemModels(BlocksAether.mutant_leaves_decorated, "leaves/mutant_leaves_decorated"); - - registerItemModels(BlocksAether.blueberry_bush, new ItemModelBuilder("bushes/") - .add(BlockBlueberryBush.BERRY_BUSH_STEM, "blueberry_bush_stem") - .add(BlockBlueberryBush.BERRY_BUSH_RIPE, "blueberry_bush_ripe")); - - registerItemModels(BlocksAether.aether_flower, new ItemModelBuilder("flowers/") - .add(BlockAetherFlower.WHITE_ROSE.getMeta(), "white_rose") - .add(BlockAetherFlower.PURPLE_FLOWER.getMeta(), "purple_flower") - .add(BlockAetherFlower.BURSTBLOSSOM.getMeta(), "burstblossom") - .add(BlockAetherFlower.AECHOR_SPROUT.getMeta(), "aechor_sprout") - .add(BlockAetherFlower.WHITE_ROSE.getMeta() + BlockAetherFlower.PROPERTY_VARIANT.getAllowedValues().size(), "white_rose_snowy") - .add(BlockAetherFlower.PURPLE_FLOWER.getMeta() + BlockAetherFlower.PROPERTY_VARIANT.getAllowedValues().size(), "purple_flower_snowy") - .add(BlockAetherFlower.BURSTBLOSSOM.getMeta() + BlockAetherFlower.PROPERTY_VARIANT.getAllowedValues().size(), "burstblossom_snowy") - .add(BlockAetherFlower.AECHOR_SPROUT.getMeta() + BlockAetherFlower.PROPERTY_VARIANT.getAllowedValues().size(), "aechor_sprout_snowy")); - - registerSnowyFlower(BlocksAether.arctic_spikespring, "arctic_spikespring"); - registerSnowyFlower(BlocksAether.barkshroom, "barkshroom"); - registerSnowyFlower(BlocksAether.blue_swingtip, "blue_swingtip"); - registerSnowyFlower(BlocksAether.forgotten_rose, "forgotten_rose"); - registerSnowyFlower(BlocksAether.green_swingtip, "green_swingtip"); - registerSnowyFlower(BlocksAether.highlands_tulips, "highlands_tulips"); - registerSnowyFlower(BlocksAether.irradiated_flower, "irradiated_flower"); - registerSnowyFlower(BlocksAether.magnetic_shroom, "magnetic_shroom"); - registerSnowyFlower(BlocksAether.neverbloom, "neverbloom"); - registerSnowyFlower(BlocksAether.pink_swingtip, "pink_swingtip"); - registerSnowyFlower(BlocksAether.quickshoot, "quickshoot"); - registerSnowyFlower(BlocksAether.stoneshroom, "stoneshroom"); - - registerItemModels(BlocksAether.skyroot_sapling, new ItemModelBuilder("saplings/") - .add(BlockAetherSkyrootSapling.GREEN.getMeta(), "green_skyroot_sapling") - .add(BlockAetherSkyrootSapling.BLUE.getMeta(), "blue_skyroot_sapling") - .add(BlockAetherSkyrootSapling.DARK_BLUE.getMeta(), "dark_blue_skyroot_sapling")); - - registerItemModels(BlocksAether.unique_sapling, new ItemModelBuilder("saplings/") - .add(BlockAetherUniqueSapling.AMBEROOT.getMeta(), "amberoot_sapling") - .add(BlockAetherUniqueSapling.MUTANT_TREE.getMeta(), "mutant_tree_sapling")); - - registerItemModels(BlocksAether.wisproot_sapling, new ItemModelBuilder("saplings/") - .add(BlockAetherWisprootSapling.GREEN.getMeta(), "green_wisproot_sapling") - .add(BlockAetherWisprootSapling.BLUE.getMeta(), "blue_wisproot_sapling") - .add(BlockAetherWisprootSapling.DARK_BLUE.getMeta(), "dark_blue_wisproot_sapling")); - - registerItemModels(BlocksAether.greatroot_sapling, new ItemModelBuilder("saplings/") - .add(BlockAetherGreatrootSapling.GREEN.getMeta(), "green_greatroot_sapling") - .add(BlockAetherGreatrootSapling.BLUE.getMeta(), "blue_greatroot_sapling") - .add(BlockAetherGreatrootSapling.DARK_BLUE.getMeta(), "dark_blue_greatroot_sapling")); - - registerItemModels(BlocksAether.holystone_furnace, new ItemModelBuilder("holystone_furnace/") - .add(BlockHolystoneFurnace.LIT_META, "holystone_furnace_lit") - .add(BlockHolystoneFurnace.UNLIT_META, "holystone_furnace_unlit")); - - registerItemModels(BlocksAether.skyroot_fence, "skyroot_fence"); - registerItemModels(BlocksAether.skyroot_fence_gate, "skyroot_fence_gate"); - - registerItemModels(BlocksAether.wisproot_fence, "wisproot_fence"); - registerItemModels(BlocksAether.wisproot_fence_gate, "wisproot_fence_gate"); - - registerItemModels(BlocksAether.greatroot_fence, "greatroot_fence"); - registerItemModels(BlocksAether.greatroot_fence_gate, "greatroot_fence_gate"); - - registerItemModels(BlocksAether.therawood_fence, "therawood_fence"); - registerItemModels(BlocksAether.therawood_fence_gate, "therawood_fence_gate"); - - registerItemModels(BlocksAether.ambrosium_ore, "ores/ambrosium_ore"); - registerItemModels(BlocksAether.zanite_ore, "ores/zanite_ore"); - registerItemModels(BlocksAether.gravitite_ore, "ores/gravitite_ore"); - registerItemModels(BlocksAether.arkenium_ore, "ores/arkenium_ore"); - - registerItemModels(BlocksAether.quicksoil, "quicksoil"); - registerItemModels(BlocksAether.ferrosite_sand, "ferrosite_sand"); - registerItemModels(BlocksAether.icestone_ore, "icestone_ore"); - registerItemModels(BlocksAether.icestone_bricks, "icestone_bricks"); - - registerItemModels(BlocksAether.holystone_quartz_ore, "holystone_quartz_ore"); - - registerItemModels(BlocksAether.icestone_bricks_decorative, new ItemModelBuilder("icestone_bricks/") - .add(BlockIcestoneBricksDecorative.BASE_BRICKS.getMeta(), "base_bricks") - .add(BlockIcestoneBricksDecorative.BASE_PILLAR.getMeta(), "base_pillar") - .add(BlockIcestoneBricksDecorative.CAPSTONE_BRICKS.getMeta(), "capstone_bricks") - .add(BlockIcestoneBricksDecorative.CAPSTONE_PILLAR.getMeta(), "capstone_pillar") - .add(BlockIcestoneBricksDecorative.FLAGSTONES.getMeta(), "flagstones") - .add(BlockIcestoneBricksDecorative.KEYSTONE.getMeta(), "keystone")); - - registerItemModels(BlocksAether.icestone_pillar, "icestone_bricks/pillar"); - - registerItemModels(BlocksAether.quicksoil_glass, "quicksoil_glass/normal"); - registerItemModels(BlocksAether.quicksoil_glass_decorative, new ItemModelBuilder("quicksoil_glass/") - .add(BlockRockGlassDecorative.SKYROOT_FRAME.getMeta(), "skyroot_frame") - .add(BlockRockGlassDecorative.ARKENIUM_FRAME.getMeta(), "arkenium_frame")); - - registerItemModels(BlocksAether.crude_scatterglass, "crude_scatterglass/normal"); - registerItemModels(BlocksAether.crude_scatterglass_decorative, new ItemModelBuilder("crude_scatterglass/") - .add(BlockRockGlassDecorative.SKYROOT_FRAME.getMeta(), "skyroot_frame") - .add(BlockRockGlassDecorative.ARKENIUM_FRAME.getMeta(), "arkenium_frame")); - - registerItemModels(BlocksAether.scatterglass, "scatterglass/normal"); - registerItemModels(BlocksAether.scatterglass_decorative, new ItemModelBuilder("scatterglass/") - .add(BlockRockGlassDecorative.SKYROOT_FRAME.getMeta(), "skyroot_frame") - .add(BlockRockGlassDecorative.ARKENIUM_FRAME.getMeta(), "arkenium_frame")); - - registerItemModels(BlocksAether.quicksoil_glass_pane, "glass_pane/quicksoil_glass"); - registerItemModels(BlocksAether.quicksoil_glass_pane_decorative, new ItemModelBuilder("glass_pane/") - .add(BlockRockGlassPaneDecorative.SKYROOT_FRAME.getMeta(), "quicksoil_glass_skyroot") - .add(BlockRockGlassPaneDecorative.ARKENIUM_FRAME.getMeta(), "quicksoil_glass_arkenium")); - - registerItemModels(BlocksAether.scatterglass_pane, "glass_pane/scatterglass"); - registerItemModels(BlocksAether.scatterglass_pane_decorative, new ItemModelBuilder("glass_pane/") - .add(BlockRockGlassPaneDecorative.SKYROOT_FRAME.getMeta(), "scatterglass_skyroot") - .add(BlockRockGlassPaneDecorative.ARKENIUM_FRAME.getMeta(), "scatterglass_arkenium")); - - registerItemModels(BlocksAether.crude_scatterglass_pane, "glass_pane/crude_scatterglass"); - registerItemModels(BlocksAether.crude_scatterglass_pane_decorative, new ItemModelBuilder("glass_pane/") - .add(BlockRockGlassPaneDecorative.SKYROOT_FRAME.getMeta(), "crude_scatterglass_skyroot") - .add(BlockRockGlassPaneDecorative.ARKENIUM_FRAME.getMeta(), "crude_scatterglass_arkenium")); - - registerItemModels(BlocksAether.skyroot_twigs, "skyroot_twigs"); - registerItemModels(BlocksAether.holystone_rock, "holystone_rock"); - - registerItemModels(BlocksAether.cloudwool_carpet, "cloudwool_carpet"); - - registerItemModels(BlocksAether.aether_crafting_table, "crafting_tables/skyroot_crafting_table"); - - registerItemModels(ItemsAether.skyroot_bed_item, "skyroot_bed"); - - registerItemModels(BlocksAether.tall_aether_grass, new ItemModelBuilder("tall_grass/") - .add(BlockTallAetherGrass.SHORT.getMeta(), "short_aether") - .add(BlockTallAetherGrass.NORMAL.getMeta(), "normal_aether") - .add(BlockTallAetherGrass.LONG.getMeta(), "long_aether")); - - registerItemModels(BlocksAether.valkyrie_grass, new ItemModelBuilder("valkyrie_grass/") - .add(BlockValkyrieGrass.SPROUT.getMeta(), "valkyrie_grass_sprout") - .add(BlockValkyrieGrass.FULL.getMeta(), "valkyrie_grass_full")); - - registerItemModels(BlocksAether.brettl_plant, "brettl_plant/brettl_plant"); - registerItemModels(ItemsAether.brettl_cane, "brettl_plant/brettl_cane"); - registerItemModels(ItemsAether.brettl_grass, "brettl_plant/brettl_grass"); - - registerItemModels(BlocksAether.orange_tree, "orange_tree"); - - registerItemModels(BlocksAether.zanite_block, "zanite_block"); - registerItemModels(BlocksAether.gravitite_block, "gravitite_block"); - - registerItemModels(BlocksAether.holystone_brick_decorative, new ItemModelBuilder("holystone_bricks/") - .add(BlockHolystoneDecorative.BASE_BRICKS.getMeta(), "base_bricks") - .add(BlockHolystoneDecorative.BASE_PILLAR.getMeta(), "base_pillar") - .add(BlockHolystoneDecorative.CAPSTONE_BRICKS.getMeta(), "capstone_bricks") - .add(BlockHolystoneDecorative.CAPSTONE_PILLAR.getMeta(), "capstone_pillar") - .add(BlockHolystoneDecorative.FLAGSTONES.getMeta(), "flagstones") - .add(BlockHolystoneDecorative.HEADSTONE.getMeta(), "headstone") - .add(BlockHolystoneDecorative.KEYSTONE.getMeta(), "keystone")); - - registerItemModels(BlocksAether.holystone_brick, "holystone_bricks/normal"); - - registerItemModels(BlocksAether.plumproot, "plumproot"); - - registerItemModels(ItemsAether.plumproot_mash, "plumproot_mash"); - registerItemModels(ItemsAether.plumproot_pie, "plumproot_pie"); - - registerItemModels(BlocksAether.holystone_pillar, "holystone_bricks/pillar"); - - registerItemModels(BlocksAether.sentrystone_brick_decorative, new ItemModelBuilder("sentrystone_bricks/") - .add(BlockSentrystoneDecorative.BASE_BRICKS.getMeta(), "base_bricks") - .add(BlockSentrystoneDecorative.BASE_PILLAR.getMeta(), "base_pillar") - .add(BlockSentrystoneDecorative.CAPSTONE_BRICKS.getMeta(), "capstone_bricks") - .add(BlockSentrystoneDecorative.CAPSTONE_PILLAR.getMeta(), "capstone_pillar") - .add(BlockSentrystoneDecorative.FLAGSTONES.getMeta(), "flagstones") - .add(BlockSentrystoneDecorative.LIGHTSTONE.getMeta(), "lightstone") - .add(BlockSentrystoneDecorative.KEYSTONE.getMeta(), "keystone")); - - registerItemModels(BlocksAether.sentrystone_brick_decorative_lit, new ItemModelBuilder("sentrystone_bricks/") - .add(BlockSentrystoneDecorativeLit.BASE_BRICKS.getMeta(), "base_bricks_lit") - .add(BlockSentrystoneDecorativeLit.BASE_PILLAR.getMeta(), "base_pillar_lit") - .add(BlockSentrystoneDecorativeLit.CAPSTONE_BRICKS.getMeta(), "capstone_bricks_lit") - .add(BlockSentrystoneDecorativeLit.CAPSTONE_PILLAR.getMeta(), "capstone_pillar_lit") - .add(BlockSentrystoneDecorativeLit.LIGHTSTONE.getMeta(), "lightstone_lit") - .add(BlockSentrystoneDecorativeLit.KEYSTONE.getMeta(), "keystone_lit")); - - registerItemModels(BlocksAether.sentrystone_brick, "sentrystone_bricks/normal"); - - registerItemModels(BlocksAether.sentrystone_pillar, "sentrystone_bricks/pillar"); - - registerItemModels(BlocksAether.sentrystone_pillar_lit, "sentrystone_bricks/pillar_lit"); - - registerItemModels(BlocksAether.hellfirestone_brick_decorative, new ItemModelBuilder("hellfirestone_bricks/") - .add(BlockHellfirestoneDecorative.BASE_BRICKS.getMeta(), "base_bricks") - .add(BlockHellfirestoneDecorative.BASE_PILLAR.getMeta(), "base_pillar") - .add(BlockHellfirestoneDecorative.CAPSTONE_BRICKS.getMeta(), "capstone_bricks") - .add(BlockHellfirestoneDecorative.CAPSTONE_PILLAR.getMeta(), "capstone_pillar") - .add(BlockHellfirestoneDecorative.FLAGSTONES.getMeta(), "flagstones") - .add(BlockHellfirestoneDecorative.KEYSTONE.getMeta(), "keystone")); - - registerItemModels(BlocksAether.hellfirestone_brick, "hellfirestone_bricks/normal"); - - registerItemModels(BlocksAether.hellfirestone_lantern, "hellfirestone_bricks/lantern"); - - registerItemModels(BlocksAether.hellfirestone_pillar, "hellfirestone_bricks/pillar"); - - registerItemModels(BlocksAether.faded_holystone_brick, "faded_holystone_bricks/normal"); - - registerItemModels(BlocksAether.faded_holystone_brick_decorative, new ItemModelBuilder("faded_holystone_bricks/") - .add(BlockFadedHolystoneDecorative.BASE_BRICKS.getMeta(), "base_bricks") - .add(BlockFadedHolystoneDecorative.BASE_PILLAR.getMeta(), "base_pillar") - .add(BlockFadedHolystoneDecorative.CAPSTONE_BRICKS.getMeta(), "capstone_bricks") - .add(BlockFadedHolystoneDecorative.CAPSTONE_PILLAR.getMeta(), "capstone_pillar") - .add(BlockFadedHolystoneDecorative.FLAGSTONES.getMeta(), "flagstones") - .add(BlockFadedHolystoneDecorative.HEADSTONE.getMeta(), "headstone") - .add(BlockFadedHolystoneDecorative.KEYSTONE.getMeta(), "keystone")); - - registerItemModels(BlocksAether.faded_holystone_pillar, "faded_holystone_bricks/pillar"); - - registerItemModels(BlocksAether.agiosite, "agiosite"); - - registerItemModels(BlocksAether.agiosite_brick, "agiosite_bricks/normal"); - - registerItemModels(BlocksAether.agiosite_brick_decorative, new ItemModelBuilder("agiosite_bricks/") - .add(BlockAgiositeDecorative.BASE_BRICKS.getMeta(), "base_bricks") - .add(BlockAgiositeDecorative.BASE_PILLAR.getMeta(), "base_pillar") - .add(BlockAgiositeDecorative.CAPSTONE_BRICKS.getMeta(), "capstone_bricks") - .add(BlockAgiositeDecorative.CAPSTONE_PILLAR.getMeta(), "capstone_pillar") - .add(BlockAgiositeDecorative.FLAGSTONES.getMeta(), "flagstones") - .add(BlockAgiositeDecorative.KEYSTONE.getMeta(), "keystone")); - - registerItemModels(BlocksAether.agiosite_pillar, "agiosite_bricks/pillar"); - - registerItemModels(BlocksAether.skyroot_planks, "skyroot_planks/normal"); - - registerItemModels(BlocksAether.skyroot_decorative, new ItemModelBuilder("skyroot_planks/") - .add(BlockSkyrootDecorative.BASE_PLANKS.getMeta(), "base_planks") - .add(BlockSkyrootDecorative.BASE_BEAM.getMeta(), "base_beam") - .add(BlockSkyrootDecorative.TOP_PLANKS.getMeta(), "top_planks") - .add(BlockSkyrootDecorative.TOP_BEAM.getMeta(), "top_beam") - .add(BlockSkyrootDecorative.FLOORBOARDS.getMeta(), "floorboards") - .add(BlockSkyrootDecorative.HIGHLIGHT.getMeta(), "highlight") - .add(BlockSkyrootDecorative.TILES.getMeta(), "tiles") - .add(BlockSkyrootDecorative.TILES_SMALL.getMeta(), "tiles_small")); - - registerItemModels(BlocksAether.skyroot_beam, "skyroot_planks/beam"); - - registerItemModels(BlocksAether.dark_skyroot_planks, "dark_skyroot_planks/normal"); - - registerItemModels(BlocksAether.dark_skyroot_decorative, new ItemModelBuilder("dark_skyroot_planks/") - .add(BlockSkyrootDecorative.BASE_PLANKS.getMeta(), "base_planks") - .add(BlockSkyrootDecorative.BASE_BEAM.getMeta(), "base_beam") - .add(BlockSkyrootDecorative.TOP_PLANKS.getMeta(), "top_planks") - .add(BlockSkyrootDecorative.TOP_BEAM.getMeta(), "top_beam") - .add(BlockSkyrootDecorative.FLOORBOARDS.getMeta(), "floorboards") - .add(BlockSkyrootDecorative.HIGHLIGHT.getMeta(), "highlight") - .add(BlockSkyrootDecorative.TILES.getMeta(), "tiles") - .add(BlockSkyrootDecorative.TILES_SMALL.getMeta(), "tiles_small")); - - registerItemModels(BlocksAether.dark_skyroot_beam, "dark_skyroot_planks/beam"); - - registerItemModels(BlocksAether.light_skyroot_planks, "light_skyroot_planks/normal"); - - registerItemModels(BlocksAether.light_skyroot_decorative, new ItemModelBuilder("light_skyroot_planks/") - .add(BlockSkyrootDecorative.BASE_PLANKS.getMeta(), "base_planks") - .add(BlockSkyrootDecorative.BASE_BEAM.getMeta(), "base_beam") - .add(BlockSkyrootDecorative.TOP_PLANKS.getMeta(), "top_planks") - .add(BlockSkyrootDecorative.TOP_BEAM.getMeta(), "top_beam") - .add(BlockSkyrootDecorative.FLOORBOARDS.getMeta(), "floorboards") - .add(BlockSkyrootDecorative.HIGHLIGHT.getMeta(), "highlight") - .add(BlockSkyrootDecorative.TILES.getMeta(), "tiles") - .add(BlockSkyrootDecorative.TILES_SMALL.getMeta(), "tiles_small")); - - registerItemModels(BlocksAether.light_skyroot_beam, "light_skyroot_planks/beam"); - - registerItemModels(BlocksAether.aether_portal, "aether_portal"); - - registerItemModels(BlocksAether.standing_skyroot_sign, "tesr"); - registerItemModels(BlocksAether.wall_skyroot_sign, "tesr"); - - registerItemModels(BlocksAether.skyroot_bookshelf, "skyroot_bookshelf"); - - registerItemModels(BlocksAether.holystone_bookshelf, "holystone_bookshelf"); - - registerItemModels(BlocksAether.irradiated_dust_block, "irradiated_dust_block"); - - registerItemModels(ItemsAether.skyroot_stick, "skyroot_stick"); - registerItemModels(ItemsAether.cloudtwine, "cloudtwine"); - registerItemModels(ItemsAether.golden_amber, "golden_amber"); - registerItemModels(ItemsAether.moa_feather, "moa_feather"); - registerItemModels(ItemsAether.cockatrice_feather, "cockatrice_feather"); - - registerItemModels(ItemsAether.ambrosium_shard, "ambrosium_shard"); - registerItemModels(ItemsAether.ambrosium_chunk, "ambrosium_chunk"); - registerItemModels(ItemsAether.zanite_gemstone, "zanite_gemstone"); - registerItemModels(ItemsAether.arkenium, "arkenium"); - registerItemModels(ItemsAether.arkenium_strip, "arkenium_strip"); - registerItemModels(ItemsAether.gravitite_plate, "gravitite_plate"); - - registerItemModels(ItemsAether.skyroot_pickaxe, "tools/skyroot_pickaxe"); - registerItemModels(ItemsAether.skyroot_axe, "tools/skyroot_axe"); - registerItemModels(ItemsAether.skyroot_shovel, "tools/skyroot_shovel"); - registerItemModels(ItemsAether.skyroot_sword, "weapons/skyroot_sword"); - - registerItemModels(ItemsAether.holystone_pickaxe, "tools/holystone_pickaxe"); - registerItemModels(ItemsAether.holystone_axe, "tools/holystone_axe"); - registerItemModels(ItemsAether.holystone_shovel, "tools/holystone_shovel"); - registerItemModels(ItemsAether.holystone_sword, "weapons/holystone_sword"); - - registerItemModels(ItemsAether.zanite_pickaxe, "tools/zanite_pickaxe"); - registerItemModels(ItemsAether.zanite_axe, "tools/zanite_axe"); - registerItemModels(ItemsAether.zanite_shovel, "tools/zanite_shovel"); - registerItemModels(ItemsAether.zanite_sword, "weapons/zanite_sword"); - - registerItemModels(ItemsAether.gravitite_pickaxe, "tools/gravitite_pickaxe"); - registerItemModels(ItemsAether.gravitite_axe, "tools/gravitite_axe"); - registerItemModels(ItemsAether.gravitite_shovel, "tools/gravitite_shovel"); - registerItemModels(ItemsAether.gravitite_sword, "weapons/gravitite_sword"); - - registerItemModels(ItemsAether.arkenium_pickaxe, "tools/arkenium_pickaxe"); - registerItemModels(ItemsAether.arkenium_axe, "tools/arkenium_axe"); - registerItemModels(ItemsAether.arkenium_shovel, "tools/arkenium_shovel"); - registerItemModels(ItemsAether.arkenium_sword, "weapons/arkenium_sword"); - registerItemModels(ItemsAether.arkenium_shears, "tools/arkenium_shears"); - - registerItemModels(ItemsAether.taegore_hide_helmet, "armor/taegore_hide_helmet"); - registerItemModels(ItemsAether.taegore_hide_chestplate, "armor/taegore_hide_chestplate"); - registerItemModels(ItemsAether.taegore_hide_leggings, "armor/taegore_hide_leggings"); - registerItemModels(ItemsAether.taegore_hide_boots, "armor/taegore_hide_boots"); - - registerItemModels(ItemsAether.burrukai_pelt_helmet, "armor/burrukai_pelt_helmet"); - registerItemModels(ItemsAether.burrukai_pelt_chestplate, "armor/burrukai_pelt_chestplate"); - registerItemModels(ItemsAether.burrukai_pelt_leggings, "armor/burrukai_pelt_leggings"); - registerItemModels(ItemsAether.burrukai_pelt_boots, "armor/burrukai_pelt_boots"); - - registerItemModels(ItemsAether.zanite_helmet, "armor/zanite_helmet"); - registerItemModels(ItemsAether.zanite_chestplate, "armor/zanite_chestplate"); - registerItemModels(ItemsAether.zanite_leggings, "armor/zanite_leggings"); - registerItemModels(ItemsAether.zanite_boots, "armor/zanite_boots"); - - registerItemModels(ItemsAether.arkenium_helmet, "armor/arkenium_helmet"); - registerItemModels(ItemsAether.arkenium_chestplate, "armor/arkenium_chestplate"); - registerItemModels(ItemsAether.arkenium_leggings, "armor/arkenium_leggings"); - registerItemModels(ItemsAether.arkenium_boots, "armor/arkenium_boots"); - - registerItemModels(ItemsAether.gravitite_helmet, "armor/gravitite_helmet"); - registerItemModels(ItemsAether.gravitite_chestplate, "armor/gravitite_chestplate"); - registerItemModels(ItemsAether.gravitite_leggings, "armor/gravitite_leggings"); - registerItemModels(ItemsAether.gravitite_boots, "armor/gravitite_boots"); - - registerItemModels(ItemsAether.aechor_petal, "aechor_petal"); - registerItemModels(ItemsAether.blueberries, "blueberries"); - registerItemModels(ItemsAether.enchanted_blueberry, "enchanted_blueberry"); - registerItemModels(ItemsAether.orange, "orange"); - registerItemModels(ItemsAether.healing_stone, "healing_stone/healing_stone"); - registerItemModels(ItemsAether.healing_stone_depleted, "healing_stone/healing_stone_depleted"); - registerItemModels(ItemsAether.wyndberry, "wyndberry"); - registerItemModels(ItemsAether.enchanted_wyndberry, "enchanted_wyndberry"); - registerItemModels(ItemsAether.candy_corn, "candy_corn"); - registerItemModels(ItemsAether.cocoatrice, "cocoatrice"); - registerItemModels(ItemsAether.wrapped_chocolates, "wrapped_chocolates"); - registerItemModels(ItemsAether.jelly_plumproot, "jelly_plumproot"); - registerItemModels(ItemsAether.stomper_pop, "stomper_pop"); - registerItemModels(ItemsAether.blueberry_lollipop, "blueberry_lollipop"); - registerItemModels(ItemsAether.orange_lollipop, "orange_lollipop"); - registerItemModels(ItemsAether.icestone_poprocks, "icestone_poprocks"); - registerItemModels(ItemsAether.ginger_bread_man, "ginger_bread_man"); - registerItemModels(ItemsAether.candy_cane, "candy_cane"); - registerItemModels(ItemsAether.yule_log, "yule_log"); - - registerItemModels(ItemsAether.swet_sugar, "swet_sugar"); - - registerItemModels(ItemsAether.swet_jelly, new ItemModelBuilder("swet_jelly/") - .add(EntitySwet.Type.BLUE.ordinal(), "blue_swet_jelly") - .add(EntitySwet.Type.GREEN.ordinal(), "green_swet_jelly") - .add(EntitySwet.Type.PURPLE.ordinal(), "purple_swet_jelly")); - - registerItemModels(ItemsAether.swet_gel, new ItemModelBuilder("swet_gel/") - .add(EntitySwet.Type.BLUE.ordinal(), "blue_swet_gel") - .add(EntitySwet.Type.GREEN.ordinal(), "green_swet_gel") - .add(EntitySwet.Type.PURPLE.ordinal(), "purple_swet_gel")); - - registerItemModels(ItemsAether.skyroot_bucket, "skyroot_bucket/skyroot_bucket"); - registerItemModels(ItemsAether.skyroot_water_bucket, "skyroot_bucket/skyroot_water_bucket"); - registerItemModels(ItemsAether.skyroot_milk_bucket, "skyroot_bucket/skyroot_milk_bucket"); - registerItemModels(ItemsAether.skyroot_poison_bucket, "skyroot_bucket/skyroot_poison_bucket"); - - registerItemModels(ItemsAether.aerwhale_music_disc, "records/aerwhale_music_disc"); - registerItemModels(ItemsAether.labyrinth_music_disc, "records/labyrinth_music_disc"); - registerItemModels(ItemsAether.moa_music_disc, "records/moa_music_disc"); - registerItemModels(ItemsAether.valkyrie_music_disc, "records/valkyrie_music_disc"); - registerItemModels(ItemsAether.recording_892, "records/recording_892"); - - registerItemModels(ItemsAether.dart_shooter, new ItemModelBuilder("dart_shooter/") - .add(ItemDartType.GOLDEN.ordinal(), "golden_dart_shooter") - .add(ItemDartType.ENCHANTED.ordinal(), "enchanted_dart_shooter") - .add(ItemDartType.POISON.ordinal(), "poison_dart_shooter")); - - registerItemModels(ItemsAether.dart, new ItemModelBuilder("dart/") - .add(ItemDartType.GOLDEN.ordinal(), "golden_dart") - .add(ItemDartType.ENCHANTED.ordinal(), "enchanted_dart") - .add(ItemDartType.POISON.ordinal(), "poison_dart")); - - registerItemModels(ItemsAether.skyroot_crossbow, "crossbow/skyroot_crossbow"); - registerItemModels(ItemsAether.holystone_crossbow, "crossbow/holystone_crossbow"); - registerItemModels(ItemsAether.zanite_crossbow, "crossbow/zanite_crossbow"); - registerItemModels(ItemsAether.arkenium_crossbow, "crossbow/arkenium_crossbow"); - registerItemModels(ItemsAether.gravitite_crossbow, "crossbow/gravitite_crossbow"); - - registerItemModels(ItemsAether.bolt, "bolts/scatterglass_bolt"); - - registerItemModels(ItemsAether.skyroot_door_item, "skyroot_door"); - registerItemModels(ItemsAether.secret_skyroot_door_item, "secret_skyroot_door"); - registerItemModels(ItemsAether.arkenium_door_item, "arkenium_door"); - - registerItemModels(BlocksAether.skyroot_trapdoor, "skyroot_trapdoor"); - registerItemModels(BlocksAether.secret_skyroot_trapdoor, "secret_skyroot_trapdoor"); - - registerItemModels(BlocksAether.skyroot_ladder, "ladders/skyroot_ladder"); - - registerItemModels(BlocksAether.skyroot_pressure_plate, "skyroot_pressure_plate"); - registerItemModels(BlocksAether.skyroot_button, "skyroot_button"); - - registerItemModels(BlocksAether.wisproot_pressure_plate, "wisproot_pressure_plate"); - registerItemModels(BlocksAether.wisproot_button, "wisproot_button"); - - registerItemModels(BlocksAether.greatroot_pressure_plate, "greatroot_pressure_plate"); - registerItemModels(BlocksAether.greatroot_button, "greatroot_button"); - - registerItemModels(BlocksAether.holystone_pressure_plate, "holystone_pressure_plate"); - registerItemModels(BlocksAether.holystone_button, "holystone_button"); - - registerItemModels(BlocksAether.therawood_pressure_plate, "therawood_pressure_plate"); - registerItemModels(BlocksAether.therawood_button, "therawood_button"); - - registerItemModels(BlocksAether.skyroot_chest, "skyroot_chest"); - registerItemModels(BlocksAether.ambrosium_torch, "ambrosium_torch"); - - registerItemModels(ItemsAether.icestone, "icestone"); - - registerItemModels(ItemsAether.skyroot_sign, "skyroot_sign"); - - registerItemModels(BlocksAether.holystone_wall, "aether_wall/holystone_wall"); - registerItemModels(BlocksAether.mossy_holystone_wall, "aether_wall/mossy_holystone_wall"); - registerItemModels(BlocksAether.holystone_brick_wall, "aether_wall/holystone_brick_wall"); - registerItemModels(BlocksAether.skyroot_log_wall, "aether_wall/skyroot_log_wall"); - registerItemModels(BlocksAether.icestone_wall, "aether_wall/icestone_wall"); - registerItemModels(BlocksAether.scatterglass_wall, "aether_wall/scatterglass_wall"); - registerItemModels(BlocksAether.wisproot_log_wall, "aether_wall/wisproot_log_wall"); - registerItemModels(BlocksAether.greatroot_log_wall, "aether_wall/greatroot_log_wall"); - registerItemModels(BlocksAether.therawood_log_wall, "aether_wall/therawood_log_wall"); - registerItemModels(BlocksAether.agiosite_wall, "aether_wall/agiosite_wall"); - registerItemModels(BlocksAether.agiosite_brick_wall, "aether_wall/agiosite_brick_wall"); - registerItemModels(BlocksAether.faded_holystone_brick_wall, "aether_wall/faded_holystone_brick_wall"); - registerItemModels(BlocksAether.sentrystone_brick_wall, "aether_wall/sentrystone_brick_wall"); - registerItemModels(BlocksAether.hellfirestone_brick_wall, "aether_wall/hellfirestone_brick_wall"); - registerItemModels(BlocksAether.therastone_brick_wall, "aether_wall/therastone_brick_wall"); - - registerItemModels(BlocksAether.altar, "tesr"); - registerItemModels(BlocksAether.multiblock_dummy, "tesr"); - registerItemModels(BlocksAether.multiblock_dummy_half, "tesr"); - registerItemModels(BlocksAether.present, "tesr"); - registerItemModels(BlocksAether.icestone_cooler, "tesr"); - registerItemModels(BlocksAether.masonry_bench, "tesr"); - registerItemModels(BlocksAether.outpost_campfire, "tesr"); - registerItemModels(BlocksAether.aether_teleporter, "aether_teleporter"); - - registerItemModels(ItemsAether.taegore_hide_gloves, "accessories/taegore_hide_gloves"); - registerItemModels(ItemsAether.burrukai_pelt_gloves, "accessories/burrukai_pelt_gloves"); - registerItemModels(ItemsAether.zanite_gloves, "accessories/zanite_gloves"); - registerItemModels(ItemsAether.arkenium_gloves, "accessories/arkenium_gloves"); - registerItemModels(ItemsAether.gravitite_gloves, "accessories/gravitite_gloves"); - - registerItemModels(ItemsAether.shard_of_life, "miscellaneous/shard_of_life"); - - registerItemModels(ItemsAether.aether_saddle, "aether_saddle"); - - registerItemModels(ItemsAether.skyroot_shield, "skyroot_shield"); - registerItemModels(ItemsAether.holystone_shield, "holystone_shield"); - registerItemModels(ItemsAether.zanite_shield, "zanite_shield"); - registerItemModels(ItemsAether.arkenium_shield, "arkenium_shield"); - registerItemModels(ItemsAether.gravitite_shield, "gravitite_shield"); - - registerItemModels(BlocksAether.skyroot_slab, "aether_slab/skyroot_slab"); - registerItemModels(BlocksAether.wisproot_slab, "aether_slab/wisproot_slab"); - registerItemModels(BlocksAether.greatroot_slab, "aether_slab/greatroot_slab"); - registerItemModels(BlocksAether.therawood_slab, "aether_slab/therawood_slab"); - registerItemModels(BlocksAether.holystone_slab, "aether_slab/holystone_slab"); - registerItemModels(BlocksAether.therastone_brick_slab, "aether_slab/therastone_brick_slab"); - registerItemModels(BlocksAether.mossy_holystone_slab, "aether_slab/mossy_holystone_slab"); - registerItemModels(BlocksAether.holystone_brick_slab, "aether_slab/holystone_brick_slab"); - registerItemModels(BlocksAether.faded_holystone_brick_slab, "aether_slab/faded_holystone_brick_slab"); - registerItemModels(BlocksAether.icestone_slab, "aether_slab/icestone_slab"); - registerItemModels(BlocksAether.agiosite_slab, "aether_slab/agiosite_slab"); - registerItemModels(BlocksAether.agiosite_brick_slab, "aether_slab/agiosite_brick_slab"); - registerItemModels(BlocksAether.scatterglass_slab, "aether_slab/scatterglass_slab"); - registerItemModels(BlocksAether.sentrystone_brick_slab, "aether_slab/sentrystone_brick_slab"); - registerItemModels(BlocksAether.hellfirestone_brick_slab, "aether_slab/hellfirestone_brick_slab"); - - registerItemModels(BlocksAether.skyroot_stairs, "aether_stairs/skyroot_stairs"); - registerItemModels(BlocksAether.wisproot_stairs, "aether_stairs/wisproot_stairs"); - registerItemModels(BlocksAether.greatroot_stairs, "aether_stairs/greatroot_stairs"); - registerItemModels(BlocksAether.therawood_stairs, "aether_stairs/therawood_stairs"); - registerItemModels(BlocksAether.holystone_stairs, "aether_stairs/holystone_stairs"); - registerItemModels(BlocksAether.therastone_brick_stairs, "aether_stairs/therastone_brick_stairs"); - registerItemModels(BlocksAether.mossy_holystone_stairs, "aether_stairs/mossy_holystone_stairs"); - registerItemModels(BlocksAether.holystone_brick_stairs, "aether_stairs/holystone_brick_stairs"); - registerItemModels(BlocksAether.icestone_brick_stairs, "aether_stairs/icestone_brick_stairs"); - registerItemModels(BlocksAether.scatterglass_stairs, "aether_stairs/scatterglass_stairs"); - registerItemModels(BlocksAether.faded_holystone_brick_stairs, "aether_stairs/faded_holystone_brick_stairs"); - registerItemModels(BlocksAether.agiosite_stairs, "aether_stairs/agiosite_stairs"); - registerItemModels(BlocksAether.agiosite_brick_stairs, "aether_stairs/agiosite_brick_stairs"); - registerItemModels(BlocksAether.sentrystone_brick_stairs, "aether_stairs/sentrystone_brick_stairs"); - registerItemModels(BlocksAether.hellfirestone_brick_stairs, "aether_stairs/hellfirestone_brick_stairs"); - - registerItemModels(BlocksAether.highlands_snow, "highlands_snow"); - registerItemModels(BlocksAether.highlands_snow_layer, "highlands_snow_height2"); - registerItemModels(BlocksAether.highlands_ice, "highlands_ice"); - registerItemModels(BlocksAether.highlands_packed_ice, "highlands_packed_ice"); - - registerItemModels(BlocksAether.woven_sticks, new ItemModelBuilder("woven_sticks/") - .add(BlockWovenSticks.SKYROOT.getMeta(), "woven_skyroot_sticks")); - - registerItemModels(ItemsAether.moa_egg_item, "moa_egg/moa_egg"); - registerItemModels(ItemsAether.rainbow_moa_egg, "rainbow_moa_egg"); - - registerItemModels(BlocksAether.moa_egg, "moa_egg/moa_egg"); - - registerItemModels(ItemsAether.cloud_parachute, new ItemModelBuilder("cloud_parachute/") - .add(EntityParachute.Type.COLD.ordinal(), "cold_cloud_parachute") - .add(EntityParachute.Type.PURPLE.ordinal(), "purple_cloud_parachute") - .add(EntityParachute.Type.BLUE.ordinal(), "blue_cloud_parachute")); - - registerItemModels(ItemsAether.irradiated_chunk, "irradiated_chunk"); - registerItemModels(ItemsAether.irradiated_sword, "irradiated_sword"); - registerItemModels(ItemsAether.irradiated_armor, "irradiated_armor"); - registerItemModels(ItemsAether.irradiated_tool, "irradiated_tool"); - registerItemModels(ItemsAether.irradiated_ring, "irradiated_ring"); - registerItemModels(ItemsAether.irradiated_neckwear, "irradiated_neckwear"); - registerItemModels(ItemsAether.irradiated_charm, "irradiated_charm"); - - registerItemModels(ItemsAether.irradiated_dust, "irradiated_dust"); - - registerItemModels(BlocksAether.incubator, new ItemModelBuilder("incubator/") - .add(BlockIncubator.LIT_META, "lit") - .add(BlockIncubator.UNLIT_META, "unlit")); - - registerItemModels(ItemsAether.wrapping_paper, "wrapping_paper"); - registerItemModels(ItemsAether.fried_moa_egg, "fried_moa_egg"); - - registerItemModels(ItemsAether.raw_taegore_meat, "raw_taegore_meat"); - registerItemModels(ItemsAether.taegore_steak, "taegore_steak"); - registerItemModels(ItemsAether.taegore_hide, "taegore_hide"); - registerItemModels(ItemsAether.burrukai_rib_cut, "burrukai_rib_cut"); - registerItemModels(ItemsAether.burrukai_ribs, "burrukai_ribs"); - registerItemModels(ItemsAether.burrukai_pelt, "burrukai_pelt"); - registerItemModels(ItemsAether.kirrid_loin, "kirrid_loin"); - registerItemModels(ItemsAether.kirrid_cutlet, "kirrid_cutlet"); - registerItemModels(ItemsAether.valkyrie_wings, "valkyrie_wings"); - - registerItemModels(BlocksAether.highlands_ice_crystal, "crystals/highlands_ice_crystal"); - registerItemModels(BlocksAether.candy_cane_block, "candy_cane_block"); - registerItemModels(BlocksAether.candy_cane_wall, "aether_wall/candy_cane_wall"); - registerItemModels(ItemsAether.winter_hat, "miscellaneous/winter_hat"); - registerItemModels(ItemsAether.eggnog, "eggnog"); - - registerItemModels(ItemsAether.skyroot_lizard_stick, "skyroot_lizard_stick"); - registerItemModels(ItemsAether.skyroot_lizard_stick_roasted, "skyroot_lizard_stick_roasted"); - - registerItemModels(ItemsAether.scatterglass_vial, "scatterglass_vial"); - registerItemModels(ItemsAether.water_vial, "scatterglass_water_vial"); - registerItemModels(ItemsAether.antivenom_vial, "scatterglass_antivenom_vial"); - registerItemModels(ItemsAether.antitoxin_vial, "scatterglass_antitoxin_vial"); - registerItemModels(ItemsAether.bandage, "bandage"); - registerItemModels(ItemsAether.splint, "splint"); - - registerItemModels(ItemsAether.crude_scatterglass_shard, "crude_scatterglass_shard"); - - registerItemModels(ItemsAether.valkyrie_tea, "tea/valkyrie_tea"); - - registerItemModels(ItemsAether.skyroot_pinecone, "skyroot_pinecone"); - registerItemModels(ItemsAether.moa_feed, "feed/moa_feed"); - registerItemModels(ItemsAether.moa_feed_blueberries, "feed/moa_feed_blueberries"); - registerItemModels(ItemsAether.moa_feed_enchanted_blueberries, "feed/moa_feed_enchanted_blueberries"); - - registerItemModels(ItemsAether.brettl_rope, "brettl_rope"); - - //registerItemModels(ItemsAether.charm_arm_01, "accessories/charms/charm_arm_01"); - //registerItemModels(ItemsAether.charm_arm_02, "accessories/charms/charm_arm_02"); - //registerItemModels(ItemsAether.charm_arm_tgh_01, "accessories/charms/charm_arm_tgh_01"); - //registerItemModels(ItemsAether.charm_arm_tgh_02, "accessories/charms/charm_arm_tgh_02"); - //registerItemModels(ItemsAether.charm_imp_dmg_01, "accessories/charms/charm_imp_dmg_01"); - //registerItemModels(ItemsAether.charm_imp_dmg_02, "accessories/charms/charm_imp_dmg_02"); - //registerItemModels(ItemsAether.charm_atk_spd_01, "accessories/charms/charm_atk_spd_01"); - //registerItemModels(ItemsAether.charm_atk_spd_02, "accessories/charms/charm_atk_spd_02"); - //registerItemModels(ItemsAether.charm_kbk_res_01, "accessories/charms/charm_kbk_res_01"); - //registerItemModels(ItemsAether.charm_kbk_res_02, "accessories/charms/charm_kbk_res_02"); - //registerItemModels(ItemsAether.charm_lck_01, "accessories/charms/charm_lck_01"); - //registerItemModels(ItemsAether.charm_lck_02, "accessories/charms/charm_lck_02"); - registerItemModels(ItemsAether.charm_max_hlt_01, "accessories/charms/charm_max_hlt_01"); - //registerItemModels(ItemsAether.charm_max_hlt_02, "accessories/charms/charm_max_hlt_02"); - registerItemModels(ItemsAether.charm_mve_spd_01, "accessories/charms/charm_mve_spd_01"); - registerItemModels(ItemsAether.charm_mve_spd_02, "accessories/charms/charm_mve_spd_02"); - //registerItemModels(ItemsAether.charm_prc_dmg_01, "accessories/charms/charm_prc_dmg_01"); - //registerItemModels(ItemsAether.charm_prc_dmg_02, "accessories/charms/charm_prc_dmg_02"); - //registerItemModels(ItemsAether.charm_slsh_dmg_01, "accessories/charms/charm_slsh_dmg_01"); - //registerItemModels(ItemsAether.charm_slsh_dmg_02, "accessories/charms/charm_slsh_dmg_02"); - registerItemModels(ItemsAether.charm_res_amb_01, "accessories/charms/charm_res_amb_01"); - registerItemModels(ItemsAether.charm_res_amb_02, "accessories/charms/charm_res_amb_02"); - registerItemModels(ItemsAether.charm_res_bld_01, "accessories/charms/charm_res_bld_01"); - registerItemModels(ItemsAether.charm_res_bld_02, "accessories/charms/charm_res_bld_02"); - registerItemModels(ItemsAether.charm_res_fra_01, "accessories/charms/charm_res_fra_01"); - registerItemModels(ItemsAether.charm_res_fra_02, "accessories/charms/charm_res_fra_02"); - registerItemModels(ItemsAether.charm_res_frz_01, "accessories/charms/charm_res_frz_01"); - registerItemModels(ItemsAether.charm_res_frz_02, "accessories/charms/charm_res_frz_02"); - registerItemModels(ItemsAether.charm_res_grd_brk_01, "accessories/charms/charm_res_grd_brk_01"); - registerItemModels(ItemsAether.charm_res_grd_brk_02, "accessories/charms/charm_res_grd_brk_02"); - registerItemModels(ItemsAether.charm_res_irr_01, "accessories/charms/charm_res_irr_01"); - registerItemModels(ItemsAether.charm_res_irr_02, "accessories/charms/charm_res_irr_02"); - registerItemModels(ItemsAether.charm_res_stn_01, "accessories/charms/charm_res_stn_01"); - registerItemModels(ItemsAether.charm_res_stn_02, "accessories/charms/charm_res_stn_02"); - registerItemModels(ItemsAether.charm_res_tox_01,"accessories/charms/charm_res_tox_01"); - registerItemModels(ItemsAether.charm_res_tox_02,"accessories/charms/charm_res_tox_02"); - registerItemModels(ItemsAether.charm_res_ven_01, "accessories/charms/charm_res_ven_01"); - registerItemModels(ItemsAether.charm_res_ven_02, "accessories/charms/charm_res_ven_02"); - registerItemModels(ItemsAether.charm_res_web_01, "accessories/charms/charm_res_web_01"); - registerItemModels(ItemsAether.charm_res_web_02, "accessories/charms/charm_res_web_02"); - } - - private static void registerSnowyFlower(Block block, String name) - { - registerItemModels(block, new ItemModelBuilder("flowers/") - .add(BlockAetherFlowerBase.NORMAL_META, name) - .add(BlockAetherFlowerBase.SNOWY_META, name + "_snowy")); - } - - private static void registerItemModels(final Block block, final String path) - { - registerItemModels(getItem(block), path); - } - - private static void registerItemModels(final Item item, final String path) - { - final ModelResourceLocation resource = new ModelResourceLocation(AetherCore.getResourcePath(path), "inventory"); - - ModelLoader.setCustomModelResourceLocation(item, 0, resource); - } - - private static void registerItemModels(final Block block, final ItemModelBuilder builder) - { - registerItemModels(getItem(block), builder); - } - - private static void registerItemModels(final Item item, final ItemModelBuilder builder) - { - for (final Map.Entry<Integer, ModelResourceLocation> entry : builder.getRegistrations().entrySet()) - { - ModelLoader.setCustomModelResourceLocation(item, entry.getKey(), entry.getValue()); - } - } - - /** - * Shorthand utility method for Item.getItemFromBlock(block). - */ - private static Item getItem(final Block block) - { - return Item.getItemFromBlock(block); - } -} diff --git a/src/main/java/com/gildedgames/aether/client/models/entities/attachments/ModelParachute.java b/src/main/java/com/gildedgames/aether/client/models/entities/attachments/ModelParachute.java deleted file mode 100644 index ccec73e9d6..0000000000 --- a/src/main/java/com/gildedgames/aether/client/models/entities/attachments/ModelParachute.java +++ /dev/null @@ -1,148 +0,0 @@ -package com.gildedgames.aether.client.models.entities.attachments; - -import net.minecraft.client.model.ModelBase; -import net.minecraft.client.model.ModelRenderer; -import net.minecraft.entity.Entity; - -public class ModelParachute extends ModelBase -{ - public final ModelRenderer Canopy_Main; - public final ModelRenderer Canopy_2nd_Right; - public final ModelRenderer Canopy_2nd_Left; - public final ModelRenderer Canopy_3rd_Right; - public final ModelRenderer Canopy_3rd_Left; - public final ModelRenderer Cord_Front_Left; - public final ModelRenderer Cord_Front_Right; - public final ModelRenderer Cord_Back_Left; - public final ModelRenderer Cord_Back_Right; - public final ModelRenderer Cord_Middle_Left; - public final ModelRenderer Cord_Middle_Right; - public final ModelRenderer Chest_Strap; - public final ModelRenderer Shoulder_Strap_Right; - public final ModelRenderer Shoulder_Strap_Left; - - public ModelParachute() - { - textureWidth = 64; - textureHeight = 128; - - Canopy_Main = new ModelRenderer(this, 0, 0); - Canopy_Main.addBox(-7F, -15F, -8.5F, 14, 2, 17); - Canopy_Main.setRotationPoint(0F, 0F, 0F); - Canopy_Main.setTextureSize(64, 128); - Canopy_Main.mirror = true; - setRotation(Canopy_Main, 0F, 0F, 0F); - Canopy_2nd_Right = new ModelRenderer(this, 0, 19); - Canopy_2nd_Right.addBox(-8.5F, -16F, -7.5F, 8, 2, 15); - Canopy_2nd_Right.setRotationPoint(0F, 0F, 0F); - Canopy_2nd_Right.setTextureSize(64, 128); - Canopy_2nd_Right.mirror = true; - setRotation(Canopy_2nd_Right, 0F, 0F, -0.3490659F); - Canopy_2nd_Right.mirror = false; - Canopy_2nd_Left = new ModelRenderer(this, 0, 19); - Canopy_2nd_Left.addBox(0.5F, -16F, -7.5F, 8, 2, 15); - Canopy_2nd_Left.setRotationPoint(0F, 0F, 0F); - Canopy_2nd_Left.setTextureSize(64, 128); - Canopy_2nd_Left.mirror = true; - setRotation(Canopy_2nd_Left, 0F, 0F, 0.3490659F); - Canopy_3rd_Right = new ModelRenderer(this, 0, 36); - Canopy_3rd_Right.addBox(-13F, -16.5F, -6.5F, 8, 1, 13); - Canopy_3rd_Right.setRotationPoint(0F, 0F, 0F); - Canopy_3rd_Right.setTextureSize(64, 128); - Canopy_3rd_Right.mirror = true; - setRotation(Canopy_3rd_Right, 0F, 0F, -0.5235988F); - Canopy_3rd_Right.mirror = false; - Canopy_3rd_Left = new ModelRenderer(this, 0, 36); - Canopy_3rd_Left.addBox(5F, -16.5F, -6.5F, 8, 1, 13); - Canopy_3rd_Left.setRotationPoint(0F, 0F, 0F); - Canopy_3rd_Left.setTextureSize(64, 128); - Canopy_3rd_Left.mirror = true; - setRotation(Canopy_3rd_Left, 0F, 0F, 0.5235988F); - Cord_Front_Left = new ModelRenderer(this, 0, 50); - Cord_Front_Left.addBox(4F, -17F, -1F, 1, 15, 1); - Cord_Front_Left.setRotationPoint(0F, 0F, 0F); - Cord_Front_Left.setTextureSize(64, 128); - Cord_Front_Left.mirror = true; - setRotation(Cord_Front_Left, 0.3490659F, 0F, 0.5235988F); - Cord_Front_Right = new ModelRenderer(this, 0, 50); - Cord_Front_Right.addBox(-5F, -17F, -1F, 1, 15, 1); - Cord_Front_Right.setRotationPoint(0F, 0F, 0F); - Cord_Front_Right.setTextureSize(64, 128); - Cord_Front_Right.mirror = true; - setRotation(Cord_Front_Right, 0.3490659F, 0F, -0.5235988F); - Cord_Back_Left = new ModelRenderer(this, 0, 50); - Cord_Back_Left.addBox(4F, -17F, 0F, 1, 15, 1); - Cord_Back_Left.setRotationPoint(0F, 0F, 0F); - Cord_Back_Left.setTextureSize(64, 128); - Cord_Back_Left.mirror = true; - setRotation(Cord_Back_Left, -0.3490659F, 0F, 0.5235988F); - Cord_Back_Right = new ModelRenderer(this, 0, 50); - Cord_Back_Right.addBox(-5F, -17F, 0F, 1, 15, 1); - Cord_Back_Right.setRotationPoint(0F, 0F, 0F); - Cord_Back_Right.setTextureSize(64, 128); - Cord_Back_Right.mirror = true; - setRotation(Cord_Back_Right, -0.3490659F, 0F, -0.5235988F); - Cord_Middle_Left = new ModelRenderer(this, 0, 50); - Cord_Middle_Left.addBox(2F, -20F, -0.5F, 1, 15, 1); - Cord_Middle_Left.setRotationPoint(0F, 0F, 0F); - Cord_Middle_Left.setTextureSize(64, 128); - Cord_Middle_Left.mirror = true; - setRotation(Cord_Middle_Left, 0F, 0F, 1.047198F); - Cord_Middle_Right = new ModelRenderer(this, 0, 50); - Cord_Middle_Right.addBox(-3F, -20F, -0.5F, 1, 15, 1); - Cord_Middle_Right.setRotationPoint(0F, 0F, 0F); - Cord_Middle_Right.setTextureSize(64, 128); - Cord_Middle_Right.mirror = true; - setRotation(Cord_Middle_Right, 0F, 0F, -1.047198F); - Chest_Strap = new ModelRenderer(this, 0, 66); - Chest_Strap.addBox(-5F, 2F, -2.5F, 10, 1, 5); - Chest_Strap.setRotationPoint(0F, 0F, 0F); - Chest_Strap.setTextureSize(64, 128); - Chest_Strap.mirror = true; - setRotation(Chest_Strap, 0F, 0F, 0F); - Shoulder_Strap_Right = new ModelRenderer(this, 0, 72); - Shoulder_Strap_Right.addBox(-6F, -1F, -3F, 2, 5, 6); - Shoulder_Strap_Right.setRotationPoint(0F, 0F, 0F); - Shoulder_Strap_Right.setTextureSize(64, 128); - Shoulder_Strap_Right.mirror = true; - setRotation(Shoulder_Strap_Right, 0F, 0F, 0F); - Shoulder_Strap_Left = new ModelRenderer(this, 0, 72); - Shoulder_Strap_Left.addBox(4F, -1F, -3F, 2, 5, 6); - Shoulder_Strap_Left.setRotationPoint(0F, 0F, 0F); - Shoulder_Strap_Left.setTextureSize(64, 128); - Shoulder_Strap_Left.mirror = true; - setRotation(Shoulder_Strap_Left, 0F, 0F, 0F); - } - - public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) - { - super.render(entity, f, f1, f2, f3, f4, f5); - setRotationAngles(f, f1, f2, f3, f4, f5, entity); - Canopy_Main.render(f5); - Canopy_2nd_Right.render(f5); - Canopy_2nd_Left.render(f5); - Canopy_3rd_Right.render(f5); - Canopy_3rd_Left.render(f5); - Cord_Front_Left.render(f5); - Cord_Front_Right.render(f5); - Cord_Back_Left.render(f5); - Cord_Back_Right.render(f5); - Cord_Middle_Left.render(f5); - Cord_Middle_Right.render(f5); - Chest_Strap.render(f5); - Shoulder_Strap_Right.render(f5); - Shoulder_Strap_Left.render(f5); - } - - private void setRotation(ModelRenderer model, float x, float y, float z) - { - model.rotateAngleX = x; - model.rotateAngleY = y; - model.rotateAngleZ = z; - } - - public void setRotationAngles(float f, float f1, float f2, float f3, float f4, float f5, Entity entity) - { - super.setRotationAngles(f, f1, f2, f3, f4, f5, entity); - } -} diff --git a/src/main/java/com/gildedgames/aether/client/models/entities/companions/ModelFangrin.java b/src/main/java/com/gildedgames/aether/client/models/entities/companions/ModelFangrin.java deleted file mode 100644 index 7d081f010c..0000000000 --- a/src/main/java/com/gildedgames/aether/client/models/entities/companions/ModelFangrin.java +++ /dev/null @@ -1,369 +0,0 @@ -package com.gildedgames.aether.client.models.entities.companions; - -import net.minecraft.client.model.ModelBase; -import net.minecraft.client.model.ModelRenderer; -import net.minecraft.entity.Entity; -import net.minecraft.util.math.MathHelper; - -public class ModelFangrin extends ModelBase -{ - private final ModelRenderer Torso_Front; - - private final ModelRenderer Torso_Back; - - private final ModelRenderer Left_Leg; - - private final ModelRenderer Left_Foot; - - private final ModelRenderer Right_Leg; - - private final ModelRenderer Right_Foot; - - private final ModelRenderer Head; - - private final ModelRenderer Cheek_Right; - - private final ModelRenderer Cheek_Left; - - private final ModelRenderer Ear_Right; - - private final ModelRenderer Ear_Left; - - private final ModelRenderer Jaw; - - private final ModelRenderer Brow_Right; - - private final ModelRenderer Brow_Left; - - private final ModelRenderer Nose_Top; - - private final ModelRenderer Nose_Bottom; - - private final ModelRenderer Shell_Front; - - private final ModelRenderer Shell_Left; - - private final ModelRenderer Shell_Right; - - private final ModelRenderer Shell_Top; - - private final ModelRenderer Shell_Back; - - private final ModelRenderer Shell_Tail; - - private final ModelRenderer Back_Leg_Left; - - private final ModelRenderer Back_Foot_Left; - - private final ModelRenderer Back_Leg_Right; - - private final ModelRenderer Back_Foot_Right; - - private final ModelRenderer Tail_Base; - - private final ModelRenderer Tail_End; - - public ModelFangrin() - { - this.textureWidth = 128; - this.textureHeight = 64; - - this.Torso_Front = new ModelRenderer(this, 32, 13); - this.Torso_Front.addBox(-7F, 0F, -10F, 14, 9, 10); - this.Torso_Front.setRotationPoint(0F, 10F, 0F); - this.Torso_Front.setTextureSize(128, 64); - this.Torso_Front.mirror = true; - this.setRotation(this.Torso_Front, 0.1570796F, 0F, 0F); - - this.Torso_Back = new ModelRenderer(this, 32, 32); - this.Torso_Back.addBox(-6F, 0F, 0F, 12, 8, 6); - this.Torso_Back.setRotationPoint(0F, 10F, 0F); - this.Torso_Back.setTextureSize(128, 64); - this.Torso_Back.mirror = true; - this.setRotation(this.Torso_Back, -0.3490659F, 0F, 0F); - - this.Left_Leg = new ModelRenderer(this, 0, 13); - this.Left_Leg.addBox(0F, -2F, -2F, 3, 5, 4); - this.Left_Leg.setRotationPoint(5F, 18F, -6F); - this.Left_Leg.setTextureSize(128, 64); - this.Left_Leg.mirror = true; - this.setRotation(this.Left_Leg, 0F, 0F, 0F); - - this.Left_Leg.mirror = false; - this.Left_Foot = new ModelRenderer(this, 0, 22); - this.Left_Foot.addBox(0F, 1F, -3F, 3, 5, 4); - this.Left_Foot.setRotationPoint(5F, 18F, -6F); - this.Left_Foot.setTextureSize(128, 64); - this.Left_Foot.mirror = true; - this.setRotation(this.Left_Foot, -0.1745329F, -0.6981317F, 0.1745329F); - - this.Left_Foot.mirror = false; - this.Right_Leg = new ModelRenderer(this, 0, 13); - this.Right_Leg.addBox(-3F, -2F, -2F, 3, 5, 4); - this.Right_Leg.setRotationPoint(-5F, 18F, -6F); - this.Right_Leg.setTextureSize(128, 64); - this.Right_Leg.mirror = true; - this.setRotation(this.Right_Leg, 0F, 0F, 0F); - - this.Right_Foot = new ModelRenderer(this, 0, 22); - this.Right_Foot.addBox(-3F, 1F, -3F, 3, 5, 4); - this.Right_Foot.setRotationPoint(-5F, 18F, -6F); - this.Right_Foot.setTextureSize(128, 64); - this.Right_Foot.mirror = true; - this.setRotation(this.Right_Foot, -0.1745329F, 0.6981317F, -0.1745329F); - - this.Head = new ModelRenderer(this, 0, 0); - this.Head.addBox(-4F, -5F, -7F, 8, 5, 8); - this.Head.setRotationPoint(0F, 16F, -9F); - this.Head.setTextureSize(128, 64); - this.Head.mirror = true; - this.setRotation(this.Head, 0.5235988F, 0F, 0F); - - this.Cheek_Right = new ModelRenderer(this, 0, 31); - this.Cheek_Right.addBox(-5F, -1F, -3F, 3, 2, 6); - this.Cheek_Right.setRotationPoint(0F, 16F, -9F); - this.Cheek_Right.setTextureSize(128, 64); - this.Cheek_Right.mirror = true; - this.setRotation(this.Cheek_Right, 0.4363323F, -0.3490659F, 0F); - - this.Cheek_Left = new ModelRenderer(this, 0, 31); - this.Cheek_Left.addBox(2F, -1F, -3F, 3, 2, 6); - this.Cheek_Left.setRotationPoint(0F, 16F, -9F); - this.Cheek_Left.setTextureSize(128, 64); - this.Cheek_Left.mirror = true; - this.setRotation(this.Cheek_Left, 0.4363323F, 0.3490659F, 0F); - - this.Cheek_Left.mirror = false; - this.Ear_Right = new ModelRenderer(this, 58, 3); - this.Ear_Right.addBox(-4F, -4F, 2F, 1, 3, 4); - this.Ear_Right.setRotationPoint(0F, 16F, -9F); - this.Ear_Right.setTextureSize(128, 64); - this.Ear_Right.mirror = true; - this.setRotation(this.Ear_Right, 0.6981317F, -0.5235988F, -0.3490659F); - - this.Ear_Left = new ModelRenderer(this, 58, 3); - this.Ear_Left.addBox(3F, -4F, 2F, 1, 3, 4); - this.Ear_Left.setRotationPoint(0F, 16F, -9F); - this.Ear_Left.setTextureSize(128, 64); - this.Ear_Left.mirror = true; - this.setRotation(this.Ear_Left, 0.6981317F, 0.5235988F, 0.3490659F); - - this.Ear_Left.mirror = false; - this.Jaw = new ModelRenderer(this, 32, 2); - this.Jaw.addBox(-4.5F, -2F, -7.5F, 9, 3, 8); - this.Jaw.setRotationPoint(0F, 16F, -9F); - this.Jaw.setTextureSize(128, 64); - this.Jaw.mirror = true; - this.setRotation(this.Jaw, 0.5235988F, 0F, 0F); - - this.Brow_Right = new ModelRenderer(this, 30, 2); - this.Brow_Right.addBox(-7F, -1F, -4F, 2, 1, 3); - this.Brow_Right.setRotationPoint(0F, 16F, -9F); - this.Brow_Right.setTextureSize(128, 64); - this.Brow_Right.mirror = true; - - this.Brow_Left = new ModelRenderer(this, 30, 2); - this.Brow_Left.addBox(5F, -1F, -4F, 2, 1, 3); - this.Brow_Left.setRotationPoint(0F, 16F, -9F); - this.Brow_Left.setTextureSize(128, 64); - this.Brow_Left.mirror = true; - - this.Brow_Left.mirror = false; - this.Nose_Top = new ModelRenderer(this, 32, 6); - this.Nose_Top.addBox(-1.5F, -4.5F, -7.2F, 3, 1, 1); - this.Nose_Top.setRotationPoint(0F, 16F, -9F); - this.Nose_Top.setTextureSize(128, 64); - this.Nose_Top.mirror = true; - this.setRotation(this.Nose_Top, 0.5235988F, 0F, 0F); - - this.Nose_Bottom = new ModelRenderer(this, 34, 8); - this.Nose_Bottom.addBox(-1F, -3.5F, -7.2F, 2, 1, 1); - this.Nose_Bottom.setRotationPoint(0F, 16F, -9F); - this.Nose_Bottom.setTextureSize(128, 64); - this.Nose_Bottom.mirror = true; - this.setRotation(this.Nose_Bottom, 0.5235988F, 0F, 0F); - - this.Shell_Front = new ModelRenderer(this, 68, 1); - this.Shell_Front.addBox(1F, 0F, -9F, 8, 2, 8); - this.Shell_Front.setRotationPoint(0F, 10F, 0F); - this.Shell_Front.setTextureSize(128, 64); - this.Shell_Front.mirror = true; - this.setRotation(this.Shell_Front, -0.0872665F, 0.7853982F, -0.0872665F); - - this.Shell_Left = new ModelRenderer(this, 68, 32); - this.Shell_Left.addBox(1F, -7F, -5F, 6, 7, 7); - this.Shell_Left.setRotationPoint(0F, 10F, 0F); - this.Shell_Left.setTextureSize(128, 64); - this.Shell_Left.mirror = true; - this.setRotation(this.Shell_Left, -0.5235988F, 0.5235988F, 1.047198F); - - this.Shell_Left.mirror = false; - this.Shell_Right = new ModelRenderer(this, 68, 32); - this.Shell_Right.addBox(-7F, -7F, -5F, 6, 7, 7); - this.Shell_Right.setRotationPoint(0F, 10F, 0F); - this.Shell_Right.setTextureSize(128, 64); - this.Shell_Right.mirror = true; - this.setRotation(this.Shell_Right, -0.5235988F, -0.5235988F, -1.047198F); - - this.Shell_Top = new ModelRenderer(this, 70, 11); - this.Shell_Top.addBox(-4F, -2F, -4F, 8, 4, 8); - this.Shell_Top.setRotationPoint(0F, 10F, 0F); - this.Shell_Top.setTextureSize(128, 64); - this.Shell_Top.mirror = true; - this.setRotation(this.Shell_Top, -0.2617994F, 0.7853982F, -0.2617994F); - - this.Shell_Back = new ModelRenderer(this, 102, 0); - this.Shell_Back.addBox(-4F, -2F, 1.5F, 8, 12, 5); - this.Shell_Back.setRotationPoint(0F, 10F, 0F); - this.Shell_Back.setTextureSize(128, 64); - this.Shell_Back.mirror = true; - this.setRotation(this.Shell_Back, 0.2230717F, 0F, 0F); - - this.Shell_Tail = new ModelRenderer(this, 80, 25); - this.Shell_Tail.addBox(-2F, 5F, 1F, 4, 5, 2); - this.Shell_Tail.setRotationPoint(0F, 10F, 0F); - this.Shell_Tail.setTextureSize(128, 64); - this.Shell_Tail.mirror = true; - this.setRotation(this.Shell_Tail, 0.8551081F, 0F, 0F); - - this.Back_Leg_Left = new ModelRenderer(this, 14, 13); - this.Back_Leg_Left.addBox(0F, -2F, -2F, 3, 5, 4); - this.Back_Leg_Left.setRotationPoint(5F, 17F, 3F); - this.Back_Leg_Left.setTextureSize(128, 64); - this.Back_Leg_Left.mirror = true; - this.setRotation(this.Back_Leg_Left, -0.296706F, 0F, 0F); - - this.Back_Leg_Left.mirror = false; - this.Back_Foot_Left = new ModelRenderer(this, 14, 22); - this.Back_Foot_Left.addBox(-1F, 2F, -1F, 4, 5, 4); - this.Back_Foot_Left.setRotationPoint(5F, 17F, 3F); - this.Back_Foot_Left.setTextureSize(128, 64); - this.Back_Foot_Left.mirror = true; - this.setRotation(this.Back_Foot_Left, 0F, -0.2617994F, 0F); - - this.Back_Foot_Left.mirror = false; - this.Back_Leg_Right = new ModelRenderer(this, 14, 13); - this.Back_Leg_Right.addBox(-2F, -2F, -2F, 3, 5, 4); - this.Back_Leg_Right.setRotationPoint(-6F, 17F, 3F); - this.Back_Leg_Right.setTextureSize(128, 64); - this.Back_Leg_Right.mirror = true; - this.setRotation(this.Back_Leg_Right, -0.296706F, 0F, 0F); - - this.Back_Foot_Right = new ModelRenderer(this, 14, 22); - this.Back_Foot_Right.addBox(-3F, 2F, 0F, 4, 5, 4); - this.Back_Foot_Right.setRotationPoint(-6F, 17F, 3F); - this.Back_Foot_Right.setTextureSize(128, 64); - this.Back_Foot_Right.mirror = true; - this.setRotation(this.Back_Foot_Right, 0F, 0.2617994F, 0F); - - this.Tail_Base = new ModelRenderer(this, 92, 23); - this.Tail_Base.addBox(-1F, 0F, 0F, 2, 2, 7); - this.Tail_Base.setRotationPoint(0F, 13F, 7F); - this.Tail_Base.setTextureSize(128, 64); - this.Tail_Base.mirror = true; - this.setRotation(this.Tail_Base, -0.8179294F, 0F, 0F); - - this.Tail_End = new ModelRenderer(this, 94, 32); - this.Tail_End.addBox(-1F, 3.6F, 4F, 2, 2, 6); - this.Tail_End.setRotationPoint(0F, 13F, 7F); - this.Tail_End.setTextureSize(128, 64); - this.Tail_End.mirror = true; - this.setRotation(this.Tail_End, -0.1858931F, 0F, 0F); - } - - @Override - public void render(Entity entity, float limbSwing, float limbSwingAmount, float ageInTicks, float netHeadYaw, float headPitch, - float scale) - { - super.render(entity, limbSwing, limbSwingAmount, ageInTicks, netHeadYaw, headPitch, scale); - - this.setRotationAngles(entity, limbSwing, limbSwingAmount, ageInTicks, netHeadYaw, headPitch, scale); - - this.Torso_Front.render(scale); - this.Torso_Back.render(scale); - this.Left_Leg.render(scale); - this.Left_Foot.render(scale); - this.Right_Leg.render(scale); - this.Right_Foot.render(scale); - this.Head.render(scale); - this.Cheek_Right.render(scale); - this.Cheek_Left.render(scale); - this.Ear_Right.render(scale); - this.Ear_Left.render(scale); - this.Jaw.render(scale); - this.Brow_Right.render(scale); - this.Brow_Left.render(scale); - this.Nose_Top.render(scale); - this.Nose_Bottom.render(scale); - this.Shell_Front.render(scale); - this.Shell_Left.render(scale); - this.Shell_Right.render(scale); - this.Shell_Top.render(scale); - this.Shell_Back.render(scale); - this.Shell_Tail.render(scale); - this.Back_Leg_Left.render(scale); - this.Back_Foot_Left.render(scale); - this.Back_Leg_Right.render(scale); - this.Back_Foot_Right.render(scale); - this.Tail_Base.render(scale); - this.Tail_End.render(scale); - } - - private void setRotation(ModelRenderer model, float x, float y, float z) - { - model.rotateAngleX = x; - model.rotateAngleY = y; - model.rotateAngleZ = z; - } - - public void setRotationAngles(Entity entity, float par1, float par2, float par3, float par4, float par5, float par6) - { - super.setRotationAngles(par1, par2, par3, par4, par5, par6, entity); - - this.Head.rotateAngleX = par5 / (180F / (float) Math.PI) + 0.4f; - this.Head.rotateAngleY = par4 / (180F / (float) Math.PI); - - this.rotateWith(this.Head, this.Nose_Top); - this.rotateWith(this.Head, this.Nose_Bottom); - this.rotateWith(this.Head, this.Jaw); - - this.Jaw.rotateAngleX += 0.2f + (float) Math.cos(par3 / 10) / 10; - - this.rotateWith(this.Jaw, this.Cheek_Left); - this.rotateWith(this.Jaw, this.Cheek_Right); - - this.Cheek_Left.rotateAngleX += 0.43f; - this.Cheek_Left.rotateAngleY += 0.35f; - this.Cheek_Right.rotateAngleX += 0.43f; - this.Cheek_Right.rotateAngleY -= 0.35f; - - this.Tail_Base.rotateAngleX = (float) Math.sin(par3 / 10) / 20 - 0.7f; - this.Tail_End.rotateAngleX = (float) Math.sin(par3 / 10) / 10 - 0.15f; - this.Tail_End.offsetZ = 0.06f - ((float) Math.sin(par3 / 10)) / 210; - - this.Left_Leg.rotateAngleX = MathHelper.cos(par1 * 0.6662F) * 1.4F * par2; - this.Right_Leg.rotateAngleX = MathHelper.cos(par1 * 0.6662F + (float) Math.PI) * 1.4F * par2; - this.Back_Leg_Left.rotateAngleX = MathHelper.cos(par1 * 0.6662F + (float) Math.PI) * 1.4F * par2; - this.Back_Leg_Right.rotateAngleX = MathHelper.cos(par1 * 0.6662F) * 1.4F * par2; - this.Back_Leg_Left.rotateAngleY = 0; - this.Back_Leg_Right.rotateAngleY = 0; - - this.rotateWith(this.Back_Leg_Left, this.Back_Foot_Left); - this.rotateWith(this.Back_Leg_Right, this.Back_Foot_Right); - this.rotateWith(this.Left_Leg, this.Left_Foot); - this.rotateWith(this.Right_Leg, this.Right_Foot); - - this.Back_Leg_Left.rotateAngleX += 0.3f; - this.Back_Leg_Left.rotateAngleY = 0.2f; - this.Back_Leg_Right.rotateAngleX += 0.4f; - this.Back_Leg_Right.rotateAngleY = -0.2f; - } - - public void rotateWith(ModelRenderer base, ModelRenderer rotating) - { - rotating.setRotationPoint(base.rotationPointX, base.rotationPointY, base.rotationPointZ); - rotating.rotateAngleX = base.rotateAngleX; - rotating.rotateAngleY = base.rotateAngleY; - rotating.rotateAngleZ = base.rotateAngleZ; - } -} diff --git a/src/main/java/com/gildedgames/aether/client/models/entities/companions/ModelFrostpineTotem.java b/src/main/java/com/gildedgames/aether/client/models/entities/companions/ModelFrostpineTotem.java deleted file mode 100644 index d19a5256ff..0000000000 --- a/src/main/java/com/gildedgames/aether/client/models/entities/companions/ModelFrostpineTotem.java +++ /dev/null @@ -1,524 +0,0 @@ -package com.gildedgames.aether.client.models.entities.companions; - -import net.minecraft.client.model.ModelBase; -import net.minecraft.client.model.ModelRenderer; -import net.minecraft.entity.Entity; - -public class ModelFrostpineTotem extends ModelBase -{ - final ModelRenderer Moa_Body; - - final ModelRenderer Moa_Head; - - final ModelRenderer Moa_Neck; - - final ModelRenderer Moa_Left_Wing_Main_1; - - final ModelRenderer Moa_Right_Wing_Main_1; - - final ModelRenderer Moa_Left_Wing_Main_2; - - final ModelRenderer Moa_Right_Wing_Main_2; - - final ModelRenderer Moa_Left_Wing_Sub_Top; - - final ModelRenderer Moa_Right_Wing_Sub_Top; - - final ModelRenderer Moa_Left_Wing_Sub_Mid; - - final ModelRenderer Moa_Right_Wing_Sub_Mid; - - final ModelRenderer Moa_Left_Wing_Sub_Bottom; - - final ModelRenderer Moa_Right_Wing_Sub_Bottom; - - final ModelRenderer Moa_Tail_Main; - - final ModelRenderer Moa_Tail_Feather_Left_1; - - final ModelRenderer Moa_Tail_Feather_Right_1; - - final ModelRenderer Moa_Tail_Feather_Left_2; - - final ModelRenderer Moa_Tail_Feather_Right_2; - - final ModelRenderer Moa_Leg_Left; - - final ModelRenderer Moa_Leg_Right; - - final ModelRenderer Moa_Lower_Leg_Left; - - final ModelRenderer Moa_Lower_Leg_Right; - - final ModelRenderer Gruegar_Head; - - final ModelRenderer Gruegar_Ear_Left; - - final ModelRenderer Gruegar_Ear_Right; - - final ModelRenderer Gruegar_Muzzle; - - final ModelRenderer Gruegar_Neck; - - final ModelRenderer Gruegar_Shell_Top; - - final ModelRenderer Gruegar_Shell_Middle; - - final ModelRenderer Gruegar_Shell_Lower; - - final ModelRenderer Gruegar_Body; - - final ModelRenderer Gruegar_Shoulder_Left; - - final ModelRenderer Gruegar_Shoulder_Right; - - final ModelRenderer Gruegar_Upper_Arm_Left; - - final ModelRenderer Gruegar_Upper_Arm_Right; - - final ModelRenderer Gruegar_Forearm_Left; - - final ModelRenderer Gruegar_Forearm_Right; - - final ModelRenderer Gruegar_Paw_Left; - - final ModelRenderer Gruegar_Paw_Right; - - final ModelRenderer Gruegar_Leg_Left; - - final ModelRenderer Gruegar_Leg_Right; - - final ModelRenderer Gruegar_Tail; - - final ModelRenderer Zephyr_Body_1; - - final ModelRenderer Zephyr_Body_2; - - final ModelRenderer Zephyr_Rib_Left_1; - - final ModelRenderer Zephyr_Rib_Left_2; - - final ModelRenderer Zephyr_Rib_Right_1; - - final ModelRenderer Zephyr_Rib_Right_2; - - final ModelRenderer Zeohyr_Back_Plate_Left; - - final ModelRenderer Zephyr_Back_Plate_Right; - - final ModelRenderer Zephyr_Tail_1; - - final ModelRenderer Zephyr_Tail_2; - - final ModelRenderer Zephyr_Jaw_Right; - - final ModelRenderer Zephyr_Jaw_Left; - - final ModelRenderer Zephyr_Mouth; - - public ModelFrostpineTotem() - { - this.textureWidth = 64; - this.textureHeight = 256; - - this.Moa_Body = new ModelRenderer(this, 16, 19); - this.Moa_Body.addBox(-2F, -9F, -1F, 4, 7, 6); - this.Moa_Body.setRotationPoint(0F, 0F, 0F); - this.Moa_Body.setTextureSize(64, 32); - this.Moa_Body.mirror = true; - this.setRotation(this.Moa_Body, 0.4363323F, 0F, 0F); - this.Moa_Head = new ModelRenderer(this, 13, 0); - this.Moa_Head.addBox(-2.5F, -11F, 0F, 5, 4, 8); - this.Moa_Head.setRotationPoint(0F, 0F, 0F); - this.Moa_Head.setTextureSize(64, 32); - this.Moa_Head.mirror = true; - this.setRotation(this.Moa_Head, 1.047198F, 0F, 0F); - this.Moa_Neck = new ModelRenderer(this, 19, 12); - this.Moa_Neck.addBox(-1.5F, -9.5F, -6.5F, 3, 3, 4); - this.Moa_Neck.setRotationPoint(0F, 0F, 0F); - this.Moa_Neck.setTextureSize(64, 32); - this.Moa_Neck.mirror = true; - this.setRotation(this.Moa_Neck, -0.2792527F, 0F, 0F); - this.Moa_Left_Wing_Main_1 = new ModelRenderer(this, 26, 37); - this.Moa_Left_Wing_Main_1.addBox(4.5F, -4F, -2F, 11, 4, 1); - this.Moa_Left_Wing_Main_1.setRotationPoint(0F, 0F, 0F); - this.Moa_Left_Wing_Main_1.setTextureSize(64, 32); - this.Moa_Left_Wing_Main_1.mirror = true; - this.setRotation(this.Moa_Left_Wing_Main_1, 0F, 0F, -1.047198F); - this.Moa_Right_Wing_Main_1 = new ModelRenderer(this, 2, 37); - this.Moa_Right_Wing_Main_1.addBox(-15F, -4F, -2F, 11, 4, 1); - this.Moa_Right_Wing_Main_1.setRotationPoint(0F, 0F, 0F); - this.Moa_Right_Wing_Main_1.setTextureSize(64, 32); - this.Moa_Right_Wing_Main_1.mirror = true; - this.setRotation(this.Moa_Right_Wing_Main_1, 0F, 0F, 1.047198F); - this.Moa_Left_Wing_Main_2 = new ModelRenderer(this, 26, 32); - this.Moa_Left_Wing_Main_2.addBox(8F, 0F, -2F, 10, 4, 1); - this.Moa_Left_Wing_Main_2.setRotationPoint(0F, 0F, 0F); - this.Moa_Left_Wing_Main_2.setTextureSize(64, 32); - this.Moa_Left_Wing_Main_2.mirror = true; - this.setRotation(this.Moa_Left_Wing_Main_2, 0F, 0F, -1.047198F); - this.Moa_Right_Wing_Main_2 = new ModelRenderer(this, 4, 32); - this.Moa_Right_Wing_Main_2.addBox(-18F, 0F, -2F, 10, 4, 1); - this.Moa_Right_Wing_Main_2.setRotationPoint(0F, 0F, 0F); - this.Moa_Right_Wing_Main_2.setTextureSize(64, 32); - this.Moa_Right_Wing_Main_2.mirror = true; - this.setRotation(this.Moa_Right_Wing_Main_2, 0F, 0F, 1.047198F); - this.Moa_Left_Wing_Sub_Top = new ModelRenderer(this, 26, 42); - this.Moa_Left_Wing_Sub_Top.addBox(5F, -15F, -2.5F, 11, 3, 2); - this.Moa_Left_Wing_Sub_Top.setRotationPoint(0F, 0F, 0F); - this.Moa_Left_Wing_Sub_Top.setTextureSize(64, 32); - this.Moa_Left_Wing_Sub_Top.mirror = true; - this.setRotation(this.Moa_Left_Wing_Sub_Top, 0F, 0F, -0.0872665F); - this.Moa_Right_Wing_Sub_Top = new ModelRenderer(this, 0, 42); - this.Moa_Right_Wing_Sub_Top.addBox(-16F, -15F, -2.5F, 11, 3, 2); - this.Moa_Right_Wing_Sub_Top.setRotationPoint(0F, 0F, 0F); - this.Moa_Right_Wing_Sub_Top.setTextureSize(64, 32); - this.Moa_Right_Wing_Sub_Top.mirror = true; - this.setRotation(this.Moa_Right_Wing_Sub_Top, 0F, 0F, 0.0872665F); - this.Moa_Left_Wing_Sub_Mid = new ModelRenderer(this, 26, 47); - this.Moa_Left_Wing_Sub_Mid.addBox(4F, -11F, -2.5F, 9, 3, 2); - this.Moa_Left_Wing_Sub_Mid.setRotationPoint(0F, 0F, 0F); - this.Moa_Left_Wing_Sub_Mid.setTextureSize(64, 32); - this.Moa_Left_Wing_Sub_Mid.mirror = true; - this.setRotation(this.Moa_Left_Wing_Sub_Mid, 0F, 0F, -0.0872665F); - this.Moa_Right_Wing_Sub_Mid = new ModelRenderer(this, 4, 47); - this.Moa_Right_Wing_Sub_Mid.addBox(-13F, -11F, -2.5F, 9, 3, 2); - this.Moa_Right_Wing_Sub_Mid.setRotationPoint(0F, 0F, 0F); - this.Moa_Right_Wing_Sub_Mid.setTextureSize(64, 32); - this.Moa_Right_Wing_Sub_Mid.mirror = true; - this.setRotation(this.Moa_Right_Wing_Sub_Mid, 0F, 0F, 0.0872665F); - this.Moa_Left_Wing_Sub_Bottom = new ModelRenderer(this, 26, 52); - this.Moa_Left_Wing_Sub_Bottom.addBox(3F, -7F, -2.5F, 7, 3, 2); - this.Moa_Left_Wing_Sub_Bottom.setRotationPoint(0F, 0F, 0F); - this.Moa_Left_Wing_Sub_Bottom.setTextureSize(64, 32); - this.Moa_Left_Wing_Sub_Bottom.mirror = true; - this.setRotation(this.Moa_Left_Wing_Sub_Bottom, 0F, 0F, -0.0872665F); - this.Moa_Right_Wing_Sub_Bottom = new ModelRenderer(this, 8, 52); - this.Moa_Right_Wing_Sub_Bottom.addBox(-10F, -7F, -2.5F, 7, 3, 2); - this.Moa_Right_Wing_Sub_Bottom.setRotationPoint(0F, 0F, 0F); - this.Moa_Right_Wing_Sub_Bottom.setTextureSize(64, 32); - this.Moa_Right_Wing_Sub_Bottom.mirror = true; - this.setRotation(this.Moa_Right_Wing_Sub_Bottom, 0F, 0F, 0.0872665F); - this.Moa_Tail_Main = new ModelRenderer(this, 21, 57); - this.Moa_Tail_Main.addBox(-1.5F, -2F, 4F, 3, 5, 2); - this.Moa_Tail_Main.setRotationPoint(0F, 0F, 0F); - this.Moa_Tail_Main.setTextureSize(64, 32); - this.Moa_Tail_Main.mirror = true; - this.setRotation(this.Moa_Tail_Main, 0.7853982F, 0F, 0F); - this.Moa_Tail_Feather_Left_1 = new ModelRenderer(this, 31, 58); - this.Moa_Tail_Feather_Left_1.addBox(1F, -2F, 4.5F, 6, 2, 1); - this.Moa_Tail_Feather_Left_1.setRotationPoint(0F, 0F, 0F); - this.Moa_Tail_Feather_Left_1.setTextureSize(64, 32); - this.Moa_Tail_Feather_Left_1.mirror = true; - this.setRotation(this.Moa_Tail_Feather_Left_1, 0.7853982F, -0.2617994F, 0.1745329F); - this.Moa_Tail_Feather_Right_1 = new ModelRenderer(this, 7, 58); - this.Moa_Tail_Feather_Right_1.addBox(-7F, -2F, 4.5F, 6, 2, 1); - this.Moa_Tail_Feather_Right_1.setRotationPoint(0F, 0F, 0F); - this.Moa_Tail_Feather_Right_1.setTextureSize(64, 32); - this.Moa_Tail_Feather_Right_1.mirror = true; - this.setRotation(this.Moa_Tail_Feather_Right_1, 0.7853982F, 0.2617994F, -0.1745329F); - this.Moa_Tail_Feather_Left_2 = new ModelRenderer(this, 31, 61); - this.Moa_Tail_Feather_Left_2.addBox(2F, -1F, 4.5F, 5, 2, 1); - this.Moa_Tail_Feather_Left_2.setRotationPoint(0F, 0F, 0F); - this.Moa_Tail_Feather_Left_2.setTextureSize(64, 32); - this.Moa_Tail_Feather_Left_2.mirror = true; - this.setRotation(this.Moa_Tail_Feather_Left_2, 0.7853982F, -0.6108652F, 0.5235988F); - this.Moa_Tail_Feather_Right_2 = new ModelRenderer(this, 9, 61); - this.Moa_Tail_Feather_Right_2.addBox(-7F, -1F, 4.5F, 5, 2, 1); - this.Moa_Tail_Feather_Right_2.setRotationPoint(0F, 0F, 0F); - this.Moa_Tail_Feather_Right_2.setTextureSize(64, 32); - this.Moa_Tail_Feather_Right_2.mirror = true; - this.setRotation(this.Moa_Tail_Feather_Right_2, 0.7853982F, 0.6108652F, -0.5235988F); - this.Moa_Leg_Left = new ModelRenderer(this, 18, 64); - this.Moa_Leg_Left.addBox(-3.5F, -4F, -5F, 2, 5, 2); - this.Moa_Leg_Left.setRotationPoint(0F, 0F, 0F); - this.Moa_Leg_Left.setTextureSize(64, 32); - this.Moa_Leg_Left.mirror = true; - this.setRotation(this.Moa_Leg_Left, -0.4363323F, 0F, 0F); - this.Moa_Leg_Right = new ModelRenderer(this, 26, 64); - this.Moa_Leg_Right.addBox(1.5F, -4F, -5F, 2, 5, 2); - this.Moa_Leg_Right.setRotationPoint(0F, 0F, 0F); - this.Moa_Leg_Right.setTextureSize(64, 32); - this.Moa_Leg_Right.mirror = true; - this.setRotation(this.Moa_Leg_Right, -0.4363323F, 0F, 0F); - this.Moa_Lower_Leg_Left = new ModelRenderer(this, 34, 65); - this.Moa_Lower_Leg_Left.addBox(2F, -3F, -7.5F, 1, 2, 4); - this.Moa_Lower_Leg_Left.setRotationPoint(0F, 0F, 0F); - this.Moa_Lower_Leg_Left.setTextureSize(64, 32); - this.Moa_Lower_Leg_Left.mirror = true; - this.setRotation(this.Moa_Lower_Leg_Left, 0F, 0F, 0F); - this.Moa_Lower_Leg_Right = new ModelRenderer(this, 8, 65); - this.Moa_Lower_Leg_Right.addBox(-3F, -3F, -7.5F, 1, 2, 4); - this.Moa_Lower_Leg_Right.setRotationPoint(0F, 0F, 0F); - this.Moa_Lower_Leg_Right.setTextureSize(64, 32); - this.Moa_Lower_Leg_Right.mirror = true; - this.setRotation(this.Moa_Lower_Leg_Right, 0F, 0F, 0F); - this.Gruegar_Head = new ModelRenderer(this, 8, 76); - this.Gruegar_Head.addBox(-4.5F, -2F, -7F, 9, 6, 5); - this.Gruegar_Head.setRotationPoint(0F, 0F, 0F); - this.Gruegar_Head.setTextureSize(64, 32); - this.Gruegar_Head.mirror = true; - this.setRotation(this.Gruegar_Head, 0F, 0F, 0F); - this.Gruegar_Ear_Left = new ModelRenderer(this, 36, 84); - this.Gruegar_Ear_Left.addBox(3F, -3F, -5F, 2, 1, 2); - this.Gruegar_Ear_Left.setRotationPoint(0F, 0F, 0F); - this.Gruegar_Ear_Left.setTextureSize(64, 32); - this.Gruegar_Ear_Left.mirror = true; - this.setRotation(this.Gruegar_Ear_Left, 0F, 0F, 0.4363323F); - this.Gruegar_Ear_Right = new ModelRenderer(this, 0, 84); - this.Gruegar_Ear_Right.addBox(-5F, -3F, -5F, 2, 1, 2); - this.Gruegar_Ear_Right.setRotationPoint(0F, 0F, 0F); - this.Gruegar_Ear_Right.setTextureSize(64, 32); - this.Gruegar_Ear_Right.mirror = true; - this.setRotation(this.Gruegar_Ear_Right, 0F, 0F, -0.4363323F); - this.Gruegar_Muzzle = new ModelRenderer(this, 16, 87); - this.Gruegar_Muzzle.addBox(-1.5F, 5F, -4F, 3, 3, 3); - this.Gruegar_Muzzle.setRotationPoint(0F, 0F, 0F); - this.Gruegar_Muzzle.setTextureSize(64, 32); - this.Gruegar_Muzzle.mirror = true; - this.setRotation(this.Gruegar_Muzzle, -0.6981317F, 0F, 0F); - this.Gruegar_Neck = new ModelRenderer(this, 14, 93); - this.Gruegar_Neck.addBox(-1.5F, -1F, -3F, 3, 3, 5); - this.Gruegar_Neck.setRotationPoint(0F, 0F, 0F); - this.Gruegar_Neck.setTextureSize(64, 32); - this.Gruegar_Neck.mirror = true; - this.setRotation(this.Gruegar_Neck, -0.4363323F, 0F, 0F); - this.Gruegar_Shell_Top = new ModelRenderer(this, 13, 101); - this.Gruegar_Shell_Top.addBox(-3F, -3F, 1F, 6, 6, 3); - this.Gruegar_Shell_Top.setRotationPoint(0F, 0F, 0F); - this.Gruegar_Shell_Top.setTextureSize(64, 32); - this.Gruegar_Shell_Top.mirror = true; - this.setRotation(this.Gruegar_Shell_Top, 0.3490659F, -0.2443461F, 0.7853982F); - this.Gruegar_Shell_Top.mirror = false; - this.Gruegar_Shell_Middle = new ModelRenderer(this, 8, 110); - this.Gruegar_Shell_Middle.addBox(-5F, -1F, 1F, 10, 8, 4); - this.Gruegar_Shell_Middle.setRotationPoint(0F, 0F, 0F); - this.Gruegar_Shell_Middle.setTextureSize(64, 32); - this.Gruegar_Shell_Middle.mirror = true; - this.setRotation(this.Gruegar_Shell_Middle, 0F, 0F, 0F); - this.Gruegar_Shell_Lower = new ModelRenderer(this, 12, 122); - this.Gruegar_Shell_Lower.addBox(1F, 1F, 2F, 7, 7, 3); - this.Gruegar_Shell_Lower.setRotationPoint(0F, 0F, 0F); - this.Gruegar_Shell_Lower.setTextureSize(64, 32); - this.Gruegar_Shell_Lower.mirror = true; - this.setRotation(this.Gruegar_Shell_Lower, -0.0698132F, 0.0523599F, 0.7853982F); - this.Gruegar_Body = new ModelRenderer(this, 8, 132); - this.Gruegar_Body.addBox(-4F, 0F, -5F, 8, 11, 6); - this.Gruegar_Body.setRotationPoint(0F, 0F, 0F); - this.Gruegar_Body.setTextureSize(64, 32); - this.Gruegar_Body.mirror = true; - this.setRotation(this.Gruegar_Body, 0F, 0F, 0F); - this.Gruegar_Shoulder_Left = new ModelRenderer(this, 22, 149); - this.Gruegar_Shoulder_Left.addBox(2F, -3F, -5F, 5, 6, 6); - this.Gruegar_Shoulder_Left.setRotationPoint(0F, 0F, 0F); - this.Gruegar_Shoulder_Left.setTextureSize(64, 32); - this.Gruegar_Shoulder_Left.mirror = true; - this.setRotation(this.Gruegar_Shoulder_Left, 0.7853982F, 0F, 0.1745329F); - this.Gruegar_Shoulder_Right = new ModelRenderer(this, 0, 149); - this.Gruegar_Shoulder_Right.addBox(-7F, -1F, -3F, 5, 6, 6); - this.Gruegar_Shoulder_Right.setRotationPoint(0F, 0F, 0F); - this.Gruegar_Shoulder_Right.setTextureSize(64, 32); - this.Gruegar_Shoulder_Right.mirror = true; - this.setRotation(this.Gruegar_Shoulder_Right, -0.7853982F, 0F, -0.1745329F); - this.Gruegar_Upper_Arm_Left = new ModelRenderer(this, 22, 161); - this.Gruegar_Upper_Arm_Left.addBox(4F, 1F, -3F, 3, 5, 3); - this.Gruegar_Upper_Arm_Left.setRotationPoint(0F, 0F, 0F); - this.Gruegar_Upper_Arm_Left.setTextureSize(64, 32); - this.Gruegar_Upper_Arm_Left.mirror = true; - this.setRotation(this.Gruegar_Upper_Arm_Left, 0F, 0F, 0F); - this.Gruegar_Upper_Arm_Right = new ModelRenderer(this, 10, 161); - this.Gruegar_Upper_Arm_Right.addBox(-7F, 1F, -3F, 3, 5, 3); - this.Gruegar_Upper_Arm_Right.setRotationPoint(0F, 0F, 0F); - this.Gruegar_Upper_Arm_Right.setTextureSize(64, 32); - this.Gruegar_Upper_Arm_Right.mirror = true; - this.setRotation(this.Gruegar_Upper_Arm_Right, 0F, 0F, 0F); - this.Gruegar_Forearm_Left = new ModelRenderer(this, 22, 169); - this.Gruegar_Forearm_Left.addBox(5F, 5F, -6F, 3, 4, 7); - this.Gruegar_Forearm_Left.setRotationPoint(0F, 0F, 0F); - this.Gruegar_Forearm_Left.setTextureSize(64, 32); - this.Gruegar_Forearm_Left.mirror = true; - this.setRotation(this.Gruegar_Forearm_Left, 0F, 0.0872665F, 0.0872665F); - this.Gruegar_Forearm_Right = new ModelRenderer(this, 2, 169); - this.Gruegar_Forearm_Right.addBox(-8F, 5F, -6F, 3, 4, 7); - this.Gruegar_Forearm_Right.setRotationPoint(0F, 0F, 0F); - this.Gruegar_Forearm_Right.setTextureSize(64, 32); - this.Gruegar_Forearm_Right.mirror = true; - this.setRotation(this.Gruegar_Forearm_Right, 0F, -0.0872665F, -0.0872665F); - this.Gruegar_Paw_Left = new ModelRenderer(this, 22, 180); - this.Gruegar_Paw_Left.addBox(2F, 5F, -8F, 4, 5, 2); - this.Gruegar_Paw_Left.setRotationPoint(0F, 0F, 0F); - this.Gruegar_Paw_Left.setTextureSize(64, 32); - this.Gruegar_Paw_Left.mirror = true; - this.setRotation(this.Gruegar_Paw_Left, 0F, -0.0872665F, 0F); - this.Gruegar_Paw_Right = new ModelRenderer(this, 10, 180); - this.Gruegar_Paw_Right.addBox(-6F, 5F, -8F, 4, 5, 2); - this.Gruegar_Paw_Right.setRotationPoint(0F, 0F, 0F); - this.Gruegar_Paw_Right.setTextureSize(64, 32); - this.Gruegar_Paw_Right.mirror = true; - this.setRotation(this.Gruegar_Paw_Right, 0F, 0.0872665F, 0F); - this.Gruegar_Leg_Left = new ModelRenderer(this, 22, 187); - this.Gruegar_Leg_Left.addBox(0.5F, 7.5F, -7.5F, 3, 4, 3); - this.Gruegar_Leg_Left.setRotationPoint(0F, 0F, 0F); - this.Gruegar_Leg_Left.setTextureSize(64, 32); - this.Gruegar_Leg_Left.mirror = true; - this.setRotation(this.Gruegar_Leg_Left, 0F, 0F, 0F); - this.Gruegar_Leg_Right = new ModelRenderer(this, 10, 187); - this.Gruegar_Leg_Right.addBox(-3.5F, 7.5F, -7.5F, 3, 4, 3); - this.Gruegar_Leg_Right.setRotationPoint(0F, 0F, 0F); - this.Gruegar_Leg_Right.setTextureSize(64, 32); - this.Gruegar_Leg_Right.mirror = true; - this.setRotation(this.Gruegar_Leg_Right, 0F, 0F, 0F); - this.Gruegar_Tail = new ModelRenderer(this, 16, 194); - this.Gruegar_Tail.addBox(-1F, 9F, 4F, 2, 1, 4); - this.Gruegar_Tail.setRotationPoint(0F, 0F, 0F); - this.Gruegar_Tail.setTextureSize(64, 32); - this.Gruegar_Tail.mirror = true; - this.setRotation(this.Gruegar_Tail, -0.3490659F, 0F, 0F); - this.Zephyr_Body_1 = new ModelRenderer(this, 0, 204); - this.Zephyr_Body_1.addBox(-5.5F, 11F, -7F, 11, 4, 8); - this.Zephyr_Body_1.setRotationPoint(0F, 0F, 0F); - this.Zephyr_Body_1.setTextureSize(64, 32); - this.Zephyr_Body_1.mirror = true; - this.setRotation(this.Zephyr_Body_1, 0F, 0F, 0F); - this.Zephyr_Body_2 = new ModelRenderer(this, 11, 216); - this.Zephyr_Body_2.addBox(-1.5F, 14F, -7F, 3, 3, 5); - this.Zephyr_Body_2.setRotationPoint(0F, 0F, 0F); - this.Zephyr_Body_2.setTextureSize(64, 32); - this.Zephyr_Body_2.mirror = true; - this.setRotation(this.Zephyr_Body_2, 0.1745329F, 0F, 0F); - this.Zephyr_Rib_Left_1 = new ModelRenderer(this, 27, 216); - this.Zephyr_Rib_Left_1.addBox(6.5F, 13.5F, -3F, 1, 3, 1); - this.Zephyr_Rib_Left_1.setRotationPoint(0F, 0F, 0F); - this.Zephyr_Rib_Left_1.setTextureSize(64, 32); - this.Zephyr_Rib_Left_1.mirror = true; - this.setRotation(this.Zephyr_Rib_Left_1, 0F, 0F, 0.1745329F); - this.Zephyr_Rib_Left_2 = new ModelRenderer(this, 32, 216); - this.Zephyr_Rib_Left_2.addBox(6.5F, 13.5F, -1F, 1, 3, 1); - this.Zephyr_Rib_Left_2.setRotationPoint(0F, 0F, 0F); - this.Zephyr_Rib_Left_2.setTextureSize(64, 32); - this.Zephyr_Rib_Left_2.mirror = true; - this.setRotation(this.Zephyr_Rib_Left_2, 0F, 0F, 0.1745329F); - this.Zephyr_Rib_Right_1 = new ModelRenderer(this, 7, 216); - this.Zephyr_Rib_Right_1.addBox(-7.5F, 13.5F, -3F, 1, 3, 1); - this.Zephyr_Rib_Right_1.setRotationPoint(0F, 0F, 0F); - this.Zephyr_Rib_Right_1.setTextureSize(64, 32); - this.Zephyr_Rib_Right_1.mirror = true; - this.setRotation(this.Zephyr_Rib_Right_1, 0F, 0F, -0.1745329F); - this.Zephyr_Rib_Right_2 = new ModelRenderer(this, 2, 216); - this.Zephyr_Rib_Right_2.addBox(-7.5F, 13.5F, -1F, 1, 3, 1); - this.Zephyr_Rib_Right_2.setRotationPoint(0F, 0F, 0F); - this.Zephyr_Rib_Right_2.setTextureSize(64, 32); - this.Zephyr_Rib_Right_2.mirror = true; - this.setRotation(this.Zephyr_Rib_Right_2, 0F, 0F, -0.1745329F); - this.Zeohyr_Back_Plate_Left = new ModelRenderer(this, 19, 224); - this.Zeohyr_Back_Plate_Left.addBox(3F, 11F, 2F, 4, 2, 4); - this.Zeohyr_Back_Plate_Left.setRotationPoint(0F, 0F, 0F); - this.Zeohyr_Back_Plate_Left.setTextureSize(64, 32); - this.Zeohyr_Back_Plate_Left.mirror = true; - this.setRotation(this.Zeohyr_Back_Plate_Left, -0.1745329F, -0.1745329F, 0.1745329F); - this.Zephyr_Back_Plate_Right = new ModelRenderer(this, 3, 224); - this.Zephyr_Back_Plate_Right.addBox(-7F, 11F, 2F, 4, 2, 4); - this.Zephyr_Back_Plate_Right.setRotationPoint(0F, 0F, 0F); - this.Zephyr_Back_Plate_Right.setTextureSize(64, 32); - this.Zephyr_Back_Plate_Right.mirror = true; - this.setRotation(this.Zephyr_Back_Plate_Right, -0.1745329F, 0.1745329F, -0.1745329F); - this.Zephyr_Tail_1 = new ModelRenderer(this, 28, 239); - this.Zephyr_Tail_1.addBox(-1F, 11F, 2F, 2, 4, 8); - this.Zephyr_Tail_1.setRotationPoint(0F, 0F, 0F); - this.Zephyr_Tail_1.setTextureSize(64, 32); - this.Zephyr_Tail_1.mirror = true; - this.setRotation(this.Zephyr_Tail_1, -0.3490659F, 0F, 0F); - this.Zephyr_Tail_2 = new ModelRenderer(this, 33, 251); - this.Zephyr_Tail_2.addBox(-1F, 11F, 10F, 2, 2, 3); - this.Zephyr_Tail_2.setRotationPoint(0F, 0F, 0F); - this.Zephyr_Tail_2.setTextureSize(64, 32); - this.Zephyr_Tail_2.mirror = true; - this.setRotation(this.Zephyr_Tail_2, -0.3490659F, 0F, 0F); - this.Zephyr_Jaw_Right = new ModelRenderer(this, 9, 230); - this.Zephyr_Jaw_Right.addBox(-5F, 15F, -7F, 2, 3, 3); - this.Zephyr_Jaw_Right.setRotationPoint(0F, 0F, 0F); - this.Zephyr_Jaw_Right.setTextureSize(64, 32); - this.Zephyr_Jaw_Right.mirror = true; - this.setRotation(this.Zephyr_Jaw_Right, 0F, 0F, 0F); - this.Zephyr_Jaw_Left = new ModelRenderer(this, 19, 230); - this.Zephyr_Jaw_Left.addBox(3F, 15F, -7F, 2, 3, 3); - this.Zephyr_Jaw_Left.setRotationPoint(0F, 0F, 0F); - this.Zephyr_Jaw_Left.setTextureSize(64, 32); - this.Zephyr_Jaw_Left.mirror = true; - this.setRotation(this.Zephyr_Jaw_Left, 0F, 0F, 0F); - this.Zephyr_Mouth = new ModelRenderer(this, 10, 236); - this.Zephyr_Mouth.addBox(8F, 8F, -6F, 6, 6, 3); - this.Zephyr_Mouth.setRotationPoint(0F, 0F, 0F); - this.Zephyr_Mouth.setTextureSize(64, 32); - this.Zephyr_Mouth.mirror = true; - this.setRotation(this.Zephyr_Mouth, 0F, 0F, 0.7853982F); - } - - @Override - public void render(Entity entity, float limbSwing, float limbSwingAmount, float ageInTicks, float netHeadYaw, float headPitch, - float scale) - { - this.Moa_Body.render(scale); - this.Moa_Head.render(scale); - this.Moa_Neck.render(scale); - this.Moa_Left_Wing_Main_1.render(scale); - this.Moa_Right_Wing_Main_1.render(scale); - this.Moa_Left_Wing_Main_2.render(scale); - this.Moa_Right_Wing_Main_2.render(scale); - this.Moa_Left_Wing_Sub_Top.render(scale); - this.Moa_Right_Wing_Sub_Top.render(scale); - this.Moa_Left_Wing_Sub_Mid.render(scale); - this.Moa_Right_Wing_Sub_Mid.render(scale); - this.Moa_Left_Wing_Sub_Bottom.render(scale); - this.Moa_Right_Wing_Sub_Bottom.render(scale); - this.Moa_Tail_Main.render(scale); - this.Moa_Tail_Feather_Left_1.render(scale); - this.Moa_Tail_Feather_Right_1.render(scale); - this.Moa_Tail_Feather_Left_2.render(scale); - this.Moa_Tail_Feather_Right_2.render(scale); - this.Moa_Leg_Left.render(scale); - this.Moa_Leg_Right.render(scale); - this.Moa_Lower_Leg_Left.render(scale); - this.Moa_Lower_Leg_Right.render(scale); - this.Gruegar_Head.render(scale); - this.Gruegar_Ear_Left.render(scale); - this.Gruegar_Ear_Right.render(scale); - this.Gruegar_Muzzle.render(scale); - this.Gruegar_Neck.render(scale); - this.Gruegar_Shell_Top.render(scale); - this.Gruegar_Shell_Middle.render(scale); - this.Gruegar_Shell_Lower.render(scale); - this.Gruegar_Body.render(scale); - this.Gruegar_Shoulder_Left.render(scale); - this.Gruegar_Shoulder_Right.render(scale); - this.Gruegar_Upper_Arm_Left.render(scale); - this.Gruegar_Upper_Arm_Right.render(scale); - this.Gruegar_Forearm_Left.render(scale); - this.Gruegar_Forearm_Right.render(scale); - this.Gruegar_Paw_Left.render(scale); - this.Gruegar_Paw_Right.render(scale); - this.Gruegar_Leg_Left.render(scale); - this.Gruegar_Leg_Right.render(scale); - this.Gruegar_Tail.render(scale); - this.Zephyr_Body_1.render(scale); - this.Zephyr_Body_2.render(scale); - this.Zephyr_Rib_Left_1.render(scale); - this.Zephyr_Rib_Left_2.render(scale); - this.Zephyr_Rib_Right_1.render(scale); - this.Zephyr_Rib_Right_2.render(scale); - this.Zeohyr_Back_Plate_Left.render(scale); - this.Zephyr_Back_Plate_Right.render(scale); - this.Zephyr_Tail_1.render(scale); - this.Zephyr_Tail_2.render(scale); - this.Zephyr_Jaw_Right.render(scale); - this.Zephyr_Jaw_Left.render(scale); - this.Zephyr_Mouth.render(scale); - } - - private void setRotation(ModelRenderer model, float x, float y, float z) - { - model.rotateAngleX = x; - model.rotateAngleY = y; - model.rotateAngleZ = z; - } -} diff --git a/src/main/java/com/gildedgames/aether/client/models/entities/companions/ModelKraisith.java b/src/main/java/com/gildedgames/aether/client/models/entities/companions/ModelKraisith.java deleted file mode 100644 index 89f315f4a3..0000000000 --- a/src/main/java/com/gildedgames/aether/client/models/entities/companions/ModelKraisith.java +++ /dev/null @@ -1,349 +0,0 @@ -package com.gildedgames.aether.client.models.entities.companions; - -import net.minecraft.client.model.ModelBase; -import net.minecraft.client.model.ModelRenderer; -import net.minecraft.entity.Entity; -import net.minecraft.util.math.MathHelper; - -public class ModelKraisith extends ModelBase -{ - private final ModelRenderer Body_Main; - - private final ModelRenderer Body_Base; - - private final ModelRenderer Front_Leg_Left; - - private final ModelRenderer Front_Leg_Right; - - private final ModelRenderer Back_Leg_Right; - - private final ModelRenderer Back_Leg_Left; - - private final ModelRenderer Tail_1; - - private final ModelRenderer Tail_2; - - private final ModelRenderer Tail_Spines_1; - - private final ModelRenderer Tail_Spines_2; - - private final ModelRenderer Neck; - - private final ModelRenderer Head_Main; - - private final ModelRenderer Head_Top_Left; - - private final ModelRenderer Head_Top_Right; - - private final ModelRenderer Head_Bottom_Left; - - private final ModelRenderer Head_Bottom_Right; - - private final ModelRenderer Body_Stem; - - private final ModelRenderer Left_Shell_Main; - - private final ModelRenderer Right_Shell_Main; - - private final ModelRenderer Left_Shell_Front; - - private final ModelRenderer Right_Shell_Front; - - private final ModelRenderer Left_Shell_Back; - - private final ModelRenderer Right_Shell_Back; - - private final ModelRenderer Left_Shell_Top; - - private final ModelRenderer Right_Shell_Top; - - private final ModelRenderer Left_Shell_Bottom; - - private final ModelRenderer Right_Shell_Bottom; - - public ModelKraisith() - { - this.textureWidth = 128; - this.textureHeight = 64; - - this.Body_Main = new ModelRenderer(this, 50, 28); - this.Body_Main.addBox(0F, 0F, 0F, 7, 8, 7); - this.Body_Main.setRotationPoint(-3F, 8F, -4F); - this.Body_Main.setTextureSize(128, 64); - this.Body_Main.mirror = true; - this.setRotation(this.Body_Main, 0F, 0F, 0F); - - this.Body_Base = new ModelRenderer(this, 44, 43); - this.Body_Base.addBox(0F, 0F, 0F, 9, 3, 11); - this.Body_Base.setRotationPoint(-4F, 16F, -6F); - this.Body_Base.setTextureSize(128, 64); - this.Body_Base.mirror = true; - this.setRotation(this.Body_Base, 0F, 0F, 0F); - - this.Front_Leg_Left = new ModelRenderer(this, 65, 57); - this.Front_Leg_Left.addBox(-1F, -2F, -1F, 2, 5, 2); - this.Front_Leg_Left.setRotationPoint(5F, 19F, -6F); - this.Front_Leg_Left.setTextureSize(128, 64); - this.Front_Leg_Left.mirror = true; - this.setRotation(this.Front_Leg_Left, -0.3490659F, 0F, -0.3490659F); - - this.Front_Leg_Right = new ModelRenderer(this, 55, 57); - this.Front_Leg_Right.addBox(-1F, -2F, -1F, 2, 5, 2); - this.Front_Leg_Right.setRotationPoint(-4F, 19F, -6F); - this.Front_Leg_Right.setTextureSize(128, 64); - this.Front_Leg_Right.mirror = true; - this.setRotation(this.Front_Leg_Right, -0.3490659F, 0F, 0.3490659F); - - this.Back_Leg_Right = new ModelRenderer(this, 45, 57); - this.Back_Leg_Right.addBox(-1F, -2F, -1F, 2, 5, 2); - this.Back_Leg_Right.setRotationPoint(-4F, 19F, 5F); - this.Back_Leg_Right.setTextureSize(128, 64); - this.Back_Leg_Right.mirror = true; - this.setRotation(this.Back_Leg_Right, 0.3490659F, 0F, 0.3490659F); - - this.Back_Leg_Left = new ModelRenderer(this, 75, 57); - this.Back_Leg_Left.addBox(-1F, -2F, -1F, 2, 5, 2); - this.Back_Leg_Left.setRotationPoint(5F, 19F, 5F); - this.Back_Leg_Left.setTextureSize(128, 64); - this.Back_Leg_Left.mirror = true; - this.setRotation(this.Back_Leg_Left, 0.3490659F, 0F, -0.3490659F); - - this.Tail_1 = new ModelRenderer(this, 84, 45); - this.Tail_1.addBox(-1F, -1.5F, -1F, 2, 3, 7); - this.Tail_1.setRotationPoint(0.5F, 11F, 2F); - this.Tail_1.setTextureSize(128, 64); - this.Tail_1.mirror = true; - this.setRotation(this.Tail_1, -0.3490659F, 0F, 0F); - - this.Tail_2 = new ModelRenderer(this, 102, 48); - this.Tail_2.addBox(-0.5F, 1F, 5F, 1, 2, 5); - this.Tail_2.setRotationPoint(0.5F, 11F, 2F); - this.Tail_2.setTextureSize(128, 64); - this.Tail_2.mirror = true; - this.setRotation(this.Tail_2, 0F, 0F, 0F); - - this.Tail_Spines_1 = new ModelRenderer(this, 84, 37); - this.Tail_Spines_1.addBox(0F, -2.5F, -1F, 0, 1, 7); - this.Tail_Spines_1.setRotationPoint(0.5F, 11F, 2F); - this.Tail_Spines_1.setTextureSize(128, 64); - this.Tail_Spines_1.mirror = true; - this.setRotation(this.Tail_Spines_1, -0.3490659F, 0F, 0F); - - this.Tail_Spines_2 = new ModelRenderer(this, 102, 43); - this.Tail_Spines_2.addBox(0F, 0F, 6F, 0, 1, 4); - this.Tail_Spines_2.setRotationPoint(0.5F, 11F, 2F); - this.Tail_Spines_2.setTextureSize(128, 64); - this.Tail_Spines_2.mirror = true; - this.setRotation(this.Tail_Spines_2, 0F, 0F, 0F); - - this.Neck = new ModelRenderer(this, 58, 15); - this.Neck.addBox(0F, 0F, -3F, 3, 4, 3); - this.Neck.setRotationPoint(-1F, 8.5F, -3F); - this.Neck.setTextureSize(128, 64); - this.Neck.mirror = true; - this.setRotation(this.Neck, 0.1745329F, 0F, 0F); - - this.Head_Main = new ModelRenderer(this, 58, 3); - this.Head_Main.addBox(0.5F, -2F, -7F, 2, 8, 4); - this.Head_Main.setRotationPoint(-1F, 8.5F, -3F); - this.Head_Main.setTextureSize(128, 64); - this.Head_Main.mirror = true; - this.setRotation(this.Head_Main, 0.1745329F, 0F, 0F); - - this.Head_Top_Left = new ModelRenderer(this, 70, 0); - this.Head_Top_Left.addBox(2F, -3F, -7.5F, 1, 5, 4); - this.Head_Top_Left.setRotationPoint(-1F, 8.5F, -3F); - this.Head_Top_Left.setTextureSize(128, 64); - this.Head_Top_Left.mirror = true; - this.setRotation(this.Head_Top_Left, 0.1745329F, 0F, -0.1047198F); - - this.Head_Top_Right = new ModelRenderer(this, 48, 0); - this.Head_Top_Right.addBox(0F, -3.3F, -7.5F, 1, 5, 4); - this.Head_Top_Right.setRotationPoint(-1F, 8.5F, -3F); - this.Head_Top_Right.setTextureSize(128, 64); - this.Head_Top_Right.mirror = true; - this.setRotation(this.Head_Top_Right, 0.1745329F, 0F, 0.1047198F); - - this.Head_Bottom_Left = new ModelRenderer(this, 70, 9); - this.Head_Bottom_Left.addBox(2.4F, 1.5F, -7.5F, 1, 5, 4); - this.Head_Bottom_Left.setRotationPoint(-1F, 8.5F, -3F); - this.Head_Bottom_Left.setTextureSize(128, 64); - this.Head_Bottom_Left.mirror = true; - this.setRotation(this.Head_Bottom_Left, 0.1745329F, 0F, 0.1047198F); - - this.Head_Bottom_Right = new ModelRenderer(this, 48, 9); - this.Head_Bottom_Right.addBox(-0.4F, 1.8F, -7.5F, 1, 5, 4); - this.Head_Bottom_Right.setRotationPoint(-1F, 8.5F, -3F); - this.Head_Bottom_Right.setTextureSize(128, 64); - this.Head_Bottom_Right.mirror = true; - this.setRotation(this.Head_Bottom_Right, 0.1745329F, 0F, -0.1047198F); - - this.Body_Stem = new ModelRenderer(this, 50, 22); - this.Body_Stem.addBox(0F, 0F, 0F, 11, 3, 3); - this.Body_Stem.setRotationPoint(-5F, 9.5F, -2F); - this.Body_Stem.setTextureSize(128, 64); - this.Body_Stem.mirror = true; - this.setRotation(this.Body_Stem, 0F, 0F, 0F); - - this.Left_Shell_Main = new ModelRenderer(this, 12, 13); - this.Left_Shell_Main.addBox(-3F, 0F, 0F, 3, 10, 10); - this.Left_Shell_Main.setRotationPoint(9F, 6F, -5.5F); - this.Left_Shell_Main.setTextureSize(128, 64); - this.setRotation(this.Left_Shell_Main, 0F, 0F, 0F); - - this.Left_Shell_Main.mirror = false; - this.Right_Shell_Main = new ModelRenderer(this, 12, 13); - this.Right_Shell_Main.addBox(0F, 0F, 0F, 3, 10, 10); - this.Right_Shell_Main.setRotationPoint(-8F, 6F, -5.5F); - this.Right_Shell_Main.setTextureSize(128, 64); - this.Right_Shell_Main.mirror = true; - this.setRotation(this.Right_Shell_Main, 0F, 0F, 0F); - - this.Left_Shell_Front = new ModelRenderer(this, 38, 18); - this.Left_Shell_Front.mirror = true; - this.Left_Shell_Front.addBox(-2F, -0.5F, -4F, 2, 11, 4); - this.Left_Shell_Front.setRotationPoint(9F, 6F, -5.5F); - this.Left_Shell_Front.setTextureSize(128, 64); - this.setRotation(this.Left_Shell_Front, 0F, 0.6108652F, 0F); - - this.Right_Shell_Front = new ModelRenderer(this, 38, 18); - this.Right_Shell_Front.addBox(0F, -0.5F, -4F, 2, 11, 4); - this.Right_Shell_Front.setRotationPoint(-8F, 6F, -5.5F); - this.Right_Shell_Front.setTextureSize(128, 64); - this.Right_Shell_Front.mirror = true; - this.setRotation(this.Right_Shell_Front, 0F, -0.6108652F, 0F); - - this.Left_Shell_Back = new ModelRenderer(this, 0, 18); - this.Left_Shell_Back.addBox(3.5F, -0.5F, 8F, 2, 11, 4); - this.Left_Shell_Back.setRotationPoint(9F, 6F, -5.5F); - this.Left_Shell_Back.setTextureSize(128, 64); - this.setRotation(this.Left_Shell_Back, 0F, -0.6108652F, 0F); - - this.Left_Shell_Back.mirror = true; - this.Right_Shell_Back = new ModelRenderer(this, 0, 18); - this.Right_Shell_Back.addBox(-5.5F, -0.5F, 8F, 2, 11, 4); - this.Right_Shell_Back.setRotationPoint(-8F, 6F, -5.5F); - this.Right_Shell_Back.setTextureSize(128, 64); - this.Right_Shell_Back.mirror = true; - this.setRotation(this.Right_Shell_Back, 0F, 0.6108652F, 0F); - - this.Left_Shell_Top = new ModelRenderer(this, 12, 0); - this.Left_Shell_Top.mirror = true; - this.Left_Shell_Top.addBox(-2F, -4F, 0.5F, 2, 4, 9); - this.Left_Shell_Top.setRotationPoint(9F, 6F, -5.5F); - this.Left_Shell_Top.setTextureSize(128, 64); - this.setRotation(this.Left_Shell_Top, 0F, 0F, -0.6108652F); - - this.Right_Shell_Top = new ModelRenderer(this, 12, 0); - this.Right_Shell_Top.addBox(0F, -4F, 0.5F, 2, 4, 9); - this.Right_Shell_Top.setRotationPoint(-8F, 6F, -5.5F); - this.Right_Shell_Top.setTextureSize(128, 64); - this.Right_Shell_Top.mirror = true; - this.setRotation(this.Right_Shell_Top, 0F, 0F, 0.6108652F); - - this.Left_Shell_Bottom = new ModelRenderer(this, 12, 33); - this.Left_Shell_Bottom.mirror = true; - this.Left_Shell_Bottom.addBox(3.5F, 8F, 0.5F, 2, 4, 9); - this.Left_Shell_Bottom.setRotationPoint(9F, 6F, -5.5F); - this.Left_Shell_Bottom.setTextureSize(128, 64); - this.setRotation(this.Left_Shell_Bottom, 0F, 0F, 0.6108652F); - - this.Right_Shell_Bottom = new ModelRenderer(this, 12, 33); - this.Right_Shell_Bottom.addBox(-5.5F, 8F, 0.5F, 2, 4, 9); - this.Right_Shell_Bottom.setRotationPoint(-8F, 6F, -5.5F); - this.Right_Shell_Bottom.setTextureSize(128, 64); - this.Right_Shell_Bottom.mirror = true; - this.setRotation(this.Right_Shell_Bottom, 0F, 0F, -0.6108652F); - } - - @Override - public void render(Entity entity, float limbSwing, float limbSwingAmount, float ageInTicks, float netHeadYaw, float headPitch, - float scale) - { - super.render(entity, limbSwing, limbSwingAmount, ageInTicks, netHeadYaw, headPitch, scale); - - this.setRotationAngles(entity, limbSwing, limbSwingAmount, ageInTicks, netHeadYaw, headPitch, scale); - - this.Body_Main.render(scale); - this.Body_Base.render(scale); - this.Front_Leg_Left.render(scale); - this.Front_Leg_Right.render(scale); - this.Back_Leg_Right.render(scale); - this.Back_Leg_Left.render(scale); - this.Tail_1.render(scale); - this.Tail_2.render(scale); - this.Tail_Spines_1.render(scale); - this.Tail_Spines_2.render(scale); - this.Neck.render(scale); - this.Head_Main.render(scale); - this.Head_Top_Left.render(scale); - this.Head_Top_Right.render(scale); - this.Head_Bottom_Left.render(scale); - this.Head_Bottom_Right.render(scale); - this.Body_Stem.render(scale); - this.Left_Shell_Main.render(scale); - this.Right_Shell_Main.render(scale); - this.Left_Shell_Front.render(scale); - this.Right_Shell_Front.render(scale); - this.Left_Shell_Back.render(scale); - this.Right_Shell_Back.render(scale); - this.Left_Shell_Top.render(scale); - this.Right_Shell_Top.render(scale); - this.Left_Shell_Bottom.render(scale); - this.Right_Shell_Bottom.render(scale); - } - - private void setRotation(ModelRenderer model, float x, float y, float z) - { - model.rotateAngleX = x; - model.rotateAngleY = y; - model.rotateAngleZ = z; - } - - public void setRotationAngles(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) - { - super.setRotationAngles(f, f1, f2, f3, f4, f5, entity); - - this.Front_Leg_Left.rotateAngleX = MathHelper.cos(f * 0.6662F + 3.141593F) * 1.4F * f1; - this.Front_Leg_Right.rotateAngleX = MathHelper.cos(f * 0.6662F) * 1.4F * f1; - - this.Back_Leg_Left.rotateAngleX = MathHelper.cos(f * 0.6662F) * 1.4F * f1; - this.Back_Leg_Right.rotateAngleX = MathHelper.cos(f * 0.6662F + 3.141593F) * 1.4F * f1; - - this.Head_Main.rotateAngleX = (f4 / 107.29578F); - this.Head_Main.rotateAngleY = (f3 / 107.29578F); - - float flapAnim = (float) (Math.sin(f2 * 20 / 87.2957795) * 1.0F) / 20; - float flapAnimOpposite = (float) (Math.cos(f2 * 20 / 87.2957795) * 1.0F) / 20; - - this.Tail_1.rotateAngleX = -0.3490659F + flapAnimOpposite; - this.Tail_2.rotateAngleX = flapAnim; - - this.Tail_Spines_1.rotateAngleX = this.Tail_1.rotateAngleX; - this.Tail_Spines_2.rotateAngleX = this.Tail_2.rotateAngleX; - - this.Neck.rotateAngleX = this.Head_Main.rotateAngleX; - this.Neck.rotateAngleY = this.Head_Main.rotateAngleY; - this.Head_Bottom_Left.rotateAngleX = this.Head_Main.rotateAngleX; - this.Head_Bottom_Left.rotateAngleY = this.Head_Main.rotateAngleY + flapAnim; - this.Head_Bottom_Right.rotateAngleX = this.Head_Main.rotateAngleX; - this.Head_Bottom_Right.rotateAngleY = this.Head_Main.rotateAngleY + flapAnimOpposite; - this.Head_Top_Left.rotateAngleX = this.Head_Main.rotateAngleX; - this.Head_Top_Left.rotateAngleY = this.Head_Main.rotateAngleY + flapAnim; - this.Head_Top_Right.rotateAngleX = this.Head_Main.rotateAngleX; - this.Head_Top_Right.rotateAngleY = this.Head_Main.rotateAngleY + flapAnimOpposite; - - this.Left_Shell_Front.rotateAngleY = this.Left_Shell_Main.rotateAngleY + 0.6108652F; - this.Left_Shell_Back.rotateAngleY = this.Left_Shell_Main.rotateAngleY - 0.6108652F; - this.Left_Shell_Top.rotateAngleY = this.Left_Shell_Main.rotateAngleY; - this.Left_Shell_Bottom.rotateAngleY = this.Left_Shell_Main.rotateAngleY; - - this.Right_Shell_Front.rotateAngleY = this.Right_Shell_Main.rotateAngleY - 0.6108652F; - this.Right_Shell_Back.rotateAngleY = this.Right_Shell_Main.rotateAngleY + 0.6108652F; - this.Right_Shell_Top.rotateAngleY = this.Right_Shell_Main.rotateAngleY; - this.Right_Shell_Bottom.rotateAngleY = this.Right_Shell_Main.rotateAngleY; - - this.Left_Shell_Main.rotateAngleY = (float) (Math.sin(f2 * 20 / 87.2957795) * 4.0F) / 20; - this.Right_Shell_Main.rotateAngleY = (float) (Math.cos(f2 * 20 / 87.2957795) * 4.0F) / 20; - } -} diff --git a/src/main/java/com/gildedgames/aether/client/models/entities/companions/ModelNexSpirit.java b/src/main/java/com/gildedgames/aether/client/models/entities/companions/ModelNexSpirit.java deleted file mode 100644 index 72429bdd3f..0000000000 --- a/src/main/java/com/gildedgames/aether/client/models/entities/companions/ModelNexSpirit.java +++ /dev/null @@ -1,325 +0,0 @@ -package com.gildedgames.aether.client.models.entities.companions; - -import net.minecraft.client.model.ModelBase; -import net.minecraft.client.model.ModelRenderer; -import net.minecraft.entity.Entity; - -public class ModelNexSpirit extends ModelBase -{ - private final ModelRenderer Seal_Outer_Bottom; - - private final ModelRenderer Seal_Outer_Left_Bottom; - - private final ModelRenderer Seal_Outer_Right_Bottom; - - private final ModelRenderer Seal_Outer_Left_Top; - - private final ModelRenderer Seal_Outer_Right_Top; - - private final ModelRenderer Seal_Ridge_Top; - - private final ModelRenderer Seal_Ridge_Right_1; - - private final ModelRenderer Seal_Ridge_Right_2; - - private final ModelRenderer Seal_Ridge_Right_3; - - private final ModelRenderer Seal_Ridge_Right_4; - - private final ModelRenderer Seal_Ridge_Left_1; - - private final ModelRenderer Seal_Ridge_Left_2; - - private final ModelRenderer Seal_Ridge_Left_3; - - private final ModelRenderer Seal_Ridge_Left_4; - - private final ModelRenderer Seal_Ridge_Bottom; - - private final ModelRenderer Seal_Base; - - private final ModelRenderer Skull; - - private final ModelRenderer Chest; - - private final ModelRenderer Neck; - - private final ModelRenderer Head; - - private final ModelRenderer Mask; - - private final ModelRenderer Back; - - private final ModelRenderer Stub; - - private final ModelRenderer Right_Arm; - - private final ModelRenderer Left_Arm; - - private final ModelRenderer Shoulder_Left; - - private final ModelRenderer Shoulder_Right; - - private final ModelRenderer Hand_Left; - - private final ModelRenderer Hand_Right; - - public ModelNexSpirit() - { - this.textureWidth = 128; - this.textureHeight = 128; - - this.Seal_Outer_Bottom = new ModelRenderer(this, 43, 51); - this.Seal_Outer_Bottom.addBox(-3F, 7F, 0F, 6, 2, 3); - this.Seal_Outer_Bottom.setRotationPoint(0F, 0F, 0F); - this.Seal_Outer_Bottom.setTextureSize(128, 128); - this.Seal_Outer_Bottom.mirror = true; - this.setRotation(this.Seal_Outer_Bottom, 0F, 0F, 0F); - - this.Seal_Outer_Left_Bottom = new ModelRenderer(this, 24, 51); - this.Seal_Outer_Left_Bottom.addBox(-3F, 7F, 0F, 6, 2, 3); - this.Seal_Outer_Left_Bottom.setRotationPoint(0F, 0F, 0F); - this.Seal_Outer_Left_Bottom.setTextureSize(128, 128); - this.Seal_Outer_Left_Bottom.mirror = true; - this.setRotation(this.Seal_Outer_Left_Bottom, 0F, 0F, 1.22173F); - - this.Seal_Outer_Right_Bottom = new ModelRenderer(this, 62, 51); - this.Seal_Outer_Right_Bottom.addBox(-3F, 7F, 0F, 6, 2, 3); - this.Seal_Outer_Right_Bottom.setRotationPoint(0F, 0F, 0F); - this.Seal_Outer_Right_Bottom.setTextureSize(128, 128); - this.Seal_Outer_Right_Bottom.mirror = true; - this.setRotation(this.Seal_Outer_Right_Bottom, 0F, 0F, -1.22173F); - - this.Seal_Outer_Left_Top = new ModelRenderer(this, 5, 51); - this.Seal_Outer_Left_Top.addBox(-3F, 7F, 0F, 6, 2, 3); - this.Seal_Outer_Left_Top.setRotationPoint(0F, 0F, 0F); - this.Seal_Outer_Left_Top.setTextureSize(128, 128); - this.Seal_Outer_Left_Top.mirror = true; - this.setRotation(this.Seal_Outer_Left_Top, 0F, 0F, 2.443461F); - - this.Seal_Outer_Right_Top = new ModelRenderer(this, 81, 51); - this.Seal_Outer_Right_Top.addBox(-3F, 7F, 0F, 6, 2, 3); - this.Seal_Outer_Right_Top.setRotationPoint(0F, 0F, 0F); - this.Seal_Outer_Right_Top.setTextureSize(128, 128); - this.Seal_Outer_Right_Top.mirror = true; - this.setRotation(this.Seal_Outer_Right_Top, 0F, 0F, -2.443461F); - - this.Seal_Ridge_Top = new ModelRenderer(this, 44, 17); - this.Seal_Ridge_Top.addBox(-3F, -8F, 0.5F, 6, 2, 2); - this.Seal_Ridge_Top.setRotationPoint(0F, 0F, 0F); - this.Seal_Ridge_Top.setTextureSize(128, 128); - this.Seal_Ridge_Top.mirror = true; - this.setRotation(this.Seal_Ridge_Top, 0F, 0F, 0F); - - this.Seal_Ridge_Right_1 = new ModelRenderer(this, 67, 22); - this.Seal_Ridge_Right_1.addBox(-3F, 6F, 0.5F, 6, 2, 2); - this.Seal_Ridge_Right_1.setRotationPoint(0F, 0F, 0F); - this.Seal_Ridge_Right_1.setTextureSize(128, 128); - this.Seal_Ridge_Right_1.mirror = true; - this.setRotation(this.Seal_Ridge_Right_1, 0F, 0F, -2.443461F); - - this.Seal_Ridge_Right_2 = new ModelRenderer(this, 67, 27); - this.Seal_Ridge_Right_2.addBox(-4F, 6F, 0.5F, 8, 2, 2); - this.Seal_Ridge_Right_2.setRotationPoint(0F, 0F, 0F); - this.Seal_Ridge_Right_2.setTextureSize(128, 128); - this.Seal_Ridge_Right_2.mirror = true; - this.setRotation(this.Seal_Ridge_Right_2, 0F, 0F, -1.832596F); - - this.Seal_Ridge_Right_3 = new ModelRenderer(this, 67, 32); - this.Seal_Ridge_Right_3.addBox(-3F, 6F, 0.5F, 6, 2, 2); - this.Seal_Ridge_Right_3.setRotationPoint(0F, 0F, 0F); - this.Seal_Ridge_Right_3.setTextureSize(128, 128); - this.Seal_Ridge_Right_3.mirror = true; - this.setRotation(this.Seal_Ridge_Right_3, 0F, 0F, -1.22173F); - - this.Seal_Ridge_Right_4 = new ModelRenderer(this, 67, 37); - this.Seal_Ridge_Right_4.addBox(-4F, 6F, 0.5F, 8, 2, 2); - this.Seal_Ridge_Right_4.setRotationPoint(0F, 0F, 0F); - this.Seal_Ridge_Right_4.setTextureSize(128, 128); - this.Seal_Ridge_Right_4.mirror = true; - this.setRotation(this.Seal_Ridge_Right_4, 0F, 0F, -0.6108652F); - - this.Seal_Ridge_Left_1 = new ModelRenderer(this, 21, 22); - this.Seal_Ridge_Left_1.addBox(-3F, 6F, 0.5F, 6, 2, 2); - this.Seal_Ridge_Left_1.setRotationPoint(0F, 0F, 0F); - this.Seal_Ridge_Left_1.setTextureSize(128, 128); - this.Seal_Ridge_Left_1.mirror = true; - this.setRotation(this.Seal_Ridge_Left_1, 0F, 0F, 2.443461F); - - this.Seal_Ridge_Left_2 = new ModelRenderer(this, 17, 27); - this.Seal_Ridge_Left_2.addBox(-4F, 6F, 0.5F, 8, 2, 2); - this.Seal_Ridge_Left_2.setRotationPoint(0F, 0F, 0F); - this.Seal_Ridge_Left_2.setTextureSize(128, 128); - this.Seal_Ridge_Left_2.mirror = true; - this.setRotation(this.Seal_Ridge_Left_2, 0F, 0F, 1.832596F); - - this.Seal_Ridge_Left_3 = new ModelRenderer(this, 21, 32); - this.Seal_Ridge_Left_3.addBox(-3F, 6F, 0.5F, 6, 2, 2); - this.Seal_Ridge_Left_3.setRotationPoint(0F, 0F, 0F); - this.Seal_Ridge_Left_3.setTextureSize(128, 128); - this.Seal_Ridge_Left_3.mirror = true; - this.setRotation(this.Seal_Ridge_Left_3, 0F, 0F, 1.22173F); - - this.Seal_Ridge_Left_4 = new ModelRenderer(this, 17, 37); - this.Seal_Ridge_Left_4.addBox(-4F, 6F, 0.5F, 8, 2, 2); - this.Seal_Ridge_Left_4.setRotationPoint(0F, 0F, 0F); - this.Seal_Ridge_Left_4.setTextureSize(128, 128); - this.Seal_Ridge_Left_4.mirror = true; - this.setRotation(this.Seal_Ridge_Left_4, 0F, 0F, 0.6108652F); - - this.Seal_Ridge_Bottom = new ModelRenderer(this, 44, 46); - this.Seal_Ridge_Bottom.addBox(-3F, 6F, 0.5F, 6, 2, 2); - this.Seal_Ridge_Bottom.setRotationPoint(0F, 0F, 0F); - this.Seal_Ridge_Bottom.setTextureSize(128, 128); - this.Seal_Ridge_Bottom.mirror = true; - this.setRotation(this.Seal_Ridge_Bottom, 0F, 0F, 0F); - - this.Seal_Base = new ModelRenderer(this, 38, 22); - this.Seal_Base.addBox(-6.5F, -6F, 1F, 13, 12, 1); - this.Seal_Base.setRotationPoint(0F, 0F, 0F); - this.Seal_Base.setTextureSize(128, 128); - this.Seal_Base.mirror = true; - this.setRotation(this.Seal_Base, 0F, 0F, 0F); - - this.Skull = new ModelRenderer(this, 43, 36); - this.Skull.addBox(-4F, -4F, 0.5F, 8, 8, 1); - this.Skull.setRotationPoint(0F, 0F, 0F); - this.Skull.setTextureSize(128, 128); - this.Skull.mirror = true; - this.setRotation(this.Skull, 0F, 0F, 0F); - - this.Chest = new ModelRenderer(this, 34, 90); - this.Chest.addBox(-6F, -9F, 4F, 12, 10, 6); - this.Chest.setRotationPoint(0F, 0F, 0F); - this.Chest.setTextureSize(128, 128); - this.Chest.mirror = true; - this.setRotation(this.Chest, 0F, 0F, 0F); - - this.Neck = new ModelRenderer(this, 38, 74); - this.Neck.addBox(-4F, -8F, 8F, 8, 9, 6); - this.Neck.setRotationPoint(0F, 0F, 0F); - this.Neck.setTextureSize(128, 128); - this.Neck.mirror = true; - this.setRotation(this.Neck, 0.6320364F, 0F, 0F); - - this.Head = new ModelRenderer(this, 24, 59); - this.Head.addBox(-3.5F, -16.5F, -0.5F, 7, 7, 7); - this.Head.setRotationPoint(0F, 0F, 0F); - this.Head.setTextureSize(128, 128); - this.Head.mirror = true; - this.setRotation(this.Head, 0F, 0F, 0F); - - this.Mask = new ModelRenderer(this, 53, 66); - this.Mask.addBox(-3F, -16F, -1F, 6, 6, 1); - this.Mask.setRotationPoint(0F, 0F, 0F); - this.Mask.setTextureSize(128, 128); - this.Mask.mirror = true; - this.setRotation(this.Mask, 0F, 0F, 0F); - - this.Back = new ModelRenderer(this, 27, 107); - this.Back.addBox(-3.5F, -9F, 5.5F, 7, 8, 5); - this.Back.setRotationPoint(0F, 0F, 0F); - this.Back.setTextureSize(128, 128); - this.Back.mirror = true; - this.setRotation(this.Back, -0.1570796F, 0F, 0F); - - this.Stub = new ModelRenderer(this, 53, 107); - this.Stub.addBox(-2.5F, -2.5F, 5F, 7, 7, 4); - this.Stub.setRotationPoint(0F, 0F, 0F); - this.Stub.setTextureSize(128, 128); - this.Stub.mirror = true; - this.setRotation(this.Stub, 0F, 0F, 0.7853982F); - - this.Right_Arm = new ModelRenderer(this, 77, 83); - this.Right_Arm.addBox(1F, -8F, 6F, 6, 6, 5); - this.Right_Arm.setRotationPoint(0F, 0F, 0F); - this.Right_Arm.setTextureSize(128, 128); - this.Right_Arm.mirror = true; - this.setRotation(this.Right_Arm, 0F, 0.4363323F, 0F); - - this.Left_Arm = new ModelRenderer(this, 5, 83); - this.Left_Arm.addBox(-7F, -8F, 6F, 6, 6, 5); - this.Left_Arm.setRotationPoint(0F, 0F, 0F); - this.Left_Arm.setTextureSize(128, 128); - this.Left_Arm.mirror = true; - this.setRotation(this.Left_Arm, 0F, -0.4363323F, 0F); - - this.Shoulder_Left = new ModelRenderer(this, 11, 74); - this.Shoulder_Left.addBox(-9.5F, -10F, 5F, 5, 5, 3); - this.Shoulder_Left.setRotationPoint(0F, 0F, 0F); - this.Shoulder_Left.setTextureSize(128, 128); - this.Shoulder_Left.mirror = true; - this.setRotation(this.Shoulder_Left, 0F, 0F, 0.5235988F); - - this.Shoulder_Right = new ModelRenderer(this, 77, 74); - this.Shoulder_Right.addBox(4.5F, -10F, 5F, 5, 5, 3); - this.Shoulder_Right.setRotationPoint(0F, 0F, 0F); - this.Shoulder_Right.setTextureSize(128, 128); - this.Shoulder_Right.mirror = true; - this.setRotation(this.Shoulder_Right, 0F, 0F, -0.5235988F); - - this.Hand_Left = new ModelRenderer(this, 5, 95); - this.Hand_Left.addBox(-11F, -5F, 0F, 4, 4, 7); - this.Hand_Left.setRotationPoint(0F, 0F, 0F); - this.Hand_Left.setTextureSize(128, 128); - this.Hand_Left.mirror = true; - this.setRotation(this.Hand_Left, 0.1745329F, 0F, 0F); - - this.Hand_Right = new ModelRenderer(this, 77, 95); - this.Hand_Right.addBox(7F, -5F, 0F, 4, 4, 7); - this.Hand_Right.setRotationPoint(0F, 0F, 0F); - this.Hand_Right.setTextureSize(128, 128); - this.Hand_Right.mirror = true; - this.setRotation(this.Hand_Right, 0.1745329F, 0F, 0F); - } - - @Override - public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) - { - super.render(entity, f, f1, f2, f3, f4, f5); - this.setRotationAngles(f, f1, f2, f3, f4, f5, entity); - this.Seal_Outer_Bottom.render(f5); - this.Seal_Outer_Left_Bottom.render(f5); - this.Seal_Outer_Right_Bottom.render(f5); - this.Seal_Outer_Left_Top.render(f5); - this.Seal_Outer_Right_Top.render(f5); - this.Seal_Ridge_Top.render(f5); - this.Seal_Ridge_Right_1.render(f5); - this.Seal_Ridge_Right_2.render(f5); - this.Seal_Ridge_Right_3.render(f5); - this.Seal_Ridge_Right_4.render(f5); - this.Seal_Ridge_Left_1.render(f5); - this.Seal_Ridge_Left_2.render(f5); - this.Seal_Ridge_Left_3.render(f5); - this.Seal_Ridge_Left_4.render(f5); - this.Seal_Ridge_Bottom.render(f5); - this.Seal_Base.render(f5); - this.Skull.render(f5); - this.Chest.render(f5); - this.Neck.render(f5); - this.Head.render(f5); - this.Mask.render(f5); - this.Back.render(f5); - //Stub.render(f5); - this.Right_Arm.render(f5); - this.Left_Arm.render(f5); - this.Shoulder_Left.render(f5); - this.Shoulder_Right.render(f5); - this.Hand_Left.render(f5); - this.Hand_Right.render(f5); - } - - private void setRotation(ModelRenderer model, float x, float y, float z) - { - model.rotateAngleX = x; - model.rotateAngleY = y; - model.rotateAngleZ = z; - } - - @Override - public void setRotationAngles(float f, float f1, float f2, float f3, float f4, float f5, Entity entity) - { - super.setRotationAngles(f, f1, f2, f3, f4, f5, entity); - } - -} diff --git a/src/main/java/com/gildedgames/aether/client/models/entities/companions/ModelShadeOfArkenzus.java b/src/main/java/com/gildedgames/aether/client/models/entities/companions/ModelShadeOfArkenzus.java deleted file mode 100644 index 4f225ec6eb..0000000000 --- a/src/main/java/com/gildedgames/aether/client/models/entities/companions/ModelShadeOfArkenzus.java +++ /dev/null @@ -1,240 +0,0 @@ -package com.gildedgames.aether.client.models.entities.companions; - -import net.minecraft.client.model.ModelBase; -import net.minecraft.client.model.ModelRenderer; -import net.minecraft.entity.Entity; -import net.minecraft.util.math.MathHelper; -import org.lwjgl.opengl.GL11; - -public class ModelShadeOfArkenzus extends ModelBase -{ - private final ModelRenderer Shoulder_Right; - - private final ModelRenderer Shoulder_Left; - - private final ModelRenderer Arm_Right; - - private final ModelRenderer Arm_Left; - - private final ModelRenderer Chest_Left; - - private final ModelRenderer Chest_Right; - - private final ModelRenderer Wing_Base_Right; - - private final ModelRenderer Wing_Base_Left; - - private final ModelRenderer Wing_Top_Right; - - private final ModelRenderer Wing_Top_Left; - - private final ModelRenderer Wing_Mid_Left; - - private final ModelRenderer Wing_Mid_Right; - - private final ModelRenderer Wing_Bottom_Left; - - private final ModelRenderer Wing_Bottom_Right; - - private final ModelRenderer head; - - private final ModelRenderer body; - - private final ModelRenderer rightleg; - - private final ModelRenderer leftleg; - - public ModelShadeOfArkenzus() - { - this.textureWidth = 128; - this.textureHeight = 64; - - this.Shoulder_Right = new ModelRenderer(this, 40, 16); - this.Shoulder_Right.addBox(-4.2F, -2F, -2F, 5, 4, 4); - this.Shoulder_Right.setRotationPoint(-4F, 2F, 0F); - this.Shoulder_Right.setTextureSize(64, 32); - this.Shoulder_Right.mirror = true; - this.setRotation(this.Shoulder_Right, 0F, 0F, 0.3490659F); - - this.Shoulder_Left = new ModelRenderer(this, 40, 16); - this.Shoulder_Left.addBox(-0.8F, -2F, -2F, 5, 4, 4); - this.Shoulder_Left.setRotationPoint(4F, 2F, 0F); - this.Shoulder_Left.setTextureSize(64, 32); - this.Shoulder_Left.mirror = true; - this.setRotation(this.Shoulder_Left, 0F, 0F, -0.3490659F); - this.Shoulder_Left.mirror = false; - - this.Arm_Right = new ModelRenderer(this, 40, 24); - this.Arm_Right.addBox(-6F, -2F, -2F, 6, 4, 4); - this.Arm_Right.setRotationPoint(-4F, 2F, 0F); - this.Arm_Right.setTextureSize(64, 32); - this.setRotation(this.Arm_Right, 0F, 0F, -0.4363323F); - - this.Arm_Left = new ModelRenderer(this, 40, 24); - this.Arm_Left.mirror = true; - this.Arm_Left.addBox(0F, -2F, -2F, 6, 4, 4); - this.Arm_Left.setRotationPoint(4F, 2F, 0F); - this.Arm_Left.setTextureSize(64, 32); - this.Arm_Left.mirror = true; - this.setRotation(this.Arm_Left, 0F, 0F, 0.4363323F); - - this.Arm_Left.mirror = false; - this.Chest_Left = new ModelRenderer(this, 11, 32); - this.Chest_Left.addBox(0.5F, 0F, -2.5F, 4, 5, 5); - this.Chest_Left.setRotationPoint(0F, 0F, 0F); - this.Chest_Left.setTextureSize(64, 32); - this.Chest_Left.mirror = true; - this.setRotation(this.Chest_Left, 0F, 0F, -0.0872665F); - - this.Chest_Right = new ModelRenderer(this, 11, 32); - this.Chest_Right.mirror = true; - this.Chest_Right.addBox(-4.5F, 0F, -2.5F, 4, 5, 5); - this.Chest_Right.setRotationPoint(0F, 0F, 0F); - this.Chest_Right.setTextureSize(64, 32); - this.Chest_Right.mirror = true; - this.setRotation(this.Chest_Right, 0F, 0F, 0.0872665F); - - this.Chest_Right.mirror = false; - this.Wing_Base_Right = new ModelRenderer(this, 60, 19); - this.Wing_Base_Right.addBox(-2F, 0F, -1F, 2, 3, 10); - this.Wing_Base_Right.setRotationPoint(-1F, 1F, 2F); - this.Wing_Base_Right.setTextureSize(64, 32); - this.Wing_Base_Right.mirror = true; - this.setRotation(this.Wing_Base_Right, 0.3490659F, -0.8726646F, 0F); - - this.Wing_Base_Left = new ModelRenderer(this, 60, 19); - this.Wing_Base_Left.mirror = true; - this.Wing_Base_Left.addBox(0F, 0F, -1F, 2, 3, 10); - this.Wing_Base_Left.setRotationPoint(1F, 1F, 2F); - this.Wing_Base_Left.setTextureSize(64, 32); - this.Wing_Base_Left.mirror = true; - this.setRotation(this.Wing_Base_Left, 0.3490659F, 0.8726646F, 0F); - - this.Wing_Base_Left.mirror = false; - this.Wing_Top_Right = new ModelRenderer(this, 84, 0); - this.Wing_Top_Right.addBox(-2F, -3F, 6F, 2, 3, 16); - this.Wing_Top_Right.setRotationPoint(-1F, 1F, 2F); - this.Wing_Top_Right.setTextureSize(64, 32); - this.Wing_Top_Right.mirror = true; - this.setRotation(this.Wing_Top_Right, 0.3490659F, -0.8726646F, 0F); - - this.Wing_Top_Left = new ModelRenderer(this, 84, 0); - this.Wing_Top_Left.mirror = true; - this.Wing_Top_Left.addBox(0F, -3F, 6F, 2, 3, 16); - this.Wing_Top_Left.setRotationPoint(1F, 1F, 2F); - this.Wing_Top_Left.setTextureSize(64, 32); - this.Wing_Top_Left.mirror = true; - this.setRotation(this.Wing_Top_Left, 0.3490659F, 0.8726646F, 0F); - - this.Wing_Mid_Left = new ModelRenderer(this, 88, 19); - this.Wing_Top_Left.mirror = false; - this.Wing_Mid_Left.addBox(0F, -4F, 8F, 2, 3, 12); - this.Wing_Mid_Left.setRotationPoint(1F, 1F, 2F); - this.Wing_Mid_Left.setTextureSize(64, 32); - this.Wing_Mid_Left.mirror = true; - this.setRotation(this.Wing_Mid_Left, 0F, 0.8726646F, 0F); - - this.Wing_Mid_Right = new ModelRenderer(this, 88, 19); - this.Wing_Mid_Right.addBox(-2F, -4F, 8F, 2, 3, 12); - this.Wing_Mid_Right.setRotationPoint(-1F, 1F, 2F); - this.Wing_Mid_Right.setTextureSize(64, 32); - this.Wing_Mid_Right.mirror = true; - this.setRotation(this.Wing_Mid_Right, 0F, -0.8726646F, 0F); - - this.Wing_Bottom_Left = new ModelRenderer(this, 92, 34); - this.Wing_Bottom_Left.addBox(0F, -5F, 7F, 2, 3, 8); - this.Wing_Bottom_Left.setRotationPoint(1F, 1F, 2F); - this.Wing_Bottom_Left.setTextureSize(64, 32); - this.Wing_Bottom_Left.mirror = true; - this.setRotation(this.Wing_Bottom_Left, -0.3490659F, 0.8726646F, 0F); - - this.Wing_Bottom_Right = new ModelRenderer(this, 92, 34); - this.Wing_Bottom_Right.addBox(-2F, -5F, 7F, 2, 3, 8); - this.Wing_Bottom_Right.setRotationPoint(-1F, 1F, 2F); - this.Wing_Bottom_Right.setTextureSize(64, 32); - this.Wing_Bottom_Right.mirror = true; - this.setRotation(this.Wing_Bottom_Right, -0.3490659F, -0.8726646F, 0F); - - this.head = new ModelRenderer(this, 0, 0); - this.head.addBox(-4F, -8F, -4F, 8, 8, 8); - this.head.setRotationPoint(0F, 0F, 0F); - this.head.setTextureSize(64, 32); - this.head.mirror = true; - this.setRotation(this.head, 0F, 0F, 0F); - - this.body = new ModelRenderer(this, 16, 16); - this.body.addBox(-4F, 0F, -2F, 8, 12, 4); - this.body.setRotationPoint(0F, 0F, 0F); - this.body.setTextureSize(64, 32); - this.body.mirror = true; - this.setRotation(this.body, 0F, 0F, 0F); - - this.rightleg = new ModelRenderer(this, 0, 16); - this.rightleg.addBox(-2.5F, 0F, -2F, 4, 12, 4); - this.rightleg.setRotationPoint(-2F, 12F, 0F); - this.rightleg.setTextureSize(64, 32); - this.rightleg.mirror = true; - this.setRotation(this.rightleg, 0F, 0F, 0F); - - this.leftleg = new ModelRenderer(this, 0, 16); - this.leftleg.mirror = true; - this.leftleg.addBox(-1.5F, 0F, -2F, 4, 12, 4); - this.leftleg.setRotationPoint(2F, 12F, 0F); - this.leftleg.setTextureSize(64, 32); - this.setRotation(this.leftleg, 0F, 0F, 0F); - - this.leftleg.mirror = false; - } - - @Override - public void render(Entity entity, float limbSwing, float limbSwingAmount, float ageInTicks, float netHeadYaw, float headPitch, - float scale) - { - super.render(entity, limbSwing, limbSwingAmount, ageInTicks, netHeadYaw, headPitch, scale); - - this.setRotationAngles(entity, limbSwing, limbSwingAmount, ageInTicks, netHeadYaw, headPitch, scale); - - GL11.glPushMatrix(); - GL11.glEnable(GL11.GL_BLEND); - - this.Shoulder_Right.render(scale); - this.Shoulder_Left.render(scale); - this.Arm_Right.render(scale); - this.Arm_Left.render(scale); - this.Chest_Left.render(scale); - this.Chest_Right.render(scale); - this.Wing_Base_Right.render(scale); - this.Wing_Base_Left.render(scale); - this.Wing_Top_Right.render(scale); - this.Wing_Top_Left.render(scale); - this.Wing_Mid_Left.render(scale); - this.Wing_Mid_Right.render(scale); - this.Wing_Bottom_Left.render(scale); - this.Wing_Bottom_Right.render(scale); - this.head.render(scale); - this.body.render(scale); - this.rightleg.render(scale); - this.leftleg.render(scale); - - GL11.glDisable(GL11.GL_BLEND); - GL11.glPopMatrix(); - } - - private void setRotation(ModelRenderer model, float x, float y, float z) - { - model.rotateAngleX = x; - model.rotateAngleY = y; - model.rotateAngleZ = z; - } - - public void setRotationAngles(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) - { - super.setRotationAngles(f, f1, f2, f3, f4, f5, entity); - - this.leftleg.rotateAngleX = MathHelper.cos(f * 0.6662F + 3.141593F) * 1.4F * f1; - this.rightleg.rotateAngleX = MathHelper.cos(f * 0.6662F) * 1.4F * f1; - - /*this.Wing_Top_Right.rotateAngleX = 0.3490659F + (float) (Math.sin(f2 * 20 / 87.2957795) * 4.0F) / 20; - this.Wing_Top_Left.rotateAngleX = 0.3490659F + (float) (Math.cos(f2 * 20 / 87.2957795) * 4.0F) / 20;*/ - } -} diff --git a/src/main/java/com/gildedgames/aether/client/models/entities/companions/ModelWisp.java b/src/main/java/com/gildedgames/aether/client/models/entities/companions/ModelWisp.java deleted file mode 100644 index ebe0e91e6f..0000000000 --- a/src/main/java/com/gildedgames/aether/client/models/entities/companions/ModelWisp.java +++ /dev/null @@ -1,110 +0,0 @@ -package com.gildedgames.aether.client.models.entities.companions; - -import net.minecraft.client.Minecraft; -import net.minecraft.client.model.ModelBase; -import net.minecraft.client.model.ModelRenderer; -import net.minecraft.entity.Entity; -import net.minecraft.util.math.MathHelper; -import org.lwjgl.opengl.GL11; - -public class ModelWisp extends ModelBase -{ - private final ModelRenderer Pillar_Top_Left; - - private final ModelRenderer Pillar_Bottom_Left; - - private final ModelRenderer Pillar_Top_Right; - - private final ModelRenderer Pillar_Bottom_Right; - - private final ModelRenderer Head; - - private final ModelRenderer Base; - - public ModelWisp() - { - this.textureWidth = 32; - this.textureHeight = 32; - - this.Pillar_Top_Left = new ModelRenderer(this, 0, 0); - this.Pillar_Top_Left.addBox(-7F, -5.5F, -1F, 2, 8, 2); - this.Pillar_Top_Left.setRotationPoint(0F, 0F, 0F); - this.Pillar_Top_Left.setTextureSize(32, 32); - this.Pillar_Top_Left.mirror = true; - this.setRotation(this.Pillar_Top_Left, 0F, 0F, 0.3490659F); - - this.Pillar_Bottom_Left = new ModelRenderer(this, 8, 0); - this.Pillar_Bottom_Left.addBox(-7F, -2.5F, -1F, 2, 8, 2); - this.Pillar_Bottom_Left.setRotationPoint(0F, 0F, 0F); - this.Pillar_Bottom_Left.setTextureSize(32, 32); - this.Pillar_Bottom_Left.mirror = true; - this.setRotation(this.Pillar_Bottom_Left, 0F, 0F, -0.3490659F); - - this.Pillar_Top_Right = new ModelRenderer(this, 0, 0); - this.Pillar_Top_Right.addBox(5F, -5.5F, -1F, 2, 8, 2); - this.Pillar_Top_Right.setRotationPoint(0F, 0F, 0F); - this.Pillar_Top_Right.setTextureSize(32, 32); - this.Pillar_Top_Right.mirror = true; - this.setRotation(this.Pillar_Top_Right, 0F, 0F, -0.3490659F); - - this.Pillar_Bottom_Right = new ModelRenderer(this, 8, 0); - this.Pillar_Bottom_Right.addBox(5F, -2.5F, -1F, 2, 8, 2); - this.Pillar_Bottom_Right.setRotationPoint(0F, 0F, 0F); - this.Pillar_Bottom_Right.setTextureSize(32, 32); - this.Pillar_Bottom_Right.mirror = true; - this.setRotation(this.Pillar_Bottom_Right, 0F, 0F, 0.3490659F); - - this.Head = new ModelRenderer(this, 0, 10); - this.Head.addBox(-1.5F, -1.5F, -1F, 3, 3, 4); - this.Head.setRotationPoint(0F, 0F, 0F); - this.Head.setTextureSize(32, 32); - this.Head.mirror = true; - this.setRotation(this.Head, 0F, 0F, 0F); - - this.Base = new ModelRenderer(this, 16, 0); - this.Base.addBox(-1F, 2F, 0F, 2, 3, 1); - this.Base.setRotationPoint(0F, 0F, 0F); - this.Base.setTextureSize(32, 32); - this.Base.mirror = true; - this.setRotation(this.Base, 0F, 0F, 0F); - } - - @Override - public void render(Entity entity, float limbSwing, float limbSwingAmount, float ageInTicks, float netHeadYaw, float headPitch, - float scale) - { - super.render(entity, limbSwing, limbSwingAmount, ageInTicks, netHeadYaw, headPitch, scale); - - this.setRotationAngles(entity, limbSwing, limbSwingAmount, ageInTicks, netHeadYaw, headPitch, scale); - - float partialTicks = Minecraft.getMinecraft().getRenderPartialTicks(); - - GL11.glPushMatrix(); - - GL11.glTranslatef(0, MathHelper.sin(entity.ticksExisted + partialTicks) / 50, 0); - - this.Head.render(scale); - this.Base.render(scale); - - GL11.glRotatef((entity.ticksExisted + partialTicks) * 20, 0, 1, 0); - - this.Pillar_Top_Left.render(scale); - this.Pillar_Bottom_Left.render(scale); - this.Pillar_Top_Right.render(scale); - this.Pillar_Bottom_Right.render(scale); - - GL11.glPopMatrix(); - } - - private void setRotation(ModelRenderer model, float x, float y, float z) - { - model.rotateAngleX = x; - model.rotateAngleY = y; - model.rotateAngleZ = z; - } - - public void setRotationAngles(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) - { - super.setRotationAngles(f, f1, f2, f3, f4, f5, entity); - } -} diff --git a/src/main/java/com/gildedgames/aether/client/models/entities/living/ModelAechorPlant.java b/src/main/java/com/gildedgames/aether/client/models/entities/living/ModelAechorPlant.java deleted file mode 100644 index 1ccbc0705c..0000000000 --- a/src/main/java/com/gildedgames/aether/client/models/entities/living/ModelAechorPlant.java +++ /dev/null @@ -1,184 +0,0 @@ -package com.gildedgames.aether.client.models.entities.living; - -import net.minecraft.client.model.ModelBase; -import net.minecraft.client.model.ModelRenderer; -import net.minecraft.entity.Entity; -import org.lwjgl.opengl.GL11; - -public class ModelAechorPlant extends ModelBase -{ - private static final int petals = 10; - - private static final int thorns = 4; - - private static final int stamens = 3; - - public final ModelRenderer[] petal; - - public final ModelRenderer[] leaf; - - public final ModelRenderer[] thorn; - - public final ModelRenderer[] stamen; - - public final ModelRenderer[] stamen2; - - public float sinage, sinage2; - - public float size; - - private final ModelRenderer stem; - - private final ModelRenderer head; - - public ModelAechorPlant() - { - this.size = 1.0F; - - this.petal = new ModelRenderer[petals]; - this.leaf = new ModelRenderer[petals]; - - for (int i = 0; i < petals; i++) - { - this.petal[i] = new ModelRenderer(this, 0, 0); - - if (i % 2 == 0) - { - this.petal[i] = new ModelRenderer(this, 29, 3); - this.petal[i].addBox(-4F, -1F, -12F, 8, 1, 9, 0.25F); - this.petal[i].setRotationPoint(0.0F, 1.0F, 0.0F); - } - else - { - this.petal[i].addBox(-4F, -1F, -13F, 8, 1, 10, 0.125F); - this.petal[i].setRotationPoint(0.0F, 1.0F, 0.0F); - } - - this.leaf[i] = new ModelRenderer(this, 38, 13); - this.leaf[i].addBox(-2F, -1F, -9.5F, 4, 1, 8, 0.15F); - this.leaf[i].setRotationPoint(0.0F, 1.0F, 0.0F); - } - - this.stamen = new ModelRenderer[stamens]; - this.stamen2 = new ModelRenderer[stamens]; - - for (int i = 0; i < stamens; i++) - { - this.stamen[i] = new ModelRenderer(this, 36, 13); - this.stamen[i].addBox(0F, -9F, -1.5F, 1, 6, 1, 0.25F); - this.stamen[i].setRotationPoint(0.0F, 1.0F, 0.0F); - } - - for (int i = 0; i < stamens; i++) - { - this.stamen2[i] = new ModelRenderer(this, 32, 15); - this.stamen2[i].addBox(0F, -10F, -1.5F, 1, 1, 1, 0.125F); - this.stamen2[i].setRotationPoint(0.0F, 1.0F, 0.0F); - } - - this.head = new ModelRenderer(this, 0, 12); - this.head.addBox(-3F, -3F, -3F, 6, 2, 6, 0.75F); - this.head.setRotationPoint(0.0F, 1.0F, 0.0F); - - this.stem = new ModelRenderer(this, 24, 13); - this.stem.addBox(-1F, 0F, -1F, 2, 6, 2, 0); - this.stem.setRotationPoint(0.0F, 1.0F, 0.0F); - - this.thorn = new ModelRenderer[thorns]; - - for (int i = 0; i < thorns; i++) - { - this.thorn[i] = new ModelRenderer(this, 32, 13); - this.thorn[i].setRotationPoint(0.0F, 1.0F, 0.0F); - } - - this.thorn[0].addBox(-1.75F, 1.25F, -1F, 1, 1, 1, 0.25F); - this.thorn[1].addBox(-1F, 2.25F, 0.75F, 1, 1, 1, 0.25F); - this.thorn[2].addBox(0.75F, 1.25F, 0F, 1, 1, 1, 0.25F); - this.thorn[3].addBox(0F, 2.25F, -1.75F, 1, 1, 1, 0.25F); - } - - @Override - public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) - { - this.setRotationAngles(f4, f5); - - GL11.glPushMatrix(); - GL11.glTranslatef(0.0F, 1.2F, 0.0F); - GL11.glScalef(this.size, this.size, this.size); - - for (int i = 0; i < petals; i++) - { - this.petal[i].render(f5); - this.leaf[i].render(f5); - } - - for (int i = 0; i < stamens; i++) - { - this.stamen[i].render(f5); - this.stamen2[i].render(f5); - } - - this.head.render(f5); - this.stem.render(f5); - - for (int i = 0; i < thorns; i++) - { - this.thorn[i].render(f5); - } - - GL11.glPopMatrix(); - } - - public void setRotationAngles(float f4, float f5) - { - this.head.rotateAngleX = 0.0F; - this.head.rotateAngleY = f4 / 57.29578F; - - float boff = this.sinage2; - - this.stem.rotateAngleY = this.head.rotateAngleY; - this.stem.rotationPointY = boff * 0.5F; - for (int i = 0; i < thorns; i++) - { - this.thorn[i].rotateAngleY = this.head.rotateAngleY; - this.thorn[i].rotationPointY = boff * 0.5F; - } - - float pie = 3.141593F * 2F; - - for (int i = 0; i < petals; i++) - { - this.petal[i].rotateAngleX = ((i % 2 == 0) ? -0.25F : -0.4125F); - this.petal[i].rotateAngleX += this.sinage; - this.petal[i].rotateAngleY = this.head.rotateAngleY; - this.petal[i].rotateAngleY += (pie / (float) petals) * (float) i; - - this.leaf[i].rotateAngleX = ((i % 2 == 0) ? 0.1F : 0.2F); - this.leaf[i].rotateAngleX += this.sinage * 0.75F; - this.leaf[i].rotateAngleY = this.head.rotateAngleY + (pie / (float) petals / 2F); - this.leaf[i].rotateAngleY += (pie / (float) petals) * (float) i; - - this.petal[i].rotationPointY = boff; - this.leaf[i].rotationPointY = boff; - } - - for (int i = 0; i < stamens; i++) - { - this.stamen[i].rotateAngleX = 0.2F + ((float) i / 15F); - this.stamen[i].rotateAngleY = this.head.rotateAngleY + 0.1F; - this.stamen[i].rotateAngleY += (pie / (float) stamens) * (float) i; - this.stamen[i].rotateAngleX += this.sinage * 0.4F; - - this.stamen2[i].rotateAngleX = 0.2F + ((float) i / 15F); - this.stamen2[i].rotateAngleY = this.head.rotateAngleY + 0.1F; - this.stamen2[i].rotateAngleY += (pie / (float) stamens) * (float) i; - this.stamen2[i].rotateAngleX += this.sinage * 0.4F; - - this.stamen[i].rotationPointY = boff + ((this.sinage) * 2F); - this.stamen2[i].rotationPointY = boff + ((this.sinage) * 2F); - } - - this.head.rotationPointY = boff + ((this.sinage) * 2F); - } -} diff --git a/src/main/java/com/gildedgames/aether/client/models/entities/living/ModelAerbunny.java b/src/main/java/com/gildedgames/aether/client/models/entities/living/ModelAerbunny.java deleted file mode 100644 index 505f144fd3..0000000000 --- a/src/main/java/com/gildedgames/aether/client/models/entities/living/ModelAerbunny.java +++ /dev/null @@ -1,230 +0,0 @@ -package com.gildedgames.aether.client.models.entities.living; - -import com.gildedgames.aether.common.entities.animals.EntityAerbunny; -import net.minecraft.client.model.ModelBase; -import net.minecraft.client.model.ModelRenderer; -import net.minecraft.client.renderer.GlStateManager; -import net.minecraft.entity.Entity; -import net.minecraft.util.math.MathHelper; - -public class ModelAerbunny extends ModelBase -{ - private final ModelRenderer body; - - private final ModelRenderer puff; - - private final ModelRenderer leg_front_left; - - private final ModelRenderer leg_front_right; - - private final ModelRenderer leg_back_right_base; - - private final ModelRenderer leg_back_left_base; - - private final ModelRenderer tail; - - private final ModelRenderer head; - - private final ModelRenderer leg_back_right_foot; - - private final ModelRenderer leg_back_left_foot; - - private final ModelRenderer ear_right; - - private final ModelRenderer ear_left; - - private final ModelRenderer nose; - - private final ModelRenderer whiskers_left; - - private final ModelRenderer whiskers_right; - - public ModelAerbunny() - { - this.textureWidth = 64; - this.textureHeight = 32; - this.leg_front_left = new ModelRenderer(this, 0, 11); - this.leg_front_left.setRotationPoint(1.5F, 4.0F, 1.0F); - this.leg_front_left.addBox(-0.5F, -0.2F, -2.8F, 1, 2, 3, 0.0F); - this.setRotateAngle(this.leg_front_left, 0.17453292519943295F, -0.3490658503988659F, 0.0F); - this.leg_back_left_foot = new ModelRenderer(this, 0, 16); - this.leg_back_left_foot.setRotationPoint(0.5F, 1.8F, -0.3F); - this.leg_back_left_foot.addBox(-0.5F, -0.2F, -1.0F, 1, 1, 3, 0.0F); - this.setRotateAngle(this.leg_back_left_foot, 0.0F, -0.20943951023931953F, 0.0F); - this.head = new ModelRenderer(this, 22, 0); - this.head.setRotationPoint(0.0F, 2.4F, 0.0F); - this.head.addBox(-2.0F, -2.2F, -3.0F, 4, 4, 4, 0.0F); - this.leg_back_right_foot = new ModelRenderer(this, 0, 16); - this.leg_back_right_foot.mirror = true; - this.leg_back_right_foot.setRotationPoint(-0.5F, 1.8F, -0.3F); - this.leg_back_right_foot.addBox(-0.5F, -0.2F, -1.0F, 1, 1, 3, 0.0F); - this.setRotateAngle(this.leg_back_right_foot, 0.0F, 0.20943951023931953F, 0.0F); - this.ear_left = new ModelRenderer(this, 16, 1); - this.ear_left.setRotationPoint(1.0F, -2.0F, -1.2F); - this.ear_left.addBox(-0.5F, -2.8F, -1.0F, 1, 3, 2, 0.0F); - this.setRotateAngle(this.ear_left, -0.2617993877991494F, -0.08726646259971647F, 0.2617993877991494F); - this.nose = new ModelRenderer(this, 0, 0); - this.nose.setRotationPoint(0.0F, 0.0F, 0.0F); - this.nose.addBox(-1.0F, -0.2F, -3.3F, 2, 1, 1, 0.0F); - this.leg_front_right = new ModelRenderer(this, 0, 11); - this.leg_front_right.mirror = true; - this.leg_front_right.setRotationPoint(-1.5F, 4.0F, 1.0F); - this.leg_front_right.addBox(-0.5F, -0.2F, -2.8F, 1, 2, 3, 0.0F); - this.setRotateAngle(this.leg_front_right, 0.17453292519943295F, 0.3490658503988659F, 0.0F); - this.leg_back_right_base = new ModelRenderer(this, 8, 11); - this.leg_back_right_base.mirror = true; - this.leg_back_right_base.setRotationPoint(-2.5F, 3.5F, 5.0F); - this.leg_back_right_base.addBox(-1.5F, -1.0F, -1.5F, 2, 3, 3, 0.0F); - this.leg_back_left_base = new ModelRenderer(this, 8, 11); - this.leg_back_left_base.setRotationPoint(2.5F, 3.5F, 5.0F); - this.leg_back_left_base.addBox(-0.5F, -1.0F, -1.5F, 2, 3, 3, 0.0F); - this.ear_right = new ModelRenderer(this, 16, 1); - this.ear_right.mirror = true; - this.ear_right.setRotationPoint(-1.0F, -2.0F, -1.2F); - this.ear_right.addBox(-0.5F, -2.8F, -1.0F, 1, 3, 2, 0.0F); - this.setRotateAngle(this.ear_right, -0.2617993877991494F, 0.08726646259971647F, -0.2617993877991494F); - this.whiskers_left = new ModelRenderer(this, 0, 3); - this.whiskers_left.setRotationPoint(2.0F, 0.0F, -2.0F); - this.whiskers_left.addBox(-0.2F, -1.3F, 0.0F, 2, 3, 0, 0.0F); - this.setRotateAngle(this.whiskers_left, -0.17453292519943295F, -0.6981317007977318F, 0.17453292519943295F); - this.body = new ModelRenderer(this, 0, 0); - this.body.setRotationPoint(0.0F, 0.0F, 0.0F); - this.body.addBox(-2.5F, 0.0F, 0.0F, 5, 5, 6, 0.0F); - this.puff = new ModelRenderer(this, 0, 0); - this.puff.setRotationPoint(0.0F, 0.0F, 0.0F); - this.puff.addBox(-2.5F, 0.0F, 0.0F, 5, 5, 6, 0.0F); - this.tail = new ModelRenderer(this, 22, 8); - this.tail.setRotationPoint(0.0F, 1.5F, 5.0F); - this.tail.addBox(-1.5F, -0.4F, 0.2F, 3, 3, 2, 0.0F); - this.setRotateAngle(this.tail, 0.2617993877991494F, 0.0F, 0.0F); - this.whiskers_right = new ModelRenderer(this, 0, 3); - this.whiskers_right.mirror = true; - this.whiskers_right.setRotationPoint(-2.0F, 0.0F, -2.0F); - this.whiskers_right.addBox(-1.8F, -1.3F, 0.0F, 2, 3, 0, 0.0F); - this.setRotateAngle(this.whiskers_right, -0.17453292519943295F, 0.6981317007977318F, -0.17453292519943295F); - this.body.addChild(this.leg_front_left); - this.leg_back_left_base.addChild(this.leg_back_left_foot); - this.body.addChild(this.head); - this.leg_back_right_base.addChild(this.leg_back_right_foot); - this.head.addChild(this.ear_left); - this.head.addChild(this.nose); - this.body.addChild(this.leg_front_right); - this.body.addChild(this.leg_back_right_base); - this.body.addChild(this.leg_back_left_base); - this.head.addChild(this.ear_right); - this.head.addChild(this.whiskers_left); - this.body.addChild(this.tail); - this.head.addChild(this.whiskers_right); - } - - @Override - public void render(Entity entity, float limbSwing, float limbSwingAmount, float ageInTicks, float netHeadYaw, float headPitch, float scale) - { - final EntityAerbunny bunny = (EntityAerbunny) entity; - - this.setRotationAngles(limbSwing, limbSwingAmount, ageInTicks, netHeadYaw, headPitch, scale, entity); - - float rotation = bunny.getRotation(); - GlStateManager.translate(0.0F, 1.1F, -0.2F); - - if (!bunny.isRiding()) - { - GlStateManager.rotate(rotation, 20f, 0f, 0f); - } - else if (bunny.getRidingEntity() != null && bunny.getRidingEntity().isSneaking()) - { - GlStateManager.translate(0.0F, 0.3F, -0.2F); - } - - if (bunny.isChild()) - { - GlStateManager.scale(0.7F, 0.7F, 0.7F); - GlStateManager.translate(0.0F, 0.0F, 0.0F); - } - - /* - Animation for the legs, because the rotation for the bunnie's jump is from -30 to 30, offsetting it allows the feet to be in a preset position, - and dividing it by a greater number than it will ever become keeps the value < 1f - */ - if (!bunny.onGround && !bunny.isRiding() && !bunny.isSitting()) - { - this.leg_front_right.rotateAngleX = (rotation + 20) / 30f; - this.leg_front_left.rotateAngleX = (rotation + 20) / 30f; - this.leg_back_right_base.rotateAngleX = ((rotation + 40) / 50f); - this.leg_back_left_base.rotateAngleX = ((rotation + 40) / 50f); - this.leg_back_right_foot.rotateAngleX = ((rotation + 40) / 50f) * -1.5f; - this.leg_back_left_foot.rotateAngleX = ((rotation + 40) / 50f) * -1.5f; - } - - if (bunny.isSitting()) - { - this.body.rotateAngleX = ((float)Math.PI / -16F); - this.puff.rotateAngleX = ((float)Math.PI / -16F); - } - else - { - this.body.rotateAngleX = 0; - this.puff.rotateAngleX = 0; - } - - this.body.render(scale); - - GlStateManager.pushMatrix(); - - final float puffScale = 1.0F + ((bunny.getPuffiness() / 10F) * 0.2F); - - GlStateManager.scale(puffScale, puffScale, puffScale); - - this.puff.render(scale); - - GlStateManager.popMatrix(); - } - - public void render2(Entity entity, float limbSwing, float limbSwingAmount, float ageInTicks, float netHeadYaw, float headPitch, float scale) - { - final EntityAerbunny bunny = (EntityAerbunny) entity; - - this.setRotationAngles(limbSwing, limbSwingAmount, ageInTicks, netHeadYaw, headPitch, scale, entity); - - this.body.render(scale); - - GlStateManager.pushMatrix(); - - final float puffScale = 1.0F + ((bunny.getPuffiness() / 10F) * 0.2F); - - GlStateManager.scale(puffScale, puffScale, puffScale); - - this.puff.render(scale); - - GlStateManager.popMatrix(); - } - - private void setRotateAngle(final ModelRenderer modelRenderer, final float x, final float y, final float z) - { - modelRenderer.rotateAngleX = x; - modelRenderer.rotateAngleY = y; - modelRenderer.rotateAngleZ = z; - } - - @Override - public void setRotationAngles(float limbSwing, float limbSwingAmount, float ageInTicks, float netHeadYaw, float headPitch, float scaleFactor, Entity entity) - { - this.head.rotateAngleX = headPitch / 57.29578F; - this.head.rotateAngleY = netHeadYaw / 57.29578F; - - if (entity.isRiding()) - { - this.head.rotateAngleX = MathHelper.clamp(this.head.rotateAngleX * -1, -1.0f, 1.0f); - } - - this.ear_left.rotateAngleX = MathHelper.cos(limbSwing * 0.6662F) * 1.0F * limbSwingAmount; - this.ear_right.rotateAngleX = MathHelper.cos(limbSwing * 0.6662F) * 1.0F * limbSwingAmount; - - this.leg_back_left_base.rotateAngleX = MathHelper.cos(limbSwing * 0.6662F + 3.141593F) * 1.2F * limbSwingAmount; - this.leg_back_right_base.rotateAngleX = MathHelper.cos(limbSwing * 0.6662F + 3.141593F) * 1.2F * limbSwingAmount; - - this.leg_front_left.rotateAngleX = MathHelper.cos(limbSwing * 0.6662F + 3.141593F) * 1.2F * limbSwingAmount; - this.leg_front_right.rotateAngleX = MathHelper.cos(limbSwing * 0.6662F + 3.141593F) * 1.2F * limbSwingAmount; - } - -} diff --git a/src/main/java/com/gildedgames/aether/client/models/entities/living/ModelAerwhale.java b/src/main/java/com/gildedgames/aether/client/models/entities/living/ModelAerwhale.java deleted file mode 100644 index 1661f4f761..0000000000 --- a/src/main/java/com/gildedgames/aether/client/models/entities/living/ModelAerwhale.java +++ /dev/null @@ -1,161 +0,0 @@ -package com.gildedgames.aether.client.models.entities.living; - -import net.minecraft.client.model.ModelBase; -import net.minecraft.client.model.ModelRenderer; -import net.minecraft.entity.Entity; -import net.minecraft.util.math.MathHelper; - -/** - * ModelAerwhale - Either Mojang or a mod author - * Created using Tabula 7.0.0 - */ -public class ModelAerwhale extends ModelBase -{ - public final ModelRenderer Head; - - public final ModelRenderer MiddleBody; - - public final ModelRenderer LeftFin; - - public final ModelRenderer RightFin; - - public final ModelRenderer BottomPartHead; - - public final ModelRenderer MiddleFin; - - public final ModelRenderer BackBody; - - public final ModelRenderer BottomPartMiddlebody; - - public final ModelRenderer FrontBody; - - public final ModelRenderer BackfinLeft; - - public final ModelRenderer BackfinRight; - - public ModelAerwhale() - { - this.textureWidth = 512; - this.textureHeight = 64; - this.BottomPartHead = new ModelRenderer(this, 116, 28); - this.BottomPartHead.setRotationPoint(0.0F, 0.0F, 0.0F); - this.BottomPartHead.addBox(-13.0F, 4.0F, -15.0F, 26, 6, 30, 0.0F); - this.BackBody = new ModelRenderer(this, 228, 32); - this.BackBody.setRotationPoint(2.0F, 5.0F, 25.0F); - this.BackBody.addBox(-10.5F, -9.0F, -2.0F, 17, 10, 22, 0.0F); - this.RightFin = new ModelRenderer(this, 446, 1); - this.RightFin.setRotationPoint(-10.0F, 4.0F, 10.0F); - this.RightFin.addBox(-20.0F, -2.0F, -6.0F, 19, 3, 14, 0.0F); - this.setRotateAngle(this.RightFin, -0.148352986419518F, 0.20943951023931953F, -0.19530234329816545F); - this.Head = new ModelRenderer(this, 408, 18); - this.Head.setRotationPoint(0.0F, 0.0F, 0.0F); - this.Head.addBox(-12.0F, -9.0F, -14.0F, 24, 18, 28, 0.0F); - this.BackfinLeft = new ModelRenderer(this, 261, 5); - this.BackfinLeft.setRotationPoint(5.0F, 0.0F, 25.0F); - this.BackfinLeft.addBox(-4.0F, -2.0F, -8.0F, 13, 3, 24, 0.0F); - this.setRotateAngle(this.BackfinLeft, -0.10471975511965977F, 0.6866125277345694F, -0.19530234329816545F); - this.BottomPartMiddlebody = new ModelRenderer(this, 16, 32); - this.BottomPartMiddlebody.setRotationPoint(0.0F, 0.0F, 0.0F); - this.BottomPartMiddlebody.addBox(-12.0F, 5.0F, -1.0F, 24, 6, 26, 0.0F); - this.BackfinRight = new ModelRenderer(this, 261, 5); - this.BackfinRight.setRotationPoint(-4.0F, 0.0F, 25.0F); - this.BackfinRight.addBox(-11.0F, -2.0F, -8.0F, 15, 3, 24, 0.0F); - this.setRotateAngle(this.BackfinRight, -0.10471975511965977F, -0.7794640439406675F, 0.19530234329816545F); - this.FrontBody = new ModelRenderer(this, 0, 0); - this.FrontBody.setRotationPoint(0.0F, 0.0F, 0.0F); - this.FrontBody.addBox(-11.0F, 0.0F, -1.0F, 19, 5, 21, 0.0F); - this.LeftFin = new ModelRenderer(this, 446, 1); - this.LeftFin.setRotationPoint(10.0F, 4.0F, 10.0F); - this.LeftFin.addBox(1.0F, -2.0F, -6.0F, 19, 3, 14, 0.0F); - this.setRotateAngle(this.LeftFin, -0.1483529955148697F, -0.2094395011663437F, 0.19533973932266235F); - this.MiddleFin = new ModelRenderer(this, 318, 35); - this.MiddleFin.setRotationPoint(0.0F, 0.0F, 0.0F); - this.MiddleFin.addBox(-1.0F, -11.0F, 7.0F, 2, 7, 8, 0.0F); - this.setRotateAngle(this.MiddleFin, -0.14416419621473162F, -0.012217304763960306F, 0.0F); - this.MiddleBody = new ModelRenderer(this, 314, 25); - this.MiddleBody.setRotationPoint(0.0F, -1.0F, 14.0F); - this.MiddleBody.addBox(-11.0F, -5.0F, -1.0F, 22, 14, 25, 0.0F); - this.Head.addChild(this.BottomPartHead); - this.MiddleBody.addChild(this.BackBody); - this.Head.addChild(this.RightFin); - this.BackBody.addChild(this.BackfinLeft); - this.MiddleBody.addChild(this.BottomPartMiddlebody); - this.BackBody.addChild(this.BackfinRight); - this.BackBody.addChild(this.FrontBody); - this.Head.addChild(this.LeftFin); - this.MiddleBody.addChild(this.MiddleFin); - this.Head.addChild(this.MiddleBody); - } - - @Override - public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) - { - this.Head.render(f5); - } - - /** - * This is a helper function from Tabula to set the rotation of model parts - */ - public void setRotateAngle(ModelRenderer modelRenderer, float x, float y, float z) - { - modelRenderer.rotateAngleX = x; - modelRenderer.rotateAngleY = y; - modelRenderer.rotateAngleZ = z; - } - - @Override - public void setRotationAngles(float limbSwing, float limbSwingAmount, float ageInTicks, float netHeadYaw, float headPitch, - float scaleFactor, Entity entity) - { - super.setRotationAngles(limbSwing, limbSwingAmount, ageInTicks, netHeadYaw, headPitch, scaleFactor, entity); - - float deltaTime = ageInTicks - (float) entity.ticksExisted; - -// float tailAnimation = flying.getTailAnimation(deltaTime); - - float time = -0.05F; -// - this.RightFin.rotateAngleZ = (MathHelper.sin(ageInTicks * (time + 0.01F)) * 0.18F * (float) Math.PI); - this.LeftFin.rotateAngleZ = -(MathHelper.sin(ageInTicks * (time + 0.01F)) * 0.18F * (float) Math.PI); - - this.BackBody.rotateAngleX = MathHelper.cos(ageInTicks * time) * 0.15F * (float) Math.PI; - this.Head.rotateAngleX = MathHelper.cos(ageInTicks * time) * -0.15F * (float) Math.PI; - this.MiddleBody.rotateAngleX = MathHelper.sin(ageInTicks * time) * 0.15F * (float) Math.PI; - - this.BackfinRight.rotateAngleX = MathHelper.sin(ageInTicks * time) * 0.18F * (float) Math.PI; - this.BackfinLeft.rotateAngleX = MathHelper.sin(ageInTicks * time) * 0.18F * (float) Math.PI; - - /*float angle = 0.1047198F + (float) (MathHelper.sin(ageInTicks * time) * ((flying.rotationYaw - flying.prevRotationYaw) / 360F) * Math.PI); - - this.Head.rotateAngleY = angle; - this.BackBody.rotateAngleY = -this.Head.rotateAngleY;*/ - } - - protected float limitAngle(float p_75639_1_, float p_75639_2_, float p_75639_3_) - { - float f = MathHelper.wrapDegrees(p_75639_2_ - p_75639_1_); - - if (f > p_75639_3_) - { - f = p_75639_3_; - } - - if (f < -p_75639_3_) - { - f = -p_75639_3_; - } - - float f1 = p_75639_1_ + f; - - if (f1 < 0.0F) - { - f1 += 360.0F; - } - else if (f1 > 360.0F) - { - f1 -= 360.0F; - } - - return f1; - } -} diff --git a/src/main/java/com/gildedgames/aether/client/models/entities/living/ModelArkeniumGolem.java b/src/main/java/com/gildedgames/aether/client/models/entities/living/ModelArkeniumGolem.java deleted file mode 100644 index f33003af24..0000000000 --- a/src/main/java/com/gildedgames/aether/client/models/entities/living/ModelArkeniumGolem.java +++ /dev/null @@ -1,221 +0,0 @@ -package com.gildedgames.aether.client.models.entities.living; - -import com.gildedgames.aether.client.renderer.entities.living.layers.ILayeredModel; -import net.minecraft.client.model.ModelBase; -import net.minecraft.client.model.ModelRenderer; -import net.minecraft.entity.Entity; -import net.minecraft.util.math.MathHelper; - -public class ModelArkeniumGolem extends ModelBase implements ILayeredModel -{ - - public ModelRenderer base_main; - public ModelRenderer leg_right_1; - public ModelRenderer leg_left_1; - public ModelRenderer leg_back_1; - public ModelRenderer torso_low; - public ModelRenderer leg_right_2; - public ModelRenderer leg_right_3; - public ModelRenderer leg_left_2; - public ModelRenderer leg_spike1; - public ModelRenderer leg_spike2; - public ModelRenderer leg_left_3; - public ModelRenderer leg_back_2; - public ModelRenderer leg_back_3; - public ModelRenderer torso_mid; - public ModelRenderer torso_top; - public ModelRenderer shoulder_right; - public ModelRenderer shoulder_left; - public ModelRenderer torso_spike2; - public ModelRenderer torso_spike1; - public ModelRenderer torso_spike3; - public ModelRenderer arm_right1; - public ModelRenderer arm_right2; - public ModelRenderer arm_right3; - public ModelRenderer arm_right_spike1; - public ModelRenderer arm_right_spike2; - public ModelRenderer arm_left1; - public ModelRenderer arm_left_spike1; - public ModelRenderer arm_left_spike2; - public ModelRenderer arm_left_spike3; - - public ModelArkeniumGolem() { - this.textureWidth = 96; - this.textureHeight = 128; - this.leg_back_2 = new ModelRenderer(this, 40, 108); - this.leg_back_2.setRotationPoint(6.0F, 0.0F, 0.0F); - this.leg_back_2.addBox(-2.2F, -1.9F, -2.0F, 4, 7, 4, 0.0F); - this.setRotateAngle(leg_back_2, 0.0F, 0.0F, -0.3490658503988659F); - this.arm_left_spike2 = new ModelRenderer(this, 84, 41); - this.arm_left_spike2.setRotationPoint(4.2F, -2.0F, 1.3F); - this.arm_left_spike2.addBox(0.0F, -5.0F, -2.0F, 3, 5, 3, 0.0F); - this.setRotateAngle(arm_left_spike2, -0.2617993877991494F, 0.0F, 0.0F); - this.arm_right2 = new ModelRenderer(this, 6, 52); - this.arm_right2.setRotationPoint(-7.0F, 5.0F, 0.0F); - this.arm_right2.addBox(-0.4F, -0.5F, -3.5F, 5, 4, 6, 0.0F); - this.setRotateAngle(arm_right2, 0.0F, 0.0F, 0.17453292519943295F); - this.leg_left_2 = new ModelRenderer(this, 76, 108); - this.leg_left_2.setRotationPoint(6.0F, 0.0F, 0.0F); - this.leg_left_2.addBox(-2.2F, -1.9F, -2.0F, 4, 7, 4, 0.0F); - this.setRotateAngle(leg_left_2, 0.0F, 0.0F, -0.3490658503988659F); - this.arm_right3 = new ModelRenderer(this, 4, 75); - this.arm_right3.setRotationPoint(-7.0F, 5.0F, 0.0F); - this.arm_right3.addBox(-2.5F, 4.5F, -4.0F, 6, 10, 7, 0.0F); - this.setRotateAngle(arm_right3, 0.0F, 0.0F, 0.08726646259971647F); - this.leg_left_3 = new ModelRenderer(this, 78, 119); - this.leg_left_3.setRotationPoint(0.0F, 4.5F, 0.0F); - this.leg_left_3.addBox(-1.4F, 0.0F, -1.5F, 3, 6, 3, 0.0F); - this.setRotateAngle(leg_left_3, 0.0F, 0.0F, 0.3490658503988659F); - this.torso_mid = new ModelRenderer(this, 24, 52); - this.torso_mid.setRotationPoint(0.0F, 0.0F, 1.0F); - this.torso_mid.addBox(-6.5F, -8.0F, -5.5F, 13, 4, 11, 0.0F); - this.setRotateAngle(torso_mid, 0.17453292519943295F, 0.0F, 0.0F); - this.leg_back_3 = new ModelRenderer(this, 42, 119); - this.leg_back_3.setRotationPoint(0.0F, 4.5F, 0.0F); - this.leg_back_3.addBox(-1.4F, 0.0F, -1.5F, 3, 6, 3, 0.0F); - this.setRotateAngle(leg_back_3, 0.0F, 0.0F, 0.3490658503988659F); - this.torso_spike3 = new ModelRenderer(this, 54, 23); - this.torso_spike3.setRotationPoint(7.0F, -14.0F, 5.0F); - this.torso_spike3.addBox(0.0F, -4.0F, -2.0F, 3, 6, 3, 0.0F); - this.setRotateAngle(torso_spike3, -0.5235987755982988F, 0.0F, 0.3490658503988659F); - this.base_main = new ModelRenderer(this, 28, 82); - this.base_main.setRotationPoint(0.0F, 2.5F, 0.0F); - this.base_main.addBox(-5.0F, 8.0F, -5.0F, 10, 6, 10, 0.0F); - this.shoulder_right = new ModelRenderer(this, 0, 29); - this.shoulder_right.setRotationPoint(-8.0F, -12.5F, 0.0F); - this.shoulder_right.addBox(-9.0F, -3.0F, -4.0F, 8, 7, 8, 0.0F); - this.setRotateAngle(shoulder_right, 0.0F, 0.0F, -0.08726646259971647F); - this.arm_right_spike1 = new ModelRenderer(this, 0, 44); - this.arm_right_spike1.setRotationPoint(-7.4F, 6.0F, 0.0F); - this.arm_right_spike1.addBox(-1.5F, -6.0F, -1.5F, 3, 6, 3, 0.0F); - this.setRotateAngle(arm_right_spike1, -0.13962634015954636F, 0.0F, -0.6981317007977318F); - this.arm_left1 = new ModelRenderer(this, 66, 63); - this.arm_left1.setRotationPoint(6.0F, 0.0F, 0.0F); - this.arm_left1.addBox(-3.0F, 0.0F, -3.5F, 7, 15, 7, 0.0F); - this.setRotateAngle(arm_left1, 0.0F, 0.0F, -0.8726646259971648F); - this.torso_spike2 = new ModelRenderer(this, 38, 21); - this.torso_spike2.setRotationPoint(3.0F, -16.0F, 4.5F); - this.torso_spike2.addBox(0.0F, -5.0F, -2.0F, 4, 7, 4, 0.0F); - this.setRotateAngle(torso_spike2, -0.2617993877991494F, 0.0F, 0.3490658503988659F); - this.leg_spike2 = new ModelRenderer(this, 64, 114); - this.leg_spike2.setRotationPoint(5.0F, -2.0F, 1.0F); - this.leg_spike2.addBox(0.0F, -5.0F, -2.0F, 3, 6, 3, 0.0F); - this.setRotateAngle(leg_spike2, -0.17453292519943295F, 0.0F, 0.4363323129985824F); - this.arm_left_spike1 = new ModelRenderer(this, 84, 32); - this.arm_left_spike1.setRotationPoint(0.0F, -2.0F, -0.2F); - this.arm_left_spike1.addBox(0.5F, -5.5F, -2.0F, 3, 6, 3, 0.0F); - this.setRotateAngle(arm_left_spike1, 0.13962634015954636F, 0.0F, 0.0F); - this.leg_right_3 = new ModelRenderer(this, 6, 119); - this.leg_right_3.setRotationPoint(0.0F, 4.5F, 0.0F); - this.leg_right_3.addBox(-1.4F, 0.0F, -1.5F, 3, 6, 3, 0.0F); - this.setRotateAngle(leg_right_3, 0.0F, 0.0F, 0.3490658503988659F); - this.leg_right_1 = new ModelRenderer(this, 0, 98); - this.leg_right_1.setRotationPoint(-2.0F, 11.5F, -2.0F); - this.leg_right_1.addBox(0.0F, -3.0F, -2.5F, 7, 5, 5, 0.0F); - this.setRotateAngle(leg_right_1, 0.0F, 2.6179938779914944F, 0.0F); - this.shoulder_left = new ModelRenderer(this, 67, 55); - this.shoulder_left.setRotationPoint(8.0F, -12.5F, 0.0F); - this.shoulder_left.addBox(-1.0F, -2.5F, -2.0F, 9, 4, 4, 0.0F); - this.setRotateAngle(shoulder_left, 0.0F, 0.0F, 0.7853981633974483F); - this.torso_spike1 = new ModelRenderer(this, 30, 27); - this.torso_spike1.setRotationPoint(0.2F, -16.0F, 2.3F); - this.torso_spike1.addBox(0.0F, -2.0F, -1.0F, 2, 3, 2, 0.0F); - this.setRotateAngle(torso_spike1, -0.17453292519943295F, 0.0F, 0.3490658503988659F); - this.leg_right_2 = new ModelRenderer(this, 4, 108); - this.leg_right_2.setRotationPoint(6.0F, 0.0F, 0.0F); - this.leg_right_2.addBox(-2.2F, -1.9F, -2.0F, 4, 7, 4, 0.0F); - this.setRotateAngle(leg_right_2, 0.0F, 0.0F, -0.3490658503988659F); - this.torso_top = new ModelRenderer(this, 20, 32); - this.torso_top.setRotationPoint(0.0F, 0.0F, 0.0F); - this.torso_top.addBox(-9.0F, -16.0F, -6.0F, 18, 8, 12, 0.0F); - this.arm_right_spike2 = new ModelRenderer(this, 0, 53); - this.arm_right_spike2.setRotationPoint(-7.4F, 7.4F, -1.0F); - this.arm_right_spike2.addBox(-2.4F, -2.9F, -1.5F, 2, 3, 2, 0.0F); - this.setRotateAngle(arm_right_spike2, 0.0F, 0.0F, -0.6981317007977318F); - this.leg_spike1 = new ModelRenderer(this, 66, 108); - this.leg_spike1.setRotationPoint(3.0F, -2.0F, -0.5F); - this.leg_spike1.addBox(0.0F, -5.0F, -2.0F, 2, 4, 2, 0.0F); - this.setRotateAngle(leg_spike1, 0.13962634015954636F, 0.0F, 0.4363323129985824F); - this.arm_left_spike3 = new ModelRenderer(this, 88, 49); - this.arm_left_spike3.setRotationPoint(3.5F, 1.0F, 1.0F); - this.arm_left_spike3.addBox(0.0F, -2.4F, -2.0F, 2, 4, 2, 0.0F); - this.setRotateAngle(arm_left_spike3, -0.08726646259971647F, 0.0F, 0.7853981633974483F); - this.leg_left_1 = new ModelRenderer(this, 72, 98); - this.leg_left_1.setRotationPoint(2.0F, 11.5F, -2.0F); - this.leg_left_1.addBox(0.0F, -3.0F, -2.5F, 7, 5, 5, 0.0F); - this.setRotateAngle(leg_left_1, 0.0F, 0.5235987755982988F, 0.0F); - this.arm_right1 = new ModelRenderer(this, 7, 62); - this.arm_right1.setRotationPoint(-5.0F, 3.0F, 0.0F); - this.arm_right1.addBox(-2.5F, -0.5F, -3.0F, 5, 8, 5, 0.0F); - this.setRotateAngle(arm_right1, 0.0F, 0.0F, 0.2617993877991494F); - this.torso_low = new ModelRenderer(this, 30, 67); - this.torso_low.setRotationPoint(0.0F, 8.0F, 0.0F); - this.torso_low.addBox(-4.5F, -5.0F, -4.5F, 9, 6, 9, 0.0F); - this.setRotateAngle(torso_low, -0.17453292519943295F, 0.0F, 0.0F); - this.leg_back_1 = new ModelRenderer(this, 36, 98); - this.leg_back_1.setRotationPoint(0.0F, 11.6F, 2.0F); - this.leg_back_1.addBox(0.0F, -3.0F, -2.5F, 7, 5, 5, 0.0F); - this.setRotateAngle(leg_back_1, 0.0F, -1.5707963267948966F, 0.0F); - this.leg_back_1.addChild(this.leg_back_2); - this.shoulder_left.addChild(this.arm_left_spike2); - this.shoulder_right.addChild(this.arm_right2); - this.leg_left_1.addChild(this.leg_left_2); - this.shoulder_right.addChild(this.arm_right3); - this.leg_left_2.addChild(this.leg_left_3); - this.torso_low.addChild(this.torso_mid); - this.leg_back_2.addChild(this.leg_back_3); - this.torso_top.addChild(this.torso_spike3); - this.torso_top.addChild(this.shoulder_right); - this.shoulder_right.addChild(this.arm_right_spike1); - this.shoulder_left.addChild(this.arm_left1); - this.torso_top.addChild(this.torso_spike2); - this.leg_left_1.addChild(this.leg_spike2); - this.shoulder_left.addChild(this.arm_left_spike1); - this.leg_right_2.addChild(this.leg_right_3); - this.base_main.addChild(this.leg_right_1); - this.torso_top.addChild(this.shoulder_left); - this.torso_top.addChild(this.torso_spike1); - this.leg_right_1.addChild(this.leg_right_2); - this.torso_mid.addChild(this.torso_top); - this.shoulder_right.addChild(this.arm_right_spike2); - this.leg_left_1.addChild(this.leg_spike1); - this.arm_left1.addChild(this.arm_left_spike3); - this.base_main.addChild(this.leg_left_1); - this.shoulder_right.addChild(this.arm_right1); - this.base_main.addChild(this.torso_low); - this.base_main.addChild(this.leg_back_1); - } - - @Override - public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) { - this.base_main.render(f5); - } - - @Override - public void setRotationAngles(float limbSwing, float limbSwingAmount, float ageInTicks, float headYaw, float headPitch, float scaleFactor, Entity entity) { - super.setRotationAngles(limbSwing, limbSwingAmount, ageInTicks, headYaw, headPitch, scaleFactor, entity); - - float leftSwingX = MathHelper.cos(limbSwing * 1.2F) * 0.75F * limbSwingAmount; - float rightSwingX = MathHelper.cos(limbSwing * 1.2F) * 0.75F * limbSwingAmount; - - } - - /** - * This is a helper function from Tabula to set the rotation of model parts - */ - public void setRotateAngle(ModelRenderer modelRenderer, float x, float y, float z) { - modelRenderer.rotateAngleX = x; - modelRenderer.rotateAngleY = y; - modelRenderer.rotateAngleZ = z; - } - - @Override - public void preLayerRender() { - - } - - @Override - public void postLayerRender() { - - } -} diff --git a/src/main/java/com/gildedgames/aether/client/models/entities/living/ModelBurrukai.java b/src/main/java/com/gildedgames/aether/client/models/entities/living/ModelBurrukai.java deleted file mode 100644 index de225210a7..0000000000 --- a/src/main/java/com/gildedgames/aether/client/models/entities/living/ModelBurrukai.java +++ /dev/null @@ -1,361 +0,0 @@ -package com.gildedgames.aether.client.models.entities.living; - -import com.gildedgames.aether.client.renderer.ModelBaseAether; -import net.minecraft.client.model.ModelBase; -import net.minecraft.client.model.ModelRenderer; -import net.minecraft.client.renderer.GlStateManager; -import net.minecraft.entity.Entity; -import net.minecraft.util.math.MathHelper; - -/** - * Burrukai.tcn - TechneToTabulaImporter - * Created using Tabula 5.1.0 - */ -public class ModelBurrukai extends ModelBaseAether -{ - public ModelRenderer Tail; - public ModelRenderer TorsoNeckJoint; - public ModelRenderer TorsoFrontFurRight; - public ModelRenderer TorsoChest; - public ModelRenderer TorsoPlate1; - public ModelRenderer TorsoPlate2; - public ModelRenderer TorsoPlate3; - public ModelRenderer TorsoShoulderPlateLeftMid; - public ModelRenderer TorsoShoulderPlateLeftFront; - public ModelRenderer TorsoShoulderPlateRightMid; - public ModelRenderer TorsoShoulderPlateRightFront; - public ModelRenderer TorsoBackFur; - public ModelRenderer TorsoRear; - public ModelRenderer FrontLegRightTop; - public ModelRenderer FrontLegRightBottom; - public ModelRenderer FrontLegRightHoofOut; - public ModelRenderer FrontLegLeftTop; - public ModelRenderer FrontLegLeftBottom; - public ModelRenderer FrontLegLeftHoofIn; - public ModelRenderer HindLegRightCalf; - public ModelRenderer HindLegRightShin; - public ModelRenderer HindLegRightKnee; - public ModelRenderer HindLegRightHoofIn; - public ModelRenderer HindLegLeftCalfMiddle; - public ModelRenderer HindLegLeftKnee; - public ModelRenderer HindLegLeftShin; - public ModelRenderer HindLegLeftHoofOut; - public ModelRenderer HeadMain; - public ModelRenderer HeadAntlerTopLeft1; - public ModelRenderer HeadAntlerTopLeft2; - public ModelRenderer HeadAntlerBottomLeft1; - public ModelRenderer HeadAntlerBottomRight1; - public ModelRenderer HeadAntlerTopRight2; - public ModelRenderer HeadPlateTop; - public ModelRenderer HeadAntlersMiddle; - public ModelRenderer HeadBrowLeft; - public ModelRenderer HeadBrowRight; - public ModelRenderer HeadEyeLeft; - public ModelRenderer HeadEyeRight; - public ModelRenderer HeadEarLeft; - public ModelRenderer HeadEarRight; - public ModelRenderer HeadRidge; - public ModelRenderer HeadBase; - public ModelRenderer HeadCheekRight; - public ModelRenderer HeadCheekLeft; - public ModelRenderer HeadChin; - public ModelRenderer HeadAntlerTopRight1; - public ModelRenderer HeadSnout; - - public final float childZOffset = 4.0F; - - public ModelBurrukai() - { - this.textureWidth = 128; - this.textureHeight = 512; - this.TorsoShoulderPlateLeftMid = new ModelRenderer(this, 91, 150); - this.TorsoShoulderPlateLeftMid.setRotationPoint(0.0F, -4.0F, 1.0F); - this.TorsoShoulderPlateLeftMid.addBox(8.0F, -5.0F, 3.5F, 5, 15, 4, 0.0F); - this.setRotateAngle(TorsoShoulderPlateLeftMid, 0.0F, 0.0F, 0.17453292519943295F); - this.HeadEarLeft = new ModelRenderer(this, 90, 43); - this.HeadEarLeft.setRotationPoint(0.0F, 0.0F, 0.0F); - this.HeadEarLeft.addBox(4.0F, 0.0F, -2.0F, 1, 5, 3, 0.0F); - this.setRotateAngle(HeadEarLeft, 0.0F, -0.0F, -0.5235987755982988F); - this.FrontLegRightTop = new ModelRenderer(this, 12, 265); - this.FrontLegRightTop.setRotationPoint(-4.0F, 3.0F, 6.0F); - this.FrontLegRightTop.addBox(-5.0F, -2.0F, -3.0F, 5, 14, 7, 0.0F); - this.HeadCheekLeft = new ModelRenderer(this, 80, 51); - this.HeadCheekLeft.setRotationPoint(0.0F, 0.0F, 0.0F); - this.HeadCheekLeft.addBox(0.9F, 0.8F, -9.0F, 4, 6, 12, 0.0F); - this.setRotateAngle(HeadCheekLeft, 0.0F, 0.2617993877991494F, 0.0F); - this.HeadBase = new ModelRenderer(this, 44, 48); - this.HeadBase.setRotationPoint(0.0F, 0.0F, 0.0F); - this.HeadBase.addBox(-2.5F, 0.7F, -10.6F, 5, 6, 13, 0.0F); - this.TorsoShoulderPlateLeftFront = new ModelRenderer(this, 85, 172); - this.TorsoShoulderPlateLeftFront.setRotationPoint(0.0F, -4.0F, 1.0F); - this.TorsoShoulderPlateLeftFront.addBox(7.5F, -4.0F, 0.0F, 4, 9, 11, 0.0F); - this.setRotateAngle(TorsoShoulderPlateLeftFront, 0.0F, 0.0F, 0.26563911215353697F); - this.TorsoPlate2 = new ModelRenderer(this, 40, 169); - this.TorsoPlate2.setRotationPoint(0.0F, -2.0F, 1.0F); - this.TorsoPlate2.addBox(-5.0F, -2.0F, 1.0F, 10, 4, 12, 0.0F); - this.setRotateAngle(TorsoPlate2, 0.5235987755982988F, 0.0F, 0.0F); - this.FrontLegLeftTop = new ModelRenderer(this, 92, 265); - this.FrontLegLeftTop.setRotationPoint(4.0F, 3.0F, 6.0F); - this.FrontLegLeftTop.addBox(0.0F, -2.0F, -3.0F, 5, 14, 7, 0.0F); - this.setRotateAngle(FrontLegLeftTop, 0.0F, -0.03490658503988659F, 0.0F); - this.FrontLegLeftBottom = new ModelRenderer(this, 96, 286); - this.FrontLegLeftBottom.setRotationPoint(0.0F, 0.0F, 0.0F); - this.FrontLegLeftBottom.addBox(0.5F, 8.5F, 4.0F, 4, 10, 4, 0.0F); - this.setRotateAngle(FrontLegLeftBottom, -0.5235987755982988F, -0.0F, 0.0F); - this.HeadAntlerBottomLeft1 = new ModelRenderer(this, 97, 22); - this.HeadAntlerBottomLeft1.setRotationPoint(0.0F, 0.0F, 0.0F); - this.HeadAntlerBottomLeft1.addBox(2.5F, 9.0F, -1.5F, 5, 2, 2, 0.0F); - this.setRotateAngle(HeadAntlerBottomLeft1, 0.0F, 0.0F, -2.0943951023931953F); - this.HeadCheekRight = new ModelRenderer(this, 12, 51); - this.HeadCheekRight.setRotationPoint(0.0F, 0.0F, 0.0F); - this.HeadCheekRight.addBox(-5.0F, 0.8F, -9.0F, 4, 6, 12, 0.0F); - this.setRotateAngle(HeadCheekRight, 0.0F, -0.2617993877991494F, 0.0F); - this.HeadAntlerTopLeft2 = new ModelRenderer(this, 77, 14); - this.HeadAntlerTopLeft2.setRotationPoint(0.0F, 0.0F, 0.0F); - this.HeadAntlerTopLeft2.addBox(5.0F, -3.0F, -2.0F, 8, 3, 3, 0.0F); - this.setRotateAngle(HeadAntlerTopLeft2, 0.0F, -0.0F, -0.5235987755982988F); - this.HeadEyeLeft = new ModelRenderer(this, 80, 42); - this.HeadEyeLeft.setRotationPoint(0.0F, 0.0F, 0.0F); - this.HeadEyeLeft.addBox(4.5F, -3.0F, -5.0F, 1, 5, 4, 0.0F); - this.setRotateAngle(HeadEyeLeft, 0.0F, 0.6108652381980153F, 0.0F); - this.FrontLegRightBottom = new ModelRenderer(this, 16, 286); - this.FrontLegRightBottom.setRotationPoint(0.0F, 0.0F, 0.0F); - this.FrontLegRightBottom.addBox(-4.5F, 8.5F, 4.0F, 4, 10, 4, 0.0F); - this.setRotateAngle(FrontLegRightBottom, -0.5235987755982988F, -0.0F, 0.0F); - this.TorsoChest = new ModelRenderer(this, 38, 133); - this.TorsoChest.setRotationPoint(0.0F, -4.0F, 1.0F); - this.TorsoChest.addBox(-6.0F, 7.0F, -1.0F, 12, 11, 12, 0.0F); - this.setRotateAngle(TorsoChest, 0.11152653920243764F, 0.0F, 0.0F); - this.FrontLegRightHoofOut = new ModelRenderer(this, 16, 302); - this.FrontLegRightHoofOut.setRotationPoint(0.0F, 0.0F, 0.0F); - this.FrontLegRightHoofOut.addBox(-4.4F, 18.0F, -5.5F, 4, 3, 4, 0.0F); - this.HeadAntlerBottomRight1 = new ModelRenderer(this, 11, 22); - this.HeadAntlerBottomRight1.setRotationPoint(0.0F, 0.0F, 0.0F); - this.HeadAntlerBottomRight1.addBox(-7.5F, 9.0F, -1.5F, 5, 2, 2, 0.0F); - this.setRotateAngle(HeadAntlerBottomRight1, 0.0F, -0.0F, 2.0943951023931953F); - this.HeadAntlerTopRight1 = new ModelRenderer(this, 1, 16); - this.HeadAntlerTopRight1.setRotationPoint(0.0F, 0.0F, 0.0F); - this.HeadAntlerTopRight1.addBox(-12.5F, 10.5F, -1.5F, 8, 2, 2, 0.0F); - this.setRotateAngle(HeadAntlerTopRight1, 0.0F, -0.0F, 1.7453292519943295F); - this.HeadEyeRight = new ModelRenderer(this, 34, 42); - this.HeadEyeRight.setRotationPoint(0.0F, 0.0F, 0.0F); - this.HeadEyeRight.addBox(-5.5F, -3.0F, -5.0F, 1, 5, 4, 0.0F); - this.setRotateAngle(HeadEyeRight, 0.0F, -0.6108652381980153F, 0.0F); - this.HindLegLeftCalfMiddle = new ModelRenderer(this, 92, 320); - this.HindLegLeftCalfMiddle.setRotationPoint(5.0F, 4.0F, 19.0F); - this.HindLegLeftCalfMiddle.addBox(-3.0F, -2.0F, -1.5F, 5, 13, 7, 0.0F); - this.setRotateAngle(HindLegLeftCalfMiddle, -0.2617993877991494F, 0.0F, 0.0F); - this.HeadAntlerTopRight2 = new ModelRenderer(this, 23, 14); - this.HeadAntlerTopRight2.setRotationPoint(0.0F, 0.0F, 0.0F); - this.HeadAntlerTopRight2.addBox(-13.0F, -3.0F, -2.0F, 8, 3, 3, 0.0F); - this.setRotateAngle(HeadAntlerTopRight2, 0.0F, -0.0F, 0.5235987755982988F); - this.HeadPlateTop = new ModelRenderer(this, 44, 0); - this.HeadPlateTop.setRotationPoint(0.0F, 0.0F, 0.0F); - this.HeadPlateTop.addBox(-4.0F, -8.8F, -3.5F, 8, 2, 10, 0.0F); - this.setRotateAngle(HeadPlateTop, 0.8726646259971648F, 0.0F, 0.0F); - this.HindLegRightHoofIn = new ModelRenderer(this, 19, 369); - this.HindLegRightHoofIn.setRotationPoint(0.0F, 0.0F, 0.0F); - this.HindLegRightHoofIn.addBox(-0.9F, 18.0F, 0.5F, 3, 2, 3, 0.0F); - this.setRotateAngle(HindLegRightHoofIn, 0.2617993877991494F, 0.0F, 0.0F); - this.HeadAntlerTopLeft1 = new ModelRenderer(this, 101, 16); - this.HeadAntlerTopLeft1.setRotationPoint(0.0F, 0.0F, 0.0F); - this.HeadAntlerTopLeft1.addBox(4.5F, 10.5F, -1.5F, 8, 2, 2, 0.0F); - this.setRotateAngle(HeadAntlerTopLeft1, 0.0F, -0.0F, -1.7453292519943295F); - this.HindLegRightShin = new ModelRenderer(this, 18, 355); - this.HindLegRightShin.setRotationPoint(0.0F, 0.0F, 0.0F); - this.HindLegRightShin.addBox(-1.0F, 10.0F, 3.5F, 3, 8, 4, 0.0F); - this.setRotateAngle(HindLegRightShin, 0.08726646259971647F, -0.0F, 0.0F); - this.FrontLegLeftHoofIn = new ModelRenderer(this, 96, 302); - this.FrontLegLeftHoofIn.setRotationPoint(0.0F, 0.0F, 0.0F); - this.FrontLegLeftHoofIn.addBox(0.4F, 18.0F, -5.5F, 4, 3, 4, 0.0F); - this.TorsoNeckJoint = new ModelRenderer(this, 47, 93); - this.TorsoNeckJoint.setRotationPoint(0.0F, -2.0F, 1.0F); - this.TorsoNeckJoint.addBox(-3.5F, 0.5F, -2.0F, 7, 9, 8, 0.0F); - this.setRotateAngle(TorsoNeckJoint, -0.5235987755982988F, 0.0F, 0.0F); - this.HindLegRightKnee = new ModelRenderer(this, 12, 341); - this.HindLegRightKnee.setRotationPoint(0.0F, 0.0F, 0.0F); - this.HindLegRightKnee.addBox(-1.5F, 6.0F, 1.0F, 4, 5, 9, 0.0F); - this.setRotateAngle(HindLegRightKnee, -0.17453292519943295F, -0.0F, 0.0F); - this.HindLegLeftKnee = new ModelRenderer(this, 91, 340); - this.HindLegLeftKnee.setRotationPoint(0.0F, 0.0F, 0.0F); - this.HindLegLeftKnee.addBox(-2.5F, 6.0F, 1.0F, 4, 5, 9, 0.0F); - this.setRotateAngle(HindLegLeftKnee, -0.17453292519943295F, -0.0F, 0.0F); - this.Tail = new ModelRenderer(this, 56, 251); - this.Tail.setRotationPoint(0.0F, -1.0F, 23.7F); - this.Tail.addBox(-2.0F, 0.0F, -2.0F, 3, 10, 3, 0.0F); - this.setRotateAngle(Tail, 0.5150466622635267F, -0.7518878417591571F, -0.3621558197888234F); - this.TorsoShoulderPlateRightMid = new ModelRenderer(this, 15, 150); - this.TorsoShoulderPlateRightMid.setRotationPoint(0.0F, -4.0F, 1.0F); - this.TorsoShoulderPlateRightMid.addBox(-13.0F, -5.0F, 3.5F, 5, 15, 4, 0.0F); - this.setRotateAngle(TorsoShoulderPlateRightMid, 0.0F, 0.0F, -0.17453292519943295F); - this.TorsoPlate1 = new ModelRenderer(this, 44, 157); - this.TorsoPlate1.setRotationPoint(0.0F, -3.0F, 2.0F); - this.TorsoPlate1.addBox(-4.5F, -3.0F, -3.0F, 9, 3, 9, 0.0F); - this.setRotateAngle(TorsoPlate1, 1.2217304763960306F, 0.0F, 0.0F); - this.TorsoFrontFurRight = new ModelRenderer(this, 31, 110); - this.TorsoFrontFurRight.setRotationPoint(0.0F, -4.0F, 1.0F); - this.TorsoFrontFurRight.addBox(-9.0F, -0.8F, -1.0F, 18, 8, 13, 0.0F); - this.TorsoBackFur = new ModelRenderer(this, 33, 198); - this.TorsoBackFur.setRotationPoint(0.0F, -4.0F, 1.0F); - this.TorsoBackFur.addBox(-5.0F, -2.0F, 11.0F, 10, 3, 13, 0.0F); - this.setRotateAngle(TorsoBackFur, -0.17453292519943295F, 0.0F, 0.0F); - this.HindLegLeftHoofOut = new ModelRenderer(this, 98, 368); - this.HindLegLeftHoofOut.setRotationPoint(0.0F, 0.0F, 0.0F); - this.HindLegLeftHoofOut.addBox(-2.1F, 18.0F, 0.5F, 3, 2, 3, 0.0F); - this.setRotateAngle(HindLegLeftHoofOut, 0.2617993877991494F, 0.0F, 0.0F); - this.HindLegLeftShin = new ModelRenderer(this, 97, 354); - this.HindLegLeftShin.setRotationPoint(0.0F, 0.0F, 0.0F); - this.HindLegLeftShin.addBox(-2.0F, 10.0F, 3.5F, 3, 8, 4, 0.0F); - this.setRotateAngle(HindLegLeftShin, 0.08726646259971647F, -0.0F, 0.0F); - this.HeadMain = new ModelRenderer(this, 48, 22); - this.HeadMain.setRotationPoint(0.0F, 5.0F, -2.5F); - this.HeadMain.addBox(-4.0F, -2.0F, -4.0F, 8, 3, 6, 0.0F); - this.HeadAntlersMiddle = new ModelRenderer(this, 47, 12); - this.HeadAntlersMiddle.setRotationPoint(0.0F, 0.0F, 0.0F); - this.HeadAntlersMiddle.addBox(-5.0F, -7.0F, -3.0F, 10, 5, 5, 0.0F); - this.HeadBrowLeft = new ModelRenderer(this, 77, 33); - this.HeadBrowLeft.setRotationPoint(0.0F, 0.0F, 0.0F); - this.HeadBrowLeft.addBox(2.0F, -5.5F, -3.6F, 4, 3, 6, 0.0F); - this.setRotateAngle(HeadBrowLeft, 0.3490658503988659F, 0.6981317007977318F, 0.17453292519943295F); - this.TorsoPlate3 = new ModelRenderer(this, 44, 185); - this.TorsoPlate3.setRotationPoint(0.0F, -2.0F, 1.0F); - this.TorsoPlate3.addBox(-4.0F, -1.5F, 9.0F, 8, 3, 10, 0.0F); - this.setRotateAngle(TorsoPlate3, 0.17453292519943295F, 0.0F, 0.0F); - this.HeadBrowRight = new ModelRenderer(this, 27, 33); - this.HeadBrowRight.setRotationPoint(0.0F, 0.0F, 0.0F); - this.HeadBrowRight.addBox(-6.0F, -5.5F, -3.6F, 4, 3, 6, 0.0F); - this.setRotateAngle(HeadBrowRight, 0.3490658503988659F, -0.6981317007977318F, -0.17453292519943295F); - this.HeadChin = new ModelRenderer(this, 51, 73); - this.HeadChin.setRotationPoint(0.0F, 0.0F, 0.0F); - this.HeadChin.addBox(-2.0F, -2.9F, -12.0F, 4, 6, 7, 0.0F); - this.setRotateAngle(HeadChin, 0.7853981633974483F, -0.0F, 0.0F); - this.HeadEarRight = new ModelRenderer(this, 26, 43); - this.HeadEarRight.setRotationPoint(0.0F, 0.0F, 0.0F); - this.HeadEarRight.addBox(-5.0F, 0.0F, -2.0F, 1, 5, 3, 0.0F); - this.setRotateAngle(HeadEarRight, 0.0F, -0.0F, 0.5235987755982988F); - this.HeadSnout = new ModelRenderer(this, 56, 68); - this.HeadSnout.setRotationPoint(0.0F, 0.0F, 0.0F); - this.HeadSnout.addBox(-2.0F, -2.5F, -11.5F, 4, 3, 2, 0.0F); - this.setRotateAngle(HeadSnout, 0.3490658503988659F, -0.0F, 0.0F); - this.HeadRidge = new ModelRenderer(this, 47, 31); - this.HeadRidge.setRotationPoint(0.0F, 0.0F, 0.0F); - this.HeadRidge.addBox(-2.0F, -7.0F, -8.0F, 4, 6, 11, 0.0F); - this.setRotateAngle(HeadRidge, 0.7853981633974483F, 0.0F, 0.0F); - this.TorsoShoulderPlateRightFront = new ModelRenderer(this, 9, 172); - this.TorsoShoulderPlateRightFront.setRotationPoint(0.0F, -4.0F, 1.0F); - this.TorsoShoulderPlateRightFront.addBox(-11.5F, -4.0F, 0.0F, 4, 9, 11, 0.0F); - this.setRotateAngle(TorsoShoulderPlateRightFront, 0.0F, 0.0F, -0.26563911215353697F); - this.HindLegRightCalf = new ModelRenderer(this, 13, 321); - this.HindLegRightCalf.setRotationPoint(-5.0F, 4.0F, 19.0F); - this.HindLegRightCalf.addBox(-2.0F, -2.0F, -1.5F, 5, 13, 7, 0.0F); - this.setRotateAngle(HindLegRightCalf, -0.2617993877991494F, -0.0F, 0.0F); - this.TorsoRear = new ModelRenderer(this, 39, 221); - this.TorsoRear.setRotationPoint(0.0F, -4.0F, 1.0F); - this.TorsoRear.addBox(-3.5F, 3.0F, 11.0F, 7, 14, 11, 0.0F); - this.HeadMain.addChild(this.HeadEarLeft); - this.HindLegRightCalf.addChild(this.HindLegRightKnee); - this.HindLegRightCalf.addChild(this.HindLegRightHoofIn); - this.HindLegLeftCalfMiddle.addChild(this.HindLegLeftKnee); - this.HeadMain.addChild(this.HeadEyeLeft); - this.HeadMain.addChild(this.HeadBrowLeft); - this.HeadMain.addChild(this.HeadChin); - this.HindLegRightCalf.addChild(this.HindLegRightShin); - this.FrontLegRightTop.addChild(this.FrontLegRightBottom); - this.HindLegLeftCalfMiddle.addChild(this.HindLegLeftHoofOut); - this.HeadMain.addChild(this.HeadCheekRight); - this.HeadMain.addChild(this.HeadPlateTop); - this.HeadMain.addChild(this.HeadAntlersMiddle); - this.HeadMain.addChild(this.HeadCheekLeft); - this.FrontLegRightTop.addChild(this.FrontLegRightHoofOut); - this.FrontLegLeftTop.addChild(this.FrontLegLeftHoofIn); - this.HeadMain.addChild(this.HeadAntlerTopRight2); - this.HeadMain.addChild(this.HeadAntlerBottomLeft1); - this.HeadMain.addChild(this.HeadBase); - this.HeadMain.addChild(this.HeadBrowRight); - this.HeadMain.addChild(this.HeadAntlerBottomRight1); - this.HeadMain.addChild(this.HeadAntlerTopLeft2); - this.HeadMain.addChild(this.HeadAntlerTopRight1); - this.HindLegLeftCalfMiddle.addChild(this.HindLegLeftShin); - this.HeadMain.addChild(this.HeadEyeRight); - this.HeadMain.addChild(this.HeadSnout); - this.HeadMain.addChild(this.HeadEarRight); - this.HeadMain.addChild(this.HeadAntlerTopLeft1); - this.HeadMain.addChild(this.HeadRidge); - this.FrontLegLeftTop.addChild(this.FrontLegLeftBottom); - } - - @Override - public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) - { - this.TorsoPlate2.render(f5); - this.HeadMain.render(f5); - this.FrontLegLeftTop.render(f5); - this.TorsoFrontFurRight.render(f5); - this.TorsoShoulderPlateRightMid.render(f5); - this.TorsoPlate3.render(f5); - this.TorsoShoulderPlateLeftFront.render(f5); - this.FrontLegRightTop.render(f5); - this.TorsoChest.render(f5); - this.HindLegLeftCalfMiddle.render(f5); - this.HindLegRightCalf.render(f5); - this.TorsoBackFur.render(f5); - this.TorsoRear.render(f5); - this.Tail.render(f5); - this.TorsoPlate1.render(f5); - this.TorsoNeckJoint.render(f5); - this.TorsoShoulderPlateRightFront.render(f5); - this.TorsoShoulderPlateLeftMid.render(f5); - } - - /** - * This is a helper function from Tabula to set the rotation of model parts - */ - public void setRotateAngle(ModelRenderer modelRenderer, float x, float y, float z) - { - modelRenderer.rotateAngleX = x; - modelRenderer.rotateAngleY = y; - modelRenderer.rotateAngleZ = z; - } - - @Override - public void setRotationAngles(float limbSwing, float limbSwingAmount, float ageInTicks, float netHeadYaw, float headPitch, float scaleFactor, Entity entity) - { - super.setRotationAngles(limbSwing, limbSwingAmount, ageInTicks, netHeadYaw, headPitch, scaleFactor, entity); - - this.Tail.rotateAngleZ = -0.5096392150483358F + (MathHelper.cos(ageInTicks * 0.1662F) * 0.2F); - - float pitch = headPitch * 0.017453292F; - float yaw = netHeadYaw * 0.017453292F; - - this.HeadMain.rotateAngleX = pitch; - this.HeadMain.rotateAngleY = yaw; - - float leftSwingX = (MathHelper.cos(limbSwing * 0.6662F) * 0.75F * limbSwingAmount); - float rightSwingX = (MathHelper.cos(limbSwing * 0.6662F + (float) Math.PI) * 0.75F * limbSwingAmount); - - this.HeadMain.rotateAngleZ = leftSwingX * .1f; - this.HeadMain.offsetY = leftSwingX * .015f; - - this.FrontLegLeftTop.offsetY = leftSwingX / 4f + .01f; - this.FrontLegRightTop.offsetY = rightSwingX / 4f + .01f; - - this.FrontLegLeftTop.rotateAngleX = rightSwingX * .8f; - this.FrontLegRightTop.rotateAngleX = leftSwingX * .8f; - - //hind leg animation code is lifting them up off the ground somehow - - this.HindLegLeftCalfMiddle.rotateAngleX = -0.2617993877991494F + leftSwingX * .55f; - this.HindLegRightCalf.rotateAngleX = -0.2617993877991494F + rightSwingX * .55f; - - this.HindLegLeftCalfMiddle.offsetY = rightSwingX / 7f; - this.HindLegRightCalf.offsetY = leftSwingX / 7f; - - this.TorsoShoulderPlateRightMid.offsetY = rightSwingX * .12f + .01f; - this.TorsoShoulderPlateRightFront.offsetY = rightSwingX * .12f + .01f; - - this.TorsoShoulderPlateLeftMid.offsetY = leftSwingX * .12f + .01f; - this.TorsoShoulderPlateLeftFront.offsetY = leftSwingX * .12f + .01f; - - this.Tail.rotateAngleX = 0.515060975741379F + rightSwingX; - } -} diff --git a/src/main/java/com/gildedgames/aether/client/models/entities/living/ModelBurrukaiBaby.java b/src/main/java/com/gildedgames/aether/client/models/entities/living/ModelBurrukaiBaby.java deleted file mode 100644 index 226d14a5d7..0000000000 --- a/src/main/java/com/gildedgames/aether/client/models/entities/living/ModelBurrukaiBaby.java +++ /dev/null @@ -1,120 +0,0 @@ -package com.gildedgames.aether.client.models.entities.living; - -import com.gildedgames.aether.client.renderer.ModelBaseAether; -import net.minecraft.client.model.ModelRenderer; -import net.minecraft.entity.Entity; -import net.minecraft.util.math.MathHelper; - -/** - * babyburrukai - Undefined - * Created using Tabula 5.1.0 - */ -public class ModelBurrukaiBaby extends ModelBaseAether { - public ModelRenderer body_main; - public ModelRenderer tail; - public ModelRenderer wool; - public ModelRenderer head; - public ModelRenderer leg_f_l; - public ModelRenderer leg_f_r; - public ModelRenderer leg_b_l; - public ModelRenderer leg_b_r; - public ModelRenderer wool_1; - public ModelRenderer plate; - public ModelRenderer ears; - - public ModelBurrukaiBaby() { - this.textureWidth = 64; - this.textureHeight = 32; - this.wool = new ModelRenderer(this, 33, 0); - this.wool.setRotationPoint(0.0F, 0.0F, 0.0F); - this.wool.addBox(2.5F, -4.0F, -2.5F, 2, 5, 4, 0.0F); - this.setRotateAngle(wool, 0.008028514559173916F, 0.0F, 0.0F); - this.plate = new ModelRenderer(this, 1, 0); - this.plate.setRotationPoint(0.0F, 0.0F, 0.0F); - this.plate.addBox(-2.0F, -2.6F, -4.2F, 4, 3, 2, 0.0F); - this.setRotateAngle(plate, -1.3089969389957472F, 0.0F, 0.0F); - this.leg_b_l = new ModelRenderer(this, 56, 0); - this.leg_b_l.setRotationPoint(2.7F, 1.0F, 6.5F); - this.leg_b_l.addBox(-1.0F, -1.0F, -1.5F, 2, 9, 2, 0.0F); - this.leg_f_l = new ModelRenderer(this, 56, 11); - this.leg_f_l.setRotationPoint(2.7F, 1.0F, -0.9F); - this.leg_f_l.addBox(-0.5F, -1.0F, -1.0F, 2, 9, 2, 0.0F); - this.wool_1 = new ModelRenderer(this, 21, 0); - this.wool_1.setRotationPoint(0.0F, 0.0F, 0.0F); - this.wool_1.addBox(-4.5F, -4.0F, -2.5F, 2, 5, 4, 0.0F); - this.body_main = new ModelRenderer(this, 11, 10); - this.body_main.setRotationPoint(0.0F, 15.0F, -0.5F); - this.body_main.addBox(-3.5F, -2.5F, -3.5F, 7, 6, 11, 0.0F); - this.tail = new ModelRenderer(this, 28, 27); - this.tail.setRotationPoint(0.0F, -2.0F, 7.5F); - this.tail.addBox(-0.5F, 0.0F, 0.0F, 1, 1, 3, 0.0F); - this.setRotateAngle(tail, -0.8726646259971648F, 0.0F, 0.0F); - this.leg_b_r = new ModelRenderer(this, 48, 0); - this.leg_b_r.setRotationPoint(-2.7F, 1.0F, 6.5F); - this.leg_b_r.addBox(-1.0F, -1.0F, -1.5F, 2, 9, 2, 0.0F); - this.ears = new ModelRenderer(this, 0, 6); - this.ears.setRotationPoint(0.0F, 0.0F, 0.0F); - this.ears.addBox(-4.0F, -2.0F, 2.3F, 8, 2, 1, 0.0F); - this.setRotateAngle(ears, 1.48352986419518F, 0.0F, 0.0F); - this.leg_f_r = new ModelRenderer(this, 48, 11); - this.leg_f_r.setRotationPoint(-2.7F, 1.0F, -0.9F); - this.leg_f_r.addBox(-1.5F, -1.0F, -1.0F, 2, 9, 2, 0.0F); - this.head = new ModelRenderer(this, 0, 10); - this.head.setRotationPoint(0.0F, -1.5F, -3.0F); - this.head.addBox(-2.5F, -3.7F, -5.4F, 5, 5, 6, 0.0F); - this.body_main.addChild(this.wool); - this.head.addChild(this.plate); - this.body_main.addChild(this.leg_b_l); - this.body_main.addChild(this.leg_f_l); - this.body_main.addChild(this.wool_1); - this.body_main.addChild(this.tail); - this.body_main.addChild(this.leg_b_r); - this.head.addChild(this.ears); - this.body_main.addChild(this.leg_f_r); - this.body_main.addChild(this.head); - } - - @Override - public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) { - this.body_main.render(f5); - } - - /** - * This is a helper function from Tabula to set the rotation of model parts - */ - public void setRotateAngle(ModelRenderer modelRenderer, float x, float y, float z) { - modelRenderer.rotateAngleX = x; - modelRenderer.rotateAngleY = y; - modelRenderer.rotateAngleZ = z; - } - - @Override - public void setRotationAngles(float limbSwing, float limbSwingAmount, float ageInTicks, float netHeadYaw, float headPitch, float scaleFactor, Entity entity) - { - super.setRotationAngles(limbSwing, limbSwingAmount, ageInTicks, netHeadYaw, headPitch, scaleFactor, entity); - - this.tail.rotateAngleZ = -0.5096392150483358F + (MathHelper.cos(ageInTicks * 0.1662F) * 0.2F); - - float pitch = headPitch * 0.017453292F; - float yaw = netHeadYaw * 0.017453292F; - - this.head.rotateAngleX = pitch; - this.head.rotateAngleY = yaw; - - float leftSwingX = (MathHelper.cos(limbSwing * 0.6662F) * 0.75F * limbSwingAmount); - float rightSwingX = (MathHelper.cos(limbSwing * 0.6662F + (float) Math.PI) * 0.75F * limbSwingAmount); - - this.head.rotateAngleZ = leftSwingX * .1f; - this.head.offsetY = leftSwingX * .015f; - - this.leg_f_l.rotateAngleX = (MathHelper.cos(limbSwing * 0.6662F) * 1.0F * limbSwingAmount); - this.leg_f_r.rotateAngleX = (MathHelper.cos(limbSwing * 0.6662F + (float) Math.PI) * 1.0F * limbSwingAmount); - - this.leg_b_l.rotateAngleX = (MathHelper.cos(limbSwing * 0.6662F + (float) Math.PI) * 1.0F * limbSwingAmount); - this.leg_b_r.rotateAngleX = (MathHelper.cos(limbSwing * 0.6662F) * 1.0F * limbSwingAmount); - - //hind leg animation code is lifting them up off the ground somehow - - this.tail.rotateAngleX = 0.515060975741379F + rightSwingX; - } -} diff --git a/src/main/java/com/gildedgames/aether/client/models/entities/living/ModelCarrionSproutBase.java b/src/main/java/com/gildedgames/aether/client/models/entities/living/ModelCarrionSproutBase.java deleted file mode 100644 index 58e2af3501..0000000000 --- a/src/main/java/com/gildedgames/aether/client/models/entities/living/ModelCarrionSproutBase.java +++ /dev/null @@ -1,200 +0,0 @@ -package com.gildedgames.aether.client.models.entities.living; - -import com.gildedgames.aether.client.renderer.ModelBaseAether; -import net.minecraft.client.model.ModelRenderer; -import net.minecraft.entity.Entity; -import org.lwjgl.opengl.GL11; - -public class ModelCarrionSproutBase extends ModelBaseAether -{ - protected float pie = 3.141593F * 2F; - - public float sinage; - - public float sinage2; - - protected ModelRenderer stem; - - protected ModelRenderer bud_base; - - protected ModelRenderer petal_base; - - protected ModelRenderer bud_front; - - protected ModelRenderer bud_back; - - protected ModelRenderer bud_left; - - protected ModelRenderer bud_right; - - protected ModelRenderer bud_front_end; - - protected ModelRenderer bud_back_end; - - protected ModelRenderer bud_left_end; - - protected ModelRenderer bud_right_end; - - protected ModelRenderer petal_front; - - protected ModelRenderer petal_right; - - protected ModelRenderer petal_left; - - protected ModelRenderer petal_back; - - protected ModelRenderer petal_back_left; - - protected ModelRenderer petal_front_left; - - protected ModelRenderer petal_front_right; - - protected ModelRenderer petal_back_right; - - public ModelCarrionSproutBase() - { - this.textureWidth = 64; - this.textureHeight = 64; - this.petal_front_left = new ModelRenderer(this, 6, 37); - this.petal_front_left.setRotationPoint(2.0F, 0.5F, -2.0F); - this.petal_front_left.addBox(-3.0F, -8.0F, 0.0F, 6, 8, 0, 0.0F); - this.setRotateAngle(this.petal_front_left, 1.3962634015954636F, -0.7853981633974483F, 0.0F); - this.bud_right_end = new ModelRenderer(this, 20, 0); - this.bud_right_end.setRotationPoint(0.0F, -9.0F, -0.5F); - this.bud_right_end.addBox(-5.0F, -6.0F, 0.0F, 10, 6, 0, 0.0F); - this.setRotateAngle(this.bud_right_end, -0.6981317007977318F, 0.0F, 0.0F); - this.stem = new ModelRenderer(this, 24, 45); - this.stem.setRotationPoint(0.0F, 0.0F, 0.0F); - this.stem.addBox(-1.5F, 2.0F, -1.5F, 3, 8, 3, 0.0F); - this.bud_back = new ModelRenderer(this, 19, 6); - this.bud_back.setRotationPoint(0.0F, -1.0F, 5.0F); - this.bud_back.addBox(-5.0F, -9.0F, -1.0F, 10, 9, 1, 0.0F); - this.setRotateAngle(this.bud_back, 0.0F, 3.141592653589793F, 0.0F); - this.petal_front_right = new ModelRenderer(this, 6, 37); - this.petal_front_right.setRotationPoint(-2.0F, 0.5F, -2.0F); - this.petal_front_right.addBox(-3.0F, -8.0F, 0.0F, 6, 8, 0, 0.0F); - this.setRotateAngle(this.petal_front_right, 1.3962634015954636F, 0.7853981633974483F, 0.0F); - this.bud_left = new ModelRenderer(this, 19, 6); - this.bud_left.setRotationPoint(5.0F, -1.0F, 0.0F); - this.bud_left.addBox(-5.0F, -9.0F, -1.0F, 10, 9, 1, 0.0F); - this.setRotateAngle(this.bud_left, 0.0F, -1.5707963267948966F, 0.0F); - this.bud_right = new ModelRenderer(this, 19, 6); - this.bud_right.setRotationPoint(-5.0F, -1.0F, 0.0F); - this.bud_right.addBox(-5.0F, -9.0F, -1.0F, 10, 9, 1, 0.0F); - this.setRotateAngle(this.bud_right, 0.0F, 1.5707963267948966F, 0.0F); - this.petal_back_right = new ModelRenderer(this, 6, 37); - this.petal_back_right.setRotationPoint(-2.0F, 0.5F, 2.0F); - this.petal_back_right.addBox(-3.0F, -8.0F, 0.0F, 6, 8, 0, 0.0F); - this.setRotateAngle(this.petal_back_right, 1.3962634015954636F, 2.356194490192345F, 0.0F); - - this.bud_left_end = new ModelRenderer(this, 20, 0); - this.bud_left_end.setRotationPoint(0.0F, -9.0F, -0.5F); - this.bud_left_end.addBox(-5.0F, -6.0F, 0.0F, 10, 6, 0, 0.0F); - this.setRotateAngle(this.bud_left_end, -0.6981317007977318F, 0.0F, 0.0F); - this.petal_base = new ModelRenderer(this, 18, 37); - this.petal_base.setRotationPoint(0.0F, 4.0F, 0.0F); - this.petal_base.addBox(-3.0F, 0.0F, -3.0F, 6, 2, 6, 0.0F); - this.setRotateAngle(this.petal_base, 0.0F, 0.7853981633974483F, 0.0F); - this.bud_front_end = new ModelRenderer(this, 20, 0); - this.bud_front_end.setRotationPoint(0.0F, -9.0F, -0.5F); - this.bud_front_end.addBox(-5.0F, -6.0F, 0.0F, 10, 6, 0, 0.0F); - this.setRotateAngle(this.bud_front_end, -0.6981317007977318F, 0.0F, 0.0F); - this.bud_front = new ModelRenderer(this, 19, 6); - this.bud_front.setRotationPoint(0.0F, -1.0F, -5.0F); - this.bud_front.addBox(-5.0F, -9.0F, -1.0F, 10, 9, 1, 0.0F); - this.petal_back_left = new ModelRenderer(this, 6, 37); - this.petal_back_left.setRotationPoint(2.0F, 0.5F, 2.0F); - this.petal_back_left.addBox(-3.0F, -8.0F, 0.0F, 6, 8, 0, 0.0F); - this.setRotateAngle(this.petal_back_left, 1.3962634015954636F, -2.356194490192345F, 0.0F); - - this.petal_left = new ModelRenderer(this, 6, 37); - this.petal_left.setRotationPoint(2.0F, 1.5F, 0.0F); - this.petal_left.addBox(-3.0F, -8.0F, 0.0F, 6, 8, 0, 0.0F); - this.setRotateAngle(this.petal_left, 1.3962634015954636F, -1.5707963267948966F, 0.0F); - this.bud_base = new ModelRenderer(this, 10, 25); - this.bud_base.setRotationPoint(0.0F, 1.0F, 0.0F); - this.bud_base.addBox(-5.0F, -1.0F, -5.0F, 10, 2, 10, 0.0F); - - this.bud_back_end = new ModelRenderer(this, 20, 0); - this.bud_back_end.setRotationPoint(0.0F, -9.0F, -0.5F); - this.bud_back_end.addBox(-5.0F, -6.0F, 0.0F, 10, 6, 0, 0.0F); - this.setRotateAngle(this.bud_back_end, -0.6981317007977318F, 0.0F, 0.0F); - - this.petal_right = new ModelRenderer(this, 6, 37); - this.petal_right.setRotationPoint(-2.0F, 1.5F, 0.0F); - this.petal_right.addBox(-3.0F, -8.0F, 0.0F, 6, 8, 0, 0.0F); - this.setRotateAngle(this.petal_right, 1.3962634015954636F, 1.5707963267948966F, 0.0F); - this.petal_back = new ModelRenderer(this, 6, 37); - this.petal_back.setRotationPoint(0.0F, 1.5F, 2.0F); - this.petal_back.addBox(-3.0F, -8.0F, 0.0F, 6, 8, 0, 0.0F); - this.setRotateAngle(this.petal_back, 1.3962634015954636F, 3.141592653589793F, 0.0F); - - this.petal_front = new ModelRenderer(this, 6, 37); - this.petal_front.setRotationPoint(0.0F, 1.5F, -2.0F); - this.petal_front.addBox(-3.0F, -8.0F, 0.0F, 6, 8, 0, 0.0F); - this.setRotateAngle(this.petal_front, 1.3962634015954636F, 0.0F, 0.0F); - this.petal_base.addChild(this.petal_front_left); - this.bud_right.addChild(this.bud_right_end); - this.bud_base.addChild(this.bud_back); - this.petal_base.addChild(this.petal_front_right); - this.bud_base.addChild(this.bud_left); - this.bud_base.addChild(this.bud_right); - this.petal_base.addChild(this.petal_back_right); - this.bud_left.addChild(this.bud_left_end); - this.stem.addChild(this.petal_base); - this.bud_front.addChild(this.bud_front_end); - this.bud_base.addChild(this.bud_front); - this.petal_base.addChild(this.petal_back_left); - this.petal_base.addChild(this.petal_left); - this.stem.addChild(this.bud_base); - this.bud_back.addChild(this.bud_back_end); - this.petal_base.addChild(this.petal_right); - this.petal_base.addChild(this.petal_back); - this.petal_base.addChild(this.petal_front); - } - - @Override - public void setRotationAngles(final float f, final float f1, final float f2, final float f3, final float f4, final float f5, final Entity entity) - { - super.setRotationAngles(f, f1, f2, f3, f4, f5, entity); - - final float petalAngle = this.sinage; - final float budAngle = (this.sinage * 0.3F) + 0.1F; - - this.animatePetal(this.petal_left, 1.3962634015954636F, -1.5707963267948966F, petalAngle); - this.animatePetal(this.petal_right, 1.3962634015954636F, 1.5707963267948966F, petalAngle); - this.animatePetal(this.petal_back, 1.3962634015954636F, 3.141592653589793F, petalAngle); - this.animatePetal(this.petal_front, 1.3962634015954636F, 0.0F, petalAngle); - - this.animatePetal(this.petal_back_left, 1.3962634015954636F, -2.356194490192345F, petalAngle); - this.animatePetal(this.petal_back_right, 1.3962634015954636F, 2.356194490192345F, petalAngle); - this.animatePetal(this.petal_front_left, 1.3962634015954636F, 0.7853981633974483F, petalAngle); - this.animatePetal(this.petal_front_right, 1.3962634015954636F, 0.7853981633974483F, petalAngle); - - this.animatePetal(this.bud_front, 0.0F, 0.0F, budAngle); - this.animatePetal(this.bud_back, 0.0F, 3.141592653589793F, budAngle); - this.animatePetal(this.bud_left, 0.0F, -1.5707963267948966F, budAngle); - this.animatePetal(this.bud_right, 0.0F, 1.5707963267948966F, budAngle); - - this.stem.rotationPointY = (this.sinage2 * 0.5F); - } - - @Override - public void render(final Entity entity, final float f, final float f1, final float f2, final float f3, final float f4, final float f5) - { - this.setRotationAngles(f, f1, f2, f3, f4, f5, entity); - - GL11.glTranslatef(0.0F, 1.0F, 0.0F); - - this.stem.render(f5); - } - - private void animatePetal(final ModelRenderer model, final float startAngleX, final float startAngleY, final float angleX) - { - model.rotateAngleX = startAngleX; - model.rotateAngleX += angleX; - model.rotateAngleY = startAngleY; - model.rotateAngleY += this.pie; - } - -} diff --git a/src/main/java/com/gildedgames/aether/client/models/entities/living/ModelCarrionSproutLodHigh.java b/src/main/java/com/gildedgames/aether/client/models/entities/living/ModelCarrionSproutLodHigh.java deleted file mode 100644 index 37aa2a575d..0000000000 --- a/src/main/java/com/gildedgames/aether/client/models/entities/living/ModelCarrionSproutLodHigh.java +++ /dev/null @@ -1,75 +0,0 @@ -package com.gildedgames.aether.client.models.entities.living; - -import net.minecraft.client.model.ModelRenderer; - -public class ModelCarrionSproutLodHigh extends ModelCarrionSproutBase -{ - - protected ModelRenderer bud_base_teeth_1; - - protected ModelRenderer bud_base_teeth_2; - - protected ModelRenderer bud_front_teeth_1; - - protected ModelRenderer bud_front_teeth_2; - - protected ModelRenderer bud_back_teeth_2; - - protected ModelRenderer bud_back_teeth_1; - - protected ModelRenderer bud_left_teeth_2; - - protected ModelRenderer bud_left_teeth_1; - - protected ModelRenderer bud_right_teeth_2; - - protected ModelRenderer bud_right_teeth_1; - - public ModelCarrionSproutLodHigh() - { - this.bud_left_teeth_2 = new ModelRenderer(this, 15, 6); - this.bud_left_teeth_2.setRotationPoint(0.0F, 0.0F, 0.0F); - this.bud_left_teeth_2.addBox(-3.0F, -8.0F, 0.0F, 0, 8, 2, 0.0F); - this.bud_right_teeth_2 = new ModelRenderer(this, 15, 6); - this.bud_right_teeth_2.setRotationPoint(0.0F, 0.0F, 0.0F); - this.bud_right_teeth_2.addBox(-3.0F, -8.0F, 0.0F, 0, 8, 2, 0.0F); - this.bud_base_teeth_2 = new ModelRenderer(this, 20, 6); - this.bud_base_teeth_2.setRotationPoint(0.0F, 0.0F, 0.0F); - this.bud_base_teeth_2.addBox(0.0F, -3.0F, -5.0F, 0, 2, 10, 0.0F); - this.setRotateAngle(this.bud_base_teeth_2, 0.0F, -0.7853981633974483F, 0.0F); - this.bud_back_teeth_1 = new ModelRenderer(this, 15, 6); - this.bud_back_teeth_1.setRotationPoint(0.0F, 0.0F, 0.0F); - this.bud_back_teeth_1.addBox(3.0F, -8.0F, 0.0F, 0, 8, 2, 0.0F); - this.bud_front_teeth_1 = new ModelRenderer(this, 15, 6); - this.bud_front_teeth_1.setRotationPoint(0.0F, 0.0F, 0.0F); - this.bud_front_teeth_1.addBox(3.0F, -8.0F, 0.0F, 0, 8, 2, 0.0F); - this.bud_left_teeth_1 = new ModelRenderer(this, 15, 6); - this.bud_left_teeth_1.setRotationPoint(0.0F, 0.0F, 0.0F); - this.bud_left_teeth_1.addBox(3.0F, -8.0F, 0.0F, 0, 8, 2, 0.0F); - this.bud_right_teeth_1 = new ModelRenderer(this, 15, 6); - this.bud_right_teeth_1.setRotationPoint(0.0F, 0.0F, 0.0F); - this.bud_right_teeth_1.addBox(3.0F, -8.0F, 0.0F, 0, 8, 2, 0.0F); - this.bud_back_teeth_2 = new ModelRenderer(this, 15, 6); - this.bud_back_teeth_2.setRotationPoint(0.0F, 0.0F, 0.0F); - this.bud_back_teeth_2.addBox(-3.0F, -8.0F, 0.0F, 0, 8, 2, 0.0F); - this.bud_base_teeth_1 = new ModelRenderer(this, 20, 6); - this.bud_base_teeth_1.setRotationPoint(0.0F, 0.0F, 0.0F); - this.bud_base_teeth_1.addBox(0.0F, -3.0F, -5.0F, 0, 2, 10, 0.0F); - this.setRotateAngle(this.bud_base_teeth_1, 0.0F, 0.7853981633974483F, 0.0F); - this.bud_front_teeth_2 = new ModelRenderer(this, 15, 6); - this.bud_front_teeth_2.setRotationPoint(0.0F, 0.0F, 0.0F); - this.bud_front_teeth_2.addBox(-3.0F, -8.0F, 0.0F, 0, 8, 2, 0.0F); - - this.bud_left.addChild(this.bud_left_teeth_2); - this.bud_right.addChild(this.bud_right_teeth_2); - this.bud_base.addChild(this.bud_base_teeth_2); - this.bud_right.addChild(this.bud_right_teeth_1); - this.bud_back.addChild(this.bud_back_teeth_2); - this.bud_base.addChild(this.bud_base_teeth_1); - this.bud_front.addChild(this.bud_front_teeth_2); - this.bud_left.addChild(this.bud_left_teeth_1); - this.bud_back.addChild(this.bud_back_teeth_1); - this.bud_front.addChild(this.bud_front_teeth_1); - } - -} diff --git a/src/main/java/com/gildedgames/aether/client/models/entities/living/ModelCarrionSproutLodLow.java b/src/main/java/com/gildedgames/aether/client/models/entities/living/ModelCarrionSproutLodLow.java deleted file mode 100644 index 8101a82f2d..0000000000 --- a/src/main/java/com/gildedgames/aether/client/models/entities/living/ModelCarrionSproutLodLow.java +++ /dev/null @@ -1,5 +0,0 @@ -package com.gildedgames.aether.client.models.entities.living; - -public class ModelCarrionSproutLodLow extends ModelCarrionSproutBase -{ -} diff --git a/src/main/java/com/gildedgames/aether/client/models/entities/living/ModelCockatrice.java b/src/main/java/com/gildedgames/aether/client/models/entities/living/ModelCockatrice.java deleted file mode 100644 index 73e7fbbb88..0000000000 --- a/src/main/java/com/gildedgames/aether/client/models/entities/living/ModelCockatrice.java +++ /dev/null @@ -1,388 +0,0 @@ -package com.gildedgames.aether.client.models.entities.living; - -import com.gildedgames.aether.client.renderer.entities.living.layers.ILayeredModel; -import net.minecraft.client.model.ModelBase; -import net.minecraft.client.model.ModelRenderer; -import net.minecraft.entity.Entity; -import net.minecraft.util.math.MathHelper; - -public class ModelCockatrice extends ModelBase implements ILayeredModel -{ - - public ModelRenderer body_base; - public ModelRenderer thigh_left; - public ModelRenderer thigh_right; - public ModelRenderer body_top; - public ModelRenderer body_back; - public ModelRenderer dart_left_bottom; - public ModelRenderer dart_left_middle; - public ModelRenderer dart_left_top; - public ModelRenderer dart_right_top; - public ModelRenderer dart_right_middle; - public ModelRenderer dart_right_bottom; - public ModelRenderer leg_left; - public ModelRenderer ankle_left; - public ModelRenderer foot_left; - public ModelRenderer toe_left_1; - public ModelRenderer toe_left_2; - public ModelRenderer toe_left_3; - public ModelRenderer toe_left_4; - public ModelRenderer leg_right; - public ModelRenderer ankle_right; - public ModelRenderer foot_right; - public ModelRenderer toe_right_1; - public ModelRenderer toe_right_2; - public ModelRenderer toe_right_3; - public ModelRenderer toe_right_4; - public ModelRenderer shoulder_left; - public ModelRenderer shoulder_right; - public ModelRenderer neck; - public ModelRenderer arm_left; - public ModelRenderer wing_left; - public ModelRenderer wing_left_feathers; - public ModelRenderer thumb_left; - public ModelRenderer claw_left_1; - public ModelRenderer claw_left_2; - public ModelRenderer arm_right; - public ModelRenderer wing_right; - public ModelRenderer wing_right_feathers; - public ModelRenderer thumb_right; - public ModelRenderer claw_right_1; - public ModelRenderer claw_right_2; - public ModelRenderer head; - public ModelRenderer beak_bottom; - public ModelRenderer beak_top; - public ModelRenderer crest_left; - public ModelRenderer crest_right; - public ModelRenderer tongue; - public ModelRenderer feather_right_1; - public ModelRenderer feather_left_1; - public ModelRenderer feather_right_2; - public ModelRenderer feather_left_2; - - public ModelCockatrice() { - this.textureWidth = 64; - this.textureHeight = 128; - this.toe_left_2 = new ModelRenderer(this, 4, 124); - this.toe_left_2.setRotationPoint(0.0F, -1.0F, -2.0F); - this.toe_left_2.addBox(-0.5F, -0.0F, -0.5F, 1, 3, 1, 0.0F); - this.setRotateAngle(toe_left_2, -0.6981317007977318F, 0.0F, 0.0F); - this.dart_right_bottom = new ModelRenderer(this, 10, 119); - this.dart_right_bottom.mirror = true; - this.dart_right_bottom.setRotationPoint(0.0F, 0.0F, 0.0F); - this.dart_right_bottom.addBox(-6.5F, -2.0F, -6.5F, 1, 1, 8, 0.0F); - this.crest_left = new ModelRenderer(this, 22, 24); - this.crest_left.setRotationPoint(2.0F, -2.0F, 0.0F); - this.crest_left.addBox(-1.0F, -13.0F, 0.0F, 8, 15, 1, 0.0F); - this.setRotateAngle(crest_left, 0.0F, 0.0F, 0.08726646259971647F); - this.beak_bottom = new ModelRenderer(this, 0, 10); - this.beak_bottom.setRotationPoint(0.0F, -1.7F, -4.0F); - this.beak_bottom.addBox(-3.5F, -1.0F, -7.0F, 7, 3, 8, 0.0F); - this.crest_right = new ModelRenderer(this, 22, 24); - this.crest_right.mirror = true; - this.crest_right.setRotationPoint(-2.0F, -2.0F, 0.0F); - this.crest_right.addBox(-7.0F, -13.0F, 0.0F, 8, 15, 1, 0.0F); - this.setRotateAngle(crest_right, 0.0F, 0.0F, -0.08726646259971647F); - this.wing_right = new ModelRenderer(this, 28, 46); - this.wing_right.mirror = true; - this.wing_right.setRotationPoint(0.0F, 5.5F, 0.5F); - this.wing_right.addBox(-1.5F, -0.5F, -13.5F, 3, 4, 15, 0.0F); - this.setRotateAngle(wing_right, 0.5235987755982988F, 0.0F, 0.0F); - this.foot_left = new ModelRenderer(this, 0, 118); - this.foot_left.setRotationPoint(0.0F, 3.6F, 0.0F); - this.foot_left.addBox(-2.0F, 0.0F, -3.0F, 4, 1, 5, 0.0F); - this.setRotateAngle(foot_left, 0.2617993877991494F, 0.22689280275926282F, 0.22689280275926282F); - this.shoulder_right = new ModelRenderer(this, 27, 65); - this.shoulder_right.mirror = true; - this.shoulder_right.setRotationPoint(-5.0F, -3.0F, 3.0F); - this.shoulder_right.addBox(-3.0F, -2.0F, -2.0F, 4, 6, 4, 0.0F); - this.setRotateAngle(shoulder_right, 0.17453292519943295F, 0.0F, 0.6981317007977318F); - this.beak_top = new ModelRenderer(this, 0, 0); - this.beak_top.setRotationPoint(0.0F, -2.7F, -4.0F); - this.beak_top.addBox(-3.5F, -1.0F, -7.0F, 7, 2, 8, 0.0F); - this.body_base = new ModelRenderer(this, 0, 80); - this.body_base.setRotationPoint(0.0F, 9.0F, 2.0F); - this.body_base.addBox(-6.0F, -8.0F, -4.0F, 12, 14, 8, 0.0F); - this.setRotateAngle(body_base, 0.3490658503988659F, 0.0F, 0.0F); - this.wing_left = new ModelRenderer(this, 28, 46); - this.wing_left.setRotationPoint(0.0F, 5.5F, 0.5F); - this.wing_left.addBox(-1.5F, -0.5F, -13.5F, 3, 4, 15, 0.0F); - this.setRotateAngle(wing_left, 0.5235987755982988F, 0.0F, 0.0F); - this.thumb_left = new ModelRenderer(this, 53, 70); - this.thumb_left.setRotationPoint(-1.0F, 1.5F, -10.0F); - this.thumb_left.addBox(-2.5F, -0.5F, -0.5F, 3, 1, 1, 0.0F); - this.setRotateAngle(thumb_left, 0.0F, -1.0471975511965976F, 0.0F); - this.claw_left_2 = new ModelRenderer(this, 53, 68); - this.claw_left_2.setRotationPoint(0.5F, 2.5F, -13.0F); - this.claw_left_2.addBox(-2.5F, -0.5F, -0.5F, 3, 1, 1, 0.0F); - this.setRotateAngle(claw_left_2, 0.0F, -0.2617993877991494F, 0.0F); - this.feather_left_1 = new ModelRenderer(this, 36, 0); - this.feather_left_1.setRotationPoint(0.0F, 5.0F, 4.0F); - this.feather_left_1.addBox(0.0F, -15.0F, 0.0F, 4, 15, 1, 0.0F); - this.setRotateAngle(feather_left_1, -0.8726646259971648F, 0.08726646259971647F, 0.0F); - this.shoulder_left = new ModelRenderer(this, 27, 65); - this.shoulder_left.setRotationPoint(5.0F, -3.0F, 3.0F); - this.shoulder_left.addBox(-1.0F, -2.0F, -2.0F, 4, 6, 4, 0.0F); - this.setRotateAngle(shoulder_left, 0.17453292519943295F, 0.0F, -0.6981317007977318F); - this.ankle_right = new ModelRenderer(this, 0, 104); - this.ankle_right.mirror = true; - this.ankle_right.setRotationPoint(0.0F, 5.0F, 0.0F); - this.ankle_right.addBox(-1.5F, -2.0F, -0.5F, 3, 6, 2, 0.0F); - this.setRotateAngle(ankle_right, -1.3089969389957472F, 0.0F, 0.0F); - this.claw_left_1 = new ModelRenderer(this, 53, 68); - this.claw_left_1.setRotationPoint(0.5F, 0.5F, -13.0F); - this.claw_left_1.addBox(-2.5F, -0.5F, -0.5F, 3, 1, 1, 0.0F); - this.setRotateAngle(claw_left_1, 0.0F, -0.2617993877991494F, 0.0F); - this.claw_right_1 = new ModelRenderer(this, 53, 68); - this.claw_right_1.mirror = true; - this.claw_right_1.setRotationPoint(-0.5F, 0.5F, -13.0F); - this.claw_right_1.addBox(-0.5F, -0.5F, -0.5F, 3, 1, 1, 0.0F); - this.setRotateAngle(claw_right_1, 0.0F, 0.2617993877991494F, 0.0F); - this.dart_left_middle = new ModelRenderer(this, 28, 119); - this.dart_left_middle.setRotationPoint(0.0F, 0.0F, 0.0F); - this.dart_left_middle.addBox(5.5F, -4.0F, -7.5F, 1, 1, 8, 0.0F); - this.toe_left_1 = new ModelRenderer(this, 4, 124); - this.toe_left_1.setRotationPoint(-1.5F, -1.0F, -2.0F); - this.toe_left_1.addBox(-0.5F, -0.0F, -0.5F, 1, 3, 1, 0.0F); - this.setRotateAngle(toe_left_1, -0.6981317007977318F, 0.3490658503988659F, 0.0F); - this.thigh_left = new ModelRenderer(this, 0, 102); - this.thigh_left.setRotationPoint(4.0F, 2.5F, 0.0F); - this.thigh_left.addBox(-2.5F, -3.0F, -9.0F, 5, 6, 10, 0.0F); - this.setRotateAngle(thigh_left, 0.17453292519943295F, -0.5235987755982988F, 0.0F); - this.body_back = new ModelRenderer(this, 38, 82); - this.body_back.setRotationPoint(0.0F, 0.0F, 0.0F); - this.body_back.addBox(-6.0F, 1.0F, 4.0F, 12, 5, 1, 0.0F); - this.arm_left = new ModelRenderer(this, 43, 66); - this.arm_left.setRotationPoint(1.0F, 4.0F, 0.0F); - this.arm_left.addBox(-1.0F, 0.0F, -1.5F, 2, 6, 3, 0.0F); - this.wing_left_feathers = new ModelRenderer(this, 34, 90); - this.wing_left_feathers.setRotationPoint(0.0F, 0.0F, 0.0F); - this.wing_left_feathers.addBox(0.5F, 3.5F, -13.5F, 1, 8, 14, 0.0F); - this.toe_right_1 = new ModelRenderer(this, 4, 124); - this.toe_right_1.mirror = true; - this.toe_right_1.setRotationPoint(-1.5F, -1.0F, -2.0F); - this.toe_right_1.addBox(-0.5F, -0.0F, -0.5F, 1, 3, 1, 0.0F); - this.setRotateAngle(toe_right_1, -0.6981317007977318F, 0.3490658503988659F, 0.0F); - this.arm_right = new ModelRenderer(this, 43, 66); - this.arm_right.mirror = true; - this.arm_right.setRotationPoint(-1.0F, 4.0F, 0.0F); - this.arm_right.addBox(-1.0F, 0.0F, -1.5F, 2, 6, 3, 0.0F); - this.toe_left_3 = new ModelRenderer(this, 4, 124); - this.toe_left_3.setRotationPoint(1.5F, -1.0F, -2.0F); - this.toe_left_3.addBox(-0.5F, 0.0F, -0.5F, 1, 3, 1, 0.0F); - this.setRotateAngle(toe_left_3, -0.6981317007977318F, -0.3490658503988659F, 0.0F); - this.toe_right_2 = new ModelRenderer(this, 4, 124); - this.toe_right_2.mirror = true; - this.toe_right_2.setRotationPoint(-0.0F, -1.0F, -2.0F); - this.toe_right_2.addBox(-0.5F, -0.0F, -0.5F, 1, 3, 1, 0.0F); - this.setRotateAngle(toe_right_2, -0.6981317007977318F, 0.0F, 0.0F); - this.toe_right_4 = new ModelRenderer(this, 0, 124); - this.toe_right_4.mirror = true; - this.toe_right_4.setRotationPoint(0.0F, -1.0F, 1.5F); - this.toe_right_4.addBox(-0.5F, -0.0F, -0.5F, 1, 3, 1, 0.0F); - this.setRotateAngle(toe_right_4, 0.6981317007977318F, 0.0F, 0.0F); - this.ankle_left = new ModelRenderer(this, 0, 104); - this.ankle_left.setRotationPoint(0.0F, 5.0F, 0.0F); - this.ankle_left.addBox(-1.5F, -2.0F, -0.5F, 3, 6, 2, 0.0F); - this.setRotateAngle(ankle_left, -1.3089969389957472F, 0.0F, 0.0F); - this.dart_right_top = new ModelRenderer(this, 46, 119); - this.dart_right_top.mirror = true; - this.dart_right_top.setRotationPoint(0.0F, 0.0F, 0.0F); - this.dart_right_top.addBox(-6.5F, -6.0F, -8.0F, 1, 1, 8, 0.0F); - this.thumb_right = new ModelRenderer(this, 53, 70); - this.thumb_right.setRotationPoint(1.0F, 1.5F, -10.0F); - this.thumb_right.addBox(-2.5F, -0.5F, -0.5F, 3, 1, 1, 0.0F); - this.setRotateAngle(thumb_right, 0.0F, -2.0943951023931953F, 0.0F); - this.wing_right_feathers = new ModelRenderer(this, 34, 90); - this.wing_right_feathers.mirror = true; - this.wing_right_feathers.setRotationPoint(-1.0F, 0.0F, 0.0F); - this.wing_right_feathers.addBox(-0.5F, 3.5F, -13.5F, 1, 8, 14, 0.0F); - this.tongue = new ModelRenderer(this, 14, 10); - this.tongue.setRotationPoint(0.0F, 0.0F, 0.0F); - this.tongue.addBox(-3.5F, 1.0F, -7.0F, 7, 0, 8, 0.0F); - this.dart_left_bottom = new ModelRenderer(this, 10, 119); - this.dart_left_bottom.setRotationPoint(0.0F, 0.0F, 0.0F); - this.dart_left_bottom.addBox(5.5F, -2.0F, -6.5F, 1, 1, 8, 0.0F); - this.toe_right_3 = new ModelRenderer(this, 4, 124); - this.toe_right_3.mirror = true; - this.toe_right_3.setRotationPoint(1.5F, -1.0F, -2.0F); - this.toe_right_3.addBox(-0.5F, -0.0F, -0.5F, 1, 3, 1, 0.0F); - this.setRotateAngle(toe_right_3, -0.6981317007977318F, -0.3490658503988659F, 0.0F); - this.leg_left = new ModelRenderer(this, 20, 104); - this.leg_left.setRotationPoint(0.0F, 2.5F, -7.0F); - this.leg_left.addBox(-1.0F, -1.0F, -1.0F, 2, 6, 2, 0.0F); - this.setRotateAngle(leg_left, 0.5235987755982988F, 0.0F, 0.0F); - this.neck = new ModelRenderer(this, 0, 45); - this.neck.setRotationPoint(0.0F, -5.0F, 1.0F); - this.neck.addBox(-2.0F, -9.0F, 0.0F, 4, 10, 3, 0.0F); - this.setRotateAngle(neck, -0.2617993877991494F, 0.0F, 0.0F); - this.feather_right_1 = new ModelRenderer(this, 36, 0); - this.feather_right_1.mirror = true; - this.feather_right_1.setRotationPoint(0.0F, 5.0F, 4.0F); - this.feather_right_1.addBox(-4.0F, -15.0F, 0.0F, 4, 15, 1, 0.0F); - this.setRotateAngle(feather_right_1, -0.8726646259971648F, -0.08726646259971647F, 0.0F); - this.body_top = new ModelRenderer(this, 0, 68); - this.body_top.setRotationPoint(0.0F, -8.0F, -4.0F); - this.body_top.addBox(-5.0F, -5.0F, 0.0F, 10, 5, 7, 0.0F); - this.setRotateAngle(body_top, -0.2617993877991494F, 0.0F, 0.0F); - this.claw_right_2 = new ModelRenderer(this, 53, 68); - this.claw_right_2.mirror = true; - this.claw_right_2.setRotationPoint(-0.5F, 2.5F, -13.0F); - this.claw_right_2.addBox(-0.5F, -0.5F, -0.5F, 3, 1, 1, 0.0F); - this.setRotateAngle(claw_right_2, 0.0F, 0.2617993877991494F, 0.0F); - this.leg_right = new ModelRenderer(this, 20, 104); - this.leg_right.mirror = true; - this.leg_right.setRotationPoint(0.0F, 2.5F, -7.0F); - this.leg_right.addBox(-1.0F, -1.0F, -1.0F, 2, 6, 2, 0.0F); - this.setRotateAngle(leg_right, 0.5235987755982988F, 0.0F, 0.0F); - this.thigh_right = new ModelRenderer(this, 0, 102); - this.thigh_right.mirror = true; - this.thigh_right.setRotationPoint(-4.0F, 2.5F, 0.0F); - this.thigh_right.addBox(-2.5F, -3.0F, -9.0F, 5, 6, 10, 0.0F); - this.setRotateAngle(thigh_right, 0.17453292519943295F, 0.5235987755982988F, 0.0F); - this.toe_left_4 = new ModelRenderer(this, 0, 124); - this.toe_left_4.setRotationPoint(0.0F, -1.0F, 1.5F); - this.toe_left_4.addBox(-0.5F, -0.0F, -0.5F, 1, 3, 1, 0.0F); - this.setRotateAngle(toe_left_4, 0.6981317007977318F, 0.0F, 0.0F); - this.dart_right_middle = new ModelRenderer(this, 28, 119); - this.dart_right_middle.mirror = true; - this.dart_right_middle.setRotationPoint(0.0F, 0.0F, 0.0F); - this.dart_right_middle.addBox(-6.5F, -4.0F, -7.5F, 1, 1, 8, 0.0F); - this.foot_right = new ModelRenderer(this, 0, 118); - this.foot_right.mirror = true; - this.foot_right.setRotationPoint(0.0F, 3.6F, 0.0F); - this.foot_right.addBox(-2.0F, 0.0F, -3.0F, 4, 1, 5, 0.0F); - this.setRotateAngle(foot_right, 0.2617993877991494F, -0.22689280275926282F, -0.22689280275926282F); - this.head = new ModelRenderer(this, 0, 34); - this.head.setRotationPoint(0.0F, -8.5F, 1.5F); - this.head.addBox(-4.0F, -4.5F, -4.0F, 8, 5, 6, 0.0F); - this.setRotateAngle(head, 0.17453292519943295F, 0.0F, 0.0F); - this.feather_right_2 = new ModelRenderer(this, 46, 0); - this.feather_right_2.mirror = true; - this.feather_right_2.setRotationPoint(-2.5F, 5.5F, 4.0F); - this.feather_right_2.addBox(-4.0F, -12.0F, 0.0F, 4, 12, 1, 0.0F); - this.setRotateAngle(feather_right_2, -0.6981317007977318F, -0.5235987755982988F, 0.0F); - this.dart_left_top = new ModelRenderer(this, 46, 119); - this.dart_left_top.setRotationPoint(0.0F, 0.0F, 0.0F); - this.dart_left_top.addBox(5.5F, -6.0F, -8.0F, 1, 1, 8, 0.0F); - this.feather_left_2 = new ModelRenderer(this, 46, 0); - this.feather_left_2.setRotationPoint(2.5F, 5.5F, 4.0F); - this.feather_left_2.addBox(0.0F, -12.0F, 0.0F, 4, 12, 1, 0.0F); - this.setRotateAngle(feather_left_2, -0.6981317007977318F, 0.5235987755982988F, 0.0F); - this.foot_left.addChild(this.toe_left_2); - this.body_base.addChild(this.dart_right_bottom); - this.head.addChild(this.crest_left); - this.head.addChild(this.beak_bottom); - this.head.addChild(this.crest_right); - this.arm_right.addChild(this.wing_right); - this.ankle_left.addChild(this.foot_left); - this.body_top.addChild(this.shoulder_right); - this.head.addChild(this.beak_top); - this.arm_left.addChild(this.wing_left); - this.wing_left.addChild(this.thumb_left); - this.wing_left.addChild(this.claw_left_2); - this.body_back.addChild(this.feather_left_1); - this.body_top.addChild(this.shoulder_left); - this.leg_right.addChild(this.ankle_right); - this.wing_left.addChild(this.claw_left_1); - this.wing_right.addChild(this.claw_right_1); - this.body_base.addChild(this.dart_left_middle); - this.foot_left.addChild(this.toe_left_1); - this.body_base.addChild(this.thigh_left); - this.body_base.addChild(this.body_back); - this.shoulder_left.addChild(this.arm_left); - this.wing_left.addChild(this.wing_left_feathers); - this.foot_right.addChild(this.toe_right_1); - this.shoulder_right.addChild(this.arm_right); - this.foot_left.addChild(this.toe_left_3); - this.foot_right.addChild(this.toe_right_2); - this.foot_right.addChild(this.toe_right_4); - this.leg_left.addChild(this.ankle_left); - this.body_base.addChild(this.dart_right_top); - this.wing_right.addChild(this.thumb_right); - this.wing_right.addChild(this.wing_right_feathers); - this.beak_bottom.addChild(this.tongue); - this.body_base.addChild(this.dart_left_bottom); - this.foot_right.addChild(this.toe_right_3); - this.thigh_left.addChild(this.leg_left); - this.body_top.addChild(this.neck); - this.body_back.addChild(this.feather_right_1); - this.body_base.addChild(this.body_top); - this.wing_right.addChild(this.claw_right_2); - this.thigh_right.addChild(this.leg_right); - this.body_base.addChild(this.thigh_right); - this.foot_left.addChild(this.toe_left_4); - this.body_base.addChild(this.dart_right_middle); - this.ankle_right.addChild(this.foot_right); - this.neck.addChild(this.head); - this.body_back.addChild(this.feather_right_2); - this.body_base.addChild(this.dart_left_top); - this.body_back.addChild(this.feather_left_2); - } - - @Override - public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) { - this.body_base.render(f5); - } - - @Override - public void setRotationAngles(float limbSwing, float limbSwingAmount, float ageInTicks, float headYaw, float headPitch, float scaleFactor, Entity entity) { - super.setRotationAngles(limbSwing, limbSwingAmount, ageInTicks, headYaw, headPitch, scaleFactor, entity); - - float pitch = headPitch * 0.017453292F; - float yaw = headYaw * 0.017453292F; - - this.head.rotateAngleX = 0.17453292519943295F + pitch; - this.head.rotateAngleY = yaw; - - float leftSwingX = MathHelper.cos(limbSwing * 1.2F) * 0.75F * limbSwingAmount; - float rightSwingX = MathHelper.cos(limbSwing * 1.2F + (float) Math.PI) * 0.75F * limbSwingAmount; - - this.thigh_left.offsetY = leftSwingX * 0.05f; - this.thigh_right.offsetY = rightSwingX * 0.05f; - - // The left and right are intentionally flipped to make it look like the darts are reacting to legs moving. - - this.thigh_left.rotateAngleX = (leftSwingX * 1.2f) + 0.174533f; - this.thigh_right.rotateAngleX = (rightSwingX * 1.2f) + 0.174533f; - - this.beak_bottom.rotateAngleX = Math.abs(MathHelper.cos( ageInTicks * 0.05662F)) * 0.1f; - - } - - /** - * This is a helper function from Tabula to set the rotation of model parts - */ - public void setRotateAngle(ModelRenderer modelRenderer, float x, float y, float z) { - modelRenderer.rotateAngleX = x; - modelRenderer.rotateAngleY = y; - modelRenderer.rotateAngleZ = z; - } - - @Override - public void preLayerRender() { - this.body_back.isHidden = true; - this.shoulder_left.isHidden = true; - this.shoulder_right.isHidden = true; - this.thigh_right.isHidden = true; - this.thigh_left.isHidden = true; - this.crest_right.isHidden = true; - this.crest_left.isHidden = true; - this.beak_bottom.isHidden = true; - this.beak_top.isHidden = true; - } - - @Override - public void postLayerRender() { - this.shoulder_left.isHidden = false; - this.shoulder_right.isHidden = false; - this.body_back.isHidden = false; - this.body_top.isHidden = false; - this.thigh_right.isHidden = false; - this.thigh_left.isHidden = false; - this.crest_right.isHidden = false; - this.crest_left.isHidden = false; - this.beak_bottom.isHidden = false; - this.beak_top.isHidden = false; - } -} diff --git a/src/main/java/com/gildedgames/aether/client/models/entities/living/ModelEdisonSitting.java b/src/main/java/com/gildedgames/aether/client/models/entities/living/ModelEdisonSitting.java deleted file mode 100644 index 3a411568dd..0000000000 --- a/src/main/java/com/gildedgames/aether/client/models/entities/living/ModelEdisonSitting.java +++ /dev/null @@ -1,153 +0,0 @@ -package com.gildedgames.aether.client.models.entities.living; - -import net.minecraft.client.model.ModelBase; -import net.minecraft.client.model.ModelRenderer; -import net.minecraft.entity.Entity; - -/** - * Edison Sitting 1.tcn - TechneToTabulaImporter - * Created using Tabula 5.1.0 - */ -public class ModelEdisonSitting extends ModelBase { - public ModelRenderer waist; - public ModelRenderer backpack; - public ModelRenderer book; - public ModelRenderer abdomen; - public ModelRenderer legleft1; - public ModelRenderer legright1; - public ModelRenderer chest; - public ModelRenderer head; - public ModelRenderer armleft1; - public ModelRenderer armright1; - public ModelRenderer earleft; - public ModelRenderer earright; - public ModelRenderer hatlayer; - public ModelRenderer armleft1_1; - public ModelRenderer elbowleft; - public ModelRenderer armright1_1; - public ModelRenderer elbowright; - public ModelRenderer legleft2; - public ModelRenderer legright2; - public ModelRenderer bedroll; - - public ModelEdisonSitting() { - this.textureWidth = 64; - this.textureHeight = 64; - this.waist = new ModelRenderer(this, 0, 37); - this.waist.setRotationPoint(0.0F, 5.0F, 2.0F); - this.waist.addBox(-4.5F, 10.0F, -2.5F, 9, 4, 5, 0.0F); - this.hatlayer = new ModelRenderer(this, 32, 0); - this.hatlayer.setRotationPoint(0.0F, 0.0F, 0.0F); - this.hatlayer.addBox(-4.0F, -8.0F, -4.0F, 8, 8, 8, 0.5F); - this.armright1_1 = new ModelRenderer(this, 28, 26); - this.armright1_1.mirror = true; - this.armright1_1.setRotationPoint(1.0F, 4.0F, -1.0F); - this.armright1_1.addBox(-4.01F, 0.0F, -1.0F, 4, 6, 4, 0.0F); - this.setRotateAngle(armright1_1, -0.8196066167365371F, 0.0F, 0.0F); - this.elbowright = new ModelRenderer(this, 44, 24); - this.elbowright.mirror = true; - this.elbowright.setRotationPoint(0.0F, 0.0F, 0.0F); - this.elbowright.addBox(-2.5F, 3.8F, -1.2F, 3, 3, 3, 0.0F); - this.book = new ModelRenderer(this, 52, 26); - this.book.setRotationPoint(-6.5F, 19.0F, 3.5F); - this.book.addBox(-2.0F, -0.5F, -2.0F, 2, 6, 4, 0.0F); - this.setRotateAngle(book, -1.2747884856566583F, -0.045553093477052F, 1.4114477660878142F); - this.backpack = new ModelRenderer(this, 33, 46); - this.backpack.setRotationPoint(-2.5F, 24.0F, 2.0F); - this.backpack.addBox(-5.0F, -1.0F, 0.0F, 10, 12, 5, 0.0F); - this.setRotateAngle(backpack, 1.5707963267948966F, 1.5707963267948966F, 0.0F); - this.abdomen = new ModelRenderer(this, 2, 28); - this.abdomen.setRotationPoint(0.0F, 11.0F, 0.0F); - this.abdomen.addBox(-4.0F, -5.0F, -2.0F, 8, 5, 4, 0.0F); - this.setRotateAngle(abdomen, 0.08726646259971647F, 0.0F, 0.0F); - this.earleft = new ModelRenderer(this, 24, 2); - this.earleft.setRotationPoint(4.0F, -3.0F, -2.0F); - this.earleft.addBox(-1.0F, -2.0F, 0.0F, 1, 3, 3, 0.0F); - this.setRotateAngle(earleft, 0.0F, 0.2617993877991494F, 0.08726646259971647F); - this.armleft1_1 = new ModelRenderer(this, 28, 26); - this.armleft1_1.setRotationPoint(1.0F, 4.0F, -1.0F); - this.armleft1_1.addBox(-1.99F, 0.0F, -1.0F, 4, 6, 4, 0.0F); - this.setRotateAngle(armleft1_1, -1.3089969389957472F, 0.0F, 0.0F); - this.elbowleft = new ModelRenderer(this, 44, 24); - this.elbowleft.setRotationPoint(0.0F, 0.0F, 0.0F); - this.elbowleft.addBox(-0.5F, 3.8F, -1.2F, 3, 3, 3, 0.0F); - this.legright2 = new ModelRenderer(this, 16, 46); - this.legright2.mirror = true; - this.legright2.setRotationPoint(0.0F, 6.0F, -2.0F); - this.legright2.addBox(-1.99F, 0.0F, 0.0F, 4, 6, 4, 0.0F); - this.setRotateAngle(legright2, 0.17453292519943295F, 0.0F, 0.0F); - this.bedroll = new ModelRenderer(this, 32, 36); - this.bedroll.setRotationPoint(0.0F, -1.3F, -1.8F); - this.bedroll.addBox(-5.5F, -4.5F, 1.6F, 11, 5, 5, 0.0F); - this.setRotateAngle(bedroll, 0.08726646259971647F, 0.0F, 0.0F); - this.legleft2 = new ModelRenderer(this, 16, 46); - this.legleft2.setRotationPoint(0.0F, 6.0F, -2.0F); - this.legleft2.addBox(-1.99F, 0.0F, 0.0F, 4, 6, 4, 0.0F); - this.setRotateAngle(legleft2, 0.3490658503988659F, 0.0F, 0.0F); - this.legright1 = new ModelRenderer(this, 0, 46); - this.legright1.mirror = true; - this.legright1.setRotationPoint(-2.4F, 12.0F, 0.0F); - this.legright1.addBox(-2.0F, 0.0F, -2.0F, 4, 6, 4, 0.0F); - this.setRotateAngle(legright1, -1.1838568316277536F, 0.27314402793711257F, 0.0F); - this.chest = new ModelRenderer(this, 0, 16); - this.chest.setRotationPoint(0.0F, -4.0F, 0.0F); - this.chest.addBox(-4.5F, -7.0F, -2.5F, 9, 7, 5, 0.0F); - this.setRotateAngle(chest, 0.2617993877991494F, 0.0F, 0.0F); - this.legleft1 = new ModelRenderer(this, 0, 46); - this.legleft1.setRotationPoint(2.4F, 12.0F, 0.0F); - this.legleft1.addBox(-2.0F, 0.0F, -2.0F, 4, 6, 4, 0.0F); - this.setRotateAngle(legleft1, -1.2217304763960306F, -0.3141592653589793F, 0.0F); - this.armleft1 = new ModelRenderer(this, 28, 16); - this.armleft1.setRotationPoint(5.0F, -5.0F, 0.0F); - this.armleft1.addBox(-1.0F, -2.0F, -2.0F, 4, 6, 4, 0.0F); - this.setRotateAngle(armleft1, 0.0F, 0.5009094953223726F, -0.27314402793711257F); - this.armright1 = new ModelRenderer(this, 28, 16); - this.armright1.mirror = true; - this.armright1.setRotationPoint(-5.0F, -5.0F, 0.0F); - this.armright1.addBox(-3.0F, -2.0F, -2.0F, 4, 6, 4, 0.0F); - this.setRotateAngle(armright1, 0.36425021489121656F, 0.31869712141416456F, 0.045553093477052F); - this.earright = new ModelRenderer(this, 24, 2); - this.earright.mirror = true; - this.earright.setRotationPoint(-4.0F, -3.0F, -2.0F); - this.earright.addBox(0.0F, -2.0F, 0.0F, 1, 3, 3, 0.0F); - this.setRotateAngle(earright, 0.0F, -0.2617993877991494F, -0.08726646259971647F); - this.head = new ModelRenderer(this, 0, 0); - this.head.setRotationPoint(0.0F, -7.0F, 0.0F); - this.head.addBox(-4.0F, -8.0F, -4.0F, 8, 8, 8, 0.0F); - this.setRotateAngle(head, -0.3490658503988659F, -0.0F, 0.0F); - this.head.addChild(this.hatlayer); - this.armright1.addChild(this.armright1_1); - this.armright1.addChild(this.elbowright); - this.waist.addChild(this.abdomen); - this.head.addChild(this.earleft); - this.armleft1.addChild(this.armleft1_1); - this.armleft1.addChild(this.elbowleft); - this.legright1.addChild(this.legright2); - this.backpack.addChild(this.bedroll); - this.legleft1.addChild(this.legleft2); - this.waist.addChild(this.legright1); - this.abdomen.addChild(this.chest); - this.waist.addChild(this.legleft1); - this.chest.addChild(this.armleft1); - this.chest.addChild(this.armright1); - this.head.addChild(this.earright); - this.chest.addChild(this.head); - } - - @Override - public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) { - this.waist.render(f5); - this.book.render(f5); - this.backpack.render(f5); - } - - /** - * This is a helper function from Tabula to set the rotation of model parts - */ - public void setRotateAngle(ModelRenderer modelRenderer, float x, float y, float z) - { - modelRenderer.rotateAngleX = x; - modelRenderer.rotateAngleY = y; - modelRenderer.rotateAngleZ = z; - } -} diff --git a/src/main/java/com/gildedgames/aether/client/models/entities/living/ModelGlactrix.java b/src/main/java/com/gildedgames/aether/client/models/entities/living/ModelGlactrix.java deleted file mode 100644 index 745cb05b6e..0000000000 --- a/src/main/java/com/gildedgames/aether/client/models/entities/living/ModelGlactrix.java +++ /dev/null @@ -1,155 +0,0 @@ -package com.gildedgames.aether.client.models.entities.living; - -import com.gildedgames.aether.common.entities.animals.EntityGlactrix; -import net.minecraft.client.model.ModelBase; -import net.minecraft.client.model.ModelRenderer; -import net.minecraft.entity.Entity; -import net.minecraft.util.math.MathHelper; - -/** - * NewProject - Undefined - * Created using Tabula 5.1.0 - */ -public class ModelGlactrix extends ModelBase { - public ModelRenderer body_main; - public ModelRenderer body_left; - public ModelRenderer body_right; - public ModelRenderer body_back; - public ModelRenderer leg_front_right; - public ModelRenderer leg_back_left_1; - public ModelRenderer leg_back_right_1; - public ModelRenderer body_front; - public ModelRenderer leg_front_left; - public ModelRenderer head; - public ModelRenderer leg_back_left_2; - public ModelRenderer leg_back_right_2; - public ModelRenderer ear_right; - public ModelRenderer ear_left; - public ModelRenderer snout; - public ModelRenderer nose; - public ModelRenderer head_top; - - public ModelGlactrix() { - this.textureWidth = 64; - this.textureHeight = 32; - this.body_back = new ModelRenderer(this, 15, 14); - this.body_back.setRotationPoint(4.0F, 2.0F, 4.9F); - this.body_back.addBox(0.0F, -1.5F, -1.5F, 8, 3, 3, 0.0F); - this.setRotateAngle(body_back, -2.356194490192345F, 0.0F, 3.141592653589793F); - this.snout = new ModelRenderer(this, 34, 12); - this.snout.setRotationPoint(0.0F, 0.6F, -1.8F); - this.snout.addBox(-1.5F, -2.0F, -2.3F, 3, 2, 3, 0.0F); - this.setRotateAngle(snout, 0.3490658503988659F, 0.0F, 0.0F); - this.leg_front_left = new ModelRenderer(this, 0, 14); - this.leg_front_left.setRotationPoint(3.5F, 2.5F, -2.5F); - this.leg_front_left.addBox(-1.0F, 0.0F, -1.0F, 2, 3, 2, 0.0F); - this.leg_back_left_2 = new ModelRenderer(this, 24, 25); - this.leg_back_left_2.setRotationPoint(0.0F, 1.5F, 0.0F); - this.leg_back_left_2.addBox(-0.6F, 0.0F, -1.0F, 2, 2, 2, 0.0F); - this.setRotateAngle(leg_back_left_2, -0.7853981633974483F, 0.0F, 0.0F); - this.nose = new ModelRenderer(this, 50, 0); - this.nose.setRotationPoint(0.0F, -0.5F, -4.4F); - this.nose.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); - this.setRotateAngle(nose, 0.0F, 0.0F, 0.8028514559173915F); - this.body_left = new ModelRenderer(this, 0, 14); - this.body_left.setRotationPoint(4.8F, 2.0F, 0.0F); - this.body_left.addBox(-2.0F, -1.0F, -4.1F, 3, 3, 9, 0.0F); - this.setRotateAngle(body_left, 0.0F, 0.0F, 0.7853981633974483F); - this.leg_back_left_1 = new ModelRenderer(this, 24, 20); - this.leg_back_left_1.setRotationPoint(4.0F, 2.5F, 2.0F); - this.leg_back_left_1.addBox(-0.5F, -0.5F, -1.0F, 2, 3, 2, 0.0F); - this.setRotateAngle(leg_back_left_1, 0.7853981633974483F, 0.0F, 0.0F); - this.leg_back_right_2 = new ModelRenderer(this, 24, 25); - this.leg_back_right_2.mirror = true; - this.leg_back_right_2.setRotationPoint(0.0F, 1.5F, 0.0F); - this.leg_back_right_2.addBox(-1.4F, 0.0F, -1.0F, 2, 2, 2, 0.0F); - this.setRotateAngle(leg_back_right_2, -0.7853981633974483F, 0.0F, 0.0F); - this.leg_back_right_1 = new ModelRenderer(this, 24, 20); - this.leg_back_right_1.mirror = true; - this.leg_back_right_1.setRotationPoint(-4.0F, 2.5F, 2.0F); - this.leg_back_right_1.addBox(-1.5F, -0.5F, -1.0F, 2, 3, 2, 0.0F); - this.setRotateAngle(leg_back_right_1, 0.7853981633974483F, 0.0F, 0.0F); - this.leg_front_right = new ModelRenderer(this, 0, 14); - this.leg_front_right.mirror = true; - this.leg_front_right.setRotationPoint(-3.5F, 2.5F, -2.5F); - this.leg_front_right.addBox(-1.0F, 0.0F, -1.0F, 2, 3, 2, 0.0F); - this.ear_right = new ModelRenderer(this, 45, 0); - this.ear_right.setRotationPoint(-3.0F, -2.2F, -1.5F); - this.ear_right.addBox(-1.0F, -3.0F, -1.5F, 1, 3, 3, 0.0F); - this.setRotateAngle(ear_right, 0.0F, 0.0F, -2.530727415391778F); - this.body_front = new ModelRenderer(this, 0, 26); - this.body_front.setRotationPoint(-3.0F, 2.0F, -3.4F); - this.body_front.addBox(0.0F, -2.0F, -2.0F, 6, 3, 3, 0.0F); - this.setRotateAngle(body_front, 0.7853981633974483F, 0.0F, 0.0F); - this.ear_left = new ModelRenderer(this, 45, 0); - this.ear_left.mirror = true; - this.ear_left.setRotationPoint(3.0F, -2.2F, -1.5F); - this.ear_left.addBox(0.0F, -3.0F, -1.5F, 1, 3, 3, 0.0F); - this.setRotateAngle(ear_left, 0.0F, 0.0F, 2.530727415391778F); - this.body_main = new ModelRenderer(this, 0, 0); - this.body_main.setRotationPoint(0.0F, 18.5F, 0.0F); - this.body_main.addBox(-4.0F, -1.0F, -4.2F, 8, 5, 9, 0.0F); - this.head_top = new ModelRenderer(this, 34, 7); - this.head_top.setRotationPoint(0.0F, -2.2F, -3.5F); - this.head_top.addBox(-2.5F, -3.0F, 0.0F, 5, 3, 2, 0.0F); - this.setRotateAngle(head_top, -1.1344640137963142F, 0.0F, 0.0F); - this.body_right = new ModelRenderer(this, 0, 14); - this.body_right.mirror = true; - this.body_right.setRotationPoint(-4.8F, 2.0F, 0.0F); - this.body_right.addBox(-1.0F, -1.0F, -4.1F, 3, 3, 9, 0.0F); - this.setRotateAngle(body_right, 0.0F, 0.0F, -0.7853981633974483F); - this.head = new ModelRenderer(this, 25, 0); - this.head.setRotationPoint(0.0F, 3.0F, -4.5F); - this.head.addBox(-3.0F, -2.2F, -4.0F, 6, 3, 4, 0.0F); - this.body_main.addChild(this.body_back); - this.head.addChild(this.snout); - this.body_main.addChild(this.leg_front_left); - this.leg_back_left_1.addChild(this.leg_back_left_2); - this.head.addChild(this.nose); - this.body_main.addChild(this.body_left); - this.body_main.addChild(this.leg_back_left_1); - this.leg_back_right_1.addChild(this.leg_back_right_2); - this.body_main.addChild(this.leg_back_right_1); - this.body_main.addChild(this.leg_front_right); - this.head.addChild(this.ear_right); - this.body_main.addChild(this.body_front); - this.head.addChild(this.ear_left); - this.head.addChild(this.head_top); - this.body_main.addChild(this.body_right); - this.body_main.addChild(this.head); - } - - @Override - public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) - { - this.body_main.render(f5); - } - - /** - * This is a helper function from Tabula to set the rotation of model parts - */ - public void setRotateAngle(ModelRenderer modelRenderer, float x, float y, float z) { - modelRenderer.rotateAngleX = x; - modelRenderer.rotateAngleY = y; - modelRenderer.rotateAngleZ = z; - } - - @Override - public void setRotationAngles(float limbSwing, float limbSwingAmount, float ageInTicks, float netHeadYaw, float headPitch, float scaleFactor, Entity entityIn) - { - super.setRotationAngles(limbSwing, limbSwingAmount, ageInTicks, netHeadYaw, headPitch, scaleFactor, entityIn); - - EntityGlactrix glactrix = (EntityGlactrix) entityIn; - - this.head.rotateAngleX = headPitch * 0.017453292F; - this.head.rotateAngleY = netHeadYaw * 0.017453292F; - - float swingVal = glactrix.getIsToppled() ? (ageInTicks % 100) : limbSwing; - float swingAmount = glactrix.getIsToppled() ? .5f : (limbSwingAmount * 4f); - - this.leg_front_left.rotateAngleX = MathHelper.cos(swingVal * 0.6662F + (float)Math.PI) * swingAmount; - this.leg_back_right_1.rotateAngleX = MathHelper.cos(swingVal * 0.6662F + (float)Math.PI) * swingAmount; - this.leg_back_left_1.rotateAngleX = MathHelper.cos(swingVal * 0.6662F) * swingAmount; - this.leg_front_right.rotateAngleX = MathHelper.cos(swingVal * 0.6662F) * swingAmount; - } -} diff --git a/src/main/java/com/gildedgames/aether/client/models/entities/living/ModelGlactrixCrystals.java b/src/main/java/com/gildedgames/aether/client/models/entities/living/ModelGlactrixCrystals.java deleted file mode 100644 index 0a21c8ffc7..0000000000 --- a/src/main/java/com/gildedgames/aether/client/models/entities/living/ModelGlactrixCrystals.java +++ /dev/null @@ -1,91 +0,0 @@ -package com.gildedgames.aether.client.models.entities.living; - -import net.minecraft.client.model.ModelBase; -import net.minecraft.client.model.ModelRenderer; -import net.minecraft.entity.Entity; - -/** - * NewProject - Undefined - * Created using Tabula 5.1.0 - */ -import net.minecraft.client.model.ModelBase; -import net.minecraft.client.model.ModelRenderer; -import net.minecraft.entity.Entity; - -public class ModelGlactrixCrystals extends ModelBase { - public ModelRenderer crystal_main1; - public ModelRenderer crystal_main2; - public ModelRenderer crystal_main3; - public ModelRenderer crystal_sub1; - public ModelRenderer crystal_sub2; - public ModelRenderer crystal_sub4; - public ModelRenderer crystal_sub5; - public ModelRenderer crystal_sub6; - public ModelRenderer crystal_main4; - - public ModelGlactrixCrystals() { - this.textureWidth = 64; - this.textureHeight = 32; - this.crystal_sub1 = new ModelRenderer(this, 32, 0); - this.crystal_sub1.setRotationPoint(-2.1F, 18.5F, -4.2F); - this.crystal_sub1.addBox(0.0F, -2.0F, 0.0F, 2, 3, 2, 0.0F); - this.setRotateAngle(crystal_sub1, 0.6108652381980153F, 0.0F, 0.0F); - this.crystal_main1 = new ModelRenderer(this, 16, 0); - this.crystal_main1.setRotationPoint(-0.5F, 18.0F, -2.0F); - this.crystal_main1.addBox(0.0F, -5.0F, 0.0F, 2, 5, 2, 0.0F); - this.setRotateAngle(crystal_main1, 0.2617993877991494F, 0.0F, 0.17453292519943295F); - this.crystal_main4 = new ModelRenderer(this, 24, 0); - this.crystal_main4.mirror = true; - this.crystal_main4.setRotationPoint(1.0F, 18.0F, 3.0F); - this.crystal_main4.addBox(-2.0F, -4.5F, 0.0F, 2, 4, 2, 0.0F); - this.setRotateAngle(crystal_main4, -0.7740535232594852F, 0.0F, -0.045553093477052F); - this.crystal_sub4 = new ModelRenderer(this, 24, 0); - this.crystal_sub4.setRotationPoint(-4.7F, 18.5F, 1.8F); - this.crystal_sub4.addBox(0.0F, -3.0F, 0.0F, 2, 4, 2, 0.0F); - this.setRotateAngle(crystal_sub4, -0.6829473363053812F, 0.0F, -0.6829473363053812F); - this.crystal_main3 = new ModelRenderer(this, 8, 0); - this.crystal_main3.setRotationPoint(0.0F, 18.0F, 0.0F); - this.crystal_main3.addBox(0.0F, -6.0F, 0.0F, 2, 6, 2, 0.0F); - this.setRotateAngle(crystal_main3, -0.4553564018453205F, 0.0F, 0.4553564018453205F); - this.crystal_sub6 = new ModelRenderer(this, 16, 0); - this.crystal_sub6.mirror = true; - this.crystal_sub6.setRotationPoint(5.3F, 18.5F, 1.8F); - this.crystal_sub6.addBox(-2.0F, -3.0F, 0.0F, 2, 5, 2, 0.0F); - this.setRotateAngle(crystal_sub6, -0.9560913642424937F, 0.0F, 0.8651597102135892F); - this.crystal_main2 = new ModelRenderer(this, 0, 0); - this.crystal_main2.mirror = true; - this.crystal_main2.setRotationPoint(-0.5F, 18.0F, -1.0F); - this.crystal_main2.addBox(-2.0F, -7.0F, 0.0F, 2, 7, 2, 0.0F); - this.setRotateAngle(crystal_main2, -0.2617993877991494F, 0.0F, -0.17453292519943295F); - this.crystal_sub5 = new ModelRenderer(this, 24, 0); - this.crystal_sub5.setRotationPoint(2.3F, 17.5F, -3.2F); - this.crystal_sub5.addBox(0.0F, -3.0F, 0.0F, 2, 4, 2, 0.0F); - this.setRotateAngle(crystal_sub5, -0.17453292519943295F, 0.0F, 0.8726646259971648F); - this.crystal_sub2 = new ModelRenderer(this, 24, 0); - this.crystal_sub2.setRotationPoint(-4.7F, 19.0F, -2.2F); - this.crystal_sub2.addBox(0.0F, -3.0F, 0.0F, 2, 4, 2, 0.0F); - this.setRotateAngle(crystal_sub2, -0.17453292519943295F, 0.0F, -0.5235987755982988F); - } - - @Override - public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) { - this.crystal_sub1.render(f5); - this.crystal_main1.render(f5); - this.crystal_main4.render(f5); - this.crystal_sub4.render(f5); - this.crystal_main3.render(f5); - this.crystal_sub6.render(f5); - this.crystal_main2.render(f5); - this.crystal_sub5.render(f5); - this.crystal_sub2.render(f5); - } - - /** - * This is a helper function from Tabula to set the rotation of model parts - */ - public void setRotateAngle(ModelRenderer modelRenderer, float x, float y, float z) { - modelRenderer.rotateAngleX = x; - modelRenderer.rotateAngleY = y; - modelRenderer.rotateAngleZ = z; - } -} diff --git a/src/main/java/com/gildedgames/aether/client/models/entities/living/ModelGlitterwing.java b/src/main/java/com/gildedgames/aether/client/models/entities/living/ModelGlitterwing.java deleted file mode 100644 index 701324710f..0000000000 --- a/src/main/java/com/gildedgames/aether/client/models/entities/living/ModelGlitterwing.java +++ /dev/null @@ -1,94 +0,0 @@ -package com.gildedgames.aether.client.models.entities.living; - -import net.minecraft.client.model.ModelBase; -import net.minecraft.client.model.ModelRenderer; -import net.minecraft.client.renderer.GlStateManager; -import net.minecraft.entity.Entity; - -public class ModelGlitterwing extends ModelBase -{ - - public final ModelRenderer head; - - public final ModelRenderer body; - - public final ModelRenderer bodyback; - - public final ModelRenderer wing_1; - - public final ModelRenderer wing_2; - - public final ModelRenderer shape8; - - public ModelGlitterwing() - { - this.textureWidth = 64; - this.textureHeight = 32; - this.wing_1 = new ModelRenderer(this, 0, 0); - this.wing_1.setRotationPoint(-3.3F, 22.3F, 1.0F); - this.wing_1.addBox(0.0F, 0.0F, 0.0F, 5, 5, 0, 0.0F); - this.setRotateAngle(this.wing_1, 3.141592653589793F, 0.0F, -0.41887902047863906F); - this.shape8 = new ModelRenderer(this, 16, 0); - this.shape8.setRotationPoint(-1.8F, 21.6F, -0.5F); - this.shape8.addBox(0.0F, 0.0F, 0.0F, 3, 2, 2, 0.0F); - this.setRotateAngle(this.shape8, 0.0F, 0.0F, -0.13962634015954636F); - this.wing_2 = new ModelRenderer(this, 0, 0); - this.wing_2.setRotationPoint(-3.3F, 22.3F, 0.0F); - this.wing_2.addBox(0.0F, 0.0F, 0.0F, 5, 5, 0, 0.0F); - this.setRotateAngle(this.wing_2, -3.141592653589793F, 0.0F, -0.41887902047863906F); - this.head = new ModelRenderer(this, 10, 0); - this.head.setRotationPoint(1.0F, 20.0F, 0.0F); - this.head.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); - this.bodyback = new ModelRenderer(this, 14, 0); - this.bodyback.setRotationPoint(-2.4F, 22.4F, 0.0F); - this.bodyback.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); - this.setRotateAngle(this.bodyback, 0.0F, 0.0F, -1.0927506446736497F); - this.body = new ModelRenderer(this, 24, 0); - this.body.setRotationPoint(-1.8F, 21.4F, 0.0F); - this.body.addBox(0.0F, 0.0F, 0.0F, 3, 1, 1, 0.0F); - this.setRotateAngle(this.body, 0.0F, 0.0F, -0.40980330836826856F); - } - - @Override - public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) - { - this.setRotationAngles(f, f1, f2, f3, f4, f5, entity); - GlStateManager.pushMatrix(); - GlStateManager.translate(this.wing_1.offsetX, this.wing_1.offsetY, this.wing_1.offsetZ); - GlStateManager.translate(this.wing_1.rotationPointX * f5, this.wing_1.rotationPointY * f5, this.wing_1.rotationPointZ * f5); - GlStateManager.scale(1.5D, 1.5D, 1.5D); - GlStateManager.translate(-this.wing_1.offsetX, -this.wing_1.offsetY, -this.wing_1.offsetZ); - GlStateManager.translate(-this.wing_1.rotationPointX * f5, -this.wing_1.rotationPointY * f5, -this.wing_1.rotationPointZ * f5); - this.wing_1.render(f5); - GlStateManager.popMatrix(); - this.shape8.render(f5); - GlStateManager.pushMatrix(); - GlStateManager.translate(this.wing_2.offsetX, this.wing_2.offsetY, this.wing_2.offsetZ); - GlStateManager.translate(this.wing_2.rotationPointX * f5, this.wing_2.rotationPointY * f5, this.wing_2.rotationPointZ * f5); - GlStateManager.scale(1.4D, 1.5D, 1.5D); - GlStateManager.translate(-this.wing_2.offsetX, -this.wing_2.offsetY, -this.wing_2.offsetZ); - GlStateManager.translate(-this.wing_2.rotationPointX * f5, -this.wing_2.rotationPointY * f5, -this.wing_2.rotationPointZ * f5); - this.wing_2.render(f5); - GlStateManager.popMatrix(); - this.head.render(f5); - this.bodyback.render(f5); - this.body.render(f5); - } - - /** - * This is a helper function from Tabula to set the rotation of model parts - */ - public void setRotateAngle(ModelRenderer modelRenderer, float x, float y, float z) - { - modelRenderer.rotateAngleX = x; - modelRenderer.rotateAngleY = y; - modelRenderer.rotateAngleZ = z; - } - - @Override - public void setRotationAngles(float f, float f1, float f2, float f3, float f4, float f5, Entity entity) - { - this.wing_1.rotateAngleX = -f2; - this.wing_2.rotateAngleX = f2; - } -} diff --git a/src/main/java/com/gildedgames/aether/client/models/entities/living/ModelJosediya.java b/src/main/java/com/gildedgames/aether/client/models/entities/living/ModelJosediya.java deleted file mode 100644 index b488134ae4..0000000000 --- a/src/main/java/com/gildedgames/aether/client/models/entities/living/ModelJosediya.java +++ /dev/null @@ -1,273 +0,0 @@ -package com.gildedgames.aether.client.models.entities.living; - -import net.minecraft.client.model.ModelBase; -import net.minecraft.client.model.ModelRenderer; -import net.minecraft.entity.Entity; -import net.minecraft.util.math.MathHelper; - -/** - * Josediya - Undefined - * Created using Tabula 6.0.0 - */ -public class ModelJosediya extends ModelBase -{ - public final ModelRenderer torso1; - - public final ModelRenderer torso4; - - public final ModelRenderer leg_left_upper; - - public final ModelRenderer leg_right_upper; - - public final ModelRenderer arm_left_upper; - - public final ModelRenderer arm_right_upper; - - public final ModelRenderer wing_left1; - - public final ModelRenderer wing_right1; - - public final ModelRenderer torso2; - - public final ModelRenderer neck; - - public final ModelRenderer torso3; - - public final ModelRenderer leg_left_lower1; - - public final ModelRenderer leg_left_lower2; - - public final ModelRenderer leg_left_lower3; - - public final ModelRenderer leg_right_lower1; - - public final ModelRenderer leg_right_lower2; - - public final ModelRenderer leg_right_lower3; - - public final ModelRenderer arm_left_lower1; - - public final ModelRenderer arm_left_lower2; - - public final ModelRenderer arm_right_lower1; - - public final ModelRenderer arm_right_lower2; - - public final ModelRenderer wing_left2; - - public final ModelRenderer wing_right2; - - public final ModelRenderer head1; - - public final ModelRenderer head2; - - public final ModelRenderer head3; - - public final ModelRenderer head4; - - public final ModelRenderer head5; - - public final ModelRenderer head6; - - public final ModelRenderer head7; - - public final ModelRenderer head8; - - public final ModelRenderer hair; - - public final ModelRenderer head9; - - public ModelJosediya() - { - this.textureWidth = 128; - this.textureHeight = 64; - this.leg_right_lower1 = new ModelRenderer(this, 32, 41); - this.leg_right_lower1.setRotationPoint(0.0F, 7.0F, -2.0F); - this.leg_right_lower1.addBox(-2.01F, 0.0F, 0.0F, 4, 6, 4, 0.0F); - this.arm_left_upper = new ModelRenderer(this, 14, 44); - this.arm_left_upper.setRotationPoint(4.0F, -3.5F, 0.0F); - this.arm_left_upper.addBox(0.0F, -2.0F, -2.0F, 3, 6, 4, 0.0F); - this.leg_right_upper = new ModelRenderer(this, 32, 31); - this.leg_right_upper.setRotationPoint(-2.0F, 5.0F, 0.0F); - this.leg_right_upper.addBox(-2.0F, 1.0F, -2.0F, 4, 6, 4, 0.0F); - this.leg_right_lower2 = new ModelRenderer(this, 36, 18); - this.leg_right_lower2.setRotationPoint(0.0F, 4.0F, 2.1F); - this.leg_right_lower2.addBox(-1.5F, -4.0F, 0.0F, 3, 4, 2, 0.0F); - this.setRotateAngle(this.leg_right_lower2, -0.3490658503988659F, 0.0F, 0.0F); - this.arm_right_lower1 = new ModelRenderer(this, 0, 54); - this.arm_right_lower1.setRotationPoint(-1.5F, 4.0F, 1.0F); - this.arm_right_lower1.addBox(-1.51F, 0.0F, -3.0F, 3, 6, 4, 0.0F); - this.leg_right_lower3 = new ModelRenderer(this, 64, 45); - this.leg_right_lower3.setRotationPoint(0.0F, 5.0F, 0.0F); - this.leg_right_lower3.addBox(-1.5F, -0.01F, -0.7F, 3, 1, 1, 0.0F); - this.head4 = new ModelRenderer(this, 24, 0); - this.head4.setRotationPoint(4.0F, -4.0F, -1.0F); - this.head4.addBox(-1.0F, 0.0F, 0.0F, 1, 2, 2, 0.0F); - this.setRotateAngle(this.head4, 0.0F, 0.3490658503988659F, 0.0F); - this.arm_right_upper = new ModelRenderer(this, 0, 44); - this.arm_right_upper.setRotationPoint(-4.0F, -3.5F, 0.0F); - this.arm_right_upper.addBox(-3.0F, -2.0F, -2.0F, 3, 6, 4, 0.0F); - this.head9 = new ModelRenderer(this, 0, 0); - this.head9.setRotationPoint(0.0F, -0.99F, -4.02F); - this.head9.addBox(-0.5F, 0.0F, 0.0F, 1, 1, 1, 0.0F); - this.head3 = new ModelRenderer(this, 0, 2); - this.head3.setRotationPoint(0.0F, -4.3F, -3.9F); - this.head3.addBox(-1.0F, 0.0F, 0.0F, 2, 2, 1, 0.0F); - this.setRotateAngle(this.head3, -0.17453292519943295F, 0.0F, 0.0F); - this.head7 = new ModelRenderer(this, 12, 15); - this.head7.setRotationPoint(3.0F, -1.0F, 3.0F); - this.head7.addBox(-1.0F, -1.0F, -1.0F, 2, 3, 1, 0.0F); - this.setRotateAngle(this.head7, 0.3490658503988659F, 0.7853981633974483F, 0.0F); - this.neck = new ModelRenderer(this, 0, 21); - this.neck.setRotationPoint(0.0F, -6.0F, 0.0F); - this.neck.addBox(-1.5F, -3.0F, -1.5F, 3, 4, 3, 0.0F); - this.head8 = new ModelRenderer(this, 12, 15); - this.head8.mirror = true; - this.head8.setRotationPoint(-3.0F, -1.0F, 3.0F); - this.head8.addBox(-1.0F, -1.0F, -1.0F, 2, 3, 1, 0.0F); - this.setRotateAngle(this.head8, 0.3490658503988659F, -0.7853981633974483F, 0.0F); - this.torso4 = new ModelRenderer(this, 36, 24); - this.torso4.setRotationPoint(0.0F, 10.0F, 0.0F); - this.torso4.addBox(-4.0F, 0.0F, -2.0F, 8, 3, 4, 0.1F); - this.arm_left_lower2 = new ModelRenderer(this, 24, 38); - this.arm_left_lower2.setRotationPoint(0.0F, 2.2F, 1.0F); - this.arm_left_lower2.addBox(-1.0F, -3.0F, -2.0F, 2, 3, 2, 0.0F); - this.setRotateAngle(this.arm_left_lower2, -0.3490658503988659F, 0.0F, 0.0F); - this.head1 = new ModelRenderer(this, 0, 0); - this.head1.setRotationPoint(0.0F, -0.8F, 0.0F); - this.head1.addBox(-4.0F, -8.0F, -4.0F, 8, 7, 8, 0.0F); - this.torso1 = new ModelRenderer(this, 0, 28); - this.torso1.setRotationPoint(0.0F, 6.0F, 0.0F); - this.torso1.addBox(-4.0F, -6.0F, -2.0F, 8, 12, 4, 0.0F); - this.hair = new ModelRenderer(this, 42, 0); - this.hair.setRotationPoint(0.0F, -0.01F, -0.01F); - this.hair.addBox(-4.0F, -8.0F, -4.0F, 8, 8, 8, 0.2F); - this.leg_left_lower2 = new ModelRenderer(this, 50, 18); - this.leg_left_lower2.setRotationPoint(0.0F, 4.0F, 2.1F); - this.leg_left_lower2.addBox(-1.5F, -4.0F, 0.0F, 3, 4, 2, 0.0F); - this.setRotateAngle(this.leg_left_lower2, -0.3490658503988659F, 0.0F, 0.0F); - this.arm_left_lower1 = new ModelRenderer(this, 14, 54); - this.arm_left_lower1.setRotationPoint(1.5F, 4.0F, 1.0F); - this.arm_left_lower1.addBox(-1.49F, 0.0F, -3.0F, 3, 6, 4, 0.0F); - this.head6 = new ModelRenderer(this, 0, 15); - this.head6.setRotationPoint(0.0F, -1.0F, 4.0F); - this.head6.addBox(-2.5F, -1.0F, -1.0F, 5, 3, 1, 0.0F); - this.setRotateAngle(this.head6, 0.2617993877991494F, 0.0F, 0.0F); - this.wing_right2 = new ModelRenderer(this, 82, 41); - this.wing_right2.setRotationPoint(0.0F, 0.0F, 0.0F); - this.wing_right2.addBox(-1.0F, -1.0F, -1.0F, 1, 2, 8, 0.0F); - this.torso3 = new ModelRenderer(this, 60, 17); - this.torso3.setRotationPoint(0.0F, -4.0F, -2.0F); - this.torso3.addBox(-4.0F, 0.0F, 0.0F, 8, 4, 2, 0.0F); - this.setRotateAngle(this.torso3, -0.2617993877991494F, 0.0F, 0.0F); - this.arm_right_lower2 = new ModelRenderer(this, 24, 43); - this.arm_right_lower2.setRotationPoint(0.0F, 2.2F, 1.0F); - this.arm_right_lower2.addBox(-1.0F, -3.0F, -2.0F, 2, 3, 2, 0.0F); - this.setRotateAngle(this.arm_right_lower2, -0.3490658503988659F, 0.0F, 0.0F); - this.wing_left2 = new ModelRenderer(this, 64, 41); - this.wing_left2.setRotationPoint(0.0F, 0.0F, 0.0F); - this.wing_left2.addBox(0.0F, -1.0F, -1.0F, 1, 2, 8, 0.0F); - this.torso2 = new ModelRenderer(this, 12, 21); - this.torso2.setRotationPoint(0.01F, -5.4F, 1.8F); - this.torso2.addBox(-3.0F, -2.0F, -4.0F, 6, 2, 5, 0.0F); - this.setRotateAngle(this.torso2, 0.3490658503988659F, 0.0F, 0.0F); - this.wing_right1 = new ModelRenderer(this, 50, 51); - this.wing_right1.setRotationPoint(-1.9F, 0.0F, 2.0F); - this.wing_right1.addBox(-1.0F, -4.0F, 0.0F, 1, 3, 10, 0.0F); - this.setRotateAngle(this.wing_right1, 0.2617993877991494F, -0.3490658503988659F, 0.0F); - this.head5 = new ModelRenderer(this, 24, 0); - this.head5.mirror = true; - this.head5.setRotationPoint(-4.0F, -4.0F, -1.0F); - this.head5.addBox(0.0F, 0.0F, 0.0F, 1, 2, 2, 0.0F); - this.setRotateAngle(this.head5, 0.0F, -0.3490658503988659F, 0.0F); - this.leg_left_lower3 = new ModelRenderer(this, 64, 47); - this.leg_left_lower3.mirror = true; - this.leg_left_lower3.setRotationPoint(0.0F, 5.0F, 0.0F); - this.leg_left_lower3.addBox(-1.5F, -0.01F, -0.7F, 3, 1, 1, 0.0F); - this.leg_left_lower1 = new ModelRenderer(this, 48, 41); - this.leg_left_lower1.setRotationPoint(0.0F, 7.0F, -2.0F); - this.leg_left_lower1.addBox(-1.99F, 0.0F, 0.0F, 4, 6, 4, 0.0F); - this.leg_left_upper = new ModelRenderer(this, 48, 31); - this.leg_left_upper.setRotationPoint(2.0F, 5.0F, 0.0F); - this.leg_left_upper.addBox(-2.0F, 1.0F, -2.0F, 4, 6, 4, 0.0F); - this.head2 = new ModelRenderer(this, 24, 0); - this.head2.setRotationPoint(0.0F, 0.0F, 0.0F); - this.head2.addBox(-3.0F, -1.0F, -4.0F, 6, 1, 7, 0.0F); - this.wing_left1 = new ModelRenderer(this, 28, 51); - this.wing_left1.setRotationPoint(1.9F, 0.0F, 2.0F); - this.wing_left1.addBox(0.0F, -4.0F, 0.0F, 1, 3, 10, 0.0F); - this.setRotateAngle(this.wing_left1, 0.2617993877991494F, 0.3490658503988659F, 0.0F); - this.leg_right_upper.addChild(this.leg_right_lower1); - this.torso1.addChild(this.arm_left_upper); - this.torso1.addChild(this.leg_right_upper); - this.leg_right_lower1.addChild(this.leg_right_lower2); - this.arm_right_upper.addChild(this.arm_right_lower1); - this.leg_right_lower1.addChild(this.leg_right_lower3); - this.head1.addChild(this.head4); - this.torso1.addChild(this.arm_right_upper); - this.head1.addChild(this.head9); - this.head1.addChild(this.head3); - this.head1.addChild(this.head7); - this.torso1.addChild(this.neck); - this.head1.addChild(this.head8); - this.arm_left_lower1.addChild(this.arm_left_lower2); - this.neck.addChild(this.head1); - this.head1.addChild(this.hair); - this.leg_left_lower1.addChild(this.leg_left_lower2); - this.arm_left_upper.addChild(this.arm_left_lower1); - this.head1.addChild(this.head6); - this.wing_right1.addChild(this.wing_right2); - this.torso1.addChild(this.torso3); - this.arm_right_lower1.addChild(this.arm_right_lower2); - this.wing_left1.addChild(this.wing_left2); - this.torso1.addChild(this.torso2); - this.torso1.addChild(this.wing_right1); - this.head1.addChild(this.head5); - this.leg_left_lower1.addChild(this.leg_left_lower3); - this.leg_left_upper.addChild(this.leg_left_lower1); - this.torso1.addChild(this.leg_left_upper); - this.head1.addChild(this.head2); - this.torso1.addChild(this.wing_left1); - } - - @Override - public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) - { - this.torso4.render(f5); - this.torso1.render(f5); - } - - /** - * This is a helper function from Tabula to set the rotation of model parts - */ - public void setRotateAngle(ModelRenderer modelRenderer, float x, float y, float z) - { - modelRenderer.rotateAngleX = x; - modelRenderer.rotateAngleY = y; - modelRenderer.rotateAngleZ = z; - } - - @Override - public void setRotationAngles(float limbSwing, float limbSwingAmount, float ageInTicks, float headYaw, float headPitch, float scaleFactor, Entity entity) - { - super.setRotationAngles(limbSwing, limbSwingAmount, ageInTicks, headYaw, headPitch, scaleFactor, entity); - - this.neck.rotateAngleY = headYaw * 0.017453292F; - this.neck.rotateAngleX = headPitch * 0.0057453292F; - - this.arm_right_upper.rotationPointZ = 0.0F; - this.arm_right_upper.rotationPointX = -4.0F; - this.arm_left_upper.rotationPointZ = 0.0F; - this.arm_left_upper.rotationPointX = 4.0F; - - this.arm_right_upper.rotateAngleX = MathHelper.cos(limbSwing * 0.6662F + (float) Math.PI) * 2.0F * limbSwingAmount * 0.5F; - this.arm_left_upper.rotateAngleX = MathHelper.cos(limbSwing * 0.6662F) * 2.0F * limbSwingAmount * 0.5F; - this.arm_right_upper.rotateAngleZ = 0.0F; - this.arm_left_upper.rotateAngleZ = 0.0F; - - this.arm_right_upper.rotateAngleZ += MathHelper.cos(ageInTicks * 0.09F) * 0.05F + 0.05F; - this.arm_left_upper.rotateAngleZ -= MathHelper.cos(ageInTicks * 0.09F) * 0.05F + 0.05F; - this.arm_right_upper.rotateAngleX += MathHelper.sin(ageInTicks * 0.067F) * 0.05F; - this.arm_left_upper.rotateAngleX -= MathHelper.sin(ageInTicks * 0.067F) * 0.05F; - } -} diff --git a/src/main/java/com/gildedgames/aether/client/models/entities/living/ModelKirrid.java b/src/main/java/com/gildedgames/aether/client/models/entities/living/ModelKirrid.java deleted file mode 100644 index 3b9704676a..0000000000 --- a/src/main/java/com/gildedgames/aether/client/models/entities/living/ModelKirrid.java +++ /dev/null @@ -1,216 +0,0 @@ -package com.gildedgames.aether.client.models.entities.living; - -import com.gildedgames.aether.client.renderer.ModelBaseAether; -import com.gildedgames.aether.common.entities.animals.EntityKirrid; -import net.minecraft.client.model.ModelBase; -import net.minecraft.client.model.ModelRenderer; -import net.minecraft.client.renderer.GlStateManager; -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.passive.EntitySheep; -import net.minecraft.util.math.MathHelper; - -public class ModelKirrid extends ModelBaseAether -{ - public ModelRenderer BodyMain; - public ModelRenderer BodyBack; - public ModelRenderer Tail; - public ModelRenderer HeadNeck; - public ModelRenderer LegBackRight1; - public ModelRenderer LegBackLeft1; - public ModelRenderer LegFrontLeft1; - public ModelRenderer LegFrontRight1; - public ModelRenderer HeadMain; - public ModelRenderer HeadSnout; - public ModelRenderer HeadCheekLeft; - public ModelRenderer HeadJaw; - public ModelRenderer HeadEyeRight; - public ModelRenderer HeadCheekRight; - public ModelRenderer HeadEyeLeft; - public ModelRenderer HeadPlate; - public ModelRenderer HeadEarLeft; - public ModelRenderer HeadEarRight; - public ModelRenderer LegBackRight2; - public ModelRenderer LegBacRight3; - public ModelRenderer LegBackLeft2; - public ModelRenderer LegBackLeft3; - public ModelRenderer LegFrontLeft2; - public ModelRenderer LegFrontLeft3; - public ModelRenderer LegFrontRight2; - public ModelRenderer LegFrontRight3; - - public final float childZOffset = 4.0F; - - public ModelKirrid() - { - this.textureWidth = 128; - this.textureHeight = 128; - this.LegFrontRight3 = new ModelRenderer(this, 23, 71); - this.LegFrontRight3.setRotationPoint(0.0F, 5.0F, 0.5F); - this.LegFrontRight3.addBox(-0.5F, 0.0F, -0.9F, 2, 5, 2, 0.0F); - this.setRotateAngle(LegFrontRight3, -0.08726646259971647F, -0.0F, 0.0F); - this.LegBackLeft2 = new ModelRenderer(this, 92, 96); - this.LegBackLeft2.setRotationPoint(0.0F, 0.0F, 0.0F); - this.LegBackLeft2.addBox(-1.5F, 6.6F, -6.5F, 3, 4, 4, 0.0F); - this.setRotateAngle(LegBackLeft2, 0.5235987755982988F, -0.0F, 0.0F); - this.HeadMain = new ModelRenderer(this, 49, 24); - this.HeadMain.setRotationPoint(0.0F, 0.0F, 0.0F); - this.HeadMain.addBox(-4.0F, -5.13F, -6.0F, 8, 10, 5, 0.0F); - this.LegFrontLeft3 = new ModelRenderer(this, 93, 71); - this.LegFrontLeft3.setRotationPoint(0.0F, 5.0F, 0.5F); - this.LegFrontLeft3.addBox(-1.5F, 0.0F, -0.9F, 2, 5, 2, 0.0F); - this.setRotateAngle(LegFrontLeft3, -0.08726646259971647F, -0.0F, 0.0F); - this.LegBackLeft1 = new ModelRenderer(this, 88, 79); - this.LegBackLeft1.setRotationPoint(3.5F, 7.0F, 9.0F); - this.LegBackLeft1.addBox(-2.0F, -1.0F, -3.0F, 4, 10, 7, 0.0F); - this.setRotateAngle(LegBackLeft1, 0.22689280275926282F, -0.0F, 0.0F); - this.BodyMain = new ModelRenderer(this, 36, 66); - this.BodyMain.setRotationPoint(0.0F, 0.0F, 0.0F); - this.BodyMain.addBox(-5.0F, 0.0F, -8.0F, 10, 14, 16, 0.0F); - this.Tail = new ModelRenderer(this, 57, 117); - this.Tail.setRotationPoint(0.0F, 3.5F, 16.8F); - this.Tail.addBox(-1.5F, 0.0F, -2.0F, 3, 8, 2, 0.0F); - this.setRotateAngle(Tail, 0.4363323129985824F, -0.0F, 0.0F); - this.HeadEarLeft = new ModelRenderer(this, 93, 39); - this.HeadEarLeft.setRotationPoint(3.5F, -2.0F, -4.0F); - this.HeadEarLeft.addBox(0.0F, -1.0F, -1.0F, 1, 4, 3, 0.0F); - this.setRotateAngle(HeadEarLeft, 0.0F, -0.0F, -0.4363323129985824F); - this.HeadEarRight = new ModelRenderer(this, 23, 39); - this.HeadEarRight.setRotationPoint(-3.5F, -2.0F, -4.0F); - this.HeadEarRight.addBox(-1.0F, -1.0F, -1.0F, 1, 4, 3, 0.0F); - this.setRotateAngle(HeadEarRight, 0.0F, 0.0F, 0.4363323129985824F); - this.HeadNeck = new ModelRenderer(this, 52, 54); - this.HeadNeck.setRotationPoint(0.0F, 6.0F, -9.0F); - this.HeadNeck.addBox(-2.0F, -3.0F, -2.5F, 4, 6, 6, 0.0F); - this.LegBackRight2 = new ModelRenderer(this, 18, 96); - this.LegBackRight2.setRotationPoint(0.0F, 0.0F, 0.0F); - this.LegBackRight2.addBox(-1.5F, 6.6F, -6.5F, 3, 4, 4, 0.0F); - this.setRotateAngle(LegBackRight2, 0.5235987755982988F, -0.0F, 0.0F); - this.HeadSnout = new ModelRenderer(this, 48, 10); - this.HeadSnout.setRotationPoint(0.0F, 0.0F, 0.0F); - this.HeadSnout.addBox(-2.5F, -7.5F, -11.0F, 5, 5, 9, 0.0F); - this.setRotateAngle(HeadSnout, 0.6108652381980153F, -0.0F, 0.0F); - this.LegFrontRight2 = new ModelRenderer(this, 21, 61); - this.LegFrontRight2.setRotationPoint(0.0F, 1.0F, 0.0F); - this.LegFrontRight2.addBox(-1.0F, -1.0F, -1.0F, 3, 7, 3, 0.0F); - this.setRotateAngle(LegFrontRight2, 0.08726646259971647F, -0.0F, 0.0F); - this.LegBackRight1 = new ModelRenderer(this, 14, 79); - this.LegBackRight1.setRotationPoint(-3.5F, 7.0F, 9.0F); - this.LegBackRight1.addBox(-2.0F, -1.0F, -3.0F, 4, 10, 7, 0.0F); - this.setRotateAngle(LegBackRight1, 0.22689280275926282F, -0.0F, 0.0F); - this.LegFrontLeft1 = new ModelRenderer(this, 88, 50); - this.LegFrontLeft1.setRotationPoint(4.0F, 13.0F, -5.0F); - this.LegFrontLeft1.addBox(-2.5F, -4.0F, -2.0F, 4, 6, 5, 0.0F); - this.HeadCheekRight = new ModelRenderer(this, 31, 36); - this.HeadCheekRight.setRotationPoint(0.0F, 0.0F, 0.0F); - this.HeadCheekRight.addBox(-5.3F, 0.8F, -10.5F, 3, 4, 6, 0.0F); - this.setRotateAngle(HeadCheekRight, 0.0F, -0.2617993877991494F, 0.0F); - this.LegFrontRight1 = new ModelRenderer(this, 18, 50); - this.LegFrontRight1.setRotationPoint(-4.0F, 13.0F, -5.0F); - this.LegFrontRight1.addBox(-1.5F, -4.0F, -2.0F, 4, 6, 5, 0.0F); - this.HeadCheekLeft = new ModelRenderer(this, 75, 36); - this.HeadCheekLeft.setRotationPoint(0.0F, 0.0F, 0.0F); - this.HeadCheekLeft.addBox(2.3F, 0.8F, -10.5F, 3, 4, 6, 0.0F); - this.setRotateAngle(HeadCheekLeft, 0.0F, 0.2617993877991494F, 0.0F); - this.LegBackLeft3 = new ModelRenderer(this, 95, 104); - this.LegBackLeft3.setRotationPoint(0.0F, 7.5F, 1.0F); - this.LegBackLeft3.addBox(-1.0F, 4.5F, -2.1F, 2, 8, 2, 0.0F); - this.setRotateAngle(LegBackLeft3, -0.8726646259971648F, -0.0F, 0.0F); - this.LegFrontLeft2 = new ModelRenderer(this, 91, 61); - this.LegFrontLeft2.setRotationPoint(0.0F, 1.0F, 0.0F); - this.LegFrontLeft2.addBox(-2.0F, -1.0F, -1.0F, 3, 7, 3, 0.0F); - this.setRotateAngle(LegFrontLeft2, 0.08726646259971647F, -0.0F, 0.0F); - this.LegBacRight3 = new ModelRenderer(this, 21, 104); - this.LegBacRight3.setRotationPoint(0.0F, 7.5F, 1.0F); - this.LegBacRight3.addBox(-1.0F, 4.5F, -2.1F, 2, 8, 2, 0.0F); - this.setRotateAngle(LegBacRight3, -0.8726646259971648F, -0.0F, 0.0F); - this.HeadPlate = new ModelRenderer(this, 45, 0); - this.HeadPlate.setRotationPoint(0.0F, 0.0F, 0.0F); - this.HeadPlate.addBox(-4.5F, -8.5F, -4.0F, 9, 2, 8, 0.0F); - this.setRotateAngle(HeadPlate, 0.6108652381980153F, -0.0F, 0.0F); - this.HeadJaw = new ModelRenderer(this, 47, 39); - this.HeadJaw.setRotationPoint(0.0F, 0.0F, 0.0F); - this.HeadJaw.addBox(-2.0F, 3.0F, -11.0F, 4, 4, 11, 0.0F); - this.setRotateAngle(HeadJaw, -0.12217304763960307F, -0.0F, 0.0F); - this.HeadEyeRight = new ModelRenderer(this, 36, 29); - this.HeadEyeRight.setRotationPoint(0.0F, 0.0F, 0.0F); - this.HeadEyeRight.addBox(-4.6F, -3.0F, -7.5F, 1, 4, 3, 0.0F); - this.setRotateAngle(HeadEyeRight, 0.0F, -0.2617993877991494F, 0.0F); - this.BodyBack = new ModelRenderer(this, 44, 96); - this.BodyBack.setRotationPoint(0.0F, 1.5F, 0.0F); - this.BodyBack.addBox(-4.0F, -2.0F, 7.0F, 8, 11, 10, 0.0F); - this.setRotateAngle(BodyBack, -0.17453292519943295F, 0.0F, 0.0F); - this.HeadEyeLeft = new ModelRenderer(this, 80, 29); - this.HeadEyeLeft.setRotationPoint(0.0F, 0.0F, 0.0F); - this.HeadEyeLeft.addBox(3.6F, -3.0F, -7.5F, 1, 4, 3, 0.0F); - this.setRotateAngle(HeadEyeLeft, 0.0F, 0.2617993877991494F, 0.0F); - this.LegFrontRight2.addChild(this.LegFrontRight3); - this.LegBackLeft1.addChild(this.LegBackLeft2); - this.HeadNeck.addChild(this.HeadMain); - this.LegFrontLeft2.addChild(this.LegFrontLeft3); - this.BodyMain.addChild(this.LegBackLeft1); - this.BodyMain.addChild(this.Tail); - this.HeadNeck.addChild(this.HeadEarLeft); - this.HeadNeck.addChild(this.HeadEarRight); - this.BodyMain.addChild(this.HeadNeck); - this.LegBackRight1.addChild(this.LegBackRight2); - this.HeadNeck.addChild(this.HeadSnout); - this.LegFrontRight1.addChild(this.LegFrontRight2); - this.BodyMain.addChild(this.LegBackRight1); - this.BodyMain.addChild(this.LegFrontLeft1); - this.HeadNeck.addChild(this.HeadCheekRight); - this.BodyMain.addChild(this.LegFrontRight1); - this.HeadNeck.addChild(this.HeadCheekLeft); - this.LegBackLeft2.addChild(this.LegBackLeft3); - this.LegFrontLeft1.addChild(this.LegFrontLeft2); - this.LegBackRight2.addChild(this.LegBacRight3); - this.HeadNeck.addChild(this.HeadPlate); - this.HeadNeck.addChild(this.HeadJaw); - this.HeadNeck.addChild(this.HeadEyeRight); - this.BodyMain.addChild(this.BodyBack); - this.HeadNeck.addChild(this.HeadEyeLeft); - } - - @Override - public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) - { - this.BodyMain.render(f5); - } - - /** - * This is a helper function from Tabula to set the rotation of model parts - */ - public void setRotateAngle(ModelRenderer modelRenderer, float x, float y, float z) - { - modelRenderer.rotateAngleX = x; - modelRenderer.rotateAngleY = y; - modelRenderer.rotateAngleZ = z; - } - - @Override - public void setRotationAngles(float limbSwing, float limbSwingAmount, float ageInTicks, float netHeadYaw, float headPitch, - float scaleFactor, Entity entity) - { - super.setRotationAngles(limbSwing, limbSwingAmount, ageInTicks, netHeadYaw, headPitch, scaleFactor, entity); - - this.Tail.rotateAngleZ = (MathHelper.cos(ageInTicks * 0.1662F) * 0.2F); - - this.HeadNeck.rotateAngleX = headPitch * 0.017453292F; - this.HeadNeck.rotateAngleY = netHeadYaw * 0.017453292F; - - this.LegFrontLeft1.rotateAngleX = 0.08726646259971647F + (MathHelper.cos(limbSwing * 0.6662F) * 1.0F * limbSwingAmount); - this.LegFrontRight1.rotateAngleX = 0.08726646259971647F + (MathHelper.cos(limbSwing * 0.6662F + (float) Math.PI) * 1.0F * limbSwingAmount); - - this.LegBackLeft1.rotateAngleX = 0.08726646259971647F + (MathHelper.cos(limbSwing * 0.6662F + (float) Math.PI) * 1.0F * limbSwingAmount); - this.LegBackRight1.rotateAngleX = 0.08726646259971647F + (MathHelper.cos(limbSwing * 0.6662F) * 1.0F * limbSwingAmount); - } - - @Override - public void setLivingAnimations(EntityLivingBase entitylivingbaseIn, float limbSwing, float limbSwingAmount, float partialTickTime) - { - super.setLivingAnimations(entitylivingbaseIn, limbSwing, limbSwingAmount, partialTickTime); - - this.HeadNeck.rotationPointY = 6.0F + ((EntityKirrid) entitylivingbaseIn).getHeadRotationPointY(partialTickTime) * 9.0F; - this.HeadNeck.rotateAngleX = ((EntityKirrid) entitylivingbaseIn).getHeadRotationAngleX(partialTickTime); - } -} \ No newline at end of file diff --git a/src/main/java/com/gildedgames/aether/client/models/entities/living/ModelKirridBaby.java b/src/main/java/com/gildedgames/aether/client/models/entities/living/ModelKirridBaby.java deleted file mode 100644 index 1c3754813e..0000000000 --- a/src/main/java/com/gildedgames/aether/client/models/entities/living/ModelKirridBaby.java +++ /dev/null @@ -1,116 +0,0 @@ -package com.gildedgames.aether.client.models.entities.living; - -import com.gildedgames.aether.client.renderer.ModelBaseAether; -import com.gildedgames.aether.common.entities.animals.EntityKirrid; -import net.minecraft.client.model.ModelBase; -import net.minecraft.client.model.ModelRenderer; -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.util.math.MathHelper; - -/** - * babykirrid - Undefined - * Created using Tabula 5.1.0 - */ -public class ModelKirridBaby extends ModelBaseAether -{ - public ModelRenderer body_main; - public ModelRenderer tail; - public ModelRenderer wool; - public ModelRenderer head; - public ModelRenderer leg_f_l; - public ModelRenderer leg_f_r; - public ModelRenderer leg_b_l; - public ModelRenderer leg_b_r; - public ModelRenderer plate; - public ModelRenderer ears; - - public ModelKirridBaby() { - this.textureWidth = 64; - this.textureHeight = 32; - this.wool = new ModelRenderer(this, 21, 0); - this.wool.setRotationPoint(0.0F, 0.0F, 0.0F); - this.wool.addBox(-3.0F, -3.5F, -1.5F, 6, 5, 5, 0.0F); - this.leg_f_l = new ModelRenderer(this, 54, 9); - this.leg_f_l.setRotationPoint(1.7F, 1.0F, -0.9F); - this.leg_f_l.addBox(-1.0F, -1.0F, -1.0F, 2, 7, 2, 0.0F); - this.head = new ModelRenderer(this, 0, 10); - this.head.setRotationPoint(0.0F, -0.2F, -2.0F); - this.head.addBox(-2.0F, -5.1F, -4.7F, 4, 4, 6, 0.0F); - this.setRotateAngle(head, 0.6373942428283291F, 0.0F, 0.0F); - this.leg_b_l = new ModelRenderer(this, 54, 0); - this.leg_b_l.setRotationPoint(1.7F, 1.0F, 5.5F); - this.leg_b_l.addBox(-1.0F, -1.0F, -1.0F, 2, 7, 2, 0.0F); - this.leg_b_r = new ModelRenderer(this, 46, 0); - this.leg_b_r.setRotationPoint(-1.7F, 1.0F, 5.5F); - this.leg_b_r.addBox(-1.0F, -1.0F, -1.0F, 2, 7, 2, 0.0F); - this.tail = new ModelRenderer(this, 29, 25); - this.tail.setRotationPoint(0.0F, -1.5F, 7.0F); - this.tail.addBox(-0.5F, -1.0F, 0.0F, 1, 1, 2, 0.0F); - this.setRotateAngle(tail, 0.5235987755982988F, 0.0F, 0.0F); - this.leg_f_r = new ModelRenderer(this, 46, 9); - this.leg_f_r.setRotationPoint(-1.7F, 1.0F, -0.9F); - this.leg_f_r.addBox(-1.0F, -1.0F, -1.0F, 2, 7, 2, 0.0F); - this.plate = new ModelRenderer(this, 1, 0); - this.plate.setRotationPoint(0.0F, 0.0F, 0.0F); - this.plate.addBox(-2.5F, -6.0F, -5.3F, 5, 5, 2, 0.0F); - this.setRotateAngle(plate, -1.3203415791337103F, 0.0F, 0.0F); - this.ears = new ModelRenderer(this, 0, 8); - this.ears.setRotationPoint(0.0F, 0.0F, 0.0F); - this.ears.addBox(-3.5F, -2.8F, 1.5F, 7, 1, 1, 0.0F); - this.setRotateAngle(ears, 0.5235987755982988F, 0.0F, 0.0F); - this.body_main = new ModelRenderer(this, 17, 10); - this.body_main.setRotationPoint(0.0F, 17.0F, -0.5F); - this.body_main.addBox(-2.5F, -2.5F, -3.0F, 5, 5, 10, 0.0F); - this.body_main.addChild(this.wool); - this.body_main.addChild(this.leg_f_l); - this.body_main.addChild(this.head); - this.body_main.addChild(this.leg_b_l); - this.body_main.addChild(this.leg_b_r); - this.body_main.addChild(this.tail); - this.body_main.addChild(this.leg_f_r); - this.head.addChild(this.plate); - this.head.addChild(this.ears); - } - - @Override - public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) { - this.body_main.render(f5); - } - - /** - * This is a helper function from Tabula to set the rotation of model parts - */ - public void setRotateAngle(ModelRenderer modelRenderer, float x, float y, float z) { - modelRenderer.rotateAngleX = x; - modelRenderer.rotateAngleY = y; - modelRenderer.rotateAngleZ = z; - } - - @Override - public void setRotationAngles(float limbSwing, float limbSwingAmount, float ageInTicks, float netHeadYaw, float headPitch, - float scaleFactor, Entity entity) - { - super.setRotationAngles(limbSwing, limbSwingAmount, ageInTicks, netHeadYaw, headPitch, scaleFactor, entity); - - this.tail.rotateAngleZ = (MathHelper.cos(ageInTicks * 0.1662F) * 0.2F); - - this.head.rotateAngleX = headPitch * 0.017453292F; - this.head.rotateAngleY = netHeadYaw * 0.017453292F; - - this.leg_f_l.rotateAngleX = (MathHelper.cos(limbSwing * 0.6662F) * 1.0F * limbSwingAmount); - this.leg_f_r.rotateAngleX = (MathHelper.cos(limbSwing * 0.6662F + (float) Math.PI) * 1.0F * limbSwingAmount); - - this.leg_b_l.rotateAngleX = (MathHelper.cos(limbSwing * 0.6662F + (float) Math.PI) * 1.0F * limbSwingAmount); - this.leg_b_r.rotateAngleX = (MathHelper.cos(limbSwing * 0.6662F) * 1.0F * limbSwingAmount); - } - - @Override - public void setLivingAnimations(EntityLivingBase entitylivingbaseIn, float limbSwing, float limbSwingAmount, float partialTickTime) - { - super.setLivingAnimations(entitylivingbaseIn, limbSwing, limbSwingAmount, partialTickTime); - - this.head.rotationPointY = -0.2F + ((EntityKirrid) entitylivingbaseIn).getHeadRotationPointY(partialTickTime) * 2.0F; - this.head.rotateAngleX = ((EntityKirrid) entitylivingbaseIn).getHeadRotationAngleX(partialTickTime); - } -} diff --git a/src/main/java/com/gildedgames/aether/client/models/entities/living/ModelMoaBaby.java b/src/main/java/com/gildedgames/aether/client/models/entities/living/ModelMoaBaby.java deleted file mode 100644 index 5c4761a29b..0000000000 --- a/src/main/java/com/gildedgames/aether/client/models/entities/living/ModelMoaBaby.java +++ /dev/null @@ -1,202 +0,0 @@ -package com.gildedgames.aether.client.models.entities.living; - -import com.gildedgames.aether.api.util.NoiseUtil; -import com.gildedgames.aether.client.renderer.ModelBaseAether; -import com.gildedgames.aether.client.renderer.ModelRendererAether; -import com.gildedgames.aether.common.entities.animals.EntityMoa; -import net.minecraft.client.model.ModelBase; -import net.minecraft.client.model.ModelRenderer; -import net.minecraft.entity.Entity; -import net.minecraft.util.math.MathHelper; - -/** - * babymoa - Undefined - * Created using Tabula 5.1.0 - */ -public class ModelMoaBaby extends ModelBaseAether { - public ModelRendererAether body_main; - public ModelRendererAether tail; - public ModelRendererAether leg_l_1; - public ModelRendererAether head; - public ModelRendererAether wing_l; - public ModelRendererAether wing_r; - public ModelRendererAether leg_r_1; - public ModelRendererAether neck; - public ModelRendererAether leg_l_2; - public ModelRendererAether feather_1; - public ModelRendererAether feather_2; - public ModelRendererAether feather_3; - public ModelRendererAether feather_4; - public ModelRendererAether leg_r_2; - - public ModelMoaBaby() { - this.textureWidth = 64; - this.textureHeight = 32; - this.leg_l_2 = new ModelRendererAether(this, 56, 24); - this.leg_l_2.setRotationPoint(0.0F, 1.0F, 0.0F); - this.leg_l_2.addBox(-0.5F, 0.2F, 0.0F, 2, 6, 2, 0.0F); - this.setRotateAngle(leg_l_2, 0.6981317007977318F, 0.0F, 0.0F); - this.wing_l = new ModelRendererAether(this, 48, 3); - this.wing_l.setRotationPoint(3.0F, 1.0F, -1.9F); - this.wing_l.addBox(0.0F, -2.0F, -1.0F, 1, 4, 7, 0.0F); - this.setRotateAngle(wing_l, 0.0F, 0.4363323129985824F, 0.0F); - this.head = new ModelRendererAether(this, 0, 0); - this.head.setRotationPoint(0.0F, -4.0F, -2.5F); - this.head.addBox(-2.5F, -3.7F, -5.4F, 5, 5, 7, 0.0F); - this.leg_r_2 = new ModelRendererAether(this, 48, 24); - this.leg_r_2.setRotationPoint(0.0F, 1.0F, 0.0F); - this.leg_r_2.addBox(-1.5F, 0.2F, 0.0F, 2, 6, 2, 0.0F); - this.setRotateAngle(leg_r_2, 0.6981317007977318F, 0.0F, 0.0F); - this.tail = new ModelRendererAether(this, 26, 25); - this.tail.setRotationPoint(0.0F, -1.0F, 5.5F); - this.tail.addBox(-2.5F, 0.0F, 0.0F, 5, 1, 6, 0.0F); - this.setRotateAngle(tail, -1.0471975511965976F, 0.0F, 0.0F); - this.feather_2 = new ModelRendererAether(this, 21, 12); - this.feather_2.setRotationPoint(0.0F, 0.0F, 0.2F); - this.feather_2.addBox(1.3F, -3.0F, 1.0F, 1, 1, 3, 0.0F); - this.setRotateAngle(feather_2, 0.08726646259971647F, 0.2617993877991494F, 0.0F); - this.neck = new ModelRendererAether(this, 24, 1); - this.neck.setRotationPoint(0.0F, -1.0F, -3.0F); - this.neck.addBox(-1.0F, -4.0F, -1.0F, 2, 7, 2, 0.0F); - this.setRotateAngle(neck, -0.13962634015954636F, 0.0F, 0.0F); - this.feather_1 = new ModelRendererAether(this, 21, 16); - this.feather_1.setRotationPoint(0.0F, 0.0F, 0.2F); - this.feather_1.addBox(1.3F, -0.5F, 1.0F, 1, 1, 3, 0.0F); - this.setRotateAngle(feather_1, -0.08726646259971647F, 0.2617993877991494F, 0.0F); - this.leg_l_1 = new ModelRendererAether(this, 50, 14); - this.leg_l_1.setRotationPoint(2.5F, 2.0F, 2.5F); - this.leg_l_1.addBox(-1.0F, -2.0F, -2.1F, 3, 6, 4, 0.0F); - this.setRotateAngle(leg_l_1, -0.6981317007977318F, 0.0F, 0.0F); - this.feather_3 = new ModelRendererAether(this, 1, 12); - this.feather_3.setRotationPoint(0.0F, 0.0F, 0.2F); - this.feather_3.addBox(-2.3F, -3.0F, 1.0F, 1, 1, 3, 0.0F); - this.setRotateAngle(feather_3, 0.08726646259971647F, -0.2617993877991494F, 0.0F); - this.body_main = new ModelRendererAether(this, 0, 16); - this.body_main.setRotationPoint(0.0F, 15.0F, 0.0F); - this.body_main.addBox(-3.0F, -1.5F, -3.5F, 6, 6, 9, 0.0F); - this.wing_r = new ModelRendererAether(this, 32, 3); - this.wing_r.setRotationPoint(-3.0F, 1.0F, -1.9F); - this.wing_r.addBox(-1.0F, -2.0F, -1.0F, 1, 4, 7, 0.0F); - this.setRotateAngle(wing_r, 0.0F, -0.4363323129985824F, 0.0F); - this.leg_r_1 = new ModelRendererAether(this, 36, 14); - this.leg_r_1.setRotationPoint(-2.5F, 2.0F, 2.5F); - this.leg_r_1.addBox(-2.0F, -2.0F, -2.1F, 3, 6, 4, 0.0F); - this.setRotateAngle(leg_r_1, -0.6981317007977318F, 0.0F, 0.0F); - this.feather_4 = new ModelRendererAether(this, 1, 16); - this.feather_4.setRotationPoint(0.0F, 0.0F, 0.2F); - this.feather_4.addBox(-2.3F, -0.5F, 1.0F, 1, 1, 3, 0.0F); - this.setRotateAngle(feather_4, -0.08726646259971647F, -0.2617993877991494F, 0.0F); - this.leg_l_1.addChild(this.leg_l_2); - this.body_main.addChild(this.wing_l); - this.body_main.addChild(this.head); - this.leg_r_1.addChild(this.leg_r_2); - this.body_main.addChild(this.tail); - this.head.addChild(this.feather_2); - this.body_main.addChild(this.neck); - this.head.addChild(this.feather_1); - this.body_main.addChild(this.leg_l_1); - this.head.addChild(this.feather_3); - this.body_main.addChild(this.wing_r); - this.body_main.addChild(this.leg_r_1); - this.head.addChild(this.feather_4); - } - - @Override - public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) { - this.body_main.render(f5); - } - - @Override - public void setRotationAngles(float limbSwing, float limbSwingAmount, float ageInTicks, float headYaw, float headPitch, float scaleFactor, Entity entity) - { - boolean flying = !entity.onGround; - - EntityMoa moa = (EntityMoa) entity; - - super.setRotationAngles(limbSwing, limbSwingAmount, ageInTicks, headYaw, headPitch, scaleFactor, entity); - - float pitch = headPitch * 0.017453292F; - float yaw = headYaw * 0.017453292F; - - this.head.rotateAngleX = pitch; - this.head.rotateAngleY = yaw; - - float leftSwingX = (MathHelper.cos(limbSwing * 0.6662F) * 0.55F * limbSwingAmount); - float rightSwingX = (MathHelper.cos(limbSwing * 0.6662F + (float) Math.PI) * 0.55F * limbSwingAmount); - - if (!flying) - { - this.leg_l_1.offsetY = leftSwingX / 4f + .01f; - this.leg_r_1.offsetY = rightSwingX / 4f + .01f; - - this.leg_l_1.rotateAngleX = (rightSwingX * 1.2f) - 0.6981317007977318F; - this.leg_r_1.rotateAngleX = (leftSwingX * 1.2f) - 0.6981317007977318F; - } - else - { - this.setRotateAngle(this.leg_l_1, -0.6981317007977318F, 0.0F, 0.0F); - this.setRotateAngle(this.leg_r_1, -0.6981317007977318F, 0.0F, 0.0F); - } - - float tailSwayRange = 0.05F; - - this.tail.rotateAngleZ = (MathHelper.cos((0.0F + ageInTicks) * 0.15662F) * tailSwayRange); - this.tail.rotateAngleX = -1.0471975511965976F + (MathHelper.cos((0.0F + ageInTicks) * 0.15662F) * tailSwayRange); - - float ageDif = ageInTicks - moa.getAgeSinceOffGround(); - - float unfoldTimeInSeconds = 0.3F; - float foldTimeInSeconds = 0.4F; - - if (flying) - { - float foldTime = (unfoldTimeInSeconds * 20.0F); - - float wingTime = ageDif / foldTime; - float wingAlpha = Math.min(1.0F, wingTime); - - this.setRotateAngle(this.wing_r, 0.0F, NoiseUtil.lerp(0.0F, -0.4363323129985824F, wingAlpha), 0.0F); - this.setRotateAngle(this.wing_l, 0.0F, NoiseUtil.lerp(0.0F, 0.4363323129985824F, wingAlpha), 0.0F); - - if (ageDif >= foldTime) - { - if (ageDif <= foldTime + 5.0F) - { - wingAlpha = (ageDif - foldTime) / 5.0F; - - this.wing_r.rotateAngleY = NoiseUtil - .lerp(this.wing_r.rotateAngleY, this.wing_r.rotateAngleY + (MathHelper.cos((0.0F + ageDif - 15.0F) * 0.175662F) * 0.6F), - wingAlpha); - this.wing_l.rotateAngleX = NoiseUtil - .lerp(this.wing_l.rotateAngleY, this.wing_l.rotateAngleY + (MathHelper.cos((0.0F + ageDif - 15.0F) * 0.175662F) * -0.6F), - wingAlpha); - } - else - { - this.wing_r.rotateAngleY = this.wing_r.rotateAngleY + (MathHelper.cos((0.0F + ageDif - foldTime) * 0.175662F) * 0.6F); - this.wing_l.rotateAngleY = this.wing_l.rotateAngleY + (MathHelper.cos((0.0F + ageDif - foldTime) * 0.175662F) * -0.6F); - } - } - } - else - { - float foldTime = (foldTimeInSeconds * 20.0F); - - ageDif = Math.abs(moa.getAgeSinceOffGround() - ageInTicks); - - float wingAlpha = Math.min(1.0F, ageDif / foldTime); - - this.setRotateAngle(this.wing_r, 0.0F, NoiseUtil.lerp(0.0F, -0.4363323129985824F, wingAlpha), 0.0F); - this.setRotateAngle(this.wing_l, 0.0F, NoiseUtil.lerp(0.0F, 0.4363323129985824F, wingAlpha), 0.0F); - } - } - - /** - * This is a helper function from Tabula to set the rotation of model parts - */ - public void setRotateAngle(ModelRenderer modelRenderer, float x, float y, float z) { - modelRenderer.rotateAngleX = x; - modelRenderer.rotateAngleY = y; - modelRenderer.rotateAngleZ = z; - } -} diff --git a/src/main/java/com/gildedgames/aether/client/models/entities/living/ModelMoaBase.java b/src/main/java/com/gildedgames/aether/client/models/entities/living/ModelMoaBase.java deleted file mode 100644 index af829599ca..0000000000 --- a/src/main/java/com/gildedgames/aether/client/models/entities/living/ModelMoaBase.java +++ /dev/null @@ -1,340 +0,0 @@ -package com.gildedgames.aether.client.models.entities.living; - -import com.gildedgames.aether.api.util.NoiseUtil; -import com.gildedgames.aether.client.renderer.ModelBaseAether; -import com.gildedgames.aether.client.renderer.ModelRendererAether; -import com.gildedgames.aether.common.entities.animals.EntityMoa; -import net.minecraft.client.model.ModelRenderer; -import net.minecraft.entity.Entity; -import net.minecraft.util.math.MathHelper; - -public class ModelMoaBase extends ModelBaseAether -{ - public ModelRendererAether BodyMain; - - public ModelRendererAether BodyFront; - - public ModelRendererAether BodyBack; - - public ModelRendererAether TailBase; - - public ModelRendererAether LegL1; - - public ModelRendererAether LegR1; - - public ModelRendererAether ShoulderL; - - public ModelRendererAether ShoulderR; - - public ModelRendererAether Neck; - - public ModelRendererAether WingL1; - - public ModelRendererAether WingL2; - - public ModelRendererAether WingLFeatherInt2; - - public ModelRendererAether WingL3; - - public ModelRendererAether WingLFeatherInt1; - - public ModelRendererAether WingLFeatherExt1; - - public ModelRendererAether WingLFeatherExt2; - - public ModelRendererAether WingLFeatherExt3; - - public ModelRendererAether WingR1; - - public ModelRendererAether WingR2; - - public ModelRendererAether WingRFeatherInt2; - - public ModelRendererAether WingR3; - - public ModelRendererAether WingRFeatherInt1; - - public ModelRendererAether WingRFeatherExt1; - - public ModelRendererAether WingRFeatherExt2; - - public ModelRendererAether WingRFeatherExt3; - - public ModelRendererAether HeadMain; - - public ModelRendererAether HeadBack; - - public ModelRendererAether HeadBeakMain; - - public ModelRendererAether JawMain; - - public ModelRendererAether HeadFront; - - public ModelRendererAether HeadBrow; - - public ModelRendererAether HeadFeatherL1; - - public ModelRendererAether HeadFeatherR1; - - public ModelRendererAether HeadFeatherL2; - - public ModelRendererAether HeadFeatherR2; - - public ModelRendererAether HeadBeakIntL; - - public ModelRendererAether HeadBeakIntR; - - public ModelRendererAether HeadBeakFrontL; - - public ModelRendererAether HeadBeakFrontR; - - public ModelRendererAether JawBack; - - public ModelRendererAether JawFrontL; - - public ModelRendererAether JawToothL2; - - public ModelRendererAether JawToothR2; - - public ModelRendererAether JawFrontR; - - public ModelRendererAether JawToothL3; - - public ModelRendererAether JawToothR3; - - public ModelRendererAether JawToothL1; - - public ModelRendererAether JawToothL1_1; - - public ModelRendererAether TailFeatherR; - - public ModelRendererAether TailFeatherM; - - public ModelRendererAether TailFeatherL; - - public ModelRendererAether LegL2; - - public ModelRendererAether LegL3; - - public ModelRendererAether LegLAnkle; - - public ModelRendererAether LegLFoot; - - public ModelRendererAether LegLToeM; - - public ModelRendererAether LegLToeR; - - public ModelRendererAether LegLToeL; - - public ModelRendererAether LegLTalonM; - - public ModelRendererAether LegLTalonR; - - public ModelRendererAether LegLTalonL; - - public ModelRendererAether LegR2; - - public ModelRendererAether LegR3; - - public ModelRendererAether LegRAnkle; - - public ModelRendererAether LegRFoot; - - public ModelRendererAether LegRToeM; - - public ModelRendererAether LegRToeR; - - public ModelRendererAether LegRToeL; - - public ModelRendererAether LegRTalonM; - - public ModelRendererAether LegRTalonR; - - public ModelRendererAether LegRTalonL; - - @Override - public void setRotationAngles(float limbSwing, float limbSwingAmount, float ageInTicks, float headYaw, float headPitch, float scaleFactor, Entity entity) - { - boolean flying = !entity.onGround; - - EntityMoa moa = (EntityMoa) entity; - - super.setRotationAngles(limbSwing, limbSwingAmount, ageInTicks, headYaw, headPitch, scaleFactor, entity); - - float pitch = headPitch * 0.017453292F; - float yaw = headYaw * 0.017453292F; - - this.HeadMain.rotateAngleX = 0.17453292519943295F + pitch; - this.HeadMain.rotateAngleY = yaw; - - float leftSwingX = (MathHelper.cos(limbSwing * 0.6662F) * 0.55F * limbSwingAmount); - float rightSwingX = (MathHelper.cos(limbSwing * 0.6662F + (float) Math.PI) * 0.55F * limbSwingAmount); - - float leftSwingXLower = (Math.max(-0.5009094953223726F, -rightSwingX * 2f)) - 0.1009094953223726F; - float rightSwingXLower = (Math.max(-0.5009094953223726F, -leftSwingX * 2f)) - 0.1009094953223726F; - - float leftToeCurlAngle = -(rightSwingXLower * 2.35F); - float rightToeCurlAngle = -(leftSwingXLower * 2.35F); - - if (!flying) - { - this.LegL1.offsetY = leftSwingX / 4f + .01f; - this.LegR1.offsetY = rightSwingX / 4f + .01f; - - this.LegL1.rotateAngleX = (rightSwingX * 1.2f) - 0.6981317007977318F; - this.LegR1.rotateAngleX = (leftSwingX * 1.2f) - 0.6981317007977318F; - - this.LegL3.rotateAngleX = (rightSwingXLower * 1.55F) - 1.0471975511965976F; - this.LegR3.rotateAngleX = (leftSwingXLower * 1.55F) - 1.0471975511965976F; - - this.LegLAnkle.rotateAngleX = -(rightSwingXLower * 0.75F) + 0.4363323129985824F; - this.LegRAnkle.rotateAngleX = -(leftSwingXLower * 0.75F) + 0.4363323129985824F; - - this.LegLToeL.rotateAngleX = leftToeCurlAngle - 0.17453292519943295F; - this.LegLToeM.rotateAngleX = leftToeCurlAngle - 0.5235987755982988F; - this.LegLToeR.rotateAngleX = leftToeCurlAngle - 0.17453292519943295F; - - this.LegRToeL.rotateAngleX = rightToeCurlAngle - 0.17453292519943295F; - this.LegRToeM.rotateAngleX = rightToeCurlAngle - 0.5235987755982988F; - this.LegRToeR.rotateAngleX = rightToeCurlAngle - 0.17453292519943295F; - } - else - { - this.setRotateAngle(this.LegL1, -0.6981317007977318F, 0.0F, -0.3490658503988659F); - this.setRotateAngle(this.LegR1, -0.6981317007977318F, 0.0F, 0.3490658503988659F); - - this.setRotateAngle(this.LegL3, -1.0471975511965976F, 0.0F, 0.12217304763960307F); - this.setRotateAngle(this.LegR3, -1.0471975511965976F, 0.0F, -0.12217304763960307F); - - this.setRotateAngle(this.LegLAnkle, 0.4363323129985824F, 0.0F, 0.24434609527920614F); - this.setRotateAngle(this.LegRAnkle, 0.4363323129985824F, 0.0F, -0.24434609527920614F); - - this.setRotateAngle(this.LegLToeL, -0.17453292519943295F, -0.5235987755982988F, 0.0F); - this.setRotateAngle(this.LegLToeM, -0.5235987755982988F, 0.0F, 0.0F); - this.setRotateAngle(this.LegLToeR, -0.17453292519943295F, 0.5235987755982988F, 0.0F); - - this.setRotateAngle(this.LegRToeL, -0.17453292519943295F, -0.5235987755982988F, 0.0F); - this.setRotateAngle(this.LegRToeM, -0.5235987755982988F, 0.0F, 0.0F); - this.setRotateAngle(this.LegRToeR, -0.17453292519943295F, 0.5235987755982988F, 0.0F); - } - - float tailSwayRange = 0.05F; - - this.TailFeatherL.rotateAngleZ = (MathHelper.cos((24F + ageInTicks) * 0.15662F) * tailSwayRange); - this.TailFeatherM.rotateAngleZ = (MathHelper.cos((0.0F + ageInTicks) * 0.15662F) * tailSwayRange); - this.TailFeatherR.rotateAngleZ = (MathHelper.cos((48F + ageInTicks) * 0.15662F) * tailSwayRange); - - this.TailFeatherL.rotateAngleX = -0.5235987755982988F + (MathHelper.cos((0F + ageInTicks) * 0.15662F) * tailSwayRange); - this.TailFeatherM.rotateAngleX = -0.5235987755982988F + (MathHelper.cos((0.0F + ageInTicks) * 0.15662F) * tailSwayRange); - this.TailFeatherR.rotateAngleX = -0.5235987755982988F + (MathHelper.cos((0F + ageInTicks) * 0.15662F) * tailSwayRange); - - this.HeadFeatherL1.rotateAngleZ = (MathHelper.cos((24F + ageInTicks) * 0.15662F) * 0.1F); - this.HeadFeatherL2.rotateAngleZ = (MathHelper.cos((0.0F + ageInTicks) * 0.15662F) * 0.1F); - this.HeadFeatherR1.rotateAngleZ = (MathHelper.cos((48F + ageInTicks) * 0.15662F) * 0.1F); - this.HeadFeatherR2.rotateAngleZ = (MathHelper.cos((48F + ageInTicks) * 0.15662F) * 0.1F); - - this.HeadFeatherL1.rotateAngleX = 0.17453292519943295F + (MathHelper.cos((0.0F + ageInTicks) * 0.075662F) * 0.05F); - this.HeadFeatherL2.rotateAngleX = -0.17453292519943295F + (MathHelper.cos((10.0F + ageInTicks) * 0.0755662F) * 0.05F); - this.HeadFeatherR1.rotateAngleX = 0.17453292519943295F + (MathHelper.cos((20.0F + ageInTicks) * 0.0755662F) * 0.05F); - this.HeadFeatherR2.rotateAngleX = -0.17453292519943295F + (MathHelper.cos((30.0F + ageInTicks) * 0.0755662F) * 0.05F); - - float wingSwayRange = 0.05F; - - float ageDif = ageInTicks - moa.getAgeSinceOffGround(); - - float unfoldTimeInSeconds = 0.3F; - float foldTimeInSeconds = 0.6F; - - if (flying) - { - float foldTime = (unfoldTimeInSeconds * 20.0F); - - float wingTime = ageDif / foldTime; - float wingAlpha = Math.min(1.0F, wingTime); - - this.setRotateAngle(this.ShoulderR, 0.0F, 0.0F, NoiseUtil.lerp(0.9599310885968813F, 0.17453292519943295F, wingAlpha)); - this.setRotateAngle(this.ShoulderL, 0.0F, 0.0F, NoiseUtil.lerp(-0.9599310885968813F, -0.17453292519943295F, wingAlpha)); - - this.setRotateAngle(this.WingR1, 0.0F, NoiseUtil.lerp(-0.17453292519943295F, 0.08726646259971647F, wingAlpha), - NoiseUtil.lerp(0.0F, -0.17453292519943295F, wingAlpha)); - this.setRotateAngle(this.WingR2, 0.0F, NoiseUtil.lerp(1.8325957145940461F, -0.3490658503988659F, wingAlpha), - NoiseUtil.lerp(-0.5235987755982988F, 0.17453292519943295F, wingAlpha)); - this.setRotateAngle(this.WingR3, 0.0F, NoiseUtil.lerp(0.2617993877991494F, 0.2617993877991494F, wingAlpha), - NoiseUtil.lerp(-0.17453292519943295F, -0.17453292519943295F, wingAlpha)); - - this.setRotateAngle(this.WingL1, 0.0F, NoiseUtil.lerp(0.17453292519943295F, -0.08726646259971647F, wingAlpha), - NoiseUtil.lerp(0.0F, 0.17453292519943295F, wingAlpha)); - this.setRotateAngle(this.WingL2, 0.0F, NoiseUtil.lerp(-1.8325957145940461F, 0.3490658503988659F, wingAlpha), - NoiseUtil.lerp(0.5235987755982988F, -0.17453292519943295F, wingAlpha)); - this.setRotateAngle(this.WingL3, 0.0F, NoiseUtil.lerp(-0.2617993877991494F, -0.2617993877991494F, wingAlpha), - NoiseUtil.lerp(0.17453292519943295F, 0.17453292519943295F, wingAlpha)); - - if (ageDif >= foldTime) - { - if (ageDif <= foldTime + 5.0F) - { - wingAlpha = (ageDif - foldTime) / 5.0F; - - this.ShoulderR.rotateAngleZ = NoiseUtil - .lerp(this.ShoulderR.rotateAngleZ, this.ShoulderR.rotateAngleZ + (MathHelper.cos((0.0F + ageDif - 15.0F) * 0.175662F) * 0.6F), - wingAlpha); - this.ShoulderL.rotateAngleZ = NoiseUtil - .lerp(this.ShoulderL.rotateAngleZ, this.ShoulderL.rotateAngleZ + (MathHelper.cos((0.0F + ageDif - 15.0F) * 0.175662F) * -0.6F), - wingAlpha); - } - else - { - this.ShoulderR.rotateAngleZ = this.ShoulderR.rotateAngleZ + (MathHelper.cos((0.0F + ageDif - foldTime) * 0.175662F) * 0.6F); - this.ShoulderL.rotateAngleZ = this.ShoulderL.rotateAngleZ + (MathHelper.cos((0.0F + ageDif - foldTime) * 0.175662F) * -0.6F); - } - } - } - else - { - float foldTime = (foldTimeInSeconds * 20.0F); - - ageDif = Math.abs(moa.getAgeSinceOffGround() - ageInTicks); - - float wingAlpha = Math.min(1.0F, ageDif / foldTime); - - this.setRotateAngle(this.ShoulderR, 0.0F, 0.0F, NoiseUtil.lerpReverse(-0.9599310885968813F, 0.17453292519943295F, wingAlpha)); - this.setRotateAngle(this.ShoulderL, 0.0F, 0.0F, NoiseUtil.lerpReverse(0.9599310885968813F, -0.17453292519943295F, wingAlpha)); - - this.setRotateAngle(this.WingR1, 0.0F, NoiseUtil.lerpReverse(-0.17453292519943295F, 0.08726646259971647F, wingAlpha), - NoiseUtil.lerpReverse(0.0F, -0.17453292519943295F, wingAlpha)); - this.setRotateAngle(this.WingR2, 0.0F, NoiseUtil.lerpReverse(1.8325957145940461F, -0.3490658503988659F, wingAlpha), - NoiseUtil.lerpReverse(-0.5235987755982988F, 0.17453292519943295F, wingAlpha)); - this.setRotateAngle(this.WingR3, 0.0F, NoiseUtil.lerpReverse(0.2617993877991494F, 0.2617993877991494F, wingAlpha), - NoiseUtil.lerpReverse(-0.17453292519943295F, -0.17453292519943295F, wingAlpha)); - - this.setRotateAngle(this.WingL1, 0.0F, NoiseUtil.lerpReverse(0.17453292519943295F, -0.08726646259971647F, wingAlpha), - NoiseUtil.lerpReverse(0.0F, 0.17453292519943295F, wingAlpha)); - this.setRotateAngle(this.WingL2, 0.0F, NoiseUtil.lerpReverse(-1.8325957145940461F, 0.3490658503988659F, wingAlpha), - NoiseUtil.lerpReverse(0.5235987755982988F, -0.17453292519943295F, wingAlpha)); - this.setRotateAngle(this.WingL3, 0.0F, NoiseUtil.lerpReverse(-0.2617993877991494F, -0.2617993877991494F, wingAlpha), - NoiseUtil.lerpReverse(0.17453292519943295F, 0.17453292519943295F, wingAlpha)); - } - - this.WingLFeatherExt1.rotateAngleZ = (MathHelper.cos((0.0F + ageInTicks) * 0.15662F) * wingSwayRange); - this.WingLFeatherExt2.rotateAngleZ = (MathHelper.cos((10.0F + ageInTicks) * 0.15662F) * wingSwayRange); - this.WingLFeatherExt3.rotateAngleZ = (MathHelper.cos((20.0F + ageInTicks) * 0.15662F) * wingSwayRange); - this.WingLFeatherInt1.rotateAngleZ = (MathHelper.cos((30.0F + ageInTicks) * 0.15662F) * wingSwayRange); - this.WingLFeatherInt2.rotateAngleZ = (MathHelper.cos((40.0F + ageInTicks) * 0.15662F) * wingSwayRange); - - this.WingRFeatherExt1.rotateAngleZ = (MathHelper.cos((0.0F + ageInTicks) * 0.15662F) * wingSwayRange); - this.WingRFeatherExt2.rotateAngleZ = (MathHelper.cos((10.0F + ageInTicks) * 0.15662F) * wingSwayRange); - this.WingRFeatherExt3.rotateAngleZ = (MathHelper.cos((20.0F + ageInTicks) * 0.15662F) * wingSwayRange); - this.WingRFeatherInt1.rotateAngleZ = (MathHelper.cos((30.0F + ageInTicks) * 0.15662F) * wingSwayRange); - this.WingRFeatherInt2.rotateAngleZ = (MathHelper.cos((40.0F + ageInTicks) * 0.15662F) * wingSwayRange); - } - - /** - * This is a helper function from Tabula to set the rotation of model parts - */ - public void setRotateAngle(ModelRenderer modelRenderer, float x, float y, float z) - { - modelRenderer.rotateAngleX = x; - modelRenderer.rotateAngleY = y; - modelRenderer.rotateAngleZ = z; - } -} diff --git a/src/main/java/com/gildedgames/aether/client/models/entities/living/ModelMoaLodHigh.java b/src/main/java/com/gildedgames/aether/client/models/entities/living/ModelMoaLodHigh.java deleted file mode 100644 index 96375aae16..0000000000 --- a/src/main/java/com/gildedgames/aether/client/models/entities/living/ModelMoaLodHigh.java +++ /dev/null @@ -1,374 +0,0 @@ -package com.gildedgames.aether.client.models.entities.living; - -import com.gildedgames.aether.client.renderer.ModelRendererAether; -import net.minecraft.entity.Entity; - -/** - * Moa_Wild - Undefined - * Created using Tabula 5.1.0 - */ -public class ModelMoaLodHigh extends ModelMoaBase -{ - public ModelMoaLodHigh() - { - this.textureWidth = 128; - this.textureHeight = 256; - this.BodyBack = new ModelRendererAether(this, 97, 114); - this.BodyBack.setRotationPoint(0.0F, 10.0F, 7.0F); - this.BodyBack.addBox(-4.0F, -6.0F, -2.0F, 8, 6, 2, 0.0F); - this.setRotateAngle(this.BodyBack, -0.41887902047863906F, 0.0F, 0.0F); - this.JawFrontL = new ModelRendererAether(this, 106, 25); - this.JawFrontL.setRotationPoint(1.3F, 0.0F, -9.8F); - this.JawFrontL.addBox(-3.0F, -1.6F, -3.0F, 3, 4, 3, 0.0F); - this.setRotateAngle(this.JawFrontL, -0.05235987755982988F, -0.7853981633974483F, 0.0F); - this.WingLFeatherExt2 = new ModelRendererAether(this, 44, 131); - this.WingLFeatherExt2.setRotationPoint(0.0F, 0.5F, 2.0F); - this.WingLFeatherExt2.addBox(-2.0F, -1.0F, -2.5F, 16, 1, 5, 0.0F); - this.setRotateAngle(this.WingLFeatherExt2, 0.0F, -0.17453292519943295F, 0.0F); - this.WingL1 = new ModelRendererAether(this, 40, 94); - this.WingL1.setRotationPoint(2.5F, 0.0F, 0.0F); - this.WingL1.addBox(-2.5F, -2.0F, -4.0F, 10, 2, 6, 0.0F); - this.setRotateAngle(this.WingL1, 0.0F, 0.17453292519943295F, 0.0F); - this.LegRToeR = new ModelRendererAether(this, 0, 203); - this.LegRToeR.setRotationPoint(-1.0F, 1.0F, -2.5F); - this.LegRToeR.addBox(-1.0F, -1.0F, -5.0F, 2, 2, 5, 0.0F); - this.setRotateAngle(this.LegRToeR, -0.17453292519943295F, 0.5235987755982988F, 0.0F); - this.HeadMain = new ModelRendererAether(this, 22, 14); - this.HeadMain.setRotationPoint(0.0F, -12.0F, 0.0F); - this.HeadMain.addBox(-4.5F, -6.0F, -4.5F, 9, 10, 8, 0.0F); - this.setRotateAngle(this.HeadMain, 0.17453292519943295F, 0.0F, 0.0F); - this.HeadFeatherL1 = new ModelRendererAether(this, 56, 4); - this.HeadFeatherL1.setRotationPoint(3.5F, -4.0F, 2.0F); - this.HeadFeatherL1.addBox(-0.5F, -2.0F, -1.0F, 1, 4, 10, 0.0F); - this.setRotateAngle(this.HeadFeatherL1, 0.17453292519943295F, 0.3490658503988659F, 0.0F); - this.LegL3 = new ModelRendererAether(this, 66, 178); - this.LegL3.setRotationPoint(0.0F, 6.5F, 0.0F); - this.LegL3.addBox(-1.5F, -1.0F, -1.5F, 3, 8, 3, 0.0F); - this.setRotateAngle(this.LegL3, -1.0471975511965976F, 0.0F, 0.12217304763960307F); - this.TailBase = new ModelRendererAether(this, 91, 122); - this.TailBase.setRotationPoint(0.0F, 1.7F, 8.5F); - this.TailBase.addBox(-4.5F, -1.6F, -4.5F, 8, 5, 8, 0.0F); - this.setRotateAngle(this.TailBase, 0.0F, -0.7853981633974483F, 0.0F); - this.JawToothL3 = new ModelRendererAether(this, 120, 8); - this.JawToothL3.setRotationPoint(2.3F, -1.5F, -6.5F); - this.JawToothL3.addBox(-0.5F, -1.0F, -1.0F, 1, 2, 2, 0.0F); - this.setRotateAngle(this.JawToothL3, 0.7853981633974483F, 0.0F, -0.17453292519943295F); - this.LegLToeM = new ModelRendererAether(this, 62, 203); - this.LegLToeM.setRotationPoint(0.0F, 1.0F, -2.5F); - this.LegLToeM.addBox(-1.5F, -1.0F, -7.0F, 3, 2, 7, 0.0F); - this.setRotateAngle(this.LegLToeM, -0.5235987755982988F, 0.0F, 0.0F); - this.LegLTalonM = new ModelRendererAether(this, 69, 212); - this.LegLTalonM.setRotationPoint(0.5F, 0.5F, -6.5F); - this.LegLTalonM.addBox(-1.0F, -0.7F, -0.7F, 1, 5, 2, 0.0F); - this.setRotateAngle(this.LegLTalonM, 0.17453292519943295F, 0.0F, 0.0F); - this.WingRFeatherInt2 = new ModelRendererAether(this, 12, 113); - this.WingRFeatherInt2.setRotationPoint(-6.0F, -1.5F, 0.5F); - this.WingRFeatherInt2.addBox(-11.5F, 0.0F, -2.5F, 11, 1, 5, 0.0F); - this.setRotateAngle(this.WingRFeatherInt2, 0.0F, 1.48352986419518F, 0.0F); - this.WingRFeatherInt1 = new ModelRendererAether(this, 10, 119); - this.WingRFeatherInt1.setRotationPoint(-2.0F, 0.0F, 3.0F); - this.WingRFeatherInt1.addBox(-11.5F, 0.0F, -2.5F, 12, 1, 5, 0.0F); - this.setRotateAngle(this.WingRFeatherInt1, 0.0F, 1.3962634015954636F, 0.0F); - this.HeadFront = new ModelRendererAether(this, 27, 42); - this.HeadFront.setRotationPoint(0.0F, 0.5F, -4.5F); - this.HeadFront.addBox(-3.0F, -6.0F, -3.0F, 6, 6, 6, 0.0F); - this.setRotateAngle(this.HeadFront, 0.0F, 0.7853981633974483F, 0.0F); - this.JawToothR3 = new ModelRendererAether(this, 86, 8); - this.JawToothR3.setRotationPoint(-2.3F, -1.5F, -6.5F); - this.JawToothR3.addBox(-0.5F, -1.0F, -1.0F, 1, 2, 2, 0.0F); - this.setRotateAngle(this.JawToothR3, 0.7853981633974483F, 0.0F, 0.17453292519943295F); - this.HeadFeatherL2 = new ModelRendererAether(this, 56, 18); - this.HeadFeatherL2.setRotationPoint(3.5F, 1.0F, 2.0F); - this.HeadFeatherL2.addBox(-0.5F, -2.0F, -1.0F, 1, 4, 10, 0.0F); - this.setRotateAngle(this.HeadFeatherL2, -0.17453292519943295F, 0.3490658503988659F, 0.0F); - this.LegR3 = new ModelRendererAether(this, 18, 178); - this.LegR3.setRotationPoint(0.0F, 6.5F, 0.0F); - this.LegR3.addBox(-1.5F, -1.0F, -1.5F, 3, 8, 3, 0.0F); - this.setRotateAngle(this.LegR3, -1.0471975511965976F, 0.0F, -0.12217304763960307F); - this.WingL2 = new ModelRendererAether(this, 40, 102); - this.WingL2.setRotationPoint(8.0F, -1.3F, -1.0F); - this.WingL2.addBox(-3.0F, -1.5F, -3.5F, 13, 3, 7, 0.0F); - this.setRotateAngle(this.WingL2, 0.0F, -1.8325957145940461F, 0.5235987755982988F); - this.WingR3 = new ModelRendererAether(this, 0, 0); - this.WingR3.setRotationPoint(-9.0F, 0.0F, 0.0F); - this.WingR3.addBox(1.0F, 0.0F, -1.0F, 2, 1, 2, 0.0F); - this.setRotateAngle(this.WingR3, 0.0F, 0.2617993877991494F, -0.17453292519943295F); - this.LegL2 = new ModelRendererAether(this, 64, 165); - this.LegL2.setRotationPoint(1.5F, 7.0F, 1.5F); - this.LegL2.addBox(-2.0F, -1.0F, -2.0F, 4, 9, 4, 0.0F); - this.setRotateAngle(this.LegL2, 1.9198621771937625F, 0.0F, 0.08726646259971647F); - this.HeadBack = new ModelRendererAether(this, 25, 0); - this.HeadBack.setRotationPoint(0.0F, -6.0F, 3.5F); - this.HeadBack.addBox(-4.0F, 0.0F, 0.0F, 8, 8, 6, 0.0F); - this.setRotateAngle(this.HeadBack, -0.6283185307179586F, 0.0F, 0.0F); - this.WingLFeatherExt3 = new ModelRendererAether(this, 44, 125); - this.WingLFeatherExt3.setRotationPoint(-2.0F, 1.0F, 3.0F); - this.WingLFeatherExt3.addBox(-0.5F, -1.0F, -2.5F, 14, 1, 5, 0.0F); - this.setRotateAngle(this.WingLFeatherExt3, 0.0F, -0.6981317007977318F, 0.0F); - this.JawToothL1 = new ModelRendererAether(this, 119, 0); - this.JawToothL1.setRotationPoint(-1.5F, -1.6F, -2.3F); - this.JawToothL1.addBox(-1.0F, -1.0F, -0.5F, 2, 2, 2, 0.0F); - this.setRotateAngle(this.JawToothL1, 0.0F, 0.0F, 0.7853981633974483F); - this.LegR2 = new ModelRendererAether(this, 16, 165); - this.LegR2.setRotationPoint(-1.5F, 7.0F, 1.5F); - this.LegR2.addBox(-2.0F, -1.0F, -2.0F, 4, 9, 4, 0.0F); - this.setRotateAngle(this.LegR2, 1.9198621771937625F, 0.0F, -0.08726646259971647F); - this.LegRAnkle = new ModelRendererAether(this, 17, 189); - this.LegRAnkle.setRotationPoint(0.0F, 7.0F, 0.0F); - this.LegRAnkle.addBox(-1.0F, -1.0F, -3.0F, 2, 2, 5, 0.0F); - this.setRotateAngle(this.LegRAnkle, 0.4363323129985824F, 0.0F, -0.24434609527920614F); - this.TailFeatherL = new ModelRendererAether(this, 70, 230); - this.TailFeatherL.setRotationPoint(3.0F, 1.0F, -1.0F); - this.TailFeatherL.addBox(-2.5F, -1.0F, 0.0F, 5, 2, 20, 0.0F); - this.setRotateAngle(this.TailFeatherL, -0.5235987755982988F, 1.5707963267948966F, 0.0F); - this.LegLTalonR = new ModelRendererAether(this, 53, 210); - this.LegLTalonR.setRotationPoint(0.0F, 0.5F, -4.5F); - this.LegLTalonR.addBox(-0.5F, -0.6F, -0.7F, 1, 2, 1, 0.0F); - this.setRotateAngle(this.LegLTalonR, 0.17453292519943295F, 0.0F, 0.0F); - this.LegRTalonR = new ModelRendererAether(this, 5, 210); - this.LegRTalonR.setRotationPoint(0.0F, 0.5F, -4.5F); - this.LegRTalonR.addBox(-0.5F, -0.6F, -0.7F, 1, 2, 1, 0.0F); - this.setRotateAngle(this.LegRTalonR, 0.17453292519943295F, 0.0F, 0.0F); - this.WingLFeatherInt1 = new ModelRendererAether(this, 44, 119); - this.WingLFeatherInt1.setRotationPoint(2.0F, 0.0F, 3.0F); - this.WingLFeatherInt1.addBox(-0.5F, 0.0F, -2.5F, 12, 1, 5, 0.0F); - this.setRotateAngle(this.WingLFeatherInt1, 0.0F, -1.3962634015954636F, 0.0F); - this.LegLAnkle = new ModelRendererAether(this, 65, 189); - this.LegLAnkle.setRotationPoint(0.0F, 7.0F, 0.0F); - this.LegLAnkle.addBox(-1.0F, -1.0F, -3.0F, 2, 2, 5, 0.0F); - this.setRotateAngle(this.LegLAnkle, 0.4363323129985824F, 0.0F, 0.24434609527920614F); - this.WingLFeatherExt1 = new ModelRendererAether(this, 44, 137); - this.WingLFeatherExt1.setRotationPoint(0.0F, 0.0F, -1.0F); - this.WingLFeatherExt1.addBox(0.0F, -1.0F, -2.5F, 17, 1, 5, 0.0F); - this.setRotateAngle(this.WingLFeatherExt1, 0.0F, 0.17453292519943295F, 0.0F); - this.WingL3 = new ModelRendererAether(this, 0, 0); - this.WingL3.setRotationPoint(9.0F, 0.0F, 0.0F); - this.WingL3.addBox(-3.0F, 0.0F, -1.0F, 2, 1, 2, 0.0F); - this.setRotateAngle(this.WingL3, 0.0F, -0.2617993877991494F, 0.17453292519943295F); - this.BodyFront = new ModelRendererAether(this, 87, 70); - this.BodyFront.setRotationPoint(0.0F, -0.5F, -4.0F); - this.BodyFront.addBox(-4.0F, 0.0F, -9.0F, 8, 10, 12, 0.0F); - this.setRotateAngle(this.BodyFront, -0.17453292519943295F, 0.0F, 0.0F); - this.JawFrontR = new ModelRendererAether(this, 94, 25); - this.JawFrontR.setRotationPoint(-1.3F, 0.0F, -9.8F); - this.JawFrontR.addBox(0.0F, -1.6F, -3.0F, 3, 4, 3, 0.0F); - this.setRotateAngle(this.JawFrontR, -0.05235987755982988F, 0.7853981633974483F, 0.0F); - this.HeadBeakFrontL = new ModelRendererAether(this, 39, 69); - this.HeadBeakFrontL.setRotationPoint(1.2F, 2.0F, -10.7F); - this.HeadBeakFrontL.addBox(0.0F, -5.8F, 0.0F, 2, 6, 2, 0.0F); - this.setRotateAngle(this.HeadBeakFrontL, 0.05235987755982988F, -0.7853981633974483F, 0.0F); - this.HeadFeatherR1 = new ModelRendererAether(this, 0, 4); - this.HeadFeatherR1.setRotationPoint(-3.5F, -4.0F, 2.0F); - this.HeadFeatherR1.addBox(-0.5F, -2.0F, -1.0F, 1, 4, 10, 0.0F); - this.setRotateAngle(this.HeadFeatherR1, 0.17453292519943295F, -0.3490658503988659F, 0.0F); - this.WingRFeatherExt3 = new ModelRendererAether(this, 6, 125); - this.WingRFeatherExt3.setRotationPoint(2.0F, 1.0F, 3.0F); - this.WingRFeatherExt3.addBox(-12.5F, -1.0F, -2.5F, 14, 1, 5, 0.0F); - this.setRotateAngle(this.WingRFeatherExt3, 0.0F, 0.6981317007977318F, 0.0F); - this.TailFeatherR = new ModelRendererAether(this, 10, 230); - this.TailFeatherR.setRotationPoint(-1.0F, 1.0F, 3.0F); - this.TailFeatherR.addBox(-2.5F, -1.0F, 0.0F, 5, 2, 20, 0.0F); - this.setRotateAngle(this.TailFeatherR, -0.5235987755982988F, 0.0F, 0.0F); - this.HeadBeakIntL = new ModelRendererAether(this, 120, 11); - this.HeadBeakIntL.setRotationPoint(3.5F, 0.0F, -4.5F); - this.HeadBeakIntL.addBox(0.0F, 0.0F, -3.0F, 0, 4, 3, 0.0F); - this.setRotateAngle(this.HeadBeakIntL, 0.0F, 0.5235987755982988F, 0.0F); - this.HeadBeakIntR = new ModelRendererAether(this, 86, 11); - this.HeadBeakIntR.setRotationPoint(-3.5F, 0.0F, -4.5F); - this.HeadBeakIntR.addBox(0.0F, 0.0F, -3.0F, 0, 4, 3, 0.0F); - this.setRotateAngle(this.HeadBeakIntR, 0.0F, -0.5235987755982988F, 0.0F); - this.LegLToeR = new ModelRendererAether(this, 48, 203); - this.LegLToeR.setRotationPoint(-1.0F, 1.0F, -2.5F); - this.LegLToeR.addBox(-1.0F, -1.0F, -5.0F, 2, 2, 5, 0.0F); - this.setRotateAngle(this.LegLToeR, -0.17453292519943295F, 0.5235987755982988F, 0.0F); - this.LegR1 = new ModelRendererAether(this, 12, 146); - this.LegR1.setRotationPoint(-2.5F, 6.0F, 3.0F); - this.LegR1.addBox(-4.0F, -2.5F, -3.5F, 5, 12, 7, 0.0F); - this.setRotateAngle(this.LegR1, -0.6981317007977318F, 0.0F, 0.3490658503988659F); - this.JawBack = new ModelRendererAether(this, 92, 0); - this.JawBack.setRotationPoint(0.0F, 0.0F, -3.0F); - this.JawBack.addBox(-3.5F, -1.6F, -3.5F, 7, 4, 7, 0.0F); - this.setRotateAngle(this.JawBack, 0.0F, -0.7853981633974483F, 0.0F); - this.LegRToeL = new ModelRendererAether(this, 34, 203); - this.LegRToeL.setRotationPoint(1.0F, 1.0F, -2.5F); - this.LegRToeL.addBox(-1.0F, -1.0F, -5.0F, 2, 2, 5, 0.0F); - this.setRotateAngle(this.LegRToeL, -0.17453292519943295F, -0.5235987755982988F, 0.0F); - this.ShoulderL = new ModelRendererAether(this, 40, 81); - this.ShoulderL.setRotationPoint(3.0F, 1.5F, -4.0F); - this.ShoulderL.addBox(-1.5F, -2.5F, -4.5F, 6, 4, 9, 0.0F); - this.setRotateAngle(this.ShoulderL, 0.0F, 0.0F, 0.9599310885968813F); - this.WingRFeatherExt1 = new ModelRendererAether(this, 0, 137); - this.WingRFeatherExt1.setRotationPoint(0.0F, 0.0F, -1.0F); - this.WingRFeatherExt1.addBox(-17.0F, -1.0F, -2.5F, 17, 1, 5, 0.0F); - this.setRotateAngle(this.WingRFeatherExt1, 0.0F, -0.17453292519943295F, 0.0F); - this.HeadFeatherR2 = new ModelRendererAether(this, 0, 18); - this.HeadFeatherR2.setRotationPoint(-3.5F, 1.0F, 1.9F); - this.HeadFeatherR2.addBox(-0.5F, -2.0F, -1.0F, 1, 4, 10, 0.0F); - this.setRotateAngle(this.HeadFeatherR2, -0.17453292519943295F, -0.3490658503988659F, 0.0F); - this.Neck = new ModelRendererAether(this, 96, 47); - this.Neck.setRotationPoint(0.0F, 4.0F, -7.0F); - this.Neck.addBox(-2.5F, -13.0F, -3.0F, 5, 17, 6, 0.0F); - this.LegLToeL = new ModelRendererAether(this, 82, 203); - this.LegLToeL.setRotationPoint(1.0F, 1.0F, -2.5F); - this.LegLToeL.addBox(-1.0F, -1.0F, -5.0F, 2, 2, 5, 0.0F); - this.setRotateAngle(this.LegLToeL, -0.17453292519943295F, -0.5235987755982988F, 0.0F); - this.WingRFeatherExt2 = new ModelRendererAether(this, 2, 131); - this.WingRFeatherExt2.setRotationPoint(0.0F, 0.5F, 2.0F); - this.WingRFeatherExt2.addBox(-14.0F, -1.0F, -2.5F, 16, 1, 5, 0.0F); - this.setRotateAngle(this.WingRFeatherExt2, 0.0F, 0.17453292519943295F, 0.0F); - this.LegRFoot = new ModelRendererAether(this, 15, 196); - this.LegRFoot.setRotationPoint(0.0F, 0.0F, -1.5F); - this.LegRFoot.addBox(-2.0F, 0.0F, -3.5F, 4, 2, 5, 0.0F); - this.setRotateAngle(this.LegRFoot, -0.593411945678072F, 0.0F, 0.0F); - this.LegLTalonL = new ModelRendererAether(this, 87, 210); - this.LegLTalonL.setRotationPoint(0.0F, 0.5F, -4.5F); - this.LegLTalonL.addBox(-0.5F, -0.6F, -0.7F, 1, 2, 1, 0.0F); - this.setRotateAngle(this.LegLTalonL, 0.17453292519943295F, 0.0F, 0.0F); - this.LegRTalonM = new ModelRendererAether(this, 21, 212); - this.LegRTalonM.setRotationPoint(0.5F, 0.5F, -6.5F); - this.LegRTalonM.addBox(-1.0F, -0.7F, -0.7F, 1, 5, 2, 0.0F); - this.setRotateAngle(this.LegRTalonM, 0.17453292519943295F, 0.0F, 0.0F); - this.HeadBeakMain = new ModelRendererAether(this, 25, 54); - this.HeadBeakMain.setRotationPoint(0.0F, -2.0F, -4.7F); - this.HeadBeakMain.addBox(-2.5F, -3.8F, -9.4F, 5, 6, 9, 0.0F); - this.setRotateAngle(this.HeadBeakMain, 0.13962634015954636F, 0.0F, 0.0F); - this.WingR2 = new ModelRendererAether(this, 0, 102); - this.WingR2.setRotationPoint(-8.0F, -1.3F, -1.0F); - this.WingR2.addBox(-10.0F, -1.5F, -3.5F, 13, 3, 7, 0.0F); - this.setRotateAngle(this.WingR2, 0.0F, 1.8325957145940461F, -0.5235987755982988F); - this.JawToothL2 = new ModelRendererAether(this, 120, 4); - this.JawToothL2.setRotationPoint(2.3F, -1.5F, -9.6F); - this.JawToothL2.addBox(-0.5F, -1.0F, -1.0F, 1, 2, 2, 0.0F); - this.setRotateAngle(this.JawToothL2, 0.7853981633974483F, 0.0F, -0.17453292519943295F); - this.ShoulderR = new ModelRendererAether(this, 10, 81); - this.ShoulderR.setRotationPoint(-3.0F, 1.5F, -4.0F); - this.ShoulderR.addBox(-4.5F, -2.5F, -4.5F, 6, 4, 9, 0.0F); - this.setRotateAngle(this.ShoulderR, 0.0F, 0.0F, -0.9599310885968813F); - this.LegRTalonL = new ModelRendererAether(this, 39, 210); - this.LegRTalonL.setRotationPoint(0.0F, 0.5F, -4.5F); - this.LegRTalonL.addBox(-0.5F, -0.6F, -0.7F, 1, 2, 1, 0.0F); - this.setRotateAngle(this.LegRTalonL, 0.17453292519943295F, 0.0F, 0.0F); - this.LegLFoot = new ModelRendererAether(this, 63, 196); - this.LegLFoot.setRotationPoint(0.0F, 0.0F, -1.5F); - this.LegLFoot.addBox(-2.0F, 0.0F, -3.5F, 4, 2, 5, 0.0F); - this.setRotateAngle(this.LegLFoot, -0.593411945678072F, 0.0F, 0.0F); - this.HeadBrow = new ModelRendererAether(this, 25, 32); - this.HeadBrow.setRotationPoint(0.0F, -5.9F, -5.0F); - this.HeadBrow.addBox(-3.5F, 0.0F, -3.5F, 7, 3, 7, 0.0F); - this.setRotateAngle(this.HeadBrow, 0.0F, 0.7853981633974483F, 0.0F); - this.LegL1 = new ModelRendererAether(this, 60, 146); - this.LegL1.setRotationPoint(2.5F, 6.0F, 3.0F); - this.LegL1.addBox(-1.0F, -2.5F, -3.5F, 5, 12, 7, 0.0F); - this.setRotateAngle(this.LegL1, -0.6981317007977318F, 0.0F, -0.3490658503988659F); - this.JawToothR2 = new ModelRendererAether(this, 86, 4); - this.JawToothR2.setRotationPoint(-2.3F, -1.5F, -9.6F); - this.JawToothR2.addBox(-0.5F, -1.0F, -1.0F, 1, 2, 2, 0.0F); - this.setRotateAngle(this.JawToothR2, 0.7853981633974483F, 0.0F, 0.17453292519943295F); - this.BodyMain = new ModelRendererAether(this, 86, 92); - this.BodyMain.setRotationPoint(0.0F, 1.1F, 0.0F); - this.BodyMain.addBox(-4.5F, 0.0F, -5.0F, 9, 10, 12, 0.0F); - this.JawMain = new ModelRendererAether(this, 90, 11); - this.JawMain.setRotationPoint(0.0F, 2.0F, -2.0F); - this.JawMain.addBox(-3.0F, -1.7F, -11.5F, 6, 4, 10, 0.0F); - this.WingR1 = new ModelRendererAether(this, 8, 94); - this.WingR1.setRotationPoint(-2.5F, 0.0F, 0.0F); - this.WingR1.addBox(-7.5F, -2.0F, -4.0F, 10, 2, 6, 0.0F); - this.setRotateAngle(this.WingR1, 0.0F, -0.17453292519943295F, 0.0F); - this.HeadBeakFrontR = new ModelRendererAether(this, 31, 69); - this.HeadBeakFrontR.setRotationPoint(-1.2F, 2.0F, -10.7F); - this.HeadBeakFrontR.addBox(-2.0F, -5.8F, 0.0F, 2, 6, 2, 0.0F); - this.setRotateAngle(this.HeadBeakFrontR, 0.05235987755982988F, 0.7853981633974483F, 0.0F); - this.JawToothL1_1 = new ModelRendererAether(this, 85, 0); - this.JawToothL1_1.setRotationPoint(1.5F, -1.6F, -2.3F); - this.JawToothL1_1.addBox(-1.0F, -1.0F, -0.5F, 2, 2, 2, 0.0F); - this.setRotateAngle(this.JawToothL1_1, 0.0F, 0.0F, 0.7853981633974483F); - this.LegRToeM = new ModelRendererAether(this, 14, 203); - this.LegRToeM.setRotationPoint(0.0F, 1.0F, -2.5F); - this.LegRToeM.addBox(-1.5F, -1.0F, -7.0F, 3, 2, 7, 0.0F); - this.setRotateAngle(this.LegRToeM, -0.5235987755982988F, 0.0F, 0.0F); - this.TailFeatherM = new ModelRendererAether(this, 36, 230); - this.TailFeatherM.setRotationPoint(1.0F, 0.0F, 1.0F); - this.TailFeatherM.addBox(-2.5F, -1.0F, 0.0F, 5, 2, 24, 0.0F); - this.setRotateAngle(this.TailFeatherM, -0.5235987755982988F, 0.7853981633974483F, 0.0F); - this.WingLFeatherInt2 = new ModelRendererAether(this, 44, 113); - this.WingLFeatherInt2.setRotationPoint(6.0F, -1.5F, 0.5F); - this.WingLFeatherInt2.addBox(-0.5F, 0.0F, -2.5F, 11, 1, 5, 0.0F); - this.setRotateAngle(this.WingLFeatherInt2, 0.0F, -1.48352986419518F, 0.0F); - this.BodyMain.addChild(this.BodyBack); - this.JawMain.addChild(this.JawFrontL); - this.WingL3.addChild(this.WingLFeatherExt2); - this.ShoulderL.addChild(this.WingL1); - this.LegRFoot.addChild(this.LegRToeR); - this.Neck.addChild(this.HeadMain); - this.HeadMain.addChild(this.HeadFeatherL1); - this.LegL2.addChild(this.LegL3); - this.BodyMain.addChild(this.TailBase); - this.JawMain.addChild(this.JawToothL3); - this.LegLFoot.addChild(this.LegLToeM); - this.LegLToeM.addChild(this.LegLTalonM); - this.WingR1.addChild(this.WingRFeatherInt2); - this.WingR2.addChild(this.WingRFeatherInt1); - this.HeadMain.addChild(this.HeadFront); - this.JawMain.addChild(this.JawToothR3); - this.HeadMain.addChild(this.HeadFeatherL2); - this.LegR2.addChild(this.LegR3); - this.WingL1.addChild(this.WingL2); - this.WingR2.addChild(this.WingR3); - this.LegL1.addChild(this.LegL2); - this.HeadMain.addChild(this.HeadBack); - this.WingL3.addChild(this.WingLFeatherExt3); - this.JawFrontL.addChild(this.JawToothL1); - this.LegR1.addChild(this.LegR2); - this.LegR3.addChild(this.LegRAnkle); - this.TailBase.addChild(this.TailFeatherL); - this.LegLToeR.addChild(this.LegLTalonR); - this.LegRToeR.addChild(this.LegRTalonR); - this.WingL2.addChild(this.WingLFeatherInt1); - this.LegL3.addChild(this.LegLAnkle); - this.WingL3.addChild(this.WingLFeatherExt1); - this.WingL2.addChild(this.WingL3); - this.BodyMain.addChild(this.BodyFront); - this.JawMain.addChild(this.JawFrontR); - this.HeadBeakMain.addChild(this.HeadBeakFrontL); - this.HeadMain.addChild(this.HeadFeatherR1); - this.WingR3.addChild(this.WingRFeatherExt3); - this.TailBase.addChild(this.TailFeatherR); - this.HeadMain.addChild(this.HeadBeakIntL); - this.HeadMain.addChild(this.HeadBeakIntR); - this.LegLFoot.addChild(this.LegLToeR); - this.BodyMain.addChild(this.LegR1); - this.JawMain.addChild(this.JawBack); - this.LegRFoot.addChild(this.LegRToeL); - this.BodyFront.addChild(this.ShoulderL); - this.WingR3.addChild(this.WingRFeatherExt1); - this.HeadMain.addChild(this.HeadFeatherR2); - this.BodyFront.addChild(this.Neck); - this.LegLFoot.addChild(this.LegLToeL); - this.WingR3.addChild(this.WingRFeatherExt2); - this.LegRAnkle.addChild(this.LegRFoot); - this.LegLToeL.addChild(this.LegLTalonL); - this.LegRToeM.addChild(this.LegRTalonM); - this.HeadMain.addChild(this.HeadBeakMain); - this.WingR1.addChild(this.WingR2); - this.JawMain.addChild(this.JawToothL2); - this.BodyFront.addChild(this.ShoulderR); - this.LegRToeL.addChild(this.LegRTalonL); - this.LegLAnkle.addChild(this.LegLFoot); - this.HeadMain.addChild(this.HeadBrow); - this.BodyMain.addChild(this.LegL1); - this.JawMain.addChild(this.JawToothR2); - this.HeadMain.addChild(this.JawMain); - this.ShoulderR.addChild(this.WingR1); - this.HeadBeakMain.addChild(this.HeadBeakFrontR); - this.JawFrontR.addChild(this.JawToothL1_1); - this.LegRFoot.addChild(this.LegRToeM); - this.TailBase.addChild(this.TailFeatherM); - this.WingL1.addChild(this.WingLFeatherInt2); - } - - @Override - public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) - { - this.BodyMain.render(f5); - } -} diff --git a/src/main/java/com/gildedgames/aether/client/models/entities/living/ModelMoaLodLow.java b/src/main/java/com/gildedgames/aether/client/models/entities/living/ModelMoaLodLow.java deleted file mode 100644 index 9fc81362ba..0000000000 --- a/src/main/java/com/gildedgames/aether/client/models/entities/living/ModelMoaLodLow.java +++ /dev/null @@ -1,291 +0,0 @@ -package com.gildedgames.aether.client.models.entities.living; - -import com.gildedgames.aether.client.renderer.ModelRendererAether; -import net.minecraft.entity.Entity; - -/** - * Moa_Wild - Undefined - * Created using Tabula 7.0.1 - */ -public class ModelMoaLodLow extends ModelMoaBase -{ - - public ModelMoaLodLow() - { - this.textureWidth = 128; - this.textureHeight = 256; - this.HeadFeatherL2 = new ModelRendererAether(this, 56, 18); - this.HeadFeatherL2.setRotationPoint(3.8F, 1.0F, 2.0F); - this.HeadFeatherL2.addBox(-0.5F, -2.0F, -1.0F, 1, 4, 10, 0.0F); - this.HeadBrow = new ModelRendererAether(this, 25, 32); - this.HeadBrow.setRotationPoint(0.0F, -5.9F, -5.0F); - this.HeadBrow.addBox(-3.5F, 0.0F, -3.5F, 7, 3, 7, 0.0F); - this.setRotateAngle(HeadBrow, 0.0F, 0.7853981633974483F, 0.0F); - this.HeadFeatherR1 = new ModelRendererAether(this, 0, 4); - this.HeadFeatherR1.setRotationPoint(-3.8F, -4.0F, 2.0F); - this.HeadFeatherR1.addBox(-0.5F, -2.0F, -1.0F, 1, 4, 10, 0.0F); - this.HeadFeatherR2 = new ModelRendererAether(this, 0, 18); - this.HeadFeatherR2.setRotationPoint(-3.8F, 1.0F, 1.9F); - this.HeadFeatherR2.addBox(-0.5F, -2.0F, -1.0F, 1, 4, 10, 0.0F); - this.LegRToeL = new ModelRendererAether(this, 34, 203); - this.LegRToeL.setRotationPoint(1.0F, 1.2F, -2.5F); - this.LegRToeL.addBox(-1.0F, -1.0F, -5.0F, 2, 2, 5, 0.0F); - this.setRotateAngle(LegRToeL, 0.0F, -0.5235987755982988F, 0.0F); - this.WingRFeatherExt1 = new ModelRendererAether(this, 0, 137); - this.WingRFeatherExt1.setRotationPoint(0.0F, 0.0F, -1.0F); - this.WingRFeatherExt1.addBox(-17.0F, -1.0F, -2.5F, 17, 1, 5, 0.0F); - this.setRotateAngle(WingRFeatherExt1, 0.0F, -0.17453292519943295F, 0.0F); - this.HeadBack = new ModelRendererAether(this, 25, 0); - this.HeadBack.setRotationPoint(0.0F, -6.0F, 3.5F); - this.HeadBack.addBox(-4.0F, 0.0F, 0.0F, 8, 8, 6, 0.0F); - this.setRotateAngle(HeadBack, -0.6283185307179586F, 0.0F, 0.0F); - this.Neck = new ModelRendererAether(this, 96, 47); - this.Neck.setRotationPoint(0.0F, 4.0F, -7.0F); - this.Neck.addBox(-2.5F, -13.0F, -3.0F, 5, 17, 6, 0.0F); - this.HeadFeatherL1 = new ModelRendererAether(this, 56, 4); - this.HeadFeatherL1.setRotationPoint(3.8F, -4.0F, 2.0F); - this.HeadFeatherL1.addBox(-0.5F, -2.0F, -1.0F, 1, 4, 10, 0.0F); - this.BodyMain = new ModelRendererAether(this, 86, 92); - this.BodyMain.setRotationPoint(0.0F, 1.1F, 0.0F); - this.BodyMain.addBox(-4.5F, 0.0F, -5.0F, 9, 10, 12, 0.0F); - this.WingR2 = new ModelRendererAether(this, 0, 102); - this.WingR2.setRotationPoint(-8.0F, -1.3F, -1.0F); - this.WingR2.addBox(-10.0F, -1.5F, -3.5F, 13, 3, 7, 0.0F); - this.setRotateAngle(WingR2, 0.0F, 1.8325957145940461F, -0.5235987755982988F); - this.JawMain = new ModelRendererAether(this, 90, 11); - this.JawMain.setRotationPoint(0.0F, 2.0F, -2.0F); - this.JawMain.addBox(-3.0F, -1.7F, -11.5F, 6, 4, 10, 0.0F); - this.LegRFoot = new ModelRendererAether(this, 15, 196); - this.LegRFoot.setRotationPoint(0.0F, 0.0F, -1.5F); - this.LegRFoot.addBox(-2.0F, 0.0F, -3.5F, 4, 2, 5, 0.0F); - this.setRotateAngle(LegRFoot, -0.593411945678072F, 0.0F, 0.0F); - this.LegL2 = new ModelRendererAether(this, 64, 165); - this.LegL2.setRotationPoint(1.5F, 7.0F, 1.5F); - this.LegL2.addBox(-2.0F, -1.0F, -2.0F, 4, 9, 4, 0.0F); - this.setRotateAngle(LegL2, 1.9198621771937625F, 0.0F, 0.0F); - this.WingL1 = new ModelRendererAether(this, 40, 94); - this.WingL1.setRotationPoint(2.5F, 0.0F, 0.0F); - this.WingL1.addBox(-2.5F, -2.0F, -4.0F, 10, 2, 6, 0.0F); - this.WingLFeatherExt2 = new ModelRendererAether(this, 44, 131); - this.WingLFeatherExt2.setRotationPoint(0.0F, 0.5F, 2.0F); - this.WingLFeatherExt2.addBox(-2.0F, -1.0F, -2.5F, 16, 1, 5, 0.0F); - this.setRotateAngle(WingLFeatherExt2, 0.0F, -0.17453292519943295F, 0.0F); - this.LegRToeM = new ModelRendererAether(this, 14, 203); - this.LegRToeM.setRotationPoint(0.0F, 0.8F, -2.5F); - this.LegRToeM.addBox(-1.5F, -1.0F, -7.0F, 3, 2, 7, 0.0F); - this.WingRFeatherInt1 = new ModelRendererAether(this, 10, 119); - this.WingRFeatherInt1.setRotationPoint(-2.0F, 0.0F, 3.0F); - this.WingRFeatherInt1.addBox(-11.5F, 0.0F, -2.5F, 12, 1, 5, 0.0F); - this.setRotateAngle(WingRFeatherInt1, 0.0F, 1.3962634015954636F, 0.0F); - this.WingLFeatherExt1 = new ModelRendererAether(this, 44, 137); - this.WingLFeatherExt1.setRotationPoint(0.0F, 0.0F, -1.0F); - this.WingLFeatherExt1.addBox(0.0F, -1.0F, -2.5F, 17, 1, 5, 0.0F); - this.setRotateAngle(WingLFeatherExt1, 0.0F, 0.17453292519943295F, 0.0F); - this.TailFeatherL = new ModelRendererAether(this, 70, 230); - this.TailFeatherL.setRotationPoint(3.0F, 1.0F, -1.0F); - this.TailFeatherL.addBox(-2.5F, -1.0F, 0.0F, 5, 2, 20, 0.0F); - this.setRotateAngle(TailFeatherL, -0.5235987755982988F, 1.5707963267948966F, 0.0F); - this.LegLFoot = new ModelRendererAether(this, 63, 196); - this.LegLFoot.setRotationPoint(0.0F, 0.0F, -1.5F); - this.LegLFoot.addBox(-2.0F, 0.0F, -3.5F, 4, 2, 5, 0.0F); - this.setRotateAngle(LegLFoot, -0.593411945678072F, 0.0F, 0.0F); - this.WingLFeatherInt1 = new ModelRendererAether(this, 44, 119); - this.WingLFeatherInt1.setRotationPoint(2.0F, 0.0F, 3.0F); - this.WingLFeatherInt1.addBox(-0.5F, 0.0F, -2.5F, 12, 1, 5, 0.0F); - this.setRotateAngle(WingLFeatherInt1, 0.0F, -1.3962634015954636F, 0.0F); - this.BodyFront = new ModelRendererAether(this, 87, 70); - this.BodyFront.setRotationPoint(0.0F, -0.5F, -4.0F); - this.BodyFront.addBox(-4.0F, 0.0F, -9.0F, 8, 10, 12, 0.0F); - this.setRotateAngle(BodyFront, -0.17453292519943295F, 0.0F, 0.0F); - this.WingLFeatherExt3 = new ModelRendererAether(this, 44, 125); - this.WingLFeatherExt3.setRotationPoint(-2.0F, 1.0F, 3.0F); - this.WingLFeatherExt3.addBox(-0.5F, -1.0F, -2.5F, 14, 1, 5, 0.0F); - this.setRotateAngle(WingLFeatherExt3, 0.0F, -0.6981317007977318F, 0.0F); - this.WingR1 = new ModelRendererAether(this, 8, 94); - this.WingR1.setRotationPoint(-2.5F, 0.0F, 0.0F); - this.WingR1.addBox(-7.5F, -2.0F, -4.0F, 10, 2, 6, 0.0F); - this.WingL2 = new ModelRendererAether(this, 40, 102); - this.WingL2.setRotationPoint(8.0F, -1.3F, -1.0F); - this.WingL2.addBox(-3.0F, -1.5F, -3.5F, 13, 3, 7, 0.0F); - this.setRotateAngle(WingL2, 0.0F, -1.8325957145940461F, 0.5235987755982988F); - this.WingRFeatherExt3 = new ModelRendererAether(this, 6, 125); - this.WingRFeatherExt3.setRotationPoint(2.0F, 1.0F, 3.0F); - this.WingRFeatherExt3.addBox(-12.5F, -1.0F, -2.5F, 14, 1, 5, 0.0F); - this.setRotateAngle(WingRFeatherExt3, 0.0F, 0.6981317007977318F, 0.0F); - this.HeadBeakIntL = new ModelRendererAether(this, 120, 11); - this.HeadBeakIntL.setRotationPoint(3.5F, 0.0F, -4.5F); - this.HeadBeakIntL.addBox(0.0F, 0.0F, -3.0F, 0, 4, 3, 0.0F); - this.setRotateAngle(HeadBeakIntL, 0.0F, 0.5235987755982988F, 0.0F); - this.LegLAnkle = new ModelRendererAether(this, 65, 189); - this.LegLAnkle.setRotationPoint(0.0F, 7.0F, 0.0F); - this.LegLAnkle.addBox(-1.0F, -1.0F, -3.0F, 2, 2, 5, 0.0F); - this.setRotateAngle(LegLAnkle, 0.4363323129985824F, 0.0F, 0.3665191429188092F); - this.LegRAnkle = new ModelRendererAether(this, 17, 189); - this.LegRAnkle.setRotationPoint(0.0F, 7.0F, 0.0F); - this.LegRAnkle.addBox(-1.0F, -1.0F, -3.0F, 2, 2, 5, 0.0F); - this.setRotateAngle(LegRAnkle, 0.4363323129985824F, 0.0F, -0.3665191429188092F); - this.BodyBack = new ModelRendererAether(this, 97, 114); - this.BodyBack.setRotationPoint(0.0F, 10.0F, 7.0F); - this.BodyBack.addBox(-4.0F, -6.0F, -2.0F, 8, 6, 2, 0.0F); - this.setRotateAngle(BodyBack, -0.41887902047863906F, 0.0F, 0.0F); - this.LegR2 = new ModelRendererAether(this, 16, 165); - this.LegR2.setRotationPoint(-1.5F, 7.0F, 1.5F); - this.LegR2.addBox(-2.0F, -1.0F, -2.0F, 4, 9, 4, 0.0F); - this.setRotateAngle(LegR2, 1.9198621771937625F, 0.0F, 0.0F); - this.WingR3 = new ModelRendererAether(this, 0, 0); - this.WingR3.setRotationPoint(-9.0F, 0.0F, 0.0F); - this.WingR3.addBox(1.0F, 0.0F, -1.0F, 2, 1, 2, 0.0F); - this.setRotateAngle(WingR3, 0.0F, 0.2617993877991494F, -0.17453292519943295F); - this.HeadBeakMain = new ModelRendererAether(this, 25, 54); - this.HeadBeakMain.setRotationPoint(0.0F, -2.0F, -4.7F); - this.HeadBeakMain.addBox(-2.5F, -3.8F, -9.4F, 5, 6, 9, 0.0F); - this.TailFeatherM = new ModelRendererAether(this, 36, 230); - this.TailFeatherM.setRotationPoint(1.0F, 0.0F, 1.0F); - this.TailFeatherM.addBox(-2.5F, -1.0F, 0.0F, 5, 2, 24, 0.0F); - this.setRotateAngle(TailFeatherM, -0.5235987755982988F, 0.7853981633974483F, 0.0F); - this.LegL1 = new ModelRendererAether(this, 60, 146); - this.LegL1.setRotationPoint(2.5F, 6.0F, 3.0F); - this.LegL1.addBox(-1.0F, -2.5F, -3.5F, 5, 12, 7, 0.0F); - this.setRotateAngle(LegL1, -0.6981317007977318F, 0.0F, -0.3490658503988659F); - this.HeadFront = new ModelRendererAether(this, 27, 42); - this.HeadFront.setRotationPoint(0.0F, 0.5F, -4.5F); - this.HeadFront.addBox(-3.0F, -6.0F, -3.0F, 6, 6, 6, 0.0F); - this.setRotateAngle(HeadFront, 0.0F, 0.7853981633974483F, 0.0F); - this.TailBase = new ModelRendererAether(this, 91, 122); - this.TailBase.setRotationPoint(0.0F, 1.7F, 8.5F); - this.TailBase.addBox(-4.5F, -1.5F, -4.5F, 8, 5, 8, 0.0F); - this.setRotateAngle(TailBase, 0.0F, -0.7853981633974483F, 0.0F); - this.LegRToeR = new ModelRendererAether(this, 0, 203); - this.LegRToeR.setRotationPoint(-1.0F, 1.2F, -2.5F); - this.LegRToeR.addBox(-1.0F, -1.0F, -5.0F, 2, 2, 5, 0.0F); - this.setRotateAngle(LegRToeR, 0.0F, 0.5235987755982988F, 0.0F); - this.LegL3 = new ModelRendererAether(this, 66, 178); - this.LegL3.setRotationPoint(0.0F, 6.5F, 0.0F); - this.LegL3.addBox(-1.5F, -1.0F, -1.5F, 3, 8, 3, 0.0F); - this.setRotateAngle(LegL3, -1.0471975511965976F, 0.0F, 0.0F); - this.HeadMain = new ModelRendererAether(this, 22, 14); - this.HeadMain.setRotationPoint(0.0F, -12.0F, 0.0F); - this.HeadMain.addBox(-4.5F, -6.0F, -4.5F, 9, 10, 8, 0.0F); - this.setRotateAngle(HeadMain, 0.17453292519943295F, 0.0F, 0.0F); - this.JawToothL2 = new ModelRendererAether(this, 120, 4); - this.JawToothL2.setRotationPoint(2.3F, -1.5F, -9.6F); - this.JawToothL2.addBox(-0.5F, -1.0F, -1.0F, 1, 2, 2, 0.0F); - this.setRotateAngle(JawToothL2, 0.7853981633974483F, 0.0F, -0.17453292519943295F); - this.WingL3 = new ModelRendererAether(this, 0, 0); - this.WingL3.setRotationPoint(9.0F, 0.0F, 0.0F); - this.WingL3.addBox(-3.0F, 0.0F, -1.0F, 2, 1, 2, 0.0F); - this.setRotateAngle(WingL3, 0.0F, -0.2617993877991494F, 0.17453292519943295F); - this.LegR3 = new ModelRendererAether(this, 18, 178); - this.LegR3.setRotationPoint(0.0F, 6.5F, 0.0F); - this.LegR3.addBox(-1.5F, -1.0F, -1.5F, 3, 8, 3, 0.0F); - this.setRotateAngle(LegR3, -1.0471975511965976F, 0.0F, 0.0F); - this.ShoulderR = new ModelRendererAether(this, 10, 81); - this.ShoulderR.setRotationPoint(-3.0F, 1.5F, -4.0F); - this.ShoulderR.addBox(-4.5F, -2.5F, -4.5F, 6, 4, 9, 0.0F); - this.setRotateAngle(ShoulderR, 0.0F, 0.0F, -0.9599310885968813F); - this.WingLFeatherInt2 = new ModelRendererAether(this, 44, 113); - this.WingLFeatherInt2.setRotationPoint(6.0F, -1.5F, 0.5F); - this.WingLFeatherInt2.addBox(-0.5F, 0.0F, -2.5F, 11, 1, 5, 0.0F); - this.setRotateAngle(WingLFeatherInt2, 0.0F, -1.9198621771937625F, 0.0F); - this.JawToothL3 = new ModelRendererAether(this, 120, 8); - this.JawToothL3.setRotationPoint(2.3F, -1.5F, -6.5F); - this.JawToothL3.addBox(-0.5F, -1.0F, -1.0F, 1, 2, 2, 0.0F); - this.setRotateAngle(JawToothL3, 0.7853981633974483F, 0.0F, -0.17453292519943295F); - this.ShoulderL = new ModelRendererAether(this, 40, 81); - this.ShoulderL.setRotationPoint(3.0F, 1.5F, -4.0F); - this.ShoulderL.addBox(-1.5F, -2.5F, -4.5F, 6, 4, 9, 0.0F); - this.setRotateAngle(ShoulderL, 0.0F, 0.0F, 0.9599310885968813F); - this.WingRFeatherExt2 = new ModelRendererAether(this, 2, 131); - this.WingRFeatherExt2.setRotationPoint(0.0F, 0.5F, 2.0F); - this.WingRFeatherExt2.addBox(-14.0F, -1.0F, -2.5F, 16, 1, 5, 0.0F); - this.setRotateAngle(WingRFeatherExt2, 0.0F, 0.17453292519943295F, 0.0F); - this.WingRFeatherInt2 = new ModelRendererAether(this, 12, 113); - this.WingRFeatherInt2.setRotationPoint(-6.0F, -1.5F, 0.5F); - this.WingRFeatherInt2.addBox(-11.5F, 0.0F, -2.5F, 11, 1, 5, 0.0F); - this.setRotateAngle(WingRFeatherInt2, 0.0F, 1.7453292519943295F, 0.0F); - this.LegLToeM = new ModelRendererAether(this, 62, 203); - this.LegLToeM.setRotationPoint(0.0F, 1.2F, -2.5F); - this.LegLToeM.addBox(-1.5F, -1.0F, -7.0F, 3, 2, 7, 0.0F); - this.LegLToeL = new ModelRendererAether(this, 82, 203); - this.LegLToeL.setRotationPoint(1.0F, 0.8F, -2.5F); - this.LegLToeL.addBox(-1.0F, -1.0F, -5.0F, 2, 2, 5, 0.0F); - this.setRotateAngle(LegLToeL, 0.0F, -0.5235987755982988F, 0.0F); - this.HeadBeakIntR = new ModelRendererAether(this, 86, 11); - this.HeadBeakIntR.setRotationPoint(-3.5F, 0.0F, -4.5F); - this.HeadBeakIntR.addBox(0.0F, 0.0F, -3.0F, 0, 4, 3, 0.0F); - this.setRotateAngle(HeadBeakIntR, 0.0F, -0.5235987755982988F, 0.0F); - this.LegLToeR = new ModelRendererAether(this, 48, 203); - this.LegLToeR.setRotationPoint(-1.0F, 0.8F, -2.5F); - this.LegLToeR.addBox(-1.0F, -1.0F, -5.0F, 2, 2, 5, 0.0F); - this.setRotateAngle(LegLToeR, 0.0F, 0.5235987755982988F, 0.0F); - this.LegR1 = new ModelRendererAether(this, 12, 146); - this.LegR1.setRotationPoint(-2.5F, 6.0F, 3.0F); - this.LegR1.addBox(-4.0F, -2.5F, -3.5F, 5, 12, 7, 0.0F); - this.setRotateAngle(LegR1, -0.6981317007977318F, 0.0F, 0.3490658503988659F); - this.TailFeatherR = new ModelRendererAether(this, 10, 230); - this.TailFeatherR.setRotationPoint(-1.0F, 1.0F, 3.0F); - this.TailFeatherR.addBox(-2.5F, -1.0F, 0.0F, 5, 2, 20, 0.0F); - this.setRotateAngle(TailFeatherR, -0.5235987755982988F, 0.0F, 0.0F); - this.HeadMain.addChild(this.HeadFeatherL2); - this.HeadMain.addChild(this.HeadBrow); - this.HeadMain.addChild(this.HeadFeatherR1); - this.HeadMain.addChild(this.HeadFeatherR2); - this.LegRFoot.addChild(this.LegRToeL); - this.WingR3.addChild(this.WingRFeatherExt1); - this.HeadMain.addChild(this.HeadBack); - this.BodyFront.addChild(this.Neck); - this.HeadMain.addChild(this.HeadFeatherL1); - this.WingR1.addChild(this.WingR2); - this.HeadMain.addChild(this.JawMain); - this.LegRAnkle.addChild(this.LegRFoot); - this.LegL1.addChild(this.LegL2); - this.ShoulderL.addChild(this.WingL1); - this.WingL3.addChild(this.WingLFeatherExt2); - this.LegRFoot.addChild(this.LegRToeM); - this.WingR2.addChild(this.WingRFeatherInt1); - this.WingL3.addChild(this.WingLFeatherExt1); - this.TailBase.addChild(this.TailFeatherL); - this.LegLAnkle.addChild(this.LegLFoot); - this.WingL2.addChild(this.WingLFeatherInt1); - this.BodyMain.addChild(this.BodyFront); - this.WingL3.addChild(this.WingLFeatherExt3); - this.ShoulderR.addChild(this.WingR1); - this.WingL1.addChild(this.WingL2); - this.WingR3.addChild(this.WingRFeatherExt3); - this.HeadMain.addChild(this.HeadBeakIntL); - this.LegL3.addChild(this.LegLAnkle); - this.LegR3.addChild(this.LegRAnkle); - this.BodyMain.addChild(this.BodyBack); - this.LegR1.addChild(this.LegR2); - this.WingR2.addChild(this.WingR3); - this.HeadMain.addChild(this.HeadBeakMain); - this.TailBase.addChild(this.TailFeatherM); - this.BodyMain.addChild(this.LegL1); - this.HeadMain.addChild(this.HeadFront); - this.BodyMain.addChild(this.TailBase); - this.LegRFoot.addChild(this.LegRToeR); - this.LegL2.addChild(this.LegL3); - this.Neck.addChild(this.HeadMain); - this.JawMain.addChild(this.JawToothL2); - this.WingL2.addChild(this.WingL3); - this.LegR2.addChild(this.LegR3); - this.BodyFront.addChild(this.ShoulderR); - this.WingL1.addChild(this.WingLFeatherInt2); - this.JawMain.addChild(this.JawToothL3); - this.BodyFront.addChild(this.ShoulderL); - this.WingR3.addChild(this.WingRFeatherExt2); - this.WingR1.addChild(this.WingRFeatherInt2); - this.LegLFoot.addChild(this.LegLToeM); - this.LegLFoot.addChild(this.LegLToeL); - this.HeadMain.addChild(this.HeadBeakIntR); - this.LegLFoot.addChild(this.LegLToeR); - this.BodyMain.addChild(this.LegR1); - this.TailBase.addChild(this.TailFeatherR); - } - - @Override - public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) - { - this.BodyMain.render(f5); - } -} \ No newline at end of file diff --git a/src/main/java/com/gildedgames/aether/client/models/entities/living/ModelMysteriousFigure.java b/src/main/java/com/gildedgames/aether/client/models/entities/living/ModelMysteriousFigure.java deleted file mode 100644 index baebae959a..0000000000 --- a/src/main/java/com/gildedgames/aether/client/models/entities/living/ModelMysteriousFigure.java +++ /dev/null @@ -1,225 +0,0 @@ -package com.gildedgames.aether.client.models.entities.living; - -import net.minecraft.client.model.ModelBase; -import net.minecraft.client.model.ModelRenderer; -import net.minecraft.entity.Entity; -import net.minecraft.util.math.MathHelper; - -/** - * Mystery Man - Undefined - * Created using Tabula 7.0.0 - */ -public class ModelMysteriousFigure extends ModelBase -{ - public final ModelRenderer chest1; - - public final ModelRenderer chest2; - - public final ModelRenderer head1; - - public final ModelRenderer shoulder_right; - - public final ModelRenderer plumproot; - - public final ModelRenderer shoulder_left; - - public final ModelRenderer waist; - - public final ModelRenderer leg_right; - - public final ModelRenderer leg_left; - - public final ModelRenderer boot_right1; - - public final ModelRenderer boot_right2; - - public final ModelRenderer boot_right3; - - public final ModelRenderer boot_left1; - - public final ModelRenderer boot_left2; - - public final ModelRenderer boot_left3; - - public final ModelRenderer head2; - - public final ModelRenderer arm_right1; - - public final ModelRenderer arm_right2; - - public final ModelRenderer arm_right3; - - public final ModelRenderer sack; - - public final ModelRenderer sack_handle; - - public final ModelRenderer arm_left1; - - public final ModelRenderer arm_left2; - - public final ModelRenderer arm_left3; - - public ModelMysteriousFigure() - { - this.textureWidth = 64; - this.textureHeight = 64; - this.shoulder_left = new ModelRenderer(this, 27, 11); - this.shoulder_left.mirror = true; - this.shoulder_left.setRotationPoint(4.0F, -1.5F, 0.0F); - this.shoulder_left.addBox(-0.5F, -2.0F, -2.5F, 6, 4, 5, 0.0F); - this.setRotateAngle(this.shoulder_left, 0.0F, 0.0F, 0.17453292519943295F); - this.boot_left2 = new ModelRenderer(this, 44, 14); - this.boot_left2.mirror = true; - this.boot_left2.setRotationPoint(0.0F, 2.0F, 0.5F); - this.boot_left2.addBox(-1.5F, 0.0F, -6.0F, 3, 2, 7, 0.0F); - this.leg_left = new ModelRenderer(this, 0, 42); - this.leg_left.mirror = true; - this.leg_left.setRotationPoint(3.0F, 6.0F, 1.0F); - this.leg_left.addBox(-1.5F, -1.5F, -1.5F, 3, 12, 3, 0.0F); - this.boot_left1 = new ModelRenderer(this, 24, 0); - this.boot_left1.mirror = true; - this.boot_left1.setRotationPoint(0.0F, 10.0F, 0.0F); - this.boot_left1.addBox(-2.0F, 0.0F, -2.0F, 4, 2, 4, 0.0F); - this.head2 = new ModelRenderer(this, 0, 6); - this.head2.setRotationPoint(0.0F, -8.0F, 4.0F); - this.head2.addBox(-1.5F, 0.0F, 0.0F, 3, 1, 1, 0.0F); - this.setRotateAngle(this.head2, -0.6981317007977318F, 0.0F, 0.0F); - this.arm_left1 = new ModelRenderer(this, 34, 23); - this.arm_left1.mirror = true; - this.arm_left1.setRotationPoint(2.5F, 2.5F, 0.0F); - this.arm_left1.addBox(-0.5F, -1.5F, -1.5F, 3, 6, 3, 0.0F); - this.setRotateAngle(this.arm_left1, -0.31869712141416456F, 0.17453292519943295F, -0.5235987755982988F); - this.chest2 = new ModelRenderer(this, 36, 0); - this.chest2.setRotationPoint(0.0F, 1.5F, 3.0F); - this.chest2.addBox(-4.0F, 0.0F, -6.0F, 8, 5, 6, 0.0F); - this.setRotateAngle(this.chest2, -0.5235987755982988F, 0.0F, 0.0F); - this.boot_left3 = new ModelRenderer(this, 57, 18); - this.boot_left3.mirror = true; - this.boot_left3.setRotationPoint(0.0F, 0.0F, -6.0F); - this.boot_left3.addBox(-1.0F, -2.0F, 0.0F, 2, 2, 1, 0.0F); - this.setRotateAngle(this.boot_left3, -0.4363323129985824F, 0.0F, 0.0F); - this.plumproot = new ModelRenderer(this, 12, 44); - this.plumproot.setRotationPoint(2.0F, 0.5F, 2.0F); - this.plumproot.addBox(-5.0F, -3.0F, 0.0F, 10, 10, 10, 0.0F); - this.setRotateAngle(this.plumproot, 0.08726646259971647F, 0.4363323129985824F, 0.0F); - this.boot_right1 = new ModelRenderer(this, 24, 0); - this.boot_right1.setRotationPoint(0.0F, 10.0F, 0.0F); - this.boot_right1.addBox(-2.0F, 0.0F, -2.0F, 4, 2, 4, 0.0F); - this.sack_handle = new ModelRenderer(this, 0, 0); - this.sack_handle.setRotationPoint(0.0F, 3.0F, -1.0F); - this.sack_handle.addBox(-0.5F, -3.0F, -0.5F, 1, 3, 1, 0.0F); - this.setRotateAngle(this.sack_handle, 1.3089969389957472F, 0.8726646259971648F, 0.0F); - this.chest1 = new ModelRenderer(this, 0, 16); - this.chest1.setRotationPoint(0.0F, -0.8F, 0.0F); - this.chest1.addBox(-5.0F, -4.0F, -4.0F, 10, 6, 7, 0.0F); - this.setRotateAngle(this.chest1, 0.5235987755982988F, 0.0F, 0.0F); - this.waist = new ModelRenderer(this, 0, 29); - this.waist.setRotationPoint(0.0F, 5.0F, -3.0F); - this.waist.addBox(-6.0F, 0.0F, -3.5F, 12, 6, 7, 0.0F); - this.arm_right3 = new ModelRenderer(this, 38, 35); - this.arm_right3.setRotationPoint(0.0F, 5.5F, -1.5F); - this.arm_right3.addBox(-2.0F, 0.0F, -2.0F, 4, 2, 4, 0.0F); - this.arm_left2 = new ModelRenderer(this, 46, 23); - this.arm_left2.mirror = true; - this.arm_left2.setRotationPoint(1.0F, 4.5F, 1.5F); - this.arm_left2.addBox(-1.49F, 0.0F, -3.0F, 3, 9, 3, 0.0F); - this.setRotateAngle(this.arm_left2, -1.5707963267948966F, 0.0F, 0.0F); - this.boot_right2 = new ModelRenderer(this, 44, 14); - this.boot_right2.setRotationPoint(0.0F, 2.0F, 0.5F); - this.boot_right2.addBox(-1.5F, 0.0F, -6.0F, 3, 2, 7, 0.0F); - this.sack = new ModelRenderer(this, 44, 43); - this.sack.setRotationPoint(0.0F, 8.4F, -1.4F); - this.sack.addBox(-2.5F, 0.0F, -2.5F, 5, 6, 5, 0.0F); - this.setRotateAngle(this.sack, 0.3490658503988659F, 0.0F, -0.17453292519943295F); - this.boot_right3 = new ModelRenderer(this, 57, 18); - this.boot_right3.setRotationPoint(0.0F, 0.0F, -6.0F); - this.boot_right3.addBox(-1.0F, -2.0F, 0.0F, 2, 2, 1, 0.0F); - this.setRotateAngle(this.boot_right3, -0.4363323129985824F, 0.0F, 0.0F); - this.arm_left3 = new ModelRenderer(this, 38, 35); - this.arm_left3.mirror = true; - this.arm_left3.setRotationPoint(0.0F, 5.5F, -1.5F); - this.arm_left3.addBox(-2.0F, 0.0F, -2.0F, 4, 2, 4, 0.0F); - this.leg_right = new ModelRenderer(this, 0, 42); - this.leg_right.setRotationPoint(-3.0F, 6.0F, 1.0F); - this.leg_right.addBox(-1.5F, -1.5F, -1.5F, 3, 12, 3, 0.0F); - this.shoulder_right = new ModelRenderer(this, 27, 11); - this.shoulder_right.setRotationPoint(-4.0F, -1.5F, 0.0F); - this.shoulder_right.addBox(-5.5F, -2.0F, -2.5F, 6, 4, 5, 0.0F); - this.setRotateAngle(this.shoulder_right, 0.0F, 0.0F, -0.17453292519943295F); - this.arm_right1 = new ModelRenderer(this, 34, 23); - this.arm_right1.setRotationPoint(-2.5F, 2.5F, 0.0F); - this.arm_right1.addBox(-2.5F, -1.5F, -1.5F, 3, 6, 3, 0.0F); - this.setRotateAngle(this.arm_right1, -0.5235987755982988F, 0.0F, 0.3490658503988659F); - this.head1 = new ModelRenderer(this, 0, 0); - this.head1.setRotationPoint(0.0F, -4.0F, -3.2F); - this.head1.addBox(-4.0F, -8.0F, -4.0F, 8, 8, 8, 0.0F); - this.setRotateAngle(this.head1, -0.5235987755982988F, 0.08726646259971647F, 0.17453292519943295F); - this.arm_right2 = new ModelRenderer(this, 46, 23); - this.arm_right2.setRotationPoint(-1.0F, 4.5F, 1.5F); - this.arm_right2.addBox(-1.51F, 0.0F, -3.0F, 3, 9, 3, 0.0F); - this.setRotateAngle(this.arm_right2, -0.3490658503988659F, 0.0F, 0.0F); - this.chest1.addChild(this.shoulder_left); - this.boot_left1.addChild(this.boot_left2); - this.waist.addChild(this.leg_left); - this.leg_left.addChild(this.boot_left1); - this.head1.addChild(this.head2); - this.shoulder_left.addChild(this.arm_left1); - this.chest1.addChild(this.chest2); - this.boot_left2.addChild(this.boot_left3); - this.chest1.addChild(this.plumproot); - this.leg_right.addChild(this.boot_right1); - this.arm_right3.addChild(this.sack_handle); - this.chest2.addChild(this.waist); - this.arm_right2.addChild(this.arm_right3); - this.arm_left1.addChild(this.arm_left2); - this.boot_right1.addChild(this.boot_right2); - this.arm_right2.addChild(this.sack); - this.boot_right2.addChild(this.boot_right3); - this.arm_left2.addChild(this.arm_left3); - this.waist.addChild(this.leg_right); - this.chest1.addChild(this.shoulder_right); - this.shoulder_right.addChild(this.arm_right1); - this.chest1.addChild(this.head1); - this.arm_right1.addChild(this.arm_right2); - } - - @Override - public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) - { - this.chest1.render(f5); - } - - /** - * This is a helper function from Tabula to set the rotation of model parts - */ - public void setRotateAngle(ModelRenderer modelRenderer, float x, float y, float z) - { - modelRenderer.rotateAngleX = x; - modelRenderer.rotateAngleY = y; - modelRenderer.rotateAngleZ = z; - } - - @Override - public void setRotationAngles(float limbSwing, float limbSwingAmount, float ageInTicks, float headYaw, float headPitch, float scaleFactor, Entity entity) - { - super.setRotationAngles(limbSwing, limbSwingAmount, ageInTicks, headYaw, headPitch, scaleFactor, entity); - - this.head1.rotateAngleY = headYaw * 0.017453292F; - this.head1.rotateAngleX = headPitch * 0.0057453292F; - - this.shoulder_right.rotationPointZ = 0.0F; - this.shoulder_right.rotationPointX = -4.0F; - this.shoulder_left.rotationPointZ = 0.0F; - this.shoulder_left.rotationPointX = 4.0F; - - this.shoulder_right.rotateAngleX = MathHelper.cos(limbSwing * 0.6662F + (float) Math.PI) * 2.0F * limbSwingAmount * 0.5F; - this.shoulder_left.rotateAngleX = MathHelper.cos(limbSwing * 0.6662F) * 2.0F * limbSwingAmount * 0.5F; - this.shoulder_right.rotateAngleZ = 0.0F; - this.shoulder_left.rotateAngleZ = 0.0F; - - this.shoulder_right.rotateAngleZ += MathHelper.cos(ageInTicks * 0.09F) * 0.05F + 0.05F; - this.shoulder_left.rotateAngleZ -= MathHelper.cos(ageInTicks * 0.09F) * 0.05F + 0.05F; - this.shoulder_right.rotateAngleX += MathHelper.sin(ageInTicks * 0.067F) * 0.05F; - this.shoulder_left.rotateAngleX -= MathHelper.sin(ageInTicks * 0.067F) * 0.05F; - } -} diff --git a/src/main/java/com/gildedgames/aether/client/models/entities/living/ModelNecromancer.java b/src/main/java/com/gildedgames/aether/client/models/entities/living/ModelNecromancer.java deleted file mode 100644 index 31898de68c..0000000000 --- a/src/main/java/com/gildedgames/aether/client/models/entities/living/ModelNecromancer.java +++ /dev/null @@ -1,184 +0,0 @@ -package com.gildedgames.aether.client.models.entities.living; - -import net.minecraft.client.model.ModelBase; -import net.minecraft.client.model.ModelRenderer; -import net.minecraft.entity.Entity; -import net.minecraft.util.math.MathHelper; - -public class ModelNecromancer extends ModelBase -{ - public ModelRenderer torso_top; - public ModelRenderer torso_bottom; - public ModelRenderer arm_left; - public ModelRenderer arm_right; - public ModelRenderer cowl_bottom; - public ModelRenderer cape; - public ModelRenderer head; - public ModelRenderer neck; - public ModelRenderer waist; - public ModelRenderer thigh_right; - public ModelRenderer thigh_left; - public ModelRenderer cape_bottom; - public ModelRenderer knee_right; - public ModelRenderer shin_right; - public ModelRenderer foot_right; - public ModelRenderer knee_left; - public ModelRenderer shin_left; - public ModelRenderer foot_left; - public ModelRenderer elbow_left; - public ModelRenderer arm_left_bottom; - public ModelRenderer elbow_right; - public ModelRenderer arm_right_bottom; - public ModelRenderer mask_bottom; - public ModelRenderer mask_top; - - public ModelNecromancer() - { - this.textureWidth = 64; - this.textureHeight = 128; - this.thigh_right = new ModelRenderer(this, 0, 79); - this.thigh_right.setRotationPoint(-2.45F, 3.5F, 0.0F); - this.thigh_right.addBox(-2.0F, 0.0F, -2.0F, 4, 7, 4, 0.0F); - this.knee_left = new ModelRenderer(this, 0, 90); - this.knee_left.mirror = true; - this.knee_left.setRotationPoint(0.0F, 7.5F, 0.0F); - this.knee_left.addBox(-1.5F, -2.0F, -2.2F, 3, 4, 4, 0.0F); - this.waist = new ModelRenderer(this, 0, 70); - this.waist.setRotationPoint(0.0F, 4.0F, 0.0F); - this.waist.addBox(-4.5F, 0.0F, -2.5F, 9, 4, 5, 0.0F); - this.cape = new ModelRenderer(this, 0, 31); - this.cape.setRotationPoint(0.0F, 0.0F, 0.0F); - this.cape.addBox(-9.5F, -4.7F, -3.0F, 19, 12, 6, 0.0F); - this.neck = new ModelRenderer(this, 31, 16); - this.neck.setRotationPoint(0.0F, -6.0F, -1.5F); - this.neck.addBox(-2.5F, 0.0F, 0.0F, 5, 3, 3, 0.0F); - this.torso_top = new ModelRenderer(this, 0, 49); - this.torso_top.setRotationPoint(0.0F, -2.0F, 0.0F); - this.torso_top.addBox(-5.5F, -4.0F, -2.5F, 11, 8, 5, 0.0F); - this.arm_right_bottom = new ModelRenderer(this, 32, 67); - this.arm_right_bottom.setRotationPoint(0.0F, 2.0F, 0.5F); - this.arm_right_bottom.addBox(-2.0F, -0.5F, -2.0F, 4, 7, 4, 0.0F); - this.setRotateAngle(arm_right_bottom, -0.08726646259971647F, 0.0F, 0.0F); - this.elbow_right = new ModelRenderer(this, 32, 61); - this.elbow_right.setRotationPoint(-2.0F, 6.0F, 0.0F); - this.elbow_right.addBox(-1.5F, 0.0F, -0.25F, 3, 3, 3, 0.0F); - this.foot_left = new ModelRenderer(this, 0, 109); - this.foot_left.mirror = true; - this.foot_left.setRotationPoint(0.0F, 7.0F, -1.5F); - this.foot_left.addBox(-1.5F, -2.0F, -1.5F, 3, 2, 1, 0.0F); - this.torso_bottom = new ModelRenderer(this, 0, 62); - this.torso_bottom.setRotationPoint(0.0F, 4.0F, 0.0F); - this.torso_bottom.addBox(-4.0F, 0.0F, -2.0F, 8, 4, 4, 0.0F); - this.thigh_left = new ModelRenderer(this, 0, 79); - this.thigh_left.mirror = true; - this.thigh_left.setRotationPoint(2.45F, 3.5F, 0.0F); - this.thigh_left.addBox(-2.0F, 0.0F, -2.0F, 4, 7, 4, 0.0F); - this.shin_right = new ModelRenderer(this, 0, 98); - this.shin_right.setRotationPoint(0.0F, 0.0F, 0.0F); - this.shin_right.addBox(-2.01F, 0.0F, -2.0F, 4, 7, 4, 0.0F); - this.elbow_left = new ModelRenderer(this, 48, 61); - this.elbow_left.setRotationPoint(2.0F, 6.0F, 0.0F); - this.elbow_left.addBox(-1.5F, 0.0F, -0.25F, 3, 3, 3, 0.0F); - this.mask_bottom = new ModelRenderer(this, 0, 11); - this.mask_bottom.setRotationPoint(0.0F, 0.0F, 0.0F); - this.mask_bottom.addBox(-3.5F, -2.5F, -4.5F, 7, 3, 5, 0.0F); - this.cape_bottom = new ModelRenderer(this, 16, 79); - this.cape_bottom.setRotationPoint(0.0F, 4.0F, 0.0F); - this.cape_bottom.addBox(-4.5F, 0.0F, -2.5F, 9, 10, 5, 0.0F); - this.arm_left_bottom = new ModelRenderer(this, 48, 67); - this.arm_left_bottom.setRotationPoint(0.0F, 2.0F, 0.5F); - this.arm_left_bottom.addBox(-2.0F, -0.5F, -2.0F, 4, 7, 4, 0.0F); - this.setRotateAngle(arm_left_bottom, -0.08726646259971647F, 0.0F, 0.0F); - this.arm_left = new ModelRenderer(this, 32, 49); - this.arm_left.mirror = true; - this.arm_left.setRotationPoint(4.5F, -2.5F, 0.0F); - this.arm_left.addBox(0.01F, -1.0F, -2.0F, 4, 8, 4, 0.0F); - this.setRotateAngle(arm_left, 0.0F, 0.0F, -0.17453292519943295F); - this.cowl_bottom = new ModelRenderer(this, 0, 19); - this.cowl_bottom.setRotationPoint(0.0F, -3.5F, -3.5F); - this.cowl_bottom.addBox(-5.5F, -2.0F, -0.8F, 11, 3, 9, 0.0F); - this.setRotateAngle(cowl_bottom, 0.18203784098300857F, 0.0F, 0.0F); - this.shin_left = new ModelRenderer(this, 0, 98); - this.shin_left.mirror = true; - this.shin_left.setRotationPoint(0.0F, 0.0F, 0.0F); - this.shin_left.addBox(-2.0F, 0.0F, -2.0F, 4, 7, 4, 0.0F); - this.mask_top = new ModelRenderer(this, 0, 0); - this.mask_top.setRotationPoint(0.0F, 0.0F, 0.0F); - this.mask_top.addBox(-4.5F, -8.5F, -4.5F, 9, 6, 5, 0.0F); - this.arm_right = new ModelRenderer(this, 32, 49); - this.arm_right.setRotationPoint(-4.5F, -2.5F, 0.0F); - this.arm_right.addBox(-4.01F, -1.0F, -2.0F, 4, 8, 4, 0.0F); - this.setRotateAngle(arm_right, 0.0F, 0.0F, 0.17453292519943295F); - this.foot_right = new ModelRenderer(this, 0, 109); - this.foot_right.setRotationPoint(0.0F, 7.0F, -1.5F); - this.foot_right.addBox(-1.5F, -2.0F, -1.5F, 3, 2, 1, 0.0F); - this.head = new ModelRenderer(this, 28, 0); - this.head.setRotationPoint(0.0F, -5.0F, 0.0F); - this.head.addBox(-4.0F, -8.0F, -4.0F, 8, 8, 8, 0.0F); - this.knee_right = new ModelRenderer(this, 0, 90); - this.knee_right.setRotationPoint(0.0F, 7.5F, 0.0F); - this.knee_right.addBox(-1.5F, -2.0F, -2.2F, 3, 4, 4, 0.0F); - this.waist.addChild(this.thigh_right); - this.thigh_left.addChild(this.knee_left); - this.torso_bottom.addChild(this.waist); - this.torso_top.addChild(this.cape); - this.torso_top.addChild(this.neck); - this.elbow_right.addChild(this.arm_right_bottom); - this.arm_right.addChild(this.elbow_right); - this.shin_left.addChild(this.foot_left); - this.torso_top.addChild(this.torso_bottom); - this.waist.addChild(this.thigh_left); - this.knee_right.addChild(this.shin_right); - this.arm_left.addChild(this.elbow_left); - this.head.addChild(this.mask_bottom); - this.waist.addChild(this.cape_bottom); - this.elbow_left.addChild(this.arm_left_bottom); - this.torso_top.addChild(this.arm_left); - this.torso_top.addChild(this.cowl_bottom); - this.knee_left.addChild(this.shin_left); - this.head.addChild(this.mask_top); - this.torso_top.addChild(this.arm_right); - this.shin_right.addChild(this.foot_right); - this.torso_top.addChild(this.head); - this.thigh_right.addChild(this.knee_right); } - - @Override - public void render(final Entity entity, final float f, final float f1, final float f2, final float f3, final float f4, final float f5) - { - this.torso_top.render(f5); - } - - /** - * This is a helper function from Tabula to set the rotation of model parts - */ - public void setRotateAngle(final ModelRenderer modelRenderer, final float x, final float y, final float z) - { - modelRenderer.rotateAngleX = x; - modelRenderer.rotateAngleY = y; - modelRenderer.rotateAngleZ = z; - } - - @Override - public void setRotationAngles(final float limbSwing, final float limbSwingAmount, final float ageInTicks, final float netHeadYaw, final float headPitch, - final float scaleFactor, final Entity entity) - { - super.setRotationAngles(limbSwing, limbSwingAmount, ageInTicks, netHeadYaw, headPitch, scaleFactor, entity); - - final float pitch = headPitch * 0.017453292F; - final float yaw = netHeadYaw * 0.017453292F; - - this.head.rotateAngleX = pitch; - this.head.rotateAngleY = yaw; - - final float leftSwingX = (MathHelper.cos(limbSwing * 0.6662F) * 0.75F * limbSwingAmount); - final float rightSwingX = (MathHelper.cos(limbSwing * 0.6662F + (float) Math.PI) * 0.75F * limbSwingAmount); - - this.thigh_left.rotateAngleX = 0.08726646259971647F + leftSwingX; - - this.thigh_right.rotateAngleX = 0.08726646259971647F + rightSwingX; - - this.arm_left.rotateAngleX = leftSwingX; - - this.arm_right.rotateAngleX = rightSwingX; - } -} diff --git a/src/main/java/com/gildedgames/aether/client/models/entities/living/ModelRamWool.java b/src/main/java/com/gildedgames/aether/client/models/entities/living/ModelRamWool.java deleted file mode 100644 index a15bc4b08d..0000000000 --- a/src/main/java/com/gildedgames/aether/client/models/entities/living/ModelRamWool.java +++ /dev/null @@ -1,57 +0,0 @@ -package com.gildedgames.aether.client.models.entities.living; - -import net.minecraft.client.model.ModelBase; -import net.minecraft.client.model.ModelRenderer; -import net.minecraft.client.renderer.GlStateManager; -import net.minecraft.entity.Entity; -import net.minecraft.util.math.MathHelper; - -public class ModelRamWool extends ModelBase -{ - public ModelRenderer BodyMain; - public ModelRenderer BodyBack; - - public ModelRamWool() - { - this.textureWidth = 64; - this.textureHeight = 64; - this.BodyBack = new ModelRenderer(this, 6, 31); - this.BodyBack.setRotationPoint(0.0F, 0.0F, 0.0F); - this.BodyBack.addBox(-6.0F, -1.5F, 4.6F, 12, 5, 10, 0.0F); - this.setRotateAngle(BodyBack, -0.17453292519943295F, -0.0F, 0.0F); - this.BodyMain = new ModelRenderer(this, 0, 0); - this.BodyMain.setRotationPoint(0.0F, 0.0F, 0.0F); - this.BodyMain.addBox(-6.5F, -1.0F, -10.0F, 13, 16, 15, 0.0F); - this.BodyMain.addChild(this.BodyBack); - - } - - @Override - public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) - { - if (this.isChild) - { - GlStateManager.pushMatrix(); - GlStateManager.scale(0.5F, 0.5F, 0.5F); - GlStateManager.translate(0.0F, 24.0F * f5, 0.0F); - this.BodyMain.render(f5); - GlStateManager.popMatrix(); - } - else - { - this.BodyMain.render(f5); - } - } - - /** - * This is a helper function from Tabula to set the rotation of model parts - */ - public void setRotateAngle(ModelRenderer modelRenderer, float x, float y, float z) - { - modelRenderer.rotateAngleX = x; - modelRenderer.rotateAngleY = y; - modelRenderer.rotateAngleZ = z; - } - - -} \ No newline at end of file diff --git a/src/main/java/com/gildedgames/aether/client/models/entities/living/ModelSheepuff.java b/src/main/java/com/gildedgames/aether/client/models/entities/living/ModelSheepuff.java deleted file mode 100644 index 228d60eeea..0000000000 --- a/src/main/java/com/gildedgames/aether/client/models/entities/living/ModelSheepuff.java +++ /dev/null @@ -1,343 +0,0 @@ -package com.gildedgames.aether.client.models.entities.living; - -import com.gildedgames.aether.common.entities.animals.EntitySheepuff; -import net.minecraft.client.model.ModelBase; -import net.minecraft.client.model.ModelRenderer; -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.util.math.MathHelper; - -public class ModelSheepuff extends ModelBase -{ - public ModelRenderer mainBody; - public ModelRenderer legFrontLeftThigh; - public ModelRenderer legFrontRightThigh; - public ModelRenderer legBackLeftThigh; - public ModelRenderer legBackRightThigh; - public ModelRenderer bodyBack; - public ModelRenderer neckFluff; - public ModelRenderer legFrontLeftFoot; - public ModelRenderer legFrontRightFoot; - public ModelRenderer legBackLeftFoot; - public ModelRenderer legBackRightFoot; - public ModelRenderer tail; - public ModelRenderer headMain; - public ModelRenderer earLeftTop; - public ModelRenderer earRightTop; - public ModelRenderer headJaw; - public ModelRenderer headSnout; - public ModelRenderer hornLeft; - public ModelRenderer hornRight; - public ModelRenderer headPlatingBack; - public ModelRenderer headPlatingMid; - public ModelRenderer headPlatingTop; - public ModelRenderer eyeRight; - public ModelRenderer eyeLeft; - public ModelRenderer headCheekRight; - public ModelRenderer headCheekLeft; - public ModelRenderer clothBaseRight; - public ModelRenderer clothBaseLeft; - public ModelRenderer earLeftBottom; - public ModelRenderer earRightBottom; - public ModelRenderer hornLeftCurl; - public ModelRenderer hornLeftCurlBase; - public ModelRenderer hornLeftPointTip; - public ModelRenderer hornRightCurl; - public ModelRenderer hornRightCurlBase; - public ModelRenderer hornRightPoint; - public ModelRenderer clothRightConnect1; - public ModelRenderer clothRightConnect2; - public ModelRenderer clothRightConnect3; - public ModelRenderer clothLeftConnect1; - public ModelRenderer clothLeftConnect2; - public ModelRenderer clothLeftConnect3; - - public ModelSheepuff() - { - this.textureWidth = 150; - this.textureHeight = 230; - this.clothBaseRight = new ModelRenderer(this, 59, 28); - this.clothBaseRight.setRotationPoint(-3.5F, -6.7F, -2.3F); - this.clothBaseRight.addBox(0.0F, 0.0F, 0.0F, 1, 3, 3, 0.0F); - this.clothBaseLeft = new ModelRenderer(this, 85, 28); - this.clothBaseLeft.setRotationPoint(2.5F, -6.7F, -2.3F); - this.clothBaseLeft.addBox(0.0F, 0.0F, 0.0F, 1, 3, 3, 0.0F); - this.legFrontRightFoot = new ModelRenderer(this, 106, 66); - this.legFrontRightFoot.setRotationPoint(0.0F, 2.9F, 0.0F); - this.legFrontRightFoot.addBox(-1.0F, 0.0F, -1.0F, 2, 6, 2, 0.0F); - this.hornRight = new ModelRenderer(this, 47, 38); - this.hornRight.setRotationPoint(-5.8F, -6.8F, -2.2F); - this.hornRight.addBox(-2.0F, 0.6F, -2.0F, 4, 4, 4, 0.0F); - this.setRotateAngle(hornRight, 0.0F, 0.0F, -0.27314402793711257F); - this.headCheekRight = new ModelRenderer(this, 59, 34); - this.headCheekRight.setRotationPoint(-0.3F, -0.8F, -5.0F); - this.headCheekRight.addBox(-2.0F, 0.0F, -2.0F, 1, 3, 4, 0.0F); - this.setRotateAngle(headCheekRight, 0.0F, -0.36425021489121656F, 0.0F); - this.legBackLeftFoot = new ModelRenderer(this, 47, 99); - this.legBackLeftFoot.setRotationPoint(0.0F, 2.9F, 0.0F); - this.legBackLeftFoot.addBox(-1.0F, 0.0F, -1.0F, 2, 6, 2, 0.0F); - this.legFrontLeftThigh = new ModelRenderer(this, 34, 74); - this.legFrontLeftThigh.setRotationPoint(4.0F, 9.0F, -4.0F); - this.legFrontLeftThigh.addBox(-1.5F, -3.0F, -2.5F, 3, 6, 5, 0.0F); - this.headJaw = new ModelRenderer(this, 54, 21); - this.headJaw.setRotationPoint(0.0F, 1.8F, -3.0F); - this.headJaw.addBox(-1.5F, -1.0F, -5.0F, 3, 2, 5, 0.0F); - this.headPlatingTop = new ModelRenderer(this, 70, 21); - this.headPlatingTop.setRotationPoint(0.0F, -5.0F, -3.1F); - this.headPlatingTop.addBox(-1.5F, -1.5F, -0.5F, 3, 3, 3, 0.0F); - this.setRotateAngle(headPlatingTop, -0.8196066167365371F, 0.0F, 0.0F); - this.neckFluff = new ModelRenderer(this, 64, 48); - this.neckFluff.setRotationPoint(0.0F, 1.9F, -3.6F); - this.neckFluff.addBox(-3.0F, -3.0F, -6.0F, 6, 6, 6, 0.0F); - this.headPlatingMid = new ModelRenderer(this, 67, 27); - this.headPlatingMid.setRotationPoint(0.0F, -3.5F, -4.7F); - this.headPlatingMid.addBox(-2.5F, 0.0F, 0.0F, 5, 1, 4, 0.0F); - this.setRotateAngle(headPlatingMid, 0.8651597102135892F, 0.0F, 0.0F); - this.headCheekLeft = new ModelRenderer(this, 83, 34); - this.headCheekLeft.setRotationPoint(3.2F, -0.7F, -6.1F); - this.headCheekLeft.addBox(-2.0F, 0.0F, -2.0F, 1, 3, 4, 0.0F); - this.setRotateAngle(headCheekLeft, 0.0F, 0.37472219040318255F, 0.0F); - this.eyeRight = new ModelRenderer(this, 56, 34); - this.eyeRight.setRotationPoint(-1.6F, -1.1F, -4.4F); - this.eyeRight.addBox(-0.5F, -1.0F, -1.0F, 1, 2, 2, 0.0F); - this.setRotateAngle(eyeRight, 0.0F, -0.5918411493512771F, 0.0F); - this.earLeftBottom = new ModelRenderer(this, 90, 53); - this.earLeftBottom.setRotationPoint(0.0F, 5.0F, 0.0F); - this.earLeftBottom.addBox(-0.5F, 0.0F, -1.0F, 1, 5, 2, 0.0F); - this.earRightBottom = new ModelRenderer(this, 56, 53); - this.earRightBottom.setRotationPoint(0.0F, 5.0F, 0.0F); - this.earRightBottom.addBox(-0.5F, 0.0F, -1.0F, 1, 5, 2, 0.0F); - this.clothRightConnect1 = new ModelRenderer(this, 30, 123); - this.clothRightConnect1.setRotationPoint(-0.2F, 3.1F, 2.9F); - this.clothRightConnect1.addBox(0.0F, -3.0F, 0.0F, 0, 11, 9, 0.0F); - this.setRotateAngle(clothRightConnect1, 0.0F, -0.9105382707654417F, 0.0F); - this.bodyBack = new ModelRenderer(this, 59, 85); - this.bodyBack.setRotationPoint(0.0F, 0.1F, 4.4F); - this.bodyBack.addBox(-4.5F, 0.0F, 0.0F, 9, 6, 8, 0.0F); - this.setRotateAngle(bodyBack, -0.18203784098300857F, 0.0F, 0.0F); - this.mainBody = new ModelRenderer(this, 50, 60); - this.mainBody.setRotationPoint(0.0F, 6.1F, 0.0F); - this.mainBody.addBox(-5.0F, 0.0F, -7.5F, 10, 9, 16, 0.0F); - this.earLeftTop = new ModelRenderer(this, 90, 46); - this.earLeftTop.setRotationPoint(3.8F, -3.4F, -1.5F); - this.earLeftTop.addBox(-0.5F, 0.0F, -1.0F, 1, 5, 2, 0.0F); - this.eyeLeft = new ModelRenderer(this, 90, 34); - this.eyeLeft.setRotationPoint(1.6F, -1.1F, -4.5F); - this.eyeLeft.addBox(-0.5F, -1.0F, -1.0F, 1, 2, 2, 0.0F); - this.setRotateAngle(eyeLeft, 0.0F, 0.5918411493512771F, 0.0F); - this.hornLeftPointTip = new ModelRenderer(this, 102, 38); - this.hornLeftPointTip.setRotationPoint(0.0F, -1.0F, 0.0F); - this.hornLeftPointTip.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); - this.legFrontRightThigh = new ModelRenderer(this, 102, 74); - this.legFrontRightThigh.setRotationPoint(-4.0F, 9.0F, -4.0F); - this.legFrontRightThigh.addBox(-1.5F, -3.0F, -2.5F, 3, 6, 5, 0.0F); - this.hornLeft = new ModelRenderer(this, 89, 38); - this.hornLeft.setRotationPoint(5.8F, -6.8F, -2.2F); - this.hornLeft.addBox(-2.0F, 0.6F, -2.0F, 4, 4, 4, 0.0F); - this.setRotateAngle(hornLeft, 0.0F, 0.0F, 0.27314402793711257F); - this.clothRightConnect2 = new ModelRenderer(this, 48, 124); - this.clothRightConnect2.setRotationPoint(0.0F, 3.0F, 9.0F); - this.clothRightConnect2.addBox(0.0F, -3.0F, 0.0F, 0, 8, 11, 0.0F); - this.setRotateAngle(clothRightConnect2, 0.0F, 0.8651597102135892F, 0.0F); - this.hornRightCurl = new ModelRenderer(this, 35, 40); - this.hornRightCurl.setRotationPoint(-2.5F, 3.0F, -3.0F); - this.hornRightCurl.addBox(0.0F, 0.0F, 0.0F, 3, 1, 3, 0.0F); - this.headSnout = new ModelRenderer(this, 82, 20); - this.headSnout.setRotationPoint(0.0F, 0.0F, 0.0F); - this.headSnout.addBox(-1.5F, -4.9F, -7.5F, 3, 2, 6, 0.0F); - this.setRotateAngle(headSnout, 0.5918411493512771F, 0.0F, 0.0F); - this.hornLeftCurl = new ModelRenderer(this, 105, 40); - this.hornLeftCurl.setRotationPoint(-0.4F, 3.0F, -3.0F); - this.hornLeftCurl.addBox(0.0F, 0.0F, 0.0F, 3, 1, 3, 0.0F); - this.hornRightCurlBase = new ModelRenderer(this, 37, 44); - this.hornRightCurlBase.setRotationPoint(-2.51F, 2.51F, 0.0F); - this.hornRightCurlBase.addBox(0.0F, -1.5F, -1.5F, 1, 3, 3, 0.0F); - this.headPlatingBack = new ModelRenderer(this, 69, 32); - this.headPlatingBack.setRotationPoint(0.0F, -5.7F, 0.5F); - this.headPlatingBack.addBox(-2.5F, 0.0F, -2.5F, 5, 3, 2, 0.0F); - this.hornRightPoint = new ModelRenderer(this, 46, 38); - this.hornRightPoint.setRotationPoint(2.0F, -1.0F, 0.0F); - this.hornRightPoint.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); - this.clothLeftConnect3 = new ModelRenderer(this, 70, 118); - this.clothLeftConnect3.setRotationPoint(0.0F, 0.0F, 11.0F); - this.clothLeftConnect3.addBox(0.0F, -3.0F, 0.0F, 0, 8, 4, 0.0F); - this.legBackRightFoot = new ModelRenderer(this, 97, 99); - this.legBackRightFoot.setRotationPoint(0.0F, 2.9F, 0.0F); - this.legBackRightFoot.addBox(-1.0F, 0.0F, -1.0F, 2, 6, 2, 0.0F); - this.headMain = new ModelRenderer(this, 62, 40); - this.headMain.setRotationPoint(0.0F, -1.7F, -6.1F); - this.headMain.addBox(-3.5F, -3.5F, -4.0F, 7, 7, 7, 0.0F); - this.legFrontLeftFoot = new ModelRenderer(this, 38, 66); - this.legFrontLeftFoot.setRotationPoint(0.0F, 2.9F, 0.0F); - this.legFrontLeftFoot.addBox(-1.0F, 0.0F, -1.0F, 2, 6, 2, 0.0F); - this.legBackRightThigh = new ModelRenderer(this, 93, 88); - this.legBackRightThigh.setRotationPoint(-3.7F, 9.0F, 7.0F); - this.legBackRightThigh.addBox(-1.5F, -3.0F, -2.5F, 3, 6, 5, 0.0F); - this.tail = new ModelRenderer(this, 73, 99); - this.tail.setRotationPoint(0.0F, 0.7F, 7.2F); - this.tail.addBox(-1.0F, 0.0F, 0.0F, 2, 3, 1, 0.0F); - this.setRotateAngle(tail, 0.5918411493512771F, 0.0F, 0.0F); - this.clothRightConnect3 = new ModelRenderer(this, 70, 131); - this.clothRightConnect3.setRotationPoint(0.0F, 0.0F, 11.0F); - this.clothRightConnect3.addBox(0.0F, -3.0F, 0.0F, 0, 8, 4, 0.0F); - this.legBackLeftThigh = new ModelRenderer(this, 43, 88); - this.legBackLeftThigh.setRotationPoint(3.7F, 9.0F, 7.0F); - this.legBackLeftThigh.addBox(-1.5F, -3.0F, -2.5F, 3, 6, 5, 0.0F); - this.earRightTop = new ModelRenderer(this, 56, 46); - this.earRightTop.setRotationPoint(-3.8F, -3.4F, -1.5F); - this.earRightTop.addBox(-0.5F, 0.0F, -1.0F, 1, 5, 2, 0.0F); - this.hornLeftCurlBase = new ModelRenderer(this, 107, 44); - this.hornLeftCurlBase.setRotationPoint(1.61F, 2.51F, 0.0F); - this.hornLeftCurlBase.addBox(0.0F, -1.5F, -1.5F, 1, 3, 3, 0.0F); - this.clothLeftConnect2 = new ModelRenderer(this, 48, 111); - this.clothLeftConnect2.setRotationPoint(0.0F, 3.0F, 9.0F); - this.clothLeftConnect2.addBox(0.0F, -3.0F, 0.0F, 0, 8, 11, 0.0F); - this.setRotateAngle(clothLeftConnect2, 0.0F, -0.8651597102135892F, 0.0F); - this.clothLeftConnect1 = new ModelRenderer(this, 30, 110); - this.clothLeftConnect1.setRotationPoint(1.1F, 3.1F, 2.9F); - this.clothLeftConnect1.addBox(0.0F, -3.0F, 0.0F, 0, 11, 9, 0.0F); - this.setRotateAngle(clothLeftConnect1, 0.0F, 0.9105382707654417F, 0.0F); - this.headMain.addChild(this.clothBaseRight); - this.headMain.addChild(this.clothBaseLeft); - this.legFrontRightThigh.addChild(this.legFrontRightFoot); - this.headMain.addChild(this.hornRight); - this.headMain.addChild(this.headCheekRight); - this.legBackLeftThigh.addChild(this.legBackLeftFoot); - this.mainBody.addChild(this.legFrontLeftThigh); - this.headMain.addChild(this.headJaw); - this.headMain.addChild(this.headPlatingTop); - this.mainBody.addChild(this.neckFluff); - this.headMain.addChild(this.headPlatingMid); - this.headMain.addChild(this.headCheekLeft); - this.headMain.addChild(this.eyeRight); - this.earLeftTop.addChild(this.earLeftBottom); - this.earRightTop.addChild(this.earRightBottom); - this.clothBaseRight.addChild(this.clothRightConnect1); - this.mainBody.addChild(this.bodyBack); - this.headMain.addChild(this.earLeftTop); - this.headMain.addChild(this.eyeLeft); - this.hornLeftCurl.addChild(this.hornLeftPointTip); - this.mainBody.addChild(this.legFrontRightThigh); - this.headMain.addChild(this.hornLeft); - this.clothRightConnect1.addChild(this.clothRightConnect2); - this.hornRight.addChild(this.hornRightCurl); - this.headMain.addChild(this.headSnout); - this.hornLeft.addChild(this.hornLeftCurl); - this.hornRight.addChild(this.hornRightCurlBase); - this.headMain.addChild(this.headPlatingBack); - this.hornRightCurl.addChild(this.hornRightPoint); - this.clothLeftConnect2.addChild(this.clothLeftConnect3); - this.legBackRightThigh.addChild(this.legBackRightFoot); - this.neckFluff.addChild(this.headMain); - this.legFrontLeftThigh.addChild(this.legFrontLeftFoot); - this.mainBody.addChild(this.legBackRightThigh); - this.bodyBack.addChild(this.tail); - this.clothRightConnect2.addChild(this.clothRightConnect3); - this.mainBody.addChild(this.legBackLeftThigh); - this.headMain.addChild(this.earRightTop); - this.hornLeft.addChild(this.hornLeftCurlBase); - this.clothLeftConnect1.addChild(this.clothLeftConnect2); - this.clothBaseLeft.addChild(this.clothLeftConnect1); - } - - @Override - public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) - { - this.mainBody.render(f5); - } - - public void setRotateAngle(ModelRenderer modelRenderer, float x, float y, float z) - { - modelRenderer.rotateAngleX = x; - modelRenderer.rotateAngleY = y; - modelRenderer.rotateAngleZ = z; - } - - @Override - public void setRotationAngles(float limbSwing, float limbSwingAmount, float ageInTicks, float netHeadYaw, float headPitch, float scaleFactor, - Entity entityIn) - { - EntitySheepuff sheepuff = (EntitySheepuff) entityIn; - - float headRotY = netHeadYaw * 0.017453292F; - float headRotX = headPitch * 0.017453292F; - - this.headMain.rotateAngleY = headRotY; - this.clothLeftConnect1.rotateAngleX = -headRotX; - this.clothRightConnect1.rotateAngleX = -headRotX; - this.clothLeftConnect1.rotateAngleY = 0.91f -headRotY; - this.clothRightConnect1.rotateAngleY = -0.91f -headRotY; - - float puffiness = sheepuff.getPuffiness(); - - float swing = MathHelper.cos(limbSwing * 0.6662F) * limbSwingAmount; - float swing180 = MathHelper.cos(limbSwing * 0.6662F + (float) Math.PI) * limbSwingAmount; - - this.earLeftTop.rotateAngleX = swing180 / 3f; - this.earLeftBottom.rotateAngleX = swing / 3f; - this.earRightTop.rotateAngleX = swing / 3f; - this.earRightBottom.rotateAngleX = swing180 / 3f; - - if (!entityIn.onGround && puffiness > .5f) - { - float swayLeft = MathHelper.cos(ageInTicks) / 5f; - float swayRight = MathHelper.sin(ageInTicks) / 5f; - - float p2 = puffiness * 2f - 1f; - - this.legBackLeftThigh.rotateAngleX = (0.54F + swayLeft) * p2; - this.legFrontLeftThigh.rotateAngleX = (-0.50F + swayLeft) * p2; - this.legBackRightThigh.rotateAngleX = (0.54F + swayRight) * p2; - this.legFrontRightThigh.rotateAngleX =(-0.5F + swayRight) * p2; - this.legBackLeftThigh.rotateAngleZ = (-1F + swayLeft) * p2; - this.legFrontLeftThigh.rotateAngleZ = (-1F + swayRight) * p2; - this.legBackRightThigh.rotateAngleZ = (1.13F + swayRight) * p2; - this.legFrontRightThigh.rotateAngleZ = (1.13F + swayLeft) * p2; - } - else - { - this.legBackLeftThigh.rotateAngleX = swing * 1.4F; - this.legFrontLeftThigh.rotateAngleX = swing180 * 1.4F; - this.legBackRightThigh.rotateAngleX = swing180 * 1.4F; - this.legFrontRightThigh.rotateAngleX = swing * 1.4F; - this.legBackLeftThigh.rotateAngleZ = 0; - this.legFrontLeftThigh.rotateAngleZ = 0; - this.legBackRightThigh.rotateAngleZ = 0; - this.legFrontRightThigh.rotateAngleZ = 0; - } - - if (sheepuff.getSheared()) - { - this.tail.isHidden = false; - this.tail.rotateAngleZ = (MathHelper.cos(ageInTicks * 0.1662F) * 0.2F); - } - else - { - this.tail.isHidden = true; - } - - } - - @Override - public void setLivingAnimations(EntityLivingBase entitylivingbaseIn, float p_78086_2_, float p_78086_3_, float partialTickTime) - { - super.setLivingAnimations(entitylivingbaseIn, p_78086_2_, p_78086_3_, partialTickTime); - - float perc = ((EntitySheepuff) entitylivingbaseIn).getHeadRotationPointY(partialTickTime); - float rotationPointY = 1.9F + perc * 4.1F; - float headAng = ((EntitySheepuff) entitylivingbaseIn).getHeadRotationAngleX(partialTickTime); - - this.headMain.rotateAngleX = headAng / 2f; - this.neckFluff.rotateAngleX = headAng / 2f; - this.neckFluff.rotationPointY = rotationPointY; - - float legRotPoint = 2.9F + perc * -1.9F; - float bod = 6.1F + perc * 1.9F; - - this.legBackLeftFoot.rotationPointY = legRotPoint; - this.legBackRightFoot.rotationPointY = legRotPoint; - this.legFrontRightFoot.rotationPointY = legRotPoint; - this.legFrontLeftFoot.rotationPointY = legRotPoint; - this.mainBody.rotationPointY = bod; - } -} diff --git a/src/main/java/com/gildedgames/aether/client/models/entities/living/ModelSheepuffWool.java b/src/main/java/com/gildedgames/aether/client/models/entities/living/ModelSheepuffWool.java deleted file mode 100644 index 2d96c41cae..0000000000 --- a/src/main/java/com/gildedgames/aether/client/models/entities/living/ModelSheepuffWool.java +++ /dev/null @@ -1,140 +0,0 @@ -package com.gildedgames.aether.client.models.entities.living; - -import com.gildedgames.aether.common.entities.animals.EntitySheepuff; -import net.minecraft.client.model.ModelBase; -import net.minecraft.client.model.ModelRenderer; -import net.minecraft.client.renderer.GlStateManager; -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.util.math.MathHelper; - -public class ModelSheepuffWool extends ModelBase -{ - public ModelRenderer woolMain; - public ModelRenderer woolMainTop; - public ModelRenderer woolBack; - public ModelRenderer woolTail; - public ModelRenderer woolFrontLeftThigh; - public ModelRenderer woolBackLeftThigh; - public ModelRenderer woolFrontRightThigh; - public ModelRenderer woolBackRightThigh; - public ModelRenderer planeTopBend; - public ModelRenderer planeTopBack; - public ModelRenderer planeLeftBend; - public ModelRenderer planeRightBend; - public ModelRenderer planeTop; - public ModelRenderer planeLeft; - public ModelRenderer planeRight; - - public ModelSheepuffWool() - { - this.textureWidth = 100; - this.textureHeight = 100; - this.woolFrontRightThigh = new ModelRenderer(this, 52, 7); - this.woolFrontRightThigh.setRotationPoint(-4.0F, 8.3F, -4.0F); - this.woolFrontRightThigh.addBox(-2.5F, 0.0F, -3.0F, 5, 5, 6, 0.0F); - this.woolBackRightThigh = new ModelRenderer(this, 53, 57); - this.woolBackRightThigh.setRotationPoint(-4.0F, 8.3F, 7.0F); - this.woolBackRightThigh.addBox(-2.5F, 0.0F, -3.0F, 5, 5, 6, 0.0F); - this.planeTop = new ModelRenderer(this, 18, 74); - this.planeTop.setRotationPoint(0.0F, 0.0F, 3.0F); - this.planeTop.addBox(-6.0F, 0.0F, 0.0F, 12, 0, 12, 0.0F); - this.setRotateAngle(planeTop, -0.8203047484373349F, 0.0F, 0.0F); - this.planeTopBack = new ModelRenderer(this, 26, 86); - this.planeTopBack.setRotationPoint(0.0F, -1.0F, 7.0F); - this.planeTopBack.addBox(-4.7F, 0.0F, 0.0F, 10, 0, 6, 0.0F); - this.setRotateAngle(planeTopBack, -0.27314402793711257F, 0.0F, 0.0F); - this.woolBack = new ModelRenderer(this, 25, 47); - this.woolBack.setRotationPoint(0.0F, 1.1F, 6.8F); - this.woolBack.addBox(-5.5F, 0.0F, 0.0F, 11, 10, 6, 0.0F); - this.setRotateAngle(woolBack, -0.18203784098300857F, 0.0F, 0.0F); - this.woolBackLeftThigh = new ModelRenderer(this, 9, 57); - this.woolBackLeftThigh.setRotationPoint(4.0F, 8.3F, 7.0F); - this.woolBackLeftThigh.addBox(-2.5F, 0.0F, -3.0F, 5, 5, 6, 0.0F); - this.planeRightBend = new ModelRenderer(this, 63, 67); - this.planeRightBend.setRotationPoint(-6.0F, 4.0F, -6.4F); - this.planeRightBend.addBox(0.0F, -4.0F, 0.0F, 0, 8, 4, 0.0F); - this.setRotateAngle(planeRightBend, 0.0F, 0.40980330836826856F, 3.141592653589793F); - this.woolMain = new ModelRenderer(this, 15, 20); - this.woolMain.setRotationPoint(0.0F, 3.4F, 0.0F); - this.woolMain.addBox(-6.0F, 0.0F, -6.5F, 12, 12, 15, 0.0F); - this.setRotateAngle(woolMain, 0.0F, 0.01300062177754636F, 0.0F); - this.planeTopBend = new ModelRenderer(this, 27, 71); - this.planeTopBend.setRotationPoint(0.0F, 0.0F, -6.3F); - this.planeTopBend.addBox(-6.0F, 0.0F, 0.0F, 12, 0, 3, 0.0F); - this.setRotateAngle(planeTopBend, 0.8196066167365371F, 0.0F, 0.0F); - this.woolMainTop = new ModelRenderer(this, 20, 6); - this.woolMainTop.setRotationPoint(0.0F, -1.0F, 1.0F); - this.woolMainTop.addBox(-5.0F, 0.0F, -6.0F, 10, 2, 12, 0.0F); - this.woolFrontLeftThigh = new ModelRenderer(this, 10, 7); - this.woolFrontLeftThigh.setRotationPoint(4.0F, 8.3F, -4.0F); - this.woolFrontLeftThigh.addBox(-2.5F, 0.0F, -3.0F, 5, 5, 6, 0.0F); - this.planeLeftBend = new ModelRenderer(this, 10, 67); - this.planeLeftBend.setRotationPoint(6.0F, 4.2F, -6.4F); - this.planeLeftBend.addBox(0.0F, -4.0F, 0.0F, 0, 8, 4, 0.0F); - this.setRotateAngle(planeLeftBend, 0.0F, 0.40980330836826856F, 0.0F); - this.woolTail = new ModelRenderer(this, 38, 63); - this.woolTail.setRotationPoint(0.0F, 4.2F, 10.1F); - this.woolTail.addBox(-1.0F, 0.0F, 0.0F, 2, 5, 2, 0.0F); - this.setRotateAngle(woolTail, 0.4553564018453205F, 0.0F, 0.0F); - this.planeRight = new ModelRenderer(this, 57, 69); - this.planeRight.setRotationPoint(0.0F, 0.0F, 4.0F); - this.planeRight.addBox(0.0F, -4.0F, 0.0F, 0, 8, 10, 0.0F); - this.setRotateAngle(planeRight, 0.0F, -0.3839724354387525F, 0.0F); - this.planeLeft = new ModelRenderer(this, 4, 69); - this.planeLeft.setRotationPoint(0.0F, 0.0F, 4.0F); - this.planeLeft.addBox(0.0F, -4.0F, 0.0F, 0, 8, 10, 0.0F); - this.setRotateAngle(planeLeft, 0.0F, -0.3839724354387525F, 0.009599310885968812F); - this.woolMain.addChild(this.woolFrontRightThigh); - this.woolMain.addChild(this.woolBackRightThigh); - this.planeTopBend.addChild(this.planeTop); - this.woolMain.addChild(this.planeTopBack); - this.woolMain.addChild(this.woolBack); - this.woolMain.addChild(this.woolBackLeftThigh); - this.woolMain.addChild(this.planeRightBend); - this.woolMain.addChild(this.planeTopBend); - this.woolMain.addChild(this.woolMainTop); - this.woolMain.addChild(this.woolFrontLeftThigh); - this.woolMain.addChild(this.planeLeftBend); - this.woolMain.addChild(this.woolTail); - this.planeRightBend.addChild(this.planeRight); - this.planeLeftBend.addChild(this.planeLeft); - } - - @Override - public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) - { - GlStateManager.pushMatrix(); - - float puffiness = ((EntitySheepuff) entity).getPuffiness(); - float scale = 1 + puffiness * 0.3f; - - GlStateManager.scale(scale, scale, scale); - GlStateManager.translate(0, -puffiness / 4f, 0); - - this.woolMain.render(f5); - - GlStateManager.popMatrix(); - } - - /** - * This is a helper function from Tabula to set the rotation of model parts - */ - public void setRotateAngle(ModelRenderer modelRenderer, float x, float y, float z) - { - modelRenderer.rotateAngleX = x; - modelRenderer.rotateAngleY = y; - modelRenderer.rotateAngleZ = z; - } - - @Override - public void setLivingAnimations(EntityLivingBase entitylivingbaseIn, float limbSwing, float limbSwingAmount, float partialTickTime) - { - super.setLivingAnimations(entitylivingbaseIn, limbSwing, limbSwingAmount, partialTickTime); - - float perc = ((EntitySheepuff) entitylivingbaseIn).getHeadRotationPointY(partialTickTime); - - this.woolMain.rotationPointY = 3.4F + perc * 1.9F; - this.woolTail.rotateAngleZ = (MathHelper.cos(entitylivingbaseIn.ticksExisted * 0.1662F) * 0.2F); - } -} diff --git a/src/main/java/com/gildedgames/aether/client/models/entities/living/ModelSkyrootLizard.java b/src/main/java/com/gildedgames/aether/client/models/entities/living/ModelSkyrootLizard.java deleted file mode 100644 index f06eb2a3ca..0000000000 --- a/src/main/java/com/gildedgames/aether/client/models/entities/living/ModelSkyrootLizard.java +++ /dev/null @@ -1,316 +0,0 @@ -package com.gildedgames.aether.client.models.entities.living; - -import net.minecraft.client.model.ModelBase; -import net.minecraft.client.model.ModelRenderer; -import net.minecraft.entity.Entity; -import net.minecraft.client.renderer.GlStateManager; -import net.minecraft.util.math.MathHelper; -import org.lwjgl.opengl.GL11; - -/** - * skyroot_lizard - Undefined - * Created using Tabula 5.1.0 - */ -public class ModelSkyrootLizard extends ModelBase -{ - public ModelRenderer body; - public ModelRenderer neck_1; - public ModelRenderer tail_1; - public ModelRenderer leg_front_left_1; - public ModelRenderer leg_front_right_1; - public ModelRenderer leg_back_left_1; - public ModelRenderer leg_back_right_1; - public ModelRenderer neck_2; - public ModelRenderer neck_1_flaps; - public ModelRenderer neck_2_flaps; - public ModelRenderer head_1; - public ModelRenderer head_2; - public ModelRenderer earflap_left; - public ModelRenderer earflap_right; - public ModelRenderer tongue; - public ModelRenderer tail_2; - public ModelRenderer tail_1_flaps; - public ModelRenderer tail_3; - public ModelRenderer tail_2_flaps; - public ModelRenderer tail_3_flaps; - public ModelRenderer leg_front_left_2; - public ModelRenderer foot_front_left; - public ModelRenderer claw_front_left_1; - public ModelRenderer claw_front_left_2; - public ModelRenderer claw_front_left_3; - public ModelRenderer leg_front_right_2; - public ModelRenderer foot_front_right; - public ModelRenderer claw_front_right_1; - public ModelRenderer claw_front_right_2; - public ModelRenderer claw_front_right_3; - public ModelRenderer leg_back_left_2; - public ModelRenderer foot_back_left; - public ModelRenderer claw_back_left_1; - public ModelRenderer claw_back_left_2; - public ModelRenderer claw_back_left_3; - public ModelRenderer leg_front_right_2_1; - public ModelRenderer foot_front_right_1; - public ModelRenderer claw_front_right_1_1; - public ModelRenderer claw_front_right_2_1; - public ModelRenderer claw_front_right_3_1; - - public ModelSkyrootLizard() { - this.textureWidth = 64; - this.textureHeight = 128; - this.foot_front_left = new ModelRenderer(this, 49, 93); - this.foot_front_left.setRotationPoint(5.5F, 0.0F, 0.0F); - this.foot_front_left.addBox(0.0F, -0.1F, 0.0F, 2, 2, 2, 0.0F); - this.setRotateAngle(foot_front_left, 0.04363323129985824F, 0.8464846872172498F, -0.3490658503988659F); - this.claw_front_right_1 = new ModelRenderer(this, 8, 97); - this.claw_front_right_1.setRotationPoint(0.0F, 0.0F, 0.0F); - this.claw_front_right_1.addBox(2.0F, -0.1F, 0.0F, 3, 2, 0, 0.0F); - this.earflap_left = new ModelRenderer(this, 44, 69); - this.earflap_left.setRotationPoint(0.0F, 0.0F, 0.0F); - this.earflap_left.addBox(1.4F, 0.0F, -1.0F, 1, 5, 2, 0.0F); - this.setRotateAngle(earflap_left, -0.17453292519943295F, 0.0F, 0.04363323129985824F); - this.leg_back_right_1 = new ModelRenderer(this, 0, 21); - this.leg_back_right_1.setRotationPoint(-3.0F, 1.3F, 4.5F); - this.leg_back_right_1.addBox(-7.0F, -1.0F, -1.5F, 8, 2, 3, 0.0F); - this.setRotateAngle(leg_back_right_1, 0.0F, 0.3490658503988659F, -0.08726646259971647F); - this.claw_front_left_1 = new ModelRenderer(this, 50, 97); - this.claw_front_left_1.setRotationPoint(0.0F, 0.0F, 0.0F); - this.claw_front_left_1.addBox(2.0F, -0.1F, 0.0F, 3, 2, 0, 0.0F); - this.tail_3_flaps = new ModelRenderer(this, 13, 97); - this.tail_3_flaps.setRotationPoint(0.0F, 0.0F, 0.0F); - this.tail_3_flaps.addBox(-7.5F, 0.0F, 0.0F, 15, 0, 6, 0.0F); - this.leg_back_left_2 = new ModelRenderer(this, 44, 17); - this.leg_back_left_2.setRotationPoint(7.0F, 0.0F, 0.0F); - this.leg_back_left_2.addBox(-0.5F, -0.7F, -1.1F, 7, 2, 2, 0.0F); - this.setRotateAngle(leg_back_left_2, -0.2617993877991494F, -0.6108652381980153F, 0.4363323129985824F); - this.foot_back_left = new ModelRenderer(this, 49, 13); - this.foot_back_left.setRotationPoint(5.5F, 0.0F, 0.0F); - this.foot_back_left.addBox(0.0F, -0.1F, 0.0F, 2, 2, 2, 0.0F); - this.setRotateAngle(foot_back_left, -0.04363323129985824F, 0.8464846872172498F, -0.3490658503988659F); - this.neck_2_flaps = new ModelRenderer(this, 13, 120); - this.neck_2_flaps.setRotationPoint(0.0F, 0.0F, 0.0F); - this.neck_2_flaps.addBox(-7.5F, 0.0F, -6.0F, 15, 0, 6, 0.0F); - this.leg_front_right_1 = new ModelRenderer(this, 0, 84); - this.leg_front_right_1.setRotationPoint(-3.0F, 1.3F, -4.5F); - this.leg_front_right_1.addBox(-7.0F, -1.0F, -1.5F, 8, 2, 3, 0.0F); - this.setRotateAngle(leg_front_right_1, 0.0F, -0.3490658503988659F, -0.08726646259971647F); - this.claw_front_right_2 = new ModelRenderer(this, 8, 97); - this.claw_front_right_2.setRotationPoint(0.0F, 0.0F, 0.0F); - this.claw_front_right_2.addBox(2.8F, -0.1F, 0.0F, 3, 2, 0, 0.0F); - this.setRotateAngle(claw_front_right_2, 0.0F, -0.7853981633974483F, 0.0F); - this.leg_front_left_1 = new ModelRenderer(this, 42, 84); - this.leg_front_left_1.setRotationPoint(3.0F, 1.3F, -4.5F); - this.leg_front_left_1.addBox(-1.0F, -1.0F, -1.5F, 8, 2, 3, 0.0F); - this.setRotateAngle(leg_front_left_1, 0.0F, 0.3490658503988659F, 0.08726646259971647F); - this.tail_1 = new ModelRenderer(this, 20, 19); - this.tail_1.setRotationPoint(0.0F, 1.0F, 6.0F); - this.tail_1.addBox(-2.0F, -1.5F, -1.0F, 4, 3, 8, 0.0F); - this.setRotateAngle(tail_1, 0.3490658503988659F, 0.0F, 0.0F); - this.neck_1 = new ModelRenderer(this, 20, 45); - this.neck_1.setRotationPoint(0.0F, 1.0F, -6.0F); - this.neck_1.addBox(-2.0F, -1.5F, -7.0F, 4, 3, 8, 0.0F); - this.setRotateAngle(neck_1, -0.5235987755982988F, 0.0F, 0.0F); - this.leg_back_left_1 = new ModelRenderer(this, 42, 21); - this.leg_back_left_1.setRotationPoint(3.0F, 1.3F, 4.5F); - this.leg_back_left_1.addBox(-1.0F, -1.0F, -1.5F, 8, 2, 3, 0.0F); - this.setRotateAngle(leg_back_left_1, 0.0F, -0.3490658503988659F, 0.08726646259971647F); - this.tail_3 = new ModelRenderer(this, 22, 0); - this.tail_3.setRotationPoint(0.0F, 0.0F, 7.0F); - this.tail_3.addBox(-1.0F, -0.5F, -1.0F, 2, 1, 8, 0.0F); - this.setRotateAngle(tail_3, -0.2617993877991494F, 0.0F, 0.0F); - this.claw_front_right_3 = new ModelRenderer(this, 8, 97); - this.claw_front_right_3.setRotationPoint(0.0F, 0.0F, 0.0F); - this.claw_front_right_3.addBox(2.0F, -0.1F, 0.0F, 3, 2, 0, 0.0F); - this.setRotateAngle(claw_front_right_3, 0.0F, -1.5707963267948966F, 0.0F); - this.claw_front_right_1_1 = new ModelRenderer(this, 8, 11); - this.claw_front_right_1_1.setRotationPoint(0.0F, 0.0F, 0.0F); - this.claw_front_right_1_1.addBox(2.0F, -0.1F, 0.0F, 3, 2, 0, 0.0F); - this.foot_front_right_1 = new ModelRenderer(this, 7, 13); - this.foot_front_right_1.setRotationPoint(-5.5F, 0.0F, 0.0F); - this.foot_front_right_1.addBox(0.0F, -0.1F, 0.0F, 2, 2, 2, 0.0F); - this.setRotateAngle(foot_front_right_1, 0.04363323129985824F, -2.4172810140121466F, 0.3490658503988659F); - this.claw_back_left_3 = new ModelRenderer(this, 50, 11); - this.claw_back_left_3.setRotationPoint(0.0F, 0.0F, 0.0F); - this.claw_back_left_3.addBox(2.0F, -0.1F, 0.0F, 3, 2, 0, 0.0F); - this.setRotateAngle(claw_back_left_3, 0.0F, -1.5707963267948966F, 0.0F); - this.claw_back_left_1 = new ModelRenderer(this, 50, 11); - this.claw_back_left_1.setRotationPoint(0.0F, 0.0F, 0.0F); - this.claw_back_left_1.addBox(2.0F, -0.1F, 0.0F, 3, 2, 0, 0.0F); - this.neck_2 = new ModelRenderer(this, 20, 56); - this.neck_2.setRotationPoint(0.0F, 0.0F, -7.0F); - this.neck_2.addBox(-2.0F, -1.5F, -7.5F, 4, 3, 8, 0.0F); - this.setRotateAngle(neck_2, 0.6981317007977318F, 0.0F, 0.0F); - this.tail_2 = new ModelRenderer(this, 21, 9); - this.tail_2.setRotationPoint(0.0F, 0.0F, 7.0F); - this.tail_2.addBox(-1.5F, -1.0F, -1.0F, 3, 2, 8, 0.0F); - this.setRotateAngle(tail_2, -0.2617993877991494F, 0.0F, 0.0F); - this.leg_front_right_2_1 = new ModelRenderer(this, 2, 17); - this.leg_front_right_2_1.setRotationPoint(-7.0F, 0.0F, 0.0F); - this.leg_front_right_2_1.addBox(-6.5F, -0.7F, -1.1F, 7, 2, 2, 0.0F); - this.setRotateAngle(leg_front_right_2_1, -0.2617993877991494F, 0.6108652381980153F, -0.4363323129985824F); - this.claw_front_right_2_1 = new ModelRenderer(this, 8, 11); - this.claw_front_right_2_1.setRotationPoint(0.0F, 0.0F, 0.0F); - this.claw_front_right_2_1.addBox(2.8F, -0.1F, 0.0F, 3, 2, 0, 0.0F); - this.setRotateAngle(claw_front_right_2_1, 0.0F, -0.7853981633974483F, 0.0F); - this.tongue = new ModelRenderer(this, 24, 84); - this.tongue.setRotationPoint(0.0F, 0.0F, 0.0F); - this.tongue.addBox(-1.5F, 0.5F, -10.5F, 3, 0, 5, 0.0F); - this.claw_front_left_2 = new ModelRenderer(this, 50, 97); - this.claw_front_left_2.setRotationPoint(0.0F, 0.0F, 0.0F); - this.claw_front_left_2.addBox(2.8F, -0.1F, 0.0F, 3, 2, 0, 0.0F); - this.setRotateAngle(claw_front_left_2, 0.0F, -0.7853981633974483F, 0.0F); - this.head_2 = new ModelRenderer(this, 22, 76); - this.head_2.setRotationPoint(-2.0F, 0.0F, 0.0F); - this.head_2.addBox(0.0F, 0.9F, -5.4F, 4, 2, 6, 0.0F); - this.setRotateAngle(head_2, -0.3490658503988659F, 0.0F, 0.0F); - this.neck_1_flaps = new ModelRenderer(this, 14, 115); - this.neck_1_flaps.setRotationPoint(0.0F, 0.0F, 0.0F); - this.neck_1_flaps.addBox(-7.5F, 0.0F, -7.0F, 15, 0, 5, 0.0F); - this.tail_2_flaps = new ModelRenderer(this, 12, 103); - this.tail_2_flaps.setRotationPoint(0.0F, 0.0F, 0.0F); - this.tail_2_flaps.addBox(-7.5F, 0.0F, 0.0F, 15, 0, 7, 0.0F); - this.tail_1_flaps = new ModelRenderer(this, 16, 110); - this.tail_1_flaps.setRotationPoint(0.0F, 0.0F, 0.0F); - this.tail_1_flaps.addBox(-7.5F, 0.0F, 4.0F, 15, 0, 3, 0.0F); - this.leg_front_right_2 = new ModelRenderer(this, 2, 89); - this.leg_front_right_2.setRotationPoint(-7.0F, 0.0F, 0.0F); - this.leg_front_right_2.addBox(-6.5F, -0.7F, -1.1F, 7, 2, 2, 0.0F); - this.setRotateAngle(leg_front_right_2, 0.2617993877991494F, -0.6108652381980153F, -0.4363323129985824F); - this.claw_front_right_3_1 = new ModelRenderer(this, 8, 11); - this.claw_front_right_3_1.setRotationPoint(0.0F, 0.0F, 0.0F); - this.claw_front_right_3_1.addBox(2.0F, -0.1F, 0.0F, 3, 2, 0, 0.0F); - this.setRotateAngle(claw_front_right_3_1, 0.0F, -1.5707963267948966F, 0.0F); - this.body = new ModelRenderer(this, 14, 30); - this.body.setRotationPoint(0.0F, 21.0F, 0.0F); - this.body.addBox(-3.0F, 0.0F, -6.0F, 6, 3, 12, 0.0F); - this.leg_front_left_2 = new ModelRenderer(this, 44, 89); - this.leg_front_left_2.setRotationPoint(7.0F, 0.0F, 0.0F); - this.leg_front_left_2.addBox(-0.5F, -0.7F, -1.1F, 7, 2, 2, 0.0F); - this.setRotateAngle(leg_front_left_2, 0.2617993877991494F, 0.6108652381980153F, 0.4363323129985824F); - this.claw_front_left_3 = new ModelRenderer(this, 50, 97); - this.claw_front_left_3.setRotationPoint(0.0F, 0.0F, 0.0F); - this.claw_front_left_3.addBox(2.0F, -0.1F, 0.0F, 3, 2, 0, 0.0F); - this.setRotateAngle(claw_front_left_3, 0.0F, -1.5707963267948966F, 0.0F); - this.claw_back_left_2 = new ModelRenderer(this, 50, 11); - this.claw_back_left_2.setRotationPoint(0.0F, 0.0F, 0.0F); - this.claw_back_left_2.addBox(2.8F, -0.1F, 0.0F, 3, 2, 0, 0.0F); - this.setRotateAngle(claw_back_left_2, 0.0F, -0.7853981633974483F, 0.0F); - this.head_1 = new ModelRenderer(this, 20, 67); - this.head_1.setRotationPoint(0.0F, -0.3F, -7.0F); - this.head_1.addBox(-2.5F, -1.5F, -6.0F, 5, 2, 7, 0.0F); - this.earflap_right = new ModelRenderer(this, 14, 69); - this.earflap_right.setRotationPoint(0.0F, 0.0F, 0.0F); - this.earflap_right.addBox(-2.4F, 0.0F, -1.0F, 1, 5, 2, 0.0F); - this.setRotateAngle(earflap_right, -0.17453292519943295F, 0.0F, -0.04363323129985824F); - this.foot_front_right = new ModelRenderer(this, 7, 93); - this.foot_front_right.setRotationPoint(-5.5F, 0.0F, 0.0F); - this.foot_front_right.addBox(0.0F, -0.1F, 0.0F, 2, 2, 2, 0.0F); - this.setRotateAngle(foot_front_right, -0.04363323129985824F, -2.4172810140121466F, 0.3490658503988659F); - this.leg_front_left_2.addChild(this.foot_front_left); - this.foot_front_right.addChild(this.claw_front_right_1); - this.head_1.addChild(this.earflap_left); - this.body.addChild(this.leg_back_right_1); - this.foot_front_left.addChild(this.claw_front_left_1); - this.tail_3.addChild(this.tail_3_flaps); - this.leg_back_left_1.addChild(this.leg_back_left_2); - this.leg_back_left_2.addChild(this.foot_back_left); - this.neck_2.addChild(this.neck_2_flaps); - this.body.addChild(this.leg_front_right_1); - this.foot_front_right.addChild(this.claw_front_right_2); - this.body.addChild(this.leg_front_left_1); - this.body.addChild(this.tail_1); - this.body.addChild(this.neck_1); - this.body.addChild(this.leg_back_left_1); - this.tail_2.addChild(this.tail_3); - this.foot_front_right.addChild(this.claw_front_right_3); - this.foot_front_right_1.addChild(this.claw_front_right_1_1); - this.leg_front_right_2_1.addChild(this.foot_front_right_1); - this.foot_back_left.addChild(this.claw_back_left_3); - this.foot_back_left.addChild(this.claw_back_left_1); - this.neck_1.addChild(this.neck_2); - this.tail_1.addChild(this.tail_2); - this.leg_back_right_1.addChild(this.leg_front_right_2_1); - this.foot_front_right_1.addChild(this.claw_front_right_2_1); - this.head_1.addChild(this.tongue); - this.foot_front_left.addChild(this.claw_front_left_2); - this.head_1.addChild(this.head_2); - this.neck_1.addChild(this.neck_1_flaps); - this.tail_2.addChild(this.tail_2_flaps); - this.tail_1.addChild(this.tail_1_flaps); - this.leg_front_right_1.addChild(this.leg_front_right_2); - this.foot_front_right_1.addChild(this.claw_front_right_3_1); - this.leg_front_left_1.addChild(this.leg_front_left_2); - this.foot_front_left.addChild(this.claw_front_left_3); - this.foot_back_left.addChild(this.claw_back_left_2); - this.neck_2.addChild(this.head_1); - this.head_1.addChild(this.earflap_right); - this.leg_front_right_2.addChild(this.foot_front_right); - } - - @Override - public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) - { - GlStateManager.pushMatrix(); - GlStateManager.translate(this.body.offsetX, this.body.offsetY, this.body.offsetZ); - GlStateManager.translate(this.body.rotationPointX * f5, this.body.rotationPointY * f5, this.body.rotationPointZ * f5); - GlStateManager.scale(0.5D, 0.5D, 0.5D); - GlStateManager.translate(-this.body.offsetX, -this.body.offsetY, -this.body.offsetZ); - GlStateManager.translate(-this.body.rotationPointX * f5, -this.body.rotationPointY * f5, -this.body.rotationPointZ * f5); - this.body.render(f5); - GlStateManager.popMatrix(); - } - - /** - * This is a helper function from Tabula to set the rotation of model parts - */ - public void setRotateAngle(ModelRenderer modelRenderer, float x, float y, float z) { - modelRenderer.rotateAngleX = x; - modelRenderer.rotateAngleY = y; - modelRenderer.rotateAngleZ = z; - } - - - @Override - public void setRotationAngles(float limbSwing, float limbSwingAmount, float ageInTicks, float headYaw, float headPitch, float scaleFactor, Entity entity) - { - super.setRotationAngles(limbSwing, limbSwingAmount, ageInTicks, headYaw, headPitch, scaleFactor, entity); - - this.head_1.rotateAngleX = headPitch * 0.017453292F; - this.head_1.rotateAngleY = headYaw * 0.017453292F; - - this.tongue.showModel = MathHelper.cos(ageInTicks / 15) > 0 && MathHelper.cos(ageInTicks) > 0; - - float swingCos = MathHelper.cos(limbSwing * 0.7662F); - float swingSin = MathHelper.sin(limbSwing * 0.7662F); - - this.leg_front_right_1.rotateAngleY = -0.35F + (swingCos -.5f) * .6F * limbSwingAmount; - this.leg_front_right_2.rotateAngleY = -0.35F + swingSin * .6F * limbSwingAmount; - - this.leg_back_left_1.rotateAngleY = -0.35F + (swingCos -.5f) * .3F * limbSwingAmount; - this.leg_back_left_2.rotateAngleY = -0.35F + swingSin * .3F * limbSwingAmount; - - this.leg_front_left_1.rotateAngleY = 0.35F + (swingSin -.5f) * .6F * limbSwingAmount; - this.leg_front_left_2.rotateAngleY = 0.35F + swingCos * .6F * limbSwingAmount; - - this.leg_back_right_1.rotateAngleY = 0.35F + (swingSin -.5f) * .3F * limbSwingAmount; - this.leg_front_right_2_1.rotateAngleY = 0.35F + swingCos * .3F * limbSwingAmount; - - float tailVal = (limbSwing * .3f + ageInTicks * .06f); - float tailSway = MathHelper.cos(tailVal) / 3f; - float tailSwaySin = MathHelper.sin(tailVal) / 3f; - - this.tail_1.rotateAngleY = tailSway; - this.tail_2.rotateAngleY = tailSwaySin; - - float tailBase = -0.08726646259971647F; - float tailSwing = MathHelper.cos(limbSwing * 0.6662F) * .01F * limbSwingAmount; - float tailSwingSin = MathHelper.sin(limbSwing * 0.6662F) * .01F * limbSwingAmount; - - this.tail_1.rotateAngleX = tailBase + tailSwing; - this.tail_2.rotateAngleX = tailBase + tailSwing; - this.tail_3.rotateAngleX = tailBase + tailSwing; - - this.neck_1.rotateAngleX = tailSway / 2f + tailSwing / 5f - 0.52f; - this.neck_2.rotateAngleX = .7f + tailSwaySin / 2f + tailSwingSin / 5f; - this.head_1.rotateAngleX -= tailSwing / 2f + tailSway / 5f + .1f; - } -} diff --git a/src/main/java/com/gildedgames/aether/client/models/entities/living/ModelSwetHead.java b/src/main/java/com/gildedgames/aether/client/models/entities/living/ModelSwetHead.java deleted file mode 100644 index 932d93676d..0000000000 --- a/src/main/java/com/gildedgames/aether/client/models/entities/living/ModelSwetHead.java +++ /dev/null @@ -1,113 +0,0 @@ -package com.gildedgames.aether.client.models.entities.living; - -import com.gildedgames.aether.common.entities.monsters.EntitySwet; -import net.minecraft.client.model.ModelBase; -import net.minecraft.client.model.ModelRenderer; -import net.minecraft.client.renderer.GlStateManager; -import net.minecraft.entity.Entity; - -/** - * Swet - Undefined - * Created using Tabula 5.1.0 - */ -public class ModelSwetHead extends ModelBase -{ - public final ModelRenderer InnerBody; - - public final ModelRenderer OuterBody; - - public final ModelRenderer TopLeftTail; - - public final ModelRenderer TopRightTail; - - public final ModelRenderer BottomRightTail; - - public final ModelRenderer BottomLeftTail; - - public final ModelRenderer BackLeftTail; - - public final ModelRenderer BackRightTail; - - public ModelSwetHead() - { - this.textureWidth = 64; - this.textureHeight = 64; - this.InnerBody = new ModelRenderer(this, 0, 20); - this.InnerBody.setRotationPoint(0.0F, 15.0F, -2.0F); - this.InnerBody.addBox(-4.0F, -4.0F, -4.0F, 8, 8, 8, 0.25F); - this.TopRightTail = new ModelRenderer(this, 40, 0); - this.TopRightTail.mirror = true; - this.TopRightTail.setRotationPoint(-3.5F, -1.0F, -3.0F); - this.TopRightTail.addBox(-5.0F, 0.0F, 0.0F, 5, 11, 0, 0.0F); - this.setRotateAngle(this.TopRightTail, 1.3962634015954636F, -0.3490658503988659F, 1.2217304763960306F); - this.BottomLeftTail = new ModelRenderer(this, 50, 0); - this.BottomLeftTail.setRotationPoint(3.5F, 1.0F, -3.0F); - this.BottomLeftTail.addBox(0.0F, 0.0F, 0.0F, 5, 11, 0, 0.0F); - this.setRotateAngle(this.BottomLeftTail, 1.7453292519943295F, 0.3490658503988659F, 1.0471975511965976F); - this.OuterBody = new ModelRenderer(this, 0, 0); - this.OuterBody.setRotationPoint(0.0F, 0.0F, 0.0F); - this.OuterBody.addBox(-5.0F, -5.0F, -5.0F, 10, 10, 10, 0.0F); - this.TopLeftTail = new ModelRenderer(this, 40, 0); - this.TopLeftTail.setRotationPoint(3.5F, -1.0F, -3.0F); - this.TopLeftTail.addBox(0.0F, 0.0F, 0.0F, 5, 11, 0, 0.0F); - this.setRotateAngle(this.TopLeftTail, 1.3962634015954636F, 0.3490658503988659F, -1.2217304763960306F); - this.BottomRightTail = new ModelRenderer(this, 50, 0); - this.BottomRightTail.mirror = true; - this.BottomRightTail.setRotationPoint(-3.5F, 1.0F, -3.0F); - this.BottomRightTail.addBox(-5.0F, 0.0F, 0.0F, 5, 11, 0, 0.0F); - this.setRotateAngle(this.BottomRightTail, 1.7453292519943295F, -0.3490658503988659F, -1.0471975511965976F); - this.BackRightTail = new ModelRenderer(this, 50, 0); - this.BackRightTail.setRotationPoint(-1.5F, 0.0F, 2.0F); - this.BackRightTail.addBox(-5.0F, 0.0F, 0.0F, 5, 11, 0, 0.0F); - this.setRotateAngle(this.BackRightTail, 1.6580627893946132F, -0.3490658503988659F, -1.3962634015954636F); - this.BackLeftTail = new ModelRenderer(this, 50, 0); - this.BackLeftTail.mirror = true; - this.BackLeftTail.setRotationPoint(1.5F, 0.0F, 2.0F); - this.BackLeftTail.addBox(0.0F, 0.0F, 0.0F, 5, 11, 0, 0.0F); - this.setRotateAngle(this.BackLeftTail, 1.6580627893946132F, 0.3490658503988659F, 1.3962634015954636F); - this.OuterBody.addChild(this.TopRightTail); - this.OuterBody.addChild(this.BottomLeftTail); - this.InnerBody.addChild(this.OuterBody); - this.OuterBody.addChild(this.TopLeftTail); - this.OuterBody.addChild(this.BottomRightTail); - this.OuterBody.addChild(this.BackRightTail); - this.OuterBody.addChild(this.BackLeftTail); - } - - @Override - public void render(final Entity entity, final float f, final float f1, final float f2, final float f3, final float f4, final float f5) - { - GlStateManager.pushMatrix(); - GlStateManager.translate(this.InnerBody.offsetX, this.InnerBody.offsetY, this.InnerBody.offsetZ); - GlStateManager.translate(this.InnerBody.rotationPointX * f5, this.InnerBody.rotationPointY * f5, this.InnerBody.rotationPointZ * f5); - GlStateManager.scale(0.8D, 0.8D, 0.8D); - GlStateManager.translate(-this.InnerBody.offsetX, -this.InnerBody.offsetY, -this.InnerBody.offsetZ); - GlStateManager.translate(-this.InnerBody.rotationPointX * f5, -this.InnerBody.rotationPointY * f5, -this.InnerBody.rotationPointZ * f5); - - EntitySwet swet = (EntitySwet) entity; - - final float sc = ((swet.getFoodSaturation() - 1)); - final float s = sc / 1.2F; - final float wiggle = (swet.prevSquishFactor + (swet.squishFactor - swet.prevSquishFactor) * f5) / (f1 * 0.5F + 1.0F); - - GlStateManager.translate(0, -s * wiggle, (-sc / Math.cos(f5 * 10) * wiggle) / 2); - - this.InnerBody.render(f5); - GlStateManager.popMatrix(); - } - - public void renderRaw(final Entity entity, final float f, final float f1, final float f2, final float f3, final float f4, final float f5) - { - this.InnerBody.render(f5); - } - - /** - * This is a helper function from Tabula to set the rotation of model parts - */ - public void setRotateAngle(final ModelRenderer modelRenderer, final float x, final float y, final float z) - { - modelRenderer.rotateAngleX = x; - modelRenderer.rotateAngleY = y; - modelRenderer.rotateAngleZ = z; - } -} diff --git a/src/main/java/com/gildedgames/aether/client/models/entities/living/ModelSwetJelly.java b/src/main/java/com/gildedgames/aether/client/models/entities/living/ModelSwetJelly.java deleted file mode 100644 index 1149dcf720..0000000000 --- a/src/main/java/com/gildedgames/aether/client/models/entities/living/ModelSwetJelly.java +++ /dev/null @@ -1,108 +0,0 @@ -package com.gildedgames.aether.client.models.entities.living; - -import com.gildedgames.aether.common.entities.monsters.EntitySwet; -import net.minecraft.client.model.ModelBase; -import net.minecraft.client.model.ModelRenderer; -import net.minecraft.client.renderer.GlStateManager; -import net.minecraft.entity.Entity; -import org.lwjgl.opengl.GL11; - -public class ModelSwetJelly extends ModelBase -{ - public final ModelRenderer Base; - - public final ModelRenderer Front; - - public final ModelRenderer Top; - - public final ModelRenderer Right; - - public final ModelRenderer Left; - - public final ModelRenderer Back; - - public final ModelRenderer Bottom; - - public ModelSwetJelly() - { - this.textureWidth = 64; - this.textureHeight = 64; - this.Right = new ModelRenderer(this, 0, 47); - this.Right.setRotationPoint(-10.0F, 0.0F, 0.0F); - this.Right.addBox(-6.5F, -6.5F, 0.0F, 13, 13, 2, 0.0F); - this.setRotateAngle(this.Right, 0.0F, 1.5707963267948966F, 0.0F); - this.Front = new ModelRenderer(this, 0, 47); - this.Front.setRotationPoint(0.0F, 0.0F, -10.0F); - this.Front.addBox(-6.5F, -6.5F, 0.0F, 13, 13, 2, 0.0F); - this.Bottom = new ModelRenderer(this, 0, 32); - this.Bottom.setRotationPoint(0.0F, 8.0F, 0.0F); - this.Bottom.addBox(-6.5F, 0.0F, -6.5F, 13, 2, 13, 0.0F); - this.Base = new ModelRenderer(this, 0, 0); - this.Base.setRotationPoint(0.0F, 14.0F, 0.0F); - this.Base.addBox(-8.0F, -8.0F, -8.0F, 16, 16, 16, 0.0F); - this.Back = new ModelRenderer(this, 0, 47); - this.Back.setRotationPoint(0.0F, 0.0F, 10.0F); - this.Back.addBox(-6.5F, -6.5F, 0.0F, 13, 13, 2, 0.0F); - this.setRotateAngle(this.Back, 0.0F, 3.141592653589793F, 0.0F); - this.Left = new ModelRenderer(this, 0, 47); - this.Left.mirror = true; - this.Left.setRotationPoint(10.0F, 0.0F, 0.0F); - this.Left.addBox(-6.5F, -6.5F, 0.0F, 13, 13, 2, 0.0F); - this.setRotateAngle(this.Left, 0.0F, -1.5707963267948966F, 0.0F); - this.Top = new ModelRenderer(this, 0, 47); - this.Top.mirror = true; - this.Top.setRotationPoint(0.0F, -10.0F, 0.0F); - this.Top.addBox(-6.5F, -6.5F, 0.0F, 13, 13, 2, 0.0F); - this.setRotateAngle(this.Top, -1.5707963267948966F, 0.0F, 0.0F); - this.Base.addChild(this.Right); - this.Base.addChild(this.Front); - this.Base.addChild(this.Back); - this.Base.addChild(this.Left); - this.Base.addChild(this.Top); - } - - @Override - public void render(final Entity entity, final float f, final float f1, final float f2, final float f3, final float f4, final float f5) - { - GlStateManager.enableBlend(); - GlStateManager.blendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - GlStateManager.color(1.0F, 1.0F, 1.0F, 0.7F); - - EntitySwet swet = (EntitySwet) entity; - final float wiggle = (swet.prevSquishFactor + (swet.squishFactor - swet.prevSquishFactor) * f5) / (f1 * 0.5F + 1.0F); - - this.Base.rotateAngleX = wiggle; - this.Base.render(f5); - - GlStateManager.pushMatrix(); - - float width = swet.getSquishPool(); - float height = width * 1.14f; - - GlStateManager.translate(0, -height / 2 + 1.2f, 0); - GlStateManager.scale(width, height, width); - - this.Bottom.render(f5); - - GlStateManager.popMatrix(); - - GlStateManager.disableBlend(); - } - - public void renderRaw(final Entity entity, final float f, final float f1, final float f2, final float f3, final float f4, final float f5) - { - this.Base.render(f5); - GlStateManager.translate(0, .85f, 0); - this.Bottom.render(f5); - } - - /** - * This is a helper function from Tabula to set the rotation of model parts - */ - public void setRotateAngle(final ModelRenderer modelRenderer, final float x, final float y, final float z) - { - modelRenderer.rotateAngleX = x; - modelRenderer.rotateAngleY = y; - modelRenderer.rotateAngleZ = z; - } -} diff --git a/src/main/java/com/gildedgames/aether/client/models/entities/living/ModelTaegore.java b/src/main/java/com/gildedgames/aether/client/models/entities/living/ModelTaegore.java deleted file mode 100644 index 00474da57e..0000000000 --- a/src/main/java/com/gildedgames/aether/client/models/entities/living/ModelTaegore.java +++ /dev/null @@ -1,242 +0,0 @@ -package com.gildedgames.aether.client.models.entities.living; - -import com.gildedgames.aether.client.renderer.ModelBaseAether; -import net.minecraft.client.model.ModelRenderer; -import net.minecraft.client.renderer.GlStateManager; -import net.minecraft.entity.Entity; -import net.minecraft.util.math.MathHelper; - -public class ModelTaegore extends ModelBaseAether -{ - public ModelRenderer BodyMain; - public ModelRenderer HeadMain; - public ModelRenderer TailRight; - public ModelRenderer BodyFront; - public ModelRenderer PlateFrontLeft; - public ModelRenderer PlateBackLeft; - public ModelRenderer BodyBack; - public ModelRenderer PlateBackRight; - public ModelRenderer PlateFrontRight; - public ModelRenderer LegFrontLeft1; - public ModelRenderer LegFrontRight1; - public ModelRenderer LegBackLeft1; - public ModelRenderer LegBackRight1; - public ModelRenderer TailLeft; - public ModelRenderer TorsoRidge; - public ModelRenderer SnoutRight; - public ModelRenderer SnoutLeft; - public ModelRenderer SnoutRidge; - public ModelRenderer EyeLeft; - public ModelRenderer EyeRight; - public ModelRenderer CrestMiddle; - public ModelRenderer CrestLeft; - public ModelRenderer CrestRight; - public ModelRenderer Jaw; - public ModelRenderer Snout; - public ModelRenderer HeadTop; - public ModelRenderer EarLeft; - public ModelRenderer EarRight; - public ModelRenderer TuskLeft; - public ModelRenderer TuskRight; - public ModelRenderer LegFrontLeft2; - public ModelRenderer LegFrontRight2; - public ModelRenderer LegBackLeft2; - public ModelRenderer LegBackRight2; - - public final float childZOffset = 4.0F; - - public ModelTaegore() { - this.textureWidth = 128; - this.textureHeight = 256; - this.BodyFront = new ModelRenderer(this, 39, 67); - this.BodyFront.setRotationPoint(0.0F, 1.0F, 0.0F); - this.BodyFront.addBox(-6.0F, -5.0F, -13.0F, 12, 16, 15, 0.0F); - this.setRotateAngle(BodyFront, 0.4363323129985824F, 0.0F, 0.0F); - this.PlateFrontRight = new ModelRenderer(this, 13, 76); - this.PlateFrontRight.setRotationPoint(0.0F, 7.5F, 0.0F); - this.PlateFrontRight.addBox(-9.0F, -1.0F, -8.5F, 4, 13, 9, 0.0F); - this.setRotateAngle(PlateFrontRight, 0.0F, -0.17453292519943295F, 0.3490658503988659F); - this.TailLeft = new ModelRenderer(this, 56, 165); - this.TailLeft.setRotationPoint(0.0F, 5.7F, 15.8F); - this.TailLeft.addBox(0.0F, 0.4F, -1.5F, 4, 16, 1, 0.0F); - this.setRotateAngle(TailLeft, 0.2617993877991494F, 0.0F, -0.17453292519943295F); - this.PlateBackLeft = new ModelRenderer(this, 95, 110); - this.PlateBackLeft.setRotationPoint(0.0F, 6.0F, -4.5F); - this.PlateBackLeft.addBox(5.5F, 2.5F, 9.0F, 4, 11, 9, 0.0F); - this.setRotateAngle(PlateBackLeft, 0.08726646259971647F, -0.17453292519943295F, -0.3490658503988659F); - this.SnoutLeft = new ModelRenderer(this, 75, 42); - this.SnoutLeft.setRotationPoint(0.0F, 0.0F, 0.0F); - this.SnoutLeft.addBox(2.8F, 3.4F, -10.2F, 5, 6, 14, 0.0F); - this.setRotateAngle(SnoutLeft, -0.08726646259971647F, 0.4363323129985824F, 0.0F); - this.HeadMain = new ModelRenderer(this, 48, 23); - this.HeadMain.setRotationPoint(0.0F, 8.5F, -10.0F); - this.HeadMain.addBox(-5.0F, -2.2F, -7.0F, 10, 11, 8, 0.0F); - this.CrestMiddle = new ModelRenderer(this, 56, 0); - this.CrestMiddle.setRotationPoint(0.0F, 0.0F, 0.0F); - this.CrestMiddle.addBox(-1.5F, -9.0F, -8.0F, 3, 4, 7, 0.0F); - this.setRotateAngle(CrestMiddle, 0.5235987755982988F, 0.0F, 0.0F); - this.CrestLeft = new ModelRenderer(this, 76, 4); - this.CrestLeft.setRotationPoint(0.0F, 0.0F, 0.0F); - this.CrestLeft.addBox(2.5F, -9.1F, -6.0F, 2, 3, 4, 0.0F); - this.setRotateAngle(CrestLeft, 0.5235987755982988F, 0.0F, 0.17453292519943295F); - this.CrestRight = new ModelRenderer(this, 44, 4); - this.CrestRight.setRotationPoint(0.0F, 0.0F, 0.0F); - this.CrestRight.addBox(-4.0F, -9.1F, -6.0F, 2, 3, 4, 0.0F); - this.setRotateAngle(CrestRight, 0.5235987755982988F, 0.0F, -0.17453292519943295F); - this.LegFrontRight1 = new ModelRenderer(this, 14, 162); - this.LegFrontRight1.setRotationPoint(-5.0F, 13.0F, -4.5F); - this.LegFrontRight1.addBox(-2.5F, -5.0F, -5.0F, 5, 10, 10, 0.0F); - this.setRotateAngle(LegFrontRight1, -0.7853981633974483F, 0.0F, 0.0F); - this.LegFrontLeft2 = new ModelRenderer(this, 97, 182); - this.LegFrontLeft2.setRotationPoint(0.0F, 0.0F, 0.0F); - this.LegFrontLeft2.addBox(-2.0F, 0.0F, -0.5F, 3, 11, 3, 0.0F); - this.setRotateAngle(LegFrontLeft2, 0.7853981633974483F, 0.0F, 0.0F); - this.BodyMain = new ModelRenderer(this, 34, 130); - this.BodyMain.setRotationPoint(0.0F, 0.0F, -3.0F); - this.BodyMain.addBox(-4.5F, 5.0F, -12.0F, 9, 12, 23, 0.0F); - this.EarLeft = new ModelRenderer(this, 96, 34); - this.EarLeft.setRotationPoint(5.0F, 0.0F, -6.0F); - this.EarLeft.addBox(-1.0F, -1.2F, -1.0F, 1, 3, 5, 0.0F); - this.setRotateAngle(EarLeft, 0.17453292519943295F, 0.7853981633974483F, 0.0F); - this.LegFrontRight2 = new ModelRenderer(this, 23, 182); - this.LegFrontRight2.setRotationPoint(0.0F, 0.0F, 0.0F); - this.LegFrontRight2.addBox(-1.0F, 0.0F, -0.5F, 3, 11, 3, 0.0F); - this.setRotateAngle(LegFrontRight2, 0.7853981633974483F, 0.0F, 0.0F); - this.EyeLeft = new ModelRenderer(this, 84, 35); - this.EyeLeft.setRotationPoint(0.0F, 0.0F, 0.0F); - this.EyeLeft.addBox(-5.5F, -1.7F, -8.4F, 4, 5, 2, 0.0F); - this.setRotateAngle(EyeLeft, 0.0F, -0.7853981633974483F, 0.0F); - this.HeadTop = new ModelRenderer(this, 51, 11); - this.HeadTop.setRotationPoint(0.0F, -1.8F, -7.5F); - this.HeadTop.addBox(-4.0F, 0.0F, -0.5F, 8, 5, 7, 0.0F); - this.setRotateAngle(HeadTop, 0.6829473363053812F, 0.0F, 0.0F); - this.EyeRight = new ModelRenderer(this, 36, 35); - this.EyeRight.setRotationPoint(0.0F, 0.0F, 0.0F); - this.EyeRight.addBox(1.5F, -1.7F, -8.4F, 4, 5, 2, 0.0F); - this.setRotateAngle(EyeRight, 0.0F, 0.7853981633974483F, 0.0F); - this.PlateFrontLeft = new ModelRenderer(this, 93, 76); - this.PlateFrontLeft.setRotationPoint(0.0F, 7.5F, 0.0F); - this.PlateFrontLeft.addBox(5.0F, -1.0F, -8.5F, 4, 13, 9, 0.0F); - this.setRotateAngle(PlateFrontLeft, 0.0F, 0.17453292519943295F, -0.3490658503988659F); - this.LegBackRight2 = new ModelRenderer(this, 46, 198); - this.LegBackRight2.setRotationPoint(0.0F, 0.0F, 0.0F); - this.LegBackRight2.addBox(-0.5F, 1.0F, -0.5F, 3, 8, 3, 0.0F); - this.setRotateAngle(LegBackRight2, 0.3490658503988659F, 0.0F, 0.0F); - this.TorsoRidge = new ModelRenderer(this, 81, 121); - this.TorsoRidge.setRotationPoint(0.0F, 0.0F, 0.0F); - this.TorsoRidge.addBox(0.0F, -6.7F, -2.5F, 0, 4, 18, 0.0F); - this.setRotateAngle(TorsoRidge, -0.6108652381980153F, 0.0F, 0.0F); - this.SnoutRidge = new ModelRenderer(this, 56, 42); - this.SnoutRidge.setRotationPoint(0.0F, 0.0F, 0.0F); - this.SnoutRidge.addBox(-2.0F, -8.5F, -11.0F, 4, 4, 6, 0.0F); - this.setRotateAngle(SnoutRidge, 0.8726646259971648F, 0.0F, 0.0F); - this.LegBackRight1 = new ModelRenderer(this, 38, 182); - this.LegBackRight1.setRotationPoint(-5.0F, 15.0F, 9.5F); - this.LegBackRight1.addBox(-2.5F, -5.0F, -5.0F, 6, 8, 8, 0.0F); - this.setRotateAngle(LegBackRight1, -0.3490658503988659F, 0.0F, 0.0F); - this.LegBackLeft2 = new ModelRenderer(this, 74, 198); - this.LegBackLeft2.setRotationPoint(0.0F, 0.0F, 0.0F); - this.LegBackLeft2.addBox(-2.5F, 1.0F, -0.5F, 3, 8, 3, 0.0F); - this.setRotateAngle(LegBackLeft2, 0.3490658503988659F, 0.0F, 0.0F); - this.SnoutRight = new ModelRenderer(this, 19, 42); - this.SnoutRight.setRotationPoint(0.0F, 0.0F, 0.0F); - this.SnoutRight.addBox(-7.8F, 3.4F, -10.2F, 5, 6, 14, 0.0F); - this.setRotateAngle(SnoutRight, -0.08726646259971647F, -0.4363323129985824F, 0.0F); - this.Snout = new ModelRenderer(this, 57, 52); - this.Snout.setRotationPoint(0.0F, 0.0F, 0.0F); - this.Snout.addBox(-2.5F, 1.5F, -16.5F, 5, 4, 4, 0.0F); - this.setRotateAngle(Snout, 0.08726646259971647F, 0.0F, 0.0F); - this.TuskLeft = new ModelRenderer(this, 75, 62); - this.TuskLeft.setRotationPoint(0.0F, 0.0F, 0.0F); - this.TuskLeft.addBox(2.0F, -5.0F, -3.0F, 1, 4, 1, 0.0F); - this.setRotateAngle(TuskLeft, 0.2617993877991494F, 0.0F, 0.17453292519943295F); - this.TuskRight = new ModelRenderer(this, 53, 62); - this.TuskRight.setRotationPoint(0.0F, 0.0F, 0.0F); - this.TuskRight.addBox(-3.0F, -5.0F, -3.0F, 1, 4, 1, 0.0F); - this.setRotateAngle(TuskRight, 0.2617993877991494F, 0.0F, -0.17453292519943295F); - this.LegBackLeft1 = new ModelRenderer(this, 66, 182); - this.LegBackLeft1.setRotationPoint(5.0F, 15.0F, 9.5F); - this.LegBackLeft1.addBox(-3.5F, -5.0F, -5.0F, 6, 8, 8, 0.0F); - this.setRotateAngle(LegBackLeft1, -0.3490658503988659F, 0.0F, 0.0F); - this.BodyBack = new ModelRenderer(this, 37, 98); - this.BodyBack.setRotationPoint(0.0F, 0.0F, 0.0F); - this.BodyBack.addBox(-5.0F, -3.0F, -2.5F, 10, 13, 19, 0.0F); - this.setRotateAngle(BodyBack, -0.5235987755982988F, 0.0F, 0.0F); - this.Jaw = new ModelRenderer(this, 57, 60); - this.Jaw.setRotationPoint(0.0F, 8.0F, -11.0F); - this.Jaw.addBox(-2.0F, -1.3F, -4.9F, 4, 2, 5, 0.0F); - this.setRotateAngle(Jaw, -0.08726646259971647F, 0.0F, 0.0F); - this.TailRight = new ModelRenderer(this, 66, 165); - this.TailRight.setRotationPoint(0.0F, 5.7F, 15.8F); - this.TailRight.addBox(-4.0F, 0.4F, -1.5F, 4, 16, 1, 0.0F); - this.setRotateAngle(TailRight, 0.2617993877991494F, 0.0F, 0.17453292519943295F); - this.PlateBackRight = new ModelRenderer(this, 11, 110); - this.PlateBackRight.setRotationPoint(0.0F, 6.0F, -4.5F); - this.PlateBackRight.addBox(-9.5F, 2.5F, 9.0F, 4, 11, 9, 0.0F); - this.setRotateAngle(PlateBackRight, 0.08726646259971647F, 0.17453292519943295F, 0.3490658503988659F); - this.EarRight = new ModelRenderer(this, 24, 34); - this.EarRight.setRotationPoint(-5.0F, 0.0F, -6.0F); - this.EarRight.addBox(0.0F, -1.1F, -1.0F, 1, 3, 5, 0.0F); - this.setRotateAngle(EarRight, 0.17453292519943295F, -0.7853981633974483F, 0.0F); - this.LegFrontLeft1 = new ModelRenderer(this, 88, 162); - this.LegFrontLeft1.setRotationPoint(5.0F, 13.0F, -4.5F); - this.LegFrontLeft1.addBox(-2.5F, -5.0F, -5.0F, 5, 10, 10, 0.0F); - this.setRotateAngle(LegFrontLeft1, -0.7853981633974483F, 0.0F, 0.0F); - this.BodyMain.addChild(this.BodyFront); - this.HeadMain.addChild(this.EyeRight); - this.Jaw.addChild(this.TuskRight); - this.HeadMain.addChild(this.SnoutRight); - this.BodyMain.addChild(this.TailRight); - this.LegFrontLeft1.addChild(this.LegFrontLeft2); - this.BodyMain.addChild(this.PlateBackRight); - this.HeadMain.addChild(this.EyeLeft); - this.HeadMain.addChild(this.CrestLeft); - this.HeadMain.addChild(this.CrestMiddle); - this.HeadMain.addChild(this.EarRight); - this.BodyMain.addChild(this.PlateFrontRight); - this.HeadMain.addChild(this.Jaw); - this.LegFrontRight1.addChild(this.LegFrontRight2); - this.BodyMain.addChild(this.PlateFrontLeft); - this.LegBackRight1.addChild(this.LegBackRight2); - this.HeadMain.addChild(this.HeadTop); - this.HeadMain.addChild(this.SnoutRidge); - this.BodyMain.addChild(this.TorsoRidge); - this.BodyMain.addChild(this.PlateBackLeft); - this.BodyMain.addChild(this.LegFrontLeft1); - this.HeadMain.addChild(this.Snout); - this.HeadMain.addChild(this.EarLeft); - this.BodyMain.addChild(this.TailLeft); - this.HeadMain.addChild(this.CrestRight); - this.LegBackLeft1.addChild(this.LegBackLeft2); - this.HeadMain.addChild(this.SnoutLeft); - this.BodyMain.addChild(this.HeadMain); - this.BodyMain.addChild(this.BodyBack); - this.BodyMain.addChild(this.LegFrontRight1); - this.Jaw.addChild(this.TuskLeft); - this.BodyMain.addChild(this.LegBackRight1); - this.BodyMain.addChild(this.LegBackLeft1); - } - - @Override - public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) - { - this.BodyMain.render(f5); - } - - @Override - public void setRotationAngles(float limbSwing, float limbSwingAmount, float ageInTicks, float netHeadYaw, float headPitch, - float scaleFactor, Entity entity) - { - super.setRotationAngles(limbSwing, limbSwingAmount, ageInTicks, netHeadYaw, headPitch, scaleFactor, entity); - - - this.HeadMain.rotateAngleX = headPitch * 0.017453292F; - this.HeadMain.rotateAngleY = netHeadYaw * 0.017453292F; - - this.LegFrontLeft1.rotateAngleX = -0.7853981633974483F + (MathHelper.cos(limbSwing * 0.6662F) * 1.0F * limbSwingAmount); - this.LegFrontRight1.rotateAngleX = -0.7853981633974483F + (MathHelper.cos(limbSwing * 0.6662F + (float) Math.PI) * 1.0F * limbSwingAmount); - - this.LegBackLeft1.rotateAngleX = -0.31869712141416456F + (MathHelper.cos(limbSwing * 0.6662F + (float) Math.PI) * 1.0F * limbSwingAmount); - this.LegBackRight1.rotateAngleX = -0.3490658503988659F + (MathHelper.cos(limbSwing * 0.6662F) * 1.0F * limbSwingAmount); - } -} diff --git a/src/main/java/com/gildedgames/aether/client/models/entities/living/ModelTaegoreBaby.java b/src/main/java/com/gildedgames/aether/client/models/entities/living/ModelTaegoreBaby.java deleted file mode 100644 index 691cc65a36..0000000000 --- a/src/main/java/com/gildedgames/aether/client/models/entities/living/ModelTaegoreBaby.java +++ /dev/null @@ -1,118 +0,0 @@ -package com.gildedgames.aether.client.models.entities.living; - -import com.gildedgames.aether.client.renderer.ModelBaseAether; -import net.minecraft.client.model.ModelBase; -import net.minecraft.client.model.ModelRenderer; -import net.minecraft.entity.Entity; -import net.minecraft.util.math.MathHelper; - -/** - * babytaegore - Undefined - * Created using Tabula 5.1.0 - */ -public class ModelTaegoreBaby extends ModelBaseAether { - public ModelRenderer body_main; - public ModelRenderer tail; - public ModelRenderer plate_f_l; - public ModelRenderer head; - public ModelRenderer leg_f_l; - public ModelRenderer leg_f_r; - public ModelRenderer leg_b_l; - public ModelRenderer leg_b_r; - public ModelRenderer plate_f_r; - public ModelRenderer plate_b_l; - public ModelRenderer plate_b_r; - public ModelRenderer ears; - public ModelRenderer snout; - - public ModelTaegoreBaby() { - this.textureWidth = 64; - this.textureHeight = 32; - this.leg_f_l = new ModelRenderer(this, 56, 17); - this.leg_f_l.setRotationPoint(2.2F, 1.0F, -0.9F); - this.leg_f_l.addBox(-1.0F, -1.0F, -1.0F, 2, 6, 2, 0.0F); - this.ears = new ModelRenderer(this, 0, 0); - this.ears.setRotationPoint(0.0F, 0.0F, 1.0F); - this.ears.addBox(-4.5F, -2.5F, -3.2F, 9, 2, 1, 0.0F); - this.leg_b_l = new ModelRenderer(this, 56, 9); - this.leg_b_l.setRotationPoint(2.2F, 1.0F, 5.5F); - this.leg_b_l.addBox(-1.0F, -1.0F, -1.0F, 2, 6, 2, 0.0F); - this.snout = new ModelRenderer(this, 1, 14); - this.snout.setRotationPoint(0.0F, 0.1F, 0.0F); - this.snout.addBox(-1.5F, -0.1F, -4.4F, 3, 3, 1, 0.0F); - this.leg_b_r = new ModelRenderer(this, 48, 9); - this.leg_b_r.setRotationPoint(-2.2F, 1.0F, 5.5F); - this.leg_b_r.addBox(-1.0F, -1.0F, -1.0F, 2, 6, 2, 0.0F); - this.plate_b_r = new ModelRenderer(this, 22, 0); - this.plate_b_r.setRotationPoint(0.0F, 1.0F, 6.0F); - this.plate_b_r.addBox(-4.0F, -3.0F, -3.0F, 1, 5, 4, 0.0F); - this.setRotateAngle(plate_b_r, 0.08726646259971647F, 0.0F, 0.08726646259971647F); - this.tail = new ModelRenderer(this, 0, 27); - this.tail.setRotationPoint(0.0F, -2.0F, 7.5F); - this.tail.addBox(-1.5F, 0.0F, 0.0F, 3, 1, 4, 0.0F); - this.setRotateAngle(tail, -1.0297442586766543F, 0.0F, 0.0F); - this.plate_f_l = new ModelRenderer(this, 42, 0); - this.plate_f_l.setRotationPoint(0.0F, 1.0F, 0.0F); - this.plate_f_l.addBox(3.0F, -3.0F, -3.0F, 1, 5, 4, 0.0F); - this.setRotateAngle(plate_f_l, -0.08726646259971647F, 0.0F, -0.08726646259971647F); - this.plate_f_r = new ModelRenderer(this, 32, 0); - this.plate_f_r.setRotationPoint(0.0F, 1.0F, 0.0F); - this.plate_f_r.addBox(-4.0F, -3.0F, -3.0F, 1, 5, 4, 0.0F); - this.setRotateAngle(plate_f_r, -0.08726646259971647F, 0.0F, 0.08726646259971647F); - this.head = new ModelRenderer(this, 0, 3); - this.head.setRotationPoint(0.0F, 0.0F, -3.0F); - this.head.addBox(-3.0F, -3.0F, -3.4F, 6, 6, 5, 0.0F); - this.leg_f_r = new ModelRenderer(this, 48, 17); - this.leg_f_r.setRotationPoint(-2.2F, 1.0F, -0.9F); - this.leg_f_r.addBox(-1.0F, -1.0F, -1.0F, 2, 6, 2, 0.0F); - this.plate_b_l = new ModelRenderer(this, 52, 0); - this.plate_b_l.setRotationPoint(0.0F, 1.0F, 6.0F); - this.plate_b_l.addBox(3.0F, -3.0F, -3.0F, 1, 5, 4, 0.0F); - this.setRotateAngle(plate_b_l, 0.08726646259971647F, 0.0F, -0.08726646259971647F); - this.body_main = new ModelRenderer(this, 14, 14); - this.body_main.setRotationPoint(0.0F, 18.0F, -0.5F); - this.body_main.addBox(-3.5F, -3.5F, -3.5F, 7, 7, 11, 0.0F); - this.body_main.addChild(this.leg_f_l); - this.head.addChild(this.ears); - this.body_main.addChild(this.leg_b_l); - this.head.addChild(this.snout); - this.body_main.addChild(this.leg_b_r); - this.body_main.addChild(this.plate_b_r); - this.body_main.addChild(this.tail); - this.body_main.addChild(this.plate_f_l); - this.body_main.addChild(this.plate_f_r); - this.body_main.addChild(this.head); - this.body_main.addChild(this.leg_f_r); - this.body_main.addChild(this.plate_b_l); - } - - @Override - public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) { - this.body_main.render(f5); - } - - /** - * This is a helper function from Tabula to set the rotation of model parts - */ - public void setRotateAngle(ModelRenderer modelRenderer, float x, float y, float z) { - modelRenderer.rotateAngleX = x; - modelRenderer.rotateAngleY = y; - modelRenderer.rotateAngleZ = z; - } - - @Override - public void setRotationAngles(float limbSwing, float limbSwingAmount, float ageInTicks, float netHeadYaw, float headPitch, - float scaleFactor, Entity entity) - { - super.setRotationAngles(limbSwing, limbSwingAmount, ageInTicks, netHeadYaw, headPitch, scaleFactor, entity); - - this.head.rotateAngleX = headPitch * 0.017453292F; - this.head.rotateAngleY = netHeadYaw * 0.017453292F; - - this.leg_f_l.rotateAngleX = (MathHelper.cos(limbSwing * 0.6662F) * 1.0F * limbSwingAmount); - this.leg_f_r.rotateAngleX = (MathHelper.cos(limbSwing * 0.6662F + (float) Math.PI) * 1.0F * limbSwingAmount); - - this.leg_b_l.rotateAngleX = (MathHelper.cos(limbSwing * 0.6662F + (float) Math.PI) * 1.0F * limbSwingAmount); - this.leg_b_r.rotateAngleX = (MathHelper.cos(limbSwing * 0.6662F) * 1.0F * limbSwingAmount); - } -} diff --git a/src/main/java/com/gildedgames/aether/client/models/entities/living/ModelTempestInsect.java b/src/main/java/com/gildedgames/aether/client/models/entities/living/ModelTempestInsect.java deleted file mode 100644 index 0da6d4ce05..0000000000 --- a/src/main/java/com/gildedgames/aether/client/models/entities/living/ModelTempestInsect.java +++ /dev/null @@ -1,198 +0,0 @@ -package com.gildedgames.aether.client.models.entities.living; - -import com.gildedgames.aether.client.renderer.entities.living.layers.ILayeredModel; -import net.minecraft.client.model.ModelBase; -import net.minecraft.client.model.ModelRenderer; -import net.minecraft.entity.Entity; - -public class ModelTempestInsect extends ModelBase implements ILayeredModel { - public ModelRenderer body; - public ModelRenderer head; - public ModelRenderer back; - public ModelRenderer shoulder_left; - public ModelRenderer shoulder_right; - public ModelRenderer jaw; - public ModelRenderer butt; - public ModelRenderer leg_left_1; - public ModelRenderer leg_left_2; - public ModelRenderer leg_right_1; - public ModelRenderer leg_right_2; - public ModelRenderer belly; - public ModelRenderer tail_1; - public ModelRenderer cloud_left_front; - public ModelRenderer cloud_right_front; - public ModelRenderer arm_left_1; - public ModelRenderer arm_left_2; - public ModelRenderer arm_right_1; - public ModelRenderer arm_right_2; - public ModelRenderer wing_left; - public ModelRenderer wing_right; - public ModelRenderer cloud_left_back; - public ModelRenderer cloud_right_back; - public ModelRenderer tail_2; - - public ModelTempestInsect() { - this.textureWidth = 64; - this.textureHeight = 128; - this.jaw = new ModelRenderer(this, 0, 12); - this.jaw.setRotationPoint(0.0F, 2.0F, -3.0F); - this.jaw.addBox(-3.0F, 0.7F, -5.0F, 6, 1, 5, 0.0F); - this.leg_right_2 = new ModelRenderer(this, 1, 25); - this.leg_right_2.mirror = true; - this.leg_right_2.setRotationPoint(-0.8F, 0.5F, 9.0F); - this.leg_right_2.addBox(-3.0F, 0.0F, -0.5F, 3, 4, 1, 0.0F); - this.setRotateAngle(leg_right_2, 0.2617993877991494F, 0.0F, 0.0F); - this.tail_1 = new ModelRenderer(this, 44, 60); - this.tail_1.setRotationPoint(0.0F, 1.1F, 12.0F); - this.tail_1.addBox(0.0F, -1.0F, -0.5F, 1, 2, 9, 0.0F); - this.setRotateAngle(tail_1, -0.17453292519943295F, 0.0F, 0.0F); - this.cloud_right_back = new ModelRenderer(this, 0, 60); - this.cloud_right_back.mirror = true; - this.cloud_right_back.setRotationPoint(0.0F, 2.0F, 0.0F); - this.cloud_right_back.addBox(0.0F, -2.0F, -1.0F, 1, 4, 18, 0.0F); - this.setRotateAngle(cloud_right_back, -0.08726646259971647F, 0.0F, 0.0F); - this.arm_left_2 = new ModelRenderer(this, 20, 18); - this.arm_left_2.setRotationPoint(0.0F, 3.5F, 0.0F); - this.arm_left_2.addBox(-1.0F, -0.5F, -1.0F, 2, 2, 5, 0.0F); - this.setRotateAngle(arm_left_2, -0.3490658503988659F, 0.0F, 0.0F); - this.wing_left = new ModelRenderer(this, 1, 47); - this.wing_left.setRotationPoint(2.0F, 0.0F, 5.0F); - this.wing_left.addBox(-2.0F, 0.0F, 0.0F, 4, 2, 9, 0.0F); - this.setRotateAngle(wing_left, 0.4363323129985824F, 0.4363323129985824F, 0.0F); - this.butt = new ModelRenderer(this, 36, 10); - this.butt.setRotationPoint(0.0F, -2.0F, 7.0F); - this.butt.addBox(-4.0F, 0.0F, 0.0F, 8, 3, 6, 0.0F); - this.setRotateAngle(butt, -0.20943951023931953F, 0.0F, 0.0F); - this.arm_right_2 = new ModelRenderer(this, 20, 18); - this.arm_right_2.mirror = true; - this.arm_right_2.setRotationPoint(0.0F, 3.5F, 0.0F); - this.arm_right_2.addBox(-1.0F, -0.5F, -1.0F, 2, 2, 5, 0.0F); - this.setRotateAngle(arm_right_2, -0.3490658503988659F, 0.0F, 0.0F); - this.head = new ModelRenderer(this, 0, 0); - this.head.setRotationPoint(0.0F, -2.0F, 0.0F); - this.head.addBox(-3.5F, 0.0F, -9.0F, 7, 3, 9, 0.0F); - this.setRotateAngle(head, 0.20943951023931953F, 0.0F, 0.0F); - this.tail_2 = new ModelRenderer(this, 46, 71); - this.tail_2.setRotationPoint(0.0F, 0.0F, 8.5F); - this.tail_2.addBox(0.0F, -1.0F, -0.5F, 1, 2, 8, 0.0F); - this.setRotateAngle(tail_2, 0.2617993877991494F, 0.0F, 0.0F); - this.shoulder_left = new ModelRenderer(this, 0, 18); - this.shoulder_left.setRotationPoint(3.0F, 2.0F, 1.0F); - this.shoulder_left.addBox(0.0F, -1.5F, -1.5F, 3, 2, 5, 0.0F); - this.setRotateAngle(shoulder_left, 0.3490658503988659F, -0.3490658503988659F, 0.0F); - this.leg_right_1 = new ModelRenderer(this, 1, 25); - this.leg_right_1.mirror = true; - this.leg_right_1.setRotationPoint(-0.8F, 0.5F, 8.0F); - this.leg_right_1.addBox(-3.0F, 0.0F, -0.5F, 3, 4, 1, 0.0F); - this.setRotateAngle(leg_right_1, -0.2617993877991494F, 0.0F, 0.0F); - this.arm_left_1 = new ModelRenderer(this, 16, 20); - this.arm_left_1.setRotationPoint(2.0F, -0.3F, 1.5F); - this.arm_left_1.addBox(-0.5F, -0.5F, -0.5F, 1, 4, 1, 0.0F); - this.setRotateAngle(arm_left_1, -0.5235987755982988F, 0.0F, 0.0F); - this.arm_right_1 = new ModelRenderer(this, 16, 20); - this.arm_right_1.mirror = true; - this.arm_right_1.setRotationPoint(-2.0F, -0.3F, 1.5F); - this.arm_right_1.addBox(-0.5F, -0.5F, -0.5F, 1, 4, 1, 0.0F); - this.setRotateAngle(arm_right_1, -0.5235987755982988F, 0.0F, 0.0F); - this.leg_left_1 = new ModelRenderer(this, 1, 25); - this.leg_left_1.setRotationPoint(0.8F, 0.5F, 8.0F); - this.leg_left_1.addBox(0.0F, 0.0F, -0.5F, 3, 4, 1, 0.0F); - this.setRotateAngle(leg_left_1, -0.2617993877991494F, 0.0F, 0.0F); - this.leg_left_2 = new ModelRenderer(this, 1, 25); - this.leg_left_2.setRotationPoint(0.8F, 0.5F, 9.0F); - this.leg_left_2.addBox(0.0F, 0.0F, -0.5F, 3, 4, 1, 0.0F); - this.setRotateAngle(leg_left_2, 0.2617993877991494F, 0.0F, 0.0F); - this.shoulder_right = new ModelRenderer(this, 0, 18); - this.shoulder_right.mirror = true; - this.shoulder_right.setRotationPoint(-3.0F, 2.0F, 1.0F); - this.shoulder_right.addBox(-3.0F, -1.5F, -1.5F, 3, 2, 5, 0.0F); - this.setRotateAngle(shoulder_right, 0.3490658503988659F, 0.3490658503988659F, 0.0F); - this.back = new ModelRenderer(this, 32, 0); - this.back.setRotationPoint(0.0F, -2.0F, 0.0F); - this.back.addBox(-4.5F, 0.0F, 0.0F, 9, 3, 7, 0.0F); - this.cloud_left_front = new ModelRenderer(this, 0, 25); - this.cloud_left_front.setRotationPoint(2.0F, 2.0F, 3.0F); - this.cloud_left_front.addBox(0.0F, -1.5F, -1.0F, 1, 3, 12, 0.0F); - this.setRotateAngle(cloud_left_front, -0.3490658503988659F, 0.5235987755982988F, 0.0F); - this.wing_right = new ModelRenderer(this, 1, 47); - this.wing_right.mirror = true; - this.wing_right.setRotationPoint(-2.0F, 0.0F, 5.0F); - this.wing_right.addBox(-2.0F, 0.0F, 0.0F, 4, 2, 9, 0.0F); - this.setRotateAngle(wing_right, 0.4363323129985824F, -0.4363323129985824F, 0.0F); - this.belly = new ModelRenderer(this, 26, 23); - this.belly.setRotationPoint(0.0F, 2.7F, -3.0F); - this.belly.addBox(-2.5F, 0.0F, 0.0F, 5, 1, 14, 0.0F); - this.cloud_right_front = new ModelRenderer(this, 0, 25); - this.cloud_right_front.mirror = true; - this.cloud_right_front.setRotationPoint(-2.0F, 2.0F, 3.0F); - this.cloud_right_front.addBox(-1.0F, -1.5F, -1.0F, 1, 3, 12, 0.0F); - this.setRotateAngle(cloud_right_front, -0.3490658503988659F, -0.5235987755982988F, 0.0F); - this.cloud_left_back = new ModelRenderer(this, 0, 60); - this.cloud_left_back.setRotationPoint(0.0F, 2.0F, 0.0F); - this.cloud_left_back.addBox(-1.0F, -2.0F, -1.0F, 1, 4, 18, 0.0F); - this.setRotateAngle(cloud_left_back, -0.08726646259971647F, 0.0F, 0.0F); - this.body = new ModelRenderer(this, 12, 38); - this.body.setRotationPoint(0.0F, 14.0F, -3.0F); - this.body.addBox(-3.0F, 0.7F, -8.0F, 6, 2, 20, 0.0F); - this.body.addChild(this.jaw); - this.body.addChild(this.leg_right_2); - this.body.addChild(this.tail_1); - this.wing_right.addChild(this.cloud_right_back); - this.arm_left_1.addChild(this.arm_left_2); - this.butt.addChild(this.wing_left); - this.body.addChild(this.butt); - this.arm_right_1.addChild(this.arm_right_2); - this.body.addChild(this.head); - this.tail_1.addChild(this.tail_2); - this.body.addChild(this.shoulder_left); - this.body.addChild(this.leg_right_1); - this.shoulder_left.addChild(this.arm_left_1); - this.shoulder_right.addChild(this.arm_right_1); - this.body.addChild(this.leg_left_1); - this.body.addChild(this.leg_left_2); - this.body.addChild(this.shoulder_right); - this.body.addChild(this.back); - this.body.addChild(this.cloud_left_front); - this.butt.addChild(this.wing_right); - this.body.addChild(this.belly); - this.body.addChild(this.cloud_right_front); - this.wing_left.addChild(this.cloud_left_back); - } - - @Override - public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) { - this.body.render(f5); - } - - public void setRotateAngle(ModelRenderer modelRenderer, float x, float y, float z) { - modelRenderer.rotateAngleX = x; - modelRenderer.rotateAngleY = y; - modelRenderer.rotateAngleZ = z; - } - - @Override - public void preLayerRender() { - this.back.isHidden = true; - this.shoulder_right.isHidden = true; - this.shoulder_left.isHidden = true; - this.leg_left_1.isHidden = true; - this.leg_left_2.isHidden = true; - this.leg_right_1.isHidden = true; - this.leg_right_2.isHidden = true; - this.belly.isHidden = true; - this.tail_1.isHidden = true; - } - - @Override - public void postLayerRender() { - this.back.isHidden = false; - this.shoulder_right.isHidden = false; - this.shoulder_left.isHidden = false; - this.leg_left_1.isHidden = false; - this.leg_left_2.isHidden = false; - this.leg_right_1.isHidden = false; - this.leg_right_2.isHidden = false; - this.belly.isHidden = false; - this.tail_1.isHidden = false; - } -} \ No newline at end of file diff --git a/src/main/java/com/gildedgames/aether/client/models/entities/living/ModelTempestShell.java b/src/main/java/com/gildedgames/aether/client/models/entities/living/ModelTempestShell.java deleted file mode 100644 index dc8bd59857..0000000000 --- a/src/main/java/com/gildedgames/aether/client/models/entities/living/ModelTempestShell.java +++ /dev/null @@ -1,95 +0,0 @@ -package com.gildedgames.aether.client.models.entities.living; - -import com.gildedgames.aether.client.renderer.entities.living.layers.ILayeredModel; -import net.minecraft.client.model.ModelBase; -import net.minecraft.client.model.ModelRenderer; -import net.minecraft.entity.Entity; - -public class ModelTempestShell extends ModelBase implements ILayeredModel -{ - public ModelRenderer body; - public ModelRenderer jaw; - public ModelRenderer head; - public ModelRenderer fin_left; - public ModelRenderer fin_right; - public ModelRenderer crest_centre; - public ModelRenderer crest_left; - public ModelRenderer crest_right; - - public ModelTempestShell() { - this.textureWidth = 64; - this.textureHeight = 32; - this.crest_centre = new ModelRenderer(this, 0, 21); - this.crest_centre.setRotationPoint(0.0F, -0.5F, 0.5F); - this.crest_centre.addBox(-2.0F, 0.0F, 0.0F, 4, 2, 9, 0.0F); - this.fin_right = new ModelRenderer(this, 44, 18); - this.fin_right.mirror = true; - this.fin_right.setRotationPoint(-3.5F, 0.0F, -3.0F); - this.fin_right.addBox(0.0F, 0.0F, 0.0F, 2, 3, 8, 0.0F); - this.setRotateAngle(fin_right, -0.08726646259971647F, -0.7853981633974483F, 0.0F); - this.crest_left = new ModelRenderer(this, 26, 19); - this.crest_left.setRotationPoint(2.0F, -0.5F, -1.5F); - this.crest_left.addBox(-2.0F, 0.0F, 0.0F, 4, 3, 10, 0.0F); - this.setRotateAngle(crest_left, -0.08726646259971647F, 0.5235987755982988F, 0.0F); - this.head = new ModelRenderer(this, 0, 7); - this.head.setRotationPoint(0.0F, -2.0F, -0.0F); - this.head.addBox(-4.0F, -0.5F, -9.5F, 8, 4, 10, 0.0F); - this.setRotateAngle(head, 0.20943951023931953F, 0.0F, 0.0F); - this.fin_left = new ModelRenderer(this, 44, 18); - this.fin_left.setRotationPoint(3.5F, 0.0F, -3.0F); - this.fin_left.addBox(-2.0F, 0.0F, 0.0F, 2, 3, 8, 0.0F); - this.setRotateAngle(fin_left, -0.08726646259971647F, 0.7853981633974483F, 0.0F); - this.jaw = new ModelRenderer(this, 26, 9); - this.jaw.setRotationPoint(0.0F, 2.0F, -3.0F); - this.jaw.addBox(-3.5F, 0.2F, -5.5F, 7, 2, 6, 0.0F); - this.crest_right = new ModelRenderer(this, 26, 19); - this.crest_right.mirror = true; - this.crest_right.setRotationPoint(-2.0F, -0.5F, -1.5F); - this.crest_right.addBox(-2.0F, 0.0F, 0.0F, 4, 3, 10, 0.0F); - this.setRotateAngle(crest_right, -0.08726646259971647F, -0.5235987755982988F, 0.0F); - this.body = new ModelRenderer(this, 0, 0); - this.body.setRotationPoint(0.0F, 14.0F, -3.0F); - this.body.addBox(-3.0F, 2.9F, -2.8F, 0, 0, 0, 0.0F); - this.head.addChild(this.crest_centre); - this.body.addChild(this.fin_right); - this.head.addChild(this.crest_left); - this.body.addChild(this.head); - this.body.addChild(this.fin_left); - this.body.addChild(this.jaw); - this.head.addChild(this.crest_right); - } - - @Override - public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) { - this.body.render(f5); - } - - /** - * This is a helper function from Tabula to set the rotation of model parts - */ - public void setRotateAngle(ModelRenderer modelRenderer, float x, float y, float z) { - modelRenderer.rotateAngleX = x; - modelRenderer.rotateAngleY = y; - modelRenderer.rotateAngleZ = z; - } - - @Override - public void preLayerRender() { - this.crest_right.isHidden = true; - this.crest_left.isHidden = true; - this.crest_centre.isHidden = true; - this.jaw.isHidden = true; - this.fin_left.isHidden = true; - this.fin_right.isHidden = true; - } - - @Override - public void postLayerRender() { - this.crest_right.isHidden = false; - this.crest_left.isHidden = false; - this.crest_centre.isHidden = false; - this.jaw.isHidden = false; - this.fin_left.isHidden = false; - this.fin_right.isHidden = false; - } -} diff --git a/src/main/java/com/gildedgames/aether/client/models/entities/living/ModelTivalier.java b/src/main/java/com/gildedgames/aether/client/models/entities/living/ModelTivalier.java deleted file mode 100644 index 7733db04a7..0000000000 --- a/src/main/java/com/gildedgames/aether/client/models/entities/living/ModelTivalier.java +++ /dev/null @@ -1,567 +0,0 @@ -package com.gildedgames.aether.client.models.entities.living; - -import net.minecraft.client.model.ModelBase; -import net.minecraft.client.model.ModelRenderer; -import net.minecraft.entity.Entity; -import net.minecraft.util.math.MathHelper; - -public class ModelTivalier extends ModelBase -{ - public final ModelRenderer BodyMain; - - public final ModelRenderer BodyFront; - - public final ModelRenderer BodyBack; - - public final ModelRenderer TailBase; - - public final ModelRenderer LegL1; - - public final ModelRenderer LegR1; - - public final ModelRenderer ShoulderL; - - public final ModelRenderer ShoulderR; - - public final ModelRenderer Neck; - - public final ModelRenderer WingL1; - - public final ModelRenderer WingL2; - - public final ModelRenderer WingLFeatherInt2; - - public final ModelRenderer WingL3; - - public final ModelRenderer WingLFeatherInt1; - - public final ModelRenderer WingLFeatherExt1; - - public final ModelRenderer WingLFeatherExt2; - - public final ModelRenderer WingLFeatherExt3; - - public final ModelRenderer WingR1; - - public final ModelRenderer WingR2; - - public final ModelRenderer WingRFeatherInt2; - - public final ModelRenderer WingR3; - - public final ModelRenderer WingRFeatherInt1; - - public final ModelRenderer WingRFeatherExt1; - - public final ModelRenderer WingRFeatherExt2; - - public final ModelRenderer WingRFeatherExt3; - - public final ModelRenderer HeadMain; - - public final ModelRenderer HeadBack; - - public final ModelRenderer HeadBeakMain; - - public final ModelRenderer JawMain; - - public final ModelRenderer HeadFront; - - public final ModelRenderer HeadBrow; - - public final ModelRenderer HeadFeatherL1; - - public final ModelRenderer HeadFeatherR1; - - public final ModelRenderer HeadFeatherL2; - - public final ModelRenderer HeadFeatherR2; - - public final ModelRenderer HeadBeakIntL; - - public final ModelRenderer HeadBeakIntR; - - public final ModelRenderer HeadBeakFrontL; - - public final ModelRenderer HeadBeakFrontR; - - public final ModelRenderer JawBack; - - public final ModelRenderer JawFrontL; - - public final ModelRenderer JawToothL2; - - public final ModelRenderer JawToothR2; - - public final ModelRenderer JawFrontR; - - public final ModelRenderer JawToothL3; - - public final ModelRenderer JawToothR3; - - public final ModelRenderer JawToothL1; - - public final ModelRenderer JawToothL1_1; - - public final ModelRenderer TailFeatherR; - - public final ModelRenderer TailFeatherM; - - public final ModelRenderer TailFeatherL; - - public final ModelRenderer LegL2; - - public final ModelRenderer LegL3; - - public final ModelRenderer LegLAnkle; - - public final ModelRenderer LegLFoot; - - public final ModelRenderer LegLToeM; - - public final ModelRenderer LegLToeR; - - public final ModelRenderer LegLToeL; - - public final ModelRenderer LegLTalonM; - - public final ModelRenderer LegLTalonR; - - public final ModelRenderer LegLTalonL; - - public final ModelRenderer LegR2; - - public final ModelRenderer LegR3; - - public final ModelRenderer LegRAnkle; - - public final ModelRenderer LegRFoot; - - public final ModelRenderer LegRToeM; - - public final ModelRenderer LegRToeR; - - public final ModelRenderer LegRToeL; - - public final ModelRenderer LegRTalonM; - - public final ModelRenderer LegRTalonR; - - public final ModelRenderer LegRTalonL; - - public ModelTivalier() - { - this.textureWidth = 128; - this.textureHeight = 256; - this.HeadBeakIntR = new ModelRenderer(this, 86, 11); - this.HeadBeakIntR.setRotationPoint(-3.5F, 0.0F, -4.5F); - this.HeadBeakIntR.addBox(0.0F, 0.0F, -3.0F, 0, 4, 3, 0.0F); - this.setRotateAngle(this.HeadBeakIntR, 0.0F, -0.5235987755982988F, 0.0F); - this.HeadBeakFrontR = new ModelRenderer(this, 31, 69); - this.HeadBeakFrontR.setRotationPoint(-1.2F, 2.0F, -10.7F); - this.HeadBeakFrontR.addBox(-2.0F, -5.8F, 0.0F, 2, 6, 2, 0.0F); - this.setRotateAngle(this.HeadBeakFrontR, 0.05235987755982988F, 0.7853981633974483F, 0.0F); - this.HeadBrow = new ModelRenderer(this, 25, 32); - this.HeadBrow.setRotationPoint(0.0F, -5.9F, -5.0F); - this.HeadBrow.addBox(-3.5F, 0.0F, -3.5F, 7, 3, 7, 0.0F); - this.setRotateAngle(this.HeadBrow, 0.0F, 0.7853981633974483F, 0.0F); - this.HeadBeakFrontL = new ModelRenderer(this, 39, 69); - this.HeadBeakFrontL.setRotationPoint(1.2F, 2.0F, -10.7F); - this.HeadBeakFrontL.addBox(0.0F, -5.8F, 0.0F, 2, 6, 2, 0.0F); - this.setRotateAngle(this.HeadBeakFrontL, 0.05235987755982988F, -0.7853981633974483F, 0.0F); - this.LegLTalonR = new ModelRenderer(this, 53, 210); - this.LegLTalonR.setRotationPoint(0.0F, 0.5F, -4.5F); - this.LegLTalonR.addBox(-0.5F, -0.6F, -0.7F, 1, 2, 1, 0.0F); - this.setRotateAngle(this.LegLTalonR, 0.17453292519943295F, 0.0F, 0.0F); - this.HeadBeakMain = new ModelRenderer(this, 25, 54); - this.HeadBeakMain.setRotationPoint(0.0F, -2.0F, -4.7F); - this.HeadBeakMain.addBox(-2.5F, -3.8F, -9.4F, 5, 6, 9, 0.0F); - this.setRotateAngle(this.HeadBeakMain, 0.13962634015954636F, 0.0F, 0.0F); - this.JawToothL1_1 = new ModelRenderer(this, 85, 0); - this.JawToothL1_1.setRotationPoint(1.5F, -1.6F, -2.3F); - this.JawToothL1_1.addBox(-1.0F, -1.0F, -0.5F, 2, 2, 2, 0.0F); - this.setRotateAngle(this.JawToothL1_1, 0.0F, 0.0F, 0.7853981633974483F); - this.LegRToeL = new ModelRenderer(this, 34, 203); - this.LegRToeL.setRotationPoint(1.0F, 1.0F, -2.5F); - this.LegRToeL.addBox(-1.0F, -1.0F, -5.0F, 2, 2, 5, 0.0F); - this.setRotateAngle(this.LegRToeL, -0.17453292519943295F, -0.5235987755982988F, 0.0F); - this.WingRFeatherExt2 = new ModelRenderer(this, 2, 131); - this.WingRFeatherExt2.setRotationPoint(0.0F, 0.5F, 2.0F); - this.WingRFeatherExt2.addBox(-14.0F, -1.0F, -2.5F, 16, 1, 5, 0.0F); - this.setRotateAngle(this.WingRFeatherExt2, 0.0F, 0.17453292519943295F, 0.0F); - this.LegR2 = new ModelRenderer(this, 16, 165); - this.LegR2.setRotationPoint(-1.5F, 7.0F, 1.5F); - this.LegR2.addBox(-2.0F, -1.0F, -2.0F, 4, 9, 4, 0.0F); - this.setRotateAngle(this.LegR2, 2.0943951023931953F, 0.0F, -0.08726646259971647F); - this.LegR1 = new ModelRenderer(this, 12, 146); - this.LegR1.setRotationPoint(-2.5F, 6.0F, 3.0F); - this.LegR1.addBox(-4.0F, -2.5F, -3.5F, 5, 12, 7, 0.0F); - this.setRotateAngle(this.LegR1, -2.007128639793479F, 0.2617993877991494F, 0.0F); - this.JawToothL2 = new ModelRenderer(this, 120, 4); - this.JawToothL2.setRotationPoint(2.3F, -1.5F, -9.6F); - this.JawToothL2.addBox(-0.5F, -1.0F, -1.0F, 1, 2, 2, 0.0F); - this.setRotateAngle(this.JawToothL2, 0.7853981633974483F, 0.0F, -0.17453292519943295F); - this.LegLAnkle = new ModelRenderer(this, 65, 189); - this.LegLAnkle.setRotationPoint(0.0F, 7.0F, 0.0F); - this.LegLAnkle.addBox(-1.0F, -1.0F, -3.0F, 2, 2, 5, 0.0F); - this.setRotateAngle(this.LegLAnkle, 2.1816615649929116F, 0.0F, 0.24434609527920614F); - this.WingL3 = new ModelRenderer(this, 0, 0); - this.WingL3.setRotationPoint(9.0F, 0.0F, 0.0F); - this.WingL3.addBox(-3.0F, 0.0F, -1.0F, 2, 1, 2, 0.0F); - this.setRotateAngle(this.WingL3, 0.0F, -0.2617993877991494F, 0.17453292519943295F); - this.JawFrontR = new ModelRenderer(this, 94, 25); - this.JawFrontR.setRotationPoint(-1.3F, 0.0F, -9.8F); - this.JawFrontR.addBox(0.0F, -1.6F, -3.0F, 3, 4, 3, 0.0F); - this.setRotateAngle(this.JawFrontR, -0.05235987755982988F, 0.7853981633974483F, 0.0F); - this.JawToothL3 = new ModelRenderer(this, 120, 8); - this.JawToothL3.setRotationPoint(2.3F, -1.5F, -6.5F); - this.JawToothL3.addBox(-0.5F, -1.0F, -1.0F, 1, 2, 2, 0.0F); - this.setRotateAngle(this.JawToothL3, 0.7853981633974483F, 0.0F, -0.17453292519943295F); - this.WingR1 = new ModelRenderer(this, 8, 94); - this.WingR1.setRotationPoint(-2.5F, 0.0F, 0.0F); - this.WingR1.addBox(-7.5F, -2.0F, -4.0F, 10, 2, 6, 0.0F); - this.setRotateAngle(this.WingR1, 0.0F, -0.17453292519943295F, 0.0F); - this.JawToothL1 = new ModelRenderer(this, 119, 0); - this.JawToothL1.setRotationPoint(-1.5F, -1.6F, -2.3F); - this.JawToothL1.addBox(-1.0F, -1.0F, -0.5F, 2, 2, 2, 0.0F); - this.setRotateAngle(this.JawToothL1, 0.0F, 0.0F, 0.7853981633974483F); - this.HeadFront = new ModelRenderer(this, 27, 42); - this.HeadFront.setRotationPoint(0.0F, 0.5F, -4.5F); - this.HeadFront.addBox(-3.0F, -6.0F, -3.0F, 6, 6, 6, 0.0F); - this.setRotateAngle(this.HeadFront, 0.0F, 0.7853981633974483F, 0.0F); - this.BodyBack = new ModelRenderer(this, 97, 114); - this.BodyBack.setRotationPoint(0.0F, 10.0F, 7.0F); - this.BodyBack.addBox(-4.0F, -6.0F, -2.0F, 8, 6, 2, 0.0F); - this.setRotateAngle(this.BodyBack, -0.41887902047863906F, 0.0F, 0.0F); - this.JawToothR2 = new ModelRenderer(this, 86, 4); - this.JawToothR2.setRotationPoint(-2.3F, -1.5F, -9.6F); - this.JawToothR2.addBox(-0.5F, -1.0F, -1.0F, 1, 2, 2, 0.0F); - this.setRotateAngle(this.JawToothR2, 0.7853981633974483F, 0.0F, 0.17453292519943295F); - this.HeadFeatherR2 = new ModelRenderer(this, 0, 18); - this.HeadFeatherR2.setRotationPoint(-3.5F, 1.0F, 1.9F); - this.HeadFeatherR2.addBox(-0.5F, -2.0F, -1.0F, 1, 4, 10, 0.0F); - this.setRotateAngle(this.HeadFeatherR2, -0.17453292519943295F, -0.3490658503988659F, 0.0F); - this.Neck = new ModelRenderer(this, 96, 47); - this.Neck.setRotationPoint(0.0F, 4.0F, -7.0F); - this.Neck.addBox(-2.5F, -13.0F, -3.0F, 5, 17, 6, 0.0F); - this.setRotateAngle(this.Neck, 0.17453292519943295F, 0.0F, 0.0F); - this.LegL3 = new ModelRenderer(this, 66, 178); - this.LegL3.setRotationPoint(0.0F, 6.5F, 0.0F); - this.LegL3.addBox(-1.5F, -1.0F, -1.5F, 3, 8, 3, 0.0F); - this.setRotateAngle(this.LegL3, -1.7453292519943295F, 0.0F, 0.12217304763960307F); - this.LegLTalonM = new ModelRenderer(this, 69, 212); - this.LegLTalonM.setRotationPoint(0.5F, 0.5F, -6.5F); - this.LegLTalonM.addBox(-1.0F, -0.7F, -0.7F, 1, 5, 2, 0.0F); - this.setRotateAngle(this.LegLTalonM, 0.17453292519943295F, 0.0F, 0.0F); - this.LegRFoot = new ModelRenderer(this, 15, 196); - this.LegRFoot.setRotationPoint(0.0F, 0.0F, -1.5F); - this.LegRFoot.addBox(-2.0F, 0.0F, -3.5F, 4, 2, 5, 0.0F); - this.setRotateAngle(this.LegRFoot, -0.593411945678072F, 0.0F, 0.0F); - this.WingLFeatherExt1 = new ModelRenderer(this, 44, 137); - this.WingLFeatherExt1.setRotationPoint(0.0F, 0.0F, -1.0F); - this.WingLFeatherExt1.addBox(0.0F, -1.0F, -2.5F, 17, 1, 5, 0.0F); - this.setRotateAngle(this.WingLFeatherExt1, 0.0F, 0.17453292519943295F, 0.0F); - this.WingR2 = new ModelRenderer(this, 0, 102); - this.WingR2.setRotationPoint(-8.0F, -1.3F, -1.0F); - this.WingR2.addBox(-10.0F, -1.5F, -3.5F, 13, 3, 7, 0.0F); - this.setRotateAngle(this.WingR2, 0.0F, 1.8325957145940461F, -0.5235987755982988F); - this.WingL1 = new ModelRenderer(this, 40, 94); - this.WingL1.setRotationPoint(2.5F, 0.0F, 0.0F); - this.WingL1.addBox(-2.5F, -2.0F, -4.0F, 10, 2, 6, 0.0F); - this.setRotateAngle(this.WingL1, 0.0F, 0.17453292519943295F, 0.0F); - this.WingLFeatherExt3 = new ModelRenderer(this, 44, 125); - this.WingLFeatherExt3.setRotationPoint(-2.0F, 1.0F, 3.0F); - this.WingLFeatherExt3.addBox(-0.5F, -1.0F, -2.5F, 14, 1, 5, 0.0F); - this.setRotateAngle(this.WingLFeatherExt3, 0.0F, -0.6981317007977318F, 0.0F); - this.LegL1 = new ModelRenderer(this, 60, 146); - this.LegL1.setRotationPoint(2.5F, 6.0F, 3.0F); - this.LegL1.addBox(-1.0F, -2.5F, -3.5F, 5, 12, 7, 0.0F); - this.setRotateAngle(this.LegL1, -2.007128639793479F, -0.2617993877991494F, 0.0F); - this.LegLTalonL = new ModelRenderer(this, 87, 210); - this.LegLTalonL.setRotationPoint(0.0F, 0.5F, -4.5F); - this.LegLTalonL.addBox(-0.5F, -0.6F, -0.7F, 1, 2, 1, 0.0F); - this.setRotateAngle(this.LegLTalonL, 0.17453292519943295F, 0.0F, 0.0F); - this.LegLToeM = new ModelRenderer(this, 62, 203); - this.LegLToeM.setRotationPoint(0.0F, 1.0F, -2.5F); - this.LegLToeM.addBox(-1.5F, -1.0F, -7.0F, 3, 2, 7, 0.0F); - this.setRotateAngle(this.LegLToeM, -0.5235987755982988F, 0.0F, 0.0F); - this.WingRFeatherInt1 = new ModelRenderer(this, 10, 119); - this.WingRFeatherInt1.setRotationPoint(-2.0F, 0.0F, 3.0F); - this.WingRFeatherInt1.addBox(-11.5F, 0.0F, -2.5F, 12, 1, 5, 0.0F); - this.setRotateAngle(this.WingRFeatherInt1, 0.0F, 1.3962634015954636F, 0.0F); - this.ShoulderL = new ModelRenderer(this, 40, 81); - this.ShoulderL.setRotationPoint(3.0F, 1.5F, -4.0F); - this.ShoulderL.addBox(-1.5F, -2.5F, -4.5F, 6, 4, 9, 0.0F); - this.setRotateAngle(this.ShoulderL, 0.0F, 0.0F, 0.9599310885968813F); - this.HeadBack = new ModelRenderer(this, 25, 0); - this.HeadBack.setRotationPoint(0.0F, -6.0F, 3.5F); - this.HeadBack.addBox(-4.0F, 0.0F, 0.0F, 8, 8, 6, 0.0F); - this.setRotateAngle(this.HeadBack, -0.6283185307179586F, 0.0F, 0.0F); - this.WingL2 = new ModelRenderer(this, 40, 102); - this.WingL2.setRotationPoint(8.0F, -1.3F, -1.0F); - this.WingL2.addBox(-3.0F, -1.5F, -3.5F, 13, 3, 7, 0.0F); - this.setRotateAngle(this.WingL2, 0.0F, -1.8325957145940461F, 0.5235987755982988F); - this.LegRToeR = new ModelRenderer(this, 0, 203); - this.LegRToeR.setRotationPoint(-1.0F, 1.0F, -2.5F); - this.LegRToeR.addBox(-1.0F, -1.0F, -5.0F, 2, 2, 5, 0.0F); - this.setRotateAngle(this.LegRToeR, -0.17453292519943295F, 0.5235987755982988F, 0.0F); - this.HeadBeakIntL = new ModelRenderer(this, 120, 11); - this.HeadBeakIntL.setRotationPoint(3.5F, 0.0F, -4.5F); - this.HeadBeakIntL.addBox(0.0F, 0.0F, -3.0F, 0, 4, 3, 0.0F); - this.setRotateAngle(this.HeadBeakIntL, 0.0F, 0.5235987755982988F, 0.0F); - this.LegLToeL = new ModelRenderer(this, 82, 203); - this.LegLToeL.setRotationPoint(1.0F, 1.0F, -2.5F); - this.LegLToeL.addBox(-1.0F, -1.0F, -5.0F, 2, 2, 5, 0.0F); - this.setRotateAngle(this.LegLToeL, -0.17453292519943295F, -0.5235987755982988F, 0.0F); - this.LegRTalonM = new ModelRenderer(this, 21, 212); - this.LegRTalonM.setRotationPoint(0.5F, 0.5F, -6.5F); - this.LegRTalonM.addBox(-1.0F, -0.7F, -0.7F, 1, 5, 2, 0.0F); - this.setRotateAngle(this.LegRTalonM, 0.17453292519943295F, 0.0F, 0.0F); - this.TailFeatherR = new ModelRenderer(this, 10, 230); - this.TailFeatherR.setRotationPoint(-1.0F, 1.0F, 3.0F); - this.TailFeatherR.addBox(-2.5F, -1.0F, 0.0F, 5, 2, 20, 0.0F); - this.setRotateAngle(this.TailFeatherR, -0.5235987755982988F, 0.0F, 0.0F); - this.HeadFeatherR1 = new ModelRenderer(this, 0, 4); - this.HeadFeatherR1.setRotationPoint(-3.5F, -4.0F, 2.0F); - this.HeadFeatherR1.addBox(-0.5F, -2.0F, -1.0F, 1, 4, 10, 0.0F); - this.setRotateAngle(this.HeadFeatherR1, 0.17453292519943295F, -0.3490658503988659F, 0.0F); - this.WingR3 = new ModelRenderer(this, 0, 0); - this.WingR3.setRotationPoint(-9.0F, 0.0F, 0.0F); - this.WingR3.addBox(1.0F, 0.0F, -1.0F, 2, 1, 2, 0.0F); - this.setRotateAngle(this.WingR3, 0.0F, 0.2617993877991494F, -0.17453292519943295F); - this.JawBack = new ModelRenderer(this, 92, 0); - this.JawBack.setRotationPoint(0.0F, 0.0F, -3.0F); - this.JawBack.addBox(-3.5F, -1.6F, -3.5F, 7, 4, 7, 0.0F); - this.setRotateAngle(this.JawBack, 0.0F, -0.7853981633974483F, 0.0F); - this.BodyFront = new ModelRenderer(this, 87, 70); - this.BodyFront.setRotationPoint(0.0F, -0.5F, -4.0F); - this.BodyFront.addBox(-4.0F, 0.0F, -9.0F, 8, 10, 12, 0.0F); - this.setRotateAngle(this.BodyFront, -0.17453292519943295F, 0.0F, 0.0F); - this.LegRTalonR = new ModelRenderer(this, 5, 210); - this.LegRTalonR.setRotationPoint(0.0F, 0.5F, -4.5F); - this.LegRTalonR.addBox(-0.5F, -0.6F, -0.7F, 1, 2, 1, 0.0F); - this.setRotateAngle(this.LegRTalonR, 0.17453292519943295F, 0.0F, 0.0F); - this.HeadFeatherL2 = new ModelRenderer(this, 56, 18); - this.HeadFeatherL2.setRotationPoint(3.5F, 1.0F, 2.0F); - this.HeadFeatherL2.addBox(-0.5F, -2.0F, -1.0F, 1, 4, 10, 0.0F); - this.setRotateAngle(this.HeadFeatherL2, -0.17453292519943295F, 0.3490658503988659F, 0.0F); - this.LegLToeR = new ModelRenderer(this, 48, 203); - this.LegLToeR.setRotationPoint(-1.0F, 1.0F, -2.5F); - this.LegLToeR.addBox(-1.0F, -1.0F, -5.0F, 2, 2, 5, 0.0F); - this.setRotateAngle(this.LegLToeR, -0.17453292519943295F, 0.5235987755982988F, 0.0F); - this.HeadMain = new ModelRenderer(this, 22, 14); - this.HeadMain.setRotationPoint(0.0F, -12.0F, 0.0F); - this.HeadMain.addBox(-4.5F, -6.0F, -4.5F, 9, 10, 8, 0.0F); - this.setRotateAngle(this.HeadMain, 0.6981317007977318F, 0.0F, 0.0F); - this.WingLFeatherExt2 = new ModelRenderer(this, 44, 131); - this.WingLFeatherExt2.setRotationPoint(0.0F, 0.5F, 2.0F); - this.WingLFeatherExt2.addBox(-2.0F, -1.0F, -2.5F, 16, 1, 5, 0.0F); - this.setRotateAngle(this.WingLFeatherExt2, 0.0F, -0.17453292519943295F, 0.0F); - this.WingRFeatherExt1 = new ModelRenderer(this, 0, 137); - this.WingRFeatherExt1.setRotationPoint(0.0F, 0.0F, -1.0F); - this.WingRFeatherExt1.addBox(-17.0F, -1.0F, -2.5F, 17, 1, 5, 0.0F); - this.setRotateAngle(this.WingRFeatherExt1, 0.0F, -0.17453292519943295F, 0.0F); - this.HeadFeatherL1 = new ModelRenderer(this, 56, 4); - this.HeadFeatherL1.setRotationPoint(3.5F, -4.0F, 2.0F); - this.HeadFeatherL1.addBox(-0.5F, -2.0F, -1.0F, 1, 4, 10, 0.0F); - this.setRotateAngle(this.HeadFeatherL1, 0.17453292519943295F, 0.3490658503988659F, 0.0F); - this.JawToothR3 = new ModelRenderer(this, 86, 8); - this.JawToothR3.setRotationPoint(-2.3F, -1.5F, -6.5F); - this.JawToothR3.addBox(-0.5F, -1.0F, -1.0F, 1, 2, 2, 0.0F); - this.setRotateAngle(this.JawToothR3, 0.7853981633974483F, 0.0F, 0.17453292519943295F); - this.WingRFeatherExt3 = new ModelRenderer(this, 6, 125); - this.WingRFeatherExt3.setRotationPoint(2.0F, 1.0F, 3.0F); - this.WingRFeatherExt3.addBox(-12.5F, -1.0F, -2.5F, 14, 1, 5, 0.0F); - this.setRotateAngle(this.WingRFeatherExt3, 0.0F, 0.6981317007977318F, 0.0F); - this.LegLFoot = new ModelRenderer(this, 63, 196); - this.LegLFoot.setRotationPoint(0.0F, 0.0F, -1.5F); - this.LegLFoot.addBox(-2.0F, 0.0F, -3.5F, 4, 2, 5, 0.0F); - this.setRotateAngle(this.LegLFoot, -0.593411945678072F, 0.0F, 0.0F); - this.LegRTalonL = new ModelRenderer(this, 39, 210); - this.LegRTalonL.setRotationPoint(0.0F, 0.5F, -4.5F); - this.LegRTalonL.addBox(-0.5F, -0.6F, -0.7F, 1, 2, 1, 0.0F); - this.setRotateAngle(this.LegRTalonL, 0.17453292519943295F, 0.0F, 0.0F); - this.BodyMain = new ModelRenderer(this, 86, 92); - this.BodyMain.setRotationPoint(0.0F, 11.5F, 0.0F); - this.BodyMain.addBox(-4.5F, 0.0F, -5.0F, 9, 10, 12, 0.0F); - this.WingRFeatherInt2 = new ModelRenderer(this, 12, 113); - this.WingRFeatherInt2.setRotationPoint(-6.0F, -1.5F, 0.5F); - this.WingRFeatherInt2.addBox(-11.5F, 0.0F, -2.5F, 11, 1, 5, 0.0F); - this.setRotateAngle(this.WingRFeatherInt2, 0.0F, 1.48352986419518F, 0.0F); - this.TailBase = new ModelRenderer(this, 91, 122); - this.TailBase.setRotationPoint(0.0F, 1.7F, 8.5F); - this.TailBase.addBox(-4.5F, -1.6F, -4.5F, 8, 5, 8, 0.0F); - this.setRotateAngle(this.TailBase, 0.0F, -0.7853981633974483F, 0.0F); - this.WingLFeatherInt1 = new ModelRenderer(this, 44, 119); - this.WingLFeatherInt1.setRotationPoint(2.0F, 0.0F, 3.0F); - this.WingLFeatherInt1.addBox(-0.5F, 0.0F, -2.5F, 12, 1, 5, 0.0F); - this.setRotateAngle(this.WingLFeatherInt1, 0.0F, -1.3962634015954636F, 0.0F); - this.ShoulderR = new ModelRenderer(this, 10, 81); - this.ShoulderR.setRotationPoint(-3.0F, 1.5F, -4.0F); - this.ShoulderR.addBox(-4.5F, -2.5F, -4.5F, 6, 4, 9, 0.0F); - this.setRotateAngle(this.ShoulderR, 0.0F, 0.0F, -0.9599310885968813F); - this.JawFrontL = new ModelRenderer(this, 106, 25); - this.JawFrontL.setRotationPoint(1.3F, 0.0F, -9.8F); - this.JawFrontL.addBox(-3.0F, -1.6F, -3.0F, 3, 4, 3, 0.0F); - this.setRotateAngle(this.JawFrontL, -0.05235987755982988F, -0.7853981633974483F, 0.0F); - this.LegL2 = new ModelRenderer(this, 64, 165); - this.LegL2.setRotationPoint(1.5F, 7.0F, 1.5F); - this.LegL2.addBox(-2.0F, -1.0F, -2.0F, 4, 9, 4, 0.0F); - this.setRotateAngle(this.LegL2, 2.0943951023931953F, 0.0F, 0.08726646259971647F); - this.TailFeatherL = new ModelRenderer(this, 70, 230); - this.TailFeatherL.setRotationPoint(3.0F, 1.0F, -1.0F); - this.TailFeatherL.addBox(-2.5F, -1.0F, 0.0F, 5, 2, 20, 0.0F); - this.setRotateAngle(this.TailFeatherL, -0.5235987755982988F, 1.5707963267948966F, 0.0F); - this.LegRAnkle = new ModelRenderer(this, 17, 189); - this.LegRAnkle.setRotationPoint(0.0F, 7.0F, 0.0F); - this.LegRAnkle.addBox(-1.0F, -1.0F, -3.0F, 2, 2, 5, 0.0F); - this.setRotateAngle(this.LegRAnkle, 2.1816615649929116F, 0.0F, -0.24434609527920614F); - this.LegRToeM = new ModelRenderer(this, 14, 203); - this.LegRToeM.setRotationPoint(0.0F, 1.0F, -2.5F); - this.LegRToeM.addBox(-1.5F, -1.0F, -7.0F, 3, 2, 7, 0.0F); - this.setRotateAngle(this.LegRToeM, -0.5235987755982988F, 0.0F, 0.0F); - this.LegR3 = new ModelRenderer(this, 18, 178); - this.LegR3.setRotationPoint(0.0F, 6.5F, 0.0F); - this.LegR3.addBox(-1.5F, -1.0F, -1.5F, 3, 8, 3, 0.0F); - this.setRotateAngle(this.LegR3, -1.7453292519943295F, 0.0F, -0.12217304763960307F); - this.TailFeatherM = new ModelRenderer(this, 36, 230); - this.TailFeatherM.setRotationPoint(1.0F, 0.0F, 1.0F); - this.TailFeatherM.addBox(-2.5F, -1.0F, 0.0F, 5, 2, 24, 0.0F); - this.setRotateAngle(this.TailFeatherM, -0.5235987755982988F, 0.7853981633974483F, 0.0F); - this.JawMain = new ModelRenderer(this, 90, 11); - this.JawMain.setRotationPoint(0.0F, 2.0F, -2.0F); - this.JawMain.addBox(-3.0F, -1.7F, -11.5F, 6, 4, 10, 0.0F); - this.WingLFeatherInt2 = new ModelRenderer(this, 44, 113); - this.WingLFeatherInt2.setRotationPoint(6.0F, -1.5F, 0.5F); - this.WingLFeatherInt2.addBox(-0.5F, 0.0F, -2.5F, 11, 1, 5, 0.0F); - this.setRotateAngle(this.WingLFeatherInt2, 0.0F, -1.48352986419518F, 0.0F); - this.HeadMain.addChild(this.HeadBeakIntR); - this.HeadBeakMain.addChild(this.HeadBeakFrontR); - this.HeadMain.addChild(this.HeadBrow); - this.HeadBeakMain.addChild(this.HeadBeakFrontL); - this.LegLToeR.addChild(this.LegLTalonR); - this.HeadMain.addChild(this.HeadBeakMain); - this.JawFrontR.addChild(this.JawToothL1_1); - this.LegRFoot.addChild(this.LegRToeL); - this.WingR3.addChild(this.WingRFeatherExt2); - this.LegR1.addChild(this.LegR2); - this.BodyMain.addChild(this.LegR1); - this.JawMain.addChild(this.JawToothL2); - this.LegL3.addChild(this.LegLAnkle); - this.WingL2.addChild(this.WingL3); - this.JawMain.addChild(this.JawFrontR); - this.JawMain.addChild(this.JawToothL3); - this.ShoulderR.addChild(this.WingR1); - this.JawFrontL.addChild(this.JawToothL1); - this.HeadMain.addChild(this.HeadFront); - this.BodyMain.addChild(this.BodyBack); - this.JawMain.addChild(this.JawToothR2); - this.HeadMain.addChild(this.HeadFeatherR2); - this.BodyFront.addChild(this.Neck); - this.LegL2.addChild(this.LegL3); - this.LegLToeM.addChild(this.LegLTalonM); - this.LegRAnkle.addChild(this.LegRFoot); - this.WingL3.addChild(this.WingLFeatherExt1); - this.WingR1.addChild(this.WingR2); - this.ShoulderL.addChild(this.WingL1); - this.WingL3.addChild(this.WingLFeatherExt3); - this.BodyMain.addChild(this.LegL1); - this.LegLToeL.addChild(this.LegLTalonL); - this.LegLFoot.addChild(this.LegLToeM); - this.WingR2.addChild(this.WingRFeatherInt1); - this.BodyFront.addChild(this.ShoulderL); - this.HeadMain.addChild(this.HeadBack); - this.WingL1.addChild(this.WingL2); - this.LegRFoot.addChild(this.LegRToeR); - this.HeadMain.addChild(this.HeadBeakIntL); - this.LegLFoot.addChild(this.LegLToeL); - this.LegRToeM.addChild(this.LegRTalonM); - this.TailBase.addChild(this.TailFeatherR); - this.HeadMain.addChild(this.HeadFeatherR1); - this.WingR2.addChild(this.WingR3); - this.JawMain.addChild(this.JawBack); - this.BodyMain.addChild(this.BodyFront); - this.LegRToeR.addChild(this.LegRTalonR); - this.HeadMain.addChild(this.HeadFeatherL2); - this.LegLFoot.addChild(this.LegLToeR); - this.Neck.addChild(this.HeadMain); - this.WingL3.addChild(this.WingLFeatherExt2); - this.WingR3.addChild(this.WingRFeatherExt1); - this.HeadMain.addChild(this.HeadFeatherL1); - this.JawMain.addChild(this.JawToothR3); - this.WingR3.addChild(this.WingRFeatherExt3); - this.LegLAnkle.addChild(this.LegLFoot); - this.LegRToeL.addChild(this.LegRTalonL); - this.WingR1.addChild(this.WingRFeatherInt2); - this.BodyMain.addChild(this.TailBase); - this.WingL2.addChild(this.WingLFeatherInt1); - this.BodyFront.addChild(this.ShoulderR); - this.JawMain.addChild(this.JawFrontL); - this.LegL1.addChild(this.LegL2); - this.TailBase.addChild(this.TailFeatherL); - this.LegR3.addChild(this.LegRAnkle); - this.LegRFoot.addChild(this.LegRToeM); - this.LegR2.addChild(this.LegR3); - this.TailBase.addChild(this.TailFeatherM); - this.HeadMain.addChild(this.JawMain); - this.WingL1.addChild(this.WingLFeatherInt2); - } - - @Override - public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) - { - this.BodyMain.render(f5); - } - - /** - * This is a helper function from Tabula to set the rotation of model parts - */ - public void setRotateAngle(ModelRenderer modelRenderer, float x, float y, float z) - { - modelRenderer.rotateAngleX = x; - modelRenderer.rotateAngleY = y; - modelRenderer.rotateAngleZ = z; - } - - @Override - public void setRotationAngles(float limbSwing, float limbSwingAmount, float ageInTicks, float headYaw, float headPitch, float scaleFactor, Entity entity) - { - super.setRotationAngles(limbSwing, limbSwingAmount, ageInTicks, headYaw, headPitch, scaleFactor, entity); - - float tailSwayRange = 0.05F; - - this.HeadMain.rotateAngleX = 0.6981317007977318F + (MathHelper.cos((ageInTicks) * 0.05662F) * 0.025F); - - this.TailFeatherL.rotateAngleZ = (MathHelper.cos((24F + ageInTicks) * 0.15662F) * tailSwayRange); - this.TailFeatherM.rotateAngleZ = (MathHelper.cos((0.0F + ageInTicks) * 0.15662F) * tailSwayRange); - this.TailFeatherR.rotateAngleZ = (MathHelper.cos((48F + ageInTicks) * 0.15662F) * tailSwayRange); - - this.TailFeatherL.rotateAngleX = -0.5235987755982988F + (MathHelper.cos((0F + ageInTicks) * 0.15662F) * tailSwayRange); - this.TailFeatherM.rotateAngleX = -0.5235987755982988F + (MathHelper.cos((0.0F + ageInTicks) * 0.15662F) * tailSwayRange); - this.TailFeatherR.rotateAngleX = -0.5235987755982988F + (MathHelper.cos((0F + ageInTicks) * 0.15662F) * tailSwayRange); - - this.HeadFeatherL1.rotateAngleZ = (MathHelper.cos((24F + ageInTicks) * 0.15662F) * 0.1F); - this.HeadFeatherL2.rotateAngleZ = (MathHelper.cos((0.0F + ageInTicks) * 0.15662F) * 0.1F); - this.HeadFeatherR1.rotateAngleZ = (MathHelper.cos((48F + ageInTicks) * 0.15662F) * 0.1F); - this.HeadFeatherR2.rotateAngleZ = (MathHelper.cos((48F + ageInTicks) * 0.15662F) * 0.1F); - - this.HeadFeatherL1.rotateAngleX = 0.17453292519943295F + (MathHelper.cos((0.0F + ageInTicks) * 0.075662F) * 0.05F); - this.HeadFeatherL2.rotateAngleX = -0.17453292519943295F + (MathHelper.cos((10.0F + ageInTicks) * 0.0755662F) * 0.05F); - this.HeadFeatherR1.rotateAngleX = 0.17453292519943295F + (MathHelper.cos((20.0F + ageInTicks) * 0.0755662F) * 0.05F); - this.HeadFeatherR2.rotateAngleX = -0.17453292519943295F + (MathHelper.cos((30.0F + ageInTicks) * 0.0755662F) * 0.05F); - - float wingSwayRange = 0.05F; - - this.WingLFeatherExt1.rotateAngleZ = (MathHelper.cos((0.0F + ageInTicks) * 0.15662F) * wingSwayRange); - this.WingLFeatherExt2.rotateAngleZ = (MathHelper.cos((10.0F + ageInTicks) * 0.15662F) * wingSwayRange); - this.WingLFeatherExt3.rotateAngleZ = (MathHelper.cos((20.0F + ageInTicks) * 0.15662F) * wingSwayRange); - this.WingLFeatherInt1.rotateAngleZ = (MathHelper.cos((30.0F + ageInTicks) * 0.15662F) * wingSwayRange); - this.WingLFeatherInt2.rotateAngleZ = (MathHelper.cos((40.0F + ageInTicks) * 0.15662F) * wingSwayRange); - - this.WingRFeatherExt1.rotateAngleZ = (MathHelper.cos((0.0F + ageInTicks) * 0.15662F) * wingSwayRange); - this.WingRFeatherExt2.rotateAngleZ = (MathHelper.cos((10.0F + ageInTicks) * 0.15662F) * wingSwayRange); - this.WingRFeatherExt3.rotateAngleZ = (MathHelper.cos((20.0F + ageInTicks) * 0.15662F) * wingSwayRange); - this.WingRFeatherInt1.rotateAngleZ = (MathHelper.cos((30.0F + ageInTicks) * 0.15662F) * wingSwayRange); - this.WingRFeatherInt2.rotateAngleZ = (MathHelper.cos((40.0F + ageInTicks) * 0.15662F) * wingSwayRange); - } -} diff --git a/src/main/java/com/gildedgames/aether/client/models/entities/living/ModelVaranys.java b/src/main/java/com/gildedgames/aether/client/models/entities/living/ModelVaranys.java deleted file mode 100644 index 829e4f1424..0000000000 --- a/src/main/java/com/gildedgames/aether/client/models/entities/living/ModelVaranys.java +++ /dev/null @@ -1,371 +0,0 @@ -package com.gildedgames.aether.client.models.entities.living; - -import net.minecraft.client.model.ModelBase; -import net.minecraft.client.model.ModelRenderer; -import net.minecraft.entity.Entity; -import net.minecraft.util.math.MathHelper; - -public class ModelVaranys extends ModelBase -{ - public final ModelRenderer body; - - public final ModelRenderer body_front; - - public final ModelRenderer body_back; - - public final ModelRenderer leg_front_left_joint; - - public final ModelRenderer leg_front_right_joint; - - public final ModelRenderer head_top; - - public final ModelRenderer head_bottom; - - public final ModelRenderer teeth_top; - - public final ModelRenderer cheek_left; - - public final ModelRenderer cheek_right; - - public final ModelRenderer forehead; - - public final ModelRenderer teeth_bottom; - - public final ModelRenderer crest1; - - public final ModelRenderer crest3; - - public final ModelRenderer crest2; - - public final ModelRenderer tail1; - - public final ModelRenderer leg_back_left_top; - - public final ModelRenderer leg_back_right_top; - - public final ModelRenderer tail2; - - public final ModelRenderer tail3; - - public final ModelRenderer tail4; - - public final ModelRenderer leg_back_left_bottom; - - public final ModelRenderer foot_back_left_heel; - - public final ModelRenderer foot_back_left; - - public final ModelRenderer toe7; - - public final ModelRenderer toe8; - - public final ModelRenderer leg_back_left_bottom_1; - - public final ModelRenderer foot_back_left_heel_1; - - public final ModelRenderer foot_back_left_1; - - public final ModelRenderer toe9; - - public final ModelRenderer toe10; - - public final ModelRenderer leg_front_left_top; - - public final ModelRenderer leg_front_left_bottom; - - public final ModelRenderer foot_front_left; - - public final ModelRenderer toe1; - - public final ModelRenderer toe2; - - public final ModelRenderer toe3; - - public final ModelRenderer leg_front_right_top; - - public final ModelRenderer leg_front_right_bottom; - - public final ModelRenderer foot_front_right; - - public final ModelRenderer toe4; - - public final ModelRenderer toe5; - - public final ModelRenderer toe6; - - public ModelVaranys() - { - this.textureWidth = 128; - this.textureHeight = 128; - this.toe6 = new ModelRenderer(this, 44, 41); - this.toe6.mirror = true; - this.toe6.setRotationPoint(-1.0F, 0.8F, -5.0F); - this.toe6.addBox(-0.5F, 0.0F, -1.6F, 1, 1, 3, 0.0F); - this.setRotateAngle(this.toe6, 0.2617993877991494F, 0.17453292519943295F, 0.0F); - this.tail4 = new ModelRenderer(this, 0, 90); - this.tail4.setRotationPoint(0.0F, 0.0F, 8.0F); - this.tail4.addBox(-1.5F, -1.5F, 0.0F, 3, 3, 10, 0.0F); - this.setRotateAngle(this.tail4, 0.17453292519943295F, 0.0F, 0.0F); - this.body_back = new ModelRenderer(this, 0, 32); - this.body_back.setRotationPoint(0.0F, -3.5F, 5.0F); - this.body_back.addBox(-5.5F, 0.0F, 0.0F, 11, 7, 9, 0.0F); - this.setRotateAngle(this.body_back, -0.08726646259971647F, 0.0F, 0.0F); - this.leg_back_left_bottom_1 = new ModelRenderer(this, 44, 57); - this.leg_back_left_bottom_1.mirror = true; - this.leg_back_left_bottom_1.setRotationPoint(-2.99F, 6.5F, -1.5F); - this.leg_back_left_bottom_1.addBox(-2.0F, 0.0F, 0.0F, 4, 5, 3, 0.0F); - this.setRotateAngle(this.leg_back_left_bottom_1, 0.4363323129985824F, 0.0F, 0.0F); - this.body_front = new ModelRenderer(this, 0, 17); - this.body_front.setRotationPoint(0.0F, -3.5F, -5.0F); - this.body_front.addBox(-5.5F, 0.0F, -8.0F, 11, 7, 8, 0.0F); - this.setRotateAngle(this.body_front, 0.2617993877991494F, 0.0F, 0.0F); - this.foot_front_left = new ModelRenderer(this, 44, 26); - this.foot_front_left.setRotationPoint(0.0F, 7.0F, 0.0F); - this.foot_front_left.addBox(-2.0F, 0.0F, -5.0F, 4, 2, 5, 0.0F); - this.foot_back_left_heel_1 = new ModelRenderer(this, 44, 65); - this.foot_back_left_heel_1.mirror = true; - this.foot_back_left_heel_1.setRotationPoint(0.5F, 5.0F, 3.0F); - this.foot_back_left_heel_1.addBox(-1.5F, 0.0F, -2.0F, 3, 2, 2, 0.0F); - this.setRotateAngle(this.foot_back_left_heel_1, -0.4363323129985824F, 0.0F, 0.0F); - this.tail2 = new ModelRenderer(this, 0, 63); - this.tail2.setRotationPoint(0.0F, -0.5F, 8.0F); - this.tail2.addBox(-3.5F, -2.5F, 0.0F, 7, 5, 9, 0.0F); - this.setRotateAngle(this.tail2, -0.08726646259971647F, 0.0F, 0.0F); - this.head_top = new ModelRenderer(this, 68, 0); - this.head_top.setRotationPoint(0.0F, 2.0F, -8.0F); - this.head_top.addBox(-3.5F, -3.0F, -11.0F, 7, 4, 12, 0.0F); - this.setRotateAngle(this.head_top, -0.17453292519943295F, 0.0F, 0.0F); - this.forehead = new ModelRenderer(this, 68, 16); - this.forehead.setRotationPoint(0.0F, -3.0F, -7.0F); - this.forehead.addBox(-4.0F, 0.0F, 0.0F, 8, 2, 7, 0.0F); - this.setRotateAngle(this.forehead, 0.2617993877991494F, 0.0F, 0.0F); - this.toe4 = new ModelRenderer(this, 44, 33); - this.toe4.mirror = true; - this.toe4.setRotationPoint(1.0F, 0.5F, -5.0F); - this.toe4.addBox(-0.5F, 0.0F, -2.5F, 1, 1, 3, 0.0F); - this.setRotateAngle(this.toe4, 0.2617993877991494F, -0.17453292519943295F, 0.0F); - this.head_bottom = new ModelRenderer(this, 68, 33); - this.head_bottom.setRotationPoint(0.0F, 1.0F, 0.0F); - this.head_bottom.addBox(-3.0F, 0.0F, -11.0F, 6, 2, 12, 0.0F); - this.setRotateAngle(this.head_bottom, 0.3490658503988659F, 0.0F, 0.0F); - this.toe7 = new ModelRenderer(this, 44, 72); - this.toe7.setRotationPoint(-0.5F, 0.0F, -2.0F); - this.toe7.addBox(-1.0F, 0.0F, -2.0F, 1, 1, 2, 0.0F); - this.setRotateAngle(this.toe7, 0.17453292519943295F, 0.0F, 0.0F); - this.toe8 = new ModelRenderer(this, 44, 75); - this.toe8.setRotationPoint(-0.5F, 0.0F, -2.0F); - this.toe8.addBox(0.0F, 0.0F, -1.0F, 1, 1, 1, 0.0F); - this.setRotateAngle(this.toe8, 0.2617993877991494F, 0.0F, 0.0F); - this.leg_front_left_top = new ModelRenderer(this, 44, 0); - this.leg_front_left_top.setRotationPoint(0.0F, 0.0F, 0.0F); - this.leg_front_left_top.addBox(-3.5F, -1.5F, -3.0F, 7, 9, 5, 0.0F); - this.setRotateAngle(this.leg_front_left_top, 0.0F, -1.5707963267948966F, -0.8726646259971648F); - this.crest3 = new ModelRenderer(this, 118, 20); - this.crest3.setRotationPoint(-2.0F, 0.0F, 5.5F); - this.crest3.addBox(-2.0F, -3.0F, -1.0F, 2, 3, 2, 0.0F); - this.setRotateAngle(this.crest3, 0.0F, 0.0F, -0.6981317007977318F); - this.leg_back_left_bottom = new ModelRenderer(this, 44, 57); - this.leg_back_left_bottom.setRotationPoint(2.99F, 6.5F, -1.5F); - this.leg_back_left_bottom.addBox(-2.0F, 0.0F, 0.0F, 4, 5, 3, 0.0F); - this.setRotateAngle(this.leg_back_left_bottom, 0.4363323129985824F, 0.0F, 0.0F); - this.foot_front_right = new ModelRenderer(this, 44, 26); - this.foot_front_right.mirror = true; - this.foot_front_right.setRotationPoint(0.0F, 7.0F, 0.0F); - this.foot_front_right.addBox(-2.0F, 0.0F, -5.0F, 4, 2, 5, 0.0F); - this.leg_front_left_bottom = new ModelRenderer(this, 44, 14); - this.leg_front_left_bottom.setRotationPoint(5.0F, 3.7F, 2.0F); - this.leg_front_left_bottom.addBox(-2.5F, -1.0F, -3.5F, 5, 8, 4, 0.0F); - this.foot_back_left_heel = new ModelRenderer(this, 44, 65); - this.foot_back_left_heel.setRotationPoint(-0.5F, 5.0F, 3.0F); - this.foot_back_left_heel.addBox(-1.5F, 0.0F, -2.0F, 3, 2, 2, 0.0F); - this.setRotateAngle(this.foot_back_left_heel, -0.4363323129985824F, 0.0F, 0.0F); - this.toe5 = new ModelRenderer(this, 44, 37); - this.toe5.mirror = true; - this.toe5.setRotationPoint(0.0F, 0.6F, -5.0F); - this.toe5.addBox(-0.5F, 0.0F, -2.0F, 1, 1, 3, 0.0F); - this.setRotateAngle(this.toe5, 0.2617993877991494F, 0.0F, 0.0F); - this.crest2 = new ModelRenderer(this, 106, 21); - this.crest2.setRotationPoint(0.0F, -5.0F, 0.0F); - this.crest2.addBox(-4.0F, 0.0F, -1.0F, 4, 2, 2, 0.0F); - this.tail1 = new ModelRenderer(this, 0, 48); - this.tail1.setRotationPoint(0.0F, 4.0F, 8.0F); - this.tail1.addBox(-4.5F, -3.5F, 0.0F, 9, 6, 9, 0.0F); - this.setRotateAngle(this.tail1, -0.08726646259971647F, 0.0F, 0.0F); - this.body = new ModelRenderer(this, 0, 0); - this.body.setRotationPoint(0.0F, 13.3F, 0.0F); - this.body.addBox(-6.0F, -3.5F, -5.0F, 12, 7, 10, 0.0F); - this.cheek_left = new ModelRenderer(this, 68, 25); - this.cheek_left.setRotationPoint(3.5F, -1.0F, -6.0F); - this.cheek_left.addBox(-3.0F, 0.0F, 0.0F, 3, 2, 6, 0.0F); - this.setRotateAngle(this.cheek_left, 0.0F, 0.3490658503988659F, 0.0F); - this.toe9 = new ModelRenderer(this, 44, 72); - this.toe9.mirror = true; - this.toe9.setRotationPoint(1.5F, 0.0F, -2.0F); - this.toe9.addBox(-1.0F, 0.0F, -2.0F, 1, 1, 2, 0.0F); - this.setRotateAngle(this.toe9, 0.17453292519943295F, 0.0F, 0.0F); - this.toe10 = new ModelRenderer(this, 44, 75); - this.toe10.mirror = true; - this.toe10.setRotationPoint(-0.5F, 0.0F, -2.0F); - this.toe10.addBox(0.0F, 0.0F, -1.0F, 1, 1, 1, 0.0F); - this.setRotateAngle(this.toe10, 0.2617993877991494F, 0.0F, 0.0F); - this.leg_front_right_joint = new ModelRenderer(this, 0, 0); - this.leg_front_right_joint.setRotationPoint(-4.5F, -2.0F, -4.0F); - this.leg_front_right_joint.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); - this.setRotateAngle(this.leg_front_right_joint, 0.0F, 0.17453292519943295F, 0.0F); - this.teeth_top = new ModelRenderer(this, 68, 47); - this.teeth_top.setRotationPoint(0.0F, 0.0F, 0.0F); - this.teeth_top.addBox(-2.5F, 0.5F, -10.0F, 5, 1, 11, 0.0F); - this.cheek_right = new ModelRenderer(this, 68, 25); - this.cheek_right.mirror = true; - this.cheek_right.setRotationPoint(-3.5F, -1.0F, -6.0F); - this.cheek_right.addBox(0.0F, 0.0F, 0.0F, 3, 2, 6, 0.0F); - this.setRotateAngle(this.cheek_right, 0.0F, -0.3490658503988659F, 0.0F); - this.foot_back_left = new ModelRenderer(this, 44, 69); - this.foot_back_left.setRotationPoint(0.5F, 0.6F, -2.0F); - this.foot_back_left.addBox(-1.5F, 0.0F, -2.0F, 3, 1, 2, 0.0F); - this.setRotateAngle(this.foot_back_left, 0.08726646259971647F, 0.0F, 0.0F); - this.leg_front_left_joint = new ModelRenderer(this, 0, 0); - this.leg_front_left_joint.setRotationPoint(4.5F, -2.0F, -4.0F); - this.leg_front_left_joint.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); - this.setRotateAngle(this.leg_front_left_joint, 0.0F, -0.17453292519943295F, 0.0F); - this.foot_back_left_1 = new ModelRenderer(this, 44, 69); - this.foot_back_left_1.mirror = true; - this.foot_back_left_1.setRotationPoint(-0.5F, 0.6F, -2.0F); - this.foot_back_left_1.addBox(-1.5F, 0.0F, -2.0F, 3, 1, 2, 0.0F); - this.setRotateAngle(this.foot_back_left_1, 0.08726646259971647F, 0.0F, 0.0F); - this.leg_front_right_top = new ModelRenderer(this, 44, 0); - this.leg_front_right_top.mirror = true; - this.leg_front_right_top.setRotationPoint(0.0F, 0.0F, 0.0F); - this.leg_front_right_top.addBox(-3.5F, -1.5F, -3.0F, 7, 9, 5, 0.0F); - this.setRotateAngle(this.leg_front_right_top, 0.0F, 1.5707963267948966F, 0.8726646259971648F); - this.leg_front_right_bottom = new ModelRenderer(this, 44, 14); - this.leg_front_right_bottom.mirror = true; - this.leg_front_right_bottom.setRotationPoint(-5.0F, 3.7F, 2.0F); - this.leg_front_right_bottom.addBox(-2.5F, -1.0F, -3.5F, 5, 8, 4, 0.0F); - this.toe2 = new ModelRenderer(this, 44, 37); - this.toe2.setRotationPoint(0.0F, 0.6F, -5.0F); - this.toe2.addBox(-0.5F, 0.0F, -2.0F, 1, 1, 3, 0.0F); - this.setRotateAngle(this.toe2, 0.2617993877991494F, 0.0F, 0.0F); - this.crest1 = new ModelRenderer(this, 98, 18); - this.crest1.setRotationPoint(2.0F, 0.0F, 5.5F); - this.crest1.addBox(0.0F, -5.0F, -1.0F, 2, 5, 2, 0.0F); - this.setRotateAngle(this.crest1, 0.0F, 0.0F, 0.6981317007977318F); - this.leg_back_right_top = new ModelRenderer(this, 44, 45); - this.leg_back_right_top.mirror = true; - this.leg_back_right_top.setRotationPoint(-4.9F, 1.9F, 7.4F); - this.leg_back_right_top.addBox(-5.0F, -1.5F, -2.0F, 5, 8, 4, 0.0F); - this.setRotateAngle(this.leg_back_right_top, 0.0F, 0.3490658503988659F, 0.0F); - this.tail3 = new ModelRenderer(this, 0, 77); - this.tail3.setRotationPoint(0.0F, 0.0F, 8.0F); - this.tail3.addBox(-2.5F, -2.0F, 0.0F, 5, 4, 9, 0.0F); - this.setRotateAngle(this.tail3, -0.08726646259971647F, 0.0F, 0.0F); - this.leg_back_left_top = new ModelRenderer(this, 44, 45); - this.leg_back_left_top.setRotationPoint(4.9F, 1.9F, 7.4F); - this.leg_back_left_top.addBox(0.0F, -1.5F, -2.0F, 5, 8, 4, 0.0F); - this.setRotateAngle(this.leg_back_left_top, 0.0F, -0.3490658503988659F, 0.0F); - this.toe1 = new ModelRenderer(this, 44, 33); - this.toe1.setRotationPoint(-1.0F, 0.5F, -5.0F); - this.toe1.addBox(-0.5F, 0.0F, -2.5F, 1, 1, 3, 0.0F); - this.setRotateAngle(this.toe1, 0.2617993877991494F, 0.17453292519943295F, 0.0F); - this.toe3 = new ModelRenderer(this, 44, 41); - this.toe3.setRotationPoint(1.0F, 0.8F, -5.0F); - this.toe3.addBox(-0.5F, 0.0F, -1.6F, 1, 1, 3, 0.0F); - this.setRotateAngle(this.toe3, 0.2617993877991494F, -0.17453292519943295F, 0.0F); - this.teeth_bottom = new ModelRenderer(this, 68, 59); - this.teeth_bottom.setRotationPoint(0.0F, 0.0F, 0.0F); - this.teeth_bottom.addBox(-2.5F, -0.5F, -10.0F, 5, 1, 11, 0.0F); - this.foot_front_right.addChild(this.toe6); - this.tail3.addChild(this.tail4); - this.body.addChild(this.body_back); - this.leg_back_right_top.addChild(this.leg_back_left_bottom_1); - this.body.addChild(this.body_front); - this.leg_front_left_bottom.addChild(this.foot_front_left); - this.leg_back_left_bottom_1.addChild(this.foot_back_left_heel_1); - this.tail1.addChild(this.tail2); - this.body_front.addChild(this.head_top); - this.head_top.addChild(this.forehead); - this.foot_front_right.addChild(this.toe4); - this.head_top.addChild(this.head_bottom); - this.foot_back_left.addChild(this.toe7); - this.foot_back_left.addChild(this.toe8); - this.leg_front_left_joint.addChild(this.leg_front_left_top); - this.forehead.addChild(this.crest3); - this.leg_back_left_top.addChild(this.leg_back_left_bottom); - this.leg_front_right_bottom.addChild(this.foot_front_right); - this.leg_front_left_joint.addChild(this.leg_front_left_bottom); - this.leg_back_left_bottom.addChild(this.foot_back_left_heel); - this.foot_front_right.addChild(this.toe5); - this.crest1.addChild(this.crest2); - this.body_back.addChild(this.tail1); - this.head_top.addChild(this.cheek_left); - this.foot_back_left_1.addChild(this.toe9); - this.foot_back_left_1.addChild(this.toe10); - this.body.addChild(this.leg_front_right_joint); - this.head_top.addChild(this.teeth_top); - this.head_top.addChild(this.cheek_right); - this.foot_back_left_heel.addChild(this.foot_back_left); - this.body.addChild(this.leg_front_left_joint); - this.foot_back_left_heel_1.addChild(this.foot_back_left_1); - this.leg_front_right_joint.addChild(this.leg_front_right_top); - this.leg_front_right_joint.addChild(this.leg_front_right_bottom); - this.foot_front_left.addChild(this.toe2); - this.forehead.addChild(this.crest1); - this.body_back.addChild(this.leg_back_right_top); - this.tail2.addChild(this.tail3); - this.body_back.addChild(this.leg_back_left_top); - this.foot_front_left.addChild(this.toe1); - this.foot_front_left.addChild(this.toe3); - this.head_bottom.addChild(this.teeth_bottom); - } - - @Override - public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) - { - this.body.render(f5); - } - - public void setRotateAngle(ModelRenderer modelRenderer, float x, float y, float z) - { - modelRenderer.rotateAngleX = x; - modelRenderer.rotateAngleY = y; - modelRenderer.rotateAngleZ = z; - } - - @Override - public void setRotationAngles(float limbSwing, float limbSwingAmount, float ageInTicks, float netHeadYaw, float headPitch, float scaleFactor, - Entity entityIn) - { - super.setRotationAngles(limbSwing, limbSwingAmount, ageInTicks, netHeadYaw, headPitch, scaleFactor, entityIn); - - this.head_top.rotateAngleX = headPitch * 0.017453292F; - this.head_top.rotateAngleY = netHeadYaw * 0.017453292F; - - this.leg_front_right_joint.rotateAngleX = MathHelper.cos(limbSwing * 0.6662F) * .6F * limbSwingAmount; - this.leg_front_left_joint.rotateAngleX = MathHelper.cos(limbSwing * 0.6662F + (float) Math.PI) * .6F * limbSwingAmount; - this.leg_back_right_top.rotateAngleX = MathHelper.cos(limbSwing * 0.6662F + (float) Math.PI) * .6F * limbSwingAmount; - this.leg_back_left_top.rotateAngleX = MathHelper.cos(limbSwing * 0.6662F) * .6F * limbSwingAmount; - - float jawLower = MathHelper.cos(ageInTicks * .1f) / 5f; - - this.head_bottom.rotateAngleX = 0.3490658503988659F - jawLower; - - float tailVal = (limbSwing * .3f + ageInTicks * .06f); - float tailSway = MathHelper.cos(tailVal) / 3f; - float tailSwaySin = MathHelper.sin(tailVal) / 3f; - - this.tail1.rotateAngleY = tailSway; - this.tail2.rotateAngleY = tailSwaySin; - this.tail3.rotateAngleY = tailSway; - this.tail4.rotateAngleY = tailSwaySin; - - float tailBase = -0.08726646259971647F; - float tail4Base = 0.17453292519943295F; - - float tailSwing = MathHelper.cos(limbSwing * 0.6662F) * .05F * limbSwingAmount; - - this.tail1.rotateAngleX = tailBase + tailSwing; - this.tail2.rotateAngleX = tailBase + tailSwing; - this.tail3.rotateAngleX = tailBase + tailSwing; - this.tail4.rotateAngleX = tail4Base + tailSwing; - } -} diff --git a/src/main/java/com/gildedgames/aether/client/models/entities/living/ModelWings.java b/src/main/java/com/gildedgames/aether/client/models/entities/living/ModelWings.java deleted file mode 100644 index 6214c4c1ca..0000000000 --- a/src/main/java/com/gildedgames/aether/client/models/entities/living/ModelWings.java +++ /dev/null @@ -1,32 +0,0 @@ -package com.gildedgames.aether.client.models.entities.living; - -import net.minecraft.client.model.ModelBase; -import net.minecraft.client.model.ModelRenderer; - -public class ModelWings extends ModelBase -{ - public final ModelRenderer leftWingInner; - - public final ModelRenderer leftWingOuter; - - public final ModelRenderer rightWingInner; - - public final ModelRenderer rightWingOuter; - - public ModelWings() - { - this.leftWingInner = new ModelRenderer(this, 0, 0); - this.leftWingInner.addBox(-1F, -8F, -4F, 2, 16, 8, 0.0F); - - this.leftWingOuter = new ModelRenderer(this, 20, 0); - this.leftWingOuter.addBox(-1F, -8F, -4F, 2, 16, 8, 0.0F); - - this.rightWingInner = new ModelRenderer(this, 0, 0); - this.rightWingInner.addBox(-1F, -8F, -4F, 2, 16, 8, 0.0F); - - this.rightWingOuter = new ModelRenderer(this, 40, 0); - this.rightWingOuter.addBox(-1F, -8F, -4F, 2, 16, 8, 0.0F); - - this.rightWingOuter.rotateAngleY = 3.14159265F; - } -} diff --git a/src/main/java/com/gildedgames/aether/client/models/entities/living/ModelZephyr.java b/src/main/java/com/gildedgames/aether/client/models/entities/living/ModelZephyr.java deleted file mode 100644 index dad46323ac..0000000000 --- a/src/main/java/com/gildedgames/aether/client/models/entities/living/ModelZephyr.java +++ /dev/null @@ -1,102 +0,0 @@ -package com.gildedgames.aether.client.models.entities.living; - -import com.gildedgames.aether.client.renderer.entities.living.layers.ILayeredModel; -import net.minecraft.client.model.ModelBase; -import net.minecraft.client.model.ModelRenderer; -import net.minecraft.client.renderer.GlStateManager; -import net.minecraft.entity.Entity; - -/** - * Zephyr.tcn - TechneToTabulaImporter - * Created using Tabula 5.1.0 - */ -public class ModelZephyr extends ModelBase -{ - public ModelRenderer body; - public ModelRenderer top; - public ModelRenderer bottom; - public ModelRenderer left; - public ModelRenderer right; - public ModelRenderer jaw; - public ModelRenderer tail_base; - public ModelRenderer wing_front_left; - public ModelRenderer wing_front_right; - public ModelRenderer tail_end; - public ModelRenderer wing_back_left; - public ModelRenderer wing_back_right; - - public ModelZephyr() { - this.textureWidth = 64; - this.textureHeight = 64; - this.body = new ModelRenderer(this, 0, 12); - this.body.setRotationPoint(0.0F, 16.0F, 0.0F); - this.body.addBox(-4.0F, -4.0F, -7.0F, 8, 4, 16, 0.0F); - this.tail_base = new ModelRenderer(this, 0, 49); - this.tail_base.setRotationPoint(0.0F, -2.0F, 8.0F); - this.tail_base.addBox(-2.0F, -1.5F, -0.5F, 4, 3, 6, 0.0F); - this.wing_front_left = new ModelRenderer(this, 42, 0); - this.wing_front_left.mirror = true; - this.wing_front_left.setRotationPoint(4.0F, -4.0F, 0.0F); - this.wing_front_left.addBox(-1.0F, 0.0F, 0.0F, 1, 4, 10, 0.0F); - this.setRotateAngle(wing_front_left, 0.4363323129985824F, 0.3490658503988659F, 0.0F); - this.jaw = new ModelRenderer(this, 0, 44); - this.jaw.setRotationPoint(0.0F, 15.5F, -6.5F); - this.jaw.addBox(-3.0F, 0.0F, 0.0F, 6, 2, 3, 0.0F); - this.top = new ModelRenderer(this, 0, 0); - this.top.setRotationPoint(0.0F, 12.0F, 0.0F); - this.top.addBox(-4.0F, -2.0F, -5.0F, 8, 2, 10, 0.0F); - this.left = new ModelRenderer(this, 32, 14); - this.left.mirror = true; - this.left.setRotationPoint(4.0F, 14.0F, 0.0F); - this.left.addBox(0.0F, -2.0F, -5.0F, 2, 4, 10, 0.0F); - this.tail_end = new ModelRenderer(this, 20, 49); - this.tail_end.setRotationPoint(0.0F, 0.0F, 4.0F); - this.tail_end.addBox(-1.5F, -1.0F, -0.5F, 3, 2, 6, 0.0F); - this.bottom = new ModelRenderer(this, 0, 32); - this.bottom.setRotationPoint(0.0F, 16.0F, 0.0F); - this.bottom.addBox(-4.0F, 0.0F, -5.0F, 8, 2, 10, 0.0F); - this.right = new ModelRenderer(this, 32, 14); - this.right.setRotationPoint(-4.0F, 14.0F, 0.0F); - this.right.addBox(-2.0F, -2.0F, -5.0F, 2, 4, 10, 0.0F); - this.wing_front_right = new ModelRenderer(this, 42, 0); - this.wing_front_right.setRotationPoint(-4.0F, -4.0F, 0.0F); - this.wing_front_right.addBox(0.0F, 0.0F, 0.0F, 1, 4, 10, 0.0F); - this.setRotateAngle(wing_front_right, 0.4363323129985824F, -0.3490658503988659F, 0.0F); - this.wing_back_left = new ModelRenderer(this, 38, 47); - this.wing_back_left.mirror = true; - this.wing_back_left.setRotationPoint(2.2F, -2.5F, 0.5F); - this.wing_back_left.addBox(-1.0F, 0.0F, 0.0F, 1, 3, 8, 0.0F); - this.setRotateAngle(wing_back_left, 0.4363323129985824F, 0.17453292519943295F, 0.3490658503988659F); - this.wing_back_right = new ModelRenderer(this, 38, 47); - this.wing_back_right.setRotationPoint(-2.2F, -2.5F, 0.5F); - this.wing_back_right.addBox(0.0F, 0.0F, 0.0F, 1, 3, 8, 0.0F); - this.setRotateAngle(wing_back_right, 0.4363323129985824F, -0.17453292519943295F, -0.3490658503988659F); - this.body.addChild(this.tail_base); - this.body.addChild(this.wing_front_left); - this.tail_base.addChild(this.tail_end); - this.body.addChild(this.wing_front_right); - this.tail_base.addChild(this.wing_back_left); - this.tail_base.addChild(this.wing_back_right); - } - - @Override - public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) { - this.body.render(f5); - - this.jaw.render(f5); - this.top.render(f5); - this.left.render(f5); - this.bottom.render(f5); - this.right.render(f5); - } - - /** - * This is a helper function from Tabula to set the rotation of model parts - */ - public void setRotateAngle(ModelRenderer modelRenderer, float x, float y, float z) { - modelRenderer.rotateAngleX = x; - modelRenderer.rotateAngleY = y; - modelRenderer.rotateAngleZ = z; - } - -} diff --git a/src/main/java/com/gildedgames/aether/client/models/entities/player/LayerAetherPatronArmor.java b/src/main/java/com/gildedgames/aether/client/models/entities/player/LayerAetherPatronArmor.java deleted file mode 100644 index f06eaa73e0..0000000000 --- a/src/main/java/com/gildedgames/aether/client/models/entities/player/LayerAetherPatronArmor.java +++ /dev/null @@ -1,150 +0,0 @@ -package com.gildedgames.aether.client.models.entities.player; - -import com.gildedgames.aether.common.AetherCore; -import com.gildedgames.aether.common.capabilities.entity.player.PlayerAether; -import com.gildedgames.aether.common.capabilities.entity.player.modules.PlayerPatronRewardModule; -import com.gildedgames.aether.common.patron.armor.PatronRewardArmor; -import com.google.common.collect.Maps; -import net.minecraft.client.model.ModelBiped; -import net.minecraft.client.renderer.GlStateManager; -import net.minecraft.client.renderer.entity.RenderLivingBase; -import net.minecraft.client.renderer.entity.layers.LayerRenderer; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.inventory.EntityEquipmentSlot; -import net.minecraft.util.ResourceLocation; - -import java.util.Map; - -public class LayerAetherPatronArmor implements LayerRenderer<EntityLivingBase> -{ - private static final Map<String, ResourceLocation> ARMOR_TEXTURE_RES_MAP = Maps.newHashMap(); - - private final RenderLivingBase<?> renderer; - - private PatronRewardArmor previewArmor; - - private ModelBiped modelLeggings; - - private ModelBiped modelArmor; - - public LayerAetherPatronArmor(RenderLivingBase<?> rendererIn) - { - this.renderer = rendererIn; - - this.initArmor(); - } - - public void setPreviewArmor(PatronRewardArmor armor) - { - this.previewArmor = armor; - } - - @Override - public void doRenderLayer(EntityLivingBase entity, float limbSwing, float limbSwingAmount, float partialTicks, float ageInTicks, - float netHeadYaw, float headPitch, float scale) - { - if (!(entity instanceof EntityPlayer)) - { - return; - } - - PatronRewardArmor armor = this.previewArmor; - - if (armor == null) - { - PlayerAether aePlayer = PlayerAether.getPlayer((EntityPlayer) entity); - - armor = aePlayer.getModule(PlayerPatronRewardModule.class).getChoices().getArmorChoice(); - } - - if (armor != null && armor.getArmorTextureName() != null) - { - this.renderArmorLayer(entity, limbSwing, limbSwingAmount, partialTicks, ageInTicks, netHeadYaw, headPitch, scale, EntityEquipmentSlot.CHEST, - armor.getArmorTextureName()); - this.renderArmorLayer(entity, limbSwing, limbSwingAmount, partialTicks, ageInTicks, netHeadYaw, headPitch, scale, EntityEquipmentSlot.LEGS, - armor.getArmorTextureName()); - this.renderArmorLayer(entity, limbSwing, limbSwingAmount, partialTicks, ageInTicks, netHeadYaw, headPitch, scale, EntityEquipmentSlot.FEET, - armor.getArmorTextureName()); - this.renderArmorLayer(entity, limbSwing, limbSwingAmount, partialTicks, ageInTicks, netHeadYaw, headPitch, scale, EntityEquipmentSlot.HEAD, - armor.getArmorTextureName()); - } - } - - @Override - public boolean shouldCombineTextures() - { - return false; - } - - protected void renderArmorLayer(EntityLivingBase entity, float limbSwing, float limbSwingAmount, float partialTicks, float ageInTicks, - float netHeadYaw, float headPitch, float scale, EntityEquipmentSlot slot, String res) - { - ResourceLocation texture = ARMOR_TEXTURE_RES_MAP - .computeIfAbsent(AetherCore.getResourcePath("textures/armor/" + res + "_layer_" + (slot == EntityEquipmentSlot.LEGS ? 2 : 1) + ".png"), - ResourceLocation::new); - - ModelBiped model = this.getModelFromSlot(slot); - - model.setModelAttributes(this.renderer.getMainModel()); - model.setLivingAnimations(entity, limbSwing, limbSwingAmount, partialTicks); - - this.setModelSlotVisible(model, slot); - - this.renderer.bindTexture(texture); - - float alpha = 1.0F; - float colorR = 1.0F; - float colorG = 1.0F; - float colorB = 1.0F; - GlStateManager.color(colorR, colorG, colorB, alpha); - model.render(entity, limbSwing, limbSwingAmount, ageInTicks, netHeadYaw, headPitch, scale); - } - - private ModelBiped getModelFromSlot(EntityEquipmentSlot slotIn) - { - return (this.isLegSlot(slotIn) ? this.modelLeggings : this.modelArmor); - } - - private boolean isLegSlot(EntityEquipmentSlot slotIn) - { - return slotIn == EntityEquipmentSlot.LEGS; - } - - private void initArmor() - { - this.modelLeggings = new ModelBiped(0.5F); - this.modelArmor = new ModelBiped(1.0F); - } - - private void setModelSlotVisible(ModelBiped model, EntityEquipmentSlot slot) - { - this.setModelVisible(model); - - switch (slot) - { - case HEAD: - model.bipedHead.showModel = true; - model.bipedHeadwear.showModel = true; - break; - case CHEST: - model.bipedBody.showModel = true; - model.bipedRightArm.showModel = true; - model.bipedLeftArm.showModel = true; - break; - case LEGS: - model.bipedBody.showModel = true; - model.bipedRightLeg.showModel = true; - model.bipedLeftLeg.showModel = true; - break; - case FEET: - model.bipedRightLeg.showModel = true; - model.bipedLeftLeg.showModel = true; - } - } - - private void setModelVisible(ModelBiped model) - { - model.setVisible(false); - } -} diff --git a/src/main/java/com/gildedgames/aether/client/models/entities/player/LayerAetherPlayerGloves.java b/src/main/java/com/gildedgames/aether/client/models/entities/player/LayerAetherPlayerGloves.java deleted file mode 100644 index 6fedae1e67..0000000000 --- a/src/main/java/com/gildedgames/aether/client/models/entities/player/LayerAetherPlayerGloves.java +++ /dev/null @@ -1,103 +0,0 @@ -package com.gildedgames.aether.client.models.entities.player; - -import com.gildedgames.aether.common.capabilities.entity.player.PlayerAether; -import com.gildedgames.aether.common.capabilities.entity.player.modules.PlayerEquipmentModule; -import com.gildedgames.aether.common.capabilities.entity.player.modules.PlayerPatronRewardModule; -import com.gildedgames.aether.common.items.armor.ItemAetherGloves; -import com.gildedgames.aether.common.patron.armor.PatronRewardArmor; -import com.gildedgames.aether.common.util.helpers.EntityUtil; -import net.minecraft.client.model.ModelBiped; -import net.minecraft.client.model.ModelPlayer; -import net.minecraft.client.renderer.GlStateManager; -import net.minecraft.client.renderer.entity.RenderLivingBase; -import net.minecraft.client.renderer.entity.layers.LayerBipedArmor; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraft.util.ResourceLocation; - -public class LayerAetherPlayerGloves extends LayerBipedArmor -{ - private final RenderLivingBase<?> renderer; - - private PatronRewardArmor previewArmor; - - private final ModelPlayer modelArmorSlim; - - public LayerAetherPlayerGloves(RenderLivingBase<?> rendererIn) - { - super(rendererIn); - - this.renderer = rendererIn; - this.modelArmor = new ModelPlayer(0.5f, false); - this.modelArmorSlim = new ModelPlayer(0.5f, true); - } - - public void setPreviewArmor(PatronRewardArmor armor) - { - this.previewArmor = armor; - } - - @Override - public void doRenderLayer(EntityLivingBase entity, float limbSwing, float limbSwingAmount, float partialTicks, float ageInTicks, - float netHeadYaw, float headPitch, float scale) - { - if (entity instanceof EntityPlayer) - { - this.renderGloves(PlayerAether.getPlayer((EntityPlayer) entity), limbSwing, limbSwingAmount, partialTicks, ageInTicks, netHeadYaw, headPitch, scale); - } - } - - private void renderGloves(PlayerAether player, float limbSwing, float limbSwingAmount, float partialTicks, float ageInTicks, - float netHeadYaw, float headPitch, float scale) - { - PatronRewardArmor armor = this.previewArmor; - - if (armor == null) - { - armor = player.getModule(PlayerPatronRewardModule.class).getChoices().getArmorChoice(); - } - - ResourceLocation texture = null; - - if (armor == null) - { - ItemStack stack = player.getModule(PlayerEquipmentModule.class).getInventory().getStackInSlot(2); - - if (stack.getItem() instanceof ItemAetherGloves) - { - ItemAetherGloves glove = (ItemAetherGloves) stack.getItem(); - - texture = glove.getGloveTexture(player.getEntity()); - } - } - else - { - texture = armor.getArmorGloveTexture(EntityUtil.getSkin(player.getEntity()).equals("slim")); - } - - if (texture == null) - { - return; - } - - String skinType = EntityUtil.getSkin(player.getEntity()); - boolean slim = skinType.equals("slim"); - - ModelBiped t = slim ? this.modelArmorSlim : this.modelArmor; - - t.bipedRightArm.showModel = true; - t.bipedLeftArm.showModel = true; - - GlStateManager.pushMatrix(); - - t.setModelAttributes(this.renderer.getMainModel()); - t.setLivingAnimations(player.getEntity(), limbSwing, limbSwingAmount, partialTicks); - - this.renderer.bindTexture(texture); - - t.render(player.getEntity(), limbSwing, limbSwingAmount, ageInTicks, netHeadYaw, headPitch, scale); - - GlStateManager.popMatrix(); - } -} diff --git a/src/main/java/com/gildedgames/aether/client/models/entities/player/LayerArmorProxy.java b/src/main/java/com/gildedgames/aether/client/models/entities/player/LayerArmorProxy.java deleted file mode 100644 index 0f010f3ccf..0000000000 --- a/src/main/java/com/gildedgames/aether/client/models/entities/player/LayerArmorProxy.java +++ /dev/null @@ -1,75 +0,0 @@ -package com.gildedgames.aether.client.models.entities.player; - -import com.gildedgames.aether.common.capabilities.entity.player.PlayerAether; -import com.gildedgames.aether.common.capabilities.entity.player.modules.PlayerPatronRewardModule; -import com.gildedgames.aether.common.patron.armor.PatronRewardArmor; -import net.minecraft.client.model.ModelBiped; -import net.minecraft.client.renderer.entity.RenderLivingBase; -import net.minecraft.client.renderer.entity.layers.LayerBipedArmor; -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.inventory.EntityEquipmentSlot; -import net.minecraft.item.ItemStack; -import net.minecraft.util.ResourceLocation; - -// Delegate Hack -public class LayerArmorProxy extends LayerBipedArmor -{ - private final LayerBipedArmor proxy; - - private PatronRewardArmor previewArmor; - - public LayerArmorProxy(RenderLivingBase<?> rendererIn, LayerBipedArmor proxy) - { - super(rendererIn); - - this.proxy = proxy; - } - - public void setPreviewArmor(PatronRewardArmor armor) - { - this.previewArmor = armor; - } - - @Override - public void doRenderLayer(EntityLivingBase entity, float limbSwing, float limbSwingAmount, float partialTicks, - float ageInTicks, float netHeadYaw, float headPitch, float scale) - { - if (!(entity instanceof EntityPlayer)) - { - return; - } - - if (this.previewArmor != null) - { - return; - } - - PlayerAether aePlayer = PlayerAether.getPlayer((EntityPlayer) entity); - PatronRewardArmor armor = aePlayer.getModule(PlayerPatronRewardModule.class).getChoices().getArmorChoice(); - - if (armor == null || armor.getArmorTextureName() == null) - { - this.proxy.doRenderLayer(entity, limbSwing, limbSwingAmount, partialTicks, ageInTicks, netHeadYaw, headPitch, scale); - } - } - - @Override - public boolean shouldCombineTextures() - { - return this.proxy.shouldCombineTextures(); - } - - @Override - public ModelBiped getModelFromSlot(EntityEquipmentSlot slotIn) - { - return this.proxy.getModelFromSlot(slotIn); - } - - @Override - public ResourceLocation getArmorResource(Entity entity, ItemStack stack, EntityEquipmentSlot slot, String type) - { - return this.proxy.getArmorResource(entity, stack, slot, type); - } -} diff --git a/src/main/java/com/gildedgames/aether/client/models/entities/player/LayerHeadShadow.java b/src/main/java/com/gildedgames/aether/client/models/entities/player/LayerHeadShadow.java deleted file mode 100644 index d4f1822124..0000000000 --- a/src/main/java/com/gildedgames/aether/client/models/entities/player/LayerHeadShadow.java +++ /dev/null @@ -1,124 +0,0 @@ -package com.gildedgames.aether.client.models.entities.player; - -import com.gildedgames.aether.common.AetherCore; -import com.gildedgames.aether.common.capabilities.entity.player.PlayerAether; -import com.gildedgames.aether.common.capabilities.entity.player.modules.PlayerPatronRewardModule; -import com.gildedgames.aether.common.items.armor.ItemAetherArmor; -import com.gildedgames.aether.common.patron.armor.PatronRewardArmor; -import com.gildedgames.aether.common.util.helpers.EntityUtil; -import com.mojang.authlib.GameProfile; -import com.mojang.authlib.minecraft.MinecraftProfileTexture; -import net.minecraft.client.Minecraft; -import net.minecraft.client.model.ModelBiped; -import net.minecraft.client.model.ModelPlayer; -import net.minecraft.client.renderer.GlStateManager; -import net.minecraft.client.renderer.entity.RenderLivingBase; -import net.minecraft.client.renderer.entity.layers.LayerBipedArmor; -import net.minecraft.client.resources.DefaultPlayerSkin; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.inventory.EntityEquipmentSlot; -import net.minecraft.item.ItemStack; -import net.minecraft.util.ResourceLocation; - -import java.util.Map; -import java.util.UUID; - -public class LayerHeadShadow extends LayerBipedArmor -{ - private final RenderLivingBase<?> renderer; - - private PatronRewardArmor previewArmor; - - private final ModelPlayer modelArmorSlim; - - public LayerHeadShadow(RenderLivingBase<?> rendererIn) - { - super(rendererIn); - - this.renderer = rendererIn; - this.modelArmor = new ModelPlayer(0.15f, false); - this.modelArmorSlim = new ModelPlayer(0.15f, true); - } - - public void setPreviewArmor(PatronRewardArmor armor) - { - this.previewArmor = armor; - } - - @Override - public void doRenderLayer(EntityLivingBase entity, float limbSwing, float limbSwingAmount, float partialTicks, float ageInTicks, - float netHeadYaw, float headPitch, float scale) - { - if (!(entity instanceof EntityPlayer)) - { - return; - } - - if (!AetherCore.CONFIG.helmetShadow) - { - return; - } - - PlayerAether player = PlayerAether.getPlayer((EntityPlayer) entity); - - ItemStack helm = player.getEntity().getItemStackFromSlot(EntityEquipmentSlot.HEAD); - - PatronRewardArmor armor = this.previewArmor; - - if (armor == null) - { - armor = player.getModule(PlayerPatronRewardModule.class).getChoices().getArmorChoice(); - } - - if (armor != null || helm.isEmpty() || !(helm.getItem() instanceof ItemAetherArmor)) - { - return; - } - - GameProfile profile = player.getEntity().getGameProfile(); - - Minecraft minecraft = Minecraft.getMinecraft(); - - Map<MinecraftProfileTexture.Type, MinecraftProfileTexture> map = minecraft.getSkinManager().loadSkinFromCache(profile); - - ResourceLocation texture; - - if (map.containsKey(MinecraftProfileTexture.Type.SKIN)) - { - texture = minecraft.getSkinManager().loadSkin(map.get(MinecraftProfileTexture.Type.SKIN), MinecraftProfileTexture.Type.SKIN); - } - else - { - UUID uuid = EntityPlayer.getUUID(profile); - - texture = DefaultPlayerSkin.getDefaultSkin(uuid); - } - - String skinType = EntityUtil.getSkin(player.getEntity()); - - ModelBiped t = skinType.equals("slim") ? this.modelArmorSlim : this.modelArmor; - - t.bipedHead.showModel = true; - t.bipedHeadwear.showModel = true; - - t.bipedRightArm.showModel = false; - t.bipedLeftArm.showModel = false; - t.bipedBody.showModel = false; - t.bipedLeftLeg.showModel = false; - t.bipedRightLeg.showModel = false; - - GlStateManager.pushMatrix(); - - t.setModelAttributes(this.renderer.getMainModel()); - t.setLivingAnimations(entity, limbSwing, limbSwingAmount, partialTicks); - - this.renderer.bindTexture(texture); - GlStateManager.color(0.25F, 0.25F, 0.25F, 1.0F); - - t.render(player.getEntity(), limbSwing, limbSwingAmount, ageInTicks, netHeadYaw, headPitch, scale); - - GlStateManager.color(1F, 1F, 1F, 1F); - GlStateManager.popMatrix(); - } -} diff --git a/src/main/java/com/gildedgames/aether/client/models/entities/player/LayerSwetLatch.java b/src/main/java/com/gildedgames/aether/client/models/entities/player/LayerSwetLatch.java deleted file mode 100644 index 98623c081c..0000000000 --- a/src/main/java/com/gildedgames/aether/client/models/entities/player/LayerSwetLatch.java +++ /dev/null @@ -1,94 +0,0 @@ -package com.gildedgames.aether.client.models.entities.player; - -import com.gildedgames.aether.client.models.entities.living.ModelSwetHead; -import com.gildedgames.aether.client.models.entities.living.ModelSwetJelly; -import com.gildedgames.aether.common.capabilities.entity.player.PlayerAether; -import com.gildedgames.aether.common.capabilities.entity.player.modules.PlayerSwetTrackerModule; -import com.gildedgames.aether.common.entities.monsters.EntitySwet; -import net.minecraft.client.renderer.GlStateManager; -import net.minecraft.client.renderer.entity.RenderLivingBase; -import net.minecraft.client.renderer.entity.layers.LayerBipedArmor; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.player.EntityPlayer; - -import java.util.List; - -public class LayerSwetLatch extends LayerBipedArmor -{ - private final RenderLivingBase<?> renderer; - - private final ModelSwetHead head; - - private final ModelSwetJelly jelly; - - public LayerSwetLatch(RenderLivingBase<?> rendererIn) - { - super(rendererIn); - - this.renderer = rendererIn; - this.head = new ModelSwetHead(); - this.jelly = new ModelSwetJelly(); - } - - @Override - public void doRenderLayer(EntityLivingBase entity, float limbSwing, float limbSwingAmount, float partialTicks, float ageInTicks, - float netHeadYaw, float headPitch, float scale) - { - if (entity instanceof EntityPlayer) - { - this.renderSwet(PlayerAether.getPlayer((EntityPlayer) entity), limbSwing, limbSwingAmount, partialTicks, ageInTicks, netHeadYaw, headPitch, scale); - } - } - - private void renderSwet(PlayerAether player, float limbSwing, float limbSwingAmount, float partialTicks, float ageInTicks, - float netHeadYaw, float headPitch, float scale) - { - List<EntitySwet> swets = player.getModule(PlayerSwetTrackerModule.class).getLatchedSwets(); - - for (int i = 0; i < swets.size(); i++) - { - GlStateManager.pushMatrix(); - EntitySwet swet = swets.get(i); - float s = (float) Math.cos(ageInTicks / 2f) / 20f; - - GlStateManager.scale(.3f, .3f, .3f); - - if (i == 0) - { - GlStateManager.rotate(180, 0, 1, 0); - GlStateManager.rotate(30, -1, 0, .2f); - GlStateManager.translate(-0.1f, .2f, 1.2f); - } - else if (i == 1) - { - GlStateManager.rotate(180, 0, 1, 0); - GlStateManager.rotate(30, 1, 0, -.2f); - GlStateManager.translate(0.1f, .3f, -.2f); - } - else if (i == 2) - { - GlStateManager.rotate(30, 1, 0, .5f); - GlStateManager.translate(0.1f, .3f, .2f); - } - - this.renderer.bindTexture(swet.getType().texture_head); - - this.head.renderRaw(swet, limbSwing, limbSwingAmount, ageInTicks, netHeadYaw, headPitch, scale); - - this.renderer.bindTexture(swet.getType().texture_jelly); - - GlStateManager.color(1.0F, 1.0F, 1.0F, .7F); - GlStateManager.enableNormalize(); - GlStateManager.enableBlend(); - GlStateManager.blendFunc(GlStateManager.SourceFactor.SRC_ALPHA, GlStateManager.DestFactor.ONE_MINUS_SRC_ALPHA); - - float s2 = swet.getTimeSinceSucking() / 2000f; - GlStateManager.scale(1 + s / 3f + s2, 1 + s / 5f + s2, 1 + s + s2); - this.jelly.renderRaw(swet, limbSwing, limbSwingAmount, ageInTicks, netHeadYaw, headPitch, scale); - - GlStateManager.disableNormalize(); - GlStateManager.disableBlend(); - GlStateManager.popMatrix(); - } - } -} diff --git a/src/main/java/com/gildedgames/aether/client/models/entities/tile/ModelAltar.java b/src/main/java/com/gildedgames/aether/client/models/entities/tile/ModelAltar.java deleted file mode 100644 index bbc8046574..0000000000 --- a/src/main/java/com/gildedgames/aether/client/models/entities/tile/ModelAltar.java +++ /dev/null @@ -1,170 +0,0 @@ -package com.gildedgames.aether.client.models.entities.tile; - -import net.minecraft.client.model.ModelBase; -import net.minecraft.client.model.ModelRenderer; -import net.minecraft.entity.Entity; - -public class ModelAltar extends ModelBase -{ - private final ModelRenderer Base1; - - private final ModelRenderer Base2; - - private final ModelRenderer Pillar; - - private final ModelRenderer Main1; - - private final ModelRenderer Main2; - - private final ModelRenderer CornerFrontRight; - - private final ModelRenderer CornerBackRight; - - private final ModelRenderer CornerFrontLeft; - - private final ModelRenderer CornerBackLeft; - - private final ModelRenderer ZaniteGem1; - - private final ModelRenderer ZaniteGem2; - - private final ModelRenderer AmbroGemFrontRight; - - private final ModelRenderer AmbroGemBackRight; - - private final ModelRenderer AmbroGemFrontLeft; - - private final ModelRenderer AmbroGemBackLeft; - - public ModelAltar() - { - this.textureWidth = 64; - this.textureHeight = 128; - - this.Base1 = new ModelRenderer(this, 4, 112); - this.Base1.addBox(-7F, 22F, -7F, 14, 2, 14); - this.Base1.setRotationPoint(0F, 0F, 0F); - this.Base1.setTextureSize(64, 128); - this.Base1.mirror = true; - this.setRotation(this.Base1, 0F, 0F, 0F); - this.Base2 = new ModelRenderer(this, 16, 102); - this.Base2.addBox(-4F, 20F, -4F, 8, 2, 8); - this.Base2.setRotationPoint(0F, 0F, 0F); - this.Base2.setTextureSize(64, 128); - this.Base2.mirror = true; - this.setRotation(this.Base2, 0F, 0F, 0F); - this.Pillar = new ModelRenderer(this, 28, 95); - this.Pillar.addBox(-1F, 15F, -1F, 2, 5, 2); - this.Pillar.setRotationPoint(0F, 0F, 0F); - this.Pillar.setTextureSize(64, 128); - this.Pillar.mirror = true; - this.setRotation(this.Pillar, 0F, 0F, 0F); - this.Main1 = new ModelRenderer(this, 20, 86); - this.Main1.addBox(-3F, 12F, -3F, 6, 3, 6); - this.Main1.setRotationPoint(0F, 0F, 0F); - this.Main1.setTextureSize(64, 128); - this.Main1.mirror = true; - this.setRotation(this.Main1, 0F, 0F, 0F); - this.Main2 = new ModelRenderer(this, 4, 69); - this.Main2.addBox(-7F, 9F, -7F, 14, 3, 14); - this.Main2.setRotationPoint(0F, 0F, 0F); - this.Main2.setTextureSize(64, 128); - this.Main2.mirror = true; - this.setRotation(this.Main2, 0F, 0F, 0F); - this.CornerFrontRight = new ModelRenderer(this, 0, 74); - this.CornerFrontRight.addBox(-8F, 8F, -8F, 4, 5, 4); - this.CornerFrontRight.setRotationPoint(0F, 0F, 0F); - this.CornerFrontRight.setTextureSize(64, 128); - this.CornerFrontRight.mirror = true; - this.setRotation(this.CornerFrontRight, 0F, 0F, 0F); - this.CornerBackRight = new ModelRenderer(this, 0, 65); - this.CornerBackRight.addBox(-8F, 8F, 4F, 4, 5, 4); - this.CornerBackRight.setRotationPoint(0F, 0F, 0F); - this.CornerBackRight.setTextureSize(64, 128); - this.CornerBackRight.mirror = true; - this.setRotation(this.CornerBackRight, 0F, 0F, 0F); - this.CornerFrontLeft = new ModelRenderer(this, 48, 74); - this.CornerFrontLeft.addBox(4F, 8F, -8F, 4, 5, 4); - this.CornerFrontLeft.setRotationPoint(0F, 0F, 0F); - this.CornerFrontLeft.setTextureSize(64, 128); - this.CornerFrontLeft.mirror = true; - this.setRotation(this.CornerFrontLeft, 0F, 0F, 0F); - this.CornerBackLeft = new ModelRenderer(this, 48, 65); - this.CornerBackLeft.addBox(4F, 8F, 4F, 4, 5, 4); - this.CornerBackLeft.setRotationPoint(0F, 0F, 0F); - this.CornerBackLeft.setTextureSize(64, 128); - this.CornerBackLeft.mirror = true; - this.setRotation(this.CornerBackLeft, 0F, 0F, 0F); - this.ZaniteGem1 = new ModelRenderer(this, 20, 62); - this.ZaniteGem1.addBox(-3F, 8F, -3F, 6, 1, 6); - this.ZaniteGem1.setRotationPoint(0F, 0F, 0F); - this.ZaniteGem1.setTextureSize(64, 128); - this.ZaniteGem1.mirror = true; - this.setRotation(this.ZaniteGem1, 0F, -0.7853982F, 0F); - this.ZaniteGem2 = new ModelRenderer(this, 22, 56); - this.ZaniteGem2.addBox(-2.5F, 7F, -2.5F, 5, 1, 5); - this.ZaniteGem2.setRotationPoint(0F, 0F, 0F); - this.ZaniteGem2.setTextureSize(64, 128); - this.ZaniteGem2.mirror = true; - this.setRotation(this.ZaniteGem2, 0F, 0.7853982F, 0F); - this.AmbroGemFrontRight = new ModelRenderer(this, 4, 62); - this.AmbroGemFrontRight.addBox(-1F, -1F, -1F, 2, 1, 2); - this.AmbroGemFrontRight.setRotationPoint(-6F, 8F, -6F); - this.AmbroGemFrontRight.setTextureSize(64, 128); - this.AmbroGemFrontRight.mirror = true; - this.setRotation(this.AmbroGemFrontRight, 0F, 0F, 0F); - this.AmbroGemBackRight = new ModelRenderer(this, 4, 59); - this.AmbroGemBackRight.addBox(-1F, -1F, -1F, 2, 1, 2); - this.AmbroGemBackRight.setRotationPoint(-6F, 8F, 6F); - this.AmbroGemBackRight.setTextureSize(64, 128); - this.AmbroGemBackRight.mirror = true; - this.setRotation(this.AmbroGemBackRight, 0F, 0F, 0F); - this.AmbroGemFrontLeft = new ModelRenderer(this, 52, 62); - this.AmbroGemFrontLeft.addBox(-1F, -1F, -1F, 2, 1, 2); - this.AmbroGemFrontLeft.setRotationPoint(6F, 8F, -6F); - this.AmbroGemFrontLeft.setTextureSize(64, 128); - this.AmbroGemFrontLeft.mirror = true; - this.setRotation(this.AmbroGemFrontLeft, 0F, 0F, 0F); - this.AmbroGemBackLeft = new ModelRenderer(this, 52, 59); - this.AmbroGemBackLeft.addBox(-1F, -1F, -1F, 2, 1, 2); - this.AmbroGemBackLeft.setRotationPoint(6F, 8F, 6F); - this.AmbroGemBackLeft.setTextureSize(64, 128); - this.AmbroGemBackLeft.mirror = true; - this.setRotation(this.AmbroGemBackLeft, 0F, 0F, 0F); - } - - @Override - public void render(Entity entity, float limbSwing, float limbSwingAmount, float ageInTicks, float netHeadYaw, float headPitch, - float scale) - { - super.render(entity, limbSwing, limbSwingAmount, ageInTicks, netHeadYaw, headPitch, scale); - - this.render(scale); - } - - public void render(float scale) - { - this.Base1.render(scale); - this.Base2.render(scale); - this.Pillar.render(scale); - this.Main1.render(scale); - this.Main2.render(scale); - this.CornerFrontRight.render(scale); - this.CornerBackRight.render(scale); - this.CornerFrontLeft.render(scale); - this.CornerBackLeft.render(scale); - this.ZaniteGem1.render(scale); - this.ZaniteGem2.render(scale); - this.AmbroGemFrontRight.render(scale); - this.AmbroGemBackRight.render(scale); - this.AmbroGemFrontLeft.render(scale); - this.AmbroGemBackLeft.render(scale); - } - - private void setRotation(ModelRenderer model, float x, float y, float z) - { - model.rotateAngleX = x; - model.rotateAngleY = y; - model.rotateAngleZ = z; - } -} diff --git a/src/main/java/com/gildedgames/aether/client/models/entities/tile/ModelIcestoneCooler.java b/src/main/java/com/gildedgames/aether/client/models/entities/tile/ModelIcestoneCooler.java deleted file mode 100644 index 277574a417..0000000000 --- a/src/main/java/com/gildedgames/aether/client/models/entities/tile/ModelIcestoneCooler.java +++ /dev/null @@ -1,74 +0,0 @@ -package com.gildedgames.aether.client.models.entities.tile; - -import net.minecraft.client.model.ModelBase; -import net.minecraft.client.model.ModelRenderer; -import net.minecraft.entity.Entity; - -/** - * icestone_cooler - Undefined - * Created using Tabula 5.1.0 - */ -public class ModelIcestoneCooler extends ModelBase { - public ModelRenderer Main; - public ModelRenderer Base1; - public ModelRenderer Base2; - public ModelRenderer Lid; - public ModelRenderer LidTop; - public ModelRenderer LidHandle; - - public ModelIcestoneCooler() { - this.textureWidth = 64; - this.textureHeight = 64; - this.LidHandle = new ModelRenderer(this, 34, 13); - this.LidHandle.setRotationPoint(0.0F, 0.0F, 0.0F); - this.LidHandle.addBox(-3.5F, -1.75F, -11.0F, 7, 1, 7, 0.0F); - this.Base2 = new ModelRenderer(this, 0, 13); - this.Base2.setRotationPoint(0.0F, 0.0F, 0.0F); - this.Base2.addBox(-2.0F, 18.1F, -9.0F, 4, 6, 18, 0.0F); - this.setRotateAngle(Base2, 0.0F, 0.7853981633974483F, 0.0F); - this.LidTop = new ModelRenderer(this, 36, 6); - this.LidTop.setRotationPoint(0.0F, 0.0F, 0.0F); - this.LidTop.addBox(0.2F, -2.0F, -6.2F, 6, 1, 6, 0.0F); - this.setRotateAngle(LidTop, 0.0F, 0.7853981633974483F, 0.0F); - this.Base1 = new ModelRenderer(this, 0, 13); - this.Base1.setRotationPoint(0.0F, 0.0F, 0.0F); - this.Base1.addBox(-2.0F, 18.1F, -9.0F, 4, 6, 18, 0.0F); - this.setRotateAngle(Base1, 0.0F, -0.7853981633974483F, 0.0F); - this.Main = new ModelRenderer(this, 0, 38); - this.Main.setRotationPoint(0.0F, 0.0F, 0.0F); - this.Main.addBox(-6.0F, 10.0F, -6.0F, 12, 14, 12, 0.0F); - this.Lid = new ModelRenderer(this, 0, 3); - this.Lid.setRotationPoint(0.0F, 10.0F, 4.5F); - this.Lid.addBox(-4.5F, -1.0F, -9.0F, 9, 1, 9, 0.0F); - this.Lid.addChild(this.LidHandle); - this.Lid.addChild(this.LidTop); - } - - @Override - public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) { - super.render(entity, f, f1, f2, f3, f4, f5); - this.setRotationAngles(f, f1, f2, f3, f4, f5, entity); - this.render(f5); - } - - public void render(float f5) { - this.Base2.render(f5); - this.Base1.render(f5); - this.Main.render(f5); - this.Lid.render(f5); - } - - /** - * This is a helper function from Tabula to set the rotation of model parts - */ - public void setRotateAngle(ModelRenderer modelRenderer, float x, float y, float z) { - modelRenderer.rotateAngleX = x; - modelRenderer.rotateAngleY = y; - modelRenderer.rotateAngleZ = z; - } - - public void setRotationAngles(float f, float f1, float f2, float f3, float f4, float f5, Entity entity) - { - super.setRotationAngles(f, f1, f2, f3, f4, f5, entity); - } -} diff --git a/src/main/java/com/gildedgames/aether/client/models/entities/tile/ModelLabyrinthChest.java b/src/main/java/com/gildedgames/aether/client/models/entities/tile/ModelLabyrinthChest.java deleted file mode 100644 index 1ba264ac2d..0000000000 --- a/src/main/java/com/gildedgames/aether/client/models/entities/tile/ModelLabyrinthChest.java +++ /dev/null @@ -1,161 +0,0 @@ -package com.gildedgames.aether.client.models.entities.tile; - -import net.minecraft.client.model.ModelBase; -import net.minecraft.client.model.ModelRenderer; -import net.minecraft.entity.Entity; - -public class ModelLabyrinthChest extends ModelBase -{ - private final ModelRenderer Main_Top; - - private final ModelRenderer Main_Bottom; - - private final ModelRenderer Hinge_Left; - - private final ModelRenderer Hinge_Right; - - private final ModelRenderer Corner_Bottom_Front_Right; - - private final ModelRenderer Corner_Bottom_Front_Left; - - private final ModelRenderer Corner_Bottom_Back_Left; - - private final ModelRenderer Corner_Bottom_Back_Right; - - private final ModelRenderer Corner_Top_Back_Left; - - private final ModelRenderer Corner_Top_Back_Right; - - private final ModelRenderer Corner_Top_Front_Left; - - private final ModelRenderer Corner_Top_Front_Right; - - public ModelLabyrinthChest() - { - this.textureWidth = 64; - this.textureHeight = 128; - - this.Main_Top = new ModelRenderer(this, 4, 0); - this.Main_Top.addBox(-7F, -7F, -14F, 14, 7, 14); - this.Main_Top.setRotationPoint(0F, 0F, 7F); - this.Main_Top.setTextureSize(64, 128); - this.Main_Top.mirror = true; - this.setRotation(this.Main_Top, 0F, 0F, 0F); - this.Main_Bottom = new ModelRenderer(this, 4, 56); - this.Main_Bottom.addBox(-7F, 0F, -7F, 14, 7, 14); - this.Main_Bottom.setRotationPoint(0F, 0F, 0F); - this.Main_Bottom.setTextureSize(64, 128); - this.Main_Bottom.mirror = true; - this.setRotation(this.Main_Bottom, 0F, 0F, 0F); - this.Hinge_Left = new ModelRenderer(this, 26, 30); - this.Hinge_Left.addBox(1.5F, -1F, -1.5F, 4, 2, 2); - this.Hinge_Left.setRotationPoint(0F, 0F, 7F); - this.Hinge_Left.setTextureSize(64, 128); - this.Hinge_Left.mirror = true; - this.setRotation(this.Hinge_Left, 0F, 0F, 0F); - this.Hinge_Right = new ModelRenderer(this, 26, 30); - this.Hinge_Right.addBox(-5.5F, -1F, -1.5F, 4, 2, 2); - this.Hinge_Right.setRotationPoint(0F, 0F, 7F); - this.Hinge_Right.setTextureSize(64, 128); - this.Hinge_Right.mirror = true; - this.setRotation(this.Hinge_Right, 0F, 0F, 0F); - this.Corner_Bottom_Front_Right = new ModelRenderer(this, 4, 44); - this.Corner_Bottom_Front_Right.addBox(-1F, 1F, -10F, 2, 6, 5); - this.Corner_Bottom_Front_Right.setRotationPoint(0F, 0F, 0F); - this.Corner_Bottom_Front_Right.setTextureSize(64, 128); - this.Corner_Bottom_Front_Right.mirror = true; - this.setRotation(this.Corner_Bottom_Front_Right, 0F, 0.7853982F, 0F); - this.Corner_Bottom_Front_Left = new ModelRenderer(this, 46, 44); - this.Corner_Bottom_Front_Left.addBox(-1F, 1F, -10F, 2, 6, 5); - this.Corner_Bottom_Front_Left.setRotationPoint(0F, 0F, 0F); - this.Corner_Bottom_Front_Left.setTextureSize(64, 128); - this.Corner_Bottom_Front_Left.mirror = true; - this.setRotation(this.Corner_Bottom_Front_Left, 0F, -0.7853982F, 0F); - this.Corner_Bottom_Back_Left = new ModelRenderer(this, 46, 44); - this.Corner_Bottom_Back_Left.addBox(-1F, 1F, 5F, 2, 6, 5); - this.Corner_Bottom_Back_Left.setRotationPoint(0F, 0F, 0F); - this.Corner_Bottom_Back_Left.setTextureSize(64, 128); - this.Corner_Bottom_Back_Left.mirror = true; - this.setRotation(this.Corner_Bottom_Back_Left, 0F, 0.7853982F, 0F); - this.Corner_Bottom_Back_Right = new ModelRenderer(this, 4, 44); - this.Corner_Bottom_Back_Right.addBox(-1F, 1F, 5F, 2, 6, 5); - this.Corner_Bottom_Back_Right.setRotationPoint(0F, 0F, 0F); - this.Corner_Bottom_Back_Right.setTextureSize(64, 128); - this.Corner_Bottom_Back_Right.mirror = true; - this.setRotation(this.Corner_Bottom_Back_Right, 0F, -0.7853982F, 0F); - this.Corner_Top_Back_Left = new ModelRenderer(this, 44, 21); - this.Corner_Top_Back_Left.addBox(4F, -8F, -0.4F, 2, 7, 6); - this.Corner_Top_Back_Left.setRotationPoint(0F, 0F, 7F); - this.Corner_Top_Back_Left.setTextureSize(64, 128); - this.Corner_Top_Back_Left.mirror = true; - this.setRotation(this.Corner_Top_Back_Left, 0F, 0.7853982F, 0F); - this.Corner_Top_Back_Right = new ModelRenderer(this, 4, 21); - this.Corner_Top_Back_Right.addBox(-5.5F, -8F, -0.6F, 2, 7, 6); - this.Corner_Top_Back_Right.setRotationPoint(0F, 0F, 7F); - this.Corner_Top_Back_Right.setTextureSize(64, 128); - this.Corner_Top_Back_Right.mirror = true; - this.setRotation(this.Corner_Top_Back_Right, 0F, -0.7853982F, 0F); - this.Corner_Top_Front_Left = new ModelRenderer(this, 44, 21); - this.Corner_Top_Front_Left.addBox(-6F, -8F, -15.3F, 2, 7, 6); - this.Corner_Top_Front_Left.setRotationPoint(0F, 0F, 7F); - this.Corner_Top_Front_Left.setTextureSize(64, 128); - this.Corner_Top_Front_Left.mirror = true; - this.setRotation(this.Corner_Top_Front_Left, 0F, -0.7853982F, 0F); - this.Corner_Top_Front_Right = new ModelRenderer(this, 4, 21); - this.Corner_Top_Front_Right.addBox(4F, -8F, -15.3F, 2, 7, 6); - this.Corner_Top_Front_Right.setRotationPoint(0F, 0F, 7F); - this.Corner_Top_Front_Right.setTextureSize(64, 128); - this.Corner_Top_Front_Right.mirror = true; - this.setRotation(this.Corner_Top_Front_Right, 0F, 0.7853982F, 0F); - } - - @Override - public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) - { - super.render(entity, f, f1, f2, f3, f4, f5); - this.setRotationAngles(f, f1, f2, f3, f4, f5, entity); - this.Main_Top.render(f5); - this.Main_Bottom.render(f5); - this.Hinge_Left.render(f5); - this.Hinge_Right.render(f5); - this.Corner_Bottom_Front_Right.render(f5); - this.Corner_Bottom_Front_Left.render(f5); - this.Corner_Bottom_Back_Left.render(f5); - this.Corner_Bottom_Back_Right.render(f5); - this.Corner_Top_Back_Left.render(f5); - this.Corner_Top_Back_Right.render(f5); - this.Corner_Top_Front_Left.render(f5); - this.Corner_Top_Front_Right.render(f5); - } - - private void setRotation(ModelRenderer model, float x, float y, float z) - { - model.rotateAngleX = x; - model.rotateAngleY = y; - model.rotateAngleZ = z; - } - - @Override - public void setRotationAngles(float f, float f1, float f2, float f3, float f4, float f5, Entity entity) - { - super.setRotationAngles(f, f1, f2, f3, f4, f5, entity); - } - - public void renderAll() - { - float x = 0.0625F; - - this.Main_Top.render(x); - this.Main_Bottom.render(x); - this.Hinge_Left.render(x); - this.Hinge_Right.render(x); - this.Corner_Bottom_Front_Right.render(x); - this.Corner_Bottom_Front_Left.render(x); - this.Corner_Bottom_Back_Left.render(x); - this.Corner_Bottom_Back_Right.render(x); - this.Corner_Top_Back_Left.render(x); - this.Corner_Top_Back_Right.render(x); - this.Corner_Top_Front_Right.render(x); - this.Corner_Top_Front_Left.render(x); - } -} diff --git a/src/main/java/com/gildedgames/aether/client/models/entities/tile/ModelLabyrinthTotem.java b/src/main/java/com/gildedgames/aether/client/models/entities/tile/ModelLabyrinthTotem.java deleted file mode 100644 index 6fafbb7cc5..0000000000 --- a/src/main/java/com/gildedgames/aether/client/models/entities/tile/ModelLabyrinthTotem.java +++ /dev/null @@ -1,131 +0,0 @@ -package com.gildedgames.aether.client.models.entities.tile; - -import net.minecraft.client.model.ModelBase; -import net.minecraft.client.model.ModelRenderer; - -public class ModelLabyrinthTotem extends ModelBase -{ - public final ModelRenderer Shape1; - - public final ModelRenderer Shape2; - - public final ModelRenderer Shape3; - - public final ModelRenderer Shape4; - - public final ModelRenderer Shape5; - - public final ModelRenderer Shape6; - - public final ModelRenderer Shape7; - - public final ModelRenderer Shape8; - - public final ModelRenderer Shape9; - - public final ModelRenderer Shape10; - - public final ModelRenderer Shape11; - - public ModelLabyrinthTotem() - { - this.textureWidth = 128; - this.textureHeight = 64; - - this.Shape1 = new ModelRenderer(this, 0, 0); - this.Shape1.addBox(-2F, -6F, -2F, 4, 6, 4); - this.Shape1.setRotationPoint(-6F, 24F, -6F); - this.Shape1.setTextureSize(128, 64); - this.Shape1.mirror = true; - this.setRotation(this.Shape1, 0F, 0F, 0F); - this.Shape1.mirror = true; - this.Shape2 = new ModelRenderer(this, 0, 0); - this.Shape2.addBox(-2F, -6F, -2F, 4, 6, 4); - this.Shape2.setRotationPoint(6F, 24F, -6F); - this.Shape2.setTextureSize(128, 64); - this.Shape2.mirror = true; - this.setRotation(this.Shape2, 0F, 0F, 0F); - this.Shape2.mirror = false; - this.Shape3 = new ModelRenderer(this, 0, 0); - this.Shape3.addBox(-2F, -6F, -2F, 4, 6, 4); - this.Shape3.setRotationPoint(6F, 24F, 6F); - this.Shape3.setTextureSize(128, 64); - this.Shape3.mirror = true; - this.setRotation(this.Shape3, 0F, 0F, 0F); - this.Shape4 = new ModelRenderer(this, 0, 0); - this.Shape4.addBox(-2F, -6F, -2F, 4, 6, 4); - this.Shape4.setRotationPoint(-6F, 24F, 6F); - this.Shape4.setTextureSize(128, 64); - this.Shape4.mirror = true; - this.setRotation(this.Shape4, 0F, 0F, 0F); - this.Shape4.mirror = false; - this.Shape5 = new ModelRenderer(this, 2, 0); - this.Shape5.addBox(-7F, -14F, -7F, 14, 14, 14); - this.Shape5.setRotationPoint(0F, 23F, 0F); - this.Shape5.setTextureSize(128, 64); - this.Shape5.mirror = true; - this.setRotation(this.Shape5, 0F, 0F, 0F); - this.Shape6 = new ModelRenderer(this, 2, 28); - this.Shape6.addBox(-7F, 0F, -7F, 14, 14, 14); - this.Shape6.setRotationPoint(0F, -7F, 0F); - this.Shape6.setTextureSize(128, 64); - this.Shape6.mirror = true; - this.setRotation(this.Shape6, 0F, 0F, 0F); - this.Shape7 = new ModelRenderer(this, 44, 0); - this.Shape7.addBox(-6F, 0F, -6F, 12, 2, 12); - this.Shape7.setRotationPoint(0F, 7F, 0F); - this.Shape7.setTextureSize(128, 64); - this.Shape7.mirror = true; - this.setRotation(this.Shape7, 0F, 0F, 0F); - this.Shape8 = new ModelRenderer(this, 0, 28); - this.Shape8.addBox(-8F, -2F, -8F, 4, 6, 4); - this.Shape8.setRotationPoint(0F, -7F, 0F); - this.Shape8.setTextureSize(128, 64); - this.Shape8.mirror = true; - this.setRotation(this.Shape8, 0F, 0F, 0F); - this.Shape8.mirror = true; - this.Shape9 = new ModelRenderer(this, 0, 28); - this.Shape9.addBox(-8F, -2F, 4F, 4, 6, 4); - this.Shape9.setRotationPoint(0F, -7F, 0F); - this.Shape9.setTextureSize(128, 64); - this.Shape9.mirror = true; - this.setRotation(this.Shape9, 0F, 0F, 0F); - this.Shape9.mirror = false; - this.Shape10 = new ModelRenderer(this, 0, 28); - this.Shape10.addBox(4F, -2F, 4F, 4, 6, 4); - this.Shape10.setRotationPoint(0F, -7F, 0F); - this.Shape10.setTextureSize(128, 64); - this.Shape10.mirror = true; - this.setRotation(this.Shape10, 0F, 0F, 0F); - this.Shape10.mirror = true; - this.Shape11 = new ModelRenderer(this, 0, 28); - this.Shape11.addBox(4F, -2F, -8F, 4, 6, 4); - this.Shape11.setRotationPoint(0F, -7F, 0F); - this.Shape11.setTextureSize(128, 64); - this.Shape11.mirror = true; - this.setRotation(this.Shape11, 0F, 0F, 0F); - this.Shape11.mirror = false; - } - - public void renderAll(float f5) - { - this.Shape1.render(f5); - this.Shape2.render(f5); - this.Shape3.render(f5); - this.Shape4.render(f5); - this.Shape5.render(f5); - this.Shape6.render(f5); - this.Shape7.render(f5); - this.Shape8.render(f5); - this.Shape9.render(f5); - this.Shape10.render(f5); - this.Shape11.render(f5); - } - - private void setRotation(ModelRenderer model, float x, float y, float z) - { - model.rotateAngleX = x; - model.rotateAngleY = y; - model.rotateAngleZ = z; - } -} diff --git a/src/main/java/com/gildedgames/aether/client/models/entities/tile/ModelMasonryBench.java b/src/main/java/com/gildedgames/aether/client/models/entities/tile/ModelMasonryBench.java deleted file mode 100644 index 09c3b04d96..0000000000 --- a/src/main/java/com/gildedgames/aether/client/models/entities/tile/ModelMasonryBench.java +++ /dev/null @@ -1,98 +0,0 @@ -package com.gildedgames.aether.client.models.entities.tile; - -import net.minecraft.client.model.ModelBase; -import net.minecraft.client.model.ModelRenderer; -import net.minecraft.entity.Entity; - -/** - * masonry_bench.tcn - TechneToTabulaImporter - * Created using Tabula 5.1.0 - */ -public class ModelMasonryBench extends ModelBase { - public ModelRenderer MainLeft; - public ModelRenderer TopRight; - public ModelRenderer TopBack; - public ModelRenderer TopLeft; - public ModelRenderer Workslab; - public ModelRenderer SawRotor; - public ModelRenderer SawRight; - public ModelRenderer SawLeft; - public ModelRenderer RimRight; - public ModelRenderer RimBack; - public ModelRenderer RimLeft; - - public ModelMasonryBench() { - this.textureWidth = 128; - this.textureHeight = 128; - this.SawRotor = new ModelRenderer(this, 40, 29); - this.SawRotor.setRotationPoint(2.0F, 11.0F, 0.0F); - this.SawRotor.addBox(0.0F, -0.5F, -0.5F, 3, 1, 1, 0.0F); - this.setRotateAngle(SawRotor, 0.7853981852531433F, -0.0F, 0.0F); - this.RimBack = new ModelRenderer(this, 32, 14); - this.RimBack.setRotationPoint(0.0F, 0.0F, 0.0F); - this.RimBack.addBox(-8.0F, 8.0F, 7.0F, 16, 2, 1, 0.0F); - this.RimLeft = new ModelRenderer(this, 66, 0); - this.RimLeft.setRotationPoint(0.0F, 0.0F, 0.0F); - this.RimLeft.addBox(7.0F, 8.0F, -8.0F, 1, 2, 15, 0.0F); - this.RimRight = new ModelRenderer(this, 0, 0); - this.RimRight.setRotationPoint(0.0F, 0.0F, 0.0F); - this.RimRight.addBox(-8.0F, 8.0F, -8.0F, 1, 2, 15, 0.0F); - this.Workslab = new ModelRenderer(this, 0, 17); - this.Workslab.setRotationPoint(0.0F, 0.0F, 0.0F); - this.Workslab.addBox(-6.0F, 9.5F, -7.0F, 7, 1, 13, 0.0F); - this.SawRight = new ModelRenderer(this, 48, 21); - this.SawRight.setRotationPoint(2.0F, 11.0F, 0.0F); - this.SawRight.addBox(0.8999999761581421F, -2.5F, -2.5F, 1, 5, 5, 0.0F); - this.TopBack = new ModelRenderer(this, 52, 44); - this.TopBack.setRotationPoint(0.0F, 0.0F, 0.0F); - this.TopBack.addBox(2.0F, 10.0F, 5.0F, 3, 2, 3, 0.0F); - this.TopRight = new ModelRenderer(this, 0, 31); - this.TopRight.setRotationPoint(0.0F, 0.0F, 0.0F); - this.TopRight.addBox(-8.0F, 10.0F, -8.0F, 10, 2, 16, 0.0F); - this.TopLeft = new ModelRenderer(this, 64, 31); - this.TopLeft.setRotationPoint(0.0F, 0.0F, 0.0F); - this.TopLeft.addBox(5.0F, 10.0F, -8.0F, 3, 2, 16, 0.0F); - this.SawLeft = new ModelRenderer(this, 60, 21); - this.SawLeft.setRotationPoint(2.0F, 11.0F, 0.0F); - this.SawLeft.addBox(1.100000023841858F, -2.5F, -2.5F, 1, 5, 5, 0.0F); - this.setRotateAngle(SawLeft, 0.7853981852531433F, -0.0F, 0.0F); - this.MainLeft = new ModelRenderer(this, 0, 49); - this.MainLeft.setRotationPoint(0.0F, 0.0F, 0.0F); - this.MainLeft.addBox(-8.0F, 12.0F, -8.0F, 16, 12, 16, 0.0F); - } - - @Override - public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) { - super.render(entity, f, f1, f2, f3, f4, f5); - this.setRotationAngles(f, f1, f2, f3, f4, f5, entity); - this.render(f5); - } - - public void render(float f5) { - this.SawRotor.render(f5); - this.RimBack.render(f5); - this.RimLeft.render(f5); - this.RimRight.render(f5); - this.Workslab.render(f5); - this.SawRight.render(f5); - this.TopBack.render(f5); - this.TopRight.render(f5); - this.TopLeft.render(f5); - this.SawLeft.render(f5); - this.MainLeft.render(f5); - } - - /** - * This is a helper function from Tabula to set the rotation of model parts - */ - public void setRotateAngle(ModelRenderer modelRenderer, float x, float y, float z) { - modelRenderer.rotateAngleX = x; - modelRenderer.rotateAngleY = y; - modelRenderer.rotateAngleZ = z; - } - - public void setRotationAngles(float f, float f1, float f2, float f3, float f4, float f5, Entity entity) - { - super.setRotationAngles(f, f1, f2, f3, f4, f5, entity); - } -} diff --git a/src/main/java/com/gildedgames/aether/client/models/entities/tile/ModelMoaEgg.java b/src/main/java/com/gildedgames/aether/client/models/entities/tile/ModelMoaEgg.java deleted file mode 100644 index bf3e9fd635..0000000000 --- a/src/main/java/com/gildedgames/aether/client/models/entities/tile/ModelMoaEgg.java +++ /dev/null @@ -1,61 +0,0 @@ -package com.gildedgames.aether.client.models.entities.tile; - -import net.minecraft.client.model.ModelBase; -import net.minecraft.client.model.ModelRenderer; -import net.minecraft.entity.Entity; - -public class ModelMoaEgg extends ModelBase -{ - - private final ModelRenderer Shape1; - - private final ModelRenderer Shape2; - - private final ModelRenderer Shape3; - - public ModelMoaEgg() - { - this.textureWidth = 32; - this.textureHeight = 32; - - this.Shape1 = new ModelRenderer(this, 0, 18); - this.Shape1.addBox(-3F, -6F, -3F, 6, 1, 6); - this.Shape1.setRotationPoint(0F, 18F, 0F); - this.Shape1.setTextureSize(64, 32); - this.Shape1.mirror = true; - this.setRotation(this.Shape1, 0F, 0F, 0F); - this.Shape2 = new ModelRenderer(this, 0, 25); - this.Shape2.addBox(-3F, 5F, -3F, 6, 1, 6); - this.Shape2.setRotationPoint(0F, 18F, 0F); - this.Shape2.setTextureSize(64, 32); - this.Shape2.mirror = true; - this.setRotation(this.Shape2, 0F, 0F, 0F); - this.Shape3 = new ModelRenderer(this, 0, 0); - this.Shape3.addBox(-4F, -5F, -4F, 8, 10, 8); - this.Shape3.setRotationPoint(0F, 18F, 0F); - this.Shape3.setTextureSize(64, 32); - this.Shape3.mirror = true; - this.setRotation(this.Shape3, 0F, 0F, 0F); - } - - public void renderAll(float f5) - { - this.Shape1.render(f5); - this.Shape2.render(f5); - this.Shape3.render(f5); - } - - private void setRotation(ModelRenderer model, float x, float y, float z) - { - model.rotateAngleX = x; - model.rotateAngleY = y; - model.rotateAngleZ = z; - } - - @Override - public void setRotationAngles(float f, float f1, float f2, float f3, float f4, float f5, Entity entity) - { - super.setRotationAngles(f, f1, f2, f3, f4, f5, entity); - } - -} diff --git a/src/main/java/com/gildedgames/aether/client/models/entities/tile/ModelOutpostCampfire.java b/src/main/java/com/gildedgames/aether/client/models/entities/tile/ModelOutpostCampfire.java deleted file mode 100644 index a94275ee11..0000000000 --- a/src/main/java/com/gildedgames/aether/client/models/entities/tile/ModelOutpostCampfire.java +++ /dev/null @@ -1,244 +0,0 @@ -package com.gildedgames.aether.client.models.entities.tile; - -import net.minecraft.client.model.ModelBase; -import net.minecraft.client.model.ModelRenderer; -import net.minecraft.entity.Entity; - -public class ModelOutpostCampfire extends ModelBase -{ - public final ModelRenderer wallright; - - public final ModelRenderer wallleft; - - public final ModelRenderer wallback; - - public final ModelRenderer wallfront; - - public final ModelRenderer wallbackleft; - - public final ModelRenderer wallfrontleft; - - public final ModelRenderer wallfrontright; - - public final ModelRenderer wallbackright; - - public final ModelRenderer basefront; - - public final ModelRenderer baseback; - - public final ModelRenderer baseright; - - public final ModelRenderer baseleft; - - public final ModelRenderer basefrontright; - - public final ModelRenderer basefrontleft; - - public final ModelRenderer basebackleft; - - public final ModelRenderer basebackright; - - public final ModelRenderer basemiddle; - - public final ModelRenderer log1; - - public final ModelRenderer log2; - - public final ModelRenderer log3; - - public final ModelRenderer log4; - - public final ModelRenderer log5; - - public final ModelRenderer log6; - - public final ModelRenderer stick1; - - public final ModelRenderer stick2; - - public final ModelRenderer stick3; - - public final ModelRenderer stick4; - - public final ModelRenderer stick5; - - public final ModelRenderer stick6; - - public final ModelRenderer flame1; - - public final ModelRenderer flame2; - - public ModelOutpostCampfire() - { - this.textureWidth = 64; - this.textureHeight = 256; - this.basefrontright = new ModelRenderer(this, 0, 154); - this.basefrontright.setRotationPoint(8.0F, 24.0F, 8.0F); - this.basefrontright.addBox(-5.0F, -0.20000000298023224F, -15.0F, 10, 1, 5, 0.0F); - this.setRotateAngle(this.basefrontright, 0.0F, 0.7853981852531433F, 0.0F); - this.basemiddle = new ModelRenderer(this, 0, 117); - this.basemiddle.setRotationPoint(8.0F, 24.0F, 8.0F); - this.basemiddle.addBox(-7.0F, -0.800000011920929F, -7.0F, 14, 1, 14, 0.0F); - this.wallbackleft = new ModelRenderer(this, 40, 246); - this.wallbackleft.setRotationPoint(8.0F, 24.0F, 8.0F); - this.wallbackleft.addBox(-5.0F, -3.0F, 15.0F, 10, 3, 2, 0.0F); - this.setRotateAngle(this.wallbackleft, 0.0F, 0.7853981852531433F, 0.0F); - this.stick4 = new ModelRenderer(this, 0, 37); - this.stick4.setRotationPoint(11.0F, 19.0F, 11.0F); - this.stick4.addBox(0.0F, 0.0F, 0.0F, 8, 1, 1, 0.0F); - this.setRotateAngle(this.stick4, -0.1927023226432416F, -0.6118199524026158F, 0.7029732375442334F); - this.stick5 = new ModelRenderer(this, 0, 35); - this.stick5.setRotationPoint(0.0F, 23.0F, 16.0F); - this.stick5.addBox(-1.0F, 0.0F, 0.0F, 10, 1, 1, 0.0F); - this.setRotateAngle(this.stick5, -0.3399323192398366F, 0.3098565859018108F, -0.9146956490129345F); - this.basefrontleft = new ModelRenderer(this, 0, 143); - this.basefrontleft.setRotationPoint(8.0F, 24.0F, 8.0F); - this.basefrontleft.addBox(10.0F, -0.20000000298023224F, -5.0F, 5, 1, 10, 0.0F); - this.setRotateAngle(this.basefrontleft, 0.0F, 0.7853981852531433F, 0.0F); - this.log3 = new ModelRenderer(this, 0, 80); - this.log3.setRotationPoint(6.0F, 22.0F, -3.0F); - this.log3.addBox(0.0F, 0.0F, -1.0F, 3, 3, 9, 0.0F); - this.setRotateAngle(this.log3, 0.3717861175537108F, -0.07435721904039383F, 0.0F); - this.log5 = new ModelRenderer(this, 0, 63); - this.log5.setRotationPoint(8.0F, 21.0F, 14.0F); - this.log5.addBox(0.0F, 0.0F, -1.0F, 3, 3, 8, 0.0F); - this.setRotateAngle(this.log5, -0.22307166457176206F, -0.3346075117588043F, 0.0F); - this.log2 = new ModelRenderer(this, 0, 92); - this.log2.setRotationPoint(7.0F, 14.0F, 6.0F); - this.log2.addBox(0.0F, 0.0F, 0.0F, 11, 4, 4, 0.0F); - this.setRotateAngle(this.log2, 0.3995053943177482F, 0.40012552022054276F, 0.825630955210822F); - this.basebackleft = new ModelRenderer(this, 0, 160); - this.basebackleft.setRotationPoint(8.0F, 24.0F, 8.0F); - this.basebackleft.addBox(-5.0F, -0.20000000298023224F, 10.0F, 10, 1, 5, 0.0F); - this.setRotateAngle(this.basebackleft, 0.0F, 0.7853981852531433F, 0.0F); - this.wallright = new ModelRenderer(this, 0, 212); - this.wallright.setRotationPoint(8.0F, 24.0F, 8.0F); - this.wallright.addBox(-16.0F, -3.0F, -7.0F, 2, 3, 14, 0.0F); - this.wallleft = new ModelRenderer(this, 0, 229); - this.wallleft.setRotationPoint(8.0F, 24.0F, 8.0F); - this.wallleft.addBox(14.0F, -3.0F, -7.0F, 2, 3, 14, 0.0F); - this.stick1 = new ModelRenderer(this, 0, 49); - this.stick1.setRotationPoint(0.0F, 23.0F, 0.0F); - this.stick1.addBox(0.0F, 0.0F, 0.0F, 1, 1, 7, 0.0F); - this.setRotateAngle(this.stick1, 0.919958600895923F, 0.8059776102653321F, 0.4370326840040265F); - this.baseleft = new ModelRenderer(this, 0, 166); - this.baseleft.setRotationPoint(22.0F, 24.0F, 7.0F); - this.baseleft.addBox(-7.0F, -0.20000000298023224F, -6.0F, 7, 1, 14, 0.0F); - this.setRotateAngle(this.baseleft, 0.0F, -0.0F, 0.08726646006107329F); - this.wallfront = new ModelRenderer(this, 0, 251); - this.wallfront.setRotationPoint(8.0F, 24.0F, 8.0F); - this.wallfront.addBox(-7.0F, -3.0F, -16.0F, 14, 3, 2, 0.0F); - this.baseback = new ModelRenderer(this, 0, 196); - this.baseback.setRotationPoint(8.0F, 24.0F, 22.0F); - this.baseback.addBox(-7.0F, -0.20000000298023224F, -7.0F, 14, 1, 7, 0.0F); - this.setRotateAngle(this.baseback, -0.08726646006107329F, -0.0F, 0.0F); - this.wallback = new ModelRenderer(this, 0, 246); - this.wallback.setRotationPoint(8.0F, 24.0F, 8.0F); - this.wallback.addBox(-7.0F, -3.0F, 14.0F, 14, 3, 2, 0.0F); - this.wallfrontleft = new ModelRenderer(this, 40, 220); - this.wallfrontleft.setRotationPoint(8.0F, 24.0F, 8.0F); - this.wallfrontleft.addBox(15.0F, -3.0F, -5.0F, 2, 3, 10, 0.0F); - this.setRotateAngle(this.wallfrontleft, 0.0F, 0.7853981852531433F, 0.0F); - this.stick3 = new ModelRenderer(this, 0, 39); - this.stick3.setRotationPoint(12.0F, 20.0F, 8.0F); - this.stick3.addBox(0.0F, 0.0F, 0.0F, 8, 1, 1, 0.0F); - this.setRotateAngle(this.stick3, 0.7433089541584427F, 0.5828747280373996F, 0.45017882994495967F); - this.flame1 = new ModelRenderer(this, 0, -11); - this.flame1.setRotationPoint(8.0F, 24.0F, 8.0F); - this.flame1.addBox(0.0F, -16.0F, -14.0F, 0, 16, 28, 0.0F); - this.wallfrontright = new ModelRenderer(this, 40, 251); - this.wallfrontright.setRotationPoint(8.0F, 24.0F, 8.0F); - this.wallfrontright.addBox(-5.0F, -3.0F, -17.0F, 10, 3, 2, 0.0F); - this.setRotateAngle(this.wallfrontright, 0.0F, 0.7853981852531433F, 0.0F); - this.log1 = new ModelRenderer(this, 0, 100); - this.log1.setRotationPoint(0.0F, 18.0F, 6.0F); - this.log1.addBox(0.0F, 0.0F, 0.0F, 5, 5, 12, 0.0F); - this.setRotateAngle(this.log1, 0.0F, 0.5948577523231506F, 0.0F); - this.basebackright = new ModelRenderer(this, 0, 132); - this.basebackright.setRotationPoint(8.0F, 24.0F, 8.0F); - this.basebackright.addBox(-15.0F, -0.20000000298023224F, -5.0F, 5, 1, 10, 0.0F); - this.setRotateAngle(this.basebackright, 0.0F, 0.7853981852531433F, 0.0F); - this.log6 = new ModelRenderer(this, 0, 57); - this.log6.setRotationPoint(-5.0F, 22.0F, 6.0F); - this.log6.addBox(0.0F, 0.0F, 0.0F, 7, 3, 3, 0.0F); - this.setRotateAngle(this.log6, 0.03474486630428221F, -0.1826539890642162F, -0.1890753719838405F); - this.flame2 = new ModelRenderer(this, 0, 17); - this.flame2.setRotationPoint(8.0F, 24.0F, 8.0F); - this.flame2.addBox(-14.0F, -16.0F, 0.0F, 28, 16, 0, 0.0F); - this.stick6 = new ModelRenderer(this, 0, 33); - this.stick6.setRotationPoint(-5.0F, 23.0F, 14.0F); - this.stick6.addBox(0.0F, 0.0F, 0.0F, 9, 1, 1, 0.0F); - this.setRotateAngle(this.stick6, -0.5202518955778146F, 0.5156060740289738F, -0.43076516568685086F); - this.basefront = new ModelRenderer(this, 0, 204); - this.basefront.setRotationPoint(8.0F, 24.0F, -6.0F); - this.basefront.addBox(-7.0F, -0.20000000298023224F, 0.0F, 14, 1, 7, 0.0F); - this.setRotateAngle(this.basefront, 0.08726646006107329F, -0.0F, 0.0F); - this.baseright = new ModelRenderer(this, 0, 181); - this.baseright.setRotationPoint(-6.0F, 24.0F, 8.0F); - this.baseright.addBox(0.0F, -0.20000000298023224F, -7.0F, 7, 1, 14, 0.0F); - this.setRotateAngle(this.baseright, 0.0F, -0.0F, -0.08726646006107329F); - this.stick2 = new ModelRenderer(this, 0, 41); - this.stick2.setRotationPoint(13.0F, 23.0F, -2.0F); - this.stick2.addBox(0.0F, 0.0F, 0.0F, 1, 1, 7, 0.0F); - this.setRotateAngle(this.stick2, -0.1064627175234901F, -0.642731696348357F, 0.6194275173554241F); - this.wallbackright = new ModelRenderer(this, 40, 233); - this.wallbackright.setRotationPoint(8.0F, 24.0F, 8.0F); - this.wallbackright.addBox(-17.0F, -3.0F, -5.0F, 2, 3, 10, 0.0F); - this.setRotateAngle(this.wallbackright, 0.0F, 0.7853981852531433F, 0.0F); - this.log4 = new ModelRenderer(this, 0, 74); - this.log4.setRotationPoint(10.0F, 20.0F, 8.0F); - this.log4.addBox(0.0F, 0.0F, 0.0F, 10, 3, 3, 0.0F); - this.setRotateAngle(this.log4, 0.1020406195281061F, 0.1461337633559016F, 0.1879195346028469F); - } - - @Override - public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) - { - this.render(f5); - } - - public void render(float scale) - { - this.basefrontright.render(scale); - this.basemiddle.render(scale); - this.wallbackleft.render(scale); - this.stick4.render(scale); - this.stick5.render(scale); - this.basefrontleft.render(scale); - this.log3.render(scale); - this.log5.render(scale); - this.log2.render(scale); - this.basebackleft.render(scale); - this.wallright.render(scale); - this.wallleft.render(scale); - this.stick1.render(scale); - this.baseleft.render(scale); - this.wallfront.render(scale); - this.baseback.render(scale); - this.wallback.render(scale); - this.wallfrontleft.render(scale); - this.stick3.render(scale); - this.flame1.render(scale); - this.wallfrontright.render(scale); - this.log1.render(scale); - this.basebackright.render(scale); - this.log6.render(scale); - this.flame2.render(scale); - this.stick6.render(scale); - this.basefront.render(scale); - this.baseright.render(scale); - this.stick2.render(scale); - this.wallbackright.render(scale); - this.log4.render(scale); - } - - /** - * This is a helper function from Tabula to set the rotation of model parts - */ - public void setRotateAngle(ModelRenderer modelRenderer, float x, float y, float z) - { - modelRenderer.rotateAngleX = x; - modelRenderer.rotateAngleY = y; - modelRenderer.rotateAngleZ = z; - } -} diff --git a/src/main/java/com/gildedgames/aether/client/models/entities/tile/ModelPresent.java b/src/main/java/com/gildedgames/aether/client/models/entities/tile/ModelPresent.java deleted file mode 100644 index b9b0c755c0..0000000000 --- a/src/main/java/com/gildedgames/aether/client/models/entities/tile/ModelPresent.java +++ /dev/null @@ -1,66 +0,0 @@ -package com.gildedgames.aether.client.models.entities.tile; - -import net.minecraft.client.model.ModelBase; -import net.minecraft.client.model.ModelRenderer; - -public class ModelPresent extends ModelBase -{ - - private final ModelRenderer box; - - private final ModelRenderer bowRight, bowLeft, bowMiddle; - - public ModelPresent() - { - this.textureWidth = 64; - this.textureHeight = 32; - - this.box = new ModelRenderer(this, 0, 12); - this.box.addBox(-5F, -10F, -5F, 10, 10, 10); - this.box.setRotationPoint(0F, 0F, 0F); - this.box.setTextureSize(64, 32); - this.box.mirror = true; - this.setRotation(this.box, 0F, 0.7853982F, 0F); - - this.bowRight = new ModelRenderer(this, 4, 5); - this.bowRight.addBox(-8F, -10.5F, -1.5F, 5, 1, 3); - this.bowRight.setRotationPoint(0F, 0F, 0F); - this.bowRight.setTextureSize(64, 32); - this.bowRight.mirror = true; - this.setRotation(this.bowRight, 0F, 0F, 0.2617994F); - - this.bowLeft = new ModelRenderer(this, 20, 5); - this.bowLeft.addBox(3F, -10.5F, -1.5F, 5, 1, 3); - this.bowLeft.setRotationPoint(0F, 0F, 0F); - this.bowLeft.setTextureSize(64, 32); - this.bowLeft.mirror = true; - this.setRotation(this.bowLeft, 0F, 0F, -0.2617994F); - - this.bowMiddle = new ModelRenderer(this, 16, 9); - this.bowMiddle.addBox(-1F, -11F, -1F, 2, 1, 2); - this.bowMiddle.setRotationPoint(0F, 0F, 0F); - this.bowMiddle.setTextureSize(64, 32); - this.bowMiddle.mirror = true; - this.setRotation(this.bowMiddle, 0F, 0F, 0F); - } - - public void renderBow(float scale) - { - this.bowRight.render(scale); - this.bowLeft.render(scale); - this.bowMiddle.render(scale); - } - - public void renderBox(float scale) - { - this.box.render(scale); - } - - private void setRotation(ModelRenderer model, float x, float y, float z) - { - model.rotateAngleX = x; - model.rotateAngleY = y; - model.rotateAngleZ = z; - } - -} diff --git a/src/main/java/com/gildedgames/aether/client/models/entities/tile/ModelTeleporter.java b/src/main/java/com/gildedgames/aether/client/models/entities/tile/ModelTeleporter.java deleted file mode 100644 index 3ea45261b7..0000000000 --- a/src/main/java/com/gildedgames/aether/client/models/entities/tile/ModelTeleporter.java +++ /dev/null @@ -1,342 +0,0 @@ -package com.gildedgames.aether.client.models.entities.tile; - -import net.minecraft.client.model.ModelBase; -import net.minecraft.client.model.ModelRenderer; -import net.minecraft.entity.Entity; - -public class ModelTeleporter extends ModelBase -{ - public final ModelRenderer BlockBase; - - public final ModelRenderer ShardFront1; - - public final ModelRenderer ShardLeft1; - - public final ModelRenderer ShardLeft2; - - public final ModelRenderer ShardLeft3; - - public final ModelRenderer ShardLeft4; - - public final ModelRenderer ShardLeft5; - - public final ModelRenderer ShardBack; - - public final ModelRenderer ShardRight1; - - public final ModelRenderer ShardFront2; - - public final ModelRenderer ShardFront3; - - public final ModelRenderer ShardRight2; - - public final ModelRenderer ShardRight3; - - public final ModelRenderer ShardRight4; - - public final ModelRenderer ShardRight5; - - public final ModelRenderer PedestalPlatform; - - public final ModelRenderer PedestalBase; - - public final ModelRenderer PortalFramebase; - - public final ModelRenderer PedestalFrameHolder; - - public final ModelRenderer Core1; - - public final ModelRenderer Core2; - - public final ModelRenderer Core3; - - public final ModelRenderer Core4; - - public final ModelRenderer WingRightBase; - - public final ModelRenderer WingLeftBase; - - public final ModelRenderer WingRightArm; - - public final ModelRenderer WingRightFeather1; - - public final ModelRenderer WingRightFeather2; - - public final ModelRenderer WingRightFeather3; - - public final ModelRenderer WingLeftArm; - - public final ModelRenderer WingLeftFeather1; - - public final ModelRenderer WingLeftFeather2; - - public final ModelRenderer WingLeftFeather3; - - public final ModelRenderer PortalFrameRight; - - public final ModelRenderer PortalFrameLeft; - - public final ModelRenderer PortalFrameTop; - - public final ModelRenderer PortalCorner1; - - public final ModelRenderer PortalCorner2; - - public final ModelRenderer PortalCorner3; - - public final ModelRenderer PortalCorner4; - - public final ModelRenderer PortalVortex; - - public ModelTeleporter() - { - this.textureWidth = 128; - this.textureHeight = 64; - this.BlockBase = new ModelRenderer(this, 0, 15); - this.BlockBase.setRotationPoint(0.0F, 9.0F, 0.0F); - this.BlockBase.addBox(-5.0F, 0.0F, -5.0F, 10, 4, 10, 0.0F); - this.Core3 = new ModelRenderer(this, 20, 0); - this.Core3.setRotationPoint(0.0F, -0.5F, -1.0F); - this.Core3.addBox(-2.5F, 0.0F, -1.0F, 5, 10, 1, 0.0F); - this.WingLeftArm = new ModelRenderer(this, 70, 54); - this.WingLeftArm.mirror = true; - this.WingLeftArm.setRotationPoint(-1.8F, -1.4F, -0.2F); - this.WingLeftArm.addBox(-2.0F, -6.0F, 0.0F, 2, 9, 1, 0.0F); - this.setRotateAngle(this.WingLeftArm, 0.0F, 0.0F, -0.17453292519943295F); - this.ShardLeft5 = new ModelRenderer(this, 20, 34); - this.ShardLeft5.setRotationPoint(-5.0F, 5.0F, 3.0F); - this.ShardLeft5.addBox(0.0F, 0.0F, 0.0F, 1, 1, 2, 0.0F); - this.ShardFront1 = new ModelRenderer(this, 0, 30); - this.ShardFront1.setRotationPoint(-4.0F, 4.0F, -5.0F); - this.ShardFront1.addBox(0.0F, 0.0F, 0.0F, 2, 4, 1, 0.0F); - this.ShardLeft2 = new ModelRenderer(this, 12, 30); - this.ShardLeft2.setRotationPoint(-5.0F, 5.0F, -5.0F); - this.ShardLeft2.addBox(0.0F, 0.0F, 0.0F, 1, 1, 3, 0.0F); - this.PedestalBase = new ModelRenderer(this, 24, 44); - this.PedestalBase.setRotationPoint(0.0F, -10.0F, 4.0F); - this.PedestalBase.addBox(-5.0F, 0.0F, -9.0F, 10, 10, 10, 0.0F); - this.WingRightFeather1 = new ModelRenderer(this, 64, 45); - this.WingRightFeather1.setRotationPoint(1.6F, -3.5F, 0.0F); - this.WingRightFeather1.addBox(0.0F, -2.0F, -0.5F, 7, 2, 1, 0.0F); - this.setRotateAngle(this.WingRightFeather1, 0.0F, 0.0F, -0.436F); - this.WingLeftFeather1 = new ModelRenderer(this, 64, 45); - this.WingLeftFeather1.mirror = true; - this.WingLeftFeather1.setRotationPoint(-1.6F, -3.5F, 0.0F); - this.WingLeftFeather1.addBox(-7.0F, -2.0F, -0.5F, 7, 2, 1, 0.0F); - this.setRotateAngle(this.WingLeftFeather1, 0.0F, 0.0F, 0.436F); - this.ShardRight1 = new ModelRenderer(this, 22, 30); - this.ShardRight1.setRotationPoint(4.0F, 4.0F, -5.0F); - this.ShardRight1.addBox(0.0F, 0.0F, 0.0F, 1, 1, 10, 0.0F); - this.WingRightFeather3 = new ModelRenderer(this, 64, 51); - this.WingRightFeather3.setRotationPoint(1.6F, 0.0F, 0.0F); - this.WingRightFeather3.addBox(0.0F, 0.0F, -0.5F, 5, 2, 1, 0.0F); - this.setRotateAngle(this.WingRightFeather3, 0.0F, 0.0F, 0.08726646259971647F); - this.ShardLeft3 = new ModelRenderer(this, 12, 34); - this.ShardLeft3.setRotationPoint(-5.0F, 5.0F, -1.0F); - this.ShardLeft3.addBox(0.0F, 0.0F, 0.0F, 1, 1, 3, 0.0F); - this.ShardRight4 = new ModelRenderer(this, 0, 51); - this.ShardRight4.setRotationPoint(4.0F, 6.0F, -3.0F); - this.ShardRight4.addBox(0.0F, 0.0F, 0.0F, 1, 2, 2, 0.0F); - this.ShardRight3 = new ModelRenderer(this, 0, 55); - this.ShardRight3.setRotationPoint(4.0F, 5.0F, 2.0F); - this.ShardRight3.addBox(0.0F, 0.0F, 0.0F, 1, 1, 2, 0.0F); - this.WingRightArm = new ModelRenderer(this, 70, 54); - this.WingRightArm.setRotationPoint(1.8F, -1.4F, -0.2F); - this.WingRightArm.addBox(0.0F, -6.0F, 0.0F, 2, 9, 1, 0.0F); - this.setRotateAngle(this.WingRightArm, 0.0F, 0.0F, 0.17453292519943295F); - this.Core2 = new ModelRenderer(this, 0, 12); - this.Core2.setRotationPoint(0.0F, 10.0F, 0.0F); - this.Core2.addBox(-3.0F, 0.0F, -1.0F, 6, 1, 2, 0.0F); - this.PortalFrameRight = new ModelRenderer(this, 83, 2); - this.PortalFrameRight.setRotationPoint(2.0F, 0.0F, 1.0F); - this.PortalFrameRight.addBox(0.0F, 0.0F, 0.0F, 1, 1, 6, 0.0F); - this.PortalCorner3 = new ModelRenderer(this, 77, 4); - this.PortalCorner3.setRotationPoint(-4.0F, 0.0F, 6.0F); - this.PortalCorner3.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); - this.PortalCorner2 = new ModelRenderer(this, 69, 4); - this.PortalCorner2.setRotationPoint(1.0F, 0.0F, 1.0F); - this.PortalCorner2.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); - this.PortalFrameTop = new ModelRenderer(this, 69, 0); - this.PortalFrameTop.setRotationPoint(0.0F, 0.0F, 7.0F); - this.PortalFrameTop.addBox(-4.0F, 0.0F, 0.0F, 8, 1, 1, 0.0F); - this.PortalCorner1 = new ModelRenderer(this, 69, 2); - this.PortalCorner1.setRotationPoint(-2.0F, 0.0F, 1.0F); - this.PortalCorner1.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); - this.Core1 = new ModelRenderer(this, 0, 0); - this.Core1.setRotationPoint(0.0F, 3.0F, 0.0F); - this.Core1.addBox(-4.0F, 0.0F, -1.0F, 8, 10, 2, 0.0F); - this.PortalVortex = new ModelRenderer(this, 85, 0); - this.PortalVortex.setRotationPoint(0.0F, 0.5F, 1.0F); - this.PortalVortex.addBox(-2.0F, 0.0F, 0.0F, 4, 0, 6, 0.0F); - this.ShardBack = new ModelRenderer(this, 0, 41); - this.ShardBack.setRotationPoint(-4.0F, 4.0F, 4.0F); - this.ShardBack.addBox(0.0F, 0.0F, 0.0F, 8, 4, 1, 0.0F); - this.WingRightBase = new ModelRenderer(this, 64, 60); - this.WingRightBase.setRotationPoint(5.0F, -3.5F, 2.0F); - this.WingRightBase.addBox(0.0F, -1.5F, 0.0F, 2, 3, 1, 0.0F); - this.PortalFrameLeft = new ModelRenderer(this, 69, 2); - this.PortalFrameLeft.setRotationPoint(-3.0F, 0.0F, 1.0F); - this.PortalFrameLeft.addBox(0.0F, 0.0F, 0.0F, 1, 1, 6, 0.0F); - this.PortalCorner4 = new ModelRenderer(this, 77, 2); - this.PortalCorner4.setRotationPoint(3.0F, 0.0F, 6.0F); - this.PortalCorner4.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); - this.ShardFront3 = new ModelRenderer(this, 0, 37); - this.ShardFront3.setRotationPoint(0.0F, 5.0F, -5.0F); - this.ShardFront3.addBox(0.0F, 0.0F, 0.0F, 2, 1, 1, 0.0F); - this.ShardRight5 = new ModelRenderer(this, 0, 58); - this.ShardRight5.setRotationPoint(4.0F, 6.0F, 2.0F); - this.ShardRight5.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); - this.WingLeftFeather3 = new ModelRenderer(this, 64, 51); - this.WingLeftFeather3.mirror = true; - this.WingLeftFeather3.setRotationPoint(-1.6F, 0.0F, 0.0F); - this.WingLeftFeather3.addBox(-5.0F, 0.0F, -0.5F, 5, 2, 1, 0.0F); - this.setRotateAngle(this.WingLeftFeather3, 0.0F, 0.0F, -0.08726646259971647F); - this.Core4 = new ModelRenderer(this, 20, 0); - this.Core4.setRotationPoint(0.0F, -0.5F, 1.0F); - this.Core4.addBox(-2.5F, 0.0F, -1.0F, 5, 10, 1, 0.0F); - this.setRotateAngle(this.Core4, 0.0F, 3.141592653589793F, 0.0F); - this.ShardLeft4 = new ModelRenderer(this, 20, 30); - this.ShardLeft4.setRotationPoint(-5.0F, 6.0F, 0.0F); - this.ShardLeft4.addBox(0.0F, 0.0F, 0.0F, 1, 2, 2, 0.0F); - this.ShardRight2 = new ModelRenderer(this, 0, 46); - this.ShardRight2.setRotationPoint(4.0F, 5.0F, -4.0F); - this.ShardRight2.addBox(0.0F, 0.0F, 0.0F, 1, 1, 4, 0.0F); - this.ShardLeft1 = new ModelRenderer(this, 0, 30); - this.ShardLeft1.setRotationPoint(-5.0F, 4.0F, -5.0F); - this.ShardLeft1.addBox(0.0F, 0.0F, 0.0F, 1, 1, 10, 0.0F); - this.ShardFront2 = new ModelRenderer(this, 0, 35); - this.ShardFront2.setRotationPoint(0.0F, 4.0F, -5.0F); - this.ShardFront2.addBox(0.0F, 0.0F, 0.0F, 3, 1, 1, 0.0F); - this.PedestalPlatform = new ModelRenderer(this, 30, 0); - this.PedestalPlatform.setRotationPoint(0.0F, 0.0F, -6.0F); - this.PedestalPlatform.addBox(-6.0F, 0.0F, 0.4F, 12, 1, 15, 0.0F); - this.setRotateAngle(this.PedestalPlatform, 0.7853981633974483F, 0.0F, 0.0F); - this.PedestalFrameHolder = new ModelRenderer(this, 30, 16); - this.PedestalFrameHolder.setRotationPoint(0.0F, 1000.0F, 0.0F); - this.PedestalFrameHolder.addBox(-6.0F, -2.0F, 0.4F, 12, 2, 1, 0.0F); - this.WingRightFeather2 = new ModelRenderer(this, 64, 48); - this.WingRightFeather2.setRotationPoint(1.6F, -2.0F, 0.0F); - this.WingRightFeather2.addBox(0.0F, -1.0F, -0.5F, 6, 2, 1, 0.0F); - this.setRotateAngle(this.WingRightFeather2, 0.0F, 0.0F, -0.17453292519943295F); - this.WingLeftFeather2 = new ModelRenderer(this, 64, 48); - this.WingLeftFeather2.mirror = true; - this.WingLeftFeather2.setRotationPoint(-1.6F, -2.0F, 0.0F); - this.WingLeftFeather2.addBox(-6.0F, -1.0F, -0.5F, 6, 2, 1, 0.0F); - this.setRotateAngle(this.WingLeftFeather2, 0.0F, 0.0F, 0.17453292519943295F); - this.PortalFramebase = new ModelRenderer(this, 69, 9); - this.PortalFramebase.setRotationPoint(0.0F, -3.6F, -4.1F); - this.PortalFramebase.addBox(-2.0F, 0.0F, 0.0F, 4, 1, 1, 0.0F); - this.setRotateAngle(this.PortalFramebase, 0.7853981633974483F, 0.0F, 0.0F); - this.WingLeftBase = new ModelRenderer(this, 64, 60); - this.WingLeftBase.mirror = true; - this.WingLeftBase.setRotationPoint(-5.0F, -3.5F, 2.0F); - this.WingLeftBase.addBox(-2.0F, -1.5F, 0.0F, 2, 3, 1, 0.0F); - this.Core1.addChild(this.Core3); - this.WingLeftBase.addChild(this.WingLeftArm); - this.BlockBase.addChild(this.ShardLeft5); - this.BlockBase.addChild(this.ShardFront1); - this.BlockBase.addChild(this.ShardLeft2); - this.BlockBase.addChild(this.PedestalBase); - this.WingRightArm.addChild(this.WingRightFeather1); - this.WingLeftArm.addChild(this.WingLeftFeather1); - this.BlockBase.addChild(this.ShardRight1); - this.WingRightArm.addChild(this.WingRightFeather3); - this.BlockBase.addChild(this.ShardLeft3); - this.BlockBase.addChild(this.ShardRight4); - this.BlockBase.addChild(this.ShardRight3); - this.WingRightBase.addChild(this.WingRightArm); - this.Core1.addChild(this.Core2); - this.PortalFramebase.addChild(this.PortalFrameRight); - this.PortalFramebase.addChild(this.PortalCorner3); - this.PortalFramebase.addChild(this.PortalCorner2); - this.PortalFramebase.addChild(this.PortalFrameTop); - this.PortalFramebase.addChild(this.PortalCorner1); - this.BlockBase.addChild(this.Core1); - this.PortalFramebase.addChild(this.PortalVortex); - this.BlockBase.addChild(this.ShardBack); - this.BlockBase.addChild(this.WingRightBase); - this.PortalFramebase.addChild(this.PortalFrameLeft); - this.PortalFramebase.addChild(this.PortalCorner4); - this.BlockBase.addChild(this.ShardFront3); - this.BlockBase.addChild(this.ShardRight5); - this.WingLeftArm.addChild(this.WingLeftFeather3); - this.Core1.addChild(this.Core4); - this.BlockBase.addChild(this.ShardLeft4); - this.BlockBase.addChild(this.ShardRight2); - this.BlockBase.addChild(this.ShardLeft1); - this.BlockBase.addChild(this.ShardFront2); - this.BlockBase.addChild(this.PedestalPlatform); - this.PedestalPlatform.addChild(this.PedestalFrameHolder); - this.WingRightArm.addChild(this.WingRightFeather2); - this.WingLeftArm.addChild(this.WingLeftFeather2); - this.BlockBase.addChild(this.PortalFramebase); - this.BlockBase.addChild(this.WingLeftBase); - } - - @Override - public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) - { - this.render(f5, 0); - } - - /* - - public ModelRenderer BlockBase; - public ModelRenderer ShardFront1, ShardLeft1, ShardLeft2, ShardLeft3, ShardLeft4, ShardLeft5; - public ModelRenderer ShardBack, ShardRight1, ShardFront2, ShardFront3; - public ModelRenderer ShardRight2, ShardRight3, ShardRight4, ShardRight5; - public ModelRenderer PedestalPlatform, PedestalBase, PortalFramebase, PedestalFrameHolder; - public ModelRenderer Core1, Core2, Core3, Core4; - public ModelRenderer WingRightBase, WingLeftBase; - public ModelRenderer WingRightArm, WingRightFeather1, WingRightFeather2, WingRightFeather3; - public ModelRenderer WingLeftArm, WingLeftFeather1, WingLeftFeather2, WingLeftFeather3; - public ModelRenderer PortalFrameRight, PortalFrameLeft, PortalFrameTop; - public ModelRenderer PortalCorner1, PortalCorner2, PortalCorner3, PortalCorner4, PortalVortex; - - */ - - public void render(float scale, double progress) - { - final double degtorad = 180 / Math.PI; - - this.PortalFramebase.offsetZ = -.1f; - this.PortalFramebase.offsetY = -.1f + (float) Math.cos(progress / 10f) / 10f; - this.PortalFramebase.rotateAngleX = 1.5f; - - /*if (progress > 100) - { - WingRightBase.rotateAngleZ = (progress - 100) * (-3.14f / 100) - 3.14f; - WingLeftBase.rotateAngleZ = (progress - 100) * (3.14f / 100) - 3.14f; - - if (progress < 150) - { - WingRightFeather1.rotateAngleZ = (progress % 50) * (-1.436f / 50f) + 1; - WingLeftFeather1.rotateAngleZ = (progress % 50) * (1.436f / 50f) - 1; - } - else - { - WingRightFeather1.rotateAngleZ = -0.436F; - WingLeftFeather1.rotateAngleZ = 0.436F; - } - } - else - { - WingRightBase.rotateAngleZ = 3.14f; - WingLeftBase.rotateAngleZ = 3.14f; - WingRightFeather1.rotateAngleZ = 1f; - WingLeftFeather1.rotateAngleZ = 1f; - }*/ - - this.BlockBase.render(scale); - } - - /** - * This is a helper function from Tabula to set the rotation of model parts - */ - public void setRotateAngle(ModelRenderer modelRenderer, float x, float y, float z) - { - modelRenderer.rotateAngleX = x; - modelRenderer.rotateAngleY = y; - modelRenderer.rotateAngleZ = z; - } -} diff --git a/src/main/java/com/gildedgames/aether/client/models/items/ModelWinterHat.java b/src/main/java/com/gildedgames/aether/client/models/items/ModelWinterHat.java deleted file mode 100644 index a852011de2..0000000000 --- a/src/main/java/com/gildedgames/aether/client/models/items/ModelWinterHat.java +++ /dev/null @@ -1,64 +0,0 @@ -package com.gildedgames.aether.client.models.items; - -import net.minecraft.client.model.ModelBiped; -import net.minecraft.client.model.ModelRenderer; -import net.minecraft.client.renderer.GlStateManager; -import net.minecraft.entity.Entity; - -/** - * winter_hat - Undefined - * Created using Tabula 7.0.0 - */ -public class ModelWinterHat extends ModelBiped { - public ModelRenderer base; - public ModelRenderer main; - public ModelRenderer end; - public ModelRenderer bauble; - - public ModelWinterHat() { - this.textureWidth = 64; - this.textureHeight = 32; - this.end = new ModelRenderer(this, 5, 6); - this.end.setRotationPoint(1.5F, -6.0F, 0.0F); - this.end.addBox(0.0F, 0.0F, -1.5F, 6, 3, 3, 0.0F); - this.setRotateAngle(end, 0.0F, 0.0F, -0.2617993877991494F); - this.base = new ModelRenderer(this, 0, 23); - this.base.setRotationPoint(1.0F, -8.0F, 0.5F); - this.base.addBox(-3.5F, -2.0F, -3.5F, 7, 2, 7, 0.0F); - this.setRotateAngle(base, 0.0F, 0.0F, 0.08726646259971647F); - this.bauble = new ModelRenderer(this, 8, 0); - this.bauble.setRotationPoint(6.0F, 2.9F, 0.0F); - this.bauble.addBox(-1.5F, 0.0F, -1.5F, 3, 3, 3, 0.0F); - this.setRotateAngle(bauble, 0.0F, 0.7853981633974483F, -0.17453292519943295F); - this.main = new ModelRenderer(this, 4, 12); - this.main.setRotationPoint(-2.7F, -2.0F, 0.0F); - this.main.addBox(0.0F, -6.0F, -2.5F, 5, 6, 5, 0.0F); - this.setRotateAngle(main, 0.0F, 0.0F, 0.3490658503988659F); - this.main.addChild(this.end); - this.end.addChild(this.bauble); - this.base.addChild(this.main); - this.bipedHeadwear.addChild(this.base); - } - - @Override - public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) - { - bipedHead.isHidden=true; - this.base.offsetY = 0.05F; - this.base.offsetZ = 0.1F; - super.render(entity, f, f1, f2, f3, f4, f5); - } - - public void renderRaw(final Entity entity, final float f, final float f1, final float f2, final float f3, final float f4, final float f5) { - this.base.render(f5); - } - - /** - * This is a helper function from Tabula to set the rotation of model parts - */ - public void setRotateAngle(ModelRenderer modelRenderer, float x, float y, float z) { - modelRenderer.rotateAngleX = x; - modelRenderer.rotateAngleY = y; - modelRenderer.rotateAngleZ = z; - } -} diff --git a/src/main/java/com/gildedgames/aether/client/renderer/AetherRenderers.java b/src/main/java/com/gildedgames/aether/client/renderer/AetherRenderers.java deleted file mode 100644 index 180f018f32..0000000000 --- a/src/main/java/com/gildedgames/aether/client/renderer/AetherRenderers.java +++ /dev/null @@ -1,112 +0,0 @@ -package com.gildedgames.aether.client.renderer; - -import com.gildedgames.aether.api.registrar.BlocksAether; -import com.gildedgames.aether.api.registrar.ItemsAether; -import com.gildedgames.aether.client.renderer.entities.RenderFloatingBlock; -import com.gildedgames.aether.client.renderer.entities.RenderMovingBlock; -import com.gildedgames.aether.client.renderer.entities.attachments.RenderParachute; -import com.gildedgames.aether.client.renderer.entities.companions.*; -import com.gildedgames.aether.client.renderer.entities.living.*; -import com.gildedgames.aether.client.renderer.entities.projectiles.RenderBolt; -import com.gildedgames.aether.client.renderer.entities.projectiles.RenderDaggerfrostSnowball; -import com.gildedgames.aether.client.renderer.entities.projectiles.RenderDart; -import com.gildedgames.aether.client.renderer.items.ItemMoaEggColorHandler; -import com.gildedgames.aether.client.renderer.items.MoaFeatherColorHandler; -import com.gildedgames.aether.client.renderer.items.WrappingPaperColorHandler; -import com.gildedgames.aether.client.renderer.tiles.*; -import com.gildedgames.aether.client.renderer.tiles.items.TileEntityPresentItemRenderer; -import com.gildedgames.aether.common.entities.animals.*; -import com.gildedgames.aether.common.entities.blocks.EntityFloatingBlock; -import com.gildedgames.aether.common.entities.blocks.EntityMovingBlock; -import com.gildedgames.aether.common.entities.blocks.EntityParachute; -import com.gildedgames.aether.common.entities.characters.*; -import com.gildedgames.aether.common.entities.companions.*; -import com.gildedgames.aether.common.entities.monsters.*; -import com.gildedgames.aether.common.entities.projectiles.EntityBolt; -import com.gildedgames.aether.common.entities.projectiles.EntityDaggerfrostSnowball; -import com.gildedgames.aether.common.entities.projectiles.EntityDart; -import com.gildedgames.aether.common.entities.tiles.*; -import net.minecraft.client.Minecraft; -import net.minecraft.client.renderer.color.ItemColors; -import net.minecraft.item.Item; -import net.minecraftforge.fml.client.registry.ClientRegistry; -import net.minecraftforge.fml.client.registry.RenderingRegistry; - -public class AetherRenderers -{ - public static void preInit() - { - registerEntityRenderers(); - } - - public static void init() - { - registerTESRs(); - - final ItemColors itemColors = Minecraft.getMinecraft().getItemColors(); - itemColors.registerItemColorHandler(new ItemMoaEggColorHandler(), ItemsAether.moa_egg_item); - itemColors.registerItemColorHandler(new WrappingPaperColorHandler(), ItemsAether.wrapping_paper); - itemColors.registerItemColorHandler(new MoaFeatherColorHandler(), ItemsAether.moa_feather); - - Item.getItemFromBlock(BlocksAether.present).setTileEntityItemStackRenderer(new TileEntityPresentItemRenderer()); - } - - private static void registerEntityRenderers() - { - RenderingRegistry.registerEntityRenderingHandler(EntityFloatingBlock.class, RenderFloatingBlock::new); - RenderingRegistry.registerEntityRenderingHandler(EntityMovingBlock.class, RenderMovingBlock::new); - RenderingRegistry.registerEntityRenderingHandler(EntityDart.class, RenderDart::new); - RenderingRegistry.registerEntityRenderingHandler(EntityBolt.class, RenderBolt::new); - RenderingRegistry.registerEntityRenderingHandler(EntityDaggerfrostSnowball.class, RenderDaggerfrostSnowball::new); - RenderingRegistry.registerEntityRenderingHandler(EntityParachute.class, RenderParachute::new); - - RenderingRegistry.registerEntityRenderingHandler(EntityAechorPlant.class, RenderAechorPlant::new); - RenderingRegistry.registerEntityRenderingHandler(EntityAerbunny.class, RenderAerbunny::new); - RenderingRegistry.registerEntityRenderingHandler(EntityCarrionSprout.class, RenderCarrionSprout::new); - - RenderingRegistry.registerEntityRenderingHandler(EntityFrostpineTotem.class, RenderFrostpineTotem::new); - RenderingRegistry.registerEntityRenderingHandler(EntityKraisith.class, RenderKraisith::new); - RenderingRegistry.registerEntityRenderingHandler(EntityShadeOfArkenzus.class, RenderShadeOfArkenzus::new); - RenderingRegistry.registerEntityRenderingHandler(EntityEtherealWisp.class, RenderEtherealWisp::new); - RenderingRegistry.registerEntityRenderingHandler(EntityFleetingWisp.class, RenderFleetingWisp::new); - RenderingRegistry.registerEntityRenderingHandler(EntitySoaringWisp.class, RenderSoaringWisp::new); - RenderingRegistry.registerEntityRenderingHandler(EntityFangrin.class, RenderFangrin::new); - RenderingRegistry.registerEntityRenderingHandler(EntityNexSpirit.class, RenderNexSpirit::new); - RenderingRegistry.registerEntityRenderingHandler(EntityCockatrice.class, RenderCockatrice::new); - RenderingRegistry.registerEntityRenderingHandler(EntityKirrid.class, RenderKirrid::new); - RenderingRegistry.registerEntityRenderingHandler(EntityMoa.class, RenderMoa::new); - RenderingRegistry.registerEntityRenderingHandler(EntityAerwhale.class, RenderAerwhale::new); - RenderingRegistry.registerEntityRenderingHandler(EntityZephyr.class, RenderZephyr::new); - RenderingRegistry.registerEntityRenderingHandler(EntityTempest.class, RenderTempest::new); - RenderingRegistry.registerEntityRenderingHandler(EntitySwet.class, RenderSwet::new); - RenderingRegistry.registerEntityRenderingHandler(EntityPinkBabySwet.class, RenderPinkBabySwet::new); - RenderingRegistry.registerEntityRenderingHandler(EntityGlitterwing.class, RenderGlitterwing::new); - RenderingRegistry.registerEntityRenderingHandler(EntityEdison.class, RenderEdisonSitting::new); - RenderingRegistry.registerEntityRenderingHandler(EntityTaegore.class, RenderTaegore::new); - RenderingRegistry.registerEntityRenderingHandler(EntityBurrukai.class, RenderBurrukai::new); - RenderingRegistry.registerEntityRenderingHandler(EntityJosediya.class, RenderJosediya::new); - RenderingRegistry.registerEntityRenderingHandler(EntityTivalier.class, RenderTivalier::new); - RenderingRegistry.registerEntityRenderingHandler(EntityMysteriousFigure.class, RenderMysteriousFigure::new); - RenderingRegistry.registerEntityRenderingHandler(EntityVaranys.class, RenderVaranys::new); - RenderingRegistry.registerEntityRenderingHandler(EntitySkyrootLizard.class, RenderSkyrootLizard::new); - RenderingRegistry.registerEntityRenderingHandler(EntitySheepuff.class, RenderSheepuff::new); - RenderingRegistry.registerEntityRenderingHandler(EntityArkeniumGolem.class, RenderArkeniumGolem::new); - - RenderingRegistry.registerEntityRenderingHandler(EntityGlactrix.class, RenderGlactrix::new); - - RenderingRegistry.registerEntityRenderingHandler(EntityNecromancer.class, RenderNecromancer::new); - } - - private static void registerTESRs() - { - ClientRegistry.bindTileEntitySpecialRenderer(TileEntityAltar.class, new TileEntityAltarRenderer()); - ClientRegistry.bindTileEntitySpecialRenderer(TileEntitySkyrootChest.class, new TileEntitySkyrootChestRenderer()); - ClientRegistry.bindTileEntitySpecialRenderer(TileEntitySkyrootSign.class, new TileEntitySkyrootSignRenderer()); - ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMoaEgg.class, new TileEntityMoaEggRenderer()); - ClientRegistry.bindTileEntitySpecialRenderer(TileEntityPresent.class, new TileEntityPresentRenderer()); - ClientRegistry.bindTileEntitySpecialRenderer(TileEntityIcestoneCooler.class, new TileEntityIcestoneCoolerRenderer()); - ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMasonryBench.class, new TileEntityMasonryBenchRenderer()); - ClientRegistry.bindTileEntitySpecialRenderer(TileEntityOutpostCampfire.class, new TileEntityOutpostCampfireRenderer()); - ClientRegistry.bindTileEntitySpecialRenderer(TileEntityTeleporter.class, new TileEntityTeleporterRenderer()); - } -} diff --git a/src/main/java/com/gildedgames/aether/client/renderer/EyeUtil.java b/src/main/java/com/gildedgames/aether/client/renderer/EyeUtil.java deleted file mode 100644 index 19cc03e849..0000000000 --- a/src/main/java/com/gildedgames/aether/client/renderer/EyeUtil.java +++ /dev/null @@ -1,281 +0,0 @@ -package com.gildedgames.aether.client.renderer; - -import com.gildedgames.aether.api.entity.IEntityEyesComponent; -import com.gildedgames.aether.common.entities.util.eyes.IEntityEyesComponentProvider; -import com.gildedgames.aether.common.util.helpers.EntityUtil; -import com.google.common.collect.Lists; -import net.minecraft.client.Minecraft; -import net.minecraft.client.model.ModelBase; -import net.minecraft.client.model.ModelRenderer; -import net.minecraft.client.renderer.GlStateManager; -import net.minecraft.client.renderer.entity.RenderManager; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.util.ResourceLocation; -import net.minecraft.util.math.MathHelper; - -import java.util.List; - -public class EyeUtil -{ - private static final List<ModelRenderer> boxesToUnhide = Lists.newArrayList(); - - public static <T extends ModelBase> void renderEyes(RenderManager renderManager, T model, ModelRenderer eyeModel, - EntityLivingBase entity, float limbSwing, - float limbSwingAmount, float ageInTicks, float netHeadYaw, float headPitch, float scale, ResourceLocation pupilLeft, ResourceLocation pupilRight, - ResourceLocation eyesClosed, boolean eyeTracking) - { - renderEyes(renderManager, model, eyeModel, eyeModel, entity, limbSwing, limbSwingAmount, ageInTicks, netHeadYaw, headPitch, scale, pupilLeft, - pupilRight, - eyesClosed, eyeTracking); - } - - public static boolean modelContains(ModelRenderer model, ModelRenderer part) - { - if (model.childModels != null) - { - for (ModelRenderer child : model.childModels) - { - if (child == part) - { - return true; - } - - if (child.childModels != null && modelContains(child, part)) - { - return true; - } - } - } - - return false; - } - - public static <T extends ModelBase> void renderEyes(RenderManager renderManager, T model, ModelRenderer leftEye, ModelRenderer rightEye, - EntityLivingBase entity, float limbSwing, - float limbSwingAmount, float ageInTicks, float netHeadYaw, float headPitch, float scale, ResourceLocation pupilLeft, ResourceLocation pupilRight, - ResourceLocation eyesClosed, boolean eyeTracking) - { - for (ModelRenderer box : model.boxList) - { - if (!box.isHidden) - { - boxesToUnhide.add(box); - - if (!modelContains(box, leftEye) && !modelContains(box, rightEye)) - { - box.isHidden = true; - } - } - } - - if (entity instanceof IEntityEyesComponentProvider) - { - IEntityEyesComponent info = ((IEntityEyesComponentProvider) entity).getEyes(); - - if (info.getTicksEyesClosed() <= 0) - { - leftEye.isHidden = false; - rightEye.isHidden = false; - - float eyeTranslate = 0.0F; - float eyeCentering = eyeTracking ? 0.03F : 0.0F; - - if (info.lookingAtEntity() != null && eyeTracking) - { - double yawBetweenLookingEntity = EntityUtil.getYawFacingPosition(entity, info.lookingAtEntity().posX, info.lookingAtEntity().posZ); - double yawDif = MathHelper.wrapDegrees(yawBetweenLookingEntity - entity.rotationYawHead); - - double clampYawDif = MathHelper.clamp(yawDif, -45.0, 45.0); - - float percent = (float) ((clampYawDif) / 90.0F); - - eyeTranslate = -0.05F * percent; - } - - GlStateManager.pushMatrix(); - - renderManager.renderEngine.bindTexture(pupilLeft); - - float oldOffsetX = leftEye.offsetX; - float oldOffsetZ = leftEye.offsetZ; - - leftEye.offsetX = -eyeCentering + eyeTranslate; - leftEye.offsetZ = -0.0001F; - - model.render(entity, limbSwing, limbSwingAmount, ageInTicks, netHeadYaw, headPitch, scale); - - leftEye.offsetX = oldOffsetX; - leftEye.offsetZ = oldOffsetZ; - - GlStateManager.popMatrix(); - - GlStateManager.pushMatrix(); - renderManager.renderEngine.bindTexture(pupilRight); - - oldOffsetX = rightEye.offsetX; - oldOffsetZ = rightEye.offsetZ; - - rightEye.offsetX = eyeCentering + eyeTranslate; - rightEye.offsetZ = -0.0001F; - - model.setRotationAngles(limbSwing, limbSwingAmount, ageInTicks, netHeadYaw, headPitch, scale, entity); - model.render(entity, limbSwing, limbSwingAmount, ageInTicks, netHeadYaw, headPitch, scale); - - rightEye.offsetX = oldOffsetX; - rightEye.offsetZ = oldOffsetZ; - - GlStateManager.popMatrix(); - } - else - { - leftEye.isHidden = false; - rightEye.isHidden = false; - - renderManager.renderEngine.bindTexture(eyesClosed); - - GlStateManager.pushMatrix(); - - float oldOffsetZ = rightEye.offsetZ; - float oldOffsetZLeft = leftEye.offsetZ; - - rightEye.offsetZ = -0.0001F; - leftEye.offsetZ = -0.0001F; - - model.render(entity, limbSwing, limbSwingAmount, ageInTicks, netHeadYaw, headPitch, scale); - - rightEye.offsetZ = oldOffsetZ; - leftEye.offsetZ = oldOffsetZLeft; - - GlStateManager.popMatrix(); - } - } - else - { - throw new IllegalStateException("Entity " + entity + " does not implement IEntityEyesComponent"); - } - - for (ModelRenderer box : boxesToUnhide) - { - box.isHidden = false; - } - - boxesToUnhide.clear(); - } - - public static <T extends ModelBaseAether> void renderEyesFast(T model, ModelRendererAether leftEye, ModelRendererAether rightEye, - EntityLivingBase entity, float scale, ResourceLocation pupilLeft, ResourceLocation pupilRight, ResourceLocation eyesClosed, - ResourceLocation beforeTexture, boolean eyeTracking) - { - RenderManager renderManager = Minecraft.getMinecraft().getRenderManager(); - - if (entity instanceof IEntityEyesComponentProvider) - { - IEntityEyesComponent info = ((IEntityEyesComponentProvider) entity).getEyes(); - - if (info.getTicksEyesClosed() <= 0) - { - float eyeTranslate = 0.0F; - float eyeCentering = eyeTracking ? 0.03F : 0.0F; - - if (info.lookingAtEntity() != null && eyeTracking) - { - double yawBetweenLookingEntity = EntityUtil.getYawFacingPosition(entity, info.lookingAtEntity().posX, info.lookingAtEntity().posZ); - double yawDif = MathHelper.wrapDegrees(yawBetweenLookingEntity - entity.rotationYawHead); - - double clampYawDif = MathHelper.clamp(yawDif, -45.0, 45.0); - - float percent = (float) ((clampYawDif) / 90.0F); - - eyeTranslate = -0.05F * percent; - } - - renderManager.renderEngine.bindTexture(pupilLeft); - - float oldOffsetX = leftEye.offsetX; - float oldOffsetZ = leftEye.offsetZ; - - leftEye.offsetX = -eyeCentering + eyeTranslate; - leftEye.offsetZ = -0.0001F; - - leftEye.render(scale, true, false); - - leftEye.offsetX = oldOffsetX; - leftEye.offsetZ = oldOffsetZ; - - renderManager.renderEngine.bindTexture(pupilRight); - - oldOffsetX = rightEye.offsetX; - oldOffsetZ = rightEye.offsetZ; - - rightEye.offsetX = eyeCentering + eyeTranslate; - rightEye.offsetZ = -0.0001F; - - // model.setRotationAngles(limbSwing, limbSwingAmount, ageInTicks, netHeadYaw, headPitch, scale, entity); - - rightEye.render(scale, true, false); - - rightEye.offsetX = oldOffsetX; - rightEye.offsetZ = oldOffsetZ; - } - else - { - renderManager.renderEngine.bindTexture(eyesClosed); - - float oldOffsetZ = rightEye.offsetZ; - float oldOffsetZLeft = leftEye.offsetZ; - - rightEye.offsetZ = -0.0001F; - leftEye.offsetZ = -0.0001F; - - leftEye.render(scale, true, false); - rightEye.render(scale, true, false); - } - - renderManager.renderEngine.bindTexture(beforeTexture); - } - else - { - throw new IllegalStateException("Entity " + entity + " does not implement IEntityEyesComponent"); - } - } - - public static <T extends ModelBaseAether> void renderEyesBasic(RenderManager renderManager, T model, EntityLivingBase entity, float limbSwing, - float limbSwingAmount, float ageInTicks, float netHeadYaw, float headPitch, float scale, - ResourceLocation eyesClosed) - { - if (entity instanceof IEntityEyesComponentProvider) - { - IEntityEyesComponent info = ((IEntityEyesComponentProvider) entity).getEyes(); - - if (info.getTicksEyesClosed() <= 0) - { - GlStateManager.pushMatrix(); - - model.render(entity, limbSwing, limbSwingAmount, ageInTicks, netHeadYaw, headPitch, scale); - - GlStateManager.popMatrix(); - - GlStateManager.pushMatrix(); - - model.setRotationAngles(limbSwing, limbSwingAmount, ageInTicks, netHeadYaw, headPitch, scale, entity); - model.render(entity, limbSwing, limbSwingAmount, ageInTicks, netHeadYaw, headPitch, scale); - - GlStateManager.popMatrix(); - } - else - { - renderManager.renderEngine.bindTexture(eyesClosed); - - GlStateManager.pushMatrix(); - - model.render(entity, limbSwing, limbSwingAmount, ageInTicks, netHeadYaw, headPitch, scale); - - GlStateManager.popMatrix(); - } - } - else - { - throw new IllegalStateException("Entity " + entity + " does not implement IEntityEyesComponent"); - } - } -} diff --git a/src/main/java/com/gildedgames/aether/client/renderer/ModelBaseAether.java b/src/main/java/com/gildedgames/aether/client/renderer/ModelBaseAether.java deleted file mode 100644 index ceb713a8d0..0000000000 --- a/src/main/java/com/gildedgames/aether/client/renderer/ModelBaseAether.java +++ /dev/null @@ -1,29 +0,0 @@ -package com.gildedgames.aether.client.renderer; - -import net.minecraft.client.model.ModelBase; -import net.minecraft.client.model.ModelRenderer; - -public class ModelBaseAether extends ModelBase -{ - private boolean displayState; - - public void setDefaultDisplayState(boolean displayState) - { - this.displayState = displayState; - } - - public boolean getDefaultDisplayState() - { - return this.displayState; - } - - /** - * This is a helper function from Tabula to set the rotation of model parts - */ - public void setRotateAngle(ModelRenderer modelRenderer, float x, float y, float z) - { - modelRenderer.rotateAngleX = x; - modelRenderer.rotateAngleY = y; - modelRenderer.rotateAngleZ = z; - } -} diff --git a/src/main/java/com/gildedgames/aether/client/renderer/ModelRendererAether.java b/src/main/java/com/gildedgames/aether/client/renderer/ModelRendererAether.java deleted file mode 100644 index 562128267e..0000000000 --- a/src/main/java/com/gildedgames/aether/client/renderer/ModelRendererAether.java +++ /dev/null @@ -1,185 +0,0 @@ -package com.gildedgames.aether.client.renderer; - -import net.minecraft.client.model.ModelRenderer; -import net.minecraft.client.renderer.GlStateManager; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; -import org.lwjgl.opengl.GL11; - -public class ModelRendererAether extends ModelRenderer -{ - private final ModelBaseAether model; - - /** Sets a callback to be executed after the model renders itself. Automatically nulled after drawing. **/ - public Runnable callback = null; - - /** Sets whether or not this model will be rendered regardless of the model's global flag. Automatically reset after drawing. **/ - public boolean forceDisplayFlag = false; - - public ModelRendererAether(ModelBaseAether model, String boxNameIn) - { - super(model, boxNameIn); - - this.model = model; - } - - public ModelRendererAether(ModelBaseAether model) - { - super(model); - - this.model = model; - } - - public ModelRendererAether(ModelBaseAether model, int texOffX, int texOffY) - { - super(model, texOffX, texOffY); - - this.model = model; - } - - @Override - @SideOnly(Side.CLIENT) - public void render(float scale) - { - this.render(scale, false, false); - } - - /** - * - * @param scale The scale factor of the model - * @param single Whether or not to render child models - * @param isOnlyChild Whether or not this is the only child of the parent drawing it. Optimization hint - */ - public void render(float scale, boolean single, boolean isOnlyChild) - { - if (!this.isHidden) - { - if (this.showModel) - { - if (!this.compiled) - { - this.compileDisplayList(scale); - } - - boolean displayChildren = !single && this.areChildrenDisplaying(); - - if (!single) - { - if (!displayChildren) - { - if (this.childModels != null) - { - for (ModelRenderer childModel : this.childModels) - { - ((ModelRendererAether) childModel).consumeDisplayFlag(); - } - } - } - } - - if (!isOnlyChild) - { - GL11.glPushMatrix(); - } - - float translateX = this.offsetX + (this.rotationPointX * scale); - float translateY = this.offsetY + (this.rotationPointY * scale); - float translateZ = this.offsetZ + (this.rotationPointZ * scale); - - if (translateX != 0.0F || translateY != 0.0F || translateZ != 0.0F) - { - GlStateManager.translate(translateX, translateY, translateZ); - } - - if (this.rotateAngleZ != 0.0F) - { - GlStateManager.rotate(this.rotateAngleZ * (180F / (float)Math.PI), 0.0F, 0.0F, 1.0F); - } - - if (this.rotateAngleY != 0.0F) - { - GlStateManager.rotate(this.rotateAngleY * (180F / (float)Math.PI), 0.0F, 1.0F, 0.0F); - } - - if (this.rotateAngleX != 0.0F) - { - GlStateManager.rotate(this.rotateAngleX * (180F / (float)Math.PI), 1.0F, 0.0F, 0.0F); - } - - boolean drawSelf = single || this.consumeDisplayFlag(); - - if (drawSelf) - { - GlStateManager.callList(this.displayList); - } - - if (displayChildren && this.childModels != null) - { - for (ModelRenderer childModel : this.childModels) - { - ((ModelRendererAether) childModel).render(scale, false, false); - } - } - - if (!single && this.callback != null) - { - Runnable callback = this.callback; - callback.run(); - - this.callback = null; - } - - if (!isOnlyChild) - { - GL11.glPopMatrix(); - } - } - } - } - - private boolean consumeDisplayFlag() - { - boolean ret = this.model.getDefaultDisplayState() || this.forceDisplayFlag; - - this.forceDisplayFlag = false; - - return ret; - } - - private boolean areChildrenDisplaying() - { - if (this.childModels != null) - { - for (ModelRenderer childModel : this.childModels) - { - if (((ModelRendererAether) childModel).isBranchNecessary()) - { - return true; - } - } - } - - return false; - } - - private boolean isBranchNecessary() - { - if (this.model.getDefaultDisplayState() || this.forceDisplayFlag) - { - return true; - } - - if (this.childModels != null) - { - for (ModelRenderer childModel : this.childModels) - { - if (((ModelRendererAether) childModel).isBranchNecessary()) - { - return true; - } - } - } - - return false; - } -} diff --git a/src/main/java/com/gildedgames/aether/client/renderer/PatronRewardArmorRenderer.java b/src/main/java/com/gildedgames/aether/client/renderer/PatronRewardArmorRenderer.java deleted file mode 100644 index 4f3d252f09..0000000000 --- a/src/main/java/com/gildedgames/aether/client/renderer/PatronRewardArmorRenderer.java +++ /dev/null @@ -1,180 +0,0 @@ -package com.gildedgames.aether.client.renderer; - -import com.gildedgames.aether.api.items.equipment.ItemEquipmentSlot; -import com.gildedgames.aether.api.patron.IPatronRewardRenderer; -import com.gildedgames.aether.api.player.inventory.IInventoryEquipment; -import com.gildedgames.aether.client.models.entities.player.LayerAetherPatronArmor; -import com.gildedgames.aether.client.models.entities.player.LayerAetherPlayerGloves; -import com.gildedgames.aether.client.models.entities.player.LayerArmorProxy; -import com.gildedgames.aether.client.models.entities.player.LayerHeadShadow; -import com.gildedgames.aether.common.capabilities.entity.player.PlayerAether; -import com.gildedgames.aether.common.capabilities.entity.player.modules.PlayerEquipmentModule; -import com.gildedgames.aether.common.patron.armor.PatronRewardArmor; -import com.gildedgames.aether.common.util.helpers.EntityUtil; -import com.gildedgames.orbis.lib.util.InputHelper; -import net.minecraft.client.Minecraft; -import net.minecraft.client.entity.AbstractClientPlayer; -import net.minecraft.client.renderer.GlStateManager; -import net.minecraft.client.renderer.OpenGlHelper; -import net.minecraft.client.renderer.RenderHelper; -import net.minecraft.client.renderer.entity.RenderPlayer; -import net.minecraft.client.renderer.entity.layers.LayerBipedArmor; -import net.minecraft.client.renderer.entity.layers.LayerRenderer; -import net.minecraft.inventory.EntityEquipmentSlot; -import net.minecraft.item.ItemStack; - -import java.util.ArrayList; -import java.util.List; - -public class PatronRewardArmorRenderer implements IPatronRewardRenderer -{ - private final PatronRewardArmor reward; - - private AbstractClientPlayer player; - - private PlayerAether playerAether; - - private RenderPlayer renderPlayer; - - private LayerAetherPatronArmor armorPreviewLayer; - - private LayerAetherPlayerGloves glovePreviewLayer; - - private LayerHeadShadow shadowPreviewLayer; - - private LayerArmorProxy vanillaArmorPreviewLayer; - - public PatronRewardArmorRenderer(PatronRewardArmor reward) - { - this.reward = reward; - } - - private ItemStack getGloves() - { - IInventoryEquipment inventory = this.playerAether.getModule(PlayerEquipmentModule.class).getInventory(); - - final int slot = inventory.getNextEmptySlotForType(ItemEquipmentSlot.HANDWEAR); - - if (slot >= 0) - { - return inventory.getStackInSlot(slot); - } - - return ItemStack.EMPTY; - } - - private void setGloves(ItemStack stack) - { - IInventoryEquipment inventory = this.playerAether.getModule(PlayerEquipmentModule.class).getInventory(); - - inventory.setInventorySlotContents(2, stack); - } - - @Override - public void renderInit() - { - this.player = Minecraft.getMinecraft().player; - this.playerAether = PlayerAether.getPlayer(this.player); - - this.renderPlayer = new RenderPlayer(Minecraft.getMinecraft().getRenderManager(), EntityUtil.getSkin(this.player).equals("slim")); - - List<LayerRenderer<?>> original = new ArrayList<>(this.renderPlayer.layerRenderers); - List<LayerRenderer<?>> updated = new ArrayList<>(); - - for (LayerRenderer<?> i : original) - { - if (i instanceof LayerBipedArmor) - { - updated.add(this.vanillaArmorPreviewLayer = new LayerArmorProxy(this.renderPlayer, (LayerBipedArmor) i)); - } - else - { - updated.add(i); - } - } - - updated.add(this.armorPreviewLayer = new LayerAetherPatronArmor(this.renderPlayer)); - updated.add(this.glovePreviewLayer = new LayerAetherPlayerGloves(this.renderPlayer)); - updated.add(this.shadowPreviewLayer = new LayerHeadShadow(this.renderPlayer)); - - original.clear(); - original.addAll(updated); - } - - @Override - public void renderPreview(int posX, int posY) - { - GlStateManager.pushMatrix(); - - GlStateManager.enableColorMaterial(); - - double mouseX = posX - InputHelper.getMouseX(); - double mouseY = posY - InputHelper.getMouseY() - 42; - - GlStateManager.translate((float) posX, (float) posY, 50.0F); - - GlStateManager.scale(4.0, 4.0, 4.0); - - GlStateManager.rotate(180.0F, 0.0F, 0.0F, 1.0F); - - float f = this.player.renderYawOffset; - float f1 = this.player.rotationYaw; - float f2 = this.player.rotationPitch; - float f3 = this.player.prevRotationYawHead; - float f4 = this.player.rotationYawHead; - - GlStateManager.rotate(135.0F, 0.0F, 1.0F, 0.0F); - - RenderHelper.enableStandardItemLighting(); - - GlStateManager.rotate(-135.0F, 0.0F, 1.0F, 0.0F); - GlStateManager.rotate(-((float) Math.atan(mouseY / 40.0F)) * 20.0F, 1.0F, 0.0F, 0.0F); - - this.player.renderYawOffset = (float) Math.atan(mouseX / 40.0F) * 20.0F; - this.player.rotationYaw = (float) Math.atan(mouseX / 40.0F) * 40.0F; - this.player.rotationPitch = -((float) Math.atan(mouseY / 40.0F)) * 20.0F; - this.player.rotationYawHead = this.player.rotationYaw; - this.player.prevRotationYawHead = this.player.rotationYaw; - - GlStateManager.translate(0.0F, 0.0F, 0.0F); - GlStateManager.scale(-10.0, 10.0, 10.0); - - this.armorPreviewLayer.setPreviewArmor(this.reward); - this.glovePreviewLayer.setPreviewArmor(this.reward); - this.shadowPreviewLayer.setPreviewArmor(this.reward); - this.vanillaArmorPreviewLayer.setPreviewArmor(this.reward); - - this.renderPlayer.doRender(this.player, 0.0D, 0.0D, 0.0D, 0.0F, 1.0F); - - this.player.renderYawOffset = f; - this.player.rotationYaw = f1; - this.player.rotationPitch = f2; - this.player.prevRotationYawHead = f3; - this.player.rotationYawHead = f4; - - RenderHelper.disableStandardItemLighting(); - - GlStateManager.disableRescaleNormal(); - GlStateManager.setActiveTexture(OpenGlHelper.lightmapTexUnit); - GlStateManager.disableTexture2D(); - GlStateManager.setActiveTexture(OpenGlHelper.defaultTexUnit); - - GlStateManager.popMatrix(); - } - - public void setItemStackToSlot(EntityEquipmentSlot slotIn, ItemStack stack) - { - if (slotIn == EntityEquipmentSlot.MAINHAND) - { - this.player.inventory.mainInventory.set(this.player.inventory.currentItem, stack); - } - else if (slotIn == EntityEquipmentSlot.OFFHAND) - { - this.player.inventory.offHandInventory.set(0, stack); - } - else if (slotIn.getSlotType() == EntityEquipmentSlot.Type.ARMOR) - { - this.player.inventory.armorInventory.set(slotIn.getIndex(), stack); - } - } -} diff --git a/src/main/java/com/gildedgames/aether/client/renderer/entities/RenderFloatingBlock.java b/src/main/java/com/gildedgames/aether/client/renderer/entities/RenderFloatingBlock.java deleted file mode 100644 index a5cb7c6252..0000000000 --- a/src/main/java/com/gildedgames/aether/client/renderer/entities/RenderFloatingBlock.java +++ /dev/null @@ -1,96 +0,0 @@ -package com.gildedgames.aether.client.renderer.entities; - -import com.gildedgames.aether.common.entities.blocks.EntityFloatingBlock; -import net.minecraft.block.state.IBlockState; -import net.minecraft.client.Minecraft; -import net.minecraft.client.renderer.*; -import net.minecraft.client.renderer.block.model.IBakedModel; -import net.minecraft.client.renderer.entity.Render; -import net.minecraft.client.renderer.entity.RenderManager; -import net.minecraft.client.renderer.texture.TextureMap; -import net.minecraft.client.renderer.vertex.DefaultVertexFormats; -import net.minecraft.util.EnumBlockRenderType; -import net.minecraft.util.ResourceLocation; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.World; - -public class RenderFloatingBlock extends Render<EntityFloatingBlock> -{ - public RenderFloatingBlock(final RenderManager renderManager) - { - super(renderManager); - - this.shadowSize = 0.5f; - } - - @Override - public void doRender(final EntityFloatingBlock floatingBlock, final double x, final double y, final double z, final float entityYaw, - final float partialTicks) - { - if (floatingBlock.getBlockState() != null) - { - this.bindTexture(TextureMap.LOCATION_BLOCKS_TEXTURE); - - final IBlockState state = floatingBlock.getBlockState(); - - final BlockPos pos = new BlockPos(floatingBlock); - final World world = floatingBlock.getEntityWorld(); - - if (state != world.getBlockState(pos)) - { - if (state.getRenderType() == EnumBlockRenderType.MODEL) - { - RenderHelper.disableStandardItemLighting(); - - GlStateManager.pushMatrix(); - - GlStateManager.translate(x, y, z); - GlStateManager.disableLighting(); - - if (Minecraft.isAmbientOcclusionEnabled()) - { - GlStateManager.shadeModel(7425); - } - else - { - GlStateManager.shadeModel(7424); - } - - final Tessellator tessellator = Tessellator.getInstance(); - - final BufferBuilder worldRenderer = tessellator.getBuffer(); - worldRenderer.begin(7, DefaultVertexFormats.BLOCK); - final int i = pos.getX(); - final int j = pos.getY(); - final int k = pos.getZ(); - - worldRenderer.setTranslation(((float) -i) - 0.5F, -j, ((float) -k) - 0.5F); - - final BlockRendererDispatcher blockRendererDispatcher = Minecraft.getMinecraft().getBlockRendererDispatcher(); - - final IBakedModel model = blockRendererDispatcher.getModelForState(state); - - blockRendererDispatcher.getBlockModelRenderer() - .renderModel(world, model, state, pos, worldRenderer, false); - - worldRenderer.setTranslation(0.0D, 0.0D, 0.0D); - - tessellator.draw(); - - RenderHelper.enableStandardItemLighting(); - - GlStateManager.enableLighting(); - GlStateManager.popMatrix(); - - super.doRender(floatingBlock, x, y, z, entityYaw, partialTicks); - } - } - } - } - - @Override - protected ResourceLocation getEntityTexture(final EntityFloatingBlock entity) - { - return TextureMap.LOCATION_BLOCKS_TEXTURE; - } -} diff --git a/src/main/java/com/gildedgames/aether/client/renderer/entities/RenderMovingBlock.java b/src/main/java/com/gildedgames/aether/client/renderer/entities/RenderMovingBlock.java deleted file mode 100644 index 8cb5f84759..0000000000 --- a/src/main/java/com/gildedgames/aether/client/renderer/entities/RenderMovingBlock.java +++ /dev/null @@ -1,106 +0,0 @@ -package com.gildedgames.aether.client.renderer.entities; - -import com.gildedgames.aether.common.entities.blocks.EntityMovingBlock; -import net.minecraft.block.state.IBlockState; -import net.minecraft.client.Minecraft; -import net.minecraft.client.renderer.*; -import net.minecraft.client.renderer.block.model.IBakedModel; -import net.minecraft.client.renderer.entity.Render; -import net.minecraft.client.renderer.entity.RenderManager; -import net.minecraft.client.renderer.texture.TextureMap; -import net.minecraft.client.renderer.vertex.DefaultVertexFormats; -import net.minecraft.util.EnumBlockRenderType; -import net.minecraft.util.ResourceLocation; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.World; - -public class RenderMovingBlock extends Render<EntityMovingBlock> -{ - public RenderMovingBlock(final RenderManager renderManager) - { - super(renderManager); - - this.shadowSize = 0.5f; - } - - @Override - public void doRender(final EntityMovingBlock entity, final double x, final double y, final double z, final float entityYaw, final float partialTicks) - { - if (entity.getBlockState() != null) - { - this.bindTexture(TextureMap.LOCATION_BLOCKS_TEXTURE); - - final IBlockState state = entity.getBlockState(); - - final BlockPos pos = new BlockPos(0, 256, 0); - - final World world = entity.getEntityWorld(); - - if (state != world.getBlockState(pos)) - { - if (state.getRenderType() == EnumBlockRenderType.MODEL) - { - RenderHelper.disableStandardItemLighting(); - - GlStateManager.pushMatrix(); - - GlStateManager.translate(x, y, z); - - final float scale = 0.9f; - - GlStateManager.scale(scale, scale, scale); - - final float f1 = entity.prevRotationPitch + (entity.rotationPitch - entity.prevRotationPitch) * partialTicks; - final float f2 = entity.prevRotationYaw + (entity.rotationYaw - entity.prevRotationYaw) * partialTicks; - - GlStateManager.rotate(f1, 0.0f, 0.0f, 1.0f); - GlStateManager.rotate(f2, 1.0f, 0.0f, 0.0f); - - GlStateManager.disableLighting(); - - if (Minecraft.isAmbientOcclusionEnabled()) - { - GlStateManager.shadeModel(7425); - } - else - { - GlStateManager.shadeModel(7424); - } - - final Tessellator tessellator = Tessellator.getInstance(); - - final BufferBuilder worldRenderer = tessellator.getBuffer(); - worldRenderer.begin(7, DefaultVertexFormats.BLOCK); - final int i = pos.getX(); - final int j = pos.getY(); - final int k = pos.getZ(); - - worldRenderer.setTranslation(((float) -i) - 0.5F, -j, ((float) -k) - 0.5F); - - final BlockRendererDispatcher blockRendererDispatcher = Minecraft.getMinecraft().getBlockRendererDispatcher(); - - final IBakedModel model = blockRendererDispatcher.getModelForState(state); - - blockRendererDispatcher.getBlockModelRenderer().renderModel(world, model, state, pos, worldRenderer, false); - - worldRenderer.setTranslation(0.0D, 0.0D, 0.0D); - - tessellator.draw(); - - RenderHelper.enableStandardItemLighting(); - - GlStateManager.enableLighting(); - GlStateManager.popMatrix(); - - super.doRender(entity, x, y, z, entityYaw, partialTicks); - } - } - } - } - - @Override - protected ResourceLocation getEntityTexture(final EntityMovingBlock entity) - { - return TextureMap.LOCATION_BLOCKS_TEXTURE; - } -} diff --git a/src/main/java/com/gildedgames/aether/client/renderer/entities/attachments/RenderParachute.java b/src/main/java/com/gildedgames/aether/client/renderer/entities/attachments/RenderParachute.java deleted file mode 100644 index bc944912d9..0000000000 --- a/src/main/java/com/gildedgames/aether/client/renderer/entities/attachments/RenderParachute.java +++ /dev/null @@ -1,76 +0,0 @@ -package com.gildedgames.aether.client.renderer.entities.attachments; - -import com.gildedgames.aether.client.models.entities.attachments.ModelParachute; -import com.gildedgames.aether.common.entities.blocks.EntityParachute; -import net.minecraft.client.renderer.entity.Render; -import net.minecraft.client.renderer.entity.RenderManager; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.util.ResourceLocation; -import org.lwjgl.opengl.GL11; - -public class RenderParachute extends Render<EntityParachute> -{ - - private final ModelParachute model = new ModelParachute(); - - public RenderParachute(RenderManager renderManager) - { - super(renderManager); - - this.shadowSize = 1.0F; - } - - @Override - public void doRender(EntityParachute entity, double x, double y, double z, float entityYaw, float partialTicks) - { - GL11.glPushMatrix(); - GL11.glDisable(GL11.GL_BLEND); - GL11.glDepthMask(true); - GL11.glRotatef(-180F, 0.005F, 0F, 10F); - - float f = 0.0625F; - - if (entity.getParachutingPlayer() != null) - { - EntityPlayer player = entity.getParachutingPlayer(); - float f2 = player.prevRenderYawOffset + ((player.renderYawOffset - player.prevRenderYawOffset)); - GL11.glRotatef(f2, 0F, Math.abs(player.rotationYaw), 0F); - - if (player.isSneaking()) - { - GL11.glTranslatef(0.0f, -1.05f, 0.0f); - } - else - { - GL11.glTranslatef(0.0f, -1.4f, 0.0f); - } - } - - this.renderManager.renderEngine.bindTexture(entity.getType().texture); - - this.model.Canopy_Main.render(f); - this.model.Canopy_2nd_Right.render(f); - this.model.Canopy_2nd_Left.render(f); - this.model.Canopy_3rd_Right.render(f); - this.model.Canopy_3rd_Left.render(f); - this.model.Cord_Front_Left.render(f); - this.model.Cord_Front_Right.render(f); - this.model.Cord_Back_Left.render(f); - this.model.Cord_Back_Right.render(f); - this.model.Cord_Middle_Left.render(f); - this.model.Cord_Middle_Right.render(f); - this.model.Chest_Strap.render(f); - this.model.Shoulder_Strap_Right.render(f); - this.model.Shoulder_Strap_Left.render(f); - - GL11.glDepthMask(false); - GL11.glDisable(GL11.GL_BLEND); - GL11.glPopMatrix(); - } - - @Override - protected ResourceLocation getEntityTexture(EntityParachute entity) - { - return null; - } -} diff --git a/src/main/java/com/gildedgames/aether/client/renderer/entities/companions/RenderCompanion.java b/src/main/java/com/gildedgames/aether/client/renderer/entities/companions/RenderCompanion.java deleted file mode 100644 index 60b80294fd..0000000000 --- a/src/main/java/com/gildedgames/aether/client/renderer/entities/companions/RenderCompanion.java +++ /dev/null @@ -1,92 +0,0 @@ -package com.gildedgames.aether.client.renderer.entities.companions; - -import com.gildedgames.aether.common.entities.companions.EntityCompanion; -import net.minecraft.client.Minecraft; -import net.minecraft.client.model.ModelBase; -import net.minecraft.client.renderer.GlStateManager; -import net.minecraft.client.renderer.entity.RenderLiving; -import net.minecraft.client.renderer.entity.RenderManager; -import net.minecraft.entity.player.EntityPlayer; -import org.lwjgl.opengl.GL11; - -public abstract class RenderCompanion<T extends EntityCompanion> extends RenderLiving<T> -{ - public static final boolean RENDER_FADE_ON_NEAR = true; - - private final double distanceLimit; - - public RenderCompanion(final RenderManager renderManager, final ModelBase model, final float shadowSize, final double distanceLimit) - { - super(renderManager, model, shadowSize); - - this.distanceLimit = distanceLimit; - } - - @Override - protected void renderModel(final T entity, final float limbSwing, final float limbSwingAmount, final float ageInTicks, final float netHeadYaw, - final float headPitch, - final float scaleFactor) - { - final boolean renderOutlines = !entity.isInvisible() || this.renderOutlines; - final boolean isInvisible = !renderOutlines && !entity.isInvisibleToPlayer(Minecraft.getMinecraft().player); - - if (renderOutlines || isInvisible) - { - if (!this.bindEntityTexture(entity)) - { - return; - } - - if (isInvisible) - { - GlStateManager.enableBlendProfile(GlStateManager.Profile.TRANSPARENT_MODEL); - } - - final EntityPlayer owner = entity.getOwner(); - - float opacity = 1.0f; - - if (owner != null && RenderCompanion.RENDER_FADE_ON_NEAR) - { - final double distance = entity.getDistanceSq(owner); - - opacity = (float) Math.min(0.1f + (1.0f * (distance / this.distanceLimit)), 1.0f); - } - - if (opacity < 1.0f) - { - GL11.glPushMatrix(); - - GlStateManager.enableBlend(); - - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - GL11.glColor4f(1.0f, 1.0f, 1.0f, opacity); - } - - this.mainModel.render(entity, limbSwing, limbSwingAmount, ageInTicks, netHeadYaw, headPitch, scaleFactor); - - this.renderExtra(entity, limbSwing, limbSwingAmount, ageInTicks, netHeadYaw, headPitch, scaleFactor, opacity); - - if (opacity < 1.0f) - { - GlStateManager.disableBlend(); - - GL11.glPopMatrix(); - - GL11.glColor4f(1.0f, 1.0f, 1.0f, 1.0f); - } - - if (isInvisible) - { - GlStateManager.disableBlendProfile(GlStateManager.Profile.TRANSPARENT_MODEL); - } - } - } - - protected void renderExtra(final T entity, final float limbSwing, final float limbSwingAmount, final float ageInTicks, final float netHeadYaw, - final float headPitch, - final float scaleFactor, final float opacity) - { - - } -} diff --git a/src/main/java/com/gildedgames/aether/client/renderer/entities/companions/RenderEtherealWisp.java b/src/main/java/com/gildedgames/aether/client/renderer/entities/companions/RenderEtherealWisp.java deleted file mode 100644 index ac330c71dc..0000000000 --- a/src/main/java/com/gildedgames/aether/client/renderer/entities/companions/RenderEtherealWisp.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.gildedgames.aether.client.renderer.entities.companions; - -import com.gildedgames.aether.client.models.entities.companions.ModelWisp; -import com.gildedgames.aether.common.AetherCore; -import com.gildedgames.aether.common.entities.companions.EntityEtherealWisp; -import net.minecraft.client.renderer.entity.RenderManager; -import net.minecraft.util.ResourceLocation; - -public class RenderEtherealWisp extends RenderCompanion<EntityEtherealWisp> -{ - private static final ResourceLocation TEXTURE = AetherCore.getResource("textures/entities/companions/ethereal_wisp.png"); - - public RenderEtherealWisp(RenderManager renderManager) - { - super(renderManager, new ModelWisp(), 0.2F, 1.75D); - } - - @Override - protected ResourceLocation getEntityTexture(EntityEtherealWisp entity) - { - return TEXTURE; - } -} diff --git a/src/main/java/com/gildedgames/aether/client/renderer/entities/companions/RenderFangrin.java b/src/main/java/com/gildedgames/aether/client/renderer/entities/companions/RenderFangrin.java deleted file mode 100644 index 409d3c00f8..0000000000 --- a/src/main/java/com/gildedgames/aether/client/renderer/entities/companions/RenderFangrin.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.gildedgames.aether.client.renderer.entities.companions; - -import com.gildedgames.aether.client.models.entities.companions.ModelFangrin; -import com.gildedgames.aether.common.AetherCore; -import com.gildedgames.aether.common.entities.companions.EntityFangrin; -import net.minecraft.client.renderer.entity.RenderManager; -import net.minecraft.util.ResourceLocation; - -public class RenderFangrin extends RenderCompanion<EntityFangrin> -{ - private static final ResourceLocation TEXTURE = AetherCore.getResource("textures/entities/companions/fangrin.png"); - - public RenderFangrin(RenderManager renderManager) - { - super(renderManager, new ModelFangrin(), 0.4f, 2.5f); - } - - @Override - protected ResourceLocation getEntityTexture(EntityFangrin entity) - { - return TEXTURE; - } -} diff --git a/src/main/java/com/gildedgames/aether/client/renderer/entities/companions/RenderFleetingWisp.java b/src/main/java/com/gildedgames/aether/client/renderer/entities/companions/RenderFleetingWisp.java deleted file mode 100644 index 1ed17a9054..0000000000 --- a/src/main/java/com/gildedgames/aether/client/renderer/entities/companions/RenderFleetingWisp.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.gildedgames.aether.client.renderer.entities.companions; - -import com.gildedgames.aether.client.models.entities.companions.ModelWisp; -import com.gildedgames.aether.common.AetherCore; -import com.gildedgames.aether.common.entities.companions.EntityFleetingWisp; -import net.minecraft.client.renderer.entity.RenderManager; -import net.minecraft.util.ResourceLocation; - -public class RenderFleetingWisp extends RenderCompanion<EntityFleetingWisp> -{ - private static final ResourceLocation TEXTURE = AetherCore.getResource("textures/entities/companions/fleeting_wisp.png"); - - public RenderFleetingWisp(RenderManager renderManager) - { - super(renderManager, new ModelWisp(), 0.2F, 1.75D); - } - - @Override - protected ResourceLocation getEntityTexture(EntityFleetingWisp entity) - { - return TEXTURE; - } -} diff --git a/src/main/java/com/gildedgames/aether/client/renderer/entities/companions/RenderFrostpineTotem.java b/src/main/java/com/gildedgames/aether/client/renderer/entities/companions/RenderFrostpineTotem.java deleted file mode 100644 index 1863d16557..0000000000 --- a/src/main/java/com/gildedgames/aether/client/renderer/entities/companions/RenderFrostpineTotem.java +++ /dev/null @@ -1,31 +0,0 @@ -package com.gildedgames.aether.client.renderer.entities.companions; - -import com.gildedgames.aether.client.models.entities.companions.ModelFrostpineTotem; -import com.gildedgames.aether.common.AetherCore; -import com.gildedgames.aether.common.entities.companions.EntityFrostpineTotem; -import net.minecraft.client.renderer.entity.RenderManager; -import net.minecraft.util.ResourceLocation; -import net.minecraft.util.math.MathHelper; -import org.lwjgl.opengl.GL11; - -public class RenderFrostpineTotem extends RenderCompanion<EntityFrostpineTotem> -{ - private static final ResourceLocation TEXTURE = AetherCore.getResource("textures/entities/companions/frostpine_totem.png"); - - public RenderFrostpineTotem(RenderManager renderManager) - { - super(renderManager, new ModelFrostpineTotem(), 0.5f, 2.5D); - } - - @Override - protected void preRenderCallback(EntityFrostpineTotem entity, float partialTicks) - { - GL11.glTranslatef(0, MathHelper.sin((entity.ticksExisted + partialTicks) / 10.0F) / 10.0f, 0); - } - - @Override - protected ResourceLocation getEntityTexture(EntityFrostpineTotem entity) - { - return TEXTURE; - } -} diff --git a/src/main/java/com/gildedgames/aether/client/renderer/entities/companions/RenderKraisith.java b/src/main/java/com/gildedgames/aether/client/renderer/entities/companions/RenderKraisith.java deleted file mode 100644 index 51d8c37c4c..0000000000 --- a/src/main/java/com/gildedgames/aether/client/renderer/entities/companions/RenderKraisith.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.gildedgames.aether.client.renderer.entities.companions; - -import com.gildedgames.aether.client.models.entities.companions.ModelKraisith; -import com.gildedgames.aether.common.AetherCore; -import com.gildedgames.aether.common.entities.companions.EntityKraisith; -import net.minecraft.client.renderer.entity.RenderManager; -import net.minecraft.util.ResourceLocation; - -public class RenderKraisith extends RenderCompanion<EntityKraisith> -{ - private static final ResourceLocation TEXTURE = AetherCore.getResource("textures/entities/companions/kraisith.png"); - - public RenderKraisith(RenderManager renderManager) - { - super(renderManager, new ModelKraisith(), 0.5f, 1.5D); - } - - @Override - protected ResourceLocation getEntityTexture(EntityKraisith entity) - { - return TEXTURE; - } -} diff --git a/src/main/java/com/gildedgames/aether/client/renderer/entities/companions/RenderNexSpirit.java b/src/main/java/com/gildedgames/aether/client/renderer/entities/companions/RenderNexSpirit.java deleted file mode 100644 index 1654089287..0000000000 --- a/src/main/java/com/gildedgames/aether/client/renderer/entities/companions/RenderNexSpirit.java +++ /dev/null @@ -1,151 +0,0 @@ -package com.gildedgames.aether.client.renderer.entities.companions; - -import com.gildedgames.aether.client.models.entities.companions.ModelNexSpirit; -import com.gildedgames.aether.common.AetherCore; -import com.gildedgames.aether.common.entities.companions.EntityNexSpirit; -import net.minecraft.client.Minecraft; -import net.minecraft.client.renderer.entity.RenderManager; -import net.minecraft.util.ResourceLocation; -import net.minecraft.util.math.MathHelper; -import org.lwjgl.opengl.GL11; - -public class RenderNexSpirit extends RenderCompanion<EntityNexSpirit> -{ - private static final ResourceLocation TEXTURE = AetherCore.getResource("textures/entities/companions/nex_spirit.png"); - - private static final ResourceLocation TEXTURE_BROKEN = AetherCore.getResource("textures/entities/companions/nex_spirit_broken.png"); - - public RenderNexSpirit(RenderManager renderManager) - { - super(renderManager, new ModelNexSpirit(), 0.2f, 1.2D); - } - - @Override - protected void preRenderCallback(EntityNexSpirit entity, float partialTicks) - { - GL11.glScalef(0.65f, 0.65f, 0.65f); - GL11.glTranslatef(0.0f, -0.7f, 0.0f); - - GL11.glTranslatef(0.0f, MathHelper.cos((entity.ticksExisted + partialTicks) / 10f) / 10f, -0.4f); - } - - @Override - protected void renderExtra(EntityNexSpirit entity, float limbSwing, float limbSwingAmount, float ageInTicks, float netHeadYaw, - float headPitch, float scaleFactor, float opacity) - { - float partialTicks = Minecraft.getMinecraft().getRenderPartialTicks(); - - float wave = MathHelper.cos((entity.ticksExisted + partialTicks) / 4); - float wave1 = MathHelper.cos((entity.ticksExisted + partialTicks + 4) / 4); - float wave2 = MathHelper.cos((entity.ticksExisted + partialTicks + 8) / 4) * 1.7f; - - GL11.glDisable(GL11.GL_TEXTURE_2D); - - int color = entity.isBroken() ? 0xc06967 : 0x7db3bf; - - float red = ((color >> 16) & 0xff) / 255F; - float green = ((color >> 8) & 0xff) / 255F; - float blue = (color & 0xff) / 255F; - - GL11.glPushMatrix(); - GL11.glColor4f(red, green, blue, opacity); - - GL11.glScalef(0.1f, 0.07f, 0.1f); - GL11.glTranslatef(0, 0, 2.2f); - - GL11.glBegin(GL11.GL_QUADS); - GL11.glNormal3f(-1, 0, 0); - GL11.glVertex3f(-3.5f, 0, 0); - GL11.glVertex3f(-3.0f + wave, 5, 0); - GL11.glVertex3f(-3.0f + wave, 5, 4); - GL11.glVertex3f(-3.5f, 0, 4); - - GL11.glNormal3f(1, 0, 0); - GL11.glVertex3f(3.5f, 0, 0); - GL11.glVertex3f(3.0f + wave, 5, 0); - GL11.glVertex3f(3.0f + wave, 5, 4); - GL11.glVertex3f(3.5f, 0, 4); - - GL11.glNormal3f(0, 0, -1); - GL11.glVertex3f(3.5f, 0, 0); - GL11.glVertex3f(-3.5f, 0, 0); - GL11.glVertex3f(-3.0f + wave, 5, 0); - GL11.glVertex3f(3.0f + wave, 5, 0); - - GL11.glNormal3f(0, 0, 1); - GL11.glVertex3f(3.5f, 0, 4); - GL11.glVertex3f(-3.5f, 0, 4); - GL11.glVertex3f(-3.0f + wave, 5, 4); - GL11.glVertex3f(3.0f + wave, 5, 4); - GL11.glEnd(); - GL11.glPopMatrix(); - - GL11.glPushMatrix(); - GL11.glScalef(0.1f, 0.07f, 0.1f); - GL11.glTranslatef(0, 5, 2.2f); - - GL11.glBegin(GL11.GL_QUADS); - GL11.glNormal3f(-1, 0, 0); - GL11.glVertex3f(-2.5f + wave1, 5, 1); - GL11.glVertex3f(-3.0f + wave, 0, 0); - GL11.glVertex3f(-3.0f + wave, 0, 4); - GL11.glVertex3f(-2.5f + wave1, 5, 3); - - GL11.glNormal3f(1, 0, 0); - GL11.glVertex3f(2.5f + wave1, 5, 1); - GL11.glVertex3f(3.0f + wave, 0, 0); - GL11.glVertex3f(3.0f + wave, 0, 4); - GL11.glVertex3f(2.5f + wave1, 5, 3); - - GL11.glNormal3f(0, 0, -1); - GL11.glVertex3f(2.5f + wave1, 5, 1); - GL11.glVertex3f(-2.5f + wave1, 5, 1); - GL11.glVertex3f(-3.0f + wave, 0, 0); - GL11.glVertex3f(3.0f + wave, 0, 0); - - GL11.glNormal3f(0, 0, 1); - GL11.glVertex3f(2.5f + wave1, 5, 3); - GL11.glVertex3f(-2.5f + wave1, 5, 3); - GL11.glVertex3f(-3.0f + wave, 0, 4); - GL11.glVertex3f(3.0f + wave, 0, 4); - GL11.glEnd(); - GL11.glPopMatrix(); - - GL11.glPushMatrix(); - GL11.glScalef(0.1f, 0.07f, 0.1f); - GL11.glTranslatef(0, 10, 2.2f); - - GL11.glBegin(GL11.GL_TRIANGLES); - GL11.glNormal3f(-1, 0, 0); - GL11.glVertex3f(-2.5f + wave1, 0, 1); - GL11.glVertex3f(0 + wave2, 8, 2); - GL11.glVertex3f(-2.5f + wave1, 0, 3); - - GL11.glNormal3f(-1, 0, 0); - GL11.glVertex3f(2.5f + wave1, 0, 1); - GL11.glVertex3f(0 + wave2, 8, 2); - GL11.glVertex3f(2.5f + wave1, 0, 3); - - GL11.glNormal3f(0, 0, -1); - GL11.glVertex3f(2.5f + wave1, 0, 1); - GL11.glVertex3f(0 + wave2, 8, 2); - GL11.glVertex3f(-2.5f + wave1, 0, 1); - - GL11.glNormal3f(0, 0, 1); - GL11.glVertex3f(2.5f + wave1, 0, 3); - GL11.glVertex3f(0 + wave2, 8, 2); - GL11.glVertex3f(-2.5f + wave1, 0, 3); - GL11.glEnd(); - - GL11.glEnable(GL11.GL_TEXTURE_2D); - GL11.glPopMatrix(); - - GL11.glColor4f(1.0f, 1.0f, 1.0f, 1.0f); - } - - @Override - protected ResourceLocation getEntityTexture(EntityNexSpirit entity) - { - return entity.isBroken() ? TEXTURE_BROKEN : TEXTURE; - } -} diff --git a/src/main/java/com/gildedgames/aether/client/renderer/entities/companions/RenderPinkBabySwet.java b/src/main/java/com/gildedgames/aether/client/renderer/entities/companions/RenderPinkBabySwet.java deleted file mode 100644 index 502c1b1d2a..0000000000 --- a/src/main/java/com/gildedgames/aether/client/renderer/entities/companions/RenderPinkBabySwet.java +++ /dev/null @@ -1,36 +0,0 @@ -package com.gildedgames.aether.client.renderer.entities.companions; - -import com.gildedgames.aether.common.AetherCore; -import com.gildedgames.aether.common.entities.companions.EntityPinkBabySwet; -import net.minecraft.client.model.ModelSlime; -import net.minecraft.client.renderer.GlStateManager; -import net.minecraft.client.renderer.entity.RenderManager; -import net.minecraft.util.ResourceLocation; - -public class RenderPinkBabySwet extends RenderCompanion<EntityPinkBabySwet> -{ - - private static final ResourceLocation TEXTURE = AetherCore.getResource("textures/entities/companions/pink_baby_swet.png"); - - public RenderPinkBabySwet(final RenderManager renderManager) - { - super(renderManager, new ModelSlime(2), 0.5f, 2f); - } - - @Override - protected void preRenderCallback(final EntityPinkBabySwet entity, final float partialTickTime) - { - GlStateManager.scale(0.999F, 0.999F, 0.999F); - final float f1 = 1.5F; - final float f2 = (entity.prevSquishFactor + (entity.squishFactor - entity.prevSquishFactor) * partialTickTime) / (f1 * 0.5F + 1.0F); - final float f3 = 1.0F / (f2 + 1.0F); - GlStateManager.scale(f3 * f1, 1.0F / f3 * f1, f3 * f1); - } - - @Override - protected ResourceLocation getEntityTexture(final EntityPinkBabySwet entity) - { - return TEXTURE; - } - -} diff --git a/src/main/java/com/gildedgames/aether/client/renderer/entities/companions/RenderShadeOfArkenzus.java b/src/main/java/com/gildedgames/aether/client/renderer/entities/companions/RenderShadeOfArkenzus.java deleted file mode 100644 index ee1c70339a..0000000000 --- a/src/main/java/com/gildedgames/aether/client/renderer/entities/companions/RenderShadeOfArkenzus.java +++ /dev/null @@ -1,35 +0,0 @@ -package com.gildedgames.aether.client.renderer.entities.companions; - -import com.gildedgames.aether.client.models.entities.companions.ModelShadeOfArkenzus; -import com.gildedgames.aether.common.AetherCore; -import com.gildedgames.aether.common.entities.companions.EntityShadeOfArkenzus; -import net.minecraft.client.renderer.entity.RenderManager; -import net.minecraft.util.ResourceLocation; -import org.lwjgl.opengl.GL11; - -public class RenderShadeOfArkenzus extends RenderCompanion<EntityShadeOfArkenzus> -{ - private static final ResourceLocation TEXTURE = AetherCore.getResource("textures/entities/companions/shade_of_arkenzus.png"); - - public RenderShadeOfArkenzus(RenderManager renderManager) - { - super(renderManager, new ModelShadeOfArkenzus(), 0.3f, 1.5D); - } - - @Override - protected void preRenderCallback(EntityShadeOfArkenzus entity, float partialTicks) - { - GL11.glScalef(0.5F, 0.5F, 0.5F); - - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - - super.preRenderCallback(entity, partialTicks); - } - - @Override - protected ResourceLocation getEntityTexture(EntityShadeOfArkenzus entity) - { - return TEXTURE; - } -} diff --git a/src/main/java/com/gildedgames/aether/client/renderer/entities/companions/RenderSoaringWisp.java b/src/main/java/com/gildedgames/aether/client/renderer/entities/companions/RenderSoaringWisp.java deleted file mode 100644 index b109eba23c..0000000000 --- a/src/main/java/com/gildedgames/aether/client/renderer/entities/companions/RenderSoaringWisp.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.gildedgames.aether.client.renderer.entities.companions; - -import com.gildedgames.aether.client.models.entities.companions.ModelWisp; -import com.gildedgames.aether.common.AetherCore; -import com.gildedgames.aether.common.entities.companions.EntitySoaringWisp; -import net.minecraft.client.renderer.entity.RenderManager; -import net.minecraft.util.ResourceLocation; - -public class RenderSoaringWisp extends RenderCompanion<EntitySoaringWisp> -{ - private static final ResourceLocation TEXTURE = AetherCore.getResource("textures/entities/companions/soaring_wisp.png"); - - public RenderSoaringWisp(RenderManager renderManager) - { - super(renderManager, new ModelWisp(), 0.2F, 1.75D); - } - - @Override - protected ResourceLocation getEntityTexture(EntitySoaringWisp entity) - { - return TEXTURE; - } -} diff --git a/src/main/java/com/gildedgames/aether/client/renderer/entities/companions/RenderWisp.java b/src/main/java/com/gildedgames/aether/client/renderer/entities/companions/RenderWisp.java deleted file mode 100644 index a704cf9330..0000000000 --- a/src/main/java/com/gildedgames/aether/client/renderer/entities/companions/RenderWisp.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.gildedgames.aether.client.renderer.entities.companions; - -import com.gildedgames.aether.common.entities.companions.EntityCompanion; -import net.minecraft.client.model.ModelBase; -import net.minecraft.client.renderer.entity.RenderManager; - -public abstract class RenderWisp<T extends EntityCompanion> extends RenderCompanion<T> -{ - public RenderWisp(RenderManager renderManager, ModelBase model, float shadowSize, double distanceLimit) - { - super(renderManager, model, shadowSize, distanceLimit); - } -} diff --git a/src/main/java/com/gildedgames/aether/client/renderer/entities/living/RenderAechorPlant.java b/src/main/java/com/gildedgames/aether/client/renderer/entities/living/RenderAechorPlant.java deleted file mode 100644 index 898054337f..0000000000 --- a/src/main/java/com/gildedgames/aether/client/renderer/entities/living/RenderAechorPlant.java +++ /dev/null @@ -1,80 +0,0 @@ -package com.gildedgames.aether.client.renderer.entities.living; - -import com.gildedgames.aether.client.models.entities.living.ModelAechorPlant; -import com.gildedgames.aether.common.AetherCore; -import com.gildedgames.aether.common.entities.monsters.EntityAechorPlant; -import net.minecraft.client.renderer.entity.RenderLiving; -import net.minecraft.client.renderer.entity.RenderManager; -import net.minecraft.util.ResourceLocation; - -public class RenderAechorPlant extends RenderLiving<EntityAechorPlant> -{ - private static final ResourceLocation texture = AetherCore.getResource("textures/entities/aechor_plant/aechor_plant.png"); - - private final ModelAechorPlant plantModel; - - public RenderAechorPlant(RenderManager manager) - { - super(manager, new ModelAechorPlant(), 0.75f); - - this.plantModel = (ModelAechorPlant) this.mainModel; - } - - @Override - protected void preRenderCallback(EntityAechorPlant plant, float partialTicks) - { - this.plantModel.petal[0].isHidden = !plant.getPetalsPresent()[0]; - this.plantModel.petal[1].isHidden = !plant.getPetalsPresent()[1]; - this.plantModel.petal[2].isHidden = !plant.getPetalsPresent()[2]; - - this.plantModel.petal[3].isHidden = !plant.getPetalsPresent()[3]; - this.plantModel.petal[4].isHidden = !plant.getPetalsPresent()[0]; - this.plantModel.petal[5].isHidden = !plant.getPetalsPresent()[1]; - - this.plantModel.petal[6].isHidden = !plant.getPetalsPresent()[2]; - this.plantModel.petal[7].isHidden = !plant.getPetalsPresent()[3]; - this.plantModel.petal[8].isHidden = !plant.getPetalsPresent()[0]; - this.plantModel.petal[9].isHidden = !plant.getPetalsPresent()[1]; - - float signage = plant.prevSinage + ((plant.sinage - plant.prevSinage) * partialTicks); - - float f1 = (float) Math.sin(signage); - float f3; - - if (plant.hurtTime > 0) - { - f1 *= 0.45F; - f1 -= 0.125F; - f3 = 1.75F + ((float) Math.sin(signage + 2.0F) * 1.5F); - } - else - { - if (plant.canSeePrey()) - { - f1 *= 0.25F; - f3 = 1.75F + ((float) Math.sin(signage + 2.0F) * 1.5F); - } - else - { - f1 *= 0.125F; - f3 = 1.75F; - } - } - - ModelAechorPlant model = (ModelAechorPlant) this.mainModel; - - model.sinage = f1; - model.sinage2 = f3; - - float f2 = 0.625F + ((float) plant.getPlantSize() / 6F); - - model.size = f2; - this.shadowSize = f2 - 0.25F; - } - - @Override - protected ResourceLocation getEntityTexture(EntityAechorPlant entity) - { - return texture; - } -} diff --git a/src/main/java/com/gildedgames/aether/client/renderer/entities/living/RenderAerbunny.java b/src/main/java/com/gildedgames/aether/client/renderer/entities/living/RenderAerbunny.java deleted file mode 100644 index 22ef323823..0000000000 --- a/src/main/java/com/gildedgames/aether/client/renderer/entities/living/RenderAerbunny.java +++ /dev/null @@ -1,53 +0,0 @@ -package com.gildedgames.aether.client.renderer.entities.living; - -import com.gildedgames.aether.client.models.entities.living.ModelAerbunny; -import com.gildedgames.aether.client.renderer.entities.living.layers.LayerAerbunnyCollar; -import com.gildedgames.aether.common.AetherCore; -import com.gildedgames.aether.common.entities.animals.EntityAerbunny; -import net.minecraft.client.renderer.GlStateManager; -import net.minecraft.client.renderer.entity.RenderLiving; -import net.minecraft.client.renderer.entity.RenderManager; -import net.minecraft.client.renderer.entity.layers.LayerWolfCollar; -import net.minecraft.util.ResourceLocation; - -public class RenderAerbunny extends RenderLiving<EntityAerbunny> -{ - private static final ResourceLocation texture = AetherCore.getResource("textures/entities/aerbunny/aerbunny.png"); - - public RenderAerbunny(final RenderManager renderManager) - { - super(renderManager, new ModelAerbunny(), 0.4f); - this.addLayer(new LayerAerbunnyCollar(this)); - } - - protected void rotateAerbunny(final EntityAerbunny entity) - { - if (!entity.onGround && entity.isRiding()) - { - if (entity.motionY > 0.5D) - { - GlStateManager.rotate(15F, -1F, 0.0F, 0.0F); - } - else if (entity.motionY < -0.5D) - { - GlStateManager.rotate(-15F, -1F, 0.0F, 0.0F); - } - else - { - GlStateManager.rotate((float) (entity.motionY * 30D), -1F, 0.0F, 0.0F); - } - } - } - - @Override - protected void preRenderCallback(final EntityAerbunny entity, final float partialTicks) - { - this.rotateAerbunny(entity); - } - - @Override - protected ResourceLocation getEntityTexture(final EntityAerbunny entity) - { - return texture; - } -} diff --git a/src/main/java/com/gildedgames/aether/client/renderer/entities/living/RenderAerwhale.java b/src/main/java/com/gildedgames/aether/client/renderer/entities/living/RenderAerwhale.java deleted file mode 100644 index 0aaa9968cf..0000000000 --- a/src/main/java/com/gildedgames/aether/client/renderer/entities/living/RenderAerwhale.java +++ /dev/null @@ -1,143 +0,0 @@ -package com.gildedgames.aether.client.renderer.entities.living; - -import com.gildedgames.aether.client.models.entities.living.ModelAerwhale; -import com.gildedgames.aether.common.AetherCore; -import com.gildedgames.aether.common.entities.animals.EntityAerwhale; -import net.minecraft.client.renderer.GlStateManager; -import net.minecraft.client.renderer.entity.RenderLiving; -import net.minecraft.client.renderer.entity.RenderManager; -import net.minecraft.entity.EntityLiving; -import net.minecraft.util.ResourceLocation; - -public class RenderAerwhale extends RenderLiving<EntityLiving> -{ - private static final ResourceLocation texture = AetherCore.getResource("textures/entities/aerwhale/aerwhale.png"); - - public RenderAerwhale(RenderManager renderManager) - { - super(renderManager, new ModelAerwhale(), 2.0F); - } - - float partialTicks; - - @Override - protected void preRenderCallback(EntityLiving entity, float f) - { - GlStateManager.scale(2.0D, 2.0D, 2.0D); - GlStateManager.translate(0.0D, 1.0D, 0); - - this.partialTicks = f; - } - - @Override - protected void renderModel(EntityLiving entitylivingbaseIn, float limbSwing, float limbSwingAmount, float ageInTicks, float netHeadYaw, float headPitch, - float scaleFactor) - { - EntityAerwhale aerwhale = (EntityAerwhale) entitylivingbaseIn; - - /*if (aerwhale.getFlightPath() != null) - { - Vec3d pos = entitylivingbaseIn.getPositionVector(); - - Point3d cur = aerwhale.getPoint(this.partialTicks); - - if (Minecraft.getMinecraft().gameSettings.showDebugInfo) - { - GlStateManager.pushMatrix(); - - GlStateManager.translate(-pos.x, pos.y, pos.z); - Point3d last = null, last2 = null; - - float scale = 20f / Minecraft.getMinecraft().player.getDistance(entitylivingbaseIn); - - for (float i = 0; i <= 1.2f; i += 0.03f) - { - float t = i; - - Point3d cur2 = MathUtil.getPoints(aerwhale.getFlightPath(), t); - - if (last != null) - { -// GlUtil.drawLine(last.x, -last.y, -last.z, cur2.x, -cur2.y, -cur2.z, (int) (255 * t), 255 - (int) (t * 255), (int) (t * 122), 255, scale); - } - - last = cur2; - - if (aerwhale.getFutureFlightPath() != null) - { - Point3d cur3 = MathUtil.getPoints(aerwhale.getFutureFlightPath(), t); - - if (last2 != null) - { -// GlUtil.drawLine(last2.x, -last2.y, -last2.z, cur3.x, -cur3.y, -cur3.z, 255 - (int) (t * 255), (int) (255 * t), (int) (t * 122), 255, scale); - } - - last2 = cur3; - } - } - - GlStateManager.popMatrix(); - } - - boolean flag = this.isVisible(entitylivingbaseIn); - boolean flag1 = !flag && !entitylivingbaseIn.isInvisibleToPlayer(Minecraft.getMinecraft().player); - - if (flag || flag1) - { - if (!this.bindEntityTexture(entitylivingbaseIn)) - { - return; - } - - if (flag1) - { - GlStateManager.enableBlendProfile(GlStateManager.Profile.TRANSPARENT_MODEL); - } - - Vec3d last = new Vec3d(cur.x, -cur.y, -cur.z); - - for (int i = 0; i < 3; i++) - { - Point3d v2 = MathUtil.getPoints(aerwhale.getFlightPath(), aerwhale.getTime() - 0.001f ); - Vec3d cur2 = new Vec3d(v2.x, -v2.y, -v2.z); - - GlStateManager.rotate(QuaternionUtil.lookAt(last, cur2)); - - ModelAerwhale model = (ModelAerwhale) this.mainModel; - - if (i == 0) - { - model.Head.render(scaleFactor); - } - else if (i == 1) - { - model.MiddleBody.render(scaleFactor); - } - else - { - GlStateManager.translate(0.0D, -0.1D, 1); - model.BackBody.render(scaleFactor); - } - - last = cur2; - - } - - if (flag1) - { - GlStateManager.disableBlendProfile(GlStateManager.Profile.TRANSPARENT_MODEL); - } - } - } - else - {*/ - super.renderModel(entitylivingbaseIn, limbSwing, limbSwingAmount, ageInTicks, netHeadYaw, headPitch, scaleFactor); -// } - } - - @Override - protected ResourceLocation getEntityTexture(EntityLiving entity) - { - return texture; - } -} diff --git a/src/main/java/com/gildedgames/aether/client/renderer/entities/living/RenderArkeniumGolem.java b/src/main/java/com/gildedgames/aether/client/renderer/entities/living/RenderArkeniumGolem.java deleted file mode 100644 index 449feb5e75..0000000000 --- a/src/main/java/com/gildedgames/aether/client/renderer/entities/living/RenderArkeniumGolem.java +++ /dev/null @@ -1,32 +0,0 @@ -package com.gildedgames.aether.client.renderer.entities.living; - - -import com.gildedgames.aether.client.models.entities.living.ModelArkeniumGolem; -import com.gildedgames.aether.client.renderer.entities.living.layers.LayerGlowing; -import com.gildedgames.aether.common.AetherCore; -import com.gildedgames.aether.common.entities.monsters.EntityArkeniumGolem; -import net.minecraft.client.renderer.entity.RenderLiving; -import net.minecraft.client.renderer.entity.RenderManager; -import net.minecraft.util.ResourceLocation; - -public class RenderArkeniumGolem extends RenderLiving<EntityArkeniumGolem> -{ - - private static final ResourceLocation TEXTURE = AetherCore.getResource("textures/entities/arkenium_golem/arkenium_golem.png"); - - private static final ResourceLocation TEXTURE_MARKINGS = AetherCore.getResource("textures/entities/arkenium_golem/arkenium_golem_eyes.png"); - - public RenderArkeniumGolem(RenderManager manager) - { - super(manager, new ModelArkeniumGolem(), 1.0F); - - this.addLayer(new LayerGlowing<>(this, TEXTURE_MARKINGS)); - } - - @Override - protected ResourceLocation getEntityTexture(EntityArkeniumGolem entity) - { - return TEXTURE; - } - -} diff --git a/src/main/java/com/gildedgames/aether/client/renderer/entities/living/RenderBurrukai.java b/src/main/java/com/gildedgames/aether/client/renderer/entities/living/RenderBurrukai.java deleted file mode 100644 index 987c65a39c..0000000000 --- a/src/main/java/com/gildedgames/aether/client/renderer/entities/living/RenderBurrukai.java +++ /dev/null @@ -1,58 +0,0 @@ -package com.gildedgames.aether.client.renderer.entities.living; - -import com.gildedgames.aether.client.models.entities.living.ModelBurrukai; -import com.gildedgames.aether.client.models.entities.living.ModelBurrukaiBaby; -import com.gildedgames.aether.client.renderer.EyeUtil; -import com.gildedgames.aether.client.renderer.ModelBaseAether; -import com.gildedgames.aether.common.AetherCore; -import com.gildedgames.aether.common.entities.animals.EntityBurrukai; -import net.minecraft.client.Minecraft; -import net.minecraft.client.renderer.GlStateManager; -import net.minecraft.client.renderer.entity.RenderLiving; -import net.minecraft.client.renderer.entity.RenderManager; -import net.minecraft.util.ResourceLocation; - -public class RenderBurrukai extends RenderLivingChild<EntityBurrukai> -{ - private static final ResourceLocation texture = AetherCore.getResource("textures/entities/burrukai/burrukai.png"); - private static final ResourceLocation EYES_CLOSED = AetherCore.getResource("textures/entities/burrukai/burrukai_eyes_closed.png"); - - private static final ResourceLocation texture_baby = AetherCore.getResource("textures/entities/burrukai/babyburrukai.png"); - private static final ResourceLocation EYES_CLOSED_baby = AetherCore.getResource("textures/entities/burrukai/babyburrukai_eyes_closed.png"); - - public RenderBurrukai(RenderManager renderManager) - { - super(renderManager, new ModelBurrukai(), new ModelBurrukaiBaby(), texture, texture_baby, 1.0f); - } - - @Override - protected void preRenderCallback(EntityBurrukai entity, float partialTicks) - { - if (!entity.isChild()) - { - float scale = 1.0F; - - GlStateManager.scale(scale, scale, scale); - GlStateManager.translate(0.0F, 0.0F, -0.8F); - } - } - - @Override - protected void renderModel(EntityBurrukai entity, float limbSwing, float limbSwingAmount, float ageInTicks, float netHeadYaw, float headPitch, float scale) - { - super.renderModel(entity, limbSwing, limbSwingAmount, ageInTicks, netHeadYaw, headPitch, scale); - - ResourceLocation eyes = !entity.isChild() ? EYES_CLOSED : EYES_CLOSED_baby; - - boolean globalInvisible = !entity.isInvisible() || this.renderOutlines; - boolean playerInvisible = !globalInvisible && !entity.isInvisibleToPlayer(Minecraft.getMinecraft().player); - - ModelBaseAether model = (ModelBaseAether) this.mainModel; - - if (globalInvisible || playerInvisible) - { - EyeUtil.renderEyesBasic(this.renderManager, model, entity, limbSwing, limbSwingAmount, ageInTicks, netHeadYaw, headPitch, scale, - eyes); - } - } -} diff --git a/src/main/java/com/gildedgames/aether/client/renderer/entities/living/RenderCarrionSprout.java b/src/main/java/com/gildedgames/aether/client/renderer/entities/living/RenderCarrionSprout.java deleted file mode 100644 index eb7c2800f0..0000000000 --- a/src/main/java/com/gildedgames/aether/client/renderer/entities/living/RenderCarrionSprout.java +++ /dev/null @@ -1,67 +0,0 @@ -package com.gildedgames.aether.client.renderer.entities.living; - -import com.gildedgames.aether.client.models.entities.living.ModelCarrionSproutLodHigh; -import com.gildedgames.aether.client.models.entities.living.ModelCarrionSproutLodLow; -import com.gildedgames.aether.common.AetherCore; -import com.gildedgames.aether.common.entities.animals.EntityCarrionSprout; -import net.minecraft.client.renderer.entity.RenderManager; -import net.minecraft.util.ResourceLocation; -import org.lwjgl.opengl.GL11; - -public class RenderCarrionSprout extends RenderLivingLOD<EntityCarrionSprout> -{ - private static final ResourceLocation TEXTURE = AetherCore.getResource("textures/entities/carrion_sprout/carrion_sprout.png"); - - private final ModelCarrionSproutLodHigh plantModel; - - public RenderCarrionSprout(final RenderManager manager) - { - super(manager, new ModelCarrionSproutLodHigh(), new ModelCarrionSproutLodLow(), 0.75f); - - this.plantModel = (ModelCarrionSproutLodHigh) this.mainModel; - } - - @Override - protected void preRenderCallback(final EntityCarrionSprout sprout, final float partialTicks) - { - final float scale = 0.5f + (sprout.getSproutSize() * 0.1f); - - GL11.glScalef(scale, scale, scale); - - float sinage = sprout.prevSinage + ((sprout.sinage - sprout.prevSinage) * partialTicks); - - float f1 = (float) Math.sin(sinage - 1); - - final float f2; - - if (sprout.hurtTime > 0) - { - f1 *= 0.45F; - f1 -= 0.125F; - - f2 = 1.75F + ((float) Math.sin(sinage + 2.0F) * 1.5F); - } - else - { - f1 *= 0.25F; - f2 = 1.75F + ((float) Math.sin(sinage + 2.0F) * 1.5F); - } - - this.plantModel.sinage = f1; - this.plantModel.sinage2 = f2; - - this.shadowSize = 0.10f * sprout.getSproutSize(); - } - - @Override - protected ResourceLocation getEntityTexture(final EntityCarrionSprout entity) - { - return TEXTURE; - } - - @Override - protected double getHighLODMinDistanceSq() - { - return 8.0f * 8.0f; - } -} diff --git a/src/main/java/com/gildedgames/aether/client/renderer/entities/living/RenderCockatrice.java b/src/main/java/com/gildedgames/aether/client/renderer/entities/living/RenderCockatrice.java deleted file mode 100644 index 78078402ee..0000000000 --- a/src/main/java/com/gildedgames/aether/client/renderer/entities/living/RenderCockatrice.java +++ /dev/null @@ -1,31 +0,0 @@ -package com.gildedgames.aether.client.renderer.entities.living; - -import com.gildedgames.aether.client.models.entities.living.ModelCockatrice; -import com.gildedgames.aether.client.renderer.entities.living.layers.LayerGlowing; -import com.gildedgames.aether.common.AetherCore; -import com.gildedgames.aether.common.entities.monsters.EntityCockatrice; -import net.minecraft.client.renderer.entity.RenderLiving; -import net.minecraft.client.renderer.entity.RenderManager; -import net.minecraft.util.ResourceLocation; - -public class RenderCockatrice extends RenderLiving<EntityCockatrice> -{ - - private static final ResourceLocation TEXTURE = AetherCore.getResource("textures/entities/cockatrice/cockatrice.png"); - - private static final ResourceLocation TEXTURE_MARKINGS = AetherCore.getResource("textures/entities/cockatrice/cockatrice_glow.png"); - - public RenderCockatrice(RenderManager manager) - { - super(manager, new ModelCockatrice(), 0.75F); - - this.addLayer(new LayerGlowing<>(this, TEXTURE_MARKINGS)); - } - - @Override - protected ResourceLocation getEntityTexture(EntityCockatrice entity) - { - return TEXTURE; - } - -} diff --git a/src/main/java/com/gildedgames/aether/client/renderer/entities/living/RenderEdisonSitting.java b/src/main/java/com/gildedgames/aether/client/renderer/entities/living/RenderEdisonSitting.java deleted file mode 100644 index 13aba7f325..0000000000 --- a/src/main/java/com/gildedgames/aether/client/renderer/entities/living/RenderEdisonSitting.java +++ /dev/null @@ -1,35 +0,0 @@ -package com.gildedgames.aether.client.renderer.entities.living; - -import com.gildedgames.aether.api.entity.EntityCharacter; -import com.gildedgames.aether.client.models.entities.living.ModelEdisonSitting; -import com.gildedgames.aether.client.renderer.EyeUtil; -import com.gildedgames.aether.common.AetherCore; -import net.minecraft.client.Minecraft; -import net.minecraft.client.renderer.entity.RenderLiving; -import net.minecraft.client.renderer.entity.RenderManager; -import net.minecraft.util.ResourceLocation; - -public class RenderEdisonSitting extends RenderLiving<EntityCharacter> -{ - - private static final ResourceLocation TEXTURE = AetherCore.getResource("textures/entities/npcs/edison/eddy.png"); - - private static final ResourceLocation EYES_CLOSED = AetherCore.getResource("textures/entities/npcs/edison/edison_eyes_closed.png"); - - private static final ResourceLocation PUPIL_LEFT = AetherCore.getResource("textures/entities/npcs/edison/edison_pupil_left.png"); - - private static final ResourceLocation PUPIL_RIGHT = AetherCore.getResource("textures/entities/npcs/edison/edison_pupil_right.png"); - - public RenderEdisonSitting(final RenderManager renderManager) - { - super(renderManager, new ModelEdisonSitting(), 0.5f); - } - - @Override - protected ResourceLocation getEntityTexture(final EntityCharacter entity) - { - return TEXTURE; - } - - -} diff --git a/src/main/java/com/gildedgames/aether/client/renderer/entities/living/RenderGlactrix.java b/src/main/java/com/gildedgames/aether/client/renderer/entities/living/RenderGlactrix.java deleted file mode 100644 index 73405e52ea..0000000000 --- a/src/main/java/com/gildedgames/aether/client/renderer/entities/living/RenderGlactrix.java +++ /dev/null @@ -1,56 +0,0 @@ -package com.gildedgames.aether.client.renderer.entities.living; - -import com.gildedgames.aether.client.models.entities.living.ModelGlactrix; -import com.gildedgames.aether.client.renderer.entities.living.layers.LayerGlactrixCrystals; -import com.gildedgames.aether.common.AetherCore; -import com.gildedgames.aether.common.entities.animals.EntityGlactrix; -import net.minecraft.client.renderer.GlStateManager; -import net.minecraft.client.renderer.entity.RenderLiving; -import net.minecraft.client.renderer.entity.RenderManager; -import net.minecraft.util.ResourceLocation; -import net.minecraft.util.math.MathHelper; - -public class RenderGlactrix extends RenderLiving<EntityGlactrix> -{ - private static final ResourceLocation TEXTURE = AetherCore.getResource("textures/entities/glactrix/glactrix.png"); - - public RenderGlactrix(RenderManager renderManager) - { - super(renderManager, new ModelGlactrix(), 0.4f); - - this.addLayer(new LayerGlactrixCrystals(this)); - } - - @Override - protected void preRenderCallback(EntityGlactrix entity, float partialTicks) - { - float scale = 1F; - - GlStateManager.scale(scale, scale, scale); - } - - @Override - protected ResourceLocation getEntityTexture(EntityGlactrix entity) - { - return TEXTURE; - } - - @Override - protected void renderModel(EntityGlactrix entity, float limbSwing, float limbSwingAmount, float ageInTicks, float netHeadYaw, float headPitch, float scale) - { - GlStateManager.pushMatrix(); - - if (entity.getIsToppled()) - { - GlStateManager.rotate(180F , 0, 0, 1F); - GlStateManager.translate(0, -2.3F, 0); - GlStateManager.rotate(MathHelper.cos((ageInTicks % 100) / 4) * 10, 0, 0F, 1.0F); - GlStateManager.rotate((ageInTicks % 100) / 100f * 360, 0, 1.0F, 0F); - } - - super.renderModel(entity, limbSwing, limbSwingAmount, ageInTicks, netHeadYaw, headPitch, scale); - - GlStateManager.popMatrix(); - } - -} diff --git a/src/main/java/com/gildedgames/aether/client/renderer/entities/living/RenderGlitterwing.java b/src/main/java/com/gildedgames/aether/client/renderer/entities/living/RenderGlitterwing.java deleted file mode 100644 index e992093216..0000000000 --- a/src/main/java/com/gildedgames/aether/client/renderer/entities/living/RenderGlitterwing.java +++ /dev/null @@ -1,31 +0,0 @@ -package com.gildedgames.aether.client.renderer.entities.living; - -import com.gildedgames.aether.client.models.entities.living.ModelGlitterwing; -import com.gildedgames.aether.common.AetherCore; -import com.gildedgames.aether.common.entities.animals.EntityGlitterwing; -import net.minecraft.client.renderer.GlStateManager; -import net.minecraft.client.renderer.entity.RenderLiving; -import net.minecraft.client.renderer.entity.RenderManager; -import net.minecraft.util.ResourceLocation; - -public class RenderGlitterwing extends RenderLiving<EntityGlitterwing> -{ - private static final ResourceLocation texture = AetherCore.getResource("textures/entities/glitterwing/glitterwing.png"); - - public RenderGlitterwing(RenderManager renderManager) - { - super(renderManager, new ModelGlitterwing(), 0.3f); - } - - @Override - protected void preRenderCallback(EntityGlitterwing entity, float partialTicks) - { - GlStateManager.scale(0.5D, 0.5D, 0.5D); - } - - @Override - protected ResourceLocation getEntityTexture(EntityGlitterwing entity) - { - return texture; - } -} diff --git a/src/main/java/com/gildedgames/aether/client/renderer/entities/living/RenderJosediya.java b/src/main/java/com/gildedgames/aether/client/renderer/entities/living/RenderJosediya.java deleted file mode 100644 index 2c00b24b20..0000000000 --- a/src/main/java/com/gildedgames/aether/client/renderer/entities/living/RenderJosediya.java +++ /dev/null @@ -1,51 +0,0 @@ -package com.gildedgames.aether.client.renderer.entities.living; - -import com.gildedgames.aether.client.models.entities.living.ModelJosediya; -import com.gildedgames.aether.client.renderer.EyeUtil; -import com.gildedgames.aether.common.AetherCore; -import com.gildedgames.aether.common.entities.characters.EntityJosediya; -import net.minecraft.client.Minecraft; -import net.minecraft.client.renderer.entity.RenderLiving; -import net.minecraft.client.renderer.entity.RenderManager; -import net.minecraft.util.ResourceLocation; - -public class RenderJosediya extends RenderLiving<EntityJosediya> -{ - - private static final ResourceLocation TEXTURE = AetherCore.getResource("textures/entities/npcs/josediya/josediya.png"); - - private static final ResourceLocation EYES_CLOSED = AetherCore.getResource("textures/entities/npcs/josediya/josediya_eyes_closed.png"); - - private static final ResourceLocation PUPIL_LEFT = AetherCore.getResource("textures/entities/npcs/josediya/josediya_pupil_left.png"); - - private static final ResourceLocation PUPIL_RIGHT = AetherCore.getResource("textures/entities/npcs/josediya/josediya_pupil_right.png"); - - public RenderJosediya(final RenderManager renderManager) - { - super(renderManager, new ModelJosediya(), 0.5f); - } - - @Override - protected ResourceLocation getEntityTexture(final EntityJosediya entity) - { - return TEXTURE; - } - - @Override - protected void renderModel(EntityJosediya entity, float limbSwing, float limbSwingAmount, float ageInTicks, float netHeadYaw, float headPitch, float scale) - { - super.renderModel(entity, limbSwing, limbSwingAmount, ageInTicks, netHeadYaw, headPitch, scale); - - ModelJosediya model = (ModelJosediya) this.mainModel; - - boolean globalInvisible = !entity.isInvisible() || this.renderOutlines; - boolean playerInvisible = !globalInvisible && !entity.isInvisibleToPlayer(Minecraft.getMinecraft().player); - - if (globalInvisible || playerInvisible) - { - EyeUtil.renderEyes(this.renderManager, model, model.head1, entity, limbSwing, limbSwingAmount, ageInTicks, netHeadYaw, headPitch, scale, PUPIL_LEFT, - PUPIL_RIGHT, EYES_CLOSED, true); - } - } - -} diff --git a/src/main/java/com/gildedgames/aether/client/renderer/entities/living/RenderKirrid.java b/src/main/java/com/gildedgames/aether/client/renderer/entities/living/RenderKirrid.java deleted file mode 100644 index 5041fe7388..0000000000 --- a/src/main/java/com/gildedgames/aether/client/renderer/entities/living/RenderKirrid.java +++ /dev/null @@ -1,48 +0,0 @@ -package com.gildedgames.aether.client.renderer.entities.living; - -import com.gildedgames.aether.client.models.entities.living.ModelKirrid; -import com.gildedgames.aether.client.models.entities.living.ModelKirridBaby; -import com.gildedgames.aether.client.renderer.EyeUtil; -import com.gildedgames.aether.client.renderer.ModelBaseAether; -import com.gildedgames.aether.client.renderer.entities.living.layers.LayerKirridWool; -import com.gildedgames.aether.common.AetherCore; -import com.gildedgames.aether.common.entities.animals.EntityKirrid; -import net.minecraft.client.Minecraft; -import net.minecraft.client.renderer.entity.RenderLiving; -import net.minecraft.client.renderer.entity.RenderManager; -import net.minecraft.util.ResourceLocation; - -public class RenderKirrid extends RenderLivingChild<EntityKirrid> -{ - private static final ResourceLocation texture = AetherCore.getResource("textures/entities/kirrid/kirrid.png"); - private static final ResourceLocation EYES_CLOSED = AetherCore.getResource("textures/entities/kirrid/eyes_closed.png"); - - private static final ResourceLocation texture_baby = AetherCore.getResource("textures/entities/kirrid/babykirrid.png"); - private static final ResourceLocation EYES_CLOSED_baby = AetherCore.getResource("textures/entities/kirrid/babykirrid_eyes_closed.png"); - - public RenderKirrid(RenderManager renderManager) - { - super(renderManager, new ModelKirrid(), new ModelKirridBaby(), texture, texture_baby, 0.75f); - - this.addLayer(new LayerKirridWool(this)); - } - - @Override - protected void renderModel(EntityKirrid entity, float limbSwing, float limbSwingAmount, float ageInTicks, float netHeadYaw, float headPitch, float scale) - { - super.renderModel(entity, limbSwing, limbSwingAmount, ageInTicks, netHeadYaw, headPitch, scale); - - ResourceLocation eyes = !entity.isChild() ? EYES_CLOSED : EYES_CLOSED_baby; - - boolean globalInvisible = !entity.isInvisible() || this.renderOutlines; - boolean playerInvisible = !globalInvisible && !entity.isInvisibleToPlayer(Minecraft.getMinecraft().player); - - ModelBaseAether model = (ModelBaseAether) this.mainModel; - - if (globalInvisible || playerInvisible) - { - EyeUtil.renderEyesBasic(this.renderManager, model, entity, limbSwing, limbSwingAmount, ageInTicks, netHeadYaw, headPitch, scale, - eyes); - } - } -} diff --git a/src/main/java/com/gildedgames/aether/client/renderer/entities/living/RenderLivingChild.java b/src/main/java/com/gildedgames/aether/client/renderer/entities/living/RenderLivingChild.java deleted file mode 100644 index fe014d0e96..0000000000 --- a/src/main/java/com/gildedgames/aether/client/renderer/entities/living/RenderLivingChild.java +++ /dev/null @@ -1,45 +0,0 @@ -package com.gildedgames.aether.client.renderer.entities.living; - -import net.minecraft.client.model.ModelBase; -import net.minecraft.client.renderer.entity.RenderLiving; -import net.minecraft.client.renderer.entity.RenderManager; -import net.minecraft.client.renderer.entity.layers.LayerRenderer; -import net.minecraft.entity.EntityLiving; -import net.minecraft.util.ResourceLocation; - -public abstract class RenderLivingChild<T extends EntityLiving> extends RenderLiving<T> -{ - private final ModelBase childModel; - - private final ResourceLocation adultTexture, childTexture; - - public RenderLivingChild(RenderManager rendermanagerIn, ModelBase adultModel, ModelBase childModel, ResourceLocation adultTexture, ResourceLocation childTexture, float shadowsizeIn) - { - super(rendermanagerIn, adultModel, shadowsizeIn); - - this.childModel = childModel; - this.adultTexture = adultTexture; - this.childTexture = childTexture; - } - - @Override - protected ResourceLocation getEntityTexture(T entity) - { - return !entity.isChild() ? adultTexture : childTexture; - } - - @Override - public void doRender(T entity, double x, double y, double z, float entityYaw, float partialTicks) - { - ModelBase prev = this.mainModel; - - if (entity.isChild()) - { - this.mainModel = this.childModel; - } - - super.doRender(entity, x, y, z, entityYaw, partialTicks); - - this.mainModel = prev; - } -} diff --git a/src/main/java/com/gildedgames/aether/client/renderer/entities/living/RenderLivingLOD.java b/src/main/java/com/gildedgames/aether/client/renderer/entities/living/RenderLivingLOD.java deleted file mode 100644 index 36ae911da8..0000000000 --- a/src/main/java/com/gildedgames/aether/client/renderer/entities/living/RenderLivingLOD.java +++ /dev/null @@ -1,51 +0,0 @@ -package com.gildedgames.aether.client.renderer.entities.living; - -import net.minecraft.client.Minecraft; -import net.minecraft.client.model.ModelBase; -import net.minecraft.client.renderer.entity.RenderLiving; -import net.minecraft.client.renderer.entity.RenderManager; -import net.minecraft.entity.EntityLiving; - -public abstract class RenderLivingLOD<T extends EntityLiving> extends RenderLiving<T> -{ - private final ModelBase lowDetailModel; - - protected boolean isLowDetail; - - public RenderLivingLOD(RenderManager rendermanagerIn, ModelBase highDetailModel, ModelBase lowDetailModel, float shadowsizeIn) - { - super(rendermanagerIn, highDetailModel, shadowsizeIn); - - this.lowDetailModel = lowDetailModel; - } - - @Override - public void doRender(T entity, double x, double y, double z, float entityYaw, float partialTicks) - { - boolean forceLowDetail = false; - boolean lowDetail = forceLowDetail || Minecraft.getMinecraft().player.getDistanceSq(entity) > this.getHighLODMinDistanceSq(); - - this.isLowDetail = lowDetail; - - ModelBase prev = this.mainModel; - - if (lowDetail) - { - this.mainModel = this.lowDetailModel; - } - - super.doRender(entity, x, y, z, entityYaw, partialTicks); - - this.mainModel = prev; - - this.isLowDetail = false; - } - - /** - * @return The minimum distance needed to use the high level of detail model. - */ - protected double getHighLODMinDistanceSq() - { - return 30.0 * 30.0; - } -} diff --git a/src/main/java/com/gildedgames/aether/client/renderer/entities/living/RenderLivingLODChild.java b/src/main/java/com/gildedgames/aether/client/renderer/entities/living/RenderLivingLODChild.java deleted file mode 100644 index 4171559fdc..0000000000 --- a/src/main/java/com/gildedgames/aether/client/renderer/entities/living/RenderLivingLODChild.java +++ /dev/null @@ -1,59 +0,0 @@ -package com.gildedgames.aether.client.renderer.entities.living; - -import net.minecraft.client.Minecraft; -import net.minecraft.client.model.ModelBase; -import net.minecraft.client.renderer.entity.RenderLiving; -import net.minecraft.client.renderer.entity.RenderManager; -import net.minecraft.entity.EntityLiving; - -public abstract class RenderLivingLODChild<T extends EntityLiving> extends RenderLiving<T> -{ - private final ModelBase lowDetailModel, childModel; - - protected boolean isLowDetail; - - public RenderLivingLODChild(RenderManager rendermanagerIn, ModelBase highDetailModel, ModelBase lowDetailModel, ModelBase childModel, float shadowsizeIn) - { - super(rendermanagerIn, highDetailModel, shadowsizeIn); - - this.lowDetailModel = lowDetailModel; - this.childModel = childModel; - } - - @Override - public void doRender(T entity, double x, double y, double z, float entityYaw, float partialTicks) - { - boolean forceLowDetail = false; - boolean lowDetail = forceLowDetail || Minecraft.getMinecraft().player.getDistanceSq(entity) > this.getHighLODMinDistanceSq(); - - this.isLowDetail = lowDetail; - - ModelBase prev = this.mainModel; - - if (!entity.isChild()) - { - if (lowDetail) - { - this.mainModel = this.lowDetailModel; - } - } - else - { - this.mainModel = this.childModel; - } - - super.doRender(entity, x, y, z, entityYaw, partialTicks); - - this.mainModel = prev; - - this.isLowDetail = false; - } - - /** - * @return The minimum distance needed to use the high level of detail model. - */ - protected double getHighLODMinDistanceSq() - { - return 30.0 * 30.0; - } -} diff --git a/src/main/java/com/gildedgames/aether/client/renderer/entities/living/RenderMoa.java b/src/main/java/com/gildedgames/aether/client/renderer/entities/living/RenderMoa.java deleted file mode 100644 index b33fad5f91..0000000000 --- a/src/main/java/com/gildedgames/aether/client/renderer/entities/living/RenderMoa.java +++ /dev/null @@ -1,512 +0,0 @@ -package com.gildedgames.aether.client.renderer.entities.living; - -import com.gildedgames.aether.client.models.entities.living.ModelMoaBaby; -import com.gildedgames.aether.client.models.entities.living.ModelMoaBase; -import com.gildedgames.aether.client.models.entities.living.ModelMoaLodHigh; -import com.gildedgames.aether.client.models.entities.living.ModelMoaLodLow; -import com.gildedgames.aether.client.renderer.EyeUtil; -import com.gildedgames.aether.client.util.SpriteGeneric; -import com.gildedgames.aether.common.AetherCore; -import com.gildedgames.aether.common.entities.animals.EntityMoa; -import com.gildedgames.aether.common.entities.genes.AnimalGender; -import com.gildedgames.aether.common.entities.genes.moa.MoaGenePool; -import com.gildedgames.aether.common.items.other.ItemMoaEgg; -import net.minecraft.client.Minecraft; -import net.minecraft.client.renderer.BufferBuilder; -import net.minecraft.client.renderer.GlStateManager; -import net.minecraft.client.renderer.Tessellator; -import net.minecraft.client.renderer.entity.RenderManager; -import net.minecraft.client.renderer.texture.TextureAtlasSprite; -import net.minecraft.client.renderer.vertex.DefaultVertexFormats; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.util.ResourceLocation; -import org.lwjgl.opengl.GL11; - -import java.awt.*; - -public class RenderMoa extends RenderLivingLODChild<EntityMoa> -{ - - private static final ResourceLocation AECHOR_PETAL_TEXTURE = AetherCore.getResource("textures/items/consumables/aechor_petal.png"); - - private static final SpriteGeneric SPRITE = new SpriteGeneric("aechor_petal.png", 16, 16); - - private static final ResourceLocation CURVED_BODY = AetherCore.getResource("textures/entities/moa/curved_main.png"); - private static final ResourceLocation CURVED_BODY_baby = AetherCore.getResource("textures/entities/moa/baby/baby_curved_main.png"); - - private static final ResourceLocation CURVED_BODY_HIGHLIGHT = AetherCore.getResource("textures/entities/moa/curved_highlight.png"); - private static final ResourceLocation CURVED_BODY_HIGHLIGHT_baby = AetherCore.getResource("textures/entities/moa/baby/baby_curved_highlight.png"); - - private static final ResourceLocation FLAT_BODY = AetherCore.getResource("textures/entities/moa/flat_main.png"); - private static final ResourceLocation FLAT_BODY_baby = AetherCore.getResource("textures/entities/moa/baby/baby_flat_main.png"); - - private static final ResourceLocation FLAT_BODY_HIGHLIGHT = AetherCore.getResource("textures/entities/moa/flat_highlight.png"); - private static final ResourceLocation FLAT_BODY_HIGHLIGHT_baby = AetherCore.getResource("textures/entities/moa/baby/baby_flat_highlight.png"); - - private static final ResourceLocation POINTED_BODY = AetherCore.getResource("textures/entities/moa/pointed_main.png"); - private static final ResourceLocation POINTED_BODY_baby = AetherCore.getResource("textures/entities/moa/baby/baby_pointed_main.png"); - - private static final ResourceLocation POINTED_BODY_HIGHLIGHT = AetherCore.getResource("textures/entities/moa/pointed_highlight.png"); - private static final ResourceLocation POINTED_BODY_HIGHLIGHT_baby = AetherCore.getResource("textures/entities/moa/baby/baby_pointed_highlight.png"); - - private static final ResourceLocation BEAK = AetherCore.getResource("textures/entities/moa/keratin.png"); - private static final ResourceLocation BEAK_baby = AetherCore.getResource("textures/entities/moa/baby/baby_keratin.png"); - - private static final ResourceLocation EYES = AetherCore.getResource("textures/entities/moa/eyes.png"); - private static final ResourceLocation EYES_baby = AetherCore.getResource("textures/entities/moa/baby/baby_eyes.png"); - - private static final ResourceLocation SADDLE = AetherCore.getResource("textures/entities/moa/saddle.png"); - - private static final ResourceLocation EYES_CLOSED = AetherCore.getResource("textures/entities/moa/eyes_closed.png"); - private static final ResourceLocation EYES_CLOSED_baby = AetherCore.getResource("textures/entities/moa/baby/baby_eyes_closed.png"); - - private static final ResourceLocation PUPIL_LEFT = AetherCore.getResource("textures/entities/moa/pupil_left.png"); - private static final ResourceLocation PUPIL_LEFT_baby = AetherCore.getResource("textures/entities/moa/baby/baby_pupil_left.png"); - - private static final ResourceLocation PUPIL_RIGHT = AetherCore.getResource("textures/entities/moa/pupil_right.png"); - private static final ResourceLocation PUPIL_RIGHT_baby = AetherCore.getResource("textures/entities/moa/baby/baby_pupil_right.png"); - - public RenderMoa(RenderManager manager) - { - super(manager, new ModelMoaLodHigh(), new ModelMoaLodLow(), new ModelMoaBaby(), 0.5F); - - SPRITE.initSprite(16, 16, 0, 0, false); - } - - @Override - protected void preRenderCallback(EntityMoa entityliving, float partialTicks) - { - float moaScale = 0.85f; - moaScale += entityliving.isGroupLeader() ? 0.15F : 0.0F; - moaScale += entityliving.isChild() && entityliving.getFoodEaten() >= 2 ? 0.25F : 0.0F; - - GL11.glScalef(moaScale, moaScale, moaScale); - } - - private void renderMoa(EntityLivingBase entity, float limbSwing, float limbSwingAmount, float ageInTicks, float netHeadYaw, float headPitch, float scale) - { - if (!entity.isChild()) - { - this.renderAdult(entity, limbSwing, limbSwingAmount, ageInTicks, netHeadYaw, headPitch, scale); - } - else - { - this.renderChild(entity, limbSwing, limbSwingAmount, ageInTicks, netHeadYaw, headPitch, scale); - } - } - - private void renderAdult(EntityLivingBase entity, float limbSwing, float limbSwingAmount, float ageInTicks, float netHeadYaw, float headPitch, float scale) - { - EntityMoa moa = ((EntityMoa) entity); - - MoaGenePool genePool = moa.getGenePool(); - - if (genePool == null || genePool.getFeathers() == null) - { - return; - } - - Color base = genePool.getFeathers().gene().data(); - - float[] hsb = new float[3]; - - Color.RGBtoHSB(base.getRed(), base.getGreen(), base.getBlue(), hsb); - Color highlight = genePool.getFeathers().gene().data().brighter().brighter(); - - GlStateManager.color(base.getRed() / 255f, base.getGreen() / 255f, base.getBlue() / 255f); - - ModelMoaBase model = (ModelMoaBase) this.mainModel; - model.LegL2.isHidden = true; - model.LegR2.isHidden = true; - model.JawMain.isHidden = true; - model.HeadBeakMain.isHidden = true; - - if (!this.isLowDetail) - { - Color eyesC = genePool.getEyes().gene().data(); - - // Re-render the head with our eyes texture and then draw the pupils - model.HeadMain.callback = () -> { - GlStateManager.color(eyesC.getRed() / 255f, eyesC.getGreen() / 255f, eyesC.getBlue() / 255f); - - this.renderManager.renderEngine.bindTexture(EYES); - - model.HeadFront.render(scale, true, false); - - GlStateManager.color(base.getRed() / 255f, base.getGreen() / 255f, base.getBlue() / 255f); - - EyeUtil.renderEyesFast(model, model.HeadFront, model.HeadFront, entity, - scale, PUPIL_LEFT, PUPIL_RIGHT, EYES_CLOSED, EYES, false); - - if (genePool.getMarks() != null) - { - final String mark = genePool.getMarks().gene().getResourceName(); - - if (mark.equals("curved")) - { - this.renderManager.renderEngine.bindTexture(CURVED_BODY); - } - else if (mark.equals("flat")) - { - this.renderManager.renderEngine.bindTexture(FLAT_BODY); - } - else - { - this.renderManager.renderEngine.bindTexture(POINTED_BODY); - } - } - }; - } - - if (genePool.getMarks() != null) - { - final String mark = genePool.getMarks().gene().getResourceName(); - - if (mark.equals("curved")) - { - this.renderManager.renderEngine.bindTexture(CURVED_BODY); - } - else if (mark.equals("flat")) - { - this.renderManager.renderEngine.bindTexture(FLAT_BODY); - } - else - { - this.renderManager.renderEngine.bindTexture(POINTED_BODY); - } - } - model.render(entity, limbSwing, limbSwingAmount, ageInTicks, netHeadYaw, headPitch, scale); - - model.LegL2.isHidden = false; - model.LegR2.isHidden = false; - model.JawMain.isHidden = false; - model.HeadBeakMain.isHidden = false; - - if (genePool.getMarks() != null) - { - final String mark = genePool.getMarks().gene().getResourceName(); - - if (mark.equals("curved")) - { - this.renderManager.renderEngine.bindTexture(CURVED_BODY_HIGHLIGHT); - } - else if (mark.equals("flat")) - { - this.renderManager.renderEngine.bindTexture(FLAT_BODY_HIGHLIGHT); - } - else - { - this.renderManager.renderEngine.bindTexture(POINTED_BODY_HIGHLIGHT); - } - } - GL11.glColor3f(highlight.getRed() / 255f, highlight.getGreen() / 255f, highlight.getBlue() / 255f); - - model.setDefaultDisplayState(false); - - model.HeadFeatherL1.forceDisplayFlag = true; - model.HeadFeatherL2.forceDisplayFlag = true; - model.HeadFeatherR1.forceDisplayFlag = true; - model.HeadFeatherR2.forceDisplayFlag = true; - - model.WingLFeatherInt1.forceDisplayFlag = true; - model.WingLFeatherInt2.forceDisplayFlag = true; - model.WingLFeatherExt1.forceDisplayFlag = true; - model.WingLFeatherExt2.forceDisplayFlag = true; - model.WingLFeatherExt3.forceDisplayFlag = true; - - model.WingRFeatherInt1.forceDisplayFlag = true; - model.WingRFeatherInt2.forceDisplayFlag = true; - model.WingRFeatherExt1.forceDisplayFlag = true; - model.WingRFeatherExt2.forceDisplayFlag = true; - model.WingRFeatherExt3.forceDisplayFlag = true; - - if (!this.isLowDetail) - { - model.LegLTalonL.forceDisplayFlag = true; - model.LegLTalonR.forceDisplayFlag = true; - model.LegLTalonM.forceDisplayFlag = true; - - model.LegRTalonL.forceDisplayFlag = true; - model.LegRTalonR.forceDisplayFlag = true; - model.LegRTalonM.forceDisplayFlag = true; - } - - model.TailFeatherL.forceDisplayFlag = true; - model.TailFeatherR.forceDisplayFlag = true; - model.TailFeatherM.forceDisplayFlag = true; - - model.BodyMain.forceDisplayFlag = true; - model.BodyFront.forceDisplayFlag = true; - - model.render(entity, limbSwing, limbSwingAmount, ageInTicks, netHeadYaw, headPitch, scale); - - model.setDefaultDisplayState(true); - - Color beakColor = genePool.getKeratin().gene().data(); - - GlStateManager.color(beakColor.getRed() / 255f, beakColor.getGreen() / 255f, beakColor.getBlue() / 255f); - - this.renderManager.renderEngine.bindTexture(BEAK); - - model.setDefaultDisplayState(false); - - model.HeadBrow.forceDisplayFlag = true; - model.JawMain.forceDisplayFlag = true; - - if (!this.isLowDetail) - { - model.JawFrontL.forceDisplayFlag = true; - model.JawFrontR.forceDisplayFlag = true; - model.JawBack.forceDisplayFlag = true; - - model.JawToothL1.forceDisplayFlag = true; - model.JawToothL2.forceDisplayFlag = true; - model.JawToothL3.forceDisplayFlag = true; - model.JawToothL1_1.forceDisplayFlag = true; - model.JawToothR2.forceDisplayFlag = true; - model.JawToothR3.forceDisplayFlag = true; - - model.HeadBeakFrontL.forceDisplayFlag = true; - model.HeadBeakFrontR.forceDisplayFlag = true; - } - - model.HeadBeakMain.forceDisplayFlag = true; - - model.LegL2.forceDisplayFlag = true; - model.LegL3.forceDisplayFlag = true; - model.LegLAnkle.forceDisplayFlag = true; - model.LegLFoot.forceDisplayFlag = true; - model.LegLToeL.forceDisplayFlag = true; - model.LegLToeM.forceDisplayFlag = true; - model.LegLToeR.forceDisplayFlag = true; - - model.LegR2.forceDisplayFlag = true; - model.LegR3.forceDisplayFlag = true; - model.LegRAnkle.forceDisplayFlag = true; - model.LegRFoot.forceDisplayFlag = true; - model.LegRToeL.forceDisplayFlag = true; - model.LegRToeM.forceDisplayFlag = true; - model.LegRToeR.forceDisplayFlag = true; - - model.render(entity, limbSwing, limbSwingAmount, ageInTicks, netHeadYaw, headPitch, scale); - - model.setDefaultDisplayState(true); - - if (moa.isSaddled()) - { - GL11.glColor3f(1.0f, 1.0f, 1.0f); - GL11.glTranslatef(0.0F, -0.001F, 0.0F); - GL11.glScalef(1.01F, 1.01F, 1.01F); - - this.renderManager.renderEngine.bindTexture(SADDLE); - model.render(entity, limbSwing, limbSwingAmount, ageInTicks, netHeadYaw, headPitch, scale); - } - } - - private void renderChild(EntityLivingBase entity, float limbSwing, float limbSwingAmount, float ageInTicks, float netHeadYaw, float headPitch, float scale) - { - EntityMoa moa = ((EntityMoa) entity); - - MoaGenePool genePool = moa.getGenePool(); - - if (genePool == null || genePool.getFeathers() == null) - { - return; - } - - Color base = genePool.getFeathers().gene().data(); - - float[] hsb = new float[3]; - - Color.RGBtoHSB(base.getRed(), base.getGreen(), base.getBlue(), hsb); - Color highlight = genePool.getFeathers().gene().data().brighter().brighter(); - - GlStateManager.color(base.getRed() / 255f, base.getGreen() / 255f, base.getBlue() / 255f); - - ModelMoaBaby model = (ModelMoaBaby) this.mainModel; - model.leg_l_2.isHidden = true; - model.leg_r_2.isHidden = true; - - Color eyesC = genePool.getEyes().gene().data(); - - // Re-render the head with our eyes texture and then draw the pupils - model.body_main.callback = () -> { - GlStateManager.color(eyesC.getRed() / 255f, eyesC.getGreen() / 255f, eyesC.getBlue() / 255f); - - this.renderManager.renderEngine.bindTexture(EYES_baby); - - model.head.render(scale, true, false); - - GlStateManager.color(base.getRed() / 255f, base.getGreen() / 255f, base.getBlue() / 255f); - - EyeUtil.renderEyesFast(model, model.head, model.head, entity, - scale, PUPIL_LEFT_baby, PUPIL_RIGHT_baby, EYES_CLOSED_baby, EYES_baby, false); - - if (genePool.getMarks() != null) - { - final String mark = genePool.getMarks().gene().getResourceName(); - - if (mark.equals("curved")) - { - this.renderManager.renderEngine.bindTexture(CURVED_BODY_baby); - } - else if (mark.equals("flat")) - { - this.renderManager.renderEngine.bindTexture(FLAT_BODY_baby); - } - else - { - this.renderManager.renderEngine.bindTexture(POINTED_BODY_baby); - } - } - }; - - if (genePool.getMarks() != null) - { - final String mark = genePool.getMarks().gene().getResourceName(); - - if (mark.equals("curved")) - { - this.renderManager.renderEngine.bindTexture(CURVED_BODY_baby); - } - else if (mark.equals("flat")) - { - this.renderManager.renderEngine.bindTexture(FLAT_BODY_baby); - } - else - { - this.renderManager.renderEngine.bindTexture(POINTED_BODY_baby); - } - } - model.render(entity, limbSwing, limbSwingAmount, ageInTicks, netHeadYaw, headPitch, scale); - - model.leg_l_2.isHidden = false; - model.leg_r_2.isHidden = false; - - if (genePool.getMarks() != null) - { - final String mark = genePool.getMarks().gene().getResourceName(); - - if (mark.equals("curved")) - { - this.renderManager.renderEngine.bindTexture(CURVED_BODY_HIGHLIGHT_baby); - } - else if (mark.equals("flat")) - { - this.renderManager.renderEngine.bindTexture(FLAT_BODY_HIGHLIGHT_baby); - } - else - { - this.renderManager.renderEngine.bindTexture(POINTED_BODY_HIGHLIGHT_baby); - } - } - GL11.glColor3f(highlight.getRed() / 255f, highlight.getGreen() / 255f, highlight.getBlue() / 255f); - - model.setDefaultDisplayState(false); - - model.feather_1.forceDisplayFlag = true; - model.feather_2.forceDisplayFlag = true; - model.feather_3.forceDisplayFlag = true; - model.feather_4.forceDisplayFlag = true; - - model.wing_l.forceDisplayFlag = true; - - model.wing_r.forceDisplayFlag = true; - - model.leg_l_1.forceDisplayFlag = true; - model.leg_r_1.forceDisplayFlag = true; - - model.tail.forceDisplayFlag = true; - - model.body_main.forceDisplayFlag = true; - model.neck.forceDisplayFlag = true; - - model.render(entity, limbSwing, limbSwingAmount, ageInTicks, netHeadYaw, headPitch, scale); - - model.setDefaultDisplayState(true); - - Color beakColor = genePool.getKeratin().gene().data(); - - GlStateManager.color(beakColor.getRed() / 255f, beakColor.getGreen() / 255f, beakColor.getBlue() / 255f); - - this.renderManager.renderEngine.bindTexture(BEAK_baby); - - model.setDefaultDisplayState(false); - - model.head.forceDisplayFlag = true; - - model.leg_l_2.forceDisplayFlag = true; - model.leg_r_2.forceDisplayFlag = true; - - model.render(entity, limbSwing, limbSwingAmount, ageInTicks, netHeadYaw, headPitch, scale); - - model.setDefaultDisplayState(true); - } - - @Override - protected void renderModel(EntityMoa entity, float limbSwing, float limbSwingAmount, float ageInTicks, float netHeadYaw, float headPitch, float scale) - { - boolean globalInvisible = !entity.isInvisible() || this.renderOutlines; - boolean playerInvisible = !globalInvisible && !entity.isInvisibleToPlayer(Minecraft.getMinecraft().player); - - if (globalInvisible || playerInvisible) - { - this.renderMoa(entity, limbSwing, limbSwingAmount, ageInTicks, netHeadYaw, headPitch, scale); - } - } - - @Override - public void doRender(EntityMoa entity, double x, double y, double z, float entityYaw, float partialTicks) - { - if (entity.isHungry()) - { - this.renderLivingLabel(entity, "Hungry", x, y + 0.15D + (entity.getGender() == AnimalGender.MALE ? 0.0D : -0.35D), z, 64); - - this.drawAechorPetal(x, y + entity.height + 0.8D + (entity.getGender() == AnimalGender.MALE ? 0.0D : -0.35D), z, 0.5D); - } - - super.doRender(entity, x, y, z, entityYaw, partialTicks); - } - - @Override - protected ResourceLocation getEntityTexture(EntityMoa entity) - { - return null; - } - - private void drawAechorPetal(double x, double y, double z, double scale) - { - GL11.glPushMatrix(); - - Tessellator tesselator = Tessellator.getInstance(); - - GL11.glEnable(GL11.GL_TEXTURE_2D); - GL11.glTranslatef((float) x, (float) y, (float) z); - GL11.glScaled(scale, scale, scale); - - this.bindTexture(AECHOR_PETAL_TEXTURE); - this.renderEntity(tesselator.getBuffer(), SPRITE); - - tesselator.draw(); - - GL11.glPopMatrix(); - } - - private void renderEntity(BufferBuilder renderer, TextureAtlasSprite icon) - { - float f = icon.getMinU(); - float f1 = icon.getMaxU(); - float f2 = icon.getMinV(); - float f3 = icon.getMaxV(); - - GL11.glRotatef(180f + Minecraft.getMinecraft().getRenderManager().playerViewY, 0.0F, -1.0F, 0.0F); - - renderer.begin(7, DefaultVertexFormats.POSITION_TEX_NORMAL); - - renderer.pos(-0.5D, -0.25D, 0.0D).tex((double) f, (double) f3).normal(0.0F, 1.0F, 0.0F).endVertex(); - renderer.pos(0.5D, -0.25D, 0.0D).tex((double) f1, (double) f3).normal(0.0F, 1.0F, 0.0F).endVertex(); - renderer.pos(0.5D, 0.75D, 0.0D).tex((double) f1, (double) f2).normal(0.0F, 1.0F, 0.0F).endVertex(); - renderer.pos(-0.5D, 0.75D, 0.0D).tex((double) f, (double) f2).normal(0.0F, 1.0F, 0.0F).endVertex(); - } - -} diff --git a/src/main/java/com/gildedgames/aether/client/renderer/entities/living/RenderMysteriousFigure.java b/src/main/java/com/gildedgames/aether/client/renderer/entities/living/RenderMysteriousFigure.java deleted file mode 100644 index 9535c443e6..0000000000 --- a/src/main/java/com/gildedgames/aether/client/renderer/entities/living/RenderMysteriousFigure.java +++ /dev/null @@ -1,41 +0,0 @@ -package com.gildedgames.aether.client.renderer.entities.living; - -import com.gildedgames.aether.api.entity.EntityCharacter; -import com.gildedgames.aether.client.models.entities.living.ModelMysteriousFigure; -import com.gildedgames.aether.common.AetherCelebrations; -import com.gildedgames.aether.common.AetherCore; -import net.minecraft.client.renderer.entity.RenderLiving; -import net.minecraft.client.renderer.entity.RenderManager; -import net.minecraft.util.ResourceLocation; - -public class RenderMysteriousFigure extends RenderLiving<EntityCharacter> -{ - - private static final ResourceLocation TEXTURE = AetherCore.getResource("textures/entities/npcs/mysterious_figure/mysterious_figure.png"); - - public RenderMysteriousFigure(final RenderManager renderManager) - { - super(renderManager, new ModelMysteriousFigure(), 0.5f); - } - - @Override - protected ResourceLocation getEntityTexture(final EntityCharacter entity) - { - return TEXTURE; - } - - @Override - protected void renderModel(EntityCharacter entity, float limbSwing, float limbSwingAmount, float ageInTicks, float netHeadYaw, float headPitch, float scale) - { - if (AetherCelebrations.isHalloweenEvent()) - { - super.renderModel(entity, limbSwing, limbSwingAmount, ageInTicks, netHeadYaw, headPitch, scale); - this.shadowSize = 0.5f; - } - else - { - this.shadowSize = 0.0f; - } - } - -} diff --git a/src/main/java/com/gildedgames/aether/client/renderer/entities/living/RenderNecromancer.java b/src/main/java/com/gildedgames/aether/client/renderer/entities/living/RenderNecromancer.java deleted file mode 100644 index 9165abfd71..0000000000 --- a/src/main/java/com/gildedgames/aether/client/renderer/entities/living/RenderNecromancer.java +++ /dev/null @@ -1,26 +0,0 @@ -package com.gildedgames.aether.client.renderer.entities.living; - -import com.gildedgames.aether.client.models.entities.living.ModelNecromancer; -import com.gildedgames.aether.common.AetherCore; -import com.gildedgames.aether.common.entities.characters.EntityNecromancer; -import net.minecraft.client.renderer.entity.RenderLiving; -import net.minecraft.client.renderer.entity.RenderManager; -import net.minecraft.util.ResourceLocation; - -public class RenderNecromancer extends RenderLiving<EntityNecromancer> -{ - - private static final ResourceLocation TEXTURE = AetherCore.getResource("textures/entities/npcs/necromancer/necromancer.png"); - - public RenderNecromancer(final RenderManager renderManager) - { - super(renderManager, new ModelNecromancer(), 0.5f); - } - - @Override - protected ResourceLocation getEntityTexture(final EntityNecromancer entity) - { - return TEXTURE; - } - -} diff --git a/src/main/java/com/gildedgames/aether/client/renderer/entities/living/RenderPlayerHelper.java b/src/main/java/com/gildedgames/aether/client/renderer/entities/living/RenderPlayerHelper.java deleted file mode 100644 index ccfd1615a8..0000000000 --- a/src/main/java/com/gildedgames/aether/client/renderer/entities/living/RenderPlayerHelper.java +++ /dev/null @@ -1,316 +0,0 @@ -package com.gildedgames.aether.client.renderer.entities.living; - -import com.gildedgames.aether.common.capabilities.entity.player.PlayerAether; -import com.gildedgames.aether.common.capabilities.entity.player.modules.PlayerEquipmentModule; -import com.gildedgames.aether.common.capabilities.entity.player.modules.PlayerPatronRewardModule; -import com.gildedgames.aether.common.items.armor.ItemAetherGloves; -import com.gildedgames.aether.common.items.weapons.crossbow.ItemCrossbow; -import com.gildedgames.aether.common.patron.armor.PatronRewardArmor; -import com.gildedgames.aether.common.util.helpers.EntityUtil; -import net.minecraft.block.Block; -import net.minecraft.client.Minecraft; -import net.minecraft.client.entity.AbstractClientPlayer; -import net.minecraft.client.model.ModelBiped; -import net.minecraft.client.model.ModelPlayer; -import net.minecraft.client.renderer.GlStateManager; -import net.minecraft.client.renderer.block.model.ItemCameraTransforms; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.item.Item; -import net.minecraft.item.ItemMap; -import net.minecraft.item.ItemStack; -import net.minecraft.util.BlockRenderLayer; -import net.minecraft.util.EnumHand; -import net.minecraft.util.EnumHandSide; -import net.minecraft.util.ResourceLocation; -import net.minecraft.util.math.MathHelper; - -public class RenderPlayerHelper -{ - public static void renderItemFirstPerson(AbstractClientPlayer player, float partialTicks, float pitch, EnumHand hand, float swingProgress, ItemStack stack, float equipProgress) - { - boolean flag = hand == EnumHand.MAIN_HAND; - - EnumHandSide enumhandside = flag ? player.getPrimaryHand() : player.getPrimaryHand().opposite(); - - GlStateManager.pushMatrix(); - - if (stack.isEmpty()) - { - if (flag) - { - renderGloveFirstPerson(player, equipProgress, swingProgress, enumhandside); - } - } - else if (stack.getItem() instanceof ItemMap) - { - if (flag && player.getHeldItemOffhand().isEmpty()) - { - renderMapFirstPerson(player, pitch, equipProgress, swingProgress); - } - else - { - renderMapFirstPersonSide(player, equipProgress, enumhandside, swingProgress); - } - } - else if (stack.getItem() instanceof ItemCrossbow) - { - boolean flag1 = enumhandside == EnumHandSide.RIGHT; - - if (player.isHandActive() && player.getItemInUseCount() > 0 && player.getActiveHand() == hand) - { - transformSideFirstPerson(enumhandside, equipProgress); - } - else - { - float f = -0.4F * MathHelper.sin(MathHelper.sqrt(swingProgress) * (float)Math.PI); - float f1 = 0.2F * MathHelper.sin(MathHelper.sqrt(swingProgress) * ((float)Math.PI * 2F)); - float f2 = -0.2F * MathHelper.sin(swingProgress * (float)Math.PI); - int i = flag1 ? 1 : -1; - GlStateManager.translate((float)i * f, f1, f2); - transformSideFirstPerson(enumhandside, equipProgress); - transformFirstPerson(enumhandside, swingProgress); - } - - renderItemSide(player, stack, flag1 ? ItemCameraTransforms.TransformType.FIRST_PERSON_RIGHT_HAND : ItemCameraTransforms.TransformType.FIRST_PERSON_LEFT_HAND, !flag1); - } - - GlStateManager.popMatrix(); - } - - private static void transformSideFirstPerson(EnumHandSide hand, float p_187459_2_) - { - int i = hand == EnumHandSide.RIGHT ? 1 : -1; - GlStateManager.translate((float)i * 0.56F, -0.52F + p_187459_2_ * -0.6F, -0.72F); - } - - public static void renderItemSide(EntityLivingBase entitylivingbaseIn, ItemStack heldStack, ItemCameraTransforms.TransformType transform, boolean leftHanded) - { - if (!heldStack.isEmpty()) - { - Item item = heldStack.getItem(); - Block block = Block.getBlockFromItem(item); - GlStateManager.pushMatrix(); - boolean flag = Minecraft.getMinecraft().getRenderItem().shouldRenderItemIn3D(heldStack) && block.getRenderLayer() == BlockRenderLayer.TRANSLUCENT; - - if (flag) - { - GlStateManager.depthMask(false); - } - - Minecraft.getMinecraft().getRenderItem().renderItem(heldStack, entitylivingbaseIn, transform, leftHanded); - - if (flag) - { - GlStateManager.depthMask(true); - } - - GlStateManager.popMatrix(); - } - } - - private static void transformFirstPerson(EnumHandSide hand, float p_187453_2_) - { - int i = hand == EnumHandSide.RIGHT ? 1 : -1; - float f = MathHelper.sin(p_187453_2_ * p_187453_2_ * (float)Math.PI); - GlStateManager.rotate((float)i * (45.0F + f * -20.0F), 0.0F, 1.0F, 0.0F); - float f1 = MathHelper.sin(MathHelper.sqrt(p_187453_2_) * (float)Math.PI); - GlStateManager.rotate((float)i * f1 * -20.0F, 0.0F, 0.0F, 1.0F); - GlStateManager.rotate(f1 * -80.0F, 1.0F, 0.0F, 0.0F); - GlStateManager.rotate((float)i * -45.0F, 0.0F, 1.0F, 0.0F); - } - - private static void renderGloves(AbstractClientPlayer player) - { - PlayerAether playerAether = PlayerAether.getPlayer(player); - ItemStack gloveStack = playerAether.getModule(PlayerEquipmentModule.class).getInventory().getStackInSlot(2); - - if (!gloveStack.isEmpty() && gloveStack.getItem() instanceof ItemAetherGloves) - { - GlStateManager.disableCull(); - GlStateManager.pushMatrix(); - GlStateManager.rotate(90.0F, 0.0F, 1.0F, 0.0F); - renderArm(playerAether, EnumHandSide.RIGHT, (ItemAetherGloves) gloveStack.getItem()); - renderArm(playerAether, EnumHandSide.LEFT, (ItemAetherGloves) gloveStack.getItem()); - GlStateManager.popMatrix(); - GlStateManager.enableCull(); - } - } - - private static void renderArm(PlayerAether playerAether, EnumHandSide hand, ItemAetherGloves gloves) - { - Minecraft.getMinecraft().getTextureManager().bindTexture(getTexture(playerAether, gloves)); - - GlStateManager.pushMatrix(); - - float f = hand == EnumHandSide.RIGHT ? 1.0F : -1.0F; - - GlStateManager.scale(0.78F, 0.78F, 0.78F); - - GlStateManager.translate(0.185F, 0.0F, f * -0.065); - - GlStateManager.rotate(92.0F, 0.0F, 1.0F, 0.0F); - GlStateManager.rotate(45.0F, 1.0F, 0.0F, 0.0F); - GlStateManager.rotate(f * -41.0F, 0.0F, 0.0F, 1.0F); - GlStateManager.translate(f * 0.3F, -1.1F, 0.45F); - - if (EntityUtil.getSkin(playerAether.getEntity()).equals("slim")) - { - GlStateManager.translate(0.0F, 0.0F, 0.0F); - } - else - { - GlStateManager.translate(0.0F, 0.03F, 0.0F); - } - - if (hand == EnumHandSide.RIGHT) - { - GlStateManager.translate(0.00F, -0.3F, 0.0F); - renderRightGlove(playerAether, gloves); - } - else - { - GlStateManager.translate(0.01F, -0.3F, 0.0F); - renderLeftArmGlove(playerAether, gloves); - } - - GlStateManager.color(1.0F, 1.0F, 1.0F); - GlStateManager.popMatrix(); - } - - private static void renderMapFirstPerson(AbstractClientPlayer player, float pitch, float equipProgress, float swingProgress) - { - GlStateManager.pushMatrix(); - float f = MathHelper.sqrt(swingProgress); - float f1 = -0.2F * MathHelper.sin(swingProgress * (float)Math.PI); - float f2 = -0.4F * MathHelper.sin(f * (float)Math.PI); - GlStateManager.translate(0.0F, -f1 / 2.0F, f2); - float f3 = getMapAngleFromPitch(pitch); - GlStateManager.translate(0.0F, 0.04F + equipProgress * -1.2F + f3 * -0.5F, -0.72F); - GlStateManager.rotate(f3 * -85.0F, 1.0F, 0.0F, 0.0F); - renderGloves(player); - GlStateManager.popMatrix(); - } - - private static void renderMapFirstPersonSide(AbstractClientPlayer player, float equipProgress, EnumHandSide enumhandside, float swingProgress) - { - float f = enumhandside == EnumHandSide.RIGHT ? 1.0F : -1.0F; - - GlStateManager.pushMatrix(); - GlStateManager.translate(f * 0.125F, -0.125F, 0.0F); - GlStateManager.rotate(f * 10.0F, 0.0F, 0.0F, 1.0F); - renderGloveFirstPerson(player, equipProgress, swingProgress, enumhandside); - GlStateManager.popMatrix(); - } - - private static void renderGloveFirstPerson(AbstractClientPlayer player, float equipProgress, float swingProgress, EnumHandSide enumhandside) - { - PlayerAether playerAether = PlayerAether.getPlayer(player); - ItemStack gloveStack = playerAether.getModule(PlayerEquipmentModule.class).getInventory().getStackInSlot(2); - - if (!gloveStack.isEmpty() && gloveStack.getItem() instanceof ItemAetherGloves) - { - boolean flag = enumhandside != EnumHandSide.LEFT; - float f = flag ? 1.0F : -1.0F; - float f1 = MathHelper.sqrt(swingProgress); - float f2 = -0.3F * MathHelper.sin(f1 * (float)Math.PI); - float f3 = 0.4F * MathHelper.sin(f1 * ((float)Math.PI * 2F)); - float f4 = -0.4F * MathHelper.sin(swingProgress * (float)Math.PI); - GlStateManager.translate(f * (f2 + 0.64000005F), f3 + -0.6F + equipProgress * -0.6F, f4 + -0.71999997F); - GlStateManager.rotate(f * 45.0F, 0.0F, 1.0F, 0.0F); - float f5 = MathHelper.sin(swingProgress * swingProgress * (float)Math.PI); - float f6 = MathHelper.sin(f1 * (float)Math.PI); - GlStateManager.rotate(f * f6 * 70.0F, 0.0F, 1.0F, 0.0F); - GlStateManager.rotate(f * f5 * -20.0F, 0.0F, 0.0F, 1.0F); - - GlStateManager.scale(0.78F, 0.78F, 0.78F); - - GlStateManager.translate(f * -1.0F, 3.6F, 3.5F); - - GlStateManager.translate(f * 0.03F, 0.0F, -0.03F); - - GlStateManager.rotate(f * 120.0F, 0.0F, 0.0F, 1.0F); - GlStateManager.rotate(200.0F, 1.0F, 0.0F, 0.0F); - GlStateManager.rotate(f * -135.0F, 0.0F, 1.0F, 0.0F); - GlStateManager.translate(f * 5.6F, 0.0F, 0.0F); - - if (EntityUtil.getSkin(player).equals("slim")) - { - GlStateManager.translate(0.0F, 0.0F, 0.0F); - } - else - { - GlStateManager.translate(0.0F, 0.03F, 0.0F); - } - - GlStateManager.disableCull(); - - if (flag) - { - renderRightGlove(playerAether, (ItemAetherGloves) gloveStack.getItem()); - } - else - { - renderLeftArmGlove(playerAether, (ItemAetherGloves) gloveStack.getItem()); - } - - GlStateManager.enableCull(); - } - } - - private static void renderRightGlove(PlayerAether playerAether, ItemAetherGloves gloves) - { - Minecraft.getMinecraft().getTextureManager().bindTexture(getTexture(playerAether, gloves)); - - ModelBiped model = !EntityUtil.getSkin(playerAether.getEntity()).equals("slim") ? new ModelPlayer(1.0F, false) : new ModelPlayer(1.0F, true); - - GlStateManager.enableBlend(); - model.swingProgress = 0.0F; - model.isSneak = false; - model.setRotationAngles(0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F, playerAether.getEntity()); - model.bipedRightArm.rotateAngleX = 0.0F; - model.bipedRightArm.render(0.0625F); - GlStateManager.disableBlend(); - - GlStateManager.color(1.0F, 1.0F, 1.0F, 1.0F); - } - - private static void renderLeftArmGlove(PlayerAether playerAether, ItemAetherGloves gloves) - { - Minecraft.getMinecraft().getTextureManager().bindTexture(getTexture(playerAether, gloves)); - - ModelBiped model = !EntityUtil.getSkin(playerAether.getEntity()).equals("slim") ? new ModelPlayer(1.0F, false) : new ModelPlayer(1.0F, true); - - GlStateManager.enableBlend(); - model.isSneak = false; - model.swingProgress = 0.0F; - model.setRotationAngles(0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F, playerAether.getEntity()); - model.bipedLeftArm.rotateAngleX = 0.0F; - model.bipedLeftArm.render(0.0625F); - GlStateManager.disableBlend(); - - GlStateManager.color(1.0F, 1.0F, 1.0F, 1.0F); - } - - private static ResourceLocation getTexture(PlayerAether playerAether, ItemAetherGloves gloves) - { - final PatronRewardArmor armor = playerAether.getModule(PlayerPatronRewardModule.class).getChoices().getArmorChoice(); - - ResourceLocation texture = gloves.getGloveTexture(playerAether.getEntity()); - - if (armor != null && armor.getArmorGloveTexture(EntityUtil.getSkin(playerAether.getEntity()).equals("slim")) != null) - { - texture = armor.getArmorGloveTexture(EntityUtil.getSkin(playerAether.getEntity()).equals("slim")); - } - - return texture; - } - - private static float getMapAngleFromPitch(float pitch) - { - float f = 1.0F - pitch / 45.0F + 0.1F; - f = MathHelper.clamp(f, 0.0F, 1.0F); - f = -MathHelper.cos(f * (float)Math.PI) * 0.5F + 0.5F; - - return f; - } -} diff --git a/src/main/java/com/gildedgames/aether/client/renderer/entities/living/RenderSheepuff.java b/src/main/java/com/gildedgames/aether/client/renderer/entities/living/RenderSheepuff.java deleted file mode 100644 index 263c7aa947..0000000000 --- a/src/main/java/com/gildedgames/aether/client/renderer/entities/living/RenderSheepuff.java +++ /dev/null @@ -1,36 +0,0 @@ -package com.gildedgames.aether.client.renderer.entities.living; - -import com.gildedgames.aether.client.models.entities.living.ModelSheepuff; -import com.gildedgames.aether.client.renderer.entities.living.layers.LayerSheepuffWool; -import com.gildedgames.aether.common.AetherCore; -import com.gildedgames.aether.common.entities.animals.EntitySheepuff; -import net.minecraft.client.renderer.entity.RenderLiving; -import net.minecraft.client.renderer.entity.RenderManager; -import net.minecraft.util.ResourceLocation; - -import javax.annotation.Nullable; - -public class RenderSheepuff extends RenderLiving<EntitySheepuff> -{ - - private static final ResourceLocation SHEEPUFF_TEXTURE = AetherCore.getResource("textures/entities/sheepuff/sheepuff_base.png"); - - public RenderSheepuff(RenderManager renderManager) - { - super(renderManager, new ModelSheepuff(), 0.75f); - - this.addLayer(new LayerSheepuffWool(this)); - } - - @Override - protected void renderModel(EntitySheepuff entity, float limbSwing, float limbSwingAmount, float ageInTicks, float netHeadYaw, float headPitch, float scale) - { - super.renderModel(entity, limbSwing, limbSwingAmount, ageInTicks, netHeadYaw, headPitch, scale); - } - @Nullable - @Override - protected ResourceLocation getEntityTexture(EntitySheepuff entity) - { - return SHEEPUFF_TEXTURE; - } -} diff --git a/src/main/java/com/gildedgames/aether/client/renderer/entities/living/RenderSkyrootLizard.java b/src/main/java/com/gildedgames/aether/client/renderer/entities/living/RenderSkyrootLizard.java deleted file mode 100644 index d518238a30..0000000000 --- a/src/main/java/com/gildedgames/aether/client/renderer/entities/living/RenderSkyrootLizard.java +++ /dev/null @@ -1,86 +0,0 @@ -package com.gildedgames.aether.client.renderer.entities.living; - -import com.gildedgames.aether.client.models.entities.living.ModelSkyrootLizard; -import com.gildedgames.aether.common.AetherCore; -import com.gildedgames.aether.common.entities.animals.EntitySkyrootLizard; -import net.minecraft.client.Minecraft; -import net.minecraft.client.renderer.GlStateManager; -import net.minecraft.client.renderer.entity.RenderLiving; -import net.minecraft.client.renderer.entity.RenderManager; -import net.minecraft.util.ResourceLocation; - -public class RenderSkyrootLizard extends RenderLiving<EntitySkyrootLizard> -{ - private static final ResourceLocation AMBERROOT = AetherCore.getResource("textures/entities/skyroot_lizard/skyroot_lizard_amberoot.png"); - - private static final ResourceLocation GREATROOT = AetherCore.getResource("textures/entities/skyroot_lizard/skyroot_lizard_greatroot.png"); - - private static final ResourceLocation SKYROOT = AetherCore.getResource("textures/entities/skyroot_lizard/skyroot_lizard_skyroot.png"); - - private static final ResourceLocation WISPROOT = AetherCore.getResource("textures/entities/skyroot_lizard/skyroot_lizard_wisproot.png"); - - private static final ResourceLocation LEAF_LAYER = AetherCore.getResource("textures/entities/skyroot_lizard/skyroot_lizard_leaf.png"); - - public RenderSkyrootLizard(final RenderManager renderManager) - { - super(renderManager, new ModelSkyrootLizard(), 0.4f); - } - - public void renderLizard(EntitySkyrootLizard entity, float limbSwing, float limbSwingAmount, float ageInTicks, float netHeadYaw, float headPitch, float scale) - { - ModelSkyrootLizard model = (ModelSkyrootLizard) this.mainModel; - - switch (entity.getLeafType()) - { - case SKYROOT: - this.renderManager.renderEngine.bindTexture(SKYROOT); - break; - case WISPROOT: - this.renderManager.renderEngine.bindTexture(WISPROOT); - break; - case GREATROOT: - this.renderManager.renderEngine.bindTexture(GREATROOT); - break; - case AMBERROOT: - this.renderManager.renderEngine.bindTexture(AMBERROOT); - break; - default: - return; - } - - model.render(entity, limbSwing, limbSwingAmount, ageInTicks, netHeadYaw, headPitch, scale); - - int color = entity.getLizardAccentColor(); - - if (color != Integer.MIN_VALUE) - { - this.renderManager.renderEngine.bindTexture(LEAF_LAYER); - - int red = (color >> 16) & 0xFF; - int green = (color >> 8) & 0xFF; - int blue = color & 0xFF; - - GlStateManager.color(red / 255f, green / 255f, blue / 255f, 1f); - } - - model.render(entity, limbSwing, limbSwingAmount, ageInTicks, netHeadYaw, headPitch, scale); - } - - @Override - protected void renderModel(EntitySkyrootLizard entity, float limbSwing, float limbSwingAmount, float ageInTicks, float netHeadYaw, float headPitch, float scale) - { - boolean globalInvisible = !entity.isInvisible() || this.renderOutlines; - boolean playerInvisible = !globalInvisible && !entity.isInvisibleToPlayer(Minecraft.getMinecraft().player); - - if (globalInvisible || playerInvisible) - { - this.renderLizard(entity, limbSwing, limbSwingAmount, ageInTicks, netHeadYaw, headPitch, scale); - } - } - - @Override - protected ResourceLocation getEntityTexture(final EntitySkyrootLizard entity) - { - return null; - } -} \ No newline at end of file diff --git a/src/main/java/com/gildedgames/aether/client/renderer/entities/living/RenderSwet.java b/src/main/java/com/gildedgames/aether/client/renderer/entities/living/RenderSwet.java deleted file mode 100644 index c44e96b2c1..0000000000 --- a/src/main/java/com/gildedgames/aether/client/renderer/entities/living/RenderSwet.java +++ /dev/null @@ -1,57 +0,0 @@ -package com.gildedgames.aether.client.renderer.entities.living; - -import com.gildedgames.aether.client.models.entities.living.ModelSwetHead; -import com.gildedgames.aether.client.renderer.entities.living.layers.LayerSwetJelly; -import com.gildedgames.aether.common.entities.monsters.EntitySwet; -import net.minecraft.client.renderer.GlStateManager; -import net.minecraft.client.renderer.entity.RenderLiving; -import net.minecraft.client.renderer.entity.RenderManager; -import net.minecraft.util.ResourceLocation; - -public class RenderSwet extends RenderLiving<EntitySwet> -{ - - public RenderSwet(final RenderManager renderManagerIn) - { - super(renderManagerIn, new ModelSwetHead(), 0.78F); - - this.addLayer(new LayerSwetJelly(this)); - } - - @Override - protected void preRenderCallback(final EntitySwet entity, final float partialTickTime) - { - final float sc = (entity.getFoodSaturation() / 5.0F); - - this.shadowSize = 0.3F + (sc * 0.48F); - - if (entity.getFoodSaturation() == 0) - { - GlStateManager.translate(0.0, 0.18, 0.0); - } - else - { - GlStateManager.translate(0.0, 0.1, 0.0); - } - - GlStateManager.scale(0.35F, 0.35F, 0.35F); - - final float f1 = 2.0F; - final float f2 = (entity.prevSquishFactor + (entity.squishFactor - entity.prevSquishFactor) * partialTickTime) / (f1 * 0.5F + 1.0F); - final float f3 = 1.0F / (f2 + 1.0F); - - GlStateManager.scale(f3 * f1, 1.0F / f3 * f1, f3 * f1); - } - - @Override - public void doRender(final EntitySwet entity, final double x, final double y, final double z, final float entityYaw, final float partialTicks) - { - super.doRender(entity, x, y, z, entityYaw, partialTicks); - } - - @Override - protected ResourceLocation getEntityTexture(final EntitySwet entity) - { - return entity.getType().texture_head; - } -} diff --git a/src/main/java/com/gildedgames/aether/client/renderer/entities/living/RenderTaegore.java b/src/main/java/com/gildedgames/aether/client/renderer/entities/living/RenderTaegore.java deleted file mode 100644 index 560e57ad41..0000000000 --- a/src/main/java/com/gildedgames/aether/client/renderer/entities/living/RenderTaegore.java +++ /dev/null @@ -1,45 +0,0 @@ -package com.gildedgames.aether.client.renderer.entities.living; - -import com.gildedgames.aether.client.models.entities.living.ModelTaegore; -import com.gildedgames.aether.client.models.entities.living.ModelTaegoreBaby; -import com.gildedgames.aether.client.renderer.EyeUtil; -import com.gildedgames.aether.client.renderer.ModelBaseAether; -import com.gildedgames.aether.common.AetherCore; -import com.gildedgames.aether.common.entities.animals.EntityTaegore; -import net.minecraft.client.Minecraft; -import net.minecraft.client.renderer.entity.RenderLiving; -import net.minecraft.client.renderer.entity.RenderManager; -import net.minecraft.util.ResourceLocation; - -public class RenderTaegore extends RenderLivingChild<EntityTaegore> -{ - private static final ResourceLocation texture = AetherCore.getResource("textures/entities/taegore/taegore.png"); - private static final ResourceLocation EYES_CLOSED = AetherCore.getResource("textures/entities/taegore/eyes_closed.png"); - - private static final ResourceLocation texture_baby = AetherCore.getResource("textures/entities/taegore/babytaegore.png"); - private static final ResourceLocation EYES_CLOSED_baby = AetherCore.getResource("textures/entities/taegore/babytaegore_eyes_closed.png"); - - public RenderTaegore(RenderManager renderManager) - { - super(renderManager, new ModelTaegore(), new ModelTaegoreBaby(), texture, texture_baby, 0.75f); - } - - @Override - protected void renderModel(EntityTaegore entity, float limbSwing, float limbSwingAmount, float ageInTicks, float netHeadYaw, float headPitch, float scale) - { - super.renderModel(entity, limbSwing, limbSwingAmount, ageInTicks, netHeadYaw, headPitch, scale); - - ResourceLocation eyes = !entity.isChild() ? EYES_CLOSED : EYES_CLOSED_baby; - - ModelBaseAether model = (ModelBaseAether) this.mainModel; - - boolean globalInvisible = !entity.isInvisible() || this.renderOutlines; - boolean playerInvisible = !globalInvisible && !entity.isInvisibleToPlayer(Minecraft.getMinecraft().player); - - if (globalInvisible || playerInvisible) - { - EyeUtil.renderEyesBasic(this.renderManager, model, entity, limbSwing, limbSwingAmount, ageInTicks, netHeadYaw, headPitch, scale, - eyes); - } - } -} diff --git a/src/main/java/com/gildedgames/aether/client/renderer/entities/living/RenderTempest.java b/src/main/java/com/gildedgames/aether/client/renderer/entities/living/RenderTempest.java deleted file mode 100644 index 6062fef518..0000000000 --- a/src/main/java/com/gildedgames/aether/client/renderer/entities/living/RenderTempest.java +++ /dev/null @@ -1,43 +0,0 @@ -package com.gildedgames.aether.client.renderer.entities.living; - -import com.gildedgames.aether.client.models.entities.living.ModelTempestInsect; -import com.gildedgames.aether.client.models.entities.living.ModelTempestShell; -import com.gildedgames.aether.client.renderer.entities.living.layers.LayerGlowing; -import com.gildedgames.aether.client.renderer.entities.living.layers.LayerTempestShell; -import com.gildedgames.aether.common.AetherCore; -import com.gildedgames.aether.common.entities.monsters.EntityTempest; -import net.minecraft.client.renderer.entity.RenderLiving; -import net.minecraft.client.renderer.entity.RenderManager; -import net.minecraft.entity.EntityLiving; -import net.minecraft.util.ResourceLocation; - -public class RenderTempest extends RenderLiving<EntityTempest> -{ - - private static final ResourceLocation INSECT = AetherCore.getResource("textures/entities/tempest/tempest_insect.png"); - - private static final ResourceLocation INSECT_MARKINGS = AetherCore.getResource("textures/entities/tempest/tempest_insect_glow.png"); - - private static final ResourceLocation SHELL = AetherCore.getResource("textures/entities/tempest/tempest_shell.png"); - - private static final ResourceLocation SHELL_MARKINGS = AetherCore.getResource("textures/entities/tempest/tempest_shell_glow.png"); - - public RenderTempest(RenderManager manager) - { - super(manager, new ModelTempestInsect(), 1.0F); - - this.addLayer(new LayerGlowing<>(this, INSECT_MARKINGS)); - - ModelTempestShell shell = new ModelTempestShell(); - - this.addLayer(new LayerTempestShell(this, SHELL, shell)); - this.addLayer(new LayerGlowing<>(this, SHELL_MARKINGS, shell)); - } - - @Override - protected ResourceLocation getEntityTexture(EntityTempest entity) - { - return INSECT; - } - -} diff --git a/src/main/java/com/gildedgames/aether/client/renderer/entities/living/RenderTivalier.java b/src/main/java/com/gildedgames/aether/client/renderer/entities/living/RenderTivalier.java deleted file mode 100644 index 77fe7d115e..0000000000 --- a/src/main/java/com/gildedgames/aether/client/renderer/entities/living/RenderTivalier.java +++ /dev/null @@ -1,26 +0,0 @@ -package com.gildedgames.aether.client.renderer.entities.living; - -import com.gildedgames.aether.client.models.entities.living.ModelTivalier; -import com.gildedgames.aether.common.AetherCore; -import com.gildedgames.aether.common.entities.characters.EntityTivalier; -import net.minecraft.client.renderer.entity.RenderLiving; -import net.minecraft.client.renderer.entity.RenderManager; -import net.minecraft.util.ResourceLocation; - -public class RenderTivalier extends RenderLiving<EntityTivalier> -{ - - private static final ResourceLocation TEXTURE = AetherCore.getResource("textures/entities/npcs/tivalier/tivalier.png"); - - public RenderTivalier(final RenderManager renderManager) - { - super(renderManager, new ModelTivalier(), 0.5f); - } - - @Override - protected ResourceLocation getEntityTexture(final EntityTivalier entity) - { - return TEXTURE; - } - -} diff --git a/src/main/java/com/gildedgames/aether/client/renderer/entities/living/RenderVaranys.java b/src/main/java/com/gildedgames/aether/client/renderer/entities/living/RenderVaranys.java deleted file mode 100644 index 5339b03f52..0000000000 --- a/src/main/java/com/gildedgames/aether/client/renderer/entities/living/RenderVaranys.java +++ /dev/null @@ -1,26 +0,0 @@ -package com.gildedgames.aether.client.renderer.entities.living; - -import com.gildedgames.aether.client.models.entities.living.ModelVaranys; -import com.gildedgames.aether.common.AetherCore; -import com.gildedgames.aether.common.entities.monsters.EntityVaranys; -import net.minecraft.client.renderer.entity.RenderLiving; -import net.minecraft.client.renderer.entity.RenderManager; -import net.minecraft.util.ResourceLocation; - -public class RenderVaranys extends RenderLiving<EntityVaranys> -{ - - private static final ResourceLocation TEXTURE = AetherCore.getResource("textures/entities/varanys/varanys.png"); - - public RenderVaranys(final RenderManager renderManager) - { - super(renderManager, new ModelVaranys(), 0.5f); - } - - @Override - protected ResourceLocation getEntityTexture(final EntityVaranys entity) - { - return TEXTURE; - } - -} diff --git a/src/main/java/com/gildedgames/aether/client/renderer/entities/living/RenderZephyr.java b/src/main/java/com/gildedgames/aether/client/renderer/entities/living/RenderZephyr.java deleted file mode 100644 index 795d740126..0000000000 --- a/src/main/java/com/gildedgames/aether/client/renderer/entities/living/RenderZephyr.java +++ /dev/null @@ -1,118 +0,0 @@ -package com.gildedgames.aether.client.renderer.entities.living; - -import com.gildedgames.aether.client.models.entities.living.ModelZephyr; -import com.gildedgames.aether.common.AetherCore; -import com.gildedgames.aether.common.entities.monsters.EntityZephyr; -import net.minecraft.client.renderer.GlStateManager; -import net.minecraft.client.renderer.entity.RenderLiving; -import net.minecraft.client.renderer.entity.RenderManager; -import net.minecraft.entity.EntityLiving; -import net.minecraft.util.ResourceLocation; - -public class RenderZephyr extends RenderLiving<EntityLiving> -{ - - private static final ResourceLocation TEXTURE = AetherCore.getResource("textures/entities/zephyr/zephyr_shell.png"); - - public RenderZephyr(final RenderManager manager) - { - super(manager, new ModelZephyr(), 1.0F); - } - - private float partialTicks; - - @Override - protected void preRenderCallback(final EntityLiving entity, final float partialTicks) - { - this.partialTicks = partialTicks; - } - - @Override - protected void renderModel(EntityLiving entitylivingbaseIn, float limbSwing, float limbSwingAmount, float ageInTicks, float netHeadYaw, float headPitch, float scaleFactor) - { - GlStateManager.pushMatrix(); - - GlStateManager.scale(1.5F, 1.5F, 1.5F); - GlStateManager.translate(0F, -0.25F, 0F); - EntityZephyr zephyr = (EntityZephyr) entitylivingbaseIn; - - /*if (zephyr.getFlightPath() != null) - { - Vec3d pos = entitylivingbaseIn.getPositionVector(); - - Point3d cur = zephyr.getPoint(this.partialTicks); - - GlStateManager.pushMatrix(); - - GlStateManager.translate(-pos.x, pos.y, pos.z); - Point3d last = null, last2 = null; - - if (Minecraft.getMinecraft().gameSettings.showDebugInfo) - { - float scale = 20f / Minecraft.getMinecraft().player.getDistance(entitylivingbaseIn); - - for (float t = 0; t <= 1.2f; t += 0.03f) - { - Point3d cur2 = MathUtil.getPoints(zephyr.getFlightPath(), t); - FloatList timeMap = zephyr.getTimeMap(); - FloatList speedMap = zephyr.getSpeedMap(); - int r = 255, g = 0; - - if (speedMap != null && timeMap != null && t < 1) - { - for (int i = 0; i < timeMap.size(); i++) - { - if ((t >= timeMap.get(i) && i + 1 < timeMap.size() && t <= timeMap.get(i + 1)) || (i + 1 == timeMap.size() && t >= timeMap.get(i))) - { - float v = speedMap.get(i) * (1f / 3f); - - Color c = Color.getHSBColor(v, 1, 1); - - r = c.getRed(); - g = c.getGreen(); - - break; - } - } - } - - if (last != null) - { -// GlUtil.drawLine(last.x, -last.y, -last.z, cur2.x, -cur2.y, -cur2.z, r, g, 0, 255, scale); - } - - last = cur2; - - if (zephyr.getFutureFlightPath() != null) - { - Point3d cur3 = MathUtil.getPoints(zephyr.getFutureFlightPath(), t); - - if (last2 != null) - { -// GlUtil.drawLine(last2.x, -last2.y, -last2.z, cur3.x, -cur3.y, -cur3.z, 255 - (int) (t * 255), (int) (255 * t), (int) (t * 122), 255, scale); - } - - last2 = cur3; - } - } - } - - GlStateManager.popMatrix(); - - Point3d v2 = MathUtil.getPoints(zephyr.getFlightPath(), zephyr.getTime() - 0.001f); - - GlStateManager.rotate(QuaternionUtil.lookAt(new Vec3d(cur.x, -cur.y, -cur.z), new Vec3d(v2.x, -v2.y, -v2.z))); - }*/ - - super.renderModel(entitylivingbaseIn, limbSwing, limbSwingAmount, ageInTicks, netHeadYaw, headPitch, scaleFactor); - - GlStateManager.popMatrix(); - } - - @Override - protected ResourceLocation getEntityTexture(final EntityLiving entity) - { - return TEXTURE; - } - -} diff --git a/src/main/java/com/gildedgames/aether/client/renderer/entities/living/layers/GlowingLayer.java b/src/main/java/com/gildedgames/aether/client/renderer/entities/living/layers/GlowingLayer.java deleted file mode 100644 index 9f4d85d523..0000000000 --- a/src/main/java/com/gildedgames/aether/client/renderer/entities/living/layers/GlowingLayer.java +++ /dev/null @@ -1,22 +0,0 @@ -package com.gildedgames.aether.client.renderer.entities.living.layers; - -import com.google.common.base.Supplier; -import net.minecraft.util.ResourceLocation; - -public class GlowingLayer implements Supplier<ResourceLocation> -{ - - private ResourceLocation resource; - - public void setResourceLocation(ResourceLocation resource) - { - this.resource = resource; - } - - @Override - public ResourceLocation get() - { - return this.resource; - } - -} diff --git a/src/main/java/com/gildedgames/aether/client/renderer/entities/living/layers/ILayeredModel.java b/src/main/java/com/gildedgames/aether/client/renderer/entities/living/layers/ILayeredModel.java deleted file mode 100644 index dbafb3fa01..0000000000 --- a/src/main/java/com/gildedgames/aether/client/renderer/entities/living/layers/ILayeredModel.java +++ /dev/null @@ -1,9 +0,0 @@ -package com.gildedgames.aether.client.renderer.entities.living.layers; - -public interface ILayeredModel { - - void preLayerRender(); - - void postLayerRender(); - -} diff --git a/src/main/java/com/gildedgames/aether/client/renderer/entities/living/layers/LayerAerbunnyCollar.java b/src/main/java/com/gildedgames/aether/client/renderer/entities/living/layers/LayerAerbunnyCollar.java deleted file mode 100644 index cb7f9f2305..0000000000 --- a/src/main/java/com/gildedgames/aether/client/renderer/entities/living/layers/LayerAerbunnyCollar.java +++ /dev/null @@ -1,51 +0,0 @@ -package com.gildedgames.aether.client.renderer.entities.living.layers; - -import com.gildedgames.aether.client.models.entities.living.ModelAerbunny; -import com.gildedgames.aether.client.renderer.entities.living.RenderAerbunny; -import com.gildedgames.aether.common.AetherCore; -import com.gildedgames.aether.common.entities.animals.EntityAerbunny; -import net.minecraft.client.renderer.GlStateManager; -import net.minecraft.client.renderer.entity.layers.LayerRenderer; -import net.minecraft.util.ResourceLocation; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; - -@SideOnly(Side.CLIENT) -public class LayerAerbunnyCollar implements LayerRenderer<EntityAerbunny> -{ - private static final ResourceLocation COLLAR = AetherCore.getResource("textures/entities/aerbunny/aerbunny_collar.png"); - - private final RenderAerbunny renderer; - - public LayerAerbunnyCollar(RenderAerbunny renderer) - { - this.renderer = renderer; - } - - public void doRenderLayer(EntityAerbunny entitylivingbaseIn, float limbSwing, float limbSwingAmount, float partialTicks, float ageInTicks, float netHeadYaw, float headPitch, float scale) - { - if (entitylivingbaseIn.isTamed() && !entitylivingbaseIn.isInvisible()) - { - this.renderer.bindTexture(COLLAR); - - float[] afloat = entitylivingbaseIn.getCollarColor().getColorComponentValues(); - GlStateManager.color(afloat[0], afloat[1], afloat[2]); - - if (this.renderer.getMainModel() instanceof ModelAerbunny) - { - ModelAerbunny model = (ModelAerbunny) this.renderer.getMainModel(); - - GlStateManager.scale(1.01F, 1.015F, 1.01F); - GlStateManager.translate(0.0F, -0.0001F, -0.0001F); - - model.setLivingAnimations(entitylivingbaseIn, limbSwing, limbSwingAmount, partialTicks); - model.render2(entitylivingbaseIn, limbSwing, limbSwingAmount, ageInTicks, netHeadYaw, headPitch, scale); - } - } - } - - public boolean shouldCombineTextures() - { - return true; - } -} diff --git a/src/main/java/com/gildedgames/aether/client/renderer/entities/living/layers/LayerGlactrixCrystals.java b/src/main/java/com/gildedgames/aether/client/renderer/entities/living/layers/LayerGlactrixCrystals.java deleted file mode 100644 index 3036f02fb9..0000000000 --- a/src/main/java/com/gildedgames/aether/client/renderer/entities/living/layers/LayerGlactrixCrystals.java +++ /dev/null @@ -1,56 +0,0 @@ -package com.gildedgames.aether.client.renderer.entities.living.layers; - -import com.gildedgames.aether.client.models.entities.living.ModelGlactrixCrystals; -import com.gildedgames.aether.client.renderer.entities.living.RenderGlactrix; -import com.gildedgames.aether.common.AetherCore; -import com.gildedgames.aether.common.entities.animals.EntityGlactrix; -import net.minecraft.client.Minecraft; -import net.minecraft.client.renderer.GlStateManager; -import net.minecraft.client.renderer.entity.layers.LayerRenderer; -import net.minecraft.util.ResourceLocation; -import net.minecraft.util.math.MathHelper; - -public class LayerGlactrixCrystals implements LayerRenderer<EntityGlactrix> -{ - private static final ResourceLocation TEXTURE = AetherCore.getResource("textures/entities/glactrix/glactrix_crystals.png"); - - private final ModelGlactrixCrystals crystals = new ModelGlactrixCrystals(); - - private final RenderGlactrix render; - - public LayerGlactrixCrystals(RenderGlactrix render) - { - this.render = render; - } - - @Override - public void doRenderLayer(EntityGlactrix glactrix, float limbSwing, float limbSwingAmount, float partialTicks, float ageInTicks, float netHeadYaw, - float headPitch, float scale) - { - this.crystals.setModelAttributes(this.render.getMainModel()); - - GlStateManager.pushMatrix(); - Minecraft.getMinecraft().renderEngine.bindTexture(TEXTURE); - - if (!glactrix.getIsSheared()) - { - if (glactrix.getIsToppled()) - { - GlStateManager.rotate(180F, 0,0, 1F); - GlStateManager.translate(0, -2.35F, 0); - GlStateManager.rotate(MathHelper.cos((ageInTicks % 100) / 4) * 10, 0, 0F, 1.0F); - GlStateManager.rotate((ageInTicks % 100) / 100f * 360, 0, 1.0F, 0F); - } - - this.crystals.render(glactrix, limbSwing, limbSwingAmount, ageInTicks, netHeadYaw, headPitch, scale); - } - - GlStateManager.popMatrix(); - } - - @Override - public boolean shouldCombineTextures() - { - return true; - } -} diff --git a/src/main/java/com/gildedgames/aether/client/renderer/entities/living/layers/LayerGlowing.java b/src/main/java/com/gildedgames/aether/client/renderer/entities/living/layers/LayerGlowing.java deleted file mode 100644 index dd6ff3f730..0000000000 --- a/src/main/java/com/gildedgames/aether/client/renderer/entities/living/layers/LayerGlowing.java +++ /dev/null @@ -1,98 +0,0 @@ -package com.gildedgames.aether.client.renderer.entities.living.layers; - -import net.minecraft.client.model.ModelBase; -import net.minecraft.client.renderer.GlStateManager; -import net.minecraft.client.renderer.OpenGlHelper; -import net.minecraft.client.renderer.entity.RenderLiving; -import net.minecraft.client.renderer.entity.layers.LayerRenderer; -import net.minecraft.entity.EntityLiving; -import net.minecraft.util.ResourceLocation; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; - -import java.util.function.Supplier; - -@SideOnly(Side.CLIENT) -public class LayerGlowing<T extends EntityLiving> implements LayerRenderer<T> -{ - private final Supplier<ResourceLocation> glowingLayer; - - private final RenderLiving<T> renderer; - - private ModelBase model; - - public LayerGlowing(final RenderLiving<T> renderer, final ResourceLocation glowingLayer, final ModelBase model) - { - this(renderer, glowingLayer); - this.model = model; - } - - public LayerGlowing(final RenderLiving<T> renderer, final ResourceLocation glowingLayer) - { - this(renderer, () -> glowingLayer); - } - - public LayerGlowing(final RenderLiving<T> renderer, final Supplier<ResourceLocation> glowingLayer) - { - this.renderer = renderer; - this.glowingLayer = glowingLayer; - this.model = this.renderer.getMainModel(); - } - - @Override - public void doRenderLayer(final T entity, final float limbSwing, final float limbSwingAmount, final float partialTicks, final float ageInTicks, - final float netHeadYaw, - final float headPitch, final float scale) - { - if (this.glowingLayer.get() == null) - { - return; - } - - this.renderer.bindTexture(this.glowingLayer.get()); - - GlStateManager.enableBlend(); - GlStateManager.disableAlpha(); - GlStateManager.blendFunc(GlStateManager.SourceFactor.ONE, GlStateManager.DestFactor.ONE); - - GlStateManager.scale(1.001f, 1.001f, 1.001f); - - GlStateManager.depthMask(true); - GlStateManager.disableLighting(); - - int i = 61680; - int j = i % 65536; - int k = i / 65536; - - OpenGlHelper.setLightmapTextureCoords(OpenGlHelper.lightmapTexUnit, (float) j, (float) k); - - GlStateManager.color(1.0F, 1.0F, 1.0F, 1.0F); - - if (model instanceof ILayeredModel) { - ILayeredModel layered = (ILayeredModel) model; - - layered.preLayerRender(); - model.render(entity, limbSwing, limbSwingAmount, ageInTicks, netHeadYaw, headPitch, scale); - layered.postLayerRender(); - } else { - model.render(entity, limbSwing, limbSwingAmount, ageInTicks, netHeadYaw, headPitch, scale); - } - - i = entity.getBrightnessForRender(); - j = i % 65536; - k = i / 65536; - - OpenGlHelper.setLightmapTextureCoords(OpenGlHelper.lightmapTexUnit, (float) j, (float) k); - this.renderer.setLightmap(entity); - - GlStateManager.enableLighting(); - GlStateManager.disableBlend(); - GlStateManager.enableAlpha(); - } - - @Override - public boolean shouldCombineTextures() - { - return false; - } -} diff --git a/src/main/java/com/gildedgames/aether/client/renderer/entities/living/layers/LayerKirridWool.java b/src/main/java/com/gildedgames/aether/client/renderer/entities/living/layers/LayerKirridWool.java deleted file mode 100644 index ee04efcbfa..0000000000 --- a/src/main/java/com/gildedgames/aether/client/renderer/entities/living/layers/LayerKirridWool.java +++ /dev/null @@ -1,45 +0,0 @@ -package com.gildedgames.aether.client.renderer.entities.living.layers; - -import com.gildedgames.aether.client.models.entities.living.ModelRamWool; -import com.gildedgames.aether.client.renderer.entities.living.RenderKirrid; -import com.gildedgames.aether.common.AetherCore; -import com.gildedgames.aether.common.entities.animals.EntityKirrid; -import net.minecraft.client.renderer.GlStateManager; -import net.minecraft.client.renderer.entity.layers.LayerRenderer; -import net.minecraft.util.ResourceLocation; - -public class LayerKirridWool implements LayerRenderer<EntityKirrid> -{ - private static final ResourceLocation texture = AetherCore.getResource("textures/entities/kirrid/kirrid_wool.png"); - - private final ModelRamWool woolModel = new ModelRamWool(); - - private final RenderKirrid render; - - public LayerKirridWool(RenderKirrid render) - { - this.render = render; - } - - @Override - public void doRenderLayer(EntityKirrid ram, float limbSwing, float limbSwingAmount, float partialTicks, float ageInTicks, float netHeadYaw, float headPitch, float scale) - { - if (!ram.getSheared() && !ram.isInvisible() && !ram.isChild()) - { - GlStateManager.scale(1.01F, 1.01F, 1.01F); - - this.render.bindTexture(texture); - - this.woolModel.setModelAttributes(this.render.getMainModel()); - this.woolModel.setRotationAngles(limbSwing, limbSwingAmount, ageInTicks, netHeadYaw, headPitch, scale, ram); - this.woolModel.setLivingAnimations(ram, limbSwing, limbSwingAmount, partialTicks); - this.woolModel.render(ram, limbSwing, limbSwingAmount, ageInTicks, netHeadYaw, headPitch, scale); - } - } - - @Override - public boolean shouldCombineTextures() - { - return true; - } -} diff --git a/src/main/java/com/gildedgames/aether/client/renderer/entities/living/layers/LayerSheepuffWool.java b/src/main/java/com/gildedgames/aether/client/renderer/entities/living/layers/LayerSheepuffWool.java deleted file mode 100644 index 8cac64f849..0000000000 --- a/src/main/java/com/gildedgames/aether/client/renderer/entities/living/layers/LayerSheepuffWool.java +++ /dev/null @@ -1,44 +0,0 @@ -package com.gildedgames.aether.client.renderer.entities.living.layers; - -import com.gildedgames.aether.client.models.entities.living.ModelSheepuffWool; -import com.gildedgames.aether.client.renderer.entities.living.RenderSheepuff; -import com.gildedgames.aether.common.AetherCore; -import com.gildedgames.aether.common.entities.animals.EntitySheepuff; -import net.minecraft.client.renderer.GlStateManager; -import net.minecraft.client.renderer.entity.layers.LayerRenderer; -import net.minecraft.util.ResourceLocation; - -public class LayerSheepuffWool implements LayerRenderer<EntitySheepuff> -{ - private static final ResourceLocation texture = AetherCore.getResource("textures/entities/sheepuff/sheepuff_wool.png"); - - private final ModelSheepuffWool woolModel = new ModelSheepuffWool(); - - private final RenderSheepuff render; - - public LayerSheepuffWool(RenderSheepuff render) - { - this.render = render; - } - - @Override - public void doRenderLayer(EntitySheepuff ram, float p_177141_2_, float p_177141_3_, float p_177141_4_, float p_177141_5_, float p_177141_6_, float p_177141_7_, float p_177141_8_) - { - if (!ram.getSheared() && !ram.isInvisible()) - { - GlStateManager.scale(1.01F, 1.01F, 1.01F); - - this.render.bindTexture(texture); - - this.woolModel.setModelAttributes(this.render.getMainModel()); - this.woolModel.setLivingAnimations(ram, p_177141_2_, p_177141_3_, p_177141_4_); - this.woolModel.render(ram, p_177141_2_, p_177141_3_, p_177141_5_, p_177141_6_, p_177141_7_, p_177141_8_); - } - } - - @Override - public boolean shouldCombineTextures() - { - return true; - } -} diff --git a/src/main/java/com/gildedgames/aether/client/renderer/entities/living/layers/LayerSwetJelly.java b/src/main/java/com/gildedgames/aether/client/renderer/entities/living/layers/LayerSwetJelly.java deleted file mode 100644 index 1029d9f241..0000000000 --- a/src/main/java/com/gildedgames/aether/client/renderer/entities/living/layers/LayerSwetJelly.java +++ /dev/null @@ -1,52 +0,0 @@ -package com.gildedgames.aether.client.renderer.entities.living.layers; - -import com.gildedgames.aether.client.models.entities.living.ModelSwetJelly; -import com.gildedgames.aether.common.entities.monsters.EntitySwet; -import net.minecraft.client.model.ModelBase; -import net.minecraft.client.renderer.GlStateManager; -import net.minecraft.client.renderer.entity.RenderLiving; -import net.minecraft.client.renderer.entity.layers.LayerRenderer; - -public class LayerSwetJelly implements LayerRenderer<EntitySwet> -{ - private final RenderLiving render; - - private final ModelBase model = new ModelSwetJelly(); - - public LayerSwetJelly(final RenderLiving renderLiving) - { - this.render = renderLiving; - } - - @Override - public void doRenderLayer(final EntitySwet entity, final float limbSwing, final float limbSwingAmount, final float partialTicks, final float ageInTicks, - final float netHeadYaw, final float headPitch, final float scale) - { - if (!entity.isInvisible() && entity.getActualSaturation() != 0) - { - GlStateManager.color(1.0F, 1.0F, 1.0F, 1.0F); - - final float sc = ((entity.getActualSaturation() - 1) / 5.0F); - final float s = sc * 1.1F; - - GlStateManager.translate(-0.0, 0.4F + (s * -1.35F), -0.15); - GlStateManager.scale(0.7F + s, 0.7F + s, 0.7F + s); - - this.render.bindTexture(entity.getType().texture_jelly); - - GlStateManager.enableNormalize(); - GlStateManager.enableBlend(); - GlStateManager.blendFunc(GlStateManager.SourceFactor.SRC_ALPHA, GlStateManager.DestFactor.ONE_MINUS_SRC_ALPHA); - this.model.setModelAttributes(this.render.getMainModel()); - this.model.render(entity, limbSwing, limbSwingAmount, ageInTicks, netHeadYaw, headPitch, scale); - GlStateManager.disableBlend(); - GlStateManager.disableNormalize(); - } - } - - @Override - public boolean shouldCombineTextures() - { - return true; - } -} diff --git a/src/main/java/com/gildedgames/aether/client/renderer/entities/living/layers/LayerTempestShell.java b/src/main/java/com/gildedgames/aether/client/renderer/entities/living/layers/LayerTempestShell.java deleted file mode 100644 index 71d010a700..0000000000 --- a/src/main/java/com/gildedgames/aether/client/renderer/entities/living/layers/LayerTempestShell.java +++ /dev/null @@ -1,47 +0,0 @@ -package com.gildedgames.aether.client.renderer.entities.living.layers; - -import com.gildedgames.aether.client.models.entities.living.ModelTempestShell; -import com.gildedgames.aether.common.entities.animals.EntitySheepuff; -import com.gildedgames.aether.common.entities.monsters.EntityTempest; -import net.minecraft.client.model.ModelBase; -import net.minecraft.client.renderer.GlStateManager; -import net.minecraft.client.renderer.entity.RenderLiving; -import net.minecraft.client.renderer.entity.layers.LayerRenderer; -import net.minecraft.entity.EntityLiving; -import net.minecraft.util.ResourceLocation; - -import javax.annotation.Resource; - -public class LayerTempestShell implements LayerRenderer<EntityTempest> { - - public ModelTempestShell model; - - public ResourceLocation texture; - - public RenderLiving<EntityTempest> renderer; - - public LayerTempestShell(RenderLiving<EntityTempest> renderer, ResourceLocation texture, ModelTempestShell model) { - this.texture = texture; - this.model = model; - this.renderer = renderer; - } - - @Override - public void doRenderLayer(EntityTempest temp, float p_177141_2_, float p_177141_3_, float p_177141_4_, float p_177141_5_, float p_177141_6_, float p_177141_7_, float p_177141_8_) - { - if (!temp.isInvisible()) - { - GlStateManager.scale(1.01F, 1.01F, 1.01F); - - this.renderer.bindTexture(texture); - - this.model.setLivingAnimations(temp, p_177141_2_, p_177141_3_, p_177141_4_); - this.model.render(temp, p_177141_2_, p_177141_3_, p_177141_5_, p_177141_6_, p_177141_7_, p_177141_8_); - } - } - - @Override - public boolean shouldCombineTextures() { - return true; - } -} diff --git a/src/main/java/com/gildedgames/aether/client/renderer/entities/projectiles/RenderBolt.java b/src/main/java/com/gildedgames/aether/client/renderer/entities/projectiles/RenderBolt.java deleted file mode 100644 index 1445e48bbc..0000000000 --- a/src/main/java/com/gildedgames/aether/client/renderer/entities/projectiles/RenderBolt.java +++ /dev/null @@ -1,121 +0,0 @@ -package com.gildedgames.aether.client.renderer.entities.projectiles; - -import com.gildedgames.aether.common.AetherCore; -import com.gildedgames.aether.common.entities.projectiles.EntityBolt; -import net.minecraft.client.renderer.BufferBuilder; -import net.minecraft.client.renderer.GlStateManager; -import net.minecraft.client.renderer.Tessellator; -import net.minecraft.client.renderer.entity.Render; -import net.minecraft.client.renderer.entity.RenderManager; -import net.minecraft.client.renderer.vertex.DefaultVertexFormats; -import net.minecraft.util.ResourceLocation; -import net.minecraft.util.math.MathHelper; -import org.lwjgl.opengl.GL11; - -import java.util.HashMap; - -public class RenderBolt extends Render<EntityBolt> -{ - public static final ResourceLocation BOLT = AetherCore.getResource("textures/entities/bolts/scatterglass_bolt.png"); - - public RenderBolt(final RenderManager renderManager) - { - super(renderManager); - } - - @Override - public void doRender(final EntityBolt bolt, final double posX, final double posY, final double posZ, final float entityYaw, final float partialTicks) - { - this.bindTexture(BOLT); - GlStateManager.color(1.0F, 1.0F, 1.0F, 1.0F); - - GlStateManager.pushMatrix(); - GlStateManager.disableLighting(); - GlStateManager.translate((float) posX, (float) posY, (float) posZ); - GlStateManager.rotate(bolt.prevRotationYaw + (bolt.rotationYaw - bolt.prevRotationYaw) * partialTicks - 90.0F, 0.0F, 1.0F, 0.0F); - GlStateManager.rotate(bolt.prevRotationPitch + (bolt.rotationPitch - bolt.prevRotationPitch) * partialTicks, 0.0F, 0.0F, 1.0F); - - final Tessellator tessellator = Tessellator.getInstance(); - final BufferBuilder renderer = tessellator.getBuffer(); - - final int i = 0; - final float f = 0.0F; - final float f1 = 0.5F; - final float f2 = (float) (i * 10) / 32.0F; - final float f3 = (float) (5) / 32.0F; - final float f4 = 0.0F; - final float f5 = 0.15625F; - final float f6 = (float) (5 + i * 10) / 32.0F; - final float f7 = (float) (10 + i * 10) / 32.0F; - final float f8 = 0.05625F; - final float f9 = (float) bolt.arrowShake - partialTicks; - - GlStateManager.enableRescaleNormal(); - - if (f9 > 0.0F) - { - final float f10 = -MathHelper.sin(f9 * 3.0F) * f9; - - GlStateManager.rotate(f10, 0.0F, 0.0F, 1.0F); - } - - GlStateManager.rotate(45.0F, 1.0F, 0.0F, 0.0F); - GlStateManager.scale(f8, f8, f8); - GlStateManager.translate(-4.0F, 0.0F, 0.0F); - - if (this.renderOutlines) - { - GlStateManager.enableColorMaterial(); - GlStateManager.enableOutlineMode(this.getTeamColor(bolt)); - } - - GL11.glNormal3f(f8, 0.0F, 0.0F); - renderer.begin(7, DefaultVertexFormats.POSITION_TEX); - renderer.pos(-7.0D, -2.0D, -2.0D).tex((double) f4, (double) f6).endVertex(); - renderer.pos(-7.0D, -2.0D, 2.0D).tex((double) f5, (double) f6).endVertex(); - renderer.pos(-7.0D, 2.0D, 2.0D).tex((double) f5, (double) f7).endVertex(); - renderer.pos(-7.0D, 2.0D, -2.0D).tex((double) f4, (double) f7).endVertex(); - tessellator.draw(); - - GL11.glNormal3f(-f8, 0.0F, 0.0F); - renderer.begin(7, DefaultVertexFormats.POSITION_TEX); - renderer.pos(-7.0D, 2.0D, -2.0D).tex((double) f4, (double) f6).endVertex(); - renderer.pos(-7.0D, 2.0D, 2.0D).tex((double) f5, (double) f6).endVertex(); - renderer.pos(-7.0D, -2.0D, 2.0D).tex((double) f5, (double) f7).endVertex(); - renderer.pos(-7.0D, -2.0D, -2.0D).tex((double) f4, (double) f7).endVertex(); - - tessellator.draw(); - - for (int j = 0; j < 4; ++j) - { - GlStateManager.rotate(90.0F, 1.0F, 0.0F, 0.0F); - GL11.glNormal3f(0.0F, 0.0F, f8); - - renderer.begin(7, DefaultVertexFormats.POSITION_TEX); - renderer.pos(-8.0D, -2.0D, 0.0D).tex((double) f, (double) f2).endVertex(); - renderer.pos(8.0D, -2.0D, 0.0D).tex((double) f1, (double) f2).endVertex(); - renderer.pos(8.0D, 2.0D, 0.0D).tex((double) f1, (double) f3).endVertex(); - renderer.pos(-8.0D, 2.0D, 0.0D).tex((double) f, (double) f3).endVertex(); - - tessellator.draw(); - } - - if (this.renderOutlines) - { - GlStateManager.disableOutlineMode(); - GlStateManager.disableColorMaterial(); - } - - GlStateManager.disableRescaleNormal(); - GlStateManager.enableLighting(); - GlStateManager.popMatrix(); - - super.doRender(bolt, posX, posY, posZ, entityYaw, partialTicks); - } - - @Override - protected ResourceLocation getEntityTexture(final EntityBolt bolt) - { - return BOLT; - } -} diff --git a/src/main/java/com/gildedgames/aether/client/renderer/entities/projectiles/RenderDaggerfrostSnowball.java b/src/main/java/com/gildedgames/aether/client/renderer/entities/projectiles/RenderDaggerfrostSnowball.java deleted file mode 100644 index f535a69474..0000000000 --- a/src/main/java/com/gildedgames/aether/client/renderer/entities/projectiles/RenderDaggerfrostSnowball.java +++ /dev/null @@ -1,84 +0,0 @@ -package com.gildedgames.aether.client.renderer.entities.projectiles; - -import com.gildedgames.aether.client.util.SpriteGeneric; -import com.gildedgames.aether.common.AetherCore; -import com.gildedgames.aether.common.entities.projectiles.EntityDaggerfrostSnowball; -import net.minecraft.client.renderer.BufferBuilder; -import net.minecraft.client.renderer.GlStateManager; -import net.minecraft.client.renderer.Tessellator; -import net.minecraft.client.renderer.entity.Render; -import net.minecraft.client.renderer.entity.RenderManager; -import net.minecraft.client.renderer.texture.TextureAtlasSprite; -import net.minecraft.client.renderer.vertex.DefaultVertexFormats; -import net.minecraft.util.ResourceLocation; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; - -@SideOnly(Side.CLIENT) -public class RenderDaggerfrostSnowball extends Render<EntityDaggerfrostSnowball> -{ - - public static final ResourceLocation TEXTURE = AetherCore.getResource("textures/entities/projectiles/daggerfrost_snowball.png"); - - public static final SpriteGeneric SPRITE = new SpriteGeneric("daggerfrost_snowball.png", 16, 16); - - public RenderDaggerfrostSnowball(final RenderManager renderManager) - { - super(renderManager); - - SPRITE.initSprite(16, 16, 0, 0, false); - } - - @Override - public void doRender(final EntityDaggerfrostSnowball entity, final double posX, final double posY, final double posZ, final float entityYaw, - final float partialTicks) - { - GlStateManager.pushMatrix(); - this.bindEntityTexture(entity); - GlStateManager.translate((float) posX, (float) posY, (float) posZ); - GlStateManager.enableRescaleNormal(); - - final float scale = 0.5F; - - GlStateManager.scale(scale, scale, scale); - - this.bindEntityTexture(entity); - - final Tessellator tessellator = Tessellator.getInstance(); - final BufferBuilder renderer = tessellator.getBuffer(); - - this.renderEntity(renderer, SPRITE); - - tessellator.draw(); - - GlStateManager.disableRescaleNormal(); - GlStateManager.popMatrix(); - - super.doRender(entity, posX, posY, posZ, entityYaw, partialTicks); - } - - private void renderEntity(final BufferBuilder renderer, final TextureAtlasSprite icon) - { - final float f = icon.getMinU(); - final float f1 = icon.getMaxU(); - final float f2 = icon.getMinV(); - final float f3 = icon.getMaxV(); - - GlStateManager.rotate(180.0F - this.renderManager.playerViewY, 0.0F, 1.0F, 0.0F); - GlStateManager.rotate(-this.renderManager.playerViewX, 1.0F, 0.0F, 0.0F); - - renderer.begin(7, DefaultVertexFormats.POSITION_TEX_NORMAL); - - renderer.pos(-0.5D, -0.25D, 0.0D).tex((double) f, (double) f3).normal(0.0F, 1.0F, 0.0F).endVertex(); - renderer.pos(0.5D, -0.25D, 0.0D).tex((double) f1, (double) f3).normal(0.0F, 1.0F, 0.0F).endVertex(); - renderer.pos(0.5D, 0.75D, 0.0D).tex((double) f1, (double) f2).normal(0.0F, 1.0F, 0.0F).endVertex(); - renderer.pos(-0.5D, 0.75D, 0.0D).tex((double) f, (double) f2).normal(0.0F, 1.0F, 0.0F).endVertex(); - } - - @Override - protected ResourceLocation getEntityTexture(final EntityDaggerfrostSnowball entity) - { - return TEXTURE; - } - -} diff --git a/src/main/java/com/gildedgames/aether/client/renderer/entities/projectiles/RenderDart.java b/src/main/java/com/gildedgames/aether/client/renderer/entities/projectiles/RenderDart.java deleted file mode 100644 index d830c9d674..0000000000 --- a/src/main/java/com/gildedgames/aether/client/renderer/entities/projectiles/RenderDart.java +++ /dev/null @@ -1,116 +0,0 @@ -package com.gildedgames.aether.client.renderer.entities.projectiles; - -import com.gildedgames.aether.common.AetherCore; -import com.gildedgames.aether.common.entities.projectiles.EntityDart; -import com.gildedgames.aether.common.items.weapons.ItemDartType; -import net.minecraft.client.renderer.BufferBuilder; -import net.minecraft.client.renderer.GlStateManager; -import net.minecraft.client.renderer.Tessellator; -import net.minecraft.client.renderer.entity.Render; -import net.minecraft.client.renderer.entity.RenderManager; -import net.minecraft.client.renderer.vertex.DefaultVertexFormats; -import net.minecraft.util.ResourceLocation; -import net.minecraft.util.math.MathHelper; -import org.lwjgl.opengl.GL11; - -import java.util.HashMap; - -public class RenderDart extends Render<EntityDart> -{ - private static final HashMap<ItemDartType, ResourceLocation> dartTextures = new HashMap<>(); - - static - { - dartTextures.put(ItemDartType.GOLDEN, AetherCore.getResource("textures/entities/darts/golden_dart.png")); - dartTextures.put(ItemDartType.ENCHANTED, AetherCore.getResource("textures/entities/darts/enchanted_dart.png")); - dartTextures.put(ItemDartType.POISON, AetherCore.getResource("textures/entities/darts/poison_dart.png")); - } - - public RenderDart(final RenderManager renderManager) - { - super(renderManager); - } - - @Override - public void doRender(final EntityDart dart, final double posX, final double posY, final double posZ, final float entityYaw, final float partialTicks) - { - this.bindEntityTexture(dart); - - GlStateManager.color(1.0F, 1.0F, 1.0F, 1.0F); - GlStateManager.pushMatrix(); - - GlStateManager.translate((float) posX, (float) posY, (float) posZ); - GlStateManager.rotate(dart.prevRotationYaw + (dart.rotationYaw - dart.prevRotationYaw) * partialTicks - 90.0F, 0.0F, 1.0F, 0.0F); - GlStateManager.rotate(dart.prevRotationPitch + (dart.rotationPitch - dart.prevRotationPitch) * partialTicks, 0.0F, 0.0F, 1.0F); - - final Tessellator tessellator = Tessellator.getInstance(); - final BufferBuilder renderer = tessellator.getBuffer(); - - final int i = 0; - final float f = 0.0F; - final float f1 = 0.5F; - final float f2 = (float) (i * 10) / 32.0F; - final float f3 = (float) (5) / 32.0F; - final float f4 = 0.0F; - final float f5 = 0.15625F; - final float f6 = (float) (5) / 32.0F; - final float f7 = (float) (10) / 32.0F; - final float f8 = 0.05625F; - final float f9 = (float) dart.arrowShake - partialTicks; - - GlStateManager.enableRescaleNormal(); - - if (f9 > 0.0F) - { - final float f10 = -MathHelper.sin(f9 * 3.0F) * f9; - - GlStateManager.rotate(f10, 0.0F, 0.0F, 1.0F); - } - - GlStateManager.rotate(45.0F, 1.0F, 0.0F, 0.0F); - GlStateManager.scale(f8, f8, f8); - GlStateManager.translate(-4.0F, 0.0F, 0.0F); - - GL11.glNormal3f(f8, 0.0F, 0.0F); - renderer.begin(7, DefaultVertexFormats.POSITION_TEX); - renderer.pos(-7.0D, -2.0D, -2.0D).tex((double) f4, (double) f6).endVertex(); - renderer.pos(-7.0D, -2.0D, 2.0D).tex((double) f5, (double) f6).endVertex(); - renderer.pos(-7.0D, 2.0D, 2.0D).tex((double) f5, (double) f7).endVertex(); - renderer.pos(-7.0D, 2.0D, -2.0D).tex((double) f4, (double) f7).endVertex(); - tessellator.draw(); - - GL11.glNormal3f(-f8, 0.0F, 0.0F); - renderer.begin(7, DefaultVertexFormats.POSITION_TEX); - renderer.pos(-7.0D, 2.0D, -2.0D).tex((double) f4, (double) f6).endVertex(); - renderer.pos(-7.0D, 2.0D, 2.0D).tex((double) f5, (double) f6).endVertex(); - renderer.pos(-7.0D, -2.0D, 2.0D).tex((double) f5, (double) f7).endVertex(); - renderer.pos(-7.0D, -2.0D, -2.0D).tex((double) f4, (double) f7).endVertex(); - - tessellator.draw(); - - for (int j = 0; j < 4; ++j) - { - GlStateManager.rotate(90.0F, 1.0F, 0.0F, 0.0F); - GL11.glNormal3f(0.0F, 0.0F, f8); - - renderer.begin(7, DefaultVertexFormats.POSITION_TEX); - renderer.pos(-8.0D, -2.0D, 0.0D).tex((double) f, (double) f2).endVertex(); - renderer.pos(8.0D, -2.0D, 0.0D).tex((double) f1, (double) f2).endVertex(); - renderer.pos(8.0D, 2.0D, 0.0D).tex((double) f1, (double) f3).endVertex(); - renderer.pos(-8.0D, 2.0D, 0.0D).tex((double) f, (double) f3).endVertex(); - - tessellator.draw(); - } - - GlStateManager.disableRescaleNormal(); - GlStateManager.popMatrix(); - - super.doRender(dart, posX, posY, posZ, entityYaw, partialTicks); - } - - @Override - protected ResourceLocation getEntityTexture(final EntityDart dart) - { - return dartTextures.get(dart.getDartType()); - } -} diff --git a/src/main/java/com/gildedgames/aether/client/renderer/items/ItemMoaEggColorHandler.java b/src/main/java/com/gildedgames/aether/client/renderer/items/ItemMoaEggColorHandler.java deleted file mode 100644 index 54582d1f79..0000000000 --- a/src/main/java/com/gildedgames/aether/client/renderer/items/ItemMoaEggColorHandler.java +++ /dev/null @@ -1,39 +0,0 @@ -package com.gildedgames.aether.client.renderer.items; - -import com.gildedgames.aether.common.entities.genes.moa.MoaGenePool; -import com.gildedgames.aether.common.items.other.ItemMoaEgg; -import net.minecraft.client.renderer.color.IItemColor; -import net.minecraft.item.ItemStack; - -public class ItemMoaEggColorHandler implements IItemColor -{ - - @Override - public int colorMultiplier(final ItemStack stack, final int tintIndex) - { - final MoaGenePool genePool = ItemMoaEgg.getGenePool(stack); - - if (genePool != null && genePool.getFeathers() != null) - { - if (tintIndex == 0) - { - return genePool.getFeathers().gene().data().getRGB(); - } - else if (tintIndex == 1) - { - return genePool.getKeratin().gene().data().getRGB(); - } - else if (tintIndex == 2) - { - return genePool.getEyes().gene().data().getRGB(); - } - else if (tintIndex == 3) - { - return genePool.getFeathers().gene().data().darker().getRGB(); - } - } - - return 0xFFFFFF; - } - -} diff --git a/src/main/java/com/gildedgames/aether/client/renderer/items/MoaFeatherColorHandler.java b/src/main/java/com/gildedgames/aether/client/renderer/items/MoaFeatherColorHandler.java deleted file mode 100644 index de87802bbe..0000000000 --- a/src/main/java/com/gildedgames/aether/client/renderer/items/MoaFeatherColorHandler.java +++ /dev/null @@ -1,24 +0,0 @@ -package com.gildedgames.aether.client.renderer.items; - -import com.gildedgames.aether.common.items.other.ItemMoaFeather; -import net.minecraft.client.renderer.color.IItemColor; -import net.minecraft.item.ItemStack; - -public class MoaFeatherColorHandler implements IItemColor -{ - - @Override - public int colorMultiplier(final ItemStack stack, final int tintIndex) - { - if (stack.getItem() instanceof ItemMoaFeather) - { - if (tintIndex == 1) - { - return ItemMoaFeather.getColor(stack); - } - } - - return 0xFFFFFF; - } - -} diff --git a/src/main/java/com/gildedgames/aether/client/renderer/items/WrappingPaperColorHandler.java b/src/main/java/com/gildedgames/aether/client/renderer/items/WrappingPaperColorHandler.java deleted file mode 100644 index 92aae2de0d..0000000000 --- a/src/main/java/com/gildedgames/aether/client/renderer/items/WrappingPaperColorHandler.java +++ /dev/null @@ -1,31 +0,0 @@ -package com.gildedgames.aether.client.renderer.items; - -import com.gildedgames.aether.common.items.other.ItemWrappingPaper; -import net.minecraft.client.renderer.color.IItemColor; -import net.minecraft.item.ItemDye; -import net.minecraft.item.ItemStack; - -public class WrappingPaperColorHandler implements IItemColor -{ - - @Override - public int colorMultiplier(final ItemStack stack, final int tintIndex) - { - if (stack.getItem() instanceof ItemWrappingPaper) - { - final ItemWrappingPaper.PresentDyeData data = ItemWrappingPaper.getDyeData(stack); - - if (tintIndex == 0) - { - return ItemDye.DYE_COLORS[data.getBoxColor()]; - } - else if (tintIndex == 2) - { - return ItemDye.DYE_COLORS[data.getBowColor()]; - } - } - - return 0xFFFFFF; - } - -} diff --git a/src/main/java/com/gildedgames/aether/client/renderer/particles/ParticleAetherPortal.java b/src/main/java/com/gildedgames/aether/client/renderer/particles/ParticleAetherPortal.java deleted file mode 100644 index 16ce72e437..0000000000 --- a/src/main/java/com/gildedgames/aether/client/renderer/particles/ParticleAetherPortal.java +++ /dev/null @@ -1,18 +0,0 @@ -package com.gildedgames.aether.client.renderer.particles; - -import net.minecraft.client.particle.ParticlePortal; -import net.minecraft.world.World; - -public class ParticleAetherPortal extends ParticlePortal -{ - public ParticleAetherPortal(World world, double posX, double posY, double posZ, double motionX, double motionY, double motionZ) - { - super(world, posX, posY, posZ, motionX, motionY, motionZ); - - float colorMultiplier = this.rand.nextFloat() * 0.6F + 0.4F; - - this.particleRed = this.particleGreen = this.particleBlue = 1.0F * colorMultiplier; - this.particleRed *= 0.2F; - this.particleGreen *= 0.4F; - } -} diff --git a/src/main/java/com/gildedgames/aether/client/renderer/particles/ParticleAetherStatusEffect.java b/src/main/java/com/gildedgames/aether/client/renderer/particles/ParticleAetherStatusEffect.java deleted file mode 100644 index 2eec95be47..0000000000 --- a/src/main/java/com/gildedgames/aether/client/renderer/particles/ParticleAetherStatusEffect.java +++ /dev/null @@ -1,25 +0,0 @@ -package com.gildedgames.aether.client.renderer.particles; - -import net.minecraft.client.particle.Particle; -import net.minecraft.world.World; - -public class ParticleAetherStatusEffect extends Particle -{ - public ParticleAetherStatusEffect(World worldIn, double posXIn, double posYIn, double posZIn, double motionX, double motionY, double motionZ, float particleRed, float particleGreen, float particleBlue) - { - super(worldIn, posXIn, posYIn, posZIn); - - float f = (float)Math.random() * 0.4F + 0.6F; - this.particleRed = ((float)(Math.random() * 0.20000000298023224D) + 0.8F) * particleRed * f; - this.particleGreen = ((float)(Math.random() * 0.20000000298023224D) + 0.8F) * particleGreen * f; - this.particleBlue = ((float)(Math.random() * 0.20000000298023224D) + 0.8F) * particleBlue * f; - - this.motionY = motionY; - this.motionX = motionX; - this.motionZ = motionZ; - - this.particleMaxAge = (int)(8.0D / (Math.random() * 0.8D + 0.2D)); - - this.canCollide = false; - } -} diff --git a/src/main/java/com/gildedgames/aether/client/renderer/particles/ParticleGolden.java b/src/main/java/com/gildedgames/aether/client/renderer/particles/ParticleGolden.java deleted file mode 100644 index 7a67ced540..0000000000 --- a/src/main/java/com/gildedgames/aether/client/renderer/particles/ParticleGolden.java +++ /dev/null @@ -1,15 +0,0 @@ -package com.gildedgames.aether.client.renderer.particles; - -import net.minecraft.world.World; - -public class ParticleGolden extends ParticleAetherPortal -{ - public ParticleGolden(World world, double posX, double posY, double posZ, double motionX, double motionY, double motionZ) - { - super(world, posX, posY, posZ, motionX, motionY, motionZ); - - this.particleBlue = 0.0f; - this.particleRed = 0.976f; - this.particleGreen = 0.745f; - } -} diff --git a/src/main/java/com/gildedgames/aether/client/renderer/particles/ParticleImpact.java b/src/main/java/com/gildedgames/aether/client/renderer/particles/ParticleImpact.java deleted file mode 100644 index 19b266efce..0000000000 --- a/src/main/java/com/gildedgames/aether/client/renderer/particles/ParticleImpact.java +++ /dev/null @@ -1,141 +0,0 @@ -package com.gildedgames.aether.client.renderer.particles; - -import com.gildedgames.aether.common.AetherCore; -import net.minecraft.client.Minecraft; -import net.minecraft.client.particle.IParticleFactory; -import net.minecraft.client.particle.Particle; -import net.minecraft.client.renderer.BufferBuilder; -import net.minecraft.client.renderer.GlStateManager; -import net.minecraft.client.renderer.RenderHelper; -import net.minecraft.client.renderer.Tessellator; -import net.minecraft.client.renderer.texture.TextureManager; -import net.minecraft.client.renderer.vertex.DefaultVertexFormats; -import net.minecraft.client.renderer.vertex.VertexFormat; -import net.minecraft.entity.Entity; -import net.minecraft.util.ResourceLocation; -import net.minecraft.util.math.MathHelper; -import net.minecraft.util.math.Vec3d; -import net.minecraft.world.World; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; - -@SideOnly(Side.CLIENT) -public class ParticleImpact extends Particle -{ - private static final ResourceLocation SLASH_TEXTURE = AetherCore.getResource("textures/particles/impact.png"); - - public ParticleImpact(World worldIn, double xCoordIn, double yCoordIn, double zCoordIn, double p_i46285_8_, double p_i46285_10_, double p_i46285_12_, float p_i46285_14_) - { - super(worldIn, xCoordIn, yCoordIn, zCoordIn, 0.0D, 0.0D, 0.0D); - - float f0 = Math.random() > 0.5 ? 0.5F : -0.5F; - float f1 = Math.random() > 0.5 ? 0.5F : -0.5F; - float f2 = Math.random() > 0.5 ? 0.5F : -0.5F; - this.motionX *= 0.10000000149011612D; - this.motionY *= 0.10000000149011612D; - this.motionZ *= 0.10000000149011612D; - this.motionX += f0 * 0.4D; - this.motionY += f1 * 0.4D; - this.motionZ += f2 * 0.4D; - float f = 1.0F; - this.particleRed = f; - this.particleGreen = f; - this.particleBlue = f; - this.particleScale *= 0.75F; - this.particleScale *= p_i46285_14_; - this.particleMaxAge = (int)(6.0D / (Math.random() * 0.8D + 0.6D)); - this.particleMaxAge = (int)((float)this.particleMaxAge * p_i46285_14_); - this.onUpdate(); - } - - public void onUpdate() - { - this.prevPosX = this.posX; - this.prevPosY = this.posY; - this.prevPosZ = this.posZ; - - if (this.particleAge++ >= this.particleMaxAge) - { - this.setExpired(); - } - - this.move(this.motionX, this.motionY, this.motionZ); - this.motionX *= 0.699999988079071D; - this.motionY *= 0.699999988079071D; - this.motionZ *= 0.699999988079071D; - this.motionY -= 0.019999999552965164D; - - if (this.onGround) - { - this.motionX *= 0.699999988079071D; - this.motionZ *= 0.699999988079071D; - } - } - - @Override - public void renderParticle(BufferBuilder buffer, Entity entityIn, float partialTicks, float rotationX, float rotationZ, float rotationYZ, float rotationXY, - float rotationXZ) - { - Minecraft.getMinecraft().renderEngine.bindTexture(SLASH_TEXTURE); - - GlStateManager.disableLighting(); - - double x = this.prevPosX + (this.posX - this.prevPosX) * (double) partialTicks - interpPosX; - double y = this.prevPosY + (this.posY - this.prevPosY) * (double) partialTicks - interpPosY; - double z = this.prevPosZ + (this.posZ - this.prevPosZ) * (double) partialTicks - interpPosZ; - - int brightness = this.getBrightnessForRender(partialTicks); - - int j = brightness >> 16 & 65535; - int k = brightness & 65535; - - float f = ((float)this.particleAge + partialTicks) / (float)this.particleMaxAge * 32.0F; - - f = MathHelper.clamp(f, 0.0F, 1.0F); - - float scale = 0.1F * this.particleScale * f; - - Vec3d[] avec3d = new Vec3d[] { - new Vec3d( - (double) (-rotationX * scale - rotationXY * scale), - (double) (-rotationZ * scale), - (double) (-rotationYZ * scale - rotationXZ * scale) - ), - new Vec3d( - (double) (-rotationX * scale + rotationXY * scale), - (double) (rotationZ * scale), - (double) (-rotationYZ * scale + rotationXZ * scale) - ), - new Vec3d( - (double) (rotationX * scale + rotationXY * scale), - (double) (rotationZ * scale), - (double) (rotationYZ * scale + rotationXZ * scale) - ), - new Vec3d( - (double) (rotationX * scale - rotationXY * scale), - (double) (-rotationZ * scale), - (double) (rotationYZ * scale - rotationXZ * scale) - ) - }; - - float a = 1.0f - (Math.max(0.0f, this.particleAge - 70.0f) * 0.03f); - - buffer.begin(7, DefaultVertexFormats.PARTICLE_POSITION_TEX_COLOR_LMAP); - buffer.pos(x + avec3d[0].x, y + avec3d[0].y, z + avec3d[0].z).tex(0.0D, 1.0D).color(this.particleRed, this.particleGreen, this.particleBlue, a) - .lightmap(j, k).endVertex(); - buffer.pos(x + avec3d[1].x, y + avec3d[1].y, z + avec3d[1].z).tex(1.0D, 1.0D).color(this.particleRed, this.particleGreen, this.particleBlue, a) - .lightmap(j, k).endVertex(); - buffer.pos(x + avec3d[2].x, y + avec3d[2].y, z + avec3d[2].z).tex(1.0D, 0.0D).color(this.particleRed, this.particleGreen, this.particleBlue, a) - .lightmap(j, k).endVertex(); - buffer.pos(x + avec3d[3].x, y + avec3d[3].y, z + avec3d[3].z).tex(0.0D, 0.0D).color(this.particleRed, this.particleGreen, this.particleBlue, a) - .lightmap(j, k).endVertex(); - - Tessellator.getInstance().draw(); - } - - @Override - public int getFXLayer() - { - return 3; - } -} \ No newline at end of file diff --git a/src/main/java/com/gildedgames/aether/client/renderer/particles/ParticleLeaf.java b/src/main/java/com/gildedgames/aether/client/renderer/particles/ParticleLeaf.java deleted file mode 100644 index f03495385d..0000000000 --- a/src/main/java/com/gildedgames/aether/client/renderer/particles/ParticleLeaf.java +++ /dev/null @@ -1,232 +0,0 @@ -package com.gildedgames.aether.client.renderer.particles; - -import com.gildedgames.aether.api.registrar.BlocksAether; -import com.gildedgames.aether.api.registrar.CapabilitiesAether; -import com.gildedgames.aether.api.world.islands.precipitation.IPrecipitationManager; -import com.gildedgames.aether.common.AetherCore; -import net.minecraft.block.Block; -import net.minecraft.client.Minecraft; -import net.minecraft.client.particle.Particle; -import net.minecraft.client.renderer.BufferBuilder; -import net.minecraft.client.renderer.GlStateManager; -import net.minecraft.client.renderer.Tessellator; -import net.minecraft.client.renderer.vertex.DefaultVertexFormats; -import net.minecraft.entity.Entity; -import net.minecraft.util.ResourceLocation; -import net.minecraft.util.math.MathHelper; -import net.minecraft.util.math.Vec3d; -import net.minecraft.world.World; - -public class ParticleLeaf extends Particle -{ - private final ResourceLocation sprite = AetherCore.getResource("textures/particles/skyroot_leaf_particle.png"); - - private final float mulRotX; - - private final float mulRotY; - - private float prevRotX; - - private float prevRotY; - - private float rotX; - - private float rotY; - - public ParticleLeaf(World worldIn, double posXIn, double posYIn, double posZIn, double motionX, double motionY, double motionZ, Block block) - { - super(worldIn, posXIn, posYIn, posZIn); - - if (block == BlocksAether.green_skyroot_leaves) - { - this.particleRed = 0.627f; - this.particleGreen = 0.753f; - this.particleBlue = 0.522f; - } - else if (block == BlocksAether.highlands_bush) - { - this.particleRed = 0.466f; - this.particleGreen = 0.619f; - this.particleBlue = 0.388f; - } - else if (block == BlocksAether.amberoot_leaves) - { - this.particleRed = 0.976f; - this.particleGreen = 0.745f; - this.particleBlue = 0.0f; - } - else if (block == BlocksAether.blue_dark_skyroot_leaves) - { - this.particleRed = 0.282f; - this.particleGreen = 0.401f; - this.particleBlue = 0.428f; - } - else if (block == BlocksAether.blue_light_skyroot_leaves) - { - this.particleRed = 0.592f; - this.particleGreen = 0.720f; - this.particleBlue = 0.733f; - } - else if (block == BlocksAether.blue_skyroot_leaves) - { - this.particleRed = 0.458f; - this.particleGreen = 0.606f; - this.particleBlue = 0.657f; - } - else if (block == BlocksAether.dark_blue_dark_skyroot_leaves) - { - this.particleRed = 0.294f; - this.particleGreen = 0.355f; - this.particleBlue = 0.588f; - } - else if (block == BlocksAether.dark_blue_light_skyroot_leaves) - { - this.particleRed = 0.468f; - this.particleGreen = 0.501f; - this.particleBlue = 0.734f; - } - else if (block == BlocksAether.dark_blue_skyroot_leaves) - { - this.particleRed = 0.355f; - this.particleGreen = 0.410f; - this.particleBlue = 0.725f; - } - else if (block == BlocksAether.green_dark_skyroot_leaves) - { - this.particleRed = 0.326f; - this.particleGreen = 0.428f; - this.particleBlue = 0.228f; - } - else if (block == BlocksAether.green_light_skyroot_leaves) - { - this.particleRed = 0.697f; - this.particleGreen = 0.811f; - this.particleBlue = 0.597f; - } - else if (block == BlocksAether.therawood_leaves) - { - this.particleRed = 0.253f; - this.particleGreen = 0.512f; - this.particleBlue = 0.301f; - } - else if (block == BlocksAether.mutant_leaves || block == BlocksAether.mutant_leaves_decorated) - { - this.particleRed = 0.569f; - this.particleGreen = 0.533f; - this.particleBlue = 0.706f; - } - - this.motionY = motionY; - this.motionX = motionX; - this.motionZ = motionZ; - - if (worldIn.isRaining()) - { - IPrecipitationManager precipitation = worldIn.getCapability(CapabilitiesAether.PRECIPITATION_MANAGER, null); - - if (precipitation != null) - { - float strength = precipitation.getStrength().getWindForceMultiplier(); - - this.motionX += precipitation.getWindVector().x * strength; - this.motionZ += precipitation.getWindVector().y * strength; - - this.motionY += -strength * 0.5f; - } - } - - this.mulRotY = (this.rand.nextFloat() * 100) * (float) (this.motionY); - this.mulRotX = (this.rand.nextFloat() * 100) * (float) (this.motionY); - - this.particleMaxAge = 100; - this.canCollide = false; - } - - @Override - public void onUpdate() - { - super.onUpdate(); - - this.prevRotX = this.rotX; - this.prevRotY = this.rotY; - - this.rotX += this.mulRotX; - this.rotY += this.mulRotY; - } - - @Override - public void renderParticle(BufferBuilder buffer, Entity entityIn, float partialTicks, float rotationX, float rotationZ, float rotationYZ, float rotationXY, - float rotationXZ) - { - Minecraft.getMinecraft().renderEngine.bindTexture(this.sprite); - - GlStateManager.disableLighting(); - - double x = this.prevPosX + (this.posX - this.prevPosX) * (double) partialTicks - interpPosX; - double y = this.prevPosY + (this.posY - this.prevPosY) * (double) partialTicks - interpPosY; - double z = this.prevPosZ + (this.posZ - this.prevPosZ) * (double) partialTicks - interpPosZ; - - int brightness = this.getBrightnessForRender(partialTicks); - - int j = brightness >> 16 & 65535; - int k = brightness & 65535; - - float scale = 0.1F * this.particleScale; - - float f2 = this.prevRotX + ((this.rotX - this.prevRotX) * partialTicks); - float f3 = this.prevRotY + ((this.rotY - this.prevRotY) * partialTicks); - - int i = 0; - - rotationX = MathHelper.cos(f3 * 0.017453292F) * (float) (1 - i * 2); - rotationZ = MathHelper.sin(f3 * 0.017453292F) * (float) (1 - i * 2); - - rotationYZ = -rotationZ * MathHelper.sin(f2 * 0.017453292F) * (float) (1 - i * 2); - rotationXY = rotationX * MathHelper.sin(f2 * 0.017453292F) * (float) (1 - i * 2); - rotationXZ = MathHelper.cos(f2 * 0.017453292F); - - Vec3d[] avec3d = new Vec3d[] { - new Vec3d( - (double) (-rotationX * scale - rotationXY * scale), - (double) (-rotationZ * scale), - (double) (-rotationYZ * scale - rotationXZ * scale) - ), - new Vec3d( - (double) (-rotationX * scale + rotationXY * scale), - (double) (rotationZ * scale), - (double) (-rotationYZ * scale + rotationXZ * scale) - ), - new Vec3d( - (double) (rotationX * scale + rotationXY * scale), - (double) (rotationZ * scale), - (double) (rotationYZ * scale + rotationXZ * scale) - ), - new Vec3d( - (double) (rotationX * scale - rotationXY * scale), - (double) (-rotationZ * scale), - (double) (rotationYZ * scale - rotationXZ * scale) - ) - }; - - float a = 1.0f - (Math.max(0.0f, this.particleAge - 70.0f) * 0.03f); - - buffer.begin(7, DefaultVertexFormats.PARTICLE_POSITION_TEX_COLOR_LMAP); - buffer.pos(x + avec3d[0].x, y + avec3d[0].y, z + avec3d[0].z).tex(0.0D, 1.0D).color(this.particleRed, this.particleGreen, this.particleBlue, a) - .lightmap(j, k).endVertex(); - buffer.pos(x + avec3d[1].x, y + avec3d[1].y, z + avec3d[1].z).tex(1.0D, 1.0D).color(this.particleRed, this.particleGreen, this.particleBlue, a) - .lightmap(j, k).endVertex(); - buffer.pos(x + avec3d[2].x, y + avec3d[2].y, z + avec3d[2].z).tex(1.0D, 0.0D).color(this.particleRed, this.particleGreen, this.particleBlue, a) - .lightmap(j, k).endVertex(); - buffer.pos(x + avec3d[3].x, y + avec3d[3].y, z + avec3d[3].z).tex(0.0D, 0.0D).color(this.particleRed, this.particleGreen, this.particleBlue, a) - .lightmap(j, k).endVertex(); - - Tessellator.getInstance().draw(); - } - - @Override - public int getFXLayer() - { - return 3; - } - -} diff --git a/src/main/java/com/gildedgames/aether/client/renderer/particles/ParticlePierce.java b/src/main/java/com/gildedgames/aether/client/renderer/particles/ParticlePierce.java deleted file mode 100644 index ad5fc5663b..0000000000 --- a/src/main/java/com/gildedgames/aether/client/renderer/particles/ParticlePierce.java +++ /dev/null @@ -1,141 +0,0 @@ -package com.gildedgames.aether.client.renderer.particles; - -import com.gildedgames.aether.common.AetherCore; -import net.minecraft.client.Minecraft; -import net.minecraft.client.particle.IParticleFactory; -import net.minecraft.client.particle.Particle; -import net.minecraft.client.renderer.BufferBuilder; -import net.minecraft.client.renderer.GlStateManager; -import net.minecraft.client.renderer.RenderHelper; -import net.minecraft.client.renderer.Tessellator; -import net.minecraft.client.renderer.texture.TextureManager; -import net.minecraft.client.renderer.vertex.DefaultVertexFormats; -import net.minecraft.client.renderer.vertex.VertexFormat; -import net.minecraft.entity.Entity; -import net.minecraft.util.ResourceLocation; -import net.minecraft.util.math.MathHelper; -import net.minecraft.util.math.Vec3d; -import net.minecraft.world.World; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; - -@SideOnly(Side.CLIENT) -public class ParticlePierce extends Particle -{ - private static final ResourceLocation SLASH_TEXTURE = AetherCore.getResource("textures/particles/pierce.png"); - - public ParticlePierce(World worldIn, double xCoordIn, double yCoordIn, double zCoordIn, double p_i46285_8_, double p_i46285_10_, double p_i46285_12_, float p_i46285_14_) - { - super(worldIn, xCoordIn, yCoordIn, zCoordIn, 0.0D, 0.0D, 0.0D); - - float f0 = Math.random() > 0.5 ? 0.5F : -0.5F; - float f1 = Math.random() > 0.5 ? 0.5F : -0.5F; - float f2 = Math.random() > 0.5 ? 0.5F : -0.5F; - this.motionX *= 0.10000000149011612D; - this.motionY *= 0.10000000149011612D; - this.motionZ *= 0.10000000149011612D; - this.motionX += f0 * 0.4D; - this.motionY += f1 * 0.4D; - this.motionZ += f2 * 0.4D; - float f = 1.0F; - this.particleRed = f; - this.particleGreen = f; - this.particleBlue = f; - this.particleScale *= 0.75F; - this.particleScale *= p_i46285_14_; - this.particleMaxAge = (int)(6.0D / (Math.random() * 0.8D + 0.6D)); - this.particleMaxAge = (int)((float)this.particleMaxAge * p_i46285_14_); - this.onUpdate(); - } - - public void onUpdate() - { - this.prevPosX = this.posX; - this.prevPosY = this.posY; - this.prevPosZ = this.posZ; - - if (this.particleAge++ >= this.particleMaxAge) - { - this.setExpired(); - } - - this.move(this.motionX, this.motionY, this.motionZ); - this.motionX *= 0.699999988079071D; - this.motionY *= 0.699999988079071D; - this.motionZ *= 0.699999988079071D; - this.motionY -= 0.019999999552965164D; - - if (this.onGround) - { - this.motionX *= 0.699999988079071D; - this.motionZ *= 0.699999988079071D; - } - } - - @Override - public void renderParticle(BufferBuilder buffer, Entity entityIn, float partialTicks, float rotationX, float rotationZ, float rotationYZ, float rotationXY, - float rotationXZ) - { - Minecraft.getMinecraft().renderEngine.bindTexture(SLASH_TEXTURE); - - GlStateManager.disableLighting(); - - double x = this.prevPosX + (this.posX - this.prevPosX) * (double) partialTicks - interpPosX; - double y = this.prevPosY + (this.posY - this.prevPosY) * (double) partialTicks - interpPosY; - double z = this.prevPosZ + (this.posZ - this.prevPosZ) * (double) partialTicks - interpPosZ; - - int brightness = this.getBrightnessForRender(partialTicks); - - int j = brightness >> 16 & 65535; - int k = brightness & 65535; - - float f = ((float)this.particleAge + partialTicks) / (float)this.particleMaxAge * 32.0F; - - f = MathHelper.clamp(f, 0.0F, 1.0F); - - float scale = 0.1F * this.particleScale * f; - - Vec3d[] avec3d = new Vec3d[] { - new Vec3d( - (double) (-rotationX * scale - rotationXY * scale), - (double) (-rotationZ * scale), - (double) (-rotationYZ * scale - rotationXZ * scale) - ), - new Vec3d( - (double) (-rotationX * scale + rotationXY * scale), - (double) (rotationZ * scale), - (double) (-rotationYZ * scale + rotationXZ * scale) - ), - new Vec3d( - (double) (rotationX * scale + rotationXY * scale), - (double) (rotationZ * scale), - (double) (rotationYZ * scale + rotationXZ * scale) - ), - new Vec3d( - (double) (rotationX * scale - rotationXY * scale), - (double) (-rotationZ * scale), - (double) (rotationYZ * scale - rotationXZ * scale) - ) - }; - - float a = 1.0f - (Math.max(0.0f, this.particleAge - 70.0f) * 0.03f); - - buffer.begin(7, DefaultVertexFormats.PARTICLE_POSITION_TEX_COLOR_LMAP); - buffer.pos(x + avec3d[0].x, y + avec3d[0].y, z + avec3d[0].z).tex(0.0D, 1.0D).color(this.particleRed, this.particleGreen, this.particleBlue, a) - .lightmap(j, k).endVertex(); - buffer.pos(x + avec3d[1].x, y + avec3d[1].y, z + avec3d[1].z).tex(1.0D, 1.0D).color(this.particleRed, this.particleGreen, this.particleBlue, a) - .lightmap(j, k).endVertex(); - buffer.pos(x + avec3d[2].x, y + avec3d[2].y, z + avec3d[2].z).tex(1.0D, 0.0D).color(this.particleRed, this.particleGreen, this.particleBlue, a) - .lightmap(j, k).endVertex(); - buffer.pos(x + avec3d[3].x, y + avec3d[3].y, z + avec3d[3].z).tex(0.0D, 0.0D).color(this.particleRed, this.particleGreen, this.particleBlue, a) - .lightmap(j, k).endVertex(); - - Tessellator.getInstance().draw(); - } - - @Override - public int getFXLayer() - { - return 3; - } -} \ No newline at end of file diff --git a/src/main/java/com/gildedgames/aether/client/renderer/particles/ParticleRainProxyFactory.java b/src/main/java/com/gildedgames/aether/client/renderer/particles/ParticleRainProxyFactory.java deleted file mode 100644 index 9bfae191a0..0000000000 --- a/src/main/java/com/gildedgames/aether/client/renderer/particles/ParticleRainProxyFactory.java +++ /dev/null @@ -1,54 +0,0 @@ -package com.gildedgames.aether.client.renderer.particles; - -import com.gildedgames.aether.api.registrar.CapabilitiesAether; -import com.gildedgames.aether.api.world.islands.precipitation.IPrecipitationManager; -import com.gildedgames.aether.common.util.helpers.AetherHelper; -import net.minecraft.client.particle.Particle; -import net.minecraft.client.particle.ParticleRain; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.World; -import net.minecraft.world.biome.Biome; - -// Ugly hack to modify rain particles in the Aether... probably not very fast, either. Oh well. -public class ParticleRainProxyFactory extends ParticleRain.Factory -{ - @Override - public Particle createParticle(int particleID, World worldIn, double xCoordIn, double yCoordIn, double zCoordIn, double xSpeedIn, double ySpeedIn, - double zSpeedIn, int... p_178902_15_) - { - Particle particle = super.createParticle(particleID, worldIn, xCoordIn, yCoordIn, zCoordIn, xSpeedIn, ySpeedIn, zSpeedIn, p_178902_15_); - - if (!AetherHelper.isAether(worldIn)) - { - return particle; - } - - IPrecipitationManager precipitationManager = worldIn.getCapability(CapabilitiesAether.PRECIPITATION_MANAGER, null); - - if (precipitationManager == null) - { - return particle; - } - - if (worldIn.rand.nextFloat() > precipitationManager.getSkyDarkness()) - { - return null; - } - - if (particle != null) - { - Biome biome = worldIn.getBiome(new BlockPos(xCoordIn, yCoordIn, zCoordIn)); - - int color = biome.getWaterColor(); - - float red = ((color & 0xFF0000) >> 16) / 255.0f; - float blue = ((color & 0xFF00) >> 8) / 255.0f; - float green = (color & 0xFF) / 255.0f; - - particle.setRBGColorF(red, blue, green); - } - - return particle; - - } -} diff --git a/src/main/java/com/gildedgames/aether/client/renderer/particles/ParticleSlash.java b/src/main/java/com/gildedgames/aether/client/renderer/particles/ParticleSlash.java deleted file mode 100644 index 7d398dcd33..0000000000 --- a/src/main/java/com/gildedgames/aether/client/renderer/particles/ParticleSlash.java +++ /dev/null @@ -1,144 +0,0 @@ -package com.gildedgames.aether.client.renderer.particles; - -import com.gildedgames.aether.common.AetherCore; -import net.minecraft.client.Minecraft; -import net.minecraft.client.particle.IParticleFactory; -import net.minecraft.client.particle.Particle; -import net.minecraft.client.particle.ParticleCrit; -import net.minecraft.client.renderer.BufferBuilder; -import net.minecraft.client.renderer.GlStateManager; -import net.minecraft.client.renderer.RenderHelper; -import net.minecraft.client.renderer.Tessellator; -import net.minecraft.client.renderer.texture.TextureManager; -import net.minecraft.client.renderer.vertex.DefaultVertexFormats; -import net.minecraft.client.renderer.vertex.VertexFormat; -import net.minecraft.entity.Entity; -import net.minecraft.util.ResourceLocation; -import net.minecraft.util.math.MathHelper; -import net.minecraft.util.math.Vec3d; -import net.minecraft.world.World; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; - -import java.util.Random; - -@SideOnly(Side.CLIENT) -public class ParticleSlash extends Particle -{ - private static final ResourceLocation SLASH_TEXTURE = AetherCore.getResource("textures/particles/slash.png"); - - public ParticleSlash(World worldIn, double xCoordIn, double yCoordIn, double zCoordIn, double p_i46285_8_, double p_i46285_10_, double p_i46285_12_, float p_i46285_14_) - { - super(worldIn, xCoordIn, yCoordIn, zCoordIn, 0.0D, 0.0D, 0.0D); - - float f0 = Math.random() > 0.5 ? 0.5F : -0.5F; - float f1 = Math.random() > 0.5 ? 0.5F : -0.5F; - float f2 = Math.random() > 0.5 ? 0.5F : -0.5F; - this.motionX *= 0.10000000149011612D; - this.motionY *= 0.10000000149011612D; - this.motionZ *= 0.10000000149011612D; - this.motionX += f0 * 0.4D; - this.motionY += f1 * 0.4D; - this.motionZ += f2 * 0.4D; - float f = 1.0F; - this.particleRed = f; - this.particleGreen = f; - this.particleBlue = f; - this.particleScale *= 0.75F; - this.particleScale *= p_i46285_14_; - this.particleMaxAge = (int)(6.0D / (Math.random() * 0.8D + 0.6D)); - this.particleMaxAge = (int)((float)this.particleMaxAge * p_i46285_14_); - this.onUpdate(); - } - - public void onUpdate() - { - this.prevPosX = this.posX; - this.prevPosY = this.posY; - this.prevPosZ = this.posZ; - - if (this.particleAge++ >= this.particleMaxAge) - { - this.setExpired(); - } - - this.move(this.motionX, this.motionY, this.motionZ); - this.motionX *= 0.699999988079071D; - this.motionY *= 0.699999988079071D; - this.motionZ *= 0.699999988079071D; - this.motionY -= 0.019999999552965164D; - - if (this.onGround) - { - this.motionX *= 0.699999988079071D; - this.motionZ *= 0.699999988079071D; - } - } - - @Override - public void renderParticle(BufferBuilder buffer, Entity entityIn, float partialTicks, float rotationX, float rotationZ, float rotationYZ, float rotationXY, - float rotationXZ) - { - Minecraft.getMinecraft().renderEngine.bindTexture(SLASH_TEXTURE); - - GlStateManager.disableLighting(); - - double x = this.prevPosX + (this.posX - this.prevPosX) * (double) partialTicks - interpPosX; - double y = this.prevPosY + (this.posY - this.prevPosY) * (double) partialTicks - interpPosY; - double z = this.prevPosZ + (this.posZ - this.prevPosZ) * (double) partialTicks - interpPosZ; - - int brightness = this.getBrightnessForRender(partialTicks); - - int j = brightness >> 16 & 65535; - int k = brightness & 65535; - - float f = ((float)this.particleAge + partialTicks) / (float)this.particleMaxAge * 32.0F; - - f = MathHelper.clamp(f, 0.0F, 1.0F); - - float scale = 0.1F * this.particleScale * f; - - Vec3d[] avec3d = new Vec3d[] { - new Vec3d( - (double) (-rotationX * scale - rotationXY * scale), - (double) (-rotationZ * scale), - (double) (-rotationYZ * scale - rotationXZ * scale) - ), - new Vec3d( - (double) (-rotationX * scale + rotationXY * scale), - (double) (rotationZ * scale), - (double) (-rotationYZ * scale + rotationXZ * scale) - ), - new Vec3d( - (double) (rotationX * scale + rotationXY * scale), - (double) (rotationZ * scale), - (double) (rotationYZ * scale + rotationXZ * scale) - ), - new Vec3d( - (double) (rotationX * scale - rotationXY * scale), - (double) (-rotationZ * scale), - (double) (rotationYZ * scale - rotationXZ * scale) - ) - }; - - float a = 1.0f - (Math.max(0.0f, this.particleAge - 70.0f) * 0.03f); - - buffer.begin(7, DefaultVertexFormats.PARTICLE_POSITION_TEX_COLOR_LMAP); - buffer.pos(x + avec3d[0].x, y + avec3d[0].y, z + avec3d[0].z).tex(0.0D, 1.0D).color(this.particleRed, this.particleGreen, this.particleBlue, a) - .lightmap(j, k).endVertex(); - buffer.pos(x + avec3d[1].x, y + avec3d[1].y, z + avec3d[1].z).tex(1.0D, 1.0D).color(this.particleRed, this.particleGreen, this.particleBlue, a) - .lightmap(j, k).endVertex(); - buffer.pos(x + avec3d[2].x, y + avec3d[2].y, z + avec3d[2].z).tex(1.0D, 0.0D).color(this.particleRed, this.particleGreen, this.particleBlue, a) - .lightmap(j, k).endVertex(); - buffer.pos(x + avec3d[3].x, y + avec3d[3].y, z + avec3d[3].z).tex(0.0D, 0.0D).color(this.particleRed, this.particleGreen, this.particleBlue, a) - .lightmap(j, k).endVertex(); - - Tessellator.getInstance().draw(); - } - - @Override - public int getFXLayer() - { - return 3; - } -} \ No newline at end of file diff --git a/src/main/java/com/gildedgames/aether/client/renderer/textures/SimpleDXT1Texture.java b/src/main/java/com/gildedgames/aether/client/renderer/textures/SimpleDXT1Texture.java deleted file mode 100644 index 2ef78acbbc..0000000000 --- a/src/main/java/com/gildedgames/aether/client/renderer/textures/SimpleDXT1Texture.java +++ /dev/null @@ -1,53 +0,0 @@ -package com.gildedgames.aether.client.renderer.textures; - -import net.minecraft.client.renderer.GlStateManager; -import net.minecraft.client.renderer.texture.AbstractTexture; -import net.minecraft.client.renderer.texture.TextureUtil; -import net.minecraft.client.resources.IResource; -import net.minecraft.client.resources.IResourceManager; -import net.minecraft.util.ResourceLocation; -import org.apache.commons.io.IOUtils; -import org.lwjgl.opengl.EXTTextureCompressionS3TC; -import org.lwjgl.opengl.GL11; -import org.lwjgl.opengl.GL12; - -import java.awt.image.BufferedImage; -import java.io.IOException; - -// Uses S3TC DXT1 compression for simple monochrome textures with cutout alpha -public class SimpleDXT1Texture extends AbstractTexture -{ - protected final ResourceLocation textureLocation; - - public SimpleDXT1Texture(ResourceLocation textureResourceLocation) - { - this.textureLocation = textureResourceLocation; - } - - @Override - public void loadTexture(IResourceManager resourceManager) throws IOException - { - this.deleteGlTexture(); - - IResource res = null; - - try - { - res = resourceManager.getResource(this.textureLocation); - - BufferedImage image = TextureUtil.readBufferedImage(res.getInputStream()); - - int textureId = this.getGlTextureId(); - - GlStateManager.bindTexture(textureId); - GlStateManager.glTexImage2D(GL11.GL_TEXTURE_2D, 0, EXTTextureCompressionS3TC.GL_COMPRESSED_RGBA_S3TC_DXT1_EXT, image.getWidth(), image.getHeight(), 0, GL12.GL_BGRA, - GL12.GL_UNSIGNED_INT_8_8_8_8_REV, null); - - TextureUtil.uploadTextureImageSub(textureId, image, 0, 0, false, false); - } - finally - { - IOUtils.closeQuietly(res); - } - } -} diff --git a/src/main/java/com/gildedgames/aether/client/renderer/tiles/TileEntityAltarRenderer.java b/src/main/java/com/gildedgames/aether/client/renderer/tiles/TileEntityAltarRenderer.java deleted file mode 100644 index 29b2ee459e..0000000000 --- a/src/main/java/com/gildedgames/aether/client/renderer/tiles/TileEntityAltarRenderer.java +++ /dev/null @@ -1,186 +0,0 @@ -package com.gildedgames.aether.client.renderer.tiles; - -import com.gildedgames.aether.api.registrar.ItemsAether; -import com.gildedgames.aether.client.models.entities.tile.ModelAltar; -import com.gildedgames.aether.common.AetherCore; -import com.gildedgames.aether.common.entities.tiles.TileEntityAltar; -import com.gildedgames.aether.common.items.armor.ItemAetherShield; -import net.minecraft.client.Minecraft; -import net.minecraft.client.renderer.GlStateManager; -import net.minecraft.client.renderer.RenderItem; -import net.minecraft.client.renderer.block.model.IBakedModel; -import net.minecraft.client.renderer.texture.TextureMap; -import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; -import net.minecraft.item.ItemBlock; -import net.minecraft.item.ItemShield; -import net.minecraft.item.ItemStack; -import net.minecraft.util.ResourceLocation; -import org.lwjgl.opengl.GL11; - -public class TileEntityAltarRenderer extends TileEntitySpecialRenderer<TileEntityAltar> -{ - private final ModelAltar model = new ModelAltar(); - - private final ResourceLocation texture = AetherCore.getResource("textures/tile_entities/altar.png"); - - private final double radius = 0.4D; - - private final double theta = 5.0D; - - @Override - public void render( - final TileEntityAltar altar, final double x, final double y, final double z, final float partialTicks, final int destroyStage, final float alpha) - { - GlStateManager.pushMatrix(); - GlStateManager.enableRescaleNormal(); - - GlStateManager.translate((float) x + 0.5F, (float) y + 1.5F, (float) z + 0.5F); - GlStateManager.rotate(180f, 1f, 0f, 1f); - - if (altar != null) - { - switch (altar.getFacing()) - { - case NORTH: - GlStateManager.rotate(270.0f, 0.0f, 1.0f, 0.0f); - break; - case WEST: - GlStateManager.rotate(0.0f, 0.0f, 1.0f, 0.0f); - break; - case SOUTH: - GlStateManager.rotate(90.0f, 0.0f, 1.0f, 0.0f); - break; - case EAST: - GlStateManager.rotate(180.0f, 0.0f, 1.0f, 0.0f); - break; - } - } - - if (destroyStage >= 0) - { - this.bindTexture(DESTROY_STAGES[destroyStage]); - - GlStateManager.matrixMode(5890); - GlStateManager.pushMatrix(); - GlStateManager.scale(4.0F, 4.0F, 1.0F); - GlStateManager.translate(0.0625F, 0.0625F, 0.0625F); - GlStateManager.matrixMode(5888); - } - else - { - this.bindTexture(texture); - } - - this.model.render(0.0625F); - - if (altar != null) - { - final ItemStack stack = altar.getStackOnAltar(); - - GlStateManager.rotate(180f, 1f, 0f, 1f); - - GlStateManager.translate(0.0f, -0.32f, 0.0f); - GlStateManager.color(1.0F, 1.0F, 1.0F, 1.0F); - - this.bindTexture(TextureMap.LOCATION_BLOCKS_TEXTURE); - - //Render ambrosium before item, because vanilla shield makes them disappear if rendered after - this.renderOrbitingItems(altar.getAmbrosiumCount(), - altar.prevAnimationTicks + (altar.animationTicks - altar.prevAnimationTicks) * partialTicks); - - if (stack != null) - { - GlStateManager.pushMatrix(); - GlStateManager.pushAttrib(); - - if (stack.getItem() instanceof ItemBlock) - { - GlStateManager.scale(0.25F, 0.25F, 0.25F); - GlStateManager.translate(0.0f, -0.05f, 0.0f); - } - else if (stack.getItem() instanceof ItemAetherShield) - { - GlStateManager.scale(0.5F, 0.5F, 0.5F); - GlStateManager.translate(0.0f, -0.45f, 0.0f); - GlStateManager.rotate(-90.0f, 90.0f, 0.0f, 0.0f); - GlStateManager.rotate(0.0f, 0.0f, 0.0f, 90.0f); - } - else if(stack.getItem() instanceof ItemShield) - { - GlStateManager.scale(0.5F, 0.5F, 0.5F); - GlStateManager.translate(0.5f, 0.20f, -0.5f); - GlStateManager.rotate(-90.0f, 90.0f, 0.0f, 0.0f); - GlStateManager.rotate(0.0f, 0.0f, 0.0f, 90.0f); - } - else - { - GlStateManager.scale(0.5F, 0.5F, 0.5F); - GlStateManager.translate(0.0f, -0.13f, 0.0f); - GlStateManager.rotate(90.0f, 90.0f, 0.0f, 0.0f); - GlStateManager.rotate(90.0f, 0.0f, 0.0f, 90.0f); - } - - this.renderItem(stack); - - GlStateManager.popAttrib(); - GlStateManager.popMatrix(); - } - } - - GlStateManager.disableRescaleNormal(); - - GlStateManager.popMatrix(); - - if (destroyStage >= 0) - { - GlStateManager.matrixMode(GL11.GL_TEXTURE); - GlStateManager.popMatrix(); - GlStateManager.matrixMode(GL11.GL_MODELVIEW); - } - } - - private void renderItem(final ItemStack stack) - { - GlStateManager.pushMatrix(); - - final RenderItem itemRenderer = Minecraft.getMinecraft().getRenderItem(); - - if (stack != null) - { - if (!itemRenderer.shouldRenderItemIn3D(stack)) - { - GlStateManager.rotate(180.0F, 0.0F, 1.0F, 0.0F); - } - - final IBakedModel model = itemRenderer.getItemModelMesher().getItemModel(stack); - itemRenderer.renderItem(stack, model); - } - - GlStateManager.popMatrix(); - } - - private void renderOrbitingItems(final int amount, final double ticks) - { - for (int i = 0; i < amount; i++) - { - GlStateManager.pushMatrix(); - - final double alpha = ticks / (12.0D * (10.0D / (double) amount)); - - final double dist = (Math.PI * i) / amount * 2; - final double x = this.radius * Math.cos(this.theta + dist); - final double z = this.radius * Math.sin(this.theta + dist); - final double deltaX = z * Math.cos(alpha) - x * Math.sin(alpha); - final double deltaZ = x * Math.cos(alpha) + z * Math.sin(alpha); - - GlStateManager.translate(deltaX, 0, deltaZ); - - GlStateManager.scale(0.25f, 0.25f, 0.25f); - GlStateManager.rotate(90.0f, 0.0f, -90.0f, 0.0f); - - this.renderItem(new ItemStack(ItemsAether.ambrosium_shard)); - - GlStateManager.popMatrix(); - } - } -} diff --git a/src/main/java/com/gildedgames/aether/client/renderer/tiles/TileEntityIcestoneCoolerRenderer.java b/src/main/java/com/gildedgames/aether/client/renderer/tiles/TileEntityIcestoneCoolerRenderer.java deleted file mode 100644 index fbc79d66dc..0000000000 --- a/src/main/java/com/gildedgames/aether/client/renderer/tiles/TileEntityIcestoneCoolerRenderer.java +++ /dev/null @@ -1,79 +0,0 @@ -package com.gildedgames.aether.client.renderer.tiles; - -import com.gildedgames.aether.client.models.entities.tile.ModelIcestoneCooler; -import com.gildedgames.aether.common.AetherCore; -import com.gildedgames.aether.common.entities.tiles.TileEntityIcestoneCooler; -import net.minecraft.client.renderer.GlStateManager; -import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; -import net.minecraft.util.ResourceLocation; -import org.lwjgl.opengl.GL11; - -public class TileEntityIcestoneCoolerRenderer extends TileEntitySpecialRenderer<TileEntityIcestoneCooler> -{ - - private static final ResourceLocation TEXTURE = AetherCore.getResource("textures/tile_entities/icestone_cooler.png"); - - private final ModelIcestoneCooler model = new ModelIcestoneCooler(); - - @Override - public void render(final TileEntityIcestoneCooler te, final double x, final double y, final double z, final float partialTicks, final int destroyStage, - final float alpha) - { - GlStateManager.pushMatrix(); - GlStateManager.enableRescaleNormal(); - - GlStateManager.translate((float) x + 0.5F, (float) y + 1.5F, (float) z + 0.5F); - GlStateManager.rotate(180f, 1f, 0f, 1f); - - if (te != null) - { - switch (te.getFacing()) - { - case NORTH: - GlStateManager.rotate(270.0f, 0.0f, 1.0f, 0.0f); - break; - case WEST: - GlStateManager.rotate(180.0f, 0.0f, 1.0f, 0.0f); - break; - case SOUTH: - GlStateManager.rotate(90.0f, 0.0f, 1.0f, 0.0f); - break; - case EAST: - GlStateManager.rotate(0.0f, 0.0f, 1.0f, 0.0f); - break; - } - } - else - { - GlStateManager.rotate(180.0f, 0.0f, 1.0f, 0.0f); - } - - if (destroyStage >= 0) - { - this.bindTexture(DESTROY_STAGES[destroyStage]); - - GlStateManager.matrixMode(5890); - GlStateManager.pushMatrix(); - GlStateManager.scale(4.0F, 2.0F, 1.0F); - GlStateManager.translate(0.0625F, 0.0625F, 0.0625F); - GlStateManager.matrixMode(5888); - } - else - { - this.bindTexture(TEXTURE); - } - - this.model.render(0.0625F); - - GlStateManager.disableRescaleNormal(); - - GlStateManager.popMatrix(); - - if (destroyStage >= 0) - { - GlStateManager.matrixMode(GL11.GL_TEXTURE); - GlStateManager.popMatrix(); - GlStateManager.matrixMode(GL11.GL_MODELVIEW); - } - } -} diff --git a/src/main/java/com/gildedgames/aether/client/renderer/tiles/TileEntityMasonryBenchRenderer.java b/src/main/java/com/gildedgames/aether/client/renderer/tiles/TileEntityMasonryBenchRenderer.java deleted file mode 100644 index 39b5ad7240..0000000000 --- a/src/main/java/com/gildedgames/aether/client/renderer/tiles/TileEntityMasonryBenchRenderer.java +++ /dev/null @@ -1,80 +0,0 @@ -package com.gildedgames.aether.client.renderer.tiles; - -import com.gildedgames.aether.client.models.entities.tile.ModelMasonryBench; -import com.gildedgames.aether.common.AetherCore; -import com.gildedgames.aether.common.entities.tiles.TileEntityMasonryBench; -import net.minecraft.client.renderer.GlStateManager; -import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; -import net.minecraft.util.ResourceLocation; -import org.lwjgl.opengl.GL11; - -public class TileEntityMasonryBenchRenderer extends TileEntitySpecialRenderer<TileEntityMasonryBench> -{ - - private static final ResourceLocation TEXTURE = AetherCore.getResource("textures/tile_entities/masonry_bench.png"); - - private final ModelMasonryBench model = new ModelMasonryBench(); - - @Override - public void render( - final TileEntityMasonryBench te, final double x, final double y, final double z, final float partialTicks, final int destroyStage, - final float alpha) - { - GlStateManager.pushMatrix(); - GlStateManager.enableRescaleNormal(); - - GlStateManager.translate((float) x + 0.5F, (float) y + 1.5F, (float) z + 0.5F); - GlStateManager.rotate(180f, 1f, 0f, 1f); - - if (te != null) - { - switch (te.getFacing()) - { - case NORTH: - GlStateManager.rotate(270.0f, 0.0f, 1.0f, 0.0f); - break; - case WEST: - GlStateManager.rotate(180.0f, 0.0f, 1.0f, 0.0f); - break; - case SOUTH: - GlStateManager.rotate(90.0f, 0.0f, 1.0f, 0.0f); - break; - case EAST: - GlStateManager.rotate(0.0f, 0.0f, 1.0f, 0.0f); - break; - } - } - else - { - GlStateManager.rotate(180.0f, 0.0f, 1.0f, 0.0f); - } - - if (destroyStage >= 0) - { - this.bindTexture(DESTROY_STAGES[destroyStage]); - - GlStateManager.matrixMode(5890); - GlStateManager.pushMatrix(); - GlStateManager.scale(8.0F, 8.0F, 1.0F); - GlStateManager.translate(0.0625F, 0.0625F, 0.0625F); - GlStateManager.matrixMode(5888); - } - else - { - this.bindTexture(TEXTURE); - } - - this.model.render(0.0625F); - - GlStateManager.disableRescaleNormal(); - - GlStateManager.popMatrix(); - - if (destroyStage >= 0) - { - GlStateManager.matrixMode(GL11.GL_TEXTURE); - GlStateManager.popMatrix(); - GlStateManager.matrixMode(GL11.GL_MODELVIEW); - } - } -} diff --git a/src/main/java/com/gildedgames/aether/client/renderer/tiles/TileEntityMoaEggRenderer.java b/src/main/java/com/gildedgames/aether/client/renderer/tiles/TileEntityMoaEggRenderer.java deleted file mode 100644 index d4d9e21173..0000000000 --- a/src/main/java/com/gildedgames/aether/client/renderer/tiles/TileEntityMoaEggRenderer.java +++ /dev/null @@ -1,86 +0,0 @@ -package com.gildedgames.aether.client.renderer.tiles; - -import com.gildedgames.aether.client.models.entities.tile.ModelMoaEgg; -import com.gildedgames.aether.common.AetherCore; -import com.gildedgames.aether.common.entities.genes.moa.MoaGenePool; -import com.gildedgames.aether.common.entities.tiles.TileEntityMoaEgg; -import net.minecraft.client.renderer.GlStateManager; -import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; -import net.minecraft.util.ResourceLocation; -import org.lwjgl.opengl.GL11; -import org.lwjgl.opengl.GL12; - -public class TileEntityMoaEggRenderer extends TileEntitySpecialRenderer<TileEntityMoaEgg> -{ - - private static final ResourceLocation TEXTURE_BASE = AetherCore.getResource("textures/tile_entities/moa_egg/base.png"); - - private static final ResourceLocation TEXTURE_BEAK = AetherCore.getResource("textures/tile_entities/moa_egg/beak.png"); - - private static final ResourceLocation TEXTURE_EYES = AetherCore.getResource("textures/tile_entities/moa_egg/head/eyes.png"); - - public final ModelMoaEgg model = new ModelMoaEgg(); - - @Override - public void render(final TileEntityMoaEgg egg, final double x, final double y, final double z, final float partialTicks, final int destroyStage, - final float alpha) - { - final MoaGenePool genePool = egg.getGenePool(); - - if (genePool == null || genePool.getFeathers() == null) - { - return; - } - - final ResourceLocation BACK_MARKING = genePool.getMarks().gene().getEggBack(); - - GL11.glPushMatrix(); - GL11.glEnable(GL12.GL_RESCALE_NORMAL); - - GL11.glTranslatef((float) x + 0.5F, (float) y + 1.5F, (float) z + 0.5F); - GL11.glRotatef(180f, 1f, 0f, 1f); - - this.renderColor(genePool.getFeathers().gene().data().getRGB()); - - this.bindTexture(TEXTURE_BASE); - - this.model.renderAll(0.0625F); - - this.renderColor(genePool.getKeratin().gene().data().getRGB()); - - this.bindTexture(TEXTURE_BEAK); - - this.model.renderAll(0.0625F); - - this.renderColor(genePool.getFeathers().gene().data().darker().getRGB()); - - this.bindTexture(BACK_MARKING); - - this.model.renderAll(0.0625F); - - GlStateManager.enableBlend(); - GlStateManager.blendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - - this.renderColor(genePool.getEyes().gene().data().getRGB()); - - this.bindTexture(TEXTURE_EYES); - - this.model.renderAll(0.0625F); - - GlStateManager.disableBlend(); - - GL11.glPopMatrix(); - - GL11.glColor3f(1.0F, 1.0F, 1.0F); - } - - public void renderColor(final int color) - { - final float red = ((color >> 16) & 0xff) / 255F; - final float green = ((color >> 8) & 0xff) / 255F; - final float blue = (color & 0xff) / 255F; - - GL11.glColor3f(red, green, blue); - } - -} diff --git a/src/main/java/com/gildedgames/aether/client/renderer/tiles/TileEntityNOOPRenderer.java b/src/main/java/com/gildedgames/aether/client/renderer/tiles/TileEntityNOOPRenderer.java deleted file mode 100644 index e8288afb4c..0000000000 --- a/src/main/java/com/gildedgames/aether/client/renderer/tiles/TileEntityNOOPRenderer.java +++ /dev/null @@ -1,14 +0,0 @@ -package com.gildedgames.aether.client.renderer.tiles; - -import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; -import net.minecraft.tileentity.TileEntity; - -public class TileEntityNOOPRenderer<T extends TileEntity> extends TileEntitySpecialRenderer<T> -{ - @Override - public void render(final T te, final double x, final double y, final double z, final float partialTicks, final int destroyStage, - final float alpha) - { - - } -} diff --git a/src/main/java/com/gildedgames/aether/client/renderer/tiles/TileEntityOutpostCampfireRenderer.java b/src/main/java/com/gildedgames/aether/client/renderer/tiles/TileEntityOutpostCampfireRenderer.java deleted file mode 100644 index 5a56257e48..0000000000 --- a/src/main/java/com/gildedgames/aether/client/renderer/tiles/TileEntityOutpostCampfireRenderer.java +++ /dev/null @@ -1,41 +0,0 @@ -package com.gildedgames.aether.client.renderer.tiles; - -import com.gildedgames.aether.client.models.entities.tile.ModelOutpostCampfire; -import com.gildedgames.aether.common.AetherCore; -import com.gildedgames.aether.common.entities.tiles.TileEntityOutpostCampfire; -import net.minecraft.client.renderer.GlStateManager; -import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; -import net.minecraft.util.ResourceLocation; - -public class TileEntityOutpostCampfireRenderer extends TileEntitySpecialRenderer<TileEntityOutpostCampfire> -{ - private static final ResourceLocation TEXTURE = AetherCore.getResource("textures/tile_entities/outpost_campfire.png"); - - private static final ResourceLocation TEXTURE_LIT = AetherCore.getResource("textures/tile_entities/outpost_campfire_on.png"); - - private final ModelOutpostCampfire model = new ModelOutpostCampfire(); - - @Override - public void render(final TileEntityOutpostCampfire te, final double x, final double y, final double z, final float partialTicks, final int destroyStage, - final float alpha) - { - GlStateManager.pushMatrix(); - GlStateManager.enableRescaleNormal(); - - GlStateManager.translate((float) x + 0.5F, (float) y + 1.5F, (float) z + 0.5F); - GlStateManager.rotate(180f, 1f, 0f, 1f); - - // Rendering as item... ? - if (te == null) - { - GlStateManager.scale(0.6f, 0.6f, 0.6f); - GlStateManager.translate(-1.0f, 0.2f, 0.0f); - } - - this.bindTexture(TEXTURE); - - this.model.render(0.0625F); - - GlStateManager.popMatrix(); - } -} diff --git a/src/main/java/com/gildedgames/aether/client/renderer/tiles/TileEntityPresentRenderer.java b/src/main/java/com/gildedgames/aether/client/renderer/tiles/TileEntityPresentRenderer.java deleted file mode 100644 index ecd9af25a7..0000000000 --- a/src/main/java/com/gildedgames/aether/client/renderer/tiles/TileEntityPresentRenderer.java +++ /dev/null @@ -1,91 +0,0 @@ -package com.gildedgames.aether.client.renderer.tiles; - -import com.gildedgames.aether.client.models.entities.tile.ModelPresent; -import com.gildedgames.aether.common.AetherCore; -import com.gildedgames.aether.common.entities.tiles.TileEntityPresent; -import com.gildedgames.aether.common.items.blocks.ItemBlockPresent; -import net.minecraft.client.renderer.GlStateManager; -import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; -import net.minecraft.util.ResourceLocation; - -import java.util.Random; - -public class TileEntityPresentRenderer extends TileEntitySpecialRenderer<TileEntityPresent> -{ - - public static final ResourceLocation[] boxTextures = new ResourceLocation[16]; - - public static final ResourceLocation[] bowTextures = new ResourceLocation[16]; - - public static final String[] colors = new String[] { "black", "red", "green", "brown", "blue", "purple", "cyan", "silver", "gray", - "pink", "lime", "yellow", "light_blue", "magenta", "orange", "white" }; - - static - { - for (int i = 0; i < 16; i++) - { - boxTextures[i] = AetherCore.getResource("textures/tile_entities/present/present_box_" + colors[i] + ".png"); - bowTextures[i] = AetherCore.getResource("textures/tile_entities/present/present_ribbon_" + colors[i] + ".png"); - } - } - - private final ModelPresent model = new ModelPresent(); - - private final Random random = new Random(); - - @Override - public void render( - final TileEntityPresent present, final double x, final double y, final double z, final float partialTicks, final int destroyStage, - final float alpha) - { - GlStateManager.pushMatrix(); - - ItemBlockPresent.PresentData data = null; - - if (present != null) - { - data = present.getPresentData(); - } - - byte boxColor = data == null ? 15 : data.getDye().getBoxColor(); - byte bowColor = data == null ? 1 : data.getDye().getBowColor(); - - // Sanitize dye colors to prevent rogue presents! - boxColor = (boxColor >= 15 ? 15 : (boxColor < 0 ? 0 : boxColor)); - bowColor = (bowColor >= 15 ? 15 : (bowColor < 0 ? 0 : bowColor)); - - GlStateManager.enableRescaleNormal(); - - GlStateManager.translate((float) x + 0.5f, (float) y, (float) z + 0.5f); - - if (present != null) - { - this.random.setSeed((long) (present.getPos().getX() + present.getPos().getY() + present.getPos().getZ()) * 5L); - - final float offset = this.random.nextFloat() * 0.1f; - final float scale = 1f + ((this.random.nextFloat() * 0.1f) - 0.1f); - final float rotate = this.random.nextFloat() * 180f; - - GlStateManager.translate(offset, 0, offset); - GlStateManager.rotate(180f, 1f, 0f, 1f); - GlStateManager.rotate(rotate, 0f, 1f, 0f); - GlStateManager.scale(scale, scale, scale); - } - else - { - GlStateManager.rotate(180f, 1.0f, 0f, 0.4f); - GlStateManager.scale(1.5F, 1.5F, 1.5F); - } - - this.bindTexture(boxTextures[boxColor]); - this.model.renderBox(0.0625F); - - this.bindTexture(bowTextures[bowColor]); - this.model.renderBow(0.0625F); - this.model.renderBox(0.0625F); - - GlStateManager.disableRescaleNormal(); - - GlStateManager.popMatrix(); - } -} diff --git a/src/main/java/com/gildedgames/aether/client/renderer/tiles/TileEntitySkyrootChestRenderer.java b/src/main/java/com/gildedgames/aether/client/renderer/tiles/TileEntitySkyrootChestRenderer.java deleted file mode 100644 index 42732a3508..0000000000 --- a/src/main/java/com/gildedgames/aether/client/renderer/tiles/TileEntitySkyrootChestRenderer.java +++ /dev/null @@ -1,188 +0,0 @@ -package com.gildedgames.aether.client.renderer.tiles; - -import com.gildedgames.aether.common.AetherCore; -import com.gildedgames.aether.common.blocks.containers.BlockSkyrootChest; -import com.gildedgames.aether.common.entities.tiles.TileEntitySkyrootChest; -import net.minecraft.block.Block; -import net.minecraft.block.BlockChest; -import net.minecraft.client.model.ModelChest; -import net.minecraft.client.model.ModelLargeChest; -import net.minecraft.client.renderer.GlStateManager; -import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; -import net.minecraft.util.ResourceLocation; -import org.lwjgl.opengl.GL11; - -public class TileEntitySkyrootChestRenderer extends TileEntitySpecialRenderer<TileEntitySkyrootChest> -{ - private static final ResourceLocation textureSingle = AetherCore.getResource("textures/tile_entities/skyroot_chest_large.png"); - - private static final ResourceLocation textureDouble = AetherCore.getResource("textures/tile_entities/skyroot_chest.png"); - - // This is a stupid hack. See TileEntityItemStackRenderer. - private static final TileEntitySkyrootChest nullChest = new TileEntitySkyrootChest(); - - private final ModelChest simpleChest = new ModelChest(); - - private final ModelChest largeChest = new ModelLargeChest(); - - @Override - public void render(TileEntitySkyrootChest chest, final double x, final double y, final double z, final float partialTicks, final int destroyStage, - final float alpha) - { - int metadata; - - if (chest == null) - { - chest = nullChest; - } - - if (!chest.hasWorld()) - { - metadata = 0; - } - else - { - final Block block = chest.getBlockType(); - metadata = chest.getBlockMetadata(); - - if (block instanceof BlockSkyrootChest && metadata == 0) - { - ((BlockChest) block).checkForSurroundingChests(chest.getWorld(), chest.getPos(), chest.getWorld().getBlockState(chest.getPos())); - - metadata = chest.getBlockMetadata(); - } - - chest.checkForAdjacentChests(); - } - - if (chest.adjacentChestZNeg == null && chest.adjacentChestXNeg == null) - { - final ModelChest modelchest; - - if (chest.adjacentChestXPos == null && chest.adjacentChestZPos == null) - { - modelchest = this.simpleChest; - - if (destroyStage >= 0) - { - this.bindTexture(DESTROY_STAGES[destroyStage]); - - GlStateManager.matrixMode(5890); - GlStateManager.pushMatrix(); - GlStateManager.scale(4.0F, 4.0F, 1.0F); - GlStateManager.translate(0.0625F, 0.0625F, 0.0625F); - GlStateManager.matrixMode(5888); - } - else - { - this.bindTexture(textureDouble); - } - } - else - { - modelchest = this.largeChest; - - if (destroyStage >= 0) - { - this.bindTexture(DESTROY_STAGES[destroyStage]); - - GlStateManager.matrixMode(GL11.GL_TEXTURE); - - GlStateManager.pushMatrix(); - GlStateManager.scale(8.0F, 4.0F, 1.0F); - GlStateManager.translate(0.0625F, 0.0625F, 0.0625F); - GlStateManager.matrixMode(GL11.GL_MODELVIEW); - } - else - { - this.bindTexture(textureSingle); - } - } - - GlStateManager.pushMatrix(); - GlStateManager.enableRescaleNormal(); - - if (destroyStage < 0) - { - GlStateManager.color(1.0F, 1.0F, 1.0F, 1.0F); - } - - GlStateManager.translate((float) x, (float) y + 1.0F, (float) z + 1.0F); - GlStateManager.scale(1.0F, -1.0F, -1.0F); - GlStateManager.translate(0.5F, 0.5F, 0.5F); - - float angle = 0; - - switch (metadata) - { - case 2: - angle = 180; - break; - case 3: - angle = 0; - break; - case 4: - angle = 90; - break; - case 5: - angle = -90; - break; - } - - if (metadata == 2 && chest.adjacentChestXPos != null) - { - GlStateManager.translate(1.0F, 0.0F, 0.0F); - } - - if (metadata == 5 && chest.adjacentChestZPos != null) - { - GlStateManager.translate(0.0F, 0.0F, -1.0F); - } - - GlStateManager.rotate(angle, 0.0F, 1.0F, 0.0F); - GlStateManager.translate(-0.5F, -0.5F, -0.5F); - - float lidAngle = chest.prevLidAngle + (chest.lidAngle - chest.prevLidAngle) * partialTicks; - float adjacentLidAngle; - - if (chest.adjacentChestZNeg != null) - { - adjacentLidAngle = chest.adjacentChestZNeg.prevLidAngle - + (chest.adjacentChestZNeg.lidAngle - chest.adjacentChestZNeg.prevLidAngle) * partialTicks; - - if (adjacentLidAngle > lidAngle) - { - lidAngle = adjacentLidAngle; - } - } - - if (chest.adjacentChestXNeg != null) - { - adjacentLidAngle = chest.adjacentChestXNeg.prevLidAngle - + (chest.adjacentChestXNeg.lidAngle - chest.adjacentChestXNeg.prevLidAngle) * partialTicks; - - if (adjacentLidAngle > lidAngle) - { - lidAngle = adjacentLidAngle; - } - } - - lidAngle = 1.0F - lidAngle; - lidAngle = 1.0F - lidAngle * lidAngle * lidAngle; - - modelchest.chestLid.rotateAngleX = -(lidAngle * (float) Math.PI / 2.0F); - modelchest.renderAll(); - - GlStateManager.disableRescaleNormal(); - GlStateManager.popMatrix(); - GlStateManager.color(1.0F, 1.0F, 1.0F, 1.0F); - - if (destroyStage >= 0) - { - GlStateManager.matrixMode(GL11.GL_TEXTURE); - GlStateManager.popMatrix(); - GlStateManager.matrixMode(GL11.GL_MODELVIEW); - } - } - } -} diff --git a/src/main/java/com/gildedgames/aether/client/renderer/tiles/TileEntitySkyrootSignRenderer.java b/src/main/java/com/gildedgames/aether/client/renderer/tiles/TileEntitySkyrootSignRenderer.java deleted file mode 100644 index ce009a0344..0000000000 --- a/src/main/java/com/gildedgames/aether/client/renderer/tiles/TileEntitySkyrootSignRenderer.java +++ /dev/null @@ -1,140 +0,0 @@ -package com.gildedgames.aether.client.renderer.tiles; - -import com.gildedgames.aether.api.registrar.BlocksAether; -import com.gildedgames.aether.common.entities.tiles.TileEntitySkyrootSign; -import net.minecraft.block.Block; -import net.minecraft.client.gui.FontRenderer; -import net.minecraft.client.gui.GuiUtilRenderComponents; -import net.minecraft.client.model.ModelSign; -import net.minecraft.client.renderer.GlStateManager; -import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; -import net.minecraft.util.ResourceLocation; -import net.minecraft.util.text.ITextComponent; -import org.lwjgl.opengl.GL11; - -import java.util.List; - -public class TileEntitySkyrootSignRenderer extends TileEntitySpecialRenderer<TileEntitySkyrootSign> -{ - private static final ResourceLocation SIGN_TEXTURE = new ResourceLocation("aether:textures/tile_entities/skyroot_sign.png"); - - /** The ModelSign instances for use in this renderer */ - private final ModelSign model = new ModelSign(); - - @Override - public void render( - final TileEntitySkyrootSign te, final double x, final double y, final double z, final float partialTicks, final int destroyStage, final float alpha) - { - final Block block = te.getBlockType(); - - GlStateManager.pushMatrix(); - - final float modelScale = 0.6666667F; - - if (block == BlocksAether.standing_skyroot_sign) - { - final float direction = (te.getBlockMetadata() * 360) / 16.0F; - - GlStateManager.translate(x + 0.5F, y + 0.75F * modelScale, z + 0.5F); - GlStateManager.rotate(-direction, 0.0F, 1.0F, 0.0F); - - this.model.signStick.showModel = true; - } - else - { - final int direction = te.getBlockMetadata(); - - float angle = 0.0F; - - if (direction == 2) - { - angle = 180.0F; - } - - if (direction == 4) - { - angle = 90.0F; - } - - if (direction == 5) - { - angle = -90.0F; - } - - GlStateManager.translate(x + 0.5F, y + 0.75F * modelScale, z + 0.5F); - GlStateManager.rotate(-angle, 0.0F, 1.0F, 0.0F); - GlStateManager.translate(0.0F, -0.3125F, -0.4375F); - - this.model.signStick.showModel = false; - } - - if (destroyStage >= 0) - { - this.bindTexture(DESTROY_STAGES[destroyStage]); - - GlStateManager.matrixMode(GL11.GL_TEXTURE); - GlStateManager.pushMatrix(); - GlStateManager.scale(4.0F, 2.0F, 1.0F); - GlStateManager.translate(0.0625F, 0.0625F, 0.0625F); - GlStateManager.matrixMode(GL11.GL_MODELVIEW); - } - else - { - this.bindTexture(SIGN_TEXTURE); - } - - GlStateManager.enableRescaleNormal(); - GlStateManager.pushMatrix(); - GlStateManager.scale(modelScale, -modelScale, -modelScale); - - this.model.renderSign(); - - GlStateManager.popMatrix(); - - final FontRenderer fontrenderer = this.getFontRenderer(); - - final float textScale = 0.015625F * modelScale; - GlStateManager.translate(0.0F, 0.5F * modelScale, 0.07F * modelScale); - GlStateManager.scale(textScale, -textScale, textScale); - GL11.glNormal3f(0.0F, 0.0F, -1.0F * textScale); - GlStateManager.depthMask(false); - final int fontColor = 0xFFFFFFFF; - - if (destroyStage < 0) - { - for (int i = 0; i < te.signText.length; ++i) - { - if (te.signText[i] != null) - { - final ITextComponent text = te.signText[i]; - - final List<ITextComponent> list = GuiUtilRenderComponents.splitText(text, 90, fontrenderer, false, true); - - String line = list.size() > 0 ? list.get(0).getFormattedText() : ""; - - if (i == te.lineBeingEdited) - { - line = "> " + line + " <"; - - fontrenderer.drawString(line, -fontrenderer.getStringWidth(line) / 2, i * 10 - te.signText.length * 5, fontColor); - } - else - { - fontrenderer.drawString(line, -fontrenderer.getStringWidth(line) / 2, i * 10 - te.signText.length * 5, fontColor); - } - } - } - } - - GlStateManager.depthMask(true); - GlStateManager.color(1.0F, 1.0F, 1.0F, 1.0F); - GlStateManager.popMatrix(); - - if (destroyStage >= 0) - { - GlStateManager.matrixMode(GL11.GL_TEXTURE); - GlStateManager.popMatrix(); - GlStateManager.matrixMode(GL11.GL_MODELVIEW); - } - } -} diff --git a/src/main/java/com/gildedgames/aether/client/renderer/tiles/TileEntityTeleporterRenderer.java b/src/main/java/com/gildedgames/aether/client/renderer/tiles/TileEntityTeleporterRenderer.java deleted file mode 100644 index 6a455d1605..0000000000 --- a/src/main/java/com/gildedgames/aether/client/renderer/tiles/TileEntityTeleporterRenderer.java +++ /dev/null @@ -1,58 +0,0 @@ -package com.gildedgames.aether.client.renderer.tiles; - -import com.gildedgames.aether.client.models.entities.tile.ModelTeleporter; -import com.gildedgames.aether.common.AetherCore; -import com.gildedgames.aether.common.entities.tiles.TileEntityTeleporter; -import net.minecraft.client.renderer.GlStateManager; -import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; -import net.minecraft.util.ResourceLocation; - -public class TileEntityTeleporterRenderer extends TileEntitySpecialRenderer<TileEntityTeleporter> -{ - private final ModelTeleporter model = new ModelTeleporter(); - - private final ResourceLocation texture = AetherCore.getResource("textures/tile_entities/teleporter/pedestal.png"); - - @Override - public void render(final TileEntityTeleporter teleporter, final double x, final double y, final double z, final float partialTicks, final int destroyStage, - final float alpha) - { - GlStateManager.pushMatrix(); - GlStateManager.enableRescaleNormal(); - - GlStateManager.translate((float) x + 0.5F, (float) y + 1.5F, (float) z + 0.5F); - GlStateManager.rotate(180f, 1f, 0f, 1f); - - this.bindTexture(this.texture); - - if (teleporter != null) - { - switch (teleporter.getFacing()) - { - case NORTH: - GlStateManager.rotate(270.0f, 0.0f, 1.0f, 0.0f); - break; - case WEST: - GlStateManager.rotate(180.0f, 0.0f, 1.0f, 0.0f); - break; - case SOUTH: - GlStateManager.rotate(90.0f, 0.0f, 1.0f, 0.0f); - break; - case EAST: - GlStateManager.rotate(0.0f, 0.0f, 1.0f, 0.0f); - break; - } - - this.model.render(0.0625F, teleporter.animationTicks + ((double) (teleporter.animationTicks - teleporter.prevAnimationTicks) * partialTicks)); - } - else - { - this.model.render(0.0625F, 0); - } - - GlStateManager.disableRescaleNormal(); - - GlStateManager.popMatrix(); - } - -} diff --git a/src/main/java/com/gildedgames/aether/client/renderer/tiles/items/TileEntityPresentItemRenderer.java b/src/main/java/com/gildedgames/aether/client/renderer/tiles/items/TileEntityPresentItemRenderer.java deleted file mode 100644 index 07e6a703d9..0000000000 --- a/src/main/java/com/gildedgames/aether/client/renderer/tiles/items/TileEntityPresentItemRenderer.java +++ /dev/null @@ -1,67 +0,0 @@ -package com.gildedgames.aether.client.renderer.tiles.items; - -import com.gildedgames.aether.client.models.entities.tile.ModelPresent; -import com.gildedgames.aether.common.AetherCore; -import com.gildedgames.aether.common.items.blocks.ItemBlockPresent; -import net.minecraft.client.Minecraft; -import net.minecraft.client.renderer.GlStateManager; -import net.minecraft.client.renderer.tileentity.TileEntityItemStackRenderer; -import net.minecraft.item.ItemStack; -import net.minecraft.util.ResourceLocation; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; - -@SideOnly(Side.CLIENT) -public class TileEntityPresentItemRenderer extends TileEntityItemStackRenderer -{ - public static final ResourceLocation[] boxTextures = new ResourceLocation[16]; - - public static final ResourceLocation[] bowTextures = new ResourceLocation[16]; - - public static final String[] colors = new String[] { "black", "red", "green", "brown", "blue", "purple", "cyan", "silver", "gray", - "pink", "lime", "yellow", "light_blue", "magenta", "orange", "white" }; - - static - { - for (int i = 0; i < 16; i++) - { - boxTextures[i] = AetherCore.getResource("textures/tile_entities/present/present_box_" + colors[i] + ".png"); - bowTextures[i] = AetherCore.getResource("textures/tile_entities/present/present_ribbon_" + colors[i] + ".png"); - } - } - - private final ModelPresent model = new ModelPresent(); - - @Override - public void renderByItem(ItemStack itemStackIn) - { - GlStateManager.pushMatrix(); - - ItemBlockPresent.PresentData data = ItemBlockPresent.getData(itemStackIn); - - byte boxColor = data.getDye().getBoxColor(); - byte bowColor = data.getDye().getBowColor(); - - // Sanitize dye colors to prevent rogue presents! - boxColor = (boxColor >= 15 ? 15 : (boxColor < 0 ? 0 : boxColor)); - bowColor = (bowColor >= 15 ? 15 : (bowColor < 0 ? 0 : bowColor)); - - GlStateManager.enableRescaleNormal(); - - GlStateManager.translate(0.5f, 0.0f, 0.5f); - - GlStateManager.rotate(180f, 1.0f, 0f, 0.4f); - GlStateManager.scale(1.5F, 1.5F, 1.5F); - - Minecraft.getMinecraft().getTextureManager().bindTexture(boxTextures[boxColor]); - this.model.renderBox(0.0625F); - - Minecraft.getMinecraft().getTextureManager().bindTexture(bowTextures[bowColor]); - this.model.renderBow(0.0625F); - this.model.renderBox(0.0625F); - - GlStateManager.disableRescaleNormal(); - - GlStateManager.popMatrix(); - } -} diff --git a/src/main/java/com/gildedgames/aether/client/renderer/world/EntityRendererHelper.java b/src/main/java/com/gildedgames/aether/client/renderer/world/EntityRendererHelper.java deleted file mode 100644 index a6371ab916..0000000000 --- a/src/main/java/com/gildedgames/aether/client/renderer/world/EntityRendererHelper.java +++ /dev/null @@ -1,164 +0,0 @@ -package com.gildedgames.aether.client.renderer.world; - -import net.minecraft.client.Minecraft; -import net.minecraft.client.renderer.texture.DynamicTexture; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.init.MobEffects; -import net.minecraft.util.math.MathHelper; -import net.minecraft.world.World; - -public class EntityRendererHelper -{ - public static void updateLightmap(Minecraft mc, float partialTicks, float f) - { - int[] lightmapColors = mc.entityRenderer.lightmapColors; - DynamicTexture lightmapTexture = mc.entityRenderer.lightmapTexture; - - mc.profiler.startSection("lightTexAetherDim"); - - World world = mc.world; - - if (world != null) - { - float f1 = f * 0.95F + 0.05F; - - for (int i = 0; i < 256; ++i) - { - float f2 = world.provider.getLightBrightnessTable()[i / 16] * f1; - float f3 = world.provider.getLightBrightnessTable()[i % 16] * (mc.entityRenderer.torchFlickerX * 0.1F + 1.5F); - - if (world.getLastLightningBolt() > 0) - { - f2 = world.provider.getLightBrightnessTable()[i / 16]; - } - - float f4 = f2 * (f * 0.65F + 0.35F); - float f5 = f2 * (f * 0.65F + 0.35F); - float f6 = f3 * ((f3 * 0.6F + 0.4F) * 0.6F + 0.4F); - float f7 = f3 * (f3 * f3 * 0.6F + 0.4F); - float f8 = f4 + f3; - float f9 = f5 + f6; - float f10 = f2 + f7; - f8 = f8 * 0.96F + 0.03F; - f9 = f9 * 0.96F + 0.03F; - f10 = f10 * 0.96F + 0.03F; - - if (world.provider.getDimensionType().getId() == 1) - { - f8 = 0.22F + f3 * 0.75F; - f9 = 0.28F + f6 * 0.75F; - f10 = 0.25F + f7 * 0.75F; - } - - float[] colors = { f8, f9, f10 }; - world.provider.getLightmapColors(partialTicks, f, f2, f3, colors); - f8 = colors[0]; - f9 = colors[1]; - f10 = colors[2]; - - // Forge: fix MC-58177 - f8 = MathHelper.clamp(f8, 0f, 1f); - f9 = MathHelper.clamp(f9, 0f, 1f); - f10 = MathHelper.clamp(f10, 0f, 1f); - - if (mc.player.isPotionActive(MobEffects.NIGHT_VISION)) - { - float f15 = getNightVisionBrightness(mc.player, partialTicks); - float f12 = 1.0F / f8; - - if (f12 > 1.0F / f9) - { - f12 = 1.0F / f9; - } - - if (f12 > 1.0F / f10) - { - f12 = 1.0F / f10; - } - - f8 = f8 * (1.0F - f15) + f8 * f12 * f15; - f9 = f9 * (1.0F - f15) + f9 * f12 * f15; - f10 = f10 * (1.0F - f15) + f10 * f12 * f15; - } - - if (f8 > 1.0F) - { - f8 = 1.0F; - } - - if (f9 > 1.0F) - { - f9 = 1.0F; - } - - if (f10 > 1.0F) - { - f10 = 1.0F; - } - - float f16 = mc.gameSettings.gammaSetting; - float f17 = 1.0F - f8; - float f13 = 1.0F - f9; - float f14 = 1.0F - f10; - f17 = 1.0F - f17 * f17 * f17 * f17; - f13 = 1.0F - f13 * f13 * f13 * f13; - f14 = 1.0F - f14 * f14 * f14 * f14; - f8 = f8 * (1.0F - f16) + f17 * f16; - f9 = f9 * (1.0F - f16) + f13 * f16; - f10 = f10 * (1.0F - f16) + f14 * f16; - f8 = f8 * 0.96F + 0.03F; - f9 = f9 * 0.96F + 0.03F; - f10 = f10 * 0.96F + 0.03F; - - if (f8 > 1.0F) - { - f8 = 1.0F; - } - - if (f9 > 1.0F) - { - f9 = 1.0F; - } - - if (f10 > 1.0F) - { - f10 = 1.0F; - } - - if (f8 < 0.0F) - { - f8 = 0.0F; - } - - if (f9 < 0.0F) - { - f9 = 0.0F; - } - - if (f10 < 0.0F) - { - f10 = 0.0F; - } - - int j = 255; - int k = (int) (f8 * 255.0F); - int l = (int) (f9 * 255.0F); - int i1 = (int) (f10 * 255.0F); - - lightmapColors[i] = -16777216 | k << 16 | l << 8 | i1; - } - - lightmapTexture.updateDynamicTexture(); - - mc.profiler.endSection(); - } - } - - private static float getNightVisionBrightness(EntityLivingBase entitylivingbaseIn, float partialTicks) - { - int i = entitylivingbaseIn.getActivePotionEffect(MobEffects.NIGHT_VISION).getDuration(); - - return i > 200 ? 1.0F : 0.7F + MathHelper.sin(((float) i - partialTicks) * (float) Math.PI * 0.2F) * 0.3F; - } - -} diff --git a/src/main/java/com/gildedgames/aether/client/renderer/world/RenderWorldPrecipitation.java b/src/main/java/com/gildedgames/aether/client/renderer/world/RenderWorldPrecipitation.java deleted file mode 100644 index 4a5d64e59c..0000000000 --- a/src/main/java/com/gildedgames/aether/client/renderer/world/RenderWorldPrecipitation.java +++ /dev/null @@ -1,373 +0,0 @@ -package com.gildedgames.aether.client.renderer.world; - -import com.gildedgames.aether.api.registrar.CapabilitiesAether; -import com.gildedgames.aether.api.registrar.SoundsAether; -import com.gildedgames.aether.api.world.islands.precipitation.IPrecipitationManager; -import com.gildedgames.aether.api.world.islands.precipitation.PrecipitationStrength; -import com.gildedgames.aether.common.AetherCore; -import net.minecraft.client.Minecraft; -import net.minecraft.client.multiplayer.WorldClient; -import net.minecraft.client.renderer.BufferBuilder; -import net.minecraft.client.renderer.GlStateManager; -import net.minecraft.client.renderer.Tessellator; -import net.minecraft.client.renderer.vertex.DefaultVertexFormats; -import net.minecraft.entity.Entity; -import net.minecraft.util.ResourceLocation; -import net.minecraft.util.SoundCategory; -import net.minecraft.util.SoundEvent; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.MathHelper; -import net.minecraft.world.EnumSkyBlock; -import net.minecraft.world.biome.Biome; -import net.minecraftforge.client.IRenderHandler; - -import javax.vecmath.Vector2f; -import java.util.HashMap; -import java.util.Random; - -public class RenderWorldPrecipitation extends IRenderHandler -{ - private final HashMap<String, ResourceLocation> textureCache = new HashMap<>(); - - private int renderTicks; - - private int renderTicksSinceSound; - - private final float[] rainXCoords = new float[1024]; - - private final float[] rainYCoords = new float[1024]; - - private final Random random = new Random(); - - private float skyDarkness, lastSkyDarkness; - - public RenderWorldPrecipitation() - { - for (int x = 0; x < 32; ++x) - { - for (int y = 0; y < 32; ++y) - { - float y2 = (float) (y - 16); - float x2 = (float) (x - 16); - - float f2 = MathHelper.sqrt(y2 * y2 + x2 * x2); - - this.rainXCoords[x << 5 | y] = -x2 / f2; - this.rainYCoords[x << 5 | y] = y2 / f2; - } - } - } - - // Called every 20th of a second - public void tick() - { - if (!Minecraft.getMinecraft().isGamePaused()) - { - this.renderTicks++; - this.renderTicksSinceSound++; - } - - } - - @Override - public void render(float partialTicks, WorldClient world, Minecraft mc) - { - this.playSounds(mc); - - mc.entityRenderer.enableLightmap(); - - Entity entity = mc.getRenderViewEntity(); - - int entityX = MathHelper.floor(entity.posX); - int entityY = MathHelper.floor(entity.posY); - int entityZ = MathHelper.floor(entity.posZ); - - Tessellator tessellator = Tessellator.getInstance(); - - BufferBuilder buffer = tessellator.getBuffer(); - - GlStateManager.disableCull(); - - GlStateManager.glNormal3f(0.0F, 1.0F, 0.0F); - - GlStateManager.enableBlend(); - GlStateManager.tryBlendFuncSeparate(GlStateManager.SourceFactor.SRC_ALPHA, GlStateManager.DestFactor.ONE_MINUS_SRC_ALPHA, - GlStateManager.SourceFactor.ONE, GlStateManager.DestFactor.ZERO); - GlStateManager.alphaFunc(516, 0.1F); - - double x = entity.lastTickPosX + (entity.posX - entity.lastTickPosX) * (double) partialTicks; - double y = entity.lastTickPosY + (entity.posY - entity.lastTickPosY) * (double) partialTicks; - double z = entity.lastTickPosZ + (entity.posZ - entity.lastTickPosZ) * (double) partialTicks; - - int l = MathHelper.floor(y); - - int radius = 5; - - if (mc.gameSettings.fancyGraphics) - { - radius = 10; - } - - int continuous = -1; - - buffer.setTranslation(-x, -y, -z); - - GlStateManager.color(1.0F, 1.0F, 1.0F, 1.0F); - - BlockPos.MutableBlockPos pos = new BlockPos.MutableBlockPos(); - - IPrecipitationManager precipitation = world.getCapability(CapabilitiesAether.PRECIPITATION_MANAGER, null); - - Vector2f velocity = precipitation.getWindVector(); - - for (int z2 = entityZ - radius; z2 <= entityZ + radius; ++z2) - { - for (int x2 = entityX - radius; x2 <= entityX + radius; ++x2) - { - int index = (z2 - entityZ + 16) * 32 + x2 - entityX + 16; - - double rainX = (double) this.rainXCoords[index] * 0.5D; - double rainY = (double) this.rainYCoords[index] * 0.5D; - - pos.setPos(x2, 0, z2); - - float opacity = world.getRainStrength(partialTicks); - - if (opacity > 0 && world.isRaining()) - { - int height = world.getPrecipitationHeight(pos).getY(); - - int yMin = entityY - radius; - int yMax = entityY + radius; - - if (yMin < height) - { - yMin = height; - } - - if (yMax < height) - { - yMax = height; - } - - int y2 = height; - - if (height < l) - { - y2 = l; - } - - if (yMin != yMax) - { - this.random.setSeed((long) (x2 * x2 * 3121 + x2 * 45238971 ^ z2 * z2 * 418711 + z2 * 13761)); - - pos.setPos(x2, yMin, z2); - - Biome biome = world.getBiome(pos); - - if (biome.isSnowyBiome()) - { - float intensity = precipitation.getStrength() == PrecipitationStrength.STORM ? - 2.5f : - (precipitation.getStrength() == PrecipitationStrength.HEAVY ? 1.4f : 0.6f); - - if (continuous != 1) - { - if (continuous >= 0) - { - tessellator.draw(); - } - - continuous = 1; - - String textureKey = AetherCore.getResourcePath("textures/environment/weather/" + "snow" - + "_" + precipitation.getStrength().getResourceId() + ".png"); - - ResourceLocation texture = this.textureCache.computeIfAbsent(textureKey, (key) -> new ResourceLocation(textureKey)); - mc.getTextureManager().bindTexture(texture); - - buffer.begin(7, DefaultVertexFormats.PARTICLE_POSITION_TEX_COLOR_LMAP); - } - - float ticks = (this.renderTicks + partialTicks) * intensity; - - double d8 = -(this.renderTicks + partialTicks) * 0.001D * intensity; - - double uOffset = this.random.nextDouble() + -((ticks + partialTicks) * this.random.nextGaussian() * 0.01D); - double vOffset = this.random.nextDouble() + -((ticks + partialTicks) * this.random.nextGaussian() * 0.001D); - - double d11 = (double) ((float) x2 + 0.5F) - entity.posX; - double d12 = (double) ((float) z2 + 0.5F) - entity.posZ; - - float f6 = MathHelper.sqrt(d11 * d11 + d12 * d12) / (float) radius; - float alpha = ((1.0F - f6 * f6) * 0.3F + 0.5F) * opacity; - - pos.setPos(x2, y2, z2); - - int light = (world.getCombinedLight(pos, 0) * 3 + 15728880) / 4; - int lightU = light >> 16 & 65535; - int lightV = light & 65535; - - buffer.pos((double) x2 - rainX + 0.5D, (double) yMax, (double) z2 - rainY + 0.5D) - .tex(0.0D + uOffset, (double) yMin * 0.25D + d8 + vOffset) - .color(1.0F, 1.0F, 1.0F, alpha).lightmap(lightU, lightV).endVertex(); - buffer.pos((double) x2 + rainX + 0.5D, (double) yMax, (double) z2 + rainY + 0.5D) - .tex(1.0D + uOffset, (double) yMin * 0.25D + d8 + vOffset) - .color(1.0F, 1.0F, 1.0F, alpha).lightmap(lightU, lightV).endVertex(); - buffer.pos((double) x2 + rainX + 0.5D, (double) yMin, (double) z2 + rainY + 0.5D) - .tex(1.0D + uOffset, (double) yMax * 0.25D + d8 + vOffset) - .color(1.0F, 1.0F, 1.0F, alpha).lightmap(lightU, lightV).endVertex(); - buffer.pos((double) x2 - rainX + 0.5D, (double) yMin, (double) z2 - rainY + 0.5D) - .tex(0.0D + uOffset, (double) yMax * 0.25D + d8 + vOffset) - .color(1.0F, 1.0F, 1.0F, alpha).lightmap(lightU, lightV).endVertex(); - } - else - { - float intensity = precipitation.getStrength() == PrecipitationStrength.STORM ? - 48.0f : - (precipitation.getStrength() == PrecipitationStrength.HEAVY ? 64.0f : 128.0f); - - if (continuous != 0) - { - if (continuous >= 0) - { - tessellator.draw(); - } - - continuous = 0; - - String textureKey = AetherCore.getResourcePath("textures/environment/weather/" + "rain" - + "_" + precipitation.getStrength().getResourceId() + ".png"); - - ResourceLocation texture = this.textureCache.computeIfAbsent(textureKey, (key) -> new ResourceLocation(textureKey)); - mc.getTextureManager().bindTexture(texture); - - buffer.begin(7, DefaultVertexFormats.PARTICLE_POSITION_TEX_COLOR_LMAP); - } - - double textureVOffset = -((double) (this.renderTicks + x2 * x2 * 3121 + x2 * 45238971 + z2 * z2 * 418711 + z2 * 13761 & 31) - + (double) partialTicks) / intensity * (3.0D + this.random.nextDouble()); - - double d6 = (double) ((float) x2 + 0.5F) - entity.posX; - double d7 = (double) ((float) z2 + 0.5F) - entity.posZ; - - float f3 = MathHelper.sqrt(d6 * d6 + d7 * d7) / (float) radius; - float f4 = ((1.0F - f3 * f3) * 0.5F + 0.5F) * opacity; - - pos.setPos(x2, y2, z2); - - int light = world.getCombinedLight(pos, 0); - int lightU = light >> 16 & 65535; - int lightV = light & 65535; - - int color = biome.getWaterColor(); - - float red = ((color & 0xFF0000) >> 16) / 255.0f; - float blue = ((color & 0xFF00) >> 8) / 255.0f; - float green = (color & 0xFF) / 255.0f; - - buffer.pos((double) x2 - rainX + 0.5D, (double) yMax, (double) z2 - rainY + 0.5D) - .tex(0.0D, (double) yMin * 0.25D + textureVOffset) - .color(red, blue, green, f4) - .lightmap(lightU, lightV).endVertex(); - - buffer.pos((double) x2 + rainX + 0.5D, (double) yMax, (double) z2 + rainY + 0.5D) - .tex(1.0D, (double) yMin * 0.25D + textureVOffset) - .color(red, blue, green, f4) - .lightmap(lightU, lightV).endVertex(); - - buffer.pos((double) x2 + rainX + 0.5D + velocity.x, (double) yMin, (double) z2 + rainY + 0.5D + velocity.y) - .tex(1.0D, (double) yMax * 0.25D + textureVOffset) - .color(red, blue, green, f4) - .lightmap(lightU, lightV).endVertex(); - - buffer.pos((double) x2 - rainX + 0.5D + velocity.x, (double) yMin, (double) z2 - rainY + 0.5D + velocity.y) - .tex(0.0D, (double) yMax * 0.25D + textureVOffset) - .color(red, blue, green, f4) - .lightmap(lightU, lightV).endVertex(); - } - } - } - } - } - - if (continuous >= 0) - { - tessellator.draw(); - } - - buffer.setTranslation(0.0D, 0.0D, 0.0D); - GlStateManager.enableCull(); - GlStateManager.disableBlend(); - GlStateManager.alphaFunc(516, 0.1F); - mc.entityRenderer.disableLightmap(); - } - - private void playSounds(Minecraft mc) - { - if (mc.isGamePaused()) - { - return; - } - - BlockPos pos = mc.player.getPosition(); - - IPrecipitationManager precipitation = mc.player.world.getCapability(CapabilitiesAether.PRECIPITATION_MANAGER, null); - - if (!mc.world.isRaining() || mc.world.getRainStrength(mc.getRenderPartialTicks()) <= 0.3f) - { - return; - } - - int radius = 25; - int frequency = 15; - - BlockPos.MutableBlockPos searchPos = new BlockPos.MutableBlockPos(); - - if (this.renderTicksSinceSound >= frequency) - { - int x = pos.getX() + mc.world.rand.nextInt(radius) - (radius / 2) + (int) (mc.player.motionX * radius / 2.0); - int z = pos.getZ() + mc.world.rand.nextInt(radius) - (radius / 2) + (int) (mc.player.motionZ * radius / 2.0); - - int y = mc.world.getTopSolidOrLiquidBlock(new BlockPos(x, 255, z)).getY() + 1; - - if (mc.world.getLightFor(EnumSkyBlock.SKY, new BlockPos(x, y, z)) >= 15) - { - SoundEvent event = null; - float volume = 1.0f; - - searchPos.setPos(x, y, z); - - if (mc.world.getBiome(searchPos).isSnowyBiome()) - { - if (precipitation.getStrength() == PrecipitationStrength.STORM) - { - event = SoundsAether.environment_snow_wind; - volume = 0.6f; - } - } - else - { - if (precipitation.getStrength() == PrecipitationStrength.LIGHT) - { - event = SoundsAether.environment_rain_light; - volume = 0.6f; - } - else - { - event = SoundsAether.environment_rain_heavy; - volume = 0.7f; - } - } - - this.renderTicksSinceSound = 0; - - if (event != null) - { - mc.world.playSound(x, y, z, event, SoundCategory.WEATHER, volume, 1.0f + (mc.world.rand.nextFloat() * 0.1f), true); - } - } - } - } - -} diff --git a/src/main/java/com/gildedgames/aether/client/renderer/world/RenderWorldSkybox.java b/src/main/java/com/gildedgames/aether/client/renderer/world/RenderWorldSkybox.java deleted file mode 100644 index c4f84b4fca..0000000000 --- a/src/main/java/com/gildedgames/aether/client/renderer/world/RenderWorldSkybox.java +++ /dev/null @@ -1,193 +0,0 @@ -package com.gildedgames.aether.client.renderer.world; - -import com.gildedgames.aether.api.registrar.CapabilitiesAether; -import com.gildedgames.aether.api.world.islands.precipitation.IPrecipitationManager; -import com.gildedgames.aether.client.renderer.textures.SimpleDXT1Texture; -import com.gildedgames.aether.common.AetherCore; -import net.minecraft.client.Minecraft; -import net.minecraft.client.multiplayer.WorldClient; -import net.minecraft.client.renderer.BufferBuilder; -import net.minecraft.client.renderer.GlStateManager; -import net.minecraft.client.renderer.Tessellator; -import net.minecraft.client.renderer.vertex.DefaultVertexFormats; -import net.minecraft.util.ResourceLocation; -import net.minecraft.util.math.MathHelper; -import net.minecraftforge.client.IRenderHandler; -import org.lwjgl.opengl.GL11; -import org.lwjgl.util.glu.Project; - -public class RenderWorldSkybox extends IRenderHandler -{ - private static final float TRANSITION_PER_TICK = 1.0f / 8.0f; - - private static final ResourceLocation TEXTURE_SKYBOX = AetherCore.getResource("textures/environment/skybox/skybox_clouds.png"); - - private SimpleDXT1Texture texture; - - private long prevUpdateTimeMillis, nowUpdateTimeMillis; - - private float skyDarkness; - - @Override - public void render(float partialTicks, WorldClient world, Minecraft mc) - { - if (this.texture == null) - { - mc.getTextureManager().loadTexture(TEXTURE_SKYBOX, this.texture = new SimpleDXT1Texture(TEXTURE_SKYBOX)); - } - - this.prevUpdateTimeMillis = this.nowUpdateTimeMillis; - this.nowUpdateTimeMillis = System.nanoTime() / 1_000_000; - - this.updateLightmap(mc, partialTicks); - - float farPlaneDistance = (float) (mc.gameSettings.renderDistanceChunks * 32); - - mc.entityRenderer.enableLightmap(); - - GlStateManager.disableFog(); - - GlStateManager.matrixMode(GL11.GL_PROJECTION); - GlStateManager.loadIdentity(); - - Project.gluPerspective(this.getFOVModifier(partialTicks, true), (float) mc.displayWidth / (float) mc.displayHeight, 0.05F, farPlaneDistance * 4.0F); - - GlStateManager.matrixMode(GL11.GL_MODELVIEW); - GlStateManager.pushMatrix(); - - mc.getTextureManager().bindTexture(TEXTURE_SKYBOX); - - GlStateManager.glTexParameteri(GL11.GL_TEXTURE_2D, GL11.GL_TEXTURE_MIN_FILTER, GL11.GL_NEAREST); - GlStateManager.glTexParameteri(GL11.GL_TEXTURE_2D, GL11.GL_TEXTURE_MAG_FILTER, GL11.GL_NEAREST); - - int k2 = 15 << 20; - int h = k2 >> 16 & 65535; - int k = k2 & 65535; - - Tessellator tessellator = Tessellator.getInstance(); - - float f = farPlaneDistance * 4; - float a = 1f; - float b = 1f; - - GlStateManager.enableBlend(); - GlStateManager.blendFunc(GlStateManager.SourceFactor.SRC_ALPHA, GlStateManager.DestFactor.ONE_MINUS_SRC_ALPHA); - - BufferBuilder builder = tessellator.getBuffer(); - - builder.begin(GL11.GL_QUADS, DefaultVertexFormats.POSITION_TEX_LMAP_COLOR); - - builder.pos(-0.5f * f, -0.5f * f, 0.5f * f).tex(0.5f, 1.0f).lightmap(h, k).color(b, b, b, a).endVertex(); - builder.pos(0.5f * f, -0.5f * f, 0.5f * f).tex(0.5f, 0.5f).lightmap(h, k).color(b, b, b, a).endVertex(); - builder.pos(0.5f * f, -0.5f * f, -0.5f * f).tex(0.25f, 0.5f).lightmap(h, k).color(b, b, b, a).endVertex(); - builder.pos(-0.5f * f, -0.5f * f, -0.5f * f).tex(0.25f, 1.0f).lightmap(h, k).color(b, b, b, a).endVertex(); - - builder.pos(0.5f * f, 0.5f * f, 0.5f * f).tex(0.5f, 0.0f).lightmap(h, k).color(b, b, b, a).endVertex(); - builder.pos(-0.5f * f, 0.5f * f, 0.5f * f).tex(0.5f, 0.0f).lightmap(h, k).color(b, b, b, a).endVertex(); - builder.pos(-0.5f * f, 0.5f * f, -0.5f * f).tex(0.25f, 0.0f).lightmap(h, k).color(b, b, b, a).endVertex(); - builder.pos(0.5f * f, 0.5f * f, -0.5f * f).tex(0.25f, 0.0f).lightmap(h, k).color(b, b, b, a).endVertex(); - - builder.pos(0.5f * f, -0.5f * f, -0.5f * f).tex(0.25f, 0.50f).lightmap(h, k).color(b, b, b, a).endVertex(); - builder.pos(0.5f * f, 0.5f * f, -0.5f * f).tex(0.25f, 0.0f).lightmap(h, k).color(b, b, b, a).endVertex(); - builder.pos(-0.5f * f, 0.5f * f, -0.5f * f).tex(0.0f, 0.0f).lightmap(h, k).color(b, b, b, a).endVertex(); - builder.pos(-0.5f * f, -0.5f * f, -0.5f * f).tex(0.0f, 0.50f).lightmap(h, k).color(b, b, b, a).endVertex(); - - builder.pos(-0.5f * f, -0.5f * f, 0.5f * f).tex(0.75f, 0.50f).lightmap(h, k).color(b, b, b, a).endVertex(); - builder.pos(-0.5f * f, 0.5f * f, 0.5f * f).tex(0.75f, 0.0f).lightmap(h, k).color(b, b, b, a).endVertex(); - builder.pos(0.5f * f, 0.5f * f, 0.5f * f).tex(0.5f, 0.0f).lightmap(h, k).color(b, b, b, a).endVertex(); - builder.pos(0.5f * f, -0.5f * f, 0.5f * f).tex(0.5f, 0.50f).lightmap(h, k).color(b, b, b, a).endVertex(); - - builder.pos(-0.5f * f, -0.5f * f, -0.5f * f).tex(1.0f, 0.50f).lightmap(h, k).color(b, b, b, a).endVertex(); - builder.pos(-0.5f * f, 0.5f * f, -0.5f * f).tex(1.0f, 0.0f).lightmap(h, k).color(b, b, b, a).endVertex(); - builder.pos(-0.5f * f, 0.5f * f, 0.5f * f).tex(0.75f, 0.0f).lightmap(h, k).color(b, b, b, a).endVertex(); - builder.pos(-0.5f * f, -0.5f * f, 0.5f * f).tex(0.75f, 0.50f).lightmap(h, k).color(b, b, b, a).endVertex(); - - builder.pos(0.5f * f, -0.5f * f, 0.5f * f).tex(0.5f, 0.5f).lightmap(h, k).color(b, b, b, a).endVertex(); - builder.pos(0.5f * f, 0.5f * f, 0.5f * f).tex(0.5f, 0.0f).lightmap(h, k).color(b, b, b, a).endVertex(); - builder.pos(0.5f * f, 0.5f * f, -0.5f * f).tex(0.25f, 0.0f).lightmap(h, k).color(b, b, b, a).endVertex(); - builder.pos(0.5f * f, -0.5f * f, -0.5f * f).tex(0.25f, 0.5f).lightmap(h, k).color(b, b, b, a).endVertex(); - - tessellator.draw(); - - GlStateManager.disableBlend(); - - GlStateManager.depthMask(true); - - GlStateManager.popMatrix(); - GlStateManager.matrixMode(GL11.GL_PROJECTION); - GlStateManager.loadIdentity(); - - Project.gluPerspective(this.getFOVModifier(partialTicks, true), (float) mc.displayWidth / (float) mc.displayHeight, 0.05F, - farPlaneDistance * MathHelper.SQRT_2); - - GlStateManager.matrixMode(GL11.GL_MODELVIEW); - - GlStateManager.disableFog(); - - mc.entityRenderer.disableLightmap(); - - } - - private float getFOVModifier(float partialTicks, boolean useFOVSetting) - { - return Minecraft.getMinecraft().entityRenderer.getFOVModifier(partialTicks, useFOVSetting); - } - - private void updateLightmap(Minecraft mc, float partialTicks) - { - IPrecipitationManager precipitation = Minecraft.getMinecraft().world.getCapability(CapabilitiesAether.PRECIPITATION_MANAGER, null); - - if (precipitation == null) - { - this.skyDarkness = 0.0f; - - return; - } - - if (!mc.world.isRaining()) - { - this.skyDarkness -= this.getUpdateStep() * TRANSITION_PER_TICK; - - if (this.skyDarkness < 0.0f) - { - this.skyDarkness = 0.0f; - } - } - else - { - float target = precipitation.getSkyDarkness(); - - if (target > this.skyDarkness) - { - this.skyDarkness += this.getUpdateStep() * TRANSITION_PER_TICK; - - if (this.skyDarkness > target) - { - this.skyDarkness = target; - } - } - else - { - this.skyDarkness -= this.getUpdateStep() * TRANSITION_PER_TICK; - - if (this.skyDarkness < target) - { - this.skyDarkness = target; - } - } - - } - - float strength = 1.0f - this.skyDarkness; - - float f = mc.world.getSunBrightness(partialTicks); - f = f * strength; - - EntityRendererHelper.updateLightmap(mc, partialTicks, f); - } - - private float getUpdateStep() - { - return (this.nowUpdateTimeMillis - this.prevUpdateTimeMillis) / 1000.0f; - } -} diff --git a/src/main/java/com/gildedgames/aether/client/sound/AetherMusicManager.java b/src/main/java/com/gildedgames/aether/client/sound/AetherMusicManager.java deleted file mode 100644 index 55257ab9c1..0000000000 --- a/src/main/java/com/gildedgames/aether/client/sound/AetherMusicManager.java +++ /dev/null @@ -1,145 +0,0 @@ -package com.gildedgames.aether.client.sound; - -import com.gildedgames.aether.api.player.IPlayerAether; -import com.gildedgames.aether.common.AetherCore; -import com.gildedgames.aether.common.capabilities.entity.player.PlayerAether; -import com.gildedgames.aether.common.init.DimensionsAether; -import net.minecraft.client.Minecraft; -import net.minecraft.client.audio.ISound; -import net.minecraft.client.audio.PositionedSoundRecord; -import net.minecraft.util.SoundEvent; -import net.minecraft.util.math.MathHelper; -import net.minecraft.world.World; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; - -import java.util.Random; - -@SideOnly(Side.CLIENT) -public class AetherMusicManager -{ - private final Random rand = new Random(); - private final Minecraft mc; - private ISound currentMusic, currentRecord; - private static int timeUntilNextMusic = 100; - - public AetherMusicManager(Minecraft mcIn) - { - this.mc = mcIn; - } - - public void update() - { - if (this.mc.player != null) - { - SoundEvent tracktype = this.getRandomTrack(PlayerAether.getPlayer(this.mc.player)); - - if (tracktype == null) - { - timeUntilNextMusic--; - - if (timeUntilNextMusic <= 0) - { - timeUntilNextMusic += 100; - } - } - else - { - if (mc.player.world.provider.getDimensionType() != DimensionsAether.AETHER) - { - this.stopMusic(); - } - else - { - if (this.currentMusic != null) - { - if (!this.mc.getSoundHandler().isSoundPlaying(this.currentMusic)) - { - timeUntilNextMusic = Math.min(MathHelper.getInt(this.rand, 1200, 1500), timeUntilNextMusic); - this.currentMusic = null; - } - else - { - timeUntilNextMusic = Math.min(timeUntilNextMusic, 1500); - } - } - - if (this.currentMusic == null && timeUntilNextMusic-- <= 0) - { - this.playMusic(tracktype); - } - } - } - } - } - - public boolean playingMusic() - { - return this.currentMusic != null; - } - - public boolean playingRecord() - { - return this.currentRecord != null; - } - - public ISound getRecord() - { - return this.currentRecord; - } - - public SoundEvent getRandomTrack(IPlayerAether player) - { - World world = player.getEntity().getEntityWorld(); - - long time = world.getWorldTime(); - - if (this.isPlayable(player)) - { - if (time > 1000L && time < 9000L) - { - return new SoundEvent(AetherCore.getResource("music.day")); - } - else if (time > 13000L && time < 20000L) - { - return new SoundEvent(AetherCore.getResource("music.night")); - } - } - - return null; - } - - public boolean isPlayable(IPlayerAether aePlayer) - { - long time = aePlayer.getEntity().world.getWorldTime(); - - if ((time > 1000L && time < 8000L) || (time > 13000L && time < 20000L)) - { - return aePlayer.getEntity().world.provider.getDimensionType() == DimensionsAether.AETHER; - } - - return false; - } - - public void playMusic(SoundEvent requestedMusicType) - { - this.currentMusic = PositionedSoundRecord.getMusicRecord(requestedMusicType); - this.mc.getSoundHandler().playSound(this.currentMusic); - timeUntilNextMusic = Integer.MAX_VALUE; - } - - public void trackRecord(ISound record) - { - this.currentRecord = record; - } - - public void stopMusic() - { - if (this.currentMusic != null) - { - this.mc.getSoundHandler().stopSound(this.currentMusic); - this.currentMusic = null; - timeUntilNextMusic = 0; - } - } -} diff --git a/src/main/java/com/gildedgames/aether/client/util/ItemModelBuilder.java b/src/main/java/com/gildedgames/aether/client/util/ItemModelBuilder.java deleted file mode 100644 index 8b391bd1f6..0000000000 --- a/src/main/java/com/gildedgames/aether/client/util/ItemModelBuilder.java +++ /dev/null @@ -1,36 +0,0 @@ -package com.gildedgames.aether.client.util; - -import com.gildedgames.aether.common.AetherCore; -import net.minecraft.client.renderer.block.model.ModelResourceLocation; - -import java.util.HashMap; - -public class ItemModelBuilder -{ - private final HashMap<Integer, ModelResourceLocation> registrations = new HashMap<>(); - - private final String rootFolder; - - public ItemModelBuilder(String root) - { - if (!root.endsWith("/")) - { - throw new IllegalArgumentException("Path '" + root + "' isn't absolute"); - } - - this.rootFolder = root; - } - - public ItemModelBuilder add(int meta, String path) - { - this.registrations.put(meta, new ModelResourceLocation(AetherCore.getResourcePath( - this.rootFolder != null ? this.rootFolder + path : path), "inventory")); - - return this; - } - - public HashMap<Integer, ModelResourceLocation> getRegistrations() - { - return this.registrations; - } -} diff --git a/src/main/java/com/gildedgames/aether/client/util/QuaternionUtil.java b/src/main/java/com/gildedgames/aether/client/util/QuaternionUtil.java deleted file mode 100644 index 7d55e6a5a4..0000000000 --- a/src/main/java/com/gildedgames/aether/client/util/QuaternionUtil.java +++ /dev/null @@ -1,47 +0,0 @@ -package com.gildedgames.aether.client.util; - -import net.minecraft.util.math.Vec3d; -import org.lwjgl.util.vector.Quaternion; - -public class QuaternionUtil -{ - public static final Vec3d Z_AXIS = new Vec3d(0, 0, 1); - - public static final Quaternion Y_IDENTITY = new Quaternion(0, 1, 0, (float) Math.PI); - - public static final Quaternion IDENTITY = new Quaternion(); - - public static Quaternion lookAt(Vec3d sourcePoint, Vec3d destPoint) - { - Vec3d forward = destPoint.subtract(sourcePoint).normalize(); - - double dot = Z_AXIS.dotProduct(forward); - - if (Math.abs(dot - (-1.0f)) < 0.000001f) - { - return Y_IDENTITY; - } - - if (Math.abs(dot - (1.0f)) < 0.000001f) - { - return IDENTITY; - } - - float rotAngle = (float)Math.acos(dot); - Vec3d rotAxis = Z_AXIS.crossProduct(forward); - rotAxis = rotAxis.normalize(); - - float halfAngle = rotAngle * .5f; - float s = (float)Math.sin(halfAngle); - - return new Quaternion((float) rotAxis.x * s, (float) rotAxis.y * s, (float) rotAxis.z * s, (float) Math.cos(halfAngle)); - } - - public static Quaternion interpolateQuaternion(Quaternion a, Quaternion b, float p) - { - Quaternion d = new Quaternion(b.x - a.x, b.y - a.y, b.z - a.z, b.w - a.w); - Quaternion q = new Quaternion(a.x + d.x * p, a.y + d.y * p, a.z + d.z * p, a.w + d.w * p); - - return q.normalise(q); - } -} diff --git a/src/main/java/com/gildedgames/aether/client/util/SpriteGeneric.java b/src/main/java/com/gildedgames/aether/client/util/SpriteGeneric.java deleted file mode 100644 index b825dac3c4..0000000000 --- a/src/main/java/com/gildedgames/aether/client/util/SpriteGeneric.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.gildedgames.aether.client.util; - -import net.minecraft.client.renderer.texture.TextureAtlasSprite; - -@Deprecated -// Will be removed. -public class SpriteGeneric extends TextureAtlasSprite -{ - - public SpriteGeneric(String iconName) - { - super(iconName); - } - - public SpriteGeneric(String iconName, int width, int height) - { - super(iconName); - - this.width = width; - this.height = height; - } - -} diff --git a/src/main/java/com/gildedgames/aether/common/AetherCelebrations.java b/src/main/java/com/gildedgames/aether/common/AetherCelebrations.java deleted file mode 100644 index ae6fb686d9..0000000000 --- a/src/main/java/com/gildedgames/aether/common/AetherCelebrations.java +++ /dev/null @@ -1,58 +0,0 @@ -package com.gildedgames.aether.common; - -import com.gildedgames.aether.api.shop.IShopBuy; -import com.gildedgames.aether.api.shop.IShopInstance; -import com.gildedgames.aether.common.entities.characters.EntityEdison; -import com.gildedgames.aether.common.items.consumables.ItemEggnog; - -import java.time.LocalDateTime; -import java.time.Month; - -public class AetherCelebrations -{ - /** - * Added because some old shops were initiated in-game without a shop definition location - * serialized to the disk. Meaning new code cannot evaluate whether an old shop is a christmas - * shop or not. - * @param instance The shop instance. - * @return Whether or not it's a christmas shop. - */ - private static boolean isChristmasShop(IShopInstance instance) - { - for (IShopBuy buy : instance.getStock()) - { - if (buy.getItemStack().getItem() instanceof ItemEggnog) - { - return true; - } - } - - return false; - } - - public static boolean isEdisonNewYearsSale(IShopInstance instance) - { - return (instance.getShopDefinitionLocation() == EntityEdison.HOLIDAY_SHOP || isChristmasShop(instance)) && AetherCelebrations.isNewYearsEvent(); - } - - public static boolean isNewYearsEvent() - { - LocalDateTime time = LocalDateTime.now(); - - return time.getMonth() == Month.JANUARY && time.getDayOfMonth() <= 7; - } - - public static boolean isChristmasEvent() - { - LocalDateTime time = LocalDateTime.now(); - - return time.getMonth() == Month.DECEMBER && time.getDayOfMonth() >= 18; - } - - public static boolean isHalloweenEvent() - { - LocalDateTime time = LocalDateTime.now(); - - return time.getMonth() == Month.OCTOBER; - } -} diff --git a/src/main/java/com/gildedgames/aether/common/AetherCore.java b/src/main/java/com/gildedgames/aether/common/AetherCore.java deleted file mode 100644 index fb3823f223..0000000000 --- a/src/main/java/com/gildedgames/aether/common/AetherCore.java +++ /dev/null @@ -1,131 +0,0 @@ -package com.gildedgames.aether.common; - -import com.gildedgames.aether.api.AetherAPI; -import com.gildedgames.aether.common.analytics.GAReporter; -import com.gildedgames.aether.common.util.JarValidator; -import net.minecraft.launchwrapper.Launch; -import net.minecraft.util.ResourceLocation; -import net.minecraftforge.fml.common.FMLCommonHandler; -import net.minecraftforge.fml.common.Mod; -import net.minecraftforge.fml.common.Mod.EventHandler; -import net.minecraftforge.fml.common.Mod.Instance; -import net.minecraftforge.fml.common.SidedProxy; -import net.minecraftforge.fml.common.event.*; -import org.apache.logging.log4j.LogManager; -import org.apache.logging.log4j.Logger; - -@Mod(name = AetherCore.MOD_NAME, modid = AetherCore.MOD_ID, version = AetherCore.MOD_VERSION, - certificateFingerprint = AetherCore.MOD_FINGERPRINT, - dependencies = AetherCore.MOD_DEPENDENCIES) -public class AetherCore -{ - public static final String MOD_NAME = "Aether II"; - - public static final String MOD_ID = "aether"; - - public static final String MOD_VERSION = "0.3.0"; - - public static final String MOD_DEPENDENCIES = "required-after:orbis-lib@[0.2.0,);" + "required-after:forge@[14.23.5.2816,)"; - - public static final Logger LOGGER = LogManager.getLogger("AetherII"); - - public static final String MOD_FINGERPRINT = "db341c083b1b8ce9160a769b569ef6737b3f4cdf"; - - @Instance(AetherCore.MOD_ID) - public static AetherCore INSTANCE; - - @SidedProxy(clientSide = "com.gildedgames.aether.client.ClientProxy", serverSide = "com.gildedgames.aether.common.CommonProxy") - public static CommonProxy PROXY; - - public static ConfigAether CONFIG; - - public static GAReporter ANALYTICS; - - public static boolean IS_SIGNED = true; - - public static ResourceLocation getResource(final String name) - { - return new ResourceLocation(AetherCore.MOD_ID, name); - } - - public static String getResourcePath(final String name) - { - return (AetherCore.MOD_ID + ":") + name; - } - - public static boolean isClient() - { - return FMLCommonHandler.instance().getSide().isClient(); - } - - public static boolean isServer() - { - return FMLCommonHandler.instance().getSide().isServer(); - } - - public static boolean isInsideDevEnvironment() - { - return Launch.blackboard.get("fml.deobfuscatedEnvironment") == Boolean.TRUE; - } - - @EventHandler - public void onModConstruction(final FMLConstructionEvent event) - { - AetherAPI.registerProvider(AetherCore.PROXY); - } - - @EventHandler - public void onModPreInit(final FMLPreInitializationEvent event) - { - AetherCore.CONFIG = new ConfigAether(); - - if (!AetherCore.isInsideDevEnvironment() && !JarValidator.validate(event.getSourceFile())) - { - AetherCore.LOGGER.warn("Failed to validate extended properties for the file located at " + event.getSourceFile()); - - AetherCore.IS_SIGNED = false; - } - - AetherCore.PROXY.preInit(event); - } - - @EventHandler - public void onModInit(final FMLInitializationEvent event) - { - AetherCore.PROXY.init(event); - } - - @EventHandler - public void onModPostInit(final FMLPostInitializationEvent event) - { - AetherCore.PROXY.postInit(event); - } - - @EventHandler - public void onServerAboutToStart(final FMLServerAboutToStartEvent event) - { - AetherCore.PROXY.onServerAboutToStart(event); - } - - @EventHandler - public void onServerStarting(final FMLServerStartingEvent event) - { - AetherCore.PROXY.onServerStarting(event); - } - - @EventHandler - public void onFingerprintViolation(final FMLFingerprintViolationEvent event) - { - if (AetherCore.isInsideDevEnvironment()) - { - AetherCore.LOGGER.warn("Ignoring missing certificate for the Aether II because we are in a de-obfuscated workspace..."); - - return; - } - - AetherCore.IS_SIGNED = false; - - AetherCore.LOGGER.warn("No valid certificates could be found for the file located at: " + event.getSource()); - AetherCore.LOGGER.warn("You have downloaded a release of the Aether II which does not contain a valid code signing certificate. This release will not receive support from Gilded Games."); - } -} diff --git a/src/main/java/com/gildedgames/aether/common/CommonProxy.java b/src/main/java/com/gildedgames/aether/common/CommonProxy.java deleted file mode 100644 index f801e0d601..0000000000 --- a/src/main/java/com/gildedgames/aether/common/CommonProxy.java +++ /dev/null @@ -1,262 +0,0 @@ -package com.gildedgames.aether.common; - -import com.gildedgames.aether.api.AetherAPI; -import com.gildedgames.aether.api.IAetherServices; -import com.gildedgames.aether.api.net.IGildedGamesAccountApi; -import com.gildedgames.aether.common.dungeons.DungeonViewer; -import com.gildedgames.aether.common.events.PostAetherTravelEvent; -import com.gildedgames.aether.common.network.api.GildedGamesAccountApiImpl; -import com.gildedgames.aether.common.shop.*; -import com.gildedgames.aether.common.shop.filters.ShopFilterNewYearsEdisonSale; -import com.gildedgames.aether.common.world.biomes.irradiated_forests.IrradiatedForestsData; -import com.gildedgames.aether.common.world.biomes.magnetic_hills.MagneticHillPillar; -import com.gildedgames.aether.common.world.biomes.magnetic_hills.MagneticHillsData; -import com.gildedgames.aether.common.world.instances.necromancer_tower.NecromancerTowerInstance; -import com.gildedgames.aether.common.world.island.IslandVariables; -import com.gildedgames.orbis.lib.OrbisLib; -import com.gildedgames.orbis.lib.util.io.IClassSerializer; -import com.gildedgames.orbis.lib.util.io.Instantiator; -import com.gildedgames.orbis.lib.util.io.SimpleSerializer; -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.EntityPlayerMP; -import net.minecraft.server.MinecraftServer; -import net.minecraft.server.management.PlayerList; -import net.minecraft.util.EnumParticleTypes; -import net.minecraft.util.IThreadListener; -import net.minecraft.util.ResourceLocation; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.MathHelper; -import net.minecraft.world.Teleporter; -import net.minecraft.world.World; -import net.minecraft.world.WorldServer; -import net.minecraftforge.common.MinecraftForge; -import net.minecraftforge.fml.common.FMLCommonHandler; -import net.minecraftforge.fml.common.event.*; - -import javax.annotation.Nullable; -import java.io.File; -import java.util.Random; -import java.util.function.Supplier; - -public class CommonProxy implements IAetherServices -{ - private final ContentRegistry contentRegistry = new ContentRegistry(); - - private final GildedGamesAccountApiImpl webAPI = new GildedGamesAccountApiImpl(); - - private File configDir; - - public void preInit(final FMLPreInitializationEvent event) - { - CompatibilityAether.locateInstalledMods(); - - this.configDir = new File(event.getModConfigurationDirectory(), "Aether/"); - - if (!this.configDir.exists() && !this.configDir.mkdir()) - { - throw new RuntimeException("Couldn't create configuration directory"); - } - - final IClassSerializer s = new SimpleSerializer(AetherCore.MOD_ID); - - s.register(0, NecromancerTowerInstance.class, new Instantiator<>(NecromancerTowerInstance.class)); - s.register(1, MagneticHillsData.class, new Instantiator<>(MagneticHillsData.class)); - s.register(2, MagneticHillPillar.class, new Instantiator<>(MagneticHillPillar.class)); - s.register(3, IrradiatedForestsData.class, new Instantiator<>(IrradiatedForestsData.class)); - s.register(4, IslandVariables.class, new Instantiator<>(IslandVariables.class)); - s.register(5, ShopInstance.class, new Instantiator<>(ShopInstance.class)); - s.register(6, ShopBuy.class, new Instantiator<>(ShopBuy.class)); - s.register(7, ShopInventory.class, new Instantiator<>(ShopInventory.class)); - s.register(8, ShopCurrencyGilt.class, new Instantiator<>(ShopCurrencyGilt.class)); - s.register(9, ShopCurrencyPlumproot.class, new Instantiator<>(ShopCurrencyPlumproot.class)); - s.register(10, ShopInstanceGroup.class, new Instantiator<>(ShopInstanceGroup.class)); - - OrbisLib.services().io().register(s); - - this.contentRegistry.preInit(); - - AetherAPI.content().shop().registerGlobalFilter(new ShopFilterNewYearsEdisonSale()); - } - - public void init(final FMLInitializationEvent event) - { - this.contentRegistry.init(); - - MinecraftForge.EVENT_BUS.register(AetherCore.CONFIG); -} - - public void postInit(final FMLPostInitializationEvent event) - { - this.content().postInit(); - -// DungeonViewer viewer = new DungeonViewer(); -// MinecraftForge.EVENT_BUS.register(viewer); - } - - public void onServerAboutToStart(final FMLServerAboutToStartEvent event) - { - this.content().onServerAboutToStart(); - } - - public void onServerStarting(final FMLServerStartingEvent event) - { - this.content().onServerStarting(); - } - - public void spawnJumpParticles(final World world, final double x, final double y, final double z, final double radius, final int quantity) - { - final Random random = world.rand; - - for (int i = 0; i < quantity; i++) - { - final double x2 = x + (random.nextDouble() * radius) - (radius * 0.5D); - final double y2 = y + (random.nextDouble() * 0.4D); - final double z2 = z + (random.nextDouble() * radius) - (radius * 0.5D); - - world.spawnParticle(EnumParticleTypes.CLOUD, x2, y2, z2, 0.0D, random.nextDouble() * 0.03D, 0.0D); - } - } - - public void spawnCampfireStartParticles(final World world, final double x, final double y, final double z) - { - - } - - public void spawnCampfireParticles(final World world, final double x, final double y, final double z) - { - - } - - public void spawnSlashParticleFrom( - final World world, final double x, final double y, final double z, final double offsetX, final double offsetY, final double offsetZ) - { - - } - - public void spawnPierceParticleFrom( - final World world, final double x, final double y, final double z, final double offsetX, final double offsetY, final double offsetZ) - { - - } - - public void spawnImpactParticleFrom( - final World world, final double x, final double y, final double z, final double offsetX, final double offsetY, final double offsetZ) - { - - } - - public void spawnEffectParticles(final World world, double posXIn, double posYIn, double posZIn, double motionX, double motionY, double motionZ, float particleRed, - float particleGreen, float particleBlue) - { - - } - - public File getConfigDir() - { - return this.configDir; - } - - public void displayDismountMessage(final EntityPlayer player) - { - - } - - public void turnOffScreen() - { - - } - - public void modifyEntityQuicksoil(final EntityLivingBase entity) - { - entity.motionX *= 1.7D; - entity.motionZ *= 1.7D; - - final double maxMotion = 0.7D; - - entity.motionX = MathHelper.clamp(entity.motionX, -maxMotion, maxMotion); - entity.motionZ = MathHelper.clamp(entity.motionZ, -maxMotion, maxMotion); - } - - /** - * Teleports any entity by duplicating it and . the old one. If {@param entity} is a player, - * the entity will be transferred instead of duplicated. - * - * @return A newsystem entity if {@param entity} wasn't a player, or the same entity if it was a player - */ - public Entity teleportEntity(final Entity entity, final WorldServer toWorld, final Teleporter teleporter, final int dimension, - @Nullable final Supplier<BlockPos> optionalLoc) - { - if (entity == null) - { - return null; - } - - if (entity instanceof EntityPlayer) - { - if (!net.minecraftforge.common.ForgeHooks.onTravelToDimension(entity, dimension)) - { - return entity; - } - - // Players require special magic to be teleported correctly, and are not duplicated - if (!toWorld.isRemote) - { - final MinecraftServer server = FMLCommonHandler.instance().getMinecraftServerInstance(); - final PlayerList playerList = server.getPlayerList(); - - final EntityPlayerMP player = (EntityPlayerMP) entity; - - playerList.transferPlayerToDimension(player, dimension, teleporter); - player.timeUntilPortal = player.getPortalCooldown(); - - if (optionalLoc == null) - { - player.connection.setPlayerLocation(player.posX + 0.5, player.posY, player.posZ + 0.5, 0, 0); - } - else - { - final BlockPos loc = optionalLoc.get(); - - player.connection.setPlayerLocation(loc.getX() + 0.5, loc.getY(), loc.getZ() + 0.5, 225, 0); - } - - /** Strange flag that needs to be set to prevent the NetHandlerPlayServer instances from resetting your position **/ - player.invulnerableDimensionChange = true; - - final PostAetherTravelEvent event = new PostAetherTravelEvent(entity); - MinecraftForge.EVENT_BUS.post(event); - } - - return entity; - } - else - { - final Entity newEntity = entity.changeDimension(dimension); - - // Forces the entity to be sent to clients as early as possible - newEntity.forceSpawn = true; - newEntity.setPositionAndUpdate(entity.posX, entity.posY, entity.posZ); - - return newEntity; - } - } - - @Override - public ContentRegistry content() - { - return this.contentRegistry; - } - - @Override - public IGildedGamesAccountApi gildedGamesAccountApi() - { - return this.webAPI; - } - - public IThreadListener getMinecraftThread() - { - return null; - } -} diff --git a/src/main/java/com/gildedgames/aether/common/CompatibilityAether.java b/src/main/java/com/gildedgames/aether/common/CompatibilityAether.java deleted file mode 100644 index 49ab6e17e1..0000000000 --- a/src/main/java/com/gildedgames/aether/common/CompatibilityAether.java +++ /dev/null @@ -1,18 +0,0 @@ -package com.gildedgames.aether.common; - -import net.minecraftforge.fml.common.Loader; - -public class CompatibilityAether -{ - private static boolean isAetherLegacyInstalled; - - public static void locateInstalledMods() - { - isAetherLegacyInstalled = Loader.isModLoaded("aether_legacy"); - } - - public static boolean isAetherLegacyInstalled() - { - return isAetherLegacyInstalled; - } -} diff --git a/src/main/java/com/gildedgames/aether/common/ConfigAether.java b/src/main/java/com/gildedgames/aether/common/ConfigAether.java deleted file mode 100644 index 6ec97b7d41..0000000000 --- a/src/main/java/com/gildedgames/aether/common/ConfigAether.java +++ /dev/null @@ -1,64 +0,0 @@ -package com.gildedgames.aether.common; - -import net.minecraftforge.common.config.Config; -import net.minecraftforge.common.config.ConfigManager; -import net.minecraftforge.fml.client.event.ConfigChangedEvent.OnConfigChangedEvent; -import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; - -@Config(modid = AetherCore.MOD_ID) -public class ConfigAether -{ - @Config.Ignore - private static final String LANG_PREFIX = "config." + AetherCore.MOD_ID + "."; - - @SubscribeEvent - public void onConfigChangedEvent(OnConfigChangedEvent event) - { - if (event.getModID().equals(AetherCore.MOD_ID)) - { - ConfigManager.sync(AetherCore.MOD_ID, Config.Type.INSTANCE); - } - } - - @Config.LangKey(LANG_PREFIX + "skip_intro." + "name") - @Config.Comment("Skips the Necromancer's Tower introduction sequence when entering the Aether for the first time.") - public static boolean skipIntro = true; - - //@Config.LangKey(LANG_PREFIX + "enable_skybox." + "name") - //@Config.Comment("") - //public static boolean enableSkybox = true; - - @Config.LangKey(LANG_PREFIX + "cutout_helmets." + "name") - @Config.Comment("Enables the player's skin to be seen through gaps in Aether helmets. Setting to false shows an opaque dark texture instead.") - public static boolean cutoutHelmets = true; - - @Config.LangKey(LANG_PREFIX + "helmet_shadow." + "name") - @Config.Comment("Renders a shadow layer ovet the player's skin when transparent helmets are enabled.") - public static boolean helmetShadow = true; - - @Config.LangKey(LANG_PREFIX + "aether_dimension_id." + "name") - @Config.Comment("The Dimension ID for the main Aether II dimension, change this value to fix conflicts with other dimensions.") - @Config.RequiresMcRestart - public static int aetherDimID = 3; - - @Config.LangKey(LANG_PREFIX + "necromancer_dimension_id." + "name") - @Config.Comment("The Dimension ID for the introduction sequence for Aether II, change this value to fix conflicts with other dimensions.") - @Config.RequiresMcRestart - public static int necromancerDimId = 4; - - @Config.LangKey(LANG_PREFIX + "display_performance_indicator." + "name") - @Config.Comment("Enables a small UI that shows performance of the internal server, used for debugging.") - public static boolean displayPerformanceIndicator = false; - - @Config.LangKey(LANG_PREFIX + "analytics_enabled." + "name") - @Config.Comment("Enables us to collect generic data while you play Aether II, no personal data is recorded.") - public static boolean analyticsEnabled = true; - - @Config.LangKey(LANG_PREFIX + "fingerprint_violation." + "name") - @Config.Comment("If the version of the Aether II you are using sets off any flags that it might not be from the official source, a warning will appear when the game launches. Enabling this config disables that warning.") - public static boolean acknowledgeFingerprintViolation = false; - - @Config.LangKey(LANG_PREFIX + "aerwhale_riding." + "name") - @Config.Comment("Definitely not a joke.") - public static boolean rideableAerwhale = false; -} \ No newline at end of file diff --git a/src/main/java/com/gildedgames/aether/common/ContentRegistry.java b/src/main/java/com/gildedgames/aether/common/ContentRegistry.java deleted file mode 100644 index 9ec7770ce1..0000000000 --- a/src/main/java/com/gildedgames/aether/common/ContentRegistry.java +++ /dev/null @@ -1,264 +0,0 @@ -package com.gildedgames.aether.common; - -import com.gildedgames.aether.api.cache.IEntityStatsCache; -import com.gildedgames.aether.api.patron.PatronRewardRegistry; -import com.gildedgames.aether.api.player.conditions.IPlayerConditionTracker; -import com.gildedgames.aether.api.player.conditions.events.SeeEntityEvents; -import com.gildedgames.aether.api.registrar.*; -import com.gildedgames.aether.api.registry.IContentRegistry; -import com.gildedgames.aether.api.travellers_guidebook.ITGManager; -import com.gildedgames.aether.api.world.preparation.IPrepRegistry; -import com.gildedgames.aether.common.cache.EntityStatsCache; -import com.gildedgames.aether.common.capabilities.CapabilityManagerAether; -import com.gildedgames.aether.common.capabilities.item.EffectRegistry; -import com.gildedgames.aether.common.containers.overlays.TabRegistry; -import com.gildedgames.aether.common.containers.overlays.tabs.guidebook.TabGuidebook; -import com.gildedgames.aether.common.dialog.DialogManager; -import com.gildedgames.aether.common.init.*; -import com.gildedgames.aether.common.items.properties.ItemPropertiesRegistry; -import com.gildedgames.aether.common.network.NetworkingAether; -import com.gildedgames.aether.common.patron.PatronRewards; -import com.gildedgames.aether.common.player_conditions.PlayerConditionTracker; -import com.gildedgames.aether.common.recipes.altar.AltarRecipeRegistry; -import com.gildedgames.aether.common.recipes.simple.RecipeIndexRegistry; -import com.gildedgames.aether.common.recipes.simple.RecipeWrapper; -import com.gildedgames.aether.common.recipes.simple.SimpleCraftingRegistry; -import com.gildedgames.aether.common.shop.CurrencyRegistry; -import com.gildedgames.aether.common.shop.ShopManager; -import com.gildedgames.aether.common.travellers_guidebook.TGManager; -import com.gildedgames.aether.common.util.ObjectHolderHelper; -import com.gildedgames.aether.common.util.helpers.PerfHelper; -import com.gildedgames.aether.common.world.aether.PrepAether; -import com.gildedgames.aether.common.world.preparation.PrepRegistry; -import com.gildedgames.aether.common.world.templates.TemplateRegistry; -import com.gildedgames.orbis.lib.IOrbisServicesListener; -import com.gildedgames.orbis.lib.OrbisLib; -import com.gildedgames.orbis.lib.data.management.IProjectManager; -import net.minecraft.block.Block; -import net.minecraft.item.Item; -import net.minecraft.item.crafting.IRecipe; -import net.minecraft.util.ResourceLocation; -import net.minecraft.util.SoundEvent; -import net.minecraft.world.biome.Biome; -import net.minecraftforge.common.MinecraftForge; -import net.minecraftforge.common.capabilities.Capability; -import net.minecraftforge.fml.common.registry.ForgeRegistries; - -public class ContentRegistry implements IContentRegistry, IOrbisServicesListener -{ - private final CurrencyRegistry currencyRegistry = new CurrencyRegistry(); - - private final TemplateRegistry templateRegistry = new TemplateRegistry(); - - private final AltarRecipeRegistry altarRegistry = new AltarRecipeRegistry(); - - private final TabRegistry tabRegistry = new TabRegistry(); - - private final ItemPropertiesRegistry itemRegistry = new ItemPropertiesRegistry(); - - private final EffectRegistry effectRegistry = new EffectRegistry(); - - private final DialogManager dialogManager = new DialogManager(true); - - private final IPlayerConditionTracker playerConditionTracker = new PlayerConditionTracker(); - - private final TGManager tgManager = new TGManager(this.playerConditionTracker); - - private final RecipeIndexRegistry craftableItemsIndex = new RecipeIndexRegistry(); - - private final SimpleCraftingRegistry simpleCraftingRegistry = new SimpleCraftingRegistry(); - - private final PatronRewardRegistry patronRewardRegistry = new PatronRewardRegistry(); - - private final ShopManager shopManager = new ShopManager(true); - - private final SeeEntityEvents seeEntityEvents = new SeeEntityEvents(); - - private final IEntityStatsCache entityStatsCache = new EntityStatsCache(); - - private final IPrepRegistry prepRegistry = new PrepRegistry(); - - /** - * Called when the game engine is initializing content. - */ - public void preInit() - { - OrbisLib.services().listen(this); - - PerfHelper.measure("Pre-initialize tiles", TileEntitiesAether::preInit); - PerfHelper.measure("Pre-initialize dimensions", DimensionsAether::preInit); - PerfHelper.measure("Pre-initialize loot tables", LootTablesAether::preInit); - PerfHelper.measure("Pre-initialize entities", EntitiesAether::preInit); - PerfHelper.measure("Pre-initialize networking", NetworkingAether::preInit); - PerfHelper.measure("Pre-initialize patron rewards", PatronRewards::preInit); - PerfHelper.measure("Pre-initialize definitions", DefinitionsAetherInit::preInit); - - this.tabRegistry.getInventoryGroup().registerServerTab(new TabGuidebook()); - //this.tabRegistry.getInventoryGroup().registerServerTab(new TabBugReport()); - //this.tabRegistry.getInventoryGroup().registerServerTab(new TabPatronRewards()); - } - - /** - * Called after all game content has been registered in {@link ContentRegistry#preInit()}. This should be used - * to configure event handlers and systems that depend on game content being present. - */ - public void init() - { - this.prepRegistry.register(new PrepAether()); - - PerfHelper.measure("Initialize blocks", BlocksAetherInit::init); - PerfHelper.measure("Initialize equipment", EquipmentAether::init); - PerfHelper.measure("Initialize capabilities", CapabilityManagerAether::init); - PerfHelper.measure("Initialize templates", TemplatesAether::init); - PerfHelper.measure("Initialize recipes", RecipesAether::init); - - ObjectHolderHelper.validateEntries(SoundsAether.class, SoundEvent.class); - ObjectHolderHelper.validateEntries(CapabilitiesAether.class, Capability.class); - ObjectHolderHelper.validateEntries(BlocksAether.class, Block.class); - ObjectHolderHelper.validateEntries(ItemsAether.class, Item.class); - ObjectHolderHelper.validateEntries(BiomesAether.class, Biome.class); - } - - /** - * Called after all other mods are initialized. This should be used to interact with Orbis and other mods. - */ - public void postInit() - { - PerfHelper.measure("Register instances", InstancesAether::postInit); - } - - /** - * Called when the server is initializing. This should be used to setup systems that depend on the IDs in a - * world or server instance. - */ - public void onServerAboutToStart() - { - PerfHelper.measure("Verify Orbis project manager", OrbisLib.services()::verifyProjectManagerStarted); - PerfHelper.measure("Load generation", GenerationAether::load); - PerfHelper.measure("Register SeeEntityEvents", () -> MinecraftForge.EVENT_BUS.register(this.seeEntityEvents)); - } - - public void onServerStarting() - { - PerfHelper.measure("Re-build recipe indexes", this::rebuildIndexes); - PerfHelper.measure("Initialize currency", CurrencyAetherInit::onServerAboutToStart); - PerfHelper.measure("Bake recipes", RecipesAether::bakeRecipes); - } - - private void rebuildIndexes() - { - this.craftableItemsIndex.clearRegistrations(); - - for (final IRecipe recipe : ForgeRegistries.RECIPES) - { - final ResourceLocation loc = Item.REGISTRY.getNameForObject(recipe.getRecipeOutput().getItem()); - - if (loc != null && loc.getNamespace().equals(AetherCore.MOD_ID)) - { - this.craftableItemsIndex.registerRecipe(new RecipeWrapper(recipe)); - } - } - } - - @Override - public SeeEntityEvents seeEntityEvents() - { - return this.seeEntityEvents; - } - - @Override - public IEntityStatsCache entityStatsCache() - { - return this.entityStatsCache; - } - - @Override - public IPlayerConditionTracker playerConditionTracker() - { - return this.playerConditionTracker; - } - - @Override - public ITGManager tgManager() - { - return this.tgManager; - } - - @Override - public ShopManager shop() - { - return this.shopManager; - } - - @Override - public CurrencyRegistry currency() - { - return this.currencyRegistry; - } - - @Override - public TemplateRegistry templates() - { - return this.templateRegistry; - } - - @Override - public AltarRecipeRegistry altar() - { - return this.altarRegistry; - } - - @Override - public TabRegistry tabs() - { - return this.tabRegistry; - } - - @Override - public ItemPropertiesRegistry items() - { - return this.itemRegistry; - } - - @Override - public EffectRegistry effects() - { - return this.effectRegistry; - } - - @Override - public DialogManager dialog() - { - return this.dialogManager; - } - - @Override - public RecipeIndexRegistry craftable() - { - return this.craftableItemsIndex; - } - - @Override - public SimpleCraftingRegistry masonry() - { - return this.simpleCraftingRegistry; - } - - @Override - public PatronRewardRegistry patronRewards() - { - return this.patronRewardRegistry; - } - - @Override - public IPrepRegistry prep() - { - return this.prepRegistry; - } - - @Override - public void onStartProjectManager(final IProjectManager projectManager) - { - BlueprintsAether.load(projectManager); - } -} diff --git a/src/main/java/com/gildedgames/aether/common/analytics/GAEnvironment.java b/src/main/java/com/gildedgames/aether/common/analytics/GAEnvironment.java deleted file mode 100644 index 66c5816b2c..0000000000 --- a/src/main/java/com/gildedgames/aether/common/analytics/GAEnvironment.java +++ /dev/null @@ -1,79 +0,0 @@ -package com.gildedgames.aether.common.analytics; - -import java.util.regex.Matcher; -import java.util.regex.Pattern; - -public class GAEnvironment -{ - /** - * Returns the version of the currently running Java environment. Avoid - * calling this method frequently. - * @return The version of the currently running Java environment - */ - public static String getJavaEnvironment() - { - return System.getProperty("java.version"); - } - - /** - * Returns the vendor's name of the running Java environment (i.e. Oracle). Avoid - * calling this method frequently. - * @return The vendor of the currently running Java environment - */ - public static String getJavaVendor() - { - String name = System.getProperty("java.vendor"); - - if (name.length() > 64) - { - return name.substring(0, 63); - } - - return name; - } - - /** - * Returns the platform of the currently running Java environment. Avoid - * calling this method frequently. - * @return The platform's name - */ - public static String getPlatform() - { - String name = System.getProperty("os.name").toLowerCase(); - - if (name.startsWith("windows")) - { - return "windows"; - } - else if (name.startsWith("mac")) - { - return "mac_osx"; - } - else - { - return "linux"; - } - } - - /** - * Returns the operating system on the device this reporter is running on. Avoid - * calling this method frequently. - * @return The operating system's name and version - */ - public static String getOperatingSystem() - { - // We can only have so many significant digits, and we need to strip extra guff - Matcher matcher = Pattern.compile("[0-9]{0,5}(\\.[0-9]{0,5}){0,2}").matcher(System.getProperty("os.version")); - - // We default to an empty space just to pass GameAnalytic's regex weirdness - String version = " "; - - // Find the most important group of digits - if (matcher.find()) - { - version += matcher.group(0); - } - - return GAEnvironment.getPlatform() + version; - } -} diff --git a/src/main/java/com/gildedgames/aether/common/analytics/GAReporter.java b/src/main/java/com/gildedgames/aether/common/analytics/GAReporter.java deleted file mode 100644 index b04ba3d503..0000000000 --- a/src/main/java/com/gildedgames/aether/common/analytics/GAReporter.java +++ /dev/null @@ -1,52 +0,0 @@ -package com.gildedgames.aether.common.analytics; - -import com.gildedgames.aether.common.analytics.events.GAEvent; - -import javax.annotation.Nonnull; - -/** - * Thread-safe reporter for GameAnalytics events. - */ -public interface GAReporter -{ - /** - * Tries to enable the reporter. If the remote server has disabled reporting, - * this will immediately disable the reporter. May be performed async. - */ - void setup(); - - /** - * Disables the reporter and destroys any queued or scheduled events. While - * disabled, the reporter will not schedule events. May be performed async. - */ - void disable(); - - /** - * Flushes queued events to disk. Should be used before the game shuts down - * to ensure events will be recorded. - */ - void flush(); - - /** - * Schedules an event for uploading later if this reporter is active. - * - * @param event The event to report - */ - void schedule(@Nonnull GAEvent event); - - /** - * Returns the {@link GAUser} this reporter belongs to. - * - * @return A unique {@link GAUser} instance - */ - @Nonnull - GAUser getUser(); - - /** - * Creates an timestamp based off the current system time, including the - * server time offset. - * - * @return An epoch timestamp - */ - long getEpochTimestamp(); -} diff --git a/src/main/java/com/gildedgames/aether/common/analytics/GASecret.java b/src/main/java/com/gildedgames/aether/common/analytics/GASecret.java deleted file mode 100644 index 779d8c0abf..0000000000 --- a/src/main/java/com/gildedgames/aether/common/analytics/GASecret.java +++ /dev/null @@ -1,49 +0,0 @@ -package com.gildedgames.aether.common.analytics; - -import org.apache.commons.codec.binary.Base64; - -import javax.crypto.Mac; -import javax.crypto.spec.SecretKeySpec; -import java.nio.charset.StandardCharsets; -import java.security.InvalidKeyException; -import java.security.NoSuchAlgorithmException; - -/** - * Stores a secret token and allows HMAC-SHA256 signing with it. - */ -public class GASecret -{ - private static final String ALGORITHM = "HmacSHA256"; - - private final Mac mac; - - public GASecret(String secret) - { - try - { - SecretKeySpec key = new SecretKeySpec(secret.getBytes(StandardCharsets.UTF_8), ALGORITHM); - - this.mac = Mac.getInstance(ALGORITHM); - this.mac.init(key); - } - catch (NoSuchAlgorithmException | InvalidKeyException e) - { - throw new RuntimeException("Couldn't initialize MAC", e); - } - } - - /** - * Crates an HMAC-SHA256 for the provided data using the secret key stored. - * - * @param data The data to create an HMAC for - * @return The HMAC-SHA256 as a String with base64 encoding - */ - public String createHmac(byte[] data) - { - byte[] hmac = this.mac.doFinal(data); - - byte[] base64 = Base64.encodeBase64(hmac); - - return new String(base64); - } -} diff --git a/src/main/java/com/gildedgames/aether/common/analytics/GAStorage.java b/src/main/java/com/gildedgames/aether/common/analytics/GAStorage.java deleted file mode 100644 index df1f12c347..0000000000 --- a/src/main/java/com/gildedgames/aether/common/analytics/GAStorage.java +++ /dev/null @@ -1,190 +0,0 @@ -package com.gildedgames.aether.common.analytics; - -import com.gildedgames.aether.common.AetherCore; -import com.google.gson.Gson; -import com.google.gson.GsonBuilder; -import com.google.gson.JsonElement; -import com.google.gson.JsonParseException; -import com.google.gson.annotations.Expose; -import com.google.gson.annotations.SerializedName; -import org.apache.commons.lang3.Validate; - -import javax.annotation.Nonnull; -import java.io.*; -import java.util.*; -import java.util.concurrent.locks.ReentrantLock; -import java.util.zip.GZIPInputStream; -import java.util.zip.GZIPOutputStream; - -/** - * Thread safe storage for GameAnalytics data with a maximum queue size. - */ -public class GAStorage -{ - private static final int MAX_QUEUE_SIZE = 2000; - - private final Gson gson = new GsonBuilder().excludeFieldsWithoutExposeAnnotation().create(); - - private final ReentrantLock latch = new ReentrantLock(); - - @Expose - @SerializedName("queue") - private Queue<JsonElement> queue = new ArrayDeque<>(); - - @Expose - @SerializedName("user") - private GAUser user = new GAUser(); - - private boolean isDirty = true; - - /** - * Loads a storage instance from disk and discards any previously unsaved queued uploads. - * - * @param file The location to load this storage from - */ - public void load(File file) - { - Validate.notNull(file, "Path cannot be null"); - - if (file.exists()) - { - this.latch.lock(); - - try (GZIPInputStream input = new GZIPInputStream(new FileInputStream(file))) - { - GAStorage storage; - - try (InputStreamReader reader = new InputStreamReader(input)) - { - storage = this.gson.fromJson(reader, GAStorage.class); - } - - this.user = storage.user; - this.queue = storage.queue; - } - catch (JsonParseException | IOException e) - { - AetherCore.LOGGER.error("Failed to load storage", e); - } - finally - { - this.latch.unlock(); - } - } - } - - /** - * Saves a storage instance to disk and marks this storage synced. - * - * @param file The location to save this storage to - * @param force If true, the storage will be re-saved even if no changes - * have been made since the last save. - */ - public void save(File file, boolean force) - { - Validate.notNull(file, "Path cannot be null"); - - // Don't save when needless unless forced - if (!this.isDirty && !force) - { - return; - } - - this.latch.lock(); - - try (GZIPOutputStream gzipStream = new GZIPOutputStream(new FileOutputStream(file))) - { - try (OutputStreamWriter writer = new OutputStreamWriter(gzipStream)) - { - this.gson.toJson(this, writer); - } - - this.isDirty = false; - } - catch (JsonParseException | IOException e) - { - AetherCore.LOGGER.error("Failed to save storage", e); - } - finally - { - this.latch.unlock(); - } - } - - /** - * Queues an event for uploading or saving later. Marks storage as dirty for - * saving later. - * - * @param json The serialized event as a JSON object - */ - public void queueEvent(@Nonnull JsonElement json) - { - Validate.notNull(json, "Event cannot be null"); - - this.latch.lock(); - - if (this.queue.size() < MAX_QUEUE_SIZE) - { - this.queue.add(json); - - this.isDirty = true; - } - - this.latch.unlock(); - } - - /** - * Drains up to the specified number of events from the upload queue. - * - * @param max The maximum number of events to drain - * @return A {@link Collection} of events drained from the upload queue - */ - public Collection<JsonElement> drainQueuedEvents(int max) - { - this.latch.lock(); - - if (this.queue.isEmpty()) - { - this.latch.unlock(); - - return Collections.emptyList(); - } - - ArrayList<JsonElement> list = new ArrayList<>(); - - while (list.size() < max && !this.queue.isEmpty()) - { - list.add(this.queue.remove()); - } - - this.isDirty = true; - - this.latch.unlock(); - - return list; - } - - /** - * Returns the {@link GAUser} of this storage that owns the scheduled events. - * - * @return A unique {@link GAUser} - */ - @Nonnull - public GAUser getUser() - { - return this.user; - } - - /** - * Clears all queued uploads. - */ - public void clearQueued() - { - this.latch.lock(); - - this.queue.clear(); - this.isDirty = true; - - this.latch.unlock(); - } -} diff --git a/src/main/java/com/gildedgames/aether/common/analytics/GAUser.java b/src/main/java/com/gildedgames/aether/common/analytics/GAUser.java deleted file mode 100644 index ada5171374..0000000000 --- a/src/main/java/com/gildedgames/aether/common/analytics/GAUser.java +++ /dev/null @@ -1,98 +0,0 @@ -package com.gildedgames.aether.common.analytics; - -import com.gildedgames.aether.common.analytics.events.GASessionEndEvent; -import com.gildedgames.aether.common.analytics.events.GASessionStartEvent; -import com.google.gson.annotations.Expose; -import com.google.gson.annotations.SerializedName; - -import java.util.UUID; - -public class GAUser -{ - @Expose - @SerializedName("persistent_id") - private final UUID persistentId; - - private final UUID sessionId; - - @Expose - @SerializedName("session_count") - private int sessionCount; - - private long sessionStart; - - /** - * Creates a pre-existing GameAnalytics user and starts a new session. Used - * for de-serialization by GSON. - * - * @param persistentId The user's persistent ID - * @param sessionCount The user's session count - */ - protected GAUser(UUID persistentId, int sessionCount) - { - this.persistentId = persistentId; - this.sessionCount = sessionCount; - - this.sessionId = UUID.randomUUID(); - } - - /** - * Creates a new GameAnalytics user and starts a new session. - */ - protected GAUser() - { - this.persistentId = UUID.randomUUID(); - this.sessionId = UUID.randomUUID(); - } - - /** - * Starts the user's session and records an event for it. - */ - public void startSession(GAReporter reporter) - { - this.sessionStart = reporter.getEpochTimestamp(); - this.sessionCount++; - - reporter.schedule(new GASessionStartEvent()); - } - - /** - * Ends the user's session and records an event for it. - */ - public void endSession(GAReporter reporter) - { - long duration = reporter.getEpochTimestamp() - this.sessionStart; - - reporter.schedule(new GASessionEndEvent(duration)); - } - - /** - * Returns the number of sessions this users has had in total, including the current one. - * - * @return The number of sessions, always positive - */ - public int getSessionCount() - { - return this.sessionCount; - } - - /** - * Returns the user's persistent identifier, which doesn't change across sessions. - * - * @return The user's persistent ID - */ - public UUID getPersistentId() - { - return this.persistentId; - } - - /** - * Returns the user's current session ID - * - * @return The user's session ID - */ - public UUID getSessionId() - { - return this.sessionId; - } -} diff --git a/src/main/java/com/gildedgames/aether/common/analytics/GameAnalytics.java b/src/main/java/com/gildedgames/aether/common/analytics/GameAnalytics.java deleted file mode 100644 index 8278901b2d..0000000000 --- a/src/main/java/com/gildedgames/aether/common/analytics/GameAnalytics.java +++ /dev/null @@ -1,382 +0,0 @@ -package com.gildedgames.aether.common.analytics; - -import com.gildedgames.aether.common.AetherCore; -import com.gildedgames.aether.common.analytics.events.GAEvent; -import com.gildedgames.aether.common.analytics.responses.GAInitResponse; -import com.google.gson.*; -import com.google.gson.stream.JsonWriter; -import org.apache.http.HttpResponse; -import org.apache.http.client.HttpClient; -import org.apache.http.client.methods.HttpPost; -import org.apache.http.entity.ByteArrayEntity; -import org.apache.http.impl.client.HttpClientBuilder; - -import java.io.*; -import java.util.ArrayDeque; -import java.util.ArrayList; -import java.util.Collection; -import java.util.Queue; -import java.util.concurrent.*; -import java.util.zip.GZIPOutputStream; - -/*** - * Basic implementation of GameAnalytic's REST API based on the official docs here: http://restapidocs.gameanalytics.com - * - * This implementation batches events and uses GZIP compression when uploading. {@link GameAnalytics#setup()} must - * be called before using to setup the reporter. - * - * {@link GAStorage} is used to store the data of this reporter. Queued events are saved to disk in the event - * a crash occurs or network outage, and will be uploaded during the next available chance. - * - * @author JellySquid - */ -public class GameAnalytics implements GAReporter -{ - private static final String SDK_VERSION = "rest api v2"; - - private static final int API_VERSION = 2; - - private final ScheduledExecutorService scheduler = Executors.newScheduledThreadPool(2); - - private final Gson gson = new Gson(); - - private final HttpClient client = HttpClientBuilder.create().build(); - - private final String url; - - private final GASecret secret; - - private final String platform = GAEnvironment.getPlatform(), - device = GAEnvironment.getJavaEnvironment(), - manufacturer = GAEnvironment.getJavaVendor(), - operatingSystem = GAEnvironment.getOperatingSystem(); - - private final GAStorage storage = new GAStorage(); - - private final Queue<GAEvent> scheduled = new ArrayDeque<>(); - - private final boolean sandboxed; - - private GAState state = GAState.UNLOADED; - - private ScheduledFuture<?> uploadTask, saveTask; - - private long tsOffset = 0; - - private int consecutiveFailures = 0; - - /** - * Creates a sandbox GameAnalytics reporter that will record and upload events, but to - * a dummy sandbox service. - */ - public GameAnalytics() - { - // It seems GameAnalytics doesn't enable HTTPS for their sandbox environment, which is odd... - this.url = "http://sandbox-api.gameanalytics.com/v2/5c6bcb5402204249437fb5a7a80a4959"; - this.secret = new GASecret("16813a12f718bc5c620f56944e1abc3ea13ccbac"); - - this.sandboxed = true; - } - - /** - * Creates a production GameAnalytics reporter with the specified key and secret. - * - * @param key The game's key - * @param secret The game's secret token - */ - public GameAnalytics(String key, String secret) - { - this.url = "https://api.gameanalytics.com/v2/" + key; - this.secret = new GASecret(secret); - - this.sandboxed = false; - } - - @Override - public void setup() - { - CompletableFuture.runAsync(() -> - { - this.storage.load(this.getLocalFile()); - - GAInitResponse result; - - try - { - JsonObject payload = new JsonObject(); - payload.addProperty("platform", this.platform); - payload.addProperty("os_version", this.operatingSystem); - payload.addProperty("sdk_version", SDK_VERSION); - - HttpPost request = this.createRequest("/init", payload); - HttpResponse response = this.client.execute(request); - - try (InputStreamReader reader = new InputStreamReader(response.getEntity().getContent())) - { - result = this.gson.fromJson(reader, GAInitResponse.class); - } - } - catch (JsonParseException | IOException e) - { - AetherCore.LOGGER.error("Failed to contact GameAnalytics server"); - return; - } - - if (result.enabled) - { - this.consecutiveFailures = 0; - this.tsOffset = result.serverTimestamp - (System.currentTimeMillis() / 1000); - - this.saveTask = this.scheduler.scheduleAtFixedRate(this::flush, 0L, 120L, TimeUnit.SECONDS); - this.uploadTask = this.scheduler.scheduleAtFixedRate(this::upload, 0L, 20L, TimeUnit.SECONDS); - - this.setState(GAState.ACTIVE); - } - else - { - this.setState(GAState.INACTIVE); - } - }, this.scheduler); - } - - @Override - public void disable() - { - this.setState(GAState.DISABLED); - this.storage.clearQueued(); - - this.shutdown(); - } - - @Override - public void flush() - { - this.processScheduled(); - - this.storage.save(this.getLocalFile(), false); - } - - /** - * Updates the state of this reporter. - * @param state The new state - */ - private void setState(GAState state) - { - AetherCore.LOGGER.info("Setting GameAnalytics state to '{}'", state.name()); - - this.state = state; - } - - /** - * Shuts down this reporter and attempts to gracefully wait for currently executing tasks to finish. - */ - private void shutdown() - { - if (this.state != GAState.ACTIVE) - { - return; - } - - this.state = GAState.UNLOADED; - - this.uploadTask.cancel(false); - this.saveTask.cancel(false); - - this.storage.save(this.getLocalFile(), true); - } - - /** - * Creates a {@link HttpPost} that can be executed by {@link HttpClient} later. This compresses - * the payload using GZIP and generates the HMAC authorization header for the request. - * - * @param endpoint The endpoint to send to, prefixed with " - * @param payload The JSON payload as a {@link JsonElement} - * @return An {@link HttpPost} that can be executed later - * @throws IOException If an error occurs during the compression or HMAC hashing of the payload - */ - private HttpPost createRequest(String endpoint, JsonElement payload) throws IOException - { - byte[] upload = this.gzipPayload(payload); - - HttpPost post = new HttpPost(this.url + endpoint); - post.setHeader("Content-Encoding", "gzip"); - post.setHeader("Content-Type", "application/json"); - post.setHeader("Authorization", this.secret.createHmac(upload)); - - post.setEntity(new ByteArrayEntity(upload)); - - return post; - } - - /** - * Serializes an {@link JsonElement} with GZIP compression. - * - * @param tree The {@link JsonElement} to serialize - * @return The resultant GZIP compressed byte array - * @throws IOException If an I/O error has occurred - */ - private byte[] gzipPayload(JsonElement tree) throws IOException - { - try (ByteArrayOutputStream output = new ByteArrayOutputStream()) - { - try (OutputStreamWriter stream = new OutputStreamWriter(new GZIPOutputStream(output))) - { - try (JsonWriter writer = new JsonWriter(stream)) - { - this.gson.toJson(tree, writer); - } - } - - output.flush(); - - return output.toByteArray(); - } - } - - private void processScheduled() - { - synchronized (this.scheduled) - { - while (!this.scheduled.isEmpty()) - { - GAEvent event = this.scheduled.remove(); - - JsonObject data = event.serialize(); - data.addProperty("v", API_VERSION); - data.addProperty("sdk_version", SDK_VERSION); - - data.addProperty("user_id", this.getUser().getPersistentId().toString()); - data.addProperty("session_id", this.getUser().getSessionId().toString()); - data.addProperty("session_num", this.getUser().getSessionCount()); - - data.addProperty("device", this.device); - data.addProperty("manufacturer", this.manufacturer); - data.addProperty("platform", this.platform); - data.addProperty("os_version", this.operatingSystem); - - this.storage.queueEvent(data); - } - } - } - - private void upload() - { - final Collection<JsonElement> batch = this.storage.drainQueuedEvents(1000); - - if (batch.size() <= 0) - { - return; - } - - CompletableFuture.runAsync(() -> - { - try - { - JsonArray array = new JsonArray(); - batch.forEach(array::add); - - HttpPost post = this.createRequest("/events", array); - HttpResponse response = this.client.execute(post); - - int statusCode = response.getStatusLine().getStatusCode(); - - if (statusCode != 200) - { - Collection<JsonElement> failed = new ArrayList<>(); - - try (InputStreamReader reader = new InputStreamReader(response.getEntity().getContent())) - { - JsonArray tree = new JsonParser().parse(reader).getAsJsonArray(); - - // GameAnalytics returns a list of events that failed processing - for (JsonElement error : tree) - { - JsonElement event = error.getAsJsonObject().get("event"); - failed.add(event); - } - } - - AetherCore.LOGGER.warn("GameAnalytics server rejected {} events, dropping", failed.size()); - } - - this.consecutiveFailures = 0; - } - catch (JsonParseException | IOException e) - { - AetherCore.LOGGER.error("Failed to submit GA events", e); - - // Re-schedule the events for later, assuming they haven't reached the remote server - for (JsonElement event : batch) - { - this.storage.queueEvent(event); - } - - this.consecutiveFailures++; - - if (this.consecutiveFailures > 1 && this.state.isScheduling()) - { - long delay = Math.min(300L, 60L * this.consecutiveFailures); - - this.uploadTask.cancel(false); - this.uploadTask = this.scheduler.scheduleAtFixedRate(this::upload, delay, 20L, TimeUnit.SECONDS); - - AetherCore.LOGGER.warn("Entering turtle mode for {} seconds due to network errors whilst uploading GA events", delay); - } - } - - }, this.scheduler); - } - - private File getLocalFile() - { - return new File(AetherCore.PROXY.getConfigDir(), (this.sandboxed ? "analytics-sandbox" : "analytics") + ".json.gz"); - } - - @Override - public void schedule(GAEvent event) - { - if (!this.state.canProcessEvents()) - { - return; - } - - synchronized (this.scheduled) - { - this.scheduled.add(event); - } - } - - @Override - public GAUser getUser() - { - return this.storage.getUser(); - } - - @Override - public long getEpochTimestamp() - { - return (System.currentTimeMillis() / 1000) + this.tsOffset; - } - - private enum GAState - { - // Executor can receive and process events - ACTIVE, - // Executor was remotely disabled - INACTIVE, - // Executor was disabled by user - DISABLED, - // Executor is not loaded yet - UNLOADED; - - public boolean canProcessEvents() - { - return this == ACTIVE; - } - - public boolean isScheduling() - { - return this == ACTIVE; - } - } -} diff --git a/src/main/java/com/gildedgames/aether/common/analytics/events/GAEvent.java b/src/main/java/com/gildedgames/aether/common/analytics/events/GAEvent.java deleted file mode 100644 index 85f1f26834..0000000000 --- a/src/main/java/com/gildedgames/aether/common/analytics/events/GAEvent.java +++ /dev/null @@ -1,43 +0,0 @@ -package com.gildedgames.aether.common.analytics.events; - -import com.gildedgames.aether.common.AetherCore; -import com.google.gson.JsonObject; - -public abstract class GAEvent -{ - private final long timestamp; - - public GAEvent() - { - this.timestamp = AetherCore.ANALYTICS.getEpochTimestamp(); - } - - /** - * Serializes this event to an {@link JsonObject} - * @return An {@link JsonObject} that can be reported to the GA - */ - public JsonObject serialize() - { - JsonObject obj = new JsonObject(); - obj.addProperty("client_ts", this.getTimestamp()); - - this.writeProperties(obj); - - return obj; - } - - /** - * Writes this event's additional properties to an {@link JsonObject}. - * @param obj The event's JSON object - */ - protected abstract void writeProperties(JsonObject obj); - - /** - * Returns the timestamp this event was created. - * @return The timestamp in epoch format - */ - public long getTimestamp() - { - return this.timestamp; - } -} diff --git a/src/main/java/com/gildedgames/aether/common/analytics/events/GASessionEndEvent.java b/src/main/java/com/gildedgames/aether/common/analytics/events/GASessionEndEvent.java deleted file mode 100644 index dbea0cd1c3..0000000000 --- a/src/main/java/com/gildedgames/aether/common/analytics/events/GASessionEndEvent.java +++ /dev/null @@ -1,20 +0,0 @@ -package com.gildedgames.aether.common.analytics.events; - -import com.google.gson.JsonObject; - -public class GASessionEndEvent extends GAEvent -{ - private final long duration; - - public GASessionEndEvent(long duration) - { - this.duration = duration; - } - - @Override - public void writeProperties(JsonObject obj) - { - obj.addProperty("category", "session_end"); - obj.addProperty("length", this.duration); - } -} diff --git a/src/main/java/com/gildedgames/aether/common/analytics/events/GASessionStartEvent.java b/src/main/java/com/gildedgames/aether/common/analytics/events/GASessionStartEvent.java deleted file mode 100644 index c8060f63eb..0000000000 --- a/src/main/java/com/gildedgames/aether/common/analytics/events/GASessionStartEvent.java +++ /dev/null @@ -1,12 +0,0 @@ -package com.gildedgames.aether.common.analytics.events; - -import com.google.gson.JsonObject; - -public class GASessionStartEvent extends GAEvent -{ - @Override - public void writeProperties(JsonObject obj) - { - obj.addProperty("category", "user"); - } -} diff --git a/src/main/java/com/gildedgames/aether/common/analytics/responses/GAInitResponse.java b/src/main/java/com/gildedgames/aether/common/analytics/responses/GAInitResponse.java deleted file mode 100644 index c9894e7ea0..0000000000 --- a/src/main/java/com/gildedgames/aether/common/analytics/responses/GAInitResponse.java +++ /dev/null @@ -1,18 +0,0 @@ -package com.gildedgames.aether.common.analytics.responses; - -import com.google.gson.annotations.SerializedName; - -public class GAInitResponse -{ - @SerializedName("server_ts") - public final long serverTimestamp; - - @SerializedName("enabled") - public final boolean enabled; - - public GAInitResponse(long serverTimestamp, boolean enabled) - { - this.serverTimestamp = serverTimestamp; - this.enabled = enabled; - } -} diff --git a/src/main/java/com/gildedgames/aether/common/blocks/IBlockMultiName.java b/src/main/java/com/gildedgames/aether/common/blocks/IBlockMultiName.java deleted file mode 100644 index 188979af34..0000000000 --- a/src/main/java/com/gildedgames/aether/common/blocks/IBlockMultiName.java +++ /dev/null @@ -1,8 +0,0 @@ -package com.gildedgames.aether.common.blocks; - -import net.minecraft.item.ItemStack; - -public interface IBlockMultiName -{ - String getTranslationKey(ItemStack stack); -} diff --git a/src/main/java/com/gildedgames/aether/common/blocks/IBlockRadiation.java b/src/main/java/com/gildedgames/aether/common/blocks/IBlockRadiation.java deleted file mode 100644 index 198b26b501..0000000000 --- a/src/main/java/com/gildedgames/aether/common/blocks/IBlockRadiation.java +++ /dev/null @@ -1,18 +0,0 @@ -package com.gildedgames.aether.common.blocks; - -import net.minecraft.block.Block; - -public interface IBlockRadiation -{ - Block setRadiationDistance(int distance); - - int getRadiationDistance(); - - Block setRadiationAmount(int amount); - - int getRadiationAmount(); - - Block setRadiationRate(int rate); - - int getRadiationRate(); -} diff --git a/src/main/java/com/gildedgames/aether/common/blocks/IBlockSnowy.java b/src/main/java/com/gildedgames/aether/common/blocks/IBlockSnowy.java deleted file mode 100644 index 3a84c0266c..0000000000 --- a/src/main/java/com/gildedgames/aether/common/blocks/IBlockSnowy.java +++ /dev/null @@ -1,8 +0,0 @@ -package com.gildedgames.aether.common.blocks; - -import net.minecraft.block.properties.PropertyBool; - -public interface IBlockSnowy -{ - PropertyBool PROPERTY_SNOWY = PropertyBool.create("snowy"); -} diff --git a/src/main/java/com/gildedgames/aether/common/blocks/IBlockWithItem.java b/src/main/java/com/gildedgames/aether/common/blocks/IBlockWithItem.java deleted file mode 100644 index ea1a4a10f8..0000000000 --- a/src/main/java/com/gildedgames/aether/common/blocks/IBlockWithItem.java +++ /dev/null @@ -1,8 +0,0 @@ -package com.gildedgames.aether.common.blocks; - -import net.minecraft.item.ItemBlock; - -public interface IBlockWithItem -{ - ItemBlock createItemBlock(); -} diff --git a/src/main/java/com/gildedgames/aether/common/blocks/IInternalBlock.java b/src/main/java/com/gildedgames/aether/common/blocks/IInternalBlock.java deleted file mode 100644 index 81b075a7d9..0000000000 --- a/src/main/java/com/gildedgames/aether/common/blocks/IInternalBlock.java +++ /dev/null @@ -1,5 +0,0 @@ -package com.gildedgames.aether.common.blocks; - -public interface IInternalBlock -{ -} diff --git a/src/main/java/com/gildedgames/aether/common/blocks/construction/BlockAetherPortal.java b/src/main/java/com/gildedgames/aether/common/blocks/construction/BlockAetherPortal.java deleted file mode 100644 index 5ba54c0bfd..0000000000 --- a/src/main/java/com/gildedgames/aether/common/blocks/construction/BlockAetherPortal.java +++ /dev/null @@ -1,443 +0,0 @@ -package com.gildedgames.aether.common.blocks.construction; - -import com.gildedgames.aether.api.registrar.BlocksAether; -import com.gildedgames.aether.api.registrar.SoundsAether; -import com.gildedgames.aether.client.renderer.particles.ParticleAetherPortal; -import com.gildedgames.aether.common.capabilities.entity.player.PlayerAether; -import com.gildedgames.aether.common.capabilities.entity.player.modules.PlayerSwetTrackerModule; -import com.gildedgames.aether.common.capabilities.entity.player.modules.PlayerTeleportingModule; -import net.minecraft.block.Block; -import net.minecraft.block.BlockBreakable; -import net.minecraft.block.SoundType; -import net.minecraft.block.material.Material; -import net.minecraft.block.properties.PropertyEnum; -import net.minecraft.block.state.BlockStateContainer; -import net.minecraft.block.state.IBlockState; -import net.minecraft.client.Minecraft; -import net.minecraft.entity.Entity; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.init.Blocks; -import net.minecraft.util.BlockRenderLayer; -import net.minecraft.util.EnumFacing; -import net.minecraft.util.Rotation; -import net.minecraft.util.SoundCategory; -import net.minecraft.util.math.AxisAlignedBB; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.IBlockAccess; -import net.minecraft.world.World; -import net.minecraftforge.fml.client.FMLClientHandler; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; - -import javax.annotation.Nullable; -import java.util.Random; - -public class BlockAetherPortal extends BlockBreakable -{ - public static final PropertyEnum<EnumFacing.Axis> PROPERTY_AXIS = PropertyEnum.create("axis", EnumFacing.Axis.class, - EnumFacing.Axis.X, EnumFacing.Axis.Z); - - protected static final AxisAlignedBB X_AABB = new AxisAlignedBB(0.0D, 0.0D, 0.375D, 1.0D, 1.0D, 0.625D), - Z_AABB = new AxisAlignedBB(0.375D, 0.0D, 0.0D, 0.625D, 1.0D, 1.0D), - Y_AABB = new AxisAlignedBB(0.375D, 0.0D, 0.375D, 0.625D, 1.0D, 0.625D); - - public BlockAetherPortal() - { - super(Material.PORTAL, false); - - this.setSoundType(SoundType.GLASS); - - this.setHardness(-1.0F); - this.setLightLevel(0.75F); - - this.setTickRandomly(true); - - this.setDefaultState(this.blockState.getBaseState().withProperty(PROPERTY_AXIS, EnumFacing.Axis.X)); - } - - public static int getMetaForAxis(EnumFacing.Axis axis) - { - return axis == EnumFacing.Axis.X ? 1 : (axis == EnumFacing.Axis.Z ? 2 : 0); - } - - @Override - public boolean isFullCube(IBlockState state) - { - return false; - } - - @Override - public AxisAlignedBB getBoundingBox(IBlockState state, IBlockAccess source, BlockPos pos) - { - switch (state.getValue(PROPERTY_AXIS)) - { - case X: - return X_AABB; - case Y: - default: - return Y_AABB; - case Z: - return Z_AABB; - } - } - - @Override - @Nullable - public AxisAlignedBB getCollisionBoundingBox(IBlockState blockState, IBlockAccess worldIn, BlockPos pos) - { - return NULL_AABB; - } - - @Override - @SideOnly(Side.CLIENT) - public void randomDisplayTick(IBlockState state, World world, BlockPos pos, Random rand) - { - if (rand.nextInt(150) == 0) - { - world.playSound( - pos.getX() + 0.5D, - pos.getY() + 0.5D, - pos.getZ() + 0.5D, SoundsAether.glowstone_portal_hum, SoundCategory.BLOCKS, 0.2F, - (rand.nextFloat() * 0.2F) + 0.9F, false); - } - - for (int count = 0; count < 4; count++) - { - double posX = pos.getX() + rand.nextFloat(); - double posY = pos.getY() + rand.nextFloat(); - double posZ = pos.getZ() + rand.nextFloat(); - double motionX = (rand.nextFloat() - 0.5D) * 0.5D; - double motionY = (rand.nextFloat() - 0.5D) * 0.5D; - double motionZ = (rand.nextFloat() - 0.5D) * 0.5D; - - int angle = rand.nextInt(2) * 2 - 1; - - if (world.getBlockState(pos.west()).getBlock() != this && world.getBlockState(pos.east()).getBlock() != this) - { - posX = pos.getX() + 0.5D + 0.25D * angle; - motionX = (rand.nextFloat() * 2.0F * angle); - } - else - { - posZ = pos.getZ() + 0.5D + 0.25D * angle; - motionZ = (rand.nextFloat() * 2.0F * angle); - } - - ParticleAetherPortal effect = new ParticleAetherPortal(world, posX, posY, posZ, motionX, motionY, motionZ); - FMLClientHandler.instance().getClient().effectRenderer.addEffect(effect); - } - } - - @Override - @SideOnly(Side.CLIENT) - public boolean shouldSideBeRendered(IBlockState blockState, IBlockAccess world, BlockPos pos, EnumFacing side) - { - EnumFacing.Axis axis = null; - final IBlockState state = world.getBlockState(pos); - - if (world.getBlockState(pos).getBlock() == this) - { - axis = state.getValue(PROPERTY_AXIS); - - if (axis == EnumFacing.Axis.Z && side != EnumFacing.EAST && side != EnumFacing.WEST) - { - return false; - } - - if (axis == EnumFacing.Axis.X && side != EnumFacing.SOUTH && side != EnumFacing.NORTH) - { - return false; - } - } - - final boolean westFlag = world.getBlockState(pos.west()).getBlock() == this && world.getBlockState(pos.west(2)).getBlock() != this; - final boolean eastFlag = world.getBlockState(pos.east()).getBlock() == this && world.getBlockState(pos.east(2)).getBlock() != this; - final boolean northFlag = - world.getBlockState(pos.north()).getBlock() == this && world.getBlockState(pos.north(2)).getBlock() != this; - final boolean southFlag = - world.getBlockState(pos.south()).getBlock() == this && world.getBlockState(pos.south(2)).getBlock() != this; - final boolean wexFlag = westFlag || eastFlag || axis == EnumFacing.Axis.X; - final boolean nszFlag = northFlag || southFlag || axis == EnumFacing.Axis.Z; - - return wexFlag && side == EnumFacing.WEST || (wexFlag && side == EnumFacing.EAST || (nszFlag && side == EnumFacing.NORTH - || nszFlag && side == EnumFacing.SOUTH)); - } - - @Override - public void onEntityCollision(World world, BlockPos pos, IBlockState state, Entity entity) - { - if (entity instanceof EntityPlayer && !entity.isRiding() && !entity.isBeingRidden() - && PlayerAether.getPlayer((EntityPlayer) entity).getModule(PlayerSwetTrackerModule.class).getLatchedSwets().isEmpty()) - { - PlayerAether playerAether = PlayerAether.getPlayer((EntityPlayer) entity); - playerAether.getModule(PlayerTeleportingModule.class).processTeleporting(); - } - } - - @Override - public IBlockState withRotation(IBlockState state, Rotation rot) - { - switch (rot) - { - case COUNTERCLOCKWISE_90: - case CLOCKWISE_90: - switch (state.getValue(PROPERTY_AXIS)) - { - case X: - return state.withProperty(PROPERTY_AXIS, EnumFacing.Axis.Z); - case Z: - return state.withProperty(PROPERTY_AXIS, EnumFacing.Axis.X); - default: - return state; - } - - default: - return state; - } - } - - @Override - public int getMetaFromState(IBlockState state) - { - return getMetaForAxis(state.getValue(PROPERTY_AXIS)); - } - - @Override - public IBlockState getStateFromMeta(int meta) - { - return this.getDefaultState().withProperty(PROPERTY_AXIS, (meta & 3) == 2 ? EnumFacing.Axis.Z : EnumFacing.Axis.X); - } - - @Override - public void neighborChanged(IBlockState state, World world, BlockPos pos, Block blockIn, BlockPos fromPos) - { - final EnumFacing.Axis axis = state.getValue(PROPERTY_AXIS); - - if (axis == EnumFacing.Axis.X || axis == EnumFacing.Axis.Z) - { - final BlockAetherPortal.Size size = new BlockAetherPortal.Size(world, pos, axis); - - if (!size.isWithinSizeBounds() || size.portalBlocks < size.height * size.width) - { - world.setBlockState(pos, Blocks.AIR.getDefaultState()); - } - } - } - - @Override - public int quantityDropped(Random random) - { - return 0; - } - - @Override - protected BlockStateContainer createBlockState() - { - return new BlockStateContainer(this, PROPERTY_AXIS); - } - - @Override - @SideOnly(Side.CLIENT) - public BlockRenderLayer getRenderLayer() - { - return BlockRenderLayer.TRANSLUCENT; - } - - public static class Size - { - private final World world; - - private final EnumFacing.Axis axis; - - private final EnumFacing rightSideFacing; - - private final EnumFacing leftSideFacing; - - private BlockPos portalPos; - - private int portalBlocks = 0; - - private int height; - - private int width; - - public Size(World world, BlockPos pos, EnumFacing.Axis axis) - { - this.world = world; - this.axis = axis; - - if (axis == EnumFacing.Axis.X) - { - this.leftSideFacing = EnumFacing.EAST; - this.rightSideFacing = EnumFacing.WEST; - } - else - { - this.leftSideFacing = EnumFacing.NORTH; - this.rightSideFacing = EnumFacing.SOUTH; - } - - final BlockPos offsetPos = pos; - - while (pos.getY() > offsetPos.getY() - 21 && pos.getY() > 0 && this.isBlockSuitable(world.getBlockState(pos.down()))) - { - pos = pos.down(); - } - - final int x = this.getWidth(pos, this.leftSideFacing) - 1; - - if (x >= 0) - { - this.portalPos = pos.offset(this.leftSideFacing, x); - this.width = this.getWidth(this.portalPos, this.rightSideFacing); - - if (this.width < 2 || this.width > 21) - { - this.portalPos = null; - this.width = 0; - } - } - - if (this.portalPos != null) - { - this.height = this.getHeight(); - } - } - - private int getWidth(BlockPos pos, EnumFacing facing) - { - int x; - - for (x = 0; x < 22; ++x) - { - final BlockPos offsetPos = pos.offset(facing, x); - - if (!this.isBlockSuitable(this.world.getBlockState(offsetPos)) - || !this.isBlockValidFrame(this.world.getBlockState(offsetPos.down()))) - { - break; - } - } - - final IBlockState state = this.world.getBlockState(pos.offset(facing, x)); - return this.isBlockValidFrame(state) ? x : 0; - } - - private int getHeight() - { - int x; - loop: - - for (this.height = 0; this.height < 21; ++this.height) - { - for (x = 0; x < this.width; ++x) - { - final BlockPos blockpos = this.portalPos.offset(this.rightSideFacing, x).up(this.height); - IBlockState state = this.world.getBlockState(blockpos); - - if (!this.isBlockSuitable(state)) - { - break loop; - } - - if (state.getBlock() == BlocksAether.aether_portal) - { - ++this.portalBlocks; - } - - if (x == 0) - { - state = this.world.getBlockState(blockpos.offset(this.leftSideFacing)); - - if (!this.isBlockValidFrame(state)) - { - break loop; - } - } - else if (x == this.width - 1) - { - state = this.world.getBlockState(blockpos.offset(this.rightSideFacing)); - - if (!this.isBlockValidFrame(state)) - { - break loop; - } - } - } - } - - for (x = 0; x < this.width; ++x) - { - if (!this.isBlockValidFrame(this.world.getBlockState(this.portalPos.offset(this.rightSideFacing, x).up(this.height)))) - { - this.height = 0; - break; - } - } - - if (this.height <= 21 && this.height >= 3) - { - return this.height; - } - else - { - this.portalPos = null; - this.width = 0; - this.height = 0; - return 0; - } - } - - private boolean isBlockSuitable(IBlockState state) - { - return state.getMaterial() == Material.AIR || state.getBlock() == Blocks.WATER - || state.getBlock() == BlocksAether.aether_portal; - } - - public boolean isWithinSizeBounds() - { - return this.portalPos != null && this.width >= 2 && this.width <= 21 && this.height >= 3 && this.height <= 21; - } - - public int getPortalBlocks() - { - return this.portalBlocks; - } - - private boolean isBlockValidFrame(IBlockState state) - { - return state.getBlock() == Blocks.GLOWSTONE || state.getBlock() == Blocks.QUARTZ_BLOCK; - } - - public void createPortal() - { - for (int i = 0; i < this.width; ++i) - { - final BlockPos blockpos = this.portalPos.offset(this.rightSideFacing, i); - - for (int j = 0; j < this.height; ++j) - { - this.world.setBlockState(blockpos.up(j), - BlocksAether.aether_portal.getDefaultState().withProperty(BlockAetherPortal.PROPERTY_AXIS, this.axis), 2); - } - } - } - - public boolean isPortalBase(IBlockState state) - { - IBlockState block = null; - - for (int i = 0; i < this.width; ++i) - { - final BlockPos blockpos = this.portalPos.offset(this.rightSideFacing, i); - - for (int j = 0; j < 1; ++j) - { - block = this.world.getBlockState(blockpos.up(j - 1)); - } - } - - return block == state; - } - } -} diff --git a/src/main/java/com/gildedgames/aether/common/blocks/construction/BlockAmbrosiumTorch.java b/src/main/java/com/gildedgames/aether/common/blocks/construction/BlockAmbrosiumTorch.java deleted file mode 100644 index 0dcccef50f..0000000000 --- a/src/main/java/com/gildedgames/aether/common/blocks/construction/BlockAmbrosiumTorch.java +++ /dev/null @@ -1,32 +0,0 @@ -package com.gildedgames.aether.common.blocks.construction; - -import net.minecraft.block.BlockTorch; -import net.minecraft.block.SoundType; -import net.minecraft.block.state.IBlockState; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.World; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; - -import java.util.Random; - -public class BlockAmbrosiumTorch extends BlockTorch -{ - public BlockAmbrosiumTorch() - { - super(); - - this.setHardness(0f); - this.setLightLevel(0.9375f); - - this.setSoundType(SoundType.WOOD); - } - - @Override - @SideOnly(Side.CLIENT) - public void randomDisplayTick(IBlockState stateIn, World worldIn, BlockPos pos, Random rand) - { - - } - -} diff --git a/src/main/java/com/gildedgames/aether/common/blocks/construction/BlockOreBlock.java b/src/main/java/com/gildedgames/aether/common/blocks/construction/BlockOreBlock.java deleted file mode 100644 index 769b616dd3..0000000000 --- a/src/main/java/com/gildedgames/aether/common/blocks/construction/BlockOreBlock.java +++ /dev/null @@ -1,29 +0,0 @@ -package com.gildedgames.aether.common.blocks.construction; - -import net.minecraft.block.Block; -import net.minecraft.block.SoundType; -import net.minecraft.block.material.Material; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.IBlockAccess; - -public class BlockOreBlock extends Block -{ - public BlockOreBlock(Material material) - { - super(material); - } - - @Override - public BlockOreBlock setSoundType(SoundType type) - { - super.setSoundType(type); - - return this; - } - - @Override - public boolean isBeaconBase(IBlockAccess worldObj, BlockPos pos, BlockPos beacon) - { - return true; - } -} diff --git a/src/main/java/com/gildedgames/aether/common/blocks/construction/BlockOutpostCampfire.java b/src/main/java/com/gildedgames/aether/common/blocks/construction/BlockOutpostCampfire.java deleted file mode 100644 index 16b1e600a7..0000000000 --- a/src/main/java/com/gildedgames/aether/common/blocks/construction/BlockOutpostCampfire.java +++ /dev/null @@ -1,80 +0,0 @@ -package com.gildedgames.aether.common.blocks.construction; - -import com.gildedgames.aether.common.blocks.multiblock.BlockMultiController; -import com.gildedgames.aether.common.entities.tiles.TileEntityOutpostCampfire; -import net.minecraft.block.SoundType; -import net.minecraft.block.material.Material; -import net.minecraft.block.state.BlockFaceShape; -import net.minecraft.block.state.IBlockState; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.EnumFacing; -import net.minecraft.util.math.AxisAlignedBB; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.IBlockAccess; -import net.minecraft.world.World; - -public class BlockOutpostCampfire extends BlockMultiController -{ - - protected static final AxisAlignedBB AABB = new AxisAlignedBB(0.0D, 0.0D, 0.0D, 1.0D, 0.5D, 1.0D); - - public BlockOutpostCampfire(final Material materialIn) - { - super(materialIn); - this.setSoundType(SoundType.STONE); - - this.setBlockUnbreakable(); - this.setResistance(6000000f); - this.setLightOpacity(0); - this.setLightLevel(1f); - } - - @Override - public BlockFaceShape getBlockFaceShape(IBlockAccess worldIn, IBlockState state, BlockPos pos, EnumFacing face) - { - return BlockFaceShape.UNDEFINED; - } - - @Override - public Iterable<BlockPos.MutableBlockPos> getMultiblockVolumeIterator(final BlockPos pos, final World world) - { - return BlockPos.getAllInBoxMutable(pos, pos.south().east()); - } - - @Override - public TileEntity createNewTileEntity(final World worldIn, final int meta) - { - return new TileEntityOutpostCampfire(); - } - - @Override - public AxisAlignedBB getBoundingBox(final IBlockState state, final IBlockAccess source, final BlockPos pos) - { - return AABB; - } - - @Override - @Deprecated - public boolean isFullBlock(final IBlockState state) - { - return false; - } - - @Override - public boolean isFullCube(final IBlockState state) - { - return false; - } - - @Override - public boolean isOpaqueCube(final IBlockState state) - { - return false; - } - - @Override - public boolean doesSideBlockRendering(final IBlockState state, final IBlockAccess world, final BlockPos pos, final EnumFacing face) - { - return false; - } -} diff --git a/src/main/java/com/gildedgames/aether/common/blocks/construction/BlockQuicksoilGlass.java b/src/main/java/com/gildedgames/aether/common/blocks/construction/BlockQuicksoilGlass.java deleted file mode 100644 index df23d0743c..0000000000 --- a/src/main/java/com/gildedgames/aether/common/blocks/construction/BlockQuicksoilGlass.java +++ /dev/null @@ -1,52 +0,0 @@ -package com.gildedgames.aether.common.blocks.construction; - -import net.minecraft.block.BlockGlass; -import net.minecraft.block.SoundType; -import net.minecraft.block.material.Material; -import net.minecraft.block.state.IBlockState; -import net.minecraft.util.BlockRenderLayer; -import net.minecraft.util.EnumFacing; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.IBlockAccess; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; - -public class BlockQuicksoilGlass extends BlockGlass -{ - public BlockQuicksoilGlass() - { - super(Material.GLASS, false); - - this.setHardness(0.3f); - this.setResistance(0.5f); - - this.setLightOpacity(0); - - this.setLightLevel(1f); - - this.setSoundType(SoundType.GLASS); - } - - @Override - @SideOnly(Side.CLIENT) - public BlockRenderLayer getRenderLayer() - { - return BlockRenderLayer.TRANSLUCENT; - } - - @Override - public boolean isFullCube(IBlockState state) - { - return false; - } - - @Override - @SideOnly(Side.CLIENT) - public boolean shouldSideBeRendered(IBlockState blockState, IBlockAccess blockAccess, BlockPos pos, EnumFacing side) - { - BlockPos offset = pos.offset(side); - IBlockState iblockstate = blockAccess.getBlockState(offset); - - return iblockstate.getBlock() != this && (iblockstate.getBlock().isAir(iblockstate, blockAccess, offset) || !iblockstate.isFullCube()); - } -} diff --git a/src/main/java/com/gildedgames/aether/common/blocks/construction/BlockQuicksoilGlassPane.java b/src/main/java/com/gildedgames/aether/common/blocks/construction/BlockQuicksoilGlassPane.java deleted file mode 100644 index 9e989231ae..0000000000 --- a/src/main/java/com/gildedgames/aether/common/blocks/construction/BlockQuicksoilGlassPane.java +++ /dev/null @@ -1,30 +0,0 @@ -package com.gildedgames.aether.common.blocks.construction; - -import net.minecraft.block.BlockPane; -import net.minecraft.block.SoundType; -import net.minecraft.block.material.Material; -import net.minecraft.util.BlockRenderLayer; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; - -public class BlockQuicksoilGlassPane extends BlockPane -{ - public BlockQuicksoilGlassPane() - { - super(Material.GLASS, false); - - this.setHardness(0.3F); - this.setSoundType(SoundType.GLASS); - - this.setLightOpacity(0); - - this.setLightLevel(1f); - } - - @Override - @SideOnly(Side.CLIENT) - public BlockRenderLayer getRenderLayer() - { - return BlockRenderLayer.TRANSLUCENT; - } -} diff --git a/src/main/java/com/gildedgames/aether/common/blocks/construction/BlockRockGlass.java b/src/main/java/com/gildedgames/aether/common/blocks/construction/BlockRockGlass.java deleted file mode 100644 index 121b17c660..0000000000 --- a/src/main/java/com/gildedgames/aether/common/blocks/construction/BlockRockGlass.java +++ /dev/null @@ -1,74 +0,0 @@ -package com.gildedgames.aether.common.blocks.construction; - -import com.gildedgames.aether.api.registrar.ItemsAether; -import net.minecraft.block.Block; -import net.minecraft.block.BlockBreakable; -import net.minecraft.block.SoundType; -import net.minecraft.block.material.Material; -import net.minecraft.block.state.IBlockState; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.util.BlockRenderLayer; -import net.minecraft.util.EnumFacing; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.IBlockAccess; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; - -import java.util.Random; - -public class BlockRockGlass extends Block -{ - public BlockRockGlass() - { - super(Material.ROCK); - - this.setHardness(1f); - this.setResistance(2000f); - - this.setLightOpacity(3); - - this.setSoundType(SoundType.GLASS); - } - - @Override - public Item getItemDropped(IBlockState state, Random rand, int fortune) - { - return ItemsAether.crude_scatterglass_shard; - } - - @Override - public int quantityDropped(Random random) - { - return 2; - } - - @Override - @SideOnly(Side.CLIENT) - public BlockRenderLayer getRenderLayer() - { - return BlockRenderLayer.TRANSLUCENT; - } - - @Override - public boolean isFullCube(IBlockState state) - { - return false; - } - - @Override - public boolean isOpaqueCube(IBlockState state) - { - return false; - } - - @Override - @SideOnly(Side.CLIENT) - public boolean shouldSideBeRendered(IBlockState blockState, IBlockAccess blockAccess, BlockPos pos, EnumFacing side) - { - BlockPos offset = pos.offset(side); - IBlockState iblockstate = blockAccess.getBlockState(offset); - - return iblockstate.getBlock() != this && (iblockstate.getBlock().isAir(iblockstate, blockAccess, offset) || !iblockstate.isFullCube()); - } -} diff --git a/src/main/java/com/gildedgames/aether/common/blocks/construction/BlockRockGlassPane.java b/src/main/java/com/gildedgames/aether/common/blocks/construction/BlockRockGlassPane.java deleted file mode 100644 index 4e11021394..0000000000 --- a/src/main/java/com/gildedgames/aether/common/blocks/construction/BlockRockGlassPane.java +++ /dev/null @@ -1,35 +0,0 @@ -package com.gildedgames.aether.common.blocks.construction; - -import net.minecraft.block.Block; -import net.minecraft.block.BlockPane; -import net.minecraft.block.SoundType; -import net.minecraft.block.material.Material; -import net.minecraft.util.BlockRenderLayer; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; - -public class BlockRockGlassPane extends BlockPane -{ - private final Block block; - - public BlockRockGlassPane(Block block, Material material) - { - super(material, true); - - this.block = block; - - this.setHardness(1.0F); - this.setResistance(2000f); - - this.setSoundType(SoundType.GLASS); - - this.setLightOpacity(3); - } - - @Override - @SideOnly(Side.CLIENT) - public BlockRenderLayer getRenderLayer() - { - return this.block.getRenderLayer(); - } -} diff --git a/src/main/java/com/gildedgames/aether/common/blocks/construction/BlockRockGlassTranslucent.java b/src/main/java/com/gildedgames/aether/common/blocks/construction/BlockRockGlassTranslucent.java deleted file mode 100644 index e823b81094..0000000000 --- a/src/main/java/com/gildedgames/aether/common/blocks/construction/BlockRockGlassTranslucent.java +++ /dev/null @@ -1,50 +0,0 @@ -package com.gildedgames.aether.common.blocks.construction; - -import net.minecraft.block.BlockBreakable; -import net.minecraft.block.SoundType; -import net.minecraft.block.material.Material; -import net.minecraft.block.state.IBlockState; -import net.minecraft.util.BlockRenderLayer; -import net.minecraft.util.EnumFacing; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.IBlockAccess; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; - -public class BlockRockGlassTranslucent extends BlockBreakable -{ - public BlockRockGlassTranslucent() - { - super(Material.ROCK, false); - - this.setHardness(0.3f); - this.setResistance(2000f); - - this.setLightOpacity(0); - - this.setSoundType(SoundType.GLASS); - } - - @Override - @SideOnly(Side.CLIENT) - public BlockRenderLayer getRenderLayer() - { - return BlockRenderLayer.TRANSLUCENT; - } - - @Override - public boolean isFullCube(IBlockState state) - { - return false; - } - - @Override - @SideOnly(Side.CLIENT) - public boolean shouldSideBeRendered(IBlockState blockState, IBlockAccess blockAccess, BlockPos pos, EnumFacing side) - { - BlockPos offset = pos.offset(side); - IBlockState iblockstate = blockAccess.getBlockState(offset); - - return iblockstate.getBlock() != this && (iblockstate.getBlock().isAir(iblockstate, blockAccess, offset) || !iblockstate.isFullCube()); - } -} diff --git a/src/main/java/com/gildedgames/aether/common/blocks/construction/BlockScatterglassSlab.java b/src/main/java/com/gildedgames/aether/common/blocks/construction/BlockScatterglassSlab.java deleted file mode 100644 index cf14a21caa..0000000000 --- a/src/main/java/com/gildedgames/aether/common/blocks/construction/BlockScatterglassSlab.java +++ /dev/null @@ -1,65 +0,0 @@ -package com.gildedgames.aether.common.blocks.construction; - -import com.gildedgames.aether.api.registrar.BlocksAether; -import com.gildedgames.aether.common.blocks.util.BlockCustomSlab; -import net.minecraft.block.material.Material; -import net.minecraft.block.state.IBlockState; -import net.minecraft.util.BlockRenderLayer; -import net.minecraft.util.EnumFacing; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.IBlockAccess; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; - -public class BlockScatterglassSlab extends BlockCustomSlab -{ - public BlockScatterglassSlab(Material material) - { - super(material); - - this.setResistance(2000f); - - this.setLightOpacity(0); - } - - @Override - public boolean doesSideBlockRendering(IBlockState state, IBlockAccess world, BlockPos pos, EnumFacing face) - { - return false; - } - - @Override - @SideOnly(Side.CLIENT) - public boolean shouldSideBeRendered(IBlockState state, IBlockAccess world, BlockPos pos, EnumFacing side) - { - IBlockState neighborState = world.getBlockState(pos.offset(side)); - if (neighborState.getBlock() == BlocksAether.scatterglass_slab) - { - if (state.getValue(PROPERTY_SLAB_STATE) == EnumSlabPart.FULL_BLOCK) - { - return neighborState.getValue(PROPERTY_SLAB_STATE) != EnumSlabPart.FULL_BLOCK; - } - return false; - } - return true; - } - - @Override - @SideOnly(Side.CLIENT) - public BlockRenderLayer getRenderLayer() - { - return BlockRenderLayer.TRANSLUCENT; - } - - @Override - public boolean isOpaqueCube(IBlockState state) - { - return false; - } - - @Override - public boolean isFullCube(IBlockState state) - { - return false; - } -} diff --git a/src/main/java/com/gildedgames/aether/common/blocks/construction/BlockScatterglassStairs.java b/src/main/java/com/gildedgames/aether/common/blocks/construction/BlockScatterglassStairs.java deleted file mode 100644 index 8761f130e6..0000000000 --- a/src/main/java/com/gildedgames/aether/common/blocks/construction/BlockScatterglassStairs.java +++ /dev/null @@ -1,58 +0,0 @@ -package com.gildedgames.aether.common.blocks.construction; - -import com.gildedgames.aether.common.blocks.util.BlockCustomStairs; -import net.minecraft.block.Block; -import net.minecraft.block.state.IBlockState; -import net.minecraft.util.BlockRenderLayer; -import net.minecraft.util.EnumFacing; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.IBlockAccess; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; - -public class BlockScatterglassStairs extends BlockCustomStairs -{ - - public BlockScatterglassStairs(IBlockState state) - { - super(state); - - this.setLightOpacity(3); - } - - @Override - public boolean doesSideBlockRendering(IBlockState state, IBlockAccess world, BlockPos pos, EnumFacing face) - { - return false; - } - - @Override - @SideOnly(Side.CLIENT) - public boolean shouldSideBeRendered(IBlockState state, IBlockAccess world, BlockPos pos, EnumFacing side) - { - IBlockState iblockstate = world.getBlockState(pos.offset(side)); - Block block = iblockstate.getBlock(); - - return block != this; - } - - @Override - @SideOnly(Side.CLIENT) - public BlockRenderLayer getRenderLayer() - { - return BlockRenderLayer.TRANSLUCENT; - } - - @Override - public boolean isOpaqueCube(IBlockState state) - { - return false; - } - - @Override - public boolean isFullCube(IBlockState state) - { - return false; - } - -} diff --git a/src/main/java/com/gildedgames/aether/common/blocks/construction/BlockSkyrootFence.java b/src/main/java/com/gildedgames/aether/common/blocks/construction/BlockSkyrootFence.java deleted file mode 100644 index 425c80c57a..0000000000 --- a/src/main/java/com/gildedgames/aether/common/blocks/construction/BlockSkyrootFence.java +++ /dev/null @@ -1,18 +0,0 @@ -package com.gildedgames.aether.common.blocks.construction; - -import net.minecraft.block.BlockFence; -import net.minecraft.block.SoundType; -import net.minecraft.block.material.MapColor; -import net.minecraft.block.material.Material; - -public class BlockSkyrootFence extends BlockFence -{ - public BlockSkyrootFence() - { - super(Material.WOOD, MapColor.WOOD); - - this.setHardness(2.0F); - this.setResistance(5.0F); - this.setSoundType(SoundType.WOOD); - } -} diff --git a/src/main/java/com/gildedgames/aether/common/blocks/construction/BlockSkyrootFenceGate.java b/src/main/java/com/gildedgames/aether/common/blocks/construction/BlockSkyrootFenceGate.java deleted file mode 100644 index e62b784e54..0000000000 --- a/src/main/java/com/gildedgames/aether/common/blocks/construction/BlockSkyrootFenceGate.java +++ /dev/null @@ -1,18 +0,0 @@ -package com.gildedgames.aether.common.blocks.construction; - -import net.minecraft.block.BlockFenceGate; -import net.minecraft.block.BlockPlanks; -import net.minecraft.block.SoundType; - -public class BlockSkyrootFenceGate extends BlockFenceGate -{ - public BlockSkyrootFenceGate() - { - super(BlockPlanks.EnumType.OAK); - - this.setHardness(2.0F); - this.setResistance(5.0F); - this.setSoundType(SoundType.WOOD); - } -} - diff --git a/src/main/java/com/gildedgames/aether/common/blocks/construction/BlockSkyrootPlanks.java b/src/main/java/com/gildedgames/aether/common/blocks/construction/BlockSkyrootPlanks.java deleted file mode 100644 index b4534f9fb1..0000000000 --- a/src/main/java/com/gildedgames/aether/common/blocks/construction/BlockSkyrootPlanks.java +++ /dev/null @@ -1,17 +0,0 @@ -package com.gildedgames.aether.common.blocks.construction; - -import com.gildedgames.aether.common.blocks.util.BlockBuilder; -import net.minecraft.block.SoundType; -import net.minecraft.block.material.Material; - -public class BlockSkyrootPlanks extends BlockBuilder -{ - public BlockSkyrootPlanks() - { - super(Material.WOOD); - - this.setSoundType(SoundType.WOOD); - this.setHardness(2.0f); - this.setResistance(5.0F); - } -} diff --git a/src/main/java/com/gildedgames/aether/common/blocks/construction/BlockSkyrootTrapDoor.java b/src/main/java/com/gildedgames/aether/common/blocks/construction/BlockSkyrootTrapDoor.java deleted file mode 100644 index dc85d1ef8b..0000000000 --- a/src/main/java/com/gildedgames/aether/common/blocks/construction/BlockSkyrootTrapDoor.java +++ /dev/null @@ -1,37 +0,0 @@ -package com.gildedgames.aether.common.blocks.construction; - -import net.minecraft.block.BlockLadder; -import net.minecraft.block.BlockTrapDoor; -import net.minecraft.block.SoundType; -import net.minecraft.block.material.Material; -import net.minecraft.block.state.IBlockState; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.IBlockAccess; - -public class BlockSkyrootTrapDoor extends BlockTrapDoor -{ - public BlockSkyrootTrapDoor() - { - super(Material.WOOD); - - this.setSoundType(SoundType.WOOD); - - this.setHardness(3.0f); - - this.disableStats(); - } - - @Override - public boolean isLadder(IBlockState state, IBlockAccess world, BlockPos pos, EntityLivingBase entity) - { - if (state.getValue(OPEN)) - { - IBlockState down = world.getBlockState(pos.down()); - if (down.getBlock() instanceof BlockLadder) - return down.getValue(BlockLadder.FACING) == state.getValue(FACING); - } - - return false; - } -} diff --git a/src/main/java/com/gildedgames/aether/common/blocks/construction/BlockTherawoodPlanks.java b/src/main/java/com/gildedgames/aether/common/blocks/construction/BlockTherawoodPlanks.java deleted file mode 100644 index d8c16023ae..0000000000 --- a/src/main/java/com/gildedgames/aether/common/blocks/construction/BlockTherawoodPlanks.java +++ /dev/null @@ -1,17 +0,0 @@ -package com.gildedgames.aether.common.blocks.construction; - -import com.gildedgames.aether.common.blocks.util.BlockBuilder; -import net.minecraft.block.SoundType; -import net.minecraft.block.material.Material; - -public class BlockTherawoodPlanks extends BlockBuilder -{ - public BlockTherawoodPlanks() - { - super(Material.WOOD); - - this.setSoundType(SoundType.WOOD); - this.setHardness(2f); - this.setResistance(5.0f); - } -} diff --git a/src/main/java/com/gildedgames/aether/common/blocks/construction/redstone/BlockHolystoneButton.java b/src/main/java/com/gildedgames/aether/common/blocks/construction/redstone/BlockHolystoneButton.java deleted file mode 100644 index 2fca2ed94c..0000000000 --- a/src/main/java/com/gildedgames/aether/common/blocks/construction/redstone/BlockHolystoneButton.java +++ /dev/null @@ -1,18 +0,0 @@ -package com.gildedgames.aether.common.blocks.construction.redstone; - -import net.minecraft.block.BlockButtonStone; -import net.minecraft.block.SoundType; - -public class BlockHolystoneButton extends BlockButtonStone -{ - public BlockHolystoneButton() - { - super(); - - this.setSoundType(SoundType.STONE); - - this.setHardness(0.5f); - - this.disableStats(); - } -} diff --git a/src/main/java/com/gildedgames/aether/common/blocks/construction/redstone/BlockHolystonePressurePlate.java b/src/main/java/com/gildedgames/aether/common/blocks/construction/redstone/BlockHolystonePressurePlate.java deleted file mode 100644 index c1c871ef73..0000000000 --- a/src/main/java/com/gildedgames/aether/common/blocks/construction/redstone/BlockHolystonePressurePlate.java +++ /dev/null @@ -1,19 +0,0 @@ -package com.gildedgames.aether.common.blocks.construction.redstone; - -import net.minecraft.block.BlockPressurePlate; -import net.minecraft.block.SoundType; -import net.minecraft.block.material.Material; - -public class BlockHolystonePressurePlate extends BlockPressurePlate -{ - public BlockHolystonePressurePlate() - { - super(Material.ROCK, Sensitivity.EVERYTHING); - - this.setSoundType(SoundType.STONE); - - this.setHardness(0.5f); - - this.disableStats(); - } -} diff --git a/src/main/java/com/gildedgames/aether/common/blocks/construction/redstone/BlockSkyrootButton.java b/src/main/java/com/gildedgames/aether/common/blocks/construction/redstone/BlockSkyrootButton.java deleted file mode 100644 index 07618d1fc8..0000000000 --- a/src/main/java/com/gildedgames/aether/common/blocks/construction/redstone/BlockSkyrootButton.java +++ /dev/null @@ -1,28 +0,0 @@ -package com.gildedgames.aether.common.blocks.construction.redstone; - -import com.gildedgames.aether.common.blocks.IBlockWithItem; -import com.gildedgames.aether.common.items.blocks.ItemBlockCustomLadder; -import com.gildedgames.aether.common.items.blocks.ItemBlockSkyrootButton; -import net.minecraft.block.BlockButtonWood; -import net.minecraft.block.SoundType; -import net.minecraft.item.ItemBlock; - -public class BlockSkyrootButton extends BlockButtonWood implements IBlockWithItem -{ - public BlockSkyrootButton() - { - super(); - - this.setSoundType(SoundType.WOOD); - - this.setHardness(0.5f); - - this.disableStats(); - } - - @Override - public ItemBlock createItemBlock() - { - return new ItemBlockSkyrootButton(this); - } -} diff --git a/src/main/java/com/gildedgames/aether/common/blocks/construction/redstone/BlockSkyrootPressurePlate.java b/src/main/java/com/gildedgames/aether/common/blocks/construction/redstone/BlockSkyrootPressurePlate.java deleted file mode 100644 index 2119ba861a..0000000000 --- a/src/main/java/com/gildedgames/aether/common/blocks/construction/redstone/BlockSkyrootPressurePlate.java +++ /dev/null @@ -1,17 +0,0 @@ -package com.gildedgames.aether.common.blocks.construction.redstone; - -import net.minecraft.block.BlockPressurePlate; -import net.minecraft.block.SoundType; -import net.minecraft.block.material.Material; - -public class BlockSkyrootPressurePlate extends BlockPressurePlate -{ - public BlockSkyrootPressurePlate() - { - super(Material.WOOD, Sensitivity.EVERYTHING); - - this.setSoundType(SoundType.WOOD); - - this.setHardness(0.5f); - } -} diff --git a/src/main/java/com/gildedgames/aether/common/blocks/construction/signs/BlockSkyrootSign.java b/src/main/java/com/gildedgames/aether/common/blocks/construction/signs/BlockSkyrootSign.java deleted file mode 100644 index cddd1f5c4b..0000000000 --- a/src/main/java/com/gildedgames/aether/common/blocks/construction/signs/BlockSkyrootSign.java +++ /dev/null @@ -1,62 +0,0 @@ -package com.gildedgames.aether.common.blocks.construction.signs; - -import com.gildedgames.aether.api.registrar.ItemsAether; -import com.gildedgames.aether.common.blocks.IInternalBlock; -import com.gildedgames.aether.common.entities.tiles.TileEntitySkyrootSign; -import net.minecraft.block.BlockSign; -import net.minecraft.block.SoundType; -import net.minecraft.block.state.IBlockState; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.EnumFacing; -import net.minecraft.util.EnumHand; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.RayTraceResult; -import net.minecraft.world.World; - -import java.util.Random; - -public class BlockSkyrootSign extends BlockSign implements IInternalBlock -{ - protected BlockSkyrootSign() - { - this.setHardness(1.0F); - this.setSoundType(SoundType.WOOD); - this.disableStats(); - } - - @Override - public TileEntity createNewTileEntity(World worldIn, int meta) - { - return new TileEntitySkyrootSign(); - } - - @Override - public Item getItemDropped(IBlockState state, Random rand, int fortune) - { - return ItemsAether.skyroot_sign; - } - - @Override - public boolean onBlockActivated(World worldIn, BlockPos pos, IBlockState state, EntityPlayer playerIn, EnumHand hand, EnumFacing facing, - float hitX, float hitY, float hitZ) - { - if (worldIn.isRemote) - { - return true; - } - else - { - TileEntity tileentity = worldIn.getTileEntity(pos); - return tileentity instanceof TileEntitySkyrootSign && ((TileEntitySkyrootSign) tileentity).executeCommand(playerIn); - } - } - - @Override - public ItemStack getPickBlock(IBlockState state, RayTraceResult target, World world, BlockPos pos, EntityPlayer player) - { - return new ItemStack(ItemsAether.skyroot_sign); - } -} diff --git a/src/main/java/com/gildedgames/aether/common/blocks/construction/signs/BlockStandingSkyrootSign.java b/src/main/java/com/gildedgames/aether/common/blocks/construction/signs/BlockStandingSkyrootSign.java deleted file mode 100644 index 6df97e641e..0000000000 --- a/src/main/java/com/gildedgames/aether/common/blocks/construction/signs/BlockStandingSkyrootSign.java +++ /dev/null @@ -1,50 +0,0 @@ -package com.gildedgames.aether.common.blocks.construction.signs; - -import net.minecraft.block.Block; -import net.minecraft.block.properties.PropertyInteger; -import net.minecraft.block.state.BlockStateContainer; -import net.minecraft.block.state.IBlockState; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.World; - -public class BlockStandingSkyrootSign extends BlockSkyrootSign -{ - public static final PropertyInteger ROTATION = PropertyInteger.create("rotation", 0, 15); - - public BlockStandingSkyrootSign() - { - super(); - this.setDefaultState(this.blockState.getBaseState().withProperty(BlockStandingSkyrootSign.ROTATION, 0)); - } - - @Override - public void neighborChanged(IBlockState state, World world, BlockPos pos, Block neighborBlock, BlockPos fromPos) - { - if (!world.getBlockState(pos.down()).getMaterial().isSolid()) - { - this.dropBlockAsItem(world, pos, state, 0); - - world.setBlockToAir(pos); - } - - super.neighborChanged(state, world, pos, neighborBlock, fromPos); - } - - @Override - public IBlockState getStateFromMeta(int meta) - { - return this.getDefaultState().withProperty(BlockStandingSkyrootSign.ROTATION, meta); - } - - @Override - public int getMetaFromState(IBlockState state) - { - return state.getValue(BlockStandingSkyrootSign.ROTATION); - } - - @Override - protected BlockStateContainer createBlockState() - { - return new BlockStateContainer(this, BlockStandingSkyrootSign.ROTATION); - } -} diff --git a/src/main/java/com/gildedgames/aether/common/blocks/construction/signs/BlockWallSkyrootSign.java b/src/main/java/com/gildedgames/aether/common/blocks/construction/signs/BlockWallSkyrootSign.java deleted file mode 100644 index 24e63b1f0b..0000000000 --- a/src/main/java/com/gildedgames/aether/common/blocks/construction/signs/BlockWallSkyrootSign.java +++ /dev/null @@ -1,83 +0,0 @@ -package com.gildedgames.aether.common.blocks.construction.signs; - -import net.minecraft.block.Block; -import net.minecraft.block.properties.PropertyDirection; -import net.minecraft.block.state.BlockStateContainer; -import net.minecraft.block.state.IBlockState; -import net.minecraft.util.EnumFacing; -import net.minecraft.util.math.AxisAlignedBB; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.IBlockAccess; -import net.minecraft.world.World; - -public class BlockWallSkyrootSign extends BlockSkyrootSign -{ - public static final PropertyDirection FACING = PropertyDirection.create("facing", EnumFacing.Plane.HORIZONTAL); - - protected static final AxisAlignedBB SIGN_EAST_AABB = new AxisAlignedBB(0.0D, 0.28125D, 0.0D, 0.125D, 0.78125D, 1.0D), - SIGN_WEST_AABB = new AxisAlignedBB(0.875D, 0.28125D, 0.0D, 1.0D, 0.78125D, 1.0D), - SIGN_SOUTH_AABB = new AxisAlignedBB(0.0D, 0.28125D, 0.0D, 1.0D, 0.78125D, 0.125D), - SIGN_NORTH_AABB = new AxisAlignedBB(0.0D, 0.28125D, 0.875D, 1.0D, 0.78125D, 1.0D); - - public BlockWallSkyrootSign() - { - this.setDefaultState(this.blockState.getBaseState().withProperty(BlockWallSkyrootSign.FACING, EnumFacing.NORTH)); - } - - @Override - public AxisAlignedBB getBoundingBox(IBlockState state, IBlockAccess source, BlockPos pos) - { - switch (state.getValue(FACING)) - { - case NORTH: - default: - return SIGN_NORTH_AABB; - case SOUTH: - return SIGN_SOUTH_AABB; - case WEST: - return SIGN_WEST_AABB; - case EAST: - return SIGN_EAST_AABB; - } - } - - @Override - public void neighborChanged(IBlockState state, World worldIn, BlockPos pos, Block blockIn, BlockPos fromPos) - { - EnumFacing enumfacing = state.getValue(FACING); - - if (!worldIn.getBlockState(pos.offset(enumfacing.getOpposite())).getMaterial().isSolid()) - { - this.dropBlockAsItem(worldIn, pos, state, 0); - - worldIn.setBlockToAir(pos); - } - - super.neighborChanged(state, worldIn, pos, blockIn, fromPos); - } - - @Override - public IBlockState getStateFromMeta(int meta) - { - EnumFacing facing = EnumFacing.byIndex(meta); - - if (facing.getAxis() == EnumFacing.Axis.Y) - { - facing = EnumFacing.NORTH; - } - - return this.getDefaultState().withProperty(BlockWallSkyrootSign.FACING, facing); - } - - @Override - public int getMetaFromState(IBlockState state) - { - return state.getValue(BlockWallSkyrootSign.FACING).getIndex(); - } - - @Override - protected BlockStateContainer createBlockState() - { - return new BlockStateContainer(this, BlockWallSkyrootSign.FACING); - } -} diff --git a/src/main/java/com/gildedgames/aether/common/blocks/construction/walls/BlockCandyCaneWall.java b/src/main/java/com/gildedgames/aether/common/blocks/construction/walls/BlockCandyCaneWall.java deleted file mode 100644 index 6856005f4a..0000000000 --- a/src/main/java/com/gildedgames/aether/common/blocks/construction/walls/BlockCandyCaneWall.java +++ /dev/null @@ -1,74 +0,0 @@ -package com.gildedgames.aether.common.blocks.construction.walls; - -import net.minecraft.block.SoundType; -import net.minecraft.block.material.MapColor; -import net.minecraft.block.state.IBlockState; -import net.minecraft.entity.Entity; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.init.Items; -import net.minecraft.item.EnumDyeColor; -import net.minecraft.item.Item; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.IBlockAccess; -import net.minecraft.world.World; - -import java.util.Random; - -public class BlockCandyCaneWall extends BlockCustomWall -{ - - public BlockCandyCaneWall(IBlockState state, float hardness, float resistance) - { - super(state, hardness, resistance); - - this.setSoundType(SoundType.WOOD); - } - - @Override - public void onEntityWalk(World world, BlockPos pos, Entity entity) - { - super.onEntityWalk(world, pos, entity); - - if (world.isRaining()) - { - entity.motionX *= 0.1D; - entity.motionZ *= 0.1D; - } - } - - @Override - public Item getItemDropped(IBlockState state, Random rand, int fortune) - { - return Items.SUGAR; - } - - @Override - public int quantityDroppedWithBonus(int fortune, Random random) - { - return this.quantityDropped(random) + random.nextInt(fortune + 1); - } - - @Override - public int quantityDropped(Random random) - { - return 6 + random.nextInt(3); - } - - @Override - public boolean canSilkHarvest(World world, BlockPos pos, IBlockState state, EntityPlayer player) - { - return true; - } - - @Override - public void dropBlockAsItemWithChance(World worldIn, BlockPos pos, IBlockState state, float chance, int fortune) - { - super.dropBlockAsItemWithChance(worldIn, pos, state, chance, fortune); - } - - @Override - public MapColor getMapColor(IBlockState state, IBlockAccess worldIn, BlockPos pos) - { - return MapColor.getBlockColor(EnumDyeColor.RED); - } -} diff --git a/src/main/java/com/gildedgames/aether/common/blocks/construction/walls/BlockCustomWall.java b/src/main/java/com/gildedgames/aether/common/blocks/construction/walls/BlockCustomWall.java deleted file mode 100644 index 86b5c1c948..0000000000 --- a/src/main/java/com/gildedgames/aether/common/blocks/construction/walls/BlockCustomWall.java +++ /dev/null @@ -1,80 +0,0 @@ -package com.gildedgames.aether.common.blocks.construction.walls; - -import net.minecraft.block.Block; -import net.minecraft.block.BlockWall; -import net.minecraft.block.state.BlockStateContainer; -import net.minecraft.block.state.IBlockState; -import net.minecraft.creativetab.CreativeTabs; -import net.minecraft.item.ItemStack; -import net.minecraft.util.NonNullList; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.text.TextComponentTranslation; -import net.minecraft.world.IBlockAccess; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; - -public class BlockCustomWall extends BlockWall -{ - - public BlockCustomWall(final IBlockState state, final float hardness, final float resistance) - { - super(state.getBlock()); - - final Block block = state.getBlock(); - - this.setHarvestLevel(block.getHarvestTool(state), block.getHarvestLevel(state)); - - this.setDefaultState(this.blockState.getBaseState().withProperty(UP, Boolean.FALSE).withProperty(NORTH, Boolean.FALSE).withProperty(EAST, Boolean.FALSE) - .withProperty(SOUTH, Boolean.FALSE).withProperty(WEST, Boolean.FALSE)); - this.setResistance(resistance / 3.0f); - this.setHardness(hardness); - this.setSoundType(state.getBlock().getSoundType()); - - } - - public BlockCustomWall setGlows(final boolean glows) - { - this.setLightLevel(glows ? 0.75f : 0.0f); - - return this; - } - - @Override - public String getLocalizedName() - { - return new TextComponentTranslation(this.getTranslationKey() + ".name").getFormattedText(); - } - - @Override - @SideOnly(Side.CLIENT) - public void getSubBlocks(final CreativeTabs tab, final NonNullList<ItemStack> list) - { - list.add(new ItemStack(this, 1, 0)); - } - - @Override - public IBlockState getStateFromMeta(final int meta) - { - return this.getDefaultState(); - } - - @Override - public int getMetaFromState(final IBlockState state) - { - return 0; - } - - @Override - protected BlockStateContainer createBlockState() - { - return new BlockStateContainer(this, BlockCustomWall.UP, BlockCustomWall.NORTH, BlockCustomWall.EAST, BlockCustomWall.WEST, BlockCustomWall.SOUTH, - BlockWall.VARIANT); - } - - @Override - public boolean canPlaceTorchOnTop(final IBlockState state, final IBlockAccess world, final BlockPos pos) - { - return true; - } - -} diff --git a/src/main/java/com/gildedgames/aether/common/blocks/construction/walls/BlockScatterglassWall.java b/src/main/java/com/gildedgames/aether/common/blocks/construction/walls/BlockScatterglassWall.java deleted file mode 100644 index b967de03cf..0000000000 --- a/src/main/java/com/gildedgames/aether/common/blocks/construction/walls/BlockScatterglassWall.java +++ /dev/null @@ -1,36 +0,0 @@ -package com.gildedgames.aether.common.blocks.construction.walls; - -import net.minecraft.block.Block; -import net.minecraft.block.state.IBlockState; -import net.minecraft.util.BlockRenderLayer; -import net.minecraft.util.EnumFacing; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.IBlockAccess; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; - -// Only exists because Aerogel walls are translucent. -public class BlockScatterglassWall extends BlockCustomWall -{ - public BlockScatterglassWall(IBlockState state, float hardness, float resistance) - { - super(state, hardness, resistance); - } - - @Override - @SideOnly(Side.CLIENT) - public BlockRenderLayer getRenderLayer() - { - return BlockRenderLayer.TRANSLUCENT; - } - - @Override - @SideOnly(Side.CLIENT) - public boolean shouldSideBeRendered(IBlockState state, IBlockAccess world, BlockPos pos, EnumFacing side) - { - IBlockState neighborState = world.getBlockState(pos.offset(side)); - Block block = neighborState.getBlock(); - - return block != this; - } -} diff --git a/src/main/java/com/gildedgames/aether/common/blocks/construction/walls/BlockSkyrootWall.java b/src/main/java/com/gildedgames/aether/common/blocks/construction/walls/BlockSkyrootWall.java deleted file mode 100644 index a18c0cc40e..0000000000 --- a/src/main/java/com/gildedgames/aether/common/blocks/construction/walls/BlockSkyrootWall.java +++ /dev/null @@ -1,71 +0,0 @@ -package com.gildedgames.aether.common.blocks.construction.walls; - -import com.gildedgames.aether.api.registrar.BlocksAether; -import net.minecraft.block.BlockWall; -import net.minecraft.block.properties.PropertyBool; -import net.minecraft.block.state.BlockStateContainer; -import net.minecraft.block.state.IBlockState; -import net.minecraft.item.Item; -import net.minecraft.util.EnumFacing; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.IBlockAccess; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; - -import java.util.Random; - -public class BlockSkyrootWall extends BlockCustomWall -{ - - public static final PropertyBool PROPERTY_GENERATED = PropertyBool.create("is_generated"); - - public BlockSkyrootWall(IBlockState state, float hardness, float resistance) - { - super(state, hardness, resistance); - this.setDefaultState(this.getBlockState().getBaseState().withProperty(PROPERTY_GENERATED, false)); - } - - // If an Aether log wall that has been generated by the world is destroyed, it drops a log, not a wall piece. - @Override - public Item getItemDropped(IBlockState state, Random rand, int fortune) - { - if (state.getValue(PROPERTY_GENERATED)) - { - return Item.getItemFromBlock(BlocksAether.skyroot_log); - } - return super.getItemDropped(state, rand, fortune); - } - - @Override - public IBlockState getStateFromMeta(int meta) - { - return this.getDefaultState(); - } - - @Override - public int getMetaFromState(IBlockState state) - { - if (state.getValue(PROPERTY_GENERATED)) - { - return 1; - } - - return 0; - } - - @Override - @SideOnly(Side.CLIENT) - public boolean shouldSideBeRendered(IBlockState state, IBlockAccess world, BlockPos pos, EnumFacing side) - { - IBlockState neighborState = world.getBlockState(pos.offset(side.getOpposite())); - - return state != neighborState && super.shouldSideBeRendered(state, world, pos, side); - } - - @Override - protected BlockStateContainer createBlockState() - { - return new BlockStateContainer(this, BlockCustomWall.UP, BlockCustomWall.NORTH, BlockCustomWall.EAST, BlockCustomWall.WEST, BlockCustomWall.SOUTH, - BlockWall.VARIANT, BlockSkyrootWall.PROPERTY_GENERATED); - } -} diff --git a/src/main/java/com/gildedgames/aether/common/blocks/containers/BlockAetherCraftingTable.java b/src/main/java/com/gildedgames/aether/common/blocks/containers/BlockAetherCraftingTable.java deleted file mode 100644 index 215dec843d..0000000000 --- a/src/main/java/com/gildedgames/aether/common/blocks/containers/BlockAetherCraftingTable.java +++ /dev/null @@ -1,41 +0,0 @@ -package com.gildedgames.aether.common.blocks.containers; - -import com.gildedgames.aether.common.AetherCore; -import com.gildedgames.aether.common.network.AetherGuiHandler; -import net.minecraft.block.BlockWorkbench; -import net.minecraft.block.SoundType; -import net.minecraft.block.state.IBlockState; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.stats.StatList; -import net.minecraft.util.EnumFacing; -import net.minecraft.util.EnumHand; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.World; - -public class BlockAetherCraftingTable extends BlockWorkbench -{ - public BlockAetherCraftingTable() - { - super(); - - this.setHardness(2.5f); - this.setSoundType(SoundType.WOOD); - } - - @Override - public boolean onBlockActivated( - final World worldIn, final BlockPos pos, final IBlockState state, final EntityPlayer playerIn, final EnumHand hand, final EnumFacing facing, - final float hitX, final float hitY, final float hitZ) - { - if (worldIn.isRemote) - { - return true; - } - else - { - playerIn.openGui(AetherCore.INSTANCE, AetherGuiHandler.CUSTOM_WORKBENCH_ID, worldIn, pos.getX(), pos.getY(), pos.getZ()); - playerIn.addStat(StatList.CRAFTING_TABLE_INTERACTION); - return true; - } - } -} diff --git a/src/main/java/com/gildedgames/aether/common/blocks/containers/BlockAetherTeleporter.java b/src/main/java/com/gildedgames/aether/common/blocks/containers/BlockAetherTeleporter.java deleted file mode 100644 index 1c67b1c0f4..0000000000 --- a/src/main/java/com/gildedgames/aether/common/blocks/containers/BlockAetherTeleporter.java +++ /dev/null @@ -1,90 +0,0 @@ -package com.gildedgames.aether.common.blocks.containers; - -import com.gildedgames.aether.common.blocks.multiblock.BlockMultiController; -import com.gildedgames.aether.common.entities.tiles.TileEntityTeleporter; -import net.minecraft.block.SoundType; -import net.minecraft.block.material.Material; -import net.minecraft.block.properties.PropertyDirection; -import net.minecraft.block.state.BlockFaceShape; -import net.minecraft.block.state.BlockStateContainer; -import net.minecraft.block.state.IBlockState; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.EnumFacing; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.IBlockAccess; -import net.minecraft.world.World; - -import javax.annotation.Nullable; - -public class BlockAetherTeleporter extends BlockMultiController -{ - - public static final PropertyDirection PROPERTY_FACING = PropertyDirection.create("facing", EnumFacing.Plane.HORIZONTAL); - - public BlockAetherTeleporter() - { - super(Material.ROCK); - - this.setHardness(2.5f); - this.setSoundType(SoundType.STONE); - this.setDefaultState(this.getBlockState().getBaseState().withProperty(PROPERTY_FACING, EnumFacing.NORTH)); - } - - @Override - public BlockFaceShape getBlockFaceShape(IBlockAccess worldIn, IBlockState state, BlockPos pos, EnumFacing face) - { - return BlockFaceShape.UNDEFINED; - } - - @Override - public IBlockState getStateForPlacement(final World world, final BlockPos pos, final EnumFacing facing, final float hitX, final float hitY, - final float hitZ, final int meta, - final EntityLivingBase placer) - { - return this.getDefaultState().withProperty(PROPERTY_FACING, placer.getHorizontalFacing()); - } - - @Override - public IBlockState getStateFromMeta(final int meta) - { - return this.getDefaultState().withProperty(PROPERTY_FACING, EnumFacing.byHorizontalIndex(meta)); - } - - @Override - public int getMetaFromState(final IBlockState state) - { - return state.getValue(PROPERTY_FACING).getIndex(); - } - - @Override - public boolean isFullCube(final IBlockState state) - { - return false; - } - - @Override - public boolean isOpaqueCube(final IBlockState p_isOpaqueCube_1_) - { - return false; - } - - @Nullable - @Override - public TileEntity createNewTileEntity(final World world, final int i) - { - return new TileEntityTeleporter(); - } - - @Override - protected BlockStateContainer createBlockState() - { - return new BlockStateContainer(this, PROPERTY_FACING); - } - - @Override - public Iterable<BlockPos.MutableBlockPos> getMultiblockVolumeIterator(BlockPos pos, World world) - { - return BlockPos.getAllInBoxMutable(pos, pos.up()); - } -} diff --git a/src/main/java/com/gildedgames/aether/common/blocks/containers/BlockAltar.java b/src/main/java/com/gildedgames/aether/common/blocks/containers/BlockAltar.java deleted file mode 100644 index 392f57a26f..0000000000 --- a/src/main/java/com/gildedgames/aether/common/blocks/containers/BlockAltar.java +++ /dev/null @@ -1,175 +0,0 @@ -package com.gildedgames.aether.common.blocks.containers; - -import com.gildedgames.aether.api.AetherAPI; -import com.gildedgames.aether.api.registrar.ItemsAether; -import com.gildedgames.aether.common.entities.tiles.TileEntityAltar; -import net.minecraft.block.Block; -import net.minecraft.block.ITileEntityProvider; -import net.minecraft.block.SoundType; -import net.minecraft.block.material.Material; -import net.minecraft.block.properties.PropertyDirection; -import net.minecraft.block.state.BlockFaceShape; -import net.minecraft.block.state.BlockStateContainer; -import net.minecraft.block.state.IBlockState; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.EnumFacing; -import net.minecraft.util.EnumHand; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.IBlockAccess; -import net.minecraft.world.World; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; - -public class BlockAltar extends Block implements ITileEntityProvider -{ - public static final PropertyDirection PROPERTY_FACING = PropertyDirection.create("facing", EnumFacing.Plane.HORIZONTAL); - - public BlockAltar() - { - super(Material.ROCK); - - this.setHardness(3.5f); - this.setResistance(17.5f); - - this.setSoundType(SoundType.STONE); - - this.setDefaultState(this.getBlockState().getBaseState().withProperty(PROPERTY_FACING, EnumFacing.NORTH)); - } - - @Override - public BlockFaceShape getBlockFaceShape(IBlockAccess worldIn, IBlockState state, BlockPos pos, EnumFacing face) - { - return BlockFaceShape.UNDEFINED; - } - - @Override - public void breakBlock(World world, BlockPos pos, IBlockState state) - { - TileEntityAltar altar = (TileEntityAltar) world.getTileEntity(pos); - altar.dropContents(); - - super.breakBlock(world, pos, state); - } - - @Override - public IBlockState getStateForPlacement(World world, BlockPos pos, EnumFacing facing, float hitX, float hitY, float hitZ, int meta, - EntityLivingBase placer) - { - return this.getDefaultState().withProperty(PROPERTY_FACING, placer.getHorizontalFacing()); - } - - @Override - public IBlockState getStateFromMeta(int meta) - { - return this.getDefaultState().withProperty(PROPERTY_FACING, EnumFacing.byHorizontalIndex(meta)); - } - - @Override - public int getMetaFromState(IBlockState state) - { - return state.getValue(PROPERTY_FACING).getIndex(); - } - - @Override - public boolean onBlockActivated(World world, BlockPos pos, IBlockState state, EntityPlayer player, EnumHand hand, EnumFacing side, - float hitX, float hitY, float hitZ) - { - if (!world.isRemote) - { - TileEntityAltar altar = (TileEntityAltar) world.getTileEntity(pos); - - ItemStack heldStack = player.inventory.getCurrentItem(); - - if (heldStack.isEmpty() || heldStack.isItemEqual(altar.getStackOnAltar())) - { - this.dropNextItem(altar, world); - } - else if (heldStack.getItem() == ItemsAether.ambrosium_shard) - { - if (altar.getAmbrosiumCount() < 16) - { - if (!player.capabilities.isCreativeMode) - { - heldStack.shrink(1); - } - - altar.addAmbrosiumShard(); - } - } - else if (AetherAPI.content().altar().getMatchingRecipeFromInput(heldStack) != null) - { - ItemStack stack = heldStack.copy(); - stack.setCount(1); - - if (!altar.getStackOnAltar().isEmpty()) - { - world.spawnEntity(altar.createEntityItemAboveAltar(altar.getStackOnAltar())); - } - - altar.setStackOnAltar(stack); - - heldStack.shrink(1); - } - - altar.attemptCrafting(); - } - - return true; - } - - private void dropNextItem(TileEntityAltar altar, World world) - { - ItemStack stack = null; - - if (!altar.getStackOnAltar().isEmpty()) - { - stack = altar.getStackOnAltar(); - - altar.setStackOnAltar(ItemStack.EMPTY); - } - else if (altar.getAmbrosiumCount() > 0) - { - stack = new ItemStack(ItemsAether.ambrosium_shard, 1); - - altar.removeAmbrosiumShard(); - } - - if (stack != null) - { - world.spawnEntity(altar.createEntityItemAboveAltar(stack)); - } - } - - @SideOnly(Side.CLIENT) - public boolean hasCustomBreakingProgress(IBlockState state) - { - return true; - } - - @Override - public boolean isOpaqueCube(IBlockState state) - { - return false; - } - - @Override - public boolean isFullCube(IBlockState state) - { - return false; - } - - @Override - public TileEntity createNewTileEntity(World world, int meta) - { - return new TileEntityAltar(); - } - - @Override - protected BlockStateContainer createBlockState() - { - return new BlockStateContainer(this, PROPERTY_FACING); - } -} diff --git a/src/main/java/com/gildedgames/aether/common/blocks/containers/BlockHolystoneFurnace.java b/src/main/java/com/gildedgames/aether/common/blocks/containers/BlockHolystoneFurnace.java deleted file mode 100644 index de9e57a19b..0000000000 --- a/src/main/java/com/gildedgames/aether/common/blocks/containers/BlockHolystoneFurnace.java +++ /dev/null @@ -1,207 +0,0 @@ -package com.gildedgames.aether.common.blocks.containers; - -import com.gildedgames.aether.common.entities.tiles.TileEntityHolystoneFurnace; -import net.minecraft.block.BlockContainer; -import net.minecraft.block.SoundType; -import net.minecraft.block.material.Material; -import net.minecraft.block.properties.PropertyBool; -import net.minecraft.block.properties.PropertyDirection; -import net.minecraft.block.state.BlockStateContainer; -import net.minecraft.block.state.IBlockState; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.init.SoundEvents; -import net.minecraft.inventory.IInventory; -import net.minecraft.inventory.InventoryHelper; -import net.minecraft.item.ItemStack; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.tileentity.TileEntityFurnace; -import net.minecraft.util.*; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.IBlockAccess; -import net.minecraft.world.World; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; - -import java.util.Random; - -public class BlockHolystoneFurnace extends BlockContainer -{ - public static final PropertyBool PROPERTY_IS_LIT = PropertyBool.create("is_lit"); - - public static final PropertyDirection PROPERTY_FACING = PropertyDirection.create("facing", EnumFacing.Plane.HORIZONTAL); - - public static final int UNLIT_META = 0, LIT_META = 1; - - public BlockHolystoneFurnace() - { - super(Material.ROCK); - - this.setHardness(3.5f); - - this.setSoundType(SoundType.STONE); - - this.setDefaultState(this.getBlockState().getBaseState() - .withProperty(PROPERTY_IS_LIT, Boolean.FALSE) - .withProperty(PROPERTY_FACING, EnumFacing.NORTH)); - } - - @Override - public boolean onBlockActivated(World world, BlockPos pos, IBlockState state, EntityPlayer player, EnumHand hand, EnumFacing facing, - float hitX, float hitY, float hitZ) - { - if (!world.isRemote) - { - TileEntity tileEntity = world.getTileEntity(pos); - - if (tileEntity instanceof TileEntityHolystoneFurnace) - { - player.displayGUIChest((IInventory) tileEntity); - } - } - - return true; - } - - @Override - public void breakBlock(World world, BlockPos pos, IBlockState state) - { - TileEntity tileEntity = world.getTileEntity(pos); - - if (tileEntity instanceof TileEntityHolystoneFurnace) - { - InventoryHelper.dropInventoryItems(world, pos, (IInventory) tileEntity); - } - - super.breakBlock(world, pos, state); - } - - @Override - @SideOnly(Side.CLIENT) - public void randomDisplayTick(IBlockState state, World world, BlockPos pos, Random rand) - { - if (state.getValue(PROPERTY_IS_LIT)) - { - EnumFacing facing = state.getValue(PROPERTY_FACING).getOpposite(); - - double x = pos.getX() + 0.5D; - double y = pos.getY() + rand.nextDouble() * 6.0D / 16.0D + 0.125D; - double z = pos.getZ() + 0.5D; - - double xOffset = 0.5D; - double zOffset = rand.nextDouble() * 0.6D - 0.3D; - - if (rand.nextDouble() < 0.1D) - { - world.playSound(pos.getX() + 0.5D, pos.getY(), pos.getZ() + 0.5D, SoundEvents.BLOCK_FURNACE_FIRE_CRACKLE, SoundCategory.BLOCKS, 1.0F, 1.0F, - false); - } - - switch (facing) - { - case WEST: - world.spawnParticle(EnumParticleTypes.SMOKE_NORMAL, x - xOffset, y, z + zOffset, 0.0D, 0.0D, 0.0D); - world.spawnParticle(EnumParticleTypes.FLAME, x - xOffset, y, z + zOffset, 0.0D, 0.0D, 0.0D); - break; - case EAST: - world.spawnParticle(EnumParticleTypes.SMOKE_NORMAL, x + xOffset, y, z + zOffset, 0.0D, 0.0D, 0.0D); - world.spawnParticle(EnumParticleTypes.FLAME, x + xOffset, y, z + zOffset, 0.0D, 0.0D, 0.0D); - break; - case NORTH: - world.spawnParticle(EnumParticleTypes.SMOKE_NORMAL, x + zOffset, y, z - xOffset, 0.0D, 0.0D, 0.0D); - world.spawnParticle(EnumParticleTypes.FLAME, x + zOffset, y, z - xOffset, 0.0D, 0.0D, 0.0D); - break; - case SOUTH: - world.spawnParticle(EnumParticleTypes.SMOKE_NORMAL, x + zOffset, y, z + xOffset, 0.0D, 0.0D, 0.0D); - world.spawnParticle(EnumParticleTypes.FLAME, x + zOffset, y, z + xOffset, 0.0D, 0.0D, 0.0D); - } - } - } - - @Override - public EnumBlockRenderType getRenderType(IBlockState state) - { - return EnumBlockRenderType.MODEL; - } - - @Override - public boolean isOpaqueCube(IBlockState state) - { - return true; - } - - @Override - public boolean isFullCube(IBlockState state) - { - return true; - } - - @Override - public int getLightValue(IBlockState state, IBlockAccess world, BlockPos pos) - { - return state.getValue(PROPERTY_IS_LIT) ? 13 : 0; - } - - @Override - public IBlockState getStateForPlacement(World world, BlockPos pos, EnumFacing facing, float hitX, float hitY, float hitZ, int meta, - EntityLivingBase placer) - { - return this.getDefaultState().withProperty(PROPERTY_FACING, placer.getHorizontalFacing()); - } - - @Override - public void onBlockPlacedBy(World worldIn, BlockPos pos, IBlockState state, EntityLivingBase placer, ItemStack stack) - { - worldIn.setBlockState(pos, state.withProperty(PROPERTY_FACING, placer.getHorizontalFacing())); - - if (stack.hasDisplayName()) - { - TileEntity tileentity = worldIn.getTileEntity(pos); - - if (tileentity instanceof TileEntityHolystoneFurnace) - { - ((TileEntityHolystoneFurnace)tileentity).setCustomInventoryName(stack.getDisplayName()); - } - } - } - - @Override - public int getMetaFromState(IBlockState state) - { - int meta = state.getValue(PROPERTY_FACING).getIndex(); - - if (state.getValue(PROPERTY_IS_LIT)) - { - meta |= 8; - } - - return meta; - } - - @Override - public IBlockState getStateFromMeta(int meta) - { - boolean isLit = (meta & 8) == 8; - - return this.getDefaultState().withProperty(PROPERTY_FACING, EnumFacing.byHorizontalIndex(meta)).withProperty(PROPERTY_IS_LIT, isLit); - } - - @Override - protected BlockStateContainer createBlockState() - { - return new BlockStateContainer(this, PROPERTY_IS_LIT, PROPERTY_FACING); - } - - @Override - @SideOnly(Side.CLIENT) - public BlockRenderLayer getRenderLayer() - { - return BlockRenderLayer.CUTOUT; - } - - @Override - public TileEntity createNewTileEntity(World world, int meta) - { - return new TileEntityHolystoneFurnace(); - } -} diff --git a/src/main/java/com/gildedgames/aether/common/blocks/containers/BlockIcestoneCooler.java b/src/main/java/com/gildedgames/aether/common/blocks/containers/BlockIcestoneCooler.java deleted file mode 100644 index 381cd1b156..0000000000 --- a/src/main/java/com/gildedgames/aether/common/blocks/containers/BlockIcestoneCooler.java +++ /dev/null @@ -1,148 +0,0 @@ -package com.gildedgames.aether.common.blocks.containers; - -import com.gildedgames.aether.common.AetherCore; -import com.gildedgames.aether.common.entities.tiles.TileEntityHolystoneFurnace; -import com.gildedgames.aether.common.entities.tiles.TileEntityIcestoneCooler; -import com.gildedgames.aether.common.network.AetherGuiHandler; -import net.minecraft.block.BlockContainer; -import net.minecraft.block.SoundType; -import net.minecraft.block.material.Material; -import net.minecraft.block.properties.PropertyDirection; -import net.minecraft.block.state.BlockFaceShape; -import net.minecraft.block.state.BlockStateContainer; -import net.minecraft.block.state.IBlockState; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.inventory.IInventory; -import net.minecraft.inventory.InventoryHelper; -import net.minecraft.item.ItemStack; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.EnumBlockRenderType; -import net.minecraft.util.EnumFacing; -import net.minecraft.util.EnumHand; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.IBlockAccess; -import net.minecraft.world.World; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; - -public class BlockIcestoneCooler extends BlockContainer -{ - - public static final PropertyDirection PROPERTY_FACING = PropertyDirection.create("facing", EnumFacing.Plane.HORIZONTAL); - - public BlockIcestoneCooler() - { - super(Material.ROCK); - - this.setHardness(3.5f); - this.setResistance(17.5f); - - this.setSoundType(SoundType.STONE); - - this.setDefaultState(this.getBlockState().getBaseState().withProperty(PROPERTY_FACING, EnumFacing.NORTH)); - } - - @Override - public BlockFaceShape getBlockFaceShape(IBlockAccess worldIn, IBlockState state, BlockPos pos, EnumFacing face) - { - return BlockFaceShape.UNDEFINED; - } - - @Override - public EnumBlockRenderType getRenderType(IBlockState state) - { - return EnumBlockRenderType.MODEL; - } - - @Override - public IBlockState getStateForPlacement(World world, BlockPos pos, EnumFacing facing, float hitX, float hitY, float hitZ, int meta, - EntityLivingBase placer) - { - return this.getDefaultState().withProperty(PROPERTY_FACING, placer.getHorizontalFacing()); - } - - @Override - public void onBlockPlacedBy(World worldIn, BlockPos pos, IBlockState state, EntityLivingBase placer, ItemStack stack) - { - worldIn.setBlockState(pos, state.withProperty(PROPERTY_FACING, placer.getHorizontalFacing())); - - if (stack.hasDisplayName()) - { - TileEntity tileentity = worldIn.getTileEntity(pos); - - if (tileentity instanceof TileEntityIcestoneCooler) - { - ((TileEntityIcestoneCooler)tileentity).setCustomInventoryName(stack.getDisplayName()); - } - } - } - - @Override - public boolean onBlockActivated(World world, BlockPos pos, IBlockState state, EntityPlayer player, EnumHand hand, EnumFacing facing, - float hitX, float hitY, float hitZ) - { - if (!world.isRemote) - { - player.openGui(AetherCore.INSTANCE, AetherGuiHandler.FROSTPINE_COOLER_ID, world, pos.getX(), pos.getY(), pos.getZ()); - } - - return true; - } - - @Override - public IBlockState getStateFromMeta(int meta) - { - return this.getDefaultState().withProperty(PROPERTY_FACING, EnumFacing.byHorizontalIndex(meta)); - } - - @Override - public int getMetaFromState(IBlockState state) - { - return state.getValue(PROPERTY_FACING).getIndex(); - } - - @Override - protected BlockStateContainer createBlockState() - { - return new BlockStateContainer(this, PROPERTY_FACING); - } - - @Override - public TileEntity createNewTileEntity(World world, int meta) - { - return new TileEntityIcestoneCooler(); - } - - @Override - public void breakBlock(World world, BlockPos pos, IBlockState state) - { - TileEntity tileEntity = world.getTileEntity(pos); - - if (tileEntity instanceof TileEntityIcestoneCooler) - { - InventoryHelper.dropInventoryItems(world, pos, (IInventory) tileEntity); - } - - super.breakBlock(world, pos, state); - } - - @SideOnly(Side.CLIENT) - public boolean hasCustomBreakingProgress(IBlockState state) - { - return true; - } - - @Override - public boolean isOpaqueCube(IBlockState state) - { - return false; - } - - @Override - public boolean isFullCube(IBlockState state) - { - return false; - } - -} diff --git a/src/main/java/com/gildedgames/aether/common/blocks/containers/BlockIncubator.java b/src/main/java/com/gildedgames/aether/common/blocks/containers/BlockIncubator.java deleted file mode 100644 index b23c7ec9d2..0000000000 --- a/src/main/java/com/gildedgames/aether/common/blocks/containers/BlockIncubator.java +++ /dev/null @@ -1,185 +0,0 @@ -package com.gildedgames.aether.common.blocks.containers; - -import com.gildedgames.aether.common.AetherCore; -import com.gildedgames.aether.common.entities.tiles.TileEntityIncubator; -import com.gildedgames.aether.common.entities.tiles.TileEntityMasonryBench; -import com.gildedgames.aether.common.network.AetherGuiHandler; -import net.minecraft.block.BlockContainer; -import net.minecraft.block.SoundType; -import net.minecraft.block.material.Material; -import net.minecraft.block.properties.PropertyBool; -import net.minecraft.block.properties.PropertyDirection; -import net.minecraft.block.state.BlockFaceShape; -import net.minecraft.block.state.BlockStateContainer; -import net.minecraft.block.state.IBlockState; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.inventory.IInventory; -import net.minecraft.inventory.InventoryHelper; -import net.minecraft.item.ItemStack; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.BlockRenderLayer; -import net.minecraft.util.EnumBlockRenderType; -import net.minecraft.util.EnumFacing; -import net.minecraft.util.EnumHand; -import net.minecraft.util.math.AxisAlignedBB; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.IBlockAccess; -import net.minecraft.world.World; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; - -public class BlockIncubator extends BlockContainer -{ - - public static final PropertyBool PROPERTY_IS_LIT = PropertyBool.create("is_lit"); - - public static final PropertyDirection PROPERTY_FACING = PropertyDirection.create("facing", EnumFacing.Plane.HORIZONTAL); - - public static final int UNLIT_META = 0, LIT_META = 1; - - protected static final AxisAlignedBB BOUNDS = new AxisAlignedBB(0.0D, 0.0D, 0.0D, 1.0D, 0.8D, 1.0D); - - public BlockIncubator() - { - super(Material.ROCK); - - this.setHardness(3.5f); - this.setResistance(17.5f); - - this.setSoundType(SoundType.STONE); - - this.setDefaultState(this.getBlockState().getBaseState().withProperty(PROPERTY_IS_LIT, Boolean.FALSE).withProperty(PROPERTY_FACING, EnumFacing.NORTH)); - } - - @Override - public BlockFaceShape getBlockFaceShape(IBlockAccess worldIn, IBlockState state, BlockPos pos, EnumFacing face) - { - return BlockFaceShape.UNDEFINED; - } - - @Override - public void breakBlock(World world, BlockPos pos, IBlockState state) - { - TileEntity tileEntity = world.getTileEntity(pos); - - if (tileEntity instanceof TileEntityIncubator) - { - InventoryHelper.dropInventoryItems(world, pos, (IInventory) tileEntity); - } - - super.breakBlock(world, pos, state); - } - - @Override - public boolean isOpaqueCube(IBlockState state) - { - return false; - } - - @Override - public boolean isFullCube(IBlockState state) - { - return false; - } - - @Override - @SideOnly(Side.CLIENT) - public BlockRenderLayer getRenderLayer() - { - return BlockRenderLayer.CUTOUT; - } - - @Override - public AxisAlignedBB getBoundingBox(IBlockState state, IBlockAccess source, BlockPos pos) - { - return BOUNDS; - } - - @Override - public AxisAlignedBB getCollisionBoundingBox(IBlockState state, IBlockAccess world, BlockPos pos) - { - return BOUNDS; - } - - @Override - public EnumBlockRenderType getRenderType(IBlockState state) - { - return EnumBlockRenderType.MODEL; - } - - @Override - public boolean onBlockActivated(World world, BlockPos pos, IBlockState state, EntityPlayer player, EnumHand hand, EnumFacing side, - float hitX, float hitY, float hitZ) - { - if (!world.isRemote) - { - player.openGui(AetherCore.INSTANCE, AetherGuiHandler.INCUBATOR_ID, world, pos.getX(), pos.getY(), pos.getZ()); - } - - return true; - } - - @Override - public int getLightValue(IBlockState state, IBlockAccess world, BlockPos pos) - { - return state.getValue(PROPERTY_IS_LIT) ? 13 : 0; - } - - @Override - public IBlockState getStateForPlacement(World world, BlockPos pos, EnumFacing facing, float hitX, float hitY, float hitZ, int meta, - EntityLivingBase placer) - { - return this.getDefaultState().withProperty(PROPERTY_FACING, placer.getHorizontalFacing()); - } - - @Override - public void onBlockPlacedBy(World worldIn, BlockPos pos, IBlockState state, EntityLivingBase placer, ItemStack stack) - { - worldIn.setBlockState(pos, state.withProperty(PROPERTY_FACING, placer.getHorizontalFacing())); - - if (stack.hasDisplayName()) - { - TileEntity tileentity = worldIn.getTileEntity(pos); - - if (tileentity instanceof TileEntityIncubator) - { - ((TileEntityIncubator)tileentity).setCustomInventoryName(stack.getDisplayName()); - } - } - } - - @Override - public int getMetaFromState(IBlockState state) - { - int meta = state.getValue(PROPERTY_FACING).getIndex(); - - if (state.getValue(PROPERTY_IS_LIT)) - { - meta |= 8; - } - - return meta; - } - - @Override - public IBlockState getStateFromMeta(int meta) - { - boolean isLit = (meta & 8) == 8; - - return this.getDefaultState().withProperty(PROPERTY_FACING, EnumFacing.byHorizontalIndex(meta)).withProperty(PROPERTY_IS_LIT, isLit); - } - - @Override - protected BlockStateContainer createBlockState() - { - return new BlockStateContainer(this, PROPERTY_IS_LIT, PROPERTY_FACING); - } - - @Override - public TileEntity createNewTileEntity(World world, int meta) - { - return new TileEntityIncubator(); - } - -} diff --git a/src/main/java/com/gildedgames/aether/common/blocks/containers/BlockMasonryBench.java b/src/main/java/com/gildedgames/aether/common/blocks/containers/BlockMasonryBench.java deleted file mode 100644 index 731f91a037..0000000000 --- a/src/main/java/com/gildedgames/aether/common/blocks/containers/BlockMasonryBench.java +++ /dev/null @@ -1,149 +0,0 @@ -package com.gildedgames.aether.common.blocks.containers; - -import com.gildedgames.aether.common.AetherCore; -import com.gildedgames.aether.common.entities.tiles.TileEntityHolystoneFurnace; -import com.gildedgames.aether.common.entities.tiles.TileEntityIcestoneCooler; -import com.gildedgames.aether.common.entities.tiles.TileEntityMasonryBench; -import com.gildedgames.aether.common.network.AetherGuiHandler; -import net.minecraft.block.BlockContainer; -import net.minecraft.block.SoundType; -import net.minecraft.block.material.Material; -import net.minecraft.block.properties.PropertyDirection; -import net.minecraft.block.state.BlockFaceShape; -import net.minecraft.block.state.BlockStateContainer; -import net.minecraft.block.state.IBlockState; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.inventory.IInventory; -import net.minecraft.inventory.InventoryHelper; -import net.minecraft.item.ItemStack; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.EnumBlockRenderType; -import net.minecraft.util.EnumFacing; -import net.minecraft.util.EnumHand; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.IBlockAccess; -import net.minecraft.world.World; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; - -public class BlockMasonryBench extends BlockContainer -{ - - public static final PropertyDirection PROPERTY_FACING = PropertyDirection.create("facing", EnumFacing.Plane.HORIZONTAL); - - public BlockMasonryBench() - { - super(Material.ROCK); - - this.setHardness(3.5f); - this.setResistance(17.5f); - - this.setSoundType(SoundType.STONE); - - this.setDefaultState(this.getBlockState().getBaseState().withProperty(PROPERTY_FACING, EnumFacing.NORTH)); - } - - @Override - public BlockFaceShape getBlockFaceShape(IBlockAccess worldIn, IBlockState state, BlockPos pos, EnumFacing face) - { - return BlockFaceShape.UNDEFINED; - } - - @Override - public EnumBlockRenderType getRenderType(IBlockState state) - { - return EnumBlockRenderType.MODEL; - } - - @Override - public boolean onBlockActivated(World world, BlockPos pos, IBlockState state, EntityPlayer player, EnumHand hand, EnumFacing facing, - float hitX, float hitY, float hitZ) - { - if (!world.isRemote) - { - player.openGui(AetherCore.INSTANCE, AetherGuiHandler.MASONRY_BENCH_ID, world, pos.getX(), pos.getY(), pos.getZ()); - } - - return true; - } - - @Override - public IBlockState getStateForPlacement(World world, BlockPos pos, EnumFacing facing, float hitX, float hitY, float hitZ, int meta, - EntityLivingBase placer) - { - return this.getDefaultState().withProperty(PROPERTY_FACING, placer.getHorizontalFacing()); - } - - @Override - public void onBlockPlacedBy(World worldIn, BlockPos pos, IBlockState state, EntityLivingBase placer, ItemStack stack) - { - worldIn.setBlockState(pos, state.withProperty(PROPERTY_FACING, placer.getHorizontalFacing())); - - if (stack.hasDisplayName()) - { - TileEntity tileentity = worldIn.getTileEntity(pos); - - if (tileentity instanceof TileEntityMasonryBench) - { - ((TileEntityMasonryBench)tileentity).setCustomInventoryName(stack.getDisplayName()); - } - } - } - - @Override - public int getMetaFromState(IBlockState state) - { - return state.getValue(PROPERTY_FACING).getIndex(); - } - - @Override - public IBlockState getStateFromMeta(int meta) - { - return this.getDefaultState().withProperty(PROPERTY_FACING, EnumFacing.byHorizontalIndex(meta)); - } - - @Override - protected BlockStateContainer createBlockState() - { - return new BlockStateContainer(this, PROPERTY_FACING); - } - - @Override - public TileEntity createNewTileEntity(World world, int meta) - { - return new TileEntityMasonryBench(); - } - - @Override - public void breakBlock(World world, BlockPos pos, IBlockState state) - { - TileEntity tileEntity = world.getTileEntity(pos); - - if (tileEntity instanceof TileEntityMasonryBench) - { - InventoryHelper.dropInventoryItems(world, pos, (IInventory) tileEntity); - } - - super.breakBlock(world, pos, state); - } - - @SideOnly(Side.CLIENT) - public boolean hasCustomBreakingProgress(IBlockState state) - { - return true; - } - - @Override - public boolean isOpaqueCube(IBlockState state) - { - return false; - } - - @Override - public boolean isFullCube(IBlockState state) - { - return false; - } - -} diff --git a/src/main/java/com/gildedgames/aether/common/blocks/containers/BlockPresent.java b/src/main/java/com/gildedgames/aether/common/blocks/containers/BlockPresent.java deleted file mode 100644 index f3b307996a..0000000000 --- a/src/main/java/com/gildedgames/aether/common/blocks/containers/BlockPresent.java +++ /dev/null @@ -1,208 +0,0 @@ -package com.gildedgames.aether.common.blocks.containers; - -import com.gildedgames.aether.api.registrar.BlocksAether; -import com.gildedgames.aether.api.registrar.SoundsAether; -import com.gildedgames.aether.common.blocks.IBlockWithItem; -import com.gildedgames.aether.common.entities.tiles.TileEntityPresent; -import com.gildedgames.aether.common.items.blocks.ItemBlockPresent; -import net.minecraft.block.Block; -import net.minecraft.block.BlockContainer; -import net.minecraft.block.SoundType; -import net.minecraft.block.material.Material; -import net.minecraft.block.state.BlockFaceShape; -import net.minecraft.block.state.IBlockState; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.init.Items; -import net.minecraft.item.ItemBlock; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.stats.StatList; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.EnumFacing; -import net.minecraft.util.EnumHand; -import net.minecraft.util.EnumParticleTypes; -import net.minecraft.util.SoundCategory; -import net.minecraft.util.math.AxisAlignedBB; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.Explosion; -import net.minecraft.world.IBlockAccess; -import net.minecraft.world.World; - -import javax.annotation.Nullable; - -public class BlockPresent extends BlockContainer implements IBlockWithItem -{ - - private static final AxisAlignedBB BOUNDS = new AxisAlignedBB(0.15f, 0f, 0.15f, 0.85f, 0.7f, 0.85f); - - public BlockPresent() - { - super(Material.CLOTH); - - this.setHardness(0.4F); - this.setLightOpacity(0); - this.setSoundType(SoundType.CLOTH); - } - - @Override - public BlockFaceShape getBlockFaceShape(IBlockAccess worldIn, IBlockState state, BlockPos pos, EnumFacing face) - { - return BlockFaceShape.UNDEFINED; - } - - @Override - public boolean isFullCube(IBlockState state) - { - return false; - } - - @Override - public boolean isFullBlock(IBlockState state) - { - return false; - } - - @Override - @Deprecated - public AxisAlignedBB getBoundingBox(IBlockState state, IBlockAccess source, BlockPos pos) - { - return BOUNDS; - } - - @Override - public boolean canPlaceBlockAt(World worldIn, BlockPos pos) - { - return worldIn.getBlockState(pos.down()).getMaterial().isSolid(); - } - - @Override - public void onBlockPlacedBy(World world, BlockPos pos, IBlockState state, EntityLivingBase placer, ItemStack stack) - { - if (stack.getItem() instanceof ItemBlockPresent) - { - TileEntityPresent tileEntity = (TileEntityPresent) world.getTileEntity(pos); - tileEntity.setPresentData(ItemBlockPresent.getData(stack)); - } - } - - @Override - public boolean onBlockActivated(World world, BlockPos pos, IBlockState state, EntityPlayer player, EnumHand hand, - EnumFacing side, float hitX, float hitY, float hitZ) - { - if (!world.isRemote) - { - TileEntity tileEntity = world.getTileEntity(pos); - - if (tileEntity instanceof TileEntityPresent) - { - this.destroyAndDropPresent(world, (TileEntityPresent) tileEntity, pos); - return true; - } - - return false; - } - else - { - for (int i = 0; i < 6; i++) - { - double x2 = pos.getX() + (world.rand.nextFloat() * 1.1f) - 0.05f; - double y2 = pos.getY() + (world.rand.nextFloat() * 1.1f) - 0.05f; - double z2 = pos.getZ() + (world.rand.nextFloat() * 1.1f) - 0.05f; - - world.spawnParticle(EnumParticleTypes.CLOUD, x2, y2, z2, 0.0D, 0.0D, 0.0D); - } - - world.playSound(pos.getX(), pos.getY(), pos.getZ(), SoundsAether.present_unwrap, SoundCategory.NEUTRAL, 0.5f, - 0.8f + (world.rand.nextFloat() * 0.5f), false); - - return true; - } - } - - @Override - public void neighborChanged(IBlockState state, World world, BlockPos pos, Block block, BlockPos fromPos) - { - if (!this.canPlaceBlockAt(world, pos)) - { - this.destroyPresent(world, pos); - } - - super.neighborChanged(state, world, pos, block, fromPos); - } - - private void destroyAndDropPresent(World world, TileEntityPresent tileEntity, BlockPos pos) - { - tileEntity.dropItem(); - ItemStack drop = new ItemStack(Items.PAPER, 1); - - Block.spawnAsEntity(world, pos, drop); - world.removeTileEntity(pos); - world.setBlockToAir(pos); - } - - @Override - public void breakBlock(World worldIn, BlockPos pos, IBlockState state) - { - } - - private void destroyPresent(World world, BlockPos pos) - { - TileEntity tileEntity = world.getTileEntity(pos); - - if (!(tileEntity instanceof TileEntityPresent)) - { - return; - } - - ItemBlockPresent.PresentData data = ((TileEntityPresent) tileEntity).getPresentData(); - ItemStack present = new ItemStack(BlocksAether.present); - - present.setTagCompound(new NBTTagCompound()); - - data.writeToNBT(present.getTagCompound()); - Block.spawnAsEntity(world, pos, present); - world.removeTileEntity(pos); - world.setBlockToAir(pos); - } - - @Override - public void onBlockHarvested(World world, BlockPos pos, IBlockState state, EntityPlayer player) - { - this.destroyPresent(world, pos); - } - - @Override - public void harvestBlock(World worldIn, EntityPlayer player, BlockPos pos, IBlockState state, @Nullable TileEntity te, - @Nullable ItemStack stack) - { - player.addStat(StatList.getBlockStats(this)); - player.addExhaustion(0.025F); - } - - @Override - public void onExplosionDestroy(World world, BlockPos pos, Explosion explosionIn) - { - world.removeTileEntity(pos); - world.setBlockToAir(pos); - } - - @Override - @Deprecated - public boolean isOpaqueCube(IBlockState state) - { - return false; - } - - @Override - public TileEntity createNewTileEntity(World worldIn, int meta) - { - return new TileEntityPresent(); - } - - @Override - public ItemBlock createItemBlock() - { - return new ItemBlockPresent(this); - } -} diff --git a/src/main/java/com/gildedgames/aether/common/blocks/containers/BlockSkyrootChest.java b/src/main/java/com/gildedgames/aether/common/blocks/containers/BlockSkyrootChest.java deleted file mode 100644 index 9af1d9b497..0000000000 --- a/src/main/java/com/gildedgames/aether/common/blocks/containers/BlockSkyrootChest.java +++ /dev/null @@ -1,114 +0,0 @@ -package com.gildedgames.aether.common.blocks.containers; - -import com.gildedgames.aether.common.entities.tiles.TileEntitySkyrootChest; -import net.minecraft.block.Block; -import net.minecraft.block.BlockChest; -import net.minecraft.block.SoundType; -import net.minecraft.entity.passive.EntityOcelot; -import net.minecraft.inventory.InventoryLargeChest; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.tileentity.TileEntityChest; -import net.minecraft.util.EnumFacing; -import net.minecraft.util.math.AxisAlignedBB; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.ILockableContainer; -import net.minecraft.world.World; -import net.minecraftforge.common.util.EnumHelper; - -import java.util.Iterator; - -public class BlockSkyrootChest extends BlockChest -{ - private static final BlockChest.Type TYPE = EnumHelper.addEnum(BlockChest.Type.class, "AETHER_SKYROOT", new Class<?>[0]); - - public BlockSkyrootChest() - { - super(BlockSkyrootChest.TYPE); - - this.setHardness(2.5f); - - this.setSoundType(SoundType.WOOD); - } - - @Override - public ILockableContainer getContainer(World worldIn, BlockPos pos, boolean isPlayer) - { - TileEntity tileentity = worldIn.getTileEntity(pos); - - if (tileentity instanceof TileEntitySkyrootChest) - { - ILockableContainer container = (ILockableContainer) tileentity; - - if (!this.isBlocked(worldIn, pos)) - { - for (EnumFacing facing : EnumFacing.Plane.HORIZONTAL) - { - BlockPos adjPos = pos.offset(facing); - Block adjBlock = worldIn.getBlockState(adjPos).getBlock(); - - if (adjBlock == this) - { - if (!isPlayer && this.isBlocked(worldIn, adjPos)) - { - return null; - } - - TileEntity adjTileEntity = worldIn.getTileEntity(adjPos); - - if (adjTileEntity instanceof TileEntityChest) - { - if (facing != EnumFacing.WEST && facing != EnumFacing.NORTH) - { - container = new InventoryLargeChest("container.skyroot_double_chest", container, (ILockableContainer) adjTileEntity); - } - else - { - container = new InventoryLargeChest("container.skyroot_double_chest", (ILockableContainer) adjTileEntity, container); - } - } - } - } - - return container; - } - } - - return null; - } - - private boolean isBlocked(World worldIn, BlockPos pos) - { - return this.isBelowSolidBlock(worldIn, pos) || this.isOcelotSittingOnChest(worldIn, pos); - } - - private boolean isBelowSolidBlock(World worldIn, BlockPos pos) - { - return worldIn.isSideSolid(pos.up(), EnumFacing.DOWN, false); - } - - private boolean isOcelotSittingOnChest(World worldIn, BlockPos pos) - { - Iterator<EntityOcelot> iterator = worldIn.getEntitiesWithinAABB(EntityOcelot.class, new AxisAlignedBB(pos.getX(), - pos.getY() + 1, pos.getZ(), pos.getX() + 1, pos.getY() + 2, pos.getZ() + 1)).iterator(); - - EntityOcelot ocelot; - - while (iterator.hasNext()) - { - ocelot = iterator.next(); - - if (ocelot.isSitting()) - { - return true; - } - } - - return false; - } - - @Override - public TileEntity createNewTileEntity(World world, int meta) - { - return new TileEntitySkyrootChest(); - } -} diff --git a/src/main/java/com/gildedgames/aether/common/blocks/containers/BlockWildcard.java b/src/main/java/com/gildedgames/aether/common/blocks/containers/BlockWildcard.java deleted file mode 100644 index a600cbc24e..0000000000 --- a/src/main/java/com/gildedgames/aether/common/blocks/containers/BlockWildcard.java +++ /dev/null @@ -1,103 +0,0 @@ -package com.gildedgames.aether.common.blocks.containers; - -import com.gildedgames.aether.common.entities.tiles.TileEntityWildcard; -import net.minecraft.block.BlockContainer; -import net.minecraft.block.SoundType; -import net.minecraft.block.material.Material; -import net.minecraft.block.state.IBlockState; -import net.minecraft.client.resources.I18n; -import net.minecraft.client.util.ITooltipFlag; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.BlockRenderLayer; -import net.minecraft.util.EnumBlockRenderType; -import net.minecraft.util.EnumFacing; -import net.minecraft.util.EnumHand; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.ILockableContainer; -import net.minecraft.world.World; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; - -import javax.annotation.Nullable; -import java.util.List; - -public class BlockWildcard extends BlockContainer -{ - - public BlockWildcard() - { - super(Material.ROCK); - - this.setHardness(2.5f); - - this.setSoundType(SoundType.STONE); - } - - @Override - public EnumBlockRenderType getRenderType(final IBlockState state) - { - return EnumBlockRenderType.MODEL; - } - - @Override - public boolean isOpaqueCube(final IBlockState state) - { - return false; - } - - @Override - public boolean isFullCube(final IBlockState state) - { - return true; - } - - @Override - @SideOnly(Side.CLIENT) - public BlockRenderLayer getRenderLayer() - { - return BlockRenderLayer.CUTOUT; - } - - @Override - public TileEntity createNewTileEntity(final World worldIn, final int meta) - { - return new TileEntityWildcard(); - } - - @Override - public boolean onBlockActivated( - final World world, final BlockPos pos, final IBlockState state, final EntityPlayer player, final EnumHand hand, final EnumFacing side, - final float hitX, final float hitY, final float hitZ) - { - if (world.isRemote) - { - return true; - } - - final TileEntity te = world.getTileEntity(pos); - - if (!player.isSneaking()) - { - return false; - } - - if (te instanceof ILockableContainer) - { - player.displayGUIChest((ILockableContainer) te); - - return true; - } - - return true; - } - - @Override - @SideOnly(Side.CLIENT) - public void addInformation(final ItemStack stack, @Nullable final World player, final List<String> tooltip, final ITooltipFlag advanced) - { - tooltip.add(I18n.format("aether.warning.deprecated_item")); - } - -} diff --git a/src/main/java/com/gildedgames/aether/common/blocks/decorative/BlockAgiositeDecorative.java b/src/main/java/com/gildedgames/aether/common/blocks/decorative/BlockAgiositeDecorative.java deleted file mode 100644 index afe8772a6d..0000000000 --- a/src/main/java/com/gildedgames/aether/common/blocks/decorative/BlockAgiositeDecorative.java +++ /dev/null @@ -1,39 +0,0 @@ -package com.gildedgames.aether.common.blocks.decorative; - -import com.gildedgames.aether.common.blocks.properties.BlockVariant; -import com.gildedgames.aether.common.blocks.properties.PropertyVariant; -import net.minecraft.block.SoundType; -import net.minecraft.block.material.Material; - -import javax.annotation.Nonnull; - -public class BlockAgiositeDecorative extends BlockDecorative -{ - public static final BlockVariant BASE_BRICKS = new BlockVariant(0, "base_bricks"), - BASE_PILLAR = new BlockVariant(1, "base_pillar"), - CAPSTONE_BRICKS = new BlockVariant(2, "capstone_bricks"), - CAPSTONE_PILLAR = new BlockVariant(3, "capstone_pillar"), - FLAGSTONES = new BlockVariant(4, "flagstones"), - KEYSTONE = new BlockVariant(5, "keystone"); - - public static final PropertyVariant PROPERTY_VARIANT = PropertyVariant - .create("variant", BASE_BRICKS, BASE_PILLAR, CAPSTONE_BRICKS, CAPSTONE_PILLAR, FLAGSTONES, KEYSTONE); - - public BlockAgiositeDecorative() - { - super(Material.ROCK); - - this.setHardness(1.5F); - this.setResistance(10.0F); - - this.setSoundType(SoundType.STONE); - this.setHardness(2f); - } - - @Nonnull - @Override - protected PropertyVariant getVariantProperty() - { - return PROPERTY_VARIANT; - } -} diff --git a/src/main/java/com/gildedgames/aether/common/blocks/decorative/BlockCandyCane.java b/src/main/java/com/gildedgames/aether/common/blocks/decorative/BlockCandyCane.java deleted file mode 100644 index 2f03f9ffef..0000000000 --- a/src/main/java/com/gildedgames/aether/common/blocks/decorative/BlockCandyCane.java +++ /dev/null @@ -1,205 +0,0 @@ -package com.gildedgames.aether.common.blocks.decorative; - -import com.gildedgames.aether.api.registrar.BlocksAether; -import com.gildedgames.aether.api.registrar.ItemsAether; -import net.minecraft.block.BlockRotatedPillar; -import net.minecraft.block.SoundType; -import net.minecraft.block.material.MapColor; -import net.minecraft.block.material.Material; -import net.minecraft.block.properties.PropertyEnum; -import net.minecraft.block.state.BlockStateContainer; -import net.minecraft.block.state.IBlockState; -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.init.Items; -import net.minecraft.item.EnumDyeColor; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.util.EnumFacing; -import net.minecraft.util.IStringSerializable; -import net.minecraft.util.Rotation; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.MathHelper; -import net.minecraft.world.IBlockAccess; -import net.minecraft.world.World; - -import java.util.Random; - -public class BlockCandyCane extends BlockRotatedPillar -{ - public static final PropertyEnum<BlockCandyCane.EnumAxis> BLOCK_AXIS = PropertyEnum.create("axis", BlockCandyCane.EnumAxis.class); - - public BlockCandyCane() - { - super(Material.WOOD); - this.setHardness(0.5F); - this.setSoundType(SoundType.GLASS); - } - - @Override - public IBlockState getStateForPlacement(World worldIn, BlockPos pos, EnumFacing facing, float hitX, float hitY, float hitZ, int meta, - EntityLivingBase placer) - { - return this.getStateFromMeta(meta).withProperty(BLOCK_AXIS, BlockCandyCane.EnumAxis.fromFacingAxis(facing.getAxis())); - } - - @Override - public void onEntityWalk(World world, BlockPos pos, Entity entity) - { - super.onEntityWalk(world, pos, entity); - - if (world.isRaining()) - { - entity.motionX *= 0.1D; - entity.motionZ *= 0.1D; - } - } - - @Override - public Item getItemDropped(IBlockState state, Random rand, int fortune) - { - return ItemsAether.candy_cane; - } - - @Override - public int quantityDroppedWithBonus(int fortune, Random random) - { - return MathHelper.clamp(this.quantityDropped(random) + random.nextInt(fortune + 1), 1, 4); - } - - @Override - public int quantityDropped(Random random) - { - return 2 + random.nextInt(3); - } - - @Override - public void dropBlockAsItemWithChance(World worldIn, BlockPos pos, IBlockState state, float chance, int fortune) - { - super.dropBlockAsItemWithChance(worldIn, pos, state, chance, fortune); - } - - @Override - protected ItemStack getSilkTouchDrop(IBlockState state) - { - return new ItemStack(BlocksAether.candy_cane_block); - } - - @Override - public MapColor getMapColor(IBlockState state, IBlockAccess worldIn, BlockPos pos) - { - return MapColor.getBlockColor(EnumDyeColor.RED); - } - - @Override - public IBlockState withRotation(IBlockState state, Rotation rot) - { - switch (rot) - { - case COUNTERCLOCKWISE_90: - case CLOCKWISE_90: - - switch (state.getValue(BLOCK_AXIS)) - { - case X: - return state.withProperty(BLOCK_AXIS, BlockCandyCane.EnumAxis.Z); - case Z: - return state.withProperty(BLOCK_AXIS, BlockCandyCane.EnumAxis.X); - default: - return state; - } - - default: - return state; - } - } - - @Override - public IBlockState getStateFromMeta(int meta) - { - BlockCandyCane.EnumAxis axis = BlockCandyCane.EnumAxis.NONE; - - switch (meta & 7) - { - case 1: - axis = BlockCandyCane.EnumAxis.Y; - break; - case 2: - axis = BlockCandyCane.EnumAxis.X; - break; - case 3: - axis = BlockCandyCane.EnumAxis.Z; - break; - } - - return this.getDefaultState().withProperty(BLOCK_AXIS, axis); - } - - @Override - public int getMetaFromState(IBlockState state) - { - int meta = 0; - - switch (state.getValue(BLOCK_AXIS)) - { - case Y: - meta |= 1; - break; - case X: - meta |= 2; - break; - case Z: - meta |= 3; - break; - } - - return meta; - } - - @Override - protected BlockStateContainer createBlockState() - { - return new BlockStateContainer(this, BLOCK_AXIS); - } - - public enum EnumAxis implements IStringSerializable - { - X("x"), - Y("y"), - Z("z"), - NONE("none"); - - private final String name; - - EnumAxis(String name) - { - this.name = name; - } - - public String toString() - { - return this.name; - } - - public static BlockCandyCane.EnumAxis fromFacingAxis(EnumFacing.Axis axis) - { - switch (axis) - { - case X: - return X; - case Y: - return Y; - case Z: - return Z; - default: - return NONE; - } - } - - @Override - public String getName() - { - return this.name; - } - } -} diff --git a/src/main/java/com/gildedgames/aether/common/blocks/decorative/BlockCustomPillar.java b/src/main/java/com/gildedgames/aether/common/blocks/decorative/BlockCustomPillar.java deleted file mode 100644 index eaab4d9e36..0000000000 --- a/src/main/java/com/gildedgames/aether/common/blocks/decorative/BlockCustomPillar.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.gildedgames.aether.common.blocks.decorative; - -import com.gildedgames.aether.common.blocks.util.BlockRotatable; -import net.minecraft.block.SoundType; -import net.minecraft.block.material.Material; - -public class BlockCustomPillar extends BlockRotatable -{ - public BlockCustomPillar(final Material material) - { - super(material); - } - - @Override - public BlockCustomPillar setSoundType(final SoundType type) - { - super.setSoundType(type); - - return this; - } -} diff --git a/src/main/java/com/gildedgames/aether/common/blocks/decorative/BlockDarkSkyrootDecorative.java b/src/main/java/com/gildedgames/aether/common/blocks/decorative/BlockDarkSkyrootDecorative.java deleted file mode 100644 index d96935ea03..0000000000 --- a/src/main/java/com/gildedgames/aether/common/blocks/decorative/BlockDarkSkyrootDecorative.java +++ /dev/null @@ -1,37 +0,0 @@ -package com.gildedgames.aether.common.blocks.decorative; - -import com.gildedgames.aether.common.blocks.properties.BlockVariant; -import com.gildedgames.aether.common.blocks.properties.PropertyVariant; -import net.minecraft.block.SoundType; -import net.minecraft.block.material.Material; - -public class BlockDarkSkyrootDecorative extends BlockDecorative -{ - public static final BlockVariant BASE_PLANKS = new BlockVariant(0, "base_planks"), - BASE_BEAM = new BlockVariant(1, "base_beam"), - TOP_PLANKS = new BlockVariant(2, "top_planks"), - TOP_BEAM = new BlockVariant(3, "top_beam"), - FLOORBOARDS = new BlockVariant(4, "floorboards"), - HIGHLIGHT = new BlockVariant(5, "highlight"), - TILES = new BlockVariant(6, "tiles"), - TILES_SMALL = new BlockVariant(7, "tiles_small"); - - public static final PropertyVariant PROPERTY_VARIANT = PropertyVariant - .create("variant", BASE_PLANKS, BASE_BEAM, TOP_PLANKS, TOP_BEAM, FLOORBOARDS, HIGHLIGHT, TILES, TILES_SMALL); - - public BlockDarkSkyrootDecorative() - { - super(Material.WOOD); - - this.setSoundType(SoundType.WOOD); - - this.setHardness(2f); - this.setResistance(5.0f); - } - - @Override - protected PropertyVariant getVariantProperty() - { - return PROPERTY_VARIANT; - } -} diff --git a/src/main/java/com/gildedgames/aether/common/blocks/decorative/BlockDecorative.java b/src/main/java/com/gildedgames/aether/common/blocks/decorative/BlockDecorative.java deleted file mode 100644 index 412f0c54ea..0000000000 --- a/src/main/java/com/gildedgames/aether/common/blocks/decorative/BlockDecorative.java +++ /dev/null @@ -1,86 +0,0 @@ -package com.gildedgames.aether.common.blocks.decorative; - -import com.gildedgames.aether.common.blocks.IBlockWithItem; -import com.gildedgames.aether.common.blocks.properties.BlockVariant; -import com.gildedgames.aether.common.blocks.properties.PropertyVariant; -import com.gildedgames.aether.common.blocks.util.BlockBuilder; -import com.gildedgames.aether.common.items.blocks.ItemBlockSubtypes; -import net.minecraft.block.material.Material; -import net.minecraft.block.state.BlockStateContainer; -import net.minecraft.block.state.IBlockState; -import net.minecraft.client.resources.I18n; -import net.minecraft.client.util.ITooltipFlag; -import net.minecraft.creativetab.CreativeTabs; -import net.minecraft.item.ItemBlock; -import net.minecraft.item.ItemStack; -import net.minecraft.util.NonNullList; -import net.minecraft.util.text.TextFormatting; -import net.minecraft.world.World; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; - -import javax.annotation.Nonnull; -import javax.annotation.Nullable; -import java.util.List; - -public abstract class BlockDecorative extends BlockBuilder implements IBlockWithItem -{ - public BlockDecorative(final Material material) - { - super(material); - } - - @Nonnull - protected abstract PropertyVariant getVariantProperty(); - - @Override - public int damageDropped(final IBlockState state) - { - return state.getValue(this.getVariantProperty()).getMeta(); - } - - @Override - public IBlockState getStateFromMeta(final int meta) - { - final BlockVariant variant = this.getVariantProperty().fromMeta(meta); - - return this.getDefaultState().withProperty(this.getVariantProperty(), variant); - } - - @Override - public int getMetaFromState(final IBlockState state) - { - return state.getValue(this.getVariantProperty()).getMeta(); - } - - @Override - protected BlockStateContainer createBlockState() - { - return new BlockStateContainer(this, this.getVariantProperty()); - } - - @Override - @SideOnly(Side.CLIENT) - public void getSubBlocks(final CreativeTabs tab, final NonNullList<ItemStack> list) - { - for (final BlockVariant variant : this.getVariantProperty().getAllowedValues()) - { - list.add(new ItemStack(this, 1, variant.getMeta())); - } - } - - @Override - @SideOnly(Side.CLIENT) - public void addInformation(final ItemStack stack, @Nullable final World player, final List<String> tooltip, final ITooltipFlag advanced) - { - final String name = this.getStateFromMeta(stack.getItemDamage()).getValue(this.getVariantProperty()).getName(); - - tooltip.add(TextFormatting.GRAY + I18n.format(this.getTranslationKey() + "." + name + ".name")); - } - - @Override - public ItemBlock createItemBlock() - { - return new ItemBlockSubtypes(this); - } -} diff --git a/src/main/java/com/gildedgames/aether/common/blocks/decorative/BlockFadedHolystoneDecorative.java b/src/main/java/com/gildedgames/aether/common/blocks/decorative/BlockFadedHolystoneDecorative.java deleted file mode 100644 index 705442acf9..0000000000 --- a/src/main/java/com/gildedgames/aether/common/blocks/decorative/BlockFadedHolystoneDecorative.java +++ /dev/null @@ -1,42 +0,0 @@ -package com.gildedgames.aether.common.blocks.decorative; - -import com.gildedgames.aether.common.blocks.properties.BlockVariant; -import com.gildedgames.aether.common.blocks.properties.PropertyVariant; -import net.minecraft.block.SoundType; -import net.minecraft.block.material.Material; - -import javax.annotation.Nonnull; - -public class BlockFadedHolystoneDecorative extends BlockDecorative -{ - - public static final BlockVariant BASE_BRICKS = new BlockVariant(0, "base_bricks"), - BASE_PILLAR = new BlockVariant(1, "base_pillar"), - CAPSTONE_BRICKS = new BlockVariant(2, "capstone_bricks"), - CAPSTONE_PILLAR = new BlockVariant(3, "capstone_pillar"), - FLAGSTONES = new BlockVariant(4, "flagstones"), - HEADSTONE = new BlockVariant(5, "headstone"), - KEYSTONE = new BlockVariant(6, "keystone"); - - public static final PropertyVariant PROPERTY_VARIANT = PropertyVariant - .create("variant", BASE_BRICKS, BASE_PILLAR, CAPSTONE_BRICKS, CAPSTONE_PILLAR, FLAGSTONES, HEADSTONE, KEYSTONE); - - public BlockFadedHolystoneDecorative() - { - super(Material.ROCK); - - this.setHardness(1.5F); - this.setResistance(10.0F); - - this.setSoundType(SoundType.STONE); - - this.setHarvestLevel("pickaxe", 0); - } - - @Nonnull - @Override - protected PropertyVariant getVariantProperty() - { - return PROPERTY_VARIANT; - } -} diff --git a/src/main/java/com/gildedgames/aether/common/blocks/decorative/BlockHellfirestoneDecorative.java b/src/main/java/com/gildedgames/aether/common/blocks/decorative/BlockHellfirestoneDecorative.java deleted file mode 100644 index d2b75d80a0..0000000000 --- a/src/main/java/com/gildedgames/aether/common/blocks/decorative/BlockHellfirestoneDecorative.java +++ /dev/null @@ -1,37 +0,0 @@ -package com.gildedgames.aether.common.blocks.decorative; - -import com.gildedgames.aether.common.blocks.properties.BlockVariant; -import com.gildedgames.aether.common.blocks.properties.PropertyVariant; -import net.minecraft.block.SoundType; -import net.minecraft.block.material.Material; - -public class BlockHellfirestoneDecorative extends BlockDecorative -{ - public static final BlockVariant BASE_BRICKS = new BlockVariant(0, "base_bricks"), - BASE_PILLAR = new BlockVariant(1, "base_pillar"), - CAPSTONE_BRICKS = new BlockVariant(2, "capstone_bricks"), - CAPSTONE_PILLAR = new BlockVariant(3, "capstone_pillar"), - FLAGSTONES = new BlockVariant(4, "flagstones"), - KEYSTONE = new BlockVariant(5, "keystone"); - - public static final PropertyVariant PROPERTY_VARIANT = PropertyVariant - .create("variant", BASE_BRICKS, BASE_PILLAR, CAPSTONE_BRICKS, CAPSTONE_PILLAR, FLAGSTONES, KEYSTONE); - - public BlockHellfirestoneDecorative() - { - super(Material.ROCK); - - this.setHardness(1.5F); - this.setResistance(10.0F); - - this.setSoundType(SoundType.STONE); - - this.setHarvestLevel("pickaxe", 0); - } - - @Override - protected PropertyVariant getVariantProperty() - { - return PROPERTY_VARIANT; - } -} diff --git a/src/main/java/com/gildedgames/aether/common/blocks/decorative/BlockHolystoneDecorative.java b/src/main/java/com/gildedgames/aether/common/blocks/decorative/BlockHolystoneDecorative.java deleted file mode 100644 index 69abfe01c9..0000000000 --- a/src/main/java/com/gildedgames/aether/common/blocks/decorative/BlockHolystoneDecorative.java +++ /dev/null @@ -1,38 +0,0 @@ -package com.gildedgames.aether.common.blocks.decorative; - -import com.gildedgames.aether.common.blocks.properties.BlockVariant; -import com.gildedgames.aether.common.blocks.properties.PropertyVariant; -import net.minecraft.block.SoundType; -import net.minecraft.block.material.Material; - -public class BlockHolystoneDecorative extends BlockDecorative -{ - public static final BlockVariant BASE_BRICKS = new BlockVariant(0, "base_bricks"), - BASE_PILLAR = new BlockVariant(1, "base_pillar"), - CAPSTONE_BRICKS = new BlockVariant(2, "capstone_bricks"), - CAPSTONE_PILLAR = new BlockVariant(3, "capstone_pillar"), - FLAGSTONES = new BlockVariant(4, "flagstones"), - HEADSTONE = new BlockVariant(5, "headstone"), - KEYSTONE = new BlockVariant(6, "keystone"); - - public static final PropertyVariant PROPERTY_VARIANT = PropertyVariant - .create("variant", BASE_BRICKS, BASE_PILLAR, CAPSTONE_BRICKS, CAPSTONE_PILLAR, FLAGSTONES, HEADSTONE, KEYSTONE); - - public BlockHolystoneDecorative() - { - super(Material.ROCK); - - this.setHardness(1.5F); - this.setResistance(10.0F); - - this.setSoundType(SoundType.STONE); - - this.setHarvestLevel("pickaxe", 0); - } - - @Override - protected PropertyVariant getVariantProperty() - { - return PROPERTY_VARIANT; - } -} diff --git a/src/main/java/com/gildedgames/aether/common/blocks/decorative/BlockIcestoneBricksDecorative.java b/src/main/java/com/gildedgames/aether/common/blocks/decorative/BlockIcestoneBricksDecorative.java deleted file mode 100644 index d2ef82540e..0000000000 --- a/src/main/java/com/gildedgames/aether/common/blocks/decorative/BlockIcestoneBricksDecorative.java +++ /dev/null @@ -1,37 +0,0 @@ -package com.gildedgames.aether.common.blocks.decorative; - -import com.gildedgames.aether.common.blocks.properties.BlockVariant; -import com.gildedgames.aether.common.blocks.properties.PropertyVariant; -import net.minecraft.block.SoundType; -import net.minecraft.block.material.Material; - -public class BlockIcestoneBricksDecorative extends BlockDecorative -{ - public static final BlockVariant BASE_BRICKS = new BlockVariant(0, "base_bricks"), - BASE_PILLAR = new BlockVariant(1, "base_pillar"), - CAPSTONE_BRICKS = new BlockVariant(2, "capstone_bricks"), - CAPSTONE_PILLAR = new BlockVariant(3, "capstone_pillar"), - FLAGSTONES = new BlockVariant(4, "flagstones"), - KEYSTONE = new BlockVariant(5, "keystone"); - - public static final PropertyVariant PROPERTY_VARIANT = PropertyVariant - .create("variant", BASE_BRICKS, BASE_PILLAR, CAPSTONE_BRICKS, CAPSTONE_PILLAR, FLAGSTONES, KEYSTONE); - - public BlockIcestoneBricksDecorative() - { - super(Material.ROCK); - - this.setHardness(2.0F); - this.setResistance(10.0F); - - this.setSoundType(SoundType.GLASS); - - this.setHarvestLevel("pickaxe", 0); - } - - @Override - protected PropertyVariant getVariantProperty() - { - return PROPERTY_VARIANT; - } -} diff --git a/src/main/java/com/gildedgames/aether/common/blocks/decorative/BlockLightSkyrootDecorative.java b/src/main/java/com/gildedgames/aether/common/blocks/decorative/BlockLightSkyrootDecorative.java deleted file mode 100644 index 13a7839363..0000000000 --- a/src/main/java/com/gildedgames/aether/common/blocks/decorative/BlockLightSkyrootDecorative.java +++ /dev/null @@ -1,37 +0,0 @@ -package com.gildedgames.aether.common.blocks.decorative; - -import com.gildedgames.aether.common.blocks.properties.BlockVariant; -import com.gildedgames.aether.common.blocks.properties.PropertyVariant; -import net.minecraft.block.SoundType; -import net.minecraft.block.material.Material; - -public class BlockLightSkyrootDecorative extends BlockDecorative -{ - public static final BlockVariant BASE_PLANKS = new BlockVariant(0, "base_planks"), - BASE_BEAM = new BlockVariant(1, "base_beam"), - TOP_PLANKS = new BlockVariant(2, "top_planks"), - TOP_BEAM = new BlockVariant(3, "top_beam"), - FLOORBOARDS = new BlockVariant(4, "floorboards"), - HIGHLIGHT = new BlockVariant(5, "highlight"), - TILES = new BlockVariant(6, "tiles"), - TILES_SMALL = new BlockVariant(7, "tiles_small"); - - public static final PropertyVariant PROPERTY_VARIANT = PropertyVariant - .create("variant", BASE_PLANKS, BASE_BEAM, TOP_PLANKS, TOP_BEAM, FLOORBOARDS, HIGHLIGHT, TILES, TILES_SMALL); - - public BlockLightSkyrootDecorative() - { - super(Material.WOOD); - - this.setSoundType(SoundType.WOOD); - - this.setHardness(2f); - this.setResistance(5.0f); - } - - @Override - protected PropertyVariant getVariantProperty() - { - return PROPERTY_VARIANT; - } -} diff --git a/src/main/java/com/gildedgames/aether/common/blocks/decorative/BlockQuicksoilGlassDecorative.java b/src/main/java/com/gildedgames/aether/common/blocks/decorative/BlockQuicksoilGlassDecorative.java deleted file mode 100644 index 7e9472e683..0000000000 --- a/src/main/java/com/gildedgames/aether/common/blocks/decorative/BlockQuicksoilGlassDecorative.java +++ /dev/null @@ -1,87 +0,0 @@ -package com.gildedgames.aether.common.blocks.decorative; - -import com.gildedgames.aether.common.blocks.properties.BlockVariant; -import com.gildedgames.aether.common.blocks.properties.PropertyVariant; -import net.minecraft.block.Block; -import net.minecraft.block.SoundType; -import net.minecraft.block.material.Material; -import net.minecraft.block.state.IBlockState; -import net.minecraft.util.BlockRenderLayer; -import net.minecraft.util.EnumFacing; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.IBlockAccess; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; - -import javax.annotation.Nonnull; -import java.util.Random; - -public class BlockQuicksoilGlassDecorative extends BlockDecorative -{ - public static final BlockVariant SKYROOT_FRAME = new BlockVariant(0, "skyroot_frame"), - ARKENIUM_FRAME = new BlockVariant(1, "arkenium_frame"); - - public static final PropertyVariant PROPERTY_VARIANT = PropertyVariant.create("variant", SKYROOT_FRAME, ARKENIUM_FRAME); - - public BlockQuicksoilGlassDecorative() - { - super(Material.GLASS); - - this.setHardness(0.3f); - this.setResistance(0.5f); - - this.setLightOpacity(0); - - this.setLightLevel(1f); - - this.setSoundType(SoundType.GLASS); - } - - @Nonnull - @Override - protected PropertyVariant getVariantProperty() - { - return PROPERTY_VARIANT; - } - - @Override - @SideOnly(Side.CLIENT) - public BlockRenderLayer getRenderLayer() - { - return BlockRenderLayer.TRANSLUCENT; - } - - @Override - public boolean isOpaqueCube(IBlockState state) - { - return false; - } - - @Override - public boolean isFullCube(IBlockState state) - { - return false; - } - - @Override - public int quantityDropped(Random random) - { - return 0; - } - - @Override - @SideOnly(Side.CLIENT) - public boolean shouldSideBeRendered(IBlockState blockState, IBlockAccess blockAccess, BlockPos pos, EnumFacing side) - { - IBlockState iblockstate = blockAccess.getBlockState(pos.offset(side)); - Block block = iblockstate.getBlock(); - - return block != this && super.shouldSideBeRendered(blockState, blockAccess, pos, side); - } - - @Override - protected boolean canSilkHarvest() - { - return true; - } -} diff --git a/src/main/java/com/gildedgames/aether/common/blocks/decorative/BlockQuicksoilGlassPaneDecorative.java b/src/main/java/com/gildedgames/aether/common/blocks/decorative/BlockQuicksoilGlassPaneDecorative.java deleted file mode 100644 index 06e0b7fa76..0000000000 --- a/src/main/java/com/gildedgames/aether/common/blocks/decorative/BlockQuicksoilGlassPaneDecorative.java +++ /dev/null @@ -1,112 +0,0 @@ -package com.gildedgames.aether.common.blocks.decorative; - -import com.gildedgames.aether.common.blocks.IBlockWithItem; -import com.gildedgames.aether.common.blocks.properties.BlockVariant; -import com.gildedgames.aether.common.blocks.properties.PropertyVariant; -import com.gildedgames.aether.common.items.blocks.ItemBlockSubtypes; -import net.minecraft.block.BlockPane; -import net.minecraft.block.SoundType; -import net.minecraft.block.material.Material; -import net.minecraft.block.state.BlockStateContainer; -import net.minecraft.block.state.IBlockState; -import net.minecraft.client.resources.I18n; -import net.minecraft.client.util.ITooltipFlag; -import net.minecraft.creativetab.CreativeTabs; -import net.minecraft.item.ItemBlock; -import net.minecraft.item.ItemStack; -import net.minecraft.util.BlockRenderLayer; -import net.minecraft.util.NonNullList; -import net.minecraft.util.text.TextFormatting; -import net.minecraft.world.World; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; - -import javax.annotation.Nonnull; -import javax.annotation.Nullable; -import java.util.List; - -public class BlockQuicksoilGlassPaneDecorative extends BlockPane implements IBlockWithItem -{ - public static final BlockVariant SKYROOT_FRAME = new BlockVariant(0, "skyroot_frame"), - ARKENIUM_FRAME = new BlockVariant(1, "arkenium_frame"); - - public static final PropertyVariant PROPERTY_VARIANT = PropertyVariant.create("variant", SKYROOT_FRAME, ARKENIUM_FRAME); - - public BlockQuicksoilGlassPaneDecorative() - { - super(Material.GLASS, false); - - this.setHardness(0.3f); - this.setResistance(0.5f); - - this.setLightOpacity(0); - - this.setLightLevel(1f); - - this.setSoundType(SoundType.GLASS); - } - - @Nonnull - protected PropertyVariant getVariantProperty() - { - return PROPERTY_VARIANT; - } - - @Override - public int damageDropped(final IBlockState state) - { - return state.getValue(this.getVariantProperty()).getMeta(); - } - - @Override - public IBlockState getStateFromMeta(final int meta) - { - final BlockVariant variant = this.getVariantProperty().fromMeta(meta); - - return this.getDefaultState().withProperty(this.getVariantProperty(), variant); - } - - @Override - public int getMetaFromState(final IBlockState state) - { - return state.getValue(this.getVariantProperty()).getMeta(); - } - - @Override - protected BlockStateContainer createBlockState() - { - return new BlockStateContainer(this, BlockPane.NORTH, BlockPane.SOUTH, BlockPane.EAST, BlockPane.WEST, this.getVariantProperty()); - } - - @Override - @SideOnly(Side.CLIENT) - public void getSubBlocks(final CreativeTabs tab, final NonNullList<ItemStack> list) - { - for (final BlockVariant variant : this.getVariantProperty().getAllowedValues()) - { - list.add(new ItemStack(this, 1, variant.getMeta())); - } - } - - @Override - @SideOnly(Side.CLIENT) - public void addInformation(final ItemStack stack, @Nullable final World player, final List<String> tooltip, final ITooltipFlag advanced) - { - final String name = this.getStateFromMeta(stack.getItemDamage()).getValue(this.getVariantProperty()).getName(); - - tooltip.add(TextFormatting.GRAY + I18n.format(this.getTranslationKey() + "." + name + ".name")); - } - - @Override - @SideOnly(Side.CLIENT) - public BlockRenderLayer getRenderLayer() - { - return BlockRenderLayer.TRANSLUCENT; - } - - @Override - public ItemBlock createItemBlock() - { - return new ItemBlockSubtypes(this); - } -} diff --git a/src/main/java/com/gildedgames/aether/common/blocks/decorative/BlockRockGlassDecorative.java b/src/main/java/com/gildedgames/aether/common/blocks/decorative/BlockRockGlassDecorative.java deleted file mode 100644 index 1b4730e1c6..0000000000 --- a/src/main/java/com/gildedgames/aether/common/blocks/decorative/BlockRockGlassDecorative.java +++ /dev/null @@ -1,71 +0,0 @@ -package com.gildedgames.aether.common.blocks.decorative; - -import com.gildedgames.aether.common.blocks.properties.BlockVariant; -import com.gildedgames.aether.common.blocks.properties.PropertyVariant; -import net.minecraft.block.Block; -import net.minecraft.block.SoundType; -import net.minecraft.block.material.Material; -import net.minecraft.block.state.IBlockState; -import net.minecraft.util.BlockRenderLayer; -import net.minecraft.util.EnumFacing; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.IBlockAccess; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; - -import javax.annotation.Nonnull; - -public class BlockRockGlassDecorative extends BlockDecorative -{ - public static final BlockVariant SKYROOT_FRAME = new BlockVariant(0, "skyroot_frame"), - ARKENIUM_FRAME = new BlockVariant(1, "arkenium_frame"); - - public static final PropertyVariant PROPERTY_VARIANT = PropertyVariant.create("variant", SKYROOT_FRAME, ARKENIUM_FRAME); - - public BlockRockGlassDecorative(Material material) - { - super(material); - - this.setHardness(0.3f); - this.setResistance(2000f); - - this.setLightOpacity(0); - this.setSoundType(SoundType.GLASS); - } - - @Nonnull - @Override - protected PropertyVariant getVariantProperty() - { - return PROPERTY_VARIANT; - } - - @Override - @SideOnly(Side.CLIENT) - public BlockRenderLayer getRenderLayer() - { - return BlockRenderLayer.TRANSLUCENT; - } - - @Override - public boolean isOpaqueCube(IBlockState state) - { - return false; - } - - @Override - public boolean isFullCube(IBlockState state) - { - return false; - } - - @Override - @SideOnly(Side.CLIENT) - public boolean shouldSideBeRendered(IBlockState blockState, IBlockAccess blockAccess, BlockPos pos, EnumFacing side) - { - IBlockState iblockstate = blockAccess.getBlockState(pos.offset(side)); - Block block = iblockstate.getBlock(); - - return block != this && super.shouldSideBeRendered(blockState, blockAccess, pos, side); - } -} diff --git a/src/main/java/com/gildedgames/aether/common/blocks/decorative/BlockRockGlassPaneDecorative.java b/src/main/java/com/gildedgames/aether/common/blocks/decorative/BlockRockGlassPaneDecorative.java deleted file mode 100644 index f8969aa527..0000000000 --- a/src/main/java/com/gildedgames/aether/common/blocks/decorative/BlockRockGlassPaneDecorative.java +++ /dev/null @@ -1,110 +0,0 @@ -package com.gildedgames.aether.common.blocks.decorative; - -import com.gildedgames.aether.common.blocks.IBlockWithItem; -import com.gildedgames.aether.common.blocks.properties.BlockVariant; -import com.gildedgames.aether.common.blocks.properties.PropertyVariant; -import com.gildedgames.aether.common.items.blocks.ItemBlockSubtypes; -import net.minecraft.block.BlockPane; -import net.minecraft.block.SoundType; -import net.minecraft.block.material.Material; -import net.minecraft.block.state.BlockStateContainer; -import net.minecraft.block.state.IBlockState; -import net.minecraft.client.resources.I18n; -import net.minecraft.client.util.ITooltipFlag; -import net.minecraft.creativetab.CreativeTabs; -import net.minecraft.item.ItemBlock; -import net.minecraft.item.ItemStack; -import net.minecraft.util.BlockRenderLayer; -import net.minecraft.util.NonNullList; -import net.minecraft.util.text.TextFormatting; -import net.minecraft.world.World; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; - -import javax.annotation.Nonnull; -import javax.annotation.Nullable; -import java.util.List; - -public class BlockRockGlassPaneDecorative extends BlockPane implements IBlockWithItem -{ - public static final BlockVariant SKYROOT_FRAME = new BlockVariant(0, "skyroot_frame"), - ARKENIUM_FRAME = new BlockVariant(1, "arkenium_frame"); - - public static final PropertyVariant PROPERTY_VARIANT = PropertyVariant.create("variant", SKYROOT_FRAME, ARKENIUM_FRAME); - - public BlockRockGlassPaneDecorative(Material material) - { - super(material, true); - - this.setHardness(0.3f); - this.setResistance(2000f); - - this.setLightOpacity(0); - - this.setSoundType(SoundType.GLASS); - } - - @Nonnull - protected PropertyVariant getVariantProperty() - { - return PROPERTY_VARIANT; - } - - @Override - public int damageDropped(final IBlockState state) - { - return state.getValue(this.getVariantProperty()).getMeta(); - } - - @Override - public IBlockState getStateFromMeta(final int meta) - { - final BlockVariant variant = this.getVariantProperty().fromMeta(meta); - - return this.getDefaultState().withProperty(this.getVariantProperty(), variant); - } - - @Override - public int getMetaFromState(final IBlockState state) - { - return state.getValue(this.getVariantProperty()).getMeta(); - } - - @Override - protected BlockStateContainer createBlockState() - { - return new BlockStateContainer(this, BlockPane.NORTH, BlockPane.SOUTH, BlockPane.EAST, BlockPane.WEST, this.getVariantProperty()); - } - - @Override - @SideOnly(Side.CLIENT) - public void getSubBlocks(final CreativeTabs tab, final NonNullList<ItemStack> list) - { - for (final BlockVariant variant : this.getVariantProperty().getAllowedValues()) - { - list.add(new ItemStack(this, 1, variant.getMeta())); - } - } - - @Override - @SideOnly(Side.CLIENT) - public void addInformation(final ItemStack stack, @Nullable final World player, final List<String> tooltip, final ITooltipFlag advanced) - { - final String name = this.getStateFromMeta(stack.getItemDamage()).getValue(this.getVariantProperty()).getName(); - - tooltip.add(TextFormatting.GRAY + I18n.format(this.getTranslationKey() + "." + name + ".name")); - } - - @Override - @SideOnly(Side.CLIENT) - public BlockRenderLayer getRenderLayer() - { - return BlockRenderLayer.TRANSLUCENT; - } - - @Override - public ItemBlock createItemBlock() - { - return new ItemBlockSubtypes(this); - } -} diff --git a/src/main/java/com/gildedgames/aether/common/blocks/decorative/BlockSentrystoneDecorative.java b/src/main/java/com/gildedgames/aether/common/blocks/decorative/BlockSentrystoneDecorative.java deleted file mode 100644 index a8e7285c6b..0000000000 --- a/src/main/java/com/gildedgames/aether/common/blocks/decorative/BlockSentrystoneDecorative.java +++ /dev/null @@ -1,38 +0,0 @@ -package com.gildedgames.aether.common.blocks.decorative; - -import com.gildedgames.aether.common.blocks.properties.BlockVariant; -import com.gildedgames.aether.common.blocks.properties.PropertyVariant; -import net.minecraft.block.SoundType; -import net.minecraft.block.material.Material; - -public class BlockSentrystoneDecorative extends BlockDecorative -{ - public static final BlockVariant BASE_BRICKS = new BlockVariant(0, "base_bricks"), - BASE_PILLAR = new BlockVariant(1, "base_pillar"), - CAPSTONE_BRICKS = new BlockVariant(2, "capstone_bricks"), - CAPSTONE_PILLAR = new BlockVariant(3, "capstone_pillar"), - FLAGSTONES = new BlockVariant(4, "flagstones"), - LIGHTSTONE = new BlockVariant(5, "lightstone"), - KEYSTONE = new BlockVariant(6, "keystone"); - - public static final PropertyVariant PROPERTY_VARIANT = PropertyVariant - .create("variant", BASE_BRICKS, BASE_PILLAR, CAPSTONE_BRICKS, CAPSTONE_PILLAR, FLAGSTONES, LIGHTSTONE, KEYSTONE); - - public BlockSentrystoneDecorative() - { - super(Material.ROCK); - - this.setHardness(1.5F); - this.setResistance(10.0F); - - this.setSoundType(SoundType.STONE); - - this.setHarvestLevel("pickaxe", 0); - } - - @Override - protected PropertyVariant getVariantProperty() - { - return PROPERTY_VARIANT; - } -} diff --git a/src/main/java/com/gildedgames/aether/common/blocks/decorative/BlockSentrystoneDecorativeLit.java b/src/main/java/com/gildedgames/aether/common/blocks/decorative/BlockSentrystoneDecorativeLit.java deleted file mode 100644 index 98b192f16d..0000000000 --- a/src/main/java/com/gildedgames/aether/common/blocks/decorative/BlockSentrystoneDecorativeLit.java +++ /dev/null @@ -1,37 +0,0 @@ -package com.gildedgames.aether.common.blocks.decorative; - -import com.gildedgames.aether.common.blocks.properties.BlockVariant; -import com.gildedgames.aether.common.blocks.properties.PropertyVariant; -import net.minecraft.block.SoundType; -import net.minecraft.block.material.Material; - -public class BlockSentrystoneDecorativeLit extends BlockDecorative -{ - public static final BlockVariant BASE_BRICKS = new BlockVariant(0, "base_bricks"), - BASE_PILLAR = new BlockVariant(1, "base_pillar"), - CAPSTONE_BRICKS = new BlockVariant(2, "capstone_bricks"), - CAPSTONE_PILLAR = new BlockVariant(3, "capstone_pillar"), - LIGHTSTONE = new BlockVariant(4, "lightstone"), - KEYSTONE = new BlockVariant(5, "keystone"); - - public static final PropertyVariant PROPERTY_VARIANT = PropertyVariant - .create("variant", BASE_BRICKS, BASE_PILLAR, CAPSTONE_BRICKS, CAPSTONE_PILLAR, LIGHTSTONE, KEYSTONE); - - public BlockSentrystoneDecorativeLit() - { - super(Material.ROCK); - - this.setHardness(1.5F); - this.setResistance(10.0F); - - this.setSoundType(SoundType.STONE); - - this.setHarvestLevel("pickaxe", 0); - } - - @Override - protected PropertyVariant getVariantProperty() - { - return PROPERTY_VARIANT; - } -} diff --git a/src/main/java/com/gildedgames/aether/common/blocks/decorative/BlockSkyrootDecorative.java b/src/main/java/com/gildedgames/aether/common/blocks/decorative/BlockSkyrootDecorative.java deleted file mode 100644 index 70f81d1a5a..0000000000 --- a/src/main/java/com/gildedgames/aether/common/blocks/decorative/BlockSkyrootDecorative.java +++ /dev/null @@ -1,37 +0,0 @@ -package com.gildedgames.aether.common.blocks.decorative; - -import com.gildedgames.aether.common.blocks.properties.BlockVariant; -import com.gildedgames.aether.common.blocks.properties.PropertyVariant; -import net.minecraft.block.SoundType; -import net.minecraft.block.material.Material; - -public class BlockSkyrootDecorative extends BlockDecorative -{ - public static final BlockVariant BASE_PLANKS = new BlockVariant(0, "base_planks"), - BASE_BEAM = new BlockVariant(1, "base_beam"), - TOP_PLANKS = new BlockVariant(2, "top_planks"), - TOP_BEAM = new BlockVariant(3, "top_beam"), - FLOORBOARDS = new BlockVariant(4, "floorboards"), - HIGHLIGHT = new BlockVariant(5, "highlight"), - TILES = new BlockVariant(6, "tiles"), - TILES_SMALL = new BlockVariant(7, "tiles_small"); - - public static final PropertyVariant PROPERTY_VARIANT = PropertyVariant - .create("variant", BASE_PLANKS, BASE_BEAM, TOP_PLANKS, TOP_BEAM, FLOORBOARDS, HIGHLIGHT, TILES, TILES_SMALL); - - public BlockSkyrootDecorative() - { - super(Material.WOOD); - - this.setSoundType(SoundType.WOOD); - - this.setHardness(2f); - this.setResistance(5.0f); - } - - @Override - protected PropertyVariant getVariantProperty() - { - return PROPERTY_VARIANT; - } -} diff --git a/src/main/java/com/gildedgames/aether/common/blocks/decorative/BlockTherastoneDecorative.java b/src/main/java/com/gildedgames/aether/common/blocks/decorative/BlockTherastoneDecorative.java deleted file mode 100644 index 1b91f0b1d5..0000000000 --- a/src/main/java/com/gildedgames/aether/common/blocks/decorative/BlockTherastoneDecorative.java +++ /dev/null @@ -1,38 +0,0 @@ -package com.gildedgames.aether.common.blocks.decorative; - -import com.gildedgames.aether.common.blocks.properties.BlockVariant; -import com.gildedgames.aether.common.blocks.properties.PropertyVariant; -import net.minecraft.block.SoundType; -import net.minecraft.block.material.Material; - -public class BlockTherastoneDecorative extends BlockDecorative -{ - public static final BlockVariant BASE_BRICKS = new BlockVariant(0, "base_bricks"), - BASE_PILLAR = new BlockVariant(1, "base_pillar"), - CAPSTONE_BRICKS = new BlockVariant(2, "capstone_bricks"), - CAPSTONE_PILLAR = new BlockVariant(3, "capstone_pillar"), - FLAGSTONES = new BlockVariant(4, "flagstones"), - HEADSTONE = new BlockVariant(5, "headstone"), - KEYSTONE = new BlockVariant(6, "keystone"); - - public static final PropertyVariant PROPERTY_VARIANT = - PropertyVariant.create("variant", BASE_BRICKS, BASE_PILLAR, CAPSTONE_BRICKS, CAPSTONE_PILLAR, FLAGSTONES, HEADSTONE, KEYSTONE); - - public BlockTherastoneDecorative() - { - super(Material.ROCK); - - this.setHardness(1.5F); - this.setResistance(10.0F); - - this.setSoundType(SoundType.STONE); - - this.setHarvestLevel("pickaxe", 0); - } - - @Override - protected PropertyVariant getVariantProperty() - { - return PROPERTY_VARIANT; - } -} diff --git a/src/main/java/com/gildedgames/aether/common/blocks/decorative/BlockTherawoodDecorative.java b/src/main/java/com/gildedgames/aether/common/blocks/decorative/BlockTherawoodDecorative.java deleted file mode 100644 index 9923a3d1e1..0000000000 --- a/src/main/java/com/gildedgames/aether/common/blocks/decorative/BlockTherawoodDecorative.java +++ /dev/null @@ -1,35 +0,0 @@ -package com.gildedgames.aether.common.blocks.decorative; - -import com.gildedgames.aether.common.blocks.properties.BlockVariant; -import com.gildedgames.aether.common.blocks.properties.PropertyVariant; -import net.minecraft.block.SoundType; -import net.minecraft.block.material.Material; - -public class BlockTherawoodDecorative extends BlockDecorative -{ - public static final BlockVariant BASE_PLANKS = new BlockVariant(0, "base_planks"), - BASE_BEAM = new BlockVariant(1, "base_beam"), - TOP_PLANKS = new BlockVariant(2, "top_planks"), - TOP_BEAM = new BlockVariant(3, "top_beam"), - FLOORBOARDS = new BlockVariant(4, "floorboards"), - HIGHLIGHT = new BlockVariant(5, "highlight"); - - public static final PropertyVariant PROPERTY_VARIANT = PropertyVariant - .create("variant", BASE_PLANKS, BASE_BEAM, TOP_PLANKS, TOP_BEAM, FLOORBOARDS, HIGHLIGHT); - - public BlockTherawoodDecorative() - { - super(Material.WOOD); - - this.setSoundType(SoundType.WOOD); - - this.setHardness(2f); - this.setResistance(5.0f); - } - - @Override - protected PropertyVariant getVariantProperty() - { - return PROPERTY_VARIANT; - } -} diff --git a/src/main/java/com/gildedgames/aether/common/blocks/multiblock/BlockMultiBase.java b/src/main/java/com/gildedgames/aether/common/blocks/multiblock/BlockMultiBase.java deleted file mode 100644 index 5f95d0609b..0000000000 --- a/src/main/java/com/gildedgames/aether/common/blocks/multiblock/BlockMultiBase.java +++ /dev/null @@ -1,95 +0,0 @@ -package com.gildedgames.aether.common.blocks.multiblock; - -import com.gildedgames.aether.api.world.IWorldObjectHoverable; -import com.gildedgames.aether.common.entities.tiles.multiblock.ITileEntityMultiblock; -import net.minecraft.block.BlockContainer; -import net.minecraft.block.material.Material; -import net.minecraft.block.state.IBlockState; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.EnumFacing; -import net.minecraft.util.EnumHand; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.RayTraceResult; -import net.minecraft.util.text.ITextComponent; -import net.minecraft.world.World; - -public abstract class BlockMultiBase extends BlockContainer implements IWorldObjectHoverable -{ - public BlockMultiBase(Material material) - { - super(material); - } - - @Override - public boolean onBlockActivated(World worldIn, BlockPos pos, IBlockState state, EntityPlayer playerIn, EnumHand hand, EnumFacing facing, - float hitX, float hitY, float hitZ) - { - if (worldIn.isRemote) - { - return true; - } - - TileEntity entity = worldIn.getTileEntity(pos); - - if (entity instanceof ITileEntityMultiblock) - { - ((ITileEntityMultiblock) entity).onInteract(playerIn); - } - - return true; - } - - @Override - public void breakBlock(World worldIn, BlockPos pos, IBlockState state) - { - TileEntity te = worldIn.getTileEntity(pos); - - if (te instanceof ITileEntityMultiblock) - { - ITileEntityMultiblock controller = (ITileEntityMultiblock) te; - - controller.onDestroyed(); - } - - super.breakBlock(worldIn, pos, state); - } - - @Override - public boolean isOpaqueCube(IBlockState state) - { - return false; - } - - @Override - public abstract TileEntity createNewTileEntity(World worldIn, int meta); - - @Override - public ItemStack getPickBlock(IBlockState state, RayTraceResult target, World world, BlockPos pos, EntityPlayer player) - { - TileEntity te = world.getTileEntity(pos); - - if (te instanceof ITileEntityMultiblock) - { - ITileEntityMultiblock controller = (ITileEntityMultiblock) te; - - return controller.getPickedStack(world, pos, state); - } - - return super.getPickBlock(state, target, world, pos, player); - } - - @Override - public ITextComponent getHoverText(World world, RayTraceResult result) - { - TileEntity entity = world.getTileEntity(result.getBlockPos()); - - if (entity instanceof IWorldObjectHoverable) - { - return ((IWorldObjectHoverable) entity).getHoverText(world, result); - } - - return null; - } -} diff --git a/src/main/java/com/gildedgames/aether/common/blocks/multiblock/BlockMultiController.java b/src/main/java/com/gildedgames/aether/common/blocks/multiblock/BlockMultiController.java deleted file mode 100644 index 137f4709f0..0000000000 --- a/src/main/java/com/gildedgames/aether/common/blocks/multiblock/BlockMultiController.java +++ /dev/null @@ -1,57 +0,0 @@ -package com.gildedgames.aether.common.blocks.multiblock; - -import com.gildedgames.aether.common.entities.tiles.multiblock.TileEntityMultiblockController; -import net.minecraft.block.material.Material; -import net.minecraft.block.state.IBlockState; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.EnumBlockRenderType; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.World; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; - -public abstract class BlockMultiController extends BlockMultiBase -{ - protected BlockMultiController(Material material) - { - super(material); - } - - public abstract Iterable<BlockPos.MutableBlockPos> getMultiblockVolumeIterator(BlockPos pos, World world); - - @Override - public boolean canPlaceBlockAt(World world, BlockPos placePos) - { - for (BlockPos pos : this.getMultiblockVolumeIterator(placePos, world)) - { - IBlockState state = world.getBlockState(pos); - - if (!state.getBlock().isReplaceable(world, pos)) - { - return false; - } - } - - return true; - } - - @Override - public void onBlockAdded(World world, BlockPos pos, IBlockState state) - { - TileEntity te = world.getTileEntity(pos); - - if (te instanceof TileEntityMultiblockController) - { - TileEntityMultiblockController controller = (TileEntityMultiblockController) te; - - controller.rebuild(); - } - } - - @Override - @SideOnly(Side.CLIENT) - public EnumBlockRenderType getRenderType(IBlockState state) - { - return EnumBlockRenderType.INVISIBLE; - } -} diff --git a/src/main/java/com/gildedgames/aether/common/blocks/multiblock/BlockMultiDummy.java b/src/main/java/com/gildedgames/aether/common/blocks/multiblock/BlockMultiDummy.java deleted file mode 100644 index 0aea972118..0000000000 --- a/src/main/java/com/gildedgames/aether/common/blocks/multiblock/BlockMultiDummy.java +++ /dev/null @@ -1,35 +0,0 @@ -package com.gildedgames.aether.common.blocks.multiblock; - -import com.gildedgames.aether.common.blocks.IInternalBlock; -import com.gildedgames.aether.common.entities.tiles.multiblock.TileEntityMultiblockDummy; -import net.minecraft.block.material.Material; -import net.minecraft.block.state.IBlockState; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.EnumBlockRenderType; -import net.minecraft.world.World; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; - -public class BlockMultiDummy extends BlockMultiBase implements IInternalBlock -{ - public BlockMultiDummy() - { - super(Material.ROCK); - - this.setBlockUnbreakable(); - this.setResistance(6000000.0F); - } - - @Override - @SideOnly(Side.CLIENT) - public EnumBlockRenderType getRenderType(IBlockState state) - { - return EnumBlockRenderType.INVISIBLE; - } - - @Override - public TileEntity createNewTileEntity(World worldIn, int meta) - { - return new TileEntityMultiblockDummy(); - } -} diff --git a/src/main/java/com/gildedgames/aether/common/blocks/multiblock/BlockMultiDummyHalf.java b/src/main/java/com/gildedgames/aether/common/blocks/multiblock/BlockMultiDummyHalf.java deleted file mode 100644 index d42cab074c..0000000000 --- a/src/main/java/com/gildedgames/aether/common/blocks/multiblock/BlockMultiDummyHalf.java +++ /dev/null @@ -1,82 +0,0 @@ -package com.gildedgames.aether.common.blocks.multiblock; - -import com.gildedgames.aether.common.blocks.IInternalBlock; -import com.gildedgames.aether.common.entities.tiles.multiblock.TileEntityMultiblockDummy; -import net.minecraft.block.material.Material; -import net.minecraft.block.state.BlockFaceShape; -import net.minecraft.block.state.IBlockState; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.EnumBlockRenderType; -import net.minecraft.util.EnumFacing; -import net.minecraft.util.math.AxisAlignedBB; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.IBlockAccess; -import net.minecraft.world.World; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; - -public class BlockMultiDummyHalf extends BlockMultiBase implements IInternalBlock -{ - - protected static final AxisAlignedBB AABB = new AxisAlignedBB(0.0D, 0.0D, 0.0D, 1.0D, 0.5D, 1.0D); - - public BlockMultiDummyHalf() - { - super(Material.ROCK); - - this.setBlockUnbreakable(); - this.setResistance(6000000.0F); - this.setLightOpacity(0); - } - - @Override - @SideOnly(Side.CLIENT) - public EnumBlockRenderType getRenderType(final IBlockState state) - { - return EnumBlockRenderType.INVISIBLE; - } - - @Override - public TileEntity createNewTileEntity(final World worldIn, final int meta) - { - return new TileEntityMultiblockDummy(); - } - - @Override - public AxisAlignedBB getBoundingBox(final IBlockState state, final IBlockAccess source, final BlockPos pos) - { - return AABB; - } - - @Override - @Deprecated - public boolean isFullBlock(final IBlockState state) - { - return false; - } - - @Override - public boolean isFullCube(final IBlockState state) - { - return false; - } - - @Override - public boolean isOpaqueCube(final IBlockState state) - { - return false; - } - - @Override - public boolean doesSideBlockRendering(final IBlockState state, final IBlockAccess world, final BlockPos pos, final EnumFacing face) - { - return false; - } - - @Override - public BlockFaceShape getBlockFaceShape(IBlockAccess worldIn, IBlockState state, BlockPos pos, EnumFacing face) - { - return BlockFaceShape.UNDEFINED; - } - -} diff --git a/src/main/java/com/gildedgames/aether/common/blocks/natural/BlockAercloud.java b/src/main/java/com/gildedgames/aether/common/blocks/natural/BlockAercloud.java deleted file mode 100644 index 0232f6d3f8..0000000000 --- a/src/main/java/com/gildedgames/aether/common/blocks/natural/BlockAercloud.java +++ /dev/null @@ -1,267 +0,0 @@ -package com.gildedgames.aether.common.blocks.natural; - -import com.gildedgames.aether.api.registrar.BlocksAether; -import com.gildedgames.aether.api.registrar.SoundsAether; -import com.gildedgames.aether.common.blocks.IBlockMultiName; -import com.gildedgames.aether.common.blocks.properties.BlockVariant; -import com.gildedgames.aether.common.blocks.properties.PropertyVariant; -import net.minecraft.block.Block; -import net.minecraft.block.SoundType; -import net.minecraft.block.material.MapColor; -import net.minecraft.block.material.Material; -import net.minecraft.block.properties.PropertyEnum; -import net.minecraft.block.state.BlockFaceShape; -import net.minecraft.block.state.BlockStateContainer; -import net.minecraft.block.state.IBlockState; -import net.minecraft.creativetab.CreativeTabs; -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraft.util.*; -import net.minecraft.util.math.AxisAlignedBB; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.IBlockAccess; -import net.minecraft.world.World; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; - -import java.util.Random; - -public class BlockAercloud extends Block implements IBlockMultiName -{ - public static final BlockVariant - COLD_AERCLOUD = new BlockVariant(0, "cold"), - BLUE_AERCLOUD = new BlockVariant(1, "blue"), - GREEN_AERCLOUD = new BlockVariant(2, "green"), - GOLDEN_AERCLOUD = new BlockVariant(3, "golden"), - STORM_AERCLOUD = new BlockVariant(4, "storm"), - PURPLE_AERCLOUD = new BlockVariant(5, "purple"); - - public static final PropertyVariant PROPERTY_VARIANT = PropertyVariant - .create("variant", COLD_AERCLOUD, BLUE_AERCLOUD, GREEN_AERCLOUD, GOLDEN_AERCLOUD, STORM_AERCLOUD, PURPLE_AERCLOUD); - - public static final PropertyEnum<EnumFacing> PROPERTY_FACING = PropertyEnum.create("facing", EnumFacing.class); - - private static final AxisAlignedBB AERCLOUD_AABB = new AxisAlignedBB(0.0D, 0.0D, 0.0D, 1.0D, 0.3D, 1.0D); - - public BlockAercloud() - { - super(Material.CLOTH); - - this.setSoundType(SoundType.CLOTH); - - this.setHardness(0.2f); - this.setLightOpacity(0); - - this.setDefaultState(this.getBlockState().getBaseState().withProperty(PROPERTY_VARIANT, COLD_AERCLOUD).withProperty(PROPERTY_FACING, EnumFacing.NORTH)); - } - - public static IBlockState getAercloudState(final BlockVariant variant) - { - return BlocksAether.aercloud.getDefaultState().withProperty(BlockAercloud.PROPERTY_VARIANT, variant); - } - - @Override - @SideOnly(Side.CLIENT) - public void getSubBlocks(final CreativeTabs tab, final NonNullList<ItemStack> list) - { - for (final BlockVariant variant : PROPERTY_VARIANT.getAllowedValues()) - { - list.add(new ItemStack(this, 1, variant.getMeta())); - } - } - - @Override - @SideOnly(Side.CLIENT) - public BlockRenderLayer getRenderLayer() - { - return BlockRenderLayer.TRANSLUCENT; - } - - @Override - @SideOnly(Side.CLIENT) - public boolean shouldSideBeRendered(final IBlockState state, final IBlockAccess world, final BlockPos pos, final EnumFacing side) - { - final IBlockState offsetState = world.getBlockState(pos.offset(side)); - - final Block block = offsetState.getBlock(); - - if (block == this) - { - if (state.getValue(PROPERTY_VARIANT) != offsetState.getValue(PROPERTY_VARIANT)) - { - return true; - } - } - - return block != this && super.shouldSideBeRendered(state, world, pos, side); - } - - @Override - public void onFallenUpon(final World worldIn, final BlockPos pos, final Entity entityIn, final float fallDistance) - { - entityIn.fallDistance = 0; - } - - @Override - public void onEntityCollision(final World world, final BlockPos pos, final IBlockState state, final Entity entity) - { - entity.fallDistance = 0; - - final boolean canCollide = !entity.isSneaking() && !(entity instanceof EntityPlayer && ((EntityPlayer) entity).capabilities.isFlying); - - final BlockVariant variant = state.getValue(PROPERTY_VARIANT); - - if (!canCollide || variant == COLD_AERCLOUD || variant == STORM_AERCLOUD) - { - if (entity.motionY < 0.0D) - { - entity.motionY *= 0.005D; - } - } - else if (variant == BLUE_AERCLOUD) - { - if (entity.world.isRemote) - { - world.playSound(pos.getX(), pos.getY(), pos.getZ(), SoundsAether.aercloud_bounce, SoundCategory.BLOCKS, 0.8f, - 0.9f + (world.rand.nextFloat() * 0.2f), false); - - for (int i = 0; i < 50; i++) - { - final double x = pos.getX() + world.rand.nextDouble(); - final double y = pos.getY() + 1.0D; - final double z = pos.getZ() + world.rand.nextDouble(); - - world.spawnParticle(EnumParticleTypes.WATER_SPLASH, x, y, z, 0.0D, 0.0D, 0.0D); - } - } - - entity.motionY = 1.2D; - } - else if (variant == GREEN_AERCLOUD || variant == PURPLE_AERCLOUD) - { - final EnumFacing facing = variant == GREEN_AERCLOUD ? EnumFacing.random(world.rand) : state.getValue(PROPERTY_FACING); - - entity.motionX = facing.getXOffset() * 2.5D; - entity.motionZ = facing.getZOffset() * 2.5D; - } - else if (variant == GOLDEN_AERCLOUD) - { - entity.motionY = -1.2D; - } - } - - @Override - @SideOnly(Side.CLIENT) - public void randomDisplayTick(final IBlockState state, final World world, final BlockPos pos, final Random rand) - { - if (state.getValue(PROPERTY_VARIANT) == PURPLE_AERCLOUD) - { - final float x = pos.getX() + (rand.nextFloat() * 0.7f) + 0.15f; - final float y = pos.getY() + (rand.nextFloat() * 0.7f) + 0.15f; - final float z = pos.getZ() + (rand.nextFloat() * 0.7f) + 0.15f; - - final EnumFacing facing = state.getValue(PROPERTY_FACING); - - final float motionX = facing.getXOffset() * ((rand.nextFloat() * 0.01f) + 0.05f); - final float motionZ = facing.getZOffset() * ((rand.nextFloat() * 0.01f) + 0.05f); - - world.spawnParticle(EnumParticleTypes.CLOUD, x, y, z, motionX, 0, motionZ); - } - } - - @Override - public boolean isOpaqueCube(final IBlockState state) - { - return false; - } - - @Override - public boolean isFullCube(final IBlockState state) - { - return false; - } - - @Override - public boolean isFullBlock(final IBlockState state) - { - return false; - } - - @Override - public boolean isPassable(final IBlockAccess world, final BlockPos pos) - { - return true; - } - - @Override - public AxisAlignedBB getCollisionBoundingBox(final IBlockState state, final IBlockAccess world, final BlockPos pos) - { - final BlockVariant variant = state.getValue(PROPERTY_VARIANT); - - if (variant == BlockAercloud.COLD_AERCLOUD || variant == BlockAercloud.STORM_AERCLOUD) - { - return BlockAercloud.AERCLOUD_AABB; - } - - return Block.NULL_AABB; - } - - @Override - public IBlockState getStateFromMeta(final int meta) - { - if (meta >= PURPLE_AERCLOUD.getMeta()) - { - return this.getDefaultState().withProperty(PROPERTY_VARIANT, PURPLE_AERCLOUD) - .withProperty(PROPERTY_FACING, EnumFacing.byHorizontalIndex(meta - PURPLE_AERCLOUD.getMeta())); - } - - return this.getDefaultState().withProperty(PROPERTY_VARIANT, PROPERTY_VARIANT.fromMeta(meta)); - } - - @Override - public int getMetaFromState(final IBlockState state) - { - if (state.getValue(PROPERTY_VARIANT) == PURPLE_AERCLOUD) - { - return PURPLE_AERCLOUD.getMeta() + state.getValue(PROPERTY_FACING).getHorizontalIndex(); - } - - return state.getValue(PROPERTY_VARIANT).getMeta(); - } - - @Override - public int damageDropped(final IBlockState state) - { - return state.getValue(PROPERTY_VARIANT).getMeta(); - } - - @Override - protected BlockStateContainer createBlockState() - { - return new BlockStateContainer(this, PROPERTY_VARIANT, PROPERTY_FACING); - } - - @Override - public IBlockState getStateForPlacement(final World world, final BlockPos pos, final EnumFacing facing, final float hitX, final float hitY, - final float hitZ, final int meta, - final EntityLivingBase placer) - { - return this.getStateFromMeta(meta).withProperty(PROPERTY_FACING, placer.getHorizontalFacing().getOpposite()); - - } - - @Override - public String getTranslationKey(final ItemStack stack) - { - return PROPERTY_VARIANT.fromMeta(stack.getMetadata()).getName(); - } - - @Override - public BlockFaceShape getBlockFaceShape(IBlockAccess worldIn, IBlockState state, BlockPos pos, EnumFacing face) - { - return BlockFaceShape.UNDEFINED; - } - -} diff --git a/src/main/java/com/gildedgames/aether/common/blocks/natural/BlockAetherDirt.java b/src/main/java/com/gildedgames/aether/common/blocks/natural/BlockAetherDirt.java deleted file mode 100644 index e2ffcfdc95..0000000000 --- a/src/main/java/com/gildedgames/aether/common/blocks/natural/BlockAetherDirt.java +++ /dev/null @@ -1,77 +0,0 @@ -package com.gildedgames.aether.common.blocks.natural; - -import com.gildedgames.aether.common.blocks.IBlockMultiName; -import com.gildedgames.aether.common.blocks.properties.BlockVariant; -import com.gildedgames.aether.common.blocks.properties.PropertyVariant; -import com.gildedgames.aether.common.blocks.util.BlockBuilder; -import net.minecraft.block.SoundType; -import net.minecraft.block.material.Material; -import net.minecraft.block.state.BlockStateContainer; -import net.minecraft.block.state.IBlockState; -import net.minecraft.creativetab.CreativeTabs; -import net.minecraft.item.ItemStack; -import net.minecraft.util.NonNullList; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; - -public class BlockAetherDirt extends BlockBuilder implements IBlockMultiName -{ - - public static final BlockVariant DIRT = new BlockVariant(0, "dirt"), - COARSE_DIRT = new BlockVariant(1, "coarse_dirt"); - - public static final PropertyVariant PROPERTY_VARIANT = PropertyVariant.create("variant", DIRT, COARSE_DIRT); - - public BlockAetherDirt() - { - super(Material.GROUND); - - this.setSoundType(SoundType.GROUND); - this.setHardness(0.5f); - - this.setDefaultState(this.getBlockState().getBaseState().withProperty(PROPERTY_VARIANT, DIRT)); - } - - @Override - public int damageDropped(final IBlockState state) - { - return state.getValue(PROPERTY_VARIANT).getMeta(); - } - - @Override - @SideOnly(Side.CLIENT) - public void getSubBlocks(final CreativeTabs tab, final NonNullList<ItemStack> list) - { - for (final BlockVariant variant : PROPERTY_VARIANT.getAllowedValues()) - { - list.add(new ItemStack(this, 1, variant.getMeta())); - } - } - - @Override - public IBlockState getStateFromMeta(final int meta) - { - final BlockVariant variant = PROPERTY_VARIANT.fromMeta(meta); - - return this.getDefaultState().withProperty(PROPERTY_VARIANT, variant); - } - - @Override - public int getMetaFromState(final IBlockState state) - { - return state.getValue(PROPERTY_VARIANT).getMeta(); - } - - @Override - protected BlockStateContainer createBlockState() - { - return new BlockStateContainer(this, PROPERTY_VARIANT); - } - - @Override - public String getTranslationKey(final ItemStack stack) - { - return PROPERTY_VARIANT.fromMeta(stack.getMetadata()).getName(); - } - -} diff --git a/src/main/java/com/gildedgames/aether/common/blocks/natural/BlockAetherGrass.java b/src/main/java/com/gildedgames/aether/common/blocks/natural/BlockAetherGrass.java deleted file mode 100644 index 65dedf4172..0000000000 --- a/src/main/java/com/gildedgames/aether/common/blocks/natural/BlockAetherGrass.java +++ /dev/null @@ -1,423 +0,0 @@ -package com.gildedgames.aether.common.blocks.natural; - -import com.gildedgames.aether.api.entity.effects.IAetherStatusEffectPool; -import com.gildedgames.aether.api.entity.effects.IAetherStatusEffects; -import com.gildedgames.aether.api.registrar.BlocksAether; -import com.gildedgames.aether.api.registrar.CapabilitiesAether; -import com.gildedgames.aether.common.blocks.IBlockMultiName; -import com.gildedgames.aether.common.blocks.IBlockRadiation; -import com.gildedgames.aether.common.blocks.natural.plants.BlockAetherFlower; -import com.gildedgames.aether.common.blocks.natural.plants.BlockTallAetherGrass; -import com.gildedgames.aether.common.blocks.properties.BlockVariant; -import com.gildedgames.aether.common.blocks.properties.PropertyVariant; -import com.gildedgames.aether.common.world.biomes.forgotten_highlands.BiomeForgottenHighlands; -import net.minecraft.block.Block; -import net.minecraft.block.IGrowable; -import net.minecraft.block.SoundType; -import net.minecraft.block.material.Material; -import net.minecraft.block.properties.PropertyBool; -import net.minecraft.block.state.BlockStateContainer; -import net.minecraft.block.state.IBlockState; -import net.minecraft.creativetab.CreativeTabs; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.util.NonNullList; -import net.minecraft.util.WeightedRandom; -import net.minecraft.util.math.AxisAlignedBB; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.RayTraceResult; -import net.minecraft.world.IBlockAccess; -import net.minecraft.world.World; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; - -import java.util.List; -import java.util.Random; - -public class BlockAetherGrass extends Block implements IBlockMultiName, IGrowable, IBlockRadiation -{ - private int radiationDistance, radiationAmount, radiationRate; - - public static final BlockVariant AETHER = new BlockVariant(0, "normal"), - ENCHANTED = new BlockVariant(1, "enchanted"), - ARCTIC = new BlockVariant(2, "arctic"), - MAGNETIC = new BlockVariant(3, "magnetic"), - IRRADIATED = new BlockVariant(4, "irradiated"); - - public static final PropertyVariant PROPERTY_VARIANT = PropertyVariant.create("variant", AETHER, ENCHANTED, ARCTIC, MAGNETIC, IRRADIATED); - - public static final PropertyBool SNOWY = PropertyBool.create("snowy"); - - public BlockAetherGrass() - { - super(Material.GRASS); - - this.setSoundType(SoundType.PLANT); - - this.setHardness(0.6F); - this.setTickRandomly(true); - - this.setDefaultState(this.getBlockState().getBaseState().withProperty(PROPERTY_VARIANT, AETHER).withProperty(SNOWY, Boolean.FALSE)); - } - - @Override - @SideOnly(Side.CLIENT) - public void getSubBlocks(final CreativeTabs tab, final NonNullList<ItemStack> list) - { - for (final BlockVariant variant : PROPERTY_VARIANT.getAllowedValues()) - { - list.add(new ItemStack(this, 1, variant.getMeta())); - } - } - - @Override - public IBlockState getActualState(final IBlockState state, final IBlockAccess worldIn, final BlockPos pos) - { - final IBlockState up = worldIn.getBlockState(pos.up()); - final Block block = up.getBlock(); - - final Comparable<?> snowGrass = up.getProperties().get(BlockTallAetherGrass.TYPE); - final Comparable<?> snowFlower = up.getProperties().get(BlockAetherFlower.PROPERTY_SNOWY); - - return state.withProperty(SNOWY, - block == BlocksAether.highlands_snow || block == BlocksAether.highlands_snow_layer || (snowGrass != null && snowGrass - .equals(BlockTallAetherGrass.Type.SNOWY)) || ( - snowFlower != null && snowFlower - .equals(true))); - } - - @Override - public void onBlockAdded(World worldIn, BlockPos pos, IBlockState state) - { - if (state.getValue(PROPERTY_VARIANT) == IRRADIATED) - { - worldIn.scheduleUpdate(pos, worldIn.getBlockState(pos).getBlock(), 1); - } - } - - @Override - public void randomTick(World worldIn, BlockPos pos, IBlockState state, Random random) - { - } - - @Override - public void updateTick(final World world, final BlockPos pos, final IBlockState state, final Random rand) - { - if (state.getValue(PROPERTY_VARIANT) == IRRADIATED) - { - this.tickRadiation(world, pos, this.getRadiationDistance(), this.getRadiationAmount(), this.getRadiationRate()); - - world.scheduleUpdate(pos, world.getBlockState(pos).getBlock(), 1); - } - - if (!world.isRemote && state.getValue(PROPERTY_VARIANT) != ENCHANTED) - { - BlockPos.PooledMutableBlockPos up = BlockPos.PooledMutableBlockPos.retain(); - up.setPos(pos.getX(), pos.getY() + 1, pos.getZ()); - - if (world.getLightFromNeighbors(up) < 4 && world.getBlockState(up).getLightOpacity(world, up) > 2) - { - world.setBlockState(pos, BlocksAether.aether_dirt.getDefaultState()); - } - else - { - if (world.getLightFromNeighbors(up) >= 9) - { - for (int i = 0; i < 4; ++i) - { - final BlockPos randomNeighbor = pos.add(rand.nextInt(3) - 1, rand.nextInt(5) - 3, rand.nextInt(3) - 1); - - if (randomNeighbor.getY() >= 0 && randomNeighbor.getY() < 256 && !world.isBlockLoaded(randomNeighbor)) - { - return; - } - - final IBlockState aboveState = world.getBlockState(randomNeighbor.up()); - final IBlockState neighborState = world.getBlockState(randomNeighbor); - - if (neighborState.getBlock() == BlocksAether.aether_dirt - && neighborState.getValue(BlockAetherDirt.PROPERTY_VARIANT) == BlockAetherDirt.DIRT && - world.getLightFromNeighbors(randomNeighbor.up()) >= 4 - && aboveState.getLightOpacity(world, randomNeighbor.up()) <= 2) - { - final IBlockState grassState = this.getDefaultState().withProperty(PROPERTY_VARIANT, state.getValue(PROPERTY_VARIANT)); - - world.setBlockState(randomNeighbor, grassState); - } - } - } - } - - up.release(); - } - } - - @Override - public BlockAetherGrass setRadiationDistance(int distance) - { - this.radiationDistance = distance; - return this; - } - - @Override - public int getRadiationDistance() - { - return this.radiationDistance; - } - - @Override - public BlockAetherGrass setRadiationAmount(int amount) - { - this.radiationAmount = amount; - return this; - } - - @Override - public int getRadiationAmount() - { - return this.radiationAmount; - } - - @Override - public Block setRadiationRate(int rate) - { - this.radiationRate = rate; - return this; - } - - @Override - public int getRadiationRate() - { - return this.radiationRate; - } - - private void tickRadiation(final World world, final BlockPos pos, int radiationAmount, int radiationDistance, int radiationRate) - { - double x = pos.getX(); - double y = pos.getY(); - double z = pos.getZ(); - AxisAlignedBB axisalignedbb = (new AxisAlignedBB(x, y, z, x + 1, y + 1, z + 1)).grow(radiationDistance); - List<EntityPlayer> list = world.getEntitiesWithinAABB(EntityPlayer.class, axisalignedbb); - - for (EntityPlayer player : list) - { - IAetherStatusEffectPool statusEffectPool = player.getCapability(CapabilitiesAether.STATUS_EFFECT_POOL, null); - - if (!player.isCreative()) - { - boolean tick = world.getTotalWorldTime() % radiationRate == 0; - - if (tick) - { - if (statusEffectPool != null) - { - if (!statusEffectPool.effectExists(IAetherStatusEffects.effectTypes.IRRADIATION)) - { - statusEffectPool.applyStatusEffect(IAetherStatusEffects.effectTypes.IRRADIATION, radiationAmount); - } - else - { - statusEffectPool.modifyActiveEffectBuildup(IAetherStatusEffects.effectTypes.IRRADIATION, - statusEffectPool.getBuildupFromEffect(IAetherStatusEffects.effectTypes.IRRADIATION) + radiationAmount); - } - } - } - } - } - } - - @Override - public Item getItemDropped(final IBlockState state, final Random rand, final int fortune) - { - return Item.getItemFromBlock(BlocksAether.aether_dirt); - } - - @Override - public IBlockState getStateFromMeta(final int meta) - { - final BlockVariant variant = PROPERTY_VARIANT.fromMeta(meta); - - return this.getDefaultState().withProperty(PROPERTY_VARIANT, variant); - } - - @Override - public ItemStack getPickBlock(final IBlockState state, final RayTraceResult target, final World world, final BlockPos pos, final EntityPlayer player) - { - return new ItemStack(this, 1, state.getValue(PROPERTY_VARIANT).getMeta()); - } - - @Override - public int getMetaFromState(final IBlockState state) - { - return state.getValue(PROPERTY_VARIANT).getMeta(); - } - - @Override - protected BlockStateContainer createBlockState() - { - return new BlockStateContainer(this, SNOWY, PROPERTY_VARIANT); - } - - @Override - public String getTranslationKey(final ItemStack stack) - { - return PROPERTY_VARIANT.fromMeta(stack.getMetadata()).getName(); - } - - @Override - public boolean canGrow(final World worldIn, final BlockPos pos, final IBlockState state, final boolean isClient) - { - return true; - } - - @Override - public boolean canUseBonemeal(final World worldIn, final Random rand, final BlockPos pos, final IBlockState state) - { - return true; - } - - @Override - public void grow(final World worldIn, final Random rand, final BlockPos pos, final IBlockState state) - { - int count = 0; - - while (count < 128) - { - BlockPos nextPos = pos.up(); - int grassCount = 0; - - while (true) - { - if (grassCount < count / 16) - { - nextPos = nextPos.add(rand.nextInt(3) - 1, (rand.nextInt(3) - 1) * rand.nextInt(3) / 2, rand.nextInt(3) - 1); - - if (worldIn.getBlockState(nextPos.down()).getBlock() == BlocksAether.aether_grass && - !worldIn.getBlockState(nextPos).isNormalCube()) - { - grassCount++; - - continue; - } - } - else if (worldIn.isAirBlock(nextPos)) - { - if (rand.nextInt(8) == 0) - { - flowersForGrass(worldIn, state, pos); - plantFlower(worldIn, rand, nextPos); - clearFlower(); - } - else - { - int grassHeight = rand.nextInt(3); - - final IBlockState nextState1 = (grassHeight == 0) - ? BlocksAether.tall_aether_grass.getStateFromMeta(0) - : ((grassHeight == 1) - ? BlocksAether.tall_aether_grass.getStateFromMeta(1) - : BlocksAether.tall_aether_grass.getStateFromMeta(2) - ); - - final IBlockState nextState2 = BlocksAether.tall_aether_grass.getDefaultState(); - - if (BlocksAether.tall_aether_grass.canPlaceBlockAt(worldIn, nextPos)) - { - if (worldIn.getBiome(pos) instanceof BiomeForgottenHighlands && state.getValue(PROPERTY_VARIANT) == AETHER) - { - worldIn.setBlockState(nextPos, nextState1, 3); - } - else - { - worldIn.setBlockState(nextPos, nextState2, 3); - } - } - } - } - - ++count; - break; - } - } - } - - private List<FlowerEntry> aetherFlowers = new java.util.ArrayList<>(); - - public static class FlowerEntry extends WeightedRandom.Item - { - public final net.minecraft.block.state.IBlockState state; - - FlowerEntry(net.minecraft.block.state.IBlockState state, int weight) - { - super(weight); - this.state = state; - } - } - - private void addFlower(IBlockState state, int weight) - { - this.aetherFlowers.add(new FlowerEntry(state, weight)); - } - - private void plantFlower(World world, Random rand, BlockPos pos) - { - if (aetherFlowers.isEmpty()) return; - FlowerEntry flower = WeightedRandom.getRandomItem(rand, aetherFlowers); - if (flower.state == null) - { - return; - } - - world.setBlockState(pos, flower.state, 3); - } - - private void clearFlower() - { - this.aetherFlowers.clear(); - } - - private void flowersForGrass(World world, IBlockState state, BlockPos pos) - { - defaultGrassFlowers(); - defaultBiomeFlowers(world, state, pos); - } - - private void defaultGrassFlowers() - { - addFlower(BlocksAether.aether_flower.getDefaultState().withProperty(BlockAetherFlower.PROPERTY_VARIANT, BlockAetherFlower.PURPLE_FLOWER), 15); - addFlower(BlocksAether.aether_flower.getDefaultState().withProperty(BlockAetherFlower.PROPERTY_VARIANT, BlockAetherFlower.WHITE_ROSE), 15); - addFlower(BlocksAether.aether_flower.getDefaultState().withProperty(BlockAetherFlower.PROPERTY_VARIANT, BlockAetherFlower.BURSTBLOSSOM), 15); - addFlower(BlocksAether.neverbloom.getDefaultState(), 10); - addFlower(BlocksAether.quickshoot.getDefaultState(), 10); - addFlower(BlocksAether.pink_swingtip.getDefaultState(), 10); - addFlower(BlocksAether.green_swingtip.getDefaultState(), 10); - addFlower(BlocksAether.blue_swingtip.getDefaultState(), 10); - } - - private void defaultBiomeFlowers(World world, IBlockState state, BlockPos pos) - { - if (!world.isRemote) - { - if (state.getValue(PROPERTY_VARIANT) == ARCTIC) - { - addFlower(BlocksAether.arctic_spikespring.getDefaultState(), 12); - } - else if (state.getValue(PROPERTY_VARIANT) == IRRADIATED) - { - addFlower(BlocksAether.irradiated_flower.getDefaultState(), 12); - } - else if (state.getValue(PROPERTY_VARIANT) == AETHER) - { - if (world.getBiome(pos) instanceof BiomeForgottenHighlands) - { - addFlower(BlocksAether.forgotten_rose.getDefaultState(), 12); - } - else - { - addFlower(BlocksAether.highlands_tulips.getDefaultState(), 12); - } - } - } - } -} \ No newline at end of file diff --git a/src/main/java/com/gildedgames/aether/common/blocks/natural/BlockCloudwoolBlock.java b/src/main/java/com/gildedgames/aether/common/blocks/natural/BlockCloudwoolBlock.java deleted file mode 100644 index 5e9a68226e..0000000000 --- a/src/main/java/com/gildedgames/aether/common/blocks/natural/BlockCloudwoolBlock.java +++ /dev/null @@ -1,26 +0,0 @@ -package com.gildedgames.aether.common.blocks.natural; - -import com.gildedgames.aether.common.blocks.IBlockWithItem; -import com.gildedgames.aether.common.items.blocks.ItemBlockCloudwool; -import net.minecraft.block.Block; -import net.minecraft.block.SoundType; -import net.minecraft.block.material.Material; -import net.minecraft.item.ItemBlock; - -public class BlockCloudwoolBlock extends Block implements IBlockWithItem -{ - public BlockCloudwoolBlock() - { - super(Material.CLOTH); - - this.setHardness(0.8f); - - this.setSoundType(SoundType.CLOTH); - } - - @Override - public ItemBlock createItemBlock() - { - return new ItemBlockCloudwool(this); - } -} diff --git a/src/main/java/com/gildedgames/aether/common/blocks/natural/BlockFerrosite.java b/src/main/java/com/gildedgames/aether/common/blocks/natural/BlockFerrosite.java deleted file mode 100644 index 6dfe5bf525..0000000000 --- a/src/main/java/com/gildedgames/aether/common/blocks/natural/BlockFerrosite.java +++ /dev/null @@ -1,18 +0,0 @@ -package com.gildedgames.aether.common.blocks.natural; - -import net.minecraft.block.Block; -import net.minecraft.block.SoundType; -import net.minecraft.block.material.Material; - -public class BlockFerrosite extends Block -{ - public BlockFerrosite() - { - super(Material.ROCK); - - this.setHardness(1.5f); - this.setResistance(10.0F); - - this.setSoundType(SoundType.STONE); - } -} diff --git a/src/main/java/com/gildedgames/aether/common/blocks/natural/BlockFerrositeSand.java b/src/main/java/com/gildedgames/aether/common/blocks/natural/BlockFerrositeSand.java deleted file mode 100644 index 2c836e539a..0000000000 --- a/src/main/java/com/gildedgames/aether/common/blocks/natural/BlockFerrositeSand.java +++ /dev/null @@ -1,17 +0,0 @@ -package com.gildedgames.aether.common.blocks.natural; - -import net.minecraft.block.Block; -import net.minecraft.block.SoundType; -import net.minecraft.block.material.Material; - -public class BlockFerrositeSand extends Block -{ - public BlockFerrositeSand() - { - super(Material.SAND); - - this.setHardness(0.5f); - - this.setSoundType(SoundType.SAND); - } -} diff --git a/src/main/java/com/gildedgames/aether/common/blocks/natural/BlockFloorObject.java b/src/main/java/com/gildedgames/aether/common/blocks/natural/BlockFloorObject.java deleted file mode 100644 index e131987ba7..0000000000 --- a/src/main/java/com/gildedgames/aether/common/blocks/natural/BlockFloorObject.java +++ /dev/null @@ -1,138 +0,0 @@ -package com.gildedgames.aether.common.blocks.natural; - -import com.gildedgames.aether.api.registrar.BlocksAether; -import com.gildedgames.aether.common.blocks.IBlockWithItem; -import com.gildedgames.aether.common.blocks.util.BlockBuilder; -import com.gildedgames.aether.common.items.blocks.ItemBlockCustomSapling; -import com.gildedgames.aether.common.items.blocks.ItemBlockFloorObject; -import net.minecraft.block.Block; -import net.minecraft.block.SoundType; -import net.minecraft.block.material.Material; -import net.minecraft.block.state.BlockFaceShape; -import net.minecraft.block.state.IBlockState; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.Item; -import net.minecraft.item.ItemBlock; -import net.minecraft.util.EnumFacing; -import net.minecraft.util.math.AxisAlignedBB; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.IBlockAccess; -import net.minecraft.world.World; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; - -import javax.annotation.Nullable; -import java.util.Random; - -public class BlockFloorObject extends BlockBuilder implements IBlockWithItem -{ - - private static final AxisAlignedBB AABB = new AxisAlignedBB(0.1D, 0.0D, 0.1D, 0.9D, 0.3D, 0.9D); - - public BlockFloorObject(Material material, SoundType soundType) - { - super(material); - - this.setHardness(0.0F); - - this.setSoundType(soundType); - } - - @Override - public BlockFaceShape getBlockFaceShape(IBlockAccess worldIn, IBlockState state, BlockPos pos, EnumFacing face) - { - return BlockFaceShape.UNDEFINED; - } - @Override - public boolean isPassable(IBlockAccess world, BlockPos pos) - { - return true; - } - - @Override - public boolean isOpaqueCube(IBlockState state) - { - return false; - } - - @Override - public boolean isFullCube(IBlockState state) - { - return false; - } - - @Override - public boolean isFullBlock(IBlockState state) - { - return false; - } - - @Override - @Nullable - public AxisAlignedBB getCollisionBoundingBox(IBlockState blockState, IBlockAccess worldIn, BlockPos pos) - { - return NULL_AABB; - } - - @Override - public Item getItemDropped(IBlockState state, Random rand, int fortune) - { - return null; - } - - @Override - @SideOnly(Side.CLIENT) - public EnumOffsetType getOffsetType() - { - return EnumOffsetType.XZ; - } - - @Override - public AxisAlignedBB getBoundingBox(IBlockState state, IBlockAccess source, BlockPos pos) - { - return AABB; - } - - @Override - public boolean isReplaceable(IBlockAccess worldIn, BlockPos pos) - { - return true; - } - - @Override - public boolean canPlaceBlockAt(World world, BlockPos pos) - { - return true; - } - - @Override - public void neighborChanged(IBlockState state, World world, BlockPos pos, Block block, BlockPos fromPos) - { - this.validatePosition(world, pos); - } - - public void validatePosition(World world, BlockPos pos) - { - this.invalidateBlock(world, pos); - } - - protected void invalidateBlock(World world, BlockPos pos) - { - if (!this.canPlaceBlockAt(world, pos) || world.isAirBlock(pos.down())) - { - world.setBlockToAir(pos); - } - } - - @Override - public ItemBlock createItemBlock() - { - return new ItemBlockFloorObject(this); - } - - @Override - protected boolean canSilkHarvest() - { - return true; - } -} diff --git a/src/main/java/com/gildedgames/aether/common/blocks/natural/BlockHolystone.java b/src/main/java/com/gildedgames/aether/common/blocks/natural/BlockHolystone.java deleted file mode 100644 index 5b3e54e4f4..0000000000 --- a/src/main/java/com/gildedgames/aether/common/blocks/natural/BlockHolystone.java +++ /dev/null @@ -1,203 +0,0 @@ -package com.gildedgames.aether.common.blocks.natural; - -import com.gildedgames.aether.api.entity.effects.IAetherStatusEffectPool; -import com.gildedgames.aether.api.entity.effects.IAetherStatusEffects; -import com.gildedgames.aether.api.registrar.CapabilitiesAether; -import com.gildedgames.aether.common.blocks.IBlockMultiName; -import com.gildedgames.aether.common.blocks.IBlockRadiation; -import com.gildedgames.aether.common.blocks.properties.BlockVariant; -import com.gildedgames.aether.common.blocks.properties.PropertyVariant; -import net.minecraft.block.Block; -import net.minecraft.block.SoundType; -import net.minecraft.block.material.Material; -import net.minecraft.block.state.BlockStateContainer; -import net.minecraft.block.state.IBlockState; -import net.minecraft.creativetab.CreativeTabs; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraft.util.NonNullList; -import net.minecraft.util.math.AxisAlignedBB; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.World; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; - -import java.util.List; -import java.util.Random; - -public class BlockHolystone extends Block implements IBlockMultiName, IBlockRadiation -{ - private int radiationDistance, radiationAmount, radiationRate; - - public static final BlockVariant - NORMAL_HOLYSTONE = new BlockVariant(0, "normal"), - MOSSY_HOLYSTONE = new BlockVariant(1, "mossy"), - BLOOD_MOSS_HOLYSTONE = new BlockVariant(2, "blood_moss"), - IRRADIATED_HOLYSTONE = new BlockVariant(3, "irradiated"); - - public static final PropertyVariant PROPERTY_VARIANT = PropertyVariant.create("variant", NORMAL_HOLYSTONE, MOSSY_HOLYSTONE, BLOOD_MOSS_HOLYSTONE, IRRADIATED_HOLYSTONE); - - public BlockHolystone() - { - super(Material.ROCK); - - this.setHardness(1.5F); - this.setResistance(10.0F); - - this.setSoundType(SoundType.STONE); - this.setTickRandomly(true); - - this.setDefaultState(this.getBlockState().getBaseState().withProperty(PROPERTY_VARIANT, NORMAL_HOLYSTONE)); - } - - @Override - public void onBlockAdded(World worldIn, BlockPos pos, IBlockState state) - { - if (state.getValue(PROPERTY_VARIANT) == IRRADIATED_HOLYSTONE) - { - worldIn.scheduleUpdate(pos, worldIn.getBlockState(pos).getBlock(), 1); - } - } - - @Override - public void randomTick(World worldIn, BlockPos pos, IBlockState state, Random random) - { - } - - @Override - public void updateTick(final World world, final BlockPos pos, final IBlockState state, final Random rand) - { - if (state.getValue(PROPERTY_VARIANT) == IRRADIATED_HOLYSTONE) - { - this.tickRadiation(world, pos, this.getRadiationDistance(), this.getRadiationAmount(), this.getRadiationRate()); - - world.scheduleUpdate(pos, world.getBlockState(pos).getBlock(), 1); - } - } - - @Override - public BlockHolystone setRadiationDistance(int distance) - { - this.radiationDistance = distance; - return this; - } - - @Override - public int getRadiationDistance() - { - return this.radiationDistance; - } - - @Override - public BlockHolystone setRadiationAmount(int amount) - { - this.radiationAmount = amount; - return this; - } - - @Override - public int getRadiationAmount() - { - return this.radiationAmount; - } - - @Override - public Block setRadiationRate(int rate) - { - this.radiationRate = rate; - return this; - } - - @Override - public int getRadiationRate() - { - return this.radiationRate; - } - - private void tickRadiation(final World world, final BlockPos pos, int radiationAmount, int radiationDistance, int radiationRate) - { - double x = pos.getX(); - double y = pos.getY(); - double z = pos.getZ(); - AxisAlignedBB axisalignedbb = (new AxisAlignedBB(x, y, z, x + 1, y + 1, z + 1)).grow(radiationDistance); - List<EntityPlayer> list = world.getEntitiesWithinAABB(EntityPlayer.class, axisalignedbb); - - for (EntityPlayer player : list) - { - IAetherStatusEffectPool statusEffectPool = player.getCapability(CapabilitiesAether.STATUS_EFFECT_POOL, null); - - if (!player.isCreative()) - { - boolean tick = world.getTotalWorldTime() % radiationRate == 0; - - if (tick) - { - if (statusEffectPool != null) - { - if (!statusEffectPool.effectExists(IAetherStatusEffects.effectTypes.IRRADIATION)) - { - statusEffectPool.applyStatusEffect(IAetherStatusEffects.effectTypes.IRRADIATION, radiationAmount); - } - else - { - statusEffectPool.modifyActiveEffectBuildup(IAetherStatusEffects.effectTypes.IRRADIATION, - statusEffectPool.getBuildupFromEffect(IAetherStatusEffects.effectTypes.IRRADIATION) + radiationAmount); - } - } - } - } - } - } - - @Override - @SideOnly(Side.CLIENT) - public void getSubBlocks(final CreativeTabs tab, final NonNullList<ItemStack> list) - { - for (final BlockVariant variant : PROPERTY_VARIANT.getAllowedValues()) - { - if (variant != BLOOD_MOSS_HOLYSTONE) - { - list.add(new ItemStack(this, 1, variant.getMeta())); - } - } - } - - @Override - public float getBlockHardness(final IBlockState blockState, final World world, final BlockPos pos) - { - final IBlockState state = world.getBlockState(pos); - - return state.getBlock() == this && state.getValue(PROPERTY_VARIANT) == BLOOD_MOSS_HOLYSTONE ? -1.0f : this.blockHardness; - } - - @Override - public IBlockState getStateFromMeta(final int meta) - { - return this.getDefaultState().withProperty(PROPERTY_VARIANT, PROPERTY_VARIANT.fromMeta(meta & 7)); - } - - @Override - public int getMetaFromState(final IBlockState state) - { - return state.getValue(PROPERTY_VARIANT).getMeta(); - } - - @Override - protected BlockStateContainer createBlockState() - { - return new BlockStateContainer(this, PROPERTY_VARIANT); - } - - @Override - public int damageDropped(final IBlockState state) - { - return state.getValue(PROPERTY_VARIANT).getMeta(); - } - - @Override - public String getTranslationKey(final ItemStack stack) - { - return PROPERTY_VARIANT.fromMeta(stack.getMetadata()).getName(); - } - -} diff --git a/src/main/java/com/gildedgames/aether/common/blocks/natural/BlockIceCrystal.java b/src/main/java/com/gildedgames/aether/common/blocks/natural/BlockIceCrystal.java deleted file mode 100644 index b00106b647..0000000000 --- a/src/main/java/com/gildedgames/aether/common/blocks/natural/BlockIceCrystal.java +++ /dev/null @@ -1,287 +0,0 @@ -package com.gildedgames.aether.common.blocks.natural; - -import com.gildedgames.aether.common.blocks.IBlockMultiName; -import com.gildedgames.aether.common.blocks.properties.BlockVariant; -import com.gildedgames.aether.common.blocks.properties.PropertyVariant; -import com.gildedgames.aether.common.blocks.util.BlockBuilder; -import net.minecraft.block.Block; -import net.minecraft.block.SoundType; -import net.minecraft.block.material.Material; -import net.minecraft.block.state.BlockFaceShape; -import net.minecraft.block.state.BlockStateContainer; -import net.minecraft.block.state.IBlockState; -import net.minecraft.enchantment.EnchantmentHelper; -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.init.Blocks; -import net.minecraft.init.Enchantments; -import net.minecraft.init.SoundEvents; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.stats.StatList; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.*; -import net.minecraft.util.math.AxisAlignedBB; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.EnumSkyBlock; -import net.minecraft.world.IBlockAccess; -import net.minecraft.world.World; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; - -import javax.annotation.Nullable; -import java.util.Random; - -public class BlockIceCrystal extends BlockBuilder implements IBlockMultiName -{ - public static final int CRYSTAL_META = 0; - public static final int CRYSTAL_A_META = 1; - public static final int CRYSTAL_B_META = 2; - - public static final BlockVariant - STALAGMITE = new BlockVariant(0, "stalagmite"), - STALAGMITE_A = new BlockVariant(1, "stalagmite_a"), - STALAGMITE_B = new BlockVariant(2, "stalagmite_b"), - STALACTITE = new BlockVariant(3, "stalactite"), - STALACTITE_A = new BlockVariant(4, "stalactite_a"), - STALACTITE_B = new BlockVariant(5, "stalactite_b"); - - public static final PropertyVariant PROPERTY_VARIANT = PropertyVariant.create("variant", - STALAGMITE, STALAGMITE_A, STALAGMITE_B, STALACTITE, STALACTITE_A, STALACTITE_B); - - private static final AxisAlignedBB STALACTITE_BB = new AxisAlignedBB(0.25D, 0.25D, 0.25D, 0.75D, 1D, 0.75D); - - private static final AxisAlignedBB STALACTITE_SHORT_BB = new AxisAlignedBB(0.25D, 0.5D, 0.25F, 0.75D, 1D, 0.75D); - - private static final AxisAlignedBB STALAGMITE_BB = new AxisAlignedBB(0.25D, 0.0D, 0.25D, 0.75D, 1D, 0.75D); - - private static final AxisAlignedBB STALAGMITE_SHORT_BB = new AxisAlignedBB(0.25D, 0.0D, 0.25F, 0.75D, 0.5D, 0.75D); - - public BlockIceCrystal() - { - super(Material.GLASS); - this.setSoundType(SoundType.GLASS); - this.setHardness(0.25f); - this.setResistance(1f); - this.setTickRandomly(true); - } - - @Override - public int damageDropped(final IBlockState state) - { - return STALAGMITE.getMeta(); - } - - @Override - public IBlockState getStateFromMeta(final int meta) - { - final BlockVariant variant = PROPERTY_VARIANT.fromMeta(meta); - return this.getDefaultState().withProperty(PROPERTY_VARIANT, variant); - } - - @Override - public int getMetaFromState(final IBlockState state) - { - return state.getValue(PROPERTY_VARIANT).getMeta(); - } - - @Override - protected BlockStateContainer createBlockState() - { - return new BlockStateContainer(this, PROPERTY_VARIANT); - } - - @Override - public void updateTick(World worldIn, BlockPos pos, IBlockState state, Random rand) - { - if (worldIn.getLightFor(EnumSkyBlock.BLOCK, pos) > 11 - this.getDefaultState().getLightOpacity(worldIn, pos)) - { - worldIn.setBlockToAir(pos); - } - } - - @Override - public void harvestBlock(World worldIn, EntityPlayer player, BlockPos pos, IBlockState state, @Nullable TileEntity te, ItemStack stack) - { - player.addStat(StatList.getBlockStats(this)); - player.addExhaustion(0.005F); - - if (this.canSilkHarvest(worldIn, pos, state, player) && EnchantmentHelper.getEnchantmentLevel(Enchantments.SILK_TOUCH, stack) > 0) - { - java.util.List<ItemStack> items = new java.util.ArrayList<ItemStack>(); - ItemStack itemstack = new ItemStack(Item.getItemFromBlock(this), 1, 0); - - if (!itemstack.isEmpty()) - { - items.add(itemstack); - } - - net.minecraftforge.event.ForgeEventFactory.fireBlockHarvesting(items, worldIn, pos, state, 0, 1.0f, true, player); - for (ItemStack item : items) - { - spawnAsEntity(worldIn, pos, item); - } - } - else - { - harvesters.set(player); - int i = EnchantmentHelper.getEnchantmentLevel(Enchantments.FORTUNE, stack); - this.dropBlockAsItem(worldIn, pos, state, i); - harvesters.set(null); - } - } - - @Override - public int quantityDropped(Random random) - { - return 0; - } - - @Override - public Item getItemDropped(IBlockState state, Random rand, int fortune) - { - return null; - } - - @Override - public void onEntityWalk(World worldIn, BlockPos pos, Entity entityIn) - { - if (entityIn instanceof EntityPlayer) - { - worldIn.getBlockState(pos).getBlock().removedByPlayer(worldIn.getBlockState(pos), worldIn, pos, (EntityPlayer) entityIn, false); - if (entityIn.world.isRemote) - { - entityIn.playSound(SoundEvents.BLOCK_GLASS_BREAK, 1f, 1f); - - for (int i = 0; i < 50; i++) - { - final double x = pos.getX() + worldIn.rand.nextDouble(); - final double y = pos.getY() + 1.0D; - final double z = pos.getZ() + worldIn.rand.nextDouble(); - - worldIn.spawnParticle(EnumParticleTypes.WATER_SPLASH, x, y, z, 0.0D, 0.0D, 0.0D); - } - } - } - } - - @Override - public boolean onBlockActivated(World worldIn, BlockPos pos, IBlockState state, EntityPlayer playerIn, EnumHand hand, EnumFacing facing, float hitX, float hitY, float hitZ) - { - if (playerIn.isCreative()) - { - worldIn.setBlockState(pos, state.cycleProperty(PROPERTY_VARIANT)); - return true; - } - return false; - } - - @Override - public void neighborChanged(IBlockState state, World worldIn, BlockPos pos, Block blockIn, BlockPos fromPos) - { - - if (state.getValue(PROPERTY_VARIANT) == STALACTITE || state.getValue(PROPERTY_VARIANT) == STALACTITE_A || state.getValue(PROPERTY_VARIANT) == STALACTITE_B) - { - if (worldIn.isAirBlock(pos.up()) || worldIn.getBlockState(pos.up()).getBlock() == Blocks.WATER) - { - worldIn.setBlockToAir(pos); - } - } - if (state.getValue(PROPERTY_VARIANT) == STALAGMITE || state.getValue(PROPERTY_VARIANT) == STALAGMITE_A || state.getValue(PROPERTY_VARIANT) == STALAGMITE_B) - { - if (worldIn.isAirBlock(pos.down()) || worldIn.getBlockState(pos.down()).getBlock() == Blocks.WATER) - { - worldIn.setBlockToAir(pos); - } - } - } - - @Override - public IBlockState getStateForPlacement(World worldIn, BlockPos pos, EnumFacing facing, float hitX, float hitY, float hitZ, int meta, - EntityLivingBase placer) - { - if (hitY == 0) - { - return this.getDefaultState().withProperty(PROPERTY_VARIANT, PROPERTY_VARIANT.fromMeta(meta+3)); - } - - return this.getDefaultState().withProperty(PROPERTY_VARIANT, PROPERTY_VARIANT.fromMeta(meta)); - } - - @Override - public AxisAlignedBB getBoundingBox(IBlockState state, IBlockAccess source, BlockPos pos) - { - int meta = state.getValue(PROPERTY_VARIANT).getMeta(); - - if (meta == STALAGMITE.getMeta() || meta == STALAGMITE_A.getMeta() || meta == STALAGMITE_B.getMeta()) - { - if (meta == STALAGMITE_B.getMeta()) { - return STALAGMITE_SHORT_BB; - } - return STALAGMITE_BB; - } - - if (meta == STALACTITE_B.getMeta()) { - return STALACTITE_SHORT_BB; - } - return STALACTITE_BB; - } - - @Override - public String getTranslationKey(ItemStack stack) - { - return PROPERTY_VARIANT.fromMeta(CRYSTAL_META).getName(); - } - - @Override - @SideOnly(Side.CLIENT) - public boolean isTranslucent(IBlockState state) - { - return true; - } - - @Override - public boolean isFullBlock(IBlockState state) - { - return false; - } - - @Override - public boolean isFullCube(IBlockState state) - { - return false; - } - - @Override - public boolean isOpaqueCube(IBlockState state) - { - return false; - } - - @Override - public BlockFaceShape getBlockFaceShape(IBlockAccess worldIn, IBlockState state, BlockPos pos, EnumFacing face) - { - return BlockFaceShape.UNDEFINED; - } - - @Override - @SideOnly(Side.CLIENT) - public BlockRenderLayer getRenderLayer() - { - return BlockRenderLayer.TRANSLUCENT; - } - - @Override - @SideOnly(Side.CLIENT) - public Block.EnumOffsetType getOffsetType() - { - return EnumOffsetType.XZ; - } - - @Override - protected boolean canSilkHarvest() - { - return true; - } -} diff --git a/src/main/java/com/gildedgames/aether/common/blocks/natural/BlockIcestoneBricks.java b/src/main/java/com/gildedgames/aether/common/blocks/natural/BlockIcestoneBricks.java deleted file mode 100644 index e2f7481c7c..0000000000 --- a/src/main/java/com/gildedgames/aether/common/blocks/natural/BlockIcestoneBricks.java +++ /dev/null @@ -1,71 +0,0 @@ -package com.gildedgames.aether.common.blocks.natural; - -import net.minecraft.block.Block; -import net.minecraft.block.BlockLiquid; -import net.minecraft.block.SoundType; -import net.minecraft.block.material.Material; -import net.minecraft.block.state.IBlockState; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.init.Blocks; -import net.minecraft.item.ItemStack; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.World; - -public class BlockIcestoneBricks extends Block -{ - private static final int EFFECT_RADIUS = 3; - - public BlockIcestoneBricks() - { - super(Material.ROCK); - - this.setHardness(2.0f); - this.setResistance(10.0f); - - this.setSoundType(SoundType.GLASS); - } - - @Override - public void onBlockPlacedBy(World world, BlockPos pos, IBlockState state, EntityLivingBase placer, ItemStack stack) - { - for (int x = pos.getX() - EFFECT_RADIUS; x <= (pos.getX() + EFFECT_RADIUS); x++) - { - for (int y = pos.getY() - EFFECT_RADIUS; y <= (pos.getY() + EFFECT_RADIUS); y++) - { - for (int z = pos.getZ() - EFFECT_RADIUS; z <= (pos.getZ() + EFFECT_RADIUS); z++) - { - BlockPos newPos = new BlockPos(x, y, z); - IBlockState newState = world.getBlockState(newPos); - - IBlockState frozenState = this.getFrozenBlock(newState); - - if (frozenState != null) - { - world.setBlockState(newPos, frozenState); - } - } - } - } - } - - private IBlockState getFrozenBlock(IBlockState state) - { - Block block = state.getBlock(); - - if (block == Blocks.WATER) - { - return state.getValue(BlockLiquid.LEVEL) == 0 ? Blocks.ICE.getDefaultState() : null; - } - else if (block == Blocks.LAVA) - { - return Blocks.OBSIDIAN.getDefaultState(); - } - else if (block == Blocks.FLOWING_LAVA || block == Blocks.FLOWING_WATER) - { - return Blocks.AIR.getDefaultState(); - } - - return null; - } - -} diff --git a/src/main/java/com/gildedgames/aether/common/blocks/natural/BlockIrradiatedDust.java b/src/main/java/com/gildedgames/aether/common/blocks/natural/BlockIrradiatedDust.java deleted file mode 100644 index e9ae8c727e..0000000000 --- a/src/main/java/com/gildedgames/aether/common/blocks/natural/BlockIrradiatedDust.java +++ /dev/null @@ -1,191 +0,0 @@ -package com.gildedgames.aether.common.blocks.natural; - -import com.gildedgames.aether.api.entity.effects.IAetherStatusEffectPool; -import com.gildedgames.aether.api.entity.effects.IAetherStatusEffects; -import com.gildedgames.aether.api.registrar.CapabilitiesAether; -import com.gildedgames.aether.api.registrar.ItemsAether; -import com.gildedgames.aether.common.blocks.IBlockRadiation; -import com.gildedgames.aether.common.util.selectors.ItemEntry; -import net.minecraft.block.Block; -import net.minecraft.block.SoundType; -import net.minecraft.block.material.Material; -import net.minecraft.block.state.IBlockState; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraft.util.BlockRenderLayer; -import net.minecraft.util.WeightedRandom; -import net.minecraft.util.math.AxisAlignedBB; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.ChunkCache; -import net.minecraft.world.IBlockAccess; -import net.minecraft.world.World; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; - -import java.util.*; - -public class BlockIrradiatedDust extends Block implements IBlockRadiation -{ - private int radiationDistance, radiationAmount, radiationRate; - - private final List<ItemEntry> drops = new ArrayList<>(); - - public BlockIrradiatedDust() - { - super(Material.ROCK); - - this.setHardness(1.0f); - this.setResistance(5.0f); - this.setHarvestLevel("pickaxe", 2); - this.setLightLevel(0.4f); - this.setTickRandomly(true); - - this.useNeighborBrightness = true; - - this.setSoundType(SoundType.SAND); - } - - @Override - public void onBlockAdded(World worldIn, BlockPos pos, IBlockState state) - { - worldIn.scheduleUpdate(pos, worldIn.getBlockState(pos).getBlock(), 1); - } - - @Override - public void randomTick(World worldIn, BlockPos pos, IBlockState state, Random random) - { - } - - @Override - public void updateTick(final World world, final BlockPos pos, final IBlockState state, final Random rand) - { - this.tickRadiation(world, pos, this.getRadiationDistance(), this.getRadiationAmount(), this.getRadiationRate()); - - world.scheduleUpdate(pos, world.getBlockState(pos).getBlock(), 1); - } - - @Override - public BlockIrradiatedDust setRadiationDistance(int distance) - { - this.radiationDistance = distance; - return this; - } - - @Override - public int getRadiationDistance() - { - return this.radiationDistance; - } - - @Override - public BlockIrradiatedDust setRadiationAmount(int amount) - { - this.radiationAmount = amount; - return this; - } - - @Override - public int getRadiationAmount() - { - return this.radiationAmount; - } - - @Override - public Block setRadiationRate(int rate) - { - this.radiationRate = rate; - return this; - } - - @Override - public int getRadiationRate() - { - return this.radiationRate; - } - - private void tickRadiation(final World world, final BlockPos pos, int radiationAmount, int radiationDistance, int radiationRate) - { - double x = pos.getX(); - double y = pos.getY(); - double z = pos.getZ(); - AxisAlignedBB axisalignedbb = (new AxisAlignedBB(x, y, z, x + 1, y + 1, z + 1)).grow(radiationDistance); - List<EntityPlayer> list = world.getEntitiesWithinAABB(EntityPlayer.class, axisalignedbb); - - for (EntityPlayer player : list) - { - IAetherStatusEffectPool statusEffectPool = player.getCapability(CapabilitiesAether.STATUS_EFFECT_POOL, null); - - if (!player.isCreative()) - { - boolean tick = world.getTotalWorldTime() % radiationRate == 0; - - if (tick) - { - if (statusEffectPool != null) - { - if (!statusEffectPool.effectExists(IAetherStatusEffects.effectTypes.IRRADIATION)) - { - statusEffectPool.applyStatusEffect(IAetherStatusEffects.effectTypes.IRRADIATION, radiationAmount); - } - else - { - statusEffectPool.modifyActiveEffectBuildup(IAetherStatusEffects.effectTypes.IRRADIATION, - statusEffectPool.getBuildupFromEffect(IAetherStatusEffects.effectTypes.IRRADIATION) + radiationAmount); - } - } - } - } - } - } - - @Override - public void getDrops(net.minecraft.util.NonNullList<ItemStack> drops, IBlockAccess world, BlockPos pos, IBlockState state, int fortune) - { - this.initializeDrops(); - - Random rand = new Random(); - ItemEntry itemEntry = WeightedRandom.getRandomItem(rand, this.drops); - if (itemEntry.getItem() != null) - { - int dropCount = 2; - - if (itemEntry.getItem() == ItemsAether.irradiated_dust) - { - //2-4 Irradiated Dust - dropCount = dropCount + rand.nextInt(3); - } - - drops.add(new ItemStack(itemEntry.getItem(), dropCount)); - } - } - - private void initializeDrops() - { - this.drops.add(new ItemEntry(ItemsAether.irradiated_dust, 50)); - this.drops.add(new ItemEntry(ItemsAether.irradiated_tool, 20)); - this.drops.add(new ItemEntry(ItemsAether.irradiated_sword, 20)); - this.drops.add(new ItemEntry(ItemsAether.irradiated_armor, 20)); - this.drops.add(new ItemEntry(ItemsAether.irradiated_chunk, 15)); - this.drops.add(new ItemEntry(ItemsAether.irradiated_charm, 10)); - this.drops.add(new ItemEntry(ItemsAether.irradiated_ring, 7)); - this.drops.add(new ItemEntry(ItemsAether.irradiated_neckwear, 5)); - } - - @Override - @SideOnly(Side.CLIENT) - public BlockRenderLayer getRenderLayer() - { - return BlockRenderLayer.CUTOUT_MIPPED; - } - - @Override - public int getLightValue(IBlockState state, IBlockAccess world, BlockPos pos) - { - if (world instanceof ChunkCache) - { - return 0; - } - - return super.getLightValue(state, world, pos); - } -} diff --git a/src/main/java/com/gildedgames/aether/common/blocks/natural/BlockMoaEgg.java b/src/main/java/com/gildedgames/aether/common/blocks/natural/BlockMoaEgg.java deleted file mode 100644 index 69cd2d80b9..0000000000 --- a/src/main/java/com/gildedgames/aether/common/blocks/natural/BlockMoaEgg.java +++ /dev/null @@ -1,174 +0,0 @@ -package com.gildedgames.aether.common.blocks.natural; - -import com.gildedgames.aether.api.registrar.ItemsAether; -import com.gildedgames.aether.common.blocks.IInternalBlock; -import com.gildedgames.aether.common.entities.animals.EntityMoa; -import com.gildedgames.aether.common.entities.genes.moa.MoaGenePool; -import com.gildedgames.aether.common.entities.genes.moa.MoaNest; -import com.gildedgames.aether.common.entities.tiles.TileEntityMoaEgg; -import com.gildedgames.aether.common.entities.util.groups.EntityGroup; -import com.gildedgames.aether.common.items.other.ItemMoaEgg; -import net.minecraft.block.Block; -import net.minecraft.block.BlockContainer; -import net.minecraft.block.SoundType; -import net.minecraft.block.material.Material; -import net.minecraft.block.state.BlockFaceShape; -import net.minecraft.block.state.IBlockState; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.EnumFacing; -import net.minecraft.util.math.AxisAlignedBB; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.RayTraceResult; -import net.minecraft.world.IBlockAccess; -import net.minecraft.world.World; - -import java.util.Collections; -import java.util.List; -import java.util.Random; - -public class BlockMoaEgg extends BlockContainer implements IInternalBlock -{ - - public static final AxisAlignedBB BOUNDING_BOX = new AxisAlignedBB(0.2F, 0.0F, 0.2F, 0.8F, 0.75F, 0.8F); - - public BlockMoaEgg() - { - super(Material.GROUND); - this.setSoundType(SoundType.STONE); - this.setHardness(0.1F); - } - - @Override - public BlockFaceShape getBlockFaceShape(IBlockAccess worldIn, IBlockState state, BlockPos pos, EnumFacing face) - { - return BlockFaceShape.UNDEFINED; - } - - @Override - public AxisAlignedBB getBoundingBox(IBlockState state, IBlockAccess source, BlockPos pos) - { - return BOUNDING_BOX; - } - - @Override - public void onBlockAdded(World world, BlockPos pos, IBlockState state) - { - super.onBlockAdded(world, pos, state); - - TileEntity te = world.getTileEntity(pos); - - if (te instanceof TileEntityMoaEgg) - { - TileEntityMoaEgg moaEgg = (TileEntityMoaEgg) te; - - moaEgg.familyNest = new MoaNest(world, pos.add(0, -1, 0)); - } - } - - @Override - public void onBlockClicked(World world, BlockPos pos, EntityPlayer player) - { - if (!player.capabilities.isCreativeMode) - { - TileEntityMoaEgg egg = (TileEntityMoaEgg) world.getTileEntity(pos); - - if (egg != null) - { - EntityGroup pack = egg.familyNest.getAnimalPack(); - pack.addOrRenewAggressor(player); - List moas = world.getEntitiesWithinAABB(EntityMoa.class, new AxisAlignedBB( - pos.getX() - 12, pos.getY() - 8, pos.getZ() - 12, pos.getX() + 12, pos.getY() + 8, pos.getZ() + 12)); - - for (Object moa : moas) - { - EntityMoa moa1 = (EntityMoa) moa; - - if (moa1.getGroup().getID() == pack.getID()) - { - moa1.setEggStolen(true); - } - } - - ItemStack eggStack = new ItemStack(ItemsAether.moa_egg_item, 1, 0); - - MoaGenePool stackGenes = ItemMoaEgg.getGenePool(eggStack); - - stackGenes.transformFromParents(egg.getGenePool().getStorage().getSeed(), egg.getGenePool().getStorage().getFatherSeed(), - egg.getGenePool().getStorage().getMotherSeed()); - - ItemMoaEgg.setGenePool(eggStack, stackGenes); - - world.setBlockToAir(pos); - - Block.spawnAsEntity(world, pos, eggStack); - } - } - } - - @Override - public boolean removedByPlayer(IBlockState state, World world, BlockPos pos, EntityPlayer player, boolean willHarvest) - { - this.onBlockClicked(world, pos, player); - - return super.removedByPlayer(state, world, pos, player, willHarvest); - } - - @Override - public List<ItemStack> getDrops(IBlockAccess world, BlockPos pos, IBlockState state, int fortune) - { - return Collections.emptyList(); - } - - @Override - public Item getItemDropped(IBlockState state, Random rand, int fortune) - { - return null; - } - - @Override - public boolean isOpaqueCube(IBlockState state) - { - return false; - } - - @Override - public boolean isFullCube(IBlockState state) - { - return false; - } - - @Override - public boolean isFullBlock(IBlockState state) - { - return false; - } - - @Override - public TileEntity createNewTileEntity(World world, int meta) - { - return new TileEntityMoaEgg(); - } - - @Override - public ItemStack getPickBlock(IBlockState state, RayTraceResult target, World world, BlockPos pos, EntityPlayer player) - { - ItemStack eggStack = new ItemStack(ItemsAether.moa_egg_item); - TileEntityMoaEgg egg = (TileEntityMoaEgg) world.getTileEntity(pos); - - if (egg != null) - { - MoaGenePool teGenes = egg.getGenePool(); - MoaGenePool stackGenes = ItemMoaEgg.getGenePool(eggStack); - - stackGenes.transformFromParents(teGenes.getStorage().getSeed(), teGenes.getStorage().getFatherSeed(), teGenes.getStorage().getMotherSeed()); - - ItemMoaEgg.setGenePool(eggStack, stackGenes); - } - - return eggStack; - } - -} diff --git a/src/main/java/com/gildedgames/aether/common/blocks/natural/BlockQuicksoil.java b/src/main/java/com/gildedgames/aether/common/blocks/natural/BlockQuicksoil.java deleted file mode 100644 index 47bb36288b..0000000000 --- a/src/main/java/com/gildedgames/aether/common/blocks/natural/BlockQuicksoil.java +++ /dev/null @@ -1,27 +0,0 @@ -package com.gildedgames.aether.common.blocks.natural; - -import net.minecraft.block.Block; -import net.minecraft.block.SoundType; -import net.minecraft.block.material.Material; -import net.minecraft.block.state.IBlockState; -import net.minecraft.pathfinding.PathNodeType; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.IBlockAccess; - -public class BlockQuicksoil extends Block -{ - public BlockQuicksoil() - { - super(Material.SAND); - - this.setHardness(0.5f); - - this.setSoundType(SoundType.SAND); - } - - @Override - public PathNodeType getAiPathNodeType(IBlockState state, IBlockAccess world, BlockPos pos) - { - return PathNodeType.DANGER_OTHER; - } -} diff --git a/src/main/java/com/gildedgames/aether/common/blocks/natural/BlockRustedFerrosite.java b/src/main/java/com/gildedgames/aether/common/blocks/natural/BlockRustedFerrosite.java deleted file mode 100644 index 001f439940..0000000000 --- a/src/main/java/com/gildedgames/aether/common/blocks/natural/BlockRustedFerrosite.java +++ /dev/null @@ -1,18 +0,0 @@ -package com.gildedgames.aether.common.blocks.natural; - -import net.minecraft.block.Block; -import net.minecraft.block.SoundType; -import net.minecraft.block.material.Material; - -public class BlockRustedFerrosite extends Block -{ - public BlockRustedFerrosite() - { - super(Material.ROCK); - - this.setHardness(1.5f); - this.setResistance(10.0F); - - this.setSoundType(SoundType.STONE); - } -} diff --git a/src/main/java/com/gildedgames/aether/common/blocks/natural/BlockTheraDirt.java b/src/main/java/com/gildedgames/aether/common/blocks/natural/BlockTheraDirt.java deleted file mode 100644 index 0d01274a0b..0000000000 --- a/src/main/java/com/gildedgames/aether/common/blocks/natural/BlockTheraDirt.java +++ /dev/null @@ -1,76 +0,0 @@ -package com.gildedgames.aether.common.blocks.natural; - -import com.gildedgames.aether.common.blocks.IBlockMultiName; -import com.gildedgames.aether.common.blocks.properties.BlockVariant; -import com.gildedgames.aether.common.blocks.properties.PropertyVariant; -import com.gildedgames.aether.common.blocks.util.BlockBuilder; -import net.minecraft.block.SoundType; -import net.minecraft.block.material.Material; -import net.minecraft.block.state.BlockStateContainer; -import net.minecraft.block.state.IBlockState; -import net.minecraft.creativetab.CreativeTabs; -import net.minecraft.item.ItemStack; -import net.minecraft.util.NonNullList; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; - -public class BlockTheraDirt extends BlockBuilder implements IBlockMultiName -{ - - public static final BlockVariant DIRT = new BlockVariant(0, "dirt"); - - public static final PropertyVariant PROPERTY_VARIANT = PropertyVariant.create("variant", DIRT); - - public BlockTheraDirt() - { - super(Material.GROUND); - - this.setSoundType(SoundType.GROUND); - this.setHardness(0.5f); - - this.setDefaultState(this.getBlockState().getBaseState().withProperty(PROPERTY_VARIANT, DIRT)); - } - - @Override - public int damageDropped(final IBlockState state) - { - return state.getValue(PROPERTY_VARIANT).getMeta(); - } - - @Override - @SideOnly(Side.CLIENT) - public void getSubBlocks(final CreativeTabs tab, final NonNullList<ItemStack> list) - { - for (final BlockVariant variant : PROPERTY_VARIANT.getAllowedValues()) - { - list.add(new ItemStack(this, 1, variant.getMeta())); - } - } - - @Override - public IBlockState getStateFromMeta(final int meta) - { - final BlockVariant variant = PROPERTY_VARIANT.fromMeta(meta); - - return this.getDefaultState().withProperty(PROPERTY_VARIANT, variant); - } - - @Override - public int getMetaFromState(final IBlockState state) - { - return state.getValue(PROPERTY_VARIANT).getMeta(); - } - - @Override - protected BlockStateContainer createBlockState() - { - return new BlockStateContainer(this, PROPERTY_VARIANT); - } - - @Override - public String getTranslationKey(final ItemStack stack) - { - return PROPERTY_VARIANT.fromMeta(stack.getMetadata()).getName(); - } - -} diff --git a/src/main/java/com/gildedgames/aether/common/blocks/natural/BlockTheraGrass.java b/src/main/java/com/gildedgames/aether/common/blocks/natural/BlockTheraGrass.java deleted file mode 100644 index db4476ea85..0000000000 --- a/src/main/java/com/gildedgames/aether/common/blocks/natural/BlockTheraGrass.java +++ /dev/null @@ -1,155 +0,0 @@ -package com.gildedgames.aether.common.blocks.natural; - -import com.gildedgames.aether.api.registrar.BlocksAether; -import com.gildedgames.aether.common.blocks.IBlockMultiName; -import com.gildedgames.aether.common.blocks.properties.BlockVariant; -import com.gildedgames.aether.common.blocks.properties.PropertyVariant; -import net.minecraft.block.Block; -import net.minecraft.block.BlockGrass; -import net.minecraft.block.SoundType; -import net.minecraft.block.properties.PropertyBool; -import net.minecraft.block.state.BlockStateContainer; -import net.minecraft.block.state.IBlockState; -import net.minecraft.creativetab.CreativeTabs; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.init.Blocks; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.util.NonNullList; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.RayTraceResult; -import net.minecraft.world.IBlockAccess; -import net.minecraft.world.World; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; - -import java.util.Random; - -public class BlockTheraGrass extends BlockGrass implements IBlockMultiName -{ - public static final BlockVariant NORMAL = new BlockVariant(0, "normal"); - - public static final PropertyVariant PROPERTY_VARIANT = PropertyVariant.create("variant", NORMAL); - - public static final PropertyBool SNOWY = PropertyBool.create("snowy"); - - public BlockTheraGrass() - { - super(); - - this.setSoundType(SoundType.PLANT); - - this.setHardness(0.6F); - this.setTickRandomly(true); - - this.setDefaultState(this.getBlockState().getBaseState().withProperty(PROPERTY_VARIANT, NORMAL).withProperty(SNOWY, Boolean.FALSE)); - } - - @Override - @SideOnly(Side.CLIENT) - public void getSubBlocks(final CreativeTabs tab, final NonNullList<ItemStack> list) - { - for (final BlockVariant variant : PROPERTY_VARIANT.getAllowedValues()) - { - list.add(new ItemStack(this, 1, variant.getMeta())); - } - } - - @Override - public IBlockState getActualState(final IBlockState state, final IBlockAccess worldIn, final BlockPos pos) - { - final Block block = worldIn.getBlockState(pos.up()).getBlock(); - - return state.withProperty(SNOWY, block == Blocks.SNOW || block == Blocks.SNOW_LAYER); - } - - @Override - public void updateTick(final World world, final BlockPos pos, final IBlockState state, final Random rand) - { - if (!world.isRemote && state.getValue(PROPERTY_VARIANT) == NORMAL) - { - if (world.getLightFromNeighbors(pos.up()) < 4 && world.getBlockState(pos.up()).getLightOpacity(world, pos.up()) > 2) - { - world.setBlockState(pos, BlocksAether.thera_dirt.getDefaultState()); - } - else - { - if (world.getLightFromNeighbors(pos.up()) >= 9) - { - for (int i = 0; i < 4; ++i) - { - final BlockPos randomNeighbor = pos.add(rand.nextInt(3) - 1, rand.nextInt(5) - 3, rand.nextInt(3) - 1); - - if (randomNeighbor.getY() >= 0 && randomNeighbor.getY() < 256 && !world.isBlockLoaded(randomNeighbor)) - { - return; - } - - final IBlockState aboveState = world.getBlockState(randomNeighbor.up()); - final IBlockState neighborState = world.getBlockState(randomNeighbor); - - if (neighborState.getBlock() == BlocksAether.thera_dirt - && neighborState.getValue(BlockTheraDirt.PROPERTY_VARIANT) == BlockTheraDirt.DIRT && - world.getLightFromNeighbors(randomNeighbor.up()) >= 4 - && aboveState.getLightOpacity(world, randomNeighbor.up()) <= 2) - { - final IBlockState grassState = this.getDefaultState().withProperty(PROPERTY_VARIANT, NORMAL); - - world.setBlockState(randomNeighbor, grassState); - } - } - } - } - } - } - - @Override - public Item getItemDropped(final IBlockState state, final Random rand, final int fortune) - { - return Item.getItemFromBlock(BlocksAether.thera_dirt); - } - - @Override - public IBlockState getStateFromMeta(final int meta) - { - final BlockVariant variant = PROPERTY_VARIANT.fromMeta(meta); - - return this.getDefaultState().withProperty(PROPERTY_VARIANT, variant); - } - - @Override - public ItemStack getPickBlock(final IBlockState state, final RayTraceResult target, final World world, final BlockPos pos, final EntityPlayer player) - { - return new ItemStack(this, 1, state.getValue(PROPERTY_VARIANT).getMeta()); - } - - @Override - public int getMetaFromState(final IBlockState state) - { - return state.getValue(PROPERTY_VARIANT).getMeta(); - } - - @Override - protected BlockStateContainer createBlockState() - { - return new BlockStateContainer(this, SNOWY, PROPERTY_VARIANT); - } - - @Override - public String getTranslationKey(final ItemStack stack) - { - return PROPERTY_VARIANT.fromMeta(stack.getMetadata()).getName(); - } - - @Override - public boolean canGrow(final World worldIn, final BlockPos pos, final IBlockState state, final boolean isClient) - { - return false; - } - - @Override - public boolean canUseBonemeal(final World worldIn, final Random rand, final BlockPos pos, final IBlockState state) - { - return false; - } -} \ No newline at end of file diff --git a/src/main/java/com/gildedgames/aether/common/blocks/natural/leaves/BlockAetherLeaves.java b/src/main/java/com/gildedgames/aether/common/blocks/natural/leaves/BlockAetherLeaves.java deleted file mode 100644 index cbc67967e1..0000000000 --- a/src/main/java/com/gildedgames/aether/common/blocks/natural/leaves/BlockAetherLeaves.java +++ /dev/null @@ -1,499 +0,0 @@ -package com.gildedgames.aether.common.blocks.natural.leaves; - -import com.gildedgames.aether.api.registrar.BlocksAether; -import com.gildedgames.aether.api.registrar.ItemsAether; -import com.gildedgames.aether.client.renderer.particles.ParticleGolden; -import com.gildedgames.aether.client.renderer.particles.ParticleLeaf; -import com.gildedgames.aether.common.AetherCore; -import com.gildedgames.aether.common.blocks.natural.plants.saplings.BlockAetherUniqueSapling; -import net.minecraft.block.Block; -import net.minecraft.block.BlockLeaves; -import net.minecraft.block.BlockPlanks; -import net.minecraft.block.SoundType; -import net.minecraft.block.properties.PropertyBool; -import net.minecraft.block.state.BlockStateContainer; -import net.minecraft.block.state.IBlockState; -import net.minecraft.client.Minecraft; -import net.minecraft.item.ItemStack; -import net.minecraft.util.BlockRenderLayer; -import net.minecraft.util.EnumFacing; -import net.minecraft.util.EnumParticleTypes; -import net.minecraft.util.math.AxisAlignedBB; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.IBlockAccess; -import net.minecraft.world.World; -import net.minecraftforge.common.IShearable; -import net.minecraftforge.fml.client.FMLClientHandler; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; - -import java.util.ArrayList; -import java.util.List; -import java.util.Random; - -public class BlockAetherLeaves extends BlockLeaves implements IShearable -{ - public static final PropertyBool PROPERTY_DECAYABLE = PropertyBool.create("decayable"); - - public static final PropertyBool PROPERTY_CHECK_DECAY = PropertyBool.create("check_decay"); - - private int[] surroundings; - - public BlockAetherLeaves() - { - this.setHardness(0.2f); - this.setTickRandomly(true); - - this.setSoundType(SoundType.PLANT); - - this.setDefaultState( - this.getBlockState().getBaseState().withProperty(PROPERTY_DECAYABLE, Boolean.TRUE).withProperty(PROPERTY_CHECK_DECAY, Boolean.TRUE)); - } - - @Override - public boolean isOpaqueCube(IBlockState state) - { - return false; - } - - @Override - public boolean isShearable(final ItemStack item, final IBlockAccess world, final BlockPos pos) - { - return true; - } - - @Override - public boolean isLeaves(final IBlockState state, final IBlockAccess world, final BlockPos pos) - { - return true; - } - - @Override - public boolean causesSuffocation(final IBlockState state) - { - return false; - } - - @Override - public BlockPlanks.EnumType getWoodType(final int meta) - { - return null; - } - - @Override - @SideOnly(Side.CLIENT) - public void randomDisplayTick(final IBlockState state, final World world, final BlockPos pos, final Random rand) - { - if (Minecraft.getMinecraft().gameSettings.particleSetting != 0) - { - return; - } - - if (this == BlocksAether.amberoot_leaves) - { - if (rand.nextInt(100) > 90) - { - final double x = pos.getX() + (rand.nextFloat() * 6f) - 3f; - final double y = pos.getY() + (rand.nextFloat() * 6f) - 3f; - final double z = pos.getZ() + (rand.nextFloat() * 6f) - 3f; - - final ParticleGolden effect = new ParticleGolden(world, x, y, z, 0, 0, 0); - - FMLClientHandler.instance().getClient().effectRenderer.addEffect(effect); - } - } - - if (world.isAirBlock(pos.down())) - { - if (rand.nextInt(100) > 97) - { - final double x = pos.getX() + rand.nextFloat(); - final double y = pos.getY(); - final double z = pos.getZ() + rand.nextFloat(); - - final ParticleLeaf effect = new ParticleLeaf(world, x, y, z, - -0.04D + (rand.nextFloat() * 0.08f), - -0.05D + (rand.nextFloat() * -0.02f), - -0.04D + (rand.nextFloat() * 0.08f), - this); - - FMLClientHandler.instance().getClient().effectRenderer.addEffect(effect); - } - } - - super.randomDisplayTick(state, world, pos, rand); - } - - @Override - public void breakBlock(final World worldIn, final BlockPos pos, final IBlockState state) - { - final byte start = 1; - - final int size = start + 1; - final int x = pos.getX(); - final int y = pos.getY(); - final int z = pos.getZ(); - - if (worldIn.isAreaLoaded(new BlockPos(x - size, y - size, z - size), new BlockPos(x + size, y + size, z + size))) - { - for (int x2 = -start; x2 <= start; ++x2) - { - for (int y2 = -start; y2 <= start; ++y2) - { - for (int z2 = -start; z2 <= start; ++z2) - { - final BlockPos newPos = pos.add(x2, y2, z2); - final IBlockState newState = worldIn.getBlockState(newPos); - - if (newState.getBlock().isLeaves(state, worldIn, newPos)) - { - newState.getBlock().beginLeavesDecay(newState, worldIn, newPos); - } - } - } - } - } - } - - @Override - public void updateTick(final World world, final BlockPos pos, final IBlockState state, final Random rand) - { - if (!world.isRemote) - { - final boolean checkDecay = state.getValue(PROPERTY_CHECK_DECAY); - final boolean isDecayable = state.getValue(PROPERTY_DECAYABLE); - - if (checkDecay && isDecayable) - { - final byte start = 4; - final int range = start + 1; - final int x = pos.getX(); - final int y = pos.getY(); - final int z = pos.getZ(); - - final byte b1 = 32; - final int i1 = b1 * b1; - final int j1 = b1 / 2; - - if (this.surroundings == null) - { - this.surroundings = new int[b1 * b1 * b1]; - } - - int x2; - - if (world.isAreaLoaded(new BlockPos(x - range, y - range, z - range), new BlockPos(x + range, y + range, z + range))) - { - int y2; - int z2; - - final BlockPos.MutableBlockPos newPos = new BlockPos.MutableBlockPos(); - - for (x2 = -start; x2 <= start; ++x2) - { - for (y2 = -start; y2 <= start; ++y2) - { - for (z2 = -start; z2 <= start; ++z2) - { - newPos.setPos(x + x2, y + y2, z + z2); - - final Block block = world.getBlockState(newPos).getBlock(); - - int i = (x2 + j1) * i1 + (y2 + j1) * b1 + z2 + j1; - - if (!block.canSustainLeaves(state, world, newPos)) - { - if (block.isLeaves(state, world, newPos)) - { - this.surroundings[i] = -2; - } - else - { - this.surroundings[i] = -1; - } - } - else - { - this.surroundings[i] = 0; - } - } - } - } - - for (x2 = 1; x2 <= 4; ++x2) - { - for (y2 = -start; y2 <= start; ++y2) - { - for (z2 = -start; z2 <= start; ++z2) - { - for (int j2 = -start; j2 <= start; ++j2) - { - if (this.surroundings[(y2 + j1) * i1 + (z2 + j1) * b1 + j2 + j1] == x2 - 1) - { - int i = (y2 + j1 - 1) * i1 + (z2 + j1) * b1 + j2 + j1; - - if (this.surroundings[i] == -2) - { - this.surroundings[i] = x2; - } - - int i2 = (y2 + j1 + 1) * i1 + (z2 + j1) * b1 + j2 + j1; - - if (this.surroundings[i2] == -2) - { - this.surroundings[i2] = x2; - } - - int i3 = (y2 + j1) * i1 + (z2 + j1 - 1) * b1 + j2 + j1; - - if (this.surroundings[i3] == -2) - { - this.surroundings[i3] = x2; - } - - int i4 = (y2 + j1) * i1 + (z2 + j1 + 1) * b1 + j2 + j1; - - if (this.surroundings[i4] == -2) - { - this.surroundings[i4] = x2; - } - - int i5 = (y2 + j1) * i1 + (z2 + j1) * b1 + (j2 + j1 - 1); - - if (this.surroundings[i5] == -2) - { - this.surroundings[i5] = x2; - } - - int i6 = (y2 + j1) * i1 + (z2 + j1) * b1 + j2 + j1 + 1; - - if (this.surroundings[i6] == -2) - { - this.surroundings[i6] = x2; - } - } - } - } - } - } - } - - x2 = this.surroundings[j1 * i1 + j1 * b1 + j1]; - - if (x2 >= 0) - { - world.setBlockState(pos, world.getBlockState(pos).withProperty(PROPERTY_CHECK_DECAY, false), 4); - } - else - { - this.destroy(world, pos); - } - } - } - } - - @Override - public void beginLeavesDecay(final IBlockState state, final World world, final BlockPos pos) - { - if (!state.getValue(PROPERTY_CHECK_DECAY)) - { - world.setBlockState(pos, state.withProperty(PROPERTY_CHECK_DECAY, true), 4); - } - } - - @Override - @SideOnly(Side.CLIENT) - public void setGraphicsLevel(boolean fancy) - { - this.leavesFancy = Minecraft.getMinecraft().gameSettings.fancyGraphics; - } - - @Override - @SideOnly(Side.CLIENT) - public BlockRenderLayer getRenderLayer() - { - return Minecraft.getMinecraft().gameSettings.fancyGraphics ? BlockRenderLayer.CUTOUT_MIPPED : BlockRenderLayer.SOLID; - } - - @Override - public int quantityDropped(final Random random) - { - return random.nextInt(20) == 0 ? 1 : 0; - } - - private void destroy(final World worldIn, final BlockPos pos) - { - this.dropBlockAsItem(worldIn, pos, worldIn.getBlockState(pos), 0); - - worldIn.setBlockToAir(pos); - } - - @Override - public List<ItemStack> onSheared(final ItemStack item, final IBlockAccess world, final BlockPos pos, final int fortune) - { - final ArrayList<ItemStack> stacks = new ArrayList<>(); - stacks.add(new ItemStack(this)); - - return stacks; - } - - @Override - @SideOnly(Side.CLIENT) - public boolean shouldSideBeRendered(final IBlockState blockState, final IBlockAccess blockAccess, final BlockPos pos, final EnumFacing side) - { - return (Minecraft.getMinecraft().gameSettings.fancyGraphics || blockAccess.getBlockState(pos.offset(side)).getBlock() != this) && this.superShouldSideBeRendered(blockState, blockAccess, pos, side); - } - - @SideOnly(Side.CLIENT) - private boolean superShouldSideBeRendered(final IBlockState blockState, final IBlockAccess blockAccess, final BlockPos pos, final EnumFacing side) - { - final AxisAlignedBB axisalignedbb = blockState.getBoundingBox(blockAccess, pos); - - switch (side) - { - case DOWN: - - if (axisalignedbb.minY > 0.0D) - { - return true; - } - - break; - case UP: - - if (axisalignedbb.maxY < 1.0D) - { - return true; - } - - break; - case NORTH: - - if (axisalignedbb.minZ > 0.0D) - { - return true; - } - - break; - case SOUTH: - - if (axisalignedbb.maxZ < 1.0D) - { - return true; - } - - break; - case WEST: - - if (axisalignedbb.minX > 0.0D) - { - return true; - } - - break; - case EAST: - - if (axisalignedbb.maxX < 1.0D) - { - return true; - } - } - - return !blockAccess.getBlockState(pos.offset(side)).doesSideBlockRendering(blockAccess, pos.offset(side), side.getOpposite()); - } - - @Override - public int damageDropped(final IBlockState state) - { - return 0; - } - - @Override - public List<ItemStack> getDrops(final IBlockAccess world, final BlockPos pos, final IBlockState state, final int fortune) - { - final List<ItemStack> stacks = new ArrayList<>(); - - final Random rand = world instanceof World ? ((World) world).rand : new Random(); - - if (rand.nextInt(20) == 0) - { - ItemStack stack = this.getSaplingItem(); - - if (stack != null) - { - stacks.add(stack); - } - } - - if (rand.nextInt(100) == 0) - { - ItemStack stack = this.getPinecone(); - - if (stack != null) - { - stacks.add(stack); - } - } - - return stacks; - } - - protected ItemStack getPinecone() - { - if (this != BlocksAether.mutant_leaves && this != BlocksAether.mutant_leaves_decorated) - { - return new ItemStack(ItemsAether.skyroot_pinecone, 1); - } - - return null; - } - - - protected ItemStack getSaplingItem() - { - if (this == BlocksAether.amberoot_leaves) - { - return new ItemStack(BlocksAether.unique_sapling, 1, BlockAetherUniqueSapling.AMBEROOT.getMeta()); - } - - return null; - } - - @Override - public IBlockState getStateFromMeta(final int meta) - { - return this.getDefaultState().withProperty(PROPERTY_DECAYABLE, (meta & 4) == 4) - .withProperty(PROPERTY_CHECK_DECAY, (meta & 8) == 8); - } - - @Override - public int getMetaFromState(final IBlockState state) - { - int meta = 0; - - if (state.getValue(PROPERTY_DECAYABLE)) - { - meta |= 4; - } - - if (state.getValue(PROPERTY_CHECK_DECAY)) - { - meta |= 8; - } - - return meta; - } - - @Override - protected BlockStateContainer createBlockState() - { - return new BlockStateContainer(this, PROPERTY_DECAYABLE, PROPERTY_CHECK_DECAY); - } - -/* @Override - public BlockPlanks.EnumType getWoodType(int meta) - { - return null; - }*/ - -} diff --git a/src/main/java/com/gildedgames/aether/common/blocks/natural/leaves/BlockColoredLeaves.java b/src/main/java/com/gildedgames/aether/common/blocks/natural/leaves/BlockColoredLeaves.java deleted file mode 100644 index bf760208c9..0000000000 --- a/src/main/java/com/gildedgames/aether/common/blocks/natural/leaves/BlockColoredLeaves.java +++ /dev/null @@ -1,35 +0,0 @@ -package com.gildedgames.aether.common.blocks.natural.leaves; - -import com.gildedgames.aether.common.entities.animals.EntitySkyrootLizard; - -public abstract class BlockColoredLeaves extends BlockNaturalLeaves -{ - private final Color color; - - public BlockColoredLeaves(Color color) - { - this.color = color; - } - - @Override - protected void applyLizardProperties(EntitySkyrootLizard lizard) - { - lizard.setLizardType(EntitySkyrootLizard.Type.SKYROOT); - lizard.setLizardColor(this.getLeafColor()); - } - - protected Color getLeafColor() - { - return this.color; - } - - public enum Color - { - GREEN, - BLUE, - DARK_BLUE; - - public static final Color[] VALUES = Color.values(); - } - -} diff --git a/src/main/java/com/gildedgames/aether/common/blocks/natural/leaves/BlockGreatrootLeaves.java b/src/main/java/com/gildedgames/aether/common/blocks/natural/leaves/BlockGreatrootLeaves.java deleted file mode 100644 index 0db67214dc..0000000000 --- a/src/main/java/com/gildedgames/aether/common/blocks/natural/leaves/BlockGreatrootLeaves.java +++ /dev/null @@ -1,36 +0,0 @@ -package com.gildedgames.aether.common.blocks.natural.leaves; - -import com.gildedgames.aether.api.registrar.BlocksAether; -import com.gildedgames.aether.common.blocks.natural.plants.saplings.BlockAetherGreatrootSapling; -import com.gildedgames.aether.common.blocks.natural.wood.BlockAetherLog; -import net.minecraft.item.ItemStack; - -public class BlockGreatrootLeaves extends BlockColoredLeaves -{ - public BlockGreatrootLeaves(Color color) - { - super(color); - } - - @Override - protected ItemStack getSaplingItem() - { - switch (this.getLeafColor()) - { - case GREEN: - return new ItemStack(BlocksAether.greatroot_sapling, 1, BlockAetherGreatrootSapling.GREEN.getMeta()); - case BLUE: - return new ItemStack(BlocksAether.greatroot_sapling, 1, BlockAetherGreatrootSapling.BLUE.getMeta()); - case DARK_BLUE: - return new ItemStack(BlocksAether.greatroot_sapling, 1, BlockAetherGreatrootSapling.DARK_BLUE.getMeta()); - } - - return null; - } - - @Override - public BlockAetherLog getWoodBlock() - { - return (BlockAetherLog) BlocksAether.dark_skyroot_log; - } -} diff --git a/src/main/java/com/gildedgames/aether/common/blocks/natural/leaves/BlockNaturalLeaves.java b/src/main/java/com/gildedgames/aether/common/blocks/natural/leaves/BlockNaturalLeaves.java deleted file mode 100644 index ba2ffe4f8a..0000000000 --- a/src/main/java/com/gildedgames/aether/common/blocks/natural/leaves/BlockNaturalLeaves.java +++ /dev/null @@ -1,45 +0,0 @@ -package com.gildedgames.aether.common.blocks.natural.leaves; - -import com.gildedgames.aether.common.blocks.natural.wood.BlockAetherLog; -import com.gildedgames.aether.common.entities.animals.EntitySkyrootLizard; -import net.minecraft.block.state.IBlockState; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.World; - -import javax.annotation.Nullable; - -public abstract class BlockNaturalLeaves extends BlockAetherLeaves -{ - @Override - public void harvestBlock(World worldIn, EntityPlayer player, BlockPos pos, IBlockState state, @Nullable TileEntity te, ItemStack stack) - { - super.harvestBlock(worldIn, player, pos, state, te, stack); - - if (!worldIn.isRemote && state.getValue(DECAYABLE) && worldIn.rand.nextInt(15) == 0) - { - EntitySkyrootLizard.Type type = EntitySkyrootLizard.Type.getFromWoodType(this.getWoodBlock()); - - if (type == null) - { - return; - } - - EntitySkyrootLizard lizard = new EntitySkyrootLizard(worldIn); - lizard.setPosition(pos.getX() + 0.5f, pos.getY() + 0.5f, pos.getZ() + 0.5f); - - this.applyLizardProperties(lizard); - - worldIn.spawnEntity(lizard); - } - } - - protected void applyLizardProperties(EntitySkyrootLizard lizard) - { - - } - - public abstract BlockAetherLog getWoodBlock(); -} diff --git a/src/main/java/com/gildedgames/aether/common/blocks/natural/leaves/BlockSkyrootLeaves.java b/src/main/java/com/gildedgames/aether/common/blocks/natural/leaves/BlockSkyrootLeaves.java deleted file mode 100644 index 2a81bcca31..0000000000 --- a/src/main/java/com/gildedgames/aether/common/blocks/natural/leaves/BlockSkyrootLeaves.java +++ /dev/null @@ -1,36 +0,0 @@ -package com.gildedgames.aether.common.blocks.natural.leaves; - -import com.gildedgames.aether.api.registrar.BlocksAether; -import com.gildedgames.aether.common.blocks.natural.plants.saplings.BlockAetherSkyrootSapling; -import com.gildedgames.aether.common.blocks.natural.wood.BlockAetherLog; -import net.minecraft.item.ItemStack; - -public class BlockSkyrootLeaves extends BlockColoredLeaves -{ - public BlockSkyrootLeaves(Color color) - { - super(color); - } - - @Override - protected ItemStack getSaplingItem() - { - switch (this.getLeafColor()) - { - case GREEN: - return new ItemStack(BlocksAether.skyroot_sapling, 1, BlockAetherSkyrootSapling.GREEN.getMeta()); - case BLUE: - return new ItemStack(BlocksAether.skyroot_sapling, 1, BlockAetherSkyrootSapling.BLUE.getMeta()); - case DARK_BLUE: - return new ItemStack(BlocksAether.skyroot_sapling, 1, BlockAetherSkyrootSapling.DARK_BLUE.getMeta()); - } - - return null; - } - - @Override - public BlockAetherLog getWoodBlock() - { - return (BlockAetherLog) BlocksAether.skyroot_log; - } -} diff --git a/src/main/java/com/gildedgames/aether/common/blocks/natural/leaves/BlockUniqueLeaves.java b/src/main/java/com/gildedgames/aether/common/blocks/natural/leaves/BlockUniqueLeaves.java deleted file mode 100644 index 924ffd80f6..0000000000 --- a/src/main/java/com/gildedgames/aether/common/blocks/natural/leaves/BlockUniqueLeaves.java +++ /dev/null @@ -1,27 +0,0 @@ -package com.gildedgames.aether.common.blocks.natural.leaves; - -import com.gildedgames.aether.api.registrar.BlocksAether; -import com.gildedgames.aether.common.blocks.natural.plants.saplings.BlockAetherUniqueSapling; -import com.gildedgames.aether.common.blocks.natural.wood.AetherWoodType; -import net.minecraft.item.ItemStack; - -public class BlockUniqueLeaves extends BlockAetherLeaves -{ - private final AetherWoodType type; - - public BlockUniqueLeaves(AetherWoodType type) - { - this.type = type; - } - - @Override - protected ItemStack getSaplingItem() - { - if (this.type == AetherWoodType.AMBERROOT) - { - return new ItemStack(BlocksAether.unique_sapling, 1, BlockAetherUniqueSapling.AMBEROOT.getMeta()); - } - - return null; - } -} diff --git a/src/main/java/com/gildedgames/aether/common/blocks/natural/leaves/BlockWisprootLeaves.java b/src/main/java/com/gildedgames/aether/common/blocks/natural/leaves/BlockWisprootLeaves.java deleted file mode 100644 index ee44ba366f..0000000000 --- a/src/main/java/com/gildedgames/aether/common/blocks/natural/leaves/BlockWisprootLeaves.java +++ /dev/null @@ -1,37 +0,0 @@ -package com.gildedgames.aether.common.blocks.natural.leaves; - -import com.gildedgames.aether.api.registrar.BlocksAether; -import com.gildedgames.aether.common.blocks.natural.plants.saplings.BlockAetherWisprootSapling; -import com.gildedgames.aether.common.blocks.natural.wood.BlockAetherLog; -import net.minecraft.item.ItemStack; - -public class BlockWisprootLeaves extends BlockColoredLeaves -{ - public BlockWisprootLeaves(Color color) - { - super(color); - } - - @Override - protected ItemStack getSaplingItem() - { - switch (this.getLeafColor()) - { - case GREEN: - return new ItemStack(BlocksAether.wisproot_sapling, 1, BlockAetherWisprootSapling.GREEN.getMeta()); - case BLUE: - return new ItemStack(BlocksAether.wisproot_sapling, 1, BlockAetherWisprootSapling.BLUE.getMeta()); - case DARK_BLUE: - return new ItemStack(BlocksAether.wisproot_sapling, 1, BlockAetherWisprootSapling.DARK_BLUE.getMeta()); - } - - return null; - } - - - @Override - public BlockAetherLog getWoodBlock() - { - return (BlockAetherLog) BlocksAether.light_skyroot_log; - } -} diff --git a/src/main/java/com/gildedgames/aether/common/blocks/natural/ores/BlockAetherOre.java b/src/main/java/com/gildedgames/aether/common/blocks/natural/ores/BlockAetherOre.java deleted file mode 100644 index bde0f7fdab..0000000000 --- a/src/main/java/com/gildedgames/aether/common/blocks/natural/ores/BlockAetherOre.java +++ /dev/null @@ -1,56 +0,0 @@ -package com.gildedgames.aether.common.blocks.natural.ores; - -import net.minecraft.block.Block; -import net.minecraft.block.material.Material; -import net.minecraft.block.state.IBlockState; -import net.minecraft.item.Item; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.IBlockAccess; -import net.minecraft.world.World; - -import java.util.Random; - -public class BlockAetherOre extends Block -{ - public BlockAetherOre(Material material) - { - super(material); - } - - @Override - public int quantityDroppedWithBonus(int fortune, Random random) - { - if (fortune > 0 && Item.getItemFromBlock(this) - != this.getItemDropped(this.getBlockState().getValidStates().iterator().next(), random, fortune)) - { - int rand = random.nextInt(fortune + 2) - 1; - - if (rand < 0) - { - rand = 0; - } - - return this.quantityDropped(random) * (rand + 1); - } - - return this.quantityDropped(random); - } - - @Override - public int getExpDrop(IBlockState state, IBlockAccess world, BlockPos pos, int fortune) - { - Random rand = world instanceof World ? ((World) world).rand : new Random(); - - if (this.getItemDropped(state, rand, fortune) != Item.getItemFromBlock(this)) - { - return this.getUnmodifiedExpDrop(rand); - } - - return 0; - } - - protected int getUnmodifiedExpDrop(Random rand) - { - return 0; - } -} diff --git a/src/main/java/com/gildedgames/aether/common/blocks/natural/ores/BlockAmbrosiumOre.java b/src/main/java/com/gildedgames/aether/common/blocks/natural/ores/BlockAmbrosiumOre.java deleted file mode 100644 index 0ec990feee..0000000000 --- a/src/main/java/com/gildedgames/aether/common/blocks/natural/ores/BlockAmbrosiumOre.java +++ /dev/null @@ -1,63 +0,0 @@ -package com.gildedgames.aether.common.blocks.natural.ores; - -import com.gildedgames.aether.api.registrar.ItemsAether; -import net.minecraft.block.SoundType; -import net.minecraft.block.material.Material; -import net.minecraft.block.state.IBlockState; -import net.minecraft.item.Item; -import net.minecraft.util.BlockRenderLayer; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.MathHelper; -import net.minecraft.world.ChunkCache; -import net.minecraft.world.IBlockAccess; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; - -import java.util.Random; - -public class BlockAmbrosiumOre extends BlockAetherOre -{ - public BlockAmbrosiumOre() - { - super(Material.ROCK); - - this.setHardness(3.0f); - this.setResistance(5.0f); - this.setHarvestLevel("pickaxe", 0); - this.setLightLevel(0.4f); - - this.useNeighborBrightness = true; - - this.setSoundType(SoundType.STONE); - } - - @Override - public Item getItemDropped(IBlockState state, Random rand, int fortune) - { - return ItemsAether.ambrosium_shard; - } - - @Override - protected int getUnmodifiedExpDrop(Random rand) - { - return MathHelper.getInt(rand, 0, 1); - } - - @Override - @SideOnly(Side.CLIENT) - public BlockRenderLayer getRenderLayer() - { - return BlockRenderLayer.CUTOUT_MIPPED; - } - - @Override - public int getLightValue(IBlockState state, IBlockAccess world, BlockPos pos) - { - if (world instanceof ChunkCache) - { - return 0; - } - - return super.getLightValue(state, world, pos); - } -} diff --git a/src/main/java/com/gildedgames/aether/common/blocks/natural/ores/BlockArkeniumOre.java b/src/main/java/com/gildedgames/aether/common/blocks/natural/ores/BlockArkeniumOre.java deleted file mode 100644 index eaa99a7233..0000000000 --- a/src/main/java/com/gildedgames/aether/common/blocks/natural/ores/BlockArkeniumOre.java +++ /dev/null @@ -1,20 +0,0 @@ -package com.gildedgames.aether.common.blocks.natural.ores; - -import net.minecraft.block.SoundType; -import net.minecraft.block.material.Material; - -public class BlockArkeniumOre extends BlockAetherOre -{ - - public BlockArkeniumOre() - { - super(Material.ROCK); - - this.setHardness(3.0f); - this.setResistance(5.0f); - this.setHarvestLevel("pickaxe", 2); - - this.setSoundType(SoundType.STONE); - } - -} diff --git a/src/main/java/com/gildedgames/aether/common/blocks/natural/ores/BlockGravititeOre.java b/src/main/java/com/gildedgames/aether/common/blocks/natural/ores/BlockGravititeOre.java deleted file mode 100644 index fe537611ed..0000000000 --- a/src/main/java/com/gildedgames/aether/common/blocks/natural/ores/BlockGravititeOre.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.gildedgames.aether.common.blocks.natural.ores; - -import com.gildedgames.aether.common.blocks.util.BlockFloating; -import net.minecraft.block.SoundType; -import net.minecraft.block.material.Material; - -public class BlockGravititeOre extends BlockFloating -{ - - public BlockGravititeOre() - { - super(Material.ROCK); - - this.setHardness(3.0f); - this.setResistance(5.0f); - this.setHarvestLevel("pickaxe", 2); - - this.setSoundType(SoundType.STONE); - } - -} diff --git a/src/main/java/com/gildedgames/aether/common/blocks/natural/ores/BlockHolystoneQuartzOre.java b/src/main/java/com/gildedgames/aether/common/blocks/natural/ores/BlockHolystoneQuartzOre.java deleted file mode 100644 index b0ea6d90f9..0000000000 --- a/src/main/java/com/gildedgames/aether/common/blocks/natural/ores/BlockHolystoneQuartzOre.java +++ /dev/null @@ -1,36 +0,0 @@ -package com.gildedgames.aether.common.blocks.natural.ores; - -import com.gildedgames.aether.api.registrar.ItemsAether; -import net.minecraft.block.SoundType; -import net.minecraft.block.material.Material; -import net.minecraft.block.state.IBlockState; -import net.minecraft.init.Items; -import net.minecraft.item.Item; -import net.minecraft.util.math.MathHelper; - -import java.util.Random; - -public class BlockHolystoneQuartzOre extends BlockAetherOre -{ - public BlockHolystoneQuartzOre() - { - super(Material.ROCK); - - this.setHardness(3.0f); - this.setResistance(5.0f); - - this.setSoundType(SoundType.STONE); - } - - @Override - public Item getItemDropped(IBlockState state, Random rand, int fortune) - { - return Items.QUARTZ; - } - - @Override - protected int getUnmodifiedExpDrop(Random rand) - { - return MathHelper.getInt(rand, 2, 8); - } -} diff --git a/src/main/java/com/gildedgames/aether/common/blocks/natural/ores/BlockIcestoneOre.java b/src/main/java/com/gildedgames/aether/common/blocks/natural/ores/BlockIcestoneOre.java deleted file mode 100644 index 94bd28451f..0000000000 --- a/src/main/java/com/gildedgames/aether/common/blocks/natural/ores/BlockIcestoneOre.java +++ /dev/null @@ -1,35 +0,0 @@ -package com.gildedgames.aether.common.blocks.natural.ores; - -import com.gildedgames.aether.api.registrar.ItemsAether; -import net.minecraft.block.SoundType; -import net.minecraft.block.material.Material; -import net.minecraft.block.state.IBlockState; -import net.minecraft.item.Item; -import net.minecraft.util.math.MathHelper; - -import java.util.Random; - -public class BlockIcestoneOre extends BlockAetherOre -{ - public BlockIcestoneOre() - { - super(Material.ROCK); - - this.setHardness(3.0f); - this.setResistance(5.0f); - - this.setSoundType(SoundType.STONE); - } - - @Override - public Item getItemDropped(IBlockState state, Random rand, int fortune) - { - return ItemsAether.icestone; - } - - @Override - protected int getUnmodifiedExpDrop(Random rand) - { - return MathHelper.getInt(rand, 0, 1); - } -} diff --git a/src/main/java/com/gildedgames/aether/common/blocks/natural/ores/BlockZaniteOre.java b/src/main/java/com/gildedgames/aether/common/blocks/natural/ores/BlockZaniteOre.java deleted file mode 100644 index 36b82ce6b8..0000000000 --- a/src/main/java/com/gildedgames/aether/common/blocks/natural/ores/BlockZaniteOre.java +++ /dev/null @@ -1,37 +0,0 @@ -package com.gildedgames.aether.common.blocks.natural.ores; - -import com.gildedgames.aether.api.registrar.ItemsAether; -import net.minecraft.block.SoundType; -import net.minecraft.block.material.Material; -import net.minecraft.block.state.IBlockState; -import net.minecraft.item.Item; -import net.minecraft.util.math.MathHelper; - -import java.util.Random; - -public class BlockZaniteOre extends BlockAetherOre -{ - - public BlockZaniteOre() - { - super(Material.ROCK); - - this.setHardness(3.0f); - this.setResistance(5.0f); - this.setHarvestLevel("pickaxe", 1); - - this.setSoundType(SoundType.STONE); - } - - @Override - public Item getItemDropped(IBlockState state, Random rand, int fortune) - { - return ItemsAether.zanite_gemstone; - } - - @Override - protected int getUnmodifiedExpDrop(Random rand) - { - return MathHelper.getInt(rand, 2, 4); - } -} diff --git a/src/main/java/com/gildedgames/aether/common/blocks/natural/plants/BlockAetherFlower.java b/src/main/java/com/gildedgames/aether/common/blocks/natural/plants/BlockAetherFlower.java deleted file mode 100644 index 67a5ec380b..0000000000 --- a/src/main/java/com/gildedgames/aether/common/blocks/natural/plants/BlockAetherFlower.java +++ /dev/null @@ -1,211 +0,0 @@ -package com.gildedgames.aether.common.blocks.natural.plants; - -import com.gildedgames.aether.api.registrar.BlocksAether; -import com.gildedgames.aether.common.blocks.IBlockMultiName; -import com.gildedgames.aether.common.blocks.IBlockSnowy; -import com.gildedgames.aether.common.blocks.properties.BlockVariant; -import com.gildedgames.aether.common.blocks.properties.PropertyVariant; -import com.gildedgames.aether.common.entities.monsters.EntityAechorPlant; -import net.minecraft.block.BlockSnow; -import net.minecraft.block.SoundType; -import net.minecraft.block.state.BlockStateContainer; -import net.minecraft.block.state.IBlockState; -import net.minecraft.creativetab.CreativeTabs; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.init.Blocks; -import net.minecraft.item.ItemBlock; -import net.minecraft.item.ItemStack; -import net.minecraft.util.EnumFacing; -import net.minecraft.util.EnumHand; -import net.minecraft.util.NonNullList; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.Vec3d; -import net.minecraft.world.EnumSkyBlock; -import net.minecraft.world.IBlockAccess; -import net.minecraft.world.World; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; - -import java.util.Random; - -public class BlockAetherFlower extends BlockAetherPlant implements IBlockMultiName, IBlockSnowy -{ - public static final BlockVariant - WHITE_ROSE = new BlockVariant(0, "white_rose"), - PURPLE_FLOWER = new BlockVariant(1, "purple_flower"), - BURSTBLOSSOM = new BlockVariant(2, "burstblossom"), - AECHOR_SPROUT = new BlockVariant(3, "aechor_sprout"); - - public static final PropertyVariant PROPERTY_VARIANT = PropertyVariant.create("variant", WHITE_ROSE, PURPLE_FLOWER, BURSTBLOSSOM, AECHOR_SPROUT); - - public BlockAetherFlower() - { - this.setSoundType(SoundType.PLANT); - - this.setTickRandomly(true); - - this.setDefaultState(this.getBlockState().getBaseState().withProperty(PROPERTY_VARIANT, WHITE_ROSE).withProperty(PROPERTY_SNOWY, Boolean.FALSE)); - } - - @Override - public void updateTick(final World worldIn, final BlockPos pos, final IBlockState state, final Random rand) - { - super.updateTick(worldIn, pos, state, rand); - - if (!worldIn.isRemote && this.canGrow(worldIn, pos, state, false)) - { - this.grow(worldIn, rand, pos, state); - } - - if (worldIn.getLightFor(EnumSkyBlock.BLOCK, pos) > 11) - { - if (state.getValue(PROPERTY_SNOWY)) - { - worldIn.setBlockState(pos, state.withProperty(PROPERTY_SNOWY, Boolean.FALSE), 2); - } - } - } - - @Override - public int getLightValue(final IBlockState state) - { - return this.lightValue; - } - - @Override - public boolean onBlockActivated(World worldIn, BlockPos pos, IBlockState state, EntityPlayer playerIn, EnumHand hand, EnumFacing facing, float hitX, - float hitY, float hitZ) - { - ItemStack main = playerIn.getHeldItemMainhand(); - ItemStack offhand = playerIn.getHeldItemOffhand(); - - boolean addSnow = false; - - if (!state.getValue(PROPERTY_SNOWY)) - { - if (main != null && main.getItem() instanceof ItemBlock) - { - if (((ItemBlock) main.getItem()).getBlock() instanceof BlockSnow) - { - addSnow = true; - main.shrink(1); - } - } - else if (offhand != null && offhand.getItem() instanceof ItemBlock && ((ItemBlock) offhand.getItem()).getBlock() instanceof BlockSnow) - { - addSnow = true; - offhand.shrink(1); - } - } - - if (addSnow) - { - worldIn.setBlockState(pos, state.withProperty(PROPERTY_SNOWY, Boolean.TRUE), 2); - } - - return addSnow; - } - - @Override - public void onPlayerDestroy(World worldIn, BlockPos pos, IBlockState state) - { - if (state.getValue(PROPERTY_SNOWY)) - { - if (worldIn.getBlockState(pos.down()) != Blocks.AIR.getDefaultState()) - { - worldIn.setBlockState(pos, BlocksAether.highlands_snow_layer.getDefaultState().withProperty(BlockSnow.LAYERS, 1), 2); - } - } - } - - @Override - @SideOnly(Side.CLIENT) - public void getSubBlocks(final CreativeTabs tab, final NonNullList<ItemStack> list) - { - for (final BlockVariant variant : PROPERTY_VARIANT.getAllowedValues()) - { - list.add(new ItemStack(this, 1, variant.getMeta())); - } - } - - @Override - public int damageDropped(final IBlockState state) - { - return state.getValue(PROPERTY_VARIANT).getMeta(); - } - - @Override - public IBlockState getStateFromMeta(final int meta) - { - final boolean snowy = meta >= PROPERTY_VARIANT.getAllowedValues().size(); - - return this.getDefaultState().withProperty(PROPERTY_VARIANT, PROPERTY_VARIANT.fromMeta(meta - (snowy ? PROPERTY_VARIANT.getAllowedValues().size() : 0))) - .withProperty(PROPERTY_SNOWY, snowy); - } - - @Override - public int getMetaFromState(final IBlockState state) - { - return state.getValue(PROPERTY_VARIANT).getMeta() + (state.getValue(PROPERTY_SNOWY) ? PROPERTY_VARIANT.getAllowedValues().size() : 0); - } - - @Override - protected BlockStateContainer createBlockState() - { - return new BlockStateContainer(this, PROPERTY_VARIANT, PROPERTY_SNOWY); - } - - @Override - public EnumOffsetType getOffsetType() - { - return EnumOffsetType.XZ; - } - - @Override - public Vec3d getOffset(final IBlockState state, final IBlockAccess access, final BlockPos pos) - { - if (state.getValue(PROPERTY_SNOWY)) - { - return Vec3d.ZERO; - } - - return super.getOffset(state, access, pos); - } - - @Override - public String getTranslationKey(final ItemStack stack) - { - return PROPERTY_VARIANT.fromMeta(stack.getMetadata()).getName(); - } - - @Override - public boolean canGrow(final World worldIn, final BlockPos pos, final IBlockState state, final boolean isClient) - { - BlockVariant variant = state.getValue(PROPERTY_VARIANT); - - return variant == AECHOR_SPROUT; - } - - @Override - public boolean canUseBonemeal(final World worldIn, final Random rand, final BlockPos pos, final IBlockState state) - { - return true; - } - - @Override - public void grow(final World worldIn, final Random rand, final BlockPos pos, final IBlockState state) - { - if (worldIn.getLightFromNeighbors(pos.up()) >= 9 && worldIn.rand.nextInt(7) == 0) - { - worldIn.destroyBlock(pos, false); - - EntityAechorPlant aechorPlant = new EntityAechorPlant(worldIn); - - aechorPlant.posX = pos.getX() + .5f; - aechorPlant.posY = pos.getY(); - aechorPlant.posZ = pos.getZ() + .5f; - - worldIn.spawnEntity(aechorPlant); - } - } -} diff --git a/src/main/java/com/gildedgames/aether/common/blocks/natural/plants/BlockAetherFlowerBase.java b/src/main/java/com/gildedgames/aether/common/blocks/natural/plants/BlockAetherFlowerBase.java deleted file mode 100644 index 5800a7a2c3..0000000000 --- a/src/main/java/com/gildedgames/aether/common/blocks/natural/plants/BlockAetherFlowerBase.java +++ /dev/null @@ -1,154 +0,0 @@ -package com.gildedgames.aether.common.blocks.natural.plants; - -import com.gildedgames.aether.api.registrar.BlocksAether; -import com.gildedgames.aether.common.blocks.IBlockSnowy; -import net.minecraft.block.BlockSnow; -import net.minecraft.block.SoundType; -import net.minecraft.block.state.BlockStateContainer; -import net.minecraft.block.state.IBlockState; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.init.Blocks; -import net.minecraft.item.ItemBlock; -import net.minecraft.item.ItemStack; -import net.minecraft.util.EnumFacing; -import net.minecraft.util.EnumHand; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.Vec3d; -import net.minecraft.world.EnumSkyBlock; -import net.minecraft.world.IBlockAccess; -import net.minecraft.world.World; - -import java.util.Random; - -public class BlockAetherFlowerBase extends BlockAetherPlant implements IBlockSnowy -{ - public final static int SNOWY_META = 1, NORMAL_META = 0; - - public BlockAetherFlowerBase() - { - this.setSoundType(SoundType.PLANT); - - this.setTickRandomly(true); - - this.setDefaultState(this.getBlockState().getBaseState().withProperty(PROPERTY_SNOWY, Boolean.FALSE)); - } - - @Override - public void updateTick(final World worldIn, final BlockPos pos, final IBlockState state, final Random rand) - { - super.updateTick(worldIn, pos, state, rand); - - if (!worldIn.isRemote && this.canGrow(worldIn, pos, state, false)) - { - this.grow(worldIn, rand, pos, state); - } - - if (worldIn.getLightFor(EnumSkyBlock.BLOCK, pos) > 11) - { - if (state.getValue(PROPERTY_SNOWY)) - { - worldIn.setBlockState(pos, state.withProperty(PROPERTY_SNOWY, Boolean.FALSE), 2); - } - } - } - - @Override - public boolean canPlaceBlockAt(final World world, final BlockPos pos) - { - return super.canPlaceBlockAt(world, pos); - } - - @Override - public int getLightValue(final IBlockState state) - { - return this.lightValue; - } - - @Override - public boolean onBlockActivated(World worldIn, BlockPos pos, IBlockState state, EntityPlayer playerIn, EnumHand hand, EnumFacing facing, float hitX, - float hitY, float hitZ) - { - ItemStack main = playerIn.getHeldItemMainhand(); - ItemStack offhand = playerIn.getHeldItemOffhand(); - - boolean addSnow = false; - - if (!state.getValue(PROPERTY_SNOWY)) - { - if (main != null && main.getItem() instanceof ItemBlock) - { - if (((ItemBlock) main.getItem()).getBlock() instanceof BlockSnow) - { - addSnow = true; - main.shrink(1); - } - } - else if (offhand != null && offhand.getItem() instanceof ItemBlock && ((ItemBlock) offhand.getItem()).getBlock() instanceof BlockSnow) - { - addSnow = true; - offhand.shrink(1); - } - } - - if (addSnow) - { - worldIn.setBlockState(pos, state.withProperty(PROPERTY_SNOWY, Boolean.TRUE), 2); - } - - return addSnow; - } - - @Override - public void onPlayerDestroy(World worldIn, BlockPos pos, IBlockState state) - { - if (state.getValue(PROPERTY_SNOWY)) - { - if (worldIn.getBlockState(pos.down()) != Blocks.AIR.getDefaultState()) - { - worldIn.setBlockState(pos, BlocksAether.highlands_snow_layer.getDefaultState().withProperty(BlockSnow.LAYERS, 1), 2); - } - } - } - - @Override - public IBlockState getStateFromMeta(final int meta) - { - return this.getDefaultState().withProperty(PROPERTY_SNOWY, meta == SNOWY_META); - } - - @Override - public int getMetaFromState(final IBlockState state) - { - return state.getValue(PROPERTY_SNOWY) ? SNOWY_META : NORMAL_META; - } - - @Override - protected BlockStateContainer createBlockState() - { - return new BlockStateContainer(this, PROPERTY_SNOWY); - } - - @Override - public EnumOffsetType getOffsetType() - { - return EnumOffsetType.XZ; - } - - @Override - public Vec3d getOffset(final IBlockState state, final IBlockAccess access, final BlockPos pos) - { - if (state.getValue(PROPERTY_SNOWY)) - { - return Vec3d.ZERO; - } - - return super.getOffset(state, access, pos); - } - - @Override - public boolean canUseBonemeal(final World worldIn, final Random rand, final BlockPos pos, final IBlockState state) - { - return false; - } - -} diff --git a/src/main/java/com/gildedgames/aether/common/blocks/natural/plants/BlockAetherMushroom.java b/src/main/java/com/gildedgames/aether/common/blocks/natural/plants/BlockAetherMushroom.java deleted file mode 100644 index a84850ebc3..0000000000 --- a/src/main/java/com/gildedgames/aether/common/blocks/natural/plants/BlockAetherMushroom.java +++ /dev/null @@ -1,106 +0,0 @@ -package com.gildedgames.aether.common.blocks.natural.plants; - -import com.gildedgames.aether.api.registrar.BlocksAether; -import net.minecraft.block.BlockDirt; -import net.minecraft.block.state.IBlockState; -import net.minecraft.init.Blocks; -import net.minecraft.util.EnumFacing; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.IBlockAccess; -import net.minecraft.world.World; -import net.minecraftforge.common.EnumPlantType; -import net.minecraftforge.common.IPlantable; - -import java.util.Random; - -public class BlockAetherMushroom extends BlockAetherFlowerBase implements IPlantable -{ - public BlockAetherMushroom() - { - this.setTickRandomly(true); - } - - @Override - public void updateTick(World worldIn, BlockPos pos, IBlockState state, Random rand) - { - if (rand.nextInt(25) == 0) - { - int i = 5; - int j = 4; - - for (BlockPos blockpos : BlockPos.getAllInBoxMutable(pos.add(-4, -1, -4), pos.add(4, 1, 4))) - { - if (worldIn.getBlockState(blockpos).getBlock() == this) - { - --i; - - if (i <= 0) - { - return; - } - } - } - - BlockPos blockpos1 = pos.add(rand.nextInt(3) - 1, rand.nextInt(2) - rand.nextInt(2), rand.nextInt(3) - 1); - - for (int k = 0; k < 4; ++k) - { - if (worldIn.isAirBlock(blockpos1) && this.canBlockStay(worldIn, blockpos1, this.getDefaultState())) - { - pos = blockpos1; - } - - blockpos1 = pos.add(rand.nextInt(3) - 1, rand.nextInt(2) - rand.nextInt(2), rand.nextInt(3) - 1); - } - - if (worldIn.isAirBlock(blockpos1) && this.canBlockStay(worldIn, blockpos1, this.getDefaultState())) - { - worldIn.setBlockState(blockpos1, this.getDefaultState(), 2); - } - } - } - - public boolean canBlockStay(World worldIn, BlockPos pos, IBlockState state) - { - if (pos.getY() >= 0 && pos.getY() < 256) - { - IBlockState iblockstate = worldIn.getBlockState(pos.down()); - - return worldIn.getLight(pos) < 13 && iblockstate.getBlock().canSustainPlant(iblockstate, worldIn, pos.down(), net.minecraft.util.EnumFacing.UP, this); - } - else - { - return false; - } - } - - @Override - public boolean isSuitableSoilBlock(World world, BlockPos pos, final IBlockState state) - { - if (state.getBlock() == BlocksAether.aether_dirt) - { - return true; - } - else - { - return world.getLight(pos) < 13 && state.getBlock().canSustainPlant(state, world, pos.down(), EnumFacing.UP, this); - } - } - - @Override - public EnumPlantType getPlantType(IBlockAccess world, BlockPos pos) - { - return EnumPlantType.Cave; - } - - @Override - public IBlockState getPlant(net.minecraft.world.IBlockAccess world, BlockPos pos) - { - IBlockState state = world.getBlockState(pos); - if (state.getBlock() != this) - { - return this.getDefaultState(); - } - return state; - } -} diff --git a/src/main/java/com/gildedgames/aether/common/blocks/natural/plants/BlockAetherPlant.java b/src/main/java/com/gildedgames/aether/common/blocks/natural/plants/BlockAetherPlant.java deleted file mode 100644 index 702f01e845..0000000000 --- a/src/main/java/com/gildedgames/aether/common/blocks/natural/plants/BlockAetherPlant.java +++ /dev/null @@ -1,140 +0,0 @@ -package com.gildedgames.aether.common.blocks.natural.plants; - -import com.gildedgames.aether.api.registrar.BlocksAether; -import net.minecraft.block.Block; -import net.minecraft.block.IGrowable; -import net.minecraft.block.material.Material; -import net.minecraft.block.state.BlockFaceShape; -import net.minecraft.block.state.IBlockState; -import net.minecraft.util.BlockRenderLayer; -import net.minecraft.util.EnumFacing; -import net.minecraft.util.math.AxisAlignedBB; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.IBlockAccess; -import net.minecraft.world.World; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; - -import javax.annotation.Nullable; -import java.util.Random; - -public class BlockAetherPlant extends Block implements IGrowable -{ - protected static final AxisAlignedBB PLANT_AABB = new AxisAlignedBB(0.3D, 0.0D, 0.3D, 0.7D, 0.6D, 0.7D); - - public BlockAetherPlant() - { - super(Material.PLANTS); - } - - public BlockAetherPlant(final Material material) - { - super(material); - } - - public boolean isSuitableSoilBlock(World world, BlockPos pos, final IBlockState blockUnderneath) - { - return blockUnderneath.getBlock() == BlocksAether.aether_grass || blockUnderneath.getBlock() == BlocksAether.aether_dirt; - } - - @Override - public boolean canPlaceBlockAt(final World world, final BlockPos pos) - { - final IBlockState soilBlock = world.getBlockState(pos.down()); - - return this.isSuitableSoilBlock(world, pos, soilBlock); - } - - @Override - public void neighborChanged(final IBlockState state, final World world, final BlockPos pos, final Block block, final BlockPos fromPos) - { - if (!this.validatePosition(world, pos, state)) - { - this.invalidateBlock(world, pos, state); - } - } - - public boolean validatePosition(final World world, final BlockPos pos, final IBlockState state) - { - return this.canPlaceBlockAt(world, pos); - } - - protected void invalidateBlock(final World world, final BlockPos pos, final IBlockState state) - { - final IBlockState soilBlock = world.getBlockState(pos.down()); - - if (!this.isSuitableSoilBlock(world, pos, soilBlock)) - { - world.setBlockToAir(pos); - } - else - { - this.dropBlockAsItem(world, pos, state, 0); - - world.setBlockToAir(pos); - } - - } - - @Override - public AxisAlignedBB getBoundingBox(final IBlockState state, final IBlockAccess source, final BlockPos pos) - { - return PLANT_AABB; - } - - @Override - @Nullable - public AxisAlignedBB getCollisionBoundingBox(final IBlockState blockState, final IBlockAccess worldIn, final BlockPos pos) - { - return NULL_AABB; - } - - @Override - public boolean isOpaqueCube(final IBlockState state) - { - return false; - } - - @Override - public boolean isFullCube(final IBlockState state) - { - return false; - } - - @Override - public boolean isFullBlock(final IBlockState state) - { - return false; - } - - @Override - @SideOnly(Side.CLIENT) - public BlockRenderLayer getRenderLayer() - { - return BlockRenderLayer.CUTOUT; - } - - @Override - public boolean canGrow(final World worldIn, final BlockPos pos, final IBlockState state, final boolean isClient) - { - return false; - } - - @Override - public boolean canUseBonemeal(final World worldIn, final Random rand, final BlockPos pos, final IBlockState state) - { - return false; - } - - @Override - public void grow(final World worldIn, final Random rand, final BlockPos pos, final IBlockState state) - { - - } - - @Override - public BlockFaceShape getBlockFaceShape(IBlockAccess worldIn, IBlockState state, BlockPos pos, EnumFacing face) - { - return BlockFaceShape.UNDEFINED; - } -} \ No newline at end of file diff --git a/src/main/java/com/gildedgames/aether/common/blocks/natural/plants/BlockBlueberryBush.java b/src/main/java/com/gildedgames/aether/common/blocks/natural/plants/BlockBlueberryBush.java deleted file mode 100644 index 72f7f28e45..0000000000 --- a/src/main/java/com/gildedgames/aether/common/blocks/natural/plants/BlockBlueberryBush.java +++ /dev/null @@ -1,208 +0,0 @@ -package com.gildedgames.aether.common.blocks.natural.plants; - -import com.gildedgames.aether.api.registrar.BlocksAether; -import com.gildedgames.aether.api.registrar.ItemsAether; -import com.gildedgames.aether.common.blocks.IBlockMultiName; -import com.gildedgames.aether.common.blocks.natural.BlockAetherGrass; -import com.google.common.collect.Lists; -import net.minecraft.block.Block; -import net.minecraft.block.IGrowable; -import net.minecraft.block.SoundType; -import net.minecraft.block.properties.PropertyBool; -import net.minecraft.block.state.BlockStateContainer; -import net.minecraft.block.state.IBlockState; -import net.minecraft.creativetab.CreativeTabs; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraft.util.NonNullList; -import net.minecraft.util.math.AxisAlignedBB; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.IBlockAccess; -import net.minecraft.world.World; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; - -import javax.annotation.Nullable; -import java.util.List; -import java.util.Random; - -public class BlockBlueberryBush extends BlockAetherPlant implements IBlockMultiName, IGrowable -{ - public static final int - BERRY_BUSH_STEM = 0, - BERRY_BUSH_RIPE = 1; - - public static final PropertyBool PROPERTY_HARVESTABLE = PropertyBool.create("harvestable"); - - private static final AxisAlignedBB BUSH_AABB = new AxisAlignedBB(0.2D, 0.0D, 0.2D, 0.8D, 0.8D, 0.8D); - - public BlockBlueberryBush() - { - this.setHardness(1.0f); - - this.setSoundType(SoundType.PLANT); - - this.setTickRandomly(true); - } - - @Override - public float getBlockHardness(final IBlockState blockState, final World worldIn, final BlockPos pos) - { - if (blockState.getValue(PROPERTY_HARVESTABLE)) - { - return 0.0f; - } - - return super.getBlockHardness(blockState, worldIn, pos); - } - - @Override - @SideOnly(Side.CLIENT) - public void getSubBlocks(final CreativeTabs tab, final NonNullList<ItemStack> list) - { - list.add(new ItemStack(this, 1, BERRY_BUSH_STEM)); - list.add(new ItemStack(this, 1, BERRY_BUSH_RIPE)); - } - - @Override - public boolean removedByPlayer(final IBlockState state, final World world, final BlockPos pos, final EntityPlayer player, final boolean willHarvest) - { - if (state.getValue(PROPERTY_HARVESTABLE)) - { - if (player.capabilities.isCreativeMode) - { - world.setBlockToAir(pos); - - return false; - } - - if (!world.isRemote) - { - for (final ItemStack item : this.getFruitDrops(world, pos, state)) - { - Block.spawnAsEntity(world, pos, item); - } - } - - world.setBlockState(pos, state.withProperty(PROPERTY_HARVESTABLE, false)); - - return false; - } - - return super.removedByPlayer(state, world, pos, player, willHarvest); - } - - @Override - public List<ItemStack> getDrops(final IBlockAccess world, final BlockPos pos, final IBlockState state, final int fortune) - { - final List<ItemStack> items = super.getDrops(world, pos, state, fortune); - - items.addAll(this.getFruitDrops(world, pos, state)); - - return items; - } - - private List<ItemStack> getFruitDrops(final IBlockAccess world, final BlockPos pos, final IBlockState state) - { - final Random rand = world instanceof World ? ((World) world).rand : new Random(); - - final IBlockState stateUnderneath = world.getBlockState(pos.down()); - - final boolean applyBonus = stateUnderneath.getBlock() == BlocksAether.aether_grass - && stateUnderneath.getValue(BlockAetherGrass.PROPERTY_VARIANT) == BlockAetherGrass.ENCHANTED; - - final int count = state.getValue(PROPERTY_HARVESTABLE) ? (rand.nextInt(2) + (applyBonus ? 2 : 1)) : 0; - - return Lists.newArrayList(new ItemStack(ItemsAether.blueberries, count)); - } - - @Override - public void updateTick(final World world, final BlockPos pos, final IBlockState state, final Random random) - { - if (!state.getValue(PROPERTY_HARVESTABLE)) - { - if (world.getLight(pos) >= 9) - { - if (random.nextInt(60) == 0) - { - world.setBlockState(pos, state.withProperty(PROPERTY_HARVESTABLE, true)); - } - } - } - } - - @Override - public int damageDropped(final IBlockState state) - { - return BERRY_BUSH_STEM; - } - - @Override - public boolean canGrow(final World worldIn, final BlockPos pos, final IBlockState state, final boolean isClient) - { - return !state.getValue(PROPERTY_HARVESTABLE); - } - - @Override - public boolean canUseBonemeal(final World worldIn, final Random rand, final BlockPos pos, final IBlockState state) - { - return !state.getValue(PROPERTY_HARVESTABLE); - } - - @Override - public void grow(final World world, final Random rand, final BlockPos pos, final IBlockState state) - { - world.setBlockState(pos, state.withProperty(PROPERTY_HARVESTABLE, true)); - } - - @Override - public boolean isFullBlock(final IBlockState state) - { - return state.getValue(PROPERTY_HARVESTABLE); - } - - @Override - public IBlockState getStateFromMeta(final int meta) - { - return this.getDefaultState().withProperty(PROPERTY_HARVESTABLE, meta == BERRY_BUSH_RIPE); - } - - @Override - public int getMetaFromState(final IBlockState state) - { - return state.getValue(PROPERTY_HARVESTABLE) ? BERRY_BUSH_RIPE : BERRY_BUSH_STEM; - } - - @Override - protected BlockStateContainer createBlockState() - { - return new BlockStateContainer(this, PROPERTY_HARVESTABLE); - } - - @Override - public AxisAlignedBB getBoundingBox(final IBlockState state, final IBlockAccess source, final BlockPos pos) - { - return state.getValue(PROPERTY_HARVESTABLE) ? FULL_BLOCK_AABB : BUSH_AABB; - } - - @Override - @Nullable - public AxisAlignedBB getCollisionBoundingBox(final IBlockState state, final IBlockAccess worldIn, final BlockPos pos) - { - return state.getValue(PROPERTY_HARVESTABLE) ? FULL_BLOCK_AABB : NULL_AABB; - } - - @Override - public String getTranslationKey(final ItemStack stack) - { - switch (stack.getMetadata()) - { - case BERRY_BUSH_STEM: - return "stem"; - case BERRY_BUSH_RIPE: - return "ripe"; - default: - return "missingno"; - } - } -} diff --git a/src/main/java/com/gildedgames/aether/common/blocks/natural/plants/BlockBrettlPlant.java b/src/main/java/com/gildedgames/aether/common/blocks/natural/plants/BlockBrettlPlant.java deleted file mode 100644 index 90fd52d6e0..0000000000 --- a/src/main/java/com/gildedgames/aether/common/blocks/natural/plants/BlockBrettlPlant.java +++ /dev/null @@ -1,398 +0,0 @@ -package com.gildedgames.aether.common.blocks.natural.plants; - -import com.gildedgames.aether.api.registrar.BlocksAether; -import com.gildedgames.aether.api.registrar.ItemsAether; -import com.gildedgames.aether.common.blocks.IBlockMultiName; -import com.gildedgames.aether.common.blocks.properties.BlockVariant; -import com.gildedgames.aether.common.blocks.properties.PropertyVariant; -import net.minecraft.block.Block; -import net.minecraft.block.IGrowable; -import net.minecraft.block.SoundType; -import net.minecraft.block.properties.PropertyBool; -import net.minecraft.block.properties.PropertyInteger; -import net.minecraft.block.state.BlockStateContainer; -import net.minecraft.block.state.IBlockState; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.init.Blocks; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.util.EnumFacing; -import net.minecraft.util.math.AxisAlignedBB; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.RayTraceResult; -import net.minecraft.world.IBlockAccess; -import net.minecraft.world.World; - -import java.util.Random; - -public class BlockBrettlPlant extends BlockAetherPlant implements IBlockMultiName, IGrowable -{ - public static final BlockVariant - BASE = new BlockVariant(0, "base"), - MID = new BlockVariant(1, "mid"), - TOP = new BlockVariant(2, "top"), - BASE_G = new BlockVariant(3, "base_g"), - MID_G = new BlockVariant(4, "mid_g"), - TOP_G = new BlockVariant(5, "top_g"); - - public static final PropertyVariant PROPERTY_VARIANT = PropertyVariant.create("variant", BASE, MID, TOP, BASE_G, MID_G, TOP_G); - - public static final PropertyBool PROPERTY_HARVESTABLE = PropertyBool.create("harvestable"); - - public static final PropertyInteger PROPERTY_AGE = PropertyInteger.create("age", 0, 10); - - protected static final AxisAlignedBB BRETTL_AABB = new AxisAlignedBB(0.25D, 0.0D, 0.25D, 0.75D, 1.25D, 0.75D); - - protected static final AxisAlignedBB BRETTL_TOP_AAB = new AxisAlignedBB(0D, 0D, 0D, 0D, 0D, 0D); - - protected static final AxisAlignedBB BRETTL_MID_AAB = new AxisAlignedBB(0.25D, 0.0D, 0.25D, 0.75D, 1.5D, 0.75D); - - protected static final AxisAlignedBB BRETTL_MID_G_AAB = new AxisAlignedBB(0D, 0D, 0D, 1.0D, 1.5D, 1.0D); - - private static final int BRETTL_PLANT_BASE = 0, BRETTL_PLANT_MID = 1, BRETTL_PLANT_TOP = 2, - BRETTL_PLANT_BASE_G = 3, BRETTL_PLANT_MID_G = 4, BRETTL_PLANT_TOP_G = 5; - - public BlockBrettlPlant() - { - this.setHardness(0.0f); - this.setSoundType(SoundType.PLANT); - this.setTickRandomly(true); - } - - @Override - protected BlockStateContainer createBlockState() - { - return new BlockStateContainer(this, PROPERTY_VARIANT, PROPERTY_HARVESTABLE, PROPERTY_AGE); - } - - @Override - public int getMetaFromState(IBlockState state) - { - return state.getValue(PROPERTY_VARIANT).getMeta(); - } - - @Override - public IBlockState getStateFromMeta(int meta) - { - if (meta <= 2) - { - return this.getDefaultState().withProperty(PROPERTY_VARIANT, PROPERTY_VARIANT.fromMeta(meta)).withProperty(PROPERTY_HARVESTABLE, false) - .withProperty(PROPERTY_AGE, 0); - } - - return this.getDefaultState().withProperty(PROPERTY_VARIANT, PROPERTY_VARIANT.fromMeta(meta)).withProperty(PROPERTY_HARVESTABLE, true) - .withProperty(PROPERTY_AGE, 0); - } - - @Override - public ItemStack getPickBlock(IBlockState state, RayTraceResult target, World world, BlockPos pos, EntityPlayer player) - { - return new ItemStack(ItemsAether.brettl_cane); - } - - @Override - public void updateTick(World world, BlockPos pos, IBlockState state, Random rand) - { - if (!state.getValue(PROPERTY_HARVESTABLE)) - { - if (world.getLight(pos) >= 9) - { - if (state.getValue(PROPERTY_VARIANT).getMeta() == BRETTL_PLANT_BASE) - { - if (world.getBlockState(pos.up()).getBlock() == BlocksAether.brettl_plant) - { - if (world.getBlockState(pos.up(2)).getBlock() == BlocksAether.brettl_plant || world.isAirBlock(pos.up(2))) - { - if (rand.nextInt(5) == 0) - { - this.grow(world, rand, pos, state); - } - } - - } - } - - else if (state.getValue(PROPERTY_VARIANT).getMeta() == BRETTL_PLANT_MID) - { - if (world.getBlockState(pos.up()).getBlock() == BlocksAether.brettl_plant && world.getBlockState(pos.up()).getValue(PROPERTY_VARIANT).getMeta() == BRETTL_PLANT_MID) - { - - if (rand.nextInt(5) == 0) - { - this.grow(world, rand, pos, state); - } - } - } - } - } - else - { - if (state.getValue(PROPERTY_AGE) >= 8) - { - if (state.getValue(PROPERTY_VARIANT).getMeta() == BRETTL_PLANT_TOP_G) - { - this.fullyPrunePlant(world, pos.down(), state); - - } - else if (state.getValue(PROPERTY_VARIANT).getMeta() == BRETTL_PLANT_MID_G) - { - this.fullyPrunePlant(world, pos, state); - } - else - { - this.fullyPrunePlant(world, pos.up(), state); - } - } - else - { - world.setBlockState(pos, state.withProperty(PROPERTY_AGE, state.getValue(PROPERTY_AGE) + 1)); - } - } - } - - @Override - public boolean canGrow(World worldIn, BlockPos pos, IBlockState state, boolean isClient) - { - if (state.getValue(PROPERTY_VARIANT).getMeta() == BRETTL_PLANT_BASE) - { - if (worldIn.getBlockState(pos.up()).getBlock() == BlocksAether.brettl_plant || worldIn.isAirBlock(pos.up())) - { - return worldIn.getBlockState(pos.up(2)).getBlock() == BlocksAether.brettl_plant || worldIn.isAirBlock(pos.up(2)); - } - - return false; - } - - if (state.getValue(PROPERTY_VARIANT).getMeta() == BRETTL_PLANT_MID) - { - return worldIn.getBlockState(pos.up()).getBlock() == BlocksAether.brettl_plant || worldIn.isAirBlock(pos.up()); - - } - - if (state.getValue(PROPERTY_VARIANT).getMeta() == BRETTL_PLANT_TOP) - { - if (worldIn.getBlockState(pos.down()).getValue(PROPERTY_VARIANT).getMeta() == BRETTL_PLANT_BASE) - { - return worldIn.isAirBlock(pos.up()); - } - - return worldIn.getBlockState(pos.down()).getValue(PROPERTY_VARIANT).getMeta() == BRETTL_PLANT_MID; - } - - return false; - } - - @Override - public boolean canUseBonemeal(World worldIn, Random rand, BlockPos pos, IBlockState state) - { - return !state.getValue(PROPERTY_HARVESTABLE); - } - - @Override - public void grow(World worldIn, Random rand, BlockPos pos, IBlockState state) - { - if (state.getValue(PROPERTY_VARIANT).getMeta() == BRETTL_PLANT_BASE) - { - if (worldIn.getBlockState(pos.up()).getBlock() == BlocksAether.brettl_plant && (worldIn.isAirBlock(pos.up()) || worldIn.getBlockState(pos.up()).getValue(PROPERTY_VARIANT).getMeta() == BRETTL_PLANT_TOP)) - { - worldIn.setBlockState(pos.up(), this.getDefaultState().withProperty(PROPERTY_VARIANT, MID).withProperty(PROPERTY_HARVESTABLE, false)); - worldIn.setBlockState(pos.up(2), this.getDefaultState().withProperty(PROPERTY_VARIANT, TOP).withProperty(PROPERTY_HARVESTABLE, false)); - } - else if (worldIn.getBlockState(pos.up(2)).getBlock() == BlocksAether.brettl_plant && worldIn.getBlockState(pos.up(2)).getValue(PROPERTY_VARIANT).getMeta() == BRETTL_PLANT_TOP) - { - worldIn.setBlockState(pos.up(2), this.getDefaultState().withProperty(PROPERTY_VARIANT, TOP_G).withProperty(PROPERTY_HARVESTABLE, false)); - } - else if (worldIn.getBlockState(pos.up(2)).getBlock() == BlocksAether.brettl_plant && (worldIn.getBlockState(pos.up(2)).getValue(PROPERTY_VARIANT).getMeta() == BRETTL_PLANT_TOP_G)) - { - this.fullyGrowPlant(worldIn, pos.up(), state); - } - } - else if (state.getValue(PROPERTY_VARIANT).getMeta() == BRETTL_PLANT_MID) - { - if (worldIn.getBlockState(pos.up()).getBlock() == BlocksAether.brettl_plant && worldIn.getBlockState(pos.up()).getValue(PROPERTY_VARIANT).getMeta() == BRETTL_PLANT_TOP) - { - worldIn.setBlockState(pos.up(), this.getDefaultState().withProperty(PROPERTY_VARIANT, TOP_G).withProperty(PROPERTY_HARVESTABLE, false)); - } - else if (worldIn.getBlockState(pos.up()).getBlock() == BlocksAether.brettl_plant&& worldIn.getBlockState(pos.up()).getValue(PROPERTY_VARIANT).getMeta() == BRETTL_PLANT_TOP_G) - { - this.fullyGrowPlant(worldIn, pos, state); - } - } - } - - @Override - public int damageDropped(IBlockState state) - { - return BRETTL_PLANT_BASE; - } - - @Override - public boolean removedByPlayer(IBlockState state, World world, BlockPos pos, EntityPlayer player, boolean willHarvest) - { - if (state.getValue(PROPERTY_HARVESTABLE)) - { - if (player.capabilities.isCreativeMode) - { - world.setBlockToAir(pos); - - return false; - } - - if (!world.isRemote) - { - Block.spawnAsEntity(world, pos, new ItemStack(ItemsAether.brettl_grass)); - Block.spawnAsEntity(world, pos, new ItemStack(ItemsAether.brettl_grass)); - } - - if (state.getValue(PROPERTY_VARIANT).getMeta() == BRETTL_PLANT_BASE_G) - { - this.fullyPrunePlant(world, pos.up(), state); - } - else if (state.getValue(PROPERTY_VARIANT).getMeta() == BRETTL_PLANT_MID_G) - { - this.fullyPrunePlant(world, pos, state); - } - else if (state.getValue(PROPERTY_VARIANT).getMeta() == BRETTL_PLANT_TOP_G) - { - this.fullyPrunePlant(world, pos.down(), state); - } - - return false; - } - - return super.removedByPlayer(state, world, pos, player, willHarvest); - } - - @Override - public Item getItemDropped(IBlockState state, Random rand, int fortune) - { - if (state.getValue(PROPERTY_VARIANT).getMeta() != BRETTL_PLANT_TOP && state.getValue(PROPERTY_VARIANT).getMeta() != BRETTL_PLANT_TOP_G) - { - return ItemsAether.brettl_cane; - } - - return null; - } - - @Override - public String getTranslationKey(ItemStack stack) - { - return PROPERTY_VARIANT.fromMeta(stack.getMetadata()).getName(); - } - - @Override - public boolean canPlaceBlockAt(World world, BlockPos pos) - { - IBlockState downBlock = world.getBlockState(pos); - - return this.isSuitableSoilBlock(world, pos, downBlock); - } - - @Override - public boolean isSuitableSoilBlock(World world, BlockPos pos, IBlockState state) - { - return state.getBlock() == BlocksAether.quicksoil || state.getBlock() == BlocksAether.brettl_plant; - } - - @Override - public IBlockState getStateForPlacement(World worldIn, BlockPos pos, EnumFacing facing, float hitX, float hitY, float hitZ, int meta, - EntityLivingBase placer) - { - if (this.canPlaceBlockAt(worldIn, pos)) - { - return this.getDefaultState().withProperty(PROPERTY_VARIANT, BASE).withProperty(PROPERTY_HARVESTABLE, false); - } - - return Blocks.AIR.getDefaultState(); - } - - @Override - public AxisAlignedBB getBoundingBox(IBlockState state, IBlockAccess source, BlockPos pos) - { - if (state.getValue(PROPERTY_HARVESTABLE)) - { - if (state.getValue(PROPERTY_VARIANT).getMeta() != BRETTL_PLANT_TOP_G) - { - if (state.getValue(PROPERTY_VARIANT).getMeta() == BRETTL_PLANT_MID_G) - { - return BRETTL_MID_G_AAB; - } - return FULL_BLOCK_AABB; - } - - return BRETTL_TOP_AAB; - } - else - { - if (state.getValue(PROPERTY_VARIANT).getMeta() == BRETTL_PLANT_MID) - { - return BRETTL_MID_AAB; - } - - if (state.getValue(PROPERTY_VARIANT).getMeta() == BRETTL_PLANT_TOP || state.getValue(PROPERTY_VARIANT).getMeta() == BRETTL_PLANT_TOP_G) - { - return BRETTL_TOP_AAB; - } - } - - return BRETTL_AABB; - } - - @Override - public void neighborChanged(IBlockState state, World worldIn, BlockPos pos, Block blockIn, BlockPos fromPos) - { - if (worldIn.isAirBlock(pos.down())) - { - if (state.getValue(PROPERTY_VARIANT).getMeta() != BRETTL_PLANT_TOP && state.getValue(PROPERTY_VARIANT).getMeta() != BRETTL_PLANT_TOP_G) - { - spawnAsEntity(worldIn, pos, new ItemStack(ItemsAether.brettl_cane)); - if (state.getValue(PROPERTY_HARVESTABLE)) - { - spawnAsEntity(worldIn, pos, new ItemStack(ItemsAether.brettl_grass)); - } - } - worldIn.setBlockToAir(pos); - } - - // Causes a new top state to be placed ontop of an existing bot/mid section. - if (state.getValue(PROPERTY_VARIANT).getMeta() == BRETTL_PLANT_MID || state.getValue(PROPERTY_VARIANT).getMeta() == BRETTL_PLANT_BASE) - { - if (worldIn.isAirBlock(pos.up())) - { - if (!worldIn.isAirBlock(pos)) - { - worldIn.setBlockState(pos.up(), state.withProperty(PROPERTY_VARIANT, TOP).withProperty(PROPERTY_HARVESTABLE, false)); - } - if (worldIn.getBlockState(pos.up(2)).getBlock() == BlocksAether.brettl_plant) - { - worldIn.setBlockToAir(pos.up(2)); - } - } - } - - } - - // pos should be set to the middle of the 3 states. - public void fullyGrowPlant(World worldIn, BlockPos pos, IBlockState state) - { - worldIn.setBlockState(pos.down(), - this.getDefaultState().withProperty(PROPERTY_VARIANT, BASE_G).withProperty(PROPERTY_HARVESTABLE, true).withProperty(PROPERTY_AGE, 0)); - worldIn.setBlockState(pos, - this.getDefaultState().withProperty(PROPERTY_VARIANT, MID_G).withProperty(PROPERTY_HARVESTABLE, true).withProperty(PROPERTY_AGE, 0)); - worldIn.setBlockState(pos.up(), - this.getDefaultState().withProperty(PROPERTY_VARIANT, TOP_G).withProperty(PROPERTY_HARVESTABLE, true).withProperty(PROPERTY_AGE, 0)); - - } - - public void fullyPrunePlant(World worldIn, BlockPos pos, IBlockState state) - { - worldIn.setBlockState(pos.down(), - this.getDefaultState().withProperty(PROPERTY_VARIANT, BASE).withProperty(PROPERTY_HARVESTABLE, false).withProperty(PROPERTY_AGE, 0)); - worldIn.setBlockState(pos, - this.getDefaultState().withProperty(PROPERTY_VARIANT, MID).withProperty(PROPERTY_HARVESTABLE, false).withProperty(PROPERTY_AGE, 0)); - worldIn.setBlockState(pos.up(), - this.getDefaultState().withProperty(PROPERTY_VARIANT, TOP_G).withProperty(PROPERTY_HARVESTABLE, false).withProperty(PROPERTY_AGE, 0)); - - } -} diff --git a/src/main/java/com/gildedgames/aether/common/blocks/natural/plants/BlockOrangeTree.java b/src/main/java/com/gildedgames/aether/common/blocks/natural/plants/BlockOrangeTree.java deleted file mode 100644 index f23a13358f..0000000000 --- a/src/main/java/com/gildedgames/aether/common/blocks/natural/plants/BlockOrangeTree.java +++ /dev/null @@ -1,287 +0,0 @@ -package com.gildedgames.aether.common.blocks.natural.plants; - -import com.gildedgames.aether.api.registrar.BlocksAether; -import com.gildedgames.aether.api.registrar.ItemsAether; -import com.gildedgames.aether.common.blocks.natural.BlockAetherGrass; -import com.google.common.collect.Lists; -import net.minecraft.block.Block; -import net.minecraft.block.IGrowable; -import net.minecraft.block.SoundType; -import net.minecraft.block.properties.PropertyBool; -import net.minecraft.block.properties.PropertyInteger; -import net.minecraft.block.state.BlockStateContainer; -import net.minecraft.block.state.IBlockState; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.NonNullList; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.IBlockAccess; -import net.minecraft.world.World; - -import javax.annotation.Nullable; -import java.util.ArrayList; -import java.util.Random; - -public class BlockOrangeTree extends BlockAetherPlant implements IGrowable -{ - public static final PropertyBool PROPERTY_IS_TOP_BLOCK = PropertyBool.create("is_top_block"); - - private static final int STAGE_COUNT = 5; - - public static final PropertyInteger PROPERTY_STAGE = PropertyInteger.create("stage", 1, STAGE_COUNT); - - public BlockOrangeTree() - { - this.setHardness(1f); - - this.setTickRandomly(true); - - this.setSoundType(SoundType.PLANT); - - this.setDefaultState(this.getBlockState().getBaseState().withProperty(PROPERTY_IS_TOP_BLOCK, false).withProperty(PROPERTY_STAGE, 1)); - } - - @Override - public float getBlockHardness(IBlockState blockState, World worldIn, BlockPos pos) - { - if (blockState.getValue(PROPERTY_STAGE) >= STAGE_COUNT) - { - return 0.0f; - } - - return super.getBlockHardness(blockState, worldIn, pos); - } - - @Override - public boolean canPlaceBlockAt(World world, BlockPos pos) - { - IBlockState soilBlock = world.getBlockState(pos.down()); - - if (soilBlock.getBlock() == this && soilBlock.getValue(PROPERTY_IS_TOP_BLOCK)) - { - return false; - } - - return this.isSuitableSoilBlock(world, pos, soilBlock); - } - - @Override - public void updateTick(World world, BlockPos pos, IBlockState state, Random random) - { - BlockPos topBlock = state.getValue(PROPERTY_IS_TOP_BLOCK) ? pos : pos.up(); - BlockPos bottomBlock = state.getValue(PROPERTY_IS_TOP_BLOCK) ? pos.down() : pos; - - IBlockState soilState = world.getBlockState(bottomBlock.down()); - - int chance = 10; - - if (soilState.getBlock() == BlocksAether.aether_grass - && soilState.getValue(BlockAetherGrass.PROPERTY_VARIANT) == BlockAetherGrass.ENCHANTED) - { - chance /= 2; - } - - if (random.nextInt(chance) == 0) - { - this.growTree(world, topBlock, bottomBlock, 1); - } - } - - @Override - public boolean validatePosition(World world, BlockPos pos, IBlockState state) - { - if (state.getValue(PROPERTY_STAGE) >= 3) - { - IBlockState adj = world.getBlockState(state.getValue(PROPERTY_IS_TOP_BLOCK) ? pos.down() : pos.up()); - - if (adj.getBlock() != this) - { - return false; - } - } - - return super.validatePosition(world, pos, state); - } - - @Override - public void harvestBlock(World worldIn, EntityPlayer player, BlockPos pos, IBlockState state, @Nullable TileEntity te, ItemStack stack) - { - this.destroyTree(worldIn, pos, state); - - super.harvestBlock(worldIn, player, pos, state, te, stack); - } - - @Override - public boolean removedByPlayer(IBlockState state, World world, BlockPos pos, EntityPlayer player, boolean willHarvest) - { - boolean isRoot = !state.getValue(PROPERTY_IS_TOP_BLOCK); - - BlockPos adjPos = isRoot ? pos.up() : pos.down(); - - if (state.getValue(PROPERTY_STAGE) == STAGE_COUNT) - { - if (player.capabilities.isCreativeMode) - { - this.destroyTree(world, pos, state); - - return true; - } - else - { - for (ItemStack item : this.getFruitDrops(world, pos, state)) - { - Block.spawnAsEntity(world, pos, item); - } - } - - IBlockState adjState = world.getBlockState(adjPos); - - if (adjState.getBlock() == this) - { - world.setBlockState(adjPos, adjState.withProperty(PROPERTY_STAGE, 4)); - } - - world.setBlockState(pos, world.getBlockState(pos).withProperty(PROPERTY_STAGE, 4)); - - return false; - } - - this.destroyTree(world, pos, state); - - return true; - } - - @Override - public IBlockState getStateFromMeta(int meta) - { - int isTop = (meta / STAGE_COUNT); - int stage = ((meta - (STAGE_COUNT * isTop)) % STAGE_COUNT) + 1; - - return this.getDefaultState().withProperty(PROPERTY_IS_TOP_BLOCK, isTop > 0).withProperty(PROPERTY_STAGE, stage); - } - - @Override - public int getMetaFromState(IBlockState state) - { - int top = state.getValue(PROPERTY_IS_TOP_BLOCK) ? STAGE_COUNT : 0; - int stage = state.getValue(PROPERTY_STAGE); - - return top + stage; - } - - @Override - protected BlockStateContainer createBlockState() - { - return new BlockStateContainer(this, PROPERTY_IS_TOP_BLOCK, PROPERTY_STAGE); - } - - @Override - public boolean canGrow(World worldIn, BlockPos pos, IBlockState state, boolean isClient) - { - int stage = state.getValue(PROPERTY_STAGE); - - return stage < 5; - } - - @Override - public boolean canUseBonemeal(World worldIn, Random rand, BlockPos pos, IBlockState state) - { - int stage = state.getValue(PROPERTY_STAGE); - - return stage < 5; - } - - @Override - public boolean isSuitableSoilBlock(World world, BlockPos pos, IBlockState state) - { - return (state.getBlock() == this && !state.getValue(PROPERTY_IS_TOP_BLOCK) && state.getValue(PROPERTY_STAGE) >= 3) || super - .isSuitableSoilBlock(world, pos, state); - } - - private ArrayList<ItemStack> getFruitDrops(IBlockAccess world, BlockPos pos, IBlockState state) - { - Random rand = world instanceof World ? ((World) world).rand : new Random(); - - BlockPos bottomBlock = state.getValue(PROPERTY_IS_TOP_BLOCK) ? pos.down() : pos; - - IBlockState soilState = world.getBlockState(bottomBlock.down()); - - final boolean applyBonus = (soilState.getBlock() == BlocksAether.aether_grass - && soilState.getValue(BlockAetherGrass.PROPERTY_VARIANT) == BlockAetherGrass.ENCHANTED); - - int count = rand.nextInt(3) + (applyBonus ? 2 : 1); - - return Lists.newArrayList(new ItemStack(ItemsAether.orange, count)); - } - - private void destroyTree(World world, BlockPos pos, IBlockState state) - { - world.setBlockToAir(pos); - - BlockPos adjPos = state.getValue(PROPERTY_IS_TOP_BLOCK) ? pos.down() : pos.up(); - - if (world.getBlockState(adjPos).getBlock() == this) - { - world.setBlockToAir(adjPos); - } - } - - @Override - protected void invalidateBlock(World world, BlockPos pos, IBlockState state) - { - if (world.getBlockState(state.getValue(PROPERTY_IS_TOP_BLOCK) ? pos.down() : pos.up()).getBlock() == this || world.isAirBlock(pos.down()) && state.getValue(PROPERTY_STAGE) <= 2) - { - this.dropBlockAsItem(world, pos, state, 0); - } - - this.destroyTree(world, pos, state); - } - - @Override - public void getDrops(NonNullList<ItemStack> list, IBlockAccess world, BlockPos pos, IBlockState state, int fortune) - { - super.getDrops(list, world, pos, state, fortune); - - if (state.getValue(PROPERTY_STAGE) == STAGE_COUNT) - { - list.addAll(this.getFruitDrops(world, pos, state)); - } - } - - @Override - public void grow(World world, Random rand, BlockPos pos, IBlockState state) - { - BlockPos topBlock = state.getValue(PROPERTY_IS_TOP_BLOCK) ? pos : pos.up(); - BlockPos bottomBlock = state.getValue(PROPERTY_IS_TOP_BLOCK) ? pos.down() : pos; - - this.growTree(world, topBlock, bottomBlock, rand.nextInt(3)); - } - - private void growTree(World world, BlockPos topPos, BlockPos bottomPos, int amount) - { - IBlockState topState = world.getBlockState(bottomPos); - IBlockState bottomState = world.getBlockState(bottomPos); - - if (topState.getBlock() == this && bottomState.getBlock() == this) - { - int nextStage = topState.getValue(PROPERTY_STAGE) + amount; - - if (nextStage <= STAGE_COUNT) - { - if (nextStage >= 3) - { - if (!world.isAirBlock(topPos) && world.getBlockState(topPos).getBlock() != this) - { - return; - } - - world.setBlockState(topPos, topState.withProperty(PROPERTY_STAGE, nextStage).withProperty(PROPERTY_IS_TOP_BLOCK, true)); - } - - world.setBlockState(bottomPos, topState.withProperty(PROPERTY_STAGE, nextStage).withProperty(PROPERTY_IS_TOP_BLOCK, false)); - } - } - } - -} diff --git a/src/main/java/com/gildedgames/aether/common/blocks/natural/plants/BlockPlumproot.java b/src/main/java/com/gildedgames/aether/common/blocks/natural/plants/BlockPlumproot.java deleted file mode 100644 index c9f3cb8c55..0000000000 --- a/src/main/java/com/gildedgames/aether/common/blocks/natural/plants/BlockPlumproot.java +++ /dev/null @@ -1,26 +0,0 @@ -package com.gildedgames.aether.common.blocks.natural.plants; - -import net.minecraft.block.Block; -import net.minecraft.block.SoundType; -import net.minecraft.block.material.MapColor; -import net.minecraft.block.material.Material; -import net.minecraft.util.EnumFacing; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.World; - -public class BlockPlumproot extends Block -{ - public BlockPlumproot() - { - super(Material.GOURD, MapColor.ADOBE); - - this.setSoundType(SoundType.WOOD); - this.setHardness(1.0F); - } - - @Override - public boolean canPlaceBlockAt(World worldIn, BlockPos pos) - { - return worldIn.getBlockState(pos).getBlock().isReplaceable(worldIn, pos) && worldIn.isSideSolid(pos.down(), EnumFacing.UP); - } -} diff --git a/src/main/java/com/gildedgames/aether/common/blocks/natural/plants/BlockTallAetherGrass.java b/src/main/java/com/gildedgames/aether/common/blocks/natural/plants/BlockTallAetherGrass.java deleted file mode 100644 index c2cf6bb4ae..0000000000 --- a/src/main/java/com/gildedgames/aether/common/blocks/natural/plants/BlockTallAetherGrass.java +++ /dev/null @@ -1,287 +0,0 @@ -package com.gildedgames.aether.common.blocks.natural.plants; - -import com.gildedgames.aether.api.registrar.BlocksAether; -import com.gildedgames.aether.api.registrar.ItemsAether; -import com.gildedgames.aether.common.AetherCore; -import com.gildedgames.aether.common.blocks.IBlockMultiName; -import com.gildedgames.aether.common.blocks.IBlockSnowy; -import com.gildedgames.aether.common.blocks.natural.BlockAetherGrass; -import com.gildedgames.aether.common.blocks.properties.BlockVariant; -import com.gildedgames.aether.common.blocks.properties.PropertyVariant; -import com.gildedgames.aether.common.world.biomes.arctic_peaks.BiomeArcticPeaks; -import com.gildedgames.aether.common.world.biomes.irradiated_forests.BiomeIrradiatedForests; -import com.gildedgames.aether.common.world.biomes.magnetic_hills.BiomeMagneticHills; -import net.minecraft.block.Block; -import net.minecraft.block.BlockSnow; -import net.minecraft.block.SoundType; -import net.minecraft.block.properties.PropertyEnum; -import net.minecraft.block.state.BlockStateContainer; -import net.minecraft.block.state.IBlockState; -import net.minecraft.creativetab.CreativeTabs; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.init.Blocks; -import net.minecraft.init.Items; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.util.IStringSerializable; -import net.minecraft.util.NonNullList; -import net.minecraft.util.math.AxisAlignedBB; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.Vec3d; -import net.minecraft.world.EnumSkyBlock; -import net.minecraft.world.IBlockAccess; -import net.minecraft.world.World; -import net.minecraft.world.biome.Biome; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; - -import java.util.Random; - -public class BlockTallAetherGrass extends BlockAetherPlant implements IBlockMultiName, IBlockSnowy -{ - public static final BlockVariant SHORT = new BlockVariant(0, "short"), - NORMAL = new BlockVariant(1, "normal"), - LONG = new BlockVariant(2, "long"); - - public static final PropertyVariant PROPERTY_VARIANT = PropertyVariant.create("variant", SHORT, NORMAL, LONG); - - public static final PropertyEnum<BlockTallAetherGrass.Type> TYPE = PropertyEnum - .create("type", BlockTallAetherGrass.Type.class, Type.HIGHLANDS, Type.ENCHANTED, Type.ARCTIC, Type.MAGNETIC, Type.IRRADIATED); - - private static final AxisAlignedBB GRASS_SHORT_AABB = new AxisAlignedBB(0.1D, 0.0D, 0.1D, 0.9D, 0.3D, 0.9D); - - private static final AxisAlignedBB GRASS_NORMAL_AABB = new AxisAlignedBB(0.1D, 0.0D, 0.1D, 0.9D, 0.6D, 0.9D); - - private static final AxisAlignedBB GRASS_LONG_AABB = new AxisAlignedBB(0.1D, 0.0D, 0.1D, 0.9D, 0.9D, 0.9D); - - public BlockTallAetherGrass() - { - this.setSoundType(SoundType.PLANT); - - this.setTickRandomly(true); - - this.setDefaultState(this.getBlockState().getBaseState().withProperty(PROPERTY_VARIANT, SHORT).withProperty(TYPE, Type.HIGHLANDS) - .withProperty(PROPERTY_SNOWY, Boolean.FALSE)); - } - - @Override - public void updateTick(final World worldIn, final BlockPos pos, final IBlockState state, final Random rand) - { - super.updateTick(worldIn, pos, state, rand); - - if (worldIn.getLightFor(EnumSkyBlock.BLOCK, pos) > 11) - { - if (state.getValue(PROPERTY_SNOWY)) - { - worldIn.setBlockState(pos, state.withProperty(PROPERTY_SNOWY, Boolean.FALSE), 2); - } - } - } - - @Override - @SideOnly(Side.CLIENT) - public void getSubBlocks(final CreativeTabs tab, final NonNullList<ItemStack> list) - { - for (final BlockVariant variant : PROPERTY_VARIANT.getAllowedValues()) - { - list.add(new ItemStack(this, 1, variant.getMeta())); - } - } - - @Override - public IBlockState getActualState(final IBlockState state, final IBlockAccess worldIn, final BlockPos pos) - { - if (AetherCore.isClient()) - { - final IBlockState down = worldIn.getBlockState(pos.down()); - - final Block bottomBlock = down.getBlock(); - - final Comparable<?> grassType = down.getProperties().get(BlockAetherGrass.PROPERTY_VARIANT); - - Biome biome = worldIn.getBiome(pos); - - final IBlockState lastVariant = biome instanceof BiomeArcticPeaks - ? state.withProperty(TYPE, Type.ARCTIC) - : (biome instanceof BiomeMagneticHills - ? state.withProperty(TYPE, Type.MAGNETIC) - : (biome instanceof BiomeIrradiatedForests - ? state.withProperty(TYPE, Type.IRRADIATED) - : state.withProperty(TYPE, Type.HIGHLANDS) - )); - - if (bottomBlock == BlocksAether.aether_grass) - { - return grassType.equals(BlockAetherGrass.ARCTIC) - ? state.withProperty(TYPE, Type.ARCTIC) - : (grassType.equals(BlockAetherGrass.MAGNETIC) - ? state.withProperty(TYPE, Type.MAGNETIC) - : (grassType.equals(BlockAetherGrass.IRRADIATED) - ? state.withProperty(TYPE, Type.IRRADIATED) - : (grassType.equals(BlockAetherGrass.ENCHANTED) - ? state.withProperty(TYPE, Type.ENCHANTED) - : state.withProperty(TYPE, Type.HIGHLANDS) - ))); - } - return lastVariant; - } - - return state; - } - - @Override - public Item getItemDropped(final IBlockState state, final Random rand, final int fortune) - { - return null; - } - - @Override - public void onBlockHarvested(World worldIn, BlockPos pos, IBlockState state, EntityPlayer player) - { - if ((player.getHeldItemMainhand().getItem() == ItemsAether.arkenium_shears || player.getHeldItemMainhand().getItem() == Items.SHEARS) && !player.isCreative()) - { - if (state.getValue(PROPERTY_SNOWY)) - { - worldIn.setBlockState(pos, BlocksAether.highlands_snow_layer.getDefaultState().withProperty(BlockSnow.LAYERS, 1), 2); - - Block.spawnAsEntity(worldIn, pos, new ItemStack(this, 1, - this.getMetaFromState(state) - (state.getValue(PROPERTY_SNOWY) ? PROPERTY_VARIANT.getAllowedValues().size() : 0))); - } - else - { - Block.spawnAsEntity(worldIn, pos, new ItemStack(this, 1, this.getMetaFromState(getActualState(state, worldIn, pos)))); - } - } - } - - @Override - public void onPlayerDestroy(World worldIn, BlockPos pos, IBlockState state) - { - if (state.getValue(PROPERTY_SNOWY)) - { - if (worldIn.getBlockState(pos.down()) != Blocks.AIR.getDefaultState()) - { - worldIn.setBlockState(pos, BlocksAether.highlands_snow_layer.getDefaultState().withProperty(BlockSnow.LAYERS, 1), 2); - } - } - } - - @Override - @SideOnly(Side.CLIENT) - public Block.EnumOffsetType getOffsetType() - { - return EnumOffsetType.XZ; - } - - @Override - public AxisAlignedBB getBoundingBox(final IBlockState state, final IBlockAccess source, final BlockPos pos) - { - if (state.getValue(PROPERTY_VARIANT) == SHORT) - { - return GRASS_SHORT_AABB; - } - else if (state.getValue(PROPERTY_VARIANT) == NORMAL) - { - return GRASS_NORMAL_AABB; - } - else if (state.getValue(PROPERTY_VARIANT) == LONG) - { - return GRASS_LONG_AABB; - } - - return super.getBoundingBox(state, source, pos); - } - - @Override - public IBlockState getStateFromMeta(final int meta) - { - final boolean snowy = meta >= PROPERTY_VARIANT.getAllowedValues().size(); - final BlockVariant variant = PROPERTY_VARIANT.fromMeta(meta - (snowy ? PROPERTY_VARIANT.getAllowedValues().size() : 0)); - - return this.getDefaultState().withProperty(PROPERTY_VARIANT, variant).withProperty(PROPERTY_SNOWY, snowy); - } - - @Override - public boolean isReplaceable(final IBlockAccess worldIn, final BlockPos pos) - { - return true; - } - - @Override - public int getMetaFromState(final IBlockState state) - { - return state.getValue(PROPERTY_VARIANT).getMeta() + (state.getValue(PROPERTY_SNOWY) ? PROPERTY_VARIANT.getAllowedValues().size() : 0); - } - - @Override - protected BlockStateContainer createBlockState() - { - return new BlockStateContainer(this, TYPE, PROPERTY_VARIANT, PROPERTY_SNOWY); - } - - @Override - public String getTranslationKey(final ItemStack stack) - { - return PROPERTY_VARIANT.fromMeta(stack.getMetadata()).getName(); - } - - @Override - public Vec3d getOffset(final IBlockState state, final IBlockAccess access, final BlockPos pos) - { - if (state.getValue(PROPERTY_SNOWY)) - { - return Vec3d.ZERO; - } - - return super.getOffset(state, access, pos); - } - - @Override - public int damageDropped(final IBlockState state) - { - return state.getValue(PROPERTY_VARIANT).getMeta(); - } - - public enum Type implements IStringSerializable - { - HIGHLANDS("highlands"), ENCHANTED("enchanted"), ARCTIC("arctic"), MAGNETIC("magnetic"), IRRADIATED("irradiated"), SNOWY("snowy"); - - private final String name; - - Type(final String name) - { - this.name = name; - } - - @Override - public String getName() - { - return this.name; - } - } - - @Override - public boolean canGrow(final World worldIn, final BlockPos pos, final IBlockState state, final boolean isClient) - { - return !(state.getValue(PROPERTY_VARIANT) == LONG); - } - - @Override - public boolean canUseBonemeal(final World worldIn, final Random rand, final BlockPos pos, final IBlockState state) - { - return !(state.getValue(PROPERTY_VARIANT) == LONG); - } - - @Override - public void grow(final World world, final Random rand, final BlockPos pos, final IBlockState state) - { - if (state.getValue(PROPERTY_VARIANT) == SHORT) - { - world.setBlockState(pos, state.withProperty(PROPERTY_VARIANT, NORMAL)); - } - else if (state.getValue(PROPERTY_VARIANT) == NORMAL) - { - world.setBlockState(pos, state.withProperty(PROPERTY_VARIANT, LONG)); - } - } -} \ No newline at end of file diff --git a/src/main/java/com/gildedgames/aether/common/blocks/natural/plants/BlockValkyrieGrass.java b/src/main/java/com/gildedgames/aether/common/blocks/natural/plants/BlockValkyrieGrass.java deleted file mode 100644 index 2d7c2b8dc7..0000000000 --- a/src/main/java/com/gildedgames/aether/common/blocks/natural/plants/BlockValkyrieGrass.java +++ /dev/null @@ -1,270 +0,0 @@ -package com.gildedgames.aether.common.blocks.natural.plants; - -import com.gildedgames.aether.api.registrar.BlocksAether; -import com.gildedgames.aether.api.registrar.ItemsAether; -import com.gildedgames.aether.common.blocks.IBlockMultiName; -import com.gildedgames.aether.common.blocks.natural.BlockAetherGrass; -import com.gildedgames.aether.common.blocks.properties.BlockVariant; -import com.gildedgames.aether.common.blocks.properties.PropertyVariant; -import com.google.common.collect.Lists; -import net.minecraft.block.Block; -import net.minecraft.block.IGrowable; -import net.minecraft.block.SoundType; -import net.minecraft.block.properties.PropertyBool; -import net.minecraft.block.state.BlockStateContainer; -import net.minecraft.block.state.IBlockState; -import net.minecraft.creativetab.CreativeTabs; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraft.util.EnumFacing; -import net.minecraft.util.NonNullList; -import net.minecraft.util.math.AxisAlignedBB; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.IBlockAccess; -import net.minecraft.world.World; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; - -import java.util.List; -import java.util.Random; - -/* - * Current state only allows growth through bonemeal. - */ - -public class BlockValkyrieGrass extends BlockAetherPlant implements IBlockMultiName, IGrowable -{ - public static final BlockVariant SPROUT = new BlockVariant(0, "sprout"), - MID = new BlockVariant(1, "mid"), - FULL = new BlockVariant(2, "full"); - - public static final PropertyVariant PROPERTY_VARIANT = PropertyVariant.create("variant", SPROUT, MID, FULL); - - public static final PropertyBool PROPERTY_HARVESTABLE = PropertyBool.create("harvestable"); - - private static final AxisAlignedBB GRASS_SHORT_AABB = new AxisAlignedBB(0.1D, 0.0D, 0.1D, 0.9D, 0.3D, 0.9D); - - private static final AxisAlignedBB GRASS_NORMAL_AABB = new AxisAlignedBB(0.1D, 0.0D, 0.1D, 0.9D, 0.6D, 0.9D); - - private static final AxisAlignedBB GRASS_LONG_AABB = new AxisAlignedBB(0.1D, 0.0D, 0.1D, 0.9D, 0.9D, 0.9D); - - private static final int VALKYRIE_GRASS_SPROUT = 0, VALKYRIE_GRASS_MID = 1, VALKYRIE_GRASS_FULL = 2; - - public BlockValkyrieGrass() - { - this.setHardness(0.0f); - this.setSoundType(SoundType.PLANT); - this.setTickRandomly(true); - // default state is set to fully grown and harvest-able because of odd activity when a world is loaded - this.setDefaultState(this.getBlockState().getBaseState().withProperty(PROPERTY_VARIANT, FULL).withProperty(PROPERTY_HARVESTABLE, true)); - } - - @Override - protected BlockStateContainer createBlockState() - { - return new BlockStateContainer(this, PROPERTY_VARIANT, PROPERTY_HARVESTABLE); - } - - @Override - public int getMetaFromState(final IBlockState state) - { - return state.getValue(PROPERTY_VARIANT).getMeta(); - } - - @Override - public IBlockState getStateFromMeta(final int meta) - { - return this.getDefaultState().withProperty(PROPERTY_VARIANT, PROPERTY_VARIANT.fromMeta(meta)); - } - - @Override - public IBlockState getStateForPlacement(final World worldIn, final BlockPos pos, final EnumFacing facing, final float hitX, final float hitY, - final float hitZ, final int meta, final EntityLivingBase placer) - { - if (placer.getHeldItemMainhand().getMetadata() == VALKYRIE_GRASS_FULL) - { - return this.getStateFromMeta(meta).withProperty(PROPERTY_HARVESTABLE, true).withProperty(PROPERTY_VARIANT, FULL); - } - return this.getStateFromMeta(meta).withProperty(PROPERTY_HARVESTABLE, false).withProperty(PROPERTY_VARIANT, SPROUT); - } - - @Override - public String getTranslationKey(final ItemStack stack) - { - return PROPERTY_VARIANT.fromMeta(stack.getMetadata()).getName(); - } - - @Override - public boolean canGrow(final World worldIn, final BlockPos pos, final IBlockState state, final boolean isClient) - { - return !state.getValue(PROPERTY_HARVESTABLE); - } - - @Override - public boolean canUseBonemeal(final World worldIn, final Random rand, final BlockPos pos, final IBlockState state) - { - return !state.getValue(PROPERTY_HARVESTABLE); - } - - @Override - public void updateTick(final World world, final BlockPos pos, final IBlockState state, final Random rand) - { - if (!state.getValue(PROPERTY_HARVESTABLE)) - { - if (world.getLight(pos) >= 9) - { - if (rand.nextInt(60) == 0) - { - this.grow(world, rand, pos, state); - } - } - } - } - - // called when the plant grows. - @Override - public void grow(final World worldIn, final Random rand, final BlockPos pos, final IBlockState state) - { - // if kirrid grass is anything but fully grown. - if (!state.getValue(PROPERTY_HARVESTABLE)) - { - // if sprout, grow to mid. - if (worldIn.getBlockState(pos).getValue(PROPERTY_VARIANT).getMeta() == VALKYRIE_GRASS_SPROUT) - { - worldIn.setBlockState(pos, state.withProperty(PROPERTY_VARIANT, BlockValkyrieGrass.MID)); - } - // if mid, grow to full and set harvestable. - else if (worldIn.getBlockState(pos).getValue(PROPERTY_VARIANT).getMeta() == VALKYRIE_GRASS_MID) - { - worldIn.setBlockState(pos, state.withProperty(PROPERTY_HARVESTABLE, true).withProperty(PROPERTY_VARIANT, BlockValkyrieGrass.FULL)); - } - } - } - - @Override - public int damageDropped(final IBlockState state) - { - return VALKYRIE_GRASS_SPROUT; - } - - @Override - public AxisAlignedBB getBoundingBox(final IBlockState state, final IBlockAccess source, final BlockPos pos) - { - if (state.getValue(PROPERTY_VARIANT) == SPROUT) - { - return GRASS_SHORT_AABB; - } - else if (state.getValue(PROPERTY_VARIANT) == MID) - { - return GRASS_NORMAL_AABB; - } - else if (state.getValue(PROPERTY_VARIANT) == FULL) - { - return GRASS_LONG_AABB; - } - - return super.getBoundingBox(state, source, pos); - } - - @Override - public boolean removedByPlayer(final IBlockState state, final World world, final BlockPos pos, final EntityPlayer player, final boolean willHarvest) - { - if (state.getValue(PROPERTY_HARVESTABLE)) - { - if (player.capabilities.isCreativeMode) - { - world.setBlockToAir(pos); - - return false; - } - - if (!world.isRemote) - { - for (final ItemStack item : this.getWingDrops(world, pos, state)) - { - final Random random = new Random(); - - Block.spawnAsEntity(world, pos, item); - - if (random.nextInt(3) == 1) - { - Block.spawnAsEntity(world, pos, new ItemStack(BlocksAether.valkyrie_grass)); - } - } - } - - world.setBlockState(pos, state.withProperty(PROPERTY_HARVESTABLE, false)); - - return false; - } - - return super.removedByPlayer(state, world, pos, player, willHarvest); - } - - @Override - protected void invalidateBlock(World world, BlockPos pos, IBlockState state) - { - if (world.isAirBlock(pos.down())) - { - world.setBlockToAir(pos); - - Block.spawnAsEntity(world, pos, new ItemStack(BlocksAether.valkyrie_grass)); - - for (final ItemStack item : this.getWingDrops(world, pos, state)) - { - final Random random = new Random(); - - Block.spawnAsEntity(world, pos, item); - - if (random.nextInt(3) == 1) - { - Block.spawnAsEntity(world, pos, new ItemStack(BlocksAether.valkyrie_grass)); - } - } - } - } - - @Override - public List<ItemStack> getDrops(final IBlockAccess world, final BlockPos pos, final IBlockState state, final int fortune) - { - final List<ItemStack> items = super.getDrops(world, pos, state, fortune); - - items.addAll(this.getWingDrops(world, pos, state)); - - return items; - } - - private List<ItemStack> getWingDrops(final IBlockAccess world, final BlockPos pos, final IBlockState state) - { - final IBlockState stateUnderneath = world.getBlockState(pos.down()); - - final boolean applyBonus = stateUnderneath.getBlock() == BlocksAether.aether_grass - && stateUnderneath.getValue(BlockAetherGrass.PROPERTY_VARIANT) == BlockAetherGrass.ENCHANTED; - - final int count = state.getValue(PROPERTY_HARVESTABLE) ? (1 + (applyBonus ? 1 : 0)) : 0; - - return Lists.newArrayList(new ItemStack(ItemsAether.valkyrie_wings, count)); - } - - @Override - @SideOnly(Side.CLIENT) - public void getSubBlocks(final CreativeTabs tab, final NonNullList<ItemStack> list) - { - for (final BlockVariant variant : PROPERTY_VARIANT.getAllowedValues()) - { - // No reason to have the mid variant (as an option) in creative inventory. - if (variant != MID) - { - list.add(new ItemStack(this, 1, variant.getMeta())); - } - } - } - - @Override - @SideOnly(Side.CLIENT) - public Block.EnumOffsetType getOffsetType() - { - return EnumOffsetType.XZ; - } -} diff --git a/src/main/java/com/gildedgames/aether/common/blocks/natural/plants/BlockWovenSticks.java b/src/main/java/com/gildedgames/aether/common/blocks/natural/plants/BlockWovenSticks.java deleted file mode 100644 index 9fe0a1f08d..0000000000 --- a/src/main/java/com/gildedgames/aether/common/blocks/natural/plants/BlockWovenSticks.java +++ /dev/null @@ -1,75 +0,0 @@ -package com.gildedgames.aether.common.blocks.natural.plants; - -import com.gildedgames.aether.common.blocks.IBlockMultiName; -import com.gildedgames.aether.common.blocks.properties.BlockVariant; -import com.gildedgames.aether.common.blocks.properties.PropertyVariant; -import net.minecraft.block.Block; -import net.minecraft.block.SoundType; -import net.minecraft.block.material.Material; -import net.minecraft.block.state.BlockStateContainer; -import net.minecraft.block.state.IBlockState; -import net.minecraft.creativetab.CreativeTabs; -import net.minecraft.item.ItemStack; -import net.minecraft.util.NonNullList; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; - -public class BlockWovenSticks extends Block implements IBlockMultiName -{ - - public static final BlockVariant - SKYROOT = new BlockVariant(0, "skyroot"); - - public static final PropertyVariant PROPERTY_VARIANT = PropertyVariant.create("variant", SKYROOT); - - public BlockWovenSticks() - { - super(Material.WOOD); - - this.setSoundType(SoundType.PLANT); - this.setHardness(0.5F); - - this.setDefaultState(this.getBlockState().getBaseState().withProperty(PROPERTY_VARIANT, SKYROOT)); - } - - @Override - @SideOnly(Side.CLIENT) - public void getSubBlocks(final CreativeTabs tab, final NonNullList<ItemStack> list) - { - for (final BlockVariant variant : PROPERTY_VARIANT.getAllowedValues()) - { - list.add(new ItemStack(this, 1, variant.getMeta())); - } - } - - @Override - public int damageDropped(final IBlockState state) - { - return state.getValue(PROPERTY_VARIANT).getMeta(); - } - - @Override - public IBlockState getStateFromMeta(final int meta) - { - return this.getDefaultState().withProperty(PROPERTY_VARIANT, PROPERTY_VARIANT.fromMeta(meta)); - } - - @Override - public int getMetaFromState(final IBlockState state) - { - return state.getValue(PROPERTY_VARIANT).getMeta(); - } - - @Override - protected BlockStateContainer createBlockState() - { - return new BlockStateContainer(this, PROPERTY_VARIANT); - } - - @Override - public String getTranslationKey(final ItemStack stack) - { - return PROPERTY_VARIANT.fromMeta(stack.getMetadata()).getName(); - } - -} diff --git a/src/main/java/com/gildedgames/aether/common/blocks/natural/plants/saplings/BlockAetherGreatrootSapling.java b/src/main/java/com/gildedgames/aether/common/blocks/natural/plants/saplings/BlockAetherGreatrootSapling.java deleted file mode 100644 index a8401b7812..0000000000 --- a/src/main/java/com/gildedgames/aether/common/blocks/natural/plants/saplings/BlockAetherGreatrootSapling.java +++ /dev/null @@ -1,53 +0,0 @@ -package com.gildedgames.aether.common.blocks.natural.plants.saplings; - -import com.gildedgames.aether.common.blocks.properties.BlockVariant; -import com.gildedgames.aether.common.blocks.properties.PropertyVariant; -import com.gildedgames.aether.common.init.GenerationAether; -import com.gildedgames.orbis.lib.core.BlueprintDefinition; -import net.minecraft.block.state.IBlockState; -import net.minecraft.util.math.BlockPos; - -public class BlockAetherGreatrootSapling extends BlockAetherSapling -{ - public static final BlockVariant - GREEN = new BlockVariant(0, "green_greatroot"), - BLUE = new BlockVariant(1, "blue_greatroot"), - DARK_BLUE = new BlockVariant(2, "dark_blue_greatroot"); - - public static final PropertyVariant PROPERTY_VARIANT = PropertyVariant - .create("variant", GREEN, BLUE, DARK_BLUE); - - @Override - public PropertyVariant getPropertyVariant() - { - return PROPERTY_VARIANT; - } - - @Override - public BlueprintDefinition getBlueprint(IBlockState state) - { - final BlockVariant variant = state.getValue(PROPERTY_VARIANT); - - if (variant == BlockAetherGreatrootSapling.GREEN) - { - return GenerationAether.GREATROOT_TREE; - } - else if (variant == BlockAetherGreatrootSapling.BLUE) - { - return GenerationAether.GREATROOT_TREE; - } - else if (variant == BlockAetherGreatrootSapling.DARK_BLUE) - { - return GenerationAether.GREATROOT_TREE; - } - - return null; - } - - @Override - public BlockPos getBlueprintOffset(IBlockState state) - { - return new BlockPos(-5, 0, -5); - } - -} diff --git a/src/main/java/com/gildedgames/aether/common/blocks/natural/plants/saplings/BlockAetherSapling.java b/src/main/java/com/gildedgames/aether/common/blocks/natural/plants/saplings/BlockAetherSapling.java deleted file mode 100644 index 429d9b7f69..0000000000 --- a/src/main/java/com/gildedgames/aether/common/blocks/natural/plants/saplings/BlockAetherSapling.java +++ /dev/null @@ -1,165 +0,0 @@ -package com.gildedgames.aether.common.blocks.natural.plants.saplings; - -import com.gildedgames.aether.common.blocks.IBlockMultiName; -import com.gildedgames.aether.common.blocks.IBlockWithItem; -import com.gildedgames.aether.common.blocks.natural.plants.BlockAetherPlant; -import com.gildedgames.aether.common.blocks.properties.BlockVariant; -import com.gildedgames.aether.common.blocks.properties.PropertyVariant; -import com.gildedgames.aether.common.items.blocks.ItemBlockCustomSapling; -import com.gildedgames.orbis.lib.core.BlueprintDefinition; -import com.gildedgames.orbis.lib.core.CreationData; -import com.gildedgames.orbis.lib.core.baking.BakedBlueprint; -import com.gildedgames.orbis.lib.core.util.BlueprintPlacer; -import net.minecraft.block.IGrowable; -import net.minecraft.block.SoundType; -import net.minecraft.block.properties.PropertyInteger; -import net.minecraft.block.state.BlockStateContainer; -import net.minecraft.block.state.IBlockState; -import net.minecraft.creativetab.CreativeTabs; -import net.minecraft.init.Blocks; -import net.minecraft.item.ItemBlock; -import net.minecraft.item.ItemStack; -import net.minecraft.util.NonNullList; -import net.minecraft.util.math.AxisAlignedBB; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.IBlockAccess; -import net.minecraft.world.World; -import net.minecraftforge.event.terraingen.TerrainGen; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; - -import java.util.Random; - -public abstract class BlockAetherSapling extends BlockAetherPlant implements IGrowable, IBlockMultiName, IBlockWithItem -{ - public static final PropertyInteger PROPERTY_STAGE = PropertyInteger.create("growth_stage",0,1); - - private static final AxisAlignedBB SAPLING_AABB = new AxisAlignedBB(0.1D, 0.0D, 0.1D, 0.9D, 0.8D, 0.9D); - - public BlockAetherSapling() - { - this.setSoundType(SoundType.PLANT); - this.setTickRandomly(true); - } - - @Override - public void updateTick(final World worldIn, final BlockPos pos, final IBlockState state, final Random rand) - { - if (!worldIn.isRemote) - { - super.updateTick(worldIn, pos, state, rand); - - if (worldIn.getLightFromNeighbors(pos.up()) >= 9 && rand.nextInt(7) == 0) - { - this.grow(worldIn, rand, pos, state); - } - } - } - - @Override - public void grow(final World world, final Random rand, final BlockPos pos, final IBlockState state) - { - if (state.getValue(PROPERTY_STAGE) == 0) - { - world.setBlockState(pos, state.cycleProperty(PROPERTY_STAGE), 4); - - return; - } - - if (TerrainGen.saplingGrowTree(world, rand, pos)) - { - BlueprintDefinition tree = this.getBlueprint(state); - - if (tree != null) - { - BlockPos adjustedPos = pos.add(this.getBlueprintOffset(state)); - - world.setBlockState(pos, Blocks.AIR.getDefaultState(), 4); - - BakedBlueprint baked = new BakedBlueprint(tree, new CreationData(world).pos(BlockPos.ORIGIN).placesAir(false).placesVoid(false)); - - if (!BlueprintPlacer.place(world, baked, adjustedPos)) - { - world.setBlockState(pos, state, 4); - } - } - } - } - - @Override - @SideOnly(Side.CLIENT) - public void getSubBlocks(final CreativeTabs tab, final NonNullList<ItemStack> list) - { - for (final BlockVariant variant : this.getPropertyVariant().getAllowedValues()) - { - list.add(new ItemStack(this, 1, variant.getMeta())); - } - } - - @Override - public String getTranslationKey(final ItemStack stack) - { - return this.getPropertyVariant().fromMeta(stack.getMetadata()).getName(); - } - - @Override - public int damageDropped(final IBlockState state) - { - return state.getValue(this.getPropertyVariant()).getMeta(); - } - - @Override - public IBlockState getStateFromMeta(final int meta) - { - return this.getDefaultState().withProperty(this.getPropertyVariant(), this.getPropertyVariant().fromMeta(meta & 7)) - .withProperty(PROPERTY_STAGE, (meta & 8) >> 3); - } - - @Override - public int getMetaFromState(final IBlockState state) - { - return state.getValue(this.getPropertyVariant()).getMeta() | (state.getValue(PROPERTY_STAGE) << 3); - } - - @Override - protected BlockStateContainer createBlockState() - { - return new BlockStateContainer(this, this.getPropertyVariant(), PROPERTY_STAGE); - } - - @Override - public boolean canGrow(final World world, final BlockPos pos, final IBlockState state, final boolean isClient) - { - return true; - } - - @Override - public boolean canUseBonemeal(final World world, final Random rand, final BlockPos pos, final IBlockState state) - { - return rand.nextFloat() < 0.45f; - } - - @Override - public AxisAlignedBB getBoundingBox(final IBlockState state, final IBlockAccess source, final BlockPos pos) - { - return SAPLING_AABB; - } - - @Override - public EnumOffsetType getOffsetType() - { - return EnumOffsetType.XZ; - } - - @Override - public ItemBlock createItemBlock() - { - return new ItemBlockCustomSapling(this); - } - - public abstract BlueprintDefinition getBlueprint(IBlockState state); - - public abstract BlockPos getBlueprintOffset(IBlockState state); - - public abstract PropertyVariant getPropertyVariant(); -} diff --git a/src/main/java/com/gildedgames/aether/common/blocks/natural/plants/saplings/BlockAetherSkyrootSapling.java b/src/main/java/com/gildedgames/aether/common/blocks/natural/plants/saplings/BlockAetherSkyrootSapling.java deleted file mode 100644 index 0d6e1dfae9..0000000000 --- a/src/main/java/com/gildedgames/aether/common/blocks/natural/plants/saplings/BlockAetherSkyrootSapling.java +++ /dev/null @@ -1,52 +0,0 @@ -package com.gildedgames.aether.common.blocks.natural.plants.saplings; - -import com.gildedgames.aether.common.blocks.properties.BlockVariant; -import com.gildedgames.aether.common.blocks.properties.PropertyVariant; -import com.gildedgames.aether.common.init.GenerationAether; -import com.gildedgames.orbis.lib.core.BlueprintDefinition; -import net.minecraft.block.state.IBlockState; -import net.minecraft.util.math.BlockPos; - -public class BlockAetherSkyrootSapling extends BlockAetherSapling -{ - public static final BlockVariant - GREEN = new BlockVariant(0, "green_skyroot"), - BLUE = new BlockVariant(1, "blue_skyroot"), - DARK_BLUE = new BlockVariant(2, "dark_blue_skyroot"); - - public static final PropertyVariant PROPERTY_VARIANT = PropertyVariant - .create("variant", GREEN, BLUE, DARK_BLUE); - - @Override - public BlueprintDefinition getBlueprint(IBlockState state) - { - BlockVariant variant = state.getValue(PROPERTY_VARIANT); - - if (variant == BlockAetherSkyrootSapling.GREEN) - { - return GenerationAether.SKYROOT_OAK_GREEN; - } - else if (variant == BlockAetherSkyrootSapling.BLUE) - { - return GenerationAether.SKYROOT_OAK_BLUE; - } - else if (variant == BlockAetherSkyrootSapling.DARK_BLUE) - { - return GenerationAether.SKYROOT_OAK_DARK_BLUE; - } - - return null; - } - - @Override - public BlockPos getBlueprintOffset(IBlockState state) - { - return new BlockPos(-4, 0, -4); - } - - @Override - public PropertyVariant getPropertyVariant() - { - return PROPERTY_VARIANT; - } -} diff --git a/src/main/java/com/gildedgames/aether/common/blocks/natural/plants/saplings/BlockAetherUniqueSapling.java b/src/main/java/com/gildedgames/aether/common/blocks/natural/plants/saplings/BlockAetherUniqueSapling.java deleted file mode 100644 index 4b3426632e..0000000000 --- a/src/main/java/com/gildedgames/aether/common/blocks/natural/plants/saplings/BlockAetherUniqueSapling.java +++ /dev/null @@ -1,58 +0,0 @@ -package com.gildedgames.aether.common.blocks.natural.plants.saplings; - -import com.gildedgames.aether.common.blocks.properties.BlockVariant; -import com.gildedgames.aether.common.blocks.properties.PropertyVariant; -import com.gildedgames.aether.common.init.GenerationAether; -import com.gildedgames.orbis.lib.core.BlueprintDefinition; -import net.minecraft.block.state.IBlockState; -import net.minecraft.util.math.BlockPos; - -public class BlockAetherUniqueSapling extends BlockAetherSapling -{ - public static final BlockVariant - AMBEROOT = new BlockVariant(0, "amberoot"), - MUTANT_TREE = new BlockVariant(1, "mutant_tree"); - - public static final PropertyVariant PROPERTY_VARIANT = PropertyVariant - .create("variant", AMBEROOT, MUTANT_TREE); - - @Override - public BlueprintDefinition getBlueprint(IBlockState state) - { - final BlockVariant variant = state.getValue(PROPERTY_VARIANT); - - if (variant == BlockAetherUniqueSapling.AMBEROOT) - { - return GenerationAether.AMBEROOT_TREE; - } - else if (variant == BlockAetherUniqueSapling.MUTANT_TREE) - { - return GenerationAether.CRAZY_MUTANT_TREE; - } - - return null; - } - - @Override - public BlockPos getBlueprintOffset(IBlockState state) - { - final BlockVariant variant = state.getValue(PROPERTY_VARIANT); - - if (variant == BlockAetherUniqueSapling.AMBEROOT) - { - return new BlockPos(-8, 0, -6); - } - else if (variant == BlockAetherUniqueSapling.MUTANT_TREE) - { - return new BlockPos(-5, 0, -5); - } - - return BlockPos.ORIGIN; - } - - @Override - public PropertyVariant getPropertyVariant() - { - return PROPERTY_VARIANT; - } -} diff --git a/src/main/java/com/gildedgames/aether/common/blocks/natural/plants/saplings/BlockAetherWisprootSapling.java b/src/main/java/com/gildedgames/aether/common/blocks/natural/plants/saplings/BlockAetherWisprootSapling.java deleted file mode 100644 index 7634bab9c3..0000000000 --- a/src/main/java/com/gildedgames/aether/common/blocks/natural/plants/saplings/BlockAetherWisprootSapling.java +++ /dev/null @@ -1,52 +0,0 @@ -package com.gildedgames.aether.common.blocks.natural.plants.saplings; - -import com.gildedgames.aether.common.blocks.properties.BlockVariant; -import com.gildedgames.aether.common.blocks.properties.PropertyVariant; -import com.gildedgames.aether.common.init.GenerationAether; -import com.gildedgames.orbis.lib.core.BlueprintDefinition; -import net.minecraft.block.state.IBlockState; -import net.minecraft.util.math.BlockPos; - -public class BlockAetherWisprootSapling extends BlockAetherSapling -{ - public static final BlockVariant - GREEN = new BlockVariant(0, "wisproot_green"), - BLUE = new BlockVariant(1, "wisproot_blue"), - DARK_BLUE = new BlockVariant(2, "wisproot_dark_blue"); - - public static final PropertyVariant PROPERTY_VARIANT = PropertyVariant - .create("variant", GREEN, BLUE, DARK_BLUE); - - @Override - public BlueprintDefinition getBlueprint(IBlockState state) - { - BlockVariant variant = state.getValue(PROPERTY_VARIANT); - - if (variant == BlockAetherWisprootSapling.GREEN) - { - return GenerationAether.WISPROOT_GREEN; - } - else if (variant == BlockAetherWisprootSapling.BLUE) - { - return GenerationAether.WISPROOT_BLUE; - } - else if (variant == BlockAetherWisprootSapling.DARK_BLUE) - { - return GenerationAether.WISPROOT_DARK_BLUE; - } - - return null; - } - - @Override - public BlockPos getBlueprintOffset(IBlockState state) - { - return new BlockPos(-8, 0, -8); - } - - @Override - public PropertyVariant getPropertyVariant() - { - return PROPERTY_VARIANT; - } -} diff --git a/src/main/java/com/gildedgames/aether/common/blocks/natural/wood/AetherWoodType.java b/src/main/java/com/gildedgames/aether/common/blocks/natural/wood/AetherWoodType.java deleted file mode 100644 index 3d22bea005..0000000000 --- a/src/main/java/com/gildedgames/aether/common/blocks/natural/wood/AetherWoodType.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.gildedgames.aether.common.blocks.natural.wood; - -public enum AetherWoodType -{ - SKYROOT, - GREATROOT, - WISPROOT, - AMBERROOT, - MUTANT, - THERA; - - public static final AetherWoodType[] VALUES = AetherWoodType.values(); -} diff --git a/src/main/java/com/gildedgames/aether/common/blocks/natural/wood/BlockAetherLog.java b/src/main/java/com/gildedgames/aether/common/blocks/natural/wood/BlockAetherLog.java deleted file mode 100644 index f68ae04c6f..0000000000 --- a/src/main/java/com/gildedgames/aether/common/blocks/natural/wood/BlockAetherLog.java +++ /dev/null @@ -1,149 +0,0 @@ -package com.gildedgames.aether.common.blocks.natural.wood; - -import net.minecraft.block.BlockLog; -import net.minecraft.block.SoundType; -import net.minecraft.block.properties.PropertyEnum; -import net.minecraft.block.state.BlockStateContainer; -import net.minecraft.block.state.IBlockState; -import net.minecraft.init.Blocks; -import net.minecraft.util.Rotation; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.IBlockAccess; -import net.minecraft.world.World; - -public class BlockAetherLog extends BlockLog -{ - public static final PropertyEnum<BlockLog.EnumAxis> PROPERTY_LOG_AXIS = PropertyEnum.create("axis", BlockLog.EnumAxis.class); - - private final AetherWoodType type; - - public BlockAetherLog(AetherWoodType type) - { - super(); - - this.type = type; - - this.setSoundType(SoundType.WOOD); - - this.setHardness(2.0f); - - this.setDefaultState(this.getBlockState().getBaseState().withProperty(PROPERTY_LOG_AXIS, BlockLog.EnumAxis.Y)); - - Blocks.FIRE.setFireInfo(this, 5, 5); - } - - @Override - public IBlockState withRotation(IBlockState state, Rotation rot) - { - switch (rot) - { - case COUNTERCLOCKWISE_90: - case CLOCKWISE_90: - - switch (state.getValue(PROPERTY_LOG_AXIS)) - { - case X: - return state.withProperty(PROPERTY_LOG_AXIS, BlockLog.EnumAxis.Z); - case Z: - return state.withProperty(PROPERTY_LOG_AXIS, BlockLog.EnumAxis.X); - default: - return state; - } - - default: - return state; - } - } - - @Override - public void breakBlock(World world, BlockPos pos, IBlockState state) - { - byte size = 4; - - int chunkSize = size + 1; - - if (world.isAreaLoaded(pos.add(-chunkSize, -chunkSize, -chunkSize), pos.add(chunkSize, chunkSize, chunkSize))) - { - for (BlockPos neighborPos : BlockPos.getAllInBox(pos.add(-size, -size, -size), pos.add(size, size, size))) - { - IBlockState neighborState = world.getBlockState(neighborPos); - - if (neighborState.getBlock().isLeaves(neighborState, world, neighborPos)) - { - neighborState.getBlock().beginLeavesDecay(neighborState, world, neighborPos); - } - } - } - } - - @Override - public IBlockState getStateFromMeta(int meta) - { - BlockLog.EnumAxis axis = BlockLog.EnumAxis.NONE; - - switch (meta & 7) - { - case 1: - axis = BlockLog.EnumAxis.Y; - break; - case 2: - axis = BlockLog.EnumAxis.X; - break; - case 3: - axis = BlockLog.EnumAxis.Z; - break; - } - - return this.getDefaultState().withProperty(PROPERTY_LOG_AXIS, axis); - } - - @Override - public int getMetaFromState(IBlockState state) - { - int meta = 0; - - switch (state.getValue(PROPERTY_LOG_AXIS)) - { - case Y: - meta |= 1; - break; - case X: - meta |= 2; - break; - case Z: - meta |= 3; - break; - } - - return meta; - } - - @Override - public boolean canSustainLeaves(IBlockState state, IBlockAccess world, BlockPos pos) - { - return true; - } - - @Override - public boolean isWood(IBlockAccess world, BlockPos pos) - { - return true; - } - - @Override - public int damageDropped(IBlockState state) - { - return 0; - } - - @Override - protected BlockStateContainer createBlockState() - { - return new BlockStateContainer(this, PROPERTY_LOG_AXIS); - } - - public AetherWoodType getAetherWoodType() - { - return this.type; - } -} diff --git a/src/main/java/com/gildedgames/aether/common/blocks/natural/wood/BlockAmberLog.java b/src/main/java/com/gildedgames/aether/common/blocks/natural/wood/BlockAmberLog.java deleted file mode 100644 index a3b54417a5..0000000000 --- a/src/main/java/com/gildedgames/aether/common/blocks/natural/wood/BlockAmberLog.java +++ /dev/null @@ -1,40 +0,0 @@ -package com.gildedgames.aether.common.blocks.natural.wood; - -import com.gildedgames.aether.api.registrar.BlocksAether; -import com.gildedgames.aether.api.registrar.ItemsAether; -import net.minecraft.block.state.IBlockState; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.util.NonNullList; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.IBlockAccess; -import net.minecraft.world.World; - -import java.util.Random; - -public class BlockAmberLog extends BlockAetherLog -{ - private static final Random RANDOM = new Random(); - - public BlockAmberLog(AetherWoodType type) - { - super(type); - } - - @Override - public void getDrops(NonNullList<ItemStack> list, IBlockAccess world, BlockPos pos, IBlockState state, int fortune) - { - super.getDrops(list, world, pos, state, fortune); - - // Why, Minecraft... - Random rand = world instanceof World ? ((World) world).rand : RANDOM; - - list.add(new ItemStack(ItemsAether.golden_amber, rand.nextInt(3) + 1)); - } - - @Override - public Item getItemDropped(IBlockState state, Random rand, int fortune) - { - return Item.getItemFromBlock(BlocksAether.skyroot_log); - } -} diff --git a/src/main/java/com/gildedgames/aether/common/blocks/properties/BlockVariant.java b/src/main/java/com/gildedgames/aether/common/blocks/properties/BlockVariant.java deleted file mode 100644 index 732ea699c9..0000000000 --- a/src/main/java/com/gildedgames/aether/common/blocks/properties/BlockVariant.java +++ /dev/null @@ -1,66 +0,0 @@ -package com.gildedgames.aether.common.blocks.properties; - -import java.util.Objects; - -public class BlockVariant implements Comparable<BlockVariant> -{ - private final int meta; - - private final String name; - - public BlockVariant(int meta, String name) - { - this.meta = meta; - this.name = name; - } - - public int getMeta() - { - return this.meta; - } - - public String getName() - { - return this.name; - } - - @Override - public int compareTo(BlockVariant variant) - { - return Integer.compare(this.meta, variant.meta); - } - - @Override - public String toString() - { - return this.getName(); - } - - @Override - public boolean equals(Object o) - { - if (this == o) - { - return true; - } - - if (o == null || this.getClass() != o.getClass()) - { - return false; - } - - BlockVariant that = (BlockVariant) o; - - return this.meta == that.meta && Objects.equals(this.name, that.name); - } - - @Override - public int hashCode() - { - int hash = 1; - hash = 31 * hash + this.name.hashCode(); - hash = 31 * hash + this.meta; - - return hash; - } -} diff --git a/src/main/java/com/gildedgames/aether/common/blocks/properties/PropertyVariant.java b/src/main/java/com/gildedgames/aether/common/blocks/properties/PropertyVariant.java deleted file mode 100644 index b22fd0e7bc..0000000000 --- a/src/main/java/com/gildedgames/aether/common/blocks/properties/PropertyVariant.java +++ /dev/null @@ -1,111 +0,0 @@ -package com.gildedgames.aether.common.blocks.properties; - -import com.google.common.base.Optional; -import net.minecraft.block.properties.IProperty; - -import java.util.ArrayList; -import java.util.Collection; -import java.util.HashMap; -import java.util.List; - -public class PropertyVariant implements IProperty<BlockVariant> -{ - private final String name; - - private final BlockVariant[] mappings; - - private final HashMap<String, BlockVariant> entries; - - private final List<BlockVariant> values = new ArrayList<>(); - - protected PropertyVariant(String name, BlockVariant... variants) - { - if (variants.length <= 0) - { - throw new RuntimeException("At least one variant must be supplied"); - } - - this.name = name; - - this.mappings = variants; - this.entries = new HashMap<>(); - - for (BlockVariant variant : variants) - { - this.entries.put(variant.getName(), variant); - this.values.add(variant); - } - } - - public static PropertyVariant create(String name, BlockVariant... variants) - { - return new PropertyVariant(name, variants); - } - - @Override - public String getName() - { - return this.name; - } - - @Override - public Collection<BlockVariant> getAllowedValues() - { - return this.entries.values(); - } - - @Override - public Class<BlockVariant> getValueClass() - { - return BlockVariant.class; - } - - @Override - public Optional<BlockVariant> parseValue(String value) - { - return Optional.fromNullable(this.entries.get(value)); - } - - @Override - public String getName(BlockVariant value) - { - return value.getName(); - } - - public BlockVariant fromMeta(int meta) - { - if (meta < 0 || meta > this.mappings.length) - { - return this.mappings[0]; - } - - return this.mappings[meta]; - } - - @Override - public boolean equals(Object other) - { - if (this == other) - { - return true; - } - else if (other instanceof PropertyVariant && super.equals(other)) - { - PropertyVariant otherProperty = (PropertyVariant) other; - - return this.values.equals(otherProperty.values) && this.entries.equals(otherProperty.entries); - } - - return false; - } - - @Override - public int hashCode() - { - int i = super.hashCode(); - i = 31 * i + this.values.hashCode(); - i = 31 * i + this.entries.hashCode(); - - return i; - } -} diff --git a/src/main/java/com/gildedgames/aether/common/blocks/util/BlockBuilder.java b/src/main/java/com/gildedgames/aether/common/blocks/util/BlockBuilder.java deleted file mode 100644 index ff7c08f765..0000000000 --- a/src/main/java/com/gildedgames/aether/common/blocks/util/BlockBuilder.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.gildedgames.aether.common.blocks.util; - -import net.minecraft.block.Block; -import net.minecraft.block.SoundType; -import net.minecraft.block.material.Material; - -public class BlockBuilder extends Block -{ - public BlockBuilder(Material material) - { - super(material); - } - - @Override - public BlockBuilder setSoundType(SoundType type) - { - super.setSoundType(type); - - return this; - } -} diff --git a/src/main/java/com/gildedgames/aether/common/blocks/util/BlockCustomBed.java b/src/main/java/com/gildedgames/aether/common/blocks/util/BlockCustomBed.java deleted file mode 100644 index b290ae0159..0000000000 --- a/src/main/java/com/gildedgames/aether/common/blocks/util/BlockCustomBed.java +++ /dev/null @@ -1,98 +0,0 @@ -package com.gildedgames.aether.common.blocks.util; - -import com.gildedgames.aether.common.blocks.IInternalBlock; -import com.gildedgames.aether.common.entities.tiles.TileEntitySkyrootBed; -import net.minecraft.block.BlockBed; -import net.minecraft.block.SoundType; -import net.minecraft.block.state.IBlockState; -import net.minecraft.entity.Entity; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.EnumBlockRenderType; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.RayTraceResult; -import net.minecraft.world.IBlockAccess; -import net.minecraft.world.World; - -import java.util.Random; -import java.util.function.Supplier; - -public class BlockCustomBed extends BlockBed implements IInternalBlock -{ - - private final Supplier<Item> bedItem; - - public BlockCustomBed(Supplier<Item> bedItem, SoundType soundType) - { - super(); - - this.setSoundType(soundType); - - this.bedItem = bedItem; - - this.setHardness(0.2F); - - this.disableStats(); - } - - @Override - public EnumBlockRenderType getRenderType(IBlockState state) - { - return EnumBlockRenderType.MODEL; - } - - @Override - public Item getItemDropped(IBlockState state, Random rand, int fortune) - { - return state.getValue(PART) == EnumPartType.HEAD ? null : this.bedItem.get(); - } - - @Override - public ItemStack getPickBlock(IBlockState state, RayTraceResult target, World world, BlockPos pos, EntityPlayer player) - { - return new ItemStack(this.bedItem.get()); - } - - @Override - public boolean isBed(IBlockState state, IBlockAccess world, BlockPos pos, Entity player) - { - return true; - } - - @Override - public ItemStack getItem(World worldIn, BlockPos pos, IBlockState state) - { - return new ItemStack(this.bedItem.get()); - } - - @Override - public void dropBlockAsItemWithChance(World worldIn, BlockPos pos, IBlockState state, float chance, int fortune) - { - if (state.getValue(PART) == BlockBed.EnumPartType.HEAD) - { - spawnAsEntity(worldIn, pos, new ItemStack(this.bedItem.get())); - } - } - - @Override - public void harvestBlock(World worldIn, EntityPlayer player, BlockPos pos, IBlockState state, TileEntity te, ItemStack stack) - { - if (state.getValue(PART) == BlockBed.EnumPartType.HEAD && te instanceof TileEntitySkyrootBed) - { - spawnAsEntity(worldIn, pos, new ItemStack(this.bedItem.get())); - } - else - { - super.harvestBlock(worldIn, player, pos, state, null, stack); - } - } - - @Override - public TileEntity createNewTileEntity(World worldIn, int meta) - { - return null; - } - -} diff --git a/src/main/java/com/gildedgames/aether/common/blocks/util/BlockCustomBookshelf.java b/src/main/java/com/gildedgames/aether/common/blocks/util/BlockCustomBookshelf.java deleted file mode 100644 index 46828c75ed..0000000000 --- a/src/main/java/com/gildedgames/aether/common/blocks/util/BlockCustomBookshelf.java +++ /dev/null @@ -1,42 +0,0 @@ -package com.gildedgames.aether.common.blocks.util; - -import net.minecraft.block.Block; -import net.minecraft.block.SoundType; -import net.minecraft.block.material.Material; -import net.minecraft.block.state.IBlockState; -import net.minecraft.init.Items; -import net.minecraft.item.Item; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.World; - -import javax.annotation.Nullable; -import java.util.Random; - -public class BlockCustomBookshelf extends Block -{ - public BlockCustomBookshelf(Material material, SoundType soundType) - { - super(material); - - this.setSoundType(soundType); - } - - @Override - public int quantityDropped(Random random) - { - return 3; - } - - @Override - public float getEnchantPowerBonus(World world, BlockPos pos) - { - return 1; - } - - @Override - @Nullable - public Item getItemDropped(IBlockState state, Random rand, int fortune) - { - return Items.BOOK; - } -} diff --git a/src/main/java/com/gildedgames/aether/common/blocks/util/BlockCustomCarpet.java b/src/main/java/com/gildedgames/aether/common/blocks/util/BlockCustomCarpet.java deleted file mode 100644 index 91b89e67a3..0000000000 --- a/src/main/java/com/gildedgames/aether/common/blocks/util/BlockCustomCarpet.java +++ /dev/null @@ -1,96 +0,0 @@ -package com.gildedgames.aether.common.blocks.util; - -import com.gildedgames.aether.common.blocks.IBlockWithItem; -import com.gildedgames.aether.common.items.blocks.ItemBlockCloudwool; -import com.gildedgames.aether.common.items.blocks.ItemBlockCustomCarpet; -import net.minecraft.block.Block; -import net.minecraft.block.SoundType; -import net.minecraft.block.material.Material; -import net.minecraft.block.state.BlockFaceShape; -import net.minecraft.block.state.IBlockState; -import net.minecraft.item.ItemBlock; -import net.minecraft.util.EnumFacing; -import net.minecraft.util.math.AxisAlignedBB; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.IBlockAccess; -import net.minecraft.world.World; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; - -public class BlockCustomCarpet extends Block implements IBlockWithItem -{ - private static final AxisAlignedBB CARPET_AABB = new AxisAlignedBB(0.0D, 0.0D, 0.0D, 1.0D, 0.0625D, 1.0D); - - public BlockCustomCarpet() - { - super(Material.CARPET); - - this.setHardness(0.1F); - this.setSoundType(SoundType.CLOTH); - this.setLightOpacity(0); - } - - @Override - public BlockFaceShape getBlockFaceShape(IBlockAccess worldIn, IBlockState state, BlockPos pos, EnumFacing face) - { - return BlockFaceShape.UNDEFINED; - } - - @Override - public AxisAlignedBB getBoundingBox(IBlockState state, IBlockAccess source, BlockPos pos) - { - return CARPET_AABB; - } - - @Override - public boolean isOpaqueCube(IBlockState state) - { - return false; - } - - @Override - public boolean isFullCube(IBlockState state) - { - return false; - } - - @Override - public boolean canPlaceBlockAt(World worldIn, BlockPos pos) - { - return super.canPlaceBlockAt(worldIn, pos) && this.canBlockStay(worldIn, pos); - } - - @Override - public void neighborChanged(IBlockState state, World worldIn, BlockPos pos, Block blockIn, BlockPos fromPos) - { - this.checkForDrop(worldIn, pos, state); - } - - private void checkForDrop(World worldIn, BlockPos pos, IBlockState state) - { - if (!this.canBlockStay(worldIn, pos)) - { - this.dropBlockAsItem(worldIn, pos, state, 0); - worldIn.setBlockToAir(pos); - } - } - - private boolean canBlockStay(World worldIn, BlockPos pos) - { - return !worldIn.isAirBlock(pos.down()); - } - - @Override - @SideOnly(Side.CLIENT) - public boolean shouldSideBeRendered(IBlockState blockState, IBlockAccess blockAccess, BlockPos pos, EnumFacing side) - { - return side == EnumFacing.UP || blockAccess.getBlockState(pos.offset(side)).getBlock() == this - || super.shouldSideBeRendered(blockState, blockAccess, pos, side); - } - - @Override - public ItemBlock createItemBlock() - { - return new ItemBlockCustomCarpet(this); - } -} diff --git a/src/main/java/com/gildedgames/aether/common/blocks/util/BlockCustomDoor.java b/src/main/java/com/gildedgames/aether/common/blocks/util/BlockCustomDoor.java deleted file mode 100644 index 32bce95ac4..0000000000 --- a/src/main/java/com/gildedgames/aether/common/blocks/util/BlockCustomDoor.java +++ /dev/null @@ -1,47 +0,0 @@ -package com.gildedgames.aether.common.blocks.util; - -import com.gildedgames.aether.common.blocks.IInternalBlock; -import net.minecraft.block.BlockDoor; -import net.minecraft.block.SoundType; -import net.minecraft.block.material.Material; -import net.minecraft.block.state.IBlockState; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.RayTraceResult; -import net.minecraft.world.World; - -import java.util.Random; -import java.util.function.Supplier; - -public class BlockCustomDoor extends BlockDoor implements IInternalBlock -{ - private final Supplier<Item> doorItem; - - public BlockCustomDoor(Material material, Supplier<Item> doorItem, SoundType soundType) - { - super(material); - - this.doorItem = doorItem; - - this.setSoundType(soundType); - - this.setHardness(3.0f); - - this.disableStats(); - } - - @Override - public Item getItemDropped(IBlockState state, Random rand, int fortune) - { - return state.getValue(HALF) == EnumDoorHalf.UPPER ? null : this.doorItem.get(); - } - - @Override - public ItemStack getPickBlock(IBlockState state, RayTraceResult target, World world, BlockPos pos, EntityPlayer player) - { - return new ItemStack(this.doorItem.get()); - } - -} diff --git a/src/main/java/com/gildedgames/aether/common/blocks/util/BlockCustomIce.java b/src/main/java/com/gildedgames/aether/common/blocks/util/BlockCustomIce.java deleted file mode 100644 index 6835ddb1bb..0000000000 --- a/src/main/java/com/gildedgames/aether/common/blocks/util/BlockCustomIce.java +++ /dev/null @@ -1,14 +0,0 @@ -package com.gildedgames.aether.common.blocks.util; - -import net.minecraft.block.BlockIce; -import net.minecraft.block.SoundType; - -public class BlockCustomIce extends BlockIce -{ - public BlockCustomIce() - { - super(); - - this.setSoundType(SoundType.GLASS); - } -} diff --git a/src/main/java/com/gildedgames/aether/common/blocks/util/BlockCustomLadder.java b/src/main/java/com/gildedgames/aether/common/blocks/util/BlockCustomLadder.java deleted file mode 100644 index 41798fcc61..0000000000 --- a/src/main/java/com/gildedgames/aether/common/blocks/util/BlockCustomLadder.java +++ /dev/null @@ -1,29 +0,0 @@ -package com.gildedgames.aether.common.blocks.util; - -import com.gildedgames.aether.common.blocks.IBlockWithItem; -import com.gildedgames.aether.common.items.blocks.ItemBlockCustomLadder; -import com.gildedgames.aether.common.items.blocks.ItemBlockCustomSlab; -import net.minecraft.block.BlockLadder; -import net.minecraft.block.SoundType; -import net.minecraft.item.ItemBlock; - -public class BlockCustomLadder extends BlockLadder implements IBlockWithItem -{ - - public BlockCustomLadder() - { - super(); - - this.setSoundType(SoundType.LADDER); - - this.setHardness(0.4f); - - this.disableStats(); - } - - @Override - public ItemBlock createItemBlock() - { - return new ItemBlockCustomLadder(this); - } -} diff --git a/src/main/java/com/gildedgames/aether/common/blocks/util/BlockCustomPackedIce.java b/src/main/java/com/gildedgames/aether/common/blocks/util/BlockCustomPackedIce.java deleted file mode 100644 index 7ed42dd74e..0000000000 --- a/src/main/java/com/gildedgames/aether/common/blocks/util/BlockCustomPackedIce.java +++ /dev/null @@ -1,14 +0,0 @@ -package com.gildedgames.aether.common.blocks.util; - -import net.minecraft.block.BlockPackedIce; -import net.minecraft.block.SoundType; - -public class BlockCustomPackedIce extends BlockPackedIce -{ - public BlockCustomPackedIce() - { - super(); - - this.setSoundType(SoundType.GLASS); - } -} diff --git a/src/main/java/com/gildedgames/aether/common/blocks/util/BlockCustomSlab.java b/src/main/java/com/gildedgames/aether/common/blocks/util/BlockCustomSlab.java deleted file mode 100644 index 170d1f0dda..0000000000 --- a/src/main/java/com/gildedgames/aether/common/blocks/util/BlockCustomSlab.java +++ /dev/null @@ -1,201 +0,0 @@ -package com.gildedgames.aether.common.blocks.util; - -import com.gildedgames.aether.common.blocks.IBlockWithItem; -import com.gildedgames.aether.common.items.blocks.ItemBlockCustomSlab; -import net.minecraft.block.Block; -import net.minecraft.block.SoundType; -import net.minecraft.block.material.Material; -import net.minecraft.block.properties.PropertyEnum; -import net.minecraft.block.state.BlockFaceShape; -import net.minecraft.block.state.BlockStateContainer; -import net.minecraft.block.state.IBlockState; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.item.ItemBlock; -import net.minecraft.util.EnumFacing; -import net.minecraft.util.IStringSerializable; -import net.minecraft.util.math.AxisAlignedBB; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.IBlockAccess; -import net.minecraft.world.World; - -import java.util.Random; - -public class BlockCustomSlab extends Block implements IBlockWithItem -{ - public static final PropertyEnum<EnumSlabPart> PROPERTY_SLAB_STATE = PropertyEnum.create("state", EnumSlabPart.class); - - private static final AxisAlignedBB AABB_BOTTOM_HALF = new AxisAlignedBB(0.0D, 0.0D, 0.0D, 1.0D, 0.5D, 1.0D); - - private static final AxisAlignedBB AABB_TOP_HALF = new AxisAlignedBB(0.0D, 0.5D, 0.0D, 1.0D, 1.0D, 1.0D); - - public BlockCustomSlab(final Material material) - { - super(material); - - this.setLightOpacity(0); - - this.useNeighborBrightness = true; - } - - @Override - public BlockCustomSlab setSoundType(final SoundType type) - { - super.setSoundType(type); - - return this; - } - - @Override - public int getLightOpacity(final IBlockState state) - { - return state.getValue(PROPERTY_SLAB_STATE) == EnumSlabPart.FULL_BLOCK ? 255 : 0; - } - - @Override - public boolean doesSideBlockRendering(final IBlockState state, final IBlockAccess world, final BlockPos pos, final EnumFacing face) - { - if (state.isOpaqueCube()) - { - return true; - } - - final EnumSlabPart slabState = state.getValue(PROPERTY_SLAB_STATE); - - return (slabState == EnumSlabPart.TOP_HALF && face == EnumFacing.UP) || (slabState == EnumSlabPart.BOTTOM_HALF - && face == EnumFacing.DOWN); - } - - @Override - public IBlockState getStateFromMeta(final int meta) - { - return this.getDefaultState().withProperty(PROPERTY_SLAB_STATE, EnumSlabPart.VALUES[meta]); - } - - @Override - public int getMetaFromState(final IBlockState state) - { - return state.getValue(PROPERTY_SLAB_STATE).ordinal(); - } - - @Override - @Deprecated - public boolean isFullBlock(final IBlockState state) - { - return state.getValue(PROPERTY_SLAB_STATE) == EnumSlabPart.FULL_BLOCK; - } - - @Override - public boolean isFullCube(final IBlockState state) - { - return state.getValue(PROPERTY_SLAB_STATE) == EnumSlabPart.FULL_BLOCK; - } - - @Override - public boolean isOpaqueCube(final IBlockState state) - { - return state.getValue(PROPERTY_SLAB_STATE) == EnumSlabPart.FULL_BLOCK; - } - - @Override - public int quantityDropped(final IBlockState state, final int fortune, final Random random) - { - return state.getValue(PROPERTY_SLAB_STATE) == EnumSlabPart.FULL_BLOCK ? 2 : 1; - } - - @Override - public AxisAlignedBB getBoundingBox(final IBlockState state, final IBlockAccess source, final BlockPos pos) - { - switch (state.getValue(PROPERTY_SLAB_STATE)) - { - case BOTTOM_HALF: - return AABB_BOTTOM_HALF; - case TOP_HALF: - return AABB_TOP_HALF; - default: - return FULL_BLOCK_AABB; - } - } - - @Override - public IBlockState getStateForPlacement(final World world, final BlockPos pos, final EnumFacing facing, final float hitX, final float hitY, - final float hitZ, final int meta, - final EntityLivingBase placer) - { - final IBlockState state = this.getDefaultState().withProperty(PROPERTY_SLAB_STATE, EnumSlabPart.BOTTOM_HALF); - - if (state.getValue(PROPERTY_SLAB_STATE) == EnumSlabPart.FULL_BLOCK) - { - return state; - } - else - { - if (facing != EnumFacing.DOWN && (facing == EnumFacing.UP || (double) hitY <= 0.5D)) - { - return state.withProperty(PROPERTY_SLAB_STATE, EnumSlabPart.BOTTOM_HALF); - } - else - { - return state.withProperty(PROPERTY_SLAB_STATE, EnumSlabPart.TOP_HALF); - } - } - } - - @Override - public BlockFaceShape getBlockFaceShape(IBlockAccess worldIn, IBlockState state, BlockPos pos, EnumFacing face) - { - if (state.getValue(PROPERTY_SLAB_STATE) == EnumSlabPart.FULL_BLOCK) - { - return BlockFaceShape.SOLID; - } - else if (face == EnumFacing.UP && state.getValue(PROPERTY_SLAB_STATE) == EnumSlabPart.TOP_HALF) - { - return BlockFaceShape.SOLID; - } - else if (face == EnumFacing.DOWN && state.getValue(PROPERTY_SLAB_STATE) == EnumSlabPart.BOTTOM_HALF) - { - return BlockFaceShape.SOLID; - } - - return BlockFaceShape.UNDEFINED; - } - - @Override - public boolean isTopSolid(IBlockState state) - { - return state.getValue(PROPERTY_SLAB_STATE) == EnumSlabPart.TOP_HALF || state.getValue(PROPERTY_SLAB_STATE) == EnumSlabPart.FULL_BLOCK; - } - - @Override - public BlockStateContainer createBlockState() - { - return new BlockStateContainer(this, PROPERTY_SLAB_STATE); - } - - @Override - public ItemBlock createItemBlock() - { - return new ItemBlockCustomSlab(this); - } - - public enum EnumSlabPart implements IStringSerializable - { - BOTTOM_HALF("bottom"), - TOP_HALF("top"), - FULL_BLOCK("full"); - - public static final EnumSlabPart[] VALUES = EnumSlabPart.values(); - - private final String name; - - EnumSlabPart(final String name) - { - this.name = name; - } - - @Override - public String getName() - { - return this.name; - } - } -} diff --git a/src/main/java/com/gildedgames/aether/common/blocks/util/BlockCustomSnow.java b/src/main/java/com/gildedgames/aether/common/blocks/util/BlockCustomSnow.java deleted file mode 100644 index 0af12199e3..0000000000 --- a/src/main/java/com/gildedgames/aether/common/blocks/util/BlockCustomSnow.java +++ /dev/null @@ -1,51 +0,0 @@ -package com.gildedgames.aether.common.blocks.util; - -import com.gildedgames.aether.api.registrar.BlocksAether; -import com.gildedgames.aether.common.blocks.IBlockWithItem; -import com.gildedgames.aether.common.items.blocks.ItemBlockCustomSnow; -import net.minecraft.block.Block; -import net.minecraft.block.BlockSnow; -import net.minecraft.block.SoundType; -import net.minecraft.block.state.BlockFaceShape; -import net.minecraft.block.state.IBlockState; -import net.minecraft.init.Blocks; -import net.minecraft.item.ItemBlock; -import net.minecraft.util.EnumFacing; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.World; - -public class BlockCustomSnow extends BlockSnow implements IBlockWithItem -{ - public BlockCustomSnow() - { - super(); - - this.setHardness(0.1F); - this.setSoundType(SoundType.SNOW); - this.setLightOpacity(0); - } - - @Override - public boolean canPlaceBlockAt(World worldIn, BlockPos pos) - { - IBlockState iblockstate = worldIn.getBlockState(pos.down()); - Block block = iblockstate.getBlock(); - - if (block != BlocksAether.highlands_ice && block != BlocksAether.highlands_packed_ice && block != Blocks.BARRIER) - { - BlockFaceShape blockfaceshape = iblockstate.getBlockFaceShape(worldIn, pos.down(), EnumFacing.UP); - return blockfaceshape == BlockFaceShape.SOLID || iblockstate.getBlock().isLeaves(iblockstate, worldIn, pos.down()) - || block == this && iblockstate.getValue(LAYERS) == 8; - } - else - { - return false; - } - } - - @Override - public ItemBlock createItemBlock() - { - return new ItemBlockCustomSnow(this); - } -} diff --git a/src/main/java/com/gildedgames/aether/common/blocks/util/BlockCustomSnowBlock.java b/src/main/java/com/gildedgames/aether/common/blocks/util/BlockCustomSnowBlock.java deleted file mode 100644 index e794c43a50..0000000000 --- a/src/main/java/com/gildedgames/aether/common/blocks/util/BlockCustomSnowBlock.java +++ /dev/null @@ -1,15 +0,0 @@ -package com.gildedgames.aether.common.blocks.util; - -import net.minecraft.block.BlockSnowBlock; -import net.minecraft.block.SoundType; - -public class BlockCustomSnowBlock extends BlockSnowBlock -{ - public BlockCustomSnowBlock() - { - super(); - - this.setHardness(0.2F); - this.setSoundType(SoundType.SNOW); - } -} diff --git a/src/main/java/com/gildedgames/aether/common/blocks/util/BlockCustomStairs.java b/src/main/java/com/gildedgames/aether/common/blocks/util/BlockCustomStairs.java deleted file mode 100644 index bedb7bdeae..0000000000 --- a/src/main/java/com/gildedgames/aether/common/blocks/util/BlockCustomStairs.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.gildedgames.aether.common.blocks.util; - -import net.minecraft.block.BlockStairs; -import net.minecraft.block.state.IBlockState; - -public class BlockCustomStairs extends BlockStairs -{ - - public BlockCustomStairs(final IBlockState state) - { - super(state); - - this.useNeighborBrightness = true; - } - -} diff --git a/src/main/java/com/gildedgames/aether/common/blocks/util/BlockFloating.java b/src/main/java/com/gildedgames/aether/common/blocks/util/BlockFloating.java deleted file mode 100644 index e9a388675f..0000000000 --- a/src/main/java/com/gildedgames/aether/common/blocks/util/BlockFloating.java +++ /dev/null @@ -1,97 +0,0 @@ -package com.gildedgames.aether.common.blocks.util; - -import com.gildedgames.aether.common.entities.blocks.EntityFloatingBlock; -import net.minecraft.block.Block; -import net.minecraft.block.BlockSand; -import net.minecraft.block.material.Material; -import net.minecraft.block.state.IBlockState; -import net.minecraft.init.Blocks; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.World; - -import java.util.Random; - -public class BlockFloating extends Block -{ - public BlockFloating(Material material) - { - super(material); - } - - public static boolean canFallInto(World world, BlockPos pos) - { - if (world.isAirBlock(pos)) - { - return true; - } - - IBlockState state = world.getBlockState(pos); - - Material material = state.getMaterial(); - - return state.getBlock() == Blocks.FIRE || material == Material.AIR || material == Material.WATER || material == Material.LAVA; - } - - @Override - public void onBlockAdded(World world, BlockPos pos, IBlockState state) - { - world.scheduleUpdate(pos, this, this.tickRate(world)); - } - - @Override - public void neighborChanged(IBlockState state, World world, BlockPos pos, Block blockIn, BlockPos fromPos) - { - world.scheduleUpdate(pos, this, this.tickRate(world)); - } - - @Override - public void updateTick(World world, BlockPos pos, IBlockState state, Random rand) - { - if (!world.isRemote) - { - this.checkFallable(world, pos); - } - } - - private void checkFallable(World world, BlockPos pos) - { - boolean floatInstantly = BlockSand.fallInstantly; - - if (canFallInto(world, pos.up()) && pos.getY() >= 0) - { - byte b0 = 32; - - if (!floatInstantly && world.isAreaLoaded(pos.add(-b0, -b0, -b0), pos.add(b0, b0, b0))) - { - if (!world.isRemote) - { - EntityFloatingBlock entity = new EntityFloatingBlock(world, - pos.getX() + 0.5D, pos.getY(), pos.getZ() + 0.5D, world.getBlockState(pos)); - world.spawnEntity(entity); - } - } - else - { - world.setBlockToAir(pos); - - BlockPos bottomPos = pos.down(); - - while (canFallInto(world, bottomPos) && bottomPos.getY() > 0) - { - bottomPos = bottomPos.down(); - } - - if (bottomPos.getY() > 0) - { - world.setBlockState(bottomPos.up(), this.getDefaultState()); - } - } - } - } - - @Override - public int tickRate(World worldIn) - { - return 2; - } -} diff --git a/src/main/java/com/gildedgames/aether/common/blocks/util/BlockRotatable.java b/src/main/java/com/gildedgames/aether/common/blocks/util/BlockRotatable.java deleted file mode 100644 index 2b0b7b08e5..0000000000 --- a/src/main/java/com/gildedgames/aether/common/blocks/util/BlockRotatable.java +++ /dev/null @@ -1,107 +0,0 @@ -package com.gildedgames.aether.common.blocks.util; - -import net.minecraft.block.Block; -import net.minecraft.block.material.Material; -import net.minecraft.block.properties.PropertyEnum; -import net.minecraft.block.state.BlockStateContainer; -import net.minecraft.block.state.IBlockState; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.util.EnumFacing; -import net.minecraft.util.EnumHand; -import net.minecraft.util.Rotation; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.World; - -public class BlockRotatable extends Block -{ - public static final PropertyEnum<EnumFacing.Axis> PROPERTY_AXIS = PropertyEnum.create("axis", EnumFacing.Axis.class); - - public BlockRotatable(Material material) - { - super(material); - - this.setDefaultState(this.getBlockState().getBaseState().withProperty(PROPERTY_AXIS, EnumFacing.Axis.Y)); - } - - @Override - public IBlockState withRotation(IBlockState state, Rotation rot) - { - switch (rot) - { - case COUNTERCLOCKWISE_90: - case CLOCKWISE_90: - switch (state.getValue(PROPERTY_AXIS)) - { - case X: - return state.withProperty(PROPERTY_AXIS, EnumFacing.Axis.Z); - case Z: - return state.withProperty(PROPERTY_AXIS, EnumFacing.Axis.X); - default: - return state; - } - default: - return state; - } - } - - @Override - public IBlockState getStateForPlacement(World world, BlockPos pos, EnumFacing facing, float hitX, float hitY, float hitZ, int meta, EntityLivingBase placer, - EnumHand hand) - { - return super.getStateForPlacement(world, pos, facing, hitX, hitY, hitZ, meta, placer, hand).withProperty(PROPERTY_AXIS, facing.getAxis()); - } - - @Override - public IBlockState getStateFromMeta(int meta) - { - EnumFacing.Axis axis; - - switch (meta & 7) - { - case 1: - axis = EnumFacing.Axis.X; - break; - case 2: - axis = EnumFacing.Axis.Z; - break; - default: - axis = EnumFacing.Axis.Y; - break; - } - - return this.getDefaultState().withProperty(PROPERTY_AXIS, axis); - } - - @Override - public int getMetaFromState(IBlockState state) - { - int meta = 0; - - switch (state.getValue(PROPERTY_AXIS)) - { - case X: - meta |= 1; - break; - case Z: - meta |= 2; - break; - default: - meta |= 0; - break; - } - - return meta; - } - - @Override - public int damageDropped(IBlockState state) - { - return 0; - } - - @Override - protected BlockStateContainer createBlockState() - { - return new BlockStateContainer(this, PROPERTY_AXIS); - } -} diff --git a/src/main/java/com/gildedgames/aether/common/cache/EntityStats.java b/src/main/java/com/gildedgames/aether/common/cache/EntityStats.java deleted file mode 100644 index 08cd1885cc..0000000000 --- a/src/main/java/com/gildedgames/aether/common/cache/EntityStats.java +++ /dev/null @@ -1,112 +0,0 @@ -package com.gildedgames.aether.common.cache; - -import com.gildedgames.aether.api.cache.IEntityStats; -import com.gildedgames.aether.api.entity.effects.IAetherStatusEffects; - -import java.util.Map; - -public class EntityStats implements IEntityStats -{ - private final float maxHealth; - - private final double slashDefenseLevel, pierceDefenseLevel, impactDefenseLevel; - - private final Map<IAetherStatusEffects.effectTypes, Double> resistances; - - private EntityStats(final float maxHealth, final double slashDefenseLevel, final double pierceDefenseLevel, final double impactDefenseLevel, final Map<IAetherStatusEffects.effectTypes, Double> resistances) - { - this.maxHealth = maxHealth; - this.slashDefenseLevel = slashDefenseLevel; - this.pierceDefenseLevel = pierceDefenseLevel; - this.impactDefenseLevel = impactDefenseLevel; - this.resistances = resistances; - } - - public static EntityStatsFactory build() - { - return new EntityStatsFactory(); - } - - @Override - public float getMaxHealth() - { - return this.maxHealth; - } - - @Override - public double getSlashDefenseLevel() - { - return this.slashDefenseLevel; - } - - @Override - public double getPierceDefenseLevel() - { - return this.pierceDefenseLevel; - } - - @Override - public double getImpactDefenseLevel() - { - return this.impactDefenseLevel; - } - - public Map<IAetherStatusEffects.effectTypes, Double> getResistances() - { - return this.resistances; - } - - public static class EntityStatsFactory - { - private float maxHealth; - - private double slashDefenseLevel, pierceDefenseLevel, impactDefenseLevel; - - private Map<IAetherStatusEffects.effectTypes, Double> resistances; - - private EntityStatsFactory() - { - - } - - public EntityStatsFactory maxHealth(final float value) - { - this.maxHealth = value; - - return this; - } - - public EntityStatsFactory slashDefenseLevel(final double value) - { - this.slashDefenseLevel = value; - - return this; - } - - public EntityStatsFactory pierceDefenseLevel(final double value) - { - this.pierceDefenseLevel = value; - - return this; - } - - public EntityStatsFactory impactDefenseLevel(final double value) - { - this.impactDefenseLevel = value; - - return this; - } - - public EntityStatsFactory resistances(final Map<IAetherStatusEffects.effectTypes, Double> value) - { - this.resistances = value; - - return this; - } - - public EntityStats flush() - { - return new EntityStats(this.maxHealth, this.slashDefenseLevel, this.pierceDefenseLevel, this.impactDefenseLevel, this.resistances); - } - } -} diff --git a/src/main/java/com/gildedgames/aether/common/cache/EntityStatsCache.java b/src/main/java/com/gildedgames/aether/common/cache/EntityStatsCache.java deleted file mode 100644 index f136cceeaf..0000000000 --- a/src/main/java/com/gildedgames/aether/common/cache/EntityStatsCache.java +++ /dev/null @@ -1,72 +0,0 @@ -package com.gildedgames.aether.common.cache; - -import com.gildedgames.aether.api.cache.IEntityStats; -import com.gildedgames.aether.api.cache.IEntityStatsCache; -import com.gildedgames.aether.api.entity.damage.DamageTypeAttributes; -import com.gildedgames.aether.api.entity.effects.IAetherStatusEffects; -import com.gildedgames.aether.common.entities.effects.IEntityResistanceHolder; -import com.google.common.collect.Maps; -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.util.ResourceLocation; -import net.minecraftforge.fml.common.registry.EntityEntry; -import net.minecraftforge.fml.common.registry.ForgeRegistries; - -import java.util.HashMap; -import java.util.Map; - -public class EntityStatsCache implements IEntityStatsCache -{ - private final Map<ResourceLocation, IEntityStats> entityIdToStats = Maps.newHashMap(); - - public EntityStatsCache() - { - - } - - @Override - public IEntityStats getStats(final ResourceLocation entityId) - { - if (!this.entityIdToStats.containsKey(entityId)) - { - final EntityEntry entityEntry = ForgeRegistries.ENTITIES.getValue(entityId); - - if (entityEntry == null) - { - throw new RuntimeException("Entity entry cannot be found with given entityId: " + entityId); - } - - // Create entity instance then retrieve stats - final Entity entity = entityEntry.newInstance(null); - - if (entity instanceof EntityLivingBase) - { - final EntityLivingBase living = (EntityLivingBase) entity; - - final double slashDefenseLevel = living.getEntityAttribute(DamageTypeAttributes.SLASH_DEFENSE_LEVEL).getAttributeValue(); - final double pierceDefenseLevel = living.getEntityAttribute(DamageTypeAttributes.PIERCE_DEFENSE_LEVEL).getAttributeValue(); - final double impactDefenseLevel = living.getEntityAttribute(DamageTypeAttributes.IMPACT_DEFENSE_LEVEL).getAttributeValue(); - Map<IAetherStatusEffects.effectTypes, Double> resistances = new HashMap<>(); - - if (entity instanceof IEntityResistanceHolder) - { - IEntityResistanceHolder resistanceHolder = (IEntityResistanceHolder) entity; - - resistances = resistanceHolder.getResistances(); - } - - final EntityStats stats = EntityStats.build() - .maxHealth(living.getMaxHealth()) - .slashDefenseLevel(slashDefenseLevel) - .pierceDefenseLevel(pierceDefenseLevel) - .impactDefenseLevel(impactDefenseLevel) - .resistances(resistances) - .flush(); - - this.entityIdToStats.put(entityId, stats); - } - } - - return this.entityIdToStats.get(entityId); - } -} diff --git a/src/main/java/com/gildedgames/aether/common/capabilities/CapabilityManagerAether.java b/src/main/java/com/gildedgames/aether/common/capabilities/CapabilityManagerAether.java deleted file mode 100644 index 31f01ff41f..0000000000 --- a/src/main/java/com/gildedgames/aether/common/capabilities/CapabilityManagerAether.java +++ /dev/null @@ -1,33 +0,0 @@ -package com.gildedgames.aether.common.capabilities; - -import com.gildedgames.aether.api.chunk.IPlacementFlagCapability; -import com.gildedgames.aether.api.entity.effects.IAetherStatusEffectPool; -import com.gildedgames.aether.api.entity.spawning.ISpawningInfo; -import com.gildedgames.aether.api.player.IPlayerAether; -import com.gildedgames.aether.api.world.islands.precipitation.IPrecipitationManager; -import com.gildedgames.aether.api.world.preparation.IPrepManager; -import com.gildedgames.aether.api.world.spawn.ISpawnSystem; -import com.gildedgames.aether.common.capabilities.entity.effects.StatusEffectPool; -import com.gildedgames.aether.common.capabilities.entity.player.PlayerAether; -import com.gildedgames.aether.common.capabilities.entity.spawning.EntitySpawningInfo; -import com.gildedgames.aether.common.capabilities.world.chunk.PlacementFlagCapability; -import com.gildedgames.aether.common.capabilities.world.precipitation.PrecipitationManagerImpl; -import com.gildedgames.aether.common.world.preparation.capability.PrepManager; -import com.gildedgames.aether.common.world.spawning.SpawnSystem; -import net.minecraftforge.common.capabilities.CapabilityManager; -import net.minecraftforge.fml.common.Mod; - -@Mod.EventBusSubscriber -public class CapabilityManagerAether -{ - public static void init() - { - CapabilityManager.INSTANCE.register(IPlayerAether.class, new PlayerAether.Storage(), PlayerAether::new); - CapabilityManager.INSTANCE.register(ISpawningInfo.class, new EntitySpawningInfo.Storage(), EntitySpawningInfo::new); - CapabilityManager.INSTANCE.register(ISpawnSystem.class, new SpawnSystem.Storage(), SpawnSystem::new); - CapabilityManager.INSTANCE.register(IPlacementFlagCapability.class, new PlacementFlagCapability.Storage(), PlacementFlagCapability::new); - CapabilityManager.INSTANCE.register(IPrecipitationManager.class, new PrecipitationManagerImpl.Storage(), PrecipitationManagerImpl::new); - CapabilityManager.INSTANCE.register(IAetherStatusEffectPool.class, new StatusEffectPool.Storage(), StatusEffectPool::new); - CapabilityManager.INSTANCE.register(IPrepManager.class, new PrepManager.Storage(), PrepManager::new); - } -} diff --git a/src/main/java/com/gildedgames/aether/common/capabilities/DamageSystem.java b/src/main/java/com/gildedgames/aether/common/capabilities/DamageSystem.java deleted file mode 100644 index 1ae2379239..0000000000 --- a/src/main/java/com/gildedgames/aether/common/capabilities/DamageSystem.java +++ /dev/null @@ -1,448 +0,0 @@ -package com.gildedgames.aether.common.capabilities; - -import com.gildedgames.aether.api.entity.damage.DamageTypeAttributes; -import com.gildedgames.aether.api.entity.damage.IDamageLevelsHolder; -import com.gildedgames.aether.api.entity.damage.IDefenseLevelsHolder; -import com.gildedgames.aether.api.player.inventory.IInventoryEquipment; -import com.gildedgames.aether.api.registrar.ItemsAether; -import com.gildedgames.aether.common.AetherCore; -import com.gildedgames.aether.common.capabilities.entity.player.PlayerAether; -import com.gildedgames.aether.common.capabilities.entity.player.modules.PlayerEquipmentModule; -import com.gildedgames.aether.common.init.ParticlesAether; -import com.gildedgames.aether.common.items.accessories.ItemDamageCharm; -import com.gildedgames.aether.common.items.armor.ItemAetherGloves; -import com.gildedgames.aether.common.network.NetworkingAether; -import com.gildedgames.aether.common.network.packets.PacketParticles; -import com.gildedgames.aether.common.util.helpers.AetherHelper; -import net.minecraft.client.Minecraft; -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.init.SoundEvents; -import net.minecraft.item.ItemStack; -import net.minecraftforge.client.event.sound.PlaySoundEvent; -import net.minecraftforge.event.AttachCapabilitiesEvent; -import net.minecraftforge.event.entity.living.LivingHurtEvent; -import net.minecraftforge.event.entity.player.CriticalHitEvent; -import net.minecraftforge.fml.common.Mod; -import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; -import net.minecraftforge.fml.common.gameevent.TickEvent; - -@Mod.EventBusSubscriber -public class DamageSystem -{ - public static float modifier; - - public static boolean blocked; - - public static int timer; - - @SubscribeEvent - public static void onTick(TickEvent.WorldTickEvent event) - { - if (blocked) - { - timer = timer + 1; - - if (timer > 10) - { - blocked = false; - timer = 0; - } - } - } - - @SubscribeEvent - public static void onLivingEntityHurt(LivingHurtEvent event) - { - EntityLivingBase target = event.getEntityLiving(); - - if (target instanceof IDefenseLevelsHolder) - { - if (event.getSource().getImmediateSource() instanceof EntityPlayer) - { - EntityPlayer source = (EntityPlayer) event.getSource().getImmediateSource(); - - IInventoryEquipment inventory = PlayerAether.getPlayer(source).getModule(PlayerEquipmentModule.class).getInventory(); - - ItemStack gloveStack = inventory.getStackInSlot(2); - - if (source.getHeldItemMainhand().getItem() instanceof IDamageLevelsHolder) - { - IDamageLevelsHolder itemMainhand = (IDamageLevelsHolder) source.getHeldItemMainhand().getItem(); - - float slashDamage = 0, pierceDamage = 0, impactDamage = 0, bonusSlash = 0, bonusPierce = 0, bonusImpact = 0; - - if (source.getHeldItemMainhand().getItem() == ItemsAether.zanite_sword) - { - bonusSlash = ((float) (source.getHeldItemMainhand().getItemDamage() * 4) / source.getHeldItemMainhand().getItem().getMaxDamage()); - } - - if (itemMainhand.getSlashDamageLevel() > 0) - { - float damageAmount = (itemMainhand.getSlashDamageLevel() + getBonusDamageFromAccessories("slash", inventory) + bonusSlash); - damageAmount += target.getEntityAttribute(DamageTypeAttributes.SLASH_DEFENSE_LEVEL).getAttributeValue(); - slashDamage = Math.max(damageAmount, 1.0F); - } - if (itemMainhand.getPierceDamageLevel() > 0) - { - float damageAmount = (itemMainhand.getPierceDamageLevel() + getBonusDamageFromAccessories("pierce", inventory) + bonusPierce); - damageAmount += target.getEntityAttribute(DamageTypeAttributes.PIERCE_DEFENSE_LEVEL).getAttributeValue(); - pierceDamage = Math.max(damageAmount, 1.0F); - } - if (itemMainhand.getImpactDamageLevel() > 0) - { - float damageAmount = (itemMainhand.getImpactDamageLevel() + getBonusDamageFromAccessories("impact", inventory) + bonusImpact); - damageAmount += target.getEntityAttribute(DamageTypeAttributes.IMPACT_DEFENSE_LEVEL).getAttributeValue(); - impactDamage = Math.max(damageAmount, 1.0F); - } - - float totalDamage = (slashDamage + pierceDamage + impactDamage) * modifier; - - float cooldownTracker = PlayerAether.getPlayer(source).getCooldownTracker(); - - event.setAmount(totalDamage * cooldownTracker); - - spawnParticles(target, - itemMainhand.getSlashDamageLevel(), - itemMainhand.getPierceDamageLevel(), - itemMainhand.getImpactDamageLevel(), - target.getEntityAttribute(DamageTypeAttributes.SLASH_DEFENSE_LEVEL).getAttributeValue(), - target.getEntityAttribute(DamageTypeAttributes.PIERCE_DEFENSE_LEVEL).getAttributeValue(), - target.getEntityAttribute(DamageTypeAttributes.IMPACT_DEFENSE_LEVEL).getAttributeValue()); - - handleSounds(target, - itemMainhand.getSlashDamageLevel(), - itemMainhand.getPierceDamageLevel(), - itemMainhand.getImpactDamageLevel(), - target.getEntityAttribute(DamageTypeAttributes.SLASH_DEFENSE_LEVEL).getAttributeValue(), - target.getEntityAttribute(DamageTypeAttributes.PIERCE_DEFENSE_LEVEL).getAttributeValue(), - target.getEntityAttribute(DamageTypeAttributes.IMPACT_DEFENSE_LEVEL).getAttributeValue()); - } - else if (source.getHeldItemOffhand().getItem() instanceof IDamageLevelsHolder) - { - IDamageLevelsHolder itemOffhand = (IDamageLevelsHolder) source.getHeldItemOffhand().getItem(); - - float slashDamage = 0, pierceDamage = 0, impactDamage = 0, bonusSlash = 0, bonusPierce = 0, bonusImpact = 0; - - if (source.getHeldItemMainhand().getItem() == ItemsAether.zanite_sword) - { - bonusSlash = ((float) (source.getHeldItemMainhand().getItemDamage() * 4) / source.getHeldItemMainhand().getItem().getMaxDamage()); - } - - if (itemOffhand.getSlashDamageLevel() > 0) - { - float damageAmount = (itemOffhand.getSlashDamageLevel() + getBonusDamageFromAccessories("slash", inventory) + bonusSlash); - damageAmount += target.getEntityAttribute(DamageTypeAttributes.SLASH_DEFENSE_LEVEL).getAttributeValue(); - slashDamage = Math.max(damageAmount, 1.0F); - } - if (itemOffhand.getPierceDamageLevel() > 0) - { - float damageAmount = (itemOffhand.getPierceDamageLevel() + getBonusDamageFromAccessories("pierce", inventory) + bonusPierce); - damageAmount += target.getEntityAttribute(DamageTypeAttributes.PIERCE_DEFENSE_LEVEL).getAttributeValue(); - pierceDamage = Math.max(damageAmount, 1.0F); - } - if (itemOffhand.getImpactDamageLevel() > 0) - { - float damageAmount = (itemOffhand.getImpactDamageLevel() + getBonusDamageFromAccessories("impact", inventory) + bonusImpact); - damageAmount += target.getEntityAttribute(DamageTypeAttributes.IMPACT_DEFENSE_LEVEL).getAttributeValue(); - impactDamage = Math.max(damageAmount, 1.0F); - } - - float totalDamage = (slashDamage + pierceDamage + impactDamage) * modifier; - - float cooldownTracker = PlayerAether.getPlayer(source).getCooldownTracker(); - - event.setAmount(totalDamage * cooldownTracker); - - spawnParticles(target, - itemOffhand.getSlashDamageLevel(), - itemOffhand.getPierceDamageLevel(), - itemOffhand.getImpactDamageLevel(), - target.getEntityAttribute(DamageTypeAttributes.SLASH_DEFENSE_LEVEL).getAttributeValue(), - target.getEntityAttribute(DamageTypeAttributes.PIERCE_DEFENSE_LEVEL).getAttributeValue(), - target.getEntityAttribute(DamageTypeAttributes.IMPACT_DEFENSE_LEVEL).getAttributeValue()); - - handleSounds(target, - itemOffhand.getSlashDamageLevel(), - itemOffhand.getPierceDamageLevel(), - itemOffhand.getImpactDamageLevel(), - target.getEntityAttribute(DamageTypeAttributes.SLASH_DEFENSE_LEVEL).getAttributeValue(), - target.getEntityAttribute(DamageTypeAttributes.PIERCE_DEFENSE_LEVEL).getAttributeValue(), - target.getEntityAttribute(DamageTypeAttributes.IMPACT_DEFENSE_LEVEL).getAttributeValue()); - } - else if (source.getHeldItemMainhand().isEmpty() && gloveStack.getItem() instanceof ItemAetherGloves && !gloveStack.isEmpty()) - { - ItemAetherGloves gloves = (ItemAetherGloves) gloveStack.getItem(); - - float slashDamage = 0, pierceDamage = 0, impactDamage = 0, bonusSlash = 0, bonusPierce = 0, bonusImpact = 0; - - if (gloveStack.getItem() == ItemsAether.zanite_gloves) - { - bonusImpact = ((float) (gloveStack.getItemDamage() * 4) / gloveStack.getItem().getMaxDamage()); - } - - if (gloves.getSlashDamageLevel() > 0) - { - float damageAmount = (gloves.getSlashDamageLevel() + getBonusDamageFromAccessories("slash", inventory) + bonusSlash); - damageAmount += target.getEntityAttribute(DamageTypeAttributes.SLASH_DEFENSE_LEVEL).getAttributeValue(); - slashDamage = Math.max(damageAmount, 1.0F); - } - if (gloves.getPierceDamageLevel() > 0) - { - float damageAmount = (gloves.getPierceDamageLevel() + getBonusDamageFromAccessories("pierce", inventory) + bonusPierce); - damageAmount += target.getEntityAttribute(DamageTypeAttributes.PIERCE_DEFENSE_LEVEL).getAttributeValue(); - pierceDamage = Math.max(damageAmount, 1.0F); - } - if (gloves.getImpactDamageLevel() > 0) - { - float damageAmount = (gloves.getImpactDamageLevel() + getBonusDamageFromAccessories("impact", inventory) + bonusImpact); - damageAmount += target.getEntityAttribute(DamageTypeAttributes.IMPACT_DEFENSE_LEVEL).getAttributeValue(); - impactDamage = Math.max(damageAmount, 1.0F); - } - - float totalDamage = (slashDamage + pierceDamage + impactDamage) * modifier; - - float cooldownTracker = PlayerAether.getPlayer(source).getCooldownTracker(); - - event.setAmount(totalDamage * cooldownTracker); - - spawnParticles(target, - gloves.getSlashDamageLevel(), - gloves.getPierceDamageLevel(), - gloves.getImpactDamageLevel(), - target.getEntityAttribute(DamageTypeAttributes.SLASH_DEFENSE_LEVEL).getAttributeValue(), - target.getEntityAttribute(DamageTypeAttributes.PIERCE_DEFENSE_LEVEL).getAttributeValue(), - target.getEntityAttribute(DamageTypeAttributes.IMPACT_DEFENSE_LEVEL).getAttributeValue()); - - handleSounds(target, - gloves.getSlashDamageLevel(), - gloves.getPierceDamageLevel(), - gloves.getImpactDamageLevel(), - target.getEntityAttribute(DamageTypeAttributes.SLASH_DEFENSE_LEVEL).getAttributeValue(), - target.getEntityAttribute(DamageTypeAttributes.PIERCE_DEFENSE_LEVEL).getAttributeValue(), - target.getEntityAttribute(DamageTypeAttributes.IMPACT_DEFENSE_LEVEL).getAttributeValue()); - } - else - { - float damageAmount = Math.max(event.getAmount() - 4.0F, 1.0F); - event.setAmount(damageAmount); - } - } - else if (event.getSource().getImmediateSource() instanceof IDamageLevelsHolder) - { - IDamageLevelsHolder entitySource = (IDamageLevelsHolder) event.getSource().getImmediateSource(); - - float slashDamage = 0, pierceDamage = 0, impactDamage = 0; - - if (entitySource.getSlashDamageLevel() > 0) - { - float damageAmount = (float) (entitySource.getSlashDamageLevel() + target.getEntityAttribute(DamageTypeAttributes.SLASH_DEFENSE_LEVEL).getAttributeValue()); - slashDamage = Math.max(damageAmount, 1.0F); - } - if (entitySource.getPierceDamageLevel() > 0) - { - float damageAmount = (float) (entitySource.getPierceDamageLevel() + target.getEntityAttribute(DamageTypeAttributes.PIERCE_DEFENSE_LEVEL).getAttributeValue()); - pierceDamage = Math.max(damageAmount, 1.0F); - } - if (entitySource.getImpactDamageLevel() > 0) - { - float damageAmount = (float) (entitySource.getImpactDamageLevel() + target.getEntityAttribute(DamageTypeAttributes.IMPACT_DEFENSE_LEVEL).getAttributeValue()); - impactDamage = Math.max(damageAmount, 1.0F); - } - - float totalDamage = (slashDamage + pierceDamage + impactDamage); - - event.setAmount(totalDamage); - - spawnParticles(target, - entitySource.getSlashDamageLevel(), - entitySource.getPierceDamageLevel(), - entitySource.getImpactDamageLevel(), - target.getEntityAttribute(DamageTypeAttributes.SLASH_DEFENSE_LEVEL).getAttributeValue(), - target.getEntityAttribute(DamageTypeAttributes.PIERCE_DEFENSE_LEVEL).getAttributeValue(), - target.getEntityAttribute(DamageTypeAttributes.IMPACT_DEFENSE_LEVEL).getAttributeValue()); - - handleSounds(target, - entitySource.getSlashDamageLevel(), - entitySource.getPierceDamageLevel(), - entitySource.getImpactDamageLevel(), - target.getEntityAttribute(DamageTypeAttributes.SLASH_DEFENSE_LEVEL).getAttributeValue(), - target.getEntityAttribute(DamageTypeAttributes.PIERCE_DEFENSE_LEVEL).getAttributeValue(), - target.getEntityAttribute(DamageTypeAttributes.IMPACT_DEFENSE_LEVEL).getAttributeValue()); - } - else - { - float damageAmount = Math.max(event.getAmount() - 4.0F, 1.0F); - event.setAmount(damageAmount); - } - } - } - - @SubscribeEvent - public static void handleVanillaGloveDamage(LivingHurtEvent event) - { - EntityLivingBase target = event.getEntityLiving(); - - if (!(target instanceof IDefenseLevelsHolder)) - { - if (event.getSource().getImmediateSource() instanceof EntityPlayer) - { - EntityPlayer source = (EntityPlayer) event.getSource().getImmediateSource(); - - ItemStack gloveStack = PlayerAether.getPlayer(source).getModule(PlayerEquipmentModule.class).getInventory().getStackInSlot(2); - - if (source.getHeldItemMainhand().isEmpty() && gloveStack.getItem() instanceof ItemAetherGloves && !gloveStack.isEmpty()) - { - ItemAetherGloves gloves = (ItemAetherGloves) gloveStack.getItem(); - - float vanillaDamage = 0; - - if (gloveStack.getItem() == ItemsAether.zanite_gloves) - { - vanillaDamage = 6f + ((float) (gloveStack.getItemDamage() * 4) - / gloveStack.getItem().getMaxDamage()); - } - else - { - if (gloves.getSlashDamageLevel() > 0) - { - vanillaDamage = gloves.getSlashDamageLevel(); - } - if (gloves.getPierceDamageLevel() > 0) - { - vanillaDamage = gloves.getPierceDamageLevel(); - } - if (gloves.getImpactDamageLevel() > 0) - { - vanillaDamage = gloves.getImpactDamageLevel(); - } - } - - event.setAmount(vanillaDamage * modifier); - } - } - } - } - - public static float getBonusDamageFromAccessories(String damageType, IInventoryEquipment inventory) - { - float damage = 0; - - for (int i = 0; i < 7; i++) - { - ItemStack charmStack = inventory.getStackInSlot(7 + i); - - if (charmStack.getItem() instanceof ItemDamageCharm && !charmStack.isEmpty()) - { - ItemDamageCharm charm = (ItemDamageCharm) charmStack.getItem(); - - switch (damageType) - { - case "slash": - { - if (charm.getSlashDamageLevel() > 0) - { - damage += charm.getSlashDamageLevel(); - } - - break; - } - case "pierce": - { - if (charm.getPierceDamageLevel() > 0) - { - damage += charm.getPierceDamageLevel(); - } - - break; - } - case "impact": - { - if (charm.getImpactDamageLevel() > 0) - { - damage += charm.getImpactDamageLevel(); - } - - break; - } - } - } - } - - return damage; - } - - @SubscribeEvent - public static void checkForCritical(CriticalHitEvent event) - { - modifier = event.getDamageModifier(); - } - - @SubscribeEvent - public static void onEntityLoad(final AttachCapabilitiesEvent<Entity> event) - { - if (event.getObject() instanceof EntityLivingBase) - { - EntityLivingBase living = (EntityLivingBase) event.getObject(); - - living.getAttributeMap().registerAttribute(DamageTypeAttributes.SLASH_DEFENSE_LEVEL); - living.getAttributeMap().registerAttribute(DamageTypeAttributes.PIERCE_DEFENSE_LEVEL); - living.getAttributeMap().registerAttribute(DamageTypeAttributes.IMPACT_DEFENSE_LEVEL); - } - } - - public static void spawnParticles(EntityLivingBase target, double slashDamage, double pierceDamage, double impactDamage, double slashDefense, double pierceDefense, double impactDefense) - { - final double radius = 0.3; - final double randX = target.getRNG().nextDouble() * (target.getRNG().nextBoolean() ? 1.0 : -1.0) * radius; - final double randZ = target.getRNG().nextDouble() * (target.getRNG().nextBoolean() ? 1.0 : -1.0) * radius; - - double x = target.posX + randX; - double y = target.posY + (double) target.height; - double z = target.posZ + randZ; - - for (int i = 0; i < 20; i++) - { - if (slashDamage > 0 && slashDefense > 0.0F || pierceDamage > 0 && pierceDefense > 0.0F || impactDamage > 0 && impactDefense > 0.0F) - { - if (slashDamage > 0 && slashDefense > 0.0F) - { - NetworkingAether - .sendPacketToDimension(new PacketParticles(ParticlesAether.SLASH, x, y, z, randX, 0.0D, randZ), target.dimension); - } - - if (pierceDamage > 0 && pierceDefense > 0.0F) - { - NetworkingAether - .sendPacketToDimension(new PacketParticles(ParticlesAether.PIERCE, x, y, z, randX, 0.0D, randZ), target.dimension); - } - - if (impactDamage > 0 && impactDefense > 0.0F) - { - NetworkingAether - .sendPacketToDimension(new PacketParticles(ParticlesAether.IMPACT, x, y, z, randX, 0.0D, randZ), target.dimension); - } - - handleSounds(target, slashDamage, pierceDamage, impactDamage, slashDefense, pierceDefense, impactDefense); - } - } - } - - public static void handleSounds(EntityLivingBase target, double slashDamage, double pierceDamage, double impactDamage, double slashDefense, double pierceDefense, double impactDefense) - { - if ((slashDamage > 0 && slashDefense < 0.0F) || (pierceDamage > 0 && pierceDefense < 0.0F) || (impactDamage > 0 && impactDefense < 0.0F)) - { - blocked = true; - target.playSound(SoundEvents.ITEM_SHIELD_BLOCK, 0.8F, 0.8F + target.world.rand.nextFloat() * 0.4F); - } - else - { - blocked = false; - if (slashDamage > 0 && slashDefense > 0.0F || pierceDamage > 0 && pierceDefense > 0.0F || impactDamage > 0 && impactDefense > 0.0F) - { - target.playSound(SoundEvents.ENTITY_PLAYER_ATTACK_CRIT, 0.8F, 0.8F + target.world.rand.nextFloat() * 0.4F); - } - } - } -} \ No newline at end of file diff --git a/src/main/java/com/gildedgames/aether/common/capabilities/entity/effects/EffectsDamageSource.java b/src/main/java/com/gildedgames/aether/common/capabilities/entity/effects/EffectsDamageSource.java deleted file mode 100644 index dcec1ed8b1..0000000000 --- a/src/main/java/com/gildedgames/aether/common/capabilities/entity/effects/EffectsDamageSource.java +++ /dev/null @@ -1,18 +0,0 @@ -package com.gildedgames.aether.common.capabilities.entity.effects; - -import net.minecraft.util.DamageSource; - -public class EffectsDamageSource extends DamageSource -{ - public static final DamageSource BLEED = (new EffectsDamageSource("aether.effect.bleed")).setDamageBypassesArmor(); - public static final DamageSource TOXIN = (new EffectsDamageSource("aether.effect.toxin")).setDamageBypassesArmor(); - public static final DamageSource COCKATRICE_VENOM = (new EffectsDamageSource("aether.effect.cockatriceVenom")).setDamageBypassesArmor(); - public static final DamageSource FUNGAL_ROT = (new EffectsDamageSource("aether.effect.fungalRot")).setDamageBypassesArmor(); - public static final DamageSource FRACTURE = (new EffectsDamageSource("aether.effect.fracture")).setDamageBypassesArmor(); - public static final DamageSource IRRADIATION = (new EffectsDamageSource("aether.effect.irradiation")).setDamageBypassesArmor(); - - public EffectsDamageSource(String damageTypeIn) - { - super(damageTypeIn); - } -} diff --git a/src/main/java/com/gildedgames/aether/common/capabilities/entity/effects/StatusEffectPool.java b/src/main/java/com/gildedgames/aether/common/capabilities/entity/effects/StatusEffectPool.java deleted file mode 100644 index 8b50166ac1..0000000000 --- a/src/main/java/com/gildedgames/aether/common/capabilities/entity/effects/StatusEffectPool.java +++ /dev/null @@ -1,371 +0,0 @@ -package com.gildedgames.aether.common.capabilities.entity.effects; - -import com.gildedgames.aether.api.entity.effects.IAetherStatusEffectPool; -import com.gildedgames.aether.api.entity.effects.IAetherStatusEffects; -import com.gildedgames.aether.api.registrar.CapabilitiesAether; -import com.gildedgames.aether.common.entities.effects.*; -import com.gildedgames.aether.common.entities.effects.teas.StatusEffectSaturationBoost; -import com.gildedgames.aether.common.entities.effects.unique.StatusEffectGuardBreak; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.player.EntityPlayerMP; -import net.minecraft.nbt.NBTBase; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.nbt.NBTTagList; -import net.minecraft.util.EnumFacing; -import net.minecraftforge.common.capabilities.Capability; - -import javax.annotation.Nullable; -import java.lang.reflect.Constructor; -import java.lang.reflect.InvocationTargetException; -import java.util.Collection; -import java.util.HashMap; -import java.util.Iterator; -import java.util.Map; - -public class StatusEffectPool implements IAetherStatusEffectPool -{ - private static final HashMap<String, StatusEffectFactory> types = new HashMap<>(); - - // This is NOT flexible. We need to move the factory code elsewhere - static - { - types.put(IAetherStatusEffects.effectTypes.AMBROSIUM_POISONING.name, new StatusEffectFactory(StatusEffectAmbrosiumPoisoning.class)); - types.put(IAetherStatusEffects.effectTypes.BLEED.name, new StatusEffectFactory(StatusEffectBleed.class)); - types.put(IAetherStatusEffects.effectTypes.COCKATRICE_VENOM.name, new StatusEffectFactory(StatusEffectCockatriceVenom.class)); - types.put(IAetherStatusEffects.effectTypes.FRACTURE.name, new StatusEffectFactory(StatusEffectFracture.class)); - types.put(IAetherStatusEffects.effectTypes.FUNGAL_ROT.name, new StatusEffectFactory(StatusEffectFungalRot.class)); - types.put(IAetherStatusEffects.effectTypes.STUN.name, new StatusEffectFactory(StatusEffectStun.class)); - types.put(IAetherStatusEffects.effectTypes.TOXIN.name, new StatusEffectFactory(StatusEffectToxin.class)); - types.put(IAetherStatusEffects.effectTypes.FREEZE.name, new StatusEffectFactory(StatusEffectFreeze.class)); - types.put(IAetherStatusEffects.effectTypes.WEBBING.name, new StatusEffectFactory(StatusEffectWebbing.class)); - types.put(IAetherStatusEffects.effectTypes.SATURATION_BOOST.name, new StatusEffectFactory(StatusEffectSaturationBoost.class)); - types.put(IAetherStatusEffects.effectTypes.GUARD_BREAK.name, new StatusEffectFactory(StatusEffectGuardBreak.class)); - types.put(IAetherStatusEffects.effectTypes.IRRADIATION.name, new StatusEffectFactory(StatusEffectIrradiation.class)); - } - - private EntityLivingBase livingBase; - - private HashMap<String, IAetherStatusEffects> activeEffects = new HashMap<>(); - - public StatusEffectPool() throws InstantiationException - { - throw new InstantiationException("Do not use default constructor to instantiate pool!"); - } - - public StatusEffectPool(EntityLivingBase livingBase) - { - this.livingBase = livingBase; - } - - @Override - public void tick() - { - Iterator<Map.Entry<String, IAetherStatusEffects>> it = this.activeEffects.entrySet().iterator(); - - boolean creative = this.livingBase instanceof EntityPlayerMP && ((EntityPlayerMP) this.livingBase).isCreative(); - - while (it.hasNext()) - { - IAetherStatusEffects effect = it.next().getValue(); - - if (creative) - { - if (effect.getIsEffectApplied() || effect.getBuildup() > 0) - { - effect.resetEffect(); - } - } - - effect.tick(this.livingBase); - - if (this.shouldRemoveEffect(effect)) - { - it.remove(); - } - } - } - - private boolean shouldRemoveEffect(IAetherStatusEffects effect) - { - return !effect.isDirty() && !effect.getIsEffectApplied() && effect.getBuildup() == 0 && effect.getResistance() == 1.0D; - } - - @Override - public void applyStatusEffect(IAetherStatusEffects.effectTypes effectType, int buildup) - { - IAetherStatusEffects effect = this.createEffect(effectType.name, this.livingBase); - effect.addBuildup(buildup, 0.0D); - } - - @Override - public int getBuildupFromEffect(IAetherStatusEffects.effectTypes effectType) - { - IAetherStatusEffects effect = this.getActiveEffect(effectType.name); - - return effect != null ? effect.getBuildup() : 0; - } - - @Override - public boolean isEffectApplied(IAetherStatusEffects.effectTypes effectType) - { - IAetherStatusEffects effect = this.getActiveEffect(effectType.name); - - return effect != null && effect.getIsEffectApplied(); - } - - @Override - public boolean effectExists(IAetherStatusEffects.effectTypes effectType) - { - IAetherStatusEffects effect = this.getActiveEffect(effectType.name); - - return effect != null; - } - - @Override - public double getResistanceToEffect(IAetherStatusEffects.effectTypes effectType) - { - IAetherStatusEffects effect = this.getActiveEffect(effectType.name); - - if (effect != null) - { - return effect.getResistance(); - } - - return 1.0D; - } - - @Override - public void addResistanceToEffect(IAetherStatusEffects.effectTypes effectType, double addResistance) - { - double additionalResistance = 0.0D; - - if (this.isEffectApplied(IAetherStatusEffects.effectTypes.AMBROSIUM_POISONING) || this.isEffectApplied(IAetherStatusEffects.effectTypes.IRRADIATION)) - { - additionalResistance = 0.5D; - } - - IAetherStatusEffects effect = this.getActiveEffect(effectType.name); - - if (effect != null) - { - effect.addResistance(addResistance - additionalResistance); - } - } - - @Override - public void resetResistanceToEffect(IAetherStatusEffects.effectTypes effectType) - { - IAetherStatusEffects effect = this.getActiveEffect(effectType.name); - - if (effect != null) - { - effect.resetResistance(); - } - } - - @Override - public void resetAllResistances() - { - for (IAetherStatusEffects effect : this.getActiveEffects()) - { - if (effect == null) - { - continue; - } - - effect.resetResistance(); - } - } - - @Override - public void modifyActiveEffectTime(IAetherStatusEffects.effectTypes effectType, double activeEffectTimeModifier) - { - IAetherStatusEffects effect = this.getActiveEffect(effectType.name); - - if (effect != null) - { - effect.setActiveEffectTimeModifier(activeEffectTimeModifier); - } - } - - @Override - public void modifyAllActiveEffectTimes(double activeEffectTimeModifier) - { - for (IAetherStatusEffects effect : this.getActiveEffects()) - { - if (effect == null) - { - continue; - } - - effect.setActiveEffectTimeModifier(activeEffectTimeModifier); - } - } - - @Override - public void modifyActiveEffectBuildup(IAetherStatusEffects.effectTypes effectType, int activeEffectBuildup) - { - IAetherStatusEffects effect = this.getActiveEffect(effectType.name); - - if (effect != null) - { - if (effect.getResistance() > 1.0D) - { - activeEffectBuildup = (int) (activeEffectBuildup - (activeEffectBuildup * (effect.getResistance() - 1.0))); - } - else if (effect.getResistance() < 1.0D) - { - activeEffectBuildup = (int) (activeEffectBuildup + (activeEffectBuildup * (1.0 - effect.getResistance()))); - } - else if (effect.getResistance() >= 2.0D) - { - activeEffectBuildup = 0; - } - - effect.setBuildup(activeEffectBuildup); - } - } - - @Override - public void modifyActiveEffectApplication(IAetherStatusEffects.effectTypes effectType, boolean setApplied) - { - IAetherStatusEffects effect = this.getActiveEffect(effectType.name); - - if (effect != null) - { - effect.setApplied(setApplied); - } - } - - @Override - public void cureActiveEffect(IAetherStatusEffects.effectTypes effectType) - { - IAetherStatusEffects effect = this.getActiveEffect(effectType.name); - - if (effect != null) - { - effect.setActiveEffectTimeModifier(0.0D); - } - } - - @Override - public void cureAllActiveEffects() - { - this.modifyAllActiveEffectTimes(0.0D); - } - - @Override - public HashMap<String, IAetherStatusEffects> getPool() - { - return this.activeEffects; - } - - @Override - public void write(NBTTagCompound tag) - { - NBTTagList effects = new NBTTagList(); - - for (IAetherStatusEffects effect : getPool().values()) - { - NBTTagCompound effectData = new NBTTagCompound(); - effect.write(effectData); - - effects.appendTag(effectData); - } - - tag.setTag("statusEffects", effects); - } - - @Override - public void read(NBTTagCompound tag) - { - NBTTagList effects = tag.getTagList("statusEffects", 10); - - for (int i = 0; i < effects.tagCount(); i++) - { - NBTTagCompound compound = effects.getCompoundTagAt(i); - - IAetherStatusEffects effect = createEffect(compound.getString("type"), livingBase); - effect.read(compound); - } - } - - public static IAetherStatusEffectPool get(EntityLivingBase livingBase) - { - return livingBase.getCapability(CapabilitiesAether.STATUS_EFFECT_POOL, null); - } - - public static class Storage implements Capability.IStorage<IAetherStatusEffectPool> - { - @Nullable - @Override - public NBTBase writeNBT(Capability<IAetherStatusEffectPool> capability, IAetherStatusEffectPool instance, EnumFacing side) - { - NBTTagCompound compound = new NBTTagCompound(); - - instance.write(compound); - - return compound; - } - - @Override - public void readNBT(Capability<IAetherStatusEffectPool> capability, IAetherStatusEffectPool instance, EnumFacing side, NBTBase nbt) - { - instance.read((NBTTagCompound) nbt); - } - } - - private Collection<IAetherStatusEffects> getActiveEffects() - { - return this.activeEffects.values(); - } - - private IAetherStatusEffects getActiveEffect(String name) - { - return this.activeEffects.get(name); - } - - @Override - public IAetherStatusEffects createEffect(String name, EntityLivingBase entity) - { - return this.activeEffects.computeIfAbsent(name, (key) -> { - StatusEffectFactory factory = types.get(name); - - if (factory == null) - { - throw new IllegalArgumentException("No factory registered for effect with name " + name); - } - - return factory.create(entity); - }); - } - - private static class StatusEffectFactory - { - private final Constructor<? extends IAetherStatusEffects> constructor; - - public StatusEffectFactory(Class<? extends IAetherStatusEffects> clazz) - { - try - { - this.constructor = clazz.getConstructor(EntityLivingBase.class); - } - catch (NoSuchMethodException e) - { - throw new RuntimeException("Couldn't find constructor for status effect " + clazz); - } - } - - public IAetherStatusEffects create(EntityLivingBase entity) - { - try - { - return this.constructor.newInstance(entity); - } - catch (InstantiationException | IllegalAccessException | InvocationTargetException e) - { - throw new RuntimeException("Failed to instantiate effect", e); - } - } - } -} diff --git a/src/main/java/com/gildedgames/aether/common/capabilities/entity/effects/StatusEffectPoolProvider.java b/src/main/java/com/gildedgames/aether/common/capabilities/entity/effects/StatusEffectPoolProvider.java deleted file mode 100644 index e35ebef47f..0000000000 --- a/src/main/java/com/gildedgames/aether/common/capabilities/entity/effects/StatusEffectPoolProvider.java +++ /dev/null @@ -1,66 +0,0 @@ -package com.gildedgames.aether.common.capabilities.entity.effects; - -import com.gildedgames.aether.api.entity.effects.IAetherStatusEffectPool; -import com.gildedgames.aether.api.registrar.CapabilitiesAether; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.nbt.NBTBase; -import net.minecraft.util.EnumFacing; -import net.minecraftforge.common.capabilities.Capability; -import net.minecraftforge.common.capabilities.ICapabilitySerializable; - -import javax.annotation.Nonnull; -import javax.annotation.Nullable; - -public class StatusEffectPoolProvider implements ICapabilitySerializable<NBTBase> -{ - private final StatusEffectPool.Storage storage = new StatusEffectPool.Storage(); - - private IAetherStatusEffectPool capability; - - private final EntityLivingBase livingBase; - - public StatusEffectPoolProvider(EntityLivingBase livingBase) - { - this.livingBase = livingBase; - } - - private IAetherStatusEffectPool fetchCapability() - { - if (this.capability == null) - { - this.capability = new StatusEffectPool(this.livingBase); - } - - return this.capability; - } - - @Override - public boolean hasCapability(@Nonnull Capability<?> capability, @Nullable EnumFacing facing) - { - return capability == CapabilitiesAether.STATUS_EFFECT_POOL; - } - - @Nullable - @Override - public <T> T getCapability(@Nonnull Capability<T> capability, @Nullable EnumFacing facing) - { - if (this.hasCapability(capability, facing)) - { - return (T) this.fetchCapability(); - } - - return null; - } - - @Override - public NBTBase serializeNBT() - { - return this.storage.writeNBT(CapabilitiesAether.STATUS_EFFECT_POOL, this.fetchCapability(), null); - } - - @Override - public void deserializeNBT(NBTBase nbt) - { - this.storage.readNBT(CapabilitiesAether.STATUS_EFFECT_POOL, this.fetchCapability(), null, nbt); - } -} diff --git a/src/main/java/com/gildedgames/aether/common/capabilities/entity/player/PlayerAether.java b/src/main/java/com/gildedgames/aether/common/capabilities/entity/player/PlayerAether.java deleted file mode 100644 index f4e1a1404b..0000000000 --- a/src/main/java/com/gildedgames/aether/common/capabilities/entity/player/PlayerAether.java +++ /dev/null @@ -1,397 +0,0 @@ -package com.gildedgames.aether.common.capabilities.entity.player; - -import com.gildedgames.aether.api.player.IPlayerAether; -import com.gildedgames.aether.api.player.IPlayerAetherModule; -import com.gildedgames.aether.api.registrar.CapabilitiesAether; -import com.gildedgames.aether.common.AetherCore; -import com.gildedgames.aether.common.capabilities.entity.player.modules.*; -import com.gildedgames.aether.common.network.NetworkingAether; -import com.gildedgames.aether.common.network.packets.*; -import com.gildedgames.aether.common.world.instances.necromancer_tower.NecromancerTowerInstance; -import com.gildedgames.orbis.lib.util.io.NBTFunnel; -import com.gildedgames.orbis.lib.util.mc.NBTHelper; -import net.minecraft.block.material.Material; -import net.minecraft.enchantment.EnchantmentHelper; -import net.minecraft.entity.Entity; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.EntityPlayerMP; -import net.minecraft.init.MobEffects; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTBase; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.util.DamageSource; -import net.minecraft.util.EnumFacing; -import net.minecraft.util.ResourceLocation; -import net.minecraftforge.common.capabilities.Capability; -import net.minecraftforge.common.capabilities.Capability.IStorage; -import net.minecraftforge.event.entity.living.LivingDeathEvent; -import net.minecraftforge.event.entity.living.LivingFallEvent; -import net.minecraftforge.event.entity.living.LivingHurtEvent; -import net.minecraftforge.event.entity.player.PlayerDropsEvent; -import net.minecraftforge.event.world.BlockEvent; -import net.minecraftforge.fml.common.gameevent.PlayerEvent; -import net.minecraftforge.fml.common.gameevent.TickEvent; - -import javax.annotation.Nonnull; -import java.util.ArrayList; -import java.util.IdentityHashMap; -import java.util.List; - -public class PlayerAether implements IPlayerAether -{ - private final EntityPlayer entity; - - private final IdentityHashMap<Class<? extends IPlayerAetherModule>, IPlayerAetherModule> modulesKeyed = new IdentityHashMap<>(); - - private final List<IPlayerAetherModule> modules = new ArrayList<>(); - - private final List<IPlayerAetherModule.Serializable> modulesSerializable = new ArrayList<>(); - - private NecromancerTowerInstance towerInstance; - - private ItemStack lastDestroyedStack; - - private int ticksWithEggnogEffect; - - private boolean isTrading; - - private boolean isJumping = false; - - private float cooldownTracker = 0.0f; - - public PlayerAether() - { - this.entity = null; - } - - public PlayerAether(final EntityPlayer entity) - { - this.entity = entity; - - this.registerModule(new PlayerAbilitiesModule(this)); - this.registerModule(new PlayerBlockLevitateModule(this)); - this.registerModule(new PlayerTeleportingModule(this)); - this.registerModule(new PlayerParachuteModule(this)); - this.registerModule(new PlayerEquipmentModule(this)); - this.registerModule(new PlayerDialogModule(this)); - this.registerModule(new PlayerSwetTrackerModule(this)); - this.registerModule(new PlayerCampfiresModule(this)); - this.registerModule(new PlayerPreventDropsModule(this)); - this.registerModule(new PlayerPatronRewardModule(this)); - this.registerModule(new PlayerRollMovementModule(this)); - this.registerModule(new PlayerConfigModule(this)); - this.registerModule(new PlayerProgressModule(this)); - this.registerModule(new PlayerCurrencyModule(this)); - this.registerModule(new PlayerSectorModule(this)); - this.registerModule(new PlayerTradeModule(this)); - //this.registerModule(new PlayerCaveSpawnModule(this)); - this.registerModule(new PlayerConditionModule(this)); - this.registerModule(new PlayerSpecialEquipmentModule(this)); - this.registerModule(new PlayerEffectsEquipmentModule(this)); - this.registerModule(new PlayerAerbunnyTrackerModule(this)); - } - - @Nonnull - public static PlayerAether getPlayer(final EntityPlayer player) - { - if (player == null) - { - throw new NullPointerException("Player entity is null"); - } - - final PlayerAether ret = (PlayerAether) player.getCapability(CapabilitiesAether.PLAYER_DATA, null); - - if (ret == null) - { - throw new NullPointerException("Player does not contain capability"); - } - - return ret; - } - - public static boolean hasCapability(final Entity entity) - { - return entity.hasCapability(CapabilitiesAether.PLAYER_DATA, null); - } - - @Override - public void registerModule(final IPlayerAetherModule module) - { - final Class<? extends IPlayerAetherModule> clazz = module.getClass(); - - if (this.modulesKeyed.containsKey(clazz)) - { - throw new IllegalStateException("Module is already registered for class: " + clazz); - } - - this.modulesKeyed.put(clazz, module); - this.modules.add(module); - - if (module instanceof IPlayerAetherModule.Serializable) - { - this.modulesSerializable.add((IPlayerAetherModule.Serializable) module); - } - } - - @Override - @SuppressWarnings("unchecked") - public <T extends IPlayerAetherModule> T getModule(final Class<T> clazz) - { - final T ret = (T) this.modulesKeyed.get(clazz); - - if (ret == null) - { - throw new NullPointerException("No module registered for class: " + clazz); - } - - return ret; - } - - public ItemStack getLastDestroyedStack() - { - return this.lastDestroyedStack; - } - - public void setLastDestroyedStack(final ItemStack lastDestroyedStack) - { - this.lastDestroyedStack = lastDestroyedStack; - } - - public void setDrankEggnog() - { - this.ticksWithEggnogEffect = 5000; - } - - public boolean hasEggnogEffect() - { - return this.ticksWithEggnogEffect > 0; - } - - public void setJumping(boolean jumping) - { - this.isJumping = jumping; - } - - public boolean getJumping() - { - return this.isJumping; - } - - public float getCooldownTracker() - { - return this.cooldownTracker; - } - - public void onLoggedOut() - { - this.getModule(PlayerAerbunnyTrackerModule.class).onLoggedOut(); - this.getModule(PlayerSectorModule.class).releaseAll(); - } - - public void onLoggedIn() - { - this.getModule(PlayerAerbunnyTrackerModule.class).onLoggedIn(); - } - - /** - * Syncs the client and watching entities completely. - */ - public void sendFullUpdate() - { - final EntityPlayerMP player = (EntityPlayerMP) this.getEntity(); - - NetworkingAether.sendPacketToPlayer(new PacketCurrencyModule(this.getModule(PlayerCurrencyModule.class)), player); - NetworkingAether.sendPacketToPlayer(new PacketProgressModule(this.getModule(PlayerProgressModule.class)), player); - NetworkingAether.sendPacketToPlayer(new PacketSetPlayedIntro(this.getModule(PlayerTeleportingModule.class).hasPlayedIntro()), player); - NetworkingAether.sendPacketToPlayer(new PacketCampfires(this.getModule(PlayerCampfiresModule.class).getCampfiresActivated()), player); - NetworkingAether.sendPacketToPlayer(new PacketPreventDropsInventories(this.getModule(PlayerPreventDropsModule.class)), player); - NetworkingAether.sendPacketToPlayer(new PacketPlayerConditionModule(this.getModule(PlayerConditionModule.class)), player); - NetworkingAether.sendPacketToPlayer(new PacketPlayerSwetTrackerModule(this.getModule(PlayerSwetTrackerModule.class)), player); - NetworkingAether.sendPacketToPlayer(new PacketEquipment(PlayerAether.getPlayer(player)), player); - } - - public void onUpdate() - { - this.cooldownTracker = this.getEntity().getCooledAttackStrength(0.0f); - - if (this.ticksWithEggnogEffect > 0) - { - this.ticksWithEggnogEffect--; - } - - if (this.getEntity().motionY < 0) - { - this.setJumping(false); - } - } - - public void onPlayerTick(final TickEvent.PlayerTickEvent event) - { - this.onUpdate(); - - for (final IPlayerAetherModule module : this.modules) - { - if (event.phase == TickEvent.Phase.START) - { - module.tickStart(event); - } - - if (event.phase == TickEvent.Phase.END) - { - module.tickEnd(event); - } - } - - } - - public void onRespawn(final PlayerEvent.PlayerRespawnEvent event) - { - this.sendFullUpdate(); - - for (final IPlayerAetherModule module : this.modules) - { - module.onRespawn(event); - } - } - - public void onPlaceBlock(final BlockEvent.PlaceEvent event) - { - } - - public void onDeath(final LivingDeathEvent event) - { - for (final IPlayerAetherModule module : this.modules) - { - module.onDeath(event); - } - } - - public void onDrops(final PlayerDropsEvent event) - { - for (final IPlayerAetherModule module : this.modules) - { - module.onDrops(event); - } - } - - public void onHurt(final LivingHurtEvent event) - { - final PlayerEquipmentModule equipmentModule = this.getModule(PlayerEquipmentModule.class); - - if (equipmentModule.getEffectPool(new ResourceLocation(AetherCore.MOD_ID, "fire_immunity")).isPresent()) - { - if (event.getSource() == DamageSource.ON_FIRE || event.getSource() == DamageSource.IN_FIRE || event.getSource() == DamageSource.LAVA) - { - event.setCanceled(true); - } - } - - final PlayerRollMovementModule movementModule = this.getModule(PlayerRollMovementModule.class); - - if (movementModule.isRolling()) - { - event.setAmount(movementModule.getDamageReduction(event.getAmount())); - } - } - - public void onFall(final LivingFallEvent event) - { - this.getModule(PlayerAbilitiesModule.class).onFall(event); - } - - public void onTeleport(final PlayerEvent.PlayerChangedDimensionEvent event) - { - this.getModule(PlayerSectorModule.class).releaseAll(); - this.getModule(PlayerEquipmentModule.class).onTeleport(); - - this.sendFullUpdate(); - } - - public void onPlayerBeginWatching(final IPlayerAether other) - { - NetworkingAether.sendPacketToPlayer(new PacketEquipment(this), (EntityPlayerMP) other.getEntity()); - } - - @Override - public float getMiningSpeedMultiplier() - { - if (this.getEntity().getAir() == 300 && this.getEntity().isPotionActive(MobEffects.WATER_BREATHING)) - { - if (!EnchantmentHelper.getAquaAffinityModifier(this.entity) && - this.entity.isInsideOfMaterial(Material.WATER)) - { - return 5.0f; - } - } - - return 1.0f; - } - - @Override - public void write(final NBTTagCompound tag) - { - final NBTFunnel funnel = new NBTFunnel(tag); - - final NBTTagCompound modules = new NBTTagCompound(); - - for (final IPlayerAetherModule.Serializable module : this.modulesSerializable) - { - modules.setTag(module.getIdentifier().toString(), NBTHelper.writeRaw(module)); - } - - tag.setTag("Modules", modules); - - funnel.set("towerInstance", this.towerInstance); - } - - @Override - public void read(final NBTTagCompound tag) - { - final NBTFunnel funnel = new NBTFunnel(tag); - - final NBTTagCompound modules = tag.getCompoundTag("Modules"); - - for (final IPlayerAetherModule.Serializable module : this.modulesSerializable) - { - final String key = module.getIdentifier().toString(); - - if (modules.hasKey(key)) - { - module.read(modules.getCompoundTag(key)); - } - } - - final NecromancerTowerInstance inst = funnel.get("towerInstance"); - - if (inst != null) - { - this.towerInstance = inst; - } - } - - @Override - public EntityPlayer getEntity() - { - return this.entity; - } - - public static class Storage implements IStorage<IPlayerAether> - { - @Override - public NBTBase writeNBT(final Capability<IPlayerAether> capability, final IPlayerAether instance, final EnumFacing side) - { - final NBTTagCompound compound = new NBTTagCompound(); - instance.write(compound); - - return compound; - } - - @Override - public void readNBT(final Capability<IPlayerAether> capability, final IPlayerAether instance, final EnumFacing side, final NBTBase nbt) - { - final NBTTagCompound compound = (NBTTagCompound) nbt; - - instance.read(compound); - } - } -} diff --git a/src/main/java/com/gildedgames/aether/common/capabilities/entity/player/PlayerAetherModule.java b/src/main/java/com/gildedgames/aether/common/capabilities/entity/player/PlayerAetherModule.java deleted file mode 100644 index 9e2c175616..0000000000 --- a/src/main/java/com/gildedgames/aether/common/capabilities/entity/player/PlayerAetherModule.java +++ /dev/null @@ -1,68 +0,0 @@ -package com.gildedgames.aether.common.capabilities.entity.player; - -import com.gildedgames.aether.api.player.IPlayerAether; -import com.gildedgames.aether.api.player.IPlayerAetherModule; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.world.World; -import net.minecraftforge.event.entity.living.LivingDeathEvent; -import net.minecraftforge.event.entity.player.PlayerDropsEvent; -import net.minecraftforge.fml.common.gameevent.PlayerEvent; -import net.minecraftforge.fml.common.gameevent.TickEvent; - -public abstract class PlayerAetherModule implements IPlayerAetherModule -{ - private final PlayerAether playerAether; - - public PlayerAetherModule(final PlayerAether playerAether) - { - this.playerAether = playerAether; - } - - @Override - public void onDrops(PlayerDropsEvent event) - { - - } - - @Override - public void onDeath(LivingDeathEvent event) - { - - } - - @Override - public void onRespawn(PlayerEvent.PlayerRespawnEvent event) - { - - } - - @Override - public void tickStart(TickEvent.PlayerTickEvent event) - { - - } - - @Override - public void tickEnd(TickEvent.PlayerTickEvent event) - { - - } - - @Override - public final IPlayerAether getPlayer() - { - return this.playerAether; - } - - @Override - public final EntityPlayer getEntity() - { - return this.playerAether.getEntity(); - } - - @Override - public final World getWorld() - { - return this.getEntity().world; - } -} diff --git a/src/main/java/com/gildedgames/aether/common/capabilities/entity/player/PlayerAetherProvider.java b/src/main/java/com/gildedgames/aether/common/capabilities/entity/player/PlayerAetherProvider.java deleted file mode 100644 index 320153111b..0000000000 --- a/src/main/java/com/gildedgames/aether/common/capabilities/entity/player/PlayerAetherProvider.java +++ /dev/null @@ -1,50 +0,0 @@ -package com.gildedgames.aether.common.capabilities.entity.player; - -import com.gildedgames.aether.api.player.IPlayerAether; -import com.gildedgames.aether.api.registrar.CapabilitiesAether; -import net.minecraft.nbt.NBTBase; -import net.minecraft.util.EnumFacing; -import net.minecraftforge.common.capabilities.Capability; -import net.minecraftforge.common.capabilities.ICapabilitySerializable; - -public class PlayerAetherProvider implements ICapabilitySerializable<NBTBase> -{ - private final PlayerAether.Storage storage = new PlayerAether.Storage(); - - private final IPlayerAether aePlayer; - - public PlayerAetherProvider(IPlayerAether aePlayer) - { - this.aePlayer = aePlayer; - } - - @Override - public boolean hasCapability(Capability<?> capability, EnumFacing facing) - { - return capability == CapabilitiesAether.PLAYER_DATA && this.aePlayer != null; - } - - @Override - @SuppressWarnings("unchecked" /* joy... */) - public <T> T getCapability(Capability<T> capability, EnumFacing facing) - { - if (this.hasCapability(capability, facing)) - { - return (T) this.aePlayer; - } - - return null; - } - - @Override - public NBTBase serializeNBT() - { - return this.storage.writeNBT(CapabilitiesAether.PLAYER_DATA, this.aePlayer, null); - } - - @Override - public void deserializeNBT(NBTBase nbt) - { - this.storage.readNBT(CapabilitiesAether.PLAYER_DATA, this.aePlayer, null, nbt); - } -} diff --git a/src/main/java/com/gildedgames/aether/common/capabilities/entity/player/modules/PlayerAbilitiesModule.java b/src/main/java/com/gildedgames/aether/common/capabilities/entity/player/modules/PlayerAbilitiesModule.java deleted file mode 100644 index c0080f3686..0000000000 --- a/src/main/java/com/gildedgames/aether/common/capabilities/entity/player/modules/PlayerAbilitiesModule.java +++ /dev/null @@ -1,108 +0,0 @@ -package com.gildedgames.aether.common.capabilities.entity.player.modules; - -import com.gildedgames.aether.api.player.IPlayerAetherModule; -import com.gildedgames.aether.common.AetherCore; -import com.gildedgames.aether.common.capabilities.entity.player.PlayerAether; -import com.gildedgames.aether.common.capabilities.entity.player.PlayerAetherModule; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.util.ResourceLocation; -import net.minecraftforge.event.entity.living.LivingFallEvent; -import net.minecraftforge.fml.common.eventhandler.Event; -import net.minecraftforge.fml.common.gameevent.TickEvent; - -public class PlayerAbilitiesModule extends PlayerAetherModule implements IPlayerAetherModule.Serializable -{ - - private int jumpsSoFar; - - private int midAirJumpsAllowed; - - private int ticksAirborne; - - public PlayerAbilitiesModule(PlayerAether playerAether) - { - super(playerAether); - } - - public int getMidAirJumpsAllowed() - { - return this.midAirJumpsAllowed; - } - - public void setMidAirJumpsAllowed(int midAirJumpsAllowed) - { - this.midAirJumpsAllowed = midAirJumpsAllowed; - } - - @Override - public void tickStart(TickEvent.PlayerTickEvent event) - { - if (this.getEntity().onGround) - { - this.jumpsSoFar = 0; - this.ticksAirborne = 0; - } - else - { - this.ticksAirborne++; - } - } - - public void onFall(LivingFallEvent event) - { - if (this.getMidAirJumpsAllowed() > 0) - { - event.setResult(Event.Result.DENY); - } - } - - public int getTicksAirborne() - { - return this.ticksAirborne; - } - - public boolean performMidAirJump() - { - if (this.jumpsSoFar < this.midAirJumpsAllowed && this.ticksAirborne > 2) - { - AetherCore.PROXY.spawnJumpParticles(this.getEntity().world, this.getEntity().posX, this.getEntity().posY, this.getEntity().posZ, 1.5D, 12); - - this.getEntity().motionY = 0.55D; - this.getEntity().fallDistance = -4; - - this.getEntity().motionX *= 1.4D; - this.getEntity().motionZ *= 1.4D; - - this.jumpsSoFar++; - - return true; - } - - return false; - } - - @Override - public void write(NBTTagCompound tag) - { - NBTTagCompound root = new NBTTagCompound(); - tag.setTag("Abilities", root); - - tag.setInteger("midAirJumpsAllowed", this.midAirJumpsAllowed); - tag.setInteger("jumpsSoFar", this.jumpsSoFar); - } - - @Override - public void read(NBTTagCompound tag) - { - NBTTagCompound root = tag.getCompoundTag("Abilities"); - - this.midAirJumpsAllowed = root.getInteger("midAirJumpsAllowed"); - this.jumpsSoFar = root.getInteger("jumpsSoFar"); - } - - @Override - public ResourceLocation getIdentifier() - { - return AetherCore.getResource("abilities"); - } -} diff --git a/src/main/java/com/gildedgames/aether/common/capabilities/entity/player/modules/PlayerAerbunnyTrackerModule.java b/src/main/java/com/gildedgames/aether/common/capabilities/entity/player/modules/PlayerAerbunnyTrackerModule.java deleted file mode 100644 index 65bd76eabc..0000000000 --- a/src/main/java/com/gildedgames/aether/common/capabilities/entity/player/modules/PlayerAerbunnyTrackerModule.java +++ /dev/null @@ -1,82 +0,0 @@ -package com.gildedgames.aether.common.capabilities.entity.player.modules; - -import com.gildedgames.aether.api.player.IPlayerAetherModule; -import com.gildedgames.aether.common.AetherCore; -import com.gildedgames.aether.common.capabilities.entity.player.PlayerAether; -import com.gildedgames.aether.common.capabilities.entity.player.PlayerAetherModule; -import com.gildedgames.aether.common.entities.animals.EntityAerbunny; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.util.ResourceLocation; -import net.minecraftforge.event.entity.living.LivingDeathEvent; - -/** - * This Module is only used to recover Data on the Server side to respawn/reattach Aerbunnys after saving/logout. It is not synced to the Client. - */ -public class PlayerAerbunnyTrackerModule extends PlayerAetherModule implements IPlayerAetherModule.Serializable -{ - private EntityAerbunny aerbunny; - - private NBTTagCompound bunnyData; - - public PlayerAerbunnyTrackerModule(PlayerAether playerAether) - { - super(playerAether); - } - - public void attachAerbunny(EntityAerbunny aerbunny) - { - this.aerbunny = aerbunny; - } - - public void detachAerbunny() - { - this.aerbunny = null; - } - - public void onLoggedOut() - { - if (this.aerbunny != null) - { - this.aerbunny.setDead(); - } - } - - public void onLoggedIn() - { - if (this.bunnyData != null) - { - this.aerbunny = new EntityAerbunny(this.getWorld()); - this.aerbunny.readFromNBT(this.bunnyData); - this.getWorld().spawnEntity(this.aerbunny); - - this.aerbunny.startRiding(this.getEntity()); - } - } - - @Override - public void onDeath(LivingDeathEvent event) - { - this.detachAerbunny(); - } - - @Override - public void write(NBTTagCompound tag) - { - if (this.aerbunny != null) - { - this.aerbunny.writeToNBT(tag); - } - } - - @Override - public void read(NBTTagCompound tag) - { - this.bunnyData = tag.getSize() <= 0 ? null : tag; - } - - @Override - public ResourceLocation getIdentifier() - { - return AetherCore.getResource("aerbunny"); - } -} diff --git a/src/main/java/com/gildedgames/aether/common/capabilities/entity/player/modules/PlayerBlockLevitateModule.java b/src/main/java/com/gildedgames/aether/common/capabilities/entity/player/modules/PlayerBlockLevitateModule.java deleted file mode 100644 index c21cbd92f1..0000000000 --- a/src/main/java/com/gildedgames/aether/common/capabilities/entity/player/modules/PlayerBlockLevitateModule.java +++ /dev/null @@ -1,114 +0,0 @@ -package com.gildedgames.aether.common.capabilities.entity.player.modules; - -import com.gildedgames.aether.common.capabilities.entity.player.PlayerAether; -import com.gildedgames.aether.common.capabilities.entity.player.PlayerAetherModule; -import com.gildedgames.aether.common.entities.blocks.EntityMovingBlock; -import com.gildedgames.aether.common.init.MaterialsAether; -import net.minecraft.block.state.IBlockState; -import net.minecraft.inventory.EntityEquipmentSlot; -import net.minecraft.item.ItemStack; -import net.minecraft.item.ItemTool; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.World; -import net.minecraftforge.event.entity.living.LivingDeathEvent; -import net.minecraftforge.fml.common.gameevent.TickEvent; - -import java.util.Objects; - -public class PlayerBlockLevitateModule extends PlayerAetherModule -{ - - private EntityMovingBlock heldBlock; - - public PlayerBlockLevitateModule(final PlayerAether playerAether) - { - super(playerAether); - } - - @Override - public void tickStart(TickEvent.PlayerTickEvent event) - { - if (this.getEntity().world.isRemote || this.getEntity().isDead) - { - return; - } - - if (this.heldBlock != null) - { - if (this.heldBlock.isDead || this.heldBlock.isFalling()) - { - this.heldBlock = null; - } - else - { - final ItemStack stack = this.getEntity().getItemStackFromSlot(EntityEquipmentSlot.MAINHAND); - - if (!stack.isEmpty() && stack.getItem() instanceof ItemTool - && Objects.equals(((ItemTool) stack.getItem()).getToolMaterialName(), MaterialsAether.GRAVITITE_TOOL.name())) - { - if (this.heldBlock.ticksExisted % 20 == 0) - { - // Does damage 2 damage/sec, increasing the amount of damage by 1 every 3 seconds, - // for a maximum of 8 damage/sec - - final int extra = (int) Math.floor(Math.min(6, this.heldBlock.ticksExisted / 60)); - - stack.damageItem(2 + extra, this.getEntity()); - } - } - else - { - this.dropHeldBlock(); - } - } - } - } - - @Override - public void onDeath(final LivingDeathEvent event) - { - this.dropHeldBlock(); - } - - public boolean pickupBlock(final BlockPos pos, final World world) - { - if (this.heldBlock == null) - { - if (world.isBlockModifiable(this.getEntity(), pos)) - { - final IBlockState state = world.getBlockState(pos); - - final EntityMovingBlock movingBlock = new EntityMovingBlock(world, pos.getX() + 0.5D, pos.getY() + 0.1D, pos.getZ() + 0.5D, state); - world.spawnEntity(movingBlock); - - this.holdBlock(movingBlock); - - return true; - } - } - - return false; - } - - private void holdBlock(final EntityMovingBlock entity) - { - this.dropHeldBlock(); - - this.heldBlock = entity; - this.heldBlock.setHoldingPlayer(this.getEntity()); - } - - public EntityMovingBlock getHeldBlock() - { - return this.heldBlock; - } - - public void dropHeldBlock() - { - if (this.getHeldBlock() != null) - { - this.getHeldBlock().setHoldingPlayer(null); - } - } - -} diff --git a/src/main/java/com/gildedgames/aether/common/capabilities/entity/player/modules/PlayerCampfiresModule.java b/src/main/java/com/gildedgames/aether/common/capabilities/entity/player/modules/PlayerCampfiresModule.java deleted file mode 100644 index a84b6af06a..0000000000 --- a/src/main/java/com/gildedgames/aether/common/capabilities/entity/player/modules/PlayerCampfiresModule.java +++ /dev/null @@ -1,120 +0,0 @@ -package com.gildedgames.aether.common.capabilities.entity.player.modules; - -import com.gildedgames.aether.api.player.IPlayerAetherModule; -import com.gildedgames.aether.common.AetherCore; -import com.gildedgames.aether.common.capabilities.entity.player.PlayerAether; -import com.gildedgames.aether.common.capabilities.entity.player.PlayerAetherModule; -import com.gildedgames.orbis.lib.util.io.NBTFunnel; -import com.gildedgames.orbis.lib.util.mc.BlockPosDimension; -import com.google.common.collect.Sets; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.util.ResourceLocation; -import net.minecraft.util.math.BlockPos; - -import java.util.Set; - -public class PlayerCampfiresModule extends PlayerAetherModule implements IPlayerAetherModule.Serializable -{ - - public Set<BlockPosDimension> campfiresActivated = Sets.newHashSet(); - - private boolean shouldRespawnAtCampfire; - - private BlockPosDimension deathPos; - - public PlayerCampfiresModule(final PlayerAether playerAether) - { - super(playerAether); - } - - public BlockPosDimension getDeathPos() - { - return this.deathPos; - } - - public void setDeathPos(BlockPosDimension deathPos) - { - this.deathPos = deathPos; - } - - public boolean hasCampfire(BlockPosDimension campfire) - { - return this.campfiresActivated.contains(campfire); - } - - public Set<BlockPosDimension> getCampfiresActivated() - { - return this.campfiresActivated; - } - - public void setCampfiresActivated(Set<BlockPosDimension> campfiresActivated) - { - this.campfiresActivated = campfiresActivated; - } - - public BlockPos getClosestCampfire() - { - BlockPos closest = null; - - int x = this.getDeathPos().getX(); - int y = this.getDeathPos().getY(); - int z = this.getDeathPos().getZ(); - - for (BlockPos p : this.campfiresActivated) - { - if (closest == null) - { - closest = p; - continue; - } - - if (closest.getDistance(x, y, z) > p.getDistance(x, y, z)) - { - closest = p; - } - } - - return closest; - } - - public void addActivatedCampfire(BlockPosDimension campfire) - { - this.campfiresActivated.add(campfire); - } - - public void setShouldRespawnAtCampfire(boolean flag) - { - this.shouldRespawnAtCampfire = flag; - } - - public boolean shouldRespawnAtCampfire() - { - return this.shouldRespawnAtCampfire; - } - - @Override - public void write(final NBTTagCompound compound) - { - NBTFunnel funnel = new NBTFunnel(compound); - - funnel.setSet("campfiresActivated", this.campfiresActivated); - funnel.set("deathPos", this.deathPos); - compound.setBoolean("shouldRespawnAtCampfire", this.shouldRespawnAtCampfire); - } - - @Override - public void read(final NBTTagCompound compound) - { - NBTFunnel funnel = new NBTFunnel(compound); - - this.campfiresActivated = funnel.getSet("campfiresActivated"); - this.deathPos = funnel.get("deathPos"); - this.shouldRespawnAtCampfire = compound.getBoolean("shouldRespawnAtCampfire"); - } - - @Override - public ResourceLocation getIdentifier() - { - return AetherCore.getResource("campfires"); - } -} diff --git a/src/main/java/com/gildedgames/aether/common/capabilities/entity/player/modules/PlayerCaveSpawnModule.java b/src/main/java/com/gildedgames/aether/common/capabilities/entity/player/modules/PlayerCaveSpawnModule.java deleted file mode 100644 index 3ed96f7b37..0000000000 --- a/src/main/java/com/gildedgames/aether/common/capabilities/entity/player/modules/PlayerCaveSpawnModule.java +++ /dev/null @@ -1,233 +0,0 @@ -package com.gildedgames.aether.common.capabilities.entity.player.modules; - -import com.gildedgames.aether.api.registrar.BiomesAether; -import com.gildedgames.aether.common.AetherCore; -import com.gildedgames.aether.common.capabilities.entity.player.PlayerAether; -import com.gildedgames.aether.common.capabilities.entity.player.PlayerAetherModule; -import com.gildedgames.aether.common.entities.monsters.EntityCockatrice; -import com.gildedgames.aether.common.entities.monsters.EntitySwet; -import com.gildedgames.aether.common.entities.monsters.EntityTempest; -import com.gildedgames.aether.common.entities.monsters.EntityVaranys; -import com.gildedgames.aether.common.util.helpers.AetherHelper; -import com.gildedgames.aether.common.world.spawning.SpawnHandler; -import net.minecraft.entity.EntityCreature; -import net.minecraft.entity.EntityList; -import net.minecraft.entity.EntityLiving; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.MathHelper; -import net.minecraft.world.World; -import net.minecraft.world.biome.Biome; -import net.minecraftforge.fml.common.gameevent.TickEvent; - -import java.util.ArrayList; -import java.util.Random; - -public class PlayerCaveSpawnModule extends PlayerAetherModule -{ - private int playerYPos; - private Biome currentPlayerBiome; - private ArrayList<Class<? extends EntityCreature>> spawnableMobs; - private boolean hasSpawned; // stops things from trying to spawn every update, resets from timer. - private int timer; - - private final int timerMax = 100; - private final int maximumYPos = 70; - private final int minimumYPos = 10; - private final int maxLightLevel = 8; - - public PlayerCaveSpawnModule(PlayerAether playerAether) - { - super(playerAether); - this.playerYPos = 0; - this.spawnableMobs = new ArrayList<>(); - this.currentPlayerBiome = null; - this.hasSpawned = true; - this.timer = this.timerMax; - } - - @Override - public void tickStart(TickEvent.PlayerTickEvent event) - { - if (!AetherHelper.isAether(this.getWorld()) || this.getWorld().isRemote) - { - return; - } - - if (this.currentPlayerBiome != this.getWorld().getBiome(this.getEntity().getPosition())) - { - this.currentPlayerBiome = this.getWorld().getBiome(this.getEntity().getPosition()); - this.updateEntityList(this.currentPlayerBiome, this.getWorld()); - } - - this.playerYPos = MathHelper.floor(this.getPlayer().getEntity().posY); - - if (this.playerYPos < this.minimumYPos) - { - this.playerYPos = this.minimumYPos; - } - } - - @Override - public void tickEnd(TickEvent.PlayerTickEvent event) - { - if (this.getEntity().world.isRemote || !AetherHelper.isAether(this.getWorld())) - { - return; - } - - int yTranslation = this.playerYPos / 10; - - if (yTranslation <= 0) - { - yTranslation = 1; - } - - if (!this.spawnableMobs.isEmpty() && this.playerYPos < this.maximumYPos) - { - if (!this.hasSpawned) - { - int mobInList = this.getWorld().rand.nextInt(this.spawnableMobs.size()); - int numberOfMobs = this.getWorld().rand.nextInt(2); - - for (int i = 0; i < numberOfMobs; i++) - { - if (this.getWorld().rand.nextInt(yTranslation) != 0) - { - break; - } - BlockPos spawnPos; - EntityCreature mobToSpawn = (EntityCreature)EntityList.newEntity(this.spawnableMobs.get(mobInList), this.getWorld()); - EntityLiving.SpawnPlacementType placementType; - double distanceToSpawn = 16.0D; - int yController = 16; - - if (mobToSpawn instanceof EntityTempest) - { - if (this.playerYPos < 25) - { - yController = 8; - distanceToSpawn = 8.0D; - } - } - - placementType = EntityLiving.SpawnPlacementType.ON_GROUND; - for (int j = 0; j < 100; j++) - { - spawnPos = this.getPosToSpawn( - (MathHelper.floor(this.getEntity().posX) >> 4), - (MathHelper.floor(this.getEntity().posZ) >> 4), - yController, - this.getWorld().rand); - - mobToSpawn.setPosition(spawnPos.getX(), spawnPos.getY(), spawnPos.getZ()); - - if (SpawnHandler.isNotColliding(placementType, this.getWorld(), mobToSpawn)) - { - continue; - } - - if (this.getWorld().isAnyPlayerWithinRangeAt(spawnPos.getX(), spawnPos.getY(), spawnPos.getZ(), distanceToSpawn)) - { - continue; - } - if (!this.isGroundBelowPosition(spawnPos, mobToSpawn)) - { - continue; - } - if (this.getWorld().collidesWithAnyBlock(mobToSpawn.getEntityBoundingBox())) - { - continue; - } - if (this.getWorld().getLight(spawnPos) > this.maxLightLevel) - { - continue; - } - - mobToSpawn.rotationYawHead = mobToSpawn.rotationYaw; - mobToSpawn.renderYawOffset = mobToSpawn.rotationYaw; - this.getWorld().spawnEntity(mobToSpawn); - AetherCore.LOGGER.info("PlayerCaveSpawnModule spawned " + mobToSpawn.toString()); - break; - } - } - this.hasSpawned = true; // set to true regardless of spawning to control how often things spawn a little more. - } - } - - --this.timer; - if (this.timer <= 0) - { - this.timer = (this.timerMax * yTranslation); - this.hasSpawned = false; - } - } - - private void updateEntityList(Biome biome, World world) - { - this.spawnableMobs.clear(); - - this.spawnableMobs.add(EntityCockatrice.class); - this.spawnableMobs.add(EntityTempest.class); - this.spawnableMobs.add(EntitySwet.class); - - if (biome == BiomesAether.HIGHLANDS) - { - - } - - if (biome == BiomesAether.ARCTIC_PEAKS) - { - this.spawnableMobs.add(EntityVaranys.class); - } - - if (biome == BiomesAether.MAGNETIC_HILLS) - { - - } - - if (biome == BiomesAether.FORGOTTEN_HIGHLANDS) - { - - } - - if (biome == BiomesAether.IRRADIATED_FORESTS) - { - - } - } - - private BlockPos getPosToSpawn(final int chunkX, final int chunkZ, final int yDistance, Random rand) - { - int x, y, z; - x = rand.nextInt(16) + (chunkX*16); - y = rand.nextInt(yDistance); - z = rand.nextInt(16) + (chunkZ*16); - - if (rand.nextBoolean()) - { - y = y * -1; - } - - y = y + MathHelper.floor(this.getEntity().posY); - - return new BlockPos(x,y,z); - } - - private boolean isGroundBelowPosition(final BlockPos position, final EntityCreature entity) - { - if (entity instanceof EntityTempest) - { - return true; - } - - for (int i = 0; i < 8; i++) - { - if (!this.getWorld().isAirBlock(position.down(i))) - { - return true; - } - } - - return false; - } -} diff --git a/src/main/java/com/gildedgames/aether/common/capabilities/entity/player/modules/PlayerConditionModule.java b/src/main/java/com/gildedgames/aether/common/capabilities/entity/player/modules/PlayerConditionModule.java deleted file mode 100644 index 141e63d0c4..0000000000 --- a/src/main/java/com/gildedgames/aether/common/capabilities/entity/player/modules/PlayerConditionModule.java +++ /dev/null @@ -1,90 +0,0 @@ -package com.gildedgames.aether.common.capabilities.entity.player.modules; - -import com.gildedgames.aether.api.player.IPlayerConditionModule; -import com.gildedgames.aether.api.player.conditions.IConditionResolution; -import com.gildedgames.aether.api.travellers_guidebook.ITGEntry; -import com.gildedgames.aether.common.capabilities.entity.player.PlayerAether; -import com.gildedgames.aether.common.capabilities.entity.player.PlayerAetherModule; -import com.gildedgames.aether.common.network.NetworkingAether; -import com.gildedgames.aether.common.network.packets.PacketFlagPlayerCondition; -import com.gildedgames.orbis.lib.util.io.NBTFunnel; -import com.google.common.collect.Sets; -import net.minecraft.entity.player.EntityPlayerMP; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.util.ResourceLocation; -import net.minecraftforge.fml.common.gameevent.TickEvent; - -import java.util.HashSet; -import java.util.function.Function; - -/** - * Event's System for the Travellers Guidebook - */ -public class PlayerConditionModule extends PlayerAetherModule implements IPlayerConditionModule -{ - private HashSet<ResourceLocation> conditionsMet = Sets.newHashSet(); - - private final Function<ResourceLocation, Boolean> isConditionMet = this::isConditionFlagged; - - public PlayerConditionModule(final PlayerAether playerAether) - { - super(playerAether); - } - - @Override - public void flagCondition(final ResourceLocation conditionUniqueIdentifier) - { - this.conditionsMet.add(conditionUniqueIdentifier); - - if (!this.getWorld().isRemote) - { - NetworkingAether.sendPacketToPlayer(new PacketFlagPlayerCondition(conditionUniqueIdentifier), (EntityPlayerMP) this.getEntity()); - } - } - - @Override - public boolean isConditionFlagged(final ResourceLocation conditionUniqueIdentifier) - { - return this.conditionsMet.contains(conditionUniqueIdentifier); - } - - @Override - public boolean areConditionsFlagged(final IConditionResolution conditionResolution, final ResourceLocation... conditionUniqueIdentifiers) - { - return conditionResolution.areConditionsMet(conditionUniqueIdentifiers, this.isConditionMet); - } - - @Override - public boolean isEntryUnlocked(final ITGEntry entry) - { - return this.areConditionsFlagged(entry.getConditionResolution(), entry.getConditionIDs().toArray(new ResourceLocation[0])); - } - - @Override - public void tickStart(final TickEvent.PlayerTickEvent event) - { - - } - - @Override - public void tickEnd(final TickEvent.PlayerTickEvent event) - { - - } - - @Override - public void write(final NBTTagCompound tag) - { - final NBTFunnel funnel = new NBTFunnel(tag); - - funnel.setSet("conditionsMet", this.conditionsMet, NBTFunnel.RESOURCE_SETTER); - } - - @Override - public void read(final NBTTagCompound tag) - { - final NBTFunnel funnel = new NBTFunnel(tag); - - this.conditionsMet = Sets.newHashSet(funnel.getSet("conditionsMet", NBTFunnel.RESOURCE_GETTER)); - } -} diff --git a/src/main/java/com/gildedgames/aether/common/capabilities/entity/player/modules/PlayerConfigModule.java b/src/main/java/com/gildedgames/aether/common/capabilities/entity/player/modules/PlayerConfigModule.java deleted file mode 100644 index d89ae7deec..0000000000 --- a/src/main/java/com/gildedgames/aether/common/capabilities/entity/player/modules/PlayerConfigModule.java +++ /dev/null @@ -1,24 +0,0 @@ -package com.gildedgames.aether.common.capabilities.entity.player.modules; - -import com.gildedgames.aether.common.capabilities.entity.player.PlayerAether; -import com.gildedgames.aether.common.capabilities.entity.player.PlayerAetherModule; - -public class PlayerConfigModule extends PlayerAetherModule -{ - private boolean skipIntro; - - public PlayerConfigModule(final PlayerAether playerAether) - { - super(playerAether); - } - - public boolean skipIntro() - { - return this.skipIntro; - } - - public void setSkipIntro(boolean flag) - { - this.skipIntro = flag; - } -} diff --git a/src/main/java/com/gildedgames/aether/common/capabilities/entity/player/modules/PlayerCurrencyModule.java b/src/main/java/com/gildedgames/aether/common/capabilities/entity/player/modules/PlayerCurrencyModule.java deleted file mode 100644 index a971c07181..0000000000 --- a/src/main/java/com/gildedgames/aether/common/capabilities/entity/player/modules/PlayerCurrencyModule.java +++ /dev/null @@ -1,95 +0,0 @@ -package com.gildedgames.aether.common.capabilities.entity.player.modules; - -import com.gildedgames.aether.api.player.ICurrencyModule; -import com.gildedgames.aether.api.player.IPlayerAetherModule; -import com.gildedgames.aether.api.shop.ICurrencyListener; -import com.gildedgames.aether.common.AetherCore; -import com.gildedgames.aether.common.capabilities.entity.player.PlayerAether; -import com.gildedgames.aether.common.capabilities.entity.player.PlayerAetherModule; -import com.gildedgames.aether.common.init.CurrencyAetherInit; -import com.gildedgames.aether.common.network.NetworkingAether; -import com.gildedgames.aether.common.network.packets.PacketCurrencyModule; -import com.google.common.collect.Lists; -import net.minecraft.entity.player.EntityPlayerMP; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.util.ResourceLocation; - -import java.util.List; - -public class PlayerCurrencyModule extends PlayerAetherModule implements ICurrencyModule, IPlayerAetherModule.Serializable -{ - private long currencyValue = 0; - - private final List<ICurrencyListener> listeners = Lists.newArrayList(); - - public PlayerCurrencyModule(PlayerAether playerAether) - { - super(playerAether); - } - - @Override - public long getCurrencyValue() - { - return this.currencyValue; - } - - @Override - public void listen(ICurrencyListener listener) - { - if (!this.listeners.contains(listener)) - { - this.listeners.add(listener); - } - } - - @Override - public boolean unlisten(ICurrencyListener listener) - { - return this.listeners.remove(listener); - } - - @Override - public void add(long gilt) - { - long prevCurrency = this.currencyValue; - - this.currencyValue += gilt; - - this.currencyValue = Math.min(Math.max(0L, this.currencyValue), Long.MAX_VALUE); - - if (!this.getWorld().isRemote) - { - NetworkingAether.sendPacketToPlayer(new PacketCurrencyModule(this), (EntityPlayerMP) this.getEntity()); - } - - this.listeners.forEach((l) -> l.onCurrencyChange(prevCurrency, this.currencyValue)); - } - - @Override - public void take(long gilt) - { - this.add(-gilt); - } - - @Override - public void write(NBTTagCompound tag) - { - tag.setLong("currencyValue", this.currencyValue); - } - - @Override - public void read(NBTTagCompound tag) - { - long prevCurrency = this.currencyValue; - - this.currencyValue = tag.getLong("currencyValue"); - - this.listeners.forEach((l) -> l.onCurrencyChange(prevCurrency, this.currencyValue)); - } - - @Override - public ResourceLocation getIdentifier() - { - return AetherCore.getResource("currency"); - } -} diff --git a/src/main/java/com/gildedgames/aether/common/capabilities/entity/player/modules/PlayerDialogModule.java b/src/main/java/com/gildedgames/aether/common/capabilities/entity/player/modules/PlayerDialogModule.java deleted file mode 100644 index ebfe8370a5..0000000000 --- a/src/main/java/com/gildedgames/aether/common/capabilities/entity/player/modules/PlayerDialogModule.java +++ /dev/null @@ -1,344 +0,0 @@ -package com.gildedgames.aether.common.capabilities.entity.player.modules; - -import com.gildedgames.aether.api.AetherAPI; -import com.gildedgames.aether.api.dialog.*; -import com.gildedgames.aether.api.entity.EntityCharacter; -import com.gildedgames.aether.client.gui.dialog.GuiDialogViewer; -import com.gildedgames.aether.common.capabilities.entity.player.PlayerAether; -import com.gildedgames.aether.common.capabilities.entity.player.PlayerAetherModule; -import com.gildedgames.aether.common.network.NetworkingAether; -import com.gildedgames.aether.common.network.packets.dialog.*; -import net.minecraft.client.Minecraft; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.EntityPlayerMP; -import net.minecraft.util.ResourceLocation; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; -import org.apache.commons.lang3.Validate; - -import javax.annotation.Nullable; -import java.util.Collection; -import java.util.HashSet; -import java.util.Map; -import java.util.Set; - -public class PlayerDialogModule extends PlayerAetherModule implements IDialogController -{ - private final Set<IDialogChangeListener> listeners = new HashSet<>(); - - private ISceneInstance sceneInstance; - - private String lastNodeId; - - private EntityCharacter talkingEntity; - - private Map<String, Boolean> conditionsMet; - - public PlayerDialogModule(final PlayerAether playerAether) - { - super(playerAether); - } - - @Override - public void setConditionsMetData(Map<String, Boolean> conditionsMet) - { - this.conditionsMet = conditionsMet; - - if (this.sceneInstance != null) - { - this.sceneInstance.setConditionsMet(conditionsMet); - } - } - - @Override - public EntityPlayer getDialogPlayer() - { - return this.getEntity(); - } - - protected void updateListeners() - { - for (final IDialogChangeListener listener : this.listeners) - { - listener.onDialogChanged(); - } - } - - @Nullable - @Override - public EntityCharacter getTalkingCharacter() - { - return this.talkingEntity; - } - - @Override - public void setTalkingEntity(final EntityCharacter entity) - { - this.talkingEntity = entity; - } - - @Override - public void addListener(final IDialogChangeListener listener) - { - this.listeners.add(listener); - } - - @Override - public void openScene(final ResourceLocation path, String startingNodeId) - { - final IDialogScene scene = AetherAPI.content().dialog().getScene(path).orElseThrow(() -> - new IllegalArgumentException("Couldn't getByte scene " + path)); - - scene.setStartingNode(startingNodeId); - - if (this.getPlayer().getEntity().world.isRemote) - { - this.openSceneClient(path, scene, this.conditionsMet); - } - else - { - this.openSceneServer(path, scene); - } - - this.updateListeners(); - } - - @Override - public IDialogScene getCurrentScene() - { - return this.sceneInstance != null ? this.sceneInstance.getScene() : null; - } - - @Override - public ISceneInstance getCurrentSceneInstance() - { - return this.sceneInstance; - } - - @SideOnly(Side.CLIENT) - private void openSceneClient(final ResourceLocation res, final IDialogScene scene, Map<String, Boolean> conditionsMet) - { - this.sceneInstance = new SceneInstance(this, scene, conditionsMet); - - Minecraft.getMinecraft().displayGuiScreen(new GuiDialogViewer(Minecraft.getMinecraft().player, this, this.sceneInstance)); - } - - private void openSceneServer(final ResourceLocation res, final IDialogScene scene) - { - this.sceneInstance = new SceneInstance(this, scene); - - NetworkingAether.sendPacketToPlayer(new PacketOpenDialog(res, scene.getStartingNode().getIdentifier(), this.sceneInstance.getConditionsMet()), - (EntityPlayerMP) this.getPlayer().getEntity()); - } - - @SideOnly(Side.CLIENT) - public void navigateNodeClient(String nodeId) - { - if (this.sceneInstance.getNode() != null) - { - this.lastNodeId = this.sceneInstance.getNode().getIdentifier(); - } - - this.sceneInstance.navigate(nodeId); - } - - @SideOnly(Side.CLIENT) - public void navigateBackClient() - { - if (this.lastNodeId != null) - { - this.sceneInstance.navigate(this.lastNodeId); - - while (!this.isNodeFinished()) - { - this.advance(); - } - } - } - - @Override - public void navigateNode(final String nodeId) - { - if (!this.getWorld().isRemote) - { - if (this.sceneInstance.getNode() != null) - { - this.lastNodeId = this.sceneInstance.getNode().getIdentifier(); - } - - this.sceneInstance.navigate(nodeId); - - NetworkingAether.sendPacketToPlayer(new PacketNavigateNode(nodeId), (EntityPlayerMP) this.getDialogPlayer()); - } - } - - @Override - public void navigateBack() - { - if (!this.getWorld().isRemote) - { - NetworkingAether.sendPacketToPlayer(new PacketNavigateBack(), (EntityPlayerMP) this.getDialogPlayer()); - - if (this.lastNodeId != null) - { - this.sceneInstance.navigate(this.lastNodeId); - - while (!this.isNodeFinished()) - { - this.advance(); - } - } - } - } - - @Override - public boolean conditionsMet(IDialogButton button) - { - if (this.getWorld().isRemote) - { - if (this.sceneInstance == null) - { - throw new NullPointerException("Scene instance is null in activateButton()"); - } - - if (!this.sceneInstance.getConditionsMet().containsKey(button.getLabel())) - { - return false; - } - - return this.sceneInstance.getConditionsMet().get(button.getLabel()); - } - - boolean flag = false; - - for (IDialogCondition condition : button.getOrConditions()) - { - if (condition.isMet(this)) - { - flag = true; - break; - } - } - - for (IDialogCondition condition : button.getConditions()) - { - if (!condition.isMet(this)) - { - flag = false; - break; - } - else - { - flag = true; - } - } - - return flag || (button.getConditions().isEmpty() && button.getOrConditions().isEmpty()); - } - - @Override - public void activateButton(final IDialogButton button) - { - // Make sure this node actually contains the button - Validate.isTrue(this.sceneInstance.getNode().getButtons().contains(button)); - - if (this.getWorld().isRemote) - { - NetworkingAether.sendPacketToServer(new PacketActivateButton(button.getLabel())); - } - - if (!this.conditionsMet(button)) - { - return; - } - - if (!this.getWorld().isRemote) - { - NetworkingAether.sendPacketToPlayer(new PacketActivateButton(button.getLabel()), (EntityPlayerMP) this.getEntity()); - - final Collection<IDialogAction> actions = button.getActions(); - - for (final IDialogAction action : actions) - { - action.performAction(this); - } - } - } - - public void advanceClient() - { - if (this.sceneInstance != null) - { - this.sceneInstance.forwards(); - } - } - - @Override - public void advance() - { - if (this.getWorld().isRemote) - { - NetworkingAether.sendPacketToServer(new PacketAdvance()); - } - else - { - NetworkingAether.sendPacketToPlayer(new PacketAdvance(), (EntityPlayerMP) this.getDialogPlayer()); - - if (this.sceneInstance != null) - { - this.sceneInstance.forwards(); - } - } - } - - @Override - public IDialogNode getCurrentNode() - { - return this.sceneInstance.getNode(); - } - - @Override - public IDialogLine getCurrentLine() - { - return this.sceneInstance.getLine(); - } - - @Override - public boolean isNodeFinished() - { - if (this.sceneInstance == null) - { - return false; - } - - return this.sceneInstance.isDoneReading(); - } - - @Override - public void closeScene(ISceneInstance sceneInstance) - { - if (this.sceneInstance != sceneInstance) - { - return; - } - - for (final IDialogChangeListener listener : this.listeners) - { - listener.beforeSceneCloses(); - } - - this.listeners.clear(); - - this.sceneInstance = null; - - if (this.getWorld().isRemote) - { - NetworkingAether.sendPacketToServer(new PacketCloseScene()); - } - } - - public void closeCurrentScene() - { - this.closeScene(this.getCurrentSceneInstance()); - } -} diff --git a/src/main/java/com/gildedgames/aether/common/capabilities/entity/player/modules/PlayerEffectsEquipmentModule.java b/src/main/java/com/gildedgames/aether/common/capabilities/entity/player/modules/PlayerEffectsEquipmentModule.java deleted file mode 100644 index 486ea1de79..0000000000 --- a/src/main/java/com/gildedgames/aether/common/capabilities/entity/player/modules/PlayerEffectsEquipmentModule.java +++ /dev/null @@ -1,124 +0,0 @@ -package com.gildedgames.aether.common.capabilities.entity.player.modules; - -import com.gildedgames.aether.api.entity.effects.IAetherStatusEffectPool; -import com.gildedgames.aether.api.entity.effects.IAetherStatusEffects; -import com.gildedgames.aether.api.registrar.CapabilitiesAether; -import com.gildedgames.aether.common.capabilities.entity.player.PlayerAether; -import com.gildedgames.aether.common.capabilities.entity.player.PlayerAetherModule; -import com.gildedgames.aether.common.entities.effects.StatusEffect; -import com.gildedgames.aether.common.items.armor.ItemAetherArmor; -import com.gildedgames.aether.common.network.NetworkingAether; -import com.gildedgames.aether.common.network.packets.effects.PacketResetResistance; -import com.gildedgames.aether.common.network.packets.effects.PacketResistance; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraft.util.NonNullList; -import net.minecraftforge.fml.common.gameevent.TickEvent; - -import java.util.HashMap; -import java.util.Map; - -public class PlayerEffectsEquipmentModule extends PlayerAetherModule -{ - private NonNullList<ItemStack> stagingInv; - - private NonNullList<ItemStack> recordedInv; - - private Map<ItemStack, Boolean> applicationTracker = new HashMap<>(); - - public PlayerEffectsEquipmentModule(PlayerAether player) - { - super(player); - } - - @Override - public void tickStart(TickEvent.PlayerTickEvent event) - { - EntityPlayer player = event.player; - - if (!player.world.isRemote) - { - IAetherStatusEffectPool statusEffectPool = player.getCapability(CapabilitiesAether.STATUS_EFFECT_POOL, null); - - if (statusEffectPool == null) - { - return; - } - - if (this.stagingInv == null) - { - this.stagingInv = player.inventory.armorInventory; - } - - if (this.recordedInv == null) - { - this.recordedInv = NonNullList.from(ItemStack.EMPTY, player.inventory.armorInventory.get(0).copy(), - player.inventory.armorInventory.get(1).copy(), - player.inventory.armorInventory.get(2).copy(), - player.inventory.armorInventory.get(3).copy()); - } - - for (int i = 0; i < this.stagingInv.size(); i++) - { - ItemStack oldStack = this.recordedInv.get(i); - ItemStack newStack = this.stagingInv.get(i); - - if (!ItemStack.areItemStacksEqual(oldStack, newStack)) - { - if (!oldStack.isEmpty()) - { - statusEffectPool.resetAllResistances(); - NetworkingAether.sendPacketToWatching(new PacketResetResistance(player), player, true); - } - - this.recordedInv = NonNullList.from(ItemStack.EMPTY, player.inventory.armorInventory.get(0).copy(), - player.inventory.armorInventory.get(1).copy(), - player.inventory.armorInventory.get(2).copy(), - player.inventory.armorInventory.get(3).copy()); - } - - if (!newStack.isEmpty()) - { - if (newStack.getItem() instanceof ItemAetherArmor) - { - ItemAetherArmor armor = (ItemAetherArmor) newStack.getItem(); - - if (!armor.getStatusEffects().isEmpty()) - { - for (Map.Entry<StatusEffect, Double> effect : armor.getStatusEffects().entrySet()) - { - applicationTracker.putIfAbsent(newStack, false); - - IAetherStatusEffects actualEffect = statusEffectPool.createEffect(effect.getKey().getEffectType().name, event.player); - - if (!applicationTracker.get(newStack)) - { - statusEffectPool.addResistanceToEffect(actualEffect.getEffectType(), effect.getValue()); - NetworkingAether.sendPacketToWatching(new PacketResistance - (player, actualEffect.getEffectName(), effect.getValue()), player, true); - - if (statusEffectPool.getResistanceToEffect(actualEffect.getEffectType()) != 1.0D) - { - applicationTracker.put(newStack, true); - } - } - else - { - if (statusEffectPool.getResistanceToEffect(actualEffect.getEffectType()) == 1.0D) - { - applicationTracker.put(newStack, false); - } - } - } - } - } - } - } - } - } - - public Map<ItemStack, Boolean> getApplicationTracker() - { - return applicationTracker; - } -} diff --git a/src/main/java/com/gildedgames/aether/common/capabilities/entity/player/modules/PlayerEquipmentModule.java b/src/main/java/com/gildedgames/aether/common/capabilities/entity/player/modules/PlayerEquipmentModule.java deleted file mode 100644 index 14e18bd924..0000000000 --- a/src/main/java/com/gildedgames/aether/common/capabilities/entity/player/modules/PlayerEquipmentModule.java +++ /dev/null @@ -1,310 +0,0 @@ -package com.gildedgames.aether.common.capabilities.entity.player.modules; - -import com.gildedgames.aether.api.AetherAPI; -import com.gildedgames.aether.api.entity.effects.IAetherStatusEffectPool; -import com.gildedgames.aether.api.entity.effects.IAetherStatusEffects; -import com.gildedgames.aether.api.items.EffectActivator; -import com.gildedgames.aether.api.items.equipment.effects.IEffectFactory; -import com.gildedgames.aether.api.items.equipment.effects.IEffectPool; -import com.gildedgames.aether.api.items.equipment.effects.IEffectProvider; -import com.gildedgames.aether.api.items.properties.IItemProperties; -import com.gildedgames.aether.api.player.IEquipmentModule; -import com.gildedgames.aether.api.player.IPlayerAetherModule; -import com.gildedgames.aether.api.player.inventory.IInventoryEquipment; -import com.gildedgames.aether.api.registrar.CapabilitiesAether; -import com.gildedgames.aether.common.AetherCore; -import com.gildedgames.aether.common.capabilities.entity.player.PlayerAether; -import com.gildedgames.aether.common.capabilities.entity.player.PlayerAetherModule; -import com.gildedgames.aether.common.containers.inventory.InventoryEquipment; -import com.gildedgames.aether.common.entities.effects.EquipmentEffectPool; -import com.gildedgames.aether.common.entities.effects.IEffectResistanceHolder; -import com.gildedgames.aether.common.entities.effects.InventoryProvider; -import com.gildedgames.aether.common.entities.effects.StatusEffect; -import com.gildedgames.aether.common.items.accessories.ItemAccessory; -import com.gildedgames.aether.common.items.armor.ItemAetherArmor; -import com.gildedgames.aether.common.network.NetworkingAether; -import com.gildedgames.aether.common.network.packets.PacketEquipment; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.util.ResourceLocation; -import net.minecraftforge.fml.common.gameevent.TickEvent; -import org.apache.commons.lang3.Validate; -import org.apache.commons.lang3.tuple.Pair; - -import java.util.*; - -public class PlayerEquipmentModule extends PlayerAetherModule implements IEquipmentModule, IPlayerAetherModule.Serializable -{ - private static final InventoryProvider EQUIPMENT_INV_PROVIDER = new InventoryProvider(AetherCore.getResource("equipmentInv"), - (playerAether -> playerAether.getModule(PlayerEquipmentModule.class).getInventory())); - - private static final InventoryProvider NORMAL_INV_PROVIDER = new InventoryProvider(AetherCore.getResource("normalInv"), - (playerAether -> playerAether.getEntity().inventory)); - - private final InventoryEquipment stagingInv; - - private final InventoryEquipment recordedInv; - - private final Map<ResourceLocation, EquipmentEffectPool<IEffectProvider>> pools = new HashMap<>(); - - private ItemStack lastHeldStack = ItemStack.EMPTY; - - private int lastHeldStackIndex = -1; - - private Map<ItemStack, Boolean> applicationTracker = new HashMap<>(); - - public PlayerEquipmentModule(PlayerAether player) - { - super(player); - - this.stagingInv = new InventoryEquipment(player); - this.recordedInv = new InventoryEquipment(player); - } - - @Override - public void tickStart(TickEvent.PlayerTickEvent event) - { - ItemStack mainHeldStack = this.getEntity().getHeldItemMainhand(); - int mainHeldStackIndex = this.getSlotFor(mainHeldStack); - - if (this.lastHeldStackIndex != -1) - { - if ((this.lastHeldStackIndex != mainHeldStackIndex || !this.lastHeldStack.isEmpty()) && !ItemStack.areItemStacksEqual(this.lastHeldStack, mainHeldStack)) - { - this.deactivateEquipmentEffects(this.lastHeldStack, Pair.of(this.lastHeldStackIndex, NORMAL_INV_PROVIDER), EffectActivator.WHEN_HELD); - } - - if (mainHeldStack.isEmpty()) - { - this.deactivateEquipmentEffects(this.lastHeldStack, Pair.of(mainHeldStackIndex, NORMAL_INV_PROVIDER), EffectActivator.WHEN_HELD); - - if (this.lastHeldStackIndex != mainHeldStackIndex) - { - for (int i = 0; i < this.getEntity().inventory.getSizeInventory(); i++) - { - this.deactivateEquipmentEffects(this.getEntity().inventory.getStackInSlot(i), Pair.of(this.lastHeldStackIndex, NORMAL_INV_PROVIDER), EffectActivator.WHEN_HELD); - } - } - } - } - - if (!mainHeldStack.isEmpty() && !ItemStack.areItemStacksEqual(this.lastHeldStack, mainHeldStack)) - { - this.activateEquipmentEffects(mainHeldStack, Pair.of(mainHeldStackIndex, NORMAL_INV_PROVIDER), EffectActivator.WHEN_HELD); - } - - this.lastHeldStack = this.getEntity().getHeldItemMainhand(); - this.lastHeldStackIndex = this.getSlotFor(this.lastHeldStack); - - - IAetherStatusEffectPool statusEffectPool = event.player.getCapability(CapabilitiesAether.STATUS_EFFECT_POOL, null); - - if (statusEffectPool == null) - { - return; - } - - final List<Pair<Integer, ItemStack>> updates = this.getEntity().world.isRemote ? null : new ArrayList<>(); - - // Checks what items have been changed in the staging inventory, records them, and then - // fires off to the effect manager - for (int i = 0; i < this.stagingInv.getSizeInventory(); i++) - { - ItemStack oldStack = this.recordedInv.getStackInSlot(i); - ItemStack newStack = this.stagingInv.getStackInSlot(i); - - if (!ItemStack.areItemStacksEqual(oldStack, newStack)) - { - if (!oldStack.isEmpty()) - { - this.deactivateEquipmentEffects(oldStack, Pair.of(i, EQUIPMENT_INV_PROVIDER), EffectActivator.WHEN_EQUIPPED); - - statusEffectPool.resetAllResistances(); - } - - if (!newStack.isEmpty()) - { - this.activateEquipmentEffects(newStack, Pair.of(i, EQUIPMENT_INV_PROVIDER), EffectActivator.WHEN_EQUIPPED); - } - - if (updates != null) - { - updates.add(Pair.of(i, newStack)); - } - - this.recordedInv.setInventorySlotContents(i, newStack.isEmpty() ? ItemStack.EMPTY : newStack.copy()); - } - - if (!newStack.isEmpty()) - { - if (newStack.getItem() instanceof ItemAccessory) - { - ItemAccessory accessory = (ItemAccessory) newStack.getItem(); - - if (!accessory.getStatusEffects().isEmpty()) - { - for (Map.Entry<StatusEffect, Double> effect : accessory.getStatusEffects().entrySet()) - { - applicationTracker.putIfAbsent(newStack, false); - - IAetherStatusEffects actualEffect = statusEffectPool.createEffect(effect.getKey().getEffectType().name, event.player); - - if (!applicationTracker.get(newStack)) - { - statusEffectPool.addResistanceToEffect(actualEffect.getEffectType(), effect.getValue()); - - if (statusEffectPool.getResistanceToEffect(actualEffect.getEffectType()) != 1.0D) - { - applicationTracker.put(newStack, true); - } - } - else - { - if (statusEffectPool.getResistanceToEffect(actualEffect.getEffectType()) == 1.0D) - { - applicationTracker.put(newStack, false); - } - } - } - } - } - } - } - - if (updates != null && !updates.isEmpty()) - { - NetworkingAether.sendPacketToWatching(new PacketEquipment(this.getEntity(), updates), this.getEntity(), true); - } - - this.pools.values().forEach(EquipmentEffectPool::update); - } - - private int getSlotFor(ItemStack stack) - { - for (int i = 0; i < this.getEntity().inventory.mainInventory.size(); ++i) - { - if (!(this.getEntity().inventory.mainInventory.get(i)).isEmpty() && this.stackEqualExact(stack, this.getEntity().inventory.mainInventory.get(i))) - { - return i; - } - } - - return -1; - } - - private boolean stackEqualExact(ItemStack stack1, ItemStack stack2) - { - return stack1.getItem() == stack2.getItem() && (!stack1.getHasSubtypes() || stack1.getMetadata() == stack2.getMetadata()) && ItemStack.areItemStackTagsEqual(stack1, stack2); - } - - @Override - public void write(NBTTagCompound compound) - { - NBTTagCompound equipment = new NBTTagCompound(); - compound.setTag("EquipmentInventory", equipment); - - this.stagingInv.write(equipment); - } - - @Override - public void read(NBTTagCompound compound) - { - if (compound.hasKey("EquipmentInventory")) - { - this.stagingInv.read(compound.getCompoundTag("EquipmentInventory")); - } - } - - /** - * Called when a new equipment item is added to the inventory. - * @param stack The new {@link ItemStack} - * @param inventoryIndexPair The inventory and index of {@param stack} - */ - private void activateEquipmentEffects(ItemStack stack, Pair<Integer, InventoryProvider> inventoryIndexPair, EffectActivator activator) - { - IItemProperties properties = AetherAPI.content().items().getProperties(stack.getItem()); - - if (!properties.getEffectActivators().contains(activator)) - { - return; - } - - properties.getEffectProviders().forEach(provider -> { - EquipmentEffectPool<IEffectProvider> pool = this.pools.computeIfAbsent(provider.getFactory(), (key) -> - new EquipmentEffectPool<>(this.getPlayer(), AetherAPI.content().effects().getFactory(key))); - - IEffectProvider copy = provider.copy(); - - Validate.isTrue(copy != provider, "IEffectProvider#copy() cannot return itself"); - - pool.addInstance(inventoryIndexPair, copy); - }); - } - - /** - * Called when an equipment item is removed from the inventory. - * @param stack The old {@link ItemStack} - * @param inventoryIndexPair The inventory and index of {@param stack} - */ - private void deactivateEquipmentEffects(ItemStack stack, Pair<Integer, InventoryProvider> inventoryIndexPair, EffectActivator activator) - { - IItemProperties properties = AetherAPI.content().items().getProperties(stack.getItem()); - - if (!properties.getEffectActivators().contains(activator)) - { - return; - } - - this.pools.entrySet().removeIf(pair -> { - EquipmentEffectPool<IEffectProvider> pool = pair.getValue(); - pool.removeInstances(inventoryIndexPair); - - return pool.isEmpty(); - }); - } - - @Override - public Optional<IEffectPool<IEffectProvider>> getEffectPool(ResourceLocation id) - { - return Optional.ofNullable(this.pools.get(id)); - } - - /** - * Returns the collection of active effect providers. Not very useful - * for anything other than iteration through effect instance collections. - * - * @return A non-modifiable collection of active effect providers - */ - public Collection<IEffectPool<IEffectProvider>> getActivePools() - { - return Collections.unmodifiableCollection(this.pools.values()); - } - - /** - * Called when the player teleports. Notifies every effect that a teleport has occured. - */ - public void onTeleport() - { - this.pools.values().forEach(EquipmentEffectPool::onTeleport); - } - - @Override - public IInventoryEquipment getInventory() - { - return this.stagingInv; - } - - @Override - public boolean isEffectActive(IEffectFactory<?> effect) - { - Optional<IEffectPool<IEffectProvider>> pool = this.getEffectPool(effect.getIdentifier()); - - return pool.isPresent() && !pool.get().isEmpty(); - } - - @Override - public ResourceLocation getIdentifier() - { - return AetherCore.getResource("equipment"); - } -} diff --git a/src/main/java/com/gildedgames/aether/common/capabilities/entity/player/modules/PlayerHungerModule.java b/src/main/java/com/gildedgames/aether/common/capabilities/entity/player/modules/PlayerHungerModule.java deleted file mode 100644 index 5ebc166ce3..0000000000 --- a/src/main/java/com/gildedgames/aether/common/capabilities/entity/player/modules/PlayerHungerModule.java +++ /dev/null @@ -1,71 +0,0 @@ -package com.gildedgames.aether.common.capabilities.entity.player.modules; - -import com.gildedgames.aether.common.capabilities.entity.player.PlayerAether; -import com.gildedgames.aether.common.capabilities.entity.player.PlayerAetherModule; -import com.gildedgames.aether.common.init.DimensionsAether; -import net.minecraft.potion.Potion; -import net.minecraft.util.FoodStats; -import net.minecraftforge.fml.common.gameevent.TickEvent; -import net.minecraftforge.fml.relauncher.Side; - -public class PlayerHungerModule extends PlayerAetherModule -{ - - private int startHunger; - - public PlayerHungerModule(PlayerAether playerAether) - { - super(playerAether); - } - - private void setFoodData(FoodStats foodStats, int foodLevel, float saturationLevel) - { - foodStats.addStats(1, (saturationLevel - foodStats.getSaturationLevel()) / 2); - foodStats.addStats(foodLevel - foodStats.getFoodLevel(), 0); - } - - private int calcBaselineHunger() - { - if (this.getEntity().isPotionActive(Potion.getPotionFromResourceLocation("hunger"))) - { - return 5; - } - else if (this.getEntity().isPotionActive(Potion.getPotionFromResourceLocation("regeneration"))) - { - return 20; - } - else - { - return 10; - } - } - - @Override - public void tickStart(TickEvent.PlayerTickEvent event) - { - if (this.getEntity().world.provider.getDimensionType() == DimensionsAether.NECROMANCER_TOWER) - { - this.setFoodData(this.getEntity().getFoodStats(), this.calcBaselineHunger(), 1); - this.startHunger = this.getEntity().getFoodStats().getFoodLevel(); - } - } - - @Override - public void tickEnd(TickEvent.PlayerTickEvent event) - { - if (this.getEntity().world.provider.getDimensionType() == DimensionsAether.NECROMANCER_TOWER) - { - if (event.side == Side.SERVER) - { - int foodDiff = this.getEntity().getFoodStats().getFoodLevel() - this.startHunger; - - if (foodDiff > 0) - { - this.getEntity().heal(foodDiff * 0.5F); - } - } - - this.setFoodData(this.getEntity().getFoodStats(), this.calcBaselineHunger(), 1); - } - } -} diff --git a/src/main/java/com/gildedgames/aether/common/capabilities/entity/player/modules/PlayerParachuteModule.java b/src/main/java/com/gildedgames/aether/common/capabilities/entity/player/modules/PlayerParachuteModule.java deleted file mode 100644 index 461e08160c..0000000000 --- a/src/main/java/com/gildedgames/aether/common/capabilities/entity/player/modules/PlayerParachuteModule.java +++ /dev/null @@ -1,161 +0,0 @@ -package com.gildedgames.aether.common.capabilities.entity.player.modules; - -import com.gildedgames.aether.api.player.IPlayerAetherModule; -import com.gildedgames.aether.common.AetherCore; -import com.gildedgames.aether.common.capabilities.entity.player.PlayerAether; -import com.gildedgames.aether.common.capabilities.entity.player.PlayerAetherModule; -import com.gildedgames.aether.common.entities.blocks.EntityParachute; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.util.ResourceLocation; -import net.minecraft.util.math.AxisAlignedBB; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.MathHelper; -import net.minecraft.util.math.Vec3d; -import net.minecraftforge.fml.common.gameevent.TickEvent; - -public class PlayerParachuteModule extends PlayerAetherModule implements IPlayerAetherModule.Serializable -{ - - private boolean isParachuting; - - private boolean parachuteEquipped; - - public ItemStack parachuteItem; - - private EntityParachute.Type type = EntityParachute.Type.COLD; - - private int hitAmnt; - - private boolean prevAllowFlying; - - private int parachuteItemSlot = -1; - - public PlayerParachuteModule(final PlayerAether playerAether) - { - super(playerAether); - } - - @Override - public void tickStart(TickEvent.PlayerTickEvent event) - { - if (this.isParachuting) - { - final int x = MathHelper.floor(this.getEntity().posX); - final int y = MathHelper.floor(this.getEntity().posY); - final int z = MathHelper.floor(this.getEntity().posZ); - - final Vec3d vec3 = this.getEntity().getLookVec(); - - this.getEntity().fallDistance = 0F; - - if (!this.isParachuting) - { - this.hitAmnt = 0; - } - else if (this.getEntity().swingProgressInt >= 4 && this.isParachuting && vec3.y >= 1 && !this.getEntity().onGround) - { - this.hitAmnt++; - } - - if (this.getParachuteType() != EntityParachute.Type.BLUE && (!this.getEntity().world.isAirBlock(new BlockPos(x, y - 1, z)) - || !this.isParachuting) || (this.isParachuting && this.hitAmnt >= 4)) - { - this.setParachuting(false, this.type); - } - } - } - - public void setParachuting(final boolean isParachuting, final EntityParachute.Type type) - { - this.isParachuting = isParachuting; - this.type = type; - } - - public boolean isUnderABlock(final int y) - { - final AxisAlignedBB boundingBox = this.getEntity().getEntityBoundingBox(); - - final BlockPos.MutableBlockPos pos = new BlockPos.MutableBlockPos(); - - for (int x1 = (int) Math.floor(boundingBox.minX); x1 <= (int) Math.ceil(boundingBox.maxX); x1++) - { - for (int z1 = (int) Math.floor(boundingBox.minZ); z1 <= (int) Math.ceil(boundingBox.maxZ); z1++) - { - if (!this.getEntity().world.isAirBlock(pos.setPos(x1, y + 1, z1)) || !this.getEntity().world.isAirBlock(pos.setPos(x1, y + 2, z1))) - { - return true; - } - } - } - - return false; - } - - public void parachuteEquipped(boolean equipped) - { - this.parachuteEquipped = equipped; - } - - public boolean getParachuteEquipped() - { - return this.parachuteEquipped; - } - - public void parachuteItem(ItemStack stack) - { - this.parachuteItem = stack; - } - - public int getParachuteItemSlot() - { - return this.parachuteItemSlot; - } - - public void parachuteItemSlot(int slot) - { - this.parachuteItemSlot = slot; - } - - public ItemStack getParachuteItem() - { - return this.parachuteItem; - } - - public EntityParachute.Type getParachuteType() - { - return this.type; - } - - public boolean isParachuting() - { - return this.isParachuting; - } - - @Override - public void write(final NBTTagCompound output) - { - final NBTTagCompound root = new NBTTagCompound(); - output.setTag("Parachute", root); - - root.setBoolean("parachuting", this.isParachuting); - root.setInteger("type", this.type.ordinal()); - root.setBoolean("prevAllowFlying", this.prevAllowFlying); - } - - @Override - public void read(final NBTTagCompound input) - { - final NBTTagCompound root = input.getCompoundTag("Parachute"); - - this.isParachuting = input.getBoolean("parachuting"); - this.type = EntityParachute.Type.fromOrdinal(input.getInteger("type")); - this.prevAllowFlying = input.getBoolean("prevAllowFlying"); - } - - @Override - public ResourceLocation getIdentifier() - { - return AetherCore.getResource("parachute"); - } -} diff --git a/src/main/java/com/gildedgames/aether/common/capabilities/entity/player/modules/PlayerPatronRewardModule.java b/src/main/java/com/gildedgames/aether/common/capabilities/entity/player/modules/PlayerPatronRewardModule.java deleted file mode 100644 index 917ee0c626..0000000000 --- a/src/main/java/com/gildedgames/aether/common/capabilities/entity/player/modules/PlayerPatronRewardModule.java +++ /dev/null @@ -1,76 +0,0 @@ -package com.gildedgames.aether.common.capabilities.entity.player.modules; - -import com.gildedgames.aether.api.AetherAPI; -import com.gildedgames.aether.api.net.data.UserFeatures; -import com.gildedgames.aether.common.AetherCore; -import com.gildedgames.aether.common.capabilities.entity.player.PlayerAether; -import com.gildedgames.aether.common.capabilities.entity.player.PlayerAetherModule; -import com.gildedgames.aether.common.patron.PatronChoices; -import net.minecraftforge.fml.common.gameevent.TickEvent; - -import java.util.concurrent.Future; - -public class PlayerPatronRewardModule extends PlayerAetherModule -{ - private static final boolean ENABLED = false; - - private final PatronChoices choices; - - private UserFeatures features = new UserFeatures(); - - private Future<UserFeatures> featuresFuture; - - private boolean firstTick = true; - - public PlayerPatronRewardModule(PlayerAether playerAether) - { - super(playerAether); - - this.choices = new PatronChoices(this, AetherAPI.content().patronRewards()); - } - - public PatronChoices getChoices() - { - return this.choices; - } - - public UserFeatures getFeatures() - { - return this.features; - } - - @Override - public void tickStart(TickEvent.PlayerTickEvent event) - { - if (!ENABLED) - { - return; - } - - if (this.firstTick) - { - this.firstTick = false; - - this.featuresFuture = AetherAPI.services().gildedGamesAccountApi().retrieveUserFeatures(this.getEntity().getGameProfile().getId()); - } - - if (this.featuresFuture != null && this.featuresFuture.isDone()) - { - try - { - UserFeatures features = this.featuresFuture.get(); - - if (features != null) - { - this.features = features; - } - } - catch (Exception e) - { - AetherCore.LOGGER.warn("Failed to retrieve Patreon reward status", e); - } - - this.featuresFuture = null; - } - } -} diff --git a/src/main/java/com/gildedgames/aether/common/capabilities/entity/player/modules/PlayerPreventDropsModule.java b/src/main/java/com/gildedgames/aether/common/capabilities/entity/player/modules/PlayerPreventDropsModule.java deleted file mode 100644 index 2826fc7f4b..0000000000 --- a/src/main/java/com/gildedgames/aether/common/capabilities/entity/player/modules/PlayerPreventDropsModule.java +++ /dev/null @@ -1,151 +0,0 @@ -package com.gildedgames.aether.common.capabilities.entity.player.modules; - -import com.gildedgames.aether.api.player.IPlayerAetherModule; -import com.gildedgames.aether.common.AetherCore; -import com.gildedgames.aether.common.capabilities.entity.player.PlayerAether; -import com.gildedgames.aether.common.capabilities.entity.player.PlayerAetherModule; -import com.gildedgames.aether.common.init.DimensionsAether; -import com.gildedgames.aether.common.items.IDropOnDeath; -import com.gildedgames.orbis.lib.util.io.NBTFunnel; -import com.google.common.collect.Lists; -import net.minecraft.entity.item.EntityItem; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemBlock; -import net.minecraft.item.ItemDoor; -import net.minecraft.item.ItemFood; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.util.NonNullList; -import net.minecraft.util.ResourceLocation; -import net.minecraftforge.event.entity.living.LivingDeathEvent; -import net.minecraftforge.event.entity.player.PlayerDropsEvent; -import net.minecraftforge.fml.common.gameevent.PlayerEvent; -import net.minecraftforge.fml.common.gameevent.TickEvent; - -import java.util.List; - -public class PlayerPreventDropsModule extends PlayerAetherModule implements IPlayerAetherModule.Serializable -{ - - public final NonNullList<ItemStack> mainInventory = NonNullList.withSize(36, ItemStack.EMPTY); - - public final NonNullList<ItemStack> armorInventory = NonNullList.withSize(4, ItemStack.EMPTY); - - public final NonNullList<ItemStack> offHandInventory = NonNullList.withSize(1, ItemStack.EMPTY); - - public PlayerPreventDropsModule(PlayerAether playerAether) - { - super(playerAether); - } - - public static boolean shouldKeepOnDeath(ItemStack stack) - { - return !(stack.getItem() instanceof ItemBlock) && !(stack.getItem() instanceof ItemDoor) && !(stack.getItem() instanceof ItemFood) && !(stack - .getItem() instanceof IDropOnDeath); - } - - @Override - public void onDeath(LivingDeathEvent event) - { - EntityPlayer player = (EntityPlayer) event.getEntity(); - - if (player.world.provider.getDimensionType() == DimensionsAether.AETHER && !player.getEntityWorld().getGameRules().getBoolean("keepInventory")) - { - this.setIfShouldKeep(player.inventory.mainInventory, this.mainInventory, true); - this.setIfShouldKeep(player.inventory.armorInventory, this.armorInventory, true); - this.setIfShouldKeep(player.inventory.offHandInventory, this.offHandInventory, true); - } - } - - public void setIfShouldKeep(List<ItemStack> from, List<ItemStack> to, boolean shouldKeepCheck) - { - for (int i = 0; i < from.size(); i++) - { - ItemStack stack = from.get(i); - - if (!shouldKeepCheck || shouldKeepOnDeath(stack)) - { - to.set(i, stack); - } - } - } - - @Override - public void onDrops(PlayerDropsEvent event) - { - if (event.getEntityPlayer().world.provider.getDimensionType() == DimensionsAether.AETHER && !event.getEntityPlayer().getEntityWorld().getGameRules() - .getBoolean("keepInventory")) - { - List<EntityItem> toRemove = Lists.newArrayList(); - - for (EntityItem item : event.getDrops()) - { - if (item != null && shouldKeepOnDeath(item.getItem())) - { - toRemove.add(item); - } - } - - event.getDrops().removeAll(toRemove); - } - } - - @Override - public void onRespawn(PlayerEvent.PlayerRespawnEvent event) - { - EntityPlayer player = event.player; - - if (player.world.provider.getDimensionType() == DimensionsAether.AETHER && !player.getEntityWorld().getGameRules().getBoolean("keepInventory")) - { - this.setIfShouldKeep(this.mainInventory, player.inventory.mainInventory, false); - this.setIfShouldKeep(this.armorInventory, player.inventory.armorInventory, false); - this.setIfShouldKeep(this.offHandInventory, player.inventory.offHandInventory, false); - - this.mainInventory.clear(); - this.armorInventory.clear(); - this.offHandInventory.clear(); - } - } - - @Override - public void tickStart(TickEvent.PlayerTickEvent event) - { - - } - - @Override - public void tickEnd(TickEvent.PlayerTickEvent event) - { - - } - - @Override - public void write(NBTTagCompound nbtTagCompound) - { - NBTFunnel funnel = new NBTFunnel(nbtTagCompound); - - funnel.setStackList("mainInventory", this.mainInventory); - funnel.setStackList("armorInventory", this.armorInventory); - funnel.setStackList("offHandInventory", this.offHandInventory); - } - - @Override - public void read(NBTTagCompound nbtTagCompound) - { - NBTFunnel funnel = new NBTFunnel(nbtTagCompound); - - List<ItemStack> mainInventory = funnel.getStackList("mainInventory"); - List<ItemStack> armorInventory = funnel.getStackList("armorInventory"); - List<ItemStack> offHandInventory = funnel.getStackList("offHandInventory"); - - this.setIfShouldKeep(mainInventory, this.mainInventory, false); - this.setIfShouldKeep(armorInventory, this.armorInventory, false); - this.setIfShouldKeep(offHandInventory, this.offHandInventory, false); - } - - @Override - public ResourceLocation getIdentifier() - { - return AetherCore.getResource("drops"); - } -} diff --git a/src/main/java/com/gildedgames/aether/common/capabilities/entity/player/modules/PlayerProgressModule.java b/src/main/java/com/gildedgames/aether/common/capabilities/entity/player/modules/PlayerProgressModule.java deleted file mode 100644 index 33e2b144f4..0000000000 --- a/src/main/java/com/gildedgames/aether/common/capabilities/entity/player/modules/PlayerProgressModule.java +++ /dev/null @@ -1,160 +0,0 @@ -package com.gildedgames.aether.common.capabilities.entity.player.modules; - -import com.gildedgames.aether.api.player.IPlayerAetherModule; -import com.gildedgames.aether.common.AetherCore; -import com.gildedgames.aether.client.gui.container.guidebook.discovery.DiscoveryTab; -import com.gildedgames.aether.common.capabilities.entity.player.PlayerAether; -import com.gildedgames.aether.common.capabilities.entity.player.PlayerAetherModule; -import com.gildedgames.aether.common.network.NetworkingAether; -import com.gildedgames.aether.common.network.packets.PacketDiscoveryTabType; -import com.gildedgames.aether.common.network.packets.PacketProgressBooleanData; -import com.gildedgames.aether.common.network.packets.PacketTalkedTo; -import com.gildedgames.orbis.lib.util.io.NBTFunnel; -import com.google.common.collect.Maps; -import net.minecraft.entity.player.EntityPlayerMP; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.util.ResourceLocation; -import net.minecraft.util.math.BlockPos; - -import java.util.Map; - -public class PlayerProgressModule extends PlayerAetherModule implements IPlayerAetherModule.Serializable -{ - public boolean hasDiedInAether; - - private DiscoveryTab.DiscoveryTabType openedDiscoveryTabType = DiscoveryTab.DiscoveryTabType.BESTIARY; - - private Map<ResourceLocation, Boolean> hasTalkedTo = Maps.newHashMap(); - - private Map<String, Boolean> booleanData = Maps.newHashMap(); - - private boolean returnedToBed; - - private BlockPos beforeReturnToBed; - - public PlayerProgressModule(final PlayerAether playerAether) - { - super(playerAether); - } - - public DiscoveryTab.DiscoveryTabType getOpenedDiscoveryTabType() - { - return this.openedDiscoveryTabType; - } - - public void setOpenedDiscoveryTabType(final DiscoveryTab.DiscoveryTabType type) - { - this.openedDiscoveryTabType = type; - - if (this.getWorld().isRemote) - { - NetworkingAether.sendPacketToServer(new PacketDiscoveryTabType(type)); - } - } - - public void setBoolean(final String key, final Boolean bool) - { - this.booleanData.put(key, bool); - - if (!this.getWorld().isRemote) - { - NetworkingAether.sendPacketToPlayer(new PacketProgressBooleanData(key, bool), (EntityPlayerMP) this.getEntity()); - } - } - - public boolean getBoolean(String key) - { - if (!this.booleanData.containsKey(key)) - { - return false; - } - - return this.booleanData.get(key); - } - - public boolean hasDiedInAether() - { - return this.hasDiedInAether; - } - - public void setHasDiedInAether(boolean flag) - { - this.hasDiedInAether = flag; - } - - public void setHasTalkedTo(ResourceLocation speaker, boolean flag) - { - this.hasTalkedTo.put(speaker, flag); - - if (!this.getWorld().isRemote) - { - NetworkingAether.sendPacketToPlayer(new PacketTalkedTo(speaker, flag), (EntityPlayerMP) this.getEntity()); - } - } - - public boolean hasTalkedTo(ResourceLocation speaker) - { - if (!this.hasTalkedTo.containsKey(speaker)) - { - return false; - } - - return this.hasTalkedTo.get(speaker); - } - - public boolean hasReturnedToBed() - { - return this.returnedToBed; - } - - public void setHasReturnedToBed(boolean flag) - { - this.returnedToBed = flag; - } - - public BlockPos getBeforeReturnToBed() - { - return this.beforeReturnToBed; - } - - public void setBeforeReturnToBed(BlockPos blockPos) - { - this.beforeReturnToBed = blockPos; - } - - @Override - public void write(NBTTagCompound tag) - { - NBTFunnel funnel = new NBTFunnel(tag); - - tag.setBoolean("hasDiedInAether", this.hasDiedInAether); - tag.setBoolean("returnedToBed", this.returnedToBed); - funnel.setMap("hasTalkedTo", this.hasTalkedTo, NBTFunnel.LOC_SETTER, NBTFunnel.BOOLEAN_SETTER); - funnel.setPos("beforeReturnToBed", this.beforeReturnToBed); - funnel.setMap("booleanData", this.booleanData, NBTFunnel.STRING_SETTER, NBTFunnel.BOOLEAN_SETTER); - tag.setString("openedDiscoveryTabType", this.openedDiscoveryTabType.toString()); - } - - @Override - public void read(NBTTagCompound tag) - { - NBTFunnel funnel = new NBTFunnel(tag); - - this.hasDiedInAether = tag.getBoolean("hasDiedInAether"); - this.returnedToBed = tag.getBoolean("returnedToBed"); - this.hasTalkedTo = funnel.getMap("hasTalkedTo", NBTFunnel.LOC_GETTER, NBTFunnel.BOOLEAN_GETTER); - this.beforeReturnToBed = funnel.getPos("beforeReturnToBed"); - this.booleanData = funnel.getMap("booleanData", NBTFunnel.STRING_GETTER, NBTFunnel.BOOLEAN_GETTER); - - if (tag.hasKey("openedDiscoveryTabType")) - { - this.openedDiscoveryTabType = DiscoveryTab.DiscoveryTabType.valueOf(tag.getString("openedDiscoveryTabType")); - } - } - - @Override - public ResourceLocation getIdentifier() - { - return AetherCore.getResource("progress"); - } -} diff --git a/src/main/java/com/gildedgames/aether/common/capabilities/entity/player/modules/PlayerRollMovementModule.java b/src/main/java/com/gildedgames/aether/common/capabilities/entity/player/modules/PlayerRollMovementModule.java deleted file mode 100644 index 8ee8d578c9..0000000000 --- a/src/main/java/com/gildedgames/aether/common/capabilities/entity/player/modules/PlayerRollMovementModule.java +++ /dev/null @@ -1,184 +0,0 @@ -package com.gildedgames.aether.common.capabilities.entity.player.modules; - -import com.gildedgames.aether.common.capabilities.entity.player.PlayerAether; -import com.gildedgames.aether.common.capabilities.entity.player.PlayerAetherModule; -import com.gildedgames.aether.common.network.packets.PacketSpecialMovement; -import com.gildedgames.aether.common.util.helpers.AetherHelper; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.util.math.AxisAlignedBB; -import net.minecraft.util.math.MathHelper; -import net.minecraft.util.math.Vec3d; -import net.minecraftforge.fml.common.gameevent.TickEvent; - -public class PlayerRollMovementModule extends PlayerAetherModule -{ - private static final int MAX_ROLLING_TICKS = 12, ROLL_COOLDOWN_TICKS = 10; - - private boolean isRolling; - - private int ticksRolling, rollCooldown; - - private float startRotationYaw, rollingRotationYaw; - - private float prevStepHeight, prevEyeHeight, prevHeight; - - public PlayerRollMovementModule(final PlayerAether playerAether) - { - super(playerAether); - } - - public boolean isRolling() - { - return this.isRolling; - } - - public int getTicksRolling() - { - return this.ticksRolling; - } - - public int getTicksRollingMax() - { - return MAX_ROLLING_TICKS; - } - - private void setEntityHeight(float height) - { - EntityPlayer p = this.getEntity(); - - float w = p.width / 2f; - - p.setEntityBoundingBox(new AxisAlignedBB(p.posX - w, p.posY, p.posZ - w, p.posX + w, p.posY + height, p.posZ + w)); - p.height = height; - p.eyeHeight = (height / this.prevHeight) * this.prevEyeHeight; - } - - protected final Vec3d getVectorForRotation(float yaw) - { - float f = MathHelper.cos(-yaw * 0.017453292F - (float) Math.PI); - float f1 = MathHelper.sin(-yaw * 0.017453292F - (float) Math.PI); - return new Vec3d((double) (f1 * -1F), 0, (double) (f * -1F)); - } - - public boolean canRoll() - { - return AetherHelper.isEnabled(this.getWorld()) && this.rollCooldown <= 0 && !this.getEntity().isSneaking() && this.getEntity().onGround; - } - - public float getDamageReduction(float inAmount) - { - return inAmount * (Math.abs(this.ticksRolling / (float) (MAX_ROLLING_TICKS) - 0.5f) * 2F); - } - - public void startRolling(PacketSpecialMovement.Action action) - { - this.startRotationYaw = this.getEntity().rotationYaw; - - final float angle; - - if (action == PacketSpecialMovement.Action.ROLL_FORWARD) - { - angle = 0F; - } - else if (action == PacketSpecialMovement.Action.ROLL_BACK) - { - angle = 180F; - } - else if (action == PacketSpecialMovement.Action.ROLL_LEFT) - { - angle = -90F; - } - else if (action == PacketSpecialMovement.Action.ROLL_RIGHT) - { - angle = 90F; - } - else - { - return; - } - - this.rollingRotationYaw = this.startRotationYaw + angle; - - if (!this.canRoll()) - { - return; - } - - this.prevStepHeight = this.getEntity().stepHeight; - this.prevHeight = this.getEntity().height; - this.prevEyeHeight = this.getEntity().getEyeHeight(); - this.isRolling = true; - this.ticksRolling = 0; - this.rollCooldown = ROLL_COOLDOWN_TICKS; - } - - @Override - public void tickStart(TickEvent.PlayerTickEvent event) - { - if (this.isRolling) - { - if (this.ticksRolling <= MAX_ROLLING_TICKS) - { - this.getEntity().stepHeight = 1.0F; - - if (this.getEntity().onGround) - { - Vec3d vec = this.getVectorForRotation(this.getEntity().rotationYaw - this.startRotationYaw + this.rollingRotationYaw); - - double speed = Math.max(0.0D, Math.pow(1.25D, this.ticksRolling / 8f) - 1) + 0.25D; - - if (this.ticksRolling > MAX_ROLLING_TICKS * .7F && !this.getEntity().isSprinting()) - { - if (this.ticksRolling == MAX_ROLLING_TICKS) - { - speed = 0.05f; - } - else - { - speed /= (this.ticksRolling / (float) MAX_ROLLING_TICKS) * 5F; - } - } - - this.getEntity().motionX = (vec.x) * speed; - this.getEntity().motionZ = (vec.z) * speed; - this.getEntity().velocityChanged = true; - } - - this.ticksRolling++; - } - else - { - this.isRolling = false; - this.ticksRolling = 0; - - this.getEntity().stepHeight = this.prevStepHeight; - } - } - else if (this.rollCooldown > 0) - { - this.rollCooldown--; - } - } - - @Override - public void tickEnd(TickEvent.PlayerTickEvent event) - { - if (this.isRolling) - { - if (this.ticksRolling <= MAX_ROLLING_TICKS) - { - float newHeight = MathHelper - .clamp(this.prevHeight / 4F + this.prevHeight * (Math.abs(this.ticksRolling / (float) (MAX_ROLLING_TICKS) - 0.5F)), - this.prevHeight / 2F, this.prevHeight); - - this.setEntityHeight(newHeight); - } - else - { - this.setEntityHeight(this.prevHeight); - this.getEntity().eyeHeight = this.prevEyeHeight; - } - } - } - -} diff --git a/src/main/java/com/gildedgames/aether/common/capabilities/entity/player/modules/PlayerSectorModule.java b/src/main/java/com/gildedgames/aether/common/capabilities/entity/player/modules/PlayerSectorModule.java deleted file mode 100644 index 40c754ca64..0000000000 --- a/src/main/java/com/gildedgames/aether/common/capabilities/entity/player/modules/PlayerSectorModule.java +++ /dev/null @@ -1,235 +0,0 @@ -package com.gildedgames.aether.common.capabilities.entity.player.modules; - -import com.gildedgames.aether.api.world.preparation.IPrepManager; -import com.gildedgames.aether.api.world.preparation.IPrepRegistryEntry; -import com.gildedgames.aether.api.world.preparation.IPrepSector; -import com.gildedgames.aether.common.capabilities.entity.player.PlayerAether; -import com.gildedgames.aether.common.capabilities.entity.player.PlayerAetherModule; -import com.gildedgames.aether.common.world.preparation.PrepHelper; -import com.gildedgames.orbis.lib.util.ChunkMap; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraftforge.fml.common.gameevent.TickEvent; - -import java.util.ArrayList; -import java.util.List; -import java.util.concurrent.ExecutionException; -import java.util.concurrent.Future; - -public class PlayerSectorModule extends PlayerAetherModule -{ - private final ChunkMap<WatchedSector> map = new ChunkMap<>(); - - private Future<IPrepSector> waiting; - - public PlayerSectorModule(PlayerAether playerAether) - { - super(playerAether); - } - - @Override - public void tickStart(TickEvent.PlayerTickEvent event) - { - if (this.getWorld().isRemote) - { - return; - } - - this.update(); - this.processNext(); - } - - private void update() - { - for (WatchedSector loadEntry : this.map.getValues()) - { - loadEntry.updateDistance(this.getEntity()); - loadEntry.watching = false; - - if (loadEntry.sector != null) - { - loadEntry.sector.removeWatchingPlayer(this.getEntity().getEntityId()); - } - } - - IPrepManager manager = PrepHelper.getManager(this.getWorld()); - - if (manager == null) - { - return; - } - - int radius = 80; - - IPrepRegistryEntry entry = manager.getRegistryEntry(); - - int chunkX = ((int) this.getEntity().posX) >> 4; - int chunkY = ((int) this.getEntity().posZ) >> 4; - - int minChunkX = chunkX - radius; - int minChunkY = chunkY - radius; - - int maxChunkX = chunkX + radius; - int maxChunkY = chunkY + radius; - - int minSectorX = Math.floorDiv(minChunkX, entry.getSectorChunkArea()); - int minSectorY = Math.floorDiv(minChunkY, entry.getSectorChunkArea()); - - int maxSectorX = Math.floorDiv(maxChunkX, entry.getSectorChunkArea()); - int maxSectorZ = Math.floorDiv(maxChunkY, entry.getSectorChunkArea()); - - for (int x = minSectorX; x < maxSectorX; x++) - { - for (int z = minSectorY; z < maxSectorZ; z++) - { - if (!this.map.containsKey(x, z)) - { - WatchedSector watched = new WatchedSector(entry, x, z); - watched.updateDistance(this.getEntity()); - watched.watching = true; - - this.map.put(x, z, watched); - } - else - { - WatchedSector watched = this.map.get(x, z); - watched.watching = true; - } - } - } - - if (this.waiting == null) - { - WatchedSector closest = null; - - for (WatchedSector watched : this.map.getValues()) - { - if (!watched.watching || watched.sector != null) - { - continue; - } - - if (closest == null) - { - closest = watched; - } - else - { - if (watched.distance < closest.distance) - { - closest = watched; - } - } - } - - if (closest != null) - { - this.waiting = manager.getAccess().provideSector(closest.sectorX, closest.sectorZ, true); - } - } - - List<WatchedSector> unload = new ArrayList<>(); - - for (WatchedSector loadEntry : this.map.getValues()) - { - if (!loadEntry.watching) - { - unload.add(loadEntry); - } - } - - for (WatchedSector loadEntry : unload) - { - if (loadEntry.sector != null) - { - loadEntry.sector.removeWatchingPlayer(this.getEntity().getEntityId()); - } - - this.map.remove(loadEntry.sectorX, loadEntry.sectorZ); - } - } - - public void releaseAll() - { - for (WatchedSector loadEntry : this.map.getValues()) - { - loadEntry.watching = false; - - if (loadEntry.sector != null) - { - loadEntry.sector.removeWatchingPlayer(this.getEntity().getEntityId()); - } - } - - this.map.clear(); - } - - private void processNext() - { - if (this.waiting != null && this.waiting.isDone()) - { - try - { - IPrepSector sector = this.waiting.get(); - - WatchedSector watched = this.map.get(sector.getData().getSectorX(), sector.getData().getSectorY()); - - if (watched == null) - { - return; - } - - watched.sector = sector; - - IPrepManager manager = PrepHelper.getManager(this.getWorld()); - - if (manager == null) - { - return; - } - - if (watched.watching) - { - sector.addWatchingPlayer(this.getEntity().getEntityId()); - - manager.getAccess().retainSector(sector); - } - } - catch (InterruptedException | ExecutionException e) - { - throw new RuntimeException("Exception while generating AOT sector for player", e); - } - finally - { - this.waiting = null; - } - } - } - - private class WatchedSector - { - private final int sectorX, sectorZ; - - private IPrepSector sector; - - private final IPrepRegistryEntry entry; - - private boolean watching; - - private double distance; - - public WatchedSector(IPrepRegistryEntry entry, int sectorX, int sectorZ) - { - this.entry = entry; - this.sectorX = sectorX; - this.sectorZ = sectorZ; - } - - public void updateDistance(EntityPlayer player) - { - double x = ((this.sectorX * this.entry.getSectorChunkArea()) + (this.entry.getSectorChunkArea() / 2.0)) * 16.0; - double z = ((this.sectorZ * this.entry.getSectorChunkArea()) + (this.entry.getSectorChunkArea() / 2.0)) * 16.0; - - this.distance = player.getDistance(x, player.posY, z); - } - } -} diff --git a/src/main/java/com/gildedgames/aether/common/capabilities/entity/player/modules/PlayerSpecialEquipmentModule.java b/src/main/java/com/gildedgames/aether/common/capabilities/entity/player/modules/PlayerSpecialEquipmentModule.java deleted file mode 100644 index 3cd1ba0c26..0000000000 --- a/src/main/java/com/gildedgames/aether/common/capabilities/entity/player/modules/PlayerSpecialEquipmentModule.java +++ /dev/null @@ -1,81 +0,0 @@ -package com.gildedgames.aether.common.capabilities.entity.player.modules; - -import com.gildedgames.aether.api.entity.damage.DamageTypeAttributes; -import com.gildedgames.aether.client.gui.container.guidebook.GuiGuidebookInventory; -import com.gildedgames.aether.common.AetherCore; -import com.gildedgames.aether.common.capabilities.entity.player.PlayerAether; -import com.gildedgames.aether.common.capabilities.entity.player.PlayerAetherModule; -import com.gildedgames.aether.common.capabilities.item.effects.stats.StatEffectFactory; -import com.gildedgames.aether.common.items.armor.ItemAetherGloves; -import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.inventory.GuiInventory; -import net.minecraft.entity.SharedMonsterAttributes; -import net.minecraft.entity.ai.attributes.AttributeModifier; -import net.minecraft.entity.ai.attributes.IAttributeInstance; -import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.item.ItemStack; -import net.minecraftforge.fml.common.gameevent.TickEvent; - -import java.util.UUID; - -public class PlayerSpecialEquipmentModule extends PlayerAetherModule -{ - public boolean hasOpenScreen = false; - - public PlayerSpecialEquipmentModule(PlayerAether playerAether) - { - super(playerAether); - } - - @Override - public void tickStart(TickEvent.PlayerTickEvent event) - { - this.applyGloveAbility(event); - } - - private void applyGloveAbility(TickEvent.PlayerTickEvent event) - { - final ItemStack gloveStack = PlayerAether.getPlayer(event.player).getModule(PlayerEquipmentModule.class).getInventory().getStackInSlot(2); - - final UUID GLOVE_MODIFIERS = UUID.fromString("1A1D30BD-CF8E-4996-B76A-5C139A8F9685"); - - AttributeModifier ATTACK_SPEED = new AttributeModifier(GLOVE_MODIFIERS, "Attack speed modifier", 0, StatEffectFactory.StatProvider.OP_ADD); - - IAttributeInstance attackSpeed = event.player.getEntityAttribute(SharedMonsterAttributes.ATTACK_SPEED); - - if (AetherCore.isClient()) - { - this.hasOpenScreen = Minecraft.getMinecraft().currentScreen != null; - } - - if (!event.player.getHeldItemMainhand().isEmpty() || gloveStack.isEmpty()) - { - if (attackSpeed.getModifier(ATTACK_SPEED.getID()) != null) - { - attackSpeed.setBaseValue(4.0D); - attackSpeed.removeModifier(ATTACK_SPEED); - } - } - else if (event.player.getHeldItemMainhand().isEmpty() && gloveStack.getItem() instanceof ItemAetherGloves && !gloveStack.isEmpty()) - { - double newAttackSpeed = ((ItemAetherGloves) gloveStack.getItem()).getAttackSpeed(); - - if (this.hasOpenScreen) - { - if (attackSpeed.getModifier(ATTACK_SPEED.getID()) != null) - { - attackSpeed.setBaseValue(4.0D); - attackSpeed.removeModifier(ATTACK_SPEED); - } - } - else - { - if (!attackSpeed.hasModifier(ATTACK_SPEED)) - { - attackSpeed.setBaseValue(newAttackSpeed); - attackSpeed.applyModifier(ATTACK_SPEED); - } - } - } - } -} diff --git a/src/main/java/com/gildedgames/aether/common/capabilities/entity/player/modules/PlayerSwetTrackerModule.java b/src/main/java/com/gildedgames/aether/common/capabilities/entity/player/modules/PlayerSwetTrackerModule.java deleted file mode 100644 index 856aad51e8..0000000000 --- a/src/main/java/com/gildedgames/aether/common/capabilities/entity/player/modules/PlayerSwetTrackerModule.java +++ /dev/null @@ -1,161 +0,0 @@ -package com.gildedgames.aether.common.capabilities.entity.player.modules; - -import com.gildedgames.aether.api.player.IPlayerAetherModule; -import com.gildedgames.aether.common.AetherCore; -import com.gildedgames.aether.common.capabilities.entity.player.PlayerAether; -import com.gildedgames.aether.common.capabilities.entity.player.PlayerAetherModule; -import com.gildedgames.aether.common.entities.monsters.EntitySwet; -import com.gildedgames.aether.common.util.helpers.EntityUtil; -import com.google.common.collect.Lists; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.nbt.NBTTagList; -import net.minecraft.util.ResourceLocation; -import net.minecraftforge.fml.common.gameevent.TickEvent; - -import java.util.Iterator; -import java.util.List; - -public class PlayerSwetTrackerModule extends PlayerAetherModule implements IPlayerAetherModule.Serializable -{ - - public static final int MAX_SWET_COUNT = 3; - - private final List<EntitySwet> swets = Lists.newArrayList(); - - public PlayerSwetTrackerModule(final PlayerAether playerAether) - { - super(playerAether); - } - - public List<EntitySwet> getLatchedSwets() - { - return this.swets; - } - - public void detachSwets() - { - if (!this.getEntity().world.isRemote) - { - for (final EntitySwet swet : this.swets) - { - swet.setFoodSaturation(0); - this.spawnSwet(swet); - } - } - - this.swets.clear(); - } - - public void detachSwet(final EntitySwet swet) - { - this.swets.remove(swet); - this.spawnSwet(swet); - } - - public void spawnSwet(final EntitySwet swet) - { - if (!this.getEntity().world.isRemote) - { - swet.setPosition(this.getEntity().posX, this.getEntity().posY, this.getEntity().posZ); - - //When the server loads the swet from nbt with read() it is created in dimension 0, because the player has not loaded yet - int dimension = this.getEntity().dimension; - if (swet.dimension != dimension) - { - swet.changeDimension(dimension); - } - else - { - this.getEntity().world.spawnEntity(swet); - } - } - } - - public boolean canLatchOn() - { - return this.swets.size() < PlayerSwetTrackerModule.MAX_SWET_COUNT; - } - - public void latchSwet(final EntitySwet swet) - { - if (!this.canLatchOn()) - { - return; - } - - this.swets.add(EntityUtil.clone(swet)); - - this.getEntity().world.removeEntity(swet); - } - - @Override - public void tickStart(TickEvent.PlayerTickEvent event) - { - final EntityPlayer player = this.getEntity(); - - if (player.isInWater()) - { - this.detachSwets(); - } - - final Iterator<EntitySwet> it = this.swets.iterator(); - - while (it.hasNext()) - { - final EntitySwet swet = it.next(); - - if (swet.processSucking(this.getEntity())) - { - it.remove(); - this.spawnSwet(swet); - } - } - } - - @Override - public void tickEnd(TickEvent.PlayerTickEvent event) - { - - } - - @Override - public void write(final NBTTagCompound output) - { - final NBTTagList list = new NBTTagList(); - - for (final EntitySwet swet : this.swets) - { - final NBTTagCompound tag = new NBTTagCompound(); - - swet.writeToNBT(tag); - - list.appendTag(tag); - } - - output.setTag("swets", list); - } - - @Override - public void read(final NBTTagCompound input) - { - final NBTTagList list = input.getTagList("swets", 10); - - for (int i = 0; i < list.tagCount(); i++) - { - final NBTTagCompound compound = list.getCompoundTagAt(i); - compound.removeTag("Dimension"); - - final EntitySwet swet = new EntitySwet(this.getEntity().getEntityWorld()); - swet.readFromNBT(compound); - - this.swets.add(swet); - } - } - - @Override - public ResourceLocation getIdentifier() - { - return AetherCore.getResource("swet"); - } -} \ No newline at end of file diff --git a/src/main/java/com/gildedgames/aether/common/capabilities/entity/player/modules/PlayerTeleportingModule.java b/src/main/java/com/gildedgames/aether/common/capabilities/entity/player/modules/PlayerTeleportingModule.java deleted file mode 100644 index 756e763739..0000000000 --- a/src/main/java/com/gildedgames/aether/common/capabilities/entity/player/modules/PlayerTeleportingModule.java +++ /dev/null @@ -1,357 +0,0 @@ -package com.gildedgames.aether.common.capabilities.entity.player.modules; - -import com.gildedgames.aether.api.player.IPlayerAetherModule; -import com.gildedgames.aether.api.registrar.SoundsAether; -import com.gildedgames.aether.client.events.listeners.gui.GuiLoadingListener; -import com.gildedgames.aether.client.gui.misc.GuiIntro; -import com.gildedgames.aether.common.AetherCore; -import com.gildedgames.aether.common.capabilities.entity.player.PlayerAether; -import com.gildedgames.aether.common.capabilities.entity.player.PlayerAetherModule; -import com.gildedgames.aether.common.events.PostAetherTravelEvent; -import com.gildedgames.aether.common.init.DimensionsAether; -import com.gildedgames.aether.common.init.InstancesAether; -import com.gildedgames.aether.common.network.NetworkingAether; -import com.gildedgames.aether.common.network.packets.PacketSetPlayedIntro; -import com.gildedgames.aether.common.util.helpers.IslandHelper; -import com.gildedgames.aether.common.world.instances.necromancer_tower.NecromancerTowerInstanceHelper; -import com.gildedgames.orbis.lib.OrbisLib; -import com.gildedgames.orbis.lib.util.TeleporterGeneric; -import com.gildedgames.orbis.lib.util.io.NBTFunnel; -import com.gildedgames.orbis.lib.util.mc.BlockPosDimension; -import com.gildedgames.orbis.lib.world.instances.IInstance; -import com.gildedgames.orbis.lib.world.instances.IPlayerInstances; -import net.minecraft.client.Minecraft; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.EntityPlayerMP; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.server.MinecraftServer; -import net.minecraft.server.management.PlayerList; -import net.minecraft.util.ResourceLocation; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.MathHelper; -import net.minecraft.world.Teleporter; -import net.minecraft.world.World; -import net.minecraft.world.WorldServer; -import net.minecraftforge.common.MinecraftForge; -import net.minecraftforge.fml.common.FMLCommonHandler; -import net.minecraftforge.fml.common.gameevent.TickEvent; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; - -public class PlayerTeleportingModule extends PlayerAetherModule implements IPlayerAetherModule.Serializable -{ - public static final int TELEPORT_DELAY = 80; - - private boolean isTeleportCharging; - - private BlockPosDimension nonAetherPos, aetherPos; - - private boolean playedIntro; - - private float lastPercent; - - private int ticksInTeleporter, prevTicksInTeleporter; - - public PlayerTeleportingModule(final PlayerAether playerAether) - { - super(playerAether); - } - - public BlockPosDimension getNonAetherPos() - { - return this.nonAetherPos; - } - - public void setNonAetherPos(final BlockPosDimension pos) - { - this.nonAetherPos = pos; - } - - public BlockPosDimension getAetherPos() - { - return this.aetherPos; - } - - public void setAetherPos(final BlockPosDimension pos) - { - this.aetherPos = pos; - } - - public boolean hasPlayedIntro() - { - return this.playedIntro; - } - - public void setPlayedIntro(final boolean playedIntro) - { - this.playedIntro = playedIntro; - } - - public int getTicksInTeleporter() - { - return this.ticksInTeleporter; - } - - public int getPrevTicksInTeleporter() - { - return this.prevTicksInTeleporter; - } - - @SideOnly(Side.CLIENT) - private void onUpdateClient() - { - if (this.getWorld().provider.getDimensionType() == DimensionsAether.NECROMANCER_TOWER) - { - if (!this.playedIntro && Minecraft.getMinecraft().currentScreen == null) - { - Minecraft.getMinecraft().displayGuiScreen(new GuiIntro()); - } - } - } - - public float getLastPercent() - { - return this.lastPercent; - } - - public void setLastPercent(float lastPercent) - { - this.lastPercent = lastPercent; - } - - @Override - public void tickStart(TickEvent.PlayerTickEvent event) - { - this.isTeleportCharging = false; - } - - @Override - public void tickEnd(TickEvent.PlayerTickEvent event) - { - if (this.getWorld().isRemote) - { - this.onUpdateClient(); - } - - this.prevTicksInTeleporter = this.ticksInTeleporter; - - if (this.isTeleportCharging && this.getEntity().getEntityWorld().provider.getDimensionType() != DimensionsAether.NECROMANCER_TOWER - && this.getEntity().getEntityWorld().provider.getDimensionType() != DimensionsAether.AETHER) - { - if (this.getEntity().timeUntilPortal > 0) - { - this.getEntity().timeUntilPortal = this.getEntity().getPortalCooldown(); - } - else - { - this.ticksInTeleporter++; - - if (this.ticksInTeleporter == 1) - { - if (this.getWorld().isRemote && Minecraft.getMinecraft().player.getEntityId() == this.getEntity().getEntityId()) - { - Minecraft.getMinecraft().player.playSound(SoundsAether.glowstone_portal_trigger, 1.0F, 1.0F); - } - } - else if (!this.getWorld().isRemote && (this.getTicksInTeleporter() >= TELEPORT_DELAY || this.getEntity().isCreative())) - { - this.ticksInTeleporter = 0; - - this.teleportToTower(); - } - } - } - else if (this.isTeleportCharging && this.getEntity().getEntityWorld().provider.getDimensionType() == DimensionsAether.NECROMANCER_TOWER) - { - if (this.getEntity().timeUntilPortal > 0) - { - this.getEntity().timeUntilPortal = this.getEntity().getPortalCooldown(); - } - else - { - this.ticksInTeleporter++; - - if (this.ticksInTeleporter == 1) - { - if (this.getWorld().isRemote && Minecraft.getMinecraft().player.getEntityId() == this.getEntity().getEntityId()) - { - Minecraft.getMinecraft().player.playSound(SoundsAether.glowstone_portal_trigger, 1.0F, 1.0F); - } - } - else if (!this.getWorld().isRemote && (this.getTicksInTeleporter() >= TELEPORT_DELAY || this.getEntity().isCreative())) - { - this.ticksInTeleporter = 0; - - this.teleportToAether(); - } - } - } - else - { - this.ticksInTeleporter -= 4; - } - - this.ticksInTeleporter = MathHelper.clamp(this.ticksInTeleporter, 0, TELEPORT_DELAY); - } - - public void processTeleporting() - { - this.isTeleportCharging = true; - } - - public void teleportToTower() - { - final EntityPlayer player = this.getEntity(); - final PlayerAether playerAether = PlayerAether.getPlayer(player); - - final World world = this.getEntity().getEntityWorld(); - - final NecromancerTowerInstanceHelper handler = InstancesAether.NECROMANCER_TOWER_HANDLER; - - final PlayerTeleportingModule teleportingModule = playerAether.getModule(PlayerTeleportingModule.class); - - final IPlayerInstances hook = OrbisLib.instances().getPlayer(player); - - if (world.isRemote) - { - if (AetherCore.CONFIG.skipIntro) - { - teleportingModule.setPlayedIntro(true); - NetworkingAether.sendPacketToServer(new PacketSetPlayedIntro(true)); - } - - if (!teleportingModule.hasPlayedIntro()) - { - GuiLoadingListener.setDrawBlackScreen(true); - } - else - { - GuiLoadingListener.setDrawLoading(true); - } - } - else - { - if (teleportingModule.getAetherPos() != null) - { - final EntityPlayerMP playerMP = (EntityPlayerMP) player; - final BlockPosDimension p = teleportingModule.getAetherPos(); - - final MinecraftServer server = FMLCommonHandler.instance().getMinecraftServerInstance(); - - if (net.minecraftforge.common.ForgeHooks.onTravelToDimension(playerMP, p.getDim())) - { - final Teleporter teleporter = new TeleporterGeneric(server.getWorld(player.dimension)); - final PlayerList playerList = server.getPlayerList(); - playerList.transferPlayerToDimension(playerMP, p.getDim(), teleporter); - player.timeUntilPortal = player.getPortalCooldown(); - - playerMP.connection.setPlayerLocation(p.getX(), p.getY(), p.getZ(), 225, 0); - - PostAetherTravelEvent event = new PostAetherTravelEvent(playerMP); - MinecraftForge.EVENT_BUS.post(event); - } - } - else if (hook.getInstance() != null) - { - final IInstance instance = hook.getInstance(); - - if (player.dimension == instance.getDimensionId()) - { - handler.teleportBack((EntityPlayerMP) player); - } - else - { - hook.setInstance(null); - - handler.teleportToInst((EntityPlayerMP) player); - } - } - else - { - if (playerAether.getModule(PlayerConfigModule.class).skipIntro()) - { - teleportingModule.teleportToAether(); - } - else - { - handler.teleportToInst((EntityPlayerMP) player); - } - } - } - } - - public void teleportToAether() - { - this.getEntity().timeUntilPortal = this.getEntity().getPortalCooldown(); - - if (this.getEntity().world.isRemote && Minecraft.getMinecraft().player.getEntityId() == this.getEntity().getEntityId()) - { - Minecraft.getMinecraft().player.playSound(SoundsAether.glowstone_portal_travel, 1.0F, 1.0F); - } - - if (this.getEntity().world instanceof WorldServer) - { - final MinecraftServer server = FMLCommonHandler.instance().getMinecraftServerInstance(); - final WorldServer worldServer = server.getWorld(this.getEntity().dimension); - - final EntityPlayer player = this.getEntity(); - - final int transferToID = AetherCore.CONFIG.aetherDimID; - - AetherCore.PROXY.teleportEntity(this.getEntity(), worldServer, new TeleporterGeneric(worldServer), transferToID, () -> { - - final PlayerAether playerAether = PlayerAether.getPlayer(player); - final PlayerTeleportingModule teleportingModule = playerAether.getModule(PlayerTeleportingModule.class); - - if (teleportingModule.getAetherPos() == null) - { - final BlockPos pos = new BlockPos(100, 0, 100); - - final BlockPos respawn = IslandHelper.getOutpostPos(player.world, pos); - - teleportingModule - .setAetherPos(new BlockPosDimension(respawn.getX(), respawn.getY(), respawn.getZ(), - AetherCore.CONFIG.aetherDimID)); - } - - return teleportingModule.getAetherPos(); - }); - } - } - - @Override - public void write(final NBTTagCompound output) - { - final NBTFunnel funnel = new NBTFunnel(output); - - funnel.set("nonAetherPos", this.nonAetherPos); - funnel.set("aetherPos", this.aetherPos); - - output.setBoolean("playedIntro", this.playedIntro); - } - - @Override - public void read(final NBTTagCompound input) - { - final NBTFunnel funnel = new NBTFunnel(input); - - this.nonAetherPos = funnel.get("nonAetherPos"); - - if (this.nonAetherPos != null && this.nonAetherPos.getDim() == DimensionsAether.AETHER.getId()) - { - this.nonAetherPos = null; - } - - this.aetherPos = funnel.get("aetherPos"); - - this.playedIntro = input.getBoolean("playedIntro"); - } - - @Override - public ResourceLocation getIdentifier() - { - return AetherCore.getResource("teleport"); - } - - -} diff --git a/src/main/java/com/gildedgames/aether/common/capabilities/entity/player/modules/PlayerTradeModule.java b/src/main/java/com/gildedgames/aether/common/capabilities/entity/player/modules/PlayerTradeModule.java deleted file mode 100644 index 71957579fe..0000000000 --- a/src/main/java/com/gildedgames/aether/common/capabilities/entity/player/modules/PlayerTradeModule.java +++ /dev/null @@ -1,357 +0,0 @@ -package com.gildedgames.aether.common.capabilities.entity.player.modules; - -import com.gildedgames.aether.api.player.IPlayerAether; -import com.gildedgames.aether.client.gui.dialog.GuiTrade; -import com.gildedgames.aether.common.AetherCore; -import com.gildedgames.aether.common.capabilities.entity.player.PlayerAether; -import com.gildedgames.aether.common.capabilities.entity.player.PlayerAetherModule; -import com.gildedgames.aether.common.containers.ContainerTrade; -import com.gildedgames.aether.common.network.AetherGuiHandler; -import com.gildedgames.aether.common.network.NetworkingAether; -import com.gildedgames.aether.common.network.packets.PacketCloseScreen; -import com.gildedgames.aether.common.network.packets.trade.PacketTradeInitial; -import com.gildedgames.aether.common.network.packets.trade.PacketTradeState; -import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.GuiScreen; -import net.minecraft.entity.player.EntityPlayerMP; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.Vec3i; -import net.minecraft.util.text.ITextComponent; -import net.minecraft.util.text.Style; -import net.minecraft.util.text.TextComponentTranslation; -import net.minecraft.util.text.TextFormatting; -import net.minecraftforge.fml.common.gameevent.TickEvent; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; - -public class PlayerTradeModule extends PlayerAetherModule -{ - - private IPlayerAether target; - - private int requestedTime, failTime, openSlots, tradeSlots; - - private boolean isTrading, lockedIn, confirmed, error; - - private double coinCount, tradeValue; - - private Vec3i requestPosition; - - public PlayerTradeModule(final PlayerAether playerAether) - { - super(playerAether); - } - - @Override - public void tickStart(TickEvent.PlayerTickEvent event) - { - if (this.requestedTime > 0) - { - this.requestedTime--; - - if (!this.getWorld().isRemote && this.requestedTime == 0 && this.target != null) - { - ITextComponent message = new TextComponentTranslation("aether.trade.chat.failexpired", this.target.getEntity().getDisplayName().getFormattedText()); - - message.setStyle(new Style().setColor(TextFormatting.RED).setItalic(true)); - this.getEntity().sendMessage(message); - } - } - - if (this.failTime > 0) - { - this.failTime--; - } - } - - public IPlayerAether getTarget() - { - return this.target; - } - - public boolean isTrading() - { - return this.isTrading && this.target != null && this.getPlayer().equals(this.target.getModule(PlayerTradeModule.class).target); - } - - public void setConfirmed(boolean confirmed) - { - if (this.getWorld().isRemote) - { - NetworkingAether.sendPacketToServer(new PacketTradeState((byte) 2)); - } - else - { - this.confirmed = confirmed; - this.sendState(3); - } - } - - public boolean isConfirmed() - { - return this.confirmed; - } - - public void setLockedIn(boolean lockedIn) - { - this.lockedIn = lockedIn; - this.confirmed = false; - - if (this.getWorld().isRemote) - { - NetworkingAether.sendPacketToServer(new PacketTradeState((byte) (this.lockedIn ? 0 : 1))); - } - else - { - this.sendState(0); - } - } - - public boolean isLockedIn() - { - return this.lockedIn; - } - - public boolean canAccept(BlockPos pos) - { - return !this.isTrading && this.requestPosition.distanceSq(pos) < 100 && this.requestedTime > 0; - } - - public void sendState(int state) - { - if (!this.getWorld().isRemote) - { - PlayerTradeModule targetTrade = this.target.getModule(PlayerTradeModule.class); - - if (this.error) - { - state = -1; - - this.lockedIn = false; - this.confirmed = false; - } - else if (state == 0) - { - if (targetTrade.isLockedIn()) - { - state += 1; - } - - if (this.lockedIn) - { - state += 2; - } - } - else if (state == 3) - { - if (targetTrade.isConfirmed()) - { - state += 1; - } - - if (this.confirmed) - { - state += 2; - } - } - - NetworkingAether.sendPacketToPlayer(new PacketTradeState((byte) state), this.getPlayerMP()); - } - } - - public void request(IPlayerAether other) - { - this.target = other; - this.requestedTime = 20 * 20; - this.requestPosition = this.getEntity().getPosition(); - - ITextComponent message = new TextComponentTranslation("aether.trade.chat.request", this.getEntity().getDisplayName().getFormattedText()); - - message.setStyle(new Style().setColor(TextFormatting.AQUA).setItalic(true)); - other.getEntity().sendMessage(message); - } - - public void clear() - { - this.failTime = 0; - this.requestedTime = 0; - this.coinCount = 0; - this.confirmed = false; - this.lockedIn = false; - } - - public void accept() - { - this.isTrading = true; - this.clear(); - this.openGui(); - } - - public void setTrading(PlayerTradeModule other) - { - this.clear(); - - if (other == null) - { - this.isTrading = false; - this.target = null; - } - else - { - this.isTrading = true; - this.target = other.getPlayer(); - this.openGui(); - } - } - - private void openGui() - { - BlockPos pos = this.getEntity().getPosition(); - - this.getEntity().openGui(AetherCore.MOD_ID, AetherGuiHandler.TRADE_ID, this.getWorld(), pos.getX(), pos.getY(), pos.getZ()); - - NetworkingAether.sendPacketToPlayer(new PacketTradeInitial(this.target.getEntity().getEntityId()), this.getPlayerMP()); - } - - public void closeGui() - { - NetworkingAether.sendPacketToPlayer(new PacketCloseScreen(AetherGuiHandler.TRADE_ID), (EntityPlayerMP) this.getEntity()); - } - - public boolean canRequest() - { - return this.requestedTime == 0; - } - - public int getFailTime() - { - return this.failTime; - } - - public void failRequest(PlayerTradeModule other) - { - ITextComponent message = new TextComponentTranslation("aether.trade.chat.fail" + (other.isTrading() ? "trade" : "sent"), other.getEntity().getDisplayName().getFormattedText()); - message.setStyle(new Style().setColor(TextFormatting.RED).setItalic(true)); - - this.getEntity().sendMessage(message); - - this.failTime = 30; - } - - public void endTrade(IPlayerAether aePlayer) - { - if (this.isTrading() && aePlayer.equals(this.getTarget())) - { - this.setTrading(null); - - if (!this.getWorld().isRemote) - { - EntityPlayerMP entityPlayerMP = (EntityPlayerMP) this.getPlayer().getEntity(); - - entityPlayerMP.closeContainer(); - NetworkingAether.sendPacketToPlayer(new PacketCloseScreen(AetherGuiHandler.TRADE_ID), entityPlayerMP); - } - } - } - - @SideOnly(Side.CLIENT) - public void updateClientState(int state) - { - Minecraft mc = Minecraft.getMinecraft(); - - this.lockedIn = state >= 2; - - if (mc.currentScreen instanceof GuiTrade) - { - GuiTrade tradeGui = (GuiTrade) mc.currentScreen; - - tradeGui.setTradeState(state); - } - } - - - public int getTradeSlots() - { - return this.tradeSlots; - } - - public void setTradeSlots(int size) - { - this.tradeSlots = size; - - if (this.getWorld().isRemote) - { - this.setTradeSlotsClient(size); - } - else if (this.getEntity().openContainer instanceof ContainerTrade) - { - ContainerTrade tradeContainer = (ContainerTrade) this.getEntity().openContainer; - - tradeContainer.updateSlots(size); - } - } - - @SideOnly(Side.CLIENT) - private void setTradeSlotsClient(int size) { - GuiScreen currentScreen = Minecraft.getMinecraft().currentScreen; - - if (currentScreen instanceof GuiTrade) - { - ContainerTrade tradeContainer = (ContainerTrade) ((GuiTrade) currentScreen).inventorySlots; - - tradeContainer.updateSlots(size); - } - } - - public EntityPlayerMP getPlayerMP() - { - return (EntityPlayerMP) this.getEntity(); - } - - - public EntityPlayerMP getTargetMP() - { - return (EntityPlayerMP) this.getTarget().getEntity(); - } - - public int getOpenSlots() - { - return this.openSlots; - } - - public void setOpenSlots(int openSlots) - { - this.openSlots = openSlots; - } - - public void setTarget(PlayerAether playerAether) - { - this.target = playerAether; - } - - public void sizeError(boolean error) - { - this.error = error; - this.sendState(0); - } - - public void setCoinAmount(double coinCount) - { - this.coinCount = coinCount; - } - - public double getCoinAmount() - { - return this.coinCount; - } - - public void setValue(double value) - { - this.tradeValue = value; - } - - public double getValue() - { - return this.tradeValue; - } -} diff --git a/src/main/java/com/gildedgames/aether/common/capabilities/entity/player/modules/SceneInstance.java b/src/main/java/com/gildedgames/aether/common/capabilities/entity/player/modules/SceneInstance.java deleted file mode 100644 index 0b5ada0c85..0000000000 --- a/src/main/java/com/gildedgames/aether/common/capabilities/entity/player/modules/SceneInstance.java +++ /dev/null @@ -1,149 +0,0 @@ -package com.gildedgames.aether.common.capabilities.entity.player.modules; - -import com.gildedgames.aether.api.dialog.*; -import com.gildedgames.aether.common.network.NetworkingAether; -import com.gildedgames.aether.common.network.packets.dialog.PacketConditionsMetData; -import com.google.common.collect.Maps; -import net.minecraft.entity.player.EntityPlayerMP; -import org.apache.commons.lang3.Validate; - -import java.util.Collection; -import java.util.List; -import java.util.Map; -import java.util.Optional; - -public class SceneInstance implements ISceneInstance -{ - private final PlayerDialogModule controller; - - private final IDialogScene scene; - - private IDialogNode node; - - private List<IDialogLine> lines; - - private Collection<IDialogButton> buttons; - - private Collection<IDialogAction> endActions; - - private Map<String, Boolean> conditionsMet = Maps.newHashMap(); - - private int index; - - protected SceneInstance(final PlayerDialogModule controller, final IDialogScene scene) - { - this(controller, scene, null); - } - - protected SceneInstance(final PlayerDialogModule controller, final IDialogScene scene, Map<String, Boolean> conditionsMet) - { - if (conditionsMet != null) - { - this.conditionsMet = conditionsMet; - } - - this.controller = controller; - this.scene = scene; - - this.setNode(this.scene.getStartingNode()); - } - - @Override - public IDialogScene getScene() - { - return this.scene; - } - - @Override - public IDialogNode getNode() - { - return this.node; - } - - protected void setNode(final IDialogNode node) - { - Validate.notNull(node); - - this.node = node; - - this.lines = node.getLines(); - this.buttons = node.getButtons(); - this.endActions = node.getEndActions(); - - this.index = 0; - - this.controller.updateListeners(); - - if (!this.controller.getWorld().isRemote) - { - for (IDialogButton button : this.buttons) - { - this.conditionsMet.put(button.getLabel(), this.controller.conditionsMet(button)); - } - - NetworkingAether.sendPacketToPlayer(new PacketConditionsMetData(this.conditionsMet), (EntityPlayerMP) this.controller.getEntity()); - } - } - - @Override - public Map<String, Boolean> getConditionsMet() - { - return this.conditionsMet; - } - - @Override - public void setConditionsMet(Map<String, Boolean> map) - { - this.conditionsMet = map; - } - - @Override - public IDialogLine getLine() - { - return this.lines.get(this.index); - } - - @Override - public boolean isDoneReading() - { - return this.index >= this.lines.size() - 1; - } - - @Override - public void navigate(final String nodeId) - { - final Optional<IDialogNode> node = this.scene.getNode(nodeId); - - this.setNode(node.orElseThrow(() -> - new IllegalArgumentException("Node " + nodeId + " doesn't exist"))); - } - - @Override - public void forwards() - { - if (this.isDoneReading()) - { - if (this.buttons.size() <= 0) - { - IDialogNode node = this.getNode(); - - for (final IDialogAction action : this.endActions) - { - action.performAction(this.controller); - } - - // Make sure actions haven't navigated somewhere - if (this.getNode() == node) - { - this.setNode(this.scene.getStartingNode()); - } - } - } - else - { - this.index++; - - this.controller.updateListeners(); - } - } -} \ No newline at end of file diff --git a/src/main/java/com/gildedgames/aether/common/capabilities/entity/spawning/EntitySpawningInfo.java b/src/main/java/com/gildedgames/aether/common/capabilities/entity/spawning/EntitySpawningInfo.java deleted file mode 100644 index f4f874114f..0000000000 --- a/src/main/java/com/gildedgames/aether/common/capabilities/entity/spawning/EntitySpawningInfo.java +++ /dev/null @@ -1,68 +0,0 @@ -package com.gildedgames.aether.common.capabilities.entity.spawning; - -import com.gildedgames.aether.api.entity.spawning.EntitySpawn; -import com.gildedgames.aether.api.entity.spawning.ISpawningInfo; -import net.minecraft.nbt.NBTBase; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.util.EnumFacing; -import net.minecraftforge.common.capabilities.Capability; - -public class EntitySpawningInfo implements ISpawningInfo -{ - - private EntitySpawn spawnArea; - - public EntitySpawningInfo() - { - - } - - @Override - public EntitySpawn getSpawnArea() - { - return this.spawnArea; - } - - @Override - public void setSpawnArea(EntitySpawn area) - { - this.spawnArea = area; - } - - public static class Storage implements Capability.IStorage<ISpawningInfo> - { - @Override - public NBTBase writeNBT(Capability<ISpawningInfo> capability, ISpawningInfo instance, EnumFacing side) - { - NBTTagCompound tag = new NBTTagCompound(); - - boolean hasSpawnArea = instance.getSpawnArea() != null; - - tag.setBoolean("hasSpawnArea", hasSpawnArea); - - if (hasSpawnArea) - { - tag.setString("uniqueID", instance.getSpawnArea().getSpawnHandlerUniqueID()); - tag.setInteger("dim", instance.getSpawnArea().getDim()); - tag.setInteger("areaX", instance.getSpawnArea().getAreaX()); - tag.setInteger("areaZ", instance.getSpawnArea().getAreaZ()); - } - - return tag; - } - - @Override - public void readNBT(Capability<ISpawningInfo> capability, ISpawningInfo instance, EnumFacing side, NBTBase nbt) - { - NBTTagCompound tag = (NBTTagCompound) nbt; - - if (tag.getBoolean("hasSpawnArea")) - { - EntitySpawn spawnArea = new EntitySpawn(tag.getString("uniqueID"), tag.getInteger("dim"), tag.getInteger("areaX"), tag.getInteger("areaZ")); - - instance.setSpawnArea(spawnArea); - } - } - } - -} diff --git a/src/main/java/com/gildedgames/aether/common/capabilities/entity/spawning/EntitySpawningInfoProvider.java b/src/main/java/com/gildedgames/aether/common/capabilities/entity/spawning/EntitySpawningInfoProvider.java deleted file mode 100644 index 9c27c98aa4..0000000000 --- a/src/main/java/com/gildedgames/aether/common/capabilities/entity/spawning/EntitySpawningInfoProvider.java +++ /dev/null @@ -1,62 +0,0 @@ -package com.gildedgames.aether.common.capabilities.entity.spawning; - -import com.gildedgames.aether.api.entity.spawning.ISpawningInfo; -import com.gildedgames.aether.api.registrar.CapabilitiesAether; -import net.minecraft.nbt.NBTBase; -import net.minecraft.util.EnumFacing; -import net.minecraftforge.common.capabilities.Capability; -import net.minecraftforge.common.capabilities.ICapabilitySerializable; - -public class EntitySpawningInfoProvider implements ICapabilitySerializable<NBTBase> -{ - - private final EntitySpawningInfo.Storage storage = new EntitySpawningInfo.Storage(); - - private ISpawningInfo capability; - - public EntitySpawningInfoProvider() - { - - } - - private ISpawningInfo fetchCapability() - { - if (this.capability == null) - { - this.capability = new EntitySpawningInfo(); - } - - return this.capability; - } - - @Override - public boolean hasCapability(Capability<?> capability, EnumFacing facing) - { - return capability == CapabilitiesAether.ENTITY_SPAWNING_INFO; - } - - @Override - @SuppressWarnings("unchecked") - public <T> T getCapability(Capability<T> capability, EnumFacing facing) - { - if (this.hasCapability(capability, facing)) - { - return (T) this.fetchCapability(); - } - - return null; - } - - @Override - public NBTBase serializeNBT() - { - return this.storage.writeNBT(CapabilitiesAether.ENTITY_SPAWNING_INFO, this.fetchCapability(), null); - } - - @Override - public void deserializeNBT(NBTBase nbt) - { - this.storage.readNBT(CapabilitiesAether.ENTITY_SPAWNING_INFO, this.fetchCapability(), null, nbt); - } - -} diff --git a/src/main/java/com/gildedgames/aether/common/capabilities/item/EffectRegistry.java b/src/main/java/com/gildedgames/aether/common/capabilities/item/EffectRegistry.java deleted file mode 100644 index e19feee1ae..0000000000 --- a/src/main/java/com/gildedgames/aether/common/capabilities/item/EffectRegistry.java +++ /dev/null @@ -1,31 +0,0 @@ -package com.gildedgames.aether.common.capabilities.item; - -import com.gildedgames.aether.api.items.equipment.effects.IEffectFactory; -import com.gildedgames.aether.api.items.equipment.effects.IEffectProvider; -import com.gildedgames.aether.api.registry.IEffectRegistry; -import net.minecraft.util.ResourceLocation; - -import java.util.HashMap; - -public class EffectRegistry implements IEffectRegistry -{ - private final HashMap<ResourceLocation, IEffectFactory<IEffectProvider>> factories = new HashMap<>(); - - @Override - @SuppressWarnings("unchecked") - public void registerEffect(IEffectFactory processor) - { - if (this.factories.containsKey(processor.getIdentifier())) - { - throw new IllegalArgumentException("Effect processor for " + processor.getIdentifier() + " already exists"); - } - - this.factories.put(processor.getIdentifier(), processor); - } - - @Override - public IEffectFactory<IEffectProvider> getFactory(ResourceLocation key) - { - return this.factories.get(key); - } -} diff --git a/src/main/java/com/gildedgames/aether/common/capabilities/item/effects/CompanionEffectFactory.java b/src/main/java/com/gildedgames/aether/common/capabilities/item/effects/CompanionEffectFactory.java deleted file mode 100644 index f53dfde906..0000000000 --- a/src/main/java/com/gildedgames/aether/common/capabilities/item/effects/CompanionEffectFactory.java +++ /dev/null @@ -1,186 +0,0 @@ -package com.gildedgames.aether.common.capabilities.item.effects; - -import com.gildedgames.aether.api.items.equipment.effects.EffectInstance; -import com.gildedgames.aether.api.items.equipment.effects.IEffectFactory; -import com.gildedgames.aether.api.items.equipment.effects.IEffectPool; -import com.gildedgames.aether.api.items.equipment.effects.IEffectProvider; -import com.gildedgames.aether.api.player.IPlayerAether; -import com.gildedgames.aether.common.AetherCore; -import com.gildedgames.aether.common.entities.companions.EntityCompanion; -import com.gildedgames.aether.common.entities.companions.EntityEtherealWisp; -import com.gildedgames.aether.common.items.companions.ItemCompanion; -import com.gildedgames.aether.common.world.spawning.SpawnHandler; -import net.minecraft.entity.EntityList; -import net.minecraft.entity.EntityLiving; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraft.util.ResourceLocation; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.text.TextFormatting; -import org.apache.commons.lang3.Validate; - -import java.util.Collection; -import java.util.HashMap; -import java.util.Random; - -public class CompanionEffectFactory implements IEffectFactory<CompanionEffectFactory.CompanionEffectProvider> -{ - private static final ResourceLocation NAME = new ResourceLocation(AetherCore.MOD_ID, "companion_effect"); - - @Override - public EffectInstance createInstance(IEffectPool<CompanionEffectProvider> pool) - { - return new CompanionEffectInstance(pool); - } - - @Override - public ResourceLocation getIdentifier() - { - return NAME; - } - - public static class CompanionEffectProvider implements IEffectProvider - { - private final ResourceLocation name; - - public CompanionEffectProvider(Class<? extends EntityCompanion> clazz) - { - this(EntityList.getKey(clazz)); - } - - public CompanionEffectProvider(ResourceLocation id) - { - Validate.notNull(id, "Entity resource name is null"); - - this.name = id; - } - - @Override - public ResourceLocation getFactory() - { - return NAME; - } - - @Override - public IEffectProvider copy() - { - return new CompanionEffectProvider(this.name); - } - } - - private class CompanionEffectInstance extends EffectInstance - { - private final IEffectPool<CompanionEffectProvider> pool; - - private final HashMap<CompanionEffectProvider, EntityCompanion> entities; - - public CompanionEffectInstance(IEffectPool<CompanionEffectProvider> pool) - { - this.pool = pool; - this.entities = new HashMap<>(); - } - - @Override - public void onEntityUpdate(IPlayerAether player) - { - this.entities.forEach((provider, companion) -> { - if (companion.isDead) - { - if (!companion.wasDespawned()) - { - ItemStack stack = this.pool.getProvider(provider); - - if (stack.getItem() instanceof ItemCompanion) - { - ItemCompanion.setRespawnTimer(stack, companion.world, 20 * 60 * 3); - } - } - } - }); - } - - @Override - public void onInstanceAdded(IPlayerAether player) - { - this.pool.getActiveProviders().forEach(provider -> this.spawnCompanion(player, provider)); - } - - private void spawnCompanion(IPlayerAether player, CompanionEffectProvider provider) - { - ItemStack stack = this.pool.getProvider(provider); - - EntityCompanion companion = (EntityCompanion) EntityList.createEntityByIDFromName(provider.name, player.getEntity().getEntityWorld()); - - Validate.notNull(companion, "Failed to create companion entity"); - - companion.setOwner(player.getEntity()); - - if (stack.hasDisplayName()) - { - companion.setCustomNameTag(stack.getDisplayName()); - } - - this.attemptCompanionPlacement(player, companion); - - player.getEntity().getEntityWorld().spawnEntity(companion); - - this.entities.put(provider, companion); - } - - @Override - public void onInstanceRemoved(IPlayerAether player) - { - for (EntityCompanion companion : this.entities.values()) - { - companion.setOwner(null); - companion.setDespawned(true); - companion.setDead(); - - if (companion instanceof EntityEtherealWisp) - { - EntityPlayer p = player.getEntity(); - p.setInvisible(false); - } - } - - this.entities.clear(); - } - - private void attemptCompanionPlacement(IPlayerAether player, EntityCompanion companion) - { - BlockPos origin = player.getEntity().getPosition(); - - Random rand = companion.getRNG(); - - // Attempt to find a suitable location for the companion to spawn - for (int attempts = 0; attempts < 20; attempts++) - { - double xOffset = -1.5D + (rand.nextDouble() * 3.0D); - double zOffset = -1.5D + (rand.nextDouble() * 3.0D); - - companion.setPosition(origin.getX() + xOffset, origin.getY(), origin.getZ() + zOffset); - - if (!companion.getEntityWorld().getBlockState(companion.getPosition().down()).isFullBlock()) - { - continue; - } - - if (SpawnHandler.isNotColliding(EntityLiving.SpawnPlacementType.ON_GROUND, companion.getEntityWorld(), companion)) - { - companion.getEntityWorld().updateEntityWithOptionalForce(companion, true); - - return; - } - } - - companion.setPositionAndUpdate(player.getEntity().posX, player.getEntity().posY, player.getEntity().posZ); - companion.getEntityWorld().updateEntityWithOptionalForce(companion, true); - } - - @Override - public void addInformation(Collection<String> label, TextFormatting color1, TextFormatting color2) - { - - } - } -} diff --git a/src/main/java/com/gildedgames/aether/common/capabilities/item/effects/FireImmunityEffectFactory.java b/src/main/java/com/gildedgames/aether/common/capabilities/item/effects/FireImmunityEffectFactory.java deleted file mode 100644 index da1aeaae3d..0000000000 --- a/src/main/java/com/gildedgames/aether/common/capabilities/item/effects/FireImmunityEffectFactory.java +++ /dev/null @@ -1,60 +0,0 @@ -package com.gildedgames.aether.common.capabilities.item.effects; - -import com.gildedgames.aether.api.items.equipment.effects.EffectInstance; -import com.gildedgames.aether.api.items.equipment.effects.IEffectFactory; -import com.gildedgames.aether.api.items.equipment.effects.IEffectPool; -import com.gildedgames.aether.api.items.equipment.effects.IEffectProvider; -import com.gildedgames.aether.api.player.IPlayerAether; -import com.gildedgames.aether.common.AetherCore; -import net.minecraft.util.ResourceLocation; -import net.minecraft.util.text.TextFormatting; - -import java.util.Collection; - -public class FireImmunityEffectFactory implements IEffectFactory<FireImmunityEffectFactory.Provider> -{ - private static final ResourceLocation NAME = new ResourceLocation(AetherCore.MOD_ID, "fire_immunity"); - - @Override - public EffectInstance createInstance(IEffectPool<Provider> pool) - { - return new Instance(); - } - - @Override - public ResourceLocation getIdentifier() - { - return FireImmunityEffectFactory.NAME; - } - - public static class Provider implements IEffectProvider - { - @Override - public ResourceLocation getFactory() - { - return FireImmunityEffectFactory.NAME; - } - - @Override - public IEffectProvider copy() - { - return new Provider(); - } - } - - private class Instance extends EffectInstance - { - - @Override - public void onEntityUpdate(IPlayerAether player) - { - player.getEntity().extinguish(); - } - - @Override - public void addInformation(Collection<String> label, TextFormatting format1, TextFormatting format2) - { - label.add(TextFormatting.RED.toString() + TextFormatting.ITALIC.toString() + "Fire Immunity"); - } - } -} diff --git a/src/main/java/com/gildedgames/aether/common/capabilities/item/effects/InvisiblityEffectFactory.java b/src/main/java/com/gildedgames/aether/common/capabilities/item/effects/InvisiblityEffectFactory.java deleted file mode 100644 index 6381696f04..0000000000 --- a/src/main/java/com/gildedgames/aether/common/capabilities/item/effects/InvisiblityEffectFactory.java +++ /dev/null @@ -1,62 +0,0 @@ -package com.gildedgames.aether.common.capabilities.item.effects; - -import com.gildedgames.aether.api.items.equipment.effects.EffectInstance; -import com.gildedgames.aether.api.items.equipment.effects.IEffectFactory; -import com.gildedgames.aether.api.items.equipment.effects.IEffectPool; -import com.gildedgames.aether.api.items.equipment.effects.IEffectProvider; -import com.gildedgames.aether.api.player.IPlayerAether; -import com.gildedgames.aether.common.AetherCore; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.util.ResourceLocation; -import net.minecraft.util.text.TextFormatting; - -import java.util.Collection; - -public class InvisiblityEffectFactory implements IEffectFactory<InvisiblityEffectFactory.Provider> -{ - private static final ResourceLocation NAME = new ResourceLocation(AetherCore.MOD_ID, "invisibility"); - - @Override - public EffectInstance createInstance(IEffectPool<Provider> pool) - { - return new Instance(); - } - - @Override - public ResourceLocation getIdentifier() - { - return InvisiblityEffectFactory.NAME; - } - - public static class Provider implements IEffectProvider - { - @Override - public ResourceLocation getFactory() - { - return InvisiblityEffectFactory.NAME; - } - - @Override - public IEffectProvider copy() - { - return new Provider(); - } - } - - private class Instance extends EffectInstance - { - - @Override - public void onEntityUpdate(IPlayerAether player) - { - EntityPlayer p = player.getEntity(); - p.setInvisible(true); - } - - @Override - public void addInformation(Collection<String> label, TextFormatting format1, TextFormatting format2) - { - label.add(TextFormatting.BLUE.toString() + TextFormatting.ITALIC.toString() + "Invisibility"); - } - } -} diff --git a/src/main/java/com/gildedgames/aether/common/capabilities/item/effects/PotionEffectFactory.java b/src/main/java/com/gildedgames/aether/common/capabilities/item/effects/PotionEffectFactory.java deleted file mode 100644 index 315239e07b..0000000000 --- a/src/main/java/com/gildedgames/aether/common/capabilities/item/effects/PotionEffectFactory.java +++ /dev/null @@ -1,109 +0,0 @@ -package com.gildedgames.aether.common.capabilities.item.effects; - -import com.gildedgames.aether.api.items.equipment.effects.EffectInstance; -import com.gildedgames.aether.api.items.equipment.effects.IEffectFactory; -import com.gildedgames.aether.api.items.equipment.effects.IEffectPool; -import com.gildedgames.aether.api.items.equipment.effects.IEffectProvider; -import com.gildedgames.aether.api.player.IPlayerAether; -import com.gildedgames.aether.common.AetherCore; -import net.minecraft.client.resources.I18n; -import net.minecraft.potion.Potion; -import net.minecraft.potion.PotionEffect; -import net.minecraft.util.ResourceLocation; -import net.minecraft.util.text.TextFormatting; - -import java.util.ArrayList; -import java.util.Collection; -import java.util.stream.Collectors; - -public class PotionEffectFactory implements IEffectFactory<PotionEffectFactory.PotionEffectProvider> -{ - private static final ResourceLocation NAME = new ResourceLocation(AetherCore.MOD_ID, "potion_effect"); - - @Override - public EffectInstance createInstance(IEffectPool<PotionEffectProvider> pool) - { - return new PotionEffectInstance(pool.getActiveProviders()); - } - - @Override - public ResourceLocation getIdentifier() - { - return NAME; - } - - public static class PotionEffectProvider implements IEffectProvider - { - private final Potion potion; - - private final int strength; - - public PotionEffectProvider(Potion potion, int strength) - { - this.potion = potion; - this.strength = strength; - } - - @Override - public ResourceLocation getFactory() - { - return NAME; - } - - @Override - public IEffectProvider copy() - { - return new PotionEffectProvider(this.potion, this.strength); - } - } - - private class PotionEffectInstance extends EffectInstance - { - private final Collection<PotionEffectProvider> potions; - - private int ticksExisted = 0; - - public PotionEffectInstance(Collection<PotionEffectProvider> providers) - { - this.potions = new ArrayList<>(providers); - } - - @Override - public void onEntityUpdate(IPlayerAether player) - { - this.ticksExisted++; - - if (this.ticksExisted % 200 == 0) - { - this.addPotions(player); - } - } - - @Override - public void onInstanceRemoved(IPlayerAether player) - { - this.potions.stream().map(provider -> provider.potion).forEach(player.getEntity()::removePotionEffect); - } - - @Override - public void onInstanceAdded(IPlayerAether player) - { - this.addPotions(player); - } - - private void addPotions(IPlayerAether player) - { - this.potions.stream().map(provider -> new PotionEffect(provider.potion, 1000, provider.strength, true, false)) - .forEach(player.getEntity()::addPotionEffect); - } - - @Override - public void addInformation(Collection<String> label, TextFormatting format1, TextFormatting format2) - { - this.potions.stream() - .map(provider -> provider.potion.getName()) - .collect(Collectors.toSet()) - .forEach(name -> label.add(TextFormatting.BLUE + "Gives " + I18n.format(name))); - } - } -} diff --git a/src/main/java/com/gildedgames/aether/common/capabilities/item/effects/RegenerationEffectFactory.java b/src/main/java/com/gildedgames/aether/common/capabilities/item/effects/RegenerationEffectFactory.java deleted file mode 100644 index 5626c80a18..0000000000 --- a/src/main/java/com/gildedgames/aether/common/capabilities/item/effects/RegenerationEffectFactory.java +++ /dev/null @@ -1,87 +0,0 @@ -package com.gildedgames.aether.common.capabilities.item.effects; - -import com.gildedgames.aether.api.items.equipment.effects.*; -import com.gildedgames.aether.api.player.IPlayerAether; -import com.gildedgames.aether.common.AetherCore; -import net.minecraft.util.ResourceLocation; -import net.minecraft.util.text.TextFormatting; - -import java.text.DecimalFormat; -import java.util.Collection; - -public class RegenerationEffectFactory implements IEffectFactory<RegenerationEffectFactory.Provider> -{ - private static final DecimalFormat FORMATTER = new DecimalFormat("#.##"); - - private static final ResourceLocation NAME = new ResourceLocation(AetherCore.MOD_ID, "regeneration"); - - @Override - public EffectInstance createInstance(IEffectPool<Provider> pool) - { - RegenerationEffectInstance state = new RegenerationEffectInstance(); - state.healAmount = EffectHelper.combineInt(pool.getActiveProviders(), instance -> instance.heal); - - return state; - } - - @Override - public ResourceLocation getIdentifier() - { - return RegenerationEffectFactory.NAME; - } - - public static class Provider implements IEffectProvider - { - private final int heal; - - public Provider(int heal) - { - this.heal = heal; - } - - @Override - public ResourceLocation getFactory() - { - return RegenerationEffectFactory.NAME; - } - - @Override - public IEffectProvider copy() - { - return new Provider(this.heal); - } - } - - private class RegenerationEffectInstance extends EffectInstance - { - private int healAmount; - - private int ticksUntilHeal = 120; - - @Override - public void onEntityUpdate(IPlayerAether player) - { - if (player.getEntity().hurtTime > 0) - { - this.ticksUntilHeal = 120; - return; - } - - if (this.ticksUntilHeal <= 0) - { - player.getEntity().heal(this.healAmount); - - this.ticksUntilHeal = 20; - } - - this.ticksUntilHeal--; - } - - @Override - public void addInformation(Collection<String> label, TextFormatting format1, TextFormatting format2) - { - label.add(TextFormatting.RED.toString() + TextFormatting.ITALIC.toString() + - "+" + FORMATTER.format(this.healAmount) + " Regeneration per Second"); - } - } -} diff --git a/src/main/java/com/gildedgames/aether/common/capabilities/item/effects/WaterBreathEffectFactory.java b/src/main/java/com/gildedgames/aether/common/capabilities/item/effects/WaterBreathEffectFactory.java deleted file mode 100644 index f4302c6332..0000000000 --- a/src/main/java/com/gildedgames/aether/common/capabilities/item/effects/WaterBreathEffectFactory.java +++ /dev/null @@ -1,59 +0,0 @@ -package com.gildedgames.aether.common.capabilities.item.effects; - -import com.gildedgames.aether.api.items.equipment.effects.EffectInstance; -import com.gildedgames.aether.api.items.equipment.effects.IEffectFactory; -import com.gildedgames.aether.api.items.equipment.effects.IEffectPool; -import com.gildedgames.aether.api.items.equipment.effects.IEffectProvider; -import com.gildedgames.aether.api.player.IPlayerAether; -import com.gildedgames.aether.common.AetherCore; -import net.minecraft.util.ResourceLocation; -import net.minecraft.util.text.TextFormatting; - -import java.util.Collection; - -public class WaterBreathEffectFactory implements IEffectFactory<WaterBreathEffectFactory.Provider> -{ - private static final ResourceLocation NAME = new ResourceLocation(AetherCore.MOD_ID, "water_breathing"); - - @Override - public EffectInstance createInstance(IEffectPool<Provider> pool) - { - return new Instance(); - } - - @Override - public ResourceLocation getIdentifier() - { - return WaterBreathEffectFactory.NAME; - } - - public static class Provider implements IEffectProvider - { - @Override - public ResourceLocation getFactory() - { - return WaterBreathEffectFactory.NAME; - } - - @Override - public IEffectProvider copy() - { - return new Provider(); - } - } - - private class Instance extends EffectInstance - { - @Override - public void onEntityUpdate(IPlayerAether player) - { - player.getEntity().setAir(300); - } - - @Override - public void addInformation(Collection<String> label, TextFormatting format1, TextFormatting format2) - { - label.add(TextFormatting.BLUE.toString() + TextFormatting.ITALIC.toString() + "Water Breathing"); - } - } -} diff --git a/src/main/java/com/gildedgames/aether/common/capabilities/item/effects/stats/StatEffectFactory.java b/src/main/java/com/gildedgames/aether/common/capabilities/item/effects/stats/StatEffectFactory.java deleted file mode 100644 index 9525a99461..0000000000 --- a/src/main/java/com/gildedgames/aether/common/capabilities/item/effects/stats/StatEffectFactory.java +++ /dev/null @@ -1,131 +0,0 @@ -package com.gildedgames.aether.common.capabilities.item.effects.stats; - -import com.gildedgames.aether.api.items.equipment.effects.*; -import com.gildedgames.aether.api.player.IPlayerAether; -import com.gildedgames.aether.common.AetherCore; -import com.google.common.collect.Multimap; -import com.google.common.collect.MultimapBuilder; -import net.minecraft.client.resources.I18n; -import net.minecraft.entity.ai.attributes.AttributeModifier; -import net.minecraft.entity.ai.attributes.IAttribute; -import net.minecraft.util.ResourceLocation; -import net.minecraft.util.text.TextFormatting; - -import java.text.DecimalFormat; -import java.util.Collection; - -public class StatEffectFactory implements IEffectFactory<StatEffectFactory.StatProvider> -{ - private static final ResourceLocation NAME = new ResourceLocation(AetherCore.MOD_ID, "stat_provider"); - - private static final DecimalFormat POINT_FORMATTER = new DecimalFormat("#.#"); - - @Override - public EffectInstance createInstance(IEffectPool<StatProvider> pool) - { - return new StatInstance(pool.getActiveProviders()); - } - - @Override - public ResourceLocation getIdentifier() - { - return StatEffectFactory.NAME; - } - - public static class StatProvider implements IEffectProvider - { - public static final int OP_ADD = 0, OP_MULTIPLY = 1; - - private final IAttribute attribute; - - private final double amount; - - private final int opcode; - - public StatProvider(IAttribute attribute, double amount, int opcode) - { - this.attribute = attribute; - this.amount = amount; - this.opcode = opcode; - } - - @Override - public ResourceLocation getFactory() - { - return StatEffectFactory.NAME; - } - - @Override - public IEffectProvider copy() - { - return new StatProvider(this.attribute, this.amount, this.opcode); - } - } - - public static class StatInstance extends EffectInstance - { - private final Multimap<String, AttributeModifier> attributes; - - public StatInstance(Collection<StatProvider> providers) - { - this.attributes = MultimapBuilder.hashKeys().arrayListValues().build(); - - for (StatProvider provider : providers) - { - AttributeModifier modifier = new AttributeModifier("Equipment modifier", provider.amount, provider.opcode); - modifier.setSaved(false); - - this.attributes.put(provider.attribute.getName(), modifier); - } - } - - @Override - public void onInstanceRemoved(IPlayerAether player) - { - player.getEntity().getAttributeMap().removeAttributeModifiers(this.attributes); - } - - @Override - public void onInstanceAdded(IPlayerAether player) - { - player.getEntity().getAttributeMap().applyAttributeModifiers(this.attributes); - } - - @Override - public void addInformation(Collection<String> label, TextFormatting format1, TextFormatting format2) - { - for (String name : this.attributes.keySet()) - { - Multimap<Integer, AttributeModifier> mods = MultimapBuilder.hashKeys().arrayListValues().build(); - - for (AttributeModifier mod : this.attributes.get(name)) - { - mods.put(mod.getOperation(), mod); - } - - for (Integer opcode : mods.keySet()) - { - double value = EffectHelper.combineDouble(mods.get(opcode), AttributeModifier::getAmount); - - String prefix = value > 0 ? format1 + " +" : format2 + " -"; - - if (format1 == TextFormatting.GRAY && format2 == TextFormatting.GRAY) - { - prefix = value > 0 ? format1 + " " : format2 + " "; - } - - String desc = I18n.format("attribute.name." + name); - - if (opcode == 1) - { - label.add(prefix + POINT_FORMATTER.format(Math.abs(value) * 100.0D) + "% " + desc); - } - else - { - label.add(prefix + POINT_FORMATTER.format(Math.abs(value)) + " " + desc); - } - } - } - } - } -} diff --git a/src/main/java/com/gildedgames/aether/common/capabilities/world/chunk/PlacementFlagCapability.java b/src/main/java/com/gildedgames/aether/common/capabilities/world/chunk/PlacementFlagCapability.java deleted file mode 100644 index 00135ccb01..0000000000 --- a/src/main/java/com/gildedgames/aether/common/capabilities/world/chunk/PlacementFlagCapability.java +++ /dev/null @@ -1,80 +0,0 @@ -package com.gildedgames.aether.common.capabilities.world.chunk; - -import com.gildedgames.aether.api.chunk.IPlacementFlagCapability; -import net.minecraft.nbt.NBTBase; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.util.EnumFacing; -import net.minecraft.util.math.BlockPos; -import net.minecraftforge.common.capabilities.Capability; - -import java.util.BitSet; - -public class PlacementFlagCapability implements IPlacementFlagCapability -{ - private static final int CHUNK_SIZE = 16 * 256 * 16; - - private BitSet bits = new BitSet(CHUNK_SIZE); - - @Override - public void markModified(BlockPos pos) - { - this.set(pos, true); - } - - @Override - public void clearModified(BlockPos pos) - { - this.set(pos, false); - } - - private void set(BlockPos pos, boolean value) - { - this.bits.set(this.getIndexFromCoordinate(pos.getX() & 15, pos.getY() & 15, pos.getZ() & 15), value); - } - - @Override - public boolean isModified(BlockPos pos) - { - return this.bits.get(this.getIndexFromCoordinate(pos.getX() & 15, pos.getY() & 15, pos.getZ() & 15)); - } - - @Override - public void write(NBTTagCompound output) - { - output.setByteArray("bits", this.bits.toByteArray()); - } - - @Override - public void read(NBTTagCompound input) - { - if (input.hasKey("bits")) - { - this.bits = BitSet.valueOf(input.getByteArray("bits")); - } - } - - private int getIndexFromCoordinate(int x, int y, int z) - { - return (x * 256 * 16 + y * 16 + z); - } - - public static class Storage implements Capability.IStorage<IPlacementFlagCapability> - { - @Override - public NBTBase writeNBT(Capability<IPlacementFlagCapability> capability, IPlacementFlagCapability instance, EnumFacing side) - { - NBTTagCompound out = new NBTTagCompound(); - instance.write(out); - - return out; - } - - @Override - public void readNBT(Capability<IPlacementFlagCapability> capability, IPlacementFlagCapability instance, EnumFacing side, - NBTBase nbt) - { - NBTTagCompound input = (NBTTagCompound) nbt; - instance.read(input); - } - } -} diff --git a/src/main/java/com/gildedgames/aether/common/capabilities/world/chunk/PlacementFlagProvider.java b/src/main/java/com/gildedgames/aether/common/capabilities/world/chunk/PlacementFlagProvider.java deleted file mode 100644 index 7000719590..0000000000 --- a/src/main/java/com/gildedgames/aether/common/capabilities/world/chunk/PlacementFlagProvider.java +++ /dev/null @@ -1,60 +0,0 @@ -package com.gildedgames.aether.common.capabilities.world.chunk; - -import com.gildedgames.aether.api.chunk.IPlacementFlagCapability; -import com.gildedgames.aether.api.registrar.CapabilitiesAether; -import net.minecraft.nbt.NBTBase; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.util.EnumFacing; -import net.minecraftforge.common.capabilities.Capability; -import net.minecraftforge.common.capabilities.ICapabilitySerializable; - -import javax.annotation.Nullable; - -public class PlacementFlagProvider implements ICapabilitySerializable<NBTBase> -{ - private final IPlacementFlagCapability capability; - - public PlacementFlagProvider(IPlacementFlagCapability capability) - { - this.capability = capability; - } - - @Override - public boolean hasCapability(Capability<?> capability, @Nullable EnumFacing facing) - { - return capability == CapabilitiesAether.CHUNK_PLACEMENT_FLAG && this.capability != null; - } - - @Override - @SuppressWarnings("unchecked") - public <T> T getCapability(Capability<T> capability, @Nullable EnumFacing facing) - { - return this.hasCapability(capability, facing) ? (T) this.capability : null; - } - - @Override - public NBTBase serializeNBT() - { - if (this.capability == null) - { - return null; - } - - NBTTagCompound tag = new NBTTagCompound(); - - this.capability.write(tag); - - return tag; - } - - @Override - public void deserializeNBT(NBTBase nbt) - { - if (this.capability == null) - { - return; - } - - this.capability.read((NBTTagCompound) nbt); - } -} diff --git a/src/main/java/com/gildedgames/aether/common/capabilities/world/precipitation/PrecipitationCapabilityProvider.java b/src/main/java/com/gildedgames/aether/common/capabilities/world/precipitation/PrecipitationCapabilityProvider.java deleted file mode 100644 index bd75b11104..0000000000 --- a/src/main/java/com/gildedgames/aether/common/capabilities/world/precipitation/PrecipitationCapabilityProvider.java +++ /dev/null @@ -1,54 +0,0 @@ -package com.gildedgames.aether.common.capabilities.world.precipitation; - -import com.gildedgames.aether.api.registrar.CapabilitiesAether; -import com.gildedgames.aether.api.world.islands.precipitation.IPrecipitationManager; -import net.minecraft.nbt.NBTBase; -import net.minecraft.util.EnumFacing; -import net.minecraftforge.common.capabilities.Capability; -import net.minecraftforge.common.capabilities.ICapabilitySerializable; - -import javax.annotation.Nonnull; -import javax.annotation.Nullable; - -public class PrecipitationCapabilityProvider implements ICapabilitySerializable<NBTBase> -{ - private final PrecipitationManagerImpl.Storage storage = new PrecipitationManagerImpl.Storage(); - - private final IPrecipitationManager capability; - - public PrecipitationCapabilityProvider(IPrecipitationManager manager) - { - this.capability = manager; - } - - @Override - public boolean hasCapability(@Nonnull Capability<?> capability, @Nullable EnumFacing facing) - { - return this.capability != null && capability == CapabilitiesAether.PRECIPITATION_MANAGER; - } - - @SuppressWarnings("unchecked") - @Nullable - @Override - public <T> T getCapability(@Nonnull Capability<T> capability, @Nullable EnumFacing facing) - { - if (this.hasCapability(capability, facing)) - { - return (T) this.capability; - } - - return null; - } - - @Override - public NBTBase serializeNBT() - { - return this.storage.writeNBT(CapabilitiesAether.PRECIPITATION_MANAGER, this.capability, null); - } - - @Override - public void deserializeNBT(NBTBase nbt) - { - this.storage.readNBT(CapabilitiesAether.PRECIPITATION_MANAGER, this.capability, null, nbt); - } -} diff --git a/src/main/java/com/gildedgames/aether/common/capabilities/world/precipitation/PrecipitationManagerImpl.java b/src/main/java/com/gildedgames/aether/common/capabilities/world/precipitation/PrecipitationManagerImpl.java deleted file mode 100644 index 5bdc77d285..0000000000 --- a/src/main/java/com/gildedgames/aether/common/capabilities/world/precipitation/PrecipitationManagerImpl.java +++ /dev/null @@ -1,356 +0,0 @@ -package com.gildedgames.aether.common.capabilities.world.precipitation; - -import com.gildedgames.aether.api.world.islands.precipitation.IPrecipitationManager; -import com.gildedgames.aether.api.world.islands.precipitation.PrecipitationStrength; -import com.gildedgames.aether.common.blocks.IBlockSnowy; -import com.gildedgames.aether.common.network.NetworkingAether; -import com.gildedgames.aether.common.network.packets.PacketUpdatePrecipitation; -import com.gildedgames.aether.common.world.biomes.BiomeAetherBase; -import com.gildedgames.aether.common.world.biomes.ISnowyBiome; -import net.minecraft.block.state.IBlockState; -import net.minecraft.nbt.NBTBase; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.util.EnumFacing; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.MathHelper; -import net.minecraft.world.World; -import net.minecraft.world.WorldServer; -import net.minecraft.world.biome.Biome; -import net.minecraft.world.chunk.Chunk; -import net.minecraft.world.storage.WorldInfo; -import net.minecraftforge.common.capabilities.Capability; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; - -import javax.annotation.Nonnull; -import javax.annotation.Nullable; -import javax.vecmath.Vector2f; -import java.util.Iterator; -import java.util.Random; - -// TODO: Handle rain start/end events better -public class PrecipitationManagerImpl implements IPrecipitationManager -{ - private int updateLCG = (new Random()).nextInt(); - - @Nonnull - private final World world; - - private PrecipitationStrength strength = PrecipitationStrength.LIGHT; - - private Vector2f windVector = new Vector2f(0.0f, 0.0f); - - private long ticksUntilStrengthChange; - - private boolean prevIsRaining; - - public PrecipitationManagerImpl() - { - this.world = null; - } - - public PrecipitationManagerImpl(World world) - { - this.world = world; - } - - @Override - public void tick() - { - // Clients never update - if (this.world.isRemote) - { - return; - } - - this.updateWeather(); - this.updateWorld(); - this.updateBlocks(); - } - - private void updateWeather() - { - WorldInfo info = this.world.getWorldInfo(); - - int ticksUntilRain = info.getRainTime(); - int ticksUntilClear = info.getCleanWeatherTime(); - - if (ticksUntilClear > 0) - { - info.setCleanWeatherTime(ticksUntilClear - 1); - } - - if (ticksUntilRain > 0) - { - info.setRainTime(ticksUntilRain - 1); - } - - if (this.ticksUntilStrengthChange > 0) - { - this.ticksUntilStrengthChange--; - } - - // The world just started raining and we need to setup NOW - if (info.isRaining() && !this.prevIsRaining) - { - this.startPrecipitation(); - } - // If it's not already precipitating - else if (!info.isRaining()) - { - // And it's time to change weather - if (ticksUntilRain <= 0) - { - this.startPrecipitation(); - } - } - - // If it is precipitating - if (info.isRaining()) - { - // Make weather clear for 20000 + rand(6000) ticks if the precipitation is ending - if (ticksUntilClear <= 0) - { - this.endPrecipitation(); - } - // Otherwise, if we haven't changed intensity in 4000 ticks and there's still 4000 ticks remaining in the precipitation - else if (this.ticksUntilStrengthChange <= 0 && ticksUntilClear > 4000) - { - // Intensify with a 30% chance - int rng = this.world.rand.nextInt(100); - - // Only intensify if we're not already at the highest intensity - if (this.getStrength() != PrecipitationStrength.STORM && rng > 75) - { - this.modifyStrength(1); - } - // Only weaken if we're not already at the lowest intensity - else if (this.getStrength() != PrecipitationStrength.LIGHT && rng > 50) - { - this.modifyStrength(-1); - } - else - { - this.modifyStrength(0); - } - } - } - - this.prevIsRaining = info.isRaining(); - } - - private void updateWorld() - { - WorldInfo info = this.world.getWorldInfo(); - - this.world.prevThunderingStrength = this.world.thunderingStrength; - - if (info.isThundering()) - { - this.world.thunderingStrength = (float) ((double) this.world.thunderingStrength + 0.01D); - } - else - { - this.world.thunderingStrength = (float) ((double) this.world.thunderingStrength - 0.01D); - } - - this.world.thunderingStrength = MathHelper.clamp(this.world.thunderingStrength, 0.0F, 1.0F); - this.world.prevRainingStrength = this.world.rainingStrength; - - if (info.isRaining()) - { - this.world.rainingStrength = (float) ((double) this.world.rainingStrength + 0.01D); - } - else - { - this.world.rainingStrength = (float) ((double) this.world.rainingStrength - 0.01D); - } - - this.world.rainingStrength = MathHelper.clamp(this.world.rainingStrength, 0.0F, 1.0F); - } - - private void updateBlocks() - { - WorldInfo info = this.world.getWorldInfo(); - - if (!info.isRaining()) - { - return; - } - - Iterator<Chunk> iterator = this.world.getPersistentChunkIterable(((WorldServer) this.world).getPlayerChunkMap().getChunkIterator()); - - while (iterator.hasNext()) - { - Chunk chunk = iterator.next(); - - this.updateBlocksForChunk(chunk); - - this.world.profiler.endSection(); - } - } - - private void updateBlocksForChunk(Chunk chunk) - { - int j = chunk.x * 16; - int k = chunk.z * 16; - - if (this.world.rand.nextInt(16) == 0) - { - this.updateLCG = this.updateLCG * 3 + 1013904223; - - int j2 = this.updateLCG >> 2; - - BlockPos column = new BlockPos(j + (j2 & 15), 0, k + (j2 >> 8 & 15)); - - BlockPos topBlockPos = this.world.getPrecipitationHeight(column); - BlockPos blockPos = topBlockPos.down(); - - Biome biome = this.world.getBiome(column); - - if (biome instanceof ISnowyBiome) - { - ISnowyBiome snowyBiome = (ISnowyBiome) biome; - - if (this.world.isAreaLoaded(blockPos, 1)) - { - if (this.world.canBlockFreezeNoWater(blockPos)) - { - this.world.setBlockState(blockPos, snowyBiome.getFrozenWaterBlock()); - } - } - - if (this.world.canSnowAt(topBlockPos, true)) - { - this.world.setBlockState(topBlockPos, snowyBiome.getSnowBlock()); - } - else - { - IBlockState topState = this.world.getBlockState(topBlockPos); - - if (topState.getBlock() instanceof IBlockSnowy) - { - final IBlockState newState = topState.withProperty(IBlockSnowy.PROPERTY_SNOWY, Boolean.TRUE); - - this.world.setBlockState(topBlockPos, newState, 2); - } - } - } - - if (biome instanceof BiomeAetherBase && this.world.getBiome(blockPos).canRain()) - { - this.world.getBlockState(blockPos).getBlock().fillWithRain(this.world, blockPos); - } - } - } - - private void startPrecipitation() - { - int duration = this.world.rand.nextInt(20000) + 10000; - - this.strength = PrecipitationStrength.VALUES[this.world.rand.nextInt(PrecipitationStrength.VALUES.length)]; - - this.windVector.x = ((this.world.rand.nextFloat() * 2.0f) - 1.0f) * 1.2f; - this.windVector.y = ((this.world.rand.nextFloat() * 2.0f) - 1.0f) * 1.2f; - - WorldInfo info = this.world.getWorldInfo(); - info.setRaining(true); - info.setCleanWeatherTime(duration); - - this.sendUpdates(); - } - - private void endPrecipitation() - { - int duration = this.world.rand.nextInt(20000) + 6000; - - this.strength = PrecipitationStrength.LIGHT; - - WorldInfo info = this.world.getWorldInfo(); - info.setRaining(false); - info.setRainTime(duration); - - this.sendUpdates(); - } - - @SideOnly(Side.CLIENT) - @Override - public float getSkyDarkness() - { - switch (this.getStrength()) - { - case LIGHT: - return 0.15f; - case HEAVY: - return 0.3f; - case STORM: - return 0.6f; - } - - return 0.0f; - } - - private void modifyStrength(int mod) - { - this.strength = PrecipitationStrength.VALUES[(this.strength.ordinal() + mod) % PrecipitationStrength.VALUES.length]; - this.ticksUntilStrengthChange = this.world.rand.nextInt(2000) + 1000; - - this.sendUpdates(); - } - - private void sendUpdates() - { - if (!this.world.isRemote) - { - NetworkingAether.sendPacketToDimension(new PacketUpdatePrecipitation(this), this.world.provider.getDimension()); - } - } - - @Override - public PrecipitationStrength getStrength() - { - return this.strength; - } - - @Override - public Vector2f getWindVector() - { - return this.windVector; - } - - @Override - public NBTTagCompound serializeNBT() - { - NBTTagCompound tag = new NBTTagCompound(); - tag.setString("Strength", this.strength.name()); - tag.setLong("TicksUntilStrengthChange", this.ticksUntilStrengthChange); - tag.setFloat("WindX", this.windVector.x); - tag.setFloat("WindY", this.windVector.y); - - return tag; - } - - @Override - public void deserializeNBT(NBTTagCompound nbt) - { - this.strength = PrecipitationStrength.lookup(nbt.getString("Strength")); - this.ticksUntilStrengthChange = nbt.getLong("TicksUntilStrengthChange"); - this.windVector = new Vector2f(nbt.getFloat("WindX"), nbt.getFloat("WindY")); - } - - public static class Storage implements Capability.IStorage<IPrecipitationManager> - { - @Nullable - @Override - public NBTBase writeNBT(Capability<IPrecipitationManager> capability, IPrecipitationManager instance, EnumFacing side) - { - return instance.serializeNBT(); - } - - @Override - public void readNBT(Capability<IPrecipitationManager> capability, IPrecipitationManager instance, EnumFacing side, NBTBase nbt) - { - instance.deserializeNBT((NBTTagCompound) nbt); - } - } -} diff --git a/src/main/java/com/gildedgames/aether/common/containers/ContainerCustomWorkbench.java b/src/main/java/com/gildedgames/aether/common/containers/ContainerCustomWorkbench.java deleted file mode 100644 index 7bffb7cd9a..0000000000 --- a/src/main/java/com/gildedgames/aether/common/containers/ContainerCustomWorkbench.java +++ /dev/null @@ -1,40 +0,0 @@ -package com.gildedgames.aether.common.containers; - -import net.minecraft.block.BlockWorkbench; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.inventory.ContainerWorkbench; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.World; - -public class ContainerCustomWorkbench extends ContainerWorkbench -{ - private final World world; - - private final BlockPos pos; - - public ContainerCustomWorkbench(final InventoryPlayer playerInventory, final World worldIn, - final BlockPos posIn) - { - super(playerInventory, worldIn, posIn); - - this.world = worldIn; - this.pos = posIn; - } - - /** - * Determines whether supplied player can use this container - */ - @Override - public boolean canInteractWith(final EntityPlayer playerIn) - { - if (!(this.world.getBlockState(this.pos).getBlock() instanceof BlockWorkbench)) - { - return false; - } - else - { - return playerIn.getDistanceSq((double) this.pos.getX() + 0.5D, (double) this.pos.getY() + 0.5D, (double) this.pos.getZ() + 0.5D) <= 64.0D; - } - } -} diff --git a/src/main/java/com/gildedgames/aether/common/containers/ContainerDialogController.java b/src/main/java/com/gildedgames/aether/common/containers/ContainerDialogController.java deleted file mode 100644 index 796fc45e37..0000000000 --- a/src/main/java/com/gildedgames/aether/common/containers/ContainerDialogController.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.gildedgames.aether.common.containers; - -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.inventory.Container; - -public class ContainerDialogController extends Container -{ - - private final EntityPlayer player; - - public ContainerDialogController(final EntityPlayer player) - { - this.player = player; - } - - @Override - public boolean canInteractWith(final EntityPlayer playerIn) - { - return playerIn.getDistanceSq(this.player) <= 64.0D; - } -} diff --git a/src/main/java/com/gildedgames/aether/common/containers/ContainerLoadingScreen.java b/src/main/java/com/gildedgames/aether/common/containers/ContainerLoadingScreen.java deleted file mode 100644 index 064867ce66..0000000000 --- a/src/main/java/com/gildedgames/aether/common/containers/ContainerLoadingScreen.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.gildedgames.aether.common.containers; - -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.inventory.Container; - -public class ContainerLoadingScreen extends Container -{ - @Override - public boolean canInteractWith(EntityPlayer playerIn) - { - return true; - } -} diff --git a/src/main/java/com/gildedgames/aether/common/containers/ContainerShop.java b/src/main/java/com/gildedgames/aether/common/containers/ContainerShop.java deleted file mode 100644 index f4f646db1f..0000000000 --- a/src/main/java/com/gildedgames/aether/common/containers/ContainerShop.java +++ /dev/null @@ -1,142 +0,0 @@ -package com.gildedgames.aether.common.containers; - -import com.gildedgames.aether.api.shop.IShopInstance; -import com.gildedgames.aether.common.containers.slots.SlotSell; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.EntityPlayerMP; -import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.inventory.Container; -import net.minecraft.inventory.IContainerListener; -import net.minecraft.inventory.IInventory; -import net.minecraft.inventory.Slot; -import net.minecraft.item.ItemStack; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; - -public class ContainerShop extends Container -{ - private final IInventory shopInventory; - - private final IShopInstance shopInstance; - - public ContainerShop(final InventoryPlayer playerInventory, IShopInstance shopInstance) - { - this.shopInstance = shopInstance; - this.shopInventory = shopInstance.getInventory(playerInventory.player); - - this.addSlotToContainer(new SlotSell(this.shopInventory, 0, 257, 7)); - - for (int i = 0; i < 3; ++i) - { - for (int j = 0; j < 9; ++j) - { - this.addSlotToContainer(new Slot(playerInventory, j + i * 9 + 9, 186 + 7 + j * 18, 19 + 14 + i * 18)); - } - } - - for (int k = 0; k < 9; ++k) - { - this.addSlotToContainer(new Slot(playerInventory, k, 186 + 7 + k * 18, 77 + 14)); - } - } - - public IShopInstance getShopInstance() - { - return this.shopInstance; - } - - @Override - public void onContainerClosed(EntityPlayer playerIn) - { - super.onContainerClosed(playerIn); - - if (!playerIn.world.isRemote) - { - if (!playerIn.isEntityAlive() || playerIn instanceof EntityPlayerMP && ((EntityPlayerMP)playerIn).hasDisconnected()) - { - playerIn.dropItem(this.shopInventory.removeStackFromSlot(0), false); - } - else - { - playerIn.inventory.placeItemBackInInventory(playerIn.world, shopInventory.removeStackFromSlot(0)); - } - } - } - - @Override - public void addListener(final IContainerListener listener) - { - super.addListener(listener); - listener.sendAllWindowProperties(this, this.shopInventory); - } - - @Override - @SideOnly(Side.CLIENT) - public void updateProgressBar(final int id, final int data) - { - this.shopInventory.setField(id, data); - } - - @Override - public boolean canInteractWith(final EntityPlayer playerIn) - { - return this.shopInventory.isUsableByPlayer(playerIn); - } - - @Override - public ItemStack transferStackInSlot(final EntityPlayer playerIn, final int index) - { - ItemStack itemstack = ItemStack.EMPTY; - final Slot slot = this.inventorySlots.get(index); - - if (slot != null && slot.getHasStack()) - { - final ItemStack itemstack1 = slot.getStack(); - itemstack = itemstack1.copy(); - - if (index == 0) - { - if (!this.mergeItemStack(itemstack1, 1, 37, true)) - { - return ItemStack.EMPTY; - } - - slot.onSlotChange(itemstack1, itemstack); - } - if (index >= 1 && index < 28) - { - if (!this.mergeItemStack(itemstack1, 0, 1, false) && !this.mergeItemStack(itemstack1, 28, 37, false)) - { - return ItemStack.EMPTY; - } - } - else if (index >= 28 && index < 37 && !this.mergeItemStack(itemstack1, 0, 28, false)) - { - return ItemStack.EMPTY; - } - else if (!this.mergeItemStack(itemstack1, 0, 37, false)) - { - return ItemStack.EMPTY; - } - - if (itemstack1.isEmpty()) - { - slot.putStack(ItemStack.EMPTY); - } - else - { - slot.onSlotChanged(); - } - - if (itemstack1.getCount() == itemstack.getCount()) - { - return ItemStack.EMPTY; - } - - slot.onTake(playerIn, itemstack1); - } - - return itemstack; - } - -} diff --git a/src/main/java/com/gildedgames/aether/common/containers/ContainerTrade.java b/src/main/java/com/gildedgames/aether/common/containers/ContainerTrade.java deleted file mode 100644 index 4c3b17684b..0000000000 --- a/src/main/java/com/gildedgames/aether/common/containers/ContainerTrade.java +++ /dev/null @@ -1,364 +0,0 @@ -package com.gildedgames.aether.common.containers; - -import com.gildedgames.aether.api.AetherAPI; -import com.gildedgames.aether.common.capabilities.entity.player.PlayerAether; -import com.gildedgames.aether.common.capabilities.entity.player.modules.PlayerTradeModule; -import com.gildedgames.aether.common.containers.slots.SlotDynamic; -import com.gildedgames.aether.common.network.NetworkingAether; -import com.gildedgames.aether.common.network.packets.trade.PacketSendInventorySize; -import com.gildedgames.aether.common.network.packets.trade.PacketTradeInventory; -import com.gildedgames.aether.common.network.packets.trade.PacketTradeMessage; -import com.gildedgames.aether.common.shop.ShopCurrencyGilt; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.EntityPlayerMP; -import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.inventory.ClickType; -import net.minecraft.inventory.Container; -import net.minecraft.inventory.InventoryBasic; -import net.minecraft.inventory.Slot; -import net.minecraft.item.ItemStack; - -import java.util.LinkedList; -import java.util.Queue; - -public class ContainerTrade extends Container -{ - private final InventoryBasic tradeInventory = new InventoryBasic("Trade", false, 16); - - private final InventoryPlayer playerInventory; - - private final PlayerTradeModule tradeModule; - - private final Queue<ConfirmationQueueItem> queue = new LinkedList<>(); - - private final boolean[][] containCheck = new boolean[4][9]; - - private boolean sentError = false; - - public ContainerTrade(final InventoryPlayer playerInventory) - { - this.playerInventory = playerInventory; - this.tradeModule = PlayerAether.getPlayer(playerInventory.player).getModule(PlayerTradeModule.class); - - for (int i = 0; i < 3; ++i) - { - for (int j = 0; j < 9; ++j) - { - this.addSlotToContainer(new Slot(playerInventory, j + i * 9 + 9, 3 + j * 18, 28 + i * 18)); - } - } - - for (int k = 0; k < 9; ++k) - { - this.addSlotToContainer(new Slot(playerInventory, k, 3 + k * 18, 86)); - } - - for (int i = 0; i < 4; ++i) - { - for (int j = 0; j < 4; ++j) - { - this.addSlotToContainer(new SlotDynamic(this.tradeInventory, j + i * 4, 200 + j * 18, 30 + i * 18)); - } - } - - this.updateSlotCheck(true); - } - - @Override - public void onContainerClosed(EntityPlayer playerIn) - { - super.onContainerClosed(playerIn); - - if (!playerIn.world.isRemote) - { - this.clearContainer(playerIn, playerIn.world, this.tradeInventory); - - ConfirmationQueueItem cur; - - while ((cur = this.queue.poll()) != null) - { - if (!playerIn.isEntityAlive() || playerIn instanceof EntityPlayerMP && ((EntityPlayerMP) playerIn).hasDisconnected()) - { - playerIn.dropItem(cur.item, false); - } - else - { - playerIn.inventory.placeItemBackInInventory(playerIn.world, cur.item); - } - } - - if (this.tradeModule.isTrading()) - { - PlayerTradeModule otherTrade = this.tradeModule.getTarget().getModule(PlayerTradeModule.class); - - otherTrade.endTrade(this.tradeModule.getPlayer()); - - this.tradeModule.setTrading(null); - } - } - } - - @Override - public ItemStack slotClick(int slotId, int dragType, ClickType clickTypeIn, EntityPlayer player) - { - ItemStack returnStack; - - if (this.tradeModule.isLockedIn() && slotId >= 36) - { - return ItemStack.EMPTY; - } - - if (clickTypeIn == ClickType.PICKUP && slotId == -999) - { - ItemStack stack = this.playerInventory.getItemStack(); - - if (!stack.isEmpty()) - { - if (dragType == 0) - { - this.queue.add(new ConfirmationQueueItem(stack, false)); - this.playerInventory.setItemStack(ItemStack.EMPTY); - } - - if (dragType == 1) - { - this.queue.add(new ConfirmationQueueItem(stack.splitStack(1), false)); - } - } - - returnStack = ItemStack.EMPTY; - } - else if (clickTypeIn == ClickType.THROW && this.playerInventory.getItemStack().isEmpty() && slotId >= 0) - { - Slot slot2 = this.inventorySlots.get(slotId); - - if (slot2 != null && slot2.getHasStack() && slot2.canTakeStack(player)) - { - ItemStack itemStack4 = slot2.decrStackSize(dragType == 0 ? 1 : slot2.getStack().getCount()); - slot2.onTake(player, itemStack4); - this.queue.add(new ConfirmationQueueItem(itemStack4, false)); - } - - returnStack = ItemStack.EMPTY; - } - else - { - ItemStack stack = super.slotClick(slotId, dragType, clickTypeIn, player); - - this.updateSlotCheck(false); - - returnStack = stack; - } - - this.compressAndSendStacks(clickTypeIn == ClickType.PICKUP_ALL || slotId >= 36); - - return returnStack; - } - - private void compressAndSendStacks(boolean forceSend) - { - boolean change = false; - double value = 0; - - for (int i = 36; i < 52; i++) - { - ItemStack stack = this.getSlot(i).getStack(); - - value += AetherAPI.content().currency().getValue(stack, ShopCurrencyGilt.class); - - if (this.mergeItemStack(stack, 36, i, false)) - { - change = true; - } - } - - this.tradeModule.setValue(value); - - if (change || forceSend) - { - this.sendInventory(); - } - } - - public void updateSlotCheck(boolean forceSend) - { - int totalSlots = 0; - - for (int i = 0; i < 4; ++i) - { - for (int j = 0; j < 9; ++j) - { - boolean taken = !this.playerInventory.getStackInSlot(i * 9 + j).isEmpty(); - - this.containCheck[i][j] = taken; - - if (!taken) - { - totalSlots++; - } - } - } - - if (!this.tradeModule.getWorld().isRemote) - { - if (totalSlots != this.tradeModule.getOpenSlots() || forceSend) - { - NetworkingAether.sendPacketToPlayer(new PacketSendInventorySize((byte) totalSlots), this.tradeModule.getTargetMP()); - } - - this.tradeModule.setOpenSlots(totalSlots); - this.tradeModule.getTarget().getModule(PlayerTradeModule.class).setTradeSlots(totalSlots); - } - - this.tradeModule.setOpenSlots(totalSlots); - } - - private void sendInventory() - { - if (!this.tradeModule.getWorld().isRemote) - { - NetworkingAether.sendPacketToPlayer(new PacketTradeInventory(this.tradeInventory), this.tradeModule.getTargetMP()); - } - } - - public void updateSlots(int totalSlots) - { - boolean error = false; - - for (int i = 0; i < 16; i++) - { - boolean enabled = i < totalSlots; - SlotDynamic slot = ((SlotDynamic) this.getSlot(36 + i)); - - if (!enabled && slot.getHasStack()) - { - error = true; - } - - slot.setEnabled(enabled); - } - - if (!this.tradeModule.getWorld().isRemote) - { - if (error && !this.sentError) - { - this.tradeModule.sizeError(true); - this.tradeModule.getTarget().getModule(PlayerTradeModule.class).sizeError(true); - NetworkingAether.sendPacketToPlayer(new PacketTradeMessage("aether.trade.message.tradewarn"), this.tradeModule.getPlayerMP()); - NetworkingAether.sendPacketToPlayer(new PacketTradeMessage("aether.trade.message.inventorywarn"), this.tradeModule.getTargetMP()); - error = true; - } - else if (!error && this.sentError) - { - this.tradeModule.sizeError(false); - this.tradeModule.getTarget().getModule(PlayerTradeModule.class).sizeError(false); - } - } - - this.sentError = error; - } - - public void addItemToQueue(ItemStack itemStack) - { - for (int i = 0; i < 4; ++i) - { - for (int j = 0; j < 9; ++j) - { - ItemStack stack = this.playerInventory.getStackInSlot(i * 9 + j); - - if (stack.getItem().equals(itemStack.getItem()) && !this.containCheck[i][j]) - { - this.queue.add(new ConfirmationQueueItem(stack.copy(), true)); - - stack.setCount(0); - - this.playerInventory.markDirty(); - - break; - } - } - } - } - - @Override - public boolean canInteractWith(final EntityPlayer playerIn) - { - return playerIn.equals(this.playerInventory.player); - } - - @Override - public ItemStack transferStackInSlot(final EntityPlayer playerIn, final int index) - { - ItemStack itemstack = ItemStack.EMPTY; - final Slot slot = this.inventorySlots.get(index); - - if (slot != null && slot.getHasStack() && !this.tradeModule.isLockedIn()) - { - final ItemStack itemStack1 = slot.getStack(); - itemstack = itemStack1.copy(); - - if (index < 36) - { - if (this.tradeModule.getTradeSlots() == 0 || !this - .mergeItemStack(itemStack1, 36, (this.tradeModule.getTradeSlots() < 16 ? 36 + this.tradeModule.getTradeSlots() : 52), false)) - { - return ItemStack.EMPTY; - } - - slot.onSlotChange(itemStack1, itemstack); - } - else - { - if (!this.mergeItemStack(itemStack1, 0, 36, true)) - { - return ItemStack.EMPTY; - } - - slot.onSlotChange(itemStack1, itemstack); - } - - if (itemStack1.isEmpty()) - { - slot.putStack(ItemStack.EMPTY); - } - else - { - slot.onSlotChanged(); - } - - if (itemStack1.getCount() == itemstack.getCount()) - { - return ItemStack.EMPTY; - } - - slot.onTake(playerIn, itemStack1); - - this.sendInventory(); - } - - return itemstack; - } - - class ConfirmationQueueItem - { - private ItemStack item; - - private boolean pickUp; - - private ConfirmationQueueItem(ItemStack item, boolean pickUp) - { - this.item = item; - this.pickUp = pickUp; - } - - public ItemStack getItem() - { - return this.item; - } - - public boolean isPickUp() - { - return this.pickUp; - } - } -} diff --git a/src/main/java/com/gildedgames/aether/common/containers/guidebook/ContainerGuidebookInventory.java b/src/main/java/com/gildedgames/aether/common/containers/guidebook/ContainerGuidebookInventory.java deleted file mode 100644 index aaaf31f635..0000000000 --- a/src/main/java/com/gildedgames/aether/common/containers/guidebook/ContainerGuidebookInventory.java +++ /dev/null @@ -1,239 +0,0 @@ -package com.gildedgames.aether.common.containers.guidebook; - -import com.gildedgames.aether.api.AetherAPI; -import com.gildedgames.aether.api.items.equipment.ItemEquipmentSlot; -import com.gildedgames.aether.api.items.properties.IItemProperties; -import com.gildedgames.aether.api.player.IPlayerAether; -import com.gildedgames.aether.api.player.inventory.IInventoryEquipment; -import com.gildedgames.aether.common.capabilities.entity.player.modules.PlayerEquipmentModule; -import com.gildedgames.aether.common.containers.slots.SlotEquipment; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.inventory.*; -import net.minecraft.item.ItemStack; - -public class ContainerGuidebookInventory extends ContainerPlayer -{ - private static final InventoryBasic dumbInventory = new InventoryBasic("tmp", true, 54); - - private final IPlayerAether aePlayer; - - private final IInventoryEquipment inventoryEquipment; - - - private Slot binSlot; - - public ContainerGuidebookInventory(IPlayerAether aePlayer) - { - super(aePlayer.getEntity().inventory, false, aePlayer.getEntity()); - - this.aePlayer = aePlayer; - this.inventoryEquipment = aePlayer.getModule(PlayerEquipmentModule.class).getInventory(); - - this.createSlots(); - } - - @Override - public void detectAndSendChanges() - { - super.detectAndSendChanges(); - - for (int i = 0; i < this.inventorySlots.size(); ++i) - { - ItemStack itemstack = this.inventorySlots.get(i).getStack(); - - if (!itemstack.isEmpty()) - { - itemstack.getItem().onUpdate(itemstack, this.aePlayer.getEntity().getEntityWorld(), this.aePlayer.getEntity(), i, false); - } - } - } - - private void createSlots() - { - int widthOffset = 180 - 16; - int heightOffset = -15; - - for (Slot slot : this.inventorySlots) - { - slot.xPos += widthOffset; - slot.yPos += heightOffset; - } - - Slot helmet = this.inventorySlots.get(5); - Slot chestplate = this.inventorySlots.get(6); - Slot leggings = this.inventorySlots.get(7); - Slot boots = this.inventorySlots.get(8); - Slot shield = this.inventorySlots.get(45); - - shield.xPos = 49; - shield.yPos = 57; - - helmet.xPos = 31; - helmet.yPos = 3; - - chestplate.xPos = 31; - chestplate.yPos = 21; - - leggings.xPos = 31; - leggings.yPos = 39; - - boots.xPos = 31; - boots.yPos = 57; - - Slot craftResult = this.inventorySlots.get(0); - - Slot craft1 = this.inventorySlots.get(1); - Slot craft2 = this.inventorySlots.get(2); - Slot craft3 = this.inventorySlots.get(3); - Slot craft4 = this.inventorySlots.get(4); - - this.binSlot = new Slot(ContainerGuidebookInventory.dumbInventory, this.inventorySlots.size(), 197, 27); - - if (this.aePlayer.getEntity().capabilities.isCreativeMode) - { - this.addSlotToContainer(this.binSlot); - - craftResult.xPos -= 27; - - craft1.xPos -= 27; - craft2.xPos -= 27; - craft3.xPos -= 27; - craft4.xPos -= 27; - - craftResult.yPos += 14; - - craft1.yPos += 14; - craft2.yPos += 14; - craft3.yPos += 14; - craft4.yPos += 14; - } - else - { - craftResult.xPos -= 46; - - craft1.xPos -= 46; - craft2.xPos -= 46; - craft3.xPos -= 46; - craft4.xPos -= 46; - - craftResult.yPos += 14; - - craft1.yPos += 14; - craft2.yPos += 14; - craft3.yPos += 14; - craft4.yPos += 14; - } - - int inventorySlotId = 0; - - this.addSlotToContainer(new SlotEquipment(this.inventoryEquipment, ItemEquipmentSlot.RELIC, inventorySlotId++, - 13, 3)); - this.addSlotToContainer(new SlotEquipment(this.inventoryEquipment, ItemEquipmentSlot.RELIC, inventorySlotId++, - 49, 3)); - - this.addSlotToContainer(new SlotEquipment(this.inventoryEquipment, ItemEquipmentSlot.HANDWEAR, inventorySlotId++, - 49, 21)); - - this.addSlotToContainer(new SlotEquipment(this.inventoryEquipment, ItemEquipmentSlot.RING, inventorySlotId++, - 13, 39)); - this.addSlotToContainer(new SlotEquipment(this.inventoryEquipment, ItemEquipmentSlot.RING, inventorySlotId++, - 13, 57)); - - this.addSlotToContainer(new SlotEquipment(this.inventoryEquipment, ItemEquipmentSlot.NECKWEAR, inventorySlotId++, - 13, 21)); - - this.addSlotToContainer(new SlotEquipment(this.inventoryEquipment, ItemEquipmentSlot.COMPANION, inventorySlotId++, - 49, 39)); - - for (int x = 0; x < 6; x++) - { - int x1 = 24 + (x * 18); - int y1 = 127; - - this.addSlotToContainer(new SlotEquipment(this.inventoryEquipment, ItemEquipmentSlot.CHARM, inventorySlotId, x1, y1)); - inventorySlotId++; - } - } - - @Override - public ItemStack slotClick(int slotId, int dragType, ClickType clickTypeIn, EntityPlayer player) - { - if (slotId == this.binSlot.slotNumber && player.capabilities.isCreativeMode) - { - this.aePlayer.getEntity().inventory.setItemStack(ItemStack.EMPTY); - } - - return super.slotClick(slotId, dragType, clickTypeIn, player); - } - - private int getNextEmptySlot(ItemEquipmentSlot type) - { - for (int i = 0; i < this.inventorySlots.size(); i++) - { - Slot slot = this.inventorySlots.get(i); - - if (slot.getStack().isEmpty() && slot instanceof SlotEquipment) - { - if (((SlotEquipment) slot).getEquipmentType() == type) - { - return i; - } - } - - if (type == ItemEquipmentSlot.OFFHAND && slot.getStack().isEmpty() && slot.getSlotIndex() == 40) - { - return i; - } - } - - return -1; - } - - @Override - public ItemStack transferStackInSlot(EntityPlayer player, int slotNumber) - { - Slot slot = this.inventorySlots.get(slotNumber); - - if (slotNumber == this.binSlot.slotNumber && this.aePlayer.getEntity().capabilities.isCreativeMode) - { - this.aePlayer.getEntity().inventory.clear(); - - this.inventoryEquipment.clear(); - } - - if (slot != null && slot.getHasStack()) - { - ItemStack stack = slot.getStack(); - - if (!(slot instanceof SlotEquipment) && !(slot instanceof SlotCrafting)) - { - int destIndex = -1; - - IItemProperties properties = AetherAPI.content().items().getProperties(stack.getItem()); - - if (properties.getEquipmentSlot() != ItemEquipmentSlot.NONE) - { - destIndex = this.getNextEmptySlot(properties.getEquipmentSlot()); - } - - if (destIndex >= 0) - { - Slot accessorySlot = this.inventorySlots.get(destIndex); - accessorySlot.putStack(stack); - - slot.putStack(ItemStack.EMPTY); - - return stack; - } - } - } - - return super.transferStackInSlot(player, slotNumber); - } - - @Override - public boolean canInteractWith(EntityPlayer playerIn) - { - return true; - } -} diff --git a/src/main/java/com/gildedgames/aether/common/containers/guidebook/EmptyContainer.java b/src/main/java/com/gildedgames/aether/common/containers/guidebook/EmptyContainer.java deleted file mode 100644 index 986c578321..0000000000 --- a/src/main/java/com/gildedgames/aether/common/containers/guidebook/EmptyContainer.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.gildedgames.aether.common.containers.guidebook; - -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.inventory.Container; - -public class EmptyContainer extends Container -{ - @Override - public boolean canInteractWith(EntityPlayer playerIn) - { - return true; - } -} diff --git a/src/main/java/com/gildedgames/aether/common/containers/inventory/InventoryCraftResultSimple.java b/src/main/java/com/gildedgames/aether/common/containers/inventory/InventoryCraftResultSimple.java deleted file mode 100644 index 621e30b958..0000000000 --- a/src/main/java/com/gildedgames/aether/common/containers/inventory/InventoryCraftResultSimple.java +++ /dev/null @@ -1,14 +0,0 @@ -package com.gildedgames.aether.common.containers.inventory; - -import net.minecraft.inventory.InventoryCraftResult; - -public class InventoryCraftResultSimple extends InventoryCraftResult -{ - - @Override - public int getSizeInventory() - { - return 64; - } - -} diff --git a/src/main/java/com/gildedgames/aether/common/containers/inventory/InventoryEquipment.java b/src/main/java/com/gildedgames/aether/common/containers/inventory/InventoryEquipment.java deleted file mode 100644 index 4c8c8f07f4..0000000000 --- a/src/main/java/com/gildedgames/aether/common/containers/inventory/InventoryEquipment.java +++ /dev/null @@ -1,231 +0,0 @@ -package com.gildedgames.aether.common.containers.inventory; - -import com.gildedgames.aether.api.AetherAPI; -import com.gildedgames.aether.api.items.equipment.ItemEquipmentSlot; -import com.gildedgames.aether.api.player.IPlayerAether; -import com.gildedgames.aether.api.player.inventory.IInventoryEquipment; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.inventory.ItemStackHelper; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.nbt.NBTTagList; -import net.minecraft.util.NonNullList; -import net.minecraft.util.text.TextComponentBase; -import net.minecraft.util.text.TextComponentTranslation; - -import javax.annotation.Nonnull; - -public class InventoryEquipment implements IInventoryEquipment -{ - private static final ItemEquipmentSlot[] SLOT_TYPES = new ItemEquipmentSlot[] - { - ItemEquipmentSlot.RELIC, - ItemEquipmentSlot.RELIC, - ItemEquipmentSlot.HANDWEAR, - ItemEquipmentSlot.RING, - ItemEquipmentSlot.RING, - ItemEquipmentSlot.NECKWEAR, - ItemEquipmentSlot.COMPANION, - ItemEquipmentSlot.CHARM, - ItemEquipmentSlot.CHARM, - ItemEquipmentSlot.CHARM, - ItemEquipmentSlot.CHARM, - ItemEquipmentSlot.CHARM, - ItemEquipmentSlot.CHARM - }; - - private final IPlayerAether aePlayer; - - private final NonNullList<ItemStack> inventory = NonNullList.withSize(13, ItemStack.EMPTY); - - public InventoryEquipment(final IPlayerAether aePlayer) - { - this.aePlayer = aePlayer; - } - - @Override - public int getSizeInventory() - { - return this.inventory.size(); - } - - @Override - public boolean isEmpty() - { - for (final ItemStack itemstack : this.inventory) - { - if (!itemstack.isEmpty()) - { - return false; - } - } - - return true; - } - - @Override - public ItemStack getStackInSlot(final int index) - { - return index >= 0 && index < this.inventory.size() ? this.inventory.get(index) : ItemStack.EMPTY; - } - - @Override - public ItemStack decrStackSize(final int index, final int count) - { - return ItemStackHelper.getAndRemove(this.inventory, index); - } - - @Override - public ItemStack removeStackFromSlot(final int index) - { - final ItemStack itemstack = this.inventory.get(index); - - if (itemstack.isEmpty()) - { - return ItemStack.EMPTY; - } - else - { - this.inventory.set(index, ItemStack.EMPTY); - - return itemstack; - } - } - - @Override - public void setInventorySlotContents(final int index, final ItemStack stack) - { - this.inventory.set(index, stack); - - this.markDirty(); - } - - @Override - public int getNextEmptySlotForType(final ItemEquipmentSlot type) - { - for (int i = 0; i < this.inventory.size(); i++) - { - if (this.inventory.get(i).isEmpty() && SLOT_TYPES[i] == type) - { - return i; - } - } - - return -1; - } - - @Override - public int getInventoryStackLimit() - { - return 1; - } - - @Override - public void markDirty() - { - } - - @Override - public boolean isUsableByPlayer(final EntityPlayer player) - { - return !this.aePlayer.getEntity().isDead && player.getDistanceSq(this.aePlayer.getEntity()) <= 64.0D; - } - - @Override - public void openInventory(final EntityPlayer player) - { - } - - @Override - public void closeInventory(@Nonnull final EntityPlayer player) - { - } - - @Override - public boolean isItemValidForSlot(final int index, @Nonnull final ItemStack stack) - { - final ItemEquipmentSlot slot = AetherAPI.content().items().getProperties(stack.getItem()).getEquipmentSlot(); - - return slot == SLOT_TYPES[index]; - } - - @Override - public int getField(final int id) - { - return 0; - } - - @Override - public void setField(final int id, final int value) - { - } - - @Override - public int getFieldCount() - { - return 0; - } - - @Override - public void clear() - { - this.inventory.clear(); - } - - @Override - public String getName() - { - return "inventory.accessories"; - } - - @Override - public boolean hasCustomName() - { - return false; - } - - @Override - public TextComponentBase getDisplayName() - { - return new TextComponentTranslation(this.getName()); - } - - @Override - public void write(final NBTTagCompound output) - { - final NBTTagList list = new NBTTagList(); - - for (int i = 0; i < this.inventory.size(); ++i) - { - final ItemStack stack = this.inventory.get(i); - - if (!stack.isEmpty()) - { - final NBTTagCompound stackCompound = new NBTTagCompound(); - stackCompound.setByte("Slot", (byte) i); - - stack.writeToNBT(stackCompound); - - list.appendTag(stackCompound); - } - } - - output.setTag("Items", list); - } - - @Override - public void read(final NBTTagCompound input) - { - final NBTTagList list = input.getTagList("Items", 10); - - for (int i = 0; i < list.tagCount(); i++) - { - final NBTTagCompound compound = list.getCompoundTagAt(i); - - final int slot = compound.getByte("Slot") & 255; - - this.inventory.set(slot, new ItemStack(compound)); - } - } - -} diff --git a/src/main/java/com/gildedgames/aether/common/containers/overlays/TabGroup.java b/src/main/java/com/gildedgames/aether/common/containers/overlays/TabGroup.java deleted file mode 100644 index 3fe7659e93..0000000000 --- a/src/main/java/com/gildedgames/aether/common/containers/overlays/TabGroup.java +++ /dev/null @@ -1,98 +0,0 @@ -package com.gildedgames.aether.common.containers.overlays; - -import com.gildedgames.aether.api.registry.tab.ITab; -import com.gildedgames.aether.api.registry.tab.ITabGroup; - -import java.util.ArrayList; -import java.util.List; - -public class TabGroup<T extends ITab> implements ITabGroup<T> -{ - - protected final ArrayList<T> tabs = new ArrayList<>(); - - protected T selectedTab, rememberedTab; - - protected boolean rememberSelectedTab = true; - - @Override - public boolean getRememberSelectedTab() - { - return this.rememberSelectedTab; - } - - @Override - public void setRememberSelectedTab(boolean rememberSelectedTab) - { - this.rememberSelectedTab = rememberSelectedTab; - } - - @Override - public T getSelectedTab() - { - return this.selectedTab; - } - - @Override - public void setSelectedTab(T tab) - { - this.selectedTab = tab; - } - - @Override - public T getRememberedTab() - { - return this.rememberedTab; - } - - @Override - public void setRememberedTab(T tab) - { - this.rememberedTab = tab; - } - - @Override - public void add(T tab) - { - this.tabs.add(tab); - } - - @Override - public int getTabAmount() - { - int amount = 0; - - for (T tabDescription : this.tabs) - { - if (tabDescription.isEnabled()) - { - amount++; - } - } - - return amount; - } - - @Override - public List<T> getEnabledTabs() - { - List<T> enabledTabs = new ArrayList<>(); - - for (T tabDescription : this.tabs) - { - if (tabDescription.isEnabled()) - { - enabledTabs.add(tabDescription); - } - } - - return enabledTabs; - } - - @Override - public List<T> getTabs() - { - return this.tabs; - } - -} diff --git a/src/main/java/com/gildedgames/aether/common/containers/overlays/TabGroupHandler.java b/src/main/java/com/gildedgames/aether/common/containers/overlays/TabGroupHandler.java deleted file mode 100644 index 2f707fb423..0000000000 --- a/src/main/java/com/gildedgames/aether/common/containers/overlays/TabGroupHandler.java +++ /dev/null @@ -1,78 +0,0 @@ -package com.gildedgames.aether.common.containers.overlays; - -import com.gildedgames.aether.api.registry.tab.ITab; -import com.gildedgames.aether.api.registry.tab.ITabClient; -import com.gildedgames.aether.api.registry.tab.ITabGroup; -import com.gildedgames.aether.api.registry.tab.ITabGroupHandler; -import com.gildedgames.aether.common.AetherCore; -import com.google.common.collect.BiMap; -import com.google.common.collect.HashBiMap; -import net.minecraft.client.gui.GuiScreen; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; - -/** - * This is what contains {@link ITab}s for a {@link GuiScreen}'s tab interface. - * @author Brandon Pearce - */ -public class TabGroupHandler implements ITabGroupHandler -{ - public final BiMap<Integer, String> idMappings = HashBiMap.create(); - - @SideOnly(Side.CLIENT) - public TabGroup<ITabClient> clientGroup; - - public final TabGroup<ITab> serverGroup; - - public int discriminant; - - public TabGroupHandler() - { - if (AetherCore.isClient()) - { - this.clientGroup = new TabGroup<>(); - } - - this.serverGroup = new TabGroup<>(); - } - - @Override - public void registerServerTab(ITab tab) - { - if (!this.idMappings.inverse().containsKey(tab.getUnlocalizedName())) - { - this.idMappings.put(this.discriminant++, tab.getUnlocalizedName()); - } - - this.getServerGroup().add(tab); - } - - @Override - public void registerClientTab(ITabClient tab) - { - if (!this.idMappings.inverse().containsKey(tab.getUnlocalizedName())) - { - this.idMappings.put(this.discriminant++, tab.getUnlocalizedName()); - } - - this.getClientGroup().add(tab); - } - - @Override - public int getDiscriminant(ITab tab) - { - return this.idMappings.inverse().get(tab.getUnlocalizedName()); - } - - @Override - public ITabGroup<ITabClient> getClientGroup() - { - return this.clientGroup; - } - - @Override - public ITabGroup<ITab> getServerGroup() - { - return this.serverGroup; - } -} diff --git a/src/main/java/com/gildedgames/aether/common/containers/overlays/TabRegistry.java b/src/main/java/com/gildedgames/aether/common/containers/overlays/TabRegistry.java deleted file mode 100644 index 3a7d197379..0000000000 --- a/src/main/java/com/gildedgames/aether/common/containers/overlays/TabRegistry.java +++ /dev/null @@ -1,74 +0,0 @@ -package com.gildedgames.aether.common.containers.overlays; - -import com.gildedgames.aether.api.registry.tab.ITab; -import com.gildedgames.aether.api.registry.tab.ITabGroupHandler; -import com.gildedgames.aether.api.registry.tab.ITabRegistry; -import com.gildedgames.aether.common.AetherCore; -import com.gildedgames.aether.common.containers.overlays.tabs.TabBackpack; -import net.minecraft.client.gui.GuiScreen; - -import java.util.HashMap; -import java.util.Map; - -/** - * This is used to implement Tab functionality within various {@link GuiScreen} interfaces. - * @author Brandon Pearce - */ -public class TabRegistry implements ITabRegistry -{ - private final ITabGroupHandler inventoryTabGroup = new TabGroupHandler(); - - private final Map<Integer, ITabGroupHandler> registeredGroups = new HashMap<>(); - - private final ITab backpackTab = new TabBackpack(); - - private ITabGroupHandler activeGroup; - - public TabRegistry() - { - this.getInventoryGroup().registerServerTab(this.getBackpackTab()); - - if (AetherCore.isClient()) - { - this.getInventoryGroup().registerClientTab(new TabBackpack.Client()); - } - - this.registerGroup(this.inventoryTabGroup); - } - - @Override - public ITabGroupHandler getInventoryGroup() - { - return this.inventoryTabGroup; - } - - @Override - public ITab getBackpackTab() - { - return this.backpackTab; - } - - @Override - public Map<Integer, ITabGroupHandler> getRegisteredTabGroups() - { - return this.registeredGroups; - } - - @Override - public void registerGroup(ITabGroupHandler tabGroup) - { - this.getRegisteredTabGroups().put(this.getRegisteredTabGroups().size(), tabGroup); - } - - @Override - public ITabGroupHandler getActiveGroup() - { - return this.activeGroup; - } - - @Override - public void setActiveGroup(ITabGroupHandler activeGroup) - { - this.activeGroup = activeGroup; - } -} diff --git a/src/main/java/com/gildedgames/aether/common/containers/overlays/tabs/TabBackpack.java b/src/main/java/com/gildedgames/aether/common/containers/overlays/tabs/TabBackpack.java deleted file mode 100644 index c6ceac814c..0000000000 --- a/src/main/java/com/gildedgames/aether/common/containers/overlays/tabs/TabBackpack.java +++ /dev/null @@ -1,80 +0,0 @@ -package com.gildedgames.aether.common.containers.overlays.tabs; - -import com.gildedgames.aether.api.registry.tab.ITab; -import com.gildedgames.aether.api.registry.tab.ITabClient; -import com.gildedgames.aether.common.AetherCore; -import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.GuiScreen; -import net.minecraft.client.gui.inventory.GuiContainerCreative; -import net.minecraft.client.gui.inventory.GuiInventory; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.util.ResourceLocation; -import net.minecraft.util.math.Vec2f; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; - -/** - * The {@link ITab} representation of the Minecraft's vanilla Inventory {@link GuiScreen} - * @author Brandon Pearce - */ -public class TabBackpack implements ITab -{ - @Override - public String getUnlocalizedName() - { - return "tab.backpack.name"; - } - - @Override - public void onOpen(EntityPlayer player) - { - } - - @Override - public boolean isEnabled() - { - return true; - } - - @Override - public boolean isRemembered() - { - return true; - } - - @SideOnly(Side.CLIENT) - public static class Client extends TabBackpack implements ITabClient - { - private static final ResourceLocation ICON = AetherCore.getResource("textures/gui/tabs/backpack.png"); - - @Override - public boolean isTabValid(GuiScreen gui) - { - Class<? extends GuiScreen> clazz = gui.getClass(); - return clazz == GuiInventory.class || clazz == GuiContainerCreative.class; - } - - @Override - public void onOpen(EntityPlayer player) - { - Minecraft.getMinecraft().displayGuiScreen(new GuiInventory(player)); - } - - @Override - public void onClose(EntityPlayer player) - { - } - - @Override - public ResourceLocation getIcon() - { - return TabBackpack.Client.ICON; - } - - @Override - public Vec2f getCustomTabVec2() - { - return null; - } - } -} diff --git a/src/main/java/com/gildedgames/aether/common/containers/overlays/tabs/TabBugReport.java b/src/main/java/com/gildedgames/aether/common/containers/overlays/tabs/TabBugReport.java deleted file mode 100644 index b5a56f4d34..0000000000 --- a/src/main/java/com/gildedgames/aether/common/containers/overlays/tabs/TabBugReport.java +++ /dev/null @@ -1,73 +0,0 @@ -package com.gildedgames.aether.common.containers.overlays.tabs; - -import com.gildedgames.aether.api.registry.tab.ITab; -import com.gildedgames.aether.api.registry.tab.ITabClient; -import com.gildedgames.aether.client.gui.container.guidebook.AbstractGuidebookPage; -import com.gildedgames.aether.common.AetherCore; -import net.minecraft.client.gui.GuiScreen; -import net.minecraft.client.gui.inventory.GuiInventory; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.util.ResourceLocation; -import net.minecraft.util.math.Vec2f; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; - -public class TabBugReport implements ITab -{ - @Override - public String getUnlocalizedName() - { - return "tab.bug_report"; - } - - @Override - public void onOpen(EntityPlayer player) - { - // TODO: Re-implement - // if (player.worldObj.isRemote) - // { - // UiManager.inst().open("bugReportMenu", new MinecraftGui(new BugReportMenu())); - // } - } - - @Override - public boolean isEnabled() - { - return true; - } - - @Override - public boolean isRemembered() - { - return false; - } - - @SideOnly(Side.CLIENT) - public static class Client extends TabBugReport implements ITabClient - { - private static final ResourceLocation ICON = AetherCore.getResource("textures/gui/tabs/bug_report.png"); - - @Override - public boolean isTabValid(GuiScreen gui) - { - return gui instanceof GuiInventory || gui instanceof AbstractGuidebookPage; - } - - @Override - public void onClose(EntityPlayer player) - { - } - - @Override - public ResourceLocation getIcon() - { - return Client.ICON; - } - - @Override - public Vec2f getCustomTabVec2() - { - return null; - } - } -} diff --git a/src/main/java/com/gildedgames/aether/common/containers/overlays/tabs/TabChat.java b/src/main/java/com/gildedgames/aether/common/containers/overlays/tabs/TabChat.java deleted file mode 100644 index 1cee5b40e7..0000000000 --- a/src/main/java/com/gildedgames/aether/common/containers/overlays/tabs/TabChat.java +++ /dev/null @@ -1,70 +0,0 @@ -package com.gildedgames.aether.common.containers.overlays.tabs; - -import com.gildedgames.aether.api.registry.tab.ITab; -import com.gildedgames.aether.api.registry.tab.ITabClient; -import com.gildedgames.aether.common.AetherCore; -import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.GuiChat; -import net.minecraft.client.gui.GuiScreen; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.util.ResourceLocation; -import net.minecraft.util.math.Vec2f; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; - -public class TabChat implements ITab -{ - @Override - public String getUnlocalizedName() - { - return "tab.chat.name"; - } - - @Override - public void onOpen(EntityPlayer player) - { - Minecraft.getMinecraft().displayGuiScreen(new GuiChat("")); - } - - @Override - public boolean isEnabled() - { - return true; - } - - @Override - public boolean isRemembered() - { - return true; - } - - @SideOnly(Side.CLIENT) - public static class Client extends TabChat implements ITabClient - { - private static final ResourceLocation ICON = AetherCore.getResource("textures/gui/tabs/chat.png"); - - @Override - public void onClose(EntityPlayer player) - { - - } - - @Override - public boolean isTabValid(GuiScreen gui) - { - return gui instanceof GuiChat; - } - - @Override - public ResourceLocation getIcon() - { - return TabChat.Client.ICON; - } - - @Override - public Vec2f getCustomTabVec2() - { - return null; - } - } -} diff --git a/src/main/java/com/gildedgames/aether/common/containers/overlays/tabs/TabPatronRewards.java b/src/main/java/com/gildedgames/aether/common/containers/overlays/tabs/TabPatronRewards.java deleted file mode 100644 index 559aa258ef..0000000000 --- a/src/main/java/com/gildedgames/aether/common/containers/overlays/tabs/TabPatronRewards.java +++ /dev/null @@ -1,74 +0,0 @@ -package com.gildedgames.aether.common.containers.overlays.tabs; - -import com.gildedgames.aether.api.registry.tab.ITab; -import com.gildedgames.aether.api.registry.tab.ITabClient; -import com.gildedgames.aether.client.gui.container.guidebook.AbstractGuidebookPage; -import com.gildedgames.aether.client.gui.misc.GuiPatronRewards; -import com.gildedgames.aether.common.AetherCore; -import com.gildedgames.aether.common.network.AetherGuiHandler; -import net.minecraft.client.gui.GuiScreen; -import net.minecraft.client.gui.inventory.GuiInventory; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.util.ResourceLocation; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.Vec2f; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; - -public class TabPatronRewards implements ITab -{ - @Override - public String getUnlocalizedName() - { - return "tab.patron_rewards"; - } - - @Override - public void onOpen(EntityPlayer player) - { - BlockPos pos = player.getPosition(); - - player.openGui(AetherCore.MOD_ID, AetherGuiHandler.PATRON_REWARDS_ID, player.world, pos.getX(), pos.getY(), pos.getZ()); - } - - @Override - public boolean isEnabled() - { - return true; - } - - @Override - public boolean isRemembered() - { - return false; - } - - @SideOnly(Side.CLIENT) - public static class Client extends TabPatronRewards implements ITabClient - { - private static final ResourceLocation ICON = AetherCore.getResource("textures/gui/tabs/patron_rewards.png"); - - @Override - public boolean isTabValid(GuiScreen gui) - { - return gui instanceof GuiInventory || gui instanceof AbstractGuidebookPage || gui instanceof GuiPatronRewards; - } - - @Override - public void onClose(EntityPlayer player) - { - } - - @Override - public ResourceLocation getIcon() - { - return Client.ICON; - } - - @Override - public Vec2f getCustomTabVec2() - { - return null; - } - } -} diff --git a/src/main/java/com/gildedgames/aether/common/containers/overlays/tabs/guidebook/TabDiscovery.java b/src/main/java/com/gildedgames/aether/common/containers/overlays/tabs/guidebook/TabDiscovery.java deleted file mode 100644 index b6f20900b3..0000000000 --- a/src/main/java/com/gildedgames/aether/common/containers/overlays/tabs/guidebook/TabDiscovery.java +++ /dev/null @@ -1,72 +0,0 @@ -package com.gildedgames.aether.common.containers.overlays.tabs.guidebook; - -import com.gildedgames.aether.api.registry.tab.ITab; -import com.gildedgames.aether.api.registry.tab.ITabClient; -import com.gildedgames.aether.client.gui.container.guidebook.AbstractGuidebookPage; -import com.gildedgames.aether.common.AetherCore; -import com.gildedgames.aether.common.network.AetherGuiHandler; -import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.GuiScreen; -import net.minecraft.client.gui.inventory.GuiInventory; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.util.ResourceLocation; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.Vec2f; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; - -public class TabDiscovery implements ITab -{ - @Override - public String getUnlocalizedName() - { - return "tab.guidebook.discovery"; - } - - @Override - public void onOpen(final EntityPlayer player) - { - final BlockPos pos = player.getPosition(); - - player.openGui(AetherCore.MOD_ID, AetherGuiHandler.DISCOVERY_ID, player.world, pos.getX(), pos.getY(), pos.getZ()); - } - - @Override - public boolean isEnabled() - { - return (Minecraft.getMinecraft().currentScreen instanceof AbstractGuidebookPage); - } - - @Override - public boolean isRemembered() - { - return true; - } - - @SideOnly(Side.CLIENT) - public static class Client extends TabDiscovery implements ITabClient - { - @Override - public boolean isTabValid(final GuiScreen gui) - { - return gui instanceof GuiInventory || gui instanceof AbstractGuidebookPage; - } - - @Override - public void onClose(final EntityPlayer player) - { - } - - @Override - public ResourceLocation getIcon() - { - return null; - } - - @Override - public Vec2f getCustomTabVec2() - { - return new Vec2f(52.f, 0.f); - } - } -} diff --git a/src/main/java/com/gildedgames/aether/common/containers/overlays/tabs/guidebook/TabEquipment.java b/src/main/java/com/gildedgames/aether/common/containers/overlays/tabs/guidebook/TabEquipment.java deleted file mode 100644 index dadea2dd46..0000000000 --- a/src/main/java/com/gildedgames/aether/common/containers/overlays/tabs/guidebook/TabEquipment.java +++ /dev/null @@ -1,73 +0,0 @@ -package com.gildedgames.aether.common.containers.overlays.tabs.guidebook; - -import com.gildedgames.aether.api.registry.tab.ITab; -import com.gildedgames.aether.api.registry.tab.ITabClient; -import com.gildedgames.aether.client.gui.container.guidebook.AbstractGuidebookPage; -import com.gildedgames.aether.common.AetherCore; -import com.gildedgames.aether.common.network.AetherGuiHandler; -import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.GuiScreen; -import net.minecraft.client.gui.inventory.GuiInventory; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.util.ResourceLocation; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.Vec2f; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; - -public class TabEquipment implements ITab -{ - @Override - public String getUnlocalizedName() - { - return "tab.guidebook.equipment"; - } - - @Override - public void onOpen(EntityPlayer player) - { - BlockPos pos = player.getPosition(); - - player.openGui(AetherCore.MOD_ID, AetherGuiHandler.INVENTORY_ID, player.world, pos.getX(), pos.getY(), pos.getZ()); - } - - @Override - public boolean isEnabled() - { - return Minecraft.getMinecraft().currentScreen instanceof AbstractGuidebookPage; - } - - @Override - public boolean isRemembered() - { - return true; - } - - @SideOnly(Side.CLIENT) - public static class Client extends TabEquipment implements ITabClient - { - - @Override - public boolean isTabValid(GuiScreen gui) - { - return gui instanceof GuiInventory || gui instanceof AbstractGuidebookPage; - } - - @Override - public void onClose(EntityPlayer player) - { - } - - @Override - public ResourceLocation getIcon() - { - return null; - } - - @Override - public Vec2f getCustomTabVec2() - { - return new Vec2f(0.f, 0.f); - } - } -} diff --git a/src/main/java/com/gildedgames/aether/common/containers/overlays/tabs/guidebook/TabGuidebook.java b/src/main/java/com/gildedgames/aether/common/containers/overlays/tabs/guidebook/TabGuidebook.java deleted file mode 100644 index 3b83c15ef9..0000000000 --- a/src/main/java/com/gildedgames/aether/common/containers/overlays/tabs/guidebook/TabGuidebook.java +++ /dev/null @@ -1,74 +0,0 @@ -package com.gildedgames.aether.common.containers.overlays.tabs.guidebook; - -import com.gildedgames.aether.api.registry.tab.ITab; -import com.gildedgames.aether.api.registry.tab.ITabClient; -import com.gildedgames.aether.client.gui.container.guidebook.AbstractGuidebookPage; -import com.gildedgames.aether.common.AetherCore; -import com.gildedgames.aether.common.network.AetherGuiHandler; -import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.GuiScreen; -import net.minecraft.client.gui.inventory.GuiInventory; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.util.ResourceLocation; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.Vec2f; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; - -public class TabGuidebook implements ITab -{ - @Override - public String getUnlocalizedName() - { - return "tab.guidebook"; - } - - @Override - public void onOpen(EntityPlayer player) - { - BlockPos pos = player.getPosition(); - - player.openGui(AetherCore.MOD_ID, AetherGuiHandler.INVENTORY_ID, player.world, pos.getX(), pos.getY(), pos.getZ()); - } - - @Override - public boolean isEnabled() - { - return !(Minecraft.getMinecraft().currentScreen instanceof AbstractGuidebookPage); - } - - @Override - public boolean isRemembered() - { - return true; - } - - @SideOnly(Side.CLIENT) - public static class Client extends TabGuidebook implements ITabClient - { - private static final ResourceLocation ICON = AetherCore.getResource("textures/gui/tabs/equipment.png"); - - @Override - public boolean isTabValid(GuiScreen gui) - { - return gui instanceof GuiInventory || gui instanceof AbstractGuidebookPage; - } - - @Override - public void onClose(EntityPlayer player) - { - } - - @Override - public ResourceLocation getIcon() - { - return ICON; - } - - @Override - public Vec2f getCustomTabVec2() - { - return null; - } - } -} diff --git a/src/main/java/com/gildedgames/aether/common/containers/overlays/tabs/guidebook/TabLoreTome.java b/src/main/java/com/gildedgames/aether/common/containers/overlays/tabs/guidebook/TabLoreTome.java deleted file mode 100644 index ecdbcb9ee3..0000000000 --- a/src/main/java/com/gildedgames/aether/common/containers/overlays/tabs/guidebook/TabLoreTome.java +++ /dev/null @@ -1,74 +0,0 @@ -package com.gildedgames.aether.common.containers.overlays.tabs.guidebook; - -import com.gildedgames.aether.api.registry.tab.ITab; -import com.gildedgames.aether.api.registry.tab.ITabClient; -import com.gildedgames.aether.client.gui.container.guidebook.AbstractGuidebookPage; -import com.gildedgames.aether.common.AetherCore; -import com.gildedgames.aether.common.network.AetherGuiHandler; -import net.minecraft.client.gui.GuiScreen; -import net.minecraft.client.gui.inventory.GuiInventory; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.util.ResourceLocation; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.Vec2f; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; - -public class TabLoreTome implements ITab -{ - @Override - public String getUnlocalizedName() - { - return "tab.guidebook.loretome"; - } - - @Override - public void onOpen(EntityPlayer player) - { - BlockPos pos = player.getPosition(); - - player.openGui(AetherCore.MOD_ID, AetherGuiHandler.LORE_TOME_ID, player.world, pos.getX(), pos.getY(), pos.getZ()); - } - - @Override - public boolean isEnabled() - { - //return Minecraft.getMinecraft().currentScreen instanceof AbstractGuidebookPage; - return false; - } - - @Override - public boolean isRemembered() - { - return true; - } - - @SideOnly(Side.CLIENT) - public static class Client extends TabLoreTome implements ITabClient - { - private static final ResourceLocation ICON = AetherCore.getResource("textures/gui/tabs/guidebook_loretome.png"); - - @Override - public boolean isTabValid(GuiScreen gui) - { - return gui instanceof GuiInventory || gui instanceof AbstractGuidebookPage; - } - - @Override - public void onClose(EntityPlayer player) - { - } - - @Override - public ResourceLocation getIcon() - { - return null; - } - - @Override - public Vec2f getCustomTabVec2() - { - return new Vec2f(78.f, 0.f); - } - } -} diff --git a/src/main/java/com/gildedgames/aether/common/containers/overlays/tabs/guidebook/TabStatus.java b/src/main/java/com/gildedgames/aether/common/containers/overlays/tabs/guidebook/TabStatus.java deleted file mode 100644 index f88e1fe36b..0000000000 --- a/src/main/java/com/gildedgames/aether/common/containers/overlays/tabs/guidebook/TabStatus.java +++ /dev/null @@ -1,72 +0,0 @@ -package com.gildedgames.aether.common.containers.overlays.tabs.guidebook; - -import com.gildedgames.aether.api.registry.tab.ITab; -import com.gildedgames.aether.api.registry.tab.ITabClient; -import com.gildedgames.aether.client.gui.container.guidebook.AbstractGuidebookPage; -import com.gildedgames.aether.common.AetherCore; -import com.gildedgames.aether.common.network.AetherGuiHandler; -import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.GuiScreen; -import net.minecraft.client.gui.inventory.GuiInventory; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.util.ResourceLocation; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.Vec2f; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; - -public class TabStatus implements ITab -{ - @Override - public String getUnlocalizedName() - { - return "tab.guidebook.status"; - } - - @Override - public void onOpen(EntityPlayer player) - { - BlockPos pos = player.getPosition(); - - player.openGui(AetherCore.MOD_ID, AetherGuiHandler.STATUS_ID, player.world, pos.getX(), pos.getY(), pos.getZ()); - } - - @Override - public boolean isEnabled() - { - return Minecraft.getMinecraft().currentScreen instanceof AbstractGuidebookPage; - } - - @Override - public boolean isRemembered() - { - return true; - } - - @SideOnly(Side.CLIENT) - public static class Client extends TabStatus implements ITabClient - { - @Override - public boolean isTabValid(GuiScreen gui) - { - return gui instanceof GuiInventory || gui instanceof AbstractGuidebookPage; - } - - @Override - public void onClose(EntityPlayer player) - { - } - - @Override - public ResourceLocation getIcon() - { - return null; - } - - @Override - public Vec2f getCustomTabVec2() - { - return new Vec2f(26.f, 0.f); - } - } -} diff --git a/src/main/java/com/gildedgames/aether/common/containers/slots/SlotAmbrosium.java b/src/main/java/com/gildedgames/aether/common/containers/slots/SlotAmbrosium.java deleted file mode 100644 index 0f21e68107..0000000000 --- a/src/main/java/com/gildedgames/aether/common/containers/slots/SlotAmbrosium.java +++ /dev/null @@ -1,43 +0,0 @@ -package com.gildedgames.aether.common.containers.slots; - -import com.gildedgames.aether.common.AetherCore; -import net.minecraft.client.renderer.texture.TextureAtlasSprite; -import net.minecraft.inventory.IInventory; -import net.minecraft.inventory.Slot; -import net.minecraft.item.ItemStack; -import net.minecraftforge.client.event.TextureStitchEvent; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; - -import javax.annotation.Nonnull; - -public class SlotAmbrosium extends Slot -{ - - private static TextureAtlasSprite sprite; - - public SlotAmbrosium(IInventory inventoryIn, int index, int xPosition, int yPosition) - { - super(inventoryIn, index, xPosition, yPosition); - } - - @SideOnly(Side.CLIENT) - public static void registerIcons(TextureStitchEvent.Pre event) - { - sprite = event.getMap().registerSprite(AetherCore.getResource("gui/slots/slot_ambrosium")); - } - - @Override - public boolean isItemValid(@Nonnull ItemStack stack) - { - return this.inventory.isItemValidForSlot(this.getSlotIndex(), stack); - } - - @Override - @SideOnly(Side.CLIENT) - public TextureAtlasSprite getBackgroundSprite() - { - return sprite; - } - -} diff --git a/src/main/java/com/gildedgames/aether/common/containers/slots/SlotDynamic.java b/src/main/java/com/gildedgames/aether/common/containers/slots/SlotDynamic.java deleted file mode 100644 index b4f5d98a7e..0000000000 --- a/src/main/java/com/gildedgames/aether/common/containers/slots/SlotDynamic.java +++ /dev/null @@ -1,44 +0,0 @@ -package com.gildedgames.aether.common.containers.slots; - -import net.minecraft.inventory.IInventory; -import net.minecraft.inventory.Slot; -import net.minecraft.item.ItemStack; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; - -public class SlotDynamic extends Slot -{ - - private boolean enabled; - - public SlotDynamic(IInventory inventoryIn, int index, int xPosition, int yPosition) - { - super(inventoryIn, index, xPosition, yPosition); - this.enabled = true; - } - - @Override - public ItemStack getStack() - { - return super.getStack(); - } - - @Override - public int getItemStackLimit(ItemStack stack) - { - return super.getItemStackLimit(stack); - } - - @Override - @SideOnly(Side.CLIENT) - public boolean isEnabled() - { - return (this.getHasStack() || this.enabled); - } - - public void setEnabled(boolean enabled) - { - this.enabled = enabled; - } -} - diff --git a/src/main/java/com/gildedgames/aether/common/containers/slots/SlotEquipment.java b/src/main/java/com/gildedgames/aether/common/containers/slots/SlotEquipment.java deleted file mode 100644 index 6b0ed0f92e..0000000000 --- a/src/main/java/com/gildedgames/aether/common/containers/slots/SlotEquipment.java +++ /dev/null @@ -1,60 +0,0 @@ -package com.gildedgames.aether.common.containers.slots; - -import com.gildedgames.aether.api.items.equipment.ItemEquipmentSlot; -import com.gildedgames.aether.common.AetherCore; -import net.minecraft.client.renderer.texture.TextureAtlasSprite; -import net.minecraft.inventory.IInventory; -import net.minecraft.inventory.Slot; -import net.minecraft.item.ItemStack; -import net.minecraftforge.client.event.TextureStitchEvent; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; - -import java.util.HashMap; - -public class SlotEquipment extends Slot -{ - @SideOnly(Side.CLIENT) - private static HashMap<ItemEquipmentSlot, TextureAtlasSprite> icons; - - private final ItemEquipmentSlot type; - - public SlotEquipment(IInventory inventory, ItemEquipmentSlot type, int index, int xPosition, int yPosition) - { - super(inventory, index, xPosition, yPosition); - - this.type = type; - } - - @SideOnly(Side.CLIENT) - public static void registerIcons(TextureStitchEvent.Pre event) - { - icons = new HashMap<>(); - - icons.put(ItemEquipmentSlot.COMPANION, event.getMap().registerSprite(AetherCore.getResource("gui/slots/slot_companion"))); - icons.put(ItemEquipmentSlot.HANDWEAR, event.getMap().registerSprite(AetherCore.getResource("gui/slots/slot_handwear"))); - icons.put(ItemEquipmentSlot.RELIC, event.getMap().registerSprite(AetherCore.getResource("gui/slots/slot_relic"))); - icons.put(ItemEquipmentSlot.NECKWEAR, event.getMap().registerSprite(AetherCore.getResource("gui/slots/slot_neckwear"))); - icons.put(ItemEquipmentSlot.RING, event.getMap().registerSprite(AetherCore.getResource("gui/slots/slot_ring"))); - icons.put(ItemEquipmentSlot.CHARM, event.getMap().registerSprite(AetherCore.getResource("gui/slots/slot_charm"))); - icons.put(ItemEquipmentSlot.ARTIFACT, event.getMap().registerSprite(AetherCore.getResource("gui/slots/slot_artifact"))); - } - - @Override - @SideOnly(Side.CLIENT) - public TextureAtlasSprite getBackgroundSprite() - { - return icons.get(this.getEquipmentType()); - } - - @Override - public boolean isItemValid(ItemStack stack) - { - return this.inventory.isItemValidForSlot(this.getSlotIndex(), stack); - } - - public ItemEquipmentSlot getEquipmentType() - { - return this.type; - } -} diff --git a/src/main/java/com/gildedgames/aether/common/containers/slots/SlotFlintAndSteel.java b/src/main/java/com/gildedgames/aether/common/containers/slots/SlotFlintAndSteel.java deleted file mode 100644 index 33d8800bba..0000000000 --- a/src/main/java/com/gildedgames/aether/common/containers/slots/SlotFlintAndSteel.java +++ /dev/null @@ -1,43 +0,0 @@ -package com.gildedgames.aether.common.containers.slots; - -import com.gildedgames.aether.common.AetherCore; -import net.minecraft.client.renderer.texture.TextureAtlasSprite; -import net.minecraft.inventory.IInventory; -import net.minecraft.inventory.Slot; -import net.minecraft.item.ItemStack; -import net.minecraftforge.client.event.TextureStitchEvent; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; - -import javax.annotation.Nonnull; - -public class SlotFlintAndSteel extends Slot -{ - - private static TextureAtlasSprite sprite; - - public SlotFlintAndSteel(IInventory inventoryIn, int index, int xPosition, int yPosition) - { - super(inventoryIn, index, xPosition, yPosition); - } - - @SideOnly(Side.CLIENT) - public static void registerIcons(TextureStitchEvent.Pre event) - { - sprite = event.getMap().registerSprite(AetherCore.getResource("gui/slots/slot_flint_and_steel")); - } - - @Override - public boolean isItemValid(@Nonnull ItemStack stack) - { - return this.inventory.isItemValidForSlot(this.getSlotIndex(), stack); - } - - @Override - @SideOnly(Side.CLIENT) - public TextureAtlasSprite getBackgroundSprite() - { - return sprite; - } - -} diff --git a/src/main/java/com/gildedgames/aether/common/containers/slots/SlotInventory.java b/src/main/java/com/gildedgames/aether/common/containers/slots/SlotInventory.java deleted file mode 100644 index 18310bf501..0000000000 --- a/src/main/java/com/gildedgames/aether/common/containers/slots/SlotInventory.java +++ /dev/null @@ -1,28 +0,0 @@ -package com.gildedgames.aether.common.containers.slots; - -import net.minecraft.inventory.IInventory; -import net.minecraft.inventory.Slot; -import net.minecraft.item.ItemStack; - -import javax.annotation.Nullable; - -public class SlotInventory extends Slot -{ - - public SlotInventory(IInventory inventoryIn, int index, int xPosition, int yPosition) - { - super(inventoryIn, index, xPosition, yPosition); - } - - @Override - public boolean isItemValid(@Nullable ItemStack stack) - { - if (stack == null) - { - return true; - } - - return this.inventory.isItemValidForSlot(this.getSlotIndex(), stack); - } - -} diff --git a/src/main/java/com/gildedgames/aether/common/containers/slots/SlotOffset.java b/src/main/java/com/gildedgames/aether/common/containers/slots/SlotOffset.java deleted file mode 100644 index 0f2ed86f38..0000000000 --- a/src/main/java/com/gildedgames/aether/common/containers/slots/SlotOffset.java +++ /dev/null @@ -1,48 +0,0 @@ -package com.gildedgames.aether.common.containers.slots; - -import net.minecraft.inventory.IInventory; -import net.minecraft.inventory.Slot; -import net.minecraft.item.ItemStack; - -public class SlotOffset extends Slot -{ - private final int trueIndex; - - public SlotOffset(IInventory inventoryIn, int index, int xPosition, int yPosition, int trueIndex) - { - super(inventoryIn, index, xPosition, yPosition); - - this.trueIndex = trueIndex; - } - - @Override - public ItemStack decrStackSize(final int amount) - { - return this.inventory.decrStackSize(this.trueIndex, amount); - } - - @Override - public boolean isHere(final IInventory inv, final int slotIn) - { - return inv == this.inventory && slotIn == this.getSlotIndex(); - } - - @Override - public ItemStack getStack() - { - return this.inventory.getStackInSlot(this.trueIndex); - } - - @Override - public void putStack(final ItemStack stack) - { - this.inventory.setInventorySlotContents(this.trueIndex, stack); - this.onSlotChanged(); - } - - @Override - public boolean isItemValid(final ItemStack stack) - { - return this.inventory.isItemValidForSlot(this.trueIndex, stack); - } -} diff --git a/src/main/java/com/gildedgames/aether/common/containers/slots/SlotSell.java b/src/main/java/com/gildedgames/aether/common/containers/slots/SlotSell.java deleted file mode 100644 index 8a0ebe448e..0000000000 --- a/src/main/java/com/gildedgames/aether/common/containers/slots/SlotSell.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.gildedgames.aether.common.containers.slots; - -import net.minecraft.inventory.IInventory; -import net.minecraft.inventory.Slot; -import net.minecraft.item.ItemStack; - -import javax.annotation.Nonnull; - -public class SlotSell extends Slot -{ - - public SlotSell(IInventory inventoryIn, int index, int xPosition, int yPosition) - { - super(inventoryIn, index, xPosition, yPosition); - } - - @Override - public boolean isItemValid(@Nonnull ItemStack stack) - { - return this.inventory.isItemValidForSlot(this.getSlotIndex(), stack); - } - -} diff --git a/src/main/java/com/gildedgames/aether/common/containers/slots/icestone_cooler/SlotCoolerOutput.java b/src/main/java/com/gildedgames/aether/common/containers/slots/icestone_cooler/SlotCoolerOutput.java deleted file mode 100644 index b06ee3048d..0000000000 --- a/src/main/java/com/gildedgames/aether/common/containers/slots/icestone_cooler/SlotCoolerOutput.java +++ /dev/null @@ -1,39 +0,0 @@ -package com.gildedgames.aether.common.containers.slots.icestone_cooler; - -import com.gildedgames.aether.common.containers.slots.SlotOffset; -import net.minecraft.inventory.IInventory; -import net.minecraft.item.ItemStack; - -public class SlotCoolerOutput extends SlotOffset -{ - private int removeCount; - - public SlotCoolerOutput(IInventory inventoryIn, int index, int xPosition, int yPosition, int trueIndex) - { - super(inventoryIn, index, xPosition, yPosition, trueIndex); - } - - @Override - public boolean isItemValid(ItemStack stack) - { - return false; - } - - @Override - public int getItemStackLimit(ItemStack stack) - { - return 64; - } - - @Override - public ItemStack decrStackSize(int amount) - { - if (this.getHasStack()) - { - this.removeCount += Math.min(amount, this.getStack().getCount()); - } - - return super.decrStackSize(amount); - } - -} diff --git a/src/main/java/com/gildedgames/aether/common/containers/slots/icestone_cooler/SlotCoolerOutputSecondary.java b/src/main/java/com/gildedgames/aether/common/containers/slots/icestone_cooler/SlotCoolerOutputSecondary.java deleted file mode 100644 index 39c4f5c076..0000000000 --- a/src/main/java/com/gildedgames/aether/common/containers/slots/icestone_cooler/SlotCoolerOutputSecondary.java +++ /dev/null @@ -1,39 +0,0 @@ -package com.gildedgames.aether.common.containers.slots.icestone_cooler; - -import com.gildedgames.aether.common.containers.slots.SlotOffset; -import net.minecraft.inventory.IInventory; -import net.minecraft.item.ItemStack; - -public class SlotCoolerOutputSecondary extends SlotOffset -{ - private int removeCount; - - public SlotCoolerOutputSecondary(IInventory inventoryIn, int index, int xPosition, int yPosition, int trueIndex) - { - super(inventoryIn, index, xPosition, yPosition, trueIndex); - } - - @Override - public boolean isItemValid(ItemStack stack) - { - return false; - } - - @Override - public int getItemStackLimit(ItemStack stack) - { - return 64; - } - - @Override - public ItemStack decrStackSize(int amount) - { - if (this.getHasStack()) - { - this.removeCount += Math.min(amount, this.getStack().getCount()); - } - - return super.decrStackSize(amount); - } - -} diff --git a/src/main/java/com/gildedgames/aether/common/containers/slots/icestone_cooler/SlotCoolingInputPrimary.java b/src/main/java/com/gildedgames/aether/common/containers/slots/icestone_cooler/SlotCoolingInputPrimary.java deleted file mode 100644 index 4b320e5f52..0000000000 --- a/src/main/java/com/gildedgames/aether/common/containers/slots/icestone_cooler/SlotCoolingInputPrimary.java +++ /dev/null @@ -1,25 +0,0 @@ -package com.gildedgames.aether.common.containers.slots.icestone_cooler; - -import com.gildedgames.aether.common.containers.slots.SlotOffset; -import net.minecraft.inventory.IInventory; -import net.minecraft.item.ItemStack; - -public class SlotCoolingInputPrimary extends SlotOffset -{ - public SlotCoolingInputPrimary(IInventory inventoryIn, int index, int xPosition, int yPosition, int trueIndex) - { - super(inventoryIn, index, xPosition, yPosition, trueIndex); - } - - @Override - public boolean isItemValid(ItemStack stack) - { - return super.isItemValid(stack); - } - - @Override - public int getItemStackLimit(ItemStack stack) - { - return 64; - } -} diff --git a/src/main/java/com/gildedgames/aether/common/containers/slots/icestone_cooler/SlotCoolingInputSecondary.java b/src/main/java/com/gildedgames/aether/common/containers/slots/icestone_cooler/SlotCoolingInputSecondary.java deleted file mode 100644 index d88d744ac1..0000000000 --- a/src/main/java/com/gildedgames/aether/common/containers/slots/icestone_cooler/SlotCoolingInputSecondary.java +++ /dev/null @@ -1,25 +0,0 @@ -package com.gildedgames.aether.common.containers.slots.icestone_cooler; - -import com.gildedgames.aether.common.containers.slots.SlotOffset; -import net.minecraft.inventory.IInventory; -import net.minecraft.item.ItemStack; - -public class SlotCoolingInputSecondary extends SlotOffset -{ - public SlotCoolingInputSecondary(IInventory inventoryIn, int index, int xPosition, int yPosition, int trueIndex) - { - super(inventoryIn, index, xPosition, yPosition, trueIndex); - } - - @Override - public boolean isItemValid(ItemStack stack) - { - return super.isItemValid(stack); - } - - @Override - public int getItemStackLimit(ItemStack stack) - { - return 64; - } -} diff --git a/src/main/java/com/gildedgames/aether/common/containers/slots/icestone_cooler/SlotCoolingItem.java b/src/main/java/com/gildedgames/aether/common/containers/slots/icestone_cooler/SlotCoolingItem.java deleted file mode 100644 index 3afb528dd7..0000000000 --- a/src/main/java/com/gildedgames/aether/common/containers/slots/icestone_cooler/SlotCoolingItem.java +++ /dev/null @@ -1,47 +0,0 @@ -package com.gildedgames.aether.common.containers.slots.icestone_cooler; - -import com.gildedgames.aether.api.registrar.ItemsAether; -import com.gildedgames.aether.common.AetherCore; -import com.gildedgames.aether.common.containers.slots.SlotOffset; -import net.minecraft.client.renderer.texture.TextureAtlasSprite; -import net.minecraft.inventory.IInventory; -import net.minecraft.item.ItemStack; -import net.minecraftforge.client.event.TextureStitchEvent; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; - -public class SlotCoolingItem extends SlotOffset -{ - - private static TextureAtlasSprite sprite; - - public SlotCoolingItem(IInventory inventoryIn, int index, int xPosition, int yPosition, int trueIndex) - { - super(inventoryIn, index, xPosition, yPosition, trueIndex); - } - - @SideOnly(Side.CLIENT) - public static void registerIcons(TextureStitchEvent.Pre event) - { - sprite = event.getMap().registerSprite(AetherCore.getResource("gui/slots/slot_icestone")); - } - - @Override - public boolean isItemValid(ItemStack stack) - { - return super.isItemValid(stack) && stack.getItem() == ItemsAether.icestone; - } - - @Override - public int getItemStackLimit(ItemStack stack) - { - return 64; - } - - @Override - @SideOnly(Side.CLIENT) - public TextureAtlasSprite getBackgroundSprite() - { - return sprite; - } -} diff --git a/src/main/java/com/gildedgames/aether/common/containers/slots/incubator/SlotIncubatorFuel.java b/src/main/java/com/gildedgames/aether/common/containers/slots/incubator/SlotIncubatorFuel.java deleted file mode 100644 index 4cb70abb2d..0000000000 --- a/src/main/java/com/gildedgames/aether/common/containers/slots/incubator/SlotIncubatorFuel.java +++ /dev/null @@ -1,28 +0,0 @@ -package com.gildedgames.aether.common.containers.slots.incubator; - -import com.gildedgames.aether.api.registrar.ItemsAether; -import com.gildedgames.aether.common.entities.tiles.TileEntityIncubator; -import net.minecraft.inventory.IInventory; -import net.minecraft.inventory.Slot; -import net.minecraft.item.ItemStack; - -import javax.annotation.Nonnull; - -public class SlotIncubatorFuel extends Slot -{ - public SlotIncubatorFuel(IInventory inventoryIn, int index, int xPosition, int yPosition) - { - super(inventoryIn, index, xPosition, yPosition); - } - - @Override - public boolean isItemValid(@Nonnull ItemStack stack) - { - if (this.inventory instanceof TileEntityIncubator) - { - return TileEntityIncubator.isItemFuel(stack); - } - - return false; - } -} diff --git a/src/main/java/com/gildedgames/aether/common/containers/slots/incubator/SlotMoaEgg.java b/src/main/java/com/gildedgames/aether/common/containers/slots/incubator/SlotMoaEgg.java deleted file mode 100644 index 8639a27997..0000000000 --- a/src/main/java/com/gildedgames/aether/common/containers/slots/incubator/SlotMoaEgg.java +++ /dev/null @@ -1,57 +0,0 @@ -package com.gildedgames.aether.common.containers.slots.incubator; - -import com.gildedgames.aether.api.registrar.ItemsAether; -import com.gildedgames.aether.common.AetherCore; -import com.gildedgames.aether.common.entities.tiles.TileEntityIncubator; -import net.minecraft.client.renderer.texture.TextureAtlasSprite; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.inventory.IInventory; -import net.minecraft.inventory.Slot; -import net.minecraft.item.ItemStack; -import net.minecraftforge.client.event.TextureStitchEvent; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; - -import javax.annotation.Nonnull; - -public class SlotMoaEgg extends Slot -{ - - private static TextureAtlasSprite sprite; - - public SlotMoaEgg(IInventory inventoryIn, int index, int xPosition, int yPosition) - { - super(inventoryIn, index, xPosition, yPosition); - } - - @SideOnly(Side.CLIENT) - public static void registerIcons(TextureStitchEvent.Pre event) - { - sprite = event.getMap().registerSprite(AetherCore.getResource("gui/slots/slot_moa_egg")); - } - - @Override - public boolean isItemValid(@Nonnull ItemStack stack) - { - if (this.inventory instanceof TileEntityIncubator) - { - return TileEntityIncubator.isItemEgg(stack); - } - - return false; - } - - @Override - public int getSlotStackLimit() - { - return 1; - } - - @Override - @SideOnly(Side.CLIENT) - public TextureAtlasSprite getBackgroundSprite() - { - return sprite; - } - -} diff --git a/src/main/java/com/gildedgames/aether/common/containers/slots/masonry_bench/SlotMasonryInput.java b/src/main/java/com/gildedgames/aether/common/containers/slots/masonry_bench/SlotMasonryInput.java deleted file mode 100644 index 5cb6b42ec9..0000000000 --- a/src/main/java/com/gildedgames/aether/common/containers/slots/masonry_bench/SlotMasonryInput.java +++ /dev/null @@ -1,27 +0,0 @@ -package com.gildedgames.aether.common.containers.slots.masonry_bench; - -import com.gildedgames.aether.api.registrar.ItemsAether; -import com.gildedgames.aether.common.containers.slots.SlotOffset; -import net.minecraft.inventory.IInventory; -import net.minecraft.item.ItemBlock; -import net.minecraft.item.ItemStack; - -public class SlotMasonryInput extends SlotOffset -{ - public SlotMasonryInput(IInventory inventoryIn, int index, int xPosition, int yPosition, int trueIndex) - { - super(inventoryIn, index, xPosition, yPosition, trueIndex); - } - - @Override - public boolean isItemValid(ItemStack stack) - { - return stack.getItem() instanceof ItemBlock || stack.getItem() == ItemsAether.skyroot_door_item; - } - - @Override - public int getItemStackLimit(ItemStack stack) - { - return 64; - } -} diff --git a/src/main/java/com/gildedgames/aether/common/containers/slots/masonry_bench/SlotMasonryOutput.java b/src/main/java/com/gildedgames/aether/common/containers/slots/masonry_bench/SlotMasonryOutput.java deleted file mode 100644 index 0ffb095810..0000000000 --- a/src/main/java/com/gildedgames/aether/common/containers/slots/masonry_bench/SlotMasonryOutput.java +++ /dev/null @@ -1,45 +0,0 @@ -package com.gildedgames.aether.common.containers.slots.masonry_bench; - -import com.gildedgames.aether.common.containers.slots.SlotOffset; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.inventory.IInventory; -import net.minecraft.item.ItemStack; - -public class SlotMasonryOutput extends SlotOffset -{ - private int removeCount; - - public SlotMasonryOutput(IInventory inventoryIn, int index, int xPosition, int yPosition, int trueIndex) - { - super(inventoryIn, index, xPosition, yPosition, trueIndex); - } - - @Override - public boolean isItemValid(ItemStack stack) - { - return false; - } - - @Override - public int getItemStackLimit(ItemStack stack) - { - return 64; - } - - @Override - public boolean canTakeStack(EntityPlayer playerIn) - { - return false; - } - - @Override - public ItemStack decrStackSize(int amount) - { - if (this.getHasStack()) - { - this.removeCount += Math.min(amount, this.getStack().getCount()); - } - - return super.decrStackSize(amount); - } -} diff --git a/src/main/java/com/gildedgames/aether/common/containers/tiles/ContainerIcestoneCooler.java b/src/main/java/com/gildedgames/aether/common/containers/tiles/ContainerIcestoneCooler.java deleted file mode 100644 index c1e7efb188..0000000000 --- a/src/main/java/com/gildedgames/aether/common/containers/tiles/ContainerIcestoneCooler.java +++ /dev/null @@ -1,185 +0,0 @@ -package com.gildedgames.aether.common.containers.tiles; - -import com.gildedgames.aether.common.containers.slots.icestone_cooler.*; -import com.gildedgames.aether.common.entities.tiles.TileEntityIcestoneCooler; -import com.gildedgames.aether.common.recipes.CoolerRecipes; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.inventory.Container; -import net.minecraft.inventory.IContainerListener; -import net.minecraft.inventory.IInventory; -import net.minecraft.inventory.Slot; -import net.minecraft.item.ItemStack; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; - -public class ContainerIcestoneCooler extends Container -{ - private final IInventory tileCooler; - - private int coolTime; - - private int totalCoolTime; - - private int coolerCoolTime; - - private int currentItemCoolTime; - - public ContainerIcestoneCooler(final InventoryPlayer playerInventory, final IInventory coolerInventory) - { - this.tileCooler = coolerInventory; - this.addSlotToContainer(new SlotCoolingInputPrimary(coolerInventory, 0, 49, 17, 0)); - this.addSlotToContainer(new SlotCoolingItem(coolerInventory, 1, 49, 53, 1)); - this.addSlotToContainer(new SlotCoolerOutput(coolerInventory, 2, 109, 21, 2)); - this.addSlotToContainer(new SlotCoolingInputSecondary(coolerInventory, 3, 21, 35, 3)); - this.addSlotToContainer(new SlotCoolerOutputSecondary(coolerInventory, 4, 109, 53, 4)); - - for (int i = 0; i < 3; ++i) - { - for (int j = 0; j < 9; ++j) - { - this.addSlotToContainer(new Slot(playerInventory, j + i * 9 + 9, 8 + j * 18, 84 + i * 18)); - } - } - - for (int k = 0; k < 9; ++k) - { - this.addSlotToContainer(new Slot(playerInventory, k, 8 + k * 18, 142)); - } - } - - @Override - public void addListener(final IContainerListener listener) - { - super.addListener(listener); - listener.sendAllWindowProperties(this, this.tileCooler); - } - - @Override - public void detectAndSendChanges() - { - super.detectAndSendChanges(); - for (final IContainerListener iContainerListener : this.listeners) - { - if (this.coolerCoolTime != this.tileCooler.getField(0)) - { - iContainerListener.sendWindowProperty(this, 0, this.tileCooler.getField(0)); - } - - if (this.currentItemCoolTime != this.tileCooler.getField(1)) - { - iContainerListener.sendWindowProperty(this, 1, this.tileCooler.getField(1)); - } - - if (this.coolTime != this.tileCooler.getField(2)) - { - iContainerListener.sendWindowProperty(this, 2, this.tileCooler.getField(2)); - } - - if (this.totalCoolTime != this.tileCooler.getField(3)) - { - iContainerListener.sendWindowProperty(this, 3, this.tileCooler.getField(3)); - } - - this.coolerCoolTime = this.tileCooler.getField(0); - this.currentItemCoolTime = this.tileCooler.getField(1); - this.coolTime = this.tileCooler.getField(2); - this.totalCoolTime = this.tileCooler.getField(3); - - } - } - - @Override - @SideOnly(Side.CLIENT) - public void updateProgressBar(final int id, final int data) - { - this.tileCooler.setField(id, data); - } - - @Override - public boolean canInteractWith(final EntityPlayer playerIn) - { - return this.tileCooler.isUsableByPlayer(playerIn); - } - - @Override - public ItemStack transferStackInSlot(final EntityPlayer playerIn, final int index) - { - ItemStack itemstack = ItemStack.EMPTY; - final Slot slot = this.inventorySlots.get(index); - - if (slot != null && slot.getHasStack()) - { - final ItemStack itemstack1 = slot.getStack(); - itemstack = itemstack1.copy(); - - if (index == 2 || index == 4) - { - if (!this.mergeItemStack(itemstack1, 5, 41, true)) - { - return ItemStack.EMPTY; - } - - slot.onSlotChange(itemstack1, itemstack); - } - else if (index != 3 && index != 1 && index != 0) - { - if (!CoolerRecipes.instance().getPrimaryOutput(itemstack1).isEmpty()) - { - if (!this.mergeItemStack(itemstack1, 0, 1, false)) - { - return ItemStack.EMPTY; - } - } - else if (TileEntityIcestoneCooler.isItemCooling(itemstack1)) - { - if (!this.mergeItemStack(itemstack1, 1, 2, false)) - { - return ItemStack.EMPTY; - } - } - else if (!CoolerRecipes.instance().getSecondaryInputForSlot(itemstack1).isEmpty()) - { - if (!this.mergeItemStack(itemstack1, 3, 4, false)) - { - return ItemStack.EMPTY; - } - } - else if (index < 32) - { - if (!this.mergeItemStack(itemstack1, 32, 41, false)) - { - return ItemStack.EMPTY; - } - } - else if (index < 41 && !this.mergeItemStack(itemstack1, 5, 32, false)) - { - return ItemStack.EMPTY; - } - } - else if (!this.mergeItemStack(itemstack1, 5, 41, false)) - { - return ItemStack.EMPTY; - } - - if (itemstack1.isEmpty()) - { - slot.putStack(ItemStack.EMPTY); - } - else - { - slot.onSlotChanged(); - } - - if (itemstack1.getCount() == itemstack.getCount()) - { - return ItemStack.EMPTY; - } - - slot.onTake(playerIn, itemstack1); - } - - return itemstack; - } - -} diff --git a/src/main/java/com/gildedgames/aether/common/containers/tiles/ContainerIncubator.java b/src/main/java/com/gildedgames/aether/common/containers/tiles/ContainerIncubator.java deleted file mode 100644 index 9ebac29389..0000000000 --- a/src/main/java/com/gildedgames/aether/common/containers/tiles/ContainerIncubator.java +++ /dev/null @@ -1,162 +0,0 @@ -package com.gildedgames.aether.common.containers.tiles; - -import com.gildedgames.aether.common.containers.slots.incubator.SlotIncubatorFuel; -import com.gildedgames.aether.common.containers.slots.incubator.SlotMoaEgg; -import com.gildedgames.aether.common.entities.tiles.TileEntityIcestoneCooler; -import com.gildedgames.aether.common.entities.tiles.TileEntityIncubator; -import com.gildedgames.aether.common.recipes.CoolerRecipes; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.inventory.Container; -import net.minecraft.inventory.IContainerListener; -import net.minecraft.inventory.IInventory; -import net.minecraft.inventory.Slot; -import net.minecraft.item.ItemStack; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; - -import javax.annotation.Nonnull; - -public class ContainerIncubator extends Container -{ - - private final IInventory tileIncubator; - - private int incubationTimeMax; - - private int incubationTime; - - private int heatingTimeMax; - - private int heatingTime; - - public ContainerIncubator(final InventoryPlayer playerInventory, final IInventory incubatorInventory) - { - this.tileIncubator = incubatorInventory; - - this.addSlotToContainer(new SlotIncubatorFuel(this.tileIncubator, 0, 67, 53)); - - this.addSlotToContainer(new SlotMoaEgg(this.tileIncubator, 1, 67, 17)); - - for (int i = 0; i < 3; ++i) - { - for (int j = 0; j < 9; ++j) - { - this.addSlotToContainer(new Slot(playerInventory, j + i * 9 + 9, 8 + j * 18, 84 + i * 18)); - } - } - - for (int k = 0; k < 9; ++k) - { - this.addSlotToContainer(new Slot(playerInventory, k, 8 + k * 18, 142)); - } - } - - @Override - public void addListener(final IContainerListener listener) - { - super.addListener(listener); - - listener.sendAllWindowProperties(this, this.tileIncubator); - } - - @Override - public void detectAndSendChanges() - { - super.detectAndSendChanges(); - - for (final IContainerListener iContainerListener : this.listeners) - { - if (this.incubationTimeMax != this.tileIncubator.getField(0)) - { - iContainerListener.sendWindowProperty(this, 0, this.tileIncubator.getField(0)); - } - - if (this.incubationTime != this.tileIncubator.getField(1)) - { - iContainerListener.sendWindowProperty(this, 1, this.tileIncubator.getField(1)); - } - - if (this.heatingTimeMax != this.tileIncubator.getField(2)) - { - iContainerListener.sendWindowProperty(this, 2, this.tileIncubator.getField(2)); - } - - if (this.heatingTime != this.tileIncubator.getField(3)) - { - iContainerListener.sendWindowProperty(this, 3, this.tileIncubator.getField(3)); - } - } - - this.incubationTimeMax = this.tileIncubator.getField(0); - this.incubationTime = this.tileIncubator.getField(1); - this.heatingTimeMax = this.tileIncubator.getField(2); - this.heatingTime = this.tileIncubator.getField(3); - } - - @Override - @SideOnly(Side.CLIENT) - public void updateProgressBar(final int id, final int data) - { - this.tileIncubator.setField(id, data); - } - - @Override - public boolean canInteractWith(@Nonnull final EntityPlayer playerIn) - { - return this.tileIncubator.isUsableByPlayer(playerIn); - } - - @Override - public ItemStack transferStackInSlot(final EntityPlayer playerIn, final int index) - { - ItemStack itemstack = ItemStack.EMPTY; - final Slot slot = this.inventorySlots.get(index); - - if (slot != null && slot.getHasStack()) - { - final ItemStack itemstack1 = slot.getStack(); - itemstack = itemstack1.copy(); - - if (index != 0 && index != 1) - { - if (TileEntityIncubator.isItemFuel(itemstack1)) - { - if (!this.mergeItemStack(itemstack1, 0, 1, true)) - { - return ItemStack.EMPTY; - } - } - else if (TileEntityIncubator.isItemEgg(itemstack1)) - { - if (!this.mergeItemStack(itemstack1, 1, 2, true)) - { - return ItemStack.EMPTY; - } - } - } - else if (!this.mergeItemStack(itemstack1, 2, 38, false)) - { - return ItemStack.EMPTY; - } - - if (itemstack1.isEmpty()) - { - slot.putStack(ItemStack.EMPTY); - } - else - { - slot.onSlotChanged(); - } - - if (itemstack1.getCount() == itemstack.getCount()) - { - return ItemStack.EMPTY; - } - - slot.onTake(playerIn, itemstack1); - } - - return itemstack; - } -} diff --git a/src/main/java/com/gildedgames/aether/common/containers/tiles/ContainerMasonryBench.java b/src/main/java/com/gildedgames/aether/common/containers/tiles/ContainerMasonryBench.java deleted file mode 100644 index d437b50cb3..0000000000 --- a/src/main/java/com/gildedgames/aether/common/containers/tiles/ContainerMasonryBench.java +++ /dev/null @@ -1,143 +0,0 @@ -package com.gildedgames.aether.common.containers.tiles; - -import com.gildedgames.aether.api.registrar.ItemsAether; -import com.gildedgames.aether.common.containers.slots.masonry_bench.SlotMasonryInput; -import com.gildedgames.aether.common.containers.slots.masonry_bench.SlotMasonryOutput; -import com.gildedgames.aether.common.network.NetworkingAether; -import com.gildedgames.aether.common.network.packets.PacketMasonryOutputChanged; -import com.gildedgames.aether.common.recipes.MasonryRecipes; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.inventory.Container; -import net.minecraft.inventory.IContainerListener; -import net.minecraft.inventory.IInventory; -import net.minecraft.inventory.Slot; -import net.minecraft.item.ItemBlock; -import net.minecraft.item.ItemStack; - -public class ContainerMasonryBench extends Container -{ - private final IInventory tileMasonry; - - private ItemStack outputStack; - - private EntityPlayer player; - - public ItemStack getOutput() - { - return this.outputStack; - } - - public void setOutput(ItemStack stack) - { - this.outputStack = stack; - - if (this.player.world.isRemote) - { - NetworkingAether.sendPacketToServer(new PacketMasonryOutputChanged(this.outputStack)); - } - - this.tileMasonry.setInventorySlotContents(1, getOutput()); - } - - public ContainerMasonryBench(final EntityPlayer player, final InventoryPlayer playerInventory, final IInventory masonryInventory) - { - this.tileMasonry = masonryInventory; - this.addSlotToContainer(new SlotMasonryInput(masonryInventory, 0, 129, 9, 0)); - this.addSlotToContainer(new SlotMasonryOutput(masonryInventory, 1, 129, 58, 1)); - - for (int i = 0; i < 3; ++i) - { - for (int j = 0; j < 9; ++j) - { - this.addSlotToContainer(new Slot(playerInventory, j + i * 9 + 9, 8 + j * 18, 104 + i * 18)); - } - } - - for (int k = 0; k < 9; ++k) - { - this.addSlotToContainer(new Slot(playerInventory, k, 8 + k * 18, 162)); - } - - this.player = player; - } - - @Override - public void addListener(final IContainerListener listener) - { - super.addListener(listener); - listener.sendAllWindowProperties(this, this.tileMasonry); - } - - @Override - public boolean canInteractWith(final EntityPlayer playerIn) - { - return this.tileMasonry.isUsableByPlayer(playerIn); - } - - @Override - public ItemStack transferStackInSlot(EntityPlayer playerIn, int index) - { - ItemStack itemstack = ItemStack.EMPTY; - Slot slot = this.inventorySlots.get(index); - - if (slot != null && slot.getHasStack()) - { - ItemStack itemstack1 = slot.getStack(); - itemstack = itemstack1.copy(); - - if (index == 1) - { - if (!this.mergeItemStack(itemstack1, 2, 38, true)) - { - return ItemStack.EMPTY; - } - - slot.onSlotChange(itemstack1, itemstack); - } - else if (index != 0) - { - if (MasonryRecipes.instance().getOutput(itemstack1) != null) - { - if (!this.mergeItemStack(itemstack1, 0, 1, false)) - { - return ItemStack.EMPTY; - } - } - else if (index < 29) - { - if (!this.mergeItemStack(itemstack1, 30, 38, false)) - { - return ItemStack.EMPTY; - } - } - else if (index < 38 && !this.mergeItemStack(itemstack1, 2, 29, false)) - { - return ItemStack.EMPTY; - } - } - else if (!this.mergeItemStack(itemstack1, 2, 38, false)) - { - return ItemStack.EMPTY; - } - - if (itemstack1.isEmpty()) - { - slot.putStack(ItemStack.EMPTY); - } - else - { - slot.onSlotChanged(); - } - - if (itemstack1.getCount() == itemstack.getCount()) - { - return ItemStack.EMPTY; - } - - slot.onTake(playerIn, itemstack1); - } - - return itemstack; - } -} \ No newline at end of file diff --git a/src/main/java/com/gildedgames/aether/common/dialog/DialogManager.java b/src/main/java/com/gildedgames/aether/common/dialog/DialogManager.java deleted file mode 100644 index b679d844ca..0000000000 --- a/src/main/java/com/gildedgames/aether/common/dialog/DialogManager.java +++ /dev/null @@ -1,255 +0,0 @@ -package com.gildedgames.aether.common.dialog; - -import com.gildedgames.aether.api.dialog.*; -import com.gildedgames.aether.common.AetherCore; -import com.gildedgames.aether.common.dialog.data.*; -import com.gildedgames.aether.common.dialog.data.actions.*; -import com.gildedgames.aether.common.dialog.data.conditions.DialogConditionHasSleptInBed; -import com.gildedgames.aether.common.dialog.data.conditions.DialogConditionIsChristmasEvent; -import com.gildedgames.aether.common.dialog.data.conditions.DialogConditionIsNewYearsEvent; -import com.gildedgames.aether.common.dialog.data.conditions.DialogConditionReturningToOutpost; -import com.gildedgames.aether.common.dialog.data.slide_renderers.DialogSlideRendererNOOP; -import com.gildedgames.aether.common.dialog.data.slide_renderers.DialogSlideRendererStatic; -import com.google.gson.Gson; -import com.google.gson.GsonBuilder; -import net.minecraft.client.Minecraft; -import net.minecraft.client.resources.IReloadableResourceManager; -import net.minecraft.client.resources.IResourceManager; -import net.minecraft.client.resources.IResourceManagerReloadListener; -import net.minecraft.server.MinecraftServer; -import net.minecraft.util.ResourceLocation; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; - -import java.io.IOException; -import java.io.InputStream; -import java.io.InputStreamReader; -import java.util.HashMap; -import java.util.Optional; - -/** - * Default implementation of {@link IDialogManager} that performs basic caching of scenes - * to speed up access times. - */ -public class DialogManager implements IDialogManager -{ - private final HashMap<ResourceLocation, IDialogScene> cachedScenes = new HashMap<>(); - - private final HashMap<ResourceLocation, IDialogSpeaker> cachedSpeakers = new HashMap<>(); - - private final HashMap<String, IDialogSlideRenderer> registeredRenders = new HashMap<>(); - - private final Gson gson; - - private final boolean allowCaching; - - public DialogManager() - { - this(true); - } - - /** - * Creates an instance of this dialog manager with caching enabled or disabled - * @param allowCaching Controls whether or not caching is enabled. Useful for debugging. - */ - public DialogManager(final boolean allowCaching) - { - this.allowCaching = allowCaching; - - this.gson = this.buildDeserializer().create(); - this.registerRenders(); - } - - /** - * Creates the JSON deserializer that converts a scene file into a {@link IDialogScene}. - * - * If you need to register additional action types, implement your own {@link IDialogManager} - * and override this method. - * - * @return A {@link GsonBuilder} that will construct an appropriate {@link Gson} object. - */ - protected GsonBuilder buildDeserializer() - { - final GsonBuilder builder = new GsonBuilder(); - - builder.registerTypeAdapter(IDialogAction.class, new DialogActionDeserializer()); - builder.registerTypeAdapter(IDialogCondition.class, new DialogConditionDeserializer()); - - builder.registerTypeAdapter(DialogActionExit.class, new DialogActionExit.Deserializer()); - builder.registerTypeAdapter(DialogActionNavigateToStart.class, new DialogActionNavigateToStart.Deserializer()); - builder.registerTypeAdapter(DialogActionNavigateBack.class, new DialogActionNavigateBack.Deserializer()); - builder.registerTypeAdapter(DialogActionNavigate.class, new DialogActionNavigate.Deserializer()); - builder.registerTypeAdapter(DialogActionNavigateScene.class, new DialogActionNavigateScene.Deserializer()); - builder.registerTypeAdapter(DialogActionTravelToBed.class, new DialogActionTravelToBed.Deserializer()); - builder.registerTypeAdapter(DialogActionTravelToLastOutpost.class, new DialogActionTravelToLastOutpost.Deserializer()); - builder.registerTypeAdapter(DialogActionOpenShop.class, new DialogActionOpenShop.Deserializer()); - - builder.registerTypeAdapter(DialogConditionReturningToOutpost.class, new DialogConditionReturningToOutpost.Deserializer()); - builder.registerTypeAdapter(DialogConditionHasSleptInBed.class, new DialogConditionHasSleptInBed.Deserializer()); - builder.registerTypeAdapter(DialogConditionIsChristmasEvent.class, new DialogConditionIsChristmasEvent.Deserializer()); - builder.registerTypeAdapter(DialogConditionIsNewYearsEvent.class, new DialogConditionIsNewYearsEvent.Deserializer()); - - builder.registerTypeAdapter(IDialogSlideRenderer.class, new DialogSlideRendererDeserializer()); - - builder.registerTypeAdapter(DialogSlideRendererStatic.class, new DialogSlideRendererStatic.Deserializer()); - builder.registerTypeAdapter(DialogSlideRendererNOOP.class, new DialogSlideRendererNOOP.Deserializer()); - - builder.registerTypeAdapter(IDialogSlide.class, new DialogSlideDeserializer()); - - return builder; - } - - protected void registerRenders() - { - this.registeredRenders.put("static", new DialogSlideRendererStatic()); - this.registeredRenders.put("noop", new DialogSlideRendererNOOP()); - } - - @Override - public Optional<IDialogSpeaker> getSpeaker(final ResourceLocation resource) - { - if (this.allowCaching && this.cachedSpeakers.containsKey(resource)) - { - return Optional.of(this.cachedSpeakers.get(resource)); - } - - final IDialogSpeaker speaker; - - try - { - speaker = this.loadSpeaker(resource); - - if (this.allowCaching) - { - this.cachedSpeakers.put(resource, speaker); - } - } - catch (final IOException e) - { - AetherCore.LOGGER.error("Failed to load dialog speaker: {}", resource, e); - - return Optional.empty(); - } - - return Optional.of(speaker); - } - - @Override - public Optional<IDialogScene> getScene(final ResourceLocation resource) - { - if (this.allowCaching && this.cachedScenes.containsKey(resource)) - { - return Optional.of(this.cachedScenes.get(resource)); - } - - final IDialogScene scene; - - try - { - scene = this.loadScene(resource); - - if (this.allowCaching) - { - this.cachedScenes.put(resource, scene); - } - } - catch (final IOException e) - { - AetherCore.LOGGER.error("Failed to load dialog scene: {}", resource, e); - - return Optional.empty(); - } - - return Optional.of(scene); - } - - @Override - public Optional<IDialogSlide> findSlide(final String slideAddress, final IDialogSpeaker speaker) - { - if (speaker == null || slideAddress == null || !speaker.getSlides().isPresent() || !speaker.getSlides().get().containsKey(slideAddress)) - { - return Optional.empty(); - } - - return Optional.of(speaker.getSlides().get().get(slideAddress)); - } - - @Override - public Optional<IDialogSlideRenderer> findRenderer(final String type) - { - if (type == null || !this.registeredRenders.containsKey(type)) - { - return Optional.empty(); - } - - return Optional.of(this.registeredRenders.get(type)); - } - - private IDialogScene loadScene(final ResourceLocation resource) throws IOException - { - final String path = "/assets/" + resource.getNamespace() + "/dialog/" + resource.getPath() + ".json"; - - AetherCore.LOGGER.info("Loading dialog scene from file {}", path); - - try (InputStream stream = MinecraftServer.class.getResourceAsStream(path)) - { - try (InputStreamReader reader = new InputStreamReader(stream)) - { - return this.gson.fromJson(reader, DialogSchema.class); - } - } - } - - private IDialogSpeaker loadSpeaker(final ResourceLocation resource) throws IOException - { - final String path = resource.getPath(); - String pathWithoutSlide = path; - - if (path.contains("#")) - { - pathWithoutSlide = path.replace(path.substring(path.indexOf("#")), ""); - } - - final String speakerPath = "/assets/" + resource.getNamespace() + "/dialog/speakers/" + pathWithoutSlide + ".json"; - - AetherCore.LOGGER.info("Loading dialog speaker from file {}", speakerPath); - - try (InputStream stream = MinecraftServer.class.getResourceAsStream(speakerPath)) - { - try (InputStreamReader reader = new InputStreamReader(stream)) - { - return this.gson.fromJson(reader, DialogSpeaker.class); - } - } - } - - @Override - @SideOnly(Side.CLIENT) - public void attachReloadListener() - { - final IResourceManager resManager = Minecraft.getMinecraft().getResourceManager(); - - if (resManager instanceof IReloadableResourceManager) - { - ((IReloadableResourceManager) resManager).registerReloadListener(new ReloadListener(this)); - } - } - - @SideOnly(Side.CLIENT) - public static class ReloadListener implements IResourceManagerReloadListener - { - private final DialogManager manager; - - public ReloadListener(final DialogManager manager) - { - this.manager = manager; - } - - @Override - public void onResourceManagerReload(final IResourceManager resourceManager) - { - this.manager.cachedScenes.clear(); - } - } - -} diff --git a/src/main/java/com/gildedgames/aether/common/dialog/DialogUtil.java b/src/main/java/com/gildedgames/aether/common/dialog/DialogUtil.java deleted file mode 100644 index 30cbbc6083..0000000000 --- a/src/main/java/com/gildedgames/aether/common/dialog/DialogUtil.java +++ /dev/null @@ -1,81 +0,0 @@ -package com.gildedgames.aether.common.dialog; - -import com.gildedgames.aether.api.AetherAPI; -import com.gildedgames.aether.api.dialog.IDialogController; -import com.gildedgames.aether.api.dialog.IDialogSlide; -import com.gildedgames.aether.api.dialog.IDialogSlideRenderer; -import com.gildedgames.aether.api.dialog.IDialogSpeaker; -import net.minecraft.util.ResourceLocation; - -import java.util.Map; - -public class DialogUtil -{ - public static IDialogSpeaker getCurrentSpeaker(IDialogController controller) - { - if (!controller.getCurrentLine().getSpeaker().isPresent()) - { - return null; - } - - final ResourceLocation speakerPath = controller.getCurrentLine().getSpeaker().get(); - - return AetherAPI.content().dialog().getSpeaker(speakerPath).orElseThrow(() -> - new IllegalArgumentException("Couldn't getByte speaker: " + speakerPath)); - } - - public static IDialogSlide getSlide(IDialogController controller) - { - if (!controller.getCurrentLine().getSpeaker().isPresent()) - { - return null; - } - - final ResourceLocation speakerPath = controller.getCurrentLine().getSpeaker().get(); - - IDialogSpeaker speaker = AetherAPI.content().dialog().getSpeaker(speakerPath).orElseThrow(() -> - new IllegalArgumentException("Couldn't getByte speaker: " + speakerPath)); - - final String address; - IDialogSlide slide = null; - - // Check if the speaker resourcelocation has a slide address - if (speakerPath.getPath().contains("#")) - { - // Obtain the slide address from the Speaker resourcelocation - address = speakerPath.getPath().substring(speakerPath.getPath().indexOf("#") + 1); - - slide = AetherAPI.content().dialog().findSlide(address, speaker).orElseThrow(() -> - new IllegalArgumentException("Couldn't find slide: " + address)); - } - else if (speaker.getSlides().isPresent()) - { - final Map<String, IDialogSlide> slides = speaker.getSlides().get(); - - if (!slides.isEmpty() && slides.containsKey("default")) - { - slide = slides.get("default"); - } - } - - return slide; - } - - public static IDialogSlideRenderer getRenderer(IDialogSlide slide) - { - IDialogSlideRenderer renderer = null; - - if (slide != null && slide.getRenderer().isPresent()) - { - final String renderType = slide.getRenderer().get(); - - renderer = AetherAPI.content().dialog().findRenderer(renderType).orElseThrow(() -> - new IllegalArgumentException("Couldn't find slide renderer: " + renderType)); - - renderer.setup(slide); - } - - return renderer; - } - -} diff --git a/src/main/java/com/gildedgames/aether/common/dialog/data/DialogActionDeserializer.java b/src/main/java/com/gildedgames/aether/common/dialog/data/DialogActionDeserializer.java deleted file mode 100644 index 5091c6eeb0..0000000000 --- a/src/main/java/com/gildedgames/aether/common/dialog/data/DialogActionDeserializer.java +++ /dev/null @@ -1,45 +0,0 @@ -package com.gildedgames.aether.common.dialog.data; - -import com.gildedgames.aether.api.dialog.IDialogAction; -import com.gildedgames.aether.common.dialog.data.actions.*; -import com.google.gson.*; - -import java.lang.reflect.Type; -import java.util.HashMap; - -public class DialogActionDeserializer implements JsonDeserializer<IDialogAction> -{ - private final HashMap<String, Class<? extends IDialogAction>> actions = new HashMap<>(); - - public DialogActionDeserializer() - { - this.actions.put("back", DialogActionNavigateBack.class); - this.actions.put("navigate", DialogActionNavigate.class); - this.actions.put("navigate_start", DialogActionNavigateToStart.class); - this.actions.put("navigate_scene", DialogActionNavigateScene.class); - this.actions.put("exit", DialogActionExit.class); - this.actions.put("travelToBed", DialogActionTravelToBed.class); - this.actions.put("travelToLastOutpost", DialogActionTravelToLastOutpost.class); - this.actions.put("openShop", DialogActionOpenShop.class); - } - - @Override - public IDialogAction deserialize(final JsonElement json, final Type typeOfT, final JsonDeserializationContext context) throws JsonParseException - { - final JsonObject root = json.getAsJsonObject(); - - if (!root.has("type")) - { - throw new JsonParseException("Missing required field 'type' for action"); - } - - final String type = root.get("type").getAsString(); - - if (!this.actions.containsKey(type)) - { - throw new JsonParseException("Invalid action type " + type); - } - - return context.deserialize(json, this.actions.get(type)); - } -} diff --git a/src/main/java/com/gildedgames/aether/common/dialog/data/DialogButton.java b/src/main/java/com/gildedgames/aether/common/dialog/data/DialogButton.java deleted file mode 100644 index 01d5f71a3d..0000000000 --- a/src/main/java/com/gildedgames/aether/common/dialog/data/DialogButton.java +++ /dev/null @@ -1,70 +0,0 @@ -package com.gildedgames.aether.common.dialog.data; - -import com.gildedgames.aether.api.dialog.IDialogAction; -import com.gildedgames.aether.api.dialog.IDialogButton; -import com.gildedgames.aether.api.dialog.IDialogCondition; -import net.minecraft.util.text.ITextComponent; -import net.minecraft.util.text.TextComponentString; -import org.apache.commons.lang3.Validate; - -import javax.annotation.Nonnull; -import java.util.Collection; - -public class DialogButton implements IDialogButton -{ - private final String label; - - private final Collection<IDialogAction> actions; - - private final Collection<IDialogCondition> conditions; - - private final Collection<IDialogCondition> orConditions; - - public DialogButton(Collection<IDialogCondition> orConditions, Collection<IDialogCondition> conditions, final String label, - final Collection<IDialogAction> actions) - { - Validate.notNull(orConditions, "orConditions are null"); - Validate.notNull(conditions, "Conditions are null"); - Validate.notNull(actions, "Actions are null"); - - this.orConditions = orConditions; - this.conditions = conditions; - this.label = label; - this.actions = actions; - } - - @Nonnull - @Override - public Collection<IDialogCondition> getOrConditions() - { - return this.orConditions; - } - - @Nonnull - @Override - public Collection<IDialogCondition> getConditions() - { - return this.conditions; - } - - @Nonnull - @Override - public String getLabel() - { - return this.label; - } - - @Nonnull - @Override - public ITextComponent getLocalizedLabel() - { - return new TextComponentString(this.label); - } - - @Nonnull - @Override - public Collection<IDialogAction> getActions() - { - return this.actions; - } -} diff --git a/src/main/java/com/gildedgames/aether/common/dialog/data/DialogConditionDeserializer.java b/src/main/java/com/gildedgames/aether/common/dialog/data/DialogConditionDeserializer.java deleted file mode 100644 index 56725c010c..0000000000 --- a/src/main/java/com/gildedgames/aether/common/dialog/data/DialogConditionDeserializer.java +++ /dev/null @@ -1,44 +0,0 @@ -package com.gildedgames.aether.common.dialog.data; - -import com.gildedgames.aether.api.dialog.IDialogCondition; -import com.gildedgames.aether.common.dialog.data.conditions.DialogConditionHasSleptInBed; -import com.gildedgames.aether.common.dialog.data.conditions.DialogConditionIsChristmasEvent; -import com.gildedgames.aether.common.dialog.data.conditions.DialogConditionIsNewYearsEvent; -import com.gildedgames.aether.common.dialog.data.conditions.DialogConditionReturningToOutpost; -import com.google.gson.*; - -import java.lang.reflect.Type; -import java.util.HashMap; - -public class DialogConditionDeserializer implements JsonDeserializer<IDialogCondition> -{ - private final HashMap<String, Class<? extends IDialogCondition>> conditions = new HashMap<>(); - - public DialogConditionDeserializer() - { - this.conditions.put("returningToOutpost", DialogConditionReturningToOutpost.class); - this.conditions.put("hasSleptInBed", DialogConditionHasSleptInBed.class); - this.conditions.put("isChristmasEvent", DialogConditionIsChristmasEvent.class); - this.conditions.put("isNewYearsEvent", DialogConditionIsNewYearsEvent.class); - } - - @Override - public IDialogCondition deserialize(final JsonElement json, final Type typeOfT, final JsonDeserializationContext context) throws JsonParseException - { - final JsonObject root = json.getAsJsonObject(); - - if (!root.has("type")) - { - throw new JsonParseException("Missing required field 'type' for action"); - } - - final String type = root.get("type").getAsString(); - - if (!this.conditions.containsKey(type)) - { - throw new JsonParseException("Invalid action type " + type); - } - - return context.deserialize(json, this.conditions.get(type)); - } -} diff --git a/src/main/java/com/gildedgames/aether/common/dialog/data/DialogSchema.java b/src/main/java/com/gildedgames/aether/common/dialog/data/DialogSchema.java deleted file mode 100644 index a0d2d9bb5f..0000000000 --- a/src/main/java/com/gildedgames/aether/common/dialog/data/DialogSchema.java +++ /dev/null @@ -1,164 +0,0 @@ -package com.gildedgames.aether.common.dialog.data; - -import com.gildedgames.aether.api.dialog.*; -import com.google.gson.annotations.SerializedName; -import net.minecraft.util.ResourceLocation; -import net.minecraft.util.text.ITextComponent; -import net.minecraft.util.text.TextComponentTranslation; - -import javax.annotation.Nonnull; -import java.util.Collection; -import java.util.Collections; -import java.util.List; -import java.util.Optional; - -public class DialogSchema implements IDialogScene -{ - @SerializedName("nodes") - private Collection<DialogNodeSchema> nodes; - - private String startingNodeId; - - @Override - public Optional<IDialogNode> getNode(final String id) - { - for (final DialogNodeSchema node : this.nodes) - { - if (id.equals(node.getIdentifier())) - { - return Optional.of(node); - } - } - - return Optional.empty(); - } - - @Nonnull - @Override - public IDialogNode getStartingNode() - { - return this.getNode(this.startingNodeId).orElseThrow(() -> - new IllegalArgumentException("Couldn't find starting node with id: '" + this.startingNodeId + "'")); - } - - @Override - public void setStartingNode(String id) - { - this.startingNodeId = id; - } - - private class DialogNodeSchema implements IDialogNode - { - @SerializedName("buttons") - private final List<DialogButtonSchema> buttons = null; - - @SerializedName("end_actions") - private final Collection<IDialogAction> actions = null; - - @SerializedName("name") - private String name; - - @SerializedName("lines") - private List<DialogLineSchema> lines; - - @Nonnull - @Override - public List<IDialogLine> getLines() - { - return Collections.unmodifiableList(this.lines); - } - - @Nonnull - @Override - public Collection<IDialogButton> getButtons() - { - return this.buttons == null ? Collections.emptyList() : Collections.unmodifiableList(this.buttons); - } - - @Nonnull - @Override - public Collection<IDialogAction> getEndActions() - { - return this.actions == null ? Collections.emptyList() : Collections.unmodifiableCollection(this.actions); - } - - @Nonnull - @Override - public String getIdentifier() - { - return this.name; - } - } - - private class DialogButtonSchema implements IDialogButton - { - @SerializedName("orConditions") - private Collection<IDialogCondition> orConditions; - - @SerializedName("conditions") - private Collection<IDialogCondition> conditions; - - @SerializedName("label") - private String label; - - @SerializedName("actions") - private Collection<IDialogAction> actions; - - @Nonnull - @Override - public Collection<IDialogCondition> getOrConditions() - { - return this.orConditions == null ? Collections.emptyList() : this.orConditions; - } - - @Nonnull - @Override - public Collection<IDialogCondition> getConditions() - { - return this.conditions == null ? Collections.emptyList() : this.conditions; - } - - @Nonnull - @Override - public String getLabel() - { - return this.label; - } - - @Nonnull - @Override - public ITextComponent getLocalizedLabel() - { - return new TextComponentTranslation(this.label); - } - - @Nonnull - @Override - public Collection<IDialogAction> getActions() - { - return this.actions; - } - } - - private class DialogLineSchema implements IDialogLine - { - @SerializedName("speaker") - private final String speaker = null; - - @SerializedName("text") - private String text; - - @Override - public ITextComponent getLocalizedBody() - { - return new TextComponentTranslation(this.text); - } - - @Override - public Optional<ResourceLocation> getSpeaker() - { - return this.speaker != null ? Optional.of(new ResourceLocation(this.speaker)) : Optional.empty(); - } - - } -} diff --git a/src/main/java/com/gildedgames/aether/common/dialog/data/DialogSlide.java b/src/main/java/com/gildedgames/aether/common/dialog/data/DialogSlide.java deleted file mode 100644 index 8616a7953f..0000000000 --- a/src/main/java/com/gildedgames/aether/common/dialog/data/DialogSlide.java +++ /dev/null @@ -1,28 +0,0 @@ -package com.gildedgames.aether.common.dialog.data; - -import com.gildedgames.aether.api.dialog.IDialogSlide; -import com.google.gson.annotations.SerializedName; - -import java.util.Map; -import java.util.Optional; - -public class DialogSlide implements IDialogSlide -{ - @SerializedName("render") - private String render; - - @SerializedName("data") - private Map<String, String> slideData; - - @Override - public Optional<String> getRenderer() - { - return this.render != null ? Optional.of(this.render) : Optional.empty(); - } - - @Override - public Optional<Map<String, String>> getSlideData() - { - return this.slideData != null ? Optional.of(this.slideData) : Optional.empty(); - } -} diff --git a/src/main/java/com/gildedgames/aether/common/dialog/data/DialogSlideDeserializer.java b/src/main/java/com/gildedgames/aether/common/dialog/data/DialogSlideDeserializer.java deleted file mode 100644 index cff13992c4..0000000000 --- a/src/main/java/com/gildedgames/aether/common/dialog/data/DialogSlideDeserializer.java +++ /dev/null @@ -1,18 +0,0 @@ -package com.gildedgames.aether.common.dialog.data; - -import com.gildedgames.aether.api.dialog.IDialogSlide; -import com.google.gson.JsonDeserializationContext; -import com.google.gson.JsonDeserializer; -import com.google.gson.JsonElement; -import com.google.gson.JsonParseException; - -import java.lang.reflect.Type; - -public class DialogSlideDeserializer implements JsonDeserializer<IDialogSlide> -{ - @Override - public IDialogSlide deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context) throws JsonParseException - { - return context.deserialize(json, DialogSlide.class); - } -} diff --git a/src/main/java/com/gildedgames/aether/common/dialog/data/DialogSlideRendererDeserializer.java b/src/main/java/com/gildedgames/aether/common/dialog/data/DialogSlideRendererDeserializer.java deleted file mode 100644 index f9c6f26aac..0000000000 --- a/src/main/java/com/gildedgames/aether/common/dialog/data/DialogSlideRendererDeserializer.java +++ /dev/null @@ -1,38 +0,0 @@ -package com.gildedgames.aether.common.dialog.data; - -import com.gildedgames.aether.api.dialog.IDialogSlideRenderer; -import com.gildedgames.aether.common.dialog.data.slide_renderers.DialogSlideRendererStatic; -import com.google.gson.*; - -import java.lang.reflect.Type; -import java.util.HashMap; - -public class DialogSlideRendererDeserializer implements JsonDeserializer<IDialogSlideRenderer> -{ - private final HashMap<String, Class<? extends IDialogSlideRenderer>> renderers = new HashMap<>(); - - public DialogSlideRendererDeserializer() - { - this.renderers.put("static", DialogSlideRendererStatic.class); - } - - @Override - public IDialogSlideRenderer deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context) throws JsonParseException - { - JsonObject root = json.getAsJsonObject(); - - if (!root.has("type")) - { - throw new JsonParseException("Missing required field 'type' for action"); - } - - String type = root.get("type").getAsString(); - - if (!this.renderers.containsKey(type)) - { - throw new JsonParseException("Invalid action type " + type); - } - - return context.deserialize(json, this.renderers.get(type)); - } -} diff --git a/src/main/java/com/gildedgames/aether/common/dialog/data/DialogSpeaker.java b/src/main/java/com/gildedgames/aether/common/dialog/data/DialogSpeaker.java deleted file mode 100644 index 5fd12ff4be..0000000000 --- a/src/main/java/com/gildedgames/aether/common/dialog/data/DialogSpeaker.java +++ /dev/null @@ -1,31 +0,0 @@ -package com.gildedgames.aether.common.dialog.data; - -import com.gildedgames.aether.api.dialog.IDialogSlide; -import com.gildedgames.aether.api.dialog.IDialogSpeaker; -import com.google.gson.annotations.SerializedName; - -import javax.annotation.Nonnull; -import java.util.Map; -import java.util.Optional; - -public class DialogSpeaker implements IDialogSpeaker -{ - @SerializedName("name") - private String name; - - @SerializedName("slides") - private Map<String, IDialogSlide> slides; - - @Nonnull - @Override - public String getUnlocalizedName() - { - return this.name != null ? this.name : ""; - } - - @Override - public Optional<Map<String, IDialogSlide>> getSlides() - { - return this.slides != null ? Optional.of(this.slides) : Optional.empty(); - } -} diff --git a/src/main/java/com/gildedgames/aether/common/dialog/data/actions/DialogActionExit.java b/src/main/java/com/gildedgames/aether/common/dialog/data/actions/DialogActionExit.java deleted file mode 100644 index 36a916b68f..0000000000 --- a/src/main/java/com/gildedgames/aether/common/dialog/data/actions/DialogActionExit.java +++ /dev/null @@ -1,33 +0,0 @@ -package com.gildedgames.aether.common.dialog.data.actions; - -import com.gildedgames.aether.api.dialog.IDialogAction; -import com.gildedgames.aether.api.dialog.IDialogController; -import com.gildedgames.aether.common.AetherCore; -import com.google.gson.JsonDeserializationContext; -import com.google.gson.JsonDeserializer; -import com.google.gson.JsonElement; -import com.google.gson.JsonParseException; - -import java.lang.reflect.Type; - -public class DialogActionExit implements IDialogAction -{ - private DialogActionExit() - { - } - - @Override - public void performAction(IDialogController controller) - { - AetherCore.PROXY.turnOffScreen(); - } - - public static class Deserializer implements JsonDeserializer<DialogActionExit> - { - @Override - public DialogActionExit deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context) throws JsonParseException - { - return new DialogActionExit(); - } - } -} diff --git a/src/main/java/com/gildedgames/aether/common/dialog/data/actions/DialogActionNavigate.java b/src/main/java/com/gildedgames/aether/common/dialog/data/actions/DialogActionNavigate.java deleted file mode 100644 index 3e5d95cfd0..0000000000 --- a/src/main/java/com/gildedgames/aether/common/dialog/data/actions/DialogActionNavigate.java +++ /dev/null @@ -1,38 +0,0 @@ -package com.gildedgames.aether.common.dialog.data.actions; - -import com.gildedgames.aether.api.dialog.IDialogAction; -import com.gildedgames.aether.api.dialog.IDialogController; -import com.google.gson.JsonDeserializationContext; -import com.google.gson.JsonDeserializer; -import com.google.gson.JsonElement; -import com.google.gson.JsonParseException; -import org.apache.commons.lang3.Validate; - -import java.lang.reflect.Type; - -public class DialogActionNavigate implements IDialogAction -{ - private final String target; - - private DialogActionNavigate(String target) - { - Validate.notNull(target, "Target cannot be null"); - - this.target = target; - } - - @Override - public void performAction(IDialogController controller) - { - controller.navigateNode(this.target); - } - - public static class Deserializer implements JsonDeserializer<DialogActionNavigate> - { - @Override - public DialogActionNavigate deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context) throws JsonParseException - { - return new DialogActionNavigate(json.getAsJsonObject().get("target").getAsString()); - } - } -} diff --git a/src/main/java/com/gildedgames/aether/common/dialog/data/actions/DialogActionNavigateBack.java b/src/main/java/com/gildedgames/aether/common/dialog/data/actions/DialogActionNavigateBack.java deleted file mode 100644 index 6efc5bd0b4..0000000000 --- a/src/main/java/com/gildedgames/aether/common/dialog/data/actions/DialogActionNavigateBack.java +++ /dev/null @@ -1,33 +0,0 @@ -package com.gildedgames.aether.common.dialog.data.actions; - -import com.gildedgames.aether.api.dialog.IDialogAction; -import com.gildedgames.aether.api.dialog.IDialogController; -import com.google.gson.JsonDeserializationContext; -import com.google.gson.JsonDeserializer; -import com.google.gson.JsonElement; -import com.google.gson.JsonParseException; - -import java.lang.reflect.Type; - -public class DialogActionNavigateBack implements IDialogAction -{ - private DialogActionNavigateBack() - { - - } - - @Override - public void performAction(IDialogController controller) - { - controller.navigateBack(); - } - - public static class Deserializer implements JsonDeserializer<DialogActionNavigateBack> - { - @Override - public DialogActionNavigateBack deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context) throws JsonParseException - { - return new DialogActionNavigateBack(); - } - } -} diff --git a/src/main/java/com/gildedgames/aether/common/dialog/data/actions/DialogActionNavigateScene.java b/src/main/java/com/gildedgames/aether/common/dialog/data/actions/DialogActionNavigateScene.java deleted file mode 100644 index 28dba79d4a..0000000000 --- a/src/main/java/com/gildedgames/aether/common/dialog/data/actions/DialogActionNavigateScene.java +++ /dev/null @@ -1,44 +0,0 @@ -package com.gildedgames.aether.common.dialog.data.actions; - -import com.gildedgames.aether.api.dialog.IDialogAction; -import com.gildedgames.aether.api.dialog.IDialogController; -import com.google.gson.JsonDeserializationContext; -import com.google.gson.JsonDeserializer; -import com.google.gson.JsonElement; -import com.google.gson.JsonParseException; -import net.minecraft.util.ResourceLocation; -import org.apache.commons.lang3.Validate; - -import java.lang.reflect.Type; - -public class DialogActionNavigateScene implements IDialogAction -{ - private final ResourceLocation loc; - - private final String target; - - private DialogActionNavigateScene(ResourceLocation loc, String target) - { - Validate.notNull(loc, "Location cannot be null"); - Validate.notNull(target, "Target cannot be null"); - - this.loc = loc; - this.target = target; - } - - @Override - public void performAction(IDialogController controller) - { - controller.openScene(this.loc, this.target); - } - - public static class Deserializer implements JsonDeserializer<DialogActionNavigateScene> - { - @Override - public DialogActionNavigateScene deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context) throws JsonParseException - { - return new DialogActionNavigateScene(new ResourceLocation(json.getAsJsonObject().get("loc").getAsString()), - json.getAsJsonObject().get("target").getAsString()); - } - } -} diff --git a/src/main/java/com/gildedgames/aether/common/dialog/data/actions/DialogActionNavigateToStart.java b/src/main/java/com/gildedgames/aether/common/dialog/data/actions/DialogActionNavigateToStart.java deleted file mode 100644 index 6dbb9e1e9f..0000000000 --- a/src/main/java/com/gildedgames/aether/common/dialog/data/actions/DialogActionNavigateToStart.java +++ /dev/null @@ -1,33 +0,0 @@ -package com.gildedgames.aether.common.dialog.data.actions; - -import com.gildedgames.aether.api.dialog.IDialogAction; -import com.gildedgames.aether.api.dialog.IDialogController; -import com.google.gson.JsonDeserializationContext; -import com.google.gson.JsonDeserializer; -import com.google.gson.JsonElement; -import com.google.gson.JsonParseException; - -import java.lang.reflect.Type; - -public class DialogActionNavigateToStart implements IDialogAction -{ - private DialogActionNavigateToStart() - { - - } - - @Override - public void performAction(IDialogController controller) - { - controller.navigateNode(controller.getCurrentScene().getStartingNode().getIdentifier()); - } - - public static class Deserializer implements JsonDeserializer<DialogActionNavigateToStart> - { - @Override - public DialogActionNavigateToStart deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context) throws JsonParseException - { - return new DialogActionNavigateToStart(); - } - } -} diff --git a/src/main/java/com/gildedgames/aether/common/dialog/data/actions/DialogActionOpenShop.java b/src/main/java/com/gildedgames/aether/common/dialog/data/actions/DialogActionOpenShop.java deleted file mode 100644 index 74ec238aea..0000000000 --- a/src/main/java/com/gildedgames/aether/common/dialog/data/actions/DialogActionOpenShop.java +++ /dev/null @@ -1,49 +0,0 @@ -package com.gildedgames.aether.common.dialog.data.actions; - -import com.gildedgames.aether.api.dialog.IDialogAction; -import com.gildedgames.aether.api.dialog.IDialogController; -import com.gildedgames.aether.api.shop.IShopInstance; -import com.gildedgames.aether.common.AetherCore; -import com.gildedgames.aether.common.network.AetherGuiHandler; -import com.google.gson.JsonDeserializationContext; -import com.google.gson.JsonDeserializer; -import com.google.gson.JsonElement; -import com.google.gson.JsonParseException; -import net.minecraft.entity.player.EntityPlayer; - -import java.lang.reflect.Type; - -public class DialogActionOpenShop implements IDialogAction -{ - private final int shopIndex; - - private DialogActionOpenShop(int shopIndex) - { - this.shopIndex = shopIndex; - } - - @Override - public void performAction(IDialogController controller) - { - EntityPlayer player = controller.getDialogPlayer(); - - if (!player.world.isRemote && controller.getTalkingCharacter() != null && controller.getTalkingCharacter().getShopInstanceGroup() != null) - { - IShopInstance shopInstance = controller.getTalkingCharacter().getShopInstanceGroup().getShopInstance(this.shopIndex); - - if (shopInstance != null) - { - player.openGui(AetherCore.MOD_ID, AetherGuiHandler.DIALOG_SHOP_ID, player.world, this.shopIndex, 0, 0); - } - } - } - - public static class Deserializer implements JsonDeserializer<DialogActionOpenShop> - { - @Override - public DialogActionOpenShop deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context) throws JsonParseException - { - return new DialogActionOpenShop(json.getAsJsonObject().get("shopIndex").getAsInt()); - } - } -} diff --git a/src/main/java/com/gildedgames/aether/common/dialog/data/actions/DialogActionTravelToBed.java b/src/main/java/com/gildedgames/aether/common/dialog/data/actions/DialogActionTravelToBed.java deleted file mode 100644 index 7c8cb5faa0..0000000000 --- a/src/main/java/com/gildedgames/aether/common/dialog/data/actions/DialogActionTravelToBed.java +++ /dev/null @@ -1,63 +0,0 @@ -package com.gildedgames.aether.common.dialog.data.actions; - -import com.gildedgames.aether.api.dialog.IDialogAction; -import com.gildedgames.aether.api.dialog.IDialogController; -import com.gildedgames.aether.common.AetherCore; -import com.gildedgames.aether.common.capabilities.entity.player.PlayerAether; -import com.gildedgames.aether.common.capabilities.entity.player.modules.PlayerProgressModule; -import com.google.gson.JsonDeserializationContext; -import com.google.gson.JsonDeserializer; -import com.google.gson.JsonElement; -import com.google.gson.JsonParseException; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.EntityPlayerMP; -import net.minecraft.util.math.BlockPos; - -import java.lang.reflect.Type; - -public class DialogActionTravelToBed implements IDialogAction -{ - private DialogActionTravelToBed() - { - } - - @Override - public void performAction(IDialogController controller) - { - if (controller.getDialogPlayer().world.isRemote) - { - AetherCore.PROXY.turnOffScreen(); - - return; - } - - EntityPlayerMP player = (EntityPlayerMP) controller.getDialogPlayer(); - PlayerAether playerAether = PlayerAether.getPlayer(player); - - BlockPos bedPos = player.getBedLocation(player.dimension); - - if (bedPos != null) - { - bedPos = EntityPlayer.getBedSpawnLocation(player.getServerWorld(), bedPos, player.isSpawnForced(player.dimension)); - } - - if (bedPos != null) - { - PlayerProgressModule progressModule = playerAether.getModule(PlayerProgressModule.class); - - progressModule.setBeforeReturnToBed(player.getPosition()); - progressModule.setHasReturnedToBed(true); - - player.connection.setPlayerLocation(bedPos.getX(), bedPos.getY(), bedPos.getZ(), 0, 0); - } - } - - public static class Deserializer implements JsonDeserializer<DialogActionTravelToBed> - { - @Override - public DialogActionTravelToBed deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context) throws JsonParseException - { - return new DialogActionTravelToBed(); - } - } -} diff --git a/src/main/java/com/gildedgames/aether/common/dialog/data/actions/DialogActionTravelToLastOutpost.java b/src/main/java/com/gildedgames/aether/common/dialog/data/actions/DialogActionTravelToLastOutpost.java deleted file mode 100644 index deb287d2e4..0000000000 --- a/src/main/java/com/gildedgames/aether/common/dialog/data/actions/DialogActionTravelToLastOutpost.java +++ /dev/null @@ -1,53 +0,0 @@ -package com.gildedgames.aether.common.dialog.data.actions; - -import com.gildedgames.aether.api.dialog.IDialogAction; -import com.gildedgames.aether.api.dialog.IDialogController; -import com.gildedgames.aether.common.AetherCore; -import com.gildedgames.aether.common.capabilities.entity.player.PlayerAether; -import com.gildedgames.aether.common.capabilities.entity.player.modules.PlayerProgressModule; -import com.google.gson.JsonDeserializationContext; -import com.google.gson.JsonDeserializer; -import com.google.gson.JsonElement; -import com.google.gson.JsonParseException; -import net.minecraft.entity.player.EntityPlayerMP; -import net.minecraft.util.math.BlockPos; - -import java.lang.reflect.Type; - -public class DialogActionTravelToLastOutpost implements IDialogAction -{ - private DialogActionTravelToLastOutpost() - { - } - - @Override - public void performAction(IDialogController controller) - { - if (controller.getDialogPlayer().world.isRemote) - { - AetherCore.PROXY.turnOffScreen(); - - return; - } - - EntityPlayerMP player = (EntityPlayerMP) controller.getDialogPlayer(); - PlayerAether playerAether = PlayerAether.getPlayer(player); - PlayerProgressModule progressModule = playerAether.getModule(PlayerProgressModule.class); - - BlockPos p = progressModule.getBeforeReturnToBed(); - - player.connection.setPlayerLocation(p.getX(), p.getY(), p.getZ(), 0, 0); - - progressModule.setBeforeReturnToBed(null); - progressModule.setHasReturnedToBed(false); - } - - public static class Deserializer implements JsonDeserializer<DialogActionTravelToLastOutpost> - { - @Override - public DialogActionTravelToLastOutpost deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context) throws JsonParseException - { - return new DialogActionTravelToLastOutpost(); - } - } -} diff --git a/src/main/java/com/gildedgames/aether/common/dialog/data/conditions/DialogConditionHasSleptInBed.java b/src/main/java/com/gildedgames/aether/common/dialog/data/conditions/DialogConditionHasSleptInBed.java deleted file mode 100644 index 13383eeb59..0000000000 --- a/src/main/java/com/gildedgames/aether/common/dialog/data/conditions/DialogConditionHasSleptInBed.java +++ /dev/null @@ -1,53 +0,0 @@ -package com.gildedgames.aether.common.dialog.data.conditions; - -import com.gildedgames.aether.api.dialog.IDialogCondition; -import com.gildedgames.aether.api.dialog.IDialogController; -import com.google.gson.JsonDeserializationContext; -import com.google.gson.JsonDeserializer; -import com.google.gson.JsonElement; -import com.google.gson.JsonParseException; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.EntityPlayerMP; -import net.minecraft.util.math.BlockPos; - -import java.lang.reflect.Type; - -public class DialogConditionHasSleptInBed implements IDialogCondition -{ - private final boolean validate; - - private DialogConditionHasSleptInBed(boolean validate) - { - this.validate = validate; - } - - @Override - public boolean isMet(IDialogController controller) - { - if (controller.getDialogPlayer().world.isRemote) - { - return false; - } - - EntityPlayer player = controller.getDialogPlayer(); - - BlockPos bedPos = player.getBedLocation(((EntityPlayerMP) player).dimension); - final EntityPlayerMP mp = (EntityPlayerMP) player; - - if (bedPos != null) - { - bedPos = EntityPlayer.getBedSpawnLocation(mp.getServerWorld(), bedPos, mp.isSpawnForced(mp.dimension)); - } - - return bedPos != null == this.validate; - } - - public static class Deserializer implements JsonDeserializer<DialogConditionHasSleptInBed> - { - @Override - public DialogConditionHasSleptInBed deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context) throws JsonParseException - { - return new DialogConditionHasSleptInBed(json.getAsJsonObject().get("validate").getAsBoolean()); - } - } -} diff --git a/src/main/java/com/gildedgames/aether/common/dialog/data/conditions/DialogConditionIsChristmasEvent.java b/src/main/java/com/gildedgames/aether/common/dialog/data/conditions/DialogConditionIsChristmasEvent.java deleted file mode 100644 index bcdba9f14e..0000000000 --- a/src/main/java/com/gildedgames/aether/common/dialog/data/conditions/DialogConditionIsChristmasEvent.java +++ /dev/null @@ -1,41 +0,0 @@ -package com.gildedgames.aether.common.dialog.data.conditions; - -import com.gildedgames.aether.api.dialog.IDialogCondition; -import com.gildedgames.aether.api.dialog.IDialogController; -import com.gildedgames.aether.common.AetherCelebrations; -import com.google.gson.JsonDeserializationContext; -import com.google.gson.JsonDeserializer; -import com.google.gson.JsonElement; -import com.google.gson.JsonParseException; - -import java.lang.reflect.Type; - -public class DialogConditionIsChristmasEvent implements IDialogCondition -{ - private final boolean validate; - - private DialogConditionIsChristmasEvent(boolean validate) - { - this.validate = validate; - } - - @Override - public boolean isMet(IDialogController controller) - { - if (controller.getDialogPlayer().world.isRemote) - { - return false; - } - - return AetherCelebrations.isChristmasEvent() == this.validate; - } - - public static class Deserializer implements JsonDeserializer<DialogConditionIsChristmasEvent> - { - @Override - public DialogConditionIsChristmasEvent deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context) throws JsonParseException - { - return new DialogConditionIsChristmasEvent(json.getAsJsonObject().get("validate").getAsBoolean()); - } - } -} diff --git a/src/main/java/com/gildedgames/aether/common/dialog/data/conditions/DialogConditionIsNewYearsEvent.java b/src/main/java/com/gildedgames/aether/common/dialog/data/conditions/DialogConditionIsNewYearsEvent.java deleted file mode 100644 index 810d69edf9..0000000000 --- a/src/main/java/com/gildedgames/aether/common/dialog/data/conditions/DialogConditionIsNewYearsEvent.java +++ /dev/null @@ -1,41 +0,0 @@ -package com.gildedgames.aether.common.dialog.data.conditions; - -import com.gildedgames.aether.api.dialog.IDialogCondition; -import com.gildedgames.aether.api.dialog.IDialogController; -import com.gildedgames.aether.common.AetherCelebrations; -import com.google.gson.JsonDeserializationContext; -import com.google.gson.JsonDeserializer; -import com.google.gson.JsonElement; -import com.google.gson.JsonParseException; - -import java.lang.reflect.Type; - -public class DialogConditionIsNewYearsEvent implements IDialogCondition -{ - private final boolean validate; - - private DialogConditionIsNewYearsEvent(boolean validate) - { - this.validate = validate; - } - - @Override - public boolean isMet(IDialogController controller) - { - if (controller.getDialogPlayer().world.isRemote) - { - return false; - } - - return AetherCelebrations.isNewYearsEvent() == this.validate; - } - - public static class Deserializer implements JsonDeserializer<DialogConditionIsNewYearsEvent> - { - @Override - public DialogConditionIsNewYearsEvent deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context) throws JsonParseException - { - return new DialogConditionIsNewYearsEvent(json.getAsJsonObject().get("validate").getAsBoolean()); - } - } -} diff --git a/src/main/java/com/gildedgames/aether/common/dialog/data/conditions/DialogConditionReturningToOutpost.java b/src/main/java/com/gildedgames/aether/common/dialog/data/conditions/DialogConditionReturningToOutpost.java deleted file mode 100644 index 33c4c10aec..0000000000 --- a/src/main/java/com/gildedgames/aether/common/dialog/data/conditions/DialogConditionReturningToOutpost.java +++ /dev/null @@ -1,61 +0,0 @@ -package com.gildedgames.aether.common.dialog.data.conditions; - -import com.gildedgames.aether.api.dialog.IDialogCondition; -import com.gildedgames.aether.api.dialog.IDialogController; -import com.gildedgames.aether.common.capabilities.entity.player.PlayerAether; -import com.gildedgames.aether.common.capabilities.entity.player.modules.PlayerProgressModule; -import com.google.gson.JsonDeserializationContext; -import com.google.gson.JsonDeserializer; -import com.google.gson.JsonElement; -import com.google.gson.JsonParseException; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.EntityPlayerMP; -import net.minecraft.util.math.BlockPos; - -import java.lang.reflect.Type; - -public class DialogConditionReturningToOutpost implements IDialogCondition -{ - private final boolean validate; - - private DialogConditionReturningToOutpost(boolean validate) - { - this.validate = validate; - } - - @Override - public boolean isMet(IDialogController controller) - { - if (controller.getDialogPlayer().world.isRemote) - { - return false; - } - - EntityPlayer player = controller.getDialogPlayer(); - PlayerAether playerAether = PlayerAether.getPlayer(player); - - BlockPos bedPos = player.getBedLocation(((EntityPlayerMP) player).dimension); - final EntityPlayerMP mp = (EntityPlayerMP) player; - - if (bedPos != null) - { - bedPos = EntityPlayer.getBedSpawnLocation(mp.getServerWorld(), bedPos, mp.isSpawnForced(mp.dimension)); - } - - if (bedPos == null && this.validate) - { - return false; - } - - return playerAether.getModule(PlayerProgressModule.class).hasReturnedToBed() == this.validate; - } - - public static class Deserializer implements JsonDeserializer<DialogConditionReturningToOutpost> - { - @Override - public DialogConditionReturningToOutpost deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context) throws JsonParseException - { - return new DialogConditionReturningToOutpost(json.getAsJsonObject().get("validate").getAsBoolean()); - } - } -} diff --git a/src/main/java/com/gildedgames/aether/common/dialog/data/slide_renderers/DialogSlideRendererNOOP.java b/src/main/java/com/gildedgames/aether/common/dialog/data/slide_renderers/DialogSlideRendererNOOP.java deleted file mode 100644 index 0369dca4de..0000000000 --- a/src/main/java/com/gildedgames/aether/common/dialog/data/slide_renderers/DialogSlideRendererNOOP.java +++ /dev/null @@ -1,42 +0,0 @@ -package com.gildedgames.aether.common.dialog.data.slide_renderers; - -import com.gildedgames.aether.api.dialog.IDialogSlide; -import com.gildedgames.aether.api.dialog.IDialogSlideRenderer; -import com.google.gson.JsonDeserializationContext; -import com.google.gson.JsonDeserializer; -import com.google.gson.JsonElement; -import com.google.gson.JsonParseException; - -import java.lang.reflect.Type; - -/** - * Draws static images. - * - * Slide Data is interpreted as follows: - * - * - ResourceLocation of texture - * - (optional) Rendering scale - */ -public class DialogSlideRendererNOOP implements IDialogSlideRenderer -{ - @Override - public void setup(IDialogSlide slide) - { - - } - - @Override - public void draw(IDialogSlide slide, double screenWidth, double screenHeight, int mouseX, int mouseY, float partialTicks) - { - - } - - public static class Deserializer implements JsonDeserializer<DialogSlideRendererNOOP> - { - @Override - public DialogSlideRendererNOOP deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context) throws JsonParseException - { - return new DialogSlideRendererNOOP(); - } - } -} diff --git a/src/main/java/com/gildedgames/aether/common/dialog/data/slide_renderers/DialogSlideRendererStatic.java b/src/main/java/com/gildedgames/aether/common/dialog/data/slide_renderers/DialogSlideRendererStatic.java deleted file mode 100644 index 742fd2b844..0000000000 --- a/src/main/java/com/gildedgames/aether/common/dialog/data/slide_renderers/DialogSlideRendererStatic.java +++ /dev/null @@ -1,97 +0,0 @@ -package com.gildedgames.aether.common.dialog.data.slide_renderers; - -import com.gildedgames.aether.api.dialog.IDialogSlide; -import com.gildedgames.aether.api.dialog.IDialogSlideRenderer; -import com.google.gson.JsonDeserializationContext; -import com.google.gson.JsonDeserializer; -import com.google.gson.JsonElement; -import com.google.gson.JsonParseException; -import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.Gui; -import net.minecraft.client.renderer.GlStateManager; -import net.minecraft.client.renderer.texture.TextureManager; -import net.minecraft.util.ResourceLocation; - -import java.lang.reflect.Type; -import java.util.Map; - -/** - * Draws static images. - * - * Slide Data is interpreted as follows: - * - * - ResourceLocation of texture - * - (optional) Rendering scale - */ -public class DialogSlideRendererStatic implements IDialogSlideRenderer -{ - private ResourceLocation slideTexture; - - private double scale = 1.0; - - private int width, height; - - @Override - public void setup(IDialogSlide slide) - { - if (!slide.getSlideData().isPresent()) - { - return; - } - - Map<String, String> data = slide.getSlideData().get(); - - if (data.containsKey("resource")) - { - this.slideTexture = new ResourceLocation(data.get("resource")); - } - - if (data.containsKey("scale")) - { - this.scale = Double.valueOf(data.get("scale")); - } - - if (data.containsKey("width")) - { - this.width = Integer.valueOf(data.get("width")); - } - - if (data.containsKey("height")) - { - this.height = Integer.valueOf(data.get("height")); - } - } - - @Override - public void draw(IDialogSlide slide, double screenWidth, double screenHeight, int mouseX, int mouseY, float partialTicks) - { - if (this.slideTexture == null) - { - return; - } - - TextureManager textureManager = Minecraft.getMinecraft().renderEngine; - - double scaledWidth = this.width * this.scale; - double scaledHeight = this.height * this.scale; - - GlStateManager.pushMatrix(); - - GlStateManager.translate((screenWidth / 2) - (scaledWidth / 2), screenHeight - 90 - scaledHeight, 0); - GlStateManager.scale(this.scale, this.scale, this.scale); - - textureManager.bindTexture(this.slideTexture); - - Gui.drawModalRectWithCustomSizedTexture(0, 0, 0, 0, this.width, this.height, this.width, this.height); - GlStateManager.popMatrix(); - } - - public static class Deserializer implements JsonDeserializer<DialogSlideRendererStatic> - { - @Override - public DialogSlideRendererStatic deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context) throws JsonParseException - { - return new DialogSlideRendererStatic(); - } - } -} diff --git a/src/main/java/com/gildedgames/aether/common/dungeons/AABB.java b/src/main/java/com/gildedgames/aether/common/dungeons/AABB.java deleted file mode 100644 index a167e67f38..0000000000 --- a/src/main/java/com/gildedgames/aether/common/dungeons/AABB.java +++ /dev/null @@ -1,50 +0,0 @@ -package com.gildedgames.aether.common.dungeons; - -import com.gildedgames.orbis.lib.data.region.IRegion; - -import java.util.List; - -public class AABB -{ - public int minX, minY, maxX, maxY; - - public AABB(int minX, int minY, int maxX, int maxY) { - this.minX = minX; - this.minY = minY; - this.maxX = maxX; - this.maxY = maxY; - } - - public int getWidth() { - return this.maxX - this.minX; - } - - public int getHeight() { - return this.maxY - this.minY; - } - - public void add(int x, int y) { - this.minX += x; - this.maxX += x; - - this.minY += y; - this.maxY += y; - } - - public boolean intersects(AABB aabb) { - return intersects(aabb, 0); - } - - public boolean intersects(AABB aabb, int padding) { - return this.minX - padding <= aabb.maxX + padding && this.maxX + padding >= aabb.minX - padding - && this.minY - padding <= aabb.maxY + padding && this.maxY >= aabb.minY + padding; - } - - public static <T extends AABB> void fetchIntersecting(T region, List<T> regions, List<T> addTo, int padding) { - for (T r : regions) { - if (r.intersects(region, padding)) { - addTo.add(r); - } - } - } -} diff --git a/src/main/java/com/gildedgames/aether/common/dungeons/Dungeon.java b/src/main/java/com/gildedgames/aether/common/dungeons/Dungeon.java deleted file mode 100644 index f465a26882..0000000000 --- a/src/main/java/com/gildedgames/aether/common/dungeons/Dungeon.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.gildedgames.aether.common.dungeons; - -import java.util.List; - -public class Dungeon implements IDungeon { - private List<DungeonNode> rooms; - - public Dungeon(List<DungeonNode> rooms) { - this.rooms = rooms; - } - - @Override - public List<DungeonNode> rooms() { - return this.rooms; - } -} diff --git a/src/main/java/com/gildedgames/aether/common/dungeons/DungeonGenStep.java b/src/main/java/com/gildedgames/aether/common/dungeons/DungeonGenStep.java deleted file mode 100644 index 591bfaf6f0..0000000000 --- a/src/main/java/com/gildedgames/aether/common/dungeons/DungeonGenStep.java +++ /dev/null @@ -1,8 +0,0 @@ -package com.gildedgames.aether.common.dungeons; - -public enum DungeonGenStep { - PUSH_ROOMS_APART, - SELECT_HUBS, - FIND_PATHWAYS, - FINISH, -} diff --git a/src/main/java/com/gildedgames/aether/common/dungeons/DungeonGenerator.java b/src/main/java/com/gildedgames/aether/common/dungeons/DungeonGenerator.java deleted file mode 100644 index e267c25934..0000000000 --- a/src/main/java/com/gildedgames/aether/common/dungeons/DungeonGenerator.java +++ /dev/null @@ -1,89 +0,0 @@ -package com.gildedgames.aether.common.dungeons; - -import com.gildedgames.orbis.lib.core.util.BlueprintPlacer; -import com.gildedgames.orbis.lib.core.world_objects.BlueprintRegion; -import com.gildedgames.orbis.lib.data.blueprint.BlueprintData; -import com.google.common.collect.Lists; -import net.minecraft.util.math.BlockPos; - -import java.util.List; -import java.util.Random; -import java.util.Iterator; - - -import java.util.stream.Collectors; - -public class DungeonGenerator implements IDungeonGenerator { - - public static final int PAD_SIZE = 3; - - @Override - public IDungeon generate(IDungeonDefinition definition, Random rand) { - List<DungeonNode> rooms = Lists.newArrayList(); - int extraRooms = rand.nextInt(definition.getMaxRooms() - definition.getMinRooms()); - int targetRooms = definition.getMinRooms() + extraRooms; - - for (int i = 0; i < targetRooms; i++) { - BlueprintData data = definition.possibleBlueprints().get(rand.nextInt(definition.possibleBlueprints().size())); - BlueprintRegion room = new BlueprintRegion(getRandomPos(rand), BlueprintPlacer.getRandomRotation(rand), data); - - rooms.add(new DungeonNode(room)); - } - - return new Dungeon(rooms); - } - - private BlockPos getRandomPos(Random rand) { - int x = rand.nextInt(20) * (rand.nextBoolean() ? -1 : 1); - int y = rand.nextInt(20); - int z = rand.nextInt(20) * (rand.nextBoolean() ? -1 : 1); - - return new BlockPos(x, y, z); - } - - @Override - public boolean step(DungeonGenStep step, IDungeon soFar) { - switch (step) { - case PUSH_ROOMS_APART: { - List<AABB> allAABB = soFar.rooms().stream().map(DungeonNode::getAABB).collect(Collectors.toList()); - Iterator<AABB> it = allAABB.iterator(); - boolean anyIntersect = false; - - while (it.hasNext()) { - AABB room = it.next(); - boolean intersected = false; - - for (AABB other : allAABB) { - if (other == room) { - continue; - } - - if (room.intersects(other, getCollisionPadding())) { - int diffX = room.minX < other.minX ? 1 : -1; - int diffY = room.minY < other.minY ? 1 : -1; - - other.add(diffX, diffY); - room.add(-diffX, -diffY); - - intersected = true; - anyIntersect = true; - } - } - - if (intersected) { - it.remove(); - } - } - - return !anyIntersect; - } - } - - return false; - } - - public int getCollisionPadding() - { - return PAD_SIZE; - } -} diff --git a/src/main/java/com/gildedgames/aether/common/dungeons/DungeonNode.java b/src/main/java/com/gildedgames/aether/common/dungeons/DungeonNode.java deleted file mode 100644 index 84889af8d7..0000000000 --- a/src/main/java/com/gildedgames/aether/common/dungeons/DungeonNode.java +++ /dev/null @@ -1,19 +0,0 @@ -package com.gildedgames.aether.common.dungeons; - -import com.gildedgames.orbis.lib.core.world_objects.BlueprintRegion; - -public class DungeonNode -{ - private BlueprintRegion region; - - private AABB aabb; - - public DungeonNode(BlueprintRegion region) { - this.region = region; - this.aabb = new AABB(region.getMin().getX(), region.getMin().getZ(), region.getMax().getX(), region.getMax().getZ()); - } - - public AABB getAABB() { - return this.aabb; - } -} diff --git a/src/main/java/com/gildedgames/aether/common/dungeons/DungeonViewer.java b/src/main/java/com/gildedgames/aether/common/dungeons/DungeonViewer.java deleted file mode 100644 index fe9d08e59f..0000000000 --- a/src/main/java/com/gildedgames/aether/common/dungeons/DungeonViewer.java +++ /dev/null @@ -1,45 +0,0 @@ -package com.gildedgames.aether.common.dungeons; - -import com.gildedgames.orbis.lib.core.world_objects.BlueprintRegion; -import com.gildedgames.orbis.lib.data.blueprint.BlueprintData; -import com.gildedgames.orbis.lib.data.region.Region; -import com.google.common.collect.Lists; -import net.minecraft.client.gui.Gui; -import net.minecraft.client.gui.GuiMainMenu; -import net.minecraft.util.math.BlockPos; -import net.minecraftforge.client.event.GuiOpenEvent; -import net.minecraftforge.client.event.GuiScreenEvent; -import net.minecraftforge.fml.common.Mod; -import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; -import net.minecraftforge.fml.relauncher.Side; -import org.lwjgl.LWJGLException; -import org.lwjgl.opengl.Display; -import org.lwjgl.opengl.DisplayMode; -import org.lwjgl.opengl.GL11; - -import java.util.Random; - -public class DungeonViewer -{ - public static BlueprintData data1 = new BlueprintData(new Region(BlockPos.ORIGIN, new BlockPos(5, 5, 5))); - public static BlueprintData data2 = new BlueprintData(new Region(BlockPos.ORIGIN, new BlockPos(15, 5, 5))); - public static BlueprintData data3 = new BlueprintData(new Region(BlockPos.ORIGIN, new BlockPos(25, 5, 15))); - - public static InfectedTreeDungeonDefinition def = new InfectedTreeDungeonDefinition(Lists.newArrayList(data1, data2, data3)); - - private IDungeon dungeon; - private IDungeonGenerator generator; - - public DungeonViewer() { - this.generator = new DungeonGenerator(); - this.dungeon = this.generator.generate(def, new Random()); - } - - @SubscribeEvent - public void drawScreen(GuiOpenEvent event) { - if (event.getGui() instanceof GuiMainMenu) { - event.setGui(new GuiDungeonViewer(this.generator, this.dungeon)); - } - } - -} diff --git a/src/main/java/com/gildedgames/aether/common/dungeons/GuiDungeonViewer.java b/src/main/java/com/gildedgames/aether/common/dungeons/GuiDungeonViewer.java deleted file mode 100644 index 2d75f638d1..0000000000 --- a/src/main/java/com/gildedgames/aether/common/dungeons/GuiDungeonViewer.java +++ /dev/null @@ -1,85 +0,0 @@ -package com.gildedgames.aether.common.dungeons; - -import com.gildedgames.aether.common.AetherCore; -import com.gildedgames.orbis.lib.client.gui.util.GuiTexture; -import com.gildedgames.orbis.lib.client.gui.util.gui_library.GuiElement; -import com.gildedgames.orbis.lib.client.gui.util.gui_library.GuiViewerNoContainer; -import com.gildedgames.orbis.lib.client.gui.util.gui_library.IGuiContext; -import com.gildedgames.orbis.lib.client.rect.Dim2D; -import com.gildedgames.orbis.lib.client.rect.Rect; -import com.gildedgames.orbis.lib.core.world_objects.BlueprintRegion; -import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.GuiScreen; -import net.minecraft.client.renderer.GlStateManager; -import net.minecraft.client.renderer.RenderHelper; -import net.minecraft.util.ResourceLocation; -import org.lwjgl.opengl.Display; -import org.lwjgl.opengl.GL11; - -import java.io.IOException; -import java.util.Random; - -public class GuiDungeonViewer extends GuiViewerNoContainer -{ - private static final ResourceLocation TEXTURE_BASE = AetherCore.getResource("textures/gui/guidebook/guidebook_base.png"); - - private IDungeon dungeon; - - private IDungeonGenerator generator; - - public GuiDungeonViewer(IDungeonGenerator generator, IDungeon dungeon) - { - super(new GuiElement(Dim2D.flush(), false)); - - this.generator = generator; - this.dungeon = dungeon; - } - - @Override - public void onGuiClosed() - { - super.onGuiClosed(); - } - - @Override - public void build(IGuiContext context) { - } - - @Override - public void drawScreen(int mouseX, int mouseY, float partialTicks) - { - super.drawScreen(mouseX, mouseY, partialTicks); - - GL11.glClear(GL11.GL_COLOR_BUFFER_BIT | GL11.GL_DEPTH_BUFFER_BIT); - - - for (DungeonNode room : this.dungeon.rooms()) { - AABB aabb = room.getAABB(); - GlStateManager.pushMatrix(); - - double scale = 2.0; - - Minecraft.getMinecraft().getTextureManager().bindTexture(TEXTURE_BASE); - GlStateManager.translate(aabb.minX + (this.width / 2), aabb.minY + (this.height / 2), 0); - //GlStateManager.scale(scale, scale, scale); - GuiTexture.drawModalRectWithCustomSizedTexture(0, 0, 0, 0, aabb.getWidth(), aabb.getHeight(), aabb.getWidth(), aabb.getHeight()); - - GlStateManager.popMatrix(); - } - - boolean finished = this.generator.step(DungeonGenStep.PUSH_ROOMS_APART, this.dungeon); - -// if (finished) { -// IDungeonGenerator gen = new DungeonGenerator(); -// this.dungeon = gen.generate(DungeonViewer.def, new Random()); -// } - } - - @Override - protected void keyTyped(final char typedChar, final int keyCode) throws IOException - { - IDungeonGenerator gen = new DungeonGenerator(); - this.dungeon = gen.generate(DungeonViewer.def, new Random()); - } - -} diff --git a/src/main/java/com/gildedgames/aether/common/dungeons/IDungeon.java b/src/main/java/com/gildedgames/aether/common/dungeons/IDungeon.java deleted file mode 100644 index 047ebe2bc9..0000000000 --- a/src/main/java/com/gildedgames/aether/common/dungeons/IDungeon.java +++ /dev/null @@ -1,7 +0,0 @@ -package com.gildedgames.aether.common.dungeons; - -import java.util.List; - -public interface IDungeon { - List<DungeonNode> rooms(); -} diff --git a/src/main/java/com/gildedgames/aether/common/dungeons/IDungeonDefinition.java b/src/main/java/com/gildedgames/aether/common/dungeons/IDungeonDefinition.java deleted file mode 100644 index e8e022414d..0000000000 --- a/src/main/java/com/gildedgames/aether/common/dungeons/IDungeonDefinition.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.gildedgames.aether.common.dungeons; - -import com.gildedgames.orbis.lib.data.blueprint.BlueprintData; - -import java.util.List; - -public interface IDungeonDefinition { - List<BlueprintData> possibleBlueprints(); - - int getMinRooms(); - - int getMaxRooms(); -} diff --git a/src/main/java/com/gildedgames/aether/common/dungeons/IDungeonGenerator.java b/src/main/java/com/gildedgames/aether/common/dungeons/IDungeonGenerator.java deleted file mode 100644 index bcf239ac3f..0000000000 --- a/src/main/java/com/gildedgames/aether/common/dungeons/IDungeonGenerator.java +++ /dev/null @@ -1,11 +0,0 @@ -package com.gildedgames.aether.common.dungeons; - -import java.util.Random; - -public interface IDungeonGenerator { - IDungeon generate(IDungeonDefinition definition, Random rand); - - boolean step(DungeonGenStep step, IDungeon soFar); - - int getCollisionPadding(); -} diff --git a/src/main/java/com/gildedgames/aether/common/dungeons/InfectedTreeDungeonDefinition.java b/src/main/java/com/gildedgames/aether/common/dungeons/InfectedTreeDungeonDefinition.java deleted file mode 100644 index 72a63da42e..0000000000 --- a/src/main/java/com/gildedgames/aether/common/dungeons/InfectedTreeDungeonDefinition.java +++ /dev/null @@ -1,28 +0,0 @@ -package com.gildedgames.aether.common.dungeons; - -import com.gildedgames.orbis.lib.data.blueprint.BlueprintData; - -import java.util.List; - -public class InfectedTreeDungeonDefinition implements IDungeonDefinition { - private List<BlueprintData> possibleBlueprints; - - public InfectedTreeDungeonDefinition(List<BlueprintData> possibleBlueprints) { - this.possibleBlueprints = possibleBlueprints; - } - - @Override - public List<BlueprintData> possibleBlueprints() { - return this.possibleBlueprints; - } - - @Override - public int getMinRooms() { - return 15; - } - - @Override - public int getMaxRooms() { - return 30; - } -} diff --git a/src/main/java/com/gildedgames/aether/common/entities/ai/AetherNavigateGround.java b/src/main/java/com/gildedgames/aether/common/entities/ai/AetherNavigateGround.java deleted file mode 100644 index 6f2d67f46f..0000000000 --- a/src/main/java/com/gildedgames/aether/common/entities/ai/AetherNavigateGround.java +++ /dev/null @@ -1,35 +0,0 @@ -package com.gildedgames.aether.common.entities.ai; - -import com.gildedgames.aether.api.registrar.BlocksAether; -import com.gildedgames.aether.common.blocks.natural.BlockAercloud; -import net.minecraft.entity.EntityLiving; -import net.minecraft.pathfinding.PathNavigateGround; -import net.minecraft.pathfinding.PathPoint; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.World; - -public class AetherNavigateGround extends PathNavigateGround -{ - public AetherNavigateGround(EntityLiving entitylivingIn, World worldIn) - { - super(entitylivingIn, worldIn); - } - - @Override - protected void removeSunnyPath() - { - super.removeSunnyPath(); - - for (int i = 0; i < this.currentPath.getCurrentPathLength(); ++i) - { - PathPoint pathpoint = this.currentPath.getPathPointFromIndex(i); - - if (this.world.getBlockState(new BlockPos(pathpoint.x, pathpoint.y, pathpoint.z)) == BlocksAether.aercloud - .getStateFromMeta(BlockAercloud.BLUE_AERCLOUD.getMeta())) - { - this.currentPath.setCurrentPathLength(i - 1); - return; - } - } - } -} \ No newline at end of file diff --git a/src/main/java/com/gildedgames/aether/common/entities/ai/EntityAI.java b/src/main/java/com/gildedgames/aether/common/entities/ai/EntityAI.java deleted file mode 100644 index 66c79ffd47..0000000000 --- a/src/main/java/com/gildedgames/aether/common/entities/ai/EntityAI.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.gildedgames.aether.common.entities.ai; - -import net.minecraft.entity.Entity; -import net.minecraft.entity.ai.EntityAIBase; - -public abstract class EntityAI<T extends Entity> extends EntityAIBase -{ - - private final T entity; - - public EntityAI(T entity) - { - this.entity = entity; - } - - public T entity() - { - return this.entity; - } - -} diff --git a/src/main/java/com/gildedgames/aether/common/entities/ai/EntityAIAechorPlantAttack.java b/src/main/java/com/gildedgames/aether/common/entities/ai/EntityAIAechorPlantAttack.java deleted file mode 100644 index adada85398..0000000000 --- a/src/main/java/com/gildedgames/aether/common/entities/ai/EntityAIAechorPlantAttack.java +++ /dev/null @@ -1,88 +0,0 @@ -package com.gildedgames.aether.common.entities.ai; - -import com.gildedgames.aether.common.entities.projectiles.EntityDart; -import com.gildedgames.aether.common.items.weapons.ItemDartType; -import net.minecraft.entity.EntityCreature; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.ai.EntityAITarget; -import net.minecraft.util.math.MathHelper; - -public class EntityAIAechorPlantAttack extends EntityAITarget -{ - private int ticksUntilAttack = 3; - - public EntityAIAechorPlantAttack(final EntityCreature creature) - { - super(creature, true); - } - - @Override - public boolean shouldExecute() - { - return this.hasTarget(); - } - - @Override - public boolean shouldContinueExecuting() - { - final EntityLivingBase target = this.taskOwner.getAttackTarget(); - - if (target == null || !target.isEntityAlive()) - { - this.ticksUntilAttack = 20; - - return false; - } - - return true; - } - - @Override - public void updateTask() - { - if (this.ticksUntilAttack <= 0) - { - this.ticksUntilAttack = 45; - - final EntityLivingBase prey = this.taskOwner.getAttackTarget(); - - if (prey == null) - { - return; - } - - final EntityCreature predator = this.taskOwner; - - if (!predator.world.isRemote) - { - final EntityDart dart = new EntityDart(predator.world, predator); - dart.shoot(predator.posX, predator.posY + 1.0F, predator.posZ, 0.6F, 1.0F); - - final double motionX = prey.posX - predator.posX; - final double motionY = prey.getEntityBoundingBox().minY + (double) (prey.height / 3.0F) - dart.posY; - final double motionZ = prey.posZ - predator.posZ; - - final double accel = (double) MathHelper.sqrt(motionX * motionX + motionZ * motionZ); - - dart.shoot(motionX, motionY + accel * 0.2D, motionZ, 1.6F, 0.5f); - dart.setDamage(0.5f); - - dart.setDartType(ItemDartType.POISON); - - dart.world.spawnEntity(dart); - } - } - - this.ticksUntilAttack--; - } - - public boolean hasTarget() - { - final EntityCreature predator = this.taskOwner; - - final double maxDistance = this.getTargetDistance(); - - return predator.getAttackTarget() != null && predator.isEntityAlive() - && predator.getDistanceSq(predator.getAttackTarget()) < (maxDistance * maxDistance); - } -} diff --git a/src/main/java/com/gildedgames/aether/common/entities/ai/EntityAIBreakBlocks.java b/src/main/java/com/gildedgames/aether/common/entities/ai/EntityAIBreakBlocks.java deleted file mode 100644 index 63039fd700..0000000000 --- a/src/main/java/com/gildedgames/aether/common/entities/ai/EntityAIBreakBlocks.java +++ /dev/null @@ -1,135 +0,0 @@ -package com.gildedgames.aether.common.entities.ai; - -import net.minecraft.block.Block; -import net.minecraft.block.state.IBlockState; -import net.minecraft.entity.EntityCreature; -import net.minecraft.entity.ai.EntityAIBase; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.Vec3d; - -import javax.annotation.Nullable; -import java.util.Random; - -public class EntityAIBreakBlocks extends EntityAIBase -{ - - private final float movementSpeed; - - private final EntityCreature entity; - - private double targetX; - - private double targetY; - - private double targetZ; - - private boolean enabled; - - private final Block[] blocks; - - public EntityAIBreakBlocks(EntityCreature entity, float movementSpeed, Block[] blocks) - { - this.entity = entity; - this.movementSpeed = movementSpeed; - this.blocks = blocks; - this.enabled = true; - - this.setMutexBits(1); - } - - @Override - public boolean shouldExecute() - { - if (this.entity == null || !this.enabled) - { - return false; - } - - BlockPos entityPos = new BlockPos(this.entity.posX, this.entity.getEntityBoundingBox().minY, this.entity.posZ); - - Vec3d vec3d = this.findBlocks(); - - if (vec3d == null) - { - return false; - } - else - { - this.targetX = vec3d.x; - this.targetY = vec3d.y; - this.targetZ = vec3d.z; - - return true; - } - } - - @Override - public boolean shouldContinueExecuting() - { - - BlockPos destroyPos = new BlockPos(this.targetX, this.targetY, this.targetZ); - - if (this.entity.getDistanceSq(destroyPos) < 15) - { - System.out.println("ATTack"); - } - - return !this.entity.getNavigator().noPath(); - } - - @Override - public void startExecuting() - { - this.entity.getNavigator().tryMoveToXYZ(this.targetX, this.targetY, this.targetZ, this.movementSpeed); - - BlockPos destroyPos = new BlockPos(this.targetX, this.targetY, this.targetZ); - - if (this.entity.getDistanceSq(destroyPos) < 15) - { - System.out.println("ATTack"); - } - } - - @Nullable - private Vec3d findBlocks() - { - Random random = this.entity.getRNG(); - BlockPos blockpos = new BlockPos(this.entity.posX, this.entity.getEntityBoundingBox().minY, this.entity.posZ); - - final int rad = 5; - - for (int i = -rad; i < rad; i++) - { - for (int j = -rad; j < rad; j++) - { - for (int l = -2; l < 2; l++) - { - BlockPos pos2 = blockpos.add(i, j, l); - - if (!this.entity.getEntityWorld().isAirBlock(pos2)) - { - IBlockState block = this.entity.getEntityWorld().getBlockState(pos2); - - for (Block bs : this.blocks) - { - if (block.getBlock().equals(bs)) - { - this.targetX = pos2.getX(); - this.targetY = pos2.getY(); - this.targetZ = pos2.getZ(); - } - } - } - - } - } - } - - return null; - } - - public void setEnabled(boolean b) - { - this.enabled = b; - } -} diff --git a/src/main/java/com/gildedgames/aether/common/entities/ai/EntityAIEggnogTempt.java b/src/main/java/com/gildedgames/aether/common/entities/ai/EntityAIEggnogTempt.java deleted file mode 100644 index 311ba3ead9..0000000000 --- a/src/main/java/com/gildedgames/aether/common/entities/ai/EntityAIEggnogTempt.java +++ /dev/null @@ -1,129 +0,0 @@ -package com.gildedgames.aether.common.entities.ai; - -import com.gildedgames.aether.common.capabilities.entity.player.PlayerAether; -import net.minecraft.entity.EntityCreature; -import net.minecraft.entity.ai.EntityAIBase; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.pathfinding.PathNavigateGround; - -public class EntityAIEggnogTempt extends EntityAIBase -{ - /** The entity using this AI that is tempted by the player. */ - private final EntityCreature temptedEntity; - - private final double speed; - - /** The player that is tempting the entity that is using this AI. */ - private EntityPlayer temptingPlayer; - - /** - * A counter that is decremented each time the shouldExecute method is called. The shouldExecute method will always - * return false if delayTemptCounter is greater than 0. - */ - private int delayTemptCounter; - - /** True if this EntityAITempt task is running */ - private boolean isRunning; - - public EntityAIEggnogTempt(EntityCreature temptedEntityIn, double speedIn) - { - this.temptedEntity = temptedEntityIn; - this.speed = speedIn; - this.setMutexBits(3); - - if (!(temptedEntityIn.getNavigator() instanceof PathNavigateGround)) - { - throw new IllegalArgumentException("Unsupported mob type for TemptGoal"); - } - } - - /** - * Returns whether the EntityAIBase should begin execution. - */ - @Override - public boolean shouldExecute() - { - if (this.delayTemptCounter > 0) - { - --this.delayTemptCounter; - return false; - } - else - { - this.temptingPlayer = this.temptedEntity.world.getClosestPlayerToEntity(this.temptedEntity, 10.0D); - - if (this.temptingPlayer == null) - { - return false; - } - else - { - return this.isTempting(this.temptingPlayer); - } - } - } - - protected boolean isTempting(EntityPlayer player) - { - PlayerAether playerAether = PlayerAether.getPlayer(player); - - return playerAether.hasEggnogEffect(); - } - - /** - * Returns whether an in-progress EntityAIBase should continue executing - */ - @Override - public boolean shouldContinueExecuting() - { - return this.shouldExecute(); - } - - /** - * Execute a one shot task or start executing a continuous task - */ - @Override - public void startExecuting() - { - this.isRunning = true; - } - - /** - * Reset the task's internal state. Called when this task is interrupted by another one - */ - @Override - public void resetTask() - { - this.temptingPlayer = null; - this.temptedEntity.getNavigator().clearPath(); - this.delayTemptCounter = 100; - this.isRunning = false; - } - - /** - * Keep ticking a continuous task that has already been started - */ - @Override - public void updateTask() - { - this.temptedEntity.getLookHelper().setLookPositionWithEntity(this.temptingPlayer, (float) (this.temptedEntity.getHorizontalFaceSpeed() + 20), - (float) this.temptedEntity.getVerticalFaceSpeed()); - - if (this.temptedEntity.getDistanceSq(this.temptingPlayer) < 6.25D) - { - this.temptedEntity.getNavigator().clearPath(); - } - else - { - this.temptedEntity.getNavigator().tryMoveToEntityLiving(this.temptingPlayer, this.speed); - } - } - - /** - * @see #isRunning - */ - public boolean isRunning() - { - return this.isRunning; - } -} \ No newline at end of file diff --git a/src/main/java/com/gildedgames/aether/common/entities/ai/EntityAIForcedWander.java b/src/main/java/com/gildedgames/aether/common/entities/ai/EntityAIForcedWander.java deleted file mode 100644 index 8596cde656..0000000000 --- a/src/main/java/com/gildedgames/aether/common/entities/ai/EntityAIForcedWander.java +++ /dev/null @@ -1,69 +0,0 @@ -package com.gildedgames.aether.common.entities.ai; - -import net.minecraft.entity.EntityCreature; -import net.minecraft.entity.ai.EntityAIWander; -import net.minecraft.entity.ai.RandomPositionGenerator; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.Vec3d; - -import javax.annotation.Nullable; - -public class EntityAIForcedWander extends EntityAIWander -{ - protected final EntityCreature entity; - - protected final int chance; - - protected final int xScatter; - - protected final int yScatter; - - public EntityAIForcedWander(final EntityCreature entity, final double speedIn, final int chance) - { - this(entity, speedIn, chance, 10, 7); - } - - public EntityAIForcedWander(final EntityCreature entity, final double speedIn, final int chance, final int xScatter, final int yScatter) - { - super(entity, speedIn, chance); - - this.entity = entity; - this.chance = chance; - this.xScatter = xScatter; - this.yScatter = yScatter; - } - - @Override - public boolean shouldExecute() - { - if (this.entity.getNavigator().noPath()) - { - if (this.entity.getRNG().nextInt(this.chance) == 0) - { - this.makeUpdate(); - - return super.shouldExecute(); - } - } - - return false; - } - - @Override - @Nullable - protected Vec3d getPosition() - { - final Vec3d pos = RandomPositionGenerator.findRandomTarget(this.entity, this.xScatter, this.yScatter); - - if (pos != null) - { - if (!this.entity.world.isBlockLoaded(new BlockPos(pos))) - { - return null; - } - } - - return pos; - } - -} diff --git a/src/main/java/com/gildedgames/aether/common/entities/ai/EntityAIForcedWanderAvoidLight.java b/src/main/java/com/gildedgames/aether/common/entities/ai/EntityAIForcedWanderAvoidLight.java deleted file mode 100644 index 7f01dddc61..0000000000 --- a/src/main/java/com/gildedgames/aether/common/entities/ai/EntityAIForcedWanderAvoidLight.java +++ /dev/null @@ -1,90 +0,0 @@ -package com.gildedgames.aether.common.entities.ai; - -import net.minecraft.entity.EntityCreature; -import net.minecraft.entity.ai.RandomPositionGenerator; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.Vec3d; -import net.minecraft.world.World; - -import javax.annotation.Nullable; - -public class EntityAIForcedWanderAvoidLight extends EntityAIForcedWander -{ - protected final int lightLevel; - - public EntityAIForcedWanderAvoidLight(final EntityCreature entity, final double speedIn, final int chance, final int lightLevel) - { - this(entity, speedIn, chance, 10, 7, lightLevel); - } - - public EntityAIForcedWanderAvoidLight(final EntityCreature entity, final double speedIn, final int chance, final int xScatter, final int yScatter, - final int lightLevel) - { - super(entity, speedIn, chance, xScatter, yScatter); - - this.lightLevel = lightLevel; - } - - @Override - public boolean shouldExecute() - { - final World world = this.entity.world; - - final BlockPos entityPos = new BlockPos(this.entity.posX, this.entity.getEntityBoundingBox().minY, this.entity.posZ); - - if (world.isDaytime()) - { - if (!world.canSeeSky(new BlockPos(this.entity.posX, this.entity.getEntityBoundingBox().minY, this.entity.posZ))) - { - return false; - } - - if (this.entity.world.getLightFromNeighbors(entityPos) <= this.lightLevel) - { - return false; - } - } - - return super.shouldExecute(); - } - - @Override - public boolean shouldContinueExecuting() - { - return !this.entity.getNavigator().noPath() && this.shouldExecute(); - } - - @Override - @Nullable - protected Vec3d getPosition() - { - if (!this.entity.world.isDaytime()) - { - return super.getPosition(); - } - - for (int i = 0; i < 10; i++) - { - final Vec3d pos = RandomPositionGenerator.findRandomTarget(this.entity, this.xScatter, this.yScatter); - - if (pos != null) - { - final BlockPos blockPos = new BlockPos(pos); - - if (!this.entity.world.isBlockLoaded(blockPos)) - { - continue; - } - - if (!(this.entity.world.isDaytime() && this.entity.world - .canSeeSky(blockPos))) - { - return pos; - } - } - } - - return null; - } - -} diff --git a/src/main/java/com/gildedgames/aether/common/entities/ai/EntityAIHideFromLight.java b/src/main/java/com/gildedgames/aether/common/entities/ai/EntityAIHideFromLight.java deleted file mode 100644 index 0178f70108..0000000000 --- a/src/main/java/com/gildedgames/aether/common/entities/ai/EntityAIHideFromLight.java +++ /dev/null @@ -1,117 +0,0 @@ -package com.gildedgames.aether.common.entities.ai; - -import net.minecraft.entity.EntityCreature; -import net.minecraft.entity.ai.EntityAIBase; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.Vec3d; -import net.minecraft.world.World; - -import javax.annotation.Nullable; -import java.util.Random; - -public class EntityAIHideFromLight extends EntityAIBase -{ - - private final float movementSpeed; - - private final EntityCreature entity; - - private final int lightLevel; - - private double shelterX; - - private double shelterY; - - private double shelterZ; - - private boolean enabled; - - public EntityAIHideFromLight(final EntityCreature entity, final float movementSpeed, final int lightLevel) - { - this.entity = entity; - this.movementSpeed = movementSpeed; - this.lightLevel = lightLevel; - this.enabled = true; - - this.setMutexBits(1); - } - - @Override - public boolean shouldExecute() - { - if (this.entity == null || !this.enabled) - { - return false; - } - - final World world = this.entity.world; - - if (!world.isDaytime()) - { - return false; - } - else if (!world.canSeeSky(new BlockPos(this.entity.posX, this.entity.getEntityBoundingBox().minY, this.entity.posZ))) - { - return false; - } - - final BlockPos entityPos = new BlockPos(this.entity.posX, this.entity.getEntityBoundingBox().minY, this.entity.posZ); - - if (this.entity.world.getLightFromNeighbors(entityPos) <= this.lightLevel) - { - return false; - } - - final Vec3d vec3d = this.findPossibleShelter(); - - if (vec3d == null) - { - return false; - } - else - { - this.shelterX = vec3d.x; - this.shelterY = vec3d.y; - this.shelterZ = vec3d.z; - - return true; - } - } - - @Override - public boolean shouldContinueExecuting() - { - return !this.entity.getNavigator().noPath(); - } - - @Override - public void startExecuting() - { - this.entity.getNavigator().tryMoveToXYZ(this.shelterX, this.shelterY, this.shelterZ, this.movementSpeed); - } - - @Nullable - private Vec3d findPossibleShelter() - { - final Random random = this.entity.getRNG(); - final BlockPos blockpos = new BlockPos(this.entity.posX, this.entity.getEntityBoundingBox().minY, this.entity.posZ); - - for (int i = 0; i < 10; ++i) - { - final BlockPos blockpos1 = blockpos.add(random.nextInt(20) - 10, random.nextInt(6) - 3, random.nextInt(20) - 10); - - if (this.entity.world.getLightFromNeighbors(blockpos1) <= this.lightLevel) - { - - return new Vec3d((double) blockpos1.getX(), (double) blockpos1.getY(), (double) blockpos1.getZ()); - } - } - - return null; - } - - public void setEnabled(final boolean b) - { - this.enabled = b; - } -} diff --git a/src/main/java/com/gildedgames/aether/common/entities/ai/EntityAIHideFromRain.java b/src/main/java/com/gildedgames/aether/common/entities/ai/EntityAIHideFromRain.java deleted file mode 100644 index 05341552d0..0000000000 --- a/src/main/java/com/gildedgames/aether/common/entities/ai/EntityAIHideFromRain.java +++ /dev/null @@ -1,97 +0,0 @@ -package com.gildedgames.aether.common.entities.ai; - -import net.minecraft.entity.EntityCreature; -import net.minecraft.entity.ai.EntityAIBase; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.Vec3d; - -import javax.annotation.Nullable; -import java.util.Random; - -public class EntityAIHideFromRain extends EntityAIBase -{ - - private final double movementSpeed; - - private final EntityCreature entity; - - private double shelterX; - - private double shelterY; - - private double shelterZ; - - public EntityAIHideFromRain(EntityCreature entity, double movementSpeed) - { - this.entity = entity; - this.movementSpeed = movementSpeed; - - this.setMutexBits(1); - } - - @Override - public boolean shouldExecute() - { - if (this.entity == null) - { - return false; - } - - if (!this.entity.world.canSeeSky(new BlockPos(this.entity.posX, this.entity.getEntityBoundingBox().minY, this.entity.posZ))) - { - return false; - } - - if (this.entity.world.isRaining()) - { - Vec3d vec3d = this.findPossibleShelter(); - - if (vec3d == null) - { - return false; - } - else - { - this.shelterX = vec3d.x; - this.shelterY = vec3d.y; - this.shelterZ = vec3d.z; - - return true; - } - } - - return false; - } - - @Override - public boolean shouldContinueExecuting() - { - return !this.entity.getNavigator().noPath(); - } - - @Override - public void startExecuting() - { - this.entity.getNavigator().tryMoveToXYZ(this.shelterX, this.shelterY, this.shelterZ, this.movementSpeed); - } - - @Nullable - private Vec3d findPossibleShelter() - { - Random random = this.entity.getRNG(); - BlockPos blockpos = new BlockPos(this.entity.posX, this.entity.getEntityBoundingBox().minY, this.entity.posZ); - - for (int i = 0; i < 10; ++i) - { - BlockPos blockpos1 = blockpos.add(random.nextInt(20) - 10, random.nextInt(6) - 3, random.nextInt(20) - 10); - - if (!this.entity.world.canSeeSky(blockpos1) && this.entity.getBlockPathWeight(blockpos1) < 0.0F) - { - return new Vec3d((double) blockpos1.getX(), (double) blockpos1.getY(), (double) blockpos1.getZ()); - } - } - - return null; - } - -} diff --git a/src/main/java/com/gildedgames/aether/common/entities/ai/EntityAIHideFromTarget.java b/src/main/java/com/gildedgames/aether/common/entities/ai/EntityAIHideFromTarget.java deleted file mode 100644 index 6a2bbbef22..0000000000 --- a/src/main/java/com/gildedgames/aether/common/entities/ai/EntityAIHideFromTarget.java +++ /dev/null @@ -1,135 +0,0 @@ -package com.gildedgames.aether.common.entities.ai; - -import net.minecraft.entity.EntityCreature; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.ai.EntityAIBase; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.pathfinding.Path; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.MathHelper; -import net.minecraft.util.math.RayTraceResult; -import net.minecraft.util.math.Vec3d; -import net.minecraft.world.World; - -import java.util.List; -import java.util.Random; - -public class EntityAIHideFromTarget extends EntityAIBase -{ - - static final int maxDist = 12, minDist = 4; - - private final double movementSpeed; - - protected EntityLivingBase hideFrom; - - final EntityCreature entity; - - final Class<? extends EntityLivingBase> hideFromClass; - - private BlockPos hidingPos; - - public EntityAIHideFromTarget(final EntityCreature entity, final Class<? extends EntityLivingBase> clazz, final double movementSpeed) - { - this.entity = entity; - this.hideFromClass = clazz; - this.movementSpeed = movementSpeed; - } - - @Override - public boolean shouldExecute() - { - if (this.hidingPos != null) - { - return true; - } - - final List entities = this.entity.world.getEntitiesWithinAABB(this.hideFromClass, this.entity.getEntityBoundingBox().expand(maxDist, maxDist, maxDist)); - - if (entities.isEmpty()) - { - return false; - } - - EntityLivingBase toHideFrom = null; - - for (final Object o : entities) - { - if (o instanceof EntityLivingBase && !(o instanceof EntityPlayer && ((EntityPlayer) o).isCreative())) - { - toHideFrom = (EntityLivingBase) o; - } - } - if (toHideFrom == null) - { - return false; - } - else - { - this.hideFrom = toHideFrom; - - if (!this.hideFrom.canEntityBeSeen(this.entity)) - { - return false; - } - - final Vec3d spot = this.findHidingSpot(); - - if (spot == null) - { - return false; - } - - this.hidingPos = new BlockPos(spot.x, spot.y, spot.z); - - return true; - } - } - - @Override - public boolean shouldContinueExecuting() - { - return this.hidingPos != null; - } - - @Override - public void startExecuting() - { - final Path path = this.entity.getNavigator().getPathToPos(this.hidingPos); - - this.entity.getNavigator().setPath(path, this.movementSpeed); - } - - @Override - public void updateTask() - { - if (this.entity.getNavigator().noPath() && this.hideFrom.canEntityBeSeen(this.entity)) - { - this.hidingPos = null; - } - } - - protected Vec3d findHidingSpot() - { - final Random random = this.entity.getRNG(); - final World world = this.entity.world; - - for (int i = 0; i < 13; ++i) - { - final int j = MathHelper.floor(this.entity.posX + random.nextInt(20) - 10.0D); - final int k = MathHelper.floor(this.entity.getEntityBoundingBox().minY + random.nextInt(6) - 3.0D); - final int l = MathHelper.floor(this.entity.posZ + random.nextInt(20) - 10.0D); - - final RayTraceResult raytrace = world.rayTraceBlocks(new Vec3d(j, k + this.entity.getEyeHeight(), l), new Vec3d(this.hideFrom.posX, - this.hideFrom.posY + this.hideFrom.getEyeHeight(), this.hideFrom.posZ)); - - if (raytrace != null && raytrace.typeOfHit != null) - { - return new Vec3d(j, k, l); - } - } - - return null; - } - -} diff --git a/src/main/java/com/gildedgames/aether/common/entities/ai/EntityAILongDistanceWander.java b/src/main/java/com/gildedgames/aether/common/entities/ai/EntityAILongDistanceWander.java deleted file mode 100644 index 7b56e406cf..0000000000 --- a/src/main/java/com/gildedgames/aether/common/entities/ai/EntityAILongDistanceWander.java +++ /dev/null @@ -1,103 +0,0 @@ -package com.gildedgames.aether.common.entities.ai; - -import net.minecraft.entity.EntityCreature; -import net.minecraft.entity.ai.EntityAIBase; -import net.minecraft.entity.ai.RandomPositionGenerator; -import net.minecraft.util.math.Vec3d; - -public class EntityAILongDistanceWander extends EntityAIBase -{ - - private final EntityCreature entity; - - private final double speed; - - private double xPosition; - - private double yPosition; - - private double zPosition; - - private int executionChance; - - private boolean mustUpdate; - - private Vec3d longDistanceTarget; - - public EntityAILongDistanceWander(final EntityCreature creatureIn, final double speedIn) - { - this(creatureIn, speedIn, 120); - } - - public EntityAILongDistanceWander(final EntityCreature creatureIn, final double speedIn, final int chance) - { - this.entity = creatureIn; - this.speed = speedIn; - this.executionChance = chance; - this.setMutexBits(1); - } - - @Override - public boolean shouldExecute() - { - if (this.longDistanceTarget == null) - { - this.longDistanceTarget = RandomPositionGenerator.findRandomTarget(this.entity, 100, 7); - } - else if (this.entity.getDistanceSq(this.longDistanceTarget.x, this.longDistanceTarget.y, this.longDistanceTarget.z) - < 10.0D * 10.0D) - { - this.longDistanceTarget = RandomPositionGenerator.findRandomTarget(this.entity, 100, 7); - } - - final Vec3d vec3d = this.longDistanceTarget;//RandomPositionGenerator.findRandomTargetBlockTowards(this.entity, 30, 2, this.longDistanceTarget); - - if (vec3d == null) - { - return false; - } - else - { - this.xPosition = vec3d.x; - this.yPosition = vec3d.y; - this.zPosition = vec3d.z; - this.mustUpdate = false; - return true; - } - } - - /** - * Returns whether an in-progress EntityAIBase should continue executing - */ - @Override - public boolean shouldContinueExecuting() - { - return !this.entity.getNavigator().noPath(); - } - - /** - * Execute a one shot task or start executing a continuous task - */ - @Override - public void startExecuting() - { - this.entity.getNavigator().tryMoveToXYZ(this.xPosition, this.yPosition, this.zPosition, this.speed); - } - - /** - * Makes task to bypass chance - */ - public void makeUpdate() - { - this.mustUpdate = true; - } - - /** - * Changes task random possibility for execution - */ - public void setExecutionChance(final int newchance) - { - this.executionChance = newchance; - } - -} diff --git a/src/main/java/com/gildedgames/aether/common/entities/ai/EntityAIMoveToBlockYSensitive.java b/src/main/java/com/gildedgames/aether/common/entities/ai/EntityAIMoveToBlockYSensitive.java deleted file mode 100644 index 380b61cee2..0000000000 --- a/src/main/java/com/gildedgames/aether/common/entities/ai/EntityAIMoveToBlockYSensitive.java +++ /dev/null @@ -1,144 +0,0 @@ -package com.gildedgames.aether.common.entities.ai; - -import net.minecraft.entity.EntityCreature; -import net.minecraft.entity.ai.EntityAIBase; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.World; - -public abstract class EntityAIMoveToBlockYSensitive extends EntityAIBase -{ - private final EntityCreature creature; - - private final double movementSpeed; - - private final int searchLength; - - /** Controls task execution delay */ - protected int runDelay; - - /** Block to move to */ - protected BlockPos destinationBlock = BlockPos.ORIGIN; - - private int timeoutCounter; - - private int maxStayTicks; - - private boolean isAboveDestination; - - public EntityAIMoveToBlockYSensitive(final EntityCreature creature, final double speedIn, final int length) - { - this.creature = creature; - this.movementSpeed = speedIn; - this.searchLength = length; - this.setMutexBits(5); - } - - /** - * Returns whether the EntityAIBase should begin execution. - */ - @Override - public boolean shouldExecute() - { - if (this.runDelay > 0) - { - --this.runDelay; - return false; - } - else - { - this.runDelay = 200 + this.creature.getRNG().nextInt(200); - return this.searchForDestination(); - } - } - - /** - * Returns whether an in-progress EntityAIBase should continue executing - */ - @Override - public boolean shouldContinueExecuting() - { - return this.timeoutCounter >= -this.maxStayTicks && this.timeoutCounter <= 1200 && this.shouldMoveTo(this.creature.world, this.destinationBlock); - } - - /** - * Execute a one shot task or start executing a continuous task - */ - @Override - public void startExecuting() - { - this.creature.getNavigator().tryMoveToXYZ((double) ((float) this.destinationBlock.getX()) + 0.5D, (double) (this.destinationBlock.getY() + 1), - (double) ((float) this.destinationBlock.getZ()) + 0.5D, this.movementSpeed); - this.timeoutCounter = 0; - this.maxStayTicks = this.creature.getRNG().nextInt(this.creature.getRNG().nextInt(1200) + 1200) + 1200; - } - - /** - * Keep ticking a continuous task that has already been started - */ - @Override - public void updateTask() - { - if (this.creature.getDistanceSqToCenter(this.destinationBlock.up()) > 1.0D) - { - this.isAboveDestination = false; - ++this.timeoutCounter; - - if (this.timeoutCounter % 40 == 0) - { - this.creature.getNavigator().tryMoveToXYZ((double) ((float) this.destinationBlock.getX()) + 0.5D, (double) (this.destinationBlock.getY() + 1), - (double) ((float) this.destinationBlock.getZ()) + 0.5D, this.movementSpeed); - } - } - else - { - this.isAboveDestination = true; - --this.timeoutCounter; - } - } - - protected boolean getIsAboveDestination() - { - return this.isAboveDestination; - } - - /** - * Searches and sets new destination block and returns true if a suitable block (specified in {@link - * net.minecraft.entity.ai.EntityAIMoveToBlock#shouldMoveTo(World, BlockPos) EntityAIMoveToBlockYSensitive#shouldMoveTo(World, - * BlockPos)}) can be found. - */ - private boolean searchForDestination() - { - final int i = this.searchLength; - final int j = 1; - final BlockPos blockpos = new BlockPos(this.creature); - - final int heightSearch = 4; - - for (int k = -heightSearch; k < heightSearch; k++) - { - for (int l = 0; l < i; ++l) - { - for (int i1 = 0; i1 <= l; i1 = i1 > 0 ? -i1 : 1 - i1) - { - for (int j1 = i1 < l && i1 > -l ? l : 0; j1 <= l; j1 = j1 > 0 ? -j1 : 1 - j1) - { - final BlockPos blockpos1 = blockpos.add(i1, k, j1); - - if (this.creature.isWithinHomeDistanceFromPosition(blockpos1) && this.shouldMoveTo(this.creature.world, blockpos1)) - { - this.destinationBlock = blockpos1; - return true; - } - } - } - } - } - - return false; - } - - /** - * Return true to set given position as destination - */ - protected abstract boolean shouldMoveTo(World worldIn, BlockPos pos); -} \ No newline at end of file diff --git a/src/main/java/com/gildedgames/aether/common/entities/ai/EntityAIRamAttack.java b/src/main/java/com/gildedgames/aether/common/entities/ai/EntityAIRamAttack.java deleted file mode 100644 index a1ccaea43f..0000000000 --- a/src/main/java/com/gildedgames/aether/common/entities/ai/EntityAIRamAttack.java +++ /dev/null @@ -1,115 +0,0 @@ -package com.gildedgames.aether.common.entities.ai; - -import net.minecraft.entity.EntityLiving; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.ai.EntityAIBase; - -import java.util.List; -import java.util.Random; - -public class EntityAIRamAttack extends EntityAIBase -{ - private EntityLiving entity; - - private EntityLivingBase target; - - private double maxDistance, chargeSpeed; - - private final float minCharge, maxCharge; - - private float currentCharge; - - private boolean ramming; - - private Random rand; - - public EntityAIRamAttack(EntityLiving entity, double chargeSpeed, float minChargeTime, float maxChargeTime, double maxDistance) - { - this.rand = new Random(); - this.entity = entity; - this.chargeSpeed = chargeSpeed; - this.minCharge = minChargeTime; - this.maxCharge = maxChargeTime; - this.maxDistance = maxDistance; - } - - @Override - public void updateTask() - { - if (this.shouldExecute()) - { - if (this.ramming) - { - this.entity.getLookHelper().setLookPositionWithEntity(this.target, (float)this.entity.getHorizontalFaceSpeed(), (float)this.entity.getVerticalFaceSpeed()); - this.entity.faceEntity(this.target, 180f, 180f); - - List<EntityLivingBase> entities = this.entity.world.getEntitiesWithinAABB(EntityLivingBase.class, this.entity.getEntityBoundingBox().expand(1, 1, 1)); - - if (entities.contains(this.target)) - { - this.ramming = false; - this.entity.attackEntityAsMob(this.target); - this.target = null; - } - } - } - else - { - this.target = null; - } - } - - @Override - public boolean shouldExecute() - { - return this.target != null && this.entity.getDistance(this.target) < this.maxDistance; - } - - public void setTarget(EntityLivingBase target) - { - if (this.target == null || this.currentCharge <= 0) - { - this.target = target; - this.currentCharge = (this.minCharge + (this.maxCharge - this.minCharge) * this.rand.nextFloat()) * 20; - } - else if (this.target.equals(target)) - { - this.currentCharge /= 1.2f; - } - } - - public void update() - { - if (this.target == null) - { - return; - } - - if (this.ramming) - { - EntityLivingBase target = this.target; - - double ang = Math.atan2(target.posZ - this.entity.posZ, target.posX - this.entity.posX); - this.entity.motionX = (float) Math.cos(ang) * this.chargeSpeed; - this.entity.motionZ = (float) Math.sin(ang) * this.chargeSpeed; - - this.entity.getLookHelper().setLookPositionWithEntity(this.target, (float)this.entity.getHorizontalFaceSpeed(), (float)this.entity.getVerticalFaceSpeed()); - this.entity.faceEntity(this.target, 360f, 360f); - } - else if (this.currentCharge > 0) - { - this.currentCharge--; - - if (this.currentCharge <= 0) - { - this.ramming = true; - } - } - } - - public void setMaxDistance(double maxDistance) - { - this.maxDistance = maxDistance; - } - -} diff --git a/src/main/java/com/gildedgames/aether/common/entities/ai/EntityAIRestrictRain.java b/src/main/java/com/gildedgames/aether/common/entities/ai/EntityAIRestrictRain.java deleted file mode 100644 index 9270e0e815..0000000000 --- a/src/main/java/com/gildedgames/aether/common/entities/ai/EntityAIRestrictRain.java +++ /dev/null @@ -1,42 +0,0 @@ -package com.gildedgames.aether.common.entities.ai; - -import net.minecraft.entity.EntityCreature; -import net.minecraft.entity.ai.EntityAIBase; -import net.minecraft.pathfinding.PathNavigateGround; - -public class EntityAIRestrictRain extends EntityAIBase -{ - private final EntityCreature entity; - - public EntityAIRestrictRain(EntityCreature creature) - { - this.entity = creature; - } - - /** - * Returns whether the EntityAIBase should begin execution. - */ - @Override - public boolean shouldExecute() - { - return this.entity.world.isRaining(); - } - - /** - * Execute a one shot task or start executing a continuous task - */ - @Override - public void startExecuting() - { - ((PathNavigateGround) this.entity.getNavigator()).setAvoidSun(true); - } - - /** - * Reset the task's internal state. Called when this task is interrupted by another one - */ - @Override - public void resetTask() - { - ((PathNavigateGround) this.entity.getNavigator()).setAvoidSun(false); - } -} \ No newline at end of file diff --git a/src/main/java/com/gildedgames/aether/common/entities/ai/EntityAIUnstuckBlueAercloud.java b/src/main/java/com/gildedgames/aether/common/entities/ai/EntityAIUnstuckBlueAercloud.java deleted file mode 100644 index efed0d868f..0000000000 --- a/src/main/java/com/gildedgames/aether/common/entities/ai/EntityAIUnstuckBlueAercloud.java +++ /dev/null @@ -1,96 +0,0 @@ -package com.gildedgames.aether.common.entities.ai; - -import com.gildedgames.aether.api.registrar.BlocksAether; -import com.gildedgames.aether.common.blocks.natural.BlockAercloud; -import com.gildedgames.aether.common.util.helpers.EntityUtil; -import com.gildedgames.aether.common.util.helpers.WorldUtil; -import net.minecraft.entity.EntityCreature; -import net.minecraft.entity.ai.EntityAIBase; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.Vec3d; - -import javax.annotation.Nullable; -import java.util.Random; - -public class EntityAIUnstuckBlueAercloud extends EntityAIBase -{ - - private final EntityCreature entity; - - private double targetX; - - private double targetY; - - private double targetZ; - - public EntityAIUnstuckBlueAercloud(EntityCreature entity) - { - this.entity = entity; - - this.setMutexBits(1); - } - - @Override - public boolean shouldExecute() - { - if (this.entity == null) - { - return false; - } - - if (!WorldUtil.isBlockBelowAABB(this.entity.getEntityBoundingBox(), this.entity.world, - BlocksAether.aercloud.getStateFromMeta(BlockAercloud.BLUE_AERCLOUD.getMeta()))) - { - return false; - } - - Vec3d vec3d = this.findPossibleEscape(); - - if (vec3d == null) - { - return false; - } - else - { - this.targetX = vec3d.x; - this.targetY = vec3d.y; - this.targetZ = vec3d.z; - - return true; - } - } - - @Override - public boolean shouldContinueExecuting() - { - return WorldUtil.isBlockBelowAABB(this.entity.getEntityBoundingBox(), this.entity.world, - BlocksAether.aercloud.getStateFromMeta(BlockAercloud.BLUE_AERCLOUD.getMeta())); - } - - @Override - public void updateTask() - { - this.entity.moveRelative(0.0F, 0.0F, 0.5F, 0.1F); - EntityUtil.facePos(this.entity, this.targetX, this.targetY, this.targetZ, 10.0F, 10.0F); - } - - @Nullable - private Vec3d findPossibleEscape() - { - Random random = this.entity.getRNG(); - BlockPos blockpos = new BlockPos(this.entity.posX, this.entity.getEntityBoundingBox().minY, this.entity.posZ); - - for (int i = 0; i < 10; ++i) - { - BlockPos blockpos1 = blockpos.add(random.nextInt(20) - 10, random.nextInt(6) - 3, random.nextInt(20) - 10); - - if (EntityUtil.getBlockBelow(this.entity.world, blockpos1) != BlocksAether.aercloud.getStateFromMeta(BlockAercloud.BLUE_AERCLOUD.getMeta())) - { - return new Vec3d((double) blockpos1.getX(), (double) blockpos1.getY(), (double) blockpos1.getZ()); - } - } - - return null; - } - -} diff --git a/src/main/java/com/gildedgames/aether/common/entities/ai/EntityAIWanderAvoidLight.java b/src/main/java/com/gildedgames/aether/common/entities/ai/EntityAIWanderAvoidLight.java deleted file mode 100644 index 4a1edc190b..0000000000 --- a/src/main/java/com/gildedgames/aether/common/entities/ai/EntityAIWanderAvoidLight.java +++ /dev/null @@ -1,150 +0,0 @@ -package com.gildedgames.aether.common.entities.ai; - -import net.minecraft.entity.EntityCreature; -import net.minecraft.entity.ai.EntityAIBase; -import net.minecraft.entity.ai.RandomPositionGenerator; -import net.minecraft.pathfinding.Path; -import net.minecraft.pathfinding.PathPoint; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.Vec3d; - -import javax.annotation.Nullable; - -public class EntityAIWanderAvoidLight extends EntityAIBase -{ - protected final EntityCreature entity; - - protected double x; - - protected double y; - - protected double z; - - protected final double speed; - - protected int executionChance; - - protected final int lightLevel; - - protected boolean mustUpdate; - - public EntityAIWanderAvoidLight(EntityCreature creatureIn, double speedIn, int lightLevel) - { - this(creatureIn, speedIn, 120, lightLevel); - } - - public EntityAIWanderAvoidLight(EntityCreature creatureIn, double speedIn, int chance, int lightLevel) - { - this.entity = creatureIn; - this.speed = speedIn; - this.executionChance = chance; - this.lightLevel = lightLevel; - this.setMutexBits(1); - } - - /** - * Returns whether the EntityAIBase should begin execution. - */ - @Override - public boolean shouldExecute() - { - if (!this.mustUpdate) - { - if (this.entity.getIdleTime() >= 100) - { - return false; - } - - if (this.entity.getRNG().nextInt(this.executionChance) != 0) - { - return false; - } - } - - Vec3d vec3d = this.getPosition(); - - if (vec3d == null) - { - return false; - } - else - { - this.x = vec3d.x; - this.y = vec3d.y; - this.z = vec3d.z; - this.mustUpdate = false; - return true; - } - } - - @Nullable - protected Vec3d getPosition() - { - for (int i = 0; i < 10; i++) - { - Vec3d pos = RandomPositionGenerator.findRandomTarget(this.entity, 10, 7); - - if (pos != null) - { - BlockPos blockPos = new BlockPos(pos); - - if (this.entity.world.getLightFromNeighbors(blockPos) <= this.lightLevel && !(this.entity.world.isDaytime() && this.entity.world.canSeeSky(blockPos))) - { - return pos; - } - } - } - - return null; - } - - /** - * Returns whether an in-progress EntityAIBase should continue executing - */ - @Override - public boolean shouldContinueExecuting() - { - return !this.entity.getNavigator().noPath(); - } - - /** - * Execute a one shot task or start executing a continuous task - */ - @Override - public void startExecuting() - { - this.entity.getNavigator().tryMoveToXYZ(this.x, this.y, this.z, this.speed); - - if (!this.entity.getNavigator().noPath()) - { - Path path = this.entity.getNavigator().getPath(); - - for (int i = path.getCurrentPathIndex(); i < path.getCurrentPathLength(); i++) - { - PathPoint pp = path.getPathPointFromIndex(i); - BlockPos blockPos = new BlockPos(pp.x, pp.y, pp.z); - - if (this.entity.world.getLightFromNeighbors(blockPos) > this.lightLevel || (this.entity.world.isDaytime() && this.entity.world.canSeeSky(blockPos))) - { - this.entity.getNavigator().clearPath(); - } - } - } - } - - /** - * Makes task to bypass chance - */ - public void makeUpdate() - { - this.mustUpdate = true; - } - - /** - * Changes task random possibility for execution - */ - public void setExecutionChance(int newchance) - { - this.executionChance = newchance; - } -} \ No newline at end of file diff --git a/src/main/java/com/gildedgames/aether/common/entities/ai/EntityAIWanderFavorBlocks.java b/src/main/java/com/gildedgames/aether/common/entities/ai/EntityAIWanderFavorBlocks.java deleted file mode 100644 index 54afde1c62..0000000000 --- a/src/main/java/com/gildedgames/aether/common/entities/ai/EntityAIWanderFavorBlocks.java +++ /dev/null @@ -1,152 +0,0 @@ -package com.gildedgames.aether.common.entities.ai; - -import net.minecraft.block.Block; -import net.minecraft.entity.EntityCreature; -import net.minecraft.entity.ai.EntityAIBase; -import net.minecraft.entity.ai.RandomPositionGenerator; -import net.minecraft.pathfinding.Path; -import net.minecraft.pathfinding.PathPoint; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.Vec3d; - -import javax.annotation.Nullable; -import java.util.ArrayList; - -public class EntityAIWanderFavorBlocks extends EntityAIBase -{ - protected final EntityCreature entity; - - protected double x; - protected double y; - protected double z; - - protected final double speed; - - protected int executionChance; - protected final ArrayList<Block> favoriteBlocks; - protected boolean mustUpdate; - - - public EntityAIWanderFavorBlocks(EntityCreature creatureIn, double speedIn, ArrayList<Block> favoriteBlocks) - { - this(creatureIn, speedIn, 60, favoriteBlocks); - } - - public EntityAIWanderFavorBlocks(EntityCreature creatureIn, double speedIn, int chance, ArrayList<Block> favoriteBlocks) - { - this.entity = creatureIn; - this.speed = speedIn; - this.executionChance = chance; - this.favoriteBlocks = favoriteBlocks; - this.setMutexBits(1); - } - - @Override - public boolean shouldExecute() - { - if (!this.mustUpdate) - { - if (this.entity.getIdleTime() >= 100) - { - return false; - } - - if (this.entity.getRNG().nextInt(this.executionChance) != 0) - { - return false; - } - } - - Vec3d vec3d = this.getPosition(); - - if (vec3d == null) - { - return false; - } - else - { - return this.setPosFromVec(vec3d); - } - - } - - private boolean setPosFromVec(Vec3d vec3d) - { - this.x = vec3d.x; - this.y = vec3d.y; - this.z = vec3d.z; - - this.mustUpdate = false; - - return true; - } - - @Nullable - protected Vec3d getPosition() - { - if (!this.favoriteBlocks.isEmpty()) - { - for (int i = 0; i < 10; i++) - { - Vec3d pos = RandomPositionGenerator.findRandomTarget(this.entity, 10, 4); - - if (pos != null) - { - BlockPos blockPos = new BlockPos(pos); - - Block potential = this.entity.world.getBlockState(blockPos).getBlock(); - - if (this.favoriteBlocks.contains(potential)) - { - return pos; - } - } - } - } - - if (this.entity.getRNG().nextInt(8) == 0) - { - return RandomPositionGenerator.findRandomTarget(this.entity, 10, 7); - } - - return null; - } - - @Override - public boolean shouldContinueExecuting() - { - return !this.entity.getNavigator().noPath(); - } - - @Override - public void startExecuting() - { - this.entity.getNavigator().tryMoveToXYZ(this.x, this.y, this.z, this.speed); - - if (!this.entity.getNavigator().noPath()) - { - Path path = this.entity.getNavigator().getPath(); - - for (int i = path.getCurrentPathIndex(); i < path.getCurrentPathLength(); i++) - { - PathPoint pp = path.getPathPointFromIndex(i); - BlockPos blockPos = new BlockPos(pp.x, pp.y, pp.z); - - if (!this.entity.world.canSeeSky(blockPos)) - { - //this.entity.getNavigator().clearPath(); - } - } - } - } - - public void markUpdate() - { - this.mustUpdate = true; - } - - public void setExecutionChance(int newChance) - { - this.executionChance = newChance; - } -} diff --git a/src/main/java/com/gildedgames/aether/common/entities/ai/cockatrice/EntityAICockatriceHide.java b/src/main/java/com/gildedgames/aether/common/entities/ai/cockatrice/EntityAICockatriceHide.java deleted file mode 100644 index 3e6d9a9fd0..0000000000 --- a/src/main/java/com/gildedgames/aether/common/entities/ai/cockatrice/EntityAICockatriceHide.java +++ /dev/null @@ -1,52 +0,0 @@ -package com.gildedgames.aether.common.entities.ai.cockatrice; - -import com.gildedgames.aether.common.entities.ai.EntityAIHideFromTarget; -import com.gildedgames.aether.common.entities.monsters.EntityCockatrice; -import net.minecraft.entity.EntityLivingBase; - -public class EntityAICockatriceHide extends EntityAIHideFromTarget -{ - - final EntityCockatrice cockatrice; - - public EntityAICockatriceHide(EntityCockatrice entity, Class<? extends EntityLivingBase> clazz, double movementSpeed) - { - super(entity, clazz, movementSpeed); - - this.cockatrice = entity; - } - - @Override - public boolean shouldExecute() - { - boolean flag = super.shouldExecute(); - - if (!flag) - { - this.cockatrice.setHidden(true); - } - else - { - this.cockatrice.setHidden(false); - } - - return flag && !this.cockatrice.isAttacking(); - } - - @Override - public void startExecuting() - { - super.startExecuting(); - - this.cockatrice.setHiding(true); - } - - @Override - public void resetTask() - { - super.resetTask(); - - this.cockatrice.setHiding(false); - } - -} diff --git a/src/main/java/com/gildedgames/aether/common/entities/ai/cockatrice/EntityAICockatriceSneakAttack.java b/src/main/java/com/gildedgames/aether/common/entities/ai/cockatrice/EntityAICockatriceSneakAttack.java deleted file mode 100644 index 7e10e6f754..0000000000 --- a/src/main/java/com/gildedgames/aether/common/entities/ai/cockatrice/EntityAICockatriceSneakAttack.java +++ /dev/null @@ -1,116 +0,0 @@ -package com.gildedgames.aether.common.entities.ai.cockatrice; - -import com.gildedgames.aether.common.entities.monsters.EntityCockatrice; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.ai.EntityAIBase; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.util.EnumHand; - -import java.util.List; - -public class EntityAICockatriceSneakAttack extends EntityAIBase -{ - - private final EntityCockatrice entity; - - protected EntityLivingBase attack; - - protected int attackTick; - - final Class<? extends EntityLivingBase> attackClass; - - public EntityAICockatriceSneakAttack(final EntityCockatrice entity, final Class<? extends EntityLivingBase> clazz) - { - this.entity = entity; - this.attackClass = clazz; - } - - @Override - public boolean shouldExecute() - { - if (!this.entity.isAttacking() && this.entity.isHidden()) - { - final List entities = this.entity.world.getEntitiesWithinAABB(this.attackClass, this.entity.getEntityBoundingBox().expand(16.0D, 16.0D, 16.0D)); - - if (entities.isEmpty()) - { - return false; - } - - EntityLivingBase attack = null; - - for (final Object o : entities) - { - if (o instanceof EntityLivingBase) - { - attack = (EntityLivingBase) o; - } - } - - if (attack == null) - { - return false; - } - - this.attack = attack; - - if (this.attack instanceof EntityPlayer) - { - final EntityPlayer player = (EntityPlayer) this.attack; - - return !player.isCreative(); - } - - return true; - } - - return false; - } - - @Override - public boolean shouldContinueExecuting() - { - return this.entity.isAttacking() && this.attack.isEntityAlive(); - } - - @Override - public void startExecuting() - { - this.entity.setAttacking(true); - this.entity.getNavigator().tryMoveToEntityLiving(this.attack, 1.2D); - this.attackTick = 0; - } - - @Override - public void resetTask() - { - //this.entity.setAttacking(false); - //this.attackTick = 0; - } - - @Override - public void updateTask() - { - this.entity.getLookHelper().setLookPositionWithEntity(this.attack, 30.0F, 30.0F); - final double distanceBetweenTarget = this.entity.getDistanceSq(this.attack.posX, this.attack.getEntityBoundingBox().minY, this.attack.posZ); - - this.entity.getNavigator().tryMoveToEntityLiving(this.attack, 1.2D); - - this.attackTick = Math.max(this.attackTick - 1, 0); - - if (distanceBetweenTarget <= this.getAttackReachSqr(this.attack) && this.attackTick <= 0) - { - this.attackTick = 20; - this.entity.swingArm(EnumHand.MAIN_HAND); - this.entity.attackEntityAsMob(this.attack); - - this.entity.setAttacking(false); - } - } - - protected double getAttackReachSqr(final EntityLivingBase attackTarget) - { - return (double) (this.entity.width * 2.0F * this.entity.width * 2.0F + attackTarget.width); - } - -} diff --git a/src/main/java/com/gildedgames/aether/common/entities/ai/cockatrice/EntityAICockatriceWander.java b/src/main/java/com/gildedgames/aether/common/entities/ai/cockatrice/EntityAICockatriceWander.java deleted file mode 100644 index 66bd71e520..0000000000 --- a/src/main/java/com/gildedgames/aether/common/entities/ai/cockatrice/EntityAICockatriceWander.java +++ /dev/null @@ -1,40 +0,0 @@ -package com.gildedgames.aether.common.entities.ai.cockatrice; - -import com.gildedgames.aether.common.entities.monsters.EntityCockatrice; -import net.minecraft.entity.ai.EntityAIWander; - -public class EntityAICockatriceWander extends EntityAIWander -{ - - final EntityCockatrice cockatrice; - - public EntityAICockatriceWander(final EntityCockatrice cockatrice, final double wanderSpeed) - { - super(cockatrice, wanderSpeed); - - this.cockatrice = cockatrice; - } - - @Override - public boolean shouldExecute() - { - if (this.cockatrice.isHiding() || this.cockatrice.isAttacking()) - { - return false; - } - - return super.shouldExecute(); - } - - @Override - public boolean shouldContinueExecuting() - { - if (this.cockatrice.isHiding() || this.cockatrice.isAttacking()) - { - return false; - } - - return super.shouldContinueExecuting(); - } - -} diff --git a/src/main/java/com/gildedgames/aether/common/entities/ai/companion/EntityAICompanionFollow.java b/src/main/java/com/gildedgames/aether/common/entities/ai/companion/EntityAICompanionFollow.java deleted file mode 100644 index f67265ddaa..0000000000 --- a/src/main/java/com/gildedgames/aether/common/entities/ai/companion/EntityAICompanionFollow.java +++ /dev/null @@ -1,120 +0,0 @@ -package com.gildedgames.aether.common.entities.ai.companion; - -import com.gildedgames.aether.common.entities.companions.EntityCompanion; -import net.minecraft.block.material.Material; -import net.minecraft.block.state.IBlockState; -import net.minecraft.entity.ai.EntityAIBase; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.pathfinding.PathNavigate; -import net.minecraft.pathfinding.PathNodeType; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.MathHelper; - -public class EntityAICompanionFollow extends EntityAIBase -{ - private final PathNavigate navigator; - - private final EntityCompanion entity; - - private float oldWaterCost; - - private int timeToRecalcPath; - - public EntityAICompanionFollow(final EntityCompanion entity) - { - this.entity = entity; - - this.navigator = entity.getNavigator(); - } - - @Override - public boolean shouldExecute() - { - return this.entity.getOwner() != null && this.entity.getDistanceSq(this.entity.getOwner()) > 12.0D; - } - - @Override - public boolean shouldContinueExecuting() - { - if (this.entity.getOwner() == null) - { - return false; - } - - final double distance = this.entity.getDistanceSq(this.entity.getOwner()); - - return !this.navigator.noPath() && this.entity.hurtTime <= 0 && distance > 5.0D; - } - - @Override - public void startExecuting() - { - this.timeToRecalcPath = 0; - - this.oldWaterCost = this.entity.getPathPriority(PathNodeType.WATER); - - this.entity.setPathPriority(PathNodeType.WATER, 0.0F); - } - - @Override - public void resetTask() - { - this.entity.setPathPriority(PathNodeType.WATER, this.oldWaterCost); - - this.navigator.clearPath(); - } - - private boolean isEmptyBlock(final BlockPos pos) - { - final IBlockState state = this.entity.world.getBlockState(pos); - - return state.getMaterial() == Material.AIR || !state.isFullCube(); - } - - @Override - public void updateTask() - { - final EntityPlayer owner = this.entity.getOwner(); - - if (owner == null) - { - return; - } - - this.entity.getLookHelper().setLookPositionWithEntity(owner, 10.0F, 40f); - - if (this.timeToRecalcPath-- <= 0) - { - this.timeToRecalcPath = 10; - - if (this.entity.getDistanceSq(this.entity.getOwner()) > 144.0D) - { - final int i = MathHelper.floor(owner.posX) - 2; - final int j = MathHelper.floor(owner.posZ) - 2; - final int k = MathHelper.floor(owner.getEntityBoundingBox().minY); - - for (int l = 0; l <= 4; ++l) - { - for (int i1 = 0; i1 <= 4; ++i1) - { - if ((l < 1 || i1 < 1 || l > 3 || i1 > 3) && this.entity.world.getBlockState(new BlockPos( - i + l, k - 1, j + i1)).getMaterial().isSolid() && this.isEmptyBlock(new BlockPos(i + l, k, j + i1)) - && this.isEmptyBlock(new BlockPos(i + l, k + 1, j + i1))) - { - this.entity.setLocationAndAngles((double) ((float) (i + l) + 0.5F), (double) k, (double) ((float) (j + i1) - + 0.5F), this.entity.rotationYaw, this.entity.rotationPitch); - - this.navigator.clearPath(); - - return; - } - } - } - } - else - { - this.navigator.tryMoveToEntityLiving(owner, 0.5D); - } - } - } -} diff --git a/src/main/java/com/gildedgames/aether/common/entities/ai/companion/EntityAICompanionOwnerHurt.java b/src/main/java/com/gildedgames/aether/common/entities/ai/companion/EntityAICompanionOwnerHurt.java deleted file mode 100644 index 017ee2479b..0000000000 --- a/src/main/java/com/gildedgames/aether/common/entities/ai/companion/EntityAICompanionOwnerHurt.java +++ /dev/null @@ -1,61 +0,0 @@ -package com.gildedgames.aether.common.entities.ai.companion; - -import com.gildedgames.aether.common.entities.companions.EntityCompanion; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.ai.EntityAITarget; - -public class EntityAICompanionOwnerHurt extends EntityAITarget -{ - - private final EntityCompanion entity; - - private EntityLivingBase target; - - private int timestamp; - - public EntityAICompanionOwnerHurt(final EntityCompanion entity) - { - super(entity, false); - - this.entity = entity; - - this.setMutexBits(1); - } - - @Override - public boolean shouldExecute() - { - final EntityLivingBase owner = this.entity.getOwner(); - - if (owner == null) - { - return false; - } - else - { - this.target = owner.getRevengeTarget(); - final int i = owner.getRevengeTimer(); - return i != this.timestamp && this.isSuitableTarget(this.target, false) && this.target != owner; - } - } - - @Override - public void startExecuting() - { - if (this.target == this.entity.getOwner()) - { - return; - } - - this.taskOwner.setAttackTarget(this.target); - final EntityLivingBase owner = this.entity.getOwner(); - - if (owner != null) - { - this.timestamp = owner.getRevengeTimer(); - } - - super.startExecuting(); - } - -} diff --git a/src/main/java/com/gildedgames/aether/common/entities/ai/companion/EntityAICompanionTargetEnemy.java b/src/main/java/com/gildedgames/aether/common/entities/ai/companion/EntityAICompanionTargetEnemy.java deleted file mode 100644 index afd97a86e5..0000000000 --- a/src/main/java/com/gildedgames/aether/common/entities/ai/companion/EntityAICompanionTargetEnemy.java +++ /dev/null @@ -1,59 +0,0 @@ -package com.gildedgames.aether.common.entities.ai.companion; - -import com.gildedgames.aether.common.entities.companions.EntityCompanion; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.ai.EntityAITarget; - -public class EntityAICompanionTargetEnemy extends EntityAITarget -{ - - private final EntityCompanion entity; - - private EntityLivingBase target; - - private int timestamp; - - public EntityAICompanionTargetEnemy(final EntityCompanion entity) - { - super(entity, false); - - this.entity = entity; - } - - @Override - public boolean shouldExecute() - { - final EntityLivingBase owner = this.entity.getOwner(); - - if (owner == null) - { - return false; - } - else - { - this.target = owner.getLastAttackedEntity(); - final int i = owner.getLastAttackedEntityTime(); - return i != this.timestamp && this.isSuitableTarget(this.target, false) && this.target != owner; - } - } - - @Override - public void startExecuting() - { - if (this.target == this.entity.getOwner()) - { - return; - } - - this.taskOwner.setAttackTarget(this.target); - final EntityLivingBase owner = this.entity.getOwner(); - - if (owner != null) - { - this.timestamp = owner.getLastAttackedEntityTime(); - } - - super.startExecuting(); - } - -} diff --git a/src/main/java/com/gildedgames/aether/common/entities/ai/glactrix/GlactrixAIHideFromEntity.java b/src/main/java/com/gildedgames/aether/common/entities/ai/glactrix/GlactrixAIHideFromEntity.java deleted file mode 100644 index 45e2cbcf15..0000000000 --- a/src/main/java/com/gildedgames/aether/common/entities/ai/glactrix/GlactrixAIHideFromEntity.java +++ /dev/null @@ -1,74 +0,0 @@ -package com.gildedgames.aether.common.entities.ai.glactrix; - -import com.gildedgames.aether.common.entities.animals.EntityGlactrix; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.ai.EntityAIBase; -import net.minecraft.entity.player.EntityPlayer; - -import java.util.List; - -public class GlactrixAIHideFromEntity extends EntityAIBase -{ - - static final int maxDist = 12; - private final EntityGlactrix glactrix; - protected Class<? extends EntityLivingBase> hideFromClass; - protected EntityLivingBase hideFrom; - - public GlactrixAIHideFromEntity(final EntityGlactrix glactrix, final Class<? extends EntityLivingBase> clazz) - { - this.glactrix = glactrix; - this.hideFromClass = clazz; - - } - - @Override - public boolean shouldExecute() - { - final List entities = this.glactrix.world.getEntitiesWithinAABB(this.hideFromClass, this.glactrix.getEntityBoundingBox().expand(maxDist, maxDist, maxDist)); - - if (entities.isEmpty()) - { - return false; - } - - EntityLivingBase threat = null; - - for (final Object o : entities) - { - if (o instanceof EntityLivingBase && !(o instanceof EntityPlayer && ((EntityPlayer) o).isCreative())) - { - threat = (EntityLivingBase) o; - } - } - - if (threat == null) - { - return false; - } - else - { - this.hideFrom = threat; - - return this.hideFrom.canEntityBeSeen(this.glactrix); - } - } - - @Override - public void startExecuting() - { - } - - @Override - public boolean shouldContinueExecuting() - { - if (!this.hideFrom.canEntityBeSeen(this.glactrix)) - { - this.glactrix.setHiding(false); - return false; - } - - this.glactrix.setHiding(true); - return true; - } -} diff --git a/src/main/java/com/gildedgames/aether/common/entities/ai/hopping/AIHopFloat.java b/src/main/java/com/gildedgames/aether/common/entities/ai/hopping/AIHopFloat.java deleted file mode 100644 index 2d06673a08..0000000000 --- a/src/main/java/com/gildedgames/aether/common/entities/ai/hopping/AIHopFloat.java +++ /dev/null @@ -1,44 +0,0 @@ -package com.gildedgames.aether.common.entities.ai.hopping; - -import com.gildedgames.aether.common.entities.ai.EntityAI; -import net.minecraft.entity.EntityLiving; -import net.minecraft.pathfinding.PathNavigateGround; - -public class AIHopFloat extends EntityAI<EntityLiving> -{ - - private final HoppingMoveHelper hoppingMoveHelper; - - public AIHopFloat(EntityLiving entity, HoppingMoveHelper hoppingMoveHelper) - { - super(entity); - - this.hoppingMoveHelper = hoppingMoveHelper; - - this.setMutexBits(5); - ((PathNavigateGround) this.entity().getNavigator()).setCanSwim(true); - } - - /** - * Returns whether the EntityAIBase should begin execution. - */ - @Override - public boolean shouldExecute() - { - return this.entity().isInWater() || this.entity().isInLava(); - } - - /** - * Updates the task - */ - @Override - public void updateTask() - { - if (this.entity().getRNG().nextFloat() < 0.8F) - { - this.entity().getJumpHelper().setJumping(); - } - - this.hoppingMoveHelper.setSpeed(1.2D); - } -} diff --git a/src/main/java/com/gildedgames/aether/common/entities/ai/hopping/AIHopFollowAttackTarget.java b/src/main/java/com/gildedgames/aether/common/entities/ai/hopping/AIHopFollowAttackTarget.java deleted file mode 100644 index 1ac8dcf0d3..0000000000 --- a/src/main/java/com/gildedgames/aether/common/entities/ai/hopping/AIHopFollowAttackTarget.java +++ /dev/null @@ -1,71 +0,0 @@ -package com.gildedgames.aether.common.entities.ai.hopping; - -import com.gildedgames.aether.common.entities.ai.EntityAI; -import net.minecraft.entity.EntityLiving; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.player.EntityPlayer; - -public class AIHopFollowAttackTarget extends EntityAI<EntityLiving> -{ - - private final HoppingMoveHelper hoppingMoveHelper; - - private final double speed; - - private int growTieredTimer; - - public AIHopFollowAttackTarget(final EntityLiving entity, final HoppingMoveHelper hoppingMoveHelper, final double speed) - { - super(entity); - - this.hoppingMoveHelper = hoppingMoveHelper; - this.speed = speed; - - this.setMutexBits(2); - } - - /** - * Returns whether the EntityAIBase should begin execution. - */ - @Override - public boolean shouldExecute() - { - final EntityLivingBase entitylivingbase = this.entity().getAttackTarget(); - return entitylivingbase != null && (entitylivingbase.isEntityAlive() && (!(entitylivingbase instanceof EntityPlayer) - || !((EntityPlayer) entitylivingbase).capabilities.disableDamage)); - } - - /** - * Execute a one shot task or start executing a continuous task - */ - @Override - public void startExecuting() - { - this.growTieredTimer = 300; - super.startExecuting(); - } - - /** - * Returns whether an in-progress EntityAIBase should continue executing - */ - @Override - public boolean shouldContinueExecuting() - { - final EntityLivingBase entitylivingbase = this.entity().getAttackTarget(); - return entitylivingbase != null && (entitylivingbase.isEntityAlive() && ( - !(entitylivingbase instanceof EntityPlayer && ((EntityPlayer) entitylivingbase).capabilities.disableDamage) - && --this.growTieredTimer > 0)); - } - - /** - * Updates the task - */ - @Override - public void updateTask() - { - this.entity().faceEntity(this.entity().getAttackTarget(), 10.0F, 10.0F); - this.hoppingMoveHelper.setSpeed(this.speed); - this.hoppingMoveHelper.setDirection(this.entity().rotationYaw); - } - -} diff --git a/src/main/java/com/gildedgames/aether/common/entities/ai/hopping/AIHopHideFromRain.java b/src/main/java/com/gildedgames/aether/common/entities/ai/hopping/AIHopHideFromRain.java deleted file mode 100644 index fbc43ccaf1..0000000000 --- a/src/main/java/com/gildedgames/aether/common/entities/ai/hopping/AIHopHideFromRain.java +++ /dev/null @@ -1,120 +0,0 @@ -package com.gildedgames.aether.common.entities.ai.hopping; - -import com.gildedgames.aether.common.util.helpers.EntityUtil; -import net.minecraft.entity.EntityCreature; -import net.minecraft.entity.ai.EntityAIBase; -import net.minecraft.init.MobEffects; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.Vec3d; - -import javax.annotation.Nullable; -import java.util.Random; - -public class AIHopHideFromRain extends EntityAIBase -{ - - private final HoppingMoveHelper hoppingMoveHelper; - - private final double movementSpeed; - - private float chosenDegrees; - - private int nextRandomizeTime; - - private final EntityCreature entity; - - private double shelterX; - - private double shelterY; - - private double shelterZ; - - private int growTieredTimer; - - public AIHopHideFromRain(EntityCreature entity, final HoppingMoveHelper hoppingMoveHelper, double movementSpeed) - { - this.entity = entity; - this.movementSpeed = movementSpeed; - - this.hoppingMoveHelper = hoppingMoveHelper; - - this.setMutexBits(2); - } - - @Override - public boolean shouldExecute() - { - if (this.entity == null) - { - return false; - } - - boolean executes = this.entity.world.isRaining() && this.entity.getAttackTarget() == null && ( - this.entity.onGround || this.entity.isInWater() || this.entity.isInLava() - || this.entity.isPotionActive(MobEffects.LEVITATION)); - - if (executes) - { - Vec3d vec3d = this.findPossibleShelter(); - - if (vec3d == null) - { - return false; - } - else - { - this.shelterX = vec3d.x; - this.shelterY = vec3d.y; - this.shelterZ = vec3d.z; - - return true; - } - } - - return false; - } - - @Override - public void startExecuting() - { - this.growTieredTimer = 300; - super.startExecuting(); - } - - /** - * Returns whether an in-progress EntityAIBase should continue executing - */ - @Override - public boolean shouldContinueExecuting() - { - return this.entity.getDistance(this.shelterX, this.shelterY, this.shelterZ) < 1 && --this.growTieredTimer > 0; - } - - @Override - public void updateTask() - { - EntityUtil.facePos(this.entity, this.shelterX, this.shelterY, this.shelterZ, 10.0F, 10.0F); - this.hoppingMoveHelper.setSpeed(this.movementSpeed); - this.hoppingMoveHelper.setDirection(this.entity.rotationYaw); - } - - @Nullable - private Vec3d findPossibleShelter() - { - Random random = this.entity.getRNG(); - BlockPos blockpos = new BlockPos(this.entity.posX, this.entity.getEntityBoundingBox().minY, this.entity.posZ); - - for (int i = 0; i < 10; ++i) - { - BlockPos blockpos1 = blockpos.add(random.nextInt(20) - 10, random.nextInt(6) - 3, random.nextInt(20) - 10); - - if (!this.entity.world.canSeeSky(blockpos1) && this.entity.getBlockPathWeight(blockpos1) < 0.0F) - { - return new Vec3d((double) blockpos1.getX(), (double) blockpos1.getY(), (double) blockpos1.getZ()); - } - } - - return null; - } - -} diff --git a/src/main/java/com/gildedgames/aether/common/entities/ai/hopping/AIHopWander.java b/src/main/java/com/gildedgames/aether/common/entities/ai/hopping/AIHopWander.java deleted file mode 100644 index 693620b44d..0000000000 --- a/src/main/java/com/gildedgames/aether/common/entities/ai/hopping/AIHopWander.java +++ /dev/null @@ -1,50 +0,0 @@ -package com.gildedgames.aether.common.entities.ai.hopping; - -import com.gildedgames.aether.common.entities.ai.EntityAI; -import net.minecraft.entity.EntityLiving; -import net.minecraft.init.MobEffects; - -public class AIHopWander extends EntityAI<EntityLiving> -{ - - private final HoppingMoveHelper hoppingMoveHelper; - - private float chosenDegrees; - - private int nextRandomizeTime; - - public AIHopWander(final EntityLiving entity, final HoppingMoveHelper hoppingMoveHelper) - { - super(entity); - - this.hoppingMoveHelper = hoppingMoveHelper; - - this.setMutexBits(2); - } - - /** - * Returns whether the EntityAIBase should begin execution. - */ - @Override - public boolean shouldExecute() - { - return this.entity().getAttackTarget() == null && (this.entity().onGround || this.entity().isInWater() || this.entity().isInLava() - || this.entity().isPotionActive(MobEffects.LEVITATION)); - } - - /** - * Updates the task - */ - @Override - public void updateTask() - { - if (--this.nextRandomizeTime <= 0) - { - this.nextRandomizeTime = 40 + this.entity().getRNG().nextInt(60); - this.chosenDegrees = (float) this.entity().getRNG().nextInt(360); - } - - this.hoppingMoveHelper.setSpeed(1.0D); - this.hoppingMoveHelper.setDirection(this.chosenDegrees); - } -} diff --git a/src/main/java/com/gildedgames/aether/common/entities/ai/hopping/HoppingMoveHelper.java b/src/main/java/com/gildedgames/aether/common/entities/ai/hopping/HoppingMoveHelper.java deleted file mode 100644 index 3773aef580..0000000000 --- a/src/main/java/com/gildedgames/aether/common/entities/ai/hopping/HoppingMoveHelper.java +++ /dev/null @@ -1,133 +0,0 @@ -package com.gildedgames.aether.common.entities.ai.hopping; - -import net.minecraft.entity.EntityLiving; -import net.minecraft.entity.SharedMonsterAttributes; -import net.minecraft.entity.ai.EntityMoveHelper; -import net.minecraft.util.SoundEvent; - -import java.util.function.Supplier; - -public class HoppingMoveHelper extends EntityMoveHelper -{ - - private final EntityLiving entity; - - private float yRot; - - private int jumpDelay; - - private final Supplier<SoundEvent> hoppingSound; - - private HopTimer hopTimer; - - private boolean active; - - public HoppingMoveHelper(EntityLiving entity, Supplier<SoundEvent> hoppingSound, HopTimer hopTimer) - { - super(entity); - - this.hopTimer = hopTimer; - this.hoppingSound = hoppingSound; - this.entity = entity; - this.yRot = 180.0F * entity.rotationYaw / (float) Math.PI; - this.active = true; - } - - public HoppingMoveHelper(final EntityLiving entity, Supplier<SoundEvent> hoppingSound) - { - this(entity, hoppingSound, () -> entity.getRNG().nextInt(20) + 10); - } - - public void setDirection(float p_179920_1_) - { - this.yRot = p_179920_1_; - } - - public void setSpeed(double speedIn) - { - this.speed = speedIn; - this.action = EntityMoveHelper.Action.MOVE_TO; - } - - public void setTime(HopTimer timer) - { - this.hopTimer = timer; - } - - public HopTimer getTimer() - { - return this.hopTimer; - } - - @Override - public void onUpdateMoveHelper() - { - this.entity.rotationYaw = this.limitAngle(this.entity.rotationYaw, this.yRot, 90.0F); - this.entity.rotationYawHead = this.entity.rotationYaw; - this.entity.renderYawOffset = this.entity.rotationYaw; - - if (!this.active) - { - return; - } - - if (this.action != Action.MOVE_TO) - { - this.entity.setMoveForward(0.0F); - } - else - { - this.action = Action.WAIT; - - if (this.entity.onGround) - { - this.entity.setAIMoveSpeed((float) (this.speed - * this.entity.getEntityAttribute(SharedMonsterAttributes.MOVEMENT_SPEED).getAttributeValue())); - - if (this.jumpDelay-- <= 0) - { - this.jumpDelay = this.hopTimer.jumpDelay(); - - this.entity.getJumpHelper().setJumping(); - - this.entity.playSound(this.hoppingSound.get(), 0.5F, - ((this.entity.getRNG().nextFloat() - this.entity.getRNG().nextFloat()) * 0.2F + 1.0F) * 0.8F); - } - else - { - this.entity.moveStrafing = 0.0F; - this.entity.moveForward = 0.0F; - this.entity.setAIMoveSpeed(0.0F); - } - } - else - { - this.entity.setAIMoveSpeed((float) (this.speed - * this.entity.getEntityAttribute(SharedMonsterAttributes.MOVEMENT_SPEED).getAttributeValue())); - } - } - } - - public void setActive(boolean isActive) - { - if (!isActive) - { - this.entity.setAIMoveSpeed(0.0F); - } - else - { - this.entity.setAIMoveSpeed((float) (this.speed - * this.entity.getEntityAttribute(SharedMonsterAttributes.MOVEMENT_SPEED).getAttributeValue())); - } - - this.active = isActive; - } - - public interface HopTimer - { - - int jumpDelay(); - - } - -} diff --git a/src/main/java/com/gildedgames/aether/common/entities/ai/kirrid/EntityAIEatAetherGrass.java b/src/main/java/com/gildedgames/aether/common/entities/ai/kirrid/EntityAIEatAetherGrass.java deleted file mode 100644 index a2beed99ac..0000000000 --- a/src/main/java/com/gildedgames/aether/common/entities/ai/kirrid/EntityAIEatAetherGrass.java +++ /dev/null @@ -1,131 +0,0 @@ -package com.gildedgames.aether.common.entities.ai.kirrid; - -import com.gildedgames.aether.api.registrar.BlocksAether; -import net.minecraft.block.Block; -import net.minecraft.entity.EntityLiving; -import net.minecraft.entity.ai.EntityAIBase; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.World; - -public class EntityAIEatAetherGrass extends EntityAIBase -{ - /** The entity owner of this AITask */ - private final EntityLiving entity; - - /** The world the grass eater entity is eating from */ - private final World world; - - /** Number of ticks since the entity started to eat grass */ - private int timer; - - /** Chance of executing **/ - private int chance; - - public EntityAIEatAetherGrass(final EntityLiving grassEaterEntityIn, int chance) - { - this.entity = grassEaterEntityIn; - this.world = grassEaterEntityIn.world; - this.setMutexBits(7); - this.chance = chance; - } - - - public EntityAIEatAetherGrass(final EntityLiving grassEaterEntityIn) - { - this(grassEaterEntityIn, 1000); - } - - /** - * Returns whether the EntityAIBase should begin execution. - */ - @Override - public boolean shouldExecute() - { - if (this.entity.getRNG().nextInt(this.entity.isChild() ? 50 : this.chance) != 0) - { - return false; - } - else - { - final BlockPos blockpos = new BlockPos(this.entity.posX, this.entity.posY, this.entity.posZ); - return this.world.getBlockState(blockpos).getBlock() == BlocksAether.tall_aether_grass - || this.world.getBlockState(blockpos.down()).getBlock() == BlocksAether.aether_grass; - } - } - - /** - * Execute a one shot task or start executing a continuous task - */ - @Override - public void startExecuting() - { - this.timer = 40; - this.world.setEntityState(this.entity, (byte) 10); - this.entity.getNavigator().clearPath(); - } - - /** - * Resets the task - */ - @Override - public void resetTask() - { - this.timer = 0; - } - - /** - * Returns whether an in-progress EntityAIBase should continue executing - */ - @Override - public boolean shouldContinueExecuting() - { - return this.timer > 0; - } - - /** - * Number of ticks since the entity started to eat grass - */ - public int getTimer() - { - return this.timer; - } - - /** - * Updates the task - */ - @Override - public void updateTask() - { - this.timer = Math.max(0, this.timer - 1); - - if (this.timer == 4) - { - final BlockPos blockpos = new BlockPos(this.entity.posX, this.entity.posY, this.entity.posZ); - - if (this.world.getBlockState(blockpos).getBlock() == BlocksAether.tall_aether_grass) - { - if (this.world.getGameRules().getBoolean("mobGriefing")) - { - this.world.destroyBlock(blockpos, false); - } - - this.entity.eatGrassBonus(); - } - else - { - final BlockPos blockpos1 = blockpos.down(); - - if (this.world.getBlockState(blockpos1).getBlock() == BlocksAether.aether_grass) - { - if (this.world.getGameRules().getBoolean("mobGriefing")) - { - this.world.playEvent(2001, blockpos1, Block.getIdFromBlock(BlocksAether.aether_grass)); - this.world.setBlockState(blockpos1, BlocksAether.aether_dirt.getDefaultState(), 2); - } - - this.entity.eatGrassBonus(); - } - } - } - } -} diff --git a/src/main/java/com/gildedgames/aether/common/entities/ai/moa/AIAnimalPack.java b/src/main/java/com/gildedgames/aether/common/entities/ai/moa/AIAnimalPack.java deleted file mode 100644 index bacb1e0cb7..0000000000 --- a/src/main/java/com/gildedgames/aether/common/entities/ai/moa/AIAnimalPack.java +++ /dev/null @@ -1,100 +0,0 @@ -package com.gildedgames.aether.common.entities.ai.moa; - -import com.gildedgames.aether.common.entities.util.groups.EntityGroupMember; -import net.minecraft.entity.EntityLiving; -import net.minecraft.entity.ai.EntityAIBase; -import net.minecraft.entity.passive.EntityAnimal; -import net.minecraft.pathfinding.Path; -import net.minecraft.world.World; - -import java.util.List; - -public class AIAnimalPack extends EntityAIBase -{ - - public final World world; - - public EntityLiving animal; - - public EntityLiving packLeader; - - public final float moveSpeed; - - public AIAnimalPack(final EntityLiving animal, final float moveSpeed) - { - this.world = animal.world; - this.moveSpeed = moveSpeed; - - if (animal instanceof EntityGroupMember) - { - this.animal = animal; - } - } - - @Override - public boolean shouldExecute() - { - if (this.animal == null || this.world == null) - { - return false; - } - - final List list = this.animal.world.getEntitiesWithinAABB(this.animal.getClass(), this.animal.getEntityBoundingBox().expand(12.0D, 4.0D, 12.0D)); - EntityAnimal potentialLeader = null; - double d0 = Double.MAX_VALUE; - - for (final Object aList : list) - { - final EntityAnimal animal = (EntityAnimal) aList; - - if (animal instanceof EntityGroupMember) - { - final EntityGroupMember packAnimal = (EntityGroupMember) animal; - final EntityGroupMember ourPackAnimal = (EntityGroupMember) this.animal; - - if (packAnimal.isGroupLeader() && !ourPackAnimal.isGroupLeader() && packAnimal.getGroup() == ourPackAnimal.getGroup()) - { - final double d1 = this.animal.getDistance(animal);//Find the male closest to this animal from the same pack - - if (d1 <= d0) - { - d0 = d1; - potentialLeader = animal; - } - } - } - } - - if (potentialLeader == null) - { - return false; - } - else if (d0 < 6.0D) - { - return false; - } - else - { - this.packLeader = potentialLeader; - return true; - } - } - - @Override - public void updateTask() - { - super.updateTask(); - - final Path path = this.animal.getNavigator().getPathToXYZ(this.packLeader.posX, this.packLeader.posY, this.packLeader.posZ); - - if (this.animal.getDistance(this.packLeader) > 6) - { - this.animal.getNavigator().setPath(path, this.moveSpeed); - } - else if (this.animal.getNavigator().getPath() == path) - { - this.animal.getNavigator().clearPath(); - } - } - -} diff --git a/src/main/java/com/gildedgames/aether/common/entities/ai/moa/AIAvoidEntityAsChild.java b/src/main/java/com/gildedgames/aether/common/entities/ai/moa/AIAvoidEntityAsChild.java deleted file mode 100644 index f1c5bae7f5..0000000000 --- a/src/main/java/com/gildedgames/aether/common/entities/ai/moa/AIAvoidEntityAsChild.java +++ /dev/null @@ -1,24 +0,0 @@ -package com.gildedgames.aether.common.entities.ai.moa; - -import net.minecraft.entity.EntityCreature; -import net.minecraft.entity.ai.EntityAIAvoidEntity; -import net.minecraft.entity.player.EntityPlayer; - -public class AIAvoidEntityAsChild extends EntityAIAvoidEntity<EntityPlayer> -{ - private final EntityCreature entity; - - public AIAvoidEntityAsChild(EntityCreature creature, Class<EntityPlayer> entityToAvoid, float par3, double par4, double par6) - { - super(creature, entityToAvoid, par3, par4, par6); - - this.entity = creature; - } - - @Override - public boolean shouldExecute() - { - return this.entity.isChild() && super.shouldExecute(); - } - -} diff --git a/src/main/java/com/gildedgames/aether/common/entities/ai/moa/AIMoaLayEgg.java b/src/main/java/com/gildedgames/aether/common/entities/ai/moa/AIMoaLayEgg.java deleted file mode 100644 index d525599295..0000000000 --- a/src/main/java/com/gildedgames/aether/common/entities/ai/moa/AIMoaLayEgg.java +++ /dev/null @@ -1,130 +0,0 @@ -package com.gildedgames.aether.common.entities.ai.moa; - -import com.gildedgames.aether.api.registrar.BlocksAether; -import com.gildedgames.aether.common.blocks.natural.plants.BlockWovenSticks; -import com.gildedgames.aether.common.entities.animals.EntityMoa; -import com.gildedgames.aether.common.entities.genes.GeneUtil; -import com.gildedgames.aether.common.entities.genes.moa.MoaGenePool; -import com.gildedgames.aether.common.entities.genes.moa.MoaNest; -import com.gildedgames.aether.common.entities.tiles.TileEntityMoaEgg; -import net.minecraft.entity.ai.EntityAIBase; -import net.minecraft.init.SoundEvents; -import net.minecraft.world.World; - -public class AIMoaLayEgg extends EntityAIBase -{ - - public final World world; - - public final EntityMoa mother; - - public final float moveSpeed; - - public boolean hasLayedEgg; - - private final int motherSeed; - - private final int fatherSeed; - - public AIMoaLayEgg(EntityMoa mother, int motherSeed, int fatherSeed, float moveSpeed) - { - this.world = mother.world; - - this.mother = mother; - - this.motherSeed = motherSeed; - this.fatherSeed = fatherSeed; - - this.moveSpeed = moveSpeed; - } - - @Override - public boolean isInterruptible() - { - return false; - } - - @Override - public boolean shouldExecute() - { - if (this.hasLayedEgg) - { - return false; - } - - if (this.mother == null || this.world == null) - { - return false; - } - - MoaNest nest = this.mother.getFamilyNest(); - - if (nest != null) - { - if (nest.pos == null) - { - return true; - } - - if (this.world.getBlockState(nest.pos.add(0, 1, 0)).getBlock() == BlocksAether.moa_egg) - { - return false; - } - - return this.world.getBlockState(nest.pos).getBlock() instanceof BlockWovenSticks; - } - - return true; - } - - @Override - public void updateTask() - { - super.updateTask(); - - MoaNest nest = this.mother.getFamilyNest(); - - if (nest == null || !nest.hasInitialized) - { - this.world.setBlockState(this.mother.getPosition(), BlocksAether.moa_egg.getDefaultState()); - - TileEntityMoaEgg egg = (TileEntityMoaEgg) this.world.getTileEntity(this.mother.getPosition()); - - if (egg != null) - { - MoaGenePool teGenes = egg.getGenePool(); - - teGenes.transformFromParents(GeneUtil.getRandomSeed(this.mother.getEntityWorld()), this.fatherSeed, this.motherSeed); - } - - this.mother.playSound(SoundEvents.ENTITY_CHICKEN_EGG, 1.0F, - (this.mother.getRNG().nextFloat() - this.mother.getRNG().nextFloat()) * 0.2F + 1.0F); - - this.hasLayedEgg = true; - - return; - } - - this.mother.getNavigator().tryMoveToXYZ(nest.pos.getX(), nest.pos.getY() + 1, nest.pos.getZ(), this.moveSpeed); - - if (this.mother.getNavigator().getPath() != null && this.mother.getNavigator().getPath().isFinished()) - { - this.world.setBlockState(nest.pos.add(0, 1, 0), BlocksAether.moa_egg.getDefaultState()); - - TileEntityMoaEgg egg = (TileEntityMoaEgg) this.world.getTileEntity(nest.pos.add(0, 1, 0)); - - if (egg != null) - { - MoaGenePool teGenes = egg.getGenePool(); - - teGenes.transformFromParents(GeneUtil.getRandomSeed(this.mother.getEntityWorld()), this.fatherSeed, this.motherSeed); - } - - this.mother.playSound(SoundEvents.ENTITY_CHICKEN_EGG, 1.0F, - (this.mother.getRNG().nextFloat() - this.mother.getRNG().nextFloat()) * 0.2F + 1.0F); - - this.hasLayedEgg = true; - } - } - -} diff --git a/src/main/java/com/gildedgames/aether/common/entities/ai/moa/AIMoaPackBreeding.java b/src/main/java/com/gildedgames/aether/common/entities/ai/moa/AIMoaPackBreeding.java deleted file mode 100644 index 9341036ce0..0000000000 --- a/src/main/java/com/gildedgames/aether/common/entities/ai/moa/AIMoaPackBreeding.java +++ /dev/null @@ -1,141 +0,0 @@ -package com.gildedgames.aether.common.entities.ai.moa; - -import com.gildedgames.aether.api.registrar.BlocksAether; -import com.gildedgames.aether.common.blocks.natural.plants.BlockWovenSticks; -import com.gildedgames.aether.common.entities.animals.EntityMoa; -import com.gildedgames.aether.common.entities.genes.AnimalGender; -import com.gildedgames.aether.common.entities.genes.moa.MoaGenePool; -import com.gildedgames.aether.common.entities.tiles.TileEntityMoaEgg; -import net.minecraft.entity.EntityLiving; -import net.minecraft.entity.ai.EntityAIBase; -import net.minecraft.init.SoundEvents; -import net.minecraft.pathfinding.Path; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.World; - -public class AIMoaPackBreeding extends EntityAIBase -{ - - public final World world; - - public final EntityMoa moa; - - public EntityLiving packLeader; - - public final float moveSpeed; - - public BlockPos eggPos; - - public int timeUntilLay; - - public AIMoaPackBreeding(final EntityMoa moa, final float moveSpeed) - { - this.world = moa.world; - this.moveSpeed = moveSpeed; - - this.moa = moa; - } - - public void resetTimer() - { - this.timeUntilLay = 30 + this.moa.getRNG().nextInt(60); - } - - @Override - public boolean shouldExecute() - { - if (this.moa == null || this.world == null) - { - return false; - } - - if (this.moa.isChild()) - { - return false; - } - - if (this.moa.getFamilyNest() == null) - { - return false; - } - else if (!this.moa.getFamilyNest().hasInitialized) - { - return false; - } - - this.eggPos = this.moa.getFamilyNest().pos.add(0, 1, 0); - - if (this.world.getBlockState(this.eggPos).getBlock() == BlocksAether.moa_egg) - { - this.resetTimer(); - - return false; - } - - if (!(this.world.getBlockState(this.moa.getFamilyNest().pos).getBlock() instanceof BlockWovenSticks)) - { - return false; - } - - if (this.timeUntilLay > 0) - { - if (this.moa.ticksExisted % 20 == 0) - { - this.timeUntilLay--; - } - - return false; - } - - return true; - } - - @Override - public void updateTask() - { - super.updateTask(); - - final Path path = this.moa.getNavigator().getPath(); - - final boolean isNearEgg = this.moa.getDistanceSq(this.eggPos.getX() - 1, this.eggPos.getY(), this.eggPos.getZ() - 1) <= 4.0D; - - if ((path == null || path.isFinished()) && !isNearEgg) - { - this.moa.getNavigator().tryMoveToXYZ(this.eggPos.getX() - 1, this.eggPos.getY(), this.eggPos.getZ() - 1, this.moveSpeed); - } - else if (isNearEgg && this.moa.getNavigator().getPath() != null && this.moa.getNavigator().getPath().isFinished()) - { - this.world.setBlockState(this.eggPos, BlocksAether.moa_egg.getDefaultState()); - - final TileEntityMoaEgg egg = (TileEntityMoaEgg) this.world.getTileEntity(this.eggPos); - - if (egg != null) - { - final MoaGenePool teGenes = egg.getGenePool(); - final MoaGenePool entityGenes = this.moa.getGenePool(); - - teGenes.transformFromParents(entityGenes.getStorage().getSeed(), entityGenes.getStorage().getFatherSeed(), - entityGenes.getStorage().getMotherSeed()); - - egg.setFamilyNest(this.moa.getFamilyNest()); - - if (!this.moa.getAnimalPack().hasLeader()) - { - egg.setGender(AnimalGender.MALE); - } - } - - this.moa.playSound(SoundEvents.ENTITY_CHICKEN_EGG, 1.0F, - (this.moa.getRNG().nextFloat() - this.moa.getRNG().nextFloat()) * 0.2F + 1.0F); - - this.resetTimer(); - } - } - - @Override - public boolean shouldContinueExecuting() - { - return this.shouldExecute(); - } - -} diff --git a/src/main/java/com/gildedgames/aether/common/entities/ai/moa/AIPanicPack.java b/src/main/java/com/gildedgames/aether/common/entities/ai/moa/AIPanicPack.java deleted file mode 100644 index f53f50a897..0000000000 --- a/src/main/java/com/gildedgames/aether/common/entities/ai/moa/AIPanicPack.java +++ /dev/null @@ -1,39 +0,0 @@ -package com.gildedgames.aether.common.entities.ai.moa; - -import com.gildedgames.aether.common.entities.util.groups.EntityGroupMember; -import net.minecraft.entity.EntityCreature; -import net.minecraft.entity.ai.EntityAIPanic; - -public class AIPanicPack extends EntityAIPanic -{ - - EntityGroupMember animal; - - final EntityCreature theEntityCreature; - - public AIPanicPack(EntityCreature par1EntityCreature, double par2) - { - super(par1EntityCreature, par2); - - if (par1EntityCreature instanceof EntityGroupMember) - { - this.animal = (EntityGroupMember) par1EntityCreature; - } - - this.theEntityCreature = par1EntityCreature; - } - - @Override - public boolean shouldExecute() - { - if (this.animal.isProtective() && !this.theEntityCreature.isBurning()) - { - return false; - } - - this.theEntityCreature.setAttackTarget(this.animal.getGroup().findNearestAggressor(this.theEntityCreature)); - - return super.shouldExecute(); - - } -} diff --git a/src/main/java/com/gildedgames/aether/common/entities/ai/moa/AIProtectPack.java b/src/main/java/com/gildedgames/aether/common/entities/ai/moa/AIProtectPack.java deleted file mode 100644 index 3a065abf44..0000000000 --- a/src/main/java/com/gildedgames/aether/common/entities/ai/moa/AIProtectPack.java +++ /dev/null @@ -1,53 +0,0 @@ -package com.gildedgames.aether.common.entities.ai.moa; - -import com.gildedgames.aether.common.entities.util.groups.EntityGroup; -import com.gildedgames.aether.common.entities.util.groups.EntityGroupMember; -import net.minecraft.entity.EntityCreature; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.ai.EntityAITarget; - -public class AIProtectPack extends EntityAITarget -{ - - EntityGroupMember animal; - - EntityLivingBase agressor; - - public AIProtectPack(EntityCreature par1EntityCreature) - { - super(par1EntityCreature, false, true); - if (par1EntityCreature instanceof EntityGroupMember) - { - this.animal = (EntityGroupMember) par1EntityCreature; - } - this.setMutexBits(1); - } - - @Override - public boolean shouldExecute() - { - EntityGroup pack = this.animal.getGroup(); - - if (pack == null || !this.animal.isProtective()) - { - return false; - } - - this.agressor = pack.findNearestAggressor(this.taskOwner); - - if (this.agressor == null) - { - return false; - } - - return this.isSuitableTarget(this.agressor, false); - } - - @Override - public void startExecuting() - { - this.taskOwner.setAttackTarget(this.agressor); - super.startExecuting(); - } - -} diff --git a/src/main/java/com/gildedgames/aether/common/entities/ai/moa/AIStayNearNest.java b/src/main/java/com/gildedgames/aether/common/entities/ai/moa/AIStayNearNest.java deleted file mode 100644 index e8a3df941b..0000000000 --- a/src/main/java/com/gildedgames/aether/common/entities/ai/moa/AIStayNearNest.java +++ /dev/null @@ -1,70 +0,0 @@ -package com.gildedgames.aether.common.entities.ai.moa; - -import com.gildedgames.aether.common.entities.animals.EntityMoa; -import net.minecraft.entity.ai.EntityAIBase; -import net.minecraft.world.World; - -public class AIStayNearNest extends EntityAIBase -{ - - public final World world; - - public final EntityMoa moa; - - public final float moveSpeed; - - public int nestX; - - public int nestY; - - public int nestZ; - - public final int stayCloseDist; - - public AIStayNearNest(final EntityMoa moa, final int stayCloseDist, final float moveSpeed) - { - this.world = moa.world; - this.moveSpeed = moveSpeed; - this.moa = moa; - this.stayCloseDist = stayCloseDist; - } - - @Override - public boolean shouldExecute() - { - if (this.moa == null || this.world == null) - { - return false; - } - - if (this.moa.getFamilyNest() == null) - { - return false; - } - else if (!this.moa.getFamilyNest().hasInitialized) - { - return false; - } - - this.nestX = this.moa.getFamilyNest().pos.getX(); - this.nestY = this.moa.getFamilyNest().pos.getY() + 1; - this.nestZ = this.moa.getFamilyNest().pos.getZ(); - - return !(this.moa.getDistance(this.nestX, this.nestY, this.nestZ) < this.stayCloseDist); - } - - @Override - public void updateTask() - { - super.updateTask(); - - this.moa.getNavigator().tryMoveToXYZ(this.nestX - 1, this.nestY, this.nestZ - 1, this.moveSpeed); - } - - @Override - public boolean shouldContinueExecuting() - { - return this.shouldExecute(); - } - -} diff --git a/src/main/java/com/gildedgames/aether/common/entities/ai/necromancer/NecromancerAIGoUpTower.java b/src/main/java/com/gildedgames/aether/common/entities/ai/necromancer/NecromancerAIGoUpTower.java deleted file mode 100644 index b8890f5939..0000000000 --- a/src/main/java/com/gildedgames/aether/common/entities/ai/necromancer/NecromancerAIGoUpTower.java +++ /dev/null @@ -1,63 +0,0 @@ -package com.gildedgames.aether.common.entities.ai.necromancer; - -import com.gildedgames.aether.common.entities.ai.EntityAIMoveToBlockYSensitive; -import com.gildedgames.aether.common.entities.characters.EntityNecromancer; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.World; - -public class NecromancerAIGoUpTower extends EntityAIMoveToBlockYSensitive -{ - - private final EntityNecromancer necromancer; - - private final BlockPos[] positions; - - private int index; - - private boolean shouldExecute; - - public NecromancerAIGoUpTower(final EntityNecromancer necromancer, final BlockPos... positions) - { - super(necromancer, 0.5D, 55); - - this.necromancer = necromancer; - this.positions = positions; - } - - public void setShouldExecute(final boolean shouldExecute) - { - this.shouldExecute = shouldExecute; - } - - @Override - public boolean shouldExecute() - { - if (this.necromancer.getNavigator().getPath() != null && this.necromancer.getNavigator().getPath().isFinished()) - { - if (this.index < this.positions.length - 1) - { - this.index++; - } - } - - this.runDelay = 0; - - return super.shouldExecute() && this.shouldExecute; - } - - private BlockPos getCurrentPos() - { - return this.positions[this.index]; - } - - @Override - protected boolean shouldMoveTo(final World worldIn, final BlockPos pos) - { - if (!this.shouldExecute) - { - return false; - } - - return pos.equals(this.getCurrentPos()); - } -} diff --git a/src/main/java/com/gildedgames/aether/common/entities/ai/swet/AILatchOn.java b/src/main/java/com/gildedgames/aether/common/entities/ai/swet/AILatchOn.java deleted file mode 100644 index 400e06649a..0000000000 --- a/src/main/java/com/gildedgames/aether/common/entities/ai/swet/AILatchOn.java +++ /dev/null @@ -1,73 +0,0 @@ -package com.gildedgames.aether.common.entities.ai.swet; - -import com.gildedgames.aether.common.capabilities.entity.player.PlayerAether; -import com.gildedgames.aether.common.capabilities.entity.player.modules.PlayerSwetTrackerModule; -import com.gildedgames.aether.common.entities.ai.EntityAI; -import com.gildedgames.aether.common.entities.ai.hopping.HoppingMoveHelper; -import com.gildedgames.aether.common.entities.monsters.EntitySwet; -import com.gildedgames.aether.common.network.NetworkingAether; -import com.gildedgames.aether.common.network.packets.PacketLatchSwet; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.init.SoundEvents; - -public class AILatchOn extends EntityAI<EntitySwet> -{ - - private final HoppingMoveHelper hoppingMoveHelper; - - public AILatchOn(final EntitySwet entity, final HoppingMoveHelper hoppingMoveHelper) - { - super(entity); - - this.hoppingMoveHelper = hoppingMoveHelper; - - this.setMutexBits(2); - } - - @Override - public void startExecuting() - { - - } - - @Override - public boolean shouldExecute() - { - return this.entity().getAttackTarget() instanceof EntityPlayer && this.entity().getAttackTarget() != null && this.entity() - .canEntityBeSeen(this.entity().getAttackTarget()) - && this.entity().getDistance(this.entity().getAttackTarget()) <= 1.5D && EntitySwet - .canLatch(this.entity(), (EntityPlayer) this.entity().getAttackTarget()); - } - - @Override - public boolean shouldContinueExecuting() - { - return !this.entity().isDead && this.entity().getHealth() > 0 && this.shouldExecute(); - } - - @Override - public boolean isInterruptible() - { - return false; - } - - @Override - public void updateTask() - { - this.entity().faceEntity(this.entity().getAttackTarget(), 10.0F, 10.0F); - - if (this.entity().getAttackTarget() instanceof EntityPlayer) - { - final EntityPlayer player = (EntityPlayer) this.entity().getAttackTarget(); - - this.entity().setSucking(0); - - NetworkingAether.sendPacketToWatching(new PacketLatchSwet(this.entity().getType(), player.getEntityId()), player, true); - PlayerAether.getPlayer(player).getModule(PlayerSwetTrackerModule.class).latchSwet(this.entity()); - - this.entity().playSound(SoundEvents.ENTITY_SLIME_ATTACK, 1.0F, - (this.entity().getRNG().nextFloat() - this.entity().getRNG().nextFloat()) * 0.2F + 1.0F); - } - } - -} diff --git a/src/main/java/com/gildedgames/aether/common/entities/ai/tempest/AIElectricShock.java b/src/main/java/com/gildedgames/aether/common/entities/ai/tempest/AIElectricShock.java deleted file mode 100644 index baaa885898..0000000000 --- a/src/main/java/com/gildedgames/aether/common/entities/ai/tempest/AIElectricShock.java +++ /dev/null @@ -1,133 +0,0 @@ -package com.gildedgames.aether.common.entities.ai.tempest; - -import com.gildedgames.aether.api.entity.effects.EEffectIntensity; -import com.gildedgames.aether.api.entity.effects.IAetherStatusEffectIntensity; -import com.gildedgames.aether.api.entity.effects.IAetherStatusEffectPool; -import com.gildedgames.aether.api.entity.effects.IAetherStatusEffects; -import com.gildedgames.aether.api.registrar.CapabilitiesAether; -import com.gildedgames.aether.api.registrar.SoundsAether; -import com.gildedgames.aether.common.entities.ai.EntityAI; -import com.gildedgames.aether.common.entities.effects.StatusEffectStun; -import com.gildedgames.aether.common.entities.monsters.EntityTempest; -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.SharedMonsterAttributes; -import net.minecraft.entity.ai.attributes.IAttributeInstance; - -public class AIElectricShock extends EntityAI<EntityTempest> -{ - - private int attackTimer; - - private int cooldownTimer; - - public AIElectricShock(final EntityTempest entity) - { - super(entity); - } - - @Override - public void startExecuting() - { - final IAttributeInstance movementSpeed = this.entity().getEntityAttribute(SharedMonsterAttributes.MOVEMENT_SPEED); - - this.entity().getNavigator().tryMoveToEntityLiving(this.entity().getAttackTarget(), - movementSpeed != null ? movementSpeed.getAttributeValue() : 1.0D); - } - - @Override - public boolean shouldExecute() - { - return this.entity().getAttackTarget() != null && this.entity().canEntityBeSeen(this.entity().getAttackTarget()); - } - - @Override - public boolean isInterruptible() - { - return false; - } - - @Override - public void resetTask() - { - this.attackTimer = 0; - this.cooldownTimer = 0; - } - - @Override - public void updateTask() - { - final EntityLivingBase prey = this.entity().getAttackTarget(); - - final double distanceToAttackTarget = this.entity().getDistance(prey); - - this.cooldownTimer++; - - if (distanceToAttackTarget < 7.0D) - { - if (this.cooldownTimer >= 60) - { - if (this.attackTimer == 0) - { - this.entity().playSound(SoundsAether.zephyr_puff, 1.0F, - (this.entity().getRNG().nextFloat() - this.entity().getRNG().nextFloat()) * 0.2F + 1.0F); - } - - this.attackTimer++; - - this.entity().getNavigator().clearPath(); - - if (this.attackTimer >= 40) - { - this.entity().playSound(SoundsAether.tempest_electric_shock, 1.0F, - (this.entity().getRNG().nextFloat() - this.entity().getRNG().nextFloat()) * 0.2F + 1.0F); - - if (this.entity().getRNG().nextInt(8) == 0) - { - this.entity().playSound(SoundsAether.tempest_angry, 1.0F, - (this.entity().getRNG().nextFloat() - this.entity().getRNG().nextFloat()) * 0.2F + 1.0F); - } - - this.entity().setAttacked(false); - this.entity().attackEntityAsMob(prey); - - this.applyStatusEffectOnAttack(prey); - - this.attackTimer = 0; - this.cooldownTimer = 0; - } - } - } - else if (this.entity().getNavigator().noPath()) - { - this.startExecuting(); - } - } - - - private void applyStatusEffectOnAttack(final Entity target) - { - if (target instanceof EntityLivingBase) - { - final EntityLivingBase living = (EntityLivingBase) target; - - if (!living.isActiveItemStackBlocking()) - { - IAetherStatusEffectPool statusEffectPool = living.getCapability(CapabilitiesAether.STATUS_EFFECT_POOL, null); - - if (statusEffectPool != null) - { - if (!statusEffectPool.effectExists(IAetherStatusEffects.effectTypes.STUN)) - { - statusEffectPool.applyStatusEffect(IAetherStatusEffects.effectTypes.STUN, 90); - } - else - { - statusEffectPool.modifyActiveEffectBuildup(IAetherStatusEffects.effectTypes.STUN, - statusEffectPool.getBuildupFromEffect(IAetherStatusEffects.effectTypes.STUN) + 90); - } - } - } - } - } -} diff --git a/src/main/java/com/gildedgames/aether/common/entities/animals/EntityAerbunny.java b/src/main/java/com/gildedgames/aether/common/entities/animals/EntityAerbunny.java deleted file mode 100644 index 6f6cb6cf46..0000000000 --- a/src/main/java/com/gildedgames/aether/common/entities/animals/EntityAerbunny.java +++ /dev/null @@ -1,524 +0,0 @@ -package com.gildedgames.aether.common.entities.animals; - -import com.gildedgames.aether.api.entity.damage.DamageTypeAttributes; -import com.gildedgames.aether.api.entity.damage.IDefenseLevelsHolder; -import com.gildedgames.aether.api.registrar.BlocksAether; -import com.gildedgames.aether.api.registrar.ItemsAether; -import com.gildedgames.aether.api.registrar.SoundsAether; -import com.gildedgames.aether.common.AetherCore; -import com.gildedgames.aether.common.capabilities.entity.player.PlayerAether; -import com.gildedgames.aether.common.capabilities.entity.player.modules.PlayerAerbunnyTrackerModule; -import com.gildedgames.aether.common.entities.ai.*; -import com.gildedgames.aether.common.init.LootTablesAether; -import com.gildedgames.aether.common.network.NetworkingAether; -import com.gildedgames.aether.common.network.packets.PacketAerbunnySetRiding; -import com.google.common.collect.Maps; -import com.google.common.collect.Sets; -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityAgeable; -import net.minecraft.entity.EntityLiving; -import net.minecraft.entity.SharedMonsterAttributes; -import net.minecraft.entity.ai.*; -import net.minecraft.entity.passive.EntityTameable; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.EnumDyeColor; -import net.minecraft.item.Item; -import net.minecraft.item.ItemFood; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.network.datasync.DataParameter; -import net.minecraft.network.datasync.DataSerializers; -import net.minecraft.network.datasync.EntityDataManager; -import net.minecraft.pathfinding.PathNavigate; -import net.minecraft.util.DamageSource; -import net.minecraft.util.EnumHand; -import net.minecraft.util.ResourceLocation; -import net.minecraft.util.SoundEvent; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.MathHelper; -import net.minecraft.world.World; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; - -import javax.annotation.Nullable; -import java.util.Map; -import java.util.Set; -import java.util.UUID; - -public class EntityAerbunny extends EntityTameable implements IDefenseLevelsHolder -{ - protected Map<String, Float> defenseMap = Maps.newHashMap(); - - { - { - this.defenseMap.put("Very Weak", 4.0F); - this.defenseMap.put("Weak", 2.0F); - this.defenseMap.put("Average", 0.0F); - this.defenseMap.put("Strong", -2.0F); - this.defenseMap.put("Very Strong", -4.0F); - } - } - - private static final Set<Item> TEMPTATION_ITEMS = Sets - .newHashSet(ItemsAether.blueberries); - - private static final Set<Item> TAMING_ITEMS = Sets - .newHashSet(ItemsAether.orange); - - private static final Set<Item> HEALING_ITEMS = Sets - .newHashSet(ItemsAether.orange); - - private static final DataParameter<Integer> COLLAR_COLOR = EntityDataManager.createKey(EntityAerbunny.class, DataSerializers.VARINT); - - @SideOnly(Side.CLIENT) - private double prevMotionY; - - @SideOnly(Side.CLIENT) - private int puffiness; - - @SideOnly(Side.CLIENT) - private float curRotation; - - private boolean quickFall; - - public EntityAerbunny(final World world) - { - super(world); - - this.aiSit = new EntityAISit(this); - this.tasks.addTask(2, this.aiSit); - this.tasks.addTask(2, new EntityAIRestrictRain(this)); - this.tasks.addTask(3, new EntityAIUnstuckBlueAercloud(this)); - this.tasks.addTask(3, new EntityAIHideFromRain(this, 1.3D)); - this.tasks.addTask(1, new EntityAISwimming(this)); - this.tasks.addTask(2, new EntityAIMate(this, 1.0D)); - this.tasks.addTask(3, new EntityAITempt(this, 1.2D, false, TEMPTATION_ITEMS)); - this.tasks.addTask(3, new EntityAIEggnogTempt(this, 2.2D)); - this.tasks.addTask(5, new EntityAIFollowOwner(this, 1.5D, 5.0F, 2.0F)); - this.tasks.addTask(6, new EntityAIWander(this, 1.0D, 10)); - this.tasks.addTask(8, new EntityAIAvoidEntity<>(this, EntityPlayer.class, 12.0F, 1.2F, 1.8F)); - this.tasks.addTask(11, new EntityAIWatchClosest(this, EntityPlayer.class, 10.0F)); - - this.jumpHelper = new AerbunnyJumpHelper(this); - - this.spawnableBlock = BlocksAether.aether_grass; - - this.setSize(0.65F, 0.65F); - - this.setTamed(false); - } - - @Override - protected void entityInit() - { - super.entityInit(); - this.dataManager.register(COLLAR_COLOR, EnumDyeColor.BLUE.getDyeDamage()); - } - - @Override - public float getBlockPathWeight(BlockPos pos) - { - return this.world.getBlockState(pos.down()).getBlock() == BlocksAether.aether_grass ? 10.0F : - this.world.getLightBrightness(pos) - 0.5F; - } - - @Override - protected void applyEntityAttributes() - { - super.applyEntityAttributes(); - - this.getEntityAttribute(SharedMonsterAttributes.MOVEMENT_SPEED).setBaseValue(0.3D); - this.getEntityAttribute(SharedMonsterAttributes.MAX_HEALTH).setBaseValue(8.0D); - - this.getEntityAttribute(DamageTypeAttributes.SLASH_DEFENSE_LEVEL).setBaseValue(2.0F); - this.getEntityAttribute(DamageTypeAttributes.IMPACT_DEFENSE_LEVEL).setBaseValue(-2.0F); - this.getEntityAttribute(DamageTypeAttributes.PIERCE_DEFENSE_LEVEL).setBaseValue(0.0F); - } - - @Override - public void onUpdate() - { - if (this.motionX != 0 || this.motionZ != 0) - { - this.setJumping(true); - } - - super.onUpdate(); - - if (this.world.isRemote) - { - if (this.puffiness > 0) - { - this.puffiness--; - } - - if (this.prevMotionY <= 0 && this.motionY > 0) - { - final BlockPos pos = this.getPosition(); - - // Make sure we only spawn particles when it's jumping off a block - if (this.world.isBlockFullCube(pos.down())) - { - AetherCore.PROXY.spawnJumpParticles(this.world, this.posX, pos.getY(), this.posZ, 0.6D, 6); - } - - this.puffiness = 10; - } - - this.prevMotionY = this.motionY; - } - - if (this.isRiding()) - { - final Entity entity = this.getRidingEntity(); - - if (!this.world.isRemote) - { - boolean isPlayer = entity instanceof EntityPlayer; - - if (isPlayer && ((EntityPlayer) entity).isSpectator()) - { - NetworkingAether.sendPacketToWatching(new PacketAerbunnySetRiding(null, this), this, false); - PlayerAether.getPlayer((EntityPlayer) entity).getModule(PlayerAerbunnyTrackerModule.class).detachAerbunny(); - - this.dismountRidingEntity(); - this.setPosition(entity.posX, entity.posY + entity.getEyeHeight() + 0.5D, entity.posZ); - } - else if (!isPlayer || !(((EntityPlayer) entity).isSpectator())) - { - if (entity.isSneaking()) - { - if (entity.onGround && !this.quickFall) - { - NetworkingAether.sendPacketToWatching(new PacketAerbunnySetRiding(null, this), this, false); - PlayerAether.getPlayer((EntityPlayer) entity).getModule(PlayerAerbunnyTrackerModule.class).detachAerbunny(); - - this.dismountRidingEntity(); - this.setPosition(entity.posX, entity.posY + entity.getEyeHeight() + 0.5D, entity.posZ); - } - else - { - this.quickFall = true; - } - } - else - { - this.quickFall = false; - } - } - } - - if (entity.motionY < 0) - { - entity.motionY *= entity.isSneaking() ? 0.9D : 0.7D; - - entity.fallDistance = 0; - } - - this.setRotation(entity.rotationYaw, entity.rotationPitch); - } - - if (this.motionY < -0.1D) - { - this.motionY = -0.1D; - } - - this.fallDistance = 0.0F; - } - - @Override - public boolean processInteract(final EntityPlayer player, final EnumHand hand) - { - final ItemStack itemstack = player.getHeldItem(hand); - - if (this.isTamed()) - { - if (!itemstack.isEmpty()) - { - if (itemstack.getItem() instanceof ItemFood) - { - ItemFood itemfood = (ItemFood) itemstack.getItem(); - - if (isHealingItem(itemstack) && this.getHealth() < this.getMaxHealth()) - { - if (!player.capabilities.isCreativeMode) - { - itemstack.shrink(1); - } - - this.heal((float) itemfood.getHealAmount(itemstack)); - - return true; - } - } - /* - else if (itemstack.getItem() == Items.DYE) - { - EnumDyeColor enumdyecolor = EnumDyeColor.byDyeDamage(itemstack.getMetadata()); - - if (enumdyecolor != this.getCollarColor()) - { - this.setCollarColor(enumdyecolor); - - if (!player.capabilities.isCreativeMode) - { - itemstack.shrink(1); - } - - return true; - } - } - */ - } - - if (this.isOwner(player) && !this.world.isRemote && !this.isBreedingItem(itemstack) && !this.isTamingItem(itemstack) && !this - .isHealingItem(itemstack) && player.isSneaking()) - { - this.aiSit.setSitting(!this.isSitting()); - this.isJumping = false; - this.navigator.clearPath(); - } - } - else if (this.isTamingItem(itemstack)) - { - if (!player.capabilities.isCreativeMode) - { - itemstack.shrink(1); - } - - if (!this.world.isRemote) - { - if (this.rand.nextInt(3) == 0 && !net.minecraftforge.event.ForgeEventFactory.onAnimalTame(this, player)) - { - this.setTamedBy(player); - this.navigator.clearPath(); - this.aiSit.setSitting(true); - this.setHealth(this.getMaxHealth()); - this.playTameEffect(true); - this.world.setEntityState(this, (byte) 7); - } - else - { - this.playTameEffect(false); - this.world.setEntityState(this, (byte) 6); - } - } - - return true; - } - - if (!super.processInteract(player, hand) && !this.isBreedingItem(itemstack) && !this.isTamingItem(itemstack) && !this.isHealingItem(itemstack) - && !player.isSneaking() && !this.isSitting()) - { - if (!this.isRiding() && player.getPassengers().size() <= 0) - { - if (!this.world.isRemote) - { - this.startRiding(player, true); - - NetworkingAether.sendPacketToWatching(new PacketAerbunnySetRiding(player, this), this, false); - PlayerAether.getPlayer(player).getModule(PlayerAerbunnyTrackerModule.class).attachAerbunny(this); - } - - return true; - } - else - { - return false; - } - } - - return true; - } - - @Override - public void onDeath(DamageSource cause) - { - super.onDeath(cause); - - if(this.isRiding()) - { - PlayerAether.getPlayer((EntityPlayer) this.getRidingEntity()).getModule(PlayerAerbunnyTrackerModule.class).detachAerbunny(); - } - } - - @Override - public double getYOffset() - { - return this.getRidingEntity() != null ? 0.45D : 0.0D; - } - - @Override - protected ResourceLocation getLootTable() - { - return LootTablesAether.ENTITY_AERBUNNY; - } - - @Override - protected SoundEvent getAmbientSound() - { - return SoundsAether.aerbunny_ambient; - } - - @Override - protected SoundEvent getHurtSound(final DamageSource src) - { - return SoundsAether.aerbunny_hurt; - } - - @Override - protected SoundEvent getDeathSound() - { - return SoundsAether.aerbunny_death; - } - - @Override - protected PathNavigate createNavigator(final World worldIn) - { - return new AetherNavigateGround(this, worldIn); - } - - @Override - public EntityAgeable createChild(final EntityAgeable ageable) - { - EntityAerbunny entityAerbunny = new EntityAerbunny(this.world); - UUID uuid = this.getOwnerId(); - - if (uuid != null) - { - entityAerbunny.setOwnerId(uuid); - entityAerbunny.setTamed(true); - } - - return entityAerbunny; - } - - @SideOnly(Side.CLIENT) - public int getPuffiness() - { - return this.puffiness; - } - - @SideOnly(Side.CLIENT) - public float getRotation() - { - if (this.motionY > 0) - { - this.curRotation += MathHelper.clamp(this.curRotation / 10f, -4f, -2f); - } - else if (this.motionY < 0) - { - this.curRotation += MathHelper.clamp(this.curRotation / 10f, 2f, 4f); - } - - if (this.onGround) - { - this.curRotation = 0f; - } - - this.curRotation = MathHelper.clamp(this.curRotation, -30f, 30f); - - return this.curRotation; - } - - @Override - public int getVerticalFaceSpeed() - { - return this.isSitting() ? 20 : super.getVerticalFaceSpeed(); - } - - @Override - public boolean canRiderInteract() - { - return true; - } - - @Override - public boolean isBreedingItem(@Nullable final ItemStack stack) - { - return stack != null && TEMPTATION_ITEMS.contains(stack.getItem()); - } - - public boolean isTamingItem(@Nullable final ItemStack stack) - { - return stack != null && TAMING_ITEMS.contains(stack.getItem()); - } - - public boolean isHealingItem(@Nullable final ItemStack stack) - { - return stack != null && HEALING_ITEMS.contains(stack.getItem()); - } - - public EnumDyeColor getCollarColor() - { - return EnumDyeColor.byDyeDamage(this.dataManager.get(COLLAR_COLOR) & 15); - } - - public void setCollarColor(EnumDyeColor collarColor) - { - this.dataManager.set(COLLAR_COLOR, collarColor.getDyeDamage()); - } - - @Override - public boolean isEntityInsideOpaqueBlock() - { - return !this.isRiding() && super.isEntityInsideOpaqueBlock(); - } - - @Override - public void writeEntityToNBT(NBTTagCompound compound) - { - super.writeEntityToNBT(compound); - compound.setByte("CollarColor", (byte) this.getCollarColor().getDyeDamage()); - } - - @Override - public void readEntityFromNBT(NBTTagCompound compound) - { - super.readEntityFromNBT(compound); - - if (compound.hasKey("CollarColor", 99)) - { - this.setCollarColor(EnumDyeColor.byDyeDamage(compound.getByte("CollarColor"))); - } - } - - private class AerbunnyJumpHelper extends EntityJumpHelper - { - private final EntityLiving entity; - - public AerbunnyJumpHelper(final EntityAerbunny entity) - { - super(entity); - - this.entity = entity; - } - - @Override - public void doJump() - { - this.entity.setJumping(true); - - if (this.entity.motionX == 0 && this.entity.motionZ == 0) - { - this.isJumping = false; - this.entity.setJumping(false); - } - } - } - - private class AerbunnyNavigator extends AetherNavigateGround - { - public AerbunnyNavigator(final EntityLiving entity, final World world) - { - super(entity, world); - } - - @Override - protected boolean canNavigate() - { - return !this.entity.isRiding(); - } - } - -} diff --git a/src/main/java/com/gildedgames/aether/common/entities/animals/EntityAerwhale.java b/src/main/java/com/gildedgames/aether/common/entities/animals/EntityAerwhale.java deleted file mode 100644 index e629e65832..0000000000 --- a/src/main/java/com/gildedgames/aether/common/entities/animals/EntityAerwhale.java +++ /dev/null @@ -1,91 +0,0 @@ -package com.gildedgames.aether.common.entities.animals; - -import com.gildedgames.aether.api.registrar.SoundsAether; -import com.gildedgames.aether.common.entities.ai.EntityAIForcedWander; -import com.gildedgames.aether.common.entities.flying.EntityFlying; -import com.gildedgames.aether.common.entities.flying.PathNavigateFlyer; -import net.minecraft.entity.SharedMonsterAttributes; -import net.minecraft.entity.ai.EntityAIMoveTowardsRestriction; -import net.minecraft.pathfinding.PathNavigate; -import net.minecraft.util.DamageSource; -import net.minecraft.util.SoundEvent; -import net.minecraft.world.World; - -public class EntityAerwhale extends EntityFlying -{ - - public EntityAerwhale(final World world) - { - super(world); - - this.setSize(3.0F, 3.0F); - } - - @Override - protected void applyEntityAttributes() - { - super.applyEntityAttributes(); - - this.getEntityAttribute(SharedMonsterAttributes.KNOCKBACK_RESISTANCE).setBaseValue(1.0D); - this.getEntityAttribute(SharedMonsterAttributes.FOLLOW_RANGE).setBaseValue(250); - } - - @Override - protected PathNavigate createNavigator(final World worldIn) - { - PathNavigateFlyer navigateFlyer = new PathNavigateFlyer(this, worldIn); - - navigateFlyer.setAvoidGround(true); - - return navigateFlyer; - } - - @Override - protected void initEntityAI() - { - final EntityAIMoveTowardsRestriction moveTowardsRestriction = new EntityAIMoveTowardsRestriction(this, 0.4D); - final EntityAIForcedWander wander = new EntityAIForcedWander(this, 0.4D, 10, 12, 7); - - wander.setMutexBits(3); - moveTowardsRestriction.setMutexBits(3); - - this.tasks.addTask(1, moveTowardsRestriction); - this.tasks.addTask(2, wander); - } - - @Override - public int getTalkInterval() - { - return 2000; - } - - @Override - protected float getSoundVolume() - { - return 10.0F; - } - - @Override - protected SoundEvent getAmbientSound() - { - return SoundsAether.aerwhale_ambient; - } - - @Override - protected SoundEvent getHurtSound(final DamageSource src) - { - return SoundsAether.aerwhale_ambient; - } - - @Override - protected SoundEvent getDeathSound() - { - return SoundsAether.aerwhale_death; - } - - @Override - protected boolean canDespawn() - { - return false; - } -} diff --git a/src/main/java/com/gildedgames/aether/common/entities/animals/EntityAetherAnimal.java b/src/main/java/com/gildedgames/aether/common/entities/animals/EntityAetherAnimal.java deleted file mode 100644 index 4cf5d5c74a..0000000000 --- a/src/main/java/com/gildedgames/aether/common/entities/animals/EntityAetherAnimal.java +++ /dev/null @@ -1,87 +0,0 @@ -package com.gildedgames.aether.common.entities.animals; - -import com.gildedgames.aether.api.entity.damage.IDefenseLevelsHolder; -import com.gildedgames.aether.api.entity.effects.IAetherStatusEffectPool; -import com.gildedgames.aether.api.entity.effects.IAetherStatusEffects; -import com.gildedgames.aether.api.registrar.BlocksAether; -import com.gildedgames.aether.api.registrar.CapabilitiesAether; -import com.gildedgames.aether.common.entities.ai.AetherNavigateGround; -import com.gildedgames.aether.common.entities.effects.IEntityResistanceHolder; -import net.minecraft.entity.Entity; -import net.minecraft.entity.passive.EntityAnimal; -import net.minecraft.pathfinding.PathNavigate; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.World; - -import java.util.HashMap; -import java.util.Map; - -public abstract class EntityAetherAnimal extends EntityAnimal implements IDefenseLevelsHolder, IEntityResistanceHolder -{ - private Map<IAetherStatusEffects.effectTypes, Boolean> applicationTracker = new HashMap<>(); - private Map<IAetherStatusEffects.effectTypes, Double> resistances = new HashMap<>(); - - public EntityAetherAnimal(World world) - { - super(world); - } - - @Override - public float getBlockPathWeight(BlockPos pos) - { - return this.world.getBlockState(pos.down()).getBlock() == BlocksAether.aether_grass ? 10.0F : - this.world.getLightBrightness(pos) - 0.5F; - } - - @Override - protected PathNavigate createNavigator(final World worldIn) - { - return new AetherNavigateGround(this, worldIn); - } - - protected void applyStatusEffectOnAttack(final Entity target) - { - - } - - @Override - public void onEntityUpdate() - { - IAetherStatusEffectPool statusEffectPool = this.getCapability(CapabilitiesAether.STATUS_EFFECT_POOL, null); - - if (statusEffectPool == null) - { - return; - } - - for (Map.Entry<IAetherStatusEffects.effectTypes, Double> effect : resistances.entrySet()) - { - applicationTracker.putIfAbsent(effect.getKey(), false); - - if (!applicationTracker.get(effect.getKey())) - { - statusEffectPool.addResistanceToEffect(effect.getKey(), effect.getValue()); - - if (statusEffectPool.getResistanceToEffect(effect.getKey()) != 1.0D) - { - applicationTracker.put(effect.getKey(), true); - } - } - else - { - if (statusEffectPool.getResistanceToEffect(effect.getKey()) == 1.0D) - { - applicationTracker.put(effect.getKey(), false); - } - } - } - - super.onEntityUpdate(); - } - - @Override - public Map<IAetherStatusEffects.effectTypes, Double> getResistances() - { - return resistances; - } -} diff --git a/src/main/java/com/gildedgames/aether/common/entities/animals/EntityBurrukai.java b/src/main/java/com/gildedgames/aether/common/entities/animals/EntityBurrukai.java deleted file mode 100644 index b1f08b8127..0000000000 --- a/src/main/java/com/gildedgames/aether/common/entities/animals/EntityBurrukai.java +++ /dev/null @@ -1,331 +0,0 @@ -package com.gildedgames.aether.common.entities.animals; - -import com.gildedgames.aether.api.entity.IEntityEyesComponent; -import com.gildedgames.aether.api.entity.damage.DamageTypeAttributes; -import com.gildedgames.aether.api.entity.effects.EEffectIntensity; -import com.gildedgames.aether.api.entity.effects.IAetherStatusEffectIntensity; -import com.gildedgames.aether.api.entity.effects.IAetherStatusEffectPool; -import com.gildedgames.aether.api.entity.effects.IAetherStatusEffects; -import com.gildedgames.aether.api.registrar.BlocksAether; -import com.gildedgames.aether.api.registrar.CapabilitiesAether; -import com.gildedgames.aether.api.registrar.ItemsAether; -import com.gildedgames.aether.api.registrar.SoundsAether; -import com.gildedgames.aether.common.entities.ai.*; -import com.gildedgames.aether.common.entities.effects.StatusEffectFracture; -import com.gildedgames.aether.common.entities.multipart.AetherMultiPartEntity; -import com.gildedgames.aether.common.entities.util.eyes.EntityEyesComponent; -import com.gildedgames.aether.common.entities.util.eyes.IEntityEyesComponentProvider; -import com.gildedgames.aether.common.init.LootTablesAether; -import com.gildedgames.aether.common.util.helpers.MathUtil; -import com.google.common.collect.Maps; -import com.google.common.collect.Sets; -import net.minecraft.block.Block; -import net.minecraft.entity.*; -import net.minecraft.entity.ai.*; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.init.SoundEvents; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.pathfinding.PathNavigate; -import net.minecraft.util.DamageSource; -import net.minecraft.util.ResourceLocation; -import net.minecraft.util.SoundEvent; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.MathHelper; -import net.minecraft.world.World; - -import javax.annotation.Nullable; -import java.util.Map; -import java.util.Set; - -public class EntityBurrukai extends EntityAetherAnimal implements IEntityMultiPart, IEntityEyesComponentProvider -{ - protected Map<String, Float> defenseMap = Maps.newHashMap(); - {{ - this.defenseMap.put("Very Weak", 4.0F); - this.defenseMap.put("Weak", 2.0F); - this.defenseMap.put("Average", 0.0F); - this.defenseMap.put("Strong", -2.0F); - this.defenseMap.put("Very Strong", -4.0F); - }} - - private static final Set<Item> TEMPTATION_ITEMS = Sets.newHashSet(ItemsAether.brettl_grass); - - private final AetherMultiPartEntity[] parts; - - private final AetherMultiPartEntity head = new AetherMultiPartEntity(this, "head", .8F, 1.1F); - - private EntityAIRamAttack ramAttack; - - private final IEntityEyesComponent eyes = new EntityEyesComponent(this); - - public EntityBurrukai(final World world) - { - super(world); - - this.parts = new AetherMultiPartEntity[] { this.head }; - this.setSize(1.25F, 1.9F); - - this.spawnableBlock = BlocksAether.aether_grass; - } - - @Override - protected void initEntityAI() - { - super.initEntityAI(); - - this.ramAttack = new EntityAIRamAttack(this, 0.5D, 0.5f, 2, 16.0f); - - this.tasks.addTask(2, this.ramAttack); - this.tasks.addTask(2, new EntityAIRestrictRain(this)); - this.tasks.addTask(3, new EntityAIHideFromRain(this, 1.3D)); - this.tasks.addTask(3, new EntityAIUnstuckBlueAercloud(this)); - this.tasks.addTask(3, new EntityAITempt(this, 1.2D, false, TEMPTATION_ITEMS)); - this.tasks.addTask(0, new EntityAISwimming(this)); - this.tasks.addTask(2, new EntityAIMate(this, 1.0D)); - this.tasks.addTask(3, new EntityAITempt(this, 1.2D, false, TEMPTATION_ITEMS)); - this.tasks.addTask(4, new EntityAIFollowParent(this, 1.25D)); - this.tasks.addTask(5, new EntityAIWander(this, 1.0D)); - this.tasks.addTask(5, new EntityAIWanderAvoidWater(this, 1.0D)); - this.tasks.addTask(6, new EntityAIWatchClosest(this, EntityPlayer.class, 6.0F)); - this.tasks.addTask(7, new EntityAILookIdle(this)); - } - - @Override - public World getWorld() - { - return this.getEntityWorld(); - } - - @Override - public boolean attackEntityFromPart(MultiPartEntityPart part, DamageSource source, float damage) - { - if (this.hurtResistantTime <= 10) - { - return this.attackEntityFrom(source, damage * 1.1f); - } - else - { - return false; - } - } - - @Nullable - @Override - public MultiPartEntityPart[] getParts() - { - return this.parts; - } - - @Override - public void onLivingUpdate() - { - super.onLivingUpdate(); - - if (this.isChild()) - { - this.head.updateSize(0.4F, 0.55F); - } - - this.eyes.update(); - - double prevHeadX = this.head.posX; - double prevHeadY = this.head.posY; - double prevHeadZ = this.head.posZ; - - float headOffset = !this.isChild() ? 1f : .3f; - float headHeight = !this.isChild() ? .7f : .5f; - - final float headDist = 1.2f; - float f = MathUtil.interpolateRotation(this.prevRenderYawOffset, this.renderYawOffset, 1); - float f1 = MathHelper.cos(-f * 0.017453292F - (float) Math.PI) * headDist; - float f2 = MathHelper.sin(-f * 0.017453292F - (float) Math.PI) * headDist; - - this.head.setLocationAndAngles(this.posX - f2 * headOffset, this.posY + headHeight, this.posZ - f1 * headOffset, 0F, 0F); - this.head.onUpdate(); - - this.head.prevPosX = prevHeadX; - this.head.prevPosY = prevHeadY; - this.head.prevPosZ = prevHeadZ; - } - - @Override - protected PathNavigate createNavigator(final World worldIn) - { - return new AetherNavigateGround(this, worldIn); - } - - @Override - public float getBlockPathWeight(BlockPos pos) - { - return super.getBlockPathWeight(pos); - } - - @Override - protected void applyEntityAttributes() - { - super.applyEntityAttributes(); - - this.getEntityAttribute(SharedMonsterAttributes.MAX_HEALTH).setBaseValue(20.0D); - this.getEntityAttribute(SharedMonsterAttributes.MOVEMENT_SPEED).setBaseValue(0.2D); - this.getEntityAttribute(SharedMonsterAttributes.FOLLOW_RANGE).setBaseValue(16.0D); - - this.getEntityAttribute(DamageTypeAttributes.SLASH_DEFENSE_LEVEL).setBaseValue(-2.0f); - this.getEntityAttribute(DamageTypeAttributes.IMPACT_DEFENSE_LEVEL).setBaseValue(2.0f); - this.getEntityAttribute(DamageTypeAttributes.PIERCE_DEFENSE_LEVEL).setBaseValue(0.0f); - } - - @Override - public EntityBurrukai createChild(final EntityAgeable ageable) - { - return new EntityBurrukai(this.world); - } - - @Override - public boolean isBreedingItem(@Nullable final ItemStack stack) - { - return stack != null && TEMPTATION_ITEMS.contains(stack.getItem()); - } - - @Override - protected SoundEvent getAmbientSound() - { - return SoundsAether.burrukai_ambient; - } - - @Override - protected SoundEvent getHurtSound(final DamageSource src) - { - return SoundsAether.burrukai_hurt; - } - - @Override - protected SoundEvent getDeathSound() - { - return SoundsAether.burrukai_death; - } - - @Override - protected float getSoundVolume() - { - return 0.6F; - } - - @Override - protected void playStepSound(final BlockPos pos, final Block blockIn) - { - this.playSound(SoundEvents.ENTITY_COW_STEP, 0.15F, 1.0F); - } - - @Override - protected ResourceLocation getLootTable() - { - return LootTablesAether.ENTITY_BURRUKAI; - } - - @Override - public void onEntityUpdate() - { - super.onEntityUpdate(); - - if (this.ramAttack == null) - { - return; - } - -// if (this.getAttackTarget() != null) -// { -// if (this.getAttackTarget() instanceof EntityPlayer) -// { -// final PlayerAether player = PlayerAether.getPlayer(this.getAttackTarget()); -// if (player.getEntity().isCreative()) -// { -// return; -// } -// } -// } - - this.ramAttack.update(); - - this.setAttackTarget(this.getAttackTarget()); - } - - @Override - public boolean attackEntityFrom(DamageSource source, float amount) - { - if (source.getTrueSource() instanceof EntityLivingBase) - { - EntityLivingBase attacker = (EntityLivingBase) source.getTrueSource(); - - this.setAttackTarget(attacker); - - if (this.ramAttack != null && (!(attacker instanceof EntityPlayer) || !((EntityPlayer) attacker).isCreative())) - { - this.ramAttack.setTarget(attacker); - } - } - - return super.attackEntityFrom(source, amount); - } - - @Override - public boolean attackEntityAsMob(final Entity entityIn) - { - if (entityIn instanceof EntityLivingBase) - { - final EntityLivingBase living = (EntityLivingBase) entityIn; - - double xRatio = this.getLook(1.0F).x * 360; - double zRatio = this.getLook(1.0F).z * 360; - - living.attackEntityFrom(DamageSource.causeMobDamage(this), 5.0F); - this.playSound(SoundsAether.burrukai_attack, 0.5F, 1.0F); - living.knockBack(this, 1.0F, xRatio * -1, zRatio * -1); - - this.applyStatusEffectOnAttack(entityIn); - this.ramAttack.setTarget(this.getAttackTarget()); - this.setAttackTarget(null); - } - - return true; - } - - @Override - protected void applyStatusEffectOnAttack(final Entity target) - { - if (target instanceof EntityLivingBase) - { - final EntityLivingBase living = (EntityLivingBase) target; - - if (!living.isActiveItemStackBlocking()) - { - IAetherStatusEffectPool statusEffectPool = living.getCapability(CapabilitiesAether.STATUS_EFFECT_POOL, null); - - if (statusEffectPool != null) - { - if (!statusEffectPool.effectExists(IAetherStatusEffects.effectTypes.FRACTURE)) - { - statusEffectPool.applyStatusEffect(IAetherStatusEffects.effectTypes.FRACTURE, 35); - } - else - { - statusEffectPool.modifyActiveEffectBuildup(IAetherStatusEffects.effectTypes.FRACTURE, - statusEffectPool.getBuildupFromEffect(IAetherStatusEffects.effectTypes.FRACTURE) + 35); - } - } - } - } - } - - @Override - public IEntityEyesComponent getEyes() - { - return this.eyes; - } - - @Override - public void knockBack(Entity entityIn, float strength, double xRatio, double zRatio) - { - super.knockBack(entityIn, strength * 0.2f, xRatio, zRatio); - } -} diff --git a/src/main/java/com/gildedgames/aether/common/entities/animals/EntityCarrionSprout.java b/src/main/java/com/gildedgames/aether/common/entities/animals/EntityCarrionSprout.java deleted file mode 100644 index e03cc1f948..0000000000 --- a/src/main/java/com/gildedgames/aether/common/entities/animals/EntityCarrionSprout.java +++ /dev/null @@ -1,225 +0,0 @@ -package com.gildedgames.aether.common.entities.animals; - -import com.gildedgames.aether.api.entity.damage.DamageTypeAttributes; -import com.gildedgames.aether.api.registrar.BlocksAether; -import com.gildedgames.aether.common.init.LootTablesAether; -import com.google.common.collect.Maps; -import net.minecraft.block.state.IBlockState; -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityAgeable; -import net.minecraft.entity.SharedMonsterAttributes; -import net.minecraft.entity.ai.EntityAIWatchClosest; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.network.datasync.DataParameter; -import net.minecraft.network.datasync.DataSerializers; -import net.minecraft.util.ResourceLocation; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.World; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; - -import java.util.Map; - -public class EntityCarrionSprout extends EntityAetherAnimal -{ - protected Map<String, Float> defenseMap = Maps.newHashMap(); - {{ - this.defenseMap.put("Very Weak", 4.0F); - this.defenseMap.put("Weak", 2.0F); - this.defenseMap.put("Average", 0.0F); - this.defenseMap.put("Strong", -2.0F); - this.defenseMap.put("Very Strong", -4.0F); - }} - - private static final DataParameter<Integer> SIZE = new DataParameter<>(13, DataSerializers.VARINT); - - @SideOnly(Side.CLIENT) - public float sinage, prevSinage; - - private int maxSproutSize; - - public EntityCarrionSprout(final World world) - { - super(world); - - this.setSize(0.5F, 1.5F); - - this.spawnableBlock = BlocksAether.aether_grass; - - this.tasks.addTask(0, new EntityAIWatchClosest(this, EntityPlayer.class, 8)); - } - - @Override - public boolean canBeLeashedTo(EntityPlayer player) - { - return false; - } - - @Override - protected void applyEntityAttributes() - { - super.applyEntityAttributes(); - - this.getEntityAttribute(SharedMonsterAttributes.MAX_HEALTH).setBaseValue(8.0D); - - this.getEntityAttribute(DamageTypeAttributes.SLASH_DEFENSE_LEVEL).setBaseValue(0.0f); - this.getEntityAttribute(DamageTypeAttributes.IMPACT_DEFENSE_LEVEL).setBaseValue(0.0f); - this.getEntityAttribute(DamageTypeAttributes.PIERCE_DEFENSE_LEVEL).setBaseValue(0.0f); - - this.setMaxSproutSize(8); - - final int min = 3; - - this.setSproutSize(min + this.rand.nextInt(this.getMaxSproutSize() - min)); - } - - @Override - public void entityInit() - { - super.entityInit(); - - this.dataManager.register(SIZE, 0); - } - - @Override - public NBTTagCompound writeToNBT(final NBTTagCompound nbt) - { - super.writeToNBT(nbt); - - nbt.setInteger("size", this.getSproutSize()); - nbt.setInteger("maxSize", this.getMaxSproutSize()); - - return nbt; - } - - @Override - public void readFromNBT(final NBTTagCompound nbt) - { - super.readFromNBT(nbt); - - this.setSproutSize(nbt.getInteger("size")); - this.setMaxSproutSize(nbt.getInteger("maxSize")); - } - - @Override - public void onUpdate() - { - super.onUpdate(); - - if (this.world.isRemote) - { - this.clientUpdate(); - } - else - { - if (!this.canStayHere(new BlockPos(this))) - { - this.setHealth(0); - } - } - } - - private boolean canStayHere(final BlockPos pos) - { - if (this.world.getBlockState(pos).isFullCube()) - { - return false; - } - - final IBlockState rootBlock = this.world.getBlockState(pos.down()); - - return rootBlock.getBlock() == BlocksAether.aether_grass - || rootBlock.getBlock() == BlocksAether.aether_dirt - || rootBlock.getBlock() == BlocksAether.highlands_snow_layer - || rootBlock.getBlock() == BlocksAether.highlands_snow; - } - - @Override - public void onLivingUpdate() - { - this.motionX = 0.0F; - this.motionZ = 0.0F; - - if (this.ticksExisted == 0) - { - this.setRotation(this.world.rand.nextFloat() * 360F, 0.0F); - this.renderYawOffset = this.rotationYaw; - } - - super.onLivingUpdate(); - - if (!this.isFullyGrown() && this.ticksExisted % 800 == 0) - { - this.setSproutSize(this.getSproutSize() + 2); - } - } - - public boolean isFullyGrown() - { - return (this.getSproutSize() >= this.getMaxSproutSize()); - } - - public int getMaxSproutSize() - { - return this.maxSproutSize; - } - - public void setMaxSproutSize(final int x) - { - this.maxSproutSize = x; - } - - public int getSproutSize() - { - return this.dataManager.get(SIZE); - } - - public void setSproutSize(final int newSize) - { - this.dataManager.set(SIZE, newSize); - } - - @Override - protected ResourceLocation getLootTable() - { - return LootTablesAether.ENTITY_CARRION_SPROUT; - } - - @SideOnly(Side.CLIENT) - public void clientUpdate() - { - this.prevSinage = this.sinage; - - if (this.hurtTime > 0) - { - this.sinage += 0.9F; - } - else - { - this.sinage += 0.15F; - } - - if (this.sinage > 3.141593F * 2F) - { - this.sinage -= (3.141593F * 2F); - this.prevSinage -= (3.141593F * 2F); - } - } - - @Override - public void jump() - { - } // remove jump - - @Override - public void knockBack(final Entity entityIn, final float distance, final double motionX, final double motionY) - { - } // remove player damage knock-back - - @Override - public EntityAgeable createChild(final EntityAgeable ageable) - { - return null; - } -} diff --git a/src/main/java/com/gildedgames/aether/common/entities/animals/EntityGlactrix.java b/src/main/java/com/gildedgames/aether/common/entities/animals/EntityGlactrix.java deleted file mode 100644 index ca1cb28f27..0000000000 --- a/src/main/java/com/gildedgames/aether/common/entities/animals/EntityGlactrix.java +++ /dev/null @@ -1,299 +0,0 @@ -package com.gildedgames.aether.common.entities.animals; - -import com.gildedgames.aether.api.entity.damage.DamageTypeAttributes; -import com.gildedgames.aether.api.entity.effects.IAetherStatusEffects; -import com.gildedgames.aether.api.registrar.BlocksAether; -import com.gildedgames.aether.api.registrar.ItemsAether; -import com.gildedgames.aether.api.registrar.SoundsAether; -import com.gildedgames.aether.common.entities.ai.EntityAIHideFromTarget; -import com.gildedgames.aether.common.entities.ai.EntityAIWanderFavorBlocks; -import com.gildedgames.aether.common.entities.ai.glactrix.GlactrixAIHideFromEntity; -import com.gildedgames.aether.common.init.LootTablesAether; -import com.google.common.collect.Maps; -import com.google.common.collect.Sets; -import net.minecraft.block.Block; -import net.minecraft.entity.EntityAgeable; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.SharedMonsterAttributes; -import net.minecraft.entity.ai.EntityAIWatchClosest; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.init.SoundEvents; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.network.datasync.DataParameter; -import net.minecraft.network.datasync.DataSerializers; -import net.minecraft.network.datasync.EntityDataManager; -import net.minecraft.util.DamageSource; -import net.minecraft.util.ResourceLocation; -import net.minecraft.util.SoundEvent; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.IBlockAccess; -import net.minecraft.world.World; -import net.minecraftforge.common.IShearable; - -import javax.annotation.Nonnull; -import javax.annotation.Nullable; -import java.util.ArrayList; -import java.util.List; -import java.util.Map; -import java.util.Set; - -public class EntityGlactrix extends EntityAetherAnimal implements IShearable -{ - protected Map<String, Float> defenseMap = Maps.newHashMap(); - {{ - this.defenseMap.put("Very Weak", 4.0F); - this.defenseMap.put("Weak", 2.0F); - this.defenseMap.put("Average", 0.0F); - this.defenseMap.put("Strong", -2.0F); - this.defenseMap.put("Very Strong", -4.0F); - }} - - private static final Set<Item> TEMPTATION_ITEMS = Sets.newHashSet(ItemsAether.wyndberry); - - private ArrayList<Block> favoriteBlocks = new ArrayList<>(); - - private EntityAIWanderFavorBlocks wanderAI = new EntityAIWanderFavorBlocks(this, 0.3D, this.favoriteBlocks); - private EntityAIHideFromTarget runeAndHideAI = new EntityAIHideFromTarget(this, EntityPlayer.class, 0.8D); - private GlactrixAIHideFromEntity glactrixHideAI = new GlactrixAIHideFromEntity(this, EntityPlayer.class); - - - private final int wanderAIPriority = 5; - private final int hideAIPriority = 1; - - private boolean isHiding = false; // Pertains specifically to "hiding under shell", not if the mob is hiding in general. - private boolean isToppled = false; - private boolean isSheared = false; // Whether crystals are present. - - private static final DataParameter<Boolean> IS_HIDING = EntityDataManager.createKey(EntityGlactrix.class, DataSerializers.BOOLEAN); - private static final DataParameter<Boolean> IS_TOPPLED = EntityDataManager.createKey(EntityGlactrix.class, DataSerializers.BOOLEAN); - private static final DataParameter<Boolean> IS_SHEARED = EntityDataManager.createKey(EntityGlactrix.class, DataSerializers.BOOLEAN); - - private int timer; - private final int timerLimit = 2400; // 2 minutes - - public EntityGlactrix(World world) - { - super(world); - this.setSize(.65f,.5f); - - this.favoriteBlocks.add(BlocksAether.highlands_packed_ice); - this.favoriteBlocks.add(BlocksAether.highlands_ice); - } - - @Override - protected void entityInit() - { - super.entityInit(); - this.dataManager.register(IS_HIDING, Boolean.FALSE); - this.dataManager.register(IS_TOPPLED, Boolean.FALSE); - this.dataManager.register(IS_SHEARED, Boolean.FALSE); - } - - @Override - protected void initEntityAI() - { - //this.tasks.addTask(this.hideAIPriority, this.glactrixHideAI); - this.tasks.addTask(7, new EntityAIWatchClosest(this, EntityPlayer.class, 6.0F)); - } - - @Override - protected void applyEntityAttributes() - { - super.applyEntityAttributes(); - - this.getEntityAttribute(SharedMonsterAttributes.MOVEMENT_SPEED).setBaseValue(.5D); - this.getEntityAttribute(SharedMonsterAttributes.MAX_HEALTH).setBaseValue(8.0D); - - this.getEntityAttribute(DamageTypeAttributes.SLASH_DEFENSE_LEVEL).setBaseValue(-2.0f); - this.getEntityAttribute(DamageTypeAttributes.IMPACT_DEFENSE_LEVEL).setBaseValue(-2.0f); - this.getEntityAttribute(DamageTypeAttributes.PIERCE_DEFENSE_LEVEL).setBaseValue(2.0f); - } - - public void setHiding(boolean isHiding) - { - this.isHiding = isHiding; - this.dataManager.set(IS_HIDING, isHiding); - } - - public void setToppled(boolean isToppled) - { - this.isToppled = isToppled; - this.dataManager.set(IS_TOPPLED, isToppled); - } - - public void setSheared(boolean isSheared) - { - this.isSheared = isSheared; - this.dataManager.set(IS_SHEARED, isSheared); - } - - @Override - public void onEntityUpdate() - { - super.onEntityUpdate(); - - - // only allow hiding when ice crystal's are present. - if (!this.getIsSheared()) - { - if (this.getIsHiding()) - { - this.setEntityInvulnerable(true); - this.tasks.removeTask(this.wanderAI); - } - else - { - this.setEntityInvulnerable(false); - - this.tasks.addTask(this.wanderAIPriority, this.wanderAI); - - // apply status effect on injury. - if (this.hurtTime > 0) - { - IAetherStatusEffects.applyStatusEffect(this, IAetherStatusEffects.effectTypes.STUN, 100); - this.setToppled(true); - } - } - } - - if (this.getIsToppled()) - { - this.setHiding(false); - } - - // check for buildup instead of if the effect is applied, this is because it may take a few frames for an effect to apply, - // due to potential buildups. - if (!IAetherStatusEffects.doesEffectHaveBuildup(this, IAetherStatusEffects.effectTypes.STUN)) - { - this.setToppled(false); - } - - if (this.getIsSheared()) - { - ++this.timer; - - if (this.timer > this.timerLimit && !this.world.isDaytime()) - { - this.setSheared(false); - this.timer = 0; - } - - this.tasks.addTask(this.hideAIPriority, this.runeAndHideAI); - this.tasks.removeTask(this.glactrixHideAI); - } - else - { - this.tasks.removeTask(this.runeAndHideAI); - this.tasks.addTask(this.hideAIPriority, this.glactrixHideAI); - } - } - - public boolean getIsToppled() - { - return this.dataManager.get(IS_TOPPLED); - } - - public boolean getIsHiding() - { - return this.dataManager.get(IS_HIDING); - } - - public boolean getIsSheared() - { - return this.dataManager.get(IS_SHEARED); - } - - @Override - public void onLivingUpdate() - { - super.onLivingUpdate(); - } - - @Nullable - @Override - public EntityAgeable createChild(EntityAgeable ageable) - { - return new EntityGlactrix(this.world); - } - - @Override - public void setAttackTarget(@Nullable final EntityLivingBase entitylivingbaseIn) - { - super.setAttackTarget(entitylivingbaseIn); - } - - @Override - public boolean isBreedingItem(@Nullable final ItemStack stack) - { - return stack != null && TEMPTATION_ITEMS.contains(stack.getItem()); - } - - @Override - protected SoundEvent getAmbientSound() - { - return SoundsAether.aerbunny_ambient; - } - - @Override - protected SoundEvent getHurtSound(final DamageSource src) - { - return SoundsAether.aerbunny_hurt; - } - - @Override - protected SoundEvent getDeathSound() - { - return SoundsAether.aerbunny_death; - } - - @Override - protected ResourceLocation getLootTable() - { - return LootTablesAether.ENTITY_GLACTRIX; - } - - @Override - public boolean isShearable(@Nonnull ItemStack item, IBlockAccess world, BlockPos pos) - { - return !(this.getIsSheared()) && this.getIsToppled(); - } - - @Nonnull - @Override - public List<ItemStack> onSheared(@Nonnull ItemStack item, IBlockAccess world, BlockPos pos, int fortune) - { - this.setSheared(true); - this.setToppled(false); - this.timer = 0; - - int count = 2 + this.rand.nextInt(3); - List<ItemStack> ret = new ArrayList<>(); - - for (int i = 0; i < count; i++) - { - ret.add(new ItemStack(ItemsAether.icestone)); - } - - this.playSound(SoundEvents.ENTITY_SHEEP_SHEAR, 1.0F, 1.0F); - - return ret; - } - - @Override - public void writeEntityToNBT(NBTTagCompound compound) - { - super.writeEntityToNBT(compound); - compound.setInteger("glactrix_refreeze", this.timer); - compound.setBoolean("glactrix_sheared", this.getIsSheared()); - } - - @Override - public void readEntityFromNBT(NBTTagCompound compound) - { - super.readEntityFromNBT(compound); - this.timer = compound.getInteger("glactrix_refreeze"); - this.setSheared(compound.getBoolean("glactrix_sheared")); - } -} diff --git a/src/main/java/com/gildedgames/aether/common/entities/animals/EntityGlitterwing.java b/src/main/java/com/gildedgames/aether/common/entities/animals/EntityGlitterwing.java deleted file mode 100644 index b70f26acc5..0000000000 --- a/src/main/java/com/gildedgames/aether/common/entities/animals/EntityGlitterwing.java +++ /dev/null @@ -1,41 +0,0 @@ -package com.gildedgames.aether.common.entities.animals; - -import com.gildedgames.aether.api.entity.damage.DamageTypeAttributes; -import com.gildedgames.aether.common.entities.flying.EntityFlying; -import com.google.common.collect.Maps; -import net.minecraft.entity.SharedMonsterAttributes; -import net.minecraft.world.World; - -import java.util.Map; - -public class EntityGlitterwing extends EntityFlying -{ - protected Map<String, Float> defenseMap = Maps.newHashMap(); - {{ - this.defenseMap.put("Very Weak", 4.0F); - this.defenseMap.put("Weak", 2.0F); - this.defenseMap.put("Average", 0.0F); - this.defenseMap.put("Strong", -2.0F); - this.defenseMap.put("Very Strong", -4.0F); - }} - - public EntityGlitterwing(World world) - { - super(world); - - this.setSize(0.3F, 0.3F); - } - - @Override - protected void applyEntityAttributes() - { - super.applyEntityAttributes(); - - this.getEntityAttribute(SharedMonsterAttributes.MAX_HEALTH).setBaseValue(1.0D); - - this.getEntityAttribute(DamageTypeAttributes.SLASH_DEFENSE_LEVEL).setBaseValue(0); - this.getEntityAttribute(DamageTypeAttributes.IMPACT_DEFENSE_LEVEL).setBaseValue(0); - this.getEntityAttribute(DamageTypeAttributes.PIERCE_DEFENSE_LEVEL).setBaseValue(0); - } - -} diff --git a/src/main/java/com/gildedgames/aether/common/entities/animals/EntityKirrid.java b/src/main/java/com/gildedgames/aether/common/entities/animals/EntityKirrid.java deleted file mode 100644 index 4cc6682b91..0000000000 --- a/src/main/java/com/gildedgames/aether/common/entities/animals/EntityKirrid.java +++ /dev/null @@ -1,350 +0,0 @@ -package com.gildedgames.aether.common.entities.animals; - -import com.gildedgames.aether.api.entity.IEntityEyesComponent; -import com.gildedgames.aether.api.entity.damage.DamageTypeAttributes; -import com.gildedgames.aether.api.entity.damage.IDefenseLevelsHolder; -import com.gildedgames.aether.api.registrar.BlocksAether; -import com.gildedgames.aether.api.registrar.ItemsAether; -import com.gildedgames.aether.api.registrar.SoundsAether; -import com.gildedgames.aether.common.entities.ai.AetherNavigateGround; -import com.gildedgames.aether.common.entities.ai.EntityAIHideFromRain; -import com.gildedgames.aether.common.entities.ai.EntityAIRestrictRain; -import com.gildedgames.aether.common.entities.ai.EntityAIUnstuckBlueAercloud; -import com.gildedgames.aether.common.entities.ai.kirrid.EntityAIEatAetherGrass; -import com.gildedgames.aether.common.entities.multipart.AetherMultiPartEntity; -import com.gildedgames.aether.common.entities.multipart.AetherMultiPartShearable; -import com.gildedgames.aether.common.entities.util.eyes.EntityEyesComponent; -import com.gildedgames.aether.common.entities.util.eyes.IEntityEyesComponentProvider; -import com.gildedgames.aether.common.init.LootTablesAether; -import com.gildedgames.aether.common.util.helpers.MathUtil; -import com.google.common.collect.Maps; -import com.google.common.collect.Sets; -import net.minecraft.entity.*; -import net.minecraft.entity.ai.EntityAITempt; -import net.minecraft.entity.passive.EntitySheep; -import net.minecraft.init.SoundEvents; -import net.minecraft.item.EnumDyeColor; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.pathfinding.PathNavigate; -import net.minecraft.util.DamageSource; -import net.minecraft.util.ResourceLocation; -import net.minecraft.util.SoundEvent; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.MathHelper; -import net.minecraft.world.DifficultyInstance; -import net.minecraft.world.IBlockAccess; -import net.minecraft.world.World; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; - -import javax.annotation.Nullable; -import javax.vecmath.Point3d; -import java.util.ArrayList; -import java.util.List; -import java.util.Map; -import java.util.Set; - -public class EntityKirrid extends EntitySheep implements IEntityMultiPart, IEntityEyesComponentProvider, IDefenseLevelsHolder -{ - protected Map<String, Float> defenseMap = Maps.newHashMap(); - - { - { - this.defenseMap.put("Very Weak", 4.0F); - this.defenseMap.put("Weak", 2.0F); - this.defenseMap.put("Average", 0.0F); - this.defenseMap.put("Strong", -2.0F); - this.defenseMap.put("Very Strong", -4.0F); - } - } - - private static final Set<Item> TEMPTATION_ITEMS = Sets.newHashSet(ItemsAether.valkyrie_wings); - - private final Point3d[] old; - - private final AetherMultiPartEntity[] parts; - - private final AetherMultiPartEntity head = new AetherMultiPartShearable(this, "head", 0.7F, 0.8F); - - private final AetherMultiPartEntity back = new AetherMultiPartShearable(this, "back", 0.8F, 1.5F); - - private final IEntityEyesComponent eyes = new EntityEyesComponent(this); - - protected EntityAIEatAetherGrass entityAIEatGrass; - - private int kirridTimer; - - public EntityKirrid(World world) - { - super(world); - - this.setSize(1.0F, 1.5F); - - this.spawnableBlock = BlocksAether.aether_grass; - this.parts = new AetherMultiPartEntity[] { this.head, this.back }; - this.old = new Point3d[this.parts.length]; - - for (int i = 0; i < this.old.length; i++) - { - this.old[i] = new Point3d(); - } - } - - @Override - protected void initEntityAI() - { - super.initEntityAI(); - - this.entityAIEatGrass = new EntityAIEatAetherGrass(this, this.getEatChance()); - - this.tasks.addTask(2, new EntityAIRestrictRain(this)); - this.tasks.addTask(3, new EntityAIUnstuckBlueAercloud(this)); - this.tasks.addTask(3, new EntityAIHideFromRain(this, 1.3D)); - this.tasks.addTask(3, new EntityAITempt(this, 1.2D, false, TEMPTATION_ITEMS)); - this.tasks.addTask(9, this.entityAIEatGrass); - } - - @Override - protected void updateAITasks() - { - this.kirridTimer = this.entityAIEatGrass.getTimer(); - super.updateAITasks(); - } - - @Override - public World getWorld() - { - return this.getEntityWorld(); - } - - @Override - public void onLivingUpdate() - { - if (this.world.isRemote) - { - this.kirridTimer = Math.max(0, this.kirridTimer - 1); - } - - if (this.isChild()) - { - this.head.updateSize(0.35F, 0.4F); - this.back.updateSize(0.4F, 0.75F); - } - - super.onLivingUpdate(); - - this.eyes.update(); - - for (int i = 0; i < this.parts.length; i++) - { - this.old[i].set(this.parts[i].posX, this.parts[i].posY, this.parts[i].posZ); - } - - float f = MathUtil.interpolateRotation(this.prevRenderYawOffset, this.renderYawOffset, 1); - float f1 = MathHelper.cos(-f * 0.017453292F - (float) Math.PI); - float f2 = MathHelper.sin(-f * 0.017453292F - (float) Math.PI); - - float headOffset = !this.isChild() ? .9f : .15f; - float headHeight = !this.isChild() ? .75f : .5f; - float backOffset = !this.isChild() ? .8f : .4f; - - this.head.setLocationAndAngles(this.posX - f2 * headOffset, this.posY + headHeight, this.posZ - f1 * headOffset, 0F, 0F); - this.head.onUpdate(); - this.back.setLocationAndAngles(this.posX + f2 * backOffset, this.posY, this.posZ + f1 * backOffset, 0F, 0F); - this.back.onUpdate(); - - for (int i = 0; i < this.parts.length; i++) - { - this.parts[i].prevPosX = this.old[i].getX(); - this.parts[i].prevPosY = this.old[i].getY(); - this.parts[i].prevPosZ = this.old[i].getZ(); - } - } - - public int getEatChance() - { - return 1000; - } - - @Override - public boolean attackEntityFromPart(MultiPartEntityPart part, DamageSource source, float damage) - { - if (this.hurtResistantTime <= 10) - { - return this.attackEntityFrom(source, damage * 1.1f); - } - else - { - return false; - } - } - - @Nullable - @Override - public MultiPartEntityPart[] getParts() - { - return this.parts; - } - - @Override - protected PathNavigate createNavigator(final World worldIn) - { - return new AetherNavigateGround(this, worldIn); - } - - @Override - public float getBlockPathWeight(BlockPos pos) - { - return super.getBlockPathWeight(pos); - } - - @Override - protected void applyEntityAttributes() - { - super.applyEntityAttributes(); - - this.getEntityAttribute(SharedMonsterAttributes.MAX_HEALTH).setBaseValue(15.0D); - - this.getEntityAttribute(DamageTypeAttributes.SLASH_DEFENSE_LEVEL).setBaseValue(0.0f); - this.getEntityAttribute(DamageTypeAttributes.IMPACT_DEFENSE_LEVEL).setBaseValue(-2.0f); - this.getEntityAttribute(DamageTypeAttributes.PIERCE_DEFENSE_LEVEL).setBaseValue(2.0f); - } - - @Override - @Nullable - public IEntityLivingData onInitialSpawn(DifficultyInstance difficulty, @Nullable IEntityLivingData livingdata) - { - livingdata = super.onInitialSpawn(difficulty, livingdata); - - this.setFleeceColor(EnumDyeColor.WHITE); - - return livingdata; - } - - /*@Override - protected float getSoundPitch() - { - return (this.rand.nextFloat() - this.rand.nextFloat()) * 0.2F + 0.55F; - }*/ - - @Override - protected float getSoundPitch() - { - return this.isChild() ? (this.rand.nextFloat() - this.rand.nextFloat()) * 0.2F + 1F : (this.rand.nextFloat() - this.rand.nextFloat()) * 0.2F + 0.55F; - } - - @Override - protected SoundEvent getAmbientSound() - { - return SoundsAether.kirrid_ambient; - } - - @Override - protected SoundEvent getHurtSound(DamageSource source) - { - return SoundsAether.kirrid_hurt; - } - - @Override - protected SoundEvent getDeathSound() - { - return SoundsAether.kirrid_death; - } - - @Override - public EntityKirrid createChild(EntityAgeable ageable) - { - return new EntityKirrid(this.world); - } - - @Override - public boolean isBreedingItem(@Nullable ItemStack stack) - { - return stack != null && TEMPTATION_ITEMS.contains(stack.getItem()); - } - - @Override - @Nullable - protected ResourceLocation getLootTable() - { - if (this.getSheared()) - { - return LootTablesAether.ENTITY_KIRRID_SHEARED; - } - - return LootTablesAether.ENTITY_KIRRID; - } - - @Override - @SideOnly(Side.CLIENT) - public void handleStatusUpdate(byte id) - { - if (id == 10) - { - this.kirridTimer = 40; - } - else - { - super.handleStatusUpdate(id); - } - } - - @Override - public List<ItemStack> onSheared(ItemStack item, IBlockAccess world, BlockPos pos, int fortune) - { - this.setSheared(true); - - int count = 1 + this.rand.nextInt(3); - - List<ItemStack> ret = new ArrayList<>(); - - for (int i = 0; i < count; i++) - { - ret.add(new ItemStack(BlocksAether.cloudwool_block)); - } - - this.playSound(SoundEvents.ENTITY_SHEEP_SHEAR, 1.0F, 1.0F); - - return ret; - } - - @Override - @SideOnly(Side.CLIENT) - public float getHeadRotationPointY(float p_70894_1_) - { - if (this.kirridTimer <= 0) - { - return 0.0F; - } - else if (this.kirridTimer >= 4 && this.kirridTimer <= 36) - { - return 1.0F; - } - else - { - return this.kirridTimer < 4 ? ((float) this.kirridTimer - p_70894_1_) / 4.0F : -((float) (this.kirridTimer - 40) - p_70894_1_) / 4.0F; - } - } - - @Override - @SideOnly(Side.CLIENT) - public float getHeadRotationAngleX(float p_70890_1_) - { - if (this.kirridTimer > 4 && this.kirridTimer <= 36) - { - float f = ((float) (this.kirridTimer - 4) - p_70890_1_) / 32.0F; - return ((float) Math.PI / 5F) + ((float) Math.PI * 7F / 100F) * MathHelper.sin(f * 28.7F); - } - else - { - return this.kirridTimer > 0 ? ((float) Math.PI / 5F) : this.rotationPitch * 0.017453292F; - } - } - - @Override - public IEntityEyesComponent getEyes() - { - return this.eyes; - } -} diff --git a/src/main/java/com/gildedgames/aether/common/entities/animals/EntityMoa.java b/src/main/java/com/gildedgames/aether/common/entities/animals/EntityMoa.java deleted file mode 100644 index cee003dac5..0000000000 --- a/src/main/java/com/gildedgames/aether/common/entities/animals/EntityMoa.java +++ /dev/null @@ -1,922 +0,0 @@ -package com.gildedgames.aether.common.entities.animals; - -import com.gildedgames.aether.api.entity.IEntityEyesComponent; -import com.gildedgames.aether.api.entity.IMount; -import com.gildedgames.aether.api.entity.IMountProcessor; -import com.gildedgames.aether.api.entity.damage.DamageTypeAttributes; -import com.gildedgames.aether.api.registrar.ItemsAether; -import com.gildedgames.aether.api.registrar.SoundsAether; -import com.gildedgames.aether.common.entities.ai.AetherNavigateGround; -import com.gildedgames.aether.common.entities.ai.EntityAIUnstuckBlueAercloud; -import com.gildedgames.aether.common.entities.ai.moa.*; -import com.gildedgames.aether.common.entities.genes.AnimalGender; -import com.gildedgames.aether.common.entities.genes.EntityGeneStorage; -import com.gildedgames.aether.common.entities.genes.EntityGeneticAnimal; -import com.gildedgames.aether.common.entities.genes.GeneUtil; -import com.gildedgames.aether.common.entities.genes.moa.MoaGenePool; -import com.gildedgames.aether.common.entities.genes.moa.MoaNest; -import com.gildedgames.aether.common.entities.mounts.FlyingMount; -import com.gildedgames.aether.common.entities.mounts.IFlyingMountData; -import com.gildedgames.aether.common.entities.multipart.AetherMultiPartEntity; -import com.gildedgames.aether.common.entities.multipart.AetherMultiPartMount; -import com.gildedgames.aether.common.entities.util.eyes.EntityEyesComponent; -import com.gildedgames.aether.common.entities.util.eyes.IEntityEyesComponentProvider; -import com.gildedgames.aether.common.entities.util.groups.EntityGroup; -import com.gildedgames.aether.common.entities.util.groups.EntityGroupMember; -import com.gildedgames.aether.common.items.other.ItemMoaEgg; -import com.gildedgames.aether.common.items.other.ItemMoaFeather; -import com.gildedgames.aether.common.items.other.ItemMoaFeed; -import com.gildedgames.aether.common.util.helpers.MathUtil; -import com.gildedgames.orbis.lib.client.PartialTicks; -import com.google.common.collect.Maps; -import com.google.common.collect.Sets; -import net.minecraft.block.Block; -import net.minecraft.entity.*; -import net.minecraft.entity.ai.*; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.init.Items; -import net.minecraft.init.SoundEvents; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.network.datasync.DataParameter; -import net.minecraft.network.datasync.DataSerializers; -import net.minecraft.network.datasync.EntityDataManager; -import net.minecraft.pathfinding.PathNavigate; -import net.minecraft.util.DamageSource; -import net.minecraft.util.EnumHand; -import net.minecraft.util.SoundCategory; -import net.minecraft.util.SoundEvent; -import net.minecraft.util.math.MathHelper; -import net.minecraft.util.math.RayTraceResult; -import net.minecraft.world.World; - -import javax.annotation.Nullable; -import javax.vecmath.Point3d; -import java.util.Map; -import java.util.Set; - -public class EntityMoa extends EntityGeneticAnimal<MoaGenePool> - implements EntityGroupMember, IMount, IFlyingMountData, IEntityMultiPart, IEntityEyesComponentProvider -{ - protected Map<String, Float> defenseMap = Maps.newHashMap(); - {{ - this.defenseMap.put("Very Weak", 4.0F); - this.defenseMap.put("Weak", 2.0F); - this.defenseMap.put("Average", 0.0F); - this.defenseMap.put("Strong", -2.0F); - this.defenseMap.put("Very Strong", -4.0F); - }} - - private static final Set<Item> TEMPTATION_ITEMS = Sets - .newHashSet(ItemsAether.blueberries, ItemsAether.skyroot_lizard_stick); - - private static final DataParameter<Integer> REMAINING_JUMPS = EntityDataManager.createKey(EntityMoa.class, DataSerializers.VARINT); - - private static final DataParameter<Boolean> EGG_STOLEN = EntityDataManager.createKey(EntityMoa.class, DataSerializers.BOOLEAN); - - private static final DataParameter<Boolean> RAISED_BY_PLAYER = EntityDataManager.createKey(EntityMoa.class, DataSerializers.BOOLEAN); - - private static final DataParameter<Boolean> GENDER = EntityDataManager.createKey(EntityMoa.class, DataSerializers.BOOLEAN); - - private static final DataParameter<Boolean> SADDLED = EntityDataManager.createKey(EntityMoa.class, DataSerializers.BOOLEAN); - - private static final DataParameter<Float> AIRBORNE_TIME = EntityDataManager.createKey(EntityMoa.class, DataSerializers.FLOAT); - - private static final DataParameter<Integer> FOOD_REQUIRED = EntityDataManager.createKey(EntityMoa.class, DataSerializers.VARINT); - - private static final DataParameter<Integer> FOOD_EATEN = EntityDataManager.createKey(EntityMoa.class, DataSerializers.VARINT); - - private static final DataParameter<Boolean> IS_HUNGRY = EntityDataManager.createKey(EntityMoa.class, DataSerializers.BOOLEAN); - - private final IMountProcessor mountProcessor = new FlyingMount(this); - - private final MultiPartEntityPart[] parts; - - private final Point3d[] old; - - private final AetherMultiPartEntity neck = new AetherMultiPartMount(this, "neck", 0.4F, 0.8F); - - private final AetherMultiPartEntity head = new AetherMultiPartMount(this, "head", 0.8F, 0.6F); - - private final AetherMultiPartEntity beak = new AetherMultiPartMount(this, "beak", 0.4F, 0.5F); - - private final AetherMultiPartEntity body = new AetherMultiPartMount(this, "body", 1.1F, 1.325F); - - private final AetherMultiPartEntity tail = new AetherMultiPartMount(this, "tail", 1.1F, 0.6F); - - private final IEntityEyesComponent eyes = new EntityEyesComponent(this); - - public float wingRotation, destPos, prevDestPos, prevWingRotation; - - public int ticksUntilFlap; - - private int hungryTimer, dropFeatherTimer; - - private int timeUntilDropFeather; - - private float ageSinceOffGround; - - private boolean wasOnGround = true, isFastFalling = false; - - private EntityGroup pack; - - private MoaNest familyNest; - - public EntityMoa(final World world) - { - super(world); - - this.initAI(); - - this.familyNest = new MoaNest(world); - - this.setSize(1.0F, 2.0F); - this.stepHeight = 1.0F; - this.parts = new MultiPartEntityPart[] { this.head, this.neck, this.beak, this.body, this.tail }; - this.old = new Point3d[this.parts.length]; - - for (int i = 0; i < this.old.length; i++) - { - this.old[i] = new Point3d(); - } - } - - public EntityMoa(final World world, final int geneticSeed) - { - this(world); - - this.getGenePool().transformFromSeed(geneticSeed); - } - - public EntityMoa(final World world, final MoaNest familyNest) - { - this(world, familyNest.familyGeneticSeed); - - this.familyNest = familyNest; - this.initAI(); - } - - public EntityMoa(final World world, final MoaNest familyNest, final int fatherSeed, final int motherSeed) - { - this(world, familyNest); - - if (fatherSeed == motherSeed) - { - this.getGenePool().transformFromSeed(fatherSeed); - } - else - { - this.getGenePool().transformFromParents(GeneUtil.getRandomSeed(world), fatherSeed, motherSeed); - } - } - - public float getAgeSinceOffGround() - { - return this.ageSinceOffGround; - } - - @Override - protected PathNavigate createNavigator(final World worldIn) - { - return new AetherNavigateGround(this, worldIn); - } - - private void initAI() - { - this.tasks.addTask(0, new EntityAISwimming(this)); - this.tasks.addTask(0, new AIMoaPackBreeding(this, 0.25F)); - this.tasks.addTask(1, new AIPanicPack(this, 0.55F)); - this.tasks.addTask(3, new EntityAIUnstuckBlueAercloud(this)); - this.tasks.addTask(3, new EntityAIWander(this, 0.50F)); - this.tasks.addTask(4, new EntityAIWatchClosest(this, EntityPlayer.class, 6.0F)); - this.tasks.addTask(5, new EntityAILookIdle(this)); - this.tasks.addTask(8, new AIAnimalPack(this, 0.55F)); - this.tasks.addTask(12, new AIAvoidEntityAsChild(this, EntityPlayer.class, 5.0F, 0.3D, 0.3D)); - this.tasks.addTask(14, new EntityAIAttackMelee(this, 0.7D, true)); - this.tasks.addTask(15, new AIStayNearNest(this, 8, 0.55F)); - this.tasks.addTask(16, new EntityAITempt(this, 1.2D, false, TEMPTATION_ITEMS)); - - this.targetTasks.addTask(1, new AIProtectPack(this)); - } - - @Override - public MoaGenePool createNewGenePool() - { - return new MoaGenePool(new EntityGeneStorage(this)); - } - - @Override - protected void applyEntityAttributes() - { - super.applyEntityAttributes(); - - this.getEntityAttribute(SharedMonsterAttributes.MOVEMENT_SPEED).setBaseValue(0.4D); - this.getEntityAttribute(SharedMonsterAttributes.MAX_HEALTH).setBaseValue(30.0D); - - this.getEntityAttribute(DamageTypeAttributes.SLASH_DEFENSE_LEVEL).setBaseValue(0.0f); - this.getEntityAttribute(DamageTypeAttributes.IMPACT_DEFENSE_LEVEL).setBaseValue(2.0f); - this.getEntityAttribute(DamageTypeAttributes.PIERCE_DEFENSE_LEVEL).setBaseValue(-2.0f); - } - - @Override - public void entityInit() - { - super.entityInit(); - - this.dataManager.register(EntityMoa.REMAINING_JUMPS, 0); - this.dataManager.register(EntityMoa.EGG_STOLEN, Boolean.FALSE); - this.dataManager.register(EntityMoa.RAISED_BY_PLAYER, Boolean.FALSE); - this.dataManager.register(EntityMoa.GENDER, Boolean.FALSE); - this.dataManager.register(EntityMoa.SADDLED, false); - this.dataManager.register(EntityMoa.AIRBORNE_TIME, this.maxAirborneTime()); - this.dataManager.register(EntityMoa.FOOD_REQUIRED, 0); - this.dataManager.register(EntityMoa.FOOD_EATEN, 0); - this.dataManager.register(EntityMoa.IS_HUNGRY, false); - } - - @Override - public boolean processInteract(final EntityPlayer player, final EnumHand hand) - { - if (!this.isRaisedByPlayer()) - { - return false; - } - - final ItemStack stack = player.getHeldItem(hand); - - if (stack.getItem() instanceof ItemMoaFeed) - { - ItemMoaFeed moaFeed = (ItemMoaFeed) stack.getItem(); - - float healAmount = (float) moaFeed.getHealingAmount(); - - if (healAmount != 0) - { - if (this.getHealth() < this.getMaxHealth()) - { - this.heal(healAmount); - - if (!player.capabilities.isCreativeMode) - { - stack.shrink(1); - } - } - } - } - - if (this.isChild()) - { - if (this.isHungry() && (stack.getItem() == ItemsAether.aechor_petal || stack.getItem() == ItemsAether.skyroot_lizard_stick)) - { - this.setIsHungry(false); - this.setHealth(this.getMaxHealth()); - - this.setFoodEaten(this.getFoodEaten() + 1); - - if (!player.capabilities.isCreativeMode) - { - stack.shrink(1); - } - - return true; - } - } - else - { - if (!this.isSaddled() && stack.getItem() == ItemsAether.aether_saddle) - { - this.setIsSaddled(true); - - this.world.playSound(player, this.posX, this.posY, this.posZ, SoundEvents.ENTITY_PIG_SADDLE, SoundCategory.NEUTRAL, 0.5F, 1.0F); - - if (!player.capabilities.isCreativeMode) - { - stack.shrink(1); - } - - return true; - } - else return super.processInteract(player, hand); - } - - return false; - } - - @Override - public void onUpdate() - { - super.onUpdate(); - - this.eyes.update(); - - if (this.isJumping) - { - this.motionY += 0.05F; - } - - if (this.pack == null) - { - this.pack = this.familyNest.getAnimalPack(); - } - - this.updateWingRotation(); - - this.fallSlowly(); - - if (!this.world.isRemote) - { - //TODO: When the Moa system is implemented, there should be a check to stop active/tamed Moas from dropping feathers based on it. - this.dropFeatherTimer++; - - if (this.timeUntilDropFeather == 0) - { - this.timeUntilDropFeather = (120 + this.getRNG().nextInt(80)) * 20; - } - - if (this.dropFeatherTimer >= this.timeUntilDropFeather) - { - this.timeUntilDropFeather = 0; - - final ItemStack feather = new ItemStack(ItemsAether.moa_feather); - ItemMoaFeather.setColor(feather, this.getGenePool().getFeathers().gene().unlocalizedName(), this.getGenePool().getFeathers().gene().data().getRGB()); - - Block.spawnAsEntity(this.world, this.getPosition(), feather); - this.dropFeatherTimer = 0; - } - - if (this.isChild() && this.isRaisedByPlayer()) - { - if (this.getFoodEaten() >= this.getFoodRequired()) - { - this.setGrowingAge(-1); - } - - this.hungryTimer++; - - if (this.isHungry()) - { - if (this.hungryTimer > 2400) - { - if (this.hungryTimer % 200 == 0) - { - this.attackEntityFrom(DamageSource.STARVE, 1.0F); - } - } - } - else - { - if (this.hungryTimer > 2400) - { - this.setIsHungry(true); - } - } - } - } - } - - private void fallSlowly() - { - this.fallDistance = 0; - - final boolean riderSneaking = - !this.getPassengers().isEmpty() && this.getPassengers().get(0) != null && this.getPassengers().get(0).isSneaking(); - - if (!this.onGround) - { - if (riderSneaking) - { - this.isFastFalling = true; - } - else if (this.motionY < 0.0D) - { - this.motionY *= 0.63749999999999996D; - } - } - - if (!riderSneaking) - { - this.isFastFalling = false; - } - } - - @Override - public boolean isFastFalling() - { - return this.isFastFalling; - } - - public void updateWingRotation() - { - if (!this.onGround) - { - if (this.wasOnGround) - { - this.ageSinceOffGround = (float) this.ticksExisted + PartialTicks.get(); - this.wasOnGround = false; - } - - if (this.ticksUntilFlap == 0) - { - this.world.playSound(this.posX, this.posY, this.posZ, SoundsAether.generic_wing_flap, SoundCategory.NEUTRAL, 0.4f, - 0.8f + (this.getRNG().nextFloat() * 0.6f), false); - - this.ticksUntilFlap = 11; - } - else - { - this.ticksUntilFlap--; - } - } - else if (this.world.isRemote) - { - if (!this.wasOnGround) - { - this.ageSinceOffGround = (float) this.ticksExisted + PartialTicks.get(); - this.wasOnGround = true; - } - } - - this.prevWingRotation = this.wingRotation; - this.prevDestPos = this.destPos; - - this.destPos += 0.2D; - this.destPos = Math.min(1.0F, Math.max(0.01F, this.destPos)); - - if (this.onGround) - { - this.destPos = 0.0F; - } - - this.wingRotation += 0.533F; - } - - @Override - public boolean attackEntityAsMob(final Entity entity) - { - if (entity instanceof EntityPlayer) - { - final EntityPlayer player = (EntityPlayer) entity; - - if (player.capabilities.isCreativeMode) - { - return super.attackEntityAsMob(entity); - } - } - - entity.motionY = 0.8F; - entity.motionZ = this.getLookVec().z; - entity.motionX = this.getLookVec().x; - entity.velocityChanged = true; - - entity.attackEntityFrom(DamageSource.causeMobDamage(this), this.isGroupLeader() ? 3 : 2); - - return super.attackEntityAsMob(entity); - } - - @Override - public void writeEntityToNBT(final NBTTagCompound nbt) - { - super.writeEntityToNBT(nbt); - - nbt.setBoolean("playerGrown", this.isRaisedByPlayer()); - - if (this.getGender() != null) - { - nbt.setString("creatureGender", this.getGender().name()); - } - - nbt.setInteger("remainingJumps", this.getRemainingJumps()); - - this.familyNest.writeToNBT(nbt); - - nbt.setBoolean("isSaddled", this.isSaddled()); - nbt.setBoolean("isHungry", this.isHungry()); - nbt.setInteger("foodRequired", this.getFoodRequired()); - nbt.setInteger("foodEaten", this.getFoodEaten()); - - nbt.setInteger("hungryTimer", this.hungryTimer); - nbt.setInteger("dropFeatherTimer", this.dropFeatherTimer); - - nbt.setInteger("timeUntilDropFeather", this.timeUntilDropFeather); - } - - @Override - public void readEntityFromNBT(final NBTTagCompound nbt) - { - super.readEntityFromNBT(nbt); - - this.setRaisedByPlayer(nbt.getBoolean("playerGrown")); - - if (nbt.hasKey("creatureGender")) - { - this.setGender(AnimalGender.get(nbt.getString("creatureGender"))); - } - - this.setRemainingJumps(nbt.getInteger("remainingJumps")); - - this.familyNest.readFromNBT(nbt); - - this.setIsSaddled(nbt.getBoolean("isSaddled")); - this.setIsHungry(nbt.getBoolean("isHungry")); - this.setFoodRequired(nbt.getInteger("foodRequired")); - this.setFoodEaten(nbt.getInteger("foodEaten")); - - this.hungryTimer = nbt.getInteger("hungryTimer"); - this.dropFeatherTimer = nbt.getInteger("dropFeatherTimer"); - - this.timeUntilDropFeather = nbt.getInteger("timeUntilDropFeather"); - } - - @Override - protected void dropFewItems(final boolean p_70628_1_, final int looting) - { - super.dropFewItems(p_70628_1_, looting); - - final ItemStack feather = new ItemStack(ItemsAether.moa_feather, this.getRNG().nextInt(3)); - ItemMoaFeather.setColor(feather, this.getGenePool().getFeathers().gene().unlocalizedName(), this.getGenePool().getFeathers().gene().data().getRGB()); - - Block.spawnAsEntity(this.world, this.getPosition(), feather); - - if (this.isSaddled()) - { - this.dropItem(ItemsAether.aether_saddle, 1); - } - } - - @Override - public boolean isGroupLeader() - { - return this.getGender() == AnimalGender.MALE; - } - - @Override - public EntityGroup getGroup() - { - return this.familyNest != null ? this.familyNest.getAnimalPack() : null; - } - - @Override - public boolean isProtective() - { - return this.isGroupLeader() || this.hasEggBeenStolen(); - } - - public boolean hasEggBeenStolen() - { - return this.dataManager.get(EntityMoa.EGG_STOLEN); - } - - public void setEggStolen(final boolean flag) - { - this.dataManager.set(EntityMoa.EGG_STOLEN, flag); - } - - public boolean isRaisedByPlayer() - { - return this.dataManager.get(EntityMoa.RAISED_BY_PLAYER); - } - - public void setRaisedByPlayer(final boolean flag) - { - this.dataManager.set(EntityMoa.RAISED_BY_PLAYER, flag); - } - - public AnimalGender getGender() - { - return this.dataManager.get(EntityMoa.GENDER) ? AnimalGender.MALE : AnimalGender.FEMALE; - } - - public void setGender(final AnimalGender gender) - { - this.dataManager.set(EntityMoa.GENDER, gender == AnimalGender.MALE); - this.updateMultiPart(); - } - - public int getRemainingJumps() - { - return this.dataManager.get(EntityMoa.REMAINING_JUMPS); - } - - private void setRemainingJumps(final int jumps) - { - this.dataManager.set(EntityMoa.REMAINING_JUMPS, jumps); - } - - public int getFoodEaten() - { - return this.dataManager.get(EntityMoa.FOOD_EATEN); - } - - public void setFoodEaten(final int foodEaten) - { - this.dataManager.set(EntityMoa.FOOD_EATEN, foodEaten); - } - - public int getFoodRequired() - { - return this.dataManager.get(EntityMoa.FOOD_REQUIRED); - } - - public void setFoodRequired(final int foodRequired) - { - this.dataManager.set(EntityMoa.FOOD_REQUIRED, foodRequired); - } - - public boolean isHungry() - { - return this.dataManager.get(EntityMoa.IS_HUNGRY); - } - - public void setIsHungry(final boolean flag) - { - if (this.dataManager.get(EntityMoa.IS_HUNGRY) != flag) - { - this.hungryTimer = 0; - } - - this.dataManager.set(EntityMoa.IS_HUNGRY, flag); - } - - public MoaNest getFamilyNest() - { - return this.familyNest; - } - - public EntityGroup getAnimalPack() - { - return this.pack; - } - - public void setAnimalPack(final EntityGroup pack) - { - this.pack = pack; - this.pack.onAnimalJoin(this); - } - - @Override - public void onDeath(final DamageSource damageSource) - { - if (this.pack != null) - { - this.pack.onAnimalDeath(this); - } - - super.onDeath(damageSource); - } - - @Override - public void setRevengeTarget(final EntityLivingBase entity) - { - super.setRevengeTarget(entity); - - if (this.pack != null && entity != null) - { - if (this.isRaisedByPlayer()) - { - return; - } - - this.pack.addOrRenewAggressor(entity); - } - } - - @Override - public void onLivingUpdate() - { - super.onLivingUpdate(); - - this.setMultiPartLocations(); - } - - public float getSize() - { - return (this.isChild() ? 0.65f : 1) + (this.isGroupLeader() ? 0.15F : 0.0F); - } - - @Override - protected void onGrowingAdult() - { - this.updateMultiPart(); - } - - private void updateMultiPart() - { - float scale = this.getSize(); - - if (this.isChild()) - { - this.neck.updateSize(0.0F, 0.0F); - this.head.updateSize(0.0F, 0.0F); - this.beak.updateSize(0.0F, 0.0F); - this.body.updateSize(1.1F, 1.1F); - this.tail.updateSize(0.0F, 0.0F); - } - else - { - this.neck.updateSize(0.4F * scale, 0.8F * scale); - this.head.updateSize(0.8F * scale, 0.6F * scale); - this.beak.updateSize(0.4F * scale, 0.5F * scale); - this.body.updateSize(1.1F * scale, 1.325F * scale); - this.tail.updateSize(1.1F * scale, 0.6F * scale); - } - } - - private void setMultiPartLocations() - { - float scale = this.getSize(); - - for (int i = 0; i < this.parts.length; i++) - { - this.old[i].set(this.parts[i].posX, this.parts[i].posY, this.parts[i].posZ); - } - - this.updateMultiPart(); - - float f = MathUtil.interpolateRotation(this.prevRenderYawOffset, this.renderYawOffset, 1); - float f1 = MathHelper.cos(-f * 0.017453292F - (float) Math.PI) * scale; - float f2 = MathHelper.sin(-f * 0.017453292F - (float) Math.PI) * scale; - - this.head.onUpdate(); - this.head.setLocationAndAngles(this.posX - f2 * 0.5f, this.posY + 1.45f * scale, this.posZ - f1 * 0.5f, 0F, 0F); - this.beak.onUpdate(); - this.beak.setLocationAndAngles(this.posX - f2 * 1.1f, this.posY + 1.5f * scale, this.posZ - f1 * 1.1f, 0F, 0F); - this.neck.onUpdate(); - this.neck.setLocationAndAngles(this.posX - f2 * 0.6f, this.posY + 0.75f * scale, this.posZ - f1 * 0.6f, 0F, 0F); - this.tail.onUpdate(); - this.tail.setLocationAndAngles(this.posX + f2 * 1.1f, this.posY + 0.5f * scale, this.posZ + f1 * 1.1f, 0F, 0F); - this.body.onUpdate(); - this.body.setLocationAndAngles(this.posX, this.posY, this.posZ, 0F, 0F); - - for (int i = 0; i < this.parts.length; i++) - { - this.parts[i].prevPosX = this.old[i].getX(); - this.parts[i].prevPosY = this.old[i].getY(); - this.parts[i].prevPosZ = this.old[i].getZ(); - } - } - - @Override - public boolean attackEntityFromPart(MultiPartEntityPart part, DamageSource source, float damage) - { - switch (part.partName) - { - case "head": - damage *= 1.3f; - break; - case "beak": - damage *= 1.1f; - break; - case "tail": - damage *= .2f; - break; - } - - if (this.hurtResistantTime <= 10) - { - return this.attackEntityFrom(source, damage); - } - - return false; - } - - @Override - public boolean attackEntityFrom(DamageSource source, float amount) - { - Entity entity = source.getTrueSource(); - return (!this.isBeingRidden() || entity == null || !this.isRidingOrBeingRiddenBy(entity)) && super.attackEntityFrom(source, amount); - } - - @Override - public World getWorld() - { - return this.getEntityWorld(); - } - - @Override - public boolean canBeCollidedWith() - { - return false; - } - - @Nullable - @Override - public MultiPartEntityPart[] getParts() - { - return this.parts; - } - - @Override - public EntityAgeable createChild(final EntityAgeable matingAnimal) - { - return new EntityMoa(this.world); - } - - @Override - public ItemStack getPickedResult(final RayTraceResult target) - { - final ItemStack moaEgg = new ItemStack(ItemsAether.moa_egg_item); - - final MoaGenePool stackGenes = ItemMoaEgg.getGenePool(moaEgg); - - stackGenes.transformFromParents(this.getGenePool().getStorage().getSeed(), this.getGenePool().getStorage().getFatherSeed(), - this.getGenePool().getStorage().getMotherSeed()); - - ItemMoaEgg.setGenePool(moaEgg, stackGenes); - - return moaEgg; - } - - @Override - protected SoundEvent getAmbientSound() - { - return SoundsAether.moa_ambient; - } - - @Override - protected SoundEvent getHurtSound(final DamageSource src) - { - return SoundsAether.moa_hurt; - } - - @Override - protected SoundEvent getDeathSound() - { - return SoundsAether.moa_hurt; - } - - public boolean isSaddled() - { - return this.dataManager.get(SADDLED); - } - - public void setIsSaddled(final boolean isSaddled) - { - this.dataManager.set(SADDLED, isSaddled); - } - - @Override - public IMountProcessor getMountProcessor() - { - return this.mountProcessor; - } - - @Override - public void resetRemainingAirborneTime() - { - this.dataManager.set(EntityMoa.AIRBORNE_TIME, this.maxAirborneTime()); - } - - @Override - public float getRemainingAirborneTime() - { - return this.dataManager.get(EntityMoa.AIRBORNE_TIME); - } - - @Override - public void setRemainingAirborneTime(final float set) - { - this.dataManager.set(EntityMoa.AIRBORNE_TIME, set); - } - - @Override - public void addRemainingAirborneTime(final float add) - { - this.setRemainingAirborneTime(this.getRemainingAirborneTime() + add); - } - - @Override - public boolean canBeMounted() - { - return this.isSaddled(); - } - - @Override - public boolean canProcessMountInteraction(final EntityPlayer rider, final ItemStack stack) - { - return !this.isBreedingItem(stack) && !(stack.getItem() instanceof ItemMoaFeed) && (stack == null || stack.getItem() != Items.LEAD); - } - - @Override - public double getMountedYOffset() - { - return this.getGender() == AnimalGender.MALE ? 1.15D : 0.90F; - } - - public float maxAirborneTime() - { - return 20.0F; - } - - @Override - public boolean isBreedingItem(@Nullable final ItemStack stack) - { - return stack != null && TEMPTATION_ITEMS.contains(stack.getItem()); - } - - @Override - public IEntityEyesComponent getEyes() - { - return this.eyes; - } -} diff --git a/src/main/java/com/gildedgames/aether/common/entities/animals/EntitySheepuff.java b/src/main/java/com/gildedgames/aether/common/entities/animals/EntitySheepuff.java deleted file mode 100644 index 955c56af7c..0000000000 --- a/src/main/java/com/gildedgames/aether/common/entities/animals/EntitySheepuff.java +++ /dev/null @@ -1,290 +0,0 @@ -package com.gildedgames.aether.common.entities.animals; - -import com.gildedgames.aether.api.entity.damage.DamageTypeAttributes; -import com.gildedgames.aether.api.entity.damage.IDefenseLevelsHolder; -import com.gildedgames.aether.api.registrar.BlocksAether; -import com.gildedgames.aether.api.registrar.SoundsAether; -import com.gildedgames.aether.common.entities.ai.EntityAIHideFromRain; -import com.gildedgames.aether.common.entities.ai.EntityAIRestrictRain; -import com.gildedgames.aether.common.entities.ai.EntityAIUnstuckBlueAercloud; -import com.gildedgames.aether.common.entities.ai.kirrid.EntityAIEatAetherGrass; -import com.gildedgames.aether.common.entities.multipart.AetherMultiPartShearable; -import com.gildedgames.aether.common.init.LootTablesAether; -import com.gildedgames.aether.common.util.helpers.MathUtil; -import com.google.common.collect.Maps; -import net.minecraft.entity.*; -import net.minecraft.entity.passive.EntitySheep; -import net.minecraft.init.SoundEvents; -import net.minecraft.item.EnumDyeColor; -import net.minecraft.item.ItemStack; -import net.minecraft.network.datasync.DataParameter; -import net.minecraft.network.datasync.DataSerializers; -import net.minecraft.network.datasync.EntityDataManager; -import net.minecraft.util.DamageSource; -import net.minecraft.util.ResourceLocation; -import net.minecraft.util.SoundEvent; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.MathHelper; -import net.minecraft.world.DifficultyInstance; -import net.minecraft.world.IBlockAccess; -import net.minecraft.world.World; - -import javax.annotation.Nullable; -import javax.vecmath.Point3d; -import java.util.ArrayList; -import java.util.List; -import java.util.Map; - -public class EntitySheepuff extends EntitySheep implements IEntityMultiPart, IDefenseLevelsHolder -{ - protected Map<String, Float> defenseMap = Maps.newHashMap(); - {{ - this.defenseMap.put("Very Weak", 4.0F); - this.defenseMap.put("Weak", 2.0F); - this.defenseMap.put("Average", 0.0F); - this.defenseMap.put("Strong", -2.0F); - this.defenseMap.put("Very Strong", -4.0F); - }} - - public static final DataParameter<Float> PUFFINESS = EntityDataManager.createKey(EntitySheepuff.class, DataSerializers.FLOAT); - - private float offGroundCheck; - - protected EntityAIEatAetherGrass entityAIEatGrass; - - private final Point3d old; - - private final MultiPartEntityPart[] parts; - - private final MultiPartEntityPart head = new AetherMultiPartShearable(this, "head", 0.6F, 0.6F); - - public EntitySheepuff(World worldIn) - { - super(worldIn); - - this.parts = new MultiPartEntityPart[] { this.head }; - this.old = new Point3d(); - this.setSize(1.1F, 1.4F); - } - - @Override - protected void initEntityAI() - { - super.initEntityAI(); - - this.entityAIEatGrass = new EntityAIEatAetherGrass(this, 350); - - this.tasks.addTask(2, new EntityAIRestrictRain(this)); - this.tasks.addTask(3, new EntityAIUnstuckBlueAercloud(this)); - this.tasks.addTask(3, new EntityAIHideFromRain(this, 1.3D)); - // this.tasks.addTask(3, new EntityAITempt(this, 1.2D, false, TEMPTATION_ITEMS)); - this.tasks.addTask(9, this.entityAIEatGrass); - } - - @Override - protected void entityInit() - { - super.entityInit(); - - this.dataManager.register(PUFFINESS, 0f); - } - - @Override - protected void applyEntityAttributes() - { - super.applyEntityAttributes(); - - this.getEntityAttribute(SharedMonsterAttributes.MAX_HEALTH).setBaseValue(15.0D); - - this.getEntityAttribute(DamageTypeAttributes.SLASH_DEFENSE_LEVEL).setBaseValue(0.0f); - this.getEntityAttribute(DamageTypeAttributes.IMPACT_DEFENSE_LEVEL).setBaseValue(-2.0f); - this.getEntityAttribute(DamageTypeAttributes.PIERCE_DEFENSE_LEVEL).setBaseValue(2.0f); - } - - @Override - public EntitySheepuff createChild(EntityAgeable ageable) - { - return new EntitySheepuff(this.world); - } - - @Override - public World getWorld() - { - return this.getEntityWorld(); - } - - @Override - public boolean attackEntityFromPart(MultiPartEntityPart part, DamageSource source, float damage) - { - if (this.hurtResistantTime <= 10) - { - return this.attackEntityFrom(source, damage * 1.1f); - } - else - { - return false; - } - } - - @Nullable - @Override - public MultiPartEntityPart[] getParts() - { - return this.parts; - } - - @Override - public boolean attackEntityFrom(DamageSource source, float amount) - { - boolean result = super.attackEntityFrom(source, amount); - - if (result && this.onGround && !this.getSheared()) - { - this.motionY = 1.5f + this.rand.nextFloat(); - } - - return result; - } - - @Override - public void onLivingUpdate() - { - super.onLivingUpdate(); - - this.old.set(this.head.posX, this.head.posY, this.head.posZ); - - float f = MathUtil.interpolateRotation(this.prevRenderYawOffset, this.renderYawOffset, 1); - float f1 = MathHelper.cos(-f * 0.017453292F - (float) Math.PI); - float f2 = MathHelper.sin(-f * 0.017453292F - (float) Math.PI); - - this.head.setLocationAndAngles(this.posX - f2 * .8f, this.posY + .85f, this.posZ - f1 * .8f, 0F, 0F); - this.head.onUpdate(); - - this.head.prevPosX = this.old.getX(); - this.head.prevPosY = this.old.getY(); - this.head.prevPosZ = this.old.getZ(); - } - - @Override - public void onUpdate() - { - super.onUpdate(); - - if (this.motionY < -0.1d && !this.getSheared()) - { - this.motionY = -0.1d; - this.fallDistance = 0; - } - - if (!this.onGround) - { - this.offGroundCheck += Math.abs(this.motionY); - - if (this.offGroundCheck > 2) - { - this.addPuffiness(0.1f); - } - } - else - { - this.offGroundCheck = 0; - this.addPuffiness(-0.05f); - } - } - - @Override - public List<ItemStack> onSheared(ItemStack item, IBlockAccess world, BlockPos pos, int fortune) - { - this.motionY = 0; - this.setSheared(true); - - int count = 1 + this.rand.nextInt(3); - - List<ItemStack> ret = new ArrayList<>(); - - for (int i = 0; i < count; i++) - { - ret.add(new ItemStack(BlocksAether.cloudwool_block)); - } - - this.playSound(SoundEvents.ENTITY_SHEEP_SHEAR, 1.0F, 1.0F); - - return ret; - } - - @Override - @Nullable - public IEntityLivingData onInitialSpawn(DifficultyInstance difficulty, @Nullable IEntityLivingData livingdata) - { - livingdata = super.onInitialSpawn(difficulty, livingdata); - - this.setFleeceColor(EnumDyeColor.WHITE); - - return livingdata; - } - - @Override - protected float getSoundPitch() - { - return this.isChild() ? (this.rand.nextFloat() - this.rand.nextFloat()) * 0.2F + 1F : (this.rand.nextFloat() - this.rand.nextFloat()) * 0.2F + 0.55F; - } - - @Override - protected SoundEvent getAmbientSound() - { - return SoundsAether.kirrid_ambient; - } - - @Override - protected SoundEvent getHurtSound(DamageSource source) - { - return SoundsAether.kirrid_hurt; - } - - @Override - protected SoundEvent getDeathSound() - { - return SoundsAether.kirrid_death; - } - - @Override - @Nullable - protected ResourceLocation getLootTable() - { - if (this.getSheared()) - { - return LootTablesAether.ENTITY_KIRRID_SHEARED; - } - - return LootTablesAether.ENTITY_KIRRID; - } - - @Override - public void fall(float distance, float damageMultiplier) - { - if (this.getSheared()) - { - super.fall(distance, damageMultiplier); - } - } - - @Override - public void eatGrassBonus() - { - super.eatGrassBonus(); - - this.motionY = 1.5f + this.rand.nextFloat(); - } - - public void addPuffiness(float puffiness) - { - this.dataManager.set(PUFFINESS, MathHelper.clamp(this.getPuffiness() + puffiness, 0f, 1f)); - } - - public float getPuffiness() - { - return this.dataManager.get(PUFFINESS); - } - - -} diff --git a/src/main/java/com/gildedgames/aether/common/entities/animals/EntitySkyrootLizard.java b/src/main/java/com/gildedgames/aether/common/entities/animals/EntitySkyrootLizard.java deleted file mode 100644 index 1c170667ca..0000000000 --- a/src/main/java/com/gildedgames/aether/common/entities/animals/EntitySkyrootLizard.java +++ /dev/null @@ -1,279 +0,0 @@ -package com.gildedgames.aether.common.entities.animals; - -import com.gildedgames.aether.api.entity.damage.DamageTypeAttributes; -import com.gildedgames.aether.api.entity.effects.IAetherStatusEffects; -import com.gildedgames.aether.api.registrar.ItemsAether; -import com.gildedgames.aether.api.registrar.SoundsAether; -import com.gildedgames.aether.common.blocks.natural.leaves.BlockColoredLeaves.Color; -import com.gildedgames.aether.common.blocks.natural.wood.AetherWoodType; -import com.gildedgames.aether.common.blocks.natural.wood.BlockAetherLog; -import com.google.common.collect.Maps; -import net.minecraft.entity.EntityAgeable; -import net.minecraft.entity.SharedMonsterAttributes; -import net.minecraft.entity.ai.EntityAIAvoidEntity; -import net.minecraft.entity.ai.EntityAIWander; -import net.minecraft.entity.ai.EntityAIWatchClosest; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.init.Items; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.network.datasync.DataParameter; -import net.minecraft.network.datasync.DataSerializers; -import net.minecraft.network.datasync.EntityDataManager; -import net.minecraft.util.EnumHand; -import net.minecraft.util.SoundEvent; -import net.minecraft.world.World; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; - -import javax.annotation.Nullable; -import java.util.Map; - -public class EntitySkyrootLizard extends EntityAetherAnimal -{ - protected Map<String, Float> defenseMap = Maps.newHashMap(); - {{ - this.defenseMap.put("Very Weak", 4.0F); - this.defenseMap.put("Weak", 2.0F); - this.defenseMap.put("Average", 0.0F); - this.defenseMap.put("Strong", -2.0F); - this.defenseMap.put("Very Strong", -4.0F); - }} - - private static final DataParameter<Byte> LIZARD_TYPE = EntityDataManager.createKey(EntitySkyrootLizard.class, DataSerializers.BYTE); - - private static final DataParameter<Byte> LIZARD_COLOR = EntityDataManager.createKey(EntitySkyrootLizard.class, DataSerializers.BYTE); - - private static final Type[] RANDOM_TYPES = new Type[] { Type.AMBERROOT, Type.SKYROOT, - Type.WISPROOT, Type.GREATROOT }; - - public EntitySkyrootLizard(World world) - { - super(world); - - this.setSize(.8f, .3f); - - this.tasks.addTask(1, new EntityAIWander(this, 0.5D, 10)); - this.tasks.addTask(2, new EntityAIAvoidEntity<>(this, EntityPlayer.class, 20.0F, .7D, .85D)); - this.tasks.addTask(7, new EntityAIWatchClosest(this, EntityPlayer.class, 6.0F)); - } - - @Override - public void entityInit() - { - super.entityInit(); - - Type type = RANDOM_TYPES[this.rand.nextInt(RANDOM_TYPES.length)]; - Color color = Color.VALUES[this.rand.nextInt(Color.VALUES.length)]; - - this.dataManager.register(LIZARD_TYPE, (byte) type.ordinal()); - this.dataManager.register(LIZARD_COLOR, (byte) color.ordinal()); - } - - @Override - protected void applyEntityAttributes() - { - super.applyEntityAttributes(); - - this.getEntityAttribute(SharedMonsterAttributes.MOVEMENT_SPEED).setBaseValue(.7D); - this.getEntityAttribute(SharedMonsterAttributes.MAX_HEALTH).setBaseValue(4.0D); - - this.getEntityAttribute(DamageTypeAttributes.SLASH_DEFENSE_LEVEL).setBaseValue(0.0f); - this.getEntityAttribute(DamageTypeAttributes.IMPACT_DEFENSE_LEVEL).setBaseValue(0.0f); - this.getEntityAttribute(DamageTypeAttributes.PIERCE_DEFENSE_LEVEL).setBaseValue(4.0f); - } - - @Override - public void fall(float distance, float damageMultiplier) - { - if (distance > 4) - { - IAetherStatusEffects.applyStatusEffect(this, IAetherStatusEffects.effectTypes.STUN, 100); - } - } - - public Type getLeafType() - { - int ordinal = this.dataManager.get(LIZARD_TYPE); - - if (ordinal < 0 || ordinal >= Type.VALUES.length) - { - return Type.SKYROOT; - } - - return Type.VALUES[ordinal]; - } - - public Color getLeafColor() - { - int ordinal = this.dataManager.get(LIZARD_COLOR); - - if (ordinal < 0 || ordinal > Color.VALUES.length) - { - return Color.GREEN; - } - - return Color.VALUES[ordinal]; - } - - public void setLizardColor(Color color) - { - int ordinal = -1; - - if (color != null) - { - ordinal = color.ordinal(); - } - - this.dataManager.set(LIZARD_COLOR, (byte) ordinal); - } - - public void setLizardType(Type type) - { - this.dataManager.set(LIZARD_TYPE, (byte) type.ordinal()); - } - - @Override - public boolean processInteract(EntityPlayer player, EnumHand hand) - { - super.processInteract(player, hand); - - ItemStack itemStack = player.getHeldItem(hand); - - if (!itemStack.isEmpty()) - { - if (itemStack.getItem() == ItemsAether.skyroot_stick || itemStack.getItem() == Items.STICK) - { - this.consumeItemFromStack(player, itemStack); - - ItemStack itemStackLizard = new ItemStack(ItemsAether.skyroot_lizard_stick); - - if (!player.inventory.addItemStackToInventory(itemStackLizard)) - { - player.dropItem(itemStackLizard, false); - } - - if (player.isServerWorld()) - { - player.playSound(SoundsAether.aerbunny_hurt, 1F, 0.3F); - } - - this.world.removeEntity(this); - - return true; - } - } - - return false; - } - - @Override - protected SoundEvent getDeathSound() - { - return SoundsAether.aerbunny_death; - } - - @Override - public void writeEntityToNBT(final NBTTagCompound nbt) - { - super.writeEntityToNBT(nbt); - - nbt.setInteger("type", this.dataManager.get(LIZARD_TYPE)); - } - - @Override - public void readEntityFromNBT(final NBTTagCompound nbt) - { - super.readEntityFromNBT(nbt); - - this.dataManager.set(LIZARD_TYPE, (byte) nbt.getInteger("type")); - } - - @SideOnly(Side.CLIENT) - public int getLizardAccentColor() - { - Type type = this.getLeafType(); - - if (type == Type.AMBERROOT) - { - return Integer.MIN_VALUE; - } - - Color color = this.getLeafColor(); - - if (type == Type.SKYROOT) - { - switch (color) - { - case GREEN: - return 0x6B9157; - case BLUE: - return 0x5D8B9A; - case DARK_BLUE: - return 0x3B4E9F; - } - } - else if (type == Type.WISPROOT) - { - switch (color) - { - case GREEN: - return 0x82A16E; - case BLUE: - return 0x659094; - case DARK_BLUE: - return 0x6670AA; - } - } - else if (type == Type.GREATROOT) - { - switch (color) - { - case GREEN: - return 0x4C6732; - case BLUE: - return 0x3E5E67; - case DARK_BLUE: - return 0x1D2A5D; - } - } - - return 0xFFFFFF; - } - - @Nullable - @Override - public EntityAgeable createChild(EntityAgeable ageable) - { - return null; - } - - public enum Type - { - SKYROOT, - GREATROOT, - WISPROOT, - AMBERROOT; - - public static final Type[] VALUES = Type.values(); - - public static Type getFromWoodType(BlockAetherLog block) - { - AetherWoodType type = block.getAetherWoodType(); - - switch (type) - { - case SKYROOT: - return SKYROOT; - case GREATROOT: - return GREATROOT; - case WISPROOT: - return WISPROOT; - case AMBERROOT: - return AMBERROOT; - } - - return null; - } - } -} diff --git a/src/main/java/com/gildedgames/aether/common/entities/animals/EntityTaegore.java b/src/main/java/com/gildedgames/aether/common/entities/animals/EntityTaegore.java deleted file mode 100644 index 87b2d0be0c..0000000000 --- a/src/main/java/com/gildedgames/aether/common/entities/animals/EntityTaegore.java +++ /dev/null @@ -1,234 +0,0 @@ -package com.gildedgames.aether.common.entities.animals; - -import com.gildedgames.aether.api.entity.IEntityEyesComponent; -import com.gildedgames.aether.api.entity.damage.DamageTypeAttributes; -import com.gildedgames.aether.api.entity.effects.EEffectIntensity; -import com.gildedgames.aether.api.entity.effects.IAetherStatusEffectIntensity; -import com.gildedgames.aether.api.entity.effects.IAetherStatusEffects; -import com.gildedgames.aether.api.registrar.BlocksAether; -import com.gildedgames.aether.api.registrar.ItemsAether; -import com.gildedgames.aether.api.registrar.SoundsAether; -import com.gildedgames.aether.common.capabilities.entity.player.PlayerAether; -import com.gildedgames.aether.common.entities.ai.AetherNavigateGround; -import com.gildedgames.aether.common.entities.ai.EntityAIHideFromRain; -import com.gildedgames.aether.common.entities.ai.EntityAIRestrictRain; -import com.gildedgames.aether.common.entities.ai.EntityAIUnstuckBlueAercloud; -import com.gildedgames.aether.common.entities.effects.StatusEffectFracture; -import com.gildedgames.aether.common.entities.multipart.AetherMultiPartEntity; -import com.gildedgames.aether.common.entities.util.eyes.EntityEyesComponent; -import com.gildedgames.aether.common.entities.util.eyes.IEntityEyesComponentProvider; -import com.gildedgames.aether.common.init.LootTablesAether; -import com.gildedgames.aether.common.util.helpers.MathUtil; -import com.google.common.collect.Maps; -import com.google.common.collect.Sets; -import net.minecraft.block.Block; -import net.minecraft.entity.*; -import net.minecraft.entity.ai.*; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.init.SoundEvents; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.pathfinding.PathNavigate; -import net.minecraft.util.DamageSource; -import net.minecraft.util.ResourceLocation; -import net.minecraft.util.SoundEvent; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.MathHelper; -import net.minecraft.world.World; - -import javax.annotation.Nullable; -import java.util.Map; -import java.util.Set; - -public class EntityTaegore extends EntityAetherAnimal implements IEntityMultiPart, IEntityEyesComponentProvider -{ - protected Map<String, Float> defenseMap = Maps.newHashMap(); - {{ - this.defenseMap.put("Very Weak", 4.0F); - this.defenseMap.put("Weak", 2.0F); - this.defenseMap.put("Average", 0.0F); - this.defenseMap.put("Strong", -2.0F); - this.defenseMap.put("Very Strong", -4.0F); - }} - - private static final Set<Item> TEMPTATION_ITEMS = Sets.newHashSet(ItemsAether.wyndberry); - - private final EntityAIAttackMelee AIAttackMelee = new EntityAIAttackMelee(this, 2.0D, true); - - private final EntityAIPanic AIPanic = new EntityAIPanic(this, 2.0D); - - private final AetherMultiPartEntity[] parts; - - private final AetherMultiPartEntity head = new AetherMultiPartEntity(this, "head", .8F, .8F); - - private final IEntityEyesComponent eyes = new EntityEyesComponent(this); - - private double prevHeadX, prevHeadY, prevHeadZ; - - public EntityTaegore(final World world) - { - super(world); - - this.setSize(1.15F, 1.6F); - - this.parts = new AetherMultiPartEntity[] { this.head }; - this.spawnableBlock = BlocksAether.aether_grass; - } - - @Override - protected void initEntityAI() - { - super.initEntityAI(); - - this.tasks.addTask(2, new EntityAIRestrictRain(this)); - this.tasks.addTask(3, new EntityAIUnstuckBlueAercloud(this)); - this.tasks.addTask(3, new EntityAIHideFromRain(this, 1.3D)); - this.tasks.addTask(3, new EntityAITempt(this, 1.2D, false, TEMPTATION_ITEMS)); - this.tasks.addTask(0, new EntityAISwimming(this)); - this.tasks.addTask(1, new EntityAIPanic(this, 1.25D)); - this.tasks.addTask(2, new EntityAIMate(this, 1.0D)); - this.tasks.addTask(3, new EntityAITempt(this, 1.2D, false, TEMPTATION_ITEMS)); - this.tasks.addTask(4, new EntityAIFollowParent(this, 1.25D)); - this.tasks.addTask(5, new EntityAIWander(this, 1.0D)); - this.tasks.addTask(5, new EntityAIWanderAvoidWater(this, 1.0D)); - this.tasks.addTask(6, new EntityAIWatchClosest(this, EntityPlayer.class, 6.0F)); - this.tasks.addTask(7, new EntityAILookIdle(this)); - } - - @Override - public World getWorld() - { - return this.getEntityWorld(); - } - - @Override - public boolean attackEntityFromPart(MultiPartEntityPart part, DamageSource source, float damage) - { - if (this.hurtResistantTime <= 10) - { - return this.attackEntityFrom(source, damage * 1.1f); - } - else - { - return false; - } - } - - @Nullable - @Override - public MultiPartEntityPart[] getParts() - { - return this.parts; - } - - @Override - protected PathNavigate createNavigator(final World worldIn) - { - return new AetherNavigateGround(this, worldIn); - } - - @Override - public float getBlockPathWeight(BlockPos pos) - { - return super.getBlockPathWeight(pos); - } - - @Override - protected void applyEntityAttributes() - { - super.applyEntityAttributes(); - - this.getEntityAttribute(SharedMonsterAttributes.MAX_HEALTH).setBaseValue(15.0D); - this.getEntityAttribute(SharedMonsterAttributes.MOVEMENT_SPEED).setBaseValue(0.2D); - - this.getEntityAttribute(DamageTypeAttributes.SLASH_DEFENSE_LEVEL).setBaseValue(2.0f); - this.getEntityAttribute(DamageTypeAttributes.IMPACT_DEFENSE_LEVEL).setBaseValue(0.0f); - this.getEntityAttribute(DamageTypeAttributes.PIERCE_DEFENSE_LEVEL).setBaseValue(-2.0f); - } - - @Override - public void setAttackTarget(@Nullable final EntityLivingBase entitylivingbaseIn) - { - super.setAttackTarget(entitylivingbaseIn); - } - - @Override - public EntityTaegore createChild(final EntityAgeable ageable) - { - return new EntityTaegore(this.world); - } - - @Override - public boolean isBreedingItem(@Nullable final ItemStack stack) - { - return stack != null && TEMPTATION_ITEMS.contains(stack.getItem()); - } - - @Override - protected SoundEvent getAmbientSound() - { - return SoundsAether.taegore_ambient; - } - - @Override - protected SoundEvent getHurtSound(final DamageSource src) - { - return SoundsAether.taegore_hurt; - } - - @Override - protected SoundEvent getDeathSound() - { - return SoundsAether.taegore_death; - } - - @Override - protected void playStepSound(final BlockPos pos, final Block blockIn) - { - this.playSound(SoundEvents.ENTITY_PIG_STEP, 0.15F, 1.0F); - } - - @Override - protected ResourceLocation getLootTable() - { - return LootTablesAether.ENTITY_TAEGORE; - } - - @Override - public void onLivingUpdate() - { - super.onLivingUpdate(); - - if (this.isChild()) - { - this.head.updateSize(0.4F, 0.4F); - } - - this.eyes.update(); - - this.prevHeadX = this.head.posX; - this.prevHeadY = this.head.posY; - this.prevHeadZ = this.head.posZ; - - float headOffset = !this.isChild() ? 1.0f : .25f; - float headHeight = !this.isChild() ? .4f : .3f; - - final float headDist = 1.05f; - float f = MathUtil.interpolateRotation(this.prevRenderYawOffset, this.renderYawOffset, 1); - float f1 = MathHelper.cos(-f * 0.017453292F - (float) Math.PI) * headDist; - float f2 = MathHelper.sin(-f * 0.017453292F - (float) Math.PI) * headDist; - - this.head.setLocationAndAngles(this.posX - f2 * headOffset, this.posY + headHeight, this.posZ - f1 * headOffset, 0F, 0F); - this.head.onUpdate(); - - this.head.prevPosX = this.prevHeadX; - this.head.prevPosY = this.prevHeadY; - this.head.prevPosZ = this.prevHeadZ; - } - - @Override - public IEntityEyesComponent getEyes() - { - return this.eyes; - } -} diff --git a/src/main/java/com/gildedgames/aether/common/entities/blocks/EntityFloatingBlock.java b/src/main/java/com/gildedgames/aether/common/entities/blocks/EntityFloatingBlock.java deleted file mode 100644 index fea7964768..0000000000 --- a/src/main/java/com/gildedgames/aether/common/entities/blocks/EntityFloatingBlock.java +++ /dev/null @@ -1,190 +0,0 @@ -package com.gildedgames.aether.common.entities.blocks; - -import com.gildedgames.aether.common.blocks.util.BlockFloating; -import net.minecraft.block.Block; -import net.minecraft.block.state.IBlockState; -import net.minecraft.entity.Entity; -import net.minecraft.entity.MoverType; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.network.datasync.DataParameter; -import net.minecraft.network.datasync.DataSerializers; -import net.minecraft.util.EnumParticleTypes; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.MathHelper; -import net.minecraft.world.World; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; - -public class EntityFloatingBlock extends Entity -{ - private static final DataParameter<Integer> BLOCK_NAME = new DataParameter<>(20, DataSerializers.VARINT); - - private static final DataParameter<Byte> BLOCK_METADATA = new DataParameter<>(21, DataSerializers.BYTE); - - private boolean hasActivated = false; - - public EntityFloatingBlock(World world) - { - super(world); - - this.setSize(0.98F, 0.98F); - this.motionX = 0.0D; - this.motionY = 0.0D; - this.motionZ = 0.0D; - } - - public EntityFloatingBlock(World world, double x, double y, double z, IBlockState state) - { - this(world); - - this.setBlockState(state); - - this.setPosition(x, y, z); - - this.prevPosX = x; - this.prevPosY = y; - this.prevPosZ = z; - } - - @Override - protected void entityInit() - { - this.dataManager.register(BLOCK_NAME, 2); - this.dataManager.register(BLOCK_METADATA, (byte) 4); - } - - @Override - public void onUpdate() - { - // Destroys the source block, since deleting a neighboring block in the actual block class - // causes a infinite loop of updates. - - if (!this.world.isRemote && !this.hasActivated) - { - BlockPos pos = new BlockPos(this); - - if (this.world.getBlockState(pos).getBlock() == this.getBlockState().getBlock()) - { - this.world.setBlockToAir(pos); - } - else - { - this.setDead(); - } - - this.hasActivated = true; - } - - if (this.ticksExisted > 200) - { - this.setDead(); - } - else - { - this.prevPosX = this.posX; - this.prevPosY = this.posY; - this.prevPosZ = this.posZ; - - this.motionY += 0.04D; - - this.move(MoverType.SELF, this.motionX, this.motionY, this.motionZ); - - this.motionX *= 0.98D; - this.motionY *= 0.98D; - this.motionZ *= 0.98D; - - BlockPos pos = new BlockPos(this); - - if (!BlockFloating.canFallInto(this.world, pos.up())) - { - if (!this.world.isRemote) - { - this.world.setBlockState(pos, this.getBlockState()); - - this.setDead(); - } - - this.posX = pos.getX() + 0.5D; - this.posY = pos.getY(); - this.posZ = pos.getZ() + 0.5D; - } - - if (this.world.isAirBlock(pos.down()) && this.world.isRemote) - { - int count = MathHelper.floor(this.motionY / 0.15D); - - if (count > 5) - { - count = 5; - } - - for (int i = 0; i < count; i++) - { - this.world.spawnParticle(EnumParticleTypes.BLOCK_DUST, - this.posX - 0.5D + (this.world.rand.nextDouble()), - this.posY - 0.5D, - this.posZ - 0.5D + (this.world.rand.nextDouble()), 0.0D, 0.0D, 0.0D, - Block.getStateId(this.getBlockState())); - } - } - } - } - - @Override - @SideOnly(Side.CLIENT) - public boolean canRenderOnFire() - { - return false; - } - - @Override - protected boolean canTriggerWalking() - { - return false; - } - - @Override - public boolean canBeCollidedWith() - { - return !this.isDead; - } - - @Override - protected void readEntityFromNBT(NBTTagCompound compound) - { - Block block = Block.getBlockFromName(compound.getString("Block")); - - this.setBlockState(block.getStateFromMeta(compound.getByte("BlockState"))); - this.ticksExisted = compound.getInteger("TicksExisted"); - - this.hasActivated = this.ticksExisted > 1; - } - - @Override - protected void writeEntityToNBT(NBTTagCompound compound) - { - IBlockState state = this.getBlockState(); - - Block block = state.getBlock(); - - compound.setString("Block", Block.REGISTRY.getNameForObject(block).toString()); - compound.setByte("BlockState", (byte) block.getMetaFromState(state)); - compound.setInteger("TicksExisted", this.ticksExisted); - } - - public IBlockState getBlockState() - { - Block block = Block.getBlockById(this.dataManager.get(BLOCK_NAME)); - int meta = (int) this.dataManager.get(BLOCK_METADATA); - - return block.getStateFromMeta(meta); - } - - public void setBlockState(IBlockState state) - { - Block block = state.getBlock(); - - this.dataManager.set(BLOCK_NAME, Block.REGISTRY.getIDForObject(block)); - this.dataManager.set(BLOCK_METADATA, (byte) block.getMetaFromState(state)); - } -} diff --git a/src/main/java/com/gildedgames/aether/common/entities/blocks/EntityMovingBlock.java b/src/main/java/com/gildedgames/aether/common/entities/blocks/EntityMovingBlock.java deleted file mode 100644 index d0f45b93c0..0000000000 --- a/src/main/java/com/gildedgames/aether/common/entities/blocks/EntityMovingBlock.java +++ /dev/null @@ -1,337 +0,0 @@ -package com.gildedgames.aether.common.entities.blocks; - -import com.gildedgames.aether.api.chunk.IPlacementFlagCapability; -import com.gildedgames.aether.api.registrar.CapabilitiesAether; -import net.minecraft.block.Block; -import net.minecraft.block.state.IBlockState; -import net.minecraft.entity.Entity; -import net.minecraft.entity.MoverType; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.init.Blocks; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.network.datasync.DataParameter; -import net.minecraft.network.datasync.DataSerializers; -import net.minecraft.util.EnumFacing; -import net.minecraft.util.NonNullList; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.Vec3d; -import net.minecraft.world.World; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; - -public class EntityMovingBlock extends Entity -{ - private static final DataParameter<Integer> BLOCK_NAME = new DataParameter<>(20, DataSerializers.VARINT); - - private static final DataParameter<Byte> BLOCK_METADATA = new DataParameter<>(21, DataSerializers.BYTE); - - private EntityPlayer holdingPlayer; - - private boolean hasActivated = false; - - private boolean allowDoubleDrops = true; - - private int ticksStuck = 0, ticksFalling = 0; - - public EntityMovingBlock(final World world) - { - super(world); - - this.setSize(0.9f, 0.9f); - - this.motionX = 0.0D; - this.motionY = 0.0D; - this.motionZ = 0.0D; - } - - public EntityMovingBlock(final World world, final double x, final double y, final double z, final IBlockState state) - { - this(world); - - this.setBlockState(state); - - this.setPosition(x, y, z); - - this.prevPosX = x; - this.prevPosY = y; - this.prevPosZ = z; - } - - @Override - protected void entityInit() - { - this.dataManager.register(BLOCK_NAME, 2); - this.dataManager.register(BLOCK_METADATA, (byte) 4); - } - - @Override - public void onUpdate() - { - super.onUpdate(); - - this.prevRotationYaw = this.rotationYaw; - this.prevRotationPitch = this.rotationPitch; - - if (this.rotationYaw > 360f) - { - this.rotationYaw -= 360f; - } - - this.rotationYaw += this.motionZ * 14f; - this.rotationPitch += -this.motionX * 14f; - - this.rotationYaw *= 0.9f; - this.rotationPitch *= 0.9f; - - if (!this.world.isRemote && !this.hasActivated) - { - final BlockPos pos = new BlockPos(this); - - if (this.world.getBlockState(pos).getBlock() == this.getBlockState().getBlock()) - { - final IPlacementFlagCapability data = this.world.getChunk(pos) - .getCapability(CapabilitiesAether.CHUNK_PLACEMENT_FLAG, EnumFacing.UP); - - if (data != null) - { - this.allowDoubleDrops = !data.isModified(pos); - - this.world.setBlockToAir(pos); - } - } - else - { - this.setDead(); - } - - this.hasActivated = true; - } - - this.prevPosX = this.posX; - this.prevPosY = this.posY; - this.prevPosZ = this.posZ; - - this.move(MoverType.SELF, this.motionX, this.motionY, this.motionZ); - - if (!this.world.isRemote) - { - if (this.holdingPlayer != null) - { - if (this.ticksStuck > 30 - || this.getDistance(this.holdingPlayer.posX, this.holdingPlayer.posY, this.holdingPlayer.posZ) > 6.0D) - { - this.setHoldingPlayer(null); - } - - if (this.collided) - { - this.ticksStuck++; - } - else - { - this.ticksStuck = 0; - } - } - - this.updatePosition(); - } - } - - public void setHoldingPlayer(final EntityPlayer player) - { - this.holdingPlayer = player; - } - - public void updatePosition() - { - if (this.holdingPlayer == null) - { - this.ticksFalling++; - - final BlockPos pos = new BlockPos(this); - - if (this.ticksFalling >= 160) - { - this.destroy(); - - return; - } - - this.motionY -= 0.045D; - - if (this.onGround) - { - // Try to snap into a coordinate on the ground - this.motionX += (pos.getX() - this.posX + 0.45D) * 0.15D; - this.motionZ += (pos.getZ() - this.posZ + 0.45D) * 0.15D; - - final IBlockState state = this.world.getBlockState(pos); - - // We won't be able to land, reject and try to throw ourselves somewhere! - if (state.getBlock() != Blocks.AIR && !state.isNormalCube() && !state.getBlock().isReplaceable(this.world, pos)) - { - this.motionX = -0.15D + (this.rand.nextDouble() * 0.3D); - this.motionY = 0.5D; - this.motionZ = -0.15D + (this.rand.nextDouble() * 0.3D); - } - - final double distanceFromCenter = pos.distanceSq(this.posX + 0.45D, this.posY, this.posZ + 0.45D); - - if ((this.motionY + this.motionX + this.motionZ) <= 0.04D && distanceFromCenter <= 2.0D) - { - // We've stopped moving - if (!this.world.isRemote) - { - final IBlockState replacingState = this.world.getBlockState(pos); - - if (!replacingState.getBlock().isReplaceable(this.world, pos)) - { - this.destroy(); - - return; - } - - this.world.destroyBlock(pos, true); - - this.world.setBlockState(pos, this.getBlockState()); - this.world.notifyNeighborsOfStateChange(pos, this.getBlockState().getBlock(), false); - - if (!this.allowDoubleDrops) - { - final IPlacementFlagCapability data = this.world.getChunk(pos) - .getCapability(CapabilitiesAether.CHUNK_PLACEMENT_FLAG, EnumFacing.UP); - - if (data != null) - { - data.markModified(pos); - } - } - - this.setDead(); - - return; - } - } - - this.motionX *= 0.8D; - this.motionZ *= 0.8D; - } - else - { - this.motionX *= 0.95D; - this.motionZ *= 0.95D; - } - - this.motionY *= 0.94D; - } - else - { - this.ticksFalling = 0; - - // Get where the player is looking at - final Vec3d look = this.holdingPlayer.getLookVec(); - - final float distance = 2.5f; - - // Calculate the block's destination in front of the player - final double toX = this.holdingPlayer.posX + (look.x * distance); - final double toY = this.holdingPlayer.posY + (look.y * distance) + 1f; - final double toZ = this.holdingPlayer.posZ + (look.z * distance); - - // Slow down our block's movement to simulate weight - this.motionX *= 0.8D; - this.motionY *= 0.8D; - this.motionZ *= 0.8D; - - // Move the block towards where the player is looking - this.motionX += (toX - this.posX) * 0.1D; - this.motionY += (toY - this.posY) * 0.1D; - this.motionZ += (toZ - this.posZ) * 0.1D; - } - } - - private void destroy() - { - this.setDead(); - - final BlockPos pos = new BlockPos(this); - - final IBlockState state = this.getBlockState(); - - final NonNullList<ItemStack> drops = NonNullList.create(); - - state.getBlock().getDrops(drops, this.world, pos, state, 0); - - for (final ItemStack stack : drops) - { - Block.spawnAsEntity(this.world, pos, stack); - } - } - - public boolean isFalling() - { - return this.holdingPlayer == null; - } - - @Override - @SideOnly(Side.CLIENT) - public boolean canRenderOnFire() - { - return false; - } - - @Override - protected boolean canTriggerWalking() - { - return false; - } - - @Override - public boolean canBeCollidedWith() - { - return !this.isDead; - } - - @Override - protected void readEntityFromNBT(final NBTTagCompound compound) - { - final Block block = Block.getBlockById(compound.getInteger("Block")); - - this.setBlockState(block.getStateFromMeta(compound.getByte("BlockMeta"))); - this.ticksFalling = compound.getInteger("TicksFalling"); - this.allowDoubleDrops = compound.getBoolean("AllowDoubleDrops"); - - this.hasActivated = this.ticksExisted > 1; - } - - @Override - protected void writeEntityToNBT(final NBTTagCompound compound) - { - final IBlockState state = this.getBlockState(); - - final Block block = state.getBlock(); - - compound.setInteger("Block", Block.REGISTRY.getIDForObject(block)); - compound.setByte("BlockMeta", (byte) block.getMetaFromState(state)); - compound.setInteger("TicksFalling", this.ticksFalling); - compound.setBoolean("AllowDoubleDrops", this.allowDoubleDrops); - } - - public IBlockState getBlockState() - { - final Block block = Block.getBlockById(this.dataManager.get(BLOCK_NAME)); - - final int meta = (int) this.dataManager.get(BLOCK_METADATA); - - return block.getStateFromMeta(meta); - } - - public void setBlockState(final IBlockState state) - { - final Block block = state.getBlock(); - - this.dataManager.set(BLOCK_NAME, Block.REGISTRY.getIDForObject(block)); - this.dataManager.set(BLOCK_METADATA, (byte) block.getMetaFromState(state)); - } -} diff --git a/src/main/java/com/gildedgames/aether/common/entities/blocks/EntityParachute.java b/src/main/java/com/gildedgames/aether/common/entities/blocks/EntityParachute.java deleted file mode 100644 index 023240c09e..0000000000 --- a/src/main/java/com/gildedgames/aether/common/entities/blocks/EntityParachute.java +++ /dev/null @@ -1,226 +0,0 @@ -package com.gildedgames.aether.common.entities.blocks; - -import com.gildedgames.aether.api.registrar.ItemsAether; -import com.gildedgames.aether.common.AetherCore; -import com.gildedgames.aether.common.capabilities.entity.player.PlayerAether; -import com.gildedgames.aether.common.capabilities.entity.player.modules.PlayerParachuteModule; -import net.minecraft.entity.Entity; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.network.datasync.DataParameter; -import net.minecraft.network.datasync.DataSerializers; -import net.minecraft.network.datasync.EntityDataManager; -import net.minecraft.util.DamageSource; -import net.minecraft.util.ResourceLocation; -import net.minecraft.util.math.Vec3d; -import net.minecraft.world.World; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; - -public class EntityParachute extends Entity -{ - - private static final DataParameter<Integer> TYPE = EntityDataManager.createKey(EntityParachute.class, DataSerializers.VARINT); - - private EntityPlayer parachutingPlayer; - - private int parachuteTimer; - - public EntityParachute(final World world) - { - super(world); - - this.setDead(); - } - - public EntityParachute(final World world, final EntityPlayer player, final Type type) - { - super(world); - - this.setType(type); - this.parachutingPlayer = player; - - this.setPosition(player.posX, player.posY, player.posZ); - } - - @Override - public void entityInit() - { - this.dataManager.register(EntityParachute.TYPE, 0); - } - - @Override - public void onUpdate() - { - super.onUpdate(); - - if (this.getRidingEntity() == null) - { - this.startRiding(this.parachutingPlayer, true); - } - - if (!this.isDead && (this.getType() == Type.BLUE || this.getType() == Type.PURPLE)) - { - ++this.parachuteTimer; - } - - if (this.getRidingEntity() instanceof EntityPlayer) - { - final EntityPlayer player = (EntityPlayer) this.getRidingEntity(); - final Vec3d vec3 = player.getLookVec(); - - final PlayerAether playerAether = PlayerAether.getPlayer(player); - - int blueParachuteAbilityTime = 20; - int purpleParachuteAbilityTime = 90; - - if (this.getType() == Type.COLD) - { - if (!player.isSneaking()) - { - player.motionY = -0.08; - } - else - { - player.motionY = -0.24; - } - } - - if (this.getType() == Type.BLUE) - { - if (this.parachuteTimer <= blueParachuteAbilityTime) - { - player.motionY = 1.08; - } - else - { - replaceParachute(player, playerAether); - } - } - - if (this.getType() == Type.PURPLE) - { - if (this.parachuteTimer <= purpleParachuteAbilityTime) - { - player.motionX = vec3.x * 0.36; - player.motionY = 0.0; - player.motionZ = vec3.z * 0.36; - } - else if (this.parachuteTimer > (purpleParachuteAbilityTime + 2)) - { - replaceParachute(player, playerAether); - } - } - - player.isAirBorne = true; - - if (this.getType() == Type.BLUE && playerAether.getModule(PlayerParachuteModule.class).isUnderABlock((int) player.posY)) - { - replaceParachute(player, playerAether); - } - - if (player.onGround && this.getType() != Type.BLUE) - { - playerAether.getModule(PlayerParachuteModule.class).setParachuting(false, this.getType()); - } - - if (!playerAether.getModule(PlayerParachuteModule.class).isParachuting() || playerAether.getModule(PlayerParachuteModule.class).getParachuteEquipped()) - { - this.destroyParachute(playerAether); - } - - if (player.inventory.getStackInSlot(playerAether.getModule(PlayerParachuteModule.class).getParachuteItemSlot()).isEmpty()) - { - playerAether.getModule(PlayerParachuteModule.class).setParachuting(false, this.getType()); - this.destroyParachute(playerAether); - } - } - } - - public void replaceParachute(EntityPlayer player, PlayerAether playerAether) - { - playerAether.getModule(PlayerParachuteModule.class).setParachuting(true, Type.COLD); - - this.setType(Type.COLD); - } - - public void destroyParachute(PlayerAether playerAether) - { - this.parachuteTimer = 0; - this.setDead(); - - playerAether.getModule(PlayerParachuteModule.class).parachuteEquipped(false); - } - - @Override - @SideOnly(Side.CLIENT) - public boolean canRenderOnFire() - { - return false; - } - - @Override - protected boolean canTriggerWalking() - { - return false; - } - - public Type getType() - { - return Type.fromOrdinal(this.dataManager.get(EntityParachute.TYPE)); - } - - public void setType(final Type type) - { - this.dataManager.set(EntityParachute.TYPE, type.ordinal()); - } - - public EntityPlayer getParachutingPlayer() - { - return this.parachutingPlayer; - } - - @Override - public void readEntityFromNBT(final NBTTagCompound tag) - { - this.setType(Type.fromOrdinal(tag.getInteger("type"))); - } - - @Override - public void writeEntityToNBT(final NBTTagCompound tag) - { - tag.setInteger("type", this.getType().ordinal()); - } - - @Override - public boolean attackEntityFrom(final DamageSource source, final float damage) - { - return source.getTrueSource() != this.getRidingEntity(); - } - - public enum Type - { - COLD("cold"), PURPLE("purple"), BLUE("blue"); - - public final String name, desc; - - public final ResourceLocation texture; - - Type(final String name) - { - this.name = name; - this.desc = "cloudParachute.ability." + this.name; - - this.texture = AetherCore.getResource("textures/entities/parachute/parachute_" + this.name + ".png"); - } - - public static Type fromOrdinal(final int ordinal) - { - final Type[] type = values(); - - return type[ordinal >= type.length || ordinal < 0 ? 0 : ordinal]; - } - } - -} diff --git a/src/main/java/com/gildedgames/aether/common/entities/characters/EntityEdison.java b/src/main/java/com/gildedgames/aether/common/entities/characters/EntityEdison.java deleted file mode 100644 index fdcd7a27a4..0000000000 --- a/src/main/java/com/gildedgames/aether/common/entities/characters/EntityEdison.java +++ /dev/null @@ -1,233 +0,0 @@ -package com.gildedgames.aether.common.entities.characters; - -import com.gildedgames.aether.api.AetherAPI; -import com.gildedgames.aether.api.entity.EntityCharacter; -import com.gildedgames.aether.api.entity.IEntityEyesComponent; -import com.gildedgames.aether.api.shop.IShopDefinition; -import com.gildedgames.aether.api.shop.IShopInstance; -import com.gildedgames.aether.api.shop.IShopInstanceGroup; -import com.gildedgames.aether.common.AetherCore; -import com.gildedgames.aether.common.capabilities.entity.player.PlayerAether; -import com.gildedgames.aether.common.capabilities.entity.player.modules.PlayerDialogModule; -import com.gildedgames.aether.common.capabilities.entity.player.modules.PlayerProgressModule; -import com.gildedgames.aether.common.entities.util.EntityBodyHelperNoRotation; -import com.gildedgames.aether.common.entities.util.eyes.EntityEyesComponent; -import com.gildedgames.aether.common.entities.util.eyes.IEntityEyesComponentProvider; -import com.gildedgames.aether.common.shop.ShopInstanceGroup; -import com.gildedgames.orbis.lib.util.mc.NBTHelper; -import net.minecraft.block.Block; -import net.minecraft.entity.EntityBodyHelper; -import net.minecraft.entity.SharedMonsterAttributes; -import net.minecraft.entity.ai.EntityAIWatchClosest; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.util.EnumHand; -import net.minecraft.util.ResourceLocation; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.World; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; - -import java.util.Optional; -import java.util.Random; - -public class EntityEdison extends EntityCharacter implements IEntityEyesComponentProvider -{ - public static final ResourceLocation SPEAKER = AetherCore.getResource("edison"); - - public static final ResourceLocation HOLIDAY_SHOP = AetherCore.getResource("edison_holiday"); - - private final IEntityEyesComponent eyes = new EntityEyesComponent(this); - - private BlockPos spawned; - - public EntityEdison(final World worldIn) - { - super(worldIn); - - this.setSize(0.9F, 1.35F); - - this.rotationYaw = 0.3F; - } - - @Override - public IShopInstanceGroup createShopInstanceGroup() - { - IShopInstanceGroup group = new ShopInstanceGroup(); - - Optional<IShopDefinition> shopDefinition = AetherAPI.content().shop().getShopDefinition(SPEAKER); - - if (shopDefinition.isPresent()) - { - IShopInstance normalShop = AetherAPI.content().shop().createInstance(SPEAKER, shopDefinition.get(), new Random(this.getRNG().nextLong())); - - group.setShopInstance(0, normalShop); - } - - shopDefinition = AetherAPI.content().shop().getShopDefinition(HOLIDAY_SHOP); - - if (shopDefinition.isPresent()) - { - IShopInstance holidayShop = AetherAPI.content().shop().createInstance(HOLIDAY_SHOP, shopDefinition.get(), new Random(this.getRNG().nextLong())); - - group.setShopInstance(1, holidayShop); - } - - return group; - } - - @Override - protected EntityBodyHelper createBodyHelper() - { - return new EntityBodyHelperNoRotation(this); - } - - @Override - protected void initEntityAI() - { - //this.tasks.addTask(1, new EntityAILookIdle(this)); - this.tasks.addTask(2, new EntityAIWatchClosest(this, EntityPlayer.class, 10.0F)); - } - - @Override - protected void applyEntityAttributes() - { - super.applyEntityAttributes(); - - this.getEntityAttribute(SharedMonsterAttributes.MOVEMENT_SPEED).setBaseValue(0.4D); - this.getEntityAttribute(SharedMonsterAttributes.KNOCKBACK_RESISTANCE).setBaseValue(1.0D); - } - - @Override - public void writeEntityToNBT(final NBTTagCompound compound) - { - super.writeEntityToNBT(compound); - - compound.setTag("spawned", NBTHelper.writeBlockPos(this.spawned)); - } - - @Override - public void readEntityFromNBT(final NBTTagCompound compound) - { - super.readEntityFromNBT(compound); - - this.spawned = NBTHelper.readBlockPos(compound.getCompoundTag("spawned")); - - if (this.spawned != null) - { - this.setHomePosAndDistance(this.spawned, 3); - } - } - - @Override - protected void setRotation(final float yaw, final float pitch) - { - - } - - @Override - public void entityInit() - { - super.entityInit(); - } - - @Override - @SideOnly(Side.CLIENT) - public void turn(final float yaw, final float pitch) - { - - } - - @Override - public void onUpdate() - { - this.posX = this.prevPosX; - this.posZ = this.prevPosZ; - - if (this.spawned == null) - { - this.spawned = this.getPosition(); - this.setHomePosAndDistance(this.spawned, 3); - } - - super.onUpdate(); - - this.eyes.update(); - - this.posX = this.prevPosX; - this.posZ = this.prevPosZ; - } - - @Override - public boolean processInteract(final EntityPlayer player, final EnumHand hand) - { - if (!super.processInteract(player, hand)) - { - final PlayerAether playerAether = PlayerAether.getPlayer(player); - final PlayerDialogModule dialogModule = playerAether.getModule(PlayerDialogModule.class); - final PlayerProgressModule progressModule = playerAether.getModule(PlayerProgressModule.class); - - dialogModule.setTalkingEntity(this); - - if (!player.world.isRemote) - { - boolean hasDied = progressModule.hasDiedInAether(); - - if (progressModule.hasTalkedTo(EntityEdison.SPEAKER)) - { - String node = "start"; - - if (hasDied && !progressModule.getBoolean("talkToEdisonAfterDying")) - { - node = "start_respawn"; - } - - dialogModule.openScene(AetherCore.getResource("edison/outpost_greet"), node); - - if (hasDied) - { - progressModule.setBoolean("talkToEdisonAfterDying", true); - } - } - else - { - String node = hasDied ? "start_respawn_not_introduced" : "start_not_introduced"; - - dialogModule.openScene(AetherCore.getResource("edison/outpost_greet"), node); - progressModule.setHasTalkedTo(EntityEdison.SPEAKER, true); - - if (hasDied) - { - progressModule.setBoolean("talkToEdisonAfterDying", true); - } - } - } - } - - return true; - } - - @Override - public boolean isOnLadder() - { - return false; - } - - @Override - protected void playStepSound(final BlockPos pos, final Block blockIn) - { - - } - - @Override - protected boolean canTriggerWalking() - { - return false; - } - - @Override - public IEntityEyesComponent getEyes() - { - return this.eyes; - } -} diff --git a/src/main/java/com/gildedgames/aether/common/entities/characters/EntityJosediya.java b/src/main/java/com/gildedgames/aether/common/entities/characters/EntityJosediya.java deleted file mode 100644 index 6785510e34..0000000000 --- a/src/main/java/com/gildedgames/aether/common/entities/characters/EntityJosediya.java +++ /dev/null @@ -1,172 +0,0 @@ -package com.gildedgames.aether.common.entities.characters; - -import com.gildedgames.aether.api.entity.EntityCharacter; -import com.gildedgames.aether.api.entity.IEntityEyesComponent; -import com.gildedgames.aether.api.shop.IShopInstanceGroup; -import com.gildedgames.aether.common.AetherCore; -import com.gildedgames.aether.common.capabilities.entity.player.PlayerAether; -import com.gildedgames.aether.common.capabilities.entity.player.modules.PlayerDialogModule; -import com.gildedgames.aether.common.capabilities.entity.player.modules.PlayerProgressModule; -import com.gildedgames.aether.common.entities.util.eyes.EntityEyesComponent; -import com.gildedgames.aether.common.entities.util.eyes.IEntityEyesComponentProvider; -import com.gildedgames.orbis.lib.util.mc.NBTHelper; -import net.minecraft.block.Block; -import net.minecraft.entity.SharedMonsterAttributes; -import net.minecraft.entity.ai.EntityAILookIdle; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.util.EnumHand; -import net.minecraft.util.ResourceLocation; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.World; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; - -public class EntityJosediya extends EntityCharacter implements IEntityEyesComponentProvider -{ - public static final ResourceLocation SPEAKER = AetherCore.getResource("josediya"); - - private final IEntityEyesComponent eyes = new EntityEyesComponent(this); - - private BlockPos spawned; - - public EntityJosediya(final World worldIn) - { - super(worldIn); - - this.setSize(0.7F, 2.0F); - } - - @Override - public IShopInstanceGroup createShopInstanceGroup() - { - return null; - } - - @Override - protected void initEntityAI() - { - this.tasks.addTask(3, new EntityAILookIdle(this)); - //this.tasks.addTask(2, new EntityAIWatchClosest(this, EntityPlayer.class, 50.0F, 1.0F)); - } - - @Override - protected void applyEntityAttributes() - { - super.applyEntityAttributes(); - - this.getEntityAttribute(SharedMonsterAttributes.MOVEMENT_SPEED).setBaseValue(0.4D); - this.getEntityAttribute(SharedMonsterAttributes.KNOCKBACK_RESISTANCE).setBaseValue(1.0D); - } - - @Override - public void writeEntityToNBT(final NBTTagCompound compound) - { - super.writeEntityToNBT(compound); - - compound.setTag("spawned", NBTHelper.writeBlockPos(this.spawned)); - } - - @Override - public void readEntityFromNBT(final NBTTagCompound compound) - { - super.readEntityFromNBT(compound); - - this.spawned = NBTHelper.readBlockPos(compound.getCompoundTag("spawned")); - - if (this.spawned != null) - { - this.setHomePosAndDistance(this.spawned, 3); - } - } - - @Override - public void entityInit() - { - super.entityInit(); - } - - @Override - protected void setRotation(final float yaw, final float pitch) - { - - } - - @Override - @SideOnly(Side.CLIENT) - public void turn(final float yaw, final float pitch) - { - - } - - @Override - public void onUpdate() - { - this.posX = this.prevPosX; - this.posZ = this.prevPosZ; - - if (this.spawned == null) - { - this.spawned = this.getPosition(); - this.setHomePosAndDistance(this.spawned, 3); - } - - super.onUpdate(); - - this.eyes.update(); - - this.posX = this.prevPosX; - this.posZ = this.prevPosZ; - } - - @Override - public boolean processInteract(final EntityPlayer player, final EnumHand hand) - { - if (!super.processInteract(player, hand)) - { - if (!player.world.isRemote) - { - final PlayerAether playerAether = PlayerAether.getPlayer(player); - final PlayerDialogModule dialogModule = playerAether.getModule(PlayerDialogModule.class); - final PlayerProgressModule progressModule = playerAether.getModule(PlayerProgressModule.class); - - boolean talkedBefore = progressModule.hasTalkedTo(EntityJosediya.SPEAKER); - - String node = talkedBefore ? "start" : "start_not_introduced"; - - dialogModule.openScene(AetherCore.getResource("josediya/outpost_greet"), node); - - if (!talkedBefore) - { - progressModule.setHasTalkedTo(EntityJosediya.SPEAKER, true); - } - } - } - - return true; - } - - @Override - public boolean isOnLadder() - { - return false; - } - - @Override - protected void playStepSound(final BlockPos pos, final Block blockIn) - { - - } - - @Override - protected boolean canTriggerWalking() - { - return false; - } - - @Override - public IEntityEyesComponent getEyes() - { - return this.eyes; - } -} diff --git a/src/main/java/com/gildedgames/aether/common/entities/characters/EntityMysteriousFigure.java b/src/main/java/com/gildedgames/aether/common/entities/characters/EntityMysteriousFigure.java deleted file mode 100644 index b1ba315d8b..0000000000 --- a/src/main/java/com/gildedgames/aether/common/entities/characters/EntityMysteriousFigure.java +++ /dev/null @@ -1,211 +0,0 @@ -package com.gildedgames.aether.common.entities.characters; - -import com.gildedgames.aether.api.AetherAPI; -import com.gildedgames.aether.api.entity.EntityCharacter; -import com.gildedgames.aether.api.shop.IShopDefinition; -import com.gildedgames.aether.api.shop.IShopInstance; -import com.gildedgames.aether.api.shop.IShopInstanceGroup; -import com.gildedgames.aether.common.AetherCelebrations; -import com.gildedgames.aether.common.AetherCore; -import com.gildedgames.aether.common.capabilities.entity.player.PlayerAether; -import com.gildedgames.aether.common.capabilities.entity.player.modules.PlayerDialogModule; -import com.gildedgames.aether.common.shop.ShopInstanceGroup; -import com.gildedgames.orbis.lib.util.mc.NBTHelper; -import net.minecraft.block.Block; -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityBodyHelper; -import net.minecraft.entity.SharedMonsterAttributes; -import net.minecraft.entity.ai.EntityAILookIdle; -import net.minecraft.entity.ai.EntityAIWatchClosest; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.util.EnumHand; -import net.minecraft.util.ResourceLocation; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.World; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; - -import java.time.LocalDateTime; -import java.time.Month; -import java.util.Optional; -import java.util.Random; - -public class EntityMysteriousFigure extends EntityCharacter -{ - public static final ResourceLocation SPEAKER = AetherCore.getResource("mysterious_figure"); - - private BlockPos spawned; - - public EntityMysteriousFigure(final World worldIn) - { - super(worldIn); - - this.setSize(1.0F, 2.0F); - } - - @Override - public IShopInstanceGroup createShopInstanceGroup() - { - IShopInstanceGroup group = new ShopInstanceGroup(); - - Optional<IShopDefinition> shopDefinition = AetherAPI.content().shop().getShopDefinition(SPEAKER); - - if (shopDefinition.isPresent()) - { - IShopInstance instance = AetherAPI.content().shop().createInstance(SPEAKER, shopDefinition.get(), new Random(this.getRNG().nextLong())); - - group.setShopInstance(0, instance); - } - - return group; - } - - @Override - public void applyEntityCollision(Entity entityIn) - { - super.applyEntityCollision(entityIn); - } - - @Override - protected EntityBodyHelper createBodyHelper() - { - return new EntityBodyHelper(this); - } - - @Override - protected void initEntityAI() - { - super.initEntityAI(); - - this.tasks.addTask(3, new EntityAILookIdle(this)); - this.tasks.addTask(2, new EntityAIWatchClosest(this, EntityPlayer.class, 50.0F, 1.0F)); - } - - @Override - protected void applyEntityAttributes() - { - super.applyEntityAttributes(); - - this.getEntityAttribute(SharedMonsterAttributes.MOVEMENT_SPEED).setBaseValue(0.4D); - this.getEntityAttribute(SharedMonsterAttributes.KNOCKBACK_RESISTANCE).setBaseValue(1.0D); - } - - @Override - public void writeEntityToNBT(final NBTTagCompound compound) - { - super.writeEntityToNBT(compound); - - compound.setTag("spawned", NBTHelper.writeBlockPos(this.spawned)); - } - - @Override - public void readEntityFromNBT(final NBTTagCompound compound) - { - super.readEntityFromNBT(compound); - - this.spawned = NBTHelper.readBlockPos(compound.getCompoundTag("spawned")); - - if (this.spawned != null) - { - this.setHomePosAndDistance(this.spawned, 3); - } - } - - @Override - protected void setRotation(final float yaw, final float pitch) - { - //super.setRotation(yaw, pitch); - } - - @Override - public void entityInit() - { - super.entityInit(); - } - - @Override - @SideOnly(Side.CLIENT) - public void turn(final float yaw, final float pitch) - { - //super.turn(yaw, pitch); - } - - @Override - public void onUpdate() - { - if (!AetherCelebrations.isHalloweenEvent()) - { - if (this.width > 0 && this.height > 0) - { - this.setSize(0, 0); - } - } - else - { - if (this.width == 0 && this.height == 0) - { - this.setSize(1.0F, 2.0F); - } - } - - this.posX = this.prevPosX; - this.posZ = this.prevPosZ; - - if (this.spawned == null) - { - this.spawned = this.getPosition(); - this.setHomePosAndDistance(this.spawned, 3); - } - - super.onUpdate(); - - this.posX = this.prevPosX; - this.posZ = this.prevPosZ; - } - - @Override - public boolean processInteract(final EntityPlayer player, final EnumHand hand) - { - LocalDateTime time = LocalDateTime.now(); - - if (time.getMonth() != Month.OCTOBER) - { - return false; - } - - if (!super.processInteract(player, hand)) - { - final PlayerAether playerAether = PlayerAether.getPlayer(player); - final PlayerDialogModule dialogModule = playerAether.getModule(PlayerDialogModule.class); - - dialogModule.setTalkingEntity(this); - - if (!player.world.isRemote) - { - dialogModule.openScene(AetherCore.getResource("mysterious_figure/start"), "start"); - } - } - - return true; - } - - @Override - public boolean isOnLadder() - { - return false; - } - - @Override - protected void playStepSound(final BlockPos pos, final Block blockIn) - { - - } - - @Override - protected boolean canTriggerWalking() - { - return false; - } - -} diff --git a/src/main/java/com/gildedgames/aether/common/entities/characters/EntityNecromancer.java b/src/main/java/com/gildedgames/aether/common/entities/characters/EntityNecromancer.java deleted file mode 100644 index 71e3a63eb1..0000000000 --- a/src/main/java/com/gildedgames/aether/common/entities/characters/EntityNecromancer.java +++ /dev/null @@ -1,116 +0,0 @@ -package com.gildedgames.aether.common.entities.characters; - -import com.gildedgames.aether.api.entity.EntityCharacter; -import com.gildedgames.aether.api.player.IPlayerAether; -import com.gildedgames.aether.api.shop.IShopInstanceGroup; -import com.gildedgames.aether.common.AetherCore; -import com.gildedgames.aether.common.capabilities.entity.player.PlayerAether; -import com.gildedgames.aether.common.capabilities.entity.player.modules.PlayerDialogModule; -import com.gildedgames.orbis.lib.util.mc.NBTHelper; -import net.minecraft.entity.SharedMonsterAttributes; -import net.minecraft.entity.ai.EntityAILookIdle; -import net.minecraft.entity.ai.EntityAIWatchClosest; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.util.EnumHand; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.World; - -public class EntityNecromancer extends EntityCharacter -{ - - private BlockPos spawned; - - public EntityNecromancer(final World worldIn) - { - super(worldIn); - - this.setSize(1.0F, 2.5F); - - this.rotationYaw = 0.3F; - } - - @Override - public IShopInstanceGroup createShopInstanceGroup() - { - return null; - } - - @Override - protected void initEntityAI() - { - super.initEntityAI(); - - this.tasks.addTask(3, new EntityAILookIdle(this)); - this.tasks.addTask(2, new EntityAIWatchClosest(this, EntityPlayer.class, 50.0F, 1.0F)); - } - - @Override - protected void applyEntityAttributes() - { - super.applyEntityAttributes(); - - this.getEntityAttribute(SharedMonsterAttributes.MOVEMENT_SPEED).setBaseValue(0.45D); - this.getEntityAttribute(SharedMonsterAttributes.KNOCKBACK_RESISTANCE).setBaseValue(1.0D); - this.getEntityAttribute(SharedMonsterAttributes.FOLLOW_RANGE).setBaseValue(250); - } - - @Override - public void writeEntityToNBT(final NBTTagCompound compound) - { - super.writeEntityToNBT(compound); - - compound.setTag("spawned", NBTHelper.writeBlockPos(this.spawned)); - } - - @Override - public void readEntityFromNBT(final NBTTagCompound compound) - { - super.readEntityFromNBT(compound); - - this.spawned = NBTHelper.readBlockPos(compound.getCompoundTag("spawned")); - - if (this.spawned != null) - { - this.setHomePosAndDistance(this.spawned, 3); - } - } - - @Override - public void entityInit() - { - super.entityInit(); - } - - @Override - public void onUpdate() - { - this.setHomePosAndDistance(this.getPosition(), 500); - - if (this.spawned == null) - { - this.spawned = this.getPosition(); - } - - super.onUpdate(); - } - - @Override - public boolean processInteract(final EntityPlayer player, final EnumHand hand) - { - if (!super.processInteract(player, hand)) - { - if (!player.world.isRemote) - { - final IPlayerAether aePlayer = PlayerAether.getPlayer(player); - final PlayerDialogModule dialogModule = aePlayer.getModule(PlayerDialogModule.class); - - dialogModule.setTalkingEntity(this); - dialogModule.openScene(AetherCore.getResource("necromancer/start"), "#start"); - } - } - - return true; - } - -} diff --git a/src/main/java/com/gildedgames/aether/common/entities/characters/EntityTivalier.java b/src/main/java/com/gildedgames/aether/common/entities/characters/EntityTivalier.java deleted file mode 100644 index d0ee6c42c8..0000000000 --- a/src/main/java/com/gildedgames/aether/common/entities/characters/EntityTivalier.java +++ /dev/null @@ -1,147 +0,0 @@ -package com.gildedgames.aether.common.entities.characters; - -import com.gildedgames.aether.api.entity.EntityCharacter; -import com.gildedgames.aether.api.shop.IShopInstanceGroup; -import com.gildedgames.aether.common.entities.util.EntityBodyHelperNoRotation; -import com.gildedgames.orbis.lib.util.mc.NBTHelper; -import net.minecraft.block.Block; -import net.minecraft.entity.EntityBodyHelper; -import net.minecraft.entity.SharedMonsterAttributes; -import net.minecraft.entity.ai.EntityAIWatchClosest; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.util.EnumHand; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.RayTraceResult; -import net.minecraft.util.text.ITextComponent; -import net.minecraft.world.World; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; - -public class EntityTivalier extends EntityCharacter -{ - private BlockPos spawned; - - public EntityTivalier(final World worldIn) - { - super(worldIn); - - this.setSize(1.6F, 1.6F); - } - - @Override - public IShopInstanceGroup createShopInstanceGroup() - { - return null; - } - - @Override - protected EntityBodyHelper createBodyHelper() - { - return new EntityBodyHelperNoRotation(this); - } - - @Override - protected void initEntityAI() - { - this.tasks.addTask(2, new EntityAIWatchClosest(this, EntityPlayer.class, 10.0F)); - } - - @Override - protected void applyEntityAttributes() - { - super.applyEntityAttributes(); - - this.getEntityAttribute(SharedMonsterAttributes.MOVEMENT_SPEED).setBaseValue(0.4D); - this.getEntityAttribute(SharedMonsterAttributes.KNOCKBACK_RESISTANCE).setBaseValue(1.0D); - } - - @Override - public void writeEntityToNBT(final NBTTagCompound compound) - { - super.writeEntityToNBT(compound); - - compound.setTag("spawned", NBTHelper.writeBlockPos(this.spawned)); - } - - @Override - public void readEntityFromNBT(final NBTTagCompound compound) - { - super.readEntityFromNBT(compound); - - this.spawned = NBTHelper.readBlockPos(compound.getCompoundTag("spawned")); - - if (this.spawned != null) - { - this.setHomePosAndDistance(this.spawned, 3); - } - } - - @Override - public ITextComponent getHoverText(World world, RayTraceResult result) - { - return null; - } - - @Override - public void entityInit() - { - super.entityInit(); - } - - @Override - protected void setRotation(final float yaw, final float pitch) - { - - } - - @Override - @SideOnly(Side.CLIENT) - public void turn(final float yaw, final float pitch) - { - - } - - @Override - public void onUpdate() - { - this.posX = this.prevPosX; - this.posZ = this.prevPosZ; - - if (this.spawned == null) - { - this.spawned = this.getPosition(); - this.setHomePosAndDistance(this.spawned, 3); - } - - super.onUpdate(); - - this.posX = this.prevPosX; - this.posZ = this.prevPosZ; - } - - @Override - public boolean processInteract(final EntityPlayer player, final EnumHand hand) - { - return super.processInteract(player, hand); - } - - @Override - public boolean isOnLadder() - { - return false; - } - - @Override - protected void playStepSound(final BlockPos pos, final Block blockIn) - { - - } - - @Override - protected boolean canTriggerWalking() - { - return false; - } - -} diff --git a/src/main/java/com/gildedgames/aether/common/entities/companions/EntityCombatCompanion.java b/src/main/java/com/gildedgames/aether/common/entities/companions/EntityCombatCompanion.java deleted file mode 100644 index 2a11531b1a..0000000000 --- a/src/main/java/com/gildedgames/aether/common/entities/companions/EntityCombatCompanion.java +++ /dev/null @@ -1,43 +0,0 @@ -package com.gildedgames.aether.common.entities.companions; - -import com.gildedgames.aether.common.entities.ai.companion.EntityAICompanionOwnerHurt; -import com.gildedgames.aether.common.entities.ai.companion.EntityAICompanionTargetEnemy; -import net.minecraft.entity.SharedMonsterAttributes; -import net.minecraft.entity.ai.EntityAIAttackMelee; -import net.minecraft.entity.ai.EntityAIBase; -import net.minecraft.world.World; - -public abstract class EntityCombatCompanion extends EntityCompanion -{ - - public EntityCombatCompanion(World worldIn) - { - super(worldIn); - } - - @Override - protected void initEntityAI() - { - super.initEntityAI(); - - EntityAIBase attack = new EntityAIAttackMelee(this, 0.7D, true); - - attack.setMutexBits(1); - - this.tasks.addTask(0, attack); - - this.targetTasks.addTask(0, new EntityAICompanionOwnerHurt(this)); - this.targetTasks.addTask(1, new EntityAICompanionTargetEnemy(this)); - } - - @Override - protected void applyEntityAttributes() - { - super.applyEntityAttributes(); - - this.getAttributeMap().registerAttribute(SharedMonsterAttributes.ATTACK_DAMAGE).setBaseValue(2.0D); - - this.getEntityAttribute(SharedMonsterAttributes.FOLLOW_RANGE).setBaseValue(10.0D); - } - -} diff --git a/src/main/java/com/gildedgames/aether/common/entities/companions/EntityCompanion.java b/src/main/java/com/gildedgames/aether/common/entities/companions/EntityCompanion.java deleted file mode 100644 index 926efd91fb..0000000000 --- a/src/main/java/com/gildedgames/aether/common/entities/companions/EntityCompanion.java +++ /dev/null @@ -1,175 +0,0 @@ -package com.gildedgames.aether.common.entities.companions; - -import com.gildedgames.aether.common.entities.ai.companion.EntityAICompanionFollow; -import com.google.common.base.Optional; -import net.minecraft.block.Block; -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityCreature; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.SharedMonsterAttributes; -import net.minecraft.entity.ai.EntityAIBase; -import net.minecraft.entity.ai.EntityAILookIdle; -import net.minecraft.entity.ai.EntityAISwimming; -import net.minecraft.entity.ai.EntityAIWatchClosest; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.network.datasync.DataParameter; -import net.minecraft.network.datasync.DataSerializers; -import net.minecraft.util.DamageSource; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.World; - -import javax.annotation.Nullable; -import java.util.UUID; - -public abstract class EntityCompanion extends EntityCreature -{ - private static final DataParameter<Optional<UUID>> OWNER_UUID = new DataParameter<>(20, DataSerializers.OPTIONAL_UNIQUE_ID); - - protected boolean isFlying = false; - - private boolean wasDespawned = false; - - public EntityCompanion(final World worldIn) - { - super(worldIn); - } - - @Override - public void setAttackTarget(@Nullable final EntityLivingBase target) - { - if (target == this.getOwner()) - { - return; - } - - super.setAttackTarget(target); - } - - @Override - protected void initEntityAI() - { - final EntityAIBase follow = new EntityAICompanionFollow(this); - - follow.setMutexBits(1); - - this.tasks.addTask(1, follow); - this.tasks.addTask(2, new EntityAISwimming(this)); - this.tasks.addTask(3, new EntityAILookIdle(this)); - this.tasks.addTask(4, new EntityAIWatchClosest(this, EntityPlayer.class, 10.0F)); - } - - @Override - protected void applyEntityAttributes() - { - super.applyEntityAttributes(); - - this.getEntityAttribute(SharedMonsterAttributes.MAX_HEALTH).setBaseValue(20.0D); - } - - @Override - protected void entityInit() - { - super.entityInit(); - - this.dataManager.register(OWNER_UUID, Optional.absent()); - } - - @Override - protected void playStepSound(final BlockPos pos, final Block blockIn) - { - if (!this.isFlying) - { - super.playStepSound(pos, blockIn); - } - } - - @Override - public boolean canTriggerWalking() - { - return !this.isFlying; - } - - @Override - public boolean canDespawn() - { - return false; - } - - @Override - public void onUpdate() - { - if (!this.world.isRemote && (this.getOwner() == null || this.getOwner().isDead)) - { - this.setDead(); - - this.wasDespawned = true; - } - - super.onUpdate(); - - this.fallDistance = 0.0f; - } - - @Override - public boolean attackEntityFrom(final DamageSource source, final float amount) - { - final Entity attacker = source.getTrueSource(); - - if (attacker != null && attacker == this.getOwner()) - { - return super.attackEntityFrom(source, 0.0f); - } - - return super.attackEntityFrom(source, amount); - } - - @Override - protected void collideWithEntity(final Entity entity) - { - if (entity != this.getOwner()) - { - entity.applyEntityCollision(this); - } - } - - @Override - public boolean writeToNBTOptional(final NBTTagCompound compound) - { - // Never save Companions to disk... - return false; - } - - @Override - public void setPortal(final BlockPos pos) - { - // Never teleport the companion... - } - - public EntityPlayer getOwner() - { - final Optional<UUID> uuid = this.dataManager.get(OWNER_UUID); - - if (!uuid.isPresent()) - { - return null; - } - - return this.world.getPlayerEntityByUUID(uuid.get()); - } - - public void setOwner(final EntityPlayer owner) - { - this.dataManager.set(OWNER_UUID, owner == null ? Optional.absent() : Optional.of(owner.getUniqueID())); - } - - public boolean wasDespawned() - { - return this.wasDespawned; - } - - public void setDespawned(final boolean despawned) - { - this.wasDespawned = despawned; - } -} diff --git a/src/main/java/com/gildedgames/aether/common/entities/companions/EntityEtherealWisp.java b/src/main/java/com/gildedgames/aether/common/entities/companions/EntityEtherealWisp.java deleted file mode 100644 index 02d0eab1f4..0000000000 --- a/src/main/java/com/gildedgames/aether/common/entities/companions/EntityEtherealWisp.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.gildedgames.aether.common.entities.companions; - -import net.minecraft.world.World; - -public class EntityEtherealWisp extends EntityCompanion -{ - public EntityEtherealWisp(World worldIn) - { - super(worldIn); - - this.setSize(0.75f, 2.0f); - - this.stepHeight = 1.0F; - this.isFlying = true; - } -} diff --git a/src/main/java/com/gildedgames/aether/common/entities/companions/EntityFangrin.java b/src/main/java/com/gildedgames/aether/common/entities/companions/EntityFangrin.java deleted file mode 100644 index 6e0d56a449..0000000000 --- a/src/main/java/com/gildedgames/aether/common/entities/companions/EntityFangrin.java +++ /dev/null @@ -1,22 +0,0 @@ -package com.gildedgames.aether.common.entities.companions; - -import net.minecraft.entity.SharedMonsterAttributes; -import net.minecraft.world.World; - -public class EntityFangrin extends EntityCombatCompanion -{ - public EntityFangrin(World worldIn) - { - super(worldIn); - - this.setSize(1.0F, 0.9F); - } - - @Override - protected void applyEntityAttributes() - { - super.applyEntityAttributes(); - - this.getEntityAttribute(SharedMonsterAttributes.ATTACK_DAMAGE).setBaseValue(3.0D); - } -} diff --git a/src/main/java/com/gildedgames/aether/common/entities/companions/EntityFleetingWisp.java b/src/main/java/com/gildedgames/aether/common/entities/companions/EntityFleetingWisp.java deleted file mode 100644 index aa6d2d7def..0000000000 --- a/src/main/java/com/gildedgames/aether/common/entities/companions/EntityFleetingWisp.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.gildedgames.aether.common.entities.companions; - -import net.minecraft.world.World; - -public class EntityFleetingWisp extends EntityCompanion -{ - public EntityFleetingWisp(World worldIn) - { - super(worldIn); - - this.setSize(0.75f, 2.0f); - this.stepHeight = 1.0F; - - this.isFlying = true; - } -} diff --git a/src/main/java/com/gildedgames/aether/common/entities/companions/EntityFrostpineTotem.java b/src/main/java/com/gildedgames/aether/common/entities/companions/EntityFrostpineTotem.java deleted file mode 100644 index 85203a0239..0000000000 --- a/src/main/java/com/gildedgames/aether/common/entities/companions/EntityFrostpineTotem.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.gildedgames.aether.common.entities.companions; - -import net.minecraft.world.World; - -public class EntityFrostpineTotem extends EntityCompanion -{ - public EntityFrostpineTotem(World worldIn) - { - super(worldIn); - - this.setSize(0.9f, 2.0f); - - this.stepHeight = 1.0F; - this.isFlying = true; - } -} diff --git a/src/main/java/com/gildedgames/aether/common/entities/companions/EntityKraisith.java b/src/main/java/com/gildedgames/aether/common/entities/companions/EntityKraisith.java deleted file mode 100644 index 63daef9b0f..0000000000 --- a/src/main/java/com/gildedgames/aether/common/entities/companions/EntityKraisith.java +++ /dev/null @@ -1,47 +0,0 @@ -package com.gildedgames.aether.common.entities.companions; - -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.SharedMonsterAttributes; -import net.minecraft.init.MobEffects; -import net.minecraft.potion.PotionEffect; -import net.minecraft.util.DamageSource; -import net.minecraft.world.World; - -public class EntityKraisith extends EntityCombatCompanion -{ - public EntityKraisith(World worldIn) - { - super(worldIn); - } - - @Override - protected void applyEntityAttributes() - { - super.applyEntityAttributes(); - - this.getEntityAttribute(SharedMonsterAttributes.ATTACK_DAMAGE).setBaseValue(1.0D); - } - - @Override - public boolean attackEntityAsMob(Entity entity) - { - boolean flag = entity.attackEntityFrom(DamageSource.causeMobDamage(this), - (float) ((int) this.getEntityAttribute(SharedMonsterAttributes.ATTACK_DAMAGE).getAttributeValue())); - - if (flag) - { - this.applyEnchantments(this, entity); - - if (entity instanceof EntityLivingBase) - { - EntityLivingBase living = (EntityLivingBase) entity; - - living.addPotionEffect(new PotionEffect(MobEffects.SLOWNESS, 20, 3)); - } - } - - return flag; - } - -} diff --git a/src/main/java/com/gildedgames/aether/common/entities/companions/EntityNexSpirit.java b/src/main/java/com/gildedgames/aether/common/entities/companions/EntityNexSpirit.java deleted file mode 100644 index 4fc1e7bd8a..0000000000 --- a/src/main/java/com/gildedgames/aether/common/entities/companions/EntityNexSpirit.java +++ /dev/null @@ -1,59 +0,0 @@ -package com.gildedgames.aether.common.entities.companions; - -import net.minecraft.network.datasync.DataParameter; -import net.minecraft.network.datasync.DataSerializers; -import net.minecraft.world.World; - -public class EntityNexSpirit extends EntityCompanion -{ - private static final DataParameter<Boolean> IS_BROKEN = new DataParameter<>(21, DataSerializers.BOOLEAN); - - public EntityNexSpirit(World worldIn) - { - super(worldIn); - - this.setSize(0.6f, 1.85f); - this.stepHeight = 1.0F; - this.isFlying = true; - } - - @Override - public void onUpdate() - { - super.onUpdate(); - - // if (this.getOwner() != null) - // { - // PlayerAether aePlayer = PlayerAether.getPlayer(this.getOwner()); - // - // PlayerCompanionModule companionManager = aePlayer.getCompanionModule(); - // - // ItemStack equippedCompanion = companionManager.getCompanionItem(); - // - // if (equippedCompanion.getItem() instanceof ItemDeathSeal) - // { - // long ticks = ItemDeathSeal.getTicksUntilEnabled(equippedCompanion, this.world); - // - // this.setBroken(ticks > 0); - // } - // } - } - - @Override - protected void entityInit() - { - super.entityInit(); - - this.dataManager.register(IS_BROKEN, false); - } - - public boolean isBroken() - { - return this.dataManager.get(IS_BROKEN); - } - - public void setBroken(boolean broken) - { - this.dataManager.set(IS_BROKEN, broken); - } -} diff --git a/src/main/java/com/gildedgames/aether/common/entities/companions/EntityPinkBabySwet.java b/src/main/java/com/gildedgames/aether/common/entities/companions/EntityPinkBabySwet.java deleted file mode 100644 index ca05cc1468..0000000000 --- a/src/main/java/com/gildedgames/aether/common/entities/companions/EntityPinkBabySwet.java +++ /dev/null @@ -1,78 +0,0 @@ -package com.gildedgames.aether.common.entities.companions; - -import com.gildedgames.aether.common.entities.ai.hopping.HoppingMoveHelper; -import net.minecraft.init.SoundEvents; -import net.minecraft.world.World; - -public class EntityPinkBabySwet extends EntityCompanion -{ - - public float squishAmount; - - public float squishFactor; - - public float prevSquishFactor; - - private boolean wasOnGround; - - public EntityPinkBabySwet(final World worldIn) - { - super(worldIn); - - this.moveHelper = new HoppingMoveHelper(this, () -> SoundEvents.ENTITY_SMALL_SLIME_JUMP); - - this.setSize(0.75F, 0.75F); - } - - @Override - public void onUpdate() - { - if (this.getOwner() != null) - { - this.faceEntity(this.getOwner(), 10.0F, 10.0F); - } - - ((HoppingMoveHelper) this.moveHelper).setDirection(this.rotationYaw); - - this.squishFactor += (this.squishAmount - this.squishFactor) * 0.5F; - this.prevSquishFactor = this.squishFactor; - - super.onUpdate(); - - if (this.onGround && !this.wasOnGround) - { - this.squishAmount = -0.5F; - } - else if (!this.onGround && this.wasOnGround) - { - this.squishAmount = 1.0F; - } - - this.wasOnGround = this.onGround; - this.alterSquishAmount(); - } - - protected void alterSquishAmount() - { - this.squishAmount *= 0.6F; - } - - @Override - protected void jump() - { - if (this.getMoveHelper().getSpeed() <= 0) - { - return; - } - - this.motionY = 0.41999998688697815D; - this.isAirBorne = true; - } - - @Override - public int getVerticalFaceSpeed() - { - return 0; - } - -} diff --git a/src/main/java/com/gildedgames/aether/common/entities/companions/EntityShadeOfArkenzus.java b/src/main/java/com/gildedgames/aether/common/entities/companions/EntityShadeOfArkenzus.java deleted file mode 100644 index 6addc18888..0000000000 --- a/src/main/java/com/gildedgames/aether/common/entities/companions/EntityShadeOfArkenzus.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.gildedgames.aether.common.entities.companions; - -import net.minecraft.world.World; - -public class EntityShadeOfArkenzus extends EntityCompanion -{ - public EntityShadeOfArkenzus(World worldIn) - { - super(worldIn); - - this.setSize(0.5f, 1.0f); - } -} diff --git a/src/main/java/com/gildedgames/aether/common/entities/companions/EntitySoaringWisp.java b/src/main/java/com/gildedgames/aether/common/entities/companions/EntitySoaringWisp.java deleted file mode 100644 index 06f23d1e1f..0000000000 --- a/src/main/java/com/gildedgames/aether/common/entities/companions/EntitySoaringWisp.java +++ /dev/null @@ -1,17 +0,0 @@ -package com.gildedgames.aether.common.entities.companions; - -import net.minecraft.world.World; - -public class EntitySoaringWisp extends EntityCompanion -{ - - public EntitySoaringWisp(World worldIn) - { - super(worldIn); - - this.setSize(0.75f, 2.0f); - - this.stepHeight = 1.0F; - this.isFlying = true; - } -} diff --git a/src/main/java/com/gildedgames/aether/common/entities/effects/EquipmentEffectPool.java b/src/main/java/com/gildedgames/aether/common/entities/effects/EquipmentEffectPool.java deleted file mode 100644 index 470f38a63e..0000000000 --- a/src/main/java/com/gildedgames/aether/common/entities/effects/EquipmentEffectPool.java +++ /dev/null @@ -1,164 +0,0 @@ -package com.gildedgames.aether.common.entities.effects; - -import com.gildedgames.aether.api.AetherAPI; -import com.gildedgames.aether.api.items.equipment.effects.*; -import com.gildedgames.aether.api.player.IPlayerAether; -import com.gildedgames.aether.common.capabilities.entity.player.PlayerAether; -import com.google.common.collect.BiMap; -import com.google.common.collect.HashBiMap; -import com.google.common.collect.HashMultimap; -import com.google.common.collect.Multimap; -import net.minecraft.item.ItemStack; -import org.apache.commons.lang3.tuple.Pair; - -import java.util.*; - -public class EquipmentEffectPool<T extends IEffectProvider> implements IEffectPool<T> -{ - private final IPlayerAether player; - - private final Multimap<Pair<Integer, InventoryProvider>, T> providers = HashMultimap.create(); - - private final Map<T, Pair<Integer, InventoryProvider>> providersInverse = new HashMap<>(); - - private final HashSet<T> active = new HashSet<>(); - - private final IEffectFactory<T> factory; - - private final boolean isRemote; - - private EffectInstance instance; - - public EquipmentEffectPool(IPlayerAether player, IEffectFactory<T> factory) - { - this.player = player; - this.factory = factory; - - this.isRemote = player.getEntity().getEntityWorld().isRemote; - } - - public void update() - { - this.providers.forEach(this::updateProvider); - - if (this.instance != null && !this.isRemote) - { - this.instance.onEntityUpdate(this.player); - } - } - - public void onTeleport() - { - this.rebuildInstance(); - } - - private void updateProvider(Pair<Integer, InventoryProvider> inventoryIndexPair, T provider) - { - PlayerAether playerAether = PlayerAether.getPlayer(this.player.getEntity()); - - Integer index = inventoryIndexPair.getKey(); - InventoryProvider inventoryProvider = inventoryIndexPair.getValue(); - - ItemStack stack = inventoryProvider.provide(playerAether).getStackInSlot(index); - - Collection<IEffectPrecondition> preconditions = AetherAPI.content().items().getProperties(stack.getItem()).getEffectPreconditions(); - - boolean match = preconditions.stream().allMatch((e) -> e.canApply(this.player, stack)); - - if (preconditions.size() <= 0 || match) - { - if (this.active.add(provider)) - { - this.rebuildInstance(); - } - } - else - { - if (this.active.remove(provider)) - { - this.rebuildInstance(); - } - } - } - - /** - * Removes an provider from this pool, and rebuilds the state as needed. - * @param inventoryIndexPair The index and inventory of the provider's {@link ItemStack} - */ - public void removeInstances(Pair<Integer, InventoryProvider> inventoryIndexPair) - { - Collection<T> provider = this.providers.removeAll(inventoryIndexPair); - - if (provider == null || provider.isEmpty()) - { - return; - } - - for (T inst : provider) - { - this.active.remove(inst); - - this.providersInverse.remove(inst); - } - - this.rebuildInstance(); - } - - /** - * Adds a provider to this pool, and rebuilds the state as needed. - * @param inventoryIndexPair The index and inventory of the provider's {@link ItemStack} - * @param provider The provider to add - */ - public void addInstance(Pair<Integer, InventoryProvider> inventoryIndexPair, T provider) - { - this.providers.put(inventoryIndexPair, provider); - this.providersInverse.put(provider, inventoryIndexPair); - - this.updateProvider(inventoryIndexPair, provider); - } - - /** - * Rebuilds the state of this effect from the active instances. - */ - private void rebuildInstance() - { - if (this.instance != null && !this.isRemote) - { - this.instance.onInstanceRemoved(this.player); - } - - this.instance = this.factory.createInstance(this); - - if (!this.isRemote) - { - this.instance.onInstanceAdded(this.player); - } - } - - @Override - public boolean isEmpty() - { - return this.active.size() <= 0; - } - - @Override - public ItemStack getProvider(T provider) - { - Pair<Integer, InventoryProvider> inventoryIndexPair = this.providersInverse.get(provider); - - return inventoryIndexPair.getValue().provide(this.player) - .getStackInSlot(inventoryIndexPair.getKey()); - } - - @Override - public Collection<T> getActiveProviders() - { - return this.active; - } - - @Override - public Optional<EffectInstance> getInstance() - { - return Optional.ofNullable(this.instance); - } -} diff --git a/src/main/java/com/gildedgames/aether/common/entities/effects/IEffectDamageHolder.java b/src/main/java/com/gildedgames/aether/common/entities/effects/IEffectDamageHolder.java deleted file mode 100644 index 419fa958e3..0000000000 --- a/src/main/java/com/gildedgames/aether/common/entities/effects/IEffectDamageHolder.java +++ /dev/null @@ -1,12 +0,0 @@ -package com.gildedgames.aether.common.entities.effects; - -import com.gildedgames.aether.common.items.weapons.swords.ItemAetherSword; - -import java.util.Map; - -public interface IEffectDamageHolder -{ - <T extends ItemAetherSword> T addStatusEffect(StatusEffect effect, int amount); - - Map<StatusEffect, Integer> getStatusEffects(); -} diff --git a/src/main/java/com/gildedgames/aether/common/entities/effects/IEffectResistanceHolder.java b/src/main/java/com/gildedgames/aether/common/entities/effects/IEffectResistanceHolder.java deleted file mode 100644 index 6192c57115..0000000000 --- a/src/main/java/com/gildedgames/aether/common/entities/effects/IEffectResistanceHolder.java +++ /dev/null @@ -1,12 +0,0 @@ -package com.gildedgames.aether.common.entities.effects; - -import net.minecraft.item.Item; - -import java.util.Map; - -public interface IEffectResistanceHolder -{ - <T extends Item> T addStatusEffectResistance(StatusEffect effect, double resistance); - - Map<StatusEffect, Double> getStatusEffects(); -} diff --git a/src/main/java/com/gildedgames/aether/common/entities/effects/IEntityResistanceHolder.java b/src/main/java/com/gildedgames/aether/common/entities/effects/IEntityResistanceHolder.java deleted file mode 100644 index 34e9412ee2..0000000000 --- a/src/main/java/com/gildedgames/aether/common/entities/effects/IEntityResistanceHolder.java +++ /dev/null @@ -1,10 +0,0 @@ -package com.gildedgames.aether.common.entities.effects; - -import com.gildedgames.aether.api.entity.effects.IAetherStatusEffects; - -import java.util.Map; - -public interface IEntityResistanceHolder -{ - Map<IAetherStatusEffects.effectTypes, Double> getResistances(); -} diff --git a/src/main/java/com/gildedgames/aether/common/entities/effects/InventoryProvider.java b/src/main/java/com/gildedgames/aether/common/entities/effects/InventoryProvider.java deleted file mode 100644 index 62db102af1..0000000000 --- a/src/main/java/com/gildedgames/aether/common/entities/effects/InventoryProvider.java +++ /dev/null @@ -1,57 +0,0 @@ -package com.gildedgames.aether.common.entities.effects; - -import com.gildedgames.aether.api.player.IPlayerAether; -import com.gildedgames.aether.common.capabilities.entity.player.PlayerAether; -import net.minecraft.inventory.IInventory; -import net.minecraft.util.ResourceLocation; -import org.apache.commons.lang3.builder.EqualsBuilder; -import org.apache.commons.lang3.builder.HashCodeBuilder; - -import java.util.function.Function; - -public class InventoryProvider -{ - private ResourceLocation uniqueId; - - private Function<IPlayerAether, IInventory> inventoryFunction; - - public InventoryProvider(ResourceLocation uniqueId, Function<IPlayerAether, IInventory> inventoryFunction) - { - this.uniqueId = uniqueId; - this.inventoryFunction = inventoryFunction; - } - - public IInventory provide(IPlayerAether playerAether) - { - return this.inventoryFunction.apply(playerAether); - } - - public ResourceLocation getUniqueId() - { - return this.uniqueId; - } - - @Override - public int hashCode() - { - return new HashCodeBuilder().append(this.uniqueId).toHashCode(); - } - - @Override - public boolean equals(Object obj) - { - if (obj == this) - { - return true; - } - - if (obj instanceof InventoryProvider) - { - InventoryProvider other = (InventoryProvider) obj; - - return new EqualsBuilder().append(this.uniqueId, other.uniqueId).isEquals(); - } - - return false; - } -} diff --git a/src/main/java/com/gildedgames/aether/common/entities/effects/StatusEffect.java b/src/main/java/com/gildedgames/aether/common/entities/effects/StatusEffect.java deleted file mode 100644 index 524b265603..0000000000 --- a/src/main/java/com/gildedgames/aether/common/entities/effects/StatusEffect.java +++ /dev/null @@ -1,450 +0,0 @@ -package com.gildedgames.aether.common.entities.effects; - -import com.gildedgames.aether.api.entity.effects.EEffectIntensity; -import com.gildedgames.aether.api.entity.effects.IAetherStatusEffects; -import com.gildedgames.aether.common.network.NetworkingAether; -import com.gildedgames.aether.common.network.packets.effects.PacketStatusEffect; -import com.gildedgames.aether.common.util.helpers.EntityUtil; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.ai.attributes.AttributeModifier; -import net.minecraft.entity.player.EntityPlayerMP; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.util.math.MathHelper; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; - -import java.util.Collection; - -public abstract class StatusEffect implements IAetherStatusEffects -{ - protected final String NAME; - - protected int REDUCTION_RATE; - - protected int TIME_TILL_REDUCTION; - - protected int ACTIVE_EFFECT_TIME; - - protected int BUILDUP_SPEED; - - private final AttributeModifier ATTRIBUTE_MODIFIER; - - protected boolean stopTimer; - - protected int effectBuildup; - - protected int effectTimer; - - protected int decreaseTimer; - - protected double effectResistance = 1.0D; - - protected double tempEffectResistance = 0.0D; - - protected IAetherStatusEffects.effectTypes effectType; - - protected boolean isEffectApplied; - - protected double activeEffectTimeModifier = 1.0D; - - protected boolean isDirty; - - protected int potentialBuildup; - - protected float textAlpha = 1.0f; - - private final EntityLivingBase livingEffected; - - public StatusEffect(IAetherStatusEffects.effectTypes effectType, AttributeModifier attributeModifier, EntityLivingBase living) - { - this.effectType = effectType; - this.isEffectApplied = false; - - this.NAME = effectType.name; - this.REDUCTION_RATE = effectType.reductionRate; - this.TIME_TILL_REDUCTION = effectType.timeTillReduction; - this.ACTIVE_EFFECT_TIME = effectType.activeEffectTime; - this.BUILDUP_SPEED = effectType.buildupSpeed; - - this.ATTRIBUTE_MODIFIER = attributeModifier; - this.livingEffected = living; - this.isDirty = false; - } - - @Override - public void tick(EntityLivingBase livingBase) - { - // System.out.println(this.getEffectName() + " " + this.isDirty()); - // System.out.println(this.getEffectName() + " " + this.getIsEffectApplied()); - // System.out.println(this.getEffectName() + " " + this.getResistance()); - - if (this.effectResistance > 1.0D) - { - this.potentialBuildup = (int) (this.potentialBuildup - (this.potentialBuildup * (this.effectResistance - 1.0))); - } - else if (this.effectResistance < 1.0D) - { - this.potentialBuildup = (int) (this.potentialBuildup + (this.potentialBuildup * (1.0 - this.effectResistance))); - } - else if (this.effectResistance >= 2.0D) - { - this.effectBuildup = 0; - this.potentialBuildup = 1; - } - - if (this.effectBuildup < this.potentialBuildup) - { - if (this.effectResistance < 2.0D) - { - this.effectBuildup += this.BUILDUP_SPEED; - - EntityUtil.spawnEffectParticles(livingBase, this.effectType); - } - else - { - this.effectBuildup = 0; - this.potentialBuildup = 0; - this.effectTimer = 0; - this.isEffectApplied = false; - } - } - - if (this.effectBuildup >= this.potentialBuildup) - { - this.potentialBuildup = 0; - } - - if (this.effectBuildup > 0 || this.isEffectApplied) - { - this.markDirty(); - } - - /* When buildup reaches 101 we can apply the effect, then immediately lower buildup so it remains at 100, but doesn't continue applying effect */ - if (this.effectBuildup >= 101) - { - this.isEffectApplied = true; - // AetherCore.LOGGER.info("Effect Applied : " + this.NAME + " to : " + this.livingEffected.getName()); - this.effectBuildup = 100; - this.potentialBuildup = 0; - } - - this.applyEffect(livingBase, this.effectTimer); - - if (this.effectBuildup < 100) - { - this.decreaseTimer = 0; - } - - //manageEffect - if (this.isEffectApplied) - { - ++decreaseTimer; - - EntityUtil.spawnEffectParticles(livingBase, this.effectType); - - if (this.decreaseTimer >= (this.ACTIVE_EFFECT_TIME * TICKS_PER_SECOND) * this.activeEffectTimeModifier) - { - this.resetEffect(); - } - } - - this.reduceBuildup(); - - if (this.effectBuildup <= 0) - { - if (!this.isEffectApplied) - { - this.effectTimer = 0; - } - this.effectBuildup = 0; - } - - if (this.isDirty) - { - if (livingBase instanceof EntityPlayerMP) - { - NetworkingAether.sendPacketToPlayer(new PacketStatusEffect(livingBase), (EntityPlayerMP) livingBase); - - this.markClean(); - } - else - { - // hack -- Never send to clients - this.markClean(); - } - } - } - - @Override - abstract public void applyEffect(EntityLivingBase livingBase, int timer); - - @Override - abstract public void onEffectEnd(); - - @Override - public void addBuildup(int buildup, double additionalResistance) - { - if (!this.isEffectApplied) - { - this.tempEffectResistance = additionalResistance; - - this.potentialBuildup = buildup; - - if (additionalResistance > 0) - { - this.markDirty(); - } - - if (this.potentialBuildup >= 100) - { - this.potentialBuildup = 101; // buildup is set to 101 for activation. - } - - this.effectTimer = 0; - } - } - - @Override - public double calculateResistances() - { - double ret = this.effectResistance + this.tempEffectResistance; - - return MathHelper.clamp(ret, 0.0, 2.0); - } - - public void adjustDecrease(int reductionRate) - { - this.REDUCTION_RATE = reductionRate; - } - - public void resetDecrease() - { - this.REDUCTION_RATE = effectType.reductionRate; - } - - @Override - public void setBuildup(int buildup) - { - this.effectBuildup = buildup; - } - - @Override - public void setApplied(boolean isApplied) - { - this.isEffectApplied = isApplied; - } - - @Override - public void reduceBuildup() - { - if (this.effectResistance < 2.0D) - { - if (this.effectBuildup > 0) - { - ++this.effectTimer; - - if (!this.isEffectApplied) - { - if (this.effectTimer % (this.TIME_TILL_REDUCTION * TICKS_PER_SECOND) == 0) - { - if (this.effectBuildup < this.potentialBuildup) - { - this.potentialBuildup = this.potentialBuildup - this.REDUCTION_RATE; - } - else - { - this.effectBuildup = this.effectBuildup - this.REDUCTION_RATE; - } - } - } - } - } - else - { - this.effectBuildup = 0; - } - } - - @Override - public void addResistance(double addResistance) - { - if (this.effectResistance + addResistance >= 2.0D) - { - this.effectResistance = 2.0; - return; - } - - if (this.effectResistance + addResistance <= 0.0D) - { - this.effectResistance = 0.0; - return; - } - - this.effectResistance = this.effectResistance + addResistance; - } - - @Override - public void resetResistance() - { - this.effectResistance = 1.0D; - this.tempEffectResistance = 0.0D; - this.markDirty(); - } - - @Override - public void setActiveEffectTimeModifier(double activeEffectTimeModifier) - { - this.activeEffectTimeModifier = activeEffectTimeModifier; - } - - @Override - public double getResistance() - { - return this.effectResistance; - } - - @Override - public void resetEffect() - { - this.onEffectEnd(); - - this.isEffectApplied = false; - this.effectBuildup = 0; - this.effectTimer = 0; - this.activeEffectTimeModifier = 1.0D; - this.potentialBuildup = 0; - this.effectResistance = 0; - this.tempEffectResistance = 0; - this.decreaseTimer = 0; - this.markDirty(); - - // AetherCore.LOGGER.info("Effect Reset : " + this.NAME + " to : " + this.livingEffected.getName()); - } - - @Override - public int getBuildup() - { - return this.effectResistance < 2.0D ? this.effectBuildup : 0; - } - - @Override - public int getTimer() - { - return this.decreaseTimer; - } - - @Override - public int getActiveEffectTime() - { - return this.ACTIVE_EFFECT_TIME; - } - - @Override - public double getActiveEffectTimeModifier() - { - return this.activeEffectTimeModifier; - } - - @Override - public boolean getIsEffectApplied() - { - return this.isEffectApplied; - } - - @Override - public effectTypes getEffectType() - { - return this.effectType; - } - - @Override - public String getEffectName() - { - return this.NAME; - } - - @Override - public AttributeModifier getAttributeModifier() - { - return this.ATTRIBUTE_MODIFIER; - } - - @Override - public abstract int getBuildupFromIntensity(EEffectIntensity intensity); - - public int getPotentialBuildup() - { - return this.potentialBuildup; - } - - @Override - public boolean isDirty() - { - return this.isDirty; - } - - @Override - public void markDirty() - { - this.isDirty = true; - } - - @Override - public void markClean() - { - this.isDirty = false; - } - - @Override - public float getEffectTextAlpha() - { - if (this.getTimer() > 50 && this.getTimer() < 60) - { - if (this.textAlpha > 0.05f) - { - this.textAlpha -= 0.04f; - } - else - { - this.textAlpha = 0.0f; - } - } - else if (this.getTimer() <= 50 & this.getTimer() >= 0) - { - this.textAlpha = 1.0f; - } - else - { - this.textAlpha = 0.0f; - } - - return this.textAlpha; - } - - @Override - @SideOnly(Side.CLIENT) - public abstract void addInformation(Collection<String> label); - - @Override - public void write(NBTTagCompound compound) - { - compound.setString("type", this.NAME); - compound.setInteger("effectBuildup", this.effectBuildup); - compound.setBoolean("effectIsApplied", this.isEffectApplied); - compound.setInteger("effectTimer", this.effectTimer); - compound.setInteger("decreaseTimer", this.decreaseTimer); - compound.setDouble("effectActiveTimeModifier", this.activeEffectTimeModifier); - compound.setDouble("effectResistance", this.effectResistance); - } - - @Override - public void read(NBTTagCompound compound) - { - this.effectBuildup = compound.getInteger("effectBuildup"); - this.isEffectApplied = compound.getBoolean("effectIsApplied"); - this.effectTimer = compound.getInteger("effectTimer"); - this.decreaseTimer = compound.getInteger("decreaseTimer"); - this.activeEffectTimeModifier = compound.getInteger("effectActiveTimeModifier"); - this.effectResistance = compound.getDouble("effectResistance"); - } -} diff --git a/src/main/java/com/gildedgames/aether/common/entities/effects/StatusEffectAmbrosiumPoisoning.java b/src/main/java/com/gildedgames/aether/common/entities/effects/StatusEffectAmbrosiumPoisoning.java deleted file mode 100644 index dbd889fd90..0000000000 --- a/src/main/java/com/gildedgames/aether/common/entities/effects/StatusEffectAmbrosiumPoisoning.java +++ /dev/null @@ -1,59 +0,0 @@ -package com.gildedgames.aether.common.entities.effects; - -import com.gildedgames.aether.api.entity.effects.EEffectIntensity; -import com.gildedgames.aether.common.events.listeners.player.PlayerAetherListener; -import net.minecraft.client.resources.I18n; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.util.text.TextFormatting; -import net.minecraftforge.event.entity.living.LivingHealEvent; - -import java.util.Collection; - -public class StatusEffectAmbrosiumPoisoning extends StatusEffect -{ - public StatusEffectAmbrosiumPoisoning(EntityLivingBase livingBase) - { - super(effectTypes.AMBROSIUM_POISONING, null, livingBase); - } - - @Override - public void applyEffect(EntityLivingBase livingBase, int timer) - { - /** - * Ambrosium Poisoning has a unique effect, and is handled elsewhere. - * reduce all resistances by 50%. - * @see com.gildedgames.aether.common.capabilities.entity.effects.StatusEffectPool#applyStatusEffect(effectTypes, int) - * - * Negate weak player HP regeneration. - * @see PlayerAetherListener#onLivingHeal(LivingHealEvent) - */ - } - - @Override - public void onEffectEnd() - { - - } - - @Override - public int getBuildupFromIntensity(EEffectIntensity intensity) - { - switch (intensity) - { - case MINOR: - return 3; - case ORDINARY: - return 25; - case MAJOR: - return 50; - } - - return 0; - } - - @Override - public void addInformation(Collection<String> label) - { - label.add(TextFormatting.YELLOW.toString() + TextFormatting.ITALIC.toString() + I18n.format("effect.aether.ambrosium_poisoning")); - } -} diff --git a/src/main/java/com/gildedgames/aether/common/entities/effects/StatusEffectBleed.java b/src/main/java/com/gildedgames/aether/common/entities/effects/StatusEffectBleed.java deleted file mode 100644 index f8e10219bf..0000000000 --- a/src/main/java/com/gildedgames/aether/common/entities/effects/StatusEffectBleed.java +++ /dev/null @@ -1,55 +0,0 @@ -package com.gildedgames.aether.common.entities.effects; - -import com.gildedgames.aether.api.entity.effects.EEffectIntensity; -import com.gildedgames.aether.common.capabilities.entity.effects.EffectsDamageSource; -import net.minecraft.client.resources.I18n; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.util.text.TextFormatting; - -import java.util.Collection; - -public class StatusEffectBleed extends StatusEffect -{ - public StatusEffectBleed(EntityLivingBase livingBase) - { - super(effectTypes.BLEED, null, livingBase); - } - - @Override - public void applyEffect(EntityLivingBase livingBase, int timer) - { - if (this.isEffectApplied) - { - livingBase.attackEntityFrom(EffectsDamageSource.BLEED, 10); - } - } - - @Override - public void onEffectEnd() - { - - } - - @Override - public int getBuildupFromIntensity(EEffectIntensity intensity) - { - switch (intensity) - { - case MINOR: - return 3; - case ORDINARY: - return 10; - case MAJOR: - return 35; - } - - return 0; - } - - @Override - public void addInformation(Collection<String> label) - { - label.add(TextFormatting.RED.toString() + TextFormatting.ITALIC.toString() + I18n.format("effect.aether.bleed")); - } - -} diff --git a/src/main/java/com/gildedgames/aether/common/entities/effects/StatusEffectCockatriceVenom.java b/src/main/java/com/gildedgames/aether/common/entities/effects/StatusEffectCockatriceVenom.java deleted file mode 100644 index 12526ab0b8..0000000000 --- a/src/main/java/com/gildedgames/aether/common/entities/effects/StatusEffectCockatriceVenom.java +++ /dev/null @@ -1,47 +0,0 @@ -package com.gildedgames.aether.common.entities.effects; - -import com.gildedgames.aether.api.entity.effects.EEffectIntensity; -import com.gildedgames.aether.common.capabilities.entity.effects.EffectsDamageSource; -import net.minecraft.client.resources.I18n; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.util.text.TextFormatting; - -import java.util.Collection; - -public class StatusEffectCockatriceVenom extends StatusEffect -{ - public StatusEffectCockatriceVenom(EntityLivingBase livingBase) - { - super(effectTypes.COCKATRICE_VENOM, null, livingBase); - } - - @Override - public void applyEffect(EntityLivingBase livingBase, int timer) - { - if (this.isEffectApplied) - { - if (this.effectTimer % (TICKS_PER_SECOND * 2) == 0 && livingBase.getHealth() >= 2) - { - livingBase.attackEntityFrom(EffectsDamageSource.COCKATRICE_VENOM, 1f); - } - } - } - - @Override - public void onEffectEnd() - { - - } - - @Override - public int getBuildupFromIntensity(EEffectIntensity intensity) - { - return 55; - } - - @Override - public void addInformation(Collection<String> label) - { - label.add(TextFormatting.DARK_PURPLE.toString() + TextFormatting.ITALIC.toString() + I18n.format("effect.aether.cockatrice_venom")); - } -} diff --git a/src/main/java/com/gildedgames/aether/common/entities/effects/StatusEffectFracture.java b/src/main/java/com/gildedgames/aether/common/entities/effects/StatusEffectFracture.java deleted file mode 100644 index 6b64bb1da9..0000000000 --- a/src/main/java/com/gildedgames/aether/common/entities/effects/StatusEffectFracture.java +++ /dev/null @@ -1,128 +0,0 @@ -package com.gildedgames.aether.common.entities.effects; - -import com.gildedgames.aether.api.entity.effects.EEffectIntensity; -import com.gildedgames.aether.common.capabilities.entity.effects.EffectsDamageSource; -import net.minecraft.client.resources.I18n; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.SharedMonsterAttributes; -import net.minecraft.entity.ai.attributes.AttributeModifier; -import net.minecraft.entity.ai.attributes.IAttributeInstance; -import net.minecraft.util.text.TextFormatting; - -import java.util.Collection; - -public class StatusEffectFracture extends StatusEffect -{ - private EntityLivingBase affectedEntity; - - public StatusEffectFracture(EntityLivingBase livingBase) - { - super(effectTypes.FRACTURE, new AttributeModifier("aether.statusEffectFractureCripple", -0.25, 1).setSaved(false), livingBase); - - this.affectedEntity = livingBase; - } - - @Override - public void applyEffect(EntityLivingBase livingBase, int timer) - { - IAttributeInstance iAttributeInstance; - - if (this.isEffectApplied) - { - iAttributeInstance = livingBase.getEntityAttribute(SharedMonsterAttributes.MOVEMENT_SPEED); - if (iAttributeInstance != null && !iAttributeInstance.hasModifier(this.getAttributeModifier())) - { - iAttributeInstance.applyModifier(this.getAttributeModifier()); - } - - iAttributeInstance = livingBase.getEntityAttribute(SharedMonsterAttributes.ARMOR); - if (iAttributeInstance != null && !iAttributeInstance.hasModifier(this.getAttributeModifier())) - { - iAttributeInstance.applyModifier(this.getAttributeModifier()); - } - - iAttributeInstance = livingBase.getEntityAttribute(SharedMonsterAttributes.ATTACK_SPEED); - if (iAttributeInstance != null && !iAttributeInstance.hasModifier(this.getAttributeModifier())) - { - iAttributeInstance.applyModifier(this.getAttributeModifier()); - } - - if (livingBase.isSprinting()) - { - if (timer % TICKS_PER_SECOND == 0) - { - livingBase.attackEntityFrom(EffectsDamageSource.FRACTURE, 1f); - } - } - } - else - { - iAttributeInstance = livingBase.getEntityAttribute(SharedMonsterAttributes.MOVEMENT_SPEED); - if (iAttributeInstance != null && iAttributeInstance.getModifier(this.getAttributeModifier().getID()) != null) - { - iAttributeInstance.removeModifier(this.getAttributeModifier()); - } - - iAttributeInstance = livingBase.getEntityAttribute(SharedMonsterAttributes.ARMOR); - if (iAttributeInstance != null && iAttributeInstance.getModifier(this.getAttributeModifier().getID()) != null) - { - iAttributeInstance.removeModifier(this.getAttributeModifier()); - } - - iAttributeInstance = livingBase.getEntityAttribute(SharedMonsterAttributes.ATTACK_SPEED); - if (iAttributeInstance != null && iAttributeInstance.getModifier(this.getAttributeModifier().getID()) != null) - { - iAttributeInstance.removeModifier(this.getAttributeModifier()); - } - } - } - - @Override - public void onEffectEnd() - { - EntityLivingBase livingBase = this.affectedEntity; - - IAttributeInstance iAttributeInstance; - - iAttributeInstance = livingBase.getEntityAttribute(SharedMonsterAttributes.MOVEMENT_SPEED); - if (iAttributeInstance != null && iAttributeInstance.getModifier(this.getAttributeModifier().getID()) != null) - { - iAttributeInstance.removeModifier(this.getAttributeModifier()); - } - - iAttributeInstance = livingBase.getEntityAttribute(SharedMonsterAttributes.ARMOR); - if (iAttributeInstance != null && iAttributeInstance.getModifier(this.getAttributeModifier().getID()) != null) - { - iAttributeInstance.removeModifier(this.getAttributeModifier()); - } - - iAttributeInstance = livingBase.getEntityAttribute(SharedMonsterAttributes.ATTACK_SPEED); - if (iAttributeInstance != null && iAttributeInstance.getModifier(this.getAttributeModifier().getID()) != null) - { - iAttributeInstance.removeModifier(this.getAttributeModifier()); - } - } - - @Override - public int getBuildupFromIntensity(EEffectIntensity intensity) - { - switch (intensity) - { - case MINOR: - return 15; - case ORDINARY: - return 35; - case MAJOR: - return 75; - } - - return 0; - } - - @Override - public void addInformation(Collection<String> label) - { - label.add(TextFormatting.WHITE.toString() + TextFormatting.ITALIC.toString() + I18n.format("effect.aether.fracture")); - } - -} diff --git a/src/main/java/com/gildedgames/aether/common/entities/effects/StatusEffectFreeze.java b/src/main/java/com/gildedgames/aether/common/entities/effects/StatusEffectFreeze.java deleted file mode 100644 index 402f27a437..0000000000 --- a/src/main/java/com/gildedgames/aether/common/entities/effects/StatusEffectFreeze.java +++ /dev/null @@ -1,105 +0,0 @@ -package com.gildedgames.aether.common.entities.effects; - -import com.gildedgames.aether.api.entity.effects.EEffectIntensity; -import com.gildedgames.aether.api.entity.effects.IAetherStatusEffectPool; -import com.gildedgames.aether.api.entity.effects.IAetherStatusEffects; -import com.gildedgames.aether.api.registrar.CapabilitiesAether; -import com.gildedgames.aether.common.capabilities.entity.effects.EffectsDamageSource; -import com.gildedgames.aether.common.capabilities.entity.player.PlayerAether; -import net.minecraft.client.resources.I18n; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.SharedMonsterAttributes; -import net.minecraft.entity.ai.attributes.AttributeModifier; -import net.minecraft.entity.ai.attributes.IAttributeInstance; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.util.FoodStats; -import net.minecraft.util.text.TextFormatting; - -import java.util.Collection; - -public class StatusEffectFreeze extends StatusEffect -{ - private EntityLivingBase affectedEntity; - - public StatusEffectFreeze(EntityLivingBase livingBase) - { - super(effectTypes.FREEZE, new AttributeModifier("aether.statusEffectFreeze", -1.0, 1).setSaved(false), livingBase); - - this.affectedEntity = livingBase; - } - - @Override - public void applyEffect(EntityLivingBase livingBase, int timer) - { - IAttributeInstance iAttributeInstance; - - if (this.isEffectApplied) - { - iAttributeInstance = livingBase.getEntityAttribute(SharedMonsterAttributes.MOVEMENT_SPEED); - if (iAttributeInstance != null && !iAttributeInstance.hasModifier(this.getAttributeModifier())) - { - iAttributeInstance.applyModifier(this.getAttributeModifier()); - } - - if (timer % (TICKS_PER_SECOND * 4) == 0) - { - if (livingBase instanceof EntityPlayer) - { - EntityPlayer player = (EntityPlayer) livingBase; - FoodStats foodStats = player.getFoodStats(); - - foodStats.setFoodLevel(foodStats.getFoodLevel() - 1); - } - } - - if (PlayerAether.getPlayer((EntityPlayer) livingBase).getJumping()) - { - this.decreaseTimer += 5; - } - } - else - { - iAttributeInstance = livingBase.getEntityAttribute(SharedMonsterAttributes.MOVEMENT_SPEED); - if (iAttributeInstance != null && iAttributeInstance.getModifier(this.getAttributeModifier().getID()) != null) - { - iAttributeInstance.removeModifier(this.getAttributeModifier()); - } - } - } - - @Override - public void onEffectEnd() - { - EntityLivingBase livingBase = this.affectedEntity; - - IAttributeInstance iAttributeInstance; - - iAttributeInstance = livingBase.getEntityAttribute(SharedMonsterAttributes.MOVEMENT_SPEED); - if (iAttributeInstance != null && iAttributeInstance.getModifier(this.getAttributeModifier().getID()) != null) - { - iAttributeInstance.removeModifier(this.getAttributeModifier()); - } - } - - @Override - public int getBuildupFromIntensity(EEffectIntensity intensity) - { - switch (intensity) - { - case MINOR: - return 1; - case ORDINARY: - return 15; - case MAJOR: - return 30; - } - - return 0; - } - - @Override - public void addInformation(Collection<String> label) - { - label.add(TextFormatting.AQUA.toString() + TextFormatting.ITALIC.toString() + I18n.format("effect.aether.freeze")); - } -} diff --git a/src/main/java/com/gildedgames/aether/common/entities/effects/StatusEffectFungalRot.java b/src/main/java/com/gildedgames/aether/common/entities/effects/StatusEffectFungalRot.java deleted file mode 100644 index 10c4088392..0000000000 --- a/src/main/java/com/gildedgames/aether/common/entities/effects/StatusEffectFungalRot.java +++ /dev/null @@ -1,88 +0,0 @@ -package com.gildedgames.aether.common.entities.effects; - -import com.gildedgames.aether.api.entity.effects.EEffectIntensity; -import com.gildedgames.aether.common.capabilities.entity.effects.EffectsDamageSource; -import net.minecraft.client.resources.I18n; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.SharedMonsterAttributes; -import net.minecraft.entity.ai.attributes.AttributeModifier; -import net.minecraft.entity.ai.attributes.IAttributeInstance; -import net.minecraft.util.text.TextFormatting; - -import java.util.Collection; - -public class StatusEffectFungalRot extends StatusEffect -{ - private EntityLivingBase affectedEntity; - - public StatusEffectFungalRot(EntityLivingBase livingBase) - { - super(effectTypes.FUNGAL_ROT, new AttributeModifier("aether.statusEffectFungalRot", -0.15, 1).setSaved(false), livingBase); - - this.affectedEntity = livingBase; - } - - @Override - public void applyEffect(EntityLivingBase livingBase, int timer) - { - IAttributeInstance iAttributeInstance; - - if (this.isEffectApplied) - { - iAttributeInstance = livingBase.getEntityAttribute(SharedMonsterAttributes.MOVEMENT_SPEED); - if (iAttributeInstance != null && !iAttributeInstance.hasModifier(this.getAttributeModifier())) - { - iAttributeInstance.applyModifier(this.getAttributeModifier()); - } - - if (this.effectTimer % (TICKS_PER_SECOND * 2) == 0) - { - livingBase.attackEntityFrom(EffectsDamageSource.FUNGAL_ROT, 1f); - } - } - else - { - iAttributeInstance = livingBase.getEntityAttribute(SharedMonsterAttributes.MOVEMENT_SPEED); - if (iAttributeInstance != null && iAttributeInstance.getModifier(this.getAttributeModifier().getID()) != null) - { - iAttributeInstance.removeModifier(this.getAttributeModifier()); - } - } - } - - @Override - public void onEffectEnd() - { - EntityLivingBase livingBase = this.affectedEntity; - - IAttributeInstance iAttributeInstance; - - iAttributeInstance = livingBase.getEntityAttribute(SharedMonsterAttributes.MOVEMENT_SPEED); - if (iAttributeInstance != null && iAttributeInstance.getModifier(this.getAttributeModifier().getID()) != null) - { - iAttributeInstance.removeModifier(this.getAttributeModifier()); - } - } - - @Override - public int getBuildupFromIntensity(EEffectIntensity intensity) - { - switch (intensity) - { - case MINOR: - return 5; - case ORDINARY: - return 15; - case MAJOR: - return 40; - } - - return 0; - } - - @Override - public void addInformation(Collection<String> label) - { - label.add(TextFormatting.DARK_GREEN.toString() + TextFormatting.ITALIC.toString() + I18n.format("effect.aether.fungal_rot")); - } -} diff --git a/src/main/java/com/gildedgames/aether/common/entities/effects/StatusEffectIrradiation.java b/src/main/java/com/gildedgames/aether/common/entities/effects/StatusEffectIrradiation.java deleted file mode 100644 index 3e9ae11d65..0000000000 --- a/src/main/java/com/gildedgames/aether/common/entities/effects/StatusEffectIrradiation.java +++ /dev/null @@ -1,57 +0,0 @@ -package com.gildedgames.aether.common.entities.effects; - -import com.gildedgames.aether.api.entity.effects.EEffectIntensity; -import com.gildedgames.aether.common.capabilities.entity.effects.EffectsDamageSource; -import net.minecraft.client.resources.I18n; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.util.text.TextFormatting; - -import java.util.Collection; - -public class StatusEffectIrradiation extends StatusEffect -{ - public StatusEffectIrradiation(EntityLivingBase livingBase) - { - super(effectTypes.IRRADIATION, null, livingBase); - } - - @Override - public void applyEffect(EntityLivingBase livingBase, int timer) - { - if (this.isEffectApplied) - { - if (this.effectTimer % (TICKS_PER_SECOND * 10) == 0) - { - livingBase.attackEntityFrom(EffectsDamageSource.IRRADIATION, 1f); - } - } - } - - @Override - public void onEffectEnd() - { - - } - - @Override - public int getBuildupFromIntensity(EEffectIntensity intensity) - { - switch (intensity) - { - case MINOR: - return 3; - case ORDINARY: - return 25; - case MAJOR: - return 50; - } - - return 0; - } - - @Override - public void addInformation(Collection<String> label) - { - label.add(TextFormatting.YELLOW.toString() + TextFormatting.ITALIC.toString() + I18n.format("effect.aether.irradiation")); - } -} diff --git a/src/main/java/com/gildedgames/aether/common/entities/effects/StatusEffectStun.java b/src/main/java/com/gildedgames/aether/common/entities/effects/StatusEffectStun.java deleted file mode 100644 index 350df42caa..0000000000 --- a/src/main/java/com/gildedgames/aether/common/entities/effects/StatusEffectStun.java +++ /dev/null @@ -1,93 +0,0 @@ -package com.gildedgames.aether.common.entities.effects; - -import com.gildedgames.aether.api.entity.effects.EEffectIntensity; -import com.gildedgames.aether.common.events.listeners.player.PlayerAetherListener; -import net.minecraft.client.resources.I18n; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.SharedMonsterAttributes; -import net.minecraft.entity.ai.attributes.AttributeModifier; -import net.minecraft.entity.ai.attributes.IAttributeInstance; -import net.minecraft.util.text.TextFormatting; -import net.minecraftforge.event.entity.living.LivingAttackEvent; -import net.minecraftforge.event.entity.living.LivingHealEvent; -import net.minecraftforge.event.entity.player.AttackEntityEvent; - -import java.util.Collection; - -public class StatusEffectStun extends StatusEffect -{ - private EntityLivingBase affectedEntity; - - public StatusEffectStun(EntityLivingBase livingBase) - { - super(effectTypes.STUN, new AttributeModifier("aether.statusEffectStun", -0.25, 1).setSaved(false), livingBase); - - this.affectedEntity = livingBase; - } - - @Override - public void applyEffect(EntityLivingBase livingBase, int timer) - { - IAttributeInstance iAttributeInstance; - - /** - * Stun's effect of disabling entity attacks cannot be set in here, so it is handled in a listener. - * @see com.gildedgames.aether.common.events.listeners.entity.EntityAttackListener#onEntityStunned(LivingAttackEvent) - * - * @see com.gildedgames.aether.common.events.listeners.player.PlayerAttackListener#onPlayerStunned(AttackEntityEvent) - */ - - if (this.isEffectApplied) - { - iAttributeInstance = livingBase.getEntityAttribute(SharedMonsterAttributes.MOVEMENT_SPEED); - if (iAttributeInstance != null && !iAttributeInstance.hasModifier(this.getAttributeModifier())) - { - iAttributeInstance.applyModifier(this.getAttributeModifier()); - } - } - else - { - iAttributeInstance = livingBase.getEntityAttribute(SharedMonsterAttributes.MOVEMENT_SPEED); - if (iAttributeInstance != null && iAttributeInstance.getModifier(this.getAttributeModifier().getID()) != null) - { - iAttributeInstance.removeModifier(this.getAttributeModifier()); - } - } - } - - @Override - public void onEffectEnd() - { - EntityLivingBase livingBase = this.affectedEntity; - - IAttributeInstance iAttributeInstance; - - iAttributeInstance = livingBase.getEntityAttribute(SharedMonsterAttributes.MOVEMENT_SPEED); - if (iAttributeInstance != null && iAttributeInstance.getModifier(this.getAttributeModifier().getID()) != null) - { - iAttributeInstance.removeModifier(this.getAttributeModifier()); - } - } - - @Override - public int getBuildupFromIntensity(EEffectIntensity intensity) - { - switch (intensity) - { - case MINOR: - return 25; - case ORDINARY: - return 60; - case MAJOR: - return 90; - } - - return 0; - } - - @Override - public void addInformation(Collection<String> label) - { - label.add(TextFormatting.GOLD.toString() + TextFormatting.ITALIC.toString() + I18n.format("effect.aether.stun")); - } -} diff --git a/src/main/java/com/gildedgames/aether/common/entities/effects/StatusEffectToxin.java b/src/main/java/com/gildedgames/aether/common/entities/effects/StatusEffectToxin.java deleted file mode 100644 index 8eaa3406d9..0000000000 --- a/src/main/java/com/gildedgames/aether/common/entities/effects/StatusEffectToxin.java +++ /dev/null @@ -1,58 +0,0 @@ -package com.gildedgames.aether.common.entities.effects; - -import com.gildedgames.aether.api.entity.effects.EEffectIntensity; -import com.gildedgames.aether.common.AetherCore; -import com.gildedgames.aether.common.capabilities.entity.effects.EffectsDamageSource; -import net.minecraft.client.resources.I18n; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.util.text.TextFormatting; - -import java.util.Collection; - -public class StatusEffectToxin extends StatusEffect -{ - public StatusEffectToxin(EntityLivingBase livingBase) - { - super(effectTypes.TOXIN, null, livingBase); - } - - @Override - public void applyEffect(EntityLivingBase livingBase, int timer) - { - if (this.isEffectApplied) - { - if (timer % TICKS_PER_SECOND == 0 && livingBase.getHealth() >= 7) - { - livingBase.attackEntityFrom(EffectsDamageSource.TOXIN, 1f); - } - } - } - - @Override - public void onEffectEnd() - { - - } - - @Override - public int getBuildupFromIntensity(EEffectIntensity intensity) - { - switch (intensity) - { - case MINOR: - return 15; - case ORDINARY: - return 50; - case MAJOR: - return 80; - } - - return 0; - } - - @Override - public void addInformation(Collection<String> label) - { - label.add(TextFormatting.GREEN.toString() + TextFormatting.ITALIC.toString() + I18n.format("effect.aether.toxin")); - } -} diff --git a/src/main/java/com/gildedgames/aether/common/entities/effects/StatusEffectWebbing.java b/src/main/java/com/gildedgames/aether/common/entities/effects/StatusEffectWebbing.java deleted file mode 100644 index 65d0782f97..0000000000 --- a/src/main/java/com/gildedgames/aether/common/entities/effects/StatusEffectWebbing.java +++ /dev/null @@ -1,82 +0,0 @@ -package com.gildedgames.aether.common.entities.effects; - -import com.gildedgames.aether.api.entity.effects.EEffectIntensity; -import net.minecraft.client.resources.I18n; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.SharedMonsterAttributes; -import net.minecraft.entity.ai.attributes.AttributeModifier; -import net.minecraft.entity.ai.attributes.IAttributeInstance; -import net.minecraft.util.text.TextFormatting; - -import java.util.Collection; - -public class StatusEffectWebbing extends StatusEffect -{ - private EntityLivingBase affectedEntity; - - public StatusEffectWebbing(EntityLivingBase livingBase) - { - super(effectTypes.WEBBING, new AttributeModifier("aether.statusEffectWebbingBound", -0.20, 1).setSaved(false), livingBase); - - this.affectedEntity = livingBase; - } - - @Override - public void applyEffect(EntityLivingBase livingBase, int timer) - { - IAttributeInstance iAttributeInstance; - - if (this.isEffectApplied) - { - iAttributeInstance = livingBase.getEntityAttribute(SharedMonsterAttributes.MOVEMENT_SPEED); - if (iAttributeInstance != null && !iAttributeInstance.hasModifier(this.getAttributeModifier())) - { - iAttributeInstance.applyModifier(this.getAttributeModifier()); - } - } - else - { - iAttributeInstance = livingBase.getEntityAttribute(SharedMonsterAttributes.MOVEMENT_SPEED); - if (iAttributeInstance != null && iAttributeInstance.getModifier(this.getAttributeModifier().getID()) != null) - { - iAttributeInstance.removeModifier(this.getAttributeModifier()); - } - } - } - - @Override - public void onEffectEnd() - { - EntityLivingBase livingBase = this.affectedEntity; - - IAttributeInstance iAttributeInstance; - - iAttributeInstance = livingBase.getEntityAttribute(SharedMonsterAttributes.MOVEMENT_SPEED); - if (iAttributeInstance != null && iAttributeInstance.getModifier(this.getAttributeModifier().getID()) != null) - { - iAttributeInstance.removeModifier(this.getAttributeModifier()); - } - } - - @Override - public int getBuildupFromIntensity(EEffectIntensity intensity) - { - switch (intensity) - { - case MINOR: - return 5; - case ORDINARY: - return 20; - case MAJOR: - return 40; - } - - return 0; - } - - @Override - public void addInformation(Collection<String> label) - { - label.add(TextFormatting.GRAY.toString() + TextFormatting.ITALIC.toString() + I18n.format("effect.aether.webbing")); - } -} diff --git a/src/main/java/com/gildedgames/aether/common/entities/effects/teas/StatusEffectSaturationBoost.java b/src/main/java/com/gildedgames/aether/common/entities/effects/teas/StatusEffectSaturationBoost.java deleted file mode 100644 index a0a883313e..0000000000 --- a/src/main/java/com/gildedgames/aether/common/entities/effects/teas/StatusEffectSaturationBoost.java +++ /dev/null @@ -1,51 +0,0 @@ -package com.gildedgames.aether.common.entities.effects.teas; - -import com.gildedgames.aether.api.entity.effects.EEffectIntensity; -import com.gildedgames.aether.common.entities.effects.StatusEffect; -import net.minecraft.client.resources.I18n; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.util.text.TextFormatting; - -import java.util.Collection; - -public class StatusEffectSaturationBoost extends StatusEffect -{ - public StatusEffectSaturationBoost(EntityLivingBase livingBase) - { - super(effectTypes.SATURATION_BOOST, null, livingBase); - } - - @Override - public void applyEffect(EntityLivingBase livingBase, int timer) - { - - } - - @Override - public void onEffectEnd() - { - - } - - @Override - public int getBuildupFromIntensity(EEffectIntensity intensity) - { - switch (intensity) - { - case MINOR: - return 1; - case ORDINARY: - return 50; - case MAJOR: - return 100; - } - - return 0; - } - - @Override - public void addInformation(Collection<String> label) - { - label.add(TextFormatting.GREEN.toString() + I18n.format("effect.aether.saturation_boost")); - } -} \ No newline at end of file diff --git a/src/main/java/com/gildedgames/aether/common/entities/effects/unique/StatusEffectGuardBreak.java b/src/main/java/com/gildedgames/aether/common/entities/effects/unique/StatusEffectGuardBreak.java deleted file mode 100644 index d5a35a1f01..0000000000 --- a/src/main/java/com/gildedgames/aether/common/entities/effects/unique/StatusEffectGuardBreak.java +++ /dev/null @@ -1,52 +0,0 @@ -package com.gildedgames.aether.common.entities.effects.unique; - -import com.gildedgames.aether.api.entity.effects.EEffectIntensity; -import com.gildedgames.aether.common.entities.effects.StatusEffect; -import net.minecraft.client.resources.I18n; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.util.text.TextFormatting; - -import java.util.Collection; - -public class StatusEffectGuardBreak extends StatusEffect -{ - - public StatusEffectGuardBreak(EntityLivingBase livingBase) - { - super(effectTypes.GUARD_BREAK, null, livingBase); - } - - @Override - public void applyEffect(EntityLivingBase livingBase, int timer) - { - - } - - @Override - public void onEffectEnd() - { - - } - - @Override - public int getBuildupFromIntensity(EEffectIntensity intensity) - { - switch (intensity) - { - case MINOR: - return 1; - case ORDINARY: - return 50; - case MAJOR: - return 100; - } - - return 0; - } - - @Override - public void addInformation(Collection<String> label) - { - label.add(TextFormatting.YELLOW.toString() + I18n.format("effect.aether.guard_break")); - } -} diff --git a/src/main/java/com/gildedgames/aether/common/entities/flying/EntityBodyHelperFlying.java b/src/main/java/com/gildedgames/aether/common/entities/flying/EntityBodyHelperFlying.java deleted file mode 100644 index 02b3a2fe89..0000000000 --- a/src/main/java/com/gildedgames/aether/common/entities/flying/EntityBodyHelperFlying.java +++ /dev/null @@ -1,59 +0,0 @@ -package com.gildedgames.aether.common.entities.flying; - -import net.minecraft.entity.EntityBodyHelper; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.util.math.MathHelper; - -public class EntityBodyHelperFlying extends EntityBodyHelper -{ - - private final EntityLivingBase entity; - - public EntityBodyHelperFlying(EntityLivingBase livingIn) - { - super(livingIn); - - this.entity = livingIn; - } - - @Override - public void updateRenderAngles() - { - float renderYawOffset = this.entity.renderYawOffset; - - super.updateRenderAngles(); - - this.entity.renderYawOffset = renderYawOffset; - - this.entity.renderYawOffset = this.limitAngle(this.entity.renderYawOffset, this.entity.rotationYaw, 10F); - } - - protected float limitAngle(float p_75639_1_, float p_75639_2_, float p_75639_3_) - { - float f = MathHelper.wrapDegrees(p_75639_2_ - p_75639_1_); - - if (f > p_75639_3_) - { - f = p_75639_3_; - } - - if (f < -p_75639_3_) - { - f = -p_75639_3_; - } - - float f1 = p_75639_1_ + f; - - if (f1 < 0.0F) - { - f1 += 360.0F; - } - else if (f1 > 360.0F) - { - f1 -= 360.0F; - } - - return f1; - } - -} diff --git a/src/main/java/com/gildedgames/aether/common/entities/flying/EntityFlying.java b/src/main/java/com/gildedgames/aether/common/entities/flying/EntityFlying.java deleted file mode 100644 index a8f157e665..0000000000 --- a/src/main/java/com/gildedgames/aether/common/entities/flying/EntityFlying.java +++ /dev/null @@ -1,298 +0,0 @@ -package com.gildedgames.aether.common.entities.flying; - -import com.gildedgames.aether.api.entity.damage.IDefenseLevelsHolder; -import com.gildedgames.aether.api.entity.effects.IAetherStatusEffectPool; -import com.gildedgames.aether.api.entity.effects.IAetherStatusEffects; -import com.gildedgames.aether.api.registrar.CapabilitiesAether; -import com.gildedgames.aether.common.entities.ai.EntityAIForcedWander; -import com.gildedgames.aether.common.entities.effects.IEntityResistanceHolder; -import com.google.common.collect.Maps; -import net.minecraft.block.Block; -import net.minecraft.block.material.Material; -import net.minecraft.block.state.IBlockState; -import net.minecraft.entity.EntityBodyHelper; -import net.minecraft.entity.EntityCreature; -import net.minecraft.entity.MoverType; -import net.minecraft.entity.SharedMonsterAttributes; -import net.minecraft.entity.ai.EntityAIBase; -import net.minecraft.entity.ai.EntityAIMoveTowardsRestriction; -import net.minecraft.entity.ai.EntityAIWander; -import net.minecraft.network.datasync.DataParameter; -import net.minecraft.network.datasync.DataSerializers; -import net.minecraft.network.datasync.EntityDataManager; -import net.minecraft.pathfinding.PathNavigate; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.World; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; - -import java.util.HashMap; -import java.util.Map; - -public class EntityFlying extends EntityCreature implements IDefenseLevelsHolder, IEntityResistanceHolder -{ - private Map<IAetherStatusEffects.effectTypes, Boolean> applicationTracker = new HashMap<>(); - private Map<IAetherStatusEffects.effectTypes, Double> resistances = new HashMap<>(); - - private static final DataParameter<Boolean> IS_MOVING = EntityDataManager.createKey(EntityFlying.class, DataSerializers.BOOLEAN); - - private final float clientSideTailAnimationO; - - private float clientSideTailAnimationSpeed; - - private float clientSideTailAnimation; - - public EntityFlying(final World world) - { - super(world); - - this.setSize(0.85F, 0.85F); - this.moveHelper = new FlyingMoveHelper(this); - - this.clientSideTailAnimation = this.rand.nextFloat(); - this.clientSideTailAnimationO = this.clientSideTailAnimation; - } - - protected EntityAIBase createWanderTask() - { - final EntityAIWander wander = new EntityAIForcedWander(this, 0.4D, 5); - - wander.setMutexBits(1); - - return wander; - } - - @Override - protected void initEntityAI() - { - final EntityAIMoveTowardsRestriction moveTowardsRestriction = new EntityAIMoveTowardsRestriction(this, 0.4D); - - moveTowardsRestriction.setMutexBits(1); - - this.tasks.addTask(1, moveTowardsRestriction); - this.tasks.addTask(2, this.createWanderTask()); - } - - @Override - protected EntityBodyHelper createBodyHelper() - { - return new EntityBodyHelperFlying(this); - } - - @SideOnly(Side.CLIENT) - public float getTailAnimation(final float deltaTime) - { - return this.clientSideTailAnimationO + (this.clientSideTailAnimation - this.clientSideTailAnimationO) * deltaTime; - } - - @Override - public boolean isOnLadder() - { - return false; - } - - @Override - public float getBlockPathWeight(final BlockPos pos) - { - return this.world.getBlockState(pos).getMaterial() == Material.AIR ? 10.0F + this.world.getLightBrightness(pos) - 0.5F : super.getBlockPathWeight(pos); - } - - @Override - public boolean getCanSpawnHere() - { - final IBlockState state = this.world.getBlockState((new BlockPos(this)).down()); - - return state.canEntitySpawn(this) - && this.getBlockPathWeight(this.world.getTopSolidOrLiquidBlock(new BlockPos(this.posX, this.getEntityBoundingBox().minY, this.posZ))) >= 0.0F; - } - - @Override - protected void playStepSound(final BlockPos pos, final Block blockIn) - { - - } - - @Override - protected void jump() - { - - } - - @Override - public void fall(final float distance, final float damageMultiplier) - { - - } - - @Override - protected void updateFallState(final double y, final boolean onGroundIn, final IBlockState state, final BlockPos pos) - { - - } - - @Override - protected void entityInit() - { - super.entityInit(); - - this.dataManager.register(EntityFlying.IS_MOVING, false); - } - - @Override - protected void applyEntityAttributes() - { - super.applyEntityAttributes(); - - this.getEntityAttribute(SharedMonsterAttributes.MOVEMENT_SPEED).setBaseValue(0.4D); - } - - @Override - public void onUpdate() - { - super.onUpdate(); - - this.fallDistance = 0.0F; - - if (this.onGround) - { - this.motionY += 0.10D; - //this.motionX += (double)((this.rand.nextFloat() * 2.0F - 1.0F) * 0.4F); - //this.motionZ += (double)((this.rand.nextFloat() * 2.0F - 1.0F) * 0.4F); - this.rotationYaw = this.rand.nextFloat() * 360.0F; - this.onGround = false; - this.isAirBorne = true; - } - - if (this.collidedHorizontally || this.collidedVertically || !this.isNotColliding()) - { - this.motionX += (this.rand.nextBoolean() ? 1.0F : -1.0F) * (double) ((this.rand.nextFloat() * 2.0F - 1.0F) * 0.2F); - this.motionZ += (this.rand.nextBoolean() ? 1.0F : -1.0F) * (double) ((this.rand.nextFloat() * 2.0F - 1.0F) * 0.2F); - } - - if (this.world.isRemote) - { - if (this.isMoving()) - { - if (this.clientSideTailAnimationSpeed < 0.5F) - { - this.clientSideTailAnimationSpeed = 4.0F; - } - else - { - this.clientSideTailAnimationSpeed += (0.5F - this.clientSideTailAnimationSpeed) * 0.1F; - } - } - else - { - this.clientSideTailAnimationSpeed += (0.125F - this.clientSideTailAnimationSpeed) * 0.2F; - } - - this.clientSideTailAnimation += this.clientSideTailAnimationSpeed; - } - } - - @Override - public void onEntityUpdate() - { - IAetherStatusEffectPool statusEffectPool = this.getCapability(CapabilitiesAether.STATUS_EFFECT_POOL, null); - - if (statusEffectPool == null) - { - return; - } - - for (Map.Entry<IAetherStatusEffects.effectTypes, Double> effect : resistances.entrySet()) - { - applicationTracker.putIfAbsent(effect.getKey(), false); - - if (!applicationTracker.get(effect.getKey())) - { - statusEffectPool.addResistanceToEffect(effect.getKey(), effect.getValue()); - - if (statusEffectPool.getResistanceToEffect(effect.getKey()) != 1.0D) - { - applicationTracker.put(effect.getKey(), true); - } - } - else - { - if (statusEffectPool.getResistanceToEffect(effect.getKey()) == 1.0D) - { - applicationTracker.put(effect.getKey(), false); - } - } - } - - super.onEntityUpdate(); - } - - public Map<IAetherStatusEffects.effectTypes, Double> getResistances() - { - return resistances; - } - - @Override - protected PathNavigate createNavigator(final World worldIn) - { - return new PathNavigateFlyer(this, worldIn); - } - - public boolean isMoving() - { - return this.dataManager.get(EntityFlying.IS_MOVING); - } - - protected void setMoving(final boolean moving) - { - this.dataManager.set(EntityFlying.IS_MOVING, moving); - } - - @Override - protected boolean canTriggerWalking() - { - return false; - } - - @Override - public boolean isNotColliding() - { - return this.world.checkNoEntityCollision(this.getEntityBoundingBox(), this) - && this.world.getCollisionBoxes(this, this.getEntityBoundingBox()).isEmpty(); - } - - @Override - public int getVerticalFaceSpeed() - { - return 1; - } - - @Override - public int getHorizontalFaceSpeed() - { - return 1; - } - - @Override - public void travel(final float strafe, final float vertical, final float forward) - { - if (this.isServerWorld()) - { - super.moveRelative(strafe, vertical, forward, 0.1F); - this.move(MoverType.SELF, this.motionX, this.motionY, this.motionZ); - this.motionX *= 0.8999999761581421D; - this.motionY *= 0.8999999761581421D; - this.motionZ *= 0.8999999761581421D; - } - else - { - super.travel(strafe, vertical, forward); - } - } - - @Override - protected boolean canDespawn() - { - return false; - } - -} diff --git a/src/main/java/com/gildedgames/aether/common/entities/flying/EntityFlyingDayMob.java b/src/main/java/com/gildedgames/aether/common/entities/flying/EntityFlyingDayMob.java deleted file mode 100644 index 6be5371b72..0000000000 --- a/src/main/java/com/gildedgames/aether/common/entities/flying/EntityFlyingDayMob.java +++ /dev/null @@ -1,32 +0,0 @@ -package com.gildedgames.aether.common.entities.flying; - -import net.minecraft.pathfinding.PathNavigate; -import net.minecraft.world.World; - -public class EntityFlyingDayMob extends EntityFlyingMob -{ - - public EntityFlyingDayMob(World world) - { - super(world); - } - - @Override - protected PathNavigate createNavigator(final World worldIn) - { - return new PathNavigateFlyer(this, worldIn); - } - - @Override - protected void ageInSunlight() - { - - } - - @Override - protected boolean isValidLightLevel() - { - return true; - } - -} diff --git a/src/main/java/com/gildedgames/aether/common/entities/flying/EntityFlyingMob.java b/src/main/java/com/gildedgames/aether/common/entities/flying/EntityFlyingMob.java deleted file mode 100644 index beafccde77..0000000000 --- a/src/main/java/com/gildedgames/aether/common/entities/flying/EntityFlyingMob.java +++ /dev/null @@ -1,198 +0,0 @@ -package com.gildedgames.aether.common.entities.flying; - -import net.minecraft.enchantment.EnchantmentHelper; -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.SharedMonsterAttributes; -import net.minecraft.entity.monster.IMob; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.init.Items; -import net.minecraft.item.ItemAxe; -import net.minecraft.item.ItemStack; -import net.minecraft.network.datasync.DataParameter; -import net.minecraft.network.datasync.DataSerializers; -import net.minecraft.network.datasync.EntityDataManager; -import net.minecraft.pathfinding.PathNavigate; -import net.minecraft.util.DamageSource; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.MathHelper; -import net.minecraft.world.EnumDifficulty; -import net.minecraft.world.EnumSkyBlock; -import net.minecraft.world.World; - -public class EntityFlyingMob extends EntityFlying implements IMob -{ - - private static final DataParameter<Boolean> ATTACKED = EntityDataManager.createKey(EntityFlyingMob.class, DataSerializers.BOOLEAN); - - public EntityFlyingMob(final World world) - { - super(world); - } - - @Override - protected PathNavigate createNavigator(final World worldIn) - { - PathNavigateFlyer navigateFlyer = new PathNavigateFlyer(this, worldIn); - - navigateFlyer.setAvoidSun(true); - - return navigateFlyer; - } - - protected void handleClientAttack() - { - - } - - @Override - public void onUpdate() - { - super.onUpdate(); - - if (this.hasAttacked() && this.world.isRemote) - { - this.handleClientAttack(); - - this.setAttacked(false); - } - - if (!this.world.isRemote && this.world.getDifficulty() == EnumDifficulty.PEACEFUL) - { - this.setDead(); - } - } - - @Override - protected void entityInit() - { - super.entityInit(); - - this.dataManager.register(EntityFlyingMob.ATTACKED, Boolean.FALSE); - } - - public void setAttacked(final boolean flag) - { - this.dataManager.set(EntityFlyingMob.ATTACKED, flag); - } - - public boolean hasAttacked() - { - return this.dataManager.get(EntityFlyingMob.ATTACKED); - } - - @Override - public void onLivingUpdate() - { - this.updateArmSwingProgress(); - this.ageInSunlight(); - - super.onLivingUpdate(); - } - - @Override - public boolean attackEntityAsMob(final Entity entityIn) - { - this.setAttacked(true); - - float f = (float) this.getEntityAttribute(SharedMonsterAttributes.ATTACK_DAMAGE).getAttributeValue(); - int i = 0; - - if (entityIn instanceof EntityLivingBase) - { - f += EnchantmentHelper.getModifierForCreature(this.getHeldItemMainhand(), ((EntityLivingBase) entityIn).getCreatureAttribute()); - i += EnchantmentHelper.getKnockbackModifier(this); - } - - final boolean flag = entityIn.attackEntityFrom(DamageSource.causeMobDamage(this), f); - - if (flag) - { - if (i > 0) - { - ((EntityLivingBase) entityIn).knockBack(this, - (float) i * 0.5F, (double) MathHelper.sin(this.rotationYaw * 0.017453292F), (double) (-MathHelper.cos( - this.rotationYaw * 0.017453292F))); - this.motionX *= 0.6D; - this.motionZ *= 0.6D; - } - - final int j = EnchantmentHelper.getFireAspectModifier(this); - - if (j > 0) - { - entityIn.setFire(j * 4); - } - - if (entityIn instanceof EntityPlayer) - { - final EntityPlayer entityplayer = (EntityPlayer) entityIn; - final ItemStack itemstack = this.getHeldItemMainhand(); - final ItemStack itemstack1 = entityplayer.isHandActive() ? entityplayer.getActiveItemStack() : ItemStack.EMPTY; - - if (itemstack.getItem() instanceof ItemAxe && itemstack1.getItem() == Items.SHIELD) - { - final float f1 = 0.25F + (float) EnchantmentHelper.getEfficiencyModifier(this) * 0.05F; - - if (this.rand.nextFloat() < f1) - { - entityplayer.getCooldownTracker().setCooldown(Items.SHIELD, 100); - this.world.setEntityState(entityplayer, (byte) 30); - } - } - } - - this.applyEnchantments(this, entityIn); - } - - return flag; - } - - @Override - protected void applyEntityAttributes() - { - super.applyEntityAttributes(); - this.getAttributeMap().registerAttribute(SharedMonsterAttributes.ATTACK_DAMAGE); - } - - protected void ageInSunlight() - { - final float f = this.getBrightness(); - - if (f > 0.5F) - { - this.idleTime += 2; - } - } - - @Override - public boolean getCanSpawnHere() - { - return this.world.getDifficulty() != EnumDifficulty.PEACEFUL && this.isValidLightLevel() && super.getCanSpawnHere(); - } - - protected boolean isValidLightLevel() - { - final BlockPos blockpos = new BlockPos(this.posX, this.getEntityBoundingBox().minY, this.posZ); - - if (this.world.getLightFor(EnumSkyBlock.SKY, blockpos) > this.rand.nextInt(32)) - { - return false; - } - else - { - int i = this.world.getLightFromNeighbors(blockpos); - - if (this.world.isThundering()) - { - final int j = this.world.getSkylightSubtracted(); - this.world.setSkylightSubtracted(10); - i = this.world.getLightFromNeighbors(blockpos); - this.world.setSkylightSubtracted(j); - } - - return i <= this.rand.nextInt(8); - } - } - -} diff --git a/src/main/java/com/gildedgames/aether/common/entities/flying/FlyNodeProcessor.java b/src/main/java/com/gildedgames/aether/common/entities/flying/FlyNodeProcessor.java deleted file mode 100644 index a17a193036..0000000000 --- a/src/main/java/com/gildedgames/aether/common/entities/flying/FlyNodeProcessor.java +++ /dev/null @@ -1,98 +0,0 @@ -package com.gildedgames.aether.common.entities.flying; - -import net.minecraft.block.material.Material; -import net.minecraft.block.state.IBlockState; -import net.minecraft.entity.EntityLiving; -import net.minecraft.pathfinding.NodeProcessor; -import net.minecraft.pathfinding.PathNodeType; -import net.minecraft.pathfinding.PathPoint; -import net.minecraft.util.EnumFacing; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.MathHelper; -import net.minecraft.world.IBlockAccess; - -import javax.annotation.Nullable; - -public class FlyNodeProcessor extends NodeProcessor -{ - - @Override - public PathPoint getStart() - { - return this.openPoint(MathHelper.floor(this.entity.getEntityBoundingBox().minX), MathHelper.floor( - this.entity.getEntityBoundingBox().minY + 0.5D), MathHelper.floor(this.entity.getEntityBoundingBox().minZ)); - } - - /** - * Returns PathPoint for given coordinates - */ - @Override - public PathPoint getPathPointToCoords(final double x, final double y, final double z) - { - return this.openPoint(MathHelper.floor(x - (double) (this.entity.width / 2.0F)), MathHelper.floor( - y + 0.5D), MathHelper.floor(z - (double) (this.entity.width / 2.0F))); - } - - @Override - public int findPathOptions(final PathPoint[] pathOptions, final PathPoint currentPoint, final PathPoint targetPoint, final float maxDistance) - { - int i = 0; - - for (EnumFacing enumfacing : EnumFacing.values()) - { - PathPoint pathpoint = this.getWaterNode(currentPoint.x + enumfacing.getXOffset(), currentPoint.y + enumfacing.getYOffset(), - currentPoint.z + enumfacing.getZOffset()); - - if (pathpoint != null && !pathpoint.visited && pathpoint.distanceTo(targetPoint) < maxDistance) - { - pathOptions[i++] = pathpoint; - } - } - - return i; - } - - @Override - public PathNodeType getPathNodeType(final IBlockAccess blockaccessIn, final int x, final int y, final int z, final EntityLiving entitylivingIn, - final int xSize, final int ySize, - final int zSize, final boolean canBreakDoorsIn, final boolean canEnterDoorsIn) - { - return PathNodeType.OPEN; - } - - @Override - public PathNodeType getPathNodeType(final IBlockAccess x, final int y, final int z, final int p_186330_4_) - { - return PathNodeType.OPEN; - } - - @Nullable - private PathPoint getWaterNode(int p_186328_1_, int p_186328_2_, int p_186328_3_) - { - PathNodeType pathnodetype = this.isFree(p_186328_1_, p_186328_2_, p_186328_3_); - return pathnodetype == PathNodeType.OPEN ? this.openPoint(p_186328_1_, p_186328_2_, p_186328_3_) : null; - } - - private PathNodeType isFree(int p_186327_1_, int p_186327_2_, int p_186327_3_) - { - BlockPos.MutableBlockPos blockpos$mutableblockpos = new BlockPos.MutableBlockPos(); - - for (int i = p_186327_1_; i < p_186327_1_ + this.entitySizeX; ++i) - { - for (int j = p_186327_2_; j < p_186327_2_ + this.entitySizeY; ++j) - { - for (int k = p_186327_3_; k < p_186327_3_ + this.entitySizeZ; ++k) - { - IBlockState iblockstate = this.blockaccess.getBlockState(blockpos$mutableblockpos.setPos(i, j, k)); - - if (iblockstate.getMaterial() != Material.AIR) - { - return PathNodeType.BLOCKED; - } - } - } - } - - return PathNodeType.OPEN; - } -} diff --git a/src/main/java/com/gildedgames/aether/common/entities/flying/FlyingMoveHelper.java b/src/main/java/com/gildedgames/aether/common/entities/flying/FlyingMoveHelper.java deleted file mode 100644 index eb4f300858..0000000000 --- a/src/main/java/com/gildedgames/aether/common/entities/flying/FlyingMoveHelper.java +++ /dev/null @@ -1,69 +0,0 @@ -package com.gildedgames.aether.common.entities.flying; - -import net.minecraft.entity.SharedMonsterAttributes; -import net.minecraft.entity.ai.EntityLookHelper; -import net.minecraft.entity.ai.EntityMoveHelper; -import net.minecraft.util.math.MathHelper; - -public class FlyingMoveHelper extends EntityMoveHelper -{ - private final EntityFlying entity; - - public FlyingMoveHelper(EntityFlying entity) - { - super(entity); - this.entity = entity; - } - - @Override - public void onUpdateMoveHelper() - { - if (this.action == EntityMoveHelper.Action.MOVE_TO && !this.entity.getNavigator().noPath()) - { - double d0 = this.posX - this.entity.posX; - double d1 = this.posY - this.entity.posY; - double d2 = this.posZ - this.entity.posZ; - double d3 = d0 * d0 + d1 * d1 + d2 * d2; - d3 = (double) MathHelper.sqrt(d3); - d1 = d1 / d3; - float f = (float) (MathHelper.atan2(d2, d0) * (180D / Math.PI)) - 90.0F; - this.entity.rotationYaw = this.limitAngle(this.entity.rotationYaw, f, 90.0F); - this.entity.renderYawOffset = this.entity.rotationYaw; - - float f1 = (float) (this.speed * this.entity.getEntityAttribute(SharedMonsterAttributes.MOVEMENT_SPEED).getAttributeValue()); - this.entity.setAIMoveSpeed(this.entity.getAIMoveSpeed() + (f1 - this.entity.getAIMoveSpeed()) * 0.125F); - double d4 = 0.007F; - double d5 = Math.cos((double) (this.entity.rotationYaw * 0.017453292F)); - double d6 = Math.sin((double) (this.entity.rotationYaw * 0.017453292F)); - this.entity.motionX += d4 * d5; - this.entity.motionZ += d4 * d6; - //d4 = Math.sin((double)(this.entity.ticksExisted + this.entity.getEntityId()) * 0.75D) * 0.05D; - this.entity.motionY += d4 * (d6 + d5) * 0.25D; - this.entity.motionY += (double) this.entity.getAIMoveSpeed() * d1 * 0.1D; - - EntityLookHelper entitylookhelper = this.entity.getLookHelper(); - double d7 = this.entity.posX + d0 / d3 * 2.0D; - double d8 = (double) this.entity.getEyeHeight() + this.entity.posY + d1 / d3; - double d9 = this.entity.posZ + d2 / d3 * 2.0D; - double d10 = entitylookhelper.getLookPosX(); - double d11 = entitylookhelper.getLookPosY(); - double d12 = entitylookhelper.getLookPosZ(); - - if (!entitylookhelper.getIsLooking()) - { - d10 = d7; - d11 = d8; - d12 = d9; - } - - this.entity.getLookHelper().setLookPosition( - d10 + (d7 - d10) * 0.125D, d11 + (d8 - d11) * 0.125D, d12 + (d9 - d12) * 0.125D, 10.0F, 40.0F); - this.entity.setMoving(true); - } - else - { - this.entity.setAIMoveSpeed(0.0F); - this.entity.setMoving(false); - } - } -} diff --git a/src/main/java/com/gildedgames/aether/common/entities/flying/PathNavigateFlyer.java b/src/main/java/com/gildedgames/aether/common/entities/flying/PathNavigateFlyer.java deleted file mode 100644 index 6c7590b2f3..0000000000 --- a/src/main/java/com/gildedgames/aether/common/entities/flying/PathNavigateFlyer.java +++ /dev/null @@ -1,154 +0,0 @@ -package com.gildedgames.aether.common.entities.flying; - -import net.minecraft.entity.EntityLiving; -import net.minecraft.pathfinding.PathFinder; -import net.minecraft.pathfinding.PathNavigate; -import net.minecraft.pathfinding.PathPoint; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.MathHelper; -import net.minecraft.util.math.RayTraceResult; -import net.minecraft.util.math.Vec3d; -import net.minecraft.world.World; - -public class PathNavigateFlyer extends PathNavigate -{ - private boolean shouldAvoidSun; - - private boolean shouldAvoidGround; - - public PathNavigateFlyer(final EntityLiving entitylivingIn, final World worldIn) - { - super(entitylivingIn, worldIn); - } - - @Override - protected void removeSunnyPath() - { - super.removeSunnyPath(); - - if (this.shouldAvoidSun) - { - BlockPos entityPos = new BlockPos(MathHelper.floor(this.entity.posX), (int) (this.entity.getEntityBoundingBox().minY + 0.5D), - MathHelper.floor(this.entity.posZ)); - - if (!(this.world.getTopSolidOrLiquidBlock(entityPos).getY() > entityPos.getY())) - { - return; - } - - for (int i = 0; i < this.currentPath.getCurrentPathLength(); ++i) - { - PathPoint pathpoint = this.currentPath.getPathPointFromIndex(i); - BlockPos pos = new BlockPos(pathpoint.x, pathpoint.y, pathpoint.z); - - if (!(this.world.getTopSolidOrLiquidBlock(pos).getY() > pos.getY())) - { - this.currentPath.setCurrentPathLength(i - 1); - return; - } - } - } - - if (this.shouldAvoidGround) - { - //TODO: Make this work better - /*BlockPos entityPos = new BlockPos(MathHelper.floor(this.entity.posX), (int) (this.entity.getEntityBoundingBox().minY + 0.5D), - MathHelper.floor(this.entity.posZ)); - - if (Math.abs(this.world.getHeight(entityPos).getY() - entityPos.getY()) <= 10) - { - return; - } - - for (int i = 0; i < this.currentPath.getCurrentPathLength(); ++i) - { - PathPoint pathpoint = this.currentPath.getPathPointFromIndex(i); - BlockPos pos = new BlockPos(pathpoint.x, pathpoint.y, pathpoint.z); - - if (Math.abs(this.world.getHeight(pos).getY() - pos.getY()) <= 10) - { - this.currentPath.setCurrentPathLength(i - 1); - return; - } - }*/ - } - } - - @Override - protected PathFinder getPathFinder() - { - return new PathFinder(new FlyNodeProcessor()); - } - - /** - * If on ground or swimming and can swim - */ - @Override - protected boolean canNavigate() - { - return true; - } - - @Override - protected Vec3d getEntityPosition() - { - return new Vec3d(this.entity.posX, this.entity.posY + (double) this.entity.height * 0.5D, this.entity.posZ); - } - - @Override - protected void pathFollow() - { - Vec3d vec3d = this.getEntityPosition(); - Vec3d pathVec = this.currentPath.getVectorFromIndex(this.entity, this.currentPath.getCurrentPathIndex()); - - float f = this.entity.width * this.entity.width; - - double sqDistTo = vec3d.squareDistanceTo(pathVec); - - if (sqDistTo < (double) f) - { - this.currentPath.incrementPathIndex(); - } - - for (int j = Math.min(this.currentPath.getCurrentPathIndex() + 6, this.currentPath.getCurrentPathLength() - 1); - j > this.currentPath.getCurrentPathIndex(); --j) - { - Vec3d vec3d1 = this.currentPath.getVectorFromIndex(this.entity, j); - - if (vec3d1.squareDistanceTo(vec3d) <= 36.0D && this.isDirectPathBetweenPoints(vec3d, vec3d1, 0, 0, 0)) - { - this.currentPath.setCurrentPathIndex(j); - break; - } - } - - this.checkForStuck(vec3d); - } - - /** - * Checks if the specified entity can safely walk to the specified location. - */ - @Override - protected boolean isDirectPathBetweenPoints(final Vec3d posVec31, final Vec3d posVec32, final int sizeX, final int sizeY, final int sizeZ) - { - RayTraceResult raytraceresult = this.world - .rayTraceBlocks(posVec31, new Vec3d(posVec32.x, posVec32.y + (double) this.entity.height * 0.5D, posVec32.z), false, true, false); - return raytraceresult == null || raytraceresult.typeOfHit == RayTraceResult.Type.MISS; - } - - @Override - public boolean canEntityStandOnPos(final BlockPos pos) - { - return !this.world.getBlockState(pos).isFullBlock(); - } - - public void setAvoidSun(boolean avoidSun) - { - this.shouldAvoidSun = avoidSun; - } - - public void setAvoidGround(boolean avoidGround) - { - this.shouldAvoidGround = avoidGround; - } -} diff --git a/src/main/java/com/gildedgames/aether/common/entities/genes/AnimalGender.java b/src/main/java/com/gildedgames/aether/common/entities/genes/AnimalGender.java deleted file mode 100644 index bd951d93f7..0000000000 --- a/src/main/java/com/gildedgames/aether/common/entities/genes/AnimalGender.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.gildedgames.aether.common.entities.genes; - -public enum AnimalGender -{ - - MALE, FEMALE; - - public static AnimalGender get(String name) - { - for (AnimalGender type : values()) - { - if (type.name().equalsIgnoreCase(name)) - { - return type; - } - } - - return null; - } - -} diff --git a/src/main/java/com/gildedgames/aether/common/entities/genes/DataGene.java b/src/main/java/com/gildedgames/aether/common/entities/genes/DataGene.java deleted file mode 100644 index da868961e3..0000000000 --- a/src/main/java/com/gildedgames/aether/common/entities/genes/DataGene.java +++ /dev/null @@ -1,61 +0,0 @@ -package com.gildedgames.aether.common.entities.genes; - -import com.gildedgames.aether.api.entity.genes.Gene; -import com.gildedgames.aether.api.entity.genes.Inheritance; -import com.gildedgames.aether.api.entity.genes.Mutation; -import net.minecraft.client.resources.I18n; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; - -public class DataGene<T> implements Gene -{ - - private final String name; - - private final T data; - - private final Inheritance inheritance; - - private final Mutation[] potentialMutations; - - public DataGene(String name, T data, Inheritance inheritance, Mutation... potentialMutations) - { - this.name = name; - this.data = data; - - this.inheritance = inheritance; - - this.potentialMutations = potentialMutations; - } - - @Override - @SideOnly(Side.CLIENT) - public String localizedName() - { - return I18n.format(this.name); - } - - @Override - public String unlocalizedName() - { - return this.name; - } - - @Override - public Mutation[] potentialMutations() - { - return this.potentialMutations; - } - - @Override - public Inheritance inheritance() - { - return this.inheritance; - } - - public T data() - { - return this.data; - } - -} diff --git a/src/main/java/com/gildedgames/aether/common/entities/genes/EntityGeneStorage.java b/src/main/java/com/gildedgames/aether/common/entities/genes/EntityGeneStorage.java deleted file mode 100644 index d8f2ac7921..0000000000 --- a/src/main/java/com/gildedgames/aether/common/entities/genes/EntityGeneStorage.java +++ /dev/null @@ -1,74 +0,0 @@ -package com.gildedgames.aether.common.entities.genes; - -import com.gildedgames.aether.api.entity.genes.IGeneStorage; -import net.minecraft.nbt.NBTTagCompound; - -public class EntityGeneStorage implements IGeneStorage -{ - - private final EntityGeneticAnimal entity; - - public EntityGeneStorage(EntityGeneticAnimal entity) - { - this.entity = entity; - } - - @Override - public int getSeed() - { - return this.entity.getSeed(); - } - - @Override - public void setSeed(int seed) - { - this.entity.setSeed(seed); - } - - @Override - public int getFatherSeed() - { - return this.entity.getSeed(); - } - - @Override - public void setFatherSeed(int seed) - { - this.entity.setFatherSeed(seed); - } - - @Override - public int getMotherSeed() - { - return this.entity.getMotherSeed(); - } - - @Override - public void setMotherSeed(int seed) - { - this.entity.setMotherSeed(seed); - } - - @Override - public void setShouldRetransform(boolean flag) - { - this.entity.setShouldRetransform(flag); - } - - @Override - public void write(NBTTagCompound tag) - { - tag.setInteger("seed", this.getSeed()); - tag.setInteger("fatherSeed", this.getFatherSeed()); - tag.setInteger("motherSeed", this.getMotherSeed()); - } - - @Override - public void read(NBTTagCompound tag) - { - this.setSeed(tag.getInteger("seed")); - this.setFatherSeed(tag.getInteger("fatherSeed")); - this.setMotherSeed(tag.getInteger("motherSeed")); - } - -} diff --git a/src/main/java/com/gildedgames/aether/common/entities/genes/EntityGeneticAnimal.java b/src/main/java/com/gildedgames/aether/common/entities/genes/EntityGeneticAnimal.java deleted file mode 100644 index ea4836bbdf..0000000000 --- a/src/main/java/com/gildedgames/aether/common/entities/genes/EntityGeneticAnimal.java +++ /dev/null @@ -1,139 +0,0 @@ -package com.gildedgames.aether.common.entities.genes; - -import com.gildedgames.aether.api.entity.damage.IDefenseLevelsHolder; -import com.gildedgames.aether.api.entity.genes.IGenePool; -import net.minecraft.entity.passive.EntityAnimal; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.network.datasync.DataParameter; -import net.minecraft.network.datasync.DataSerializers; -import net.minecraft.network.datasync.EntityDataManager; -import net.minecraft.world.World; - -public abstract class EntityGeneticAnimal<T extends IGenePool> extends EntityAnimal implements IDefenseLevelsHolder -{ - - private static final DataParameter<Integer> SEED = EntityDataManager.createKey(EntityGeneticAnimal.class, DataSerializers.VARINT); - - private static final DataParameter<Integer> FATHER_SEED = EntityDataManager.createKey(EntityGeneticAnimal.class, DataSerializers.VARINT); - - private static final DataParameter<Integer> MOTHER_SEED = EntityDataManager.createKey(EntityGeneticAnimal.class, DataSerializers.VARINT); - - private static final DataParameter<Boolean> SHOULD_RETRANSFORM = EntityDataManager.createKey(EntityGeneticAnimal.class, DataSerializers.BOOLEAN); - - private final T genePool; - - public EntityGeneticAnimal(World world) - { - super(world); - - this.genePool = this.createNewGenePool(); - } - - public abstract T createNewGenePool(); - - public T getGenePool() - { - return this.genePool; - } - - @Override - public void entityInit() - { - super.entityInit(); - - this.dataManager.register(SEED, 0); - this.dataManager.register(FATHER_SEED, 0); - this.dataManager.register(MOTHER_SEED, 0); - this.dataManager.register(SHOULD_RETRANSFORM, false); - } - - @Override - public void onUpdate() - { - super.onUpdate(); - - if (this.shouldRetransform() && this.world.isRemote) - { - if (this.getSeed() == this.getFatherSeed() && this.getSeed() == this.getMotherSeed()) - { - this.getGenePool().transformFromSeed(this.getSeed()); - } - else - { - this.getGenePool().transformFromParents(this.getSeed(), this.getFatherSeed(), this.getMotherSeed()); - } - - this.setShouldRetransform(false); - } - } - - public int getSeed() - { - return this.getDataManager().get(EntityGeneticAnimal.SEED); - } - - protected void setSeed(int seed) - { - this.getDataManager().set(EntityGeneticAnimal.SEED, seed); - } - - public int getFatherSeed() - { - return this.getDataManager().get(EntityGeneticAnimal.FATHER_SEED); - } - - protected void setFatherSeed(int seed) - { - this.getDataManager().set(EntityGeneticAnimal.FATHER_SEED, seed); - } - - public int getMotherSeed() - { - return this.getDataManager().get(EntityGeneticAnimal.MOTHER_SEED); - } - - protected void setMotherSeed(int seed) - { - this.getDataManager().set(EntityGeneticAnimal.MOTHER_SEED, seed); - } - - protected boolean shouldRetransform() - { - return this.getDataManager().get(EntityGeneticAnimal.SHOULD_RETRANSFORM); - } - - protected void setShouldRetransform(boolean flag) - { - this.getDataManager().set(EntityGeneticAnimal.SHOULD_RETRANSFORM, flag); - } - - @Override - public void writeEntityToNBT(NBTTagCompound tag) - { - super.writeEntityToNBT(tag); - - tag.setInteger("seed", this.getSeed()); - tag.setInteger("fatherSeed", this.getFatherSeed()); - tag.setInteger("motherSeed", this.getMotherSeed()); - } - - @Override - public void readEntityFromNBT(NBTTagCompound tag) - { - super.readEntityFromNBT(tag); - - int seed = tag.getInteger("seed"); - int fatherSeed = tag.getInteger("fatherSeed"); - int motherSeed = tag.getInteger("motherSeed"); - - if (seed == fatherSeed && seed == motherSeed) - { - this.getGenePool().transformFromSeed(seed); - } - else - { - this.getGenePool().transformFromParents(seed, fatherSeed, motherSeed); - } - } - -} diff --git a/src/main/java/com/gildedgames/aether/common/entities/genes/GenePool.java b/src/main/java/com/gildedgames/aether/common/entities/genes/GenePool.java deleted file mode 100644 index a9d391d8fe..0000000000 --- a/src/main/java/com/gildedgames/aether/common/entities/genes/GenePool.java +++ /dev/null @@ -1,39 +0,0 @@ -package com.gildedgames.aether.common.entities.genes; - -import com.gildedgames.aether.api.entity.genes.GeneRegion; -import com.gildedgames.aether.api.entity.genes.IGenePool; -import com.gildedgames.aether.api.entity.genes.IGeneStorage; - -import java.util.List; - -public abstract class GenePool implements IGenePool -{ - - private List<GeneRegion> geneRegions; - - private final IGeneStorage storage; - - public GenePool(IGeneStorage storage) - { - this.storage = storage; - } - - public abstract List<GeneRegion> createGeneRegions(); - - public final List<GeneRegion> getGeneRegions() - { - if (this.geneRegions == null) - { - this.geneRegions = this.createGeneRegions(); - } - - return this.geneRegions; - } - - @Override - public IGeneStorage getStorage() - { - return this.storage; - } - -} diff --git a/src/main/java/com/gildedgames/aether/common/entities/genes/GeneUtil.java b/src/main/java/com/gildedgames/aether/common/entities/genes/GeneUtil.java deleted file mode 100644 index e3a1e5ecef..0000000000 --- a/src/main/java/com/gildedgames/aether/common/entities/genes/GeneUtil.java +++ /dev/null @@ -1,59 +0,0 @@ -package com.gildedgames.aether.common.entities.genes; - -import com.gildedgames.aether.api.entity.genes.Gene; -import com.gildedgames.aether.api.entity.genes.GeneRegion; -import com.gildedgames.aether.api.entity.genes.IGenePool; -import com.gildedgames.aether.api.entity.genes.IGeneStorage; -import net.minecraft.world.World; - -import java.util.Random; - -public class GeneUtil -{ - - private GeneUtil() - { - - } - - public static void transformFromStorage(IGenePool pool, IGeneStorage storage) - { - if (storage.getSeed() == storage.getFatherSeed() && storage.getSeed() == storage.getMotherSeed()) - { - pool.transformFromSeed(storage.getSeed()); - } - else - { - pool.transformFromParents(storage.getSeed(), storage.getFatherSeed(), storage.getMotherSeed()); - } - } - - public static <T extends GeneRegion<G>, G extends Gene> G evaluateInheritedGene(Random r, T geneRegion1, T geneRegion2) - { - final float inheritenceChance1 = geneRegion1.gene().inheritance().generateChanceToInherit(r); - final float inheritenceChance2 = geneRegion2.gene().inheritance().generateChanceToInherit(r); - - final boolean equalChance = inheritenceChance1 == inheritenceChance2; - - T chosenToInherit; - - if (equalChance) - { - chosenToInherit = r.nextBoolean() ? geneRegion1 : geneRegion2; - } - else - { - chosenToInherit = inheritenceChance1 > inheritenceChance2 ? geneRegion1 : geneRegion2; - } - - return chosenToInherit.gene(); - } - - public static int getRandomSeed(World world) - { - int modifier = world.rand.nextBoolean() ? 1 : -1; - - return modifier * world.rand.nextInt(Integer.MAX_VALUE); - } - -} diff --git a/src/main/java/com/gildedgames/aether/common/entities/genes/SimpleGeneStorage.java b/src/main/java/com/gildedgames/aether/common/entities/genes/SimpleGeneStorage.java deleted file mode 100644 index f5943917c0..0000000000 --- a/src/main/java/com/gildedgames/aether/common/entities/genes/SimpleGeneStorage.java +++ /dev/null @@ -1,73 +0,0 @@ -package com.gildedgames.aether.common.entities.genes; - -import com.gildedgames.aether.api.entity.genes.IGeneStorage; -import net.minecraft.nbt.NBTTagCompound; - -public class SimpleGeneStorage implements IGeneStorage -{ - - private int seed, fatherSeed, motherSeed; - - public SimpleGeneStorage() - { - - } - - @Override - public int getSeed() - { - return this.seed; - } - - @Override - public void setSeed(int seed) - { - this.seed = seed; - } - - @Override - public int getFatherSeed() - { - return this.fatherSeed; - } - - @Override - public void setFatherSeed(int seed) - { - this.fatherSeed = seed; - } - - @Override - public int getMotherSeed() - { - return this.motherSeed; - } - - @Override - public void setMotherSeed(int seed) - { - this.motherSeed = seed; - } - - @Override - public void setShouldRetransform(boolean flag) - { - - } - - @Override - public void write(NBTTagCompound tag) - { - tag.setInteger("seed", this.getSeed()); - tag.setInteger("fatherSeed", this.getFatherSeed()); - tag.setInteger("motherSeed", this.getMotherSeed()); - } - - @Override - public void read(NBTTagCompound tag) - { - this.setSeed(tag.getInteger("seed")); - this.setFatherSeed(tag.getInteger("fatherSeed")); - this.setMotherSeed(tag.getInteger("motherSeed")); - } -} diff --git a/src/main/java/com/gildedgames/aether/common/entities/genes/SimpleInheritance.java b/src/main/java/com/gildedgames/aether/common/entities/genes/SimpleInheritance.java deleted file mode 100644 index dd4f2e9c0a..0000000000 --- a/src/main/java/com/gildedgames/aether/common/entities/genes/SimpleInheritance.java +++ /dev/null @@ -1,43 +0,0 @@ -package com.gildedgames.aether.common.entities.genes; - -import com.gildedgames.aether.api.entity.genes.Inheritance; - -import java.util.Random; - -public class SimpleInheritance implements Inheritance -{ - - private final Type type; - - public SimpleInheritance(Type type) - { - this.type = type; - } - - @Override - public float generateChanceToInherit(Random r) - { - return this.type.evaluate(r); - } - - public enum Type - { - - RANDOM(0.0F, 1.00F), DOMINANT(0.5F, 1.0F), INBETWEEN(0.25F, 0.75F), RECESSIVE(0.0F, 0.5F); - - private final float min, max; - - Type(float min, float max) - { - this.min = min; - this.max = max; - } - - public float evaluate(Random r) - { - return this.min + (r.nextFloat() * (this.max - this.min)); - } - - } - -} diff --git a/src/main/java/com/gildedgames/aether/common/entities/genes/moa/MoaGenePool.java b/src/main/java/com/gildedgames/aether/common/entities/genes/moa/MoaGenePool.java deleted file mode 100644 index 365e0c4b86..0000000000 --- a/src/main/java/com/gildedgames/aether/common/entities/genes/moa/MoaGenePool.java +++ /dev/null @@ -1,132 +0,0 @@ -package com.gildedgames.aether.common.entities.genes.moa; - -import com.gildedgames.aether.api.entity.genes.GeneRegion; -import com.gildedgames.aether.api.entity.genes.IGeneStorage; -import com.gildedgames.aether.common.entities.genes.DataGene; -import com.gildedgames.aether.common.entities.genes.GenePool; -import com.gildedgames.aether.common.entities.genes.GeneUtil; -import com.gildedgames.aether.common.entities.genes.SimpleGeneStorage; -import com.gildedgames.orbis.lib.util.mc.NBT; -import com.google.common.collect.Lists; -import net.minecraft.nbt.NBTTagCompound; - -import java.awt.*; -import java.util.List; -import java.util.Random; - -public class MoaGenePool extends GenePool implements NBT -{ - - private GeneRegion<DataGene<Color>> keratin, feathers, eyes; - - private GeneRegion<MoaMarkGene> marks; - - private GeneRegion<DataGene<Integer>> wingStrength; - - public MoaGenePool() - { - this(new SimpleGeneStorage()); - } - - public MoaGenePool(final IGeneStorage storage) - { - super(storage); - } - - @Override - public void transformFromSeed(final int seed) - { - this.getStorage().setSeed(seed); - this.getStorage().setFatherSeed(seed); - this.getStorage().setMotherSeed(seed); - - final Random r = new Random(this.getStorage().getSeed()); - - this.keratin = new GeneRegion<>("moaBiology.keratin", MoaGenePoolDataSet.KERATIN.pickRandom(r)); - this.feathers = new GeneRegion<>("moaBiology.feathers", MoaGenePoolDataSet.FEATHERS.pickRandom(r)); - this.eyes = new GeneRegion<>("moaBiology.eyes", MoaGenePoolDataSet.EYES.pickRandom(r)); - this.marks = new GeneRegion<>("moaBiology.marks", MoaGenePoolDataSet.MARKS.pickRandom(r)); - - this.wingStrength = new GeneRegion<>("moaBiology.wingStrength", MoaGenePoolDataSet.WING_STRENGTH.pickRandom(r)); - - this.getStorage().setShouldRetransform(true); - } - - @Override - public void transformFromParents(final int seed, final int fatherSeed, final int motherSeed) - { - this.getStorage().setSeed(seed); - this.getStorage().setFatherSeed(fatherSeed); - this.getStorage().setMotherSeed(motherSeed); - - final MoaGenePool father = new MoaGenePool(new SimpleGeneStorage()); - final MoaGenePool mother = new MoaGenePool(new SimpleGeneStorage()); - - father.transformFromSeed(this.getStorage().getFatherSeed()); - mother.transformFromSeed(this.getStorage().getMotherSeed()); - - final Random r = new Random(this.getStorage().getSeed()); - - this.keratin = new GeneRegion<>("moaBiology.keratin", GeneUtil.evaluateInheritedGene(r, father.keratin, mother.keratin)); - this.feathers = new GeneRegion<>("moaBiology.feathers", GeneUtil.evaluateInheritedGene(r, father.feathers, mother.feathers)); - this.eyes = new GeneRegion<>("moaBiology.eyes", GeneUtil.evaluateInheritedGene(r, father.eyes, mother.eyes)); - this.marks = new GeneRegion<>("moaBiology.marks", GeneUtil.evaluateInheritedGene(r, father.marks, mother.marks)); - - this.wingStrength = new GeneRegion<>("moaBiology.wingStrength", GeneUtil.evaluateInheritedGene(r, father.wingStrength, mother.wingStrength)); - - this.getStorage().setShouldRetransform(true); - } - - @Override - public List<GeneRegion> createGeneRegions() - { - final List<GeneRegion> gr = Lists.newArrayList(); - - gr.add(this.keratin); - gr.add(this.feathers); - gr.add(this.eyes); - gr.add(this.marks); - gr.add(this.wingStrength); - - return gr; - } - - public GeneRegion<DataGene<Color>> getKeratin() - { - return this.keratin; - } - - public GeneRegion<DataGene<Color>> getFeathers() - { - return this.feathers; - } - - public GeneRegion<DataGene<Color>> getEyes() - { - return this.eyes; - } - - public GeneRegion<MoaMarkGene> getMarks() - { - return this.marks; - } - - public GeneRegion<DataGene<Integer>> getWingStrength() - { - return this.wingStrength; - } - - @Override - public void write(final NBTTagCompound output) - { - this.getStorage().write(output); - } - - @Override - public void read(final NBTTagCompound input) - { - this.getStorage().read(input); - - GeneUtil.transformFromStorage(this, this.getStorage()); - } -} diff --git a/src/main/java/com/gildedgames/aether/common/entities/genes/moa/MoaGenePoolDataSet.java b/src/main/java/com/gildedgames/aether/common/entities/genes/moa/MoaGenePoolDataSet.java deleted file mode 100644 index ca12ecf814..0000000000 --- a/src/main/java/com/gildedgames/aether/common/entities/genes/moa/MoaGenePoolDataSet.java +++ /dev/null @@ -1,95 +0,0 @@ -package com.gildedgames.aether.common.entities.genes.moa; - -import com.gildedgames.aether.api.entity.genes.Gene; -import com.gildedgames.aether.common.entities.genes.DataGene; -import com.gildedgames.aether.common.entities.genes.SimpleInheritance; -import com.google.common.collect.Lists; - -import java.awt.*; -import java.util.LinkedList; -import java.util.Random; - -public class MoaGenePoolDataSet<T extends Gene> -{ - - public static final MoaGenePoolDataSet<DataGene<Color>> KERATIN = new MoaGenePoolDataSet<>(); - - public static final MoaGenePoolDataSet<DataGene<Color>> EYES = new MoaGenePoolDataSet<>(); - - public static final MoaGenePoolDataSet<DataGene<Color>> FEATHERS = new MoaGenePoolDataSet<>(); - - public static final MoaGenePoolDataSet<MoaMarkGene> MARKS = new MoaGenePoolDataSet<>(); - - public static final MoaGenePoolDataSet<DataGene<Integer>> WING_STRENGTH = new MoaGenePoolDataSet<>(); - - static - { - KERATIN.genes().add(new DataGene<>("moa.keratin.sky_blue", new Color(0x97c6cb), new SimpleInheritance(SimpleInheritance.Type.RECESSIVE))); - KERATIN.genes().add(new DataGene<>("moa.keratin.deep_sky", new Color(0x717e7f), new SimpleInheritance(SimpleInheritance.Type.DOMINANT))); - KERATIN.genes().add(new DataGene<>("moa.keratin.sand", new Color(0x7f7e71), new SimpleInheritance(SimpleInheritance.Type.RECESSIVE))); - KERATIN.genes().add(new DataGene<>("moa.keratin.midnight_sky", new Color(0x353f64), new SimpleInheritance(SimpleInheritance.Type.DOMINANT))); - KERATIN.genes().add(new DataGene<>("moa.keratin.swamp", new Color(0x576449), new SimpleInheritance(SimpleInheritance.Type.RECESSIVE))); - KERATIN.genes().add(new DataGene<>("moa.keratin.royal", new Color(0x494964), new SimpleInheritance(SimpleInheritance.Type.DOMINANT))); - KERATIN.genes().add(new DataGene<>("moa.keratin.tempest", new Color(0x644949), new SimpleInheritance(SimpleInheritance.Type.RECESSIVE))); - - EYES.genes().add(new DataGene<>("moa.eyes.alto", new Color(0xD9D9D9), new SimpleInheritance(SimpleInheritance.Type.RECESSIVE))); - EYES.genes().add(new DataGene<>("moa.eyes.straw", new Color(0xD9BC8F), new SimpleInheritance(SimpleInheritance.Type.DOMINANT))); - EYES.genes().add(new DataGene<>("moa.eyes.winter_hazel", new Color(0xD9CE8F), new SimpleInheritance(SimpleInheritance.Type.RECESSIVE))); - EYES.genes().add(new DataGene<>("moa.eyes.gossip", new Color(0xB1F3A0), new SimpleInheritance(SimpleInheritance.Type.DOMINANT))); - EYES.genes().add(new DataGene<>("moa.eyes.mint", new Color(0xA0F3C1), new SimpleInheritance(SimpleInheritance.Type.RECESSIVE))); - EYES.genes().add(new DataGene<>("moa.eyes.ice", new Color(0xA0F3F3), new SimpleInheritance(SimpleInheritance.Type.RECESSIVE))); - EYES.genes().add(new DataGene<>("moa.eyes.perano", new Color(0xA0C1F3), new SimpleInheritance(SimpleInheritance.Type.DOMINANT))); - EYES.genes().add(new DataGene<>("moa.eyes.portage", new Color(0xB1A0F3), new SimpleInheritance(SimpleInheritance.Type.DOMINANT))); - - FEATHERS.genes().add(new DataGene<>("moa.feathers.black", new Color(0x1a1a1a), new SimpleInheritance(SimpleInheritance.Type.DOMINANT))); - FEATHERS.genes().add(new DataGene<>("moa.feathers.grey", new Color(0x404040), new SimpleInheritance(SimpleInheritance.Type.RECESSIVE))); - FEATHERS.genes().add(new DataGene<>("moa.feathers.white", new Color(0xE6E6E6), new SimpleInheritance(SimpleInheritance.Type.DOMINANT))); - FEATHERS.genes().add(new DataGene<>("moa.feathers.iroko", new Color(0x4d3822), new SimpleInheritance(SimpleInheritance.Type.RECESSIVE))); - FEATHERS.genes().add(new DataGene<>("moa.feathers.orange", new Color(0xd99e5f), new SimpleInheritance(SimpleInheritance.Type.DOMINANT))); - FEATHERS.genes().add(new DataGene<>("moa.feathers.lisbon_brown", new Color(0x4d492b), new SimpleInheritance(SimpleInheritance.Type.RECESSIVE))); - FEATHERS.genes().add(new DataGene<>("moa.feathers.yellow", new Color(0xd9c65d), new SimpleInheritance(SimpleInheritance.Type.DOMINANT))); - FEATHERS.genes().add(new DataGene<>("moa.feathers.mallard", new Color(0x3f4d36), new SimpleInheritance(SimpleInheritance.Type.RECESSIVE))); - FEATHERS.genes().add(new DataGene<>("moa.feathers.lime_green", new Color(0xc0f39b), new SimpleInheritance(SimpleInheritance.Type.DOMINANT))); - FEATHERS.genes().add(new DataGene<>("moa.feathers.everglade", new Color(0x304d3b), new SimpleInheritance(SimpleInheritance.Type.RECESSIVE))); - FEATHERS.genes().add(new DataGene<>("moa.feathers.green", new Color(0x79f39a), new SimpleInheritance(SimpleInheritance.Type.DOMINANT))); - FEATHERS.genes().add(new DataGene<>("moa.feathers.plantation", new Color(0x364d4d), new SimpleInheritance(SimpleInheritance.Type.RECESSIVE))); - FEATHERS.genes().add(new DataGene<>("moa.feathers.sky_blue", new Color(0xaa7f3f3), new SimpleInheritance(SimpleInheritance.Type.DOMINANT))); - FEATHERS.genes().add(new DataGene<>("moa.feathers.cloud_burst", new Color(0x363e4d), new SimpleInheritance(SimpleInheritance.Type.RECESSIVE))); - FEATHERS.genes().add(new DataGene<>("moa.feathers.blue", new Color(0xa0cdf3), new SimpleInheritance(SimpleInheritance.Type.DOMINANT))); - FEATHERS.genes().add(new DataGene<>("moa.feathers.port_gore", new Color(0x3a364d), new SimpleInheritance(SimpleInheritance.Type.RECESSIVE))); - FEATHERS.genes().add(new DataGene<>("moa.feathers.purple", new Color(0xaf9ef3), new SimpleInheritance(SimpleInheritance.Type.DOMINANT))); - FEATHERS.genes().add(new DataGene<>("moa.feathers.bossanova", new Color(0x48364d), new SimpleInheritance(SimpleInheritance.Type.RECESSIVE))); - FEATHERS.genes().add(new DataGene<>("moa.feathers.pink", new Color(0xe199f3), new SimpleInheritance(SimpleInheritance.Type.DOMINANT))); - FEATHERS.genes().add(new DataGene<>("moa.feathers.livid_brown", new Color(0x4d3643), new SimpleInheritance(SimpleInheritance.Type.RECESSIVE))); - FEATHERS.genes().add(new DataGene<>("moa.feathers.puse", new Color(0xf3aad6), new SimpleInheritance(SimpleInheritance.Type.DOMINANT))); - FEATHERS.genes().add(new DataGene<>("moa.feathers.deep_red", new Color(0x4d2222), new SimpleInheritance(SimpleInheritance.Type.RECESSIVE))); - FEATHERS.genes().add(new DataGene<>("moa.feathers.red", new Color(0xf34949), new SimpleInheritance(SimpleInheritance.Type.DOMINANT))); - - MARKS.genes().add(new MoaMarkGene("moa.marks.pointed", "pointed", new SimpleInheritance(SimpleInheritance.Type.DOMINANT))); - MARKS.genes().add(new MoaMarkGene("moa.marks.flat", "flat", new SimpleInheritance(SimpleInheritance.Type.DOMINANT))); - MARKS.genes().add(new MoaMarkGene("moa.marks.curved", "curved", new SimpleInheritance(SimpleInheritance.Type.DOMINANT))); - - WING_STRENGTH.genes().add(new DataGene<>("moa.wing_strength.weak", 1, new SimpleInheritance(SimpleInheritance.Type.RANDOM))); - WING_STRENGTH.genes().add(new DataGene<>("moa.wing_strength.normal", 2, new SimpleInheritance(SimpleInheritance.Type.RANDOM))); - WING_STRENGTH.genes().add(new DataGene<>("moa.wing_strength.strong", 3, new SimpleInheritance(SimpleInheritance.Type.RANDOM))); - WING_STRENGTH.genes().add(new DataGene<>("moa.wing_strength.excellent", 4, new SimpleInheritance(SimpleInheritance.Type.RANDOM))); - } - - private final LinkedList<T> genes = Lists.newLinkedList(); - - private MoaGenePoolDataSet() - { - - } - - private LinkedList<T> genes() - { - return this.genes; - } - - public T pickRandom(Random random) - { - return this.genes().get(random.nextInt(this.genes().size())); - } - -} diff --git a/src/main/java/com/gildedgames/aether/common/entities/genes/moa/MoaMarkGene.java b/src/main/java/com/gildedgames/aether/common/entities/genes/moa/MoaMarkGene.java deleted file mode 100644 index 1a5ab7e1f7..0000000000 --- a/src/main/java/com/gildedgames/aether/common/entities/genes/moa/MoaMarkGene.java +++ /dev/null @@ -1,113 +0,0 @@ -package com.gildedgames.aether.common.entities.genes.moa; - -import com.gildedgames.aether.api.entity.genes.Gene; -import com.gildedgames.aether.api.entity.genes.Inheritance; -import com.gildedgames.aether.api.entity.genes.Mutation; -import com.gildedgames.aether.common.AetherCore; -import net.minecraft.client.resources.I18n; -import net.minecraft.util.ResourceLocation; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; - -public class MoaMarkGene implements Gene -{ - - private final String name; - - private final String resourceName; - - private final Inheritance inheritance; - - private final Mutation[] potentialMutations; - - private final ResourceLocation back; - - private final ResourceLocation head; - - private final ResourceLocation tail; - - private final ResourceLocation wing; - - private final ResourceLocation back_egg; - - private final ResourceLocation head_egg; - - public MoaMarkGene(String name, String resourceName, Inheritance inheritance, Mutation... potentialMutations) - { - this.name = name; - this.resourceName = resourceName; - - this.inheritance = inheritance; - - this.potentialMutations = potentialMutations; - - this.back = AetherCore.getResource("textures/entities/moa/back/" + resourceName + ".png"); - this.head = AetherCore.getResource("textures/entities/moa/head/" + resourceName + ".png"); - this.tail = AetherCore.getResource("textures/entities/moa/tail/" + resourceName + ".png"); - this.wing = AetherCore.getResource("textures/entities/moa/wing/" + resourceName + ".png"); - - this.back_egg = AetherCore.getResource("textures/tile_entities/moa_egg/back/" + resourceName + ".png"); - this.head_egg = AetherCore.getResource("textures/tile_entities/moa_egg/head/" + resourceName + ".png"); - } - - @Override - @SideOnly(Side.CLIENT) - public String localizedName() - { - return I18n.format(this.name); - } - - @Override - public String unlocalizedName() - { - return this.name; - } - - @Override - public Mutation[] potentialMutations() - { - return this.potentialMutations; - } - - @Override - public Inheritance inheritance() - { - return this.inheritance; - } - - public ResourceLocation getEggBack() - { - return this.back_egg; - } - - public ResourceLocation getEggHead() - { - return this.head_egg; - } - - public ResourceLocation getBack() - { - return this.back; - } - - public ResourceLocation getHead() - { - return this.head; - } - - public ResourceLocation getTail() - { - return this.tail; - } - - public ResourceLocation getWing() - { - return this.wing; - } - - public String getResourceName() - { - return this.resourceName; - } - -} diff --git a/src/main/java/com/gildedgames/aether/common/entities/genes/moa/MoaNest.java b/src/main/java/com/gildedgames/aether/common/entities/genes/moa/MoaNest.java deleted file mode 100644 index 4d0a9dfef3..0000000000 --- a/src/main/java/com/gildedgames/aether/common/entities/genes/moa/MoaNest.java +++ /dev/null @@ -1,121 +0,0 @@ -package com.gildedgames.aether.common.entities.genes.moa; - -import com.gildedgames.aether.api.registrar.BlocksAether; -import com.gildedgames.aether.common.entities.animals.EntityMoa; -import com.gildedgames.aether.common.entities.genes.AnimalGender; -import com.gildedgames.aether.common.entities.genes.GeneUtil; -import com.gildedgames.aether.common.entities.util.groups.EntityGroup; -import com.gildedgames.orbis.lib.util.mc.NBTHelper; -import net.minecraft.block.Block; -import net.minecraft.block.material.Material; -import net.minecraft.block.state.IBlockState; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.World; - -public class MoaNest -{ - - public final World world; - - public BlockPos pos; - - public int familyGeneticSeed; - - public boolean hasInitialized; - - protected EntityGroup pack; - - public MoaNest(final World world) - { - this.world = world; - this.pack = new EntityGroup(); - } - - public MoaNest(final World world, final BlockPos pos) - { - this(world, pos, GeneUtil.getRandomSeed(world)); - } - - public MoaNest(final World world, final BlockPos pos, final int familyGeneticSeed) - { - this(world); - - this.pos = pos; - - this.hasInitialized = true; - - this.familyGeneticSeed = familyGeneticSeed; - } - - public boolean isReplaceable(final World world, final BlockPos pos) - { - final IBlockState state = world.getBlockState(pos); - final Block block = state.getBlock(); - - return world.isAirBlock(pos) || - block.isLeaves(state, world, pos) || - block == BlocksAether.aether_grass || - block == BlocksAether.aether_dirt || - block.isReplaceable(world, pos) || - state.getMaterial() == Material.PLANTS || - state.getMaterial() == Material.VINE; - } - - public void spawnMoaFamily(final World world, final int initialSize, final int optimalSize) - { - this.pack = new EntityGroup(EntityGroup.getNextID()); - this.pack.setOptimalSize(optimalSize); - - for (int amount = 0; amount < initialSize; amount++) - { - final EntityMoa moa = new EntityMoa(world, this); - - final int modifier = world.rand.nextBoolean() ? 1 : -1; - final int scatterValue = (world.rand.nextInt(2) * modifier); - - moa.setPosition(this.pos.getX() + scatterValue, this.pos.getY() + 1, this.pos.getZ() + scatterValue); - - if (amount == 1) - { - moa.setGender(AnimalGender.MALE); - } - - if (amount >= 2) - { - moa.setGrowingAge(-24000); - } - - moa.setAnimalPack(this.pack); - - world.spawnEntity(moa); - } - } - - public EntityGroup getAnimalPack() - { - return this.pack; - } - - public void writeToNBT(final NBTTagCompound nbt) - { - nbt.setTag("pos", NBTHelper.writeBlockPos(this.pos)); - - nbt.setInteger("familyGeneticSeed", this.familyGeneticSeed); - - nbt.setBoolean("hasInitialized", this.hasInitialized); - - this.pack.writeToNBT(nbt); - } - - public void readFromNBT(final NBTTagCompound nbt) - { - this.pos = NBTHelper.readBlockPos(nbt.getCompoundTag("pos")); - - this.familyGeneticSeed = nbt.getInteger("familyGeneticSeed"); - - this.hasInitialized = nbt.getBoolean("hasInitialized"); - - this.pack.readFromNBT(nbt); - } -} diff --git a/src/main/java/com/gildedgames/aether/common/entities/monsters/EntityAechorPlant.java b/src/main/java/com/gildedgames/aether/common/entities/monsters/EntityAechorPlant.java deleted file mode 100644 index 5531392d48..0000000000 --- a/src/main/java/com/gildedgames/aether/common/entities/monsters/EntityAechorPlant.java +++ /dev/null @@ -1,440 +0,0 @@ -package com.gildedgames.aether.common.entities.monsters; - -import com.gildedgames.aether.api.entity.damage.DamageTypeAttributes; -import com.gildedgames.aether.api.entity.effects.IAetherStatusEffects; -import com.gildedgames.aether.api.registrar.BlocksAether; -import com.gildedgames.aether.api.registrar.ItemsAether; -import com.gildedgames.aether.common.entities.ai.EntityAIAechorPlantAttack; -import com.gildedgames.aether.common.init.LootTablesAether; -import com.gildedgames.aether.common.util.helpers.PlayerUtil; -import com.google.common.collect.Maps; -import net.minecraft.block.Block; -import net.minecraft.block.state.IBlockState; -import net.minecraft.entity.Entity; -import net.minecraft.entity.MoverType; -import net.minecraft.entity.SharedMonsterAttributes; -import net.minecraft.entity.ai.EntityAINearestAttackableTarget; -import net.minecraft.entity.item.EntityItem; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.init.Items; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.network.datasync.DataParameter; -import net.minecraft.network.datasync.DataSerializers; -import net.minecraft.util.DamageSource; -import net.minecraft.util.EnumHand; -import net.minecraft.util.ResourceLocation; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.EnumDifficulty; -import net.minecraft.world.World; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; - -import java.util.Arrays; -import java.util.Map; - -public class EntityAechorPlant extends EntityAetherMob -{ - protected Map<String, Float> defenseMap = Maps.newHashMap(); - {{ - this.defenseMap.put("Very Weak", 4.0F); - this.defenseMap.put("Weak", 2.0F); - this.defenseMap.put("Average", 0.0F); - this.defenseMap.put("Strong", -2.0F); - this.defenseMap.put("Very Strong", -4.0F); - }} - - private static final int MAX_PETALS = 10; - - private static final DataParameter<Boolean> CAN_SEE_PREY = new DataParameter<>(16, DataSerializers.BOOLEAN); - - private static final DataParameter<Byte> PLANT_SIZE = new DataParameter<>(17, DataSerializers.BYTE); - - private static final DataParameter<Byte> PLANT_PETALS = new DataParameter<>(18, DataSerializers.BYTE); - - private boolean[] petals; - - @SideOnly(Side.CLIENT) - public float sinage, prevSinage; - - private int poisonLeft; - - private int petalGrowTimer = 3000; - - public EntityAechorPlant(World world) - { - super(world); - - this.tasks.addTask(0, new EntityAIAechorPlantAttack(this)); - this.targetTasks.addTask(1, new EntityAINearestAttackableTarget<>(this, EntityPlayer.class, true)); - - this.setSize(0.8F, 0.6F); - - this.setPoisonLeft(2); - - if (world != null) - { - if (world.isRemote) - { - this.sinage = this.rand.nextFloat() * 6F; - } - } - - this.experienceValue = 3; - - Arrays.fill(this.petals, true); - - //this.getResistances().put(IAetherStatusEffects.effectTypes.TOXIN, 1.5D); - } - - public boolean[] getPetalsPresent() - { - return this.petals; - } - - @Override - protected boolean canDespawn() - { - return false; - } - - @Override - protected void entityInit() - { - super.entityInit(); - - this.petals = new boolean[MAX_PETALS]; - - Arrays.fill(this.petals, true); - - this.dataManager.register(EntityAechorPlant.CAN_SEE_PREY, Boolean.FALSE); - this.dataManager.register(EntityAechorPlant.PLANT_SIZE, (byte) 0); - this.dataManager.register(EntityAechorPlant.PLANT_PETALS, this.serializePlantPetals()); - } - - @Override - protected void applyEntityAttributes() - { - super.applyEntityAttributes(); - - this.setPlantSize(this.rand.nextInt(3) + 1); - - this.getEntityAttribute(SharedMonsterAttributes.FOLLOW_RANGE).setBaseValue(3.0F); - this.getEntityAttribute(SharedMonsterAttributes.MAX_HEALTH).setBaseValue(10.0D); - - this.getEntityAttribute(DamageTypeAttributes.SLASH_DEFENSE_LEVEL).setBaseValue(0.0f); - this.getEntityAttribute(DamageTypeAttributes.IMPACT_DEFENSE_LEVEL).setBaseValue(0.0f); - this.getEntityAttribute(DamageTypeAttributes.PIERCE_DEFENSE_LEVEL).setBaseValue(0.0f); - } - - @Override - public void onUpdate() - { - super.onUpdate(); - - this.motionX = 0.0D; - this.motionZ = 0.0D; - - if (!this.world.isRemote) - { - this.petalGrowTimer--; - - if (this.petalGrowTimer <= 0) - { - this.petalGrowTimer = 2400 + this.getRNG().nextInt(1600); - - int remainingPetals = this.getPetalCountInState(true); - - if (remainingPetals < MAX_PETALS) - { - this.setPetalState(this.getRandomPetal(false), true); - } - - this.heal((float) (Math.round((this.getMaxHealth() / MAX_PETALS) * 2.0) / 2.0)); - } - } - - if (this.world.isRemote) - { - this.tickAnimation(); - - return; - } - - boolean isTargeting = this.getAttackTarget() != null; - - if (this.canSeePrey() != isTargeting) - { - this.setCanSeePrey(isTargeting); - } - - if (!this.canStayHere(new BlockPos(this))) - { - this.setHealth(0); - } - } - - /* - @Override - protected void damageEntity(DamageSource damageSrc, float damageAmount) - { - float prevHealth = this.getHealth(); - - super.damageEntity(damageSrc, damageAmount); - - if (this.getHealth() != prevHealth) - { - this.petalGrowTimer = 6000; - - if (!this.world.isRemote) - { - int targetPetals = (int) Math.floor((this.getHealth() / this.getMaxHealth()) * MAX_PETALS); - int remainingPetals = this.getPetalCountInState(true); - - int damage = remainingPetals - targetPetals; - - Block.spawnAsEntity(this.world, this.getPosition(), new ItemStack(ItemsAether.aechor_petal, damage / 2)); - - while (remainingPetals > targetPetals) - { - this.setPetalState(this.getRandomPetal(true), false); - - remainingPetals--; - } - } - } - } - */ - - private int getRandomPetal(boolean state) - { - int total = this.getPetalCountInState(state); - int nth = this.rand.nextInt(total); - - int selected = -1; - - for (int i = 0, k = 0; i < this.petals.length; i++) - { - boolean present = this.petals[i]; - - if (present == state) - { - if (k == nth) - { - selected = i; - - break; - } - - k++; - } - } - - return selected; - } - - private void setPetalState(int index, boolean state) - { - this.petals[index] = state; - this.sendPetalUpdate(); - } - - private void sendPetalUpdate() - { - this.dataManager.set(PLANT_PETALS, this.serializePlantPetals()); - } - - private int getPetalCountInState(boolean state) - { - int i = 0; - - for (boolean a : this.petals) - { - if (a == state) - { - i++; - } - } - - return i; - } - - private boolean canStayHere(final BlockPos pos) - { - if (this.world.getBlockState(pos).isFullCube()) - { - return false; - } - - final IBlockState rootBlock = this.world.getBlockState(pos.down()); - - return rootBlock.getBlock() == BlocksAether.aether_grass - || rootBlock.getBlock() == BlocksAether.aether_dirt - || rootBlock.getBlock() == BlocksAether.highlands_snow_layer - || rootBlock.getBlock() == BlocksAether.highlands_snow; - } - - @Override - public void knockBack(Entity entity, float distance, double x, double y) - { - } - - @Override - public void move(MoverType type, double x, double y, double z) - { - if (type == MoverType.PISTON) - { - super.move(type, x, y, z); - } - } - - @Override - protected ResourceLocation getLootTable() - { - return LootTablesAether.ENTITY_AECHOR_PLANT; - } - - @Override - public boolean processInteract(EntityPlayer player, EnumHand hand) - { - ItemStack stack = player.getHeldItem(hand); - - if (!player.capabilities.isCreativeMode && stack.getItem() == ItemsAether.skyroot_bucket) - { - if (this.getPoisonLeft() > 0) - { - PlayerUtil.fillBucketInHand(player, hand, stack, new ItemStack(ItemsAether.skyroot_poison_bucket)); - - this.setPoisonLeft(this.getPoisonLeft() - 1); - - return true; - } - } - - return false; - } - - @SideOnly(Side.CLIENT) - private void tickAnimation() - { - this.prevSinage = this.sinage; - - if (this.hurtTime > 0) - { - this.sinage += 0.5F; - } - else - { - this.sinage += this.canSeePrey() ? 0.3F : 0.1F; - } - - float pie2 = 3.141593F * 2F; - - if (this.sinage > pie2) - { - this.sinage -= pie2; - this.prevSinage -= pie2; - } - } - - @Override - public void writeEntityToNBT(NBTTagCompound tagCompound) - { - super.writeEntityToNBT(tagCompound); - - tagCompound.setInteger("plantSize", this.getPlantSize()); - tagCompound.setInteger("poisonLeft", this.getPoisonLeft()); - - tagCompound.setByte("petals", this.serializePlantPetals()); - - tagCompound.setInteger("petalGrowTimer", this.petalGrowTimer); - } - - @Override - public void readEntityFromNBT(NBTTagCompound tagCompound) - { - super.readEntityFromNBT(tagCompound); - - this.setPlantSize(tagCompound.getInteger("plantSize")); - this.setPoisonLeft(tagCompound.getInteger("poisonLeft")); - - if (tagCompound.hasKey("petals")) - { - this.deserializePlantPetals(tagCompound.getByte("petals")); - } - else - { - Arrays.fill(this.petals, true); - } - - this.petalGrowTimer = tagCompound.getInteger("petalGrowTimer"); - } - - @Override - public boolean getCanSpawnHere() - { - return this.world.getDifficulty() != EnumDifficulty.PEACEFUL; - } - - public boolean canSeePrey() - { - return this.dataManager.get(EntityAechorPlant.CAN_SEE_PREY); - } - - public void setCanSeePrey(boolean canSee) - { - this.dataManager.set(EntityAechorPlant.CAN_SEE_PREY, canSee); - } - - public int getPlantSize() - { - return this.dataManager.get(EntityAechorPlant.PLANT_SIZE); - } - - public void setPlantSize(int size) - { - this.dataManager.set(EntityAechorPlant.PLANT_SIZE, (byte) size); - } - - public int getPoisonLeft() - { - return this.poisonLeft; - } - - public void setPoisonLeft(int poisonLeft) - { - this.poisonLeft = poisonLeft; - } - - @Override - public void notifyDataManagerChange(DataParameter<?> key) - { - if (key == PLANT_PETALS) - { - this.deserializePlantPetals(this.dataManager.get(PLANT_PETALS)); - } - } - - private void deserializePlantPetals(byte val) - { - for (int i = 0; i < this.petals.length; i++) - { - this.petals[i] = ((val >>> i) & 1) == 1; - } - } - - private byte serializePlantPetals() - { - byte val = 0; - - for (int i = 0; i < this.petals.length; i++) - { - if (this.petals[i]) - { - val |= (1 << i); - } - } - - return val; - } -} diff --git a/src/main/java/com/gildedgames/aether/common/entities/monsters/EntityAetherMob.java b/src/main/java/com/gildedgames/aether/common/entities/monsters/EntityAetherMob.java deleted file mode 100644 index 92d0f6230c..0000000000 --- a/src/main/java/com/gildedgames/aether/common/entities/monsters/EntityAetherMob.java +++ /dev/null @@ -1,82 +0,0 @@ -package com.gildedgames.aether.common.entities.monsters; - -import com.gildedgames.aether.api.entity.damage.IDefenseLevelsHolder; -import com.gildedgames.aether.api.entity.effects.IAetherStatusEffectPool; -import com.gildedgames.aether.api.entity.effects.IAetherStatusEffects; -import com.gildedgames.aether.api.registrar.CapabilitiesAether; -import com.gildedgames.aether.common.entities.ai.AetherNavigateGround; -import com.gildedgames.aether.common.entities.effects.IEntityResistanceHolder; -import com.google.common.collect.Maps; -import net.minecraft.entity.Entity; -import net.minecraft.entity.monster.EntityMob; -import net.minecraft.pathfinding.PathNavigate; -import net.minecraft.world.World; - -import java.util.HashMap; -import java.util.Map; - -public class EntityAetherMob extends EntityMob implements IDefenseLevelsHolder, IEntityResistanceHolder -{ - private Map<IAetherStatusEffects.effectTypes, Boolean> applicationTracker = new HashMap<>(); - private Map<IAetherStatusEffects.effectTypes, Double> resistances = new HashMap<>(); - - public EntityAetherMob(World world) - { - super(world); - } - - @Override - protected PathNavigate createNavigator(final World worldIn) - { - AetherNavigateGround navigateGround = new AetherNavigateGround(this, worldIn); - - navigateGround.setAvoidSun(true); - - return navigateGround; - } - - protected void applyStatusEffectOnAttack(final Entity target) - { - - } - - @Override - public void onEntityUpdate() - { - IAetherStatusEffectPool statusEffectPool = this.getCapability(CapabilitiesAether.STATUS_EFFECT_POOL, null); - - if (statusEffectPool == null) - { - return; - } - - for (Map.Entry<IAetherStatusEffects.effectTypes, Double> effect : resistances.entrySet()) - { - applicationTracker.putIfAbsent(effect.getKey(), false); - - if (!applicationTracker.get(effect.getKey())) - { - statusEffectPool.addResistanceToEffect(effect.getKey(), effect.getValue()); - - if (statusEffectPool.getResistanceToEffect(effect.getKey()) != 1.0D) - { - applicationTracker.put(effect.getKey(), true); - } - } - else - { - if (statusEffectPool.getResistanceToEffect(effect.getKey()) == 1.0D) - { - applicationTracker.put(effect.getKey(), false); - } - } - } - - super.onEntityUpdate(); - } - - public Map<IAetherStatusEffects.effectTypes, Double> getResistances() - { - return resistances; - } -} diff --git a/src/main/java/com/gildedgames/aether/common/entities/monsters/EntityArkeniumGolem.java b/src/main/java/com/gildedgames/aether/common/entities/monsters/EntityArkeniumGolem.java deleted file mode 100644 index 42e37fcb00..0000000000 --- a/src/main/java/com/gildedgames/aether/common/entities/monsters/EntityArkeniumGolem.java +++ /dev/null @@ -1,164 +0,0 @@ -package com.gildedgames.aether.common.entities.monsters; - -import com.gildedgames.aether.api.entity.damage.DamageTypeAttributes; -import com.gildedgames.aether.api.entity.effects.EEffectIntensity; -import com.gildedgames.aether.api.entity.effects.IAetherStatusEffectIntensity; -import com.gildedgames.aether.api.entity.effects.IAetherStatusEffects; -import com.gildedgames.aether.api.registrar.SoundsAether; -import com.gildedgames.aether.common.entities.ai.AetherNavigateGround; -import com.gildedgames.aether.common.entities.ai.EntityAIUnstuckBlueAercloud; -import com.gildedgames.aether.common.entities.ai.cockatrice.EntityAICockatriceHide; -import com.gildedgames.aether.common.entities.ai.cockatrice.EntityAICockatriceSneakAttack; -import com.gildedgames.aether.common.entities.ai.cockatrice.EntityAICockatriceWander; -import com.gildedgames.aether.common.entities.effects.StatusEffectCockatriceVenom; -import com.gildedgames.aether.common.init.LootTablesAether; -import com.gildedgames.aether.common.util.helpers.EntityUtil; -import com.google.common.collect.Maps; -import net.minecraft.block.Block; -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLiving; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.SharedMonsterAttributes; -import net.minecraft.entity.ai.EntityAILookIdle; -import net.minecraft.entity.ai.EntityAISwimming; -import net.minecraft.entity.ai.EntityJumpHelper; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.init.MobEffects; -import net.minecraft.init.SoundEvents; -import net.minecraft.network.datasync.DataParameter; -import net.minecraft.network.datasync.DataSerializers; -import net.minecraft.pathfinding.PathNavigate; -import net.minecraft.potion.PotionEffect; -import net.minecraft.util.DamageSource; -import net.minecraft.util.ResourceLocation; -import net.minecraft.util.SoundEvent; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.World; - -import java.util.Map; - -public class EntityArkeniumGolem extends EntityAetherMob -{ - protected Map<String, Float> defenseMap = Maps.newHashMap(); - {{ - this.defenseMap.put("Very Weak", 4.0F); - this.defenseMap.put("Weak", 2.0F); - this.defenseMap.put("Average", 0.0F); - this.defenseMap.put("Strong", -2.0F); - this.defenseMap.put("Very Strong", -4.0F); - }} - - public EntityArkeniumGolem(final World world) - { - super(world); - - this.tasks.addTask(0, new EntityAISwimming(this)); - this.tasks.addTask(0, new EntityAIUnstuckBlueAercloud(this)); - this.tasks.addTask(7, new EntityAILookIdle(this)); - - this.jumpHelper = new JumpHelperDisable(this); - - this.setSize(1.2F, 1.8F); - this.stepHeight = 1.0F; - - this.experienceValue = 10; - } - - @Override - protected PathNavigate createNavigator(final World worldIn) - { - AetherNavigateGround navigateGround = new AetherNavigateGround(this, worldIn); - - navigateGround.setAvoidSun(false); - - return navigateGround; - } - - @Override - protected void jump() - { - - } - - @Override - protected void applyEntityAttributes() - { - super.applyEntityAttributes(); - - this.getEntityAttribute(SharedMonsterAttributes.FOLLOW_RANGE).setBaseValue(35.0D); - this.getEntityAttribute(SharedMonsterAttributes.MOVEMENT_SPEED).setBaseValue(0.2D); - this.getEntityAttribute(SharedMonsterAttributes.MAX_HEALTH).setBaseValue(28.0D); - this.getEntityAttribute(SharedMonsterAttributes.ATTACK_DAMAGE).setBaseValue(3.0D); - - this.getEntityAttribute(DamageTypeAttributes.SLASH_DEFENSE_LEVEL).setBaseValue(-4.0f); - this.getEntityAttribute(DamageTypeAttributes.IMPACT_DEFENSE_LEVEL).setBaseValue(-2.0f); - this.getEntityAttribute(DamageTypeAttributes.PIERCE_DEFENSE_LEVEL).setBaseValue(2.0f); - } - - @Override - public boolean attackEntityAsMob(final Entity entity) - { - final boolean flag = super.attackEntityAsMob(entity); - - if (flag && entity instanceof EntityLivingBase) - { - final EntityLivingBase living = (EntityLivingBase) entity; - - this.applyStatusEffectOnAttack(entity); - } - - return flag; - } - - @Override - protected SoundEvent getAmbientSound() - { - return SoundsAether.tempest_ambient; - } - - @Override - protected SoundEvent getHurtSound(final DamageSource damageSourceIn) - { - return SoundsAether.tempest_hurt; - } - - @Override - protected SoundEvent getDeathSound() - { - return SoundsAether.tempest_death; - } - - @Override - protected void playStepSound(final BlockPos pos, final Block blockIn) - { - this.playSound(SoundEvents.BLOCK_STONE_STEP, 0.8F, 0.5F); - } - -// @Override protected ResourceLocation getLootTable() - { - // return LootTablesAether.ENTITY_ARKENIUM_GOLEM; - } - - public static class JumpHelperDisable extends EntityJumpHelper - { - - public JumpHelperDisable(final EntityLiving entityIn) - { - super(entityIn); - } - - @Override - public void setJumping() - { - - } - - @Override - public void doJump() - { - - } - - } - -} diff --git a/src/main/java/com/gildedgames/aether/common/entities/monsters/EntityCockatrice.java b/src/main/java/com/gildedgames/aether/common/entities/monsters/EntityCockatrice.java deleted file mode 100644 index 1cfc429a7a..0000000000 --- a/src/main/java/com/gildedgames/aether/common/entities/monsters/EntityCockatrice.java +++ /dev/null @@ -1,238 +0,0 @@ -package com.gildedgames.aether.common.entities.monsters; - -import com.gildedgames.aether.api.entity.damage.DamageTypeAttributes; -import com.gildedgames.aether.api.entity.effects.EEffectIntensity; -import com.gildedgames.aether.api.entity.effects.IAetherStatusEffectIntensity; -import com.gildedgames.aether.api.entity.effects.IAetherStatusEffectPool; -import com.gildedgames.aether.api.entity.effects.IAetherStatusEffects; -import com.gildedgames.aether.api.registrar.CapabilitiesAether; -import com.gildedgames.aether.api.registrar.SoundsAether; -import com.gildedgames.aether.common.entities.ai.EntityAIUnstuckBlueAercloud; -import com.gildedgames.aether.common.entities.ai.cockatrice.EntityAICockatriceHide; -import com.gildedgames.aether.common.entities.ai.cockatrice.EntityAICockatriceSneakAttack; -import com.gildedgames.aether.common.entities.ai.cockatrice.EntityAICockatriceWander; -import com.gildedgames.aether.common.entities.effects.StatusEffectCockatriceVenom; -import com.gildedgames.aether.common.init.LootTablesAether; -import com.gildedgames.aether.common.util.helpers.EntityUtil; -import com.google.common.collect.Maps; -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLiving; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.SharedMonsterAttributes; -import net.minecraft.entity.ai.EntityAILookIdle; -import net.minecraft.entity.ai.EntityAISwimming; -import net.minecraft.entity.ai.EntityJumpHelper; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.init.MobEffects; -import net.minecraft.network.datasync.DataParameter; -import net.minecraft.network.datasync.DataSerializers; -import net.minecraft.potion.PotionEffect; -import net.minecraft.util.DamageSource; -import net.minecraft.util.ResourceLocation; -import net.minecraft.util.SoundEvent; -import net.minecraft.world.World; - -import java.util.Map; - -public class EntityCockatrice extends EntityAetherMob -{ - protected Map<String, Float> defenseMap = Maps.newHashMap(); - {{ - this.defenseMap.put("Very Weak", 4.0F); - this.defenseMap.put("Weak", 2.0F); - this.defenseMap.put("Average", 0.0F); - this.defenseMap.put("Strong", -2.0F); - this.defenseMap.put("Very Strong", -4.0F); - }} - - private static final DataParameter<Boolean> IS_HIDING = new DataParameter<>(16, DataSerializers.BOOLEAN); - - private static final DataParameter<Boolean> IS_HIDDEN = new DataParameter<>(17, DataSerializers.BOOLEAN); - - private static final DataParameter<Boolean> IS_ATTACKING = new DataParameter<>(18, DataSerializers.BOOLEAN); - - public EntityCockatrice(final World world) - { - super(world); - - this.tasks.addTask(0, new EntityAISwimming(this)); - this.tasks.addTask(0, new EntityAIUnstuckBlueAercloud(this)); - this.tasks.addTask(1, new EntityAICockatriceHide(this, EntityPlayer.class, 0.9D)); - this.tasks.addTask(2, new EntityAICockatriceWander(this, 0.35D)); - this.tasks.addTask(7, new EntityAILookIdle(this)); - - this.targetTasks.addTask(0, new EntityAICockatriceSneakAttack(this, EntityPlayer.class)); - - this.jumpHelper = new JumpHelperDisable(this); - - this.setSize(1.0F, 2.5F); - this.stepHeight = 1.0F; - - this.experienceValue = 7; - - this.getResistances().put(IAetherStatusEffects.effectTypes.COCKATRICE_VENOM, 1.0D); - } - - @Override - protected void jump() - { - - } - - @Override - protected void entityInit() - { - super.entityInit(); - - this.dataManager.register(EntityCockatrice.IS_HIDING, Boolean.FALSE); - this.dataManager.register(EntityCockatrice.IS_HIDDEN, Boolean.FALSE); - this.dataManager.register(EntityCockatrice.IS_ATTACKING, Boolean.FALSE); - } - - @Override - protected void applyEntityAttributes() - { - super.applyEntityAttributes(); - - this.getEntityAttribute(SharedMonsterAttributes.MOVEMENT_SPEED).setBaseValue(0.4D); - this.getEntityAttribute(SharedMonsterAttributes.MAX_HEALTH).setBaseValue(24.0D); - this.getEntityAttribute(SharedMonsterAttributes.ATTACK_DAMAGE).setBaseValue(2.0D); - - this.getEntityAttribute(DamageTypeAttributes.SLASH_DEFENSE_LEVEL).setBaseValue(-4.0f); - this.getEntityAttribute(DamageTypeAttributes.IMPACT_DEFENSE_LEVEL).setBaseValue(0.0f); - this.getEntityAttribute(DamageTypeAttributes.PIERCE_DEFENSE_LEVEL).setBaseValue(2.0f); - } - - @Override - public boolean isPotionApplicable(final PotionEffect potionEffect) - { - return potionEffect.getPotion() != MobEffects.POISON && super.isPotionApplicable(potionEffect); - } - - @Override - public boolean attackEntityAsMob(final Entity entity) - { - final boolean flag = super.attackEntityAsMob(entity); - - if (flag && entity instanceof EntityLivingBase) - { - final EntityLivingBase living = (EntityLivingBase) entity; - - this.applyStatusEffectOnAttack(entity); - } - - return flag; - } - - @Override - protected void applyStatusEffectOnAttack(final Entity target) - { - if (target instanceof EntityLivingBase) - { - final EntityLivingBase living = (EntityLivingBase) target; - - if (!living.isActiveItemStackBlocking()) - { - IAetherStatusEffectPool statusEffectPool = living.getCapability(CapabilitiesAether.STATUS_EFFECT_POOL, null); - - if (statusEffectPool != null) - { - if (!statusEffectPool.effectExists(IAetherStatusEffects.effectTypes.COCKATRICE_VENOM)) - { - statusEffectPool.applyStatusEffect(IAetherStatusEffects.effectTypes.COCKATRICE_VENOM, 55); - } - else - { - statusEffectPool.modifyActiveEffectBuildup(IAetherStatusEffects.effectTypes.COCKATRICE_VENOM, - statusEffectPool.getBuildupFromEffect(IAetherStatusEffects.effectTypes.COCKATRICE_VENOM) + 55); - } - } - } - } - } - - @Override - public void onUpdate() - { - super.onUpdate(); - - EntityUtil.despawnEntityDuringDaytime(this); - } - - @Override - protected SoundEvent getAmbientSound() - { - return SoundsAether.cockatrice_ambient; - } - - @Override - protected SoundEvent getHurtSound(final DamageSource damageSourceIn) - { - return SoundsAether.cockatrice_hurt; - } - - @Override - protected SoundEvent getDeathSound() - { - return SoundsAether.cockatrice_death; - } - - public boolean isHiding() - { - return this.dataManager.get(EntityCockatrice.IS_HIDING); - } - - public void setHiding(final boolean isHiding) - { - this.dataManager.set(EntityCockatrice.IS_HIDING, isHiding); - } - - public boolean isHidden() - { - return this.dataManager.get(EntityCockatrice.IS_HIDDEN); - } - - public void setHidden(final boolean isHidden) - { - this.dataManager.set(EntityCockatrice.IS_HIDDEN, isHidden); - } - - public boolean isAttacking() - { - return this.dataManager.get(EntityCockatrice.IS_ATTACKING); - } - - public void setAttacking(final boolean isAttacking) - { - this.dataManager.set(EntityCockatrice.IS_ATTACKING, isAttacking); - } - - @Override - protected ResourceLocation getLootTable() - { - return LootTablesAether.ENTITY_COCKATRICE; - } - - public static class JumpHelperDisable extends EntityJumpHelper - { - - public JumpHelperDisable(final EntityLiving entityIn) - { - super(entityIn); - } - - @Override - public void setJumping() - { - - } - - @Override - public void doJump() - { - - } - - } - -} diff --git a/src/main/java/com/gildedgames/aether/common/entities/monsters/EntitySwet.java b/src/main/java/com/gildedgames/aether/common/entities/monsters/EntitySwet.java deleted file mode 100644 index 732c49a816..0000000000 --- a/src/main/java/com/gildedgames/aether/common/entities/monsters/EntitySwet.java +++ /dev/null @@ -1,501 +0,0 @@ -package com.gildedgames.aether.common.entities.monsters; - -import com.gildedgames.aether.api.entity.damage.DamageTypeAttributes; -import com.gildedgames.aether.api.entity.damage.IDefenseLevelsHolder; -import com.gildedgames.aether.api.entity.effects.EEffectIntensity; -import com.gildedgames.aether.api.entity.effects.IAetherStatusEffectIntensity; -import com.gildedgames.aether.api.entity.effects.IAetherStatusEffects; -import com.gildedgames.aether.api.registrar.BlocksAether; -import com.gildedgames.aether.common.AetherCore; -import com.gildedgames.aether.common.capabilities.entity.player.PlayerAether; -import com.gildedgames.aether.common.capabilities.entity.player.modules.PlayerSwetTrackerModule; -import com.gildedgames.aether.common.entities.ai.EntityAIRestrictRain; -import com.gildedgames.aether.common.entities.ai.hopping.*; -import com.gildedgames.aether.common.entities.ai.swet.AILatchOn; -import com.gildedgames.aether.common.entities.effects.StatusEffectToxin; -import com.gildedgames.aether.common.entities.util.EntityExtendedMob; -import com.gildedgames.aether.common.init.LootTablesAether; -import com.gildedgames.aether.common.network.NetworkingAether; -import com.gildedgames.aether.common.network.packets.PacketDetachSwet; -import com.google.common.collect.Maps; -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.SharedMonsterAttributes; -import net.minecraft.entity.ai.EntityAINearestAttackableTarget; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.init.SoundEvents; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.network.datasync.DataParameter; -import net.minecraft.network.datasync.DataSerializers; -import net.minecraft.network.datasync.EntityDataManager; -import net.minecraft.potion.Potion; -import net.minecraft.potion.PotionEffect; -import net.minecraft.util.EnumParticleTypes; -import net.minecraft.util.ResourceLocation; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.World; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; - -import java.util.ArrayList; -import java.util.Collection; -import java.util.Map; - -public class EntitySwet extends EntityExtendedMob implements IDefenseLevelsHolder -{ - protected Map<String, Float> defenseMap = Maps.newHashMap(); - {{ - this.defenseMap.put("Very Weak", 4.0F); - this.defenseMap.put("Weak", 2.0F); - this.defenseMap.put("Average", 0.0F); - this.defenseMap.put("Strong", -2.0F); - this.defenseMap.put("Very Strong", -4.0F); - }} - - public static final int FOOD_SATURATION_REQUIRED = 5; - - private static final DataParameter<Integer> TYPE = EntityDataManager.createKey(EntitySwet.class, DataSerializers.VARINT); - - private static final DataParameter<Integer> FOOD_SATURATION = EntityDataManager.createKey(EntitySwet.class, DataSerializers.VARINT); - - public float squishAmount; - - public float squishFactor; - - public float prevSquishFactor; - - private boolean wasOnGround; - - private float squishPoolSize, actualSaturation; - - private int timeSinceSucking, digestTime, timeStarved, transitionTime; - - public EntitySwet(final World worldIn) - { - super(worldIn); - - final HoppingMoveHelper hoppingMoveHelper = new HoppingMoveHelper(this, - () -> EntitySwet.this.getFoodSaturation() == 0 ? SoundEvents.ENTITY_SLIME_JUMP : SoundEvents.ENTITY_SLIME_JUMP, - () -> EntitySwet.this.getRNG().nextInt(EntitySwet.this.getFoodSaturation() == 3 ? 10 : 60) + (EntitySwet.this.getFoodSaturation() == 3 ? - 40 : - 50)); - - this.moveHelper = hoppingMoveHelper; - - this.tasks.addTask(2, new EntityAIRestrictRain(this)); - this.tasks.addTask(3, new AIHopHideFromRain(this, hoppingMoveHelper, 1.3D)); - this.tasks.addTask(0, new AILatchOn(this, hoppingMoveHelper)); - this.tasks.addTask(1, new AIHopWander(this, hoppingMoveHelper)); - this.tasks.addTask(2, new AIHopFloat(this, hoppingMoveHelper)); - this.tasks.addTask(3, new AIHopFollowAttackTarget(this, hoppingMoveHelper, 1.0D)); - - this.targetTasks.addTask(1, new EntityAINearestAttackableTarget<>(this, EntityPlayer.class, 10, true, false, - e -> EntitySwet.canLatch(EntitySwet.this, e))); - - this.setSize(1.0F, 1.0F); - - if (world != null) - { - this.setType(Type.values()[this.world.rand.nextInt(Type.values().length)]); - - this.setFoodSaturation(3); - } - - this.experienceValue = 3; - - this.actualSaturation = 3; - - this.setDayMob(true); - } - - public static boolean canLatch(final EntitySwet swet, final EntityPlayer player) - { - return !player.isInWater() && swet.getFoodSaturation() == 3 && PlayerAether.getPlayer(player).getModule(PlayerSwetTrackerModule.class) - .canLatchOn() && player.getFoodStats().getFoodLevel() > 4; - } - - @Override - public float getBlockPathWeight(BlockPos pos) - { - return this.world.getBlockState(pos.down()).getBlock() == BlocksAether.aether_grass ? 10.0F : this.world.getLightBrightness(pos) - 0.5F; - } - - @Override - protected boolean isValidLightLevel() - { - return true; - } - - public int getFoodSaturation() - { - return this.dataManager.get(EntitySwet.FOOD_SATURATION); - } - - public void setFoodSaturation(final int foodSaturation) - { - if (!this.world.isRemote) - { - this.dataManager.set(EntitySwet.FOOD_SATURATION, foodSaturation); - } - } - - public boolean processSucking(final EntityPlayer player) - { - PotionEffect slowness = new PotionEffect(Potion.getPotionById(2), 3, this.timeSinceSucking / 80, true, false); - - player.addPotionEffect(slowness); - - this.timeSinceSucking++; - - if (this.timeSinceSucking % 40 == 0) - { - if (!this.world.isRemote) - { - player.getFoodStats().setFoodLevel((int) (player.getFoodStats().getFoodLevel() * 0.95F)); - - Collection<PotionEffect> effects = player.getActivePotionEffects(); - - if (!effects.isEmpty()) - { - ArrayList<PotionEffect> negEffects = new ArrayList<>(); - - for (PotionEffect p : effects) - { - if (p.getPotion().isBadEffect()) - { - negEffects.add(p); - } - } - - /* - Due to how potions work; give the swet the same potion, and add a new one to the player with 3/4th of time and amplifier to make it be removed with time - */ - for (PotionEffect p : negEffects) - { - if (!p.getPotion().equals(Potion.getPotionById(2))) - { - this.addPotionEffect(p); - player.removePotionEffect(p.getPotion()); - - if (p.getAmplifier() - 1 >= 0) - { - player.addPotionEffect(new PotionEffect(p.getPotion(), (int) (p.getDuration() * .75), p.getAmplifier() - 1)); - } - else if (p.getDuration() > 60) - { - player.addPotionEffect(new PotionEffect(p.getPotion(), (int) (p.getDuration() * .75), p.getAmplifier())); - } - } - } - } - } - - player.playSound(SoundEvents.ENTITY_SLIME_ATTACK, 1.0F, (player.getRNG().nextFloat() - player.getRNG().nextFloat()) * 0.2F + 1.0F); - } - - if (this.timeSinceSucking >= 300 || player.getFoodStats().getFoodLevel() <= 0) - { - if (!this.world.isRemote) - { - if (this.timeSinceSucking >= 220) - { - this.setFoodSaturation(4); - } - - NetworkingAether.sendPacketToWatching(new PacketDetachSwet(this.getType(), player.getEntityId()), player, true); - return true; - } - } - - return false; - } - - @Override - public void entityInit() - { - super.entityInit(); - - this.dataManager.register(EntitySwet.TYPE, 0); - this.dataManager.register(EntitySwet.FOOD_SATURATION, 1); - } - - @Override - protected void applyEntityAttributes() - { - super.applyEntityAttributes(); - - this.getEntityAttribute(SharedMonsterAttributes.ATTACK_DAMAGE).setBaseValue(1.0D); - this.getEntityAttribute(SharedMonsterAttributes.MOVEMENT_SPEED).setBaseValue(0.4D); - this.getEntityAttribute(SharedMonsterAttributes.MAX_HEALTH).setBaseValue(8.0D); - this.getEntityAttribute(SharedMonsterAttributes.FOLLOW_RANGE).setBaseValue(16); - - this.getEntityAttribute(DamageTypeAttributes.SLASH_DEFENSE_LEVEL).setBaseValue(-2.0f); - this.getEntityAttribute(DamageTypeAttributes.IMPACT_DEFENSE_LEVEL).setBaseValue(0.0f); - this.getEntityAttribute(DamageTypeAttributes.PIERCE_DEFENSE_LEVEL).setBaseValue(2.0f); - } - - @Override - protected void jump() - { - if (this.getMoveHelper().getSpeed() <= 0) - { - return; - } - - this.motionY = 0.41999998688697815D; - this.isAirBorne = true; - } - - @Override - public int getVerticalFaceSpeed() - { - return 0; - } - - @Override - public void onUpdate() - { - if (this.isInWater() || (this.world.isRaining() && this.world - .canSeeSky(new BlockPos(this.posX, this.getEntityBoundingBox().minY, this.posZ)))) - { - this.timeStarved = -this.rand.nextInt(60); - - this.setFoodSaturation(0); - } - - this.squishFactor += (this.squishAmount - this.squishFactor) * 0.5F; - this.prevSquishFactor = this.squishFactor; - - super.onUpdate(); - - if (this.getAttackTarget() != null && this.getAttackTarget() instanceof EntityPlayer - && ((EntityPlayer) this.getAttackTarget()).getFoodStats().getFoodLevel() < 5) - { - this.setAttackTarget(null); - } - - if (this.onGround && !this.wasOnGround) - { - this.squishAmount = -0.5F; - } - else if (!this.onGround && this.wasOnGround) - { - this.squishAmount = 1.0F; - } - - if (this.onGround) - { - this.squishPoolSize += 0.2f; - - if (this.squishPoolSize > 1.54f) - { - this.squishPoolSize = 1.54f; - } - } - else - { - this.squishPoolSize -= 0.2f; - - if (this.squishPoolSize < 1) - { - this.squishPoolSize = 1; - } - } - - if (this.actualSaturation < this.getFoodSaturation() && this.transitionTime > 20) - { - this.actualSaturation += 0.02f; - - if (this.actualSaturation > this.getFoodSaturation()) - { - this.actualSaturation = this.getFoodSaturation(); - - if (this.getFoodSaturation() < 3) - { - this.transitionTime = 0; - } - else - { - ((HoppingMoveHelper) this.getMoveHelper()).setActive(true); - } - } - } - else if (this.actualSaturation > this.getFoodSaturation()) - { - this.actualSaturation -= 0.2f; - - if (this.actualSaturation < this.getFoodSaturation()) - { - this.actualSaturation = this.getFoodSaturation(); - } - - if (this.world.isRemote && this.getActualSaturation() != 0) - { - float[] redColors = new float[] { 0.486f, 0.45f, 0.411f }; - float[] greenColors = new float[] { 0.439f, 0.686f, 0.654f }; - float[] blueColors = new float[] { 0.67f, 0.819f, 0.525f }; - - int type = this.getType().name.equals("purple") ? 0 : (this.getType().name.equals("blue") ? 1 : 2); - - float f1 = this.getActualSaturation() / 5f; - - for (int i = 0; i < 5 + this.rand.nextInt(5); i++) - { - this.world.spawnParticle(EnumParticleTypes.REDSTONE, this.posX - f1 + this.rand.nextFloat() * f1 * 2f, - this.posY - f1 + this.rand.nextFloat() * f1 * 2f, this.posZ - f1 + this.rand.nextFloat() * f1 * 2f, redColors[type], - greenColors[type], - blueColors[type]); - } - } - } - else - { - if (this.getFoodSaturation() < 3 && this.timeStarved >= 2400) - { - ((HoppingMoveHelper) this.getMoveHelper()).setActive(false); - this.setFoodSaturation(this.getFoodSaturation() + 1); - } - - this.transitionTime++; - } - - if (this.getFoodSaturation() < 3) - { - this.timeStarved++; - this.setAttackTarget(null); - } - else if (this.getFoodSaturation() != 3) - { - this.timeStarved = 0; - } - - if (this.getFoodSaturation() == 4) - { - this.addPotionEffect(new PotionEffect(Potion.getPotionById(2), 10, 2, true, false)); - - this.digestTime++; - - if (this.digestTime > 1200) - { - this.setFoodSaturation(3); - this.digestTime = -this.rand.nextInt(300); - } - } - - this.wasOnGround = this.onGround; - this.alterSquishAmount(); - } - - public void setSucking(int timeSucking) - { - this.timeSinceSucking = timeSucking; - } - - public int getTimeSinceSucking() - { - return this.timeSinceSucking; - } - - protected void alterSquishAmount() - { - this.squishAmount *= 0.6F; - } - - public Type getType() - { - return Type.fromOrdinal(this.dataManager.get(EntitySwet.TYPE)); - } - - public void setType(final Type type) - { - this.dataManager.set(EntitySwet.TYPE, type.ordinal()); - } - - @Override - public void readFromNBT(final NBTTagCompound tag) - { - super.readFromNBT(tag); - - this.setType(Type.fromOrdinal(tag.getInteger("type"))); - this.timeSinceSucking = tag.getInteger("timeSinceSucking"); - this.setFoodSaturation(tag.getInteger("foodSaturation")); - this.actualSaturation = this.getFoodSaturation(); - } - - @Override - public NBTTagCompound writeToNBT(final NBTTagCompound tag) - { - super.writeToNBT(tag); - - tag.setInteger("type", this.getType().ordinal()); - tag.setInteger("timeSinceSucking", this.timeSinceSucking); - tag.setInteger("foodSaturation", this.getFoodSaturation()); - - return tag; - } - - @Override - protected ResourceLocation getLootTable() - { - if (this.getFoodSaturation() > 0) - { - switch (this.getType()) - { - case BLUE: - return LootTablesAether.ENTITY_SWET_BLUE; - case GREEN: - return LootTablesAether.ENTITY_SWET_GREEN; - case PURPLE: - return LootTablesAether.ENTITY_SWET_PURPLE; - default: - return LootTablesAether.ENTITY_SWET; - } - } - - return null; - } - - @SideOnly(Side.CLIENT) - public float getSquishPool() - { - return this.squishPoolSize; - } - - @SideOnly(Side.CLIENT) - public float getActualSaturation() - { - return this.actualSaturation; - } - - public enum Type - { - BLUE("blue"), GREEN("green"), PURPLE("purple"); - - public final String name; - - public final ResourceLocation texture_head, texture_jelly; - - public final ResourceLocation left1, left2, right1, right2; - - Type(final String name) - { - this.name = name; - - this.texture_head = AetherCore.getResource("textures/entities/swet/swet_head_" + this.name + ".png"); - this.texture_jelly = AetherCore.getResource("textures/entities/swet/swet_jelly_" + this.name + ".png"); - - this.left1 = AetherCore.getResource("textures/gui/overlay/swet/" + this.name + "_left_1.png"); - this.left2 = AetherCore.getResource("textures/gui/overlay/swet/" + this.name + "_left_2.png"); - - this.right1 = AetherCore.getResource("textures/gui/overlay/swet/" + this.name + "_right_1.png"); - this.right2 = AetherCore.getResource("textures/gui/overlay/swet/" + this.name + "_right_2.png"); - } - - public static Type fromOrdinal(final int ordinal) - { - final Type[] gummy = values(); - - return gummy[ordinal > gummy.length || ordinal < 0 ? 0 : ordinal]; - } - } -} diff --git a/src/main/java/com/gildedgames/aether/common/entities/monsters/EntityTempest.java b/src/main/java/com/gildedgames/aether/common/entities/monsters/EntityTempest.java deleted file mode 100644 index a950bb1b7f..0000000000 --- a/src/main/java/com/gildedgames/aether/common/entities/monsters/EntityTempest.java +++ /dev/null @@ -1,123 +0,0 @@ -package com.gildedgames.aether.common.entities.monsters; - -import com.gildedgames.aether.api.entity.damage.DamageTypeAttributes; -import com.gildedgames.aether.api.registrar.SoundsAether; -import com.gildedgames.aether.common.entities.ai.EntityAIForcedWanderAvoidLight; -import com.gildedgames.aether.common.entities.ai.EntityAIHideFromLight; -import com.gildedgames.aether.common.entities.ai.tempest.AIElectricShock; -import com.gildedgames.aether.common.entities.flying.EntityFlyingMob; -import com.gildedgames.aether.common.util.helpers.EntityUtil; -import com.google.common.collect.Maps; -import net.minecraft.entity.Entity; -import net.minecraft.entity.SharedMonsterAttributes; -import net.minecraft.entity.ai.EntityAIBase; -import net.minecraft.entity.ai.EntityAINearestAttackableTarget; -import net.minecraft.entity.ai.EntityAIWander; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.util.DamageSource; -import net.minecraft.util.EnumParticleTypes; -import net.minecraft.util.SoundEvent; -import net.minecraft.world.World; - -import java.util.Map; - -public class EntityTempest extends EntityFlyingMob -{ - protected Map<String, Float> defenseMap = Maps.newHashMap(); - {{ - this.defenseMap.put("Very Weak", 4.0F); - this.defenseMap.put("Weak", 2.0F); - this.defenseMap.put("Average", 0.0F); - this.defenseMap.put("Strong", -2.0F); - this.defenseMap.put("Very Strong", -4.0F); - }} - - public EntityTempest(final World world) - { - super(world); - - this.setSize(1.0F, 1.0F); - - this.experienceValue = 10; - } - - @Override - protected EntityAIBase createWanderTask() - { - final EntityAIWander wander = new EntityAIForcedWanderAvoidLight(this, 0.4D, 5, 5); - - wander.setMutexBits(1); - - return wander; - } - - @Override - protected void handleClientAttack() - { - final Entity target = this.world.getNearestPlayerNotCreative(this, 20D); - - if (target == null) - { - return; - } - - this.faceEntity(target, 10.0F, 10.0F); - - EntityUtil.spawnParticleLineBetween(this, target, 4D, EnumParticleTypes.SPELL_INSTANT); - } - - @Override - public void onUpdate() - { - super.onUpdate(); - - EntityUtil.despawnEntityDuringDaytime(this); - } - - @Override - protected void initEntityAI() - { - super.initEntityAI(); - - final EntityAIBase avoidLight = new EntityAIHideFromLight(this, 0.8F, 5); - - avoidLight.setMutexBits(1); - - this.tasks.addTask(2, new AIElectricShock(this)); - this.tasks.addTask(0, avoidLight); - - this.targetTasks.addTask(0, new EntityAINearestAttackableTarget<>(this, EntityPlayer.class, true)); - } - - @Override - protected void applyEntityAttributes() - { - super.applyEntityAttributes(); - - this.getEntityAttribute(SharedMonsterAttributes.ATTACK_DAMAGE).setBaseValue(4.0D); - this.getEntityAttribute(SharedMonsterAttributes.MAX_HEALTH).setBaseValue(26.0D); - this.getEntityAttribute(SharedMonsterAttributes.FOLLOW_RANGE).setBaseValue(60); - - this.getEntityAttribute(DamageTypeAttributes.SLASH_DEFENSE_LEVEL).setBaseValue(0.0f); - this.getEntityAttribute(DamageTypeAttributes.IMPACT_DEFENSE_LEVEL).setBaseValue(2.0f); - this.getEntityAttribute(DamageTypeAttributes.PIERCE_DEFENSE_LEVEL).setBaseValue(-4.0f); - } - - @Override - protected SoundEvent getAmbientSound() - { - return SoundsAether.tempest_ambient; - } - - @Override - protected SoundEvent getHurtSound(final DamageSource damageSourceIn) - { - return SoundsAether.tempest_hurt; - } - - @Override - protected SoundEvent getDeathSound() - { - return SoundsAether.tempest_death; - } -} diff --git a/src/main/java/com/gildedgames/aether/common/entities/monsters/EntityVaranys.java b/src/main/java/com/gildedgames/aether/common/entities/monsters/EntityVaranys.java deleted file mode 100644 index ad382c0f81..0000000000 --- a/src/main/java/com/gildedgames/aether/common/entities/monsters/EntityVaranys.java +++ /dev/null @@ -1,213 +0,0 @@ -package com.gildedgames.aether.common.entities.monsters; - -import com.gildedgames.aether.api.entity.damage.DamageTypeAttributes; -import com.gildedgames.aether.api.entity.effects.EEffectIntensity; -import com.gildedgames.aether.api.entity.effects.IAetherStatusEffectIntensity; -import com.gildedgames.aether.api.entity.effects.IAetherStatusEffectPool; -import com.gildedgames.aether.api.entity.effects.IAetherStatusEffects; -import com.gildedgames.aether.api.registrar.CapabilitiesAether; -import com.gildedgames.aether.common.entities.ai.EntityAIHideFromLight; -import com.gildedgames.aether.common.entities.ai.EntityAIUnstuckBlueAercloud; -import com.gildedgames.aether.common.entities.ai.EntityAIWanderAvoidLight; -import com.gildedgames.aether.common.entities.effects.StatusEffectCockatriceVenom; -import com.gildedgames.aether.common.entities.effects.StatusEffectFreeze; -import com.gildedgames.aether.common.entities.multipart.AetherMultiPartEntity; -import com.gildedgames.aether.common.util.helpers.MathUtil; -import com.google.common.collect.Maps; -import net.minecraft.entity.*; -import net.minecraft.entity.ai.*; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.util.DamageSource; -import net.minecraft.util.math.MathHelper; -import net.minecraft.world.World; - -import javax.annotation.Nullable; -import javax.vecmath.Point3d; -import java.util.Map; - -public class EntityVaranys extends EntityAetherMob implements IEntityMultiPart -{ - protected Map<String, Float> defenseMap = Maps.newHashMap(); - {{ - this.defenseMap.put("Very Weak", 4.0F); - this.defenseMap.put("Weak", 2.0F); - this.defenseMap.put("Average", 0.0F); - this.defenseMap.put("Strong", -2.0F); - this.defenseMap.put("Very Strong", -4.0F); - }} - - private final MultiPartEntityPart[] parts; - - private final MultiPartEntityPart head = new AetherMultiPartEntity(this, "head", .7F, .7F); - - private final MultiPartEntityPart tail1 = new AetherMultiPartEntity(this, "tail", 1F, .7F); - - private final MultiPartEntityPart tail2 = new AetherMultiPartEntity(this, "tail2", 1F, .7F); - - private final EntityAIHideFromLight lightAI; - - private final Point3d[] old; - - public EntityVaranys(final World world) - { - super(world); - - this.lightAI = new EntityAIHideFromLight(this, 0.8F, 5); - this.parts = new MultiPartEntityPart[] { this.head, this.tail1, this.tail2 }; - - this.tasks.addTask(0, new EntityAISwimming(this)); - this.tasks.addTask(0, new EntityAIUnstuckBlueAercloud(this)); - this.tasks.addTask(1, this.lightAI); - this.tasks.addTask(1, new EntityAIWanderAvoidLight(this, 0.8D, 5)); - this.tasks.addTask(2, new EntityAILeapAtTarget(this, 0.4F)); - this.tasks.addTask(3, new EntityAIFleeSun(this, 1.0D)); - this.tasks.addTask(3, new EntityAIAttackMelee(this, 1D, false)); - this.tasks.addTask(4, new EntityAIWatchClosest(this, EntityPlayer.class, 6.0F)); - this.targetTasks.addTask(1, new EntityAIHurtByTarget(this, false)); - this.targetTasks.addTask(2, new EntityAINearestAttackableTarget<>(this, EntityPlayer.class, true)); - - this.setSize(1.4F, 1F); - - this.stepHeight = 1.0F; - this.head.setInvisible(true); - this.tail1.setInvisible(true); - this.tail2.setInvisible(true); - - this.experienceValue = 7; - - this.old = new Point3d[this.parts.length]; - - for (int i = 0; i < this.old.length; i++) - { - this.old[i] = new Point3d(); - } - } - - @Override - protected void applyEntityAttributes() - { - super.applyEntityAttributes(); - - this.getEntityAttribute(SharedMonsterAttributes.MOVEMENT_SPEED).setBaseValue(0.4D); - this.getEntityAttribute(SharedMonsterAttributes.MAX_HEALTH).setBaseValue(24.0D); - this.getEntityAttribute(SharedMonsterAttributes.ATTACK_DAMAGE).setBaseValue(2.0D); - - this.getEntityAttribute(DamageTypeAttributes.SLASH_DEFENSE_LEVEL).setBaseValue(0.0f); - this.getEntityAttribute(DamageTypeAttributes.IMPACT_DEFENSE_LEVEL).setBaseValue(-4.0f); - this.getEntityAttribute(DamageTypeAttributes.PIERCE_DEFENSE_LEVEL).setBaseValue(2.0f); - } - - @Override - public boolean attackEntityFromPart(MultiPartEntityPart part, DamageSource source, float damage) - { - switch (part.partName) - { - case "head": - damage *= 1.05f; - break; - - default: - damage *= .7f; - break; - } - - if (this.hurtResistantTime <= 10) - { - return this.attackEntityFrom(source, damage); - } - else - { - return false; - } - } - - @Override - public World getWorld() - { - return this.getEntityWorld(); - } - - @Nullable - @Override - public MultiPartEntityPart[] getParts() - { - return this.parts; - } - - @Override - public boolean attackEntityAsMob(final Entity entity) - { - final boolean flag = super.attackEntityAsMob(entity); - - if (flag && entity instanceof EntityLivingBase) - { - this.applyStatusEffectOnAttack(entity); - } - - return flag; - } - - @Override - protected void applyStatusEffectOnAttack(final Entity target) - { - if (target instanceof EntityLivingBase) - { - final EntityLivingBase living = (EntityLivingBase) target; - - if (!living.isActiveItemStackBlocking()) - { - IAetherStatusEffectPool statusEffectPool = living.getCapability(CapabilitiesAether.STATUS_EFFECT_POOL, null); - - if (statusEffectPool != null) - { - if (!statusEffectPool.effectExists(IAetherStatusEffects.effectTypes.FREEZE)) - { - statusEffectPool.applyStatusEffect(IAetherStatusEffects.effectTypes.FREEZE, 30); - } - else - { - statusEffectPool.modifyActiveEffectBuildup(IAetherStatusEffects.effectTypes.FREEZE, - statusEffectPool.getBuildupFromEffect(IAetherStatusEffects.effectTypes.FREEZE) + 30); - } - } - } - } - } - - @Override - public void onLivingUpdate() - { - super.onLivingUpdate(); - - this.lightAI.setEnabled(this.getAttackTarget() == null); - - this.setMultiPartLocations(); - } - - private void setMultiPartLocations() - { - for (int i = 0; i < this.parts.length; i++) - { - this.old[i].set(this.parts[i].posX, this.parts[i].posY, this.parts[i].posZ); - } - - float f = MathUtil.interpolateRotation(this.prevRenderYawOffset, this.renderYawOffset, 1); - float f1 = MathHelper.cos(-f * 0.017453292F - (float) Math.PI); - float f2 = MathHelper.sin(-f * 0.017453292F - (float) Math.PI); - - this.head.onUpdate(); - this.head.setLocationAndAngles(this.posX - f2, this.posY + .25f, this.posZ - f1, 0F, 0F); - this.tail1.onUpdate(); - this.tail1.setLocationAndAngles(this.posX + f2 * 1.1f, this.posY + .25f, this.posZ + f1 * 1.1f, 0F, 0F); - this.tail2.onUpdate(); - this.tail2.setLocationAndAngles(this.posX + f2 * 2f, this.posY, this.posZ + f1 * 2f, 0F, 0F); - - for (int i = 0; i < this.parts.length; i++) - { - this.parts[i].prevPosX = this.old[i].getX(); - this.parts[i].prevPosY = this.old[i].getY(); - this.parts[i].prevPosZ = this.old[i].getZ(); - } - } - -} diff --git a/src/main/java/com/gildedgames/aether/common/entities/monsters/EntityZephyr.java b/src/main/java/com/gildedgames/aether/common/entities/monsters/EntityZephyr.java deleted file mode 100644 index 9cfa5e9a2b..0000000000 --- a/src/main/java/com/gildedgames/aether/common/entities/monsters/EntityZephyr.java +++ /dev/null @@ -1,73 +0,0 @@ -package com.gildedgames.aether.common.entities.monsters; - -import com.gildedgames.aether.api.entity.damage.DamageTypeAttributes; -import com.gildedgames.aether.api.entity.damage.IDefenseLevelsHolder; -import com.gildedgames.aether.api.registrar.SoundsAether; -import com.gildedgames.aether.common.entities.flying.EntityFlying; -import com.gildedgames.aether.common.init.LootTablesAether; -import com.google.common.collect.Maps; -import net.minecraft.entity.SharedMonsterAttributes; -import net.minecraft.item.ItemStack; -import net.minecraft.util.DamageSource; -import net.minecraft.util.ResourceLocation; -import net.minecraft.util.SoundEvent; -import net.minecraft.world.World; - -import java.util.Map; - -public class EntityZephyr extends EntityFlying -{ - protected Map<String, Float> defenseMap = Maps.newHashMap(); - {{ - this.defenseMap.put("Very Weak", 4.0F); - this.defenseMap.put("Weak", 2.0F); - this.defenseMap.put("Average", 0.0F); - this.defenseMap.put("Strong", -2.0F); - this.defenseMap.put("Very Strong", -4.0F); - }} - - public EntityZephyr(final World world) - { - super(world); - - this.setSize(1.0F, 1.0F); - - this.experienceValue = 3; - } - - @Override - protected ResourceLocation getLootTable() - { - return LootTablesAether.ENTITY_ZEPHYR; - } - - @Override - protected SoundEvent getAmbientSound() - { - return SoundsAether.zephyr_ambient; - } - - @Override - protected SoundEvent getHurtSound(final DamageSource src) - { - return SoundsAether.zephyr_ambient; - } - - @Override - protected SoundEvent getDeathSound() - { - return SoundsAether.zephyr_ambient; - } - - @Override - protected void applyEntityAttributes() - { - super.applyEntityAttributes(); - - this.getEntityAttribute(SharedMonsterAttributes.MAX_HEALTH).setBaseValue(16.0D); - - this.getEntityAttribute(DamageTypeAttributes.SLASH_DEFENSE_LEVEL).setBaseValue(0.0F); - this.getEntityAttribute(DamageTypeAttributes.IMPACT_DEFENSE_LEVEL).setBaseValue(2.0F); - this.getEntityAttribute(DamageTypeAttributes.PIERCE_DEFENSE_LEVEL).setBaseValue(-2.0F); - } -} diff --git a/src/main/java/com/gildedgames/aether/common/entities/mounts/FlyingMount.java b/src/main/java/com/gildedgames/aether/common/entities/mounts/FlyingMount.java deleted file mode 100644 index d7e342614c..0000000000 --- a/src/main/java/com/gildedgames/aether/common/entities/mounts/FlyingMount.java +++ /dev/null @@ -1,94 +0,0 @@ -package com.gildedgames.aether.common.entities.mounts; - -import com.gildedgames.aether.api.entity.IMountProcessor; -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.SharedMonsterAttributes; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; - -public class FlyingMount implements IMountProcessor -{ - - private final IFlyingMountData data; - - public FlyingMount(IFlyingMountData data) - { - this.data = data; - } - - public IFlyingMountData getData() - { - return this.data; - } - - @Override - public void onUpdate(Entity mount, Entity rider) - { - if (mount.onGround) - { - this.data.resetRemainingAirborneTime(); - } - } - - @Override - public void onHoldSpaceBar(Entity mount, Entity rider) - { - if (mount.onGround) - { - mount.motionY = 0.55D; - this.data.resetRemainingAirborneTime(); - } - else if (mount.motionY < 0.1D && this.data.getRemainingAirborneTime() > 0.0F) - { - mount.motionY = 0.1D; - - this.data.addRemainingAirborneTime(-0.1F); - } - } - - @Override - public float getMountedStepHeight(Entity mount) - { - return 1.0F; - } - - @Override - public boolean canBeMounted(Entity mount) - { - return this.data.canBeMounted(); - } - - @Override - public boolean canProcessMountInteraction(Entity mount, Entity rider) - { - if (rider instanceof EntityPlayer) - { - EntityPlayer player = (EntityPlayer) rider; - ItemStack stack = player.getHeldItemMainhand(); - - return this.data.canProcessMountInteraction(player, stack); - } - - return false; - } - - @Override - public void onMountedBy(Entity mount, Entity rider) - { - if (mount instanceof EntityLivingBase) - { - ((EntityLivingBase) mount).getEntityAttribute(SharedMonsterAttributes.MOVEMENT_SPEED).setBaseValue(0.6D); - } - } - - @Override - public void onDismountedBy(Entity mount, Entity rider) - { - if (mount instanceof EntityLivingBase) - { - ((EntityLivingBase) mount).getEntityAttribute(SharedMonsterAttributes.MOVEMENT_SPEED).setBaseValue(0.4D); - } - } - -} diff --git a/src/main/java/com/gildedgames/aether/common/entities/mounts/IFlyingMountData.java b/src/main/java/com/gildedgames/aether/common/entities/mounts/IFlyingMountData.java deleted file mode 100644 index 5996beb86d..0000000000 --- a/src/main/java/com/gildedgames/aether/common/entities/mounts/IFlyingMountData.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.gildedgames.aether.common.entities.mounts; - -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; - -public interface IFlyingMountData -{ - - boolean canBeMounted(); - - boolean canProcessMountInteraction(EntityPlayer rider, ItemStack stack); - - void resetRemainingAirborneTime(); - - float getRemainingAirborneTime(); - - void setRemainingAirborneTime(float set); - - void addRemainingAirborneTime(float add); - - boolean isFastFalling(); - -} diff --git a/src/main/java/com/gildedgames/aether/common/entities/multipart/AetherMultiPartEntity.java b/src/main/java/com/gildedgames/aether/common/entities/multipart/AetherMultiPartEntity.java deleted file mode 100644 index b652518005..0000000000 --- a/src/main/java/com/gildedgames/aether/common/entities/multipart/AetherMultiPartEntity.java +++ /dev/null @@ -1,46 +0,0 @@ -package com.gildedgames.aether.common.entities.multipart; - -import net.minecraft.entity.Entity; -import net.minecraft.entity.IEntityMultiPart; -import net.minecraft.entity.MultiPartEntityPart; -import net.minecraft.entity.passive.EntityAnimal; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraft.util.EnumHand; -import net.minecraft.util.math.RayTraceResult; - -public class AetherMultiPartEntity extends MultiPartEntityPart -{ - - public AetherMultiPartEntity(IEntityMultiPart parent, String partName, float width, float height) - { - super(parent, partName, width, height); - } - - public void updateSize(float width, float height) - { - this.setSize(width, height); - } - - @Override - public boolean processInitialInteract(EntityPlayer player, EnumHand hand) - { - if (this.parent instanceof EntityAnimal) - { - return ((EntityAnimal) this.parent).processInitialInteract(player, hand); - } - - return false; - } - - @Override - public ItemStack getPickedResult(RayTraceResult target) - { - if (this.parent instanceof Entity) - { - return ((Entity) this.parent).getPickedResult(target); - } - - return super.getPickedResult(target); - } -} diff --git a/src/main/java/com/gildedgames/aether/common/entities/multipart/AetherMultiPartMount.java b/src/main/java/com/gildedgames/aether/common/entities/multipart/AetherMultiPartMount.java deleted file mode 100644 index 517bf5c471..0000000000 --- a/src/main/java/com/gildedgames/aether/common/entities/multipart/AetherMultiPartMount.java +++ /dev/null @@ -1,19 +0,0 @@ -package com.gildedgames.aether.common.entities.multipart; - -import net.minecraft.entity.Entity; -import net.minecraft.entity.IEntityMultiPart; - -public class AetherMultiPartMount extends AetherMultiPartEntity -{ - - public AetherMultiPartMount(IEntityMultiPart parent, String partName, float width, float height) - { - super(parent, partName, width, height); - } - - public Entity getEntity() - { - return (Entity) this.parent; - } -} - diff --git a/src/main/java/com/gildedgames/aether/common/entities/multipart/AetherMultiPartShearable.java b/src/main/java/com/gildedgames/aether/common/entities/multipart/AetherMultiPartShearable.java deleted file mode 100644 index 13c24edbcf..0000000000 --- a/src/main/java/com/gildedgames/aether/common/entities/multipart/AetherMultiPartShearable.java +++ /dev/null @@ -1,64 +0,0 @@ -package com.gildedgames.aether.common.entities.multipart; - -import net.minecraft.enchantment.EnchantmentHelper; -import net.minecraft.entity.EntityLiving; -import net.minecraft.entity.IEntityMultiPart; -import net.minecraft.entity.item.EntityItem; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.init.Enchantments; -import net.minecraft.item.ItemShears; -import net.minecraft.item.ItemStack; -import net.minecraft.util.EnumActionResult; -import net.minecraft.util.EnumHand; -import net.minecraft.util.math.Vec3d; -import net.minecraftforge.common.IShearable; - -import java.util.List; -import java.util.Random; - -public class AetherMultiPartShearable extends AetherMultiPartEntity -{ - - public AetherMultiPartShearable(IEntityMultiPart parent, String partName, float width, float height) - { - super(parent, partName, width, height); - } - - @Override - public EnumActionResult applyPlayerInteraction(EntityPlayer player, Vec3d vec, EnumHand hand) - { - ItemStack held = player.getHeldItem(hand); - - if (held.isEmpty() || !(held.getItem() instanceof ItemShears)) - { - return EnumActionResult.FAIL; - } - - EntityLiving entity = (EntityLiving) this.parent; - IShearable shearable = (IShearable) this.parent; - - if (shearable.isShearable(held, player.world, entity.getPosition()) && !this.world.isRemote) - { - List<ItemStack> drops = shearable.onSheared(held, entity.world, entity.getPosition(), - EnchantmentHelper.getEnchantmentLevel(Enchantments.FORTUNE, held)); - - Random rand = player.world.rand; - - for (ItemStack stack : drops) - { - EntityItem ent = this.entityDropItem(stack, 1.0F); - - ent.motionY += rand.nextFloat() * 0.05F; - ent.motionX += (rand.nextFloat() - rand.nextFloat()) * 0.1F; - ent.motionZ += (rand.nextFloat() - rand.nextFloat()) * 0.1F; - } - - held.damageItem(1, entity); - - return EnumActionResult.SUCCESS; - } - - return super.applyPlayerInteraction(player, vec, hand); - } - -} diff --git a/src/main/java/com/gildedgames/aether/common/entities/projectiles/EntityBolt.java b/src/main/java/com/gildedgames/aether/common/entities/projectiles/EntityBolt.java deleted file mode 100644 index 01a552cef3..0000000000 --- a/src/main/java/com/gildedgames/aether/common/entities/projectiles/EntityBolt.java +++ /dev/null @@ -1,117 +0,0 @@ -package com.gildedgames.aether.common.entities.projectiles; - -import com.gildedgames.aether.api.entity.damage.IDamageLevelsHolder; -import com.gildedgames.aether.api.registrar.ItemsAether; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.projectile.EntityArrow; -import net.minecraft.item.ItemStack; -import net.minecraft.util.DamageSource; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.MathHelper; -import net.minecraft.world.World; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; - -public class EntityBolt extends EntityArrow implements IDamageLevelsHolder -{ - private int ticksInAir; - - private float slashDamageLevel = 0, pierceDamageLevel = 0, impactDamageLevel = 0; - - public EntityBolt(final World worldIn) - { - super(worldIn); - } - - public EntityBolt(final World worldIn, final EntityLivingBase shooter) - { - super(worldIn, shooter); - } - - @Override - protected ItemStack getArrowStack() - { - return new ItemStack(ItemsAether.bolt); - } - - @Override - protected void arrowHit(final EntityLivingBase living) - { - - } - - @Override - protected void entityInit() - { - super.entityInit(); - } - - @SideOnly(Side.CLIENT) - @Override - public int getBrightnessForRender() - { - final BlockPos.MutableBlockPos blockpos$mutableblockpos = new BlockPos.MutableBlockPos(MathHelper.floor(this.posX), 0, MathHelper.floor(this.posZ)); - - if (this.world.isBlockLoaded(blockpos$mutableblockpos)) - { - blockpos$mutableblockpos.setY(MathHelper.floor(this.posY + (double) this.getEyeHeight())); - return this.world.getCombinedLight(blockpos$mutableblockpos, 0); - } - else - { - return 0; - } - } - - public void onUpdate() - { - super.onUpdate(); - - if (this.hasNoGravity()) - { - if (this.ticksInAir == 500) - { - this.setDead(); - } - - if (!this.onGround) - { - ++this.ticksInAir; - } - } - } - - public void setSlashDamageLevel(float slashDamageLevel) - { - this.slashDamageLevel = slashDamageLevel; - } - - public void setPierceDamageLevel(float pierceDamageLevel) - { - this.pierceDamageLevel = pierceDamageLevel; - } - - public void setImpactDamageLevel(float impactDamageLevel) - { - this.impactDamageLevel = impactDamageLevel; - } - - @Override - public float getSlashDamageLevel() - { - return this.slashDamageLevel; - } - - @Override - public float getPierceDamageLevel() - { - return this.pierceDamageLevel; - } - - @Override - public float getImpactDamageLevel() - { - return this.impactDamageLevel; - } -} diff --git a/src/main/java/com/gildedgames/aether/common/entities/projectiles/EntityDaggerfrostSnowball.java b/src/main/java/com/gildedgames/aether/common/entities/projectiles/EntityDaggerfrostSnowball.java deleted file mode 100644 index e066c84f39..0000000000 --- a/src/main/java/com/gildedgames/aether/common/entities/projectiles/EntityDaggerfrostSnowball.java +++ /dev/null @@ -1,55 +0,0 @@ -package com.gildedgames.aether.common.entities.projectiles; - -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.monster.EntityBlaze; -import net.minecraft.entity.projectile.EntitySnowball; -import net.minecraft.util.DamageSource; -import net.minecraft.util.EnumParticleTypes; -import net.minecraft.util.math.RayTraceResult; -import net.minecraft.world.World; - -public class EntityDaggerfrostSnowball extends EntitySnowball -{ - - public EntityDaggerfrostSnowball(World world) - { - super(world); - } - - public EntityDaggerfrostSnowball(World world, EntityLivingBase thrower) - { - super(world, thrower); - } - - public EntityDaggerfrostSnowball(World world, double x, double y, double z) - { - super(world, x, y, z); - } - - @Override - protected void onImpact(RayTraceResult result) - { - if (result.entityHit != null) - { - byte b0 = 2; - - if (result.entityHit instanceof EntityBlaze) - { - b0 += 3; - } - - result.entityHit.attackEntityFrom(DamageSource.causeThrownDamage(this, this.getThrower()), (float) b0); - } - - for (int i = 0; i < 8; ++i) - { - this.world.spawnParticle(EnumParticleTypes.SNOWBALL, this.posX, this.posY, this.posZ, 0.0D, 0.0D, 0.0D); - } - - if (!this.world.isRemote) - { - this.setDead(); - } - } - -} diff --git a/src/main/java/com/gildedgames/aether/common/entities/projectiles/EntityDart.java b/src/main/java/com/gildedgames/aether/common/entities/projectiles/EntityDart.java deleted file mode 100644 index 1873c89cac..0000000000 --- a/src/main/java/com/gildedgames/aether/common/entities/projectiles/EntityDart.java +++ /dev/null @@ -1,92 +0,0 @@ -package com.gildedgames.aether.common.entities.projectiles; - -import com.gildedgames.aether.api.entity.effects.EEffectIntensity; -import com.gildedgames.aether.api.entity.effects.IAetherStatusEffectIntensity; -import com.gildedgames.aether.api.entity.effects.IAetherStatusEffectPool; -import com.gildedgames.aether.api.entity.effects.IAetherStatusEffects; -import com.gildedgames.aether.api.registrar.CapabilitiesAether; -import com.gildedgames.aether.api.registrar.ItemsAether; -import com.gildedgames.aether.common.entities.effects.StatusEffectCockatriceVenom; -import com.gildedgames.aether.common.items.weapons.ItemDartType; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.projectile.EntityArrow; -import net.minecraft.item.ItemStack; -import net.minecraft.network.datasync.DataParameter; -import net.minecraft.network.datasync.DataSerializers; -import net.minecraft.util.EnumParticleTypes; -import net.minecraft.world.World; - -public class EntityDart extends EntityArrow -{ - private static final DataParameter<Byte> TYPE = new DataParameter<>(20, DataSerializers.BYTE); - - public EntityDart(World worldIn) - { - super(worldIn); - } - - public EntityDart(World worldIn, EntityLivingBase shooter) - { - super(worldIn, shooter); - } - - @Override - protected ItemStack getArrowStack() - { - return new ItemStack(ItemsAether.dart, this.getDartType().ordinal()); - } - - @Override - public void onUpdate() - { - super.onUpdate(); - - if (this.world.isRemote && this.world.getWorldTime() % 3 == 0) - { - if (this.getDartType() == ItemDartType.ENCHANTED) - { - this.world.spawnParticle(EnumParticleTypes.CRIT_MAGIC, this.posX, this.posY, this.posZ, 0.0D, 0.0D, 0.0D); - } - } - } - - @Override - protected void arrowHit(EntityLivingBase entity) - { - if (this.getDartType() == ItemDartType.POISON) - { - IAetherStatusEffectPool statusEffectPool = entity.getCapability(CapabilitiesAether.STATUS_EFFECT_POOL, null); - - if (statusEffectPool != null) - { - if (!statusEffectPool.effectExists(IAetherStatusEffects.effectTypes.TOXIN)) - { - statusEffectPool.applyStatusEffect(IAetherStatusEffects.effectTypes.TOXIN, 60); - } - else - { - statusEffectPool.modifyActiveEffectBuildup(IAetherStatusEffects.effectTypes.TOXIN, - statusEffectPool.getBuildupFromEffect(IAetherStatusEffects.effectTypes.TOXIN) + 60); - } - } - } - } - - @Override - protected void entityInit() - { - super.entityInit(); - - this.dataManager.register(TYPE, (byte) 0); - } - - public ItemDartType getDartType() - { - return ItemDartType.values()[this.dataManager.get(TYPE)]; - } - - public void setDartType(ItemDartType type) - { - this.dataManager.set(TYPE, (byte) type.ordinal()); - } -} diff --git a/src/main/java/com/gildedgames/aether/common/entities/projectiles/EntityTNTPresent.java b/src/main/java/com/gildedgames/aether/common/entities/projectiles/EntityTNTPresent.java deleted file mode 100644 index 5d00653cea..0000000000 --- a/src/main/java/com/gildedgames/aether/common/entities/projectiles/EntityTNTPresent.java +++ /dev/null @@ -1,111 +0,0 @@ -package com.gildedgames.aether.common.entities.projectiles; - -import net.minecraft.entity.Entity; -import net.minecraft.entity.MoverType; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.util.EnumParticleTypes; -import net.minecraft.util.math.MathHelper; -import net.minecraft.world.World; - -public class EntityTNTPresent extends Entity -{ - - public int fuse; - - public EntityTNTPresent(World world) - { - super(world); - this.fuse = 0; - this.preventEntitySpawning = true; - this.setSize(0.98F, 0.98F); - } - - public EntityTNTPresent(World world, double d, double d1, double d2) - { - this(world); - this.setPosition(d, d1, d2); - float f = (float) (Math.random() * 3.1415927410125732D * 2D); - this.motionX = -MathHelper.sin((f * 3.141593F) / 180F) * 0.02F; - this.motionY = 0.20000000298023224D; - this.motionZ = -MathHelper.cos((f * 3.141593F) / 180F) * 0.02F; - this.fuse = 80; - this.prevPosX = d; - this.prevPosY = d1; - this.prevPosZ = d2; - } - - @Override - public double getYOffset() - { - return this.height / 2.0F; - } - - @Override - protected void entityInit() - { - } - - @Override - protected boolean canTriggerWalking() - { - return false; - } - - @Override - public boolean canBeCollidedWith() - { - return !this.isDead; - } - - @Override - public void onUpdate() - { - this.prevPosX = this.posX; - this.prevPosY = this.posY; - this.prevPosZ = this.posZ; - this.motionY -= 0.039999999105930328D; - this.move(MoverType.SELF, this.motionX, this.motionY, this.motionZ); - this.motionX *= 0.98000001907348633D; - this.motionY *= 0.98000001907348633D; - this.motionZ *= 0.98000001907348633D; - - if (this.onGround) - { - this.motionX *= 0.69999998807907104D; - this.motionZ *= 0.69999998807907104D; - this.motionY *= -0.5D; - } - - if (this.fuse-- <= 0) - { - if (!this.world.isRemote) - { - this.setDead(); - this.explode(); - } - } - else - { - this.world.spawnParticle(EnumParticleTypes.SMOKE_NORMAL, this.posX, this.posY + 0.5D, this.posZ, 0.0D, 0.0D, 0.0D); - } - } - - private void explode() - { - float f = 0.5F; - this.world.createExplosion(null, this.posX, this.posY, this.posZ, f, false); - } - - @Override - protected void writeEntityToNBT(NBTTagCompound nbttagcompound) - { - nbttagcompound.setByte("Fuse", (byte) this.fuse); - } - - @Override - protected void readEntityFromNBT(NBTTagCompound nbttagcompound) - { - this.fuse = nbttagcompound.getByte("Fuse"); - } - -} diff --git a/src/main/java/com/gildedgames/aether/common/entities/resistance/EntityResistanceCapabilities.java b/src/main/java/com/gildedgames/aether/common/entities/resistance/EntityResistanceCapabilities.java deleted file mode 100644 index c098114e84..0000000000 --- a/src/main/java/com/gildedgames/aether/common/entities/resistance/EntityResistanceCapabilities.java +++ /dev/null @@ -1,38 +0,0 @@ -package com.gildedgames.aether.common.entities.resistance; - -import net.minecraft.nbt.NBTBase; -import net.minecraft.util.EnumFacing; -import net.minecraftforge.common.capabilities.Capability; -import net.minecraftforge.common.capabilities.ICapabilitySerializable; - -import javax.annotation.Nonnull; -import javax.annotation.Nullable; - -public class EntityResistanceCapabilities implements ICapabilitySerializable<NBTBase> -{ - //public static final Capability<> - @Override - public boolean hasCapability(@Nonnull Capability<?> capability, @Nullable EnumFacing facing) - { - return false; - } - - @Nullable - @Override - public <T> T getCapability(@Nonnull Capability<T> capability, @Nullable EnumFacing facing) - { - return null; - } - - @Override - public NBTBase serializeNBT() - { - return null; - } - - @Override - public void deserializeNBT(NBTBase nbt) - { - - } -} diff --git a/src/main/java/com/gildedgames/aether/common/entities/resistance/IResistances.java b/src/main/java/com/gildedgames/aether/common/entities/resistance/IResistances.java deleted file mode 100644 index 24f6c907e6..0000000000 --- a/src/main/java/com/gildedgames/aether/common/entities/resistance/IResistances.java +++ /dev/null @@ -1,18 +0,0 @@ -package com.gildedgames.aether.common.entities.resistance; - -import java.util.Map; - -public interface IResistances -{ - void addResistance(String id, float res); - - void setResistance(String id, float res); - - void removeResistance(String id, float res); - - float getResistance(String id); - - Map<String, Float> getResistances(); - - void setResistances(Map<String, Float> list); -} diff --git a/src/main/java/com/gildedgames/aether/common/entities/resistance/ResistanceStorage.java b/src/main/java/com/gildedgames/aether/common/entities/resistance/ResistanceStorage.java deleted file mode 100644 index 2c2cef2d5c..0000000000 --- a/src/main/java/com/gildedgames/aether/common/entities/resistance/ResistanceStorage.java +++ /dev/null @@ -1,32 +0,0 @@ -package com.gildedgames.aether.common.entities.resistance; - -import net.minecraft.nbt.NBTBase; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.util.EnumFacing; -import net.minecraftforge.common.capabilities.Capability; - -import java.util.HashMap; -import java.util.Map; - -public class ResistanceStorage implements Capability.IStorage<IResistances> -{ - @Override - public NBTBase writeNBT(Capability<IResistances> capability, IResistances instance, EnumFacing side) - { - NBTTagCompound tag = new NBTTagCompound(); - for (Map.Entry<String, Float> stringFloatEntry : instance.getResistances().entrySet()) - { - Map.Entry pair = stringFloatEntry; - tag.setFloat(pair.getKey().toString(), (float) pair.getValue()); - } - return tag; - } - - @Override - public void readNBT(Capability<IResistances> capability, IResistances instance, EnumFacing side, NBTBase nbt) - { - Map<String, Float> resist = new HashMap<>(); - //((NBTTagCompound)nbt).get - instance.setResistances(resist); - } -} diff --git a/src/main/java/com/gildedgames/aether/common/entities/tiles/TileEntityAltar.java b/src/main/java/com/gildedgames/aether/common/entities/tiles/TileEntityAltar.java deleted file mode 100644 index 8a76894265..0000000000 --- a/src/main/java/com/gildedgames/aether/common/entities/tiles/TileEntityAltar.java +++ /dev/null @@ -1,162 +0,0 @@ -package com.gildedgames.aether.common.entities.tiles; - -import com.gildedgames.aether.api.AetherAPI; -import com.gildedgames.aether.api.recipes.altar.IAltarRecipe; -import com.gildedgames.aether.api.registrar.BlocksAether; -import com.gildedgames.aether.api.registrar.ItemsAether; -import com.gildedgames.aether.common.blocks.containers.BlockAltar; -import net.minecraft.block.state.IBlockState; -import net.minecraft.entity.item.EntityItem; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.util.EnumFacing; -import net.minecraft.util.ITickable; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; - -import javax.annotation.Nonnull; - -public class TileEntityAltar extends TileEntitySynced implements ITickable -{ - @SideOnly(Side.CLIENT) - public double animationTicks, prevAnimationTicks; - - private ItemStack stackOnAltar = ItemStack.EMPTY; - - private int ambrosiumCount; - - @Override - public void update() - { - if (this.world.isRemote) - { - this.prevAnimationTicks = this.animationTicks; - - this.animationTicks++; - } - } - - @Nonnull - public ItemStack getStackOnAltar() - { - return this.stackOnAltar; - } - - public void setStackOnAltar(@Nonnull ItemStack stack) - { - this.stackOnAltar = stack; - - this.sendUpdatesToClients(); - } - - public int getAmbrosiumCount() - { - return this.ambrosiumCount; - } - - public void setAmbrosiumCount(int count) - { - this.ambrosiumCount = count; - - this.sendUpdatesToClients(); - } - - public void removeAmbrosiumShard() - { - this.setAmbrosiumCount(this.getAmbrosiumCount() - 1); - } - - public void addAmbrosiumShard() - { - this.setAmbrosiumCount(this.getAmbrosiumCount() + 1); - } - - public void attemptCrafting() - { - if (!this.getStackOnAltar().isEmpty() && this.getAmbrosiumCount() > 0) - { - IAltarRecipe recipe = AetherAPI.content().altar().getMatchingRecipeFromInput(this.getStackOnAltar()); - - if (recipe != null) - { - int cost = recipe.getAmbrosiumCost(this.getStackOnAltar()); - - if (this.getAmbrosiumCount() >= cost) - { - ItemStack stack = recipe.getOutput(this.getStackOnAltar()); - - this.getWorld().spawnEntity(this.createEntityItemAboveAltar(stack)); - - this.ambrosiumCount -= cost; - this.setStackOnAltar(ItemStack.EMPTY); - } - } - } - } - - public void dropContents() - { - if (this.getAmbrosiumCount() > 0) - { - ItemStack stack = new ItemStack(ItemsAether.ambrosium_shard, this.getAmbrosiumCount()); - - this.getWorld().spawnEntity(this.createEntityItemAboveAltar(stack)); - } - - if (!this.getStackOnAltar().isEmpty()) - { - this.getWorld().spawnEntity(this.createEntityItemAboveAltar(this.getStackOnAltar())); - } - - this.setAmbrosiumCount(0); - this.setStackOnAltar(ItemStack.EMPTY); - } - - public EntityItem createEntityItemAboveAltar(ItemStack stack) - { - return new EntityItem(this.getWorld(), - this.getPos().getX() + 0.5D, this.getPos().getY() + 1.1D, this.getPos().getZ() + 0.5D, stack); - } - - public EnumFacing getFacing() - { - IBlockState state = this.world.getBlockState(this.pos); - - if (state.getBlock() == BlocksAether.altar) - { - return state.getValue(BlockAltar.PROPERTY_FACING); - } - - return EnumFacing.NORTH; - } - - @Override - public NBTTagCompound writeToNBT(NBTTagCompound compound) - { - super.writeToNBT(compound); - - NBTTagCompound itemCompound = new NBTTagCompound(); - - if (this.stackOnAltar != null) - { - this.stackOnAltar.writeToNBT(itemCompound); - } - - compound.setTag("StackOnAltar", itemCompound); - compound.setInteger("AmbrosiumCount", this.ambrosiumCount); - - return compound; - } - - @Override - public void readFromNBT(NBTTagCompound compound) - { - super.readFromNBT(compound); - - NBTTagCompound itemCompound = compound.getCompoundTag("StackOnAltar"); - this.stackOnAltar = itemCompound.isEmpty() ? null : new ItemStack(itemCompound); - - this.ambrosiumCount = compound.getInteger("AmbrosiumCount"); - } - -} diff --git a/src/main/java/com/gildedgames/aether/common/entities/tiles/TileEntityHolystoneFurnace.java b/src/main/java/com/gildedgames/aether/common/entities/tiles/TileEntityHolystoneFurnace.java deleted file mode 100644 index 1c190663a6..0000000000 --- a/src/main/java/com/gildedgames/aether/common/entities/tiles/TileEntityHolystoneFurnace.java +++ /dev/null @@ -1,574 +0,0 @@ -package com.gildedgames.aether.common.entities.tiles; - -import com.gildedgames.aether.common.blocks.containers.BlockHolystoneFurnace; -import net.minecraft.block.Block; -import net.minecraft.block.material.Material; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.init.Blocks; -import net.minecraft.init.Items; -import net.minecraft.inventory.*; -import net.minecraft.item.*; -import net.minecraft.item.crafting.FurnaceRecipes; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.tileentity.TileEntityLockable; -import net.minecraft.util.EnumFacing; -import net.minecraft.util.ITickable; -import net.minecraft.util.NonNullList; -import net.minecraft.util.math.MathHelper; -import net.minecraftforge.event.ForgeEventFactory; -import net.minecraftforge.items.IItemHandler; -import net.minecraftforge.items.wrapper.SidedInvWrapper; - -public class TileEntityHolystoneFurnace extends TileEntityLockable implements ITickable, ISidedInventory -{ - private static final int[] SLOTS_TOP = new int[] { 0 }; - - private static final int[] SLOTS_BOTTOM = new int[] { 2, 1 }; - - private static final int[] SLOTS_SIDES = new int[] { 1 }; - - private NonNullList<ItemStack> furnaceItemStacks = NonNullList.withSize(3, ItemStack.EMPTY); - - private int furnaceBurnTime; - - private int currentItemBurnTime; - - private int cookTime; - - private int totalCookTime; - - private String furnaceCustomName; - - private final IItemHandler handlerTop = new SidedInvWrapper(this, net.minecraft.util.EnumFacing.UP); - - private final IItemHandler handlerBottom = new SidedInvWrapper(this, net.minecraft.util.EnumFacing.DOWN); - - private final IItemHandler handlerSide = new SidedInvWrapper(this, net.minecraft.util.EnumFacing.WEST); - - public static int getItemBurnTime(ItemStack stack) - { - if (stack.isEmpty()) - { - return 0; - } - else - { - Item item = stack.getItem(); - - if (item instanceof ItemBlock && Block.getBlockFromItem(item) != Blocks.AIR) - { - Block block = Block.getBlockFromItem(item); - - if (block == Blocks.WOODEN_SLAB) - { - return 150; - } - if (item == Item.getItemFromBlock(Blocks.WOOL)) - { - return 100; - } - if (item == Item.getItemFromBlock(Blocks.CARPET)) - { - return 67; - } - if (item == Item.getItemFromBlock(Blocks.LADDER)) - { - return 300; - } - if (item == Item.getItemFromBlock(Blocks.WOODEN_BUTTON)) - { - return 100; - } - if (block.getDefaultState().getMaterial() == Material.WOOD) - { - return 300; - } - if (block == Blocks.COAL_BLOCK) - { - return 16000; - } - } - - if (item instanceof ItemTool && "WOOD".equals(((ItemTool) item).getToolMaterialName())) - { - return 200; - } - if (item instanceof ItemSword && "WOOD".equals(((ItemSword) item).getToolMaterialName())) - { - return 200; - } - if (item instanceof ItemHoe && "WOOD".equals(((ItemHoe) item).getMaterialName())) - { - return 200; - } - if (item == Items.STICK) - { - return 100; - } - if (item == Items.BOW) - { - return 300; - } - if (item == Items.FISHING_ROD) - { - return 300; - } - if (item == Items.SIGN) - { - return 200; - } - if (item == Items.COAL) - { - return 1600; - } - if (item == Items.LAVA_BUCKET) - { - return 20000; - } - if (item == Item.getItemFromBlock(Blocks.SAPLING)) - { - return 100; - } - if (item == Items.BOWL) - { - return 100; - } - if (item == Items.BLAZE_ROD) - { - return 2400; - } - if (item instanceof ItemDoor && item != Items.IRON_DOOR) - { - return 200; - } - if (item instanceof ItemBoat) - { - return 400; - } - - return ForgeEventFactory.getItemBurnTime(stack); - } - } - - public static boolean isItemFuel(ItemStack stack) - { - return getItemBurnTime(stack) > 0; - } - - @Override - public int getSizeInventory() - { - return this.furnaceItemStacks.size(); - } - - @Override - public boolean isEmpty() - { - for (ItemStack itemstack : this.furnaceItemStacks) - { - if (!itemstack.isEmpty()) - { - return false; - } - } - - return true; - } - - @Override - public ItemStack getStackInSlot(int index) - { - return this.furnaceItemStacks.get(index); - } - - @Override - public ItemStack decrStackSize(int index, int count) - { - return ItemStackHelper.getAndSplit(this.furnaceItemStacks, index, count); - } - - @Override - public ItemStack removeStackFromSlot(int index) - { - return ItemStackHelper.getAndRemove(this.furnaceItemStacks, index); - } - - @Override - public void setInventorySlotContents(int index, ItemStack stack) - { - ItemStack itemstack = this.furnaceItemStacks.get(index); - boolean flag = !stack.isEmpty() && stack.isItemEqual(itemstack) && ItemStack.areItemStackTagsEqual(stack, itemstack); - this.furnaceItemStacks.set(index, stack); - - if (stack.getCount() > this.getInventoryStackLimit()) - { - stack.setCount(this.getInventoryStackLimit()); - } - - if (index == 0 && !flag) - { - this.totalCookTime = this.getCookTime(stack); - this.cookTime = 0; - this.markDirty(); - } - } - - @Override - public String getName() - { - return this.hasCustomName() ? this.furnaceCustomName : "container.holystone_furnace"; - } - - @Override - public boolean hasCustomName() - { - return this.furnaceCustomName != null && !this.furnaceCustomName.isEmpty(); - } - - public void setCustomInventoryName(String p_145951_1_) - { - this.furnaceCustomName = p_145951_1_; - } - - @Override - public void readFromNBT(NBTTagCompound compound) - { - super.readFromNBT(compound); - - this.furnaceItemStacks = NonNullList.withSize(this.getSizeInventory(), ItemStack.EMPTY); - - ItemStackHelper.loadAllItems(compound, this.furnaceItemStacks); - - this.furnaceBurnTime = compound.getInteger("BurnTime"); - this.cookTime = compound.getInteger("CookTime"); - this.totalCookTime = compound.getInteger("CookTimeTotal"); - this.currentItemBurnTime = getItemBurnTime(this.furnaceItemStacks.get(1)); - - if (compound.hasKey("CustomName", 8)) - { - this.furnaceCustomName = compound.getString("CustomName"); - } - } - - @Override - public NBTTagCompound writeToNBT(NBTTagCompound compound) - { - super.writeToNBT(compound); - - compound.setInteger("BurnTime", (short) this.furnaceBurnTime); - compound.setInteger("CookTime", (short) this.cookTime); - compound.setInteger("CookTimeTotal", (short) this.totalCookTime); - - ItemStackHelper.saveAllItems(compound, this.furnaceItemStacks); - - if (this.hasCustomName()) - { - compound.setString("CustomName", this.furnaceCustomName); - } - - return compound; - } - - @Override - public int getInventoryStackLimit() - { - return 64; - } - - public boolean isBurning() - { - return this.furnaceBurnTime > 0; - } - - @Override - public void update() - { - boolean prevBurning = this.isBurning(); - boolean isBurning = false; - - if (this.isBurning()) - { - --this.furnaceBurnTime; - } - - if (!this.world.isRemote) - { - ItemStack fuelStack = this.furnaceItemStacks.get(1); - - if (this.isBurning() || !fuelStack.isEmpty() && !this.furnaceItemStacks.get(0).isEmpty()) - { - if (!this.isBurning() && this.canSmelt()) - { - this.furnaceBurnTime = getItemBurnTime(fuelStack); - this.currentItemBurnTime = this.furnaceBurnTime; - - if (this.isBurning()) - { - isBurning = true; - - if (!fuelStack.isEmpty()) - { - Item item = fuelStack.getItem(); - fuelStack.shrink(1); - - if (fuelStack.isEmpty()) - { - this.furnaceItemStacks.set(1, item.getContainerItem(fuelStack)); - } - } - } - } - - if (this.isBurning() && this.canSmelt()) - { - ++this.cookTime; - - if (this.cookTime == this.totalCookTime) - { - this.cookTime = 0; - this.totalCookTime = this.getCookTime(this.furnaceItemStacks.get(0)); - this.smeltItem(); - isBurning = true; - } - } - else - { - this.cookTime = 0; - } - } - else if (!this.isBurning() && this.cookTime > 0) - { - this.cookTime = MathHelper.clamp(this.cookTime - 2, 0, this.totalCookTime); - } - - if (prevBurning != this.isBurning() && !this.world.isRemote) - { - isBurning = true; - - this.world.setBlockState(this.pos, this.world.getBlockState(this.pos) - .withProperty(BlockHolystoneFurnace.PROPERTY_IS_LIT, this.isBurning()), 3); - - this.validate(); - - this.world.setTileEntity(this.pos, this); - } - } - - if (isBurning) - { - this.markDirty(); - } - } - - public int getCookTime(ItemStack stack) - { - return 200; - } - - private boolean canSmelt() - { - if (this.furnaceItemStacks.get(0).isEmpty()) - { - return false; - } - else - { - ItemStack resultStack = FurnaceRecipes.instance().getSmeltingResult(this.furnaceItemStacks.get(0)); - - if (resultStack.isEmpty()) - { - return false; - } - else - { - ItemStack existingResultStack = this.furnaceItemStacks.get(2); - - if (existingResultStack.isEmpty()) - { - return true; - } - - if (!existingResultStack.isItemEqual(resultStack)) - { - return false; - } - - int result = existingResultStack.getCount() + resultStack.getCount(); - - return result <= this.getInventoryStackLimit() && result <= existingResultStack.getMaxStackSize(); - } - } - } - - public void smeltItem() - { - if (this.canSmelt()) - { - ItemStack smeltingStack = this.furnaceItemStacks.get(0); - ItemStack smeltingResultStack = FurnaceRecipes.instance().getSmeltingResult(smeltingStack); - ItemStack existingResultStack = this.furnaceItemStacks.get(2); - - if (existingResultStack.isEmpty()) - { - this.furnaceItemStacks.set(2, smeltingResultStack.copy()); - } - else if (existingResultStack.getItem() == smeltingResultStack.getItem()) - { - existingResultStack.grow(smeltingResultStack.getCount()); - } - - if (smeltingStack.getItem() == Item.getItemFromBlock(Blocks.SPONGE) && smeltingStack.getMetadata() == 1 && !this.furnaceItemStacks.get(1).isEmpty() - && this.furnaceItemStacks.get(1).getItem() == Items.BUCKET) - { - this.furnaceItemStacks.set(1, new ItemStack(Items.WATER_BUCKET)); - } - - smeltingStack.shrink(1); - } - } - - @Override - public boolean isUsableByPlayer(EntityPlayer player) - { - return this.world.getTileEntity(this.pos) == this - && player.getDistanceSq((double) this.pos.getX() + 0.5D, (double) this.pos.getY() + 0.5D, (double) this.pos.getZ() + 0.5D) <= 64.0D; - } - - @Override - public void openInventory(EntityPlayer player) - { - } - - @Override - public void closeInventory(EntityPlayer player) - { - } - - @Override - public boolean isItemValidForSlot(int index, ItemStack stack) - { - if (index == 2) - { - return false; - } - else if (index != 1) - { - return true; - } - else - { - ItemStack itemstack = this.furnaceItemStacks.get(1); - return isItemFuel(stack) || SlotFurnaceFuel.isBucket(stack) && itemstack.getItem() != Items.BUCKET; - } - } - - @Override - public int[] getSlotsForFace(EnumFacing side) - { - return side == EnumFacing.DOWN ? SLOTS_BOTTOM : (side == EnumFacing.UP ? SLOTS_TOP : SLOTS_SIDES); - } - - @Override - public boolean canInsertItem(int index, ItemStack itemStackIn, EnumFacing direction) - { - return this.isItemValidForSlot(index, itemStackIn); - } - - @Override - public boolean canExtractItem(int index, ItemStack stack, EnumFacing direction) - { - if (direction == EnumFacing.DOWN && index == 1) - { - Item item = stack.getItem(); - - return item == Items.WATER_BUCKET || item == Items.BUCKET; - } - - return true; - } - - @Override - public String getGuiID() - { - return "minecraft:furnace"; - } - - @Override - public Container createContainer(InventoryPlayer playerInventory, EntityPlayer playerIn) - { - return new ContainerFurnace(playerInventory, this); - } - - @Override - public int getField(int id) - { - switch (id) - { - case 0: - return this.furnaceBurnTime; - case 1: - return this.currentItemBurnTime; - case 2: - return this.cookTime; - case 3: - return this.totalCookTime; - default: - return 0; - } - } - - @Override - public void setField(int id, int value) - { - switch (id) - { - case 0: - this.furnaceBurnTime = value; - break; - case 1: - this.currentItemBurnTime = value; - break; - case 2: - this.cookTime = value; - break; - case 3: - this.totalCookTime = value; - } - } - - @Override - public int getFieldCount() - { - return 4; - } - - @Override - public void clear() - { - this.furnaceItemStacks.clear(); - } - - @Override - @SuppressWarnings("unchecked") - public <T> T getCapability(net.minecraftforge.common.capabilities.Capability<T> capability, @javax.annotation.Nullable net.minecraft.util.EnumFacing facing) - { - if (facing != null && capability == net.minecraftforge.items.CapabilityItemHandler.ITEM_HANDLER_CAPABILITY) - { - if (facing == EnumFacing.DOWN) - { - return (T) this.handlerBottom; - } - else if (facing == EnumFacing.UP) - { - return (T) this.handlerTop; - } - else - { - return (T) this.handlerSide; - } - } - - return super.getCapability(capability, facing); - } -} diff --git a/src/main/java/com/gildedgames/aether/common/entities/tiles/TileEntityIcestoneCooler.java b/src/main/java/com/gildedgames/aether/common/entities/tiles/TileEntityIcestoneCooler.java deleted file mode 100644 index a9d63988c3..0000000000 --- a/src/main/java/com/gildedgames/aether/common/entities/tiles/TileEntityIcestoneCooler.java +++ /dev/null @@ -1,583 +0,0 @@ -package com.gildedgames.aether.common.entities.tiles; - -import com.gildedgames.aether.api.registrar.BlocksAether; -import com.gildedgames.aether.api.registrar.ItemsAether; -import com.gildedgames.aether.common.blocks.containers.BlockIcestoneCooler; -import com.gildedgames.aether.common.containers.tiles.ContainerIcestoneCooler; -import com.gildedgames.aether.common.recipes.CoolerRecipes; -import net.minecraft.block.state.IBlockState; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.inventory.Container; -import net.minecraft.inventory.IInventory; -import net.minecraft.inventory.ISidedInventory; -import net.minecraft.inventory.ItemStackHelper; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.network.NetworkManager; -import net.minecraft.network.play.server.SPacketUpdateTileEntity; -import net.minecraft.tileentity.TileEntityLockable; -import net.minecraft.util.EnumFacing; -import net.minecraft.util.ITickable; -import net.minecraft.util.NonNullList; -import net.minecraft.util.math.MathHelper; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; -import net.minecraftforge.items.IItemHandler; -import net.minecraftforge.items.wrapper.SidedInvWrapper; - -import java.util.Random; - -public class TileEntityIcestoneCooler extends TileEntityLockable implements ITickable, ISidedInventory -{ - private static final int[] SLOTS_TOP = new int[] { 0 }; - - private static final int[] SLOTS_BOTTOM = new int[] { 2, 4 }; - - private static final int[] SLOTS_EAST = new int[] { 3 }; - - private static final int[] SLOTS_WEST = new int[] { 1 }; - - private final int totalCoolTime = 800; - - private final int itemCoolTime = 1600; - - private NonNullList<ItemStack> coolerItemStacks = NonNullList.withSize(5, ItemStack.EMPTY); - - private int coolerCoolTime; - - private int currentItemCoolTime; - - private int coolTime; - - private String coolerCustomName; - - private final IItemHandler handlerTop = new SidedInvWrapper(this, net.minecraft.util.EnumFacing.UP); - - private final IItemHandler handlerBottom = new SidedInvWrapper(this, net.minecraft.util.EnumFacing.DOWN); - - private final IItemHandler handlerEast = new SidedInvWrapper(this, net.minecraft.util.EnumFacing.EAST); - - private final IItemHandler handlerWest = new SidedInvWrapper(this, net.minecraft.util.EnumFacing.WEST); - - @SideOnly(Side.CLIENT) - public static boolean isCooling(IInventory inventory) - { - return inventory.getField(0) > 0; - } - - public static boolean isItemCooling(ItemStack stack) - { - return stack.getItem() == ItemsAether.icestone; - } - - public static boolean isItemIrradiated(ItemStack stack) - { - Item item = stack.getItem(); - return item == ItemsAether.irradiated_chunk - || item == ItemsAether.irradiated_armor - || item == ItemsAether.irradiated_charm - || item == ItemsAether.irradiated_neckwear - || item == ItemsAether.irradiated_ring - || item == ItemsAether.irradiated_sword - || item == ItemsAether.irradiated_tool; - } - - @Override - public int getSizeInventory() - { - return this.coolerItemStacks.size(); - } - - public EnumFacing getFacing() - { - IBlockState state = this.world.getBlockState(this.pos); - - if (state.getBlock() == BlocksAether.icestone_cooler) - { - return state.getValue(BlockIcestoneCooler.PROPERTY_FACING); - } - - return EnumFacing.NORTH; - } - - @Override - public boolean isEmpty() - { - for (ItemStack itemstack : this.coolerItemStacks) - { - if (!itemstack.isEmpty()) - { - return false; - } - } - - return true; - } - - @Override - public ItemStack getStackInSlot(int index) - { - return this.coolerItemStacks.get(index); - } - - @Override - public ItemStack decrStackSize(int index, int count) - { - return ItemStackHelper.getAndSplit(this.coolerItemStacks, index, count); - } - - @Override - public ItemStack removeStackFromSlot(int index) - { - return ItemStackHelper.getAndRemove(this.coolerItemStacks, index); - } - - @Override - public void setInventorySlotContents(int index, ItemStack stack) - { - ItemStack itemstack = this.coolerItemStacks.get(index); - boolean flag = !stack.isEmpty() && stack.isItemEqual(itemstack) && ItemStack.areItemStackTagsEqual(stack, itemstack); - this.coolerItemStacks.set(index, stack); - - if (stack.getCount() > this.getInventoryStackLimit()) - { - stack.setCount(this.getInventoryStackLimit()); - } - - if (index == 0 && !flag) - { - this.coolTime = 0; - this.markDirty(); - } - } - - @Override - public int getInventoryStackLimit() - { - return 64; - } - - @Override - public boolean isUsableByPlayer(EntityPlayer player) - { - return this.world.getTileEntity(this.pos) == this - && player.getDistanceSq((double) this.pos.getX() + 0.5D, (double) this.pos.getY() + 0.5D, (double) this.pos.getZ() + 0.5D) <= 64.0D; - } - - @Override - public void openInventory(EntityPlayer player) - { - this.sendUpdatesToClients(); - - if (this.world.isRemote) - { - this.sendUpdatesToClients(); - - this.setCustomInventoryName(this.coolerCustomName); - } - } - - @Override - public void closeInventory(EntityPlayer player) - { - - } - - @Override - public boolean isItemValidForSlot(int index, ItemStack stack) - { - if (index == 2 || index == 4) - { - return false; - } - else - { - if (index == 0 || index == 3) - { - return true; - } - - if (index == 1) - { - return isItemCooling(stack); - } - } - - return false; - } - - @Override - public int getField(int id) - { - switch (id) - { - case 0: - return this.coolerCoolTime; - case 1: - return this.currentItemCoolTime; - case 2: - return this.coolTime; - case 3: - return this.totalCoolTime; - default: - return 0; - } - } - - @Override - public void setField(int id, int value) - { - switch (id) - { - case 0: - this.coolerCoolTime = value; - break; - case 1: - this.currentItemCoolTime = value; - break; - case 2: - this.coolTime = value; - } - } - - @Override - public int getFieldCount() - { - return 4; - } - - @Override - public void clear() - { - this.coolerItemStacks.clear(); - } - - public boolean canInsertItem(int index, ItemStack itemStackIn, EnumFacing direction) - { - return this.isItemValidForSlot(index, itemStackIn); - } - - @Override - public void update() - { - boolean flag = this.isCooling(); - boolean flag1 = false; - - this.sendUpdatesToClients(); - - this.setCustomInventoryName(this.coolerCustomName); - - if (this.isCooling()) - { - --this.coolerCoolTime; - } - - if (!this.world.isRemote) - { - ItemStack itemstack = this.coolerItemStacks.get(1); - - if (this.isCooling() || !itemstack.isEmpty() && !this.coolerItemStacks.get(0).isEmpty()) - { - if (!this.isCooling() && this.canCool()) - { - this.coolerCoolTime = this.itemCoolTime; - this.currentItemCoolTime = this.coolerCoolTime; - - if (this.isCooling()) - { - flag1 = true; - - if (!itemstack.isEmpty()) - { - Item item = itemstack.getItem(); - itemstack.shrink(1); - - if (itemstack.isEmpty()) - { - ItemStack item1 = item.getContainerItem(itemstack); - this.coolerItemStacks.set(1, item1); - } - } - } - } - - if (this.isCooling() && this.canCool()) - { - ++this.coolTime; - - if (this.coolTime == this.totalCoolTime) - { - this.coolTime = 0; - this.coolItem(); - flag1 = true; - } - } - else - { - this.coolTime = 0; - } - } - else if (!this.isCooling() && this.coolTime > 0) - { - this.coolTime = MathHelper.clamp(this.coolTime - 2, 0, this.totalCoolTime); - } - - if (flag != this.isCooling()) - { - flag1 = true; - } - } - - if (flag1) - { - this.markDirty(); - } - } - - @Override - public Container createContainer(InventoryPlayer playerInventory, EntityPlayer playerIn) - { - return new ContainerIcestoneCooler(playerInventory, this); - } - - @Override - public String getGuiID() - { - return "aether:coooler"; - } - - @Override - public String getName() - { - return this.hasCustomName() ? this.coolerCustomName : "container.icestone_cooler"; - } - - @Override - public boolean hasCustomName() - { - return this.coolerCustomName != null && !this.coolerCustomName.isEmpty(); - } - - public void setCustomInventoryName(String p_145951_1_) - { - this.coolerCustomName = p_145951_1_; - } - - public void sendUpdatesToClients() - { - IBlockState state = this.world.getBlockState(this.pos); - - this.world.notifyBlockUpdate(this.pos, state, state, 3); - - this.markDirty(); - } - - @Override - public NBTTagCompound getUpdateTag() - { - NBTTagCompound tag = super.getUpdateTag(); - - this.writeToNBT(tag); - - return tag; - } - - @Override - public SPacketUpdateTileEntity getUpdatePacket() - { - NBTTagCompound compound = this.getUpdateTag(); - - return new SPacketUpdateTileEntity(this.pos, 1, compound); - } - - @Override - public void onDataPacket(NetworkManager networkManager, SPacketUpdateTileEntity packet) - { - this.readFromNBT(packet.getNbtCompound()); - } - - @Override - public void readFromNBT(NBTTagCompound compound) - { - super.readFromNBT(compound); - - this.coolerItemStacks = NonNullList.withSize(this.getSizeInventory(), ItemStack.EMPTY); - - ItemStackHelper.loadAllItems(compound, this.coolerItemStacks); - - this.coolerCoolTime = compound.getInteger("coolerCoolTime"); - this.coolTime = compound.getInteger("coolTime"); - - if (compound.hasKey("CustomName", 8)) - { - this.coolerCustomName = compound.getString("CustomName"); - } - } - - @Override - public NBTTagCompound writeToNBT(NBTTagCompound compound) - { - super.writeToNBT(compound); - - compound.setInteger("coolerCoolTime", (short) this.coolerCoolTime); - compound.setInteger("coolTime", (short) this.coolTime); - ItemStackHelper.saveAllItems(compound, this.coolerItemStacks); - - if (this.hasCustomName()) - { - compound.setString("CustomName", this.coolerCustomName); - } - - return compound; - } - - public boolean isCooling() - { - return this.coolerCoolTime > 0; - } - - private boolean canCool() - { - ItemStack stackSlot0 = this.coolerItemStacks.get(0); - ItemStack stackSlot2 = this.coolerItemStacks.get(2); - ItemStack stackSlot3 = this.coolerItemStacks.get(3); - ItemStack stackSlot4 = this.coolerItemStacks.get(4); - - ItemStack primaryOutput = CoolerRecipes.instance().getCoolingResult(stackSlot0, stackSlot3); - ItemStack secondaryOutput = CoolerRecipes.instance().getSecondaryOutput(stackSlot0); - - if (stackSlot0.isEmpty()) - { - return false; - } - else - { - if (primaryOutput.isEmpty()) - { - return false; - } - else - { - if (!stackSlot4.isEmpty() && stackSlot4.getItem() != secondaryOutput.getItem()) - { - return false; - } - - if (stackSlot2.isEmpty()) - { - return true; - } - - if (!stackSlot2.isItemEqual(primaryOutput)) - { - return false; - } - } - - int result = stackSlot2.getCount() + primaryOutput.getCount(); - return result <= this.getInventoryStackLimit() && result <= stackSlot2.getMaxStackSize(); - } - } - - public int getCoolTime(ItemStack stack) - { - return this.totalCoolTime; - } - - public void coolItem() - { - if (this.canCool()) - { - ItemStack stackSlot0 = this.coolerItemStacks.get(0); - ItemStack stackSlot2 = this.coolerItemStacks.get(2); - ItemStack stackSlot3 = this.coolerItemStacks.get(3); - ItemStack stackSlot4 = this.coolerItemStacks.get(4); - - ItemStack secondaryInput = CoolerRecipes.instance().getSecondaryInput(stackSlot0); - - ItemStack primaryOutput = CoolerRecipes.instance().getCoolingResult(stackSlot0, stackSlot3); - ItemStack secondaryOutput = CoolerRecipes.instance().getSecondaryOutput(stackSlot0); - - if (stackSlot2.isEmpty()) - { - this.coolerItemStacks.set(2, primaryOutput.copy()); - } - else if (stackSlot2.getItem() == primaryOutput.getItem()) - { - stackSlot2.grow(primaryOutput.getCount()); - } - - if (secondaryOutput != null) - { - if (stackSlot4.isEmpty()) - { - Random random = new Random(); - - ItemStack copiedStack = secondaryOutput.copy(); - - if (copiedStack.getItem() == ItemsAether.irradiated_dust) copiedStack.setCount(1 + random.nextInt(2)); - - this.coolerItemStacks.set(4, copiedStack); - } - else - { - if (stackSlot4.getItem() == secondaryOutput.getItem()) - { - stackSlot4.grow(1); - } - } - } - - if (secondaryInput != ItemStack.EMPTY) - { - if (stackSlot3.getItem() == secondaryInput.getItem()) - { - stackSlot3.shrink(1); - } - } - - stackSlot0.shrink(1); - } - } - - @Override - public int[] getSlotsForFace(EnumFacing side) - { - return side == EnumFacing.DOWN ? SLOTS_BOTTOM : (side == EnumFacing.UP ? SLOTS_TOP : (side == EnumFacing.EAST || side == EnumFacing.SOUTH ? SLOTS_EAST : SLOTS_WEST)); - } - - @Override - public boolean canExtractItem(int index, ItemStack stack, EnumFacing direction) - { - return true; - } - - @Override - @SuppressWarnings("unchecked") - public <T> T getCapability(net.minecraftforge.common.capabilities.Capability<T> capability, @javax.annotation.Nullable net.minecraft.util.EnumFacing facing) - { - if (facing != null && capability == net.minecraftforge.items.CapabilityItemHandler.ITEM_HANDLER_CAPABILITY) - { - if (facing == EnumFacing.DOWN) - { - return (T) this.handlerBottom; - } - else if (facing == EnumFacing.UP) - { - return (T) this.handlerTop; - } - else if (facing == EnumFacing.EAST || facing == EnumFacing.SOUTH) - { - return (T) this.handlerEast; - } - else if (facing == EnumFacing.WEST || facing == EnumFacing.NORTH) - { - return (T) this.handlerWest; - } - } - - return super.getCapability(capability, facing); - } -} diff --git a/src/main/java/com/gildedgames/aether/common/entities/tiles/TileEntityIncubator.java b/src/main/java/com/gildedgames/aether/common/entities/tiles/TileEntityIncubator.java deleted file mode 100644 index a441054889..0000000000 --- a/src/main/java/com/gildedgames/aether/common/entities/tiles/TileEntityIncubator.java +++ /dev/null @@ -1,502 +0,0 @@ -package com.gildedgames.aether.common.entities.tiles; - -import com.gildedgames.aether.api.registrar.BlocksAether; -import com.gildedgames.aether.api.registrar.ItemsAether; -import com.gildedgames.aether.common.blocks.containers.BlockIcestoneCooler; -import com.gildedgames.aether.common.blocks.containers.BlockIncubator; -import com.gildedgames.aether.common.containers.tiles.ContainerIcestoneCooler; -import com.gildedgames.aether.common.containers.tiles.ContainerIncubator; -import com.gildedgames.aether.common.entities.animals.EntityMoa; -import com.gildedgames.aether.common.entities.genes.AnimalGender; -import com.gildedgames.aether.common.entities.genes.moa.MoaGenePool; -import com.gildedgames.aether.common.entities.genes.moa.MoaNest; -import com.gildedgames.aether.common.items.other.ItemMoaEgg; -import com.gildedgames.aether.common.recipes.CoolerRecipes; -import net.minecraft.block.state.IBlockState; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.inventory.Container; -import net.minecraft.inventory.IInventory; -import net.minecraft.inventory.ISidedInventory; -import net.minecraft.inventory.ItemStackHelper; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.nbt.NBTTagList; -import net.minecraft.network.NetworkManager; -import net.minecraft.network.play.server.SPacketUpdateTileEntity; -import net.minecraft.tileentity.TileEntityLockable; -import net.minecraft.util.EnumFacing; -import net.minecraft.util.ITickable; -import net.minecraft.util.NonNullList; -import net.minecraft.util.math.MathHelper; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; -import net.minecraftforge.items.IItemHandler; -import net.minecraftforge.items.wrapper.SidedInvWrapper; - -import javax.annotation.Nonnull; -import java.util.Random; - -public class TileEntityIncubator extends TileEntityLockable implements ITickable, ISidedInventory -{ - private static final int[] SLOTS_EAST = new int[] { 1 }; - - private static final int[] SLOTS_WEST = new int[] { 0 }; - - private NonNullList<ItemStack> incubatorItemStacks = NonNullList.withSize(2, ItemStack.EMPTY); - - private int incubationTimeMax = 1600; - - private int incubationTime; - - private int heatingTimeMax = 800; - - private int heatingTime; - - private String incubatorCustomName; - - private final IItemHandler handlerEast = new SidedInvWrapper(this, net.minecraft.util.EnumFacing.EAST); - - private final IItemHandler handlerWest = new SidedInvWrapper(this, net.minecraft.util.EnumFacing.WEST); - - private final IItemHandler handlerNone = new SidedInvWrapper(this, net.minecraft.util.EnumFacing.UP); - - public static boolean isItemEgg(ItemStack stack) - { - return stack.getItem() == ItemsAether.moa_egg_item || stack.getItem() == ItemsAether.rainbow_moa_egg; - } - - public static boolean isItemFuel(ItemStack stack) - { - return stack.getItem() == ItemsAether.ambrosium_chunk || stack.getItem() == ItemsAether.irradiated_dust; - } - - @Override - public int getSizeInventory() - { - return this.incubatorItemStacks.size(); - } - - public EnumFacing getFacing() - { - IBlockState state = this.world.getBlockState(this.pos); - - if (state.getBlock() == BlocksAether.icestone_cooler) - { - return state.getValue(BlockIcestoneCooler.PROPERTY_FACING); - } - - return EnumFacing.NORTH; - } - - @Override - public boolean isEmpty() - { - for (ItemStack itemstack : this.incubatorItemStacks) - { - if (!itemstack.isEmpty()) - { - return false; - } - } - - return true; - } - - @Override - public ItemStack getStackInSlot(int index) - { - return this.incubatorItemStacks.get(index); - } - - @Override - public ItemStack decrStackSize(int index, int count) - { - return ItemStackHelper.getAndSplit(this.incubatorItemStacks, index, count); - } - - @Override - public ItemStack removeStackFromSlot(int index) - { - return ItemStackHelper.getAndRemove(this.incubatorItemStacks, index); - } - - @Override - public void setInventorySlotContents(int index, ItemStack stack) - { - ItemStack itemstack = this.incubatorItemStacks.get(index); - boolean flag = !stack.isEmpty() && stack.isItemEqual(itemstack) && ItemStack.areItemStackTagsEqual(stack, itemstack); - this.incubatorItemStacks.set(index, stack); - - if (stack.getCount() > this.getInventoryStackLimit()) - { - stack.setCount(this.getInventoryStackLimit()); - } - - if (index == 0 && !flag) - { - this.incubationTime = 0; - this.markDirty(); - this.sendUpdatesToClients(); - } - } - - @Override - public int getInventoryStackLimit() - { - return 64; - } - - @Override - public boolean isUsableByPlayer(EntityPlayer player) - { - return this.world.getTileEntity(this.pos) == this - && player.getDistanceSq((double) this.pos.getX() + 0.5D, (double) this.pos.getY() + 0.5D, (double) this.pos.getZ() + 0.5D) <= 64.0D; - } - - @Override - public void openInventory(EntityPlayer player) - { - if (this.world.isRemote) - { - this.sendUpdatesToClients(); - - this.setCustomInventoryName(this.incubatorCustomName); - } - } - - @Override - public void closeInventory(EntityPlayer player) - { - - } - - @Override - public boolean isItemValidForSlot(int index, ItemStack stack) - { - if (index == 0) - { - return isItemFuel(stack); - } - else if (index == 1) - { - return isItemEgg(stack); - } - - return false; - } - - @Override - public int getField(int id) - { - switch (id) - { - case 0: - return this.incubationTimeMax; - case 1: - return this.incubationTime; - case 2: - return this.heatingTimeMax; - case 3: - return this.heatingTime; - default: - return 0; - } - } - - @Override - public void setField(int id, int value) - { - switch (id) - { - case 0: - this.incubationTimeMax = value; - break; - case 1: - this.incubationTime = value; - break; - case 2: - this.heatingTimeMax = value; - break; - case 3: - this.heatingTime = value; - } - } - - @Override - public int getFieldCount() - { - return 4; - } - - @Override - public void clear() - { - this.incubatorItemStacks.clear(); - } - - @Override - public void update() - { - boolean isHeating = this.isHeating(); - boolean isIncubating = this.isIncubating(); - boolean flag = false; - - boolean isHeatTimerOn = false; - - if (!this.world.isRemote) - { - final IBlockState state = this.world.getBlockState(this.pos); - - ItemStack fuelStack = this.incubatorItemStacks.get(0); - ItemStack eggStack = this.incubatorItemStacks.get(1); - - if (isHeating) - { - if (this.heatingTime < this.heatingTimeMax) - { - ++this.heatingTime; - } - else - { - this.heatingTime = 0; - } - flag = true; - } - - if (!fuelStack.isEmpty()) - { - if (!eggStack.isEmpty()) - { - ++this.incubationTime; - ++this.heatingTime; - } - else - { - this.incubationTime = 0; - } - - if (this.heatingTime >= this.heatingTimeMax) - { - fuelStack.shrink(1); - this.heatingTime = 0; - } - - flag = true; - - isHeatTimerOn = true; - } - - if (!eggStack.isEmpty()) - { - if (isIncubating) - { - if (this.incubationTime >= this.incubationTimeMax) - { - Random rand = new Random(); - MoaGenePool stackGenes = ItemMoaEgg.getGenePool(eggStack); - MoaNest familyNest = new MoaNest(this.world); - EntityMoa moa = new EntityMoa(this.world, stackGenes.getStorage().getSeed()); - - moa.setRaisedByPlayer(true); - moa.setGrowingAge(-24000); - moa.setFoodRequired(3); - moa.setPosition(this.getPos().getX() + 0.5, this.getPos().getY() + 1.5, this.getPos().getZ() + 0.5); - moa.setGender(rand.nextBoolean() ? AnimalGender.FEMALE : AnimalGender.MALE); - moa.setAnimalPack(familyNest.getAnimalPack()); - moa.setIsHungry(true); - - this.world.spawnEntity(moa); - - eggStack.shrink(1); - this.incubationTime = 0; - } - } - - if (isHeatTimerOn && fuelStack.isEmpty() && this.heatingTime == 0) - { - eggStack.shrink(1); - this.incubationTime = 0; - } - - flag = true; - } - - if (state.getBlock() instanceof BlockIncubator && state.getValue(BlockIncubator.PROPERTY_IS_LIT) != isHeating) - { - this.markDirty(); - - this.world.setBlockState(this.pos, state.withProperty(BlockIncubator.PROPERTY_IS_LIT, this.isHeating())); - - this.validate(); - this.world.setTileEntity(this.pos, this); - } - } - - if (flag) - { - this.markDirty(); - this.sendUpdatesToClients(); - } - } - - @SideOnly(Side.CLIENT) - public static boolean isIncubating(IInventory inventory) - { - return inventory.getField(1) > 0; - } - - @SideOnly(Side.CLIENT) - public static boolean isHeating(IInventory inventory) - { - return inventory.getField(3) > 0; - } - - public boolean isIncubating() - { - return this.incubationTime > 0; - } - - public boolean isHeating() - { - return this.heatingTime > 0; - } - - @Override - public Container createContainer(InventoryPlayer playerInventory, EntityPlayer playerIn) - { - return new ContainerIncubator(playerInventory, this); - } - - @Override - public String getGuiID() - { - return "aether:incubator"; - } - - @Override - public String getName() - { - return this.hasCustomName() ? this.incubatorCustomName : "container.incubator"; - } - - @Override - public boolean hasCustomName() - { - return this.incubatorCustomName != null && !this.incubatorCustomName.isEmpty(); - } - - public void setCustomInventoryName(String p_145951_1_) - { - this.incubatorCustomName = p_145951_1_; - } - - public void sendUpdatesToClients() - { - IBlockState state = this.world.getBlockState(this.pos); - - this.world.notifyBlockUpdate(this.pos, state, state, 3); - - this.markDirty(); - } - - @Override - public NBTTagCompound getUpdateTag() - { - NBTTagCompound tag = super.getUpdateTag(); - - this.writeToNBT(tag); - - return tag; - } - - @Override - public SPacketUpdateTileEntity getUpdatePacket() - { - NBTTagCompound compound = this.getUpdateTag(); - - return new SPacketUpdateTileEntity(this.pos, 1, compound); - } - - @Override - public void onDataPacket(NetworkManager networkManager, SPacketUpdateTileEntity packet) - { - this.readFromNBT(packet.getNbtCompound()); - } - - @Override - public void readFromNBT(NBTTagCompound compound) - { - super.readFromNBT(compound); - - this.incubatorItemStacks = NonNullList.withSize(this.getSizeInventory(), ItemStack.EMPTY); - - ItemStackHelper.loadAllItems(compound, this.incubatorItemStacks); - - this.incubationTime = compound.getInteger("incubationTime"); - this.heatingTime = compound.getInteger("heatingTime"); - - if (compound.hasKey("CustomName", 8)) - { - this.incubatorCustomName = compound.getString("CustomName"); - } - } - - @Override - public NBTTagCompound writeToNBT(NBTTagCompound compound) - { - super.writeToNBT(compound); - - compound.setInteger("incubationTime", (short) this.incubationTime); - compound.setInteger("heatingTime", (short) this.heatingTime); - ItemStackHelper.saveAllItems(compound, this.incubatorItemStacks); - - if (this.hasCustomName()) - { - compound.setString("CustomName", this.incubatorCustomName); - } - - return compound; - } - - @Override - public int[] getSlotsForFace(EnumFacing side) - { - return side == EnumFacing.EAST || side == EnumFacing.SOUTH ? SLOTS_EAST : (side == EnumFacing.WEST || side == EnumFacing.NORTH ? SLOTS_WEST : new int[] { }); - } - - public boolean canInsertItem(int index, ItemStack itemStackIn, EnumFacing direction) - { - return this.isItemValidForSlot(index, itemStackIn); - } - - @Override - public boolean canExtractItem(int index, ItemStack stack, EnumFacing direction) - { - return false; - } - - @Override - @SuppressWarnings("unchecked") - public <T> T getCapability(net.minecraftforge.common.capabilities.Capability<T> capability, @javax.annotation.Nullable net.minecraft.util.EnumFacing facing) - { - if (facing != null && capability == net.minecraftforge.items.CapabilityItemHandler.ITEM_HANDLER_CAPABILITY) - { - if (facing == EnumFacing.EAST || facing == EnumFacing.SOUTH) - { - return (T) this.handlerEast; - } - else if (facing == EnumFacing.WEST || facing == EnumFacing.NORTH) - { - return (T) this.handlerWest; - } - else - { - return (T) this.handlerNone; - } - } - - return super.getCapability(capability, facing); - } -} diff --git a/src/main/java/com/gildedgames/aether/common/entities/tiles/TileEntityMasonryBench.java b/src/main/java/com/gildedgames/aether/common/entities/tiles/TileEntityMasonryBench.java deleted file mode 100644 index f6f877db14..0000000000 --- a/src/main/java/com/gildedgames/aether/common/entities/tiles/TileEntityMasonryBench.java +++ /dev/null @@ -1,298 +0,0 @@ -package com.gildedgames.aether.common.entities.tiles; - -import com.gildedgames.aether.api.registrar.BlocksAether; -import com.gildedgames.aether.api.registrar.ItemsAether; -import com.gildedgames.aether.common.blocks.containers.BlockMasonryBench; -import com.gildedgames.aether.common.containers.tiles.ContainerMasonryBench; -import net.minecraft.block.state.IBlockState; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.inventory.Container; -import net.minecraft.inventory.IInventory; -import net.minecraft.inventory.ISidedInventory; -import net.minecraft.inventory.ItemStackHelper; -import net.minecraft.item.ItemBlock; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.network.NetworkManager; -import net.minecraft.network.play.server.SPacketUpdateTileEntity; -import net.minecraft.tileentity.TileEntityLockable; -import net.minecraft.util.EnumFacing; -import net.minecraft.util.ITickable; -import net.minecraft.util.NonNullList; -import net.minecraftforge.items.IItemHandler; -import net.minecraftforge.items.wrapper.SidedInvWrapper; - -public class TileEntityMasonryBench extends TileEntityLockable implements ITickable, ISidedInventory -{ - private static final int[] SLOTS_TOP = new int[] { 0 }; - - private NonNullList<ItemStack> masonryItemStacks = NonNullList.withSize(2, ItemStack.EMPTY); - - private String masonryCustomName; - - private EntityPlayer player; - - private final IItemHandler handlerTop = new SidedInvWrapper(this, net.minecraft.util.EnumFacing.UP); - - private final IItemHandler handlerNone = new SidedInvWrapper(this, net.minecraft.util.EnumFacing.DOWN); - - @Override - public int getSizeInventory() - { - return this.masonryItemStacks.size(); - } - - public EnumFacing getFacing() - { - IBlockState state = this.world.getBlockState(this.pos); - - if (state.getBlock() == BlocksAether.masonry_bench) - { - return state.getValue(BlockMasonryBench.PROPERTY_FACING); - } - - return EnumFacing.NORTH; - } - - @Override - public boolean isEmpty() - { - return true; - } - - @Override - public ItemStack getStackInSlot(int index) - { - return this.masonryItemStacks.get(index); - } - - @Override - public ItemStack decrStackSize(int index, int count) - { - return ItemStackHelper.getAndSplit(this.masonryItemStacks, index, count); - } - - @Override - public ItemStack removeStackFromSlot(int index) - { - return ItemStackHelper.getAndRemove(this.masonryItemStacks, index); - } - - @Override - public void setInventorySlotContents(int index, ItemStack stack) - { - ItemStack itemstack = this.masonryItemStacks.get(index); - boolean flag = !stack.isEmpty() && stack.isItemEqual(itemstack) && ItemStack.areItemStackTagsEqual(stack, itemstack); - this.masonryItemStacks.set(index, stack); - - if (stack.getCount() > this.getInventoryStackLimit()) - { - stack.setCount(this.getInventoryStackLimit()); - } - - if (index == 0 && !flag) - { - this.markDirty(); - } - } - - @Override - public int getInventoryStackLimit() - { - return 64; - } - - @Override - public boolean isUsableByPlayer(EntityPlayer player) - { - return this.world.getTileEntity(this.pos) == this - && player.getDistanceSq((double) this.pos.getX() + 0.5D, (double) this.pos.getY() + 0.5D, (double) this.pos.getZ() + 0.5D) <= 64.0D; - } - - @Override - public void openInventory(EntityPlayer player) - { - this.player = player; - - if (this.world.isRemote) - { - this.sendUpdatesToClients(); - - this.setCustomInventoryName(this.masonryCustomName); - } - } - - @Override - public void closeInventory(EntityPlayer player) - { - - } - - @Override - public boolean isItemValidForSlot(int index, ItemStack stack) - { - if (index == 0) - { - return stack.getItem() instanceof ItemBlock || stack.getItem() == ItemsAether.skyroot_door_item; - } - - return false; - } - - @Override - public int getField(int id) - { - return 0; - } - - @Override - public void setField(int id, int value) - { - - } - - @Override - public int getFieldCount() - { - return 0; - } - - @Override - public void clear() - { - this.masonryItemStacks.clear(); - } - - @Override - public void update() - { - - } - - @Override - public Container createContainer(InventoryPlayer playerInventory, EntityPlayer playerIn) - { - return new ContainerMasonryBench(this.player, playerInventory, this); - } - - @Override - public String getGuiID() - { - return "aether:masonry_bench"; - } - - @Override - public String getName() - { - return this.hasCustomName() ? this.masonryCustomName : "container.masonry_bench"; - } - - @Override - public boolean hasCustomName() - { - return this.masonryCustomName != null && !this.masonryCustomName.isEmpty(); - } - - public void setCustomInventoryName(String p_145951_1_) - { - this.masonryCustomName = p_145951_1_; - } - - public void sendUpdatesToClients() - { - IBlockState state = this.world.getBlockState(this.pos); - - this.world.notifyBlockUpdate(this.pos, state, state, 3); - - this.markDirty(); - } - - @Override - public NBTTagCompound getUpdateTag() - { - NBTTagCompound tag = super.getUpdateTag(); - - this.writeToNBT(tag); - - return tag; - } - - @Override - public SPacketUpdateTileEntity getUpdatePacket() - { - NBTTagCompound compound = this.getUpdateTag(); - - return new SPacketUpdateTileEntity(this.pos, 1, compound); - } - - @Override - public void onDataPacket(NetworkManager networkManager, SPacketUpdateTileEntity packet) - { - this.readFromNBT(packet.getNbtCompound()); - } - - @Override - public void readFromNBT(NBTTagCompound compound) - { - super.readFromNBT(compound); - this.masonryItemStacks = NonNullList.withSize(this.getSizeInventory(), ItemStack.EMPTY); - ItemStackHelper.loadAllItems(compound, this.masonryItemStacks); - - if (compound.hasKey("CustomName", 8)) - { - this.masonryCustomName = compound.getString("CustomName"); - } - } - - @Override - public NBTTagCompound writeToNBT(NBTTagCompound compound) - { - super.writeToNBT(compound); - ItemStackHelper.saveAllItems(compound, this.masonryItemStacks); - - if (this.hasCustomName()) - { - compound.setString("CustomName", this.masonryCustomName); - } - - return compound; - } - - @Override - public int[] getSlotsForFace(EnumFacing side) - { - return side == EnumFacing.UP ? SLOTS_TOP : new int[] { }; - } - - @Override - public boolean canInsertItem(int index, ItemStack itemStackIn, EnumFacing direction) - { - return this.isItemValidForSlot(index, itemStackIn); - } - - @Override - public boolean canExtractItem(int index, ItemStack stack, EnumFacing direction) - { - return false; - } - - @Override - @SuppressWarnings("unchecked") - public <T> T getCapability(net.minecraftforge.common.capabilities.Capability<T> capability, @javax.annotation.Nullable net.minecraft.util.EnumFacing facing) - { - if (facing != null && capability == net.minecraftforge.items.CapabilityItemHandler.ITEM_HANDLER_CAPABILITY) - { - if (facing == EnumFacing.UP) - { - return (T) this.handlerTop; - } - else - { - return (T) this.handlerNone; - } - } - - return super.getCapability(capability, facing); - } -} diff --git a/src/main/java/com/gildedgames/aether/common/entities/tiles/TileEntityMoaEgg.java b/src/main/java/com/gildedgames/aether/common/entities/tiles/TileEntityMoaEgg.java deleted file mode 100644 index bfced07c8c..0000000000 --- a/src/main/java/com/gildedgames/aether/common/entities/tiles/TileEntityMoaEgg.java +++ /dev/null @@ -1,151 +0,0 @@ -package com.gildedgames.aether.common.entities.tiles; - -import com.gildedgames.aether.api.registrar.BlocksAether; -import com.gildedgames.aether.common.entities.animals.EntityMoa; -import com.gildedgames.aether.common.entities.genes.AnimalGender; -import com.gildedgames.aether.common.entities.genes.SimpleGeneStorage; -import com.gildedgames.aether.common.entities.genes.moa.MoaGenePool; -import com.gildedgames.aether.common.entities.genes.moa.MoaNest; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.util.ITickable; - -public class TileEntityMoaEgg extends TileEntitySynced implements ITickable -{ - - public int ticksExisted, secondsUntilHatch = -1; - - public MoaNest familyNest; - - public boolean playerPlaced; - - public AnimalGender gender = AnimalGender.FEMALE; - - private final MoaGenePool genePool = new MoaGenePool(new SimpleGeneStorage()); - - public TileEntityMoaEgg() - { - this.familyNest = new MoaNest(this.world); - } - - public MoaGenePool getGenePool() - { - return this.genePool; - } - - @Override - public void update() - { - if (this.world.isRemote) - { - return; - } - - if (this.playerPlaced) - { - return; - } - - if (this.secondsUntilHatch <= -1) - { - this.secondsUntilHatch = 100 + this.world.rand.nextInt(100); - } - - this.ticksExisted++; - - if (this.ticksExisted % 20 == 0) - { - if (this.secondsUntilHatch > 0) - { - this.secondsUntilHatch--; - } - else if (this.hatchConditionsMet()) - { - this.hatchEgg(); - } - } - } - - public boolean hatchConditionsMet() - { - boolean atMaxFamilySize = this.familyNest.getAnimalPack() != null - && this.familyNest.getAnimalPack().getSize() >= this.familyNest.getAnimalPack().getOptimalSize(); - - return this.world.getBlockState(this.getPos().add(0, -1, 0)) == BlocksAether.woven_sticks.getDefaultState() && !atMaxFamilySize; - } - - public void hatchEgg() - { - EntityMoa babyMoa = new EntityMoa(this.world, this.familyNest, this.genePool.getStorage().getFatherSeed(), this.genePool.getStorage().getMotherSeed()); - - babyMoa.setGrowingAge(-24000); - babyMoa.setPosition(this.getPos().getX() + 0.5D, this.getPos().getY(), this.getPos().getZ() + 0.5D); - babyMoa.setGender(this.gender); - babyMoa.setAnimalPack(this.familyNest.getAnimalPack()); - - this.world.spawnEntity(babyMoa); - - this.world.destroyBlock(this.getPos(), false); - } - - public AnimalGender getGender() - { - return this.gender; - } - - public void setGender(AnimalGender gender) - { - this.gender = gender; - } - - public void setFamilyNest(MoaNest familyNest) - { - this.familyNest = familyNest; - } - - public void setPlayerPlaced() - { - this.playerPlaced = true; - } - - @Override - public void readFromNBT(NBTTagCompound nbt) - { - super.readFromNBT(nbt); - - this.genePool.read(nbt.getCompoundTag("genePool")); - - this.secondsUntilHatch = nbt.getInteger("secondsUntilHatch"); - - this.gender = AnimalGender.get(nbt.getString("creatureGender")); - - this.familyNest.readFromNBT(nbt); - - this.playerPlaced = nbt.getBoolean("playerPlaced"); - } - - @Override - public NBTTagCompound writeToNBT(NBTTagCompound nbt) - { - super.writeToNBT(nbt); - - NBTTagCompound genePoolTag = new NBTTagCompound(); - - this.genePool.write(genePoolTag); - - nbt.setTag("genePool", genePoolTag); - - nbt.setInteger("secondsUntilHatch", this.secondsUntilHatch); - - if (this.gender != null) - { - nbt.setString("creatureGender", this.gender.name()); - } - - this.familyNest.writeToNBT(nbt); - - nbt.setBoolean("playerPlaced", this.playerPlaced); - - return nbt; - } - -} diff --git a/src/main/java/com/gildedgames/aether/common/entities/tiles/TileEntityOutpostCampfire.java b/src/main/java/com/gildedgames/aether/common/entities/tiles/TileEntityOutpostCampfire.java deleted file mode 100644 index a520cdcbd6..0000000000 --- a/src/main/java/com/gildedgames/aether/common/entities/tiles/TileEntityOutpostCampfire.java +++ /dev/null @@ -1,153 +0,0 @@ -package com.gildedgames.aether.common.entities.tiles; - -import com.gildedgames.aether.api.registrar.BlocksAether; -import com.gildedgames.aether.api.world.IWorldObjectHoverable; -import com.gildedgames.aether.common.AetherCore; -import com.gildedgames.aether.common.blocks.multiblock.BlockMultiController; -import com.gildedgames.aether.common.capabilities.entity.player.PlayerAether; -import com.gildedgames.aether.common.capabilities.entity.player.modules.PlayerCampfiresModule; -import com.gildedgames.aether.common.capabilities.entity.player.modules.PlayerSwetTrackerModule; -import com.gildedgames.aether.common.capabilities.entity.player.modules.PlayerTeleportingModule; -import com.gildedgames.aether.common.entities.tiles.multiblock.TileEntityMultiblockController; -import com.gildedgames.aether.common.init.DimensionsAether; -import com.gildedgames.orbis.lib.util.TeleporterGeneric; -import com.gildedgames.orbis.lib.util.mc.BlockPosDimension; -import net.minecraft.block.state.IBlockState; -import net.minecraft.client.Minecraft; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.EntityPlayerMP; -import net.minecraft.item.ItemStack; -import net.minecraft.server.MinecraftServer; -import net.minecraft.server.management.PlayerList; -import net.minecraft.util.ITickable; -import net.minecraft.util.math.AxisAlignedBB; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.RayTraceResult; -import net.minecraft.util.text.ITextComponent; -import net.minecraft.util.text.TextComponentTranslation; -import net.minecraft.world.Teleporter; -import net.minecraft.world.World; -import net.minecraftforge.common.DimensionManager; -import net.minecraftforge.fml.common.FMLCommonHandler; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; - -import java.util.List; - -public class TileEntityOutpostCampfire extends TileEntityMultiblockController implements ITickable, IWorldObjectHoverable -{ - - private static final int PLAYER_SEARCHING_RADIUS = 2; - - private BlockPosDimension posDim; - - public TileEntityOutpostCampfire() - { - super((BlockMultiController) BlocksAether.outpost_campfire, BlocksAether.multiblock_dummy_half); - } - - @Override - public boolean onInteract(final EntityPlayer player) - { - if (player instanceof EntityPlayerMP) - { - if (player.world.provider.getDimensionType() == DimensionsAether.AETHER) - { - if (!player.isRiding() && !player.isBeingRidden() - && PlayerAether.getPlayer(player).getModule(PlayerSwetTrackerModule.class).getLatchedSwets().isEmpty()) - { - final EntityPlayerMP playerMP = (EntityPlayerMP) player; - - final PlayerAether playerAether = PlayerAether.getPlayer(player); - - final PlayerTeleportingModule teleportingModule = playerAether.getModule(PlayerTeleportingModule.class); - teleportingModule.setAetherPos(new BlockPosDimension((int) player.posX, (int) player.posY, (int) player.posZ, player.dimension)); - - BlockPosDimension pos = teleportingModule.getNonAetherPos(); - - if (pos == null) { - pos = new BlockPosDimension(DimensionManager.getWorld(0).getSpawnPoint(), 0); - } - - final MinecraftServer server = FMLCommonHandler.instance().getMinecraftServerInstance(); - - final Teleporter teleporter = new TeleporterGeneric(server.getWorld(player.dimension)); - PlayerList playerList = server.getPlayerList(); - playerList.transferPlayerToDimension(playerMP, pos.getDim(), teleporter); - player.timeUntilPortal = player.getPortalCooldown(); - - playerMP.connection.setPlayerLocation(pos.getX() + 0.5, pos.getY(), pos.getZ() + 0.5, 0, 0); - - return true; - } - else - { - player.sendStatusMessage(new TextComponentTranslation("tile.aether.campfire.mobNotification"), true); - } - } - } - - return false; - } - - @Override - public ItemStack getPickedStack(final World world, final BlockPos pos, final IBlockState state) - { - return new ItemStack(BlocksAether.outpost_campfire); - } - - @SideOnly(Side.CLIENT) - public void clientUpdate() - { - PlayerAether playerAether = PlayerAether.getPlayer(Minecraft.getMinecraft().player); - - PlayerCampfiresModule campfiresModule = playerAether.getModule(PlayerCampfiresModule.class); - - if (campfiresModule.hasCampfire(this.posDim)) - { - AetherCore.PROXY.spawnCampfireParticles(this.world, this.pos.getX() + 1.0D, this.pos.getY(), this.pos.getZ() + 1.0D); - } - } - - @Override - public void update() - { - if (this.posDim == null) - { - this.posDim = new BlockPosDimension(this.pos, this.world.provider.getDimension()); - } - - AxisAlignedBB searchingBB = new AxisAlignedBB( - new BlockPos(this.pos.getX() - PLAYER_SEARCHING_RADIUS, this.pos.getY() - PLAYER_SEARCHING_RADIUS, - this.pos.getZ() - PLAYER_SEARCHING_RADIUS), - new BlockPos(this.pos.getX() + PLAYER_SEARCHING_RADIUS + 2.0F, this.pos.getY() + PLAYER_SEARCHING_RADIUS, - this.pos.getZ() + PLAYER_SEARCHING_RADIUS + 2.0F)); - - List<EntityPlayer> players = this.world.getEntitiesWithinAABB(EntityPlayer.class, searchingBB); - - if (this.world.isRemote) - { - this.clientUpdate(); - } - - for (EntityPlayer player : players) - { - PlayerAether playerAether = PlayerAether.getPlayer(player); - - PlayerCampfiresModule campfiresModule = playerAether.getModule(PlayerCampfiresModule.class); - - if (!campfiresModule.hasCampfire(this.posDim)) - { - campfiresModule.addActivatedCampfire(this.posDim); - - AetherCore.PROXY.spawnCampfireStartParticles(this.world, this.pos.getX() + 1.0D, this.pos.getY(), this.pos.getZ() + 1.0D); - } - } - } - - @Override - public ITextComponent getHoverText(World world, RayTraceResult result) - { - return new TextComponentTranslation("gui.aether.hover.campfire"); - } -} diff --git a/src/main/java/com/gildedgames/aether/common/entities/tiles/TileEntityPresent.java b/src/main/java/com/gildedgames/aether/common/entities/tiles/TileEntityPresent.java deleted file mode 100644 index e490d252dc..0000000000 --- a/src/main/java/com/gildedgames/aether/common/entities/tiles/TileEntityPresent.java +++ /dev/null @@ -1,128 +0,0 @@ -package com.gildedgames.aether.common.entities.tiles; - -import com.gildedgames.aether.common.items.blocks.ItemBlockPresent; -import com.gildedgames.aether.common.items.other.ItemWrappingPaper; -import net.minecraft.block.state.IBlockState; -import net.minecraft.entity.Entity; -import net.minecraft.entity.item.EntityItem; -import net.minecraft.entity.item.EntityTNTPrimed; -import net.minecraft.init.Blocks; -import net.minecraft.item.Item; -import net.minecraft.item.ItemMonsterPlacer; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.network.NetworkManager; -import net.minecraft.network.play.server.SPacketUpdateTileEntity; -import net.minecraft.tileentity.TileEntity; - -public class TileEntityPresent extends TileEntitySynced -{ - - private ItemBlockPresent.PresentData presentData = new ItemBlockPresent.PresentData(); - - public ItemBlockPresent.PresentData getPresentData() - { - return this.presentData; - } - - public void setPresentData(ItemBlockPresent.PresentData data) - { - this.presentData = data; - } - - public void dropItem() - { - double radius = 0.7F; - ItemStack stack = this.getPresentData().getStack(); - - if (stack == null) - { - return; - } - - this.getPresentData().setStack(null); - - double x2 = this.getPos().getX() + ((this.world.rand.nextFloat() * radius) + (1.0F - radius) * 0.5D); - double y2 = this.getPos().getY() + ((this.world.rand.nextFloat() * radius) + (1.0F - radius) * 0.5D); - double z2 = this.getPos().getZ() + ((this.world.rand.nextFloat() * radius) + (1.0F - radius) * 0.5D); - - if (stack.getItem() instanceof ItemMonsterPlacer) - { - ItemMonsterPlacer.spawnCreature(this.world, ItemMonsterPlacer.getNamedIdFrom(stack), x2, y2, z2); - return; - } - - Entity entity; - - if (stack.getItem() == Item.getItemFromBlock(Blocks.TNT)) - { - EntityTNTPrimed tnt = new EntityTNTPrimed(this.world, - this.getPos().getX() + 0.5D, this.getPos().getY() + 0.5D, this.getPos().getZ() + 0.5D, null); - tnt.setFuse(20); - - entity = tnt; - } - else - { - EntityItem item = new EntityItem(this.world, x2, y2, z2, stack); - item.setPickupDelay(10) - ; - entity = item; - } - - this.world.spawnEntity(entity); - } - - @Override - public NBTTagCompound writeToNBT(NBTTagCompound compound) - { - super.writeToNBT(compound); - compound.setTag("data", this.getPresentData().writeToNBT(new NBTTagCompound())); - - return compound; - } - - @Override - public void readFromNBT(NBTTagCompound compound) - { - super.readFromNBT(compound); - this.presentData = ItemBlockPresent.PresentData.readFromNBT(compound.getCompoundTag("data")); - } - - // Do not sync what items the present contains to the client! - - @Override - public NBTTagCompound getUpdateTag() - { - NBTTagCompound tag = super.getUpdateTag(); - - tag.setTag("dye", this.getPresentData().getDye().writeToNBT(new NBTTagCompound())); - - return tag; - } - - @Override - public SPacketUpdateTileEntity getUpdatePacket() - { - NBTTagCompound compound = this.getUpdateTag(); - - return new SPacketUpdateTileEntity(this.pos, 1, compound); - } - - @Override - public void onDataPacket(NetworkManager networkManager, SPacketUpdateTileEntity packet) - { - NBTTagCompound nbt = packet.getNbtCompound(); - this.getPresentData().setDye(ItemWrappingPaper.PresentDyeData.readFromNBT(nbt.getCompoundTag("dye"))); - } - - public void sync() - { - IBlockState state = this.world.getBlockState(this.pos); - - this.world.notifyBlockUpdate(this.pos, state, state, 3); - - this.markDirty(); - } - -} diff --git a/src/main/java/com/gildedgames/aether/common/entities/tiles/TileEntitySchematicBlock.java b/src/main/java/com/gildedgames/aether/common/entities/tiles/TileEntitySchematicBlock.java deleted file mode 100644 index baa642ae58..0000000000 --- a/src/main/java/com/gildedgames/aether/common/entities/tiles/TileEntitySchematicBlock.java +++ /dev/null @@ -1,315 +0,0 @@ -package com.gildedgames.aether.common.entities.tiles; - -import com.gildedgames.orbis.lib.processing.BlockAccessExtendedWrapper; -import com.gildedgames.orbis.lib.processing.IBlockAccessExtended; -import net.minecraft.block.state.IBlockState; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.inventory.Container; -import net.minecraft.inventory.ContainerChest; -import net.minecraft.inventory.IInventory; -import net.minecraft.inventory.ItemStackHelper; -import net.minecraft.item.ItemBlock; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.nbt.NBTTagList; -import net.minecraft.network.NetworkManager; -import net.minecraft.network.play.server.SPacketUpdateTileEntity; -import net.minecraft.tileentity.TileEntityLockable; -import net.minecraft.util.EnumParticleTypes; -import net.minecraft.util.ITickable; -import net.minecraft.util.NonNullList; - -import javax.annotation.Nonnull; -import java.util.Random; - -public abstract class TileEntitySchematicBlock extends TileEntityLockable implements ITickable, IInventory -{ - - protected NonNullList<ItemStack> contents = NonNullList.withSize(27, ItemStack.EMPTY); - - protected boolean isMarkedForGeneration; - - private int ticksExisted; - - @Override - public String getName() - { - return "container.schematicBlock"; - } - - @Override - public void update() - { - if (this.ticksExisted == 0 && this.isMarkedForGeneration()) - { - this.onSchematicGeneration(new BlockAccessExtendedWrapper(this.getWorld()), this.getWorld().rand); - - if (this.shouldInvalidateTEOnGen()) - { - this.invalidate(); - } - - return; - } - - if (this.isMarkedForGeneration()) - { - for (int u = 0; u < 2; ++u) - { - final double motionX = (this.world.rand.nextBoolean() ? 1.0D : -1.0D) * this.world.rand.nextFloat() * 0.01F; - final double motionY = (this.world.rand.nextBoolean() ? 1.0D : -1.0D) * this.world.rand.nextFloat() * 0.01F; - final double motionZ = (this.world.rand.nextBoolean() ? 1.0D : -1.0D) * this.world.rand.nextFloat() * 0.01F; - - this.world.spawnParticle(EnumParticleTypes.SPELL_MOB, - this.getPos().getX() + 0.5D + motionX, - this.getPos().getY() + 0.5D + motionY, this.getPos().getZ() + 0.5D + motionZ, 0.0D, 0.0D, 0.0D); - } - } - - this.ticksExisted++; - } - - public boolean isMarkedForGeneration() - { - return this.isMarkedForGeneration; - } - - public void setMarkedForGeneration(final boolean flag) - { - this.isMarkedForGeneration = flag; - - this.sync(); - } - - @Override - public NBTTagCompound writeToNBT(final NBTTagCompound compound) - { - super.writeToNBT(compound); - - final NBTTagList nbttaglist = new NBTTagList(); - - for (int i = 0; i < this.contents.size(); ++i) - { - if (!this.contents.get(i).isEmpty()) - { - final NBTTagCompound nbttagcompound = new NBTTagCompound(); - nbttagcompound.setByte("Slot", (byte) i); - - this.contents.get(i).writeToNBT(nbttagcompound); - - nbttaglist.appendTag(nbttagcompound); - } - } - - compound.setTag("Items", nbttaglist); - - compound.setBoolean("markedForGeneration", this.isMarkedForGeneration()); - - return compound; - } - - @Override - public void readFromNBT(final NBTTagCompound compound) - { - super.readFromNBT(compound); - - final NBTTagList nbttaglist = compound.getTagList("Items", 10); - this.contents = NonNullList.withSize(27, ItemStack.EMPTY); - - for (int i = 0; i < nbttaglist.tagCount(); ++i) - { - final NBTTagCompound nbttagcompound = nbttaglist.getCompoundTagAt(i); - final int j = nbttagcompound.getByte("Slot") & 255; - - if (j >= 0 && j < this.contents.size()) - { - this.contents.set(j, new ItemStack(nbttagcompound)); - } - } - - this.isMarkedForGeneration = compound.getBoolean("markedForGeneration"); - } - - /** - * Do not use this tile entity's world object for accessing blocks. Use the - * provided block access object. - * @param blockAccess - */ - public abstract void onSchematicGeneration(IBlockAccessExtended blockAccess, Random rand); - - public abstract boolean shouldInvalidateTEOnGen(); - - @Override - public void invalidate() - { - super.invalidate(); - this.updateContainingBlockInfo(); - } - - @Override - public boolean hasCustomName() - { - return false; - } - - @Override - public Container createContainer(final InventoryPlayer playerInventory, final EntityPlayer playerIn) - { - return new ContainerChest(playerInventory, this, playerIn); - } - - @Override - public String getGuiID() - { - return "minecraft:chest"; - } - - @Override - public int getSizeInventory() - { - return 27; - } - - @Override - @Nonnull - public ItemStack getStackInSlot(final int index) - { - return this.contents.get(index); - } - - @Override - public ItemStack decrStackSize(final int index, final int count) - { - final ItemStack itemstack = ItemStackHelper.getAndSplit(this.contents, index, count); - - if (!itemstack.isEmpty()) - { - this.markDirty(); - } - - return itemstack; - } - - @Override - public ItemStack removeStackFromSlot(final int index) - { - return ItemStackHelper.getAndRemove(this.contents, index); - } - - @Override - public void setInventorySlotContents(final int index, final ItemStack stack) - { - this.contents.set(index, stack); - - if (stack.getCount() > this.getInventoryStackLimit()) - { - stack.setCount(this.getInventoryStackLimit()); - } - - this.markDirty(); - } - - @Override - public int getInventoryStackLimit() - { - return 64; - } - - @Override - public boolean isUsableByPlayer(final EntityPlayer player) - { - return this.world.getTileEntity(this.pos) == this && ( - player.getDistanceSq((double) this.pos.getX() + 0.5D, (double) this.pos.getY() + 0.5D, (double) this.pos.getZ() + 0.5D) - <= 64.0D && player.capabilities.isCreativeMode); - } - - @Override - public void openInventory(final EntityPlayer player) - { - - } - - @Override - public void closeInventory(final EntityPlayer player) - { - - } - - @Override - public boolean isItemValidForSlot(final int index, final ItemStack stack) - { - return stack.getItem() instanceof ItemBlock; - } - - @Override - public int getField(final int id) - { - return 0; - } - - @Override - public void setField(final int id, final int value) - { - } - - @Override - public int getFieldCount() - { - return 0; - } - - @Override - public void clear() - { - this.contents.clear(); - } - - public void sync() - { - final IBlockState state = this.world.getBlockState(this.pos); - - this.world.notifyBlockUpdate(this.pos, state, state, 3); - - this.markDirty(); - } - - @Override - public NBTTagCompound getUpdateTag() - { - final NBTTagCompound tag = super.getUpdateTag(); - - this.writeToNBT(tag); - - return tag; - } - - @Override - public SPacketUpdateTileEntity getUpdatePacket() - { - final NBTTagCompound compound = this.getUpdateTag(); - - return new SPacketUpdateTileEntity(this.pos, 1, compound); - } - - @Override - public void onDataPacket(final NetworkManager networkManager, final SPacketUpdateTileEntity packet) - { - this.readFromNBT(packet.getNbtCompound()); - } - - @Override - public boolean isEmpty() - { - for (final ItemStack itemstack : this.contents) - { - if (!itemstack.isEmpty()) - { - return false; - } - } - - return true; - } - -} diff --git a/src/main/java/com/gildedgames/aether/common/entities/tiles/TileEntitySkyrootBed.java b/src/main/java/com/gildedgames/aether/common/entities/tiles/TileEntitySkyrootBed.java deleted file mode 100644 index de7a8a0578..0000000000 --- a/src/main/java/com/gildedgames/aether/common/entities/tiles/TileEntitySkyrootBed.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.gildedgames.aether.common.entities.tiles; - -import com.gildedgames.aether.api.registrar.ItemsAether; -import net.minecraft.item.ItemStack; -import net.minecraft.tileentity.TileEntityBed; - -public class TileEntitySkyrootBed extends TileEntityBed -{ - - @Override - public ItemStack getItemStack() - { - return new ItemStack(ItemsAether.skyroot_bed_item, 1, 0); - } - -} diff --git a/src/main/java/com/gildedgames/aether/common/entities/tiles/TileEntitySkyrootChest.java b/src/main/java/com/gildedgames/aether/common/entities/tiles/TileEntitySkyrootChest.java deleted file mode 100644 index 175a617786..0000000000 --- a/src/main/java/com/gildedgames/aether/common/entities/tiles/TileEntitySkyrootChest.java +++ /dev/null @@ -1,22 +0,0 @@ -package com.gildedgames.aether.common.entities.tiles; - -import net.minecraft.tileentity.TileEntityChest; -import net.minecraft.util.math.AxisAlignedBB; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; - -public class TileEntitySkyrootChest extends TileEntityChest -{ - @Override - public String getName() - { - return this.hasCustomName() ? super.getName() : "container.skyroot_chest"; - } - - @Override - @SideOnly(Side.CLIENT) - public AxisAlignedBB getRenderBoundingBox() - { - return new AxisAlignedBB(this.getPos().add(-1, 0, -1), this.getPos().add(2, 2, 2)); - } -} diff --git a/src/main/java/com/gildedgames/aether/common/entities/tiles/TileEntitySkyrootSign.java b/src/main/java/com/gildedgames/aether/common/entities/tiles/TileEntitySkyrootSign.java deleted file mode 100644 index fd72b14178..0000000000 --- a/src/main/java/com/gildedgames/aether/common/entities/tiles/TileEntitySkyrootSign.java +++ /dev/null @@ -1,8 +0,0 @@ -package com.gildedgames.aether.common.entities.tiles; - -import net.minecraft.tileentity.TileEntitySign; - -public class TileEntitySkyrootSign extends TileEntitySign -{ - -} diff --git a/src/main/java/com/gildedgames/aether/common/entities/tiles/TileEntitySynced.java b/src/main/java/com/gildedgames/aether/common/entities/tiles/TileEntitySynced.java deleted file mode 100644 index 14fd175f8d..0000000000 --- a/src/main/java/com/gildedgames/aether/common/entities/tiles/TileEntitySynced.java +++ /dev/null @@ -1,45 +0,0 @@ -package com.gildedgames.aether.common.entities.tiles; - -import net.minecraft.block.state.IBlockState; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.network.NetworkManager; -import net.minecraft.network.play.server.SPacketUpdateTileEntity; -import net.minecraft.tileentity.TileEntity; - -public abstract class TileEntitySynced extends TileEntity -{ - - public void sendUpdatesToClients() - { - IBlockState state = this.world.getBlockState(this.pos); - - this.world.notifyBlockUpdate(this.pos, state, state, 3); - - this.markDirty(); - } - - @Override - public NBTTagCompound getUpdateTag() - { - NBTTagCompound tag = super.getUpdateTag(); - - this.writeToNBT(tag); - - return tag; - } - - @Override - public SPacketUpdateTileEntity getUpdatePacket() - { - NBTTagCompound compound = this.getUpdateTag(); - - return new SPacketUpdateTileEntity(this.pos, 1, compound); - } - - @Override - public void onDataPacket(NetworkManager networkManager, SPacketUpdateTileEntity packet) - { - this.readFromNBT(packet.getNbtCompound()); - } - -} diff --git a/src/main/java/com/gildedgames/aether/common/entities/tiles/TileEntityTeleporter.java b/src/main/java/com/gildedgames/aether/common/entities/tiles/TileEntityTeleporter.java deleted file mode 100644 index 334567ed2a..0000000000 --- a/src/main/java/com/gildedgames/aether/common/entities/tiles/TileEntityTeleporter.java +++ /dev/null @@ -1,237 +0,0 @@ -package com.gildedgames.aether.common.entities.tiles; - -import com.gildedgames.aether.api.registrar.BlocksAether; -import com.gildedgames.aether.api.world.IWorldObjectHoverable; -import com.gildedgames.aether.client.events.listeners.gui.GuiLoadingListener; -import com.gildedgames.aether.common.AetherCore; -import com.gildedgames.aether.common.blocks.containers.BlockAltar; -import com.gildedgames.aether.common.blocks.multiblock.BlockMultiController; -import com.gildedgames.aether.common.capabilities.entity.player.PlayerAether; -import com.gildedgames.aether.common.capabilities.entity.player.modules.PlayerConfigModule; -import com.gildedgames.aether.common.capabilities.entity.player.modules.PlayerTeleportingModule; -import com.gildedgames.aether.common.entities.tiles.multiblock.TileEntityMultiblockController; -import com.gildedgames.aether.common.events.PostAetherTravelEvent; -import com.gildedgames.aether.common.init.DimensionsAether; -import com.gildedgames.aether.common.init.InstancesAether; -import com.gildedgames.aether.common.network.NetworkingAether; -import com.gildedgames.aether.common.network.packets.PacketSetPlayedIntro; -import com.gildedgames.aether.common.util.helpers.AetherHelper; -import com.gildedgames.aether.common.world.instances.necromancer_tower.NecromancerTowerInstanceHelper; -import com.gildedgames.orbis.lib.OrbisLib; -import com.gildedgames.orbis.lib.util.TeleporterGeneric; -import com.gildedgames.orbis.lib.util.mc.BlockPosDimension; -import com.gildedgames.orbis.lib.world.instances.IInstance; -import com.gildedgames.orbis.lib.world.instances.IPlayerInstances; -import net.minecraft.block.state.IBlockState; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.EntityPlayerMP; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.server.MinecraftServer; -import net.minecraft.server.management.PlayerList; -import net.minecraft.util.EnumFacing; -import net.minecraft.util.ITickable; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.RayTraceResult; -import net.minecraft.util.text.ITextComponent; -import net.minecraft.util.text.TextComponentTranslation; -import net.minecraft.world.Teleporter; -import net.minecraft.world.World; -import net.minecraftforge.common.MinecraftForge; -import net.minecraftforge.fml.common.FMLCommonHandler; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; - -public class TileEntityTeleporter extends TileEntityMultiblockController implements ITickable, IWorldObjectHoverable -{ - @SideOnly(Side.CLIENT) - public int animationTicks, prevAnimationTicks; - - private int buildTime; - - public TileEntityTeleporter() - { - super((BlockMultiController) BlocksAether.aether_teleporter, BlocksAether.multiblock_dummy); - } - - public EnumFacing getFacing() - { - IBlockState state = this.world.getBlockState(this.pos); - - if (state.getBlock() == BlocksAether.aether_teleporter) - { - return state.getValue(BlockAltar.PROPERTY_FACING); - } - - return EnumFacing.NORTH; - } - - @Override - public void update() - { - if (this.world.isRemote) - { - this.prevAnimationTicks = this.animationTicks; - - this.animationTicks++; - } - - if (this.buildTime < 200) - { - this.buildTime++; - } - else - { - this.buildTime = 0; - } - } - - @Override - public void readFromNBT(NBTTagCompound compound) - { - super.readFromNBT(compound); - - this.buildTime = compound.getInteger("BuildTime"); - } - - @Override - public NBTTagCompound writeToNBT(NBTTagCompound compound) - { - super.writeToNBT(compound); - - compound.setInteger("BuildTime", (short) this.buildTime); - - return compound; - } - - public int getBuildTime() - { - return this.buildTime; - } - - @Override - public boolean onInteract(EntityPlayer player) - { - if (player.world.provider.getDimensionType() == DimensionsAether.AETHER) - { - if (player instanceof EntityPlayerMP) - { - final EntityPlayerMP playerMP = (EntityPlayerMP) player; - - final PlayerAether playerAether = PlayerAether.getPlayer(player); - final PlayerTeleportingModule teleportingModule = playerAether.getModule(PlayerTeleportingModule.class); - - teleportingModule - .setAetherPos(new BlockPosDimension((int) player.posX, (int) player.posY, (int) player.posZ, player.dimension)); - - final BlockPosDimension nonAetherPos = teleportingModule.getNonAetherPos(); - - final MinecraftServer server = FMLCommonHandler.instance().getMinecraftServerInstance(); - - final Teleporter teleporter = new TeleporterGeneric(server.getWorld(player.dimension)); - final PlayerList playerList = server.getPlayerList(); - playerList.transferPlayerToDimension(playerMP, nonAetherPos.getDim(), teleporter); - player.timeUntilPortal = player.getPortalCooldown(); - - playerMP.connection.setPlayerLocation(nonAetherPos.getX(), nonAetherPos.getY(), nonAetherPos.getZ(), 0, 0); - } - - return false; - } - - if (this.world.isRemote) - { - final PlayerAether playerAether = PlayerAether.getPlayer(player); - final PlayerTeleportingModule teleportingModule = playerAether.getModule(PlayerTeleportingModule.class); - - if (AetherCore.CONFIG.skipIntro) - { - teleportingModule.setPlayedIntro(true); - NetworkingAether.sendPacketToServer(new PacketSetPlayedIntro(true)); - } - - if (!teleportingModule.hasPlayedIntro()) - { - GuiLoadingListener.setDrawBlackScreen(true); - } - else - { - GuiLoadingListener.setDrawLoading(true); - } - - return true; - } - else - { - final NecromancerTowerInstanceHelper handler = InstancesAether.NECROMANCER_TOWER_HANDLER; - - final PlayerAether playerAether = PlayerAether.getPlayer(player); - final PlayerTeleportingModule teleportingModule = playerAether.getModule(PlayerTeleportingModule.class); - - final IPlayerInstances hook = OrbisLib.instances().getPlayer(player); - - if (teleportingModule.getAetherPos() != null) - { - final EntityPlayerMP playerMP = (EntityPlayerMP) player; - final BlockPosDimension p = teleportingModule.getAetherPos(); - - final MinecraftServer server = FMLCommonHandler.instance().getMinecraftServerInstance(); - - if (!net.minecraftforge.common.ForgeHooks.onTravelToDimension(playerMP, p.getDim())) - { - return false; - } - - final Teleporter teleporter = new TeleporterGeneric(server.getWorld(player.dimension)); - final PlayerList playerList = server.getPlayerList(); - playerList.transferPlayerToDimension(playerMP, p.getDim(), teleporter); - player.timeUntilPortal = player.getPortalCooldown(); - - playerMP.connection.setPlayerLocation(p.getX(), p.getY(), p.getZ(), 225, 0); - - PostAetherTravelEvent event = new PostAetherTravelEvent(playerMP); - MinecraftForge.EVENT_BUS.post(event); - } - else if (hook.getInstance() != null) - { - final IInstance instance = hook.getInstance(); - - if (player.dimension == instance.getDimensionId()) - { - handler.teleportBack((EntityPlayerMP) player); - } - else - { - hook.setInstance(null); - - handler.teleportToInst((EntityPlayerMP) player); - } - } - else - { - if (playerAether.getModule(PlayerConfigModule.class).skipIntro()) - { - teleportingModule.teleportToAether(); - } - else - { - handler.teleportToInst((EntityPlayerMP) player); - } - } - - return true; - } - } - - @Override - public ItemStack getPickedStack(World world, BlockPos pos, IBlockState state) - { - return new ItemStack(BlocksAether.aether_teleporter); - } - - @Override - public ITextComponent getHoverText(World world, RayTraceResult result) - { - return new TextComponentTranslation(AetherHelper.isAether(world) ? "gui.aether.hover.campfire" : "gui.aether.hover.teleporter"); - } -} diff --git a/src/main/java/com/gildedgames/aether/common/entities/tiles/TileEntityWildcard.java b/src/main/java/com/gildedgames/aether/common/entities/tiles/TileEntityWildcard.java deleted file mode 100644 index 4baf1aebb2..0000000000 --- a/src/main/java/com/gildedgames/aether/common/entities/tiles/TileEntityWildcard.java +++ /dev/null @@ -1,100 +0,0 @@ -package com.gildedgames.aether.common.entities.tiles; - -import com.gildedgames.aether.api.registrar.BlocksAether; -import com.gildedgames.orbis.lib.processing.IBlockAccessExtended; -import com.gildedgames.orbis.lib.util.mc.BlockUtil; -import net.minecraft.block.Block; -import net.minecraft.init.Blocks; -import net.minecraft.init.Items; -import net.minecraft.item.ItemBlock; -import net.minecraft.item.ItemStack; - -import java.util.Random; - -public class TileEntityWildcard extends TileEntitySchematicBlock -{ - - @Override - public void onSchematicGeneration(final IBlockAccessExtended blockAccess, final Random rand) - { - int contentSize = 0; - - for (final ItemStack stack : this.contents) - { - if (stack != null && (stack.getItem() instanceof ItemBlock || stack.getItem() == Items.STRING)) - { - contentSize += stack.getCount(); - } - } - - if (contentSize == 0) - { - blockAccess.setBlockToAir(this.getPos()); - - if (blockAccess.getWorld() != null) - { - blockAccess.getWorld().scheduleUpdate(this.getPos(), BlocksAether.wildcard, 0); - } - - return; - } - - int currentIndex = rand.nextInt(contentSize); - ItemStack chosenStack = ItemStack.EMPTY; - - for (final ItemStack stack : this.contents) - { - if (!stack.isEmpty()) - { - if (stack.getItem() instanceof ItemBlock || stack.getItem() == Items.STRING) - { - if (stack.getCount() > currentIndex) - { - chosenStack = stack; - - break; - } - else - { - currentIndex -= stack.getCount(); - } - } - } - } - - final Block block; - int damage = 0; - - if (chosenStack.getItem() == Items.STRING) - { - block = Blocks.AIR; - } - else - { - final ItemBlock itemBlock = (ItemBlock) chosenStack.getItem(); - - block = itemBlock.getBlock(); - damage = chosenStack.getItemDamage(); - } - - if (block == Blocks.AIR) - { - return; - } - - blockAccess.setBlockState(this.getPos(), block.getStateFromMeta(damage)); - BlockUtil.setTileEntityNBT(blockAccess, this.getPos(), chosenStack); - - if (blockAccess.getWorld() != null) - { - blockAccess.getWorld().scheduleUpdate(this.getPos(), block, 0); - } - } - - @Override - public boolean shouldInvalidateTEOnGen() - { - return true; - } - -} diff --git a/src/main/java/com/gildedgames/aether/common/entities/tiles/multiblock/ITileEntityMultiblock.java b/src/main/java/com/gildedgames/aether/common/entities/tiles/multiblock/ITileEntityMultiblock.java deleted file mode 100644 index 3ece58e91a..0000000000 --- a/src/main/java/com/gildedgames/aether/common/entities/tiles/multiblock/ITileEntityMultiblock.java +++ /dev/null @@ -1,25 +0,0 @@ -package com.gildedgames.aether.common.entities.tiles.multiblock; - -import net.minecraft.block.state.IBlockState; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.World; - -public interface ITileEntityMultiblock -{ - /** - * Called when the corresponding {@link ITileEntityMultiblock} is interacted with. - * - * @param player The player interacting with the {@link ITileEntityMultiblock} - */ - boolean onInteract(EntityPlayer player); - - /** - * Called when the corresponding {@link ITileEntityMultiblock} is destroyed. - */ - void onDestroyed(); - - ItemStack getPickedStack(World world, BlockPos pos, IBlockState state); - -} diff --git a/src/main/java/com/gildedgames/aether/common/entities/tiles/multiblock/TileEntityMultiblockController.java b/src/main/java/com/gildedgames/aether/common/entities/tiles/multiblock/TileEntityMultiblockController.java deleted file mode 100644 index d8bb139d04..0000000000 --- a/src/main/java/com/gildedgames/aether/common/entities/tiles/multiblock/TileEntityMultiblockController.java +++ /dev/null @@ -1,93 +0,0 @@ -package com.gildedgames.aether.common.entities.tiles.multiblock; - -import com.gildedgames.aether.common.blocks.multiblock.BlockMultiController; -import com.gildedgames.aether.common.entities.tiles.TileEntitySynced; -import net.minecraft.block.Block; -import net.minecraft.init.Blocks; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.math.AxisAlignedBB; -import net.minecraft.util.math.BlockPos; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; - -import java.util.Objects; - -public abstract class TileEntityMultiblockController extends TileEntitySynced implements ITileEntityMultiblock -{ - - private final BlockMultiController block; - - private final Block dummy; - - public TileEntityMultiblockController(BlockMultiController block, Block dummy) - { - this.block = block; - this.dummy = dummy; - } - - public void rebuild() - { - for (BlockPos.MutableBlockPos pos : this.block.getMultiblockVolumeIterator(this.pos, this.getWorld())) - { - if (this.pos.equals(pos)) - { - continue; - } - - this.world.setBlockState(pos, this.dummy.getDefaultState(), 3); - this.world.notifyBlockUpdate(pos, Blocks.AIR.getDefaultState(), this.dummy.getDefaultState(), 2); - - TileEntityMultiblockDummy te = (TileEntityMultiblockDummy) this.world.getTileEntity(pos); - te.linkController(new BlockPos(this.pos)); - } - } - - @Override - public void onDestroyed() - { - for (BlockPos.MutableBlockPos pos : this.block.getMultiblockVolumeIterator(this.pos, this.getWorld())) - { - if (this.doesControllerOwn(pos)) - { - this.world.removeTileEntity(pos); - this.world.setBlockToAir(pos); - } - } - } - - private boolean doesControllerOwn(BlockPos pos) - { - TileEntity entity = this.world.getTileEntity(pos); - - if (entity instanceof TileEntityMultiblockController) - { - return true; - } - else if (entity instanceof TileEntityMultiblockDummy) - { - TileEntityMultiblockDummy dummy = (TileEntityMultiblockDummy) entity; - - return Objects.equals(dummy.getLinkedController(), this.pos); - } - - return false; - } - - @Override - @SideOnly(Side.CLIENT) - public AxisAlignedBB getRenderBoundingBox() - { - Iterable<BlockPos.MutableBlockPos> itPos = this.block.getMultiblockVolumeIterator(this.pos, this.world); - - BlockPos min = this.pos; - BlockPos max = this.pos; - - for (BlockPos.MutableBlockPos pos : itPos) - { - max = pos; - } - - return new AxisAlignedBB(min, max.add(1, 1, 1)); - } - -} diff --git a/src/main/java/com/gildedgames/aether/common/entities/tiles/multiblock/TileEntityMultiblockDummy.java b/src/main/java/com/gildedgames/aether/common/entities/tiles/multiblock/TileEntityMultiblockDummy.java deleted file mode 100644 index 3abdca4f35..0000000000 --- a/src/main/java/com/gildedgames/aether/common/entities/tiles/multiblock/TileEntityMultiblockDummy.java +++ /dev/null @@ -1,159 +0,0 @@ -package com.gildedgames.aether.common.entities.tiles.multiblock; - -import com.gildedgames.aether.api.world.IWorldObjectHoverable; -import com.gildedgames.aether.common.AetherCore; -import com.gildedgames.aether.common.entities.tiles.TileEntitySynced; -import com.gildedgames.orbis.lib.util.mc.NBTHelper; -import net.minecraft.block.state.IBlockState; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.RayTraceResult; -import net.minecraft.util.text.ITextComponent; -import net.minecraft.world.World; - -import javax.annotation.Nullable; - -public class TileEntityMultiblockDummy extends TileEntitySynced implements ITileEntityMultiblock, IWorldObjectHoverable -{ - private BlockPos controllerPosOffset; - - @Override - public boolean onInteract(final EntityPlayer player) - { - BlockPos linked = this.getLinkedController(); - - if (linked != null) - { - final TileEntity entity = this.world.getTileEntity(linked); - - if (entity instanceof TileEntityMultiblockController) - { - ((ITileEntityMultiblock) entity).onInteract(player); - - return true; - } - else - { - AetherCore.LOGGER.warn("TileEntityMultiblockDummy at " + this.pos.toString() + ", is missing it's linked controller at " - + linked.toString()); - } - } - - return false; - } - - @Override - public void onDestroyed() - { - BlockPos linked = this.getLinkedController(); - - if (linked == null) - { - return; - } - - final TileEntity entity = this.world.getTileEntity(linked); - - if (entity instanceof ITileEntityMultiblock) - { - ((ITileEntityMultiblock) entity).onDestroyed(); - } - else - { - AetherCore.LOGGER.warn("TileEntityMultiblockDummy at " + this.pos.toString() + ", is missing it's linked controller at " - + this.getLinkedController().toString()); - } - } - - @Override - public ItemStack getPickedStack(final World world, final BlockPos pos, final IBlockState state) - { - BlockPos linked = this.getLinkedController(); - - if (linked == null) - { - return ItemStack.EMPTY; - } - - final TileEntity entity = this.world.getTileEntity(linked); - - if (entity instanceof ITileEntityMultiblock) - { - return ((ITileEntityMultiblock) entity).getPickedStack(world, pos, state); - } - else - { - AetherCore.LOGGER.warn("TileEntityMultiblockDummy at " + this.pos.toString() + ", is missing it's linked controller at " - + this.getLinkedController().toString()); - } - - return ItemStack.EMPTY; - } - - protected void linkController(final BlockPos controllerPos) - { - this.controllerPosOffset = controllerPos.add(-this.pos.getX(), -this.pos.getY(), -this.pos.getZ()); - } - - @Nullable - protected BlockPos getLinkedController() - { - if (this.controllerPosOffset == null) - { - return null; - } - - return this.pos.add(this.controllerPosOffset); - } - - @Override - public void readFromNBT(final NBTTagCompound compound) - { - super.readFromNBT(compound); - - if (compound.hasKey("controller")) - { - this.controllerPosOffset = NBTHelper.readBlockPos(compound.getCompoundTag("controller")); - } - else - { - this.invalidate(); - } - } - - @Override - public NBTTagCompound writeToNBT(final NBTTagCompound compound) - { - super.writeToNBT(compound); - - if (this.controllerPosOffset != null) - { - compound.setTag("controller", NBTHelper.writeBlockPos(this.controllerPosOffset)); - } - - return compound; - } - - @Override - public ITextComponent getHoverText(World world, RayTraceResult result) - { - BlockPos linked = this.getLinkedController(); - - if (linked == null) - { - return null; - } - - TileEntity entity = this.world.getTileEntity(linked); - - if (entity instanceof IWorldObjectHoverable) - { - return ((IWorldObjectHoverable) entity).getHoverText(world, result); - } - - return null; - } -} diff --git a/src/main/java/com/gildedgames/aether/common/entities/util/AetherSpawnEggInfo.java b/src/main/java/com/gildedgames/aether/common/entities/util/AetherSpawnEggInfo.java deleted file mode 100644 index bb081357a1..0000000000 --- a/src/main/java/com/gildedgames/aether/common/entities/util/AetherSpawnEggInfo.java +++ /dev/null @@ -1,32 +0,0 @@ -package com.gildedgames.aether.common.entities.util; - -public class AetherSpawnEggInfo -{ - - private final String spawnedID; - - private final int primaryColor, secondaryColor; - - public AetherSpawnEggInfo(String id, int primaryColor, int secondaryColor) - { - this.spawnedID = id; - this.primaryColor = primaryColor; - this.secondaryColor = secondaryColor; - } - - public String getSpawnedID() - { - return this.spawnedID; - } - - public int getPrimaryColor() - { - return this.primaryColor; - } - - public int getSecondaryColor() - { - return this.secondaryColor; - } - -} diff --git a/src/main/java/com/gildedgames/aether/common/entities/util/EntityBodyHelperNoRotation.java b/src/main/java/com/gildedgames/aether/common/entities/util/EntityBodyHelperNoRotation.java deleted file mode 100644 index 37134f1d81..0000000000 --- a/src/main/java/com/gildedgames/aether/common/entities/util/EntityBodyHelperNoRotation.java +++ /dev/null @@ -1,22 +0,0 @@ -package com.gildedgames.aether.common.entities.util; - -import net.minecraft.entity.EntityBodyHelper; -import net.minecraft.entity.EntityLivingBase; - -public class EntityBodyHelperNoRotation extends EntityBodyHelper -{ - private final EntityLivingBase living; - - public EntityBodyHelperNoRotation(EntityLivingBase livingIn) - { - super(livingIn); - - this.living = livingIn; - } - - @Override - public void updateRenderAngles() - { - this.living.renderYawOffset = this.living.rotationYaw; - } -} diff --git a/src/main/java/com/gildedgames/aether/common/entities/util/EntityExtendedMob.java b/src/main/java/com/gildedgames/aether/common/entities/util/EntityExtendedMob.java deleted file mode 100644 index b57bb735f3..0000000000 --- a/src/main/java/com/gildedgames/aether/common/entities/util/EntityExtendedMob.java +++ /dev/null @@ -1,84 +0,0 @@ -package com.gildedgames.aether.common.entities.util; - -import net.minecraft.entity.Entity; -import net.minecraft.entity.monster.EntityMob; -import net.minecraft.network.datasync.DataParameter; -import net.minecraft.network.datasync.DataSerializers; -import net.minecraft.network.datasync.EntityDataManager; -import net.minecraft.world.World; - -public class EntityExtendedMob extends EntityMob -{ - - private static final DataParameter<Boolean> ATTACKED = EntityDataManager.createKey(EntityExtendedMob.class, DataSerializers.BOOLEAN); - - private boolean isDayMob; - - public EntityExtendedMob(World worldIn) - { - super(worldIn); - } - - protected void handleClientAttack() - { - - } - - @Override - public void onLivingUpdate() - { - int idleTime = this.idleTime; - - super.onLivingUpdate(); - - if (this.isDayMob) - { - this.idleTime = idleTime; - } - } - - public void setDayMob(boolean flag) - { - this.isDayMob = flag; - } - - @Override - public void onUpdate() - { - super.onUpdate(); - - if (this.hasAttacked() && this.world.isRemote) - { - this.handleClientAttack(); - - this.setAttacked(false); - } - } - - @Override - protected void entityInit() - { - super.entityInit(); - - this.dataManager.register(EntityExtendedMob.ATTACKED, Boolean.FALSE); - } - - @Override - public boolean attackEntityAsMob(Entity entity) - { - this.setAttacked(true); - - return super.attackEntityAsMob(entity); - } - - public void setAttacked(boolean flag) - { - this.dataManager.set(EntityExtendedMob.ATTACKED, flag); - } - - public boolean hasAttacked() - { - return this.dataManager.get(EntityExtendedMob.ATTACKED); - } - -} diff --git a/src/main/java/com/gildedgames/aether/common/entities/util/eyes/EntityEyesComponent.java b/src/main/java/com/gildedgames/aether/common/entities/util/eyes/EntityEyesComponent.java deleted file mode 100644 index 08bb017fb1..0000000000 --- a/src/main/java/com/gildedgames/aether/common/entities/util/eyes/EntityEyesComponent.java +++ /dev/null @@ -1,90 +0,0 @@ -package com.gildedgames.aether.common.entities.util.eyes; - -import com.gildedgames.aether.api.entity.IEntityEyesComponent; -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLivingBase; - -public class EntityEyesComponent implements IEntityEyesComponent -{ - - private Entity lookingAtEntity; - - private int ticksClosed, ticksUntilClose; - - private EntityLivingBase entity; - - private int ticksLooking, ticksUntilLook; - - public EntityEyesComponent(EntityLivingBase entity) - { - this.entity = entity; - } - - private void closeEyes() - { - this.ticksUntilClose = 20 + this.entity.getRNG().nextInt(80); - this.ticksClosed = 3 + this.entity.getRNG().nextInt(4); - } - - private void lookAtNearbyEntity() - { - this.ticksUntilLook = 40 + this.entity.getRNG().nextInt(160); - this.ticksLooking = 10 + this.entity.getRNG().nextInt(70); - } - - @Override - public Entity lookingAtEntity() - { - return this.lookingAtEntity; - } - - @Override - public int getTicksEyesClosed() - { - return this.ticksClosed; - } - - @Override - public void update() - { - if (this.ticksUntilClose <= 0) - { - this.closeEyes(); - } - else - { - this.ticksUntilClose--; - } - - if (this.ticksClosed > 0) - { - this.ticksClosed--; - } - - if (this.ticksUntilLook <= 0) - { - this.lookAtNearbyEntity(); - } - else - { - this.ticksUntilLook--; - } - - if (this.ticksLooking > 0) - { - this.ticksLooking--; - } - - if (this.ticksLooking > 0) - { - if (this.lookingAtEntity == null) - { - this.lookingAtEntity = this.entity.getEntityWorld().getClosestPlayerToEntity(this.entity, 20D); - } - } - else - { - this.lookingAtEntity = null; - } - } -} diff --git a/src/main/java/com/gildedgames/aether/common/entities/util/eyes/IEntityEyesComponentProvider.java b/src/main/java/com/gildedgames/aether/common/entities/util/eyes/IEntityEyesComponentProvider.java deleted file mode 100644 index c9cb02198a..0000000000 --- a/src/main/java/com/gildedgames/aether/common/entities/util/eyes/IEntityEyesComponentProvider.java +++ /dev/null @@ -1,8 +0,0 @@ -package com.gildedgames.aether.common.entities.util.eyes; - -import com.gildedgames.aether.api.entity.IEntityEyesComponent; - -public interface IEntityEyesComponentProvider -{ - IEntityEyesComponent getEyes(); -} diff --git a/src/main/java/com/gildedgames/aether/common/entities/util/groups/EntityGroup.java b/src/main/java/com/gildedgames/aether/common/entities/util/groups/EntityGroup.java deleted file mode 100644 index f9ddd8de2f..0000000000 --- a/src/main/java/com/gildedgames/aether/common/entities/util/groups/EntityGroup.java +++ /dev/null @@ -1,199 +0,0 @@ -package com.gildedgames.aether.common.entities.util.groups; - -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.nbt.NBTTagCompound; - -import java.util.*; - -public class EntityGroup -{ - - private static final Map<Integer, EntityGroup> packs = new HashMap<>(); - - private static int nextPackID = Integer.MIN_VALUE; - - final List<EntityGroupAggressor> agressors = new ArrayList<>(); - - int tickCounter = 0; - - private int size; - - private int id, optimalSize; - - private boolean hasLeader; - - public EntityGroup() - { - } - - public EntityGroup(final int id) - { - this.id = id; - } - - public static int getNextID() - { - return EntityGroup.nextPackID++; - } - - public static void onUpdate() - { - for (final EntityGroup pack : packs.values()) - { - ++pack.tickCounter; - pack.removeDeadAndOldAgressors(); - } - } - - public int getID() - { - return this.id; - } - - public int getSize() - { - return this.size; - } - - public void setSize(final int size) - { - this.size = size; - - this.refresh(); - } - - public int getOptimalSize() - { - return this.optimalSize; - } - - public void setOptimalSize(final int size) - { - this.optimalSize = size; - this.refresh(); - } - - public boolean hasLeader() - { - return this.hasLeader; - } - - public void onAnimalDeath(final EntityGroupMember groupEntity) - { - if (groupEntity.isGroupLeader()) - { - this.hasLeader = false; - } - - this.size--; - - this.refresh(); - } - - public void onAnimalJoin(final EntityGroupMember groupEntity) - { - if (groupEntity.isGroupLeader()) - { - this.hasLeader = true; - } - - this.size++; - - this.refresh(); - } - - public void addOrRenewAggressor(final EntityLivingBase entity) - { - final Iterator iterator = this.agressors.iterator(); - EntityGroupAggressor agressor; - - do - { - if (!iterator.hasNext()) - { - this.agressors.add(new EntityGroupAggressor(this, entity, this.tickCounter)); - return; - } - - agressor = (EntityGroupAggressor) iterator.next(); - } - while (agressor.agressor != entity); - - agressor.time = this.tickCounter; - } - - public EntityLivingBase findNearestAggressor(final EntityLivingBase entity) - { - double d0 = Double.MAX_VALUE; - EntityGroupAggressor agressor = null; - - for (final EntityGroupAggressor agressor1 : this.agressors) - { - final double d1 = agressor1.agressor.getDistanceSq(entity); - - if (d1 <= d0) - { - agressor = agressor1; - d0 = d1; - } - } - - return agressor != null ? agressor.agressor : null; - } - - private void removeDeadAndOldAgressors() - { - final Iterator iterator = this.agressors.iterator(); - - while (iterator.hasNext()) - { - final EntityGroupAggressor agressor = (EntityGroupAggressor) iterator.next(); - - if (!agressor.agressor.isEntityAlive() || (this.tickCounter - agressor.time) > 2200) - { - iterator.remove(); - } - } - } - - private void refresh() - { - EntityGroup.packs.put(this.id, this); - } - - @Override - public boolean equals(final Object object) - { - if (!(object instanceof EntityGroup)) - { - return false; - } - - final EntityGroup pack = (EntityGroup) object; - - return pack.getID() == this.getID(); - } - - public void writeToNBT(final NBTTagCompound nbt) - { - nbt.setInteger("packID", this.id); - nbt.setInteger("optimalPackSize", this.optimalSize); - nbt.setInteger("size", this.size); - nbt.setInteger("nextPackID", EntityGroup.nextPackID); - nbt.setInteger("tickCounter", this.tickCounter); - nbt.setBoolean("hasLeader", this.hasLeader); - } - - public void readFromNBT(final NBTTagCompound nbt) - { - this.id = nbt.getInteger("packID"); - this.optimalSize = nbt.getInteger("optimalPackSize"); - this.size = nbt.getInteger("size"); - EntityGroup.nextPackID = nbt.getInteger("nextPackID"); - this.hasLeader = nbt.getBoolean("hasLeader"); - this.tickCounter = nbt.getInteger("tickCounter"); - - this.refresh(); - } - -} diff --git a/src/main/java/com/gildedgames/aether/common/entities/util/groups/EntityGroupAggressor.java b/src/main/java/com/gildedgames/aether/common/entities/util/groups/EntityGroupAggressor.java deleted file mode 100644 index eae08af119..0000000000 --- a/src/main/java/com/gildedgames/aether/common/entities/util/groups/EntityGroupAggressor.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.gildedgames.aether.common.entities.util.groups; - -import net.minecraft.entity.EntityLivingBase; - -public class EntityGroupAggressor -{ - - final EntityGroup pack; - - public final EntityLivingBase agressor; - - public int time; - - public EntityGroupAggressor(EntityGroup pack, EntityLivingBase agressor, int time) - { - this.agressor = agressor; - this.time = time; - this.pack = pack; - } - -} diff --git a/src/main/java/com/gildedgames/aether/common/entities/util/groups/EntityGroupMember.java b/src/main/java/com/gildedgames/aether/common/entities/util/groups/EntityGroupMember.java deleted file mode 100644 index 41a81aabd9..0000000000 --- a/src/main/java/com/gildedgames/aether/common/entities/util/groups/EntityGroupMember.java +++ /dev/null @@ -1,12 +0,0 @@ -package com.gildedgames.aether.common.entities.util.groups; - -public interface EntityGroupMember -{ - - boolean isGroupLeader(); - - EntityGroup getGroup(); - - boolean isProtective(); - -} diff --git a/src/main/java/com/gildedgames/aether/common/events/PostAetherTravelEvent.java b/src/main/java/com/gildedgames/aether/common/events/PostAetherTravelEvent.java deleted file mode 100644 index f9a0b27785..0000000000 --- a/src/main/java/com/gildedgames/aether/common/events/PostAetherTravelEvent.java +++ /dev/null @@ -1,12 +0,0 @@ -package com.gildedgames.aether.common.events; - -import net.minecraft.entity.Entity; -import net.minecraftforge.event.entity.EntityEvent; - -public class PostAetherTravelEvent extends EntityEvent -{ - public PostAetherTravelEvent(Entity entity) - { - super(entity); - } -} diff --git a/src/main/java/com/gildedgames/aether/common/events/listeners/CapabilityAttachListener.java b/src/main/java/com/gildedgames/aether/common/events/listeners/CapabilityAttachListener.java deleted file mode 100644 index e04e9e77ac..0000000000 --- a/src/main/java/com/gildedgames/aether/common/events/listeners/CapabilityAttachListener.java +++ /dev/null @@ -1,97 +0,0 @@ -package com.gildedgames.aether.common.events.listeners; - -import com.gildedgames.aether.api.entity.effects.IAetherStatusEffectPool; -import com.gildedgames.aether.api.world.preparation.IPrepRegistryEntry; -import com.gildedgames.aether.api.world.spawn.ISpawnSystem; -import com.gildedgames.aether.common.AetherCore; -import com.gildedgames.aether.common.capabilities.entity.effects.StatusEffectPool; -import com.gildedgames.aether.common.capabilities.entity.effects.StatusEffectPoolProvider; -import com.gildedgames.aether.common.capabilities.entity.player.PlayerAether; -import com.gildedgames.aether.common.capabilities.entity.player.PlayerAetherProvider; -import com.gildedgames.aether.common.capabilities.entity.spawning.EntitySpawningInfoProvider; -import com.gildedgames.aether.common.capabilities.world.chunk.PlacementFlagCapability; -import com.gildedgames.aether.common.capabilities.world.chunk.PlacementFlagProvider; -import com.gildedgames.aether.common.capabilities.world.precipitation.PrecipitationCapabilityProvider; -import com.gildedgames.aether.common.capabilities.world.precipitation.PrecipitationManagerImpl; -import com.gildedgames.aether.common.events.listeners.world.WorldTickListener; -import com.gildedgames.aether.common.world.preparation.capability.PrepManagerStorageProvider; -import com.gildedgames.aether.common.world.spawning.SpawnSystem; -import com.gildedgames.aether.common.world.spawning.SpawnSystemProvider; -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.world.World; -import net.minecraft.world.chunk.Chunk; -import net.minecraftforge.event.AttachCapabilitiesEvent; -import net.minecraftforge.event.entity.living.LivingEvent; -import net.minecraftforge.fml.common.Mod; -import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; - -@Mod.EventBusSubscriber -public class CapabilityAttachListener -{ - - @SubscribeEvent - public static void onUpdate(LivingEvent.LivingUpdateEvent event) - { - IAetherStatusEffectPool statusEffectPool = StatusEffectPool.get(event.getEntityLiving()); - - if (statusEffectPool != null) - { - statusEffectPool.tick(); - } - } - - @SubscribeEvent - public static void onEntityLoad(final AttachCapabilitiesEvent<Entity> event) - { - if (event.getObject() instanceof EntityLivingBase) - { - event.addCapability(AetherCore.getResource("StatusEffects"), new StatusEffectPoolProvider((EntityLivingBase) event.getObject())); - } - - if (event.getObject() instanceof EntityPlayer) - { - event.addCapability(AetherCore.getResource("PlayerData"), new PlayerAetherProvider(new PlayerAether((EntityPlayer) event.getObject()))); - } - else - { - // Only attach to non-players - event.addCapability(AetherCore.getResource("EntityInfo"), new EntitySpawningInfoProvider()); - } - } - - @SubscribeEvent - public static void onChunkLoad(final AttachCapabilitiesEvent<Chunk> event) - { - event.addCapability(AetherCore.getResource("PlacementFlags"), new PlacementFlagProvider(new PlacementFlagCapability())); - } - - @SubscribeEvent - public static void onWorldAttachCapabilities(final AttachCapabilitiesEvent<World> event) - { - event.addCapability(AetherCore.getResource("AetherPrecipitation"), - new PrecipitationCapabilityProvider(new PrecipitationManagerImpl(event.getObject()))); - - if (event.getObject().isRemote) - { - return; - } - - final World world = event.getObject(); - - final ISpawnSystem spawnSystem = new SpawnSystem(world, WorldTickListener.getSpawnHandlers(world)); - - event.addCapability(AetherCore.getResource("SpawnSystem"), new SpawnSystemProvider(spawnSystem)); - - for (IPrepRegistryEntry entry : AetherCore.PROXY.content().prep().getEntries()) - { - if (entry.shouldAttachTo(world)) - { - event.addCapability(AetherCore.getResource("PrepManagerPool"), new PrepManagerStorageProvider(world, entry)); - - break; - } - } - } -} diff --git a/src/main/java/com/gildedgames/aether/common/events/listeners/ServerTickListener.java b/src/main/java/com/gildedgames/aether/common/events/listeners/ServerTickListener.java deleted file mode 100644 index 805f2679ee..0000000000 --- a/src/main/java/com/gildedgames/aether/common/events/listeners/ServerTickListener.java +++ /dev/null @@ -1,33 +0,0 @@ -package com.gildedgames.aether.common.events.listeners; - -import com.gildedgames.aether.api.world.preparation.IPrepManager; -import com.gildedgames.aether.api.world.preparation.IPrepSector; -import com.gildedgames.aether.common.world.aether.PrepAether; -import com.gildedgames.aether.common.world.aether.PrepSectorDataAether; -import com.gildedgames.aether.common.world.preparation.PrepHelper; -import net.minecraftforge.fml.common.Mod; -import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; -import net.minecraftforge.fml.common.gameevent.TickEvent; - -@Mod.EventBusSubscriber -public class ServerTickListener -{ - @SubscribeEvent - public static void onServerTick(TickEvent.WorldTickEvent event) - { - IPrepManager access = PrepHelper.getManager(event.world); - - if (access == null || !(access.getRegistryEntry() instanceof PrepAether)) - { - return; - } - - for (IPrepSector sector : access.getAccess().getLoadedSectors()) - { - if (sector.hasWatchers()) - { - ((PrepSectorDataAether) sector.getData()).tick(); - } - } - } -} diff --git a/src/main/java/com/gildedgames/aether/common/events/listeners/entity/EntityDeathListener.java b/src/main/java/com/gildedgames/aether/common/events/listeners/entity/EntityDeathListener.java deleted file mode 100644 index b24f47ed2e..0000000000 --- a/src/main/java/com/gildedgames/aether/common/events/listeners/entity/EntityDeathListener.java +++ /dev/null @@ -1,29 +0,0 @@ -package com.gildedgames.aether.common.events.listeners.entity; - -import com.gildedgames.aether.api.registrar.CapabilitiesAether; -import com.gildedgames.aether.api.world.spawn.ISpawnHandler; -import com.gildedgames.aether.api.world.spawn.ISpawnSystem; -import net.minecraft.entity.EntityLivingBase; -import net.minecraftforge.event.entity.living.LivingDeathEvent; -import net.minecraftforge.fml.common.Mod; -import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; - -@Mod.EventBusSubscriber -public class EntityDeathListener -{ - @SubscribeEvent - public static void onLivingDeath(final LivingDeathEvent event) - { - final EntityLivingBase entity = event.getEntityLiving(); - - final ISpawnSystem system = entity.getCapability(CapabilitiesAether.SPAWN_SYSTEM, null); - - if (system != null) - { - for (ISpawnHandler handler : system.getSpawnHandlers()) - { - handler.onLivingDeath(event); - } - } - } -} diff --git a/src/main/java/com/gildedgames/aether/common/events/listeners/entity/EntityFallListener.java b/src/main/java/com/gildedgames/aether/common/events/listeners/entity/EntityFallListener.java deleted file mode 100644 index c717f60f77..0000000000 --- a/src/main/java/com/gildedgames/aether/common/events/listeners/entity/EntityFallListener.java +++ /dev/null @@ -1,30 +0,0 @@ -package com.gildedgames.aether.common.events.listeners.entity; - -import com.gildedgames.aether.api.entity.effects.IAetherStatusEffectPool; -import com.gildedgames.aether.api.entity.effects.IAetherStatusEffects; -import com.gildedgames.aether.api.registrar.CapabilitiesAether; -import net.minecraftforge.event.entity.living.LivingFallEvent; -import net.minecraftforge.fml.common.Mod; -import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; - -@Mod.EventBusSubscriber -public class EntityFallListener -{ - @SubscribeEvent - public static void onLivingFall(final LivingFallEvent event) - { - if (event.getEntityLiving() != null) - { - IAetherStatusEffectPool statusEffectPool = event.getEntityLiving().getCapability(CapabilitiesAether.STATUS_EFFECT_POOL, null); - - if (statusEffectPool != null) - { - if (statusEffectPool.isEffectApplied(IAetherStatusEffects.effectTypes.FRACTURE)) - { - event.setDistance(event.getDistance() + 1.0f); - event.setDamageMultiplier(2.0f); - } - } - } - } -} diff --git a/src/main/java/com/gildedgames/aether/common/events/listeners/entity/EntityJumpListener.java b/src/main/java/com/gildedgames/aether/common/events/listeners/entity/EntityJumpListener.java deleted file mode 100644 index a3f1f0ad0c..0000000000 --- a/src/main/java/com/gildedgames/aether/common/events/listeners/entity/EntityJumpListener.java +++ /dev/null @@ -1,38 +0,0 @@ -package com.gildedgames.aether.common.events.listeners.entity; - -import com.gildedgames.aether.api.entity.effects.IAetherStatusEffectPool; -import com.gildedgames.aether.api.entity.effects.IAetherStatusEffects; -import com.gildedgames.aether.api.registrar.CapabilitiesAether; -import com.gildedgames.aether.common.capabilities.entity.player.PlayerAether; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraftforge.event.entity.living.LivingEvent; -import net.minecraftforge.fml.common.Mod; -import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; - -@Mod.EventBusSubscriber -public class EntityJumpListener -{ - @SubscribeEvent - public static void onLivingJump(final LivingEvent.LivingJumpEvent event) - { - if (event.getEntity() != null) - { - if (event.getEntity() instanceof EntityPlayer) - { - final PlayerAether playerAether = PlayerAether.getPlayer((EntityPlayer) event.getEntity()); - - playerAether.setJumping(true); - } - - IAetherStatusEffectPool statusEffectPool = event.getEntityLiving().getCapability(CapabilitiesAether.STATUS_EFFECT_POOL, null); - - if (statusEffectPool != null) - { - if (statusEffectPool.isEffectApplied(IAetherStatusEffects.effectTypes.FREEZE) || statusEffectPool.isEffectApplied(IAetherStatusEffects.effectTypes.WEBBING)) - { - event.getEntity().motionY *= 0.5; - } - } - } - } -} diff --git a/src/main/java/com/gildedgames/aether/common/events/listeners/entity/EntityXPListener.java b/src/main/java/com/gildedgames/aether/common/events/listeners/entity/EntityXPListener.java deleted file mode 100644 index e8e67426ac..0000000000 --- a/src/main/java/com/gildedgames/aether/common/events/listeners/entity/EntityXPListener.java +++ /dev/null @@ -1,35 +0,0 @@ -package com.gildedgames.aether.common.events.listeners.entity; - -import com.gildedgames.aether.common.init.DimensionsAether; -import net.minecraft.entity.item.EntityXPOrb; -import net.minecraftforge.event.entity.EntityJoinWorldEvent; -import net.minecraftforge.event.entity.living.LivingExperienceDropEvent; -import net.minecraftforge.fml.common.Mod; -import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; - -@Mod.EventBusSubscriber -public class EntityXPListener -{ - @SubscribeEvent - public static void onEntity(EntityJoinWorldEvent event) - { - if (event.getEntity() instanceof EntityXPOrb) - { - if (event.getWorld().provider.getDimensionType() == DimensionsAether.AETHER - || event.getWorld().provider.getDimensionType() == DimensionsAether.NECROMANCER_TOWER) - { - event.setCanceled(true); - } - } - } - - @SubscribeEvent - public static void onExperienceDrop(LivingExperienceDropEvent event) - { - if (event.getEntityLiving().world.provider.getDimensionType() == DimensionsAether.AETHER - || event.getEntityLiving().world.provider.getDimensionType() == DimensionsAether.NECROMANCER_TOWER) - { - event.setCanceled(true); - } - } -} diff --git a/src/main/java/com/gildedgames/aether/common/events/listeners/items/ItemAetherShieldListener.java b/src/main/java/com/gildedgames/aether/common/events/listeners/items/ItemAetherShieldListener.java deleted file mode 100644 index 1d1a34ef88..0000000000 --- a/src/main/java/com/gildedgames/aether/common/events/listeners/items/ItemAetherShieldListener.java +++ /dev/null @@ -1,301 +0,0 @@ -package com.gildedgames.aether.common.events.listeners.items; - -import com.gildedgames.aether.api.entity.damage.IDefenseLevelsHolder; -import com.gildedgames.aether.api.entity.effects.IAetherStatusEffectPool; -import com.gildedgames.aether.api.entity.effects.IAetherStatusEffects; -import com.gildedgames.aether.api.registrar.CapabilitiesAether; -import com.gildedgames.aether.api.registrar.ItemsAether; -import com.gildedgames.aether.common.items.armor.ItemAetherShield; -import com.gildedgames.aether.common.items.tools.ItemAetherShovel; -import com.gildedgames.aether.common.items.weapons.crossbow.ItemCrossbow; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.SharedMonsterAttributes; -import net.minecraft.entity.ai.attributes.AttributeModifier; -import net.minecraft.entity.ai.attributes.IAttributeInstance; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.init.SoundEvents; -import net.minecraft.inventory.EntityEquipmentSlot; -import net.minecraft.item.ItemShield; -import net.minecraft.item.ItemStack; -import net.minecraft.util.DamageSource; -import net.minecraft.util.EnumHand; -import net.minecraft.util.math.MathHelper; -import net.minecraft.util.math.Vec3d; -import net.minecraftforge.event.ForgeEventFactory; -import net.minecraftforge.event.entity.living.LivingAttackEvent; -import net.minecraftforge.event.entity.living.LivingEntityUseItemEvent; -import net.minecraftforge.fml.common.Mod; -import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; -import net.minecraftforge.fml.common.gameevent.TickEvent; - -import java.util.UUID; - -@Mod.EventBusSubscriber -public class ItemAetherShieldListener -{ - @SubscribeEvent - public static void onEntityAttacked(final LivingAttackEvent event) - { - if (!(event.getEntityLiving() instanceof EntityPlayer)) - { - return; - } - - final EntityPlayer player = (EntityPlayer) event.getEntityLiving(); - - if (!event.getSource().isUnblockable() && player.isActiveItemStackBlocking()) - { - final Vec3d vec3d = event.getSource().getDamageLocation(); - - if (vec3d != null) - { - final Vec3d look = player.getLook(1.0F); - - Vec3d reverse = vec3d.subtractReverse(new Vec3d(player.posX, player.posY, player.posZ)).normalize(); - reverse = new Vec3d(reverse.x, 0.0D, reverse.z); - - if (reverse.dotProduct(look) < 0.0D) - { - final float damage = event.getAmount(); - - if (player.getActiveItemStack().getItem() instanceof ItemShield || player.getActiveItemStack().getItem() instanceof ItemAetherShield) - { - IAetherStatusEffectPool statusEffectPool = player.getCapability(CapabilitiesAether.STATUS_EFFECT_POOL, null); - - int buildup = 0; - - if (player.getActiveItemStack().getItem() instanceof ItemAetherShield) - { - ItemAetherShield itemAetherShield = (ItemAetherShield) player.getActiveItemStack().getItem(); - - buildup = (int) (((int) damage * 5) * (1 - itemAetherShield.getStunResistance())); - } - else if (player.getActiveItemStack().getItem() instanceof ItemShield) - { - buildup = (int) damage * 5; - } - - if (event.getSource().getImmediateSource() instanceof IDefenseLevelsHolder) - { - if (statusEffectPool != null) - { - if (!statusEffectPool.effectExists(IAetherStatusEffects.effectTypes.GUARD_BREAK)) - { - statusEffectPool.applyStatusEffect(IAetherStatusEffects.effectTypes.GUARD_BREAK, buildup); - } - else - { - statusEffectPool.modifyActiveEffectBuildup(IAetherStatusEffects.effectTypes.GUARD_BREAK, - statusEffectPool.getBuildupFromEffect(IAetherStatusEffects.effectTypes.GUARD_BREAK) + buildup); - } - } - } - - if (damage >= 3.0F) - { - final int itemDamage = 1 + MathHelper.floor(damage); - - player.getActiveItemStack().damageItem(itemDamage, player); - - if (player.getActiveItemStack().getCount() <= 0) - { - final EnumHand hand = player.getActiveHand(); - - ForgeEventFactory.onPlayerDestroyItem(player, player.getActiveItemStack(), hand); - - if (hand == EnumHand.MAIN_HAND) - { - player.setItemStackToSlot(EntityEquipmentSlot.MAINHAND, ItemStack.EMPTY); - } - else - { - player.setItemStackToSlot(EntityEquipmentSlot.OFFHAND, ItemStack.EMPTY); - } - - player.setHeldItem(player.getActiveHand(), ItemStack.EMPTY); - - player.playSound(SoundEvents.ITEM_SHIELD_BREAK, 0.8F, 0.8F + player.world.rand.nextFloat() * 0.4F); - } - } - } - } - } - } - } - - @SubscribeEvent - public static void onPlayerBlockStart(final LivingEntityUseItemEvent.Start event) - { - if (event.getItem().getItem() instanceof ItemAetherShield || event.getItem().getItem() instanceof ItemShield) - { - if (event.getEntityLiving() != null) - { - IAetherStatusEffectPool statusEffectPool = event.getEntityLiving().getCapability(CapabilitiesAether.STATUS_EFFECT_POOL, null); - - if (statusEffectPool != null) - { - if (statusEffectPool.isEffectApplied(IAetherStatusEffects.effectTypes.GUARD_BREAK)) - { - event.setCanceled(true); - } - } - } - } - } - - @SubscribeEvent - public static void onPlayerBlock(final LivingEntityUseItemEvent.Tick event) - { - if (event.getItem().getItem() instanceof ItemAetherShield || event.getItem().getItem() instanceof ItemShield) - { - if (event.getEntityLiving() != null) - { - IAetherStatusEffectPool statusEffectPool = event.getEntityLiving().getCapability(CapabilitiesAether.STATUS_EFFECT_POOL, null); - - if (statusEffectPool != null) - { - for (IAetherStatusEffects effect : statusEffectPool.getPool().values()) - { - if (effect.getEffectType() == IAetherStatusEffects.effectTypes.GUARD_BREAK) - { - if (event.getItem().getCount() > 0) - { - effect.adjustDecrease(0); - } - else - { - effect.resetDecrease(); - } - - if (statusEffectPool.isEffectApplied(IAetherStatusEffects.effectTypes.GUARD_BREAK)) - { - event.setCanceled(true); - } - } - } - } - } - } - } - - @SubscribeEvent - public static void onPlayerBlockStop(final LivingEntityUseItemEvent.Stop event) - { - if (event.getItem().getItem() instanceof ItemAetherShield || event.getItem().getItem() instanceof ItemShield) - { - if (event.getEntityLiving() != null) - { - IAetherStatusEffectPool statusEffectPool = event.getEntityLiving().getCapability(CapabilitiesAether.STATUS_EFFECT_POOL, null); - - if (statusEffectPool != null) - { - for (IAetherStatusEffects effect : statusEffectPool.getPool().values()) - { - if (effect.getEffectType() == IAetherStatusEffects.effectTypes.GUARD_BREAK) - { - effect.resetDecrease(); - } - } - } - } - } - } - - @SubscribeEvent - public static void onEffectExist(final TickEvent.PlayerTickEvent event) - { - if (event.player != null) - { - IAetherStatusEffectPool statusEffectPool = event.player.getCapability(CapabilitiesAether.STATUS_EFFECT_POOL, null); - - if (statusEffectPool != null) - { - for (IAetherStatusEffects effect : statusEffectPool.getPool().values()) - { - if (effect.getEffectType() == IAetherStatusEffects.effectTypes.GUARD_BREAK) - { - if (!(event.player.getHeldItemMainhand().getItem() instanceof ItemAetherShield) - && !(event.player.getHeldItemOffhand().getItem() instanceof ItemAetherShield) - && !(event.player.getHeldItemMainhand().getItem() instanceof ItemShield) - && !(event.player.getHeldItemOffhand().getItem() instanceof ItemShield)) - { - effect.resetDecrease(); - } - } - } - } - } - } - - @SubscribeEvent - public static void onSkyrootBlock(final TickEvent.PlayerTickEvent event) - { - final UUID SHIELD_UUID = UUID.fromString("8A4950B1-D935-4E22-BAEE-0715A104300D"); - - final AttributeModifier SHIELD_BLOCK = new AttributeModifier(SHIELD_UUID, "aether.statusBlockingSkyrootShield", 1.05D, 1); - IAttributeInstance shieldSlowedLevel = event.player.getEntityAttribute(SharedMonsterAttributes.MOVEMENT_SPEED); - - if (event.player.getActiveItemStack().getItem() != ItemsAether.skyroot_shield) - { - if (shieldSlowedLevel.getModifier(SHIELD_BLOCK.getID()) != null) - { - shieldSlowedLevel.removeModifier(SHIELD_BLOCK); - } - } - else - { - if (!shieldSlowedLevel.hasModifier(SHIELD_BLOCK)) - { - shieldSlowedLevel.applyModifier(SHIELD_BLOCK); - } - } - } - - @SubscribeEvent - public static void onArkeniumBlock(final TickEvent.PlayerTickEvent event) - { - final UUID SHIELD_UUID = UUID.fromString("CB4C4DF3-B0C6-4156-9793-CF46A1DD6116"); - - final AttributeModifier SHIELD_BLOCK = new AttributeModifier(SHIELD_UUID, "aether.statusBlockingArkeniumShield", -1.0D, 1); - IAttributeInstance shieldSlowedLevel = event.player.getEntityAttribute(SharedMonsterAttributes.MOVEMENT_SPEED); - - if (event.player.getActiveItemStack().getItem() != ItemsAether.arkenium_shield) - { - if (shieldSlowedLevel.getModifier(SHIELD_BLOCK.getID()) != null) - { - shieldSlowedLevel.removeModifier(SHIELD_BLOCK); - } - } - else - { - if (!shieldSlowedLevel.hasModifier(SHIELD_BLOCK)) - { - shieldSlowedLevel.applyModifier(SHIELD_BLOCK); - } - } - } - - @SubscribeEvent - public static void onGravititeBlock(final TickEvent.PlayerTickEvent event) - { - final UUID SHIELD_UUID = UUID.fromString("21594E31-3DF3-47CE-9263-6D1D4E75CB70"); - - final AttributeModifier SHIELD_BLOCK = new AttributeModifier(SHIELD_UUID, "aether.statusBlockingGravititeShield", -0.2D, 1); - IAttributeInstance shieldSlowedLevel = event.player.getEntityAttribute(SharedMonsterAttributes.MOVEMENT_SPEED); - - if (event.player.getActiveItemStack().getItem() != ItemsAether.gravitite_shield) - { - if (shieldSlowedLevel.getModifier(SHIELD_BLOCK.getID()) != null) - { - shieldSlowedLevel.removeModifier(SHIELD_BLOCK); - } - } - else - { - if (!shieldSlowedLevel.hasModifier(SHIELD_BLOCK)) - { - shieldSlowedLevel.applyModifier(SHIELD_BLOCK); - } - } - } -} diff --git a/src/main/java/com/gildedgames/aether/common/events/listeners/items/ItemBucketEventListener.java b/src/main/java/com/gildedgames/aether/common/events/listeners/items/ItemBucketEventListener.java deleted file mode 100644 index 10a253442c..0000000000 --- a/src/main/java/com/gildedgames/aether/common/events/listeners/items/ItemBucketEventListener.java +++ /dev/null @@ -1,160 +0,0 @@ -package com.gildedgames.aether.common.events.listeners.items; - -import com.gildedgames.aether.api.registrar.ItemsAether; -import com.gildedgames.aether.common.AetherCore; -import com.gildedgames.aether.common.CompatibilityAether; -import com.gildedgames.aether.common.blocks.construction.BlockAetherPortal; -import com.gildedgames.aether.common.init.DimensionsAether; -import com.gildedgames.aether.common.network.AetherGuiHandler; -import net.minecraft.block.state.IBlockState; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.init.Blocks; -import net.minecraft.init.Items; -import net.minecraft.item.ItemStack; -import net.minecraft.util.EnumFacing; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.RayTraceResult; -import net.minecraft.world.World; -import net.minecraftforge.event.entity.player.FillBucketEvent; -import net.minecraftforge.fluids.FluidActionResult; -import net.minecraftforge.fluids.FluidRegistry; -import net.minecraftforge.fluids.FluidStack; -import net.minecraftforge.fluids.FluidUtil; -import net.minecraftforge.fluids.capability.CapabilityFluidHandler; -import net.minecraftforge.fluids.capability.IFluidHandler; -import net.minecraftforge.fml.common.Mod; -import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; - -@Mod.EventBusSubscriber -public class ItemBucketEventListener -{ - @SubscribeEvent - public static void onPlayerUseBucket(final FillBucketEvent event) - { - if (event.getTarget() != null && event.getTarget().typeOfHit == RayTraceResult.Type.BLOCK) - { - FluidStack fluidStack = null; - - if (event.getEmptyBucket().hasCapability(CapabilityFluidHandler.FLUID_HANDLER_CAPABILITY, null)) - { - fluidStack = FluidUtil.getFluidContained(event.getEmptyBucket()); - } - - final EntityPlayer player = event.getEntityPlayer(); - - final BlockPos pos = event.getTarget().getBlockPos().offset(event.getTarget().sideHit); - - final boolean hasWaterFluid = fluidStack != null && fluidStack.getFluid().getName().equals(FluidRegistry.WATER.getName()); - - if (hasWaterFluid || event.getEmptyBucket().getItem() == Items.WATER_BUCKET - || event.getEmptyBucket().getItem() == ItemsAether.skyroot_water_bucket) - { - IBlockState targetState = event.getWorld().getBlockState(event.getTarget().getBlockPos()); - - if (targetState.getBlock() == Blocks.GLOWSTONE) - { - if (!CompatibilityAether.isAetherLegacyInstalled() && isPortalFrame(event.getWorld(), event.getTarget().getBlockPos(), pos)) - { - event.setCanceled(true); - - player.openGui(AetherCore.MOD_ID, AetherGuiHandler.TELEPORTER_NOTICE_ID, player.world, pos.getX(), pos.getY(), pos.getZ()); - } - } - else if (targetState.getBlock() == Blocks.QUARTZ_BLOCK) - { - ItemBucketEventListener.onPlayerAttemptPortalCreation(event, player, pos); - } - } - } - } - - private static boolean isPortalFrame(final World world, final BlockPos target, final BlockPos pos) - { - IBlockState state = world.getBlockState(target); - - if (state.getBlock() == Blocks.QUARTZ_BLOCK || state.getBlock() == Blocks.GLOWSTONE) - { - BlockAetherPortal.Size size = new BlockAetherPortal.Size(world, pos, EnumFacing.Axis.X); - - if (size.isWithinSizeBounds() && size.getPortalBlocks() == 0 && size.isPortalBase(state)) - { - return true; - } - else - { - size = new BlockAetherPortal.Size(world, pos, EnumFacing.Axis.Z); - - return size.isWithinSizeBounds() && size.getPortalBlocks() == 0 && size.isPortalBase(state); - } - } - - return false; - } - - private static void onPlayerAttemptPortalCreation(final FillBucketEvent event, final EntityPlayer player, final BlockPos pos) - { - if (player.world.provider.getDimensionType() == DimensionsAether.AETHER) - { - return; - } - - if (ItemBucketEventListener.createPortal(event.getWorld(), event.getTarget().getBlockPos(), pos)) - { - if (!event.getEntityPlayer().capabilities.isCreativeMode) - { - final IFluidHandler fluidHandler = FluidUtil.getFluidHandler(event.getEmptyBucket()); - - ItemStack stack = ItemStack.EMPTY; - - if (fluidHandler != null) - { - final FluidActionResult result = FluidUtil.tryEmptyContainer(event.getEmptyBucket(), fluidHandler, Integer.MAX_VALUE, player, true); - - stack = result.getResult(); - } - - if (event.getEmptyBucket().getItem() == Items.WATER_BUCKET) - { - stack = new ItemStack(Items.BUCKET); - } - - if (event.getEmptyBucket().getItem() == ItemsAether.skyroot_water_bucket) - { - stack = new ItemStack(ItemsAether.skyroot_bucket); - } - - event.getEntityPlayer().inventory.setInventorySlotContents(event.getEntityPlayer().inventory.currentItem, stack); - } - - event.setCanceled(true); - } - - } - - - private static boolean createPortal(final World world, final BlockPos target, final BlockPos pos) - { - BlockAetherPortal.Size size = new BlockAetherPortal.Size(world, pos, EnumFacing.Axis.X); - - if (size.isWithinSizeBounds() && size.getPortalBlocks() == 0 && size.isPortalBase(world.getBlockState(target))) - { - size.createPortal(); - - return true; - } - else - { - size = new BlockAetherPortal.Size(world, pos, EnumFacing.Axis.Z); - - if (size.isWithinSizeBounds() && size.getPortalBlocks() == 0 && size.isPortalBase(world.getBlockState(target))) - { - size.createPortal(); - - return true; - } - } - - return false; - } - -} diff --git a/src/main/java/com/gildedgames/aether/common/events/listeners/items/ItemCrossbowSpecialListener.java b/src/main/java/com/gildedgames/aether/common/events/listeners/items/ItemCrossbowSpecialListener.java deleted file mode 100644 index feb90109ca..0000000000 --- a/src/main/java/com/gildedgames/aether/common/events/listeners/items/ItemCrossbowSpecialListener.java +++ /dev/null @@ -1,44 +0,0 @@ -package com.gildedgames.aether.common.events.listeners.items; - -import com.gildedgames.aether.common.items.weapons.crossbow.ItemCrossbow; -import net.minecraft.entity.SharedMonsterAttributes; -import net.minecraft.entity.ai.attributes.AttributeModifier; -import net.minecraft.entity.ai.attributes.IAttributeInstance; -import net.minecraft.util.EnumHand; -import net.minecraftforge.fml.common.Mod; -import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; -import net.minecraftforge.fml.common.gameevent.TickEvent; - -import java.util.UUID; - -@Mod.EventBusSubscriber -public class ItemCrossbowSpecialListener -{ - @SubscribeEvent - public static void onHoldCrossbow(final TickEvent.PlayerTickEvent event) - { - if (event.player.getHeldItem(EnumHand.MAIN_HAND).getItem() instanceof ItemCrossbow || event.player.getHeldItem(EnumHand.OFF_HAND).getItem() instanceof ItemCrossbow) - { - final UUID CROSSBOW_UUID = UUID.fromString("1A1D30BD-CF8E-4996-B76A-5C139A8F9685"); - - final AttributeModifier CROSSBOW_SPECIAL = new AttributeModifier(CROSSBOW_UUID, "aether.statusLoadingCrossbowSpecial", -1.0D, 1); - IAttributeInstance crossbowSlowedLevel = event.player.getEntityAttribute(SharedMonsterAttributes.MOVEMENT_SPEED); - - if (!(event.player.getActiveItemStack().getItem() instanceof ItemCrossbow) || !((ItemCrossbow) event.player.getHeldItemMainhand().getItem()).getIsSpecialLoaded() - || !event.player.isSneaking()) - { - if (crossbowSlowedLevel.getModifier(CROSSBOW_SPECIAL.getID()) != null) - { - crossbowSlowedLevel.removeModifier(CROSSBOW_SPECIAL); - } - } - else - { - if (!crossbowSlowedLevel.hasModifier(CROSSBOW_SPECIAL)) - { - crossbowSlowedLevel.applyModifier(CROSSBOW_SPECIAL); - } - } - } - } -} diff --git a/src/main/java/com/gildedgames/aether/common/events/listeners/items/ItemGlovesListener.java b/src/main/java/com/gildedgames/aether/common/events/listeners/items/ItemGlovesListener.java deleted file mode 100644 index a2ff7d4962..0000000000 --- a/src/main/java/com/gildedgames/aether/common/events/listeners/items/ItemGlovesListener.java +++ /dev/null @@ -1,50 +0,0 @@ -package com.gildedgames.aether.common.events.listeners.items; - -import com.gildedgames.aether.api.player.inventory.IInventoryEquipment; -import com.gildedgames.aether.common.capabilities.entity.player.PlayerAether; -import com.gildedgames.aether.common.capabilities.entity.player.modules.PlayerEquipmentModule; -import com.gildedgames.aether.common.items.armor.ItemAetherGloves; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.init.SoundEvents; -import net.minecraft.item.ItemStack; -import net.minecraftforge.event.entity.living.LivingAttackEvent; -import net.minecraftforge.event.entity.player.AttackEntityEvent; -import net.minecraftforge.fml.common.Mod; -import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; - -@Mod.EventBusSubscriber -public class ItemGlovesListener -{ - @SubscribeEvent - public static void onPlayerAttack(final AttackEntityEvent event) - { - if (!(event.getEntityLiving() instanceof EntityPlayer)) - { - return; - } - - final EntityPlayer player = (EntityPlayer) event.getEntityLiving(); - final PlayerAether playerAether = PlayerAether.getPlayer(player); - - final IInventoryEquipment equipmentInventory = playerAether.getModule(PlayerEquipmentModule.class).getInventory(); - - final ItemStack gloveStack = equipmentInventory.getStackInSlot(2); - - if (!event.getTarget().getIsInvulnerable()) - { - if (player.getHeldItemMainhand().isEmpty()) - { - if (gloveStack.getItem() instanceof ItemAetherGloves && !gloveStack.isEmpty()) - { - gloveStack.damageItem(1, player); - - if (gloveStack.getItem().getDamage(gloveStack) < 0) - { - equipmentInventory.setInventorySlotContents(2, ItemStack.EMPTY); - player.playSound(SoundEvents.ENTITY_ITEM_BREAK, 0.8F, 0.8F + player.world.rand.nextFloat() * 0.4F); - } - } - } - } - } -} \ No newline at end of file diff --git a/src/main/java/com/gildedgames/aether/common/events/listeners/items/ItemSkyrootSwordListener.java b/src/main/java/com/gildedgames/aether/common/events/listeners/items/ItemSkyrootSwordListener.java deleted file mode 100644 index 23033595d3..0000000000 --- a/src/main/java/com/gildedgames/aether/common/events/listeners/items/ItemSkyrootSwordListener.java +++ /dev/null @@ -1,72 +0,0 @@ -package com.gildedgames.aether.common.events.listeners.items; - -import com.gildedgames.aether.api.registrar.ItemsAether; -import com.gildedgames.aether.common.init.MaterialsAether; -import net.minecraft.entity.Entity; -import net.minecraft.entity.item.EntityItem; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.init.Items; -import net.minecraft.item.ItemStack; -import net.minecraft.item.ItemTool; -import net.minecraft.util.EnumHand; -import net.minecraftforge.event.entity.living.LivingDropsEvent; -import net.minecraftforge.fml.common.Mod; -import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; - -import java.util.ArrayList; -import java.util.List; -import java.util.Objects; - -@Mod.EventBusSubscriber -public class ItemSkyrootSwordListener -{ - @SubscribeEvent - public static void dropLoot(final LivingDropsEvent event) - { - if (event.getSource().getTrueSource() instanceof EntityPlayer) - { - final EntityPlayer player = (EntityPlayer) event.getSource().getTrueSource(); - - final ItemStack held = player.getHeldItem(EnumHand.MAIN_HAND); - - boolean providesDrops = false; - - if (held.getItem() == ItemsAether.skyroot_sword) - { - providesDrops = true; - } - else if (held.getItem() instanceof ItemTool) - { - final String material = ((ItemTool) held.getItem()).getToolMaterialName(); - - providesDrops = Objects.equals(material, MaterialsAether.SKYROOT_TOOL.name()); - } - - if (providesDrops) - { - Entity origin = event.getEntity(); - - if (origin.isNonBoss()) - { - final List<ItemStack> stacks = new ArrayList<>(); - - for (final EntityItem item : event.getDrops()) - { - stacks.add(item.getItem()); - } - - for (final ItemStack stack : stacks) - { - if (stack.getItem() != Items.SKULL && stack.getMetadata() != 1) - { - final EntityItem item = new EntityItem(player.getEntityWorld(), origin.posX, origin.posY, origin.posZ, stack); - - player.getEntityWorld().spawnEntity(item); - } - } - } - } - } - } - -} diff --git a/src/main/java/com/gildedgames/aether/common/events/listeners/items/ItemToolListener.java b/src/main/java/com/gildedgames/aether/common/events/listeners/items/ItemToolListener.java deleted file mode 100644 index 0961d6c298..0000000000 --- a/src/main/java/com/gildedgames/aether/common/events/listeners/items/ItemToolListener.java +++ /dev/null @@ -1,195 +0,0 @@ -package com.gildedgames.aether.common.events.listeners.items; - -import com.gildedgames.aether.common.capabilities.entity.player.PlayerAether; -import com.gildedgames.aether.common.init.MaterialsAether; -import com.gildedgames.aether.common.items.tools.handlers.*; -import net.minecraft.block.state.IBlockState; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.item.ItemTool; -import net.minecraft.util.EnumActionResult; -import net.minecraft.util.EnumHand; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.World; -import net.minecraftforge.event.entity.player.*; -import net.minecraftforge.event.world.BlockEvent; -import net.minecraftforge.fml.common.Mod; -import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; - -import java.util.HashMap; -import java.util.Map; - -@Mod.EventBusSubscriber -public class ItemToolListener -{ - private static final Map<String, IToolEventHandler> handlers = new HashMap<>(); - - static - { - handlers.put(MaterialsAether.SKYROOT_TOOL.name(), new ItemSkyrootToolHandler()); - handlers.put(MaterialsAether.HOLYSTONE_TOOL.name(), new ItemHolystoneToolHandler()); - handlers.put(MaterialsAether.ARKENIUM_TOOL.name(), new ItemArkeniumToolHandler()); - handlers.put(MaterialsAether.ZANITE_TOOL.name(), new ItemZaniteToolHandler()); - handlers.put(MaterialsAether.GRAVITITE_TOOL.name(), new ItemGravititeToolHandler()); - } - - @SideOnly(Side.CLIENT) - @SubscribeEvent - public static void onTooltip(final ItemTooltipEvent event) - { - if (event.getItemStack().getItem() instanceof ItemTool) - { - final String material = ((ItemTool) event.getItemStack().getItem()).getToolMaterialName(); - - final IToolEventHandler handler = handlers.get(material); - - if (handler == null) - { - return; - } - - handler.addInformation(event.getItemStack(), event.getToolTip()); - } - } - - @SubscribeEvent - public static void onRightClickItem(final PlayerInteractEvent.RightClickItem event) - { - if (event.getItemStack().getItem() instanceof ItemTool) - { - final String material = ((ItemTool) event.getItemStack().getItem()).getToolMaterialName(); - - final IToolEventHandler handler = handlers.get(material); - - if (handler == null) - { - return; - } - - handler.onRightClickItem(event.getEntityPlayer(), event.getHand()); - } - } - - @SubscribeEvent - public static void onBlockActivated(final PlayerInteractEvent.RightClickBlock event) - { - if (event.getItemStack().getItem() instanceof ItemTool) - { - final String material = ((ItemTool) event.getItemStack().getItem()).getToolMaterialName(); - - final IToolEventHandler handler = handlers.get(material); - - if (handler == null) - { - return; - } - - boolean result = handler.onRightClickBlock(event.getWorld(), event.getPos(), event.getEntityPlayer(), event.getHand(), event.getFace()); - - if (result) - { - event.setCanceled(true); - event.setCancellationResult(EnumActionResult.SUCCESS); - } - } - } - - @SubscribeEvent - public static void onBlockHarvested(final BlockEvent.HarvestDropsEvent event) - { - if (event.getHarvester() == null) - { - return; - } - - PlayerAether playerAether = PlayerAether.getPlayer(event.getHarvester()); - - ItemStack stack = event.getHarvester().getHeldItem(EnumHand.MAIN_HAND); - - if (stack.isEmpty() && playerAether.getLastDestroyedStack() != null) - { - stack = playerAether.getLastDestroyedStack(); - playerAether.setLastDestroyedStack(null); - } - - if (stack.getItem() instanceof ItemTool) - { - final String material = ((ItemTool) stack.getItem()).getToolMaterialName(); - - final IToolEventHandler handler = handlers.get(material); - - if (handler == null) - { - return; - } - - handler.onHarvestBlock(stack, event.getWorld(), event.getState(), event.getPos(), event.getHarvester(), event.getDrops()); - } - } - - @SubscribeEvent - public static void onItemDestroyed(final PlayerDestroyItemEvent event) - { - if (event.getEntityPlayer() == null) - { - return; - } - - PlayerAether playerAether = PlayerAether.getPlayer(event.getEntityPlayer()); - - if (event.getOriginal().getItem() instanceof ItemTool) - { - playerAether.setLastDestroyedStack(event.getOriginal()); - } - } - - public static float getBreakSpeed(final ItemStack stack, final IBlockState state, float original) - { - final String material = ((ItemTool) stack.getItem()).getToolMaterialName(); - - final IToolEventHandler handler = handlers.get(material); - - if (handler != null) - { - return handler.getBreakSpeed(stack, state, original); - } - - return original; - } - - @SubscribeEvent - public static void onEntityHit(final AttackEntityEvent event) - { - final ItemStack stack = event.getEntityLiving().getHeldItem(EnumHand.MAIN_HAND); - - if (stack.getItem() instanceof ItemTool) - { - final String material = ((ItemTool) stack.getItem()).getToolMaterialName(); - - final IToolEventHandler handler = handlers.get(material); - - if (handler == null) - { - return; - } - - handler.onEntityHit(stack, event.getTarget(), event.getEntityLiving()); - } - } - - public static boolean onEntityHit(final ItemStack stack, final Item.ToolMaterial material, final EntityLivingBase target, final EntityLivingBase attacker) - { - final IToolEventHandler handler = handlers.get(material.name()); - - if (handler != null) - { - handler.onEntityHit(stack, target, attacker); - } - - return true; - } -} diff --git a/src/main/java/com/gildedgames/aether/common/events/listeners/player/PlayerAetherListener.java b/src/main/java/com/gildedgames/aether/common/events/listeners/player/PlayerAetherListener.java deleted file mode 100644 index 2587fe17a1..0000000000 --- a/src/main/java/com/gildedgames/aether/common/events/listeners/player/PlayerAetherListener.java +++ /dev/null @@ -1,130 +0,0 @@ -package com.gildedgames.aether.common.events.listeners.player; - -import com.gildedgames.aether.api.player.IPlayerAether; -import com.gildedgames.aether.api.registrar.CapabilitiesAether; -import com.gildedgames.aether.common.capabilities.entity.player.PlayerAether; -import com.gildedgames.aether.common.capabilities.entity.player.modules.PlayerCampfiresModule; -import com.gildedgames.aether.common.init.DimensionsAether; -import com.gildedgames.orbis.lib.util.mc.BlockPosDimension; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.nbt.NBTBase; -import net.minecraftforge.common.capabilities.Capability.IStorage; -import net.minecraftforge.event.entity.living.LivingDeathEvent; -import net.minecraftforge.event.entity.living.LivingFallEvent; -import net.minecraftforge.event.entity.player.PlayerDropsEvent; -import net.minecraftforge.event.entity.player.PlayerEvent; -import net.minecraftforge.fml.common.Mod; -import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; -import net.minecraftforge.fml.common.gameevent.PlayerEvent.PlayerChangedDimensionEvent; -import net.minecraftforge.fml.common.gameevent.PlayerEvent.PlayerLoggedOutEvent; -import net.minecraftforge.fml.common.gameevent.TickEvent; - -@Mod.EventBusSubscriber -public class PlayerAetherListener -{ - @SubscribeEvent - public static void onBeginWatching(final PlayerEvent.StartTracking event) - { - if (!(event.getTarget() instanceof EntityPlayer)) - { - return; - } - - final PlayerAether aeSourcePlayer = PlayerAether.getPlayer(event.getEntityPlayer()); - final PlayerAether aeTargetPlayer = PlayerAether.getPlayer((EntityPlayer) event.getTarget()); - - aeTargetPlayer.onPlayerBeginWatching(aeSourcePlayer); - } - - @SubscribeEvent - public static void onPlayerLoggedOut(final PlayerLoggedOutEvent event) - { - final PlayerAether aePlayer = PlayerAether.getPlayer(event.player); - aePlayer.onLoggedOut(); - } - - @SubscribeEvent - public static void onDeath(final LivingDeathEvent event) - { - if (!(event.getEntity() instanceof EntityPlayer)) - { - return; - } - - final PlayerAether aePlayer = PlayerAether.getPlayer((EntityPlayer) event.getEntity()); - aePlayer.onDeath(event); - - if (aePlayer.getEntity().world.provider.getDimensionType() == DimensionsAether.AETHER) - { - aePlayer.getModule(PlayerCampfiresModule.class).setDeathPos(new BlockPosDimension(event.getEntity().getPosition(), aePlayer.getEntity().dimension)); - } - } - - @SubscribeEvent - public static void onDrops(final PlayerDropsEvent event) - { - if (!(event.getEntity() instanceof EntityPlayer)) - { - return; - } - - final PlayerAether aePlayer = PlayerAether.getPlayer((EntityPlayer) event.getEntity()); - aePlayer.onDrops(event); - } - - @SubscribeEvent - public static void onPlayerTick(TickEvent.PlayerTickEvent event) - { - final PlayerAether aePlayer = PlayerAether.getPlayer(event.player); - aePlayer.onPlayerTick(event); - } - - @SubscribeEvent - public static void onFall(final LivingFallEvent event) - { - if (!(event.getEntity() instanceof EntityPlayer)) - { - return; - } - - final PlayerAether aePlayer = PlayerAether.getPlayer((EntityPlayer) event.getEntity()); - aePlayer.onFall(event); - } - - @SubscribeEvent - public static void onCalculateBreakSpeed(final PlayerEvent.BreakSpeed event) - { - if (!(event.getEntity() instanceof EntityPlayer)) - { - return; - } - - final PlayerAether aePlayer = PlayerAether.getPlayer((EntityPlayer) event.getEntity()); - event.setNewSpeed(event.getOriginalSpeed() * aePlayer.getMiningSpeedMultiplier()); - } - - @SubscribeEvent - public static void onPlayerClone(final PlayerEvent.Clone event) - { - if (!(event.getEntity() instanceof EntityPlayer)) - { - return; - } - - final PlayerAether oldPlayer = PlayerAether.getPlayer(event.getOriginal()); - final PlayerAether newPlayer = PlayerAether.getPlayer((EntityPlayer) event.getEntity()); - - final IStorage<IPlayerAether> storage = CapabilitiesAether.PLAYER_DATA.getStorage(); - - final NBTBase state = storage.writeNBT(CapabilitiesAether.PLAYER_DATA, oldPlayer, null); - storage.readNBT(CapabilitiesAether.PLAYER_DATA, newPlayer, null, state); - } - - @SubscribeEvent - public static void onPlayerChangedDimension(final PlayerChangedDimensionEvent event) - { - final PlayerAether aePlayer = PlayerAether.getPlayer(event.player); - aePlayer.onTeleport(event); - } - -} diff --git a/src/main/java/com/gildedgames/aether/common/events/listeners/player/PlayerAttackListener.java b/src/main/java/com/gildedgames/aether/common/events/listeners/player/PlayerAttackListener.java deleted file mode 100644 index 411fa4ab79..0000000000 --- a/src/main/java/com/gildedgames/aether/common/events/listeners/player/PlayerAttackListener.java +++ /dev/null @@ -1,29 +0,0 @@ -package com.gildedgames.aether.common.events.listeners.player; - -import com.gildedgames.aether.api.entity.effects.IAetherStatusEffectPool; -import com.gildedgames.aether.api.entity.effects.IAetherStatusEffects; -import com.gildedgames.aether.api.registrar.CapabilitiesAether; -import net.minecraftforge.event.entity.player.AttackEntityEvent; -import net.minecraftforge.fml.common.Mod; -import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; - -@Mod.EventBusSubscriber -public class PlayerAttackListener -{ - @SubscribeEvent - public static void onPlayerStunned(final AttackEntityEvent event) - { - if (event.getEntityLiving() != null) - { - IAetherStatusEffectPool statusEffectPool = event.getEntityLiving().getCapability(CapabilitiesAether.STATUS_EFFECT_POOL, null); - - if (statusEffectPool != null) - { - if (statusEffectPool.isEffectApplied(IAetherStatusEffects.effectTypes.STUN)) - { - event.setCanceled(true); - } - } - } - } -} \ No newline at end of file diff --git a/src/main/java/com/gildedgames/aether/common/events/listeners/player/PlayerEatListener.java b/src/main/java/com/gildedgames/aether/common/events/listeners/player/PlayerEatListener.java deleted file mode 100644 index 692100cd03..0000000000 --- a/src/main/java/com/gildedgames/aether/common/events/listeners/player/PlayerEatListener.java +++ /dev/null @@ -1,56 +0,0 @@ -package com.gildedgames.aether.common.events.listeners.player; - -import com.gildedgames.aether.api.entity.effects.IAetherStatusEffectPool; -import com.gildedgames.aether.api.entity.effects.IAetherStatusEffects; -import com.gildedgames.aether.api.registrar.CapabilitiesAether; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemFood; -import net.minecraft.item.ItemStack; -import net.minecraft.util.FoodStats; -import net.minecraftforge.event.entity.living.LivingEntityUseItemEvent; -import net.minecraftforge.fml.common.Mod; -import net.minecraftforge.fml.common.ObfuscationReflectionHelper; -import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; -import net.minecraftforge.fml.relauncher.ReflectionHelper; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; - -import java.lang.reflect.Field; -import java.util.Objects; - -@Mod.EventBusSubscriber -public class PlayerEatListener -{ - @SubscribeEvent - public static void onPlayerFinishFood(final LivingEntityUseItemEvent.Finish event) - { - if (event.getEntityLiving() != null) - { - IAetherStatusEffectPool statusEffectPool = event.getEntityLiving().getCapability(CapabilitiesAether.STATUS_EFFECT_POOL, null); - - if (statusEffectPool != null) - { - if (statusEffectPool.isEffectApplied(IAetherStatusEffects.effectTypes.SATURATION_BOOST)) - { - if (event.getItem().getItem() instanceof ItemFood) - { - final Field saturationLevel = ReflectionHelper.findField(FoodStats.class, "foodSaturationLevel", "field_75125_b"); - - ItemStack stack = event.getItem(); - EntityPlayer player = (EntityPlayer) event.getEntityLiving(); - FoodStats foodStats = player.getFoodStats(); - ItemFood food = (ItemFood) stack.getItem(); - - float saturationValue = Math.min(foodStats.getSaturationLevel() + (float)food.getHealAmount(stack) * food.getSaturationModifier(stack) * 2.0F, (float)foodStats.getFoodLevel()); - - try - { - saturationLevel.set(foodStats, saturationValue); - } - catch (IllegalAccessException ignored) { } - } - } - } - } - } -} \ No newline at end of file diff --git a/src/main/java/com/gildedgames/aether/common/events/listeners/player/PlayerEquipItemListener.java b/src/main/java/com/gildedgames/aether/common/events/listeners/player/PlayerEquipItemListener.java deleted file mode 100644 index 0fb43363d8..0000000000 --- a/src/main/java/com/gildedgames/aether/common/events/listeners/player/PlayerEquipItemListener.java +++ /dev/null @@ -1,97 +0,0 @@ -package com.gildedgames.aether.common.events.listeners.player; - -import com.gildedgames.aether.api.AetherAPI; -import com.gildedgames.aether.api.items.equipment.ItemEquipmentSlot; -import com.gildedgames.aether.api.items.properties.IItemProperties; -import com.gildedgames.aether.api.player.IPlayerAether; -import com.gildedgames.aether.api.player.inventory.IInventoryEquipment; -import com.gildedgames.aether.common.capabilities.entity.player.PlayerAether; -import com.gildedgames.aether.common.capabilities.entity.player.modules.PlayerEquipmentModule; -import com.gildedgames.aether.common.items.armor.ItemAetherGloves; -import net.minecraft.client.Minecraft; -import net.minecraft.init.SoundEvents; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.util.EnumHand; -import net.minecraft.util.SoundCategory; -import net.minecraft.util.SoundEvent; -import net.minecraftforge.event.entity.player.PlayerInteractEvent; -import net.minecraftforge.fml.common.Mod; -import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; - -@Mod.EventBusSubscriber -public class PlayerEquipItemListener -{ - - @SubscribeEvent - public static void onPlayerRightClickItem(final PlayerInteractEvent.RightClickItem event) - { - final IPlayerAether aePlayer = PlayerAether.getPlayer(event.getEntityPlayer()); - - if (event.getItemStack().isEmpty()) - { - return; - } - - final boolean result = PlayerEquipItemListener.tryEquipEquipment(aePlayer, event.getItemStack(), event.getHand()); - - if (result) - { - // Unfortunately we have to play the equip animation manually... - if (event.getEntityPlayer().world.isRemote) - { - Minecraft.getMinecraft().getItemRenderer().resetEquippedProgress(EnumHand.MAIN_HAND); - } - - event.setCanceled(true); - } - } - - private static boolean tryEquipEquipment(final IPlayerAether player, final ItemStack stack, final EnumHand hand) - { - final IInventoryEquipment inventory = player.getModule(PlayerEquipmentModule.class).getInventory(); - - final IItemProperties equipment = AetherAPI.content().items().getProperties(stack.getItem()); - - if (equipment.getEquipmentSlot() != ItemEquipmentSlot.NONE) - { - final int slot = inventory.getNextEmptySlotForType(equipment.getEquipmentSlot()); - - if (slot >= 0) - { - final ItemStack newStack = stack.copy(); - newStack.setCount(1); - - inventory.setInventorySlotContents(slot, newStack); - - if (stack.getItem() instanceof ItemAetherGloves) - { - final SoundEvent gloveEquipSound = ((ItemAetherGloves) stack.getItem()).getGloveSound(); - - player.getEntity().world - .playSound(player.getEntity(), player.getEntity().getPosition(), gloveEquipSound, SoundCategory.NEUTRAL, - 1.0f, 1.0f); - } - else - { - player.getEntity().world - .playSound(player.getEntity(), player.getEntity().getPosition(), SoundEvents.ITEM_ARMOR_EQUIP_GENERIC, SoundCategory.NEUTRAL, - 1.0f, 1.0f); - } - - if (!player.getEntity().capabilities.isCreativeMode) - { - // Technically, there should never be STACKABLE equipment, but in case there is, we need to handle it. - stack.shrink(1); - } - - player.getEntity().setHeldItem(hand, stack.getCount() <= 0 ? ItemStack.EMPTY : stack); - - return true; - } - } - - return false; - } - -} diff --git a/src/main/java/com/gildedgames/aether/common/events/listeners/player/PlayerHealListener.java b/src/main/java/com/gildedgames/aether/common/events/listeners/player/PlayerHealListener.java deleted file mode 100644 index e57694f5fb..0000000000 --- a/src/main/java/com/gildedgames/aether/common/events/listeners/player/PlayerHealListener.java +++ /dev/null @@ -1,32 +0,0 @@ -package com.gildedgames.aether.common.events.listeners.player; - -import com.gildedgames.aether.api.entity.effects.IAetherStatusEffectPool; -import com.gildedgames.aether.api.entity.effects.IAetherStatusEffects; -import com.gildedgames.aether.api.registrar.CapabilitiesAether; -import net.minecraftforge.event.entity.living.LivingHealEvent; -import net.minecraftforge.fml.common.Mod; -import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; - -@Mod.EventBusSubscriber -public class PlayerHealListener -{ - @SubscribeEvent - public static void onLivingHeal(final LivingHealEvent event) - { - if (event.getEntityLiving() != null) - { - if (event.getAmount() <= 1.5) - { - IAetherStatusEffectPool statusEffectPool = event.getEntityLiving().getCapability(CapabilitiesAether.STATUS_EFFECT_POOL, null); - - if (statusEffectPool != null) - { - if (statusEffectPool.isEffectApplied(IAetherStatusEffects.effectTypes.AMBROSIUM_POISONING) || statusEffectPool.isEffectApplied(IAetherStatusEffects.effectTypes.IRRADIATION)) - { - event.setCanceled(true); - } - } - } - } - } -} diff --git a/src/main/java/com/gildedgames/aether/common/events/listeners/player/PlayerJoinListener.java b/src/main/java/com/gildedgames/aether/common/events/listeners/player/PlayerJoinListener.java deleted file mode 100644 index a32cc2476b..0000000000 --- a/src/main/java/com/gildedgames/aether/common/events/listeners/player/PlayerJoinListener.java +++ /dev/null @@ -1,37 +0,0 @@ -package com.gildedgames.aether.common.events.listeners.player; - -import com.gildedgames.aether.common.AetherCore; -import com.gildedgames.aether.common.capabilities.entity.player.PlayerAether; -import com.gildedgames.aether.common.network.NetworkingAether; -import com.gildedgames.aether.common.network.packets.PacketRequestClientInfo; -import com.google.common.collect.Lists; -import net.minecraft.entity.player.EntityPlayerMP; -import net.minecraft.item.crafting.IRecipe; -import net.minecraft.util.ResourceLocation; -import net.minecraftforge.fml.common.Mod; -import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; -import net.minecraftforge.fml.common.gameevent.PlayerEvent; -import net.minecraftforge.fml.common.registry.ForgeRegistries; - -@Mod.EventBusSubscriber -public class PlayerJoinListener -{ - private static final ResourceLocation TELEPORTER_RECIPE = AetherCore.getResource("misc/aether_teleporter"); - - @SubscribeEvent - public static void onPlayerJoined(final PlayerEvent.PlayerLoggedInEvent event) - { - NetworkingAether.sendPacketToPlayer(new PacketRequestClientInfo(), (EntityPlayerMP) event.player); - - final PlayerAether aePlayer = PlayerAether.getPlayer(event.player); - aePlayer.onLoggedIn(); - aePlayer.sendFullUpdate(); - - IRecipe recipe = ForgeRegistries.RECIPES.getValue(TELEPORTER_RECIPE); - - if (recipe != null) - { - event.player.unlockRecipes(Lists.newArrayList(recipe)); - } - } -} diff --git a/src/main/java/com/gildedgames/aether/common/events/listeners/player/PlayerMountListener.java b/src/main/java/com/gildedgames/aether/common/events/listeners/player/PlayerMountListener.java deleted file mode 100644 index f3016908be..0000000000 --- a/src/main/java/com/gildedgames/aether/common/events/listeners/player/PlayerMountListener.java +++ /dev/null @@ -1,226 +0,0 @@ -package com.gildedgames.aether.common.events.listeners.player; - -import com.gildedgames.aether.api.entity.IMount; -import com.gildedgames.aether.api.entity.IMountProcessor; -import com.gildedgames.aether.common.AetherCore; -import com.gildedgames.aether.common.entities.mounts.IFlyingMountData; -import com.gildedgames.aether.common.entities.multipart.AetherMultiPartMount; -import net.minecraft.block.state.IBlockState; -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityCreature; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.SharedMonsterAttributes; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.util.math.BlockPos; -import net.minecraftforge.event.entity.EntityMountEvent; -import net.minecraftforge.event.entity.living.LivingAttackEvent; -import net.minecraftforge.event.entity.living.LivingEvent; -import net.minecraftforge.event.entity.player.PlayerInteractEvent; -import net.minecraftforge.fml.common.Mod; -import net.minecraftforge.fml.common.eventhandler.Event; -import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; - -@Mod.EventBusSubscriber -public class PlayerMountListener -{ - - @SubscribeEvent - public static void onPlayerInteract(final PlayerInteractEvent.EntityInteractSpecific event) - { - Entity target = event.getTarget(); - - if (target instanceof AetherMultiPartMount) - { - target = ((AetherMultiPartMount) target).getEntity(); - } - - if (target instanceof IMount) - { - final IMount mount = (IMount) target; - final IMountProcessor processor = mount.getMountProcessor(); - - if (processor.canBeMounted(target) && !event.getEntityPlayer().isRiding() - && processor.canProcessMountInteraction(event.getTarget(), event.getEntityPlayer())) - { - if (target.getPassengers().contains(event.getEntityPlayer())) - { - event.getEntityPlayer().dismountEntity(target); - - processor.onDismountedBy(target, event.getEntityPlayer()); - } - else - { - if (!event.getWorld().isRemote) - { - event.getEntityPlayer().startRiding(target); - } - - processor.onMountedBy(target, event.getEntityPlayer()); - - AetherCore.PROXY.displayDismountMessage(event.getEntityPlayer()); - } - } - } - } - - @SubscribeEvent - public static void onLivingEntityUpdate(final LivingEvent.LivingUpdateEvent event) - { - if (event.getEntity() instanceof EntityPlayer) - { - final EntityPlayer player = (EntityPlayer) event.getEntity(); - - final Entity riding = player.getRidingEntity(); - - if (riding instanceof IMount && riding instanceof EntityLivingBase) - { - final IMount mount = (IMount) riding; - final IMountProcessor processor = mount.getMountProcessor(); - - final EntityLivingBase livingMount = (EntityLivingBase) riding; - - livingMount.renderYawOffset = player.renderYawOffset; - livingMount.setJumping(false); - livingMount.moveStrafing = 0.0F; - livingMount.moveForward = 0.0F; - livingMount.randomYawVelocity = 0.0F; - livingMount.stepHeight = processor.getMountedStepHeight(livingMount); - - PlayerMountListener.processSteering(mount, livingMount, player); - - processor.onUpdate(livingMount, player); - } - } - } - - @SubscribeEvent - public static void onEntityAttacked(final LivingAttackEvent event) - { - if (event.getEntity() instanceof IMount && !event.getEntity().getPassengers().isEmpty()) - { - final Entity riding = event.getEntity().getPassengers().get(0); - - if (event.getSource().getTrueSource() == riding) - { - event.setResult(Event.Result.DENY); - } - } - } - - @SubscribeEvent - public static void onMountEvent(final EntityMountEvent event) - { - final Entity entity = event.getEntityBeingMounted(); - - if (event.isDismounting() && entity instanceof IMount && !entity.world.isRemote) - { - if (!entity.onGround || (entity instanceof IFlyingMountData && ((IFlyingMountData) entity).isFastFalling())) - { - event.setCanceled(true); - } - } - } - - private static void processSteering(final IMount mountImpl, final EntityLivingBase mount, final EntityPlayer rider) - { - final IMountProcessor processor = mountImpl.getMountProcessor(); - - if (mount instanceof EntityCreature) - { - ((EntityCreature) mount).getNavigator().clearPath(); - } - - mount.setAIMoveSpeed((float) mount.getEntityAttribute(SharedMonsterAttributes.MOVEMENT_SPEED).getAttributeValue()); - - mount.rotationYaw = rider.rotationYaw; - mount.prevRotationYaw = mount.rotationYaw; - mount.rotationPitch = rider.rotationPitch * 0.5F; - - mount.rotationYaw = mount.rotationYaw % 360.0F; - mount.rotationPitch = mount.rotationPitch % 360.0F; - - mount.renderYawOffset = mount.rotationYaw; - mount.rotationYawHead = mount.renderYawOffset; - - float strafe = rider.moveStrafing * 0.5F; - float forward = rider.moveForward * (mount.onGround ? 0.5F : 1.0F); - - if (forward <= 0.0F) - { - forward *= 0.25F; - } - - final boolean riderIsJumping = rider.isJumping; - - if (riderIsJumping) - { - processor.onHoldSpaceBar(mount, rider); - - mount.isAirBorne = true; - } - - mount.jumpMovementFactor = mount.getAIMoveSpeed() * 0.1F; - - final double oldMotionY = mount.motionY; - - mount.motionY = 0.0F; - - final float oldLimbSwingAmount = mount.limbSwingAmount; - final float oldPrevLimbSwingAmount = mount.prevLimbSwingAmount; - final float oldLimbSwing = mount.limbSwing; - - mount.limbSwing = 0.0F; - mount.limbSwingAmount = 0.0F; - mount.prevLimbSwingAmount = 0.0F; - - if ((strafe > 0 || strafe < 0) && (forward > 0 || forward < 0)) - { - strafe *= 0.5F; - forward *= 0.5F; - } - - float f6 = 0.91F; - BlockPos.PooledMutableBlockPos blockpos$pooledmutableblockpos = BlockPos.PooledMutableBlockPos - .retain(mount.posX, mount.getEntityBoundingBox().minY - 1.0D, mount.posZ); - - if (mount.onGround) - { - IBlockState underState = mount.world.getBlockState(blockpos$pooledmutableblockpos); - f6 = underState.getBlock().getSlipperiness(underState, mount.world, blockpos$pooledmutableblockpos, mount) * 0.91F; - } - - float f7 = 0.16277136F / (f6 * f6 * f6); - float friction; - - if (mount.onGround) - { - friction = mount.getAIMoveSpeed() * f7; - } - else - { - friction = mount.jumpMovementFactor; - } - - mount.moveRelative(strafe, 0.0F, forward, friction); - - mount.limbSwingAmount = oldLimbSwingAmount; - mount.prevLimbSwingAmount = oldPrevLimbSwingAmount; - mount.limbSwing = oldLimbSwing; - - mount.motionY = oldMotionY; - - /*mount.prevLimbSwingAmount = mount.limbSwingAmount; - double d1 = mount.posX - mount.prevPosX; - double d0 = mount.posZ - mount.prevPosZ; - float f2 = MathHelper.sqrt_double(d1 * d1 + d0 * d0) * 4.0F; - - if (f2 > 1.0F) - { - f2 = 1.0F; - } - - mount.limbSwingAmount += (f2 - mount.limbSwingAmount) * 0.4F; - mount.limbSwing += mount.limbSwingAmount;*/ - } - -} diff --git a/src/main/java/com/gildedgames/aether/common/events/listeners/player/PlayerMovementListener.java b/src/main/java/com/gildedgames/aether/common/events/listeners/player/PlayerMovementListener.java deleted file mode 100644 index 8bcaf1f1f7..0000000000 --- a/src/main/java/com/gildedgames/aether/common/events/listeners/player/PlayerMovementListener.java +++ /dev/null @@ -1,61 +0,0 @@ -package com.gildedgames.aether.common.events.listeners.player; - -import com.gildedgames.aether.api.registrar.BlocksAether; -import com.gildedgames.aether.common.AetherCore; -import com.gildedgames.aether.common.util.helpers.WorldUtil; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.util.math.AxisAlignedBB; -import net.minecraftforge.event.entity.living.LivingEvent; -import net.minecraftforge.fml.common.Mod; -import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; - -@Mod.EventBusSubscriber -public class PlayerMovementListener -{ - @SubscribeEvent - public static void onLivingEntityUpdate(LivingEvent.LivingUpdateEvent event) - { - final EntityLivingBase entity = event.getEntityLiving(); - - // Do not scan blocks beneath a player if they are not on the ground - if (!entity.onGround) - { - return; - } - - // Do not affect entities in water - if (entity.isInWater()) - { - return; - } - - // Do not scan blocks beneath "sleeping" entities (entities which are not moving) - // Due to floating point inaccuracy, we use an epsilon of 0.001 - if (Math.abs(entity.motionX + entity.motionY + entity.motionZ) < 0.001D) - { - return; - } - - // Spectators should not be affected by quicksoil - if (entity instanceof EntityPlayer) - { - if (((EntityPlayer) entity).isSpectator()) - { - return; - } - } - - AxisAlignedBB bb = entity.getEntityBoundingBox(); - - // Set height of bounding box to 0.3, offset 0.3 into ground - // Prevents scanning of all the blocks above an entity - AxisAlignedBB bbBelow = new AxisAlignedBB(bb.minX - 0.1D, bb.minY - 0.3D, bb.minZ - 0.1D, bb.maxX + 0.1D, bb.minY, bb.maxZ + 0.1D); - - // We assume the blocks under an entity are always loaded - if (WorldUtil.isBlockInAABB(bbBelow, entity.getEntityWorld(), BlocksAether.quicksoil.getDefaultState(), false)) - { - AetherCore.PROXY.modifyEntityQuicksoil(entity); - } - } -} diff --git a/src/main/java/com/gildedgames/aether/common/events/listeners/player/PlayerPlaceBlockListener.java b/src/main/java/com/gildedgames/aether/common/events/listeners/player/PlayerPlaceBlockListener.java deleted file mode 100644 index 6ecc78f4e2..0000000000 --- a/src/main/java/com/gildedgames/aether/common/events/listeners/player/PlayerPlaceBlockListener.java +++ /dev/null @@ -1,76 +0,0 @@ -package com.gildedgames.aether.common.events.listeners.player; - -import com.gildedgames.aether.api.chunk.IPlacementFlagCapability; -import com.gildedgames.aether.api.registrar.CapabilitiesAether; -import com.gildedgames.aether.common.blocks.IBlockSnowy; -import com.gildedgames.aether.common.capabilities.entity.player.PlayerAether; -import com.gildedgames.aether.common.entities.animals.EntityCarrionSprout; -import com.gildedgames.aether.common.entities.monsters.EntityAechorPlant; -import net.minecraft.block.Block; -import net.minecraft.block.BlockSnow; -import net.minecraft.block.state.IBlockState; -import net.minecraft.entity.EntityLiving; -import net.minecraft.util.EnumFacing; -import net.minecraft.util.math.AxisAlignedBB; -import net.minecraftforge.event.world.BlockEvent; -import net.minecraftforge.fml.common.Mod; -import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; - -import java.util.List; - -@Mod.EventBusSubscriber -public class PlayerPlaceBlockListener -{ - @SubscribeEvent - public static void onBlockPlaced(final BlockEvent.PlaceEvent event) - { - final List<EntityLiving> entities = event.getWorld().getEntitiesWithinAABB(EntityLiving.class, new AxisAlignedBB(event.getPos())); - - for (final EntityLiving entity : entities) - { - if (entity instanceof EntityAechorPlant || entity instanceof EntityCarrionSprout) - { - event.setCanceled(true); - - break; - } - } - } - - @SubscribeEvent - public static void onPlaceBlockEvent(final BlockEvent.PlaceEvent event) - { - final IPlacementFlagCapability data = event.getWorld().getChunk(event.getPos()) - .getCapability(CapabilitiesAether.CHUNK_PLACEMENT_FLAG, EnumFacing.UP); - - if (data != null) - { - data.markModified(event.getPos()); - } - - final PlayerAether aePlayer = PlayerAether.getPlayer(event.getPlayer()); - - IBlockState replaced = event.getBlockSnapshot().getReplacedBlock(), placed = event.getPlacedBlock(); - Block block = placed.getBlock(); - - if (replaced.getBlock() instanceof BlockSnow && replaced.getValue(BlockSnow.LAYERS) == 1 && block instanceof IBlockSnowy) - { - event.getWorld().setBlockState(event.getPos(), placed.withProperty(IBlockSnowy.PROPERTY_SNOWY, Boolean.TRUE), 2); - } - else if (replaced.getBlock() instanceof IBlockSnowy) - { - boolean snowy = replaced.getValue(IBlockSnowy.PROPERTY_SNOWY); - - if (block instanceof IBlockSnowy && snowy) - { - event.getWorld().setBlockState(event.getPos(), placed.withProperty(IBlockSnowy.PROPERTY_SNOWY, true), 2); - } - else if (block instanceof BlockSnow) - { - event.getWorld().setBlockState(event.getPos(), replaced.withProperty(IBlockSnowy.PROPERTY_SNOWY, Boolean.TRUE), 2); - } - } - - aePlayer.onPlaceBlock(event); - } -} diff --git a/src/main/java/com/gildedgames/aether/common/events/listeners/player/PlayerRespawnListener.java b/src/main/java/com/gildedgames/aether/common/events/listeners/player/PlayerRespawnListener.java deleted file mode 100644 index b51bfc5ee4..0000000000 --- a/src/main/java/com/gildedgames/aether/common/events/listeners/player/PlayerRespawnListener.java +++ /dev/null @@ -1,84 +0,0 @@ -package com.gildedgames.aether.common.events.listeners.player; - -import com.gildedgames.aether.common.capabilities.entity.player.PlayerAether; -import com.gildedgames.aether.common.capabilities.entity.player.modules.PlayerCampfiresModule; -import com.gildedgames.aether.common.capabilities.entity.player.modules.PlayerProgressModule; -import com.gildedgames.aether.common.init.DimensionsAether; -import com.gildedgames.aether.common.network.NetworkingAether; -import com.gildedgames.aether.common.network.packets.PacketMarkPlayerDeath; -import com.gildedgames.aether.common.util.helpers.IslandHelper; -import com.gildedgames.orbis.lib.util.mc.BlockUtil; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.EntityPlayerMP; -import net.minecraft.init.Blocks; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.text.TextComponentString; -import net.minecraftforge.fml.common.Mod; -import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; -import net.minecraftforge.fml.common.gameevent.PlayerEvent; - -@Mod.EventBusSubscriber -public class PlayerRespawnListener -{ - - @SubscribeEvent - public static void onPlayerRespawn(final PlayerEvent.PlayerRespawnEvent event) - { - final PlayerAether aePlayer = PlayerAether.getPlayer(event.player); - aePlayer.onRespawn(event); - - if (event.player instanceof EntityPlayerMP && ((EntityPlayerMP) event.player).world.provider.getDimensionType() == DimensionsAether.AETHER) - { - BlockPos bedPos = event.player.getBedLocation(((EntityPlayerMP) event.player).dimension); - final EntityPlayerMP mp = (EntityPlayerMP) event.player; - - if (bedPos != null) - { - bedPos = EntityPlayer.getBedSpawnLocation(mp.getServerWorld(), bedPos, mp.isSpawnForced(mp.dimension)); - } - - PlayerCampfiresModule campfiresModule = aePlayer.getModule(PlayerCampfiresModule.class); - BlockPos closestCampfire = campfiresModule.getClosestCampfire(); - BlockPos islandSpawn = IslandHelper.getOutpostPos(mp.getServerWorld(), mp.getPosition()); - - final BlockPos respawnPoint = closestCampfire != null ? closestCampfire.add(-1, 0, -1) : islandSpawn; - boolean obstructed = false; - - if (campfiresModule.shouldRespawnAtCampfire() || bedPos == null) - { - BlockPos pos = mp.world.getTopSolidOrLiquidBlock(respawnPoint); - - if (pos.getY() > respawnPoint.getY()) - { - pos = respawnPoint; - } - - final BlockPos down = pos.down(); - - obstructed = mp.getServerWorld().getBlockState(pos.up()) != Blocks.AIR.getDefaultState() - || mp.getServerWorld().getBlockState(pos.up(2)) != Blocks.AIR.getDefaultState(); - - if (BlockUtil.isSolid(mp.getServerWorld().getBlockState(down)) && !obstructed) - { - mp.connection.setPlayerLocation(pos.getX(), pos.getY() + 1, pos.getZ(), 0, 0); - - PlayerProgressModule progressModule = aePlayer.getModule(PlayerProgressModule.class); - - if (!progressModule.hasDiedInAether()) - { - progressModule.setHasDiedInAether(true); - - NetworkingAether.sendPacketToPlayer(new PacketMarkPlayerDeath(progressModule.hasDiedInAether()), mp); - } - } - - campfiresModule.setShouldRespawnAtCampfire(false); - } - - if (obstructed) - { - mp.sendMessage(new TextComponentString("The nearest Outpost was obstructed with blocks - you could not respawn there.")); - } - } - } -} diff --git a/src/main/java/com/gildedgames/aether/common/events/listeners/player/PlayerTeleportListener.java b/src/main/java/com/gildedgames/aether/common/events/listeners/player/PlayerTeleportListener.java deleted file mode 100644 index a33e9d211e..0000000000 --- a/src/main/java/com/gildedgames/aether/common/events/listeners/player/PlayerTeleportListener.java +++ /dev/null @@ -1,147 +0,0 @@ -package com.gildedgames.aether.common.events.listeners.player; - -import com.gildedgames.aether.common.AetherCore; -import com.gildedgames.aether.common.capabilities.entity.player.PlayerAether; -import com.gildedgames.aether.common.capabilities.entity.player.modules.PlayerTeleportingModule; -import com.gildedgames.aether.common.containers.ContainerLoadingScreen; -import com.gildedgames.aether.common.events.PostAetherTravelEvent; -import com.gildedgames.aether.common.init.DimensionsAether; -import com.gildedgames.aether.common.network.AetherGuiHandler; -import com.gildedgames.aether.common.network.NetworkingAether; -import com.gildedgames.aether.common.network.packets.PacketCloseLoadingScreen; -import com.gildedgames.aether.common.network.packets.PacketLoadingScreenPercent; -import com.gildedgames.aether.common.util.helpers.AetherHelper; -import com.gildedgames.aether.common.util.helpers.MathUtil; -import com.gildedgames.aether.common.world.preparation.PrepHelper; -import com.gildedgames.orbis.lib.util.mc.BlockPosDimension; -import com.google.common.collect.Lists; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.EntityPlayerMP; -import net.minecraft.item.Item; -import net.minecraft.item.crafting.IRecipe; -import net.minecraft.util.ResourceLocation; -import net.minecraft.world.chunk.Chunk; -import net.minecraftforge.event.entity.EntityTravelToDimensionEvent; -import net.minecraftforge.event.entity.living.LivingEvent; -import net.minecraftforge.fml.common.Mod; -import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; -import net.minecraftforge.fml.common.registry.ForgeRegistries; - -import java.util.List; - -@Mod.EventBusSubscriber -public class PlayerTeleportListener -{ - - @SubscribeEvent - public static void onEvent(EntityTravelToDimensionEvent event) - { - if (AetherHelper.isEnabled(event.getDimension()) && AetherHelper.isEnabled(event.getDimension()) && event.getEntity() instanceof EntityPlayer) - { - PlayerAether playerAether = PlayerAether.getPlayer((EntityPlayer) event.getEntity()); - - if (!AetherHelper.isNecromancerTower(event.getEntity().dimension)) - { - playerAether.getModule(PlayerTeleportingModule.class) - .setNonAetherPos(new BlockPosDimension(event.getEntity().getPosition(), event.getEntity().dimension)); - } - } - } - - @SubscribeEvent - public static void onEvent(PostAetherTravelEvent event) - { - if (!event.getEntity().getEntityWorld().isRemote) - { - if (event.getEntity() instanceof EntityPlayer) - { - EntityPlayer player = (EntityPlayer) event.getEntity(); - - player.openGui(AetherCore.INSTANCE, AetherGuiHandler.AETHER_LOADING_ID, player.getEntityWorld(), player.getPosition().getX(), - player.getPosition().getY(), player.getPosition().getZ()); - } - } - } - - @SubscribeEvent - public static void onEvent(LivingEvent.LivingUpdateEvent event) - { - if (!event.getEntity().getEntityWorld().isRemote && event.getEntity() instanceof EntityPlayer) - { - EntityPlayer player = (EntityPlayer) event.getEntity(); - PlayerAether playerAether = PlayerAether.getPlayer(player); - - if (player.getEntityWorld().provider.getDimensionType() != DimensionsAether.AETHER) - { - return; - } - - PlayerTeleportingModule teleportingModule = playerAether.getModule(PlayerTeleportingModule.class); - - if (player.openContainer instanceof ContainerLoadingScreen) - { - if (PrepHelper.isSectorLoaded(player.getEntityWorld(), player.chunkCoordX, player.chunkCoordZ)) - { - boolean isLoaded = true; - - int radius = Math.min(player.getServer().getPlayerList().getViewDistance(), 10); - - int count = 0; - - for (int x = player.chunkCoordX - radius; x < player.chunkCoordX + radius; x++) - { - for (int z = player.chunkCoordZ - radius; z < player.chunkCoordZ + radius; z++) - { - Chunk chunk = player.world.getChunkProvider().getLoadedChunk(x, z); - - if (chunk == null) - { - isLoaded = false; - } - else - { - count++; - } - } - } - - if (isLoaded) - { - player.closeScreen(); - - NetworkingAether.sendPacketToPlayer(new PacketCloseLoadingScreen(), (EntityPlayerMP) player); - - NetworkingAether.sendPacketToPlayer(new PacketLoadingScreenPercent(0.0F), (EntityPlayerMP) player); - - List<IRecipe> toUnlock = Lists.newArrayList(); - - for (IRecipe r : ForgeRegistries.RECIPES) - { - ResourceLocation loc = Item.REGISTRY.getNameForObject(r.getRecipeOutput().getItem()); - - if (loc != null && loc.getNamespace().equals(AetherCore.MOD_ID)) - { - toUnlock.add(r); - } - } - - player.unlockRecipes(toUnlock); - } - else - { - float diam = radius + radius; - - float percent = ((float) count / (diam * diam)) * 100.0F; - - if (!MathUtil.epsilonEquals(teleportingModule.getLastPercent(), percent)) - { - teleportingModule.setLastPercent(percent); - - NetworkingAether.sendPacketToPlayer(new PacketLoadingScreenPercent(percent), (EntityPlayerMP) player); - } - } - } - } - } - } -} diff --git a/src/main/java/com/gildedgames/aether/common/events/listeners/player/PlayerWakeListener.java b/src/main/java/com/gildedgames/aether/common/events/listeners/player/PlayerWakeListener.java deleted file mode 100644 index bff47261fd..0000000000 --- a/src/main/java/com/gildedgames/aether/common/events/listeners/player/PlayerWakeListener.java +++ /dev/null @@ -1,51 +0,0 @@ -package com.gildedgames.aether.common.events.listeners.player; - -import com.gildedgames.aether.common.init.DimensionsAether; -import net.minecraft.server.MinecraftServer; -import net.minecraft.world.World; -import net.minecraft.world.WorldServer; -import net.minecraftforge.event.entity.player.PlayerWakeUpEvent; -import net.minecraftforge.fml.common.FMLCommonHandler; -import net.minecraftforge.fml.common.Mod; -import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; - -@Mod.EventBusSubscriber -public class PlayerWakeListener -{ - @SubscribeEvent - public static void onPlayerSleepInBed(final PlayerWakeUpEvent event) - { - final World world = event.getEntityPlayer().world; - - if (!world.isRemote && world.provider.getDimensionType() == DimensionsAether.AETHER) - { - final MinecraftServer server = FMLCommonHandler.instance().getMinecraftServerInstance(); - - final WorldServer worldServer = server.getWorld(0); - - if (worldServer.playerEntities.size() > 0) - { - if (worldServer.areAllPlayersAsleep()) - { - performTimeSet(event, world, worldServer); - } - } - else - { - performTimeSet(event, world, worldServer); - } - } - } - - public static void performTimeSet(PlayerWakeUpEvent event, World world, WorldServer worldServer) - { - if (world.getGameRules().getBoolean("doDaylightCycle") && event.getEntityPlayer().isPlayerFullyAsleep()) - { - final long i = worldServer.getWorldInfo().getWorldTime() + 24000L; - - worldServer.getWorldInfo().setWorldTime(i - i % 24000L); - } - } - - -} diff --git a/src/main/java/com/gildedgames/aether/common/events/listeners/player/PlayerWaterListener.java b/src/main/java/com/gildedgames/aether/common/events/listeners/player/PlayerWaterListener.java deleted file mode 100644 index da7fed7bfe..0000000000 --- a/src/main/java/com/gildedgames/aether/common/events/listeners/player/PlayerWaterListener.java +++ /dev/null @@ -1,61 +0,0 @@ -package com.gildedgames.aether.common.events.listeners.player; - -import com.gildedgames.aether.api.entity.effects.IAetherStatusEffectPool; -import com.gildedgames.aether.api.entity.effects.IAetherStatusEffects; -import com.gildedgames.aether.api.registrar.BiomesAether; -import com.gildedgames.aether.api.registrar.CapabilitiesAether; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.world.World; -import net.minecraftforge.fml.common.Mod; -import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; -import net.minecraftforge.fml.common.gameevent.TickEvent; - -@Mod.EventBusSubscriber -public class PlayerWaterListener -{ - public static int tickRate = 30; - public static int amount = 5; - - @SubscribeEvent - public static void onPlayerStunned(final TickEvent.PlayerTickEvent event) - { - if (event.player != null) - { - EntityPlayer player = event.player; - - if (player.world != null) - { - World world = player.world; - - if (world.getBiome(player.getPosition()) == BiomesAether.IRRADIATED_FORESTS) - { - IAetherStatusEffectPool statusEffectPool = player.getCapability(CapabilitiesAether.STATUS_EFFECT_POOL, null); - - if (player.isInWater()) - { - if (!player.isCreative()) - { - boolean tick = world.getTotalWorldTime() % tickRate == 0; - - if (tick) - { - if (statusEffectPool != null) - { - if (!statusEffectPool.effectExists(IAetherStatusEffects.effectTypes.IRRADIATION)) - { - statusEffectPool.applyStatusEffect(IAetherStatusEffects.effectTypes.IRRADIATION, amount); - } - else - { - statusEffectPool.modifyActiveEffectBuildup(IAetherStatusEffects.effectTypes.IRRADIATION, - statusEffectPool.getBuildupFromEffect(IAetherStatusEffects.effectTypes.IRRADIATION) + amount); - } - } - } - } - } - } - } - } - } -} diff --git a/src/main/java/com/gildedgames/aether/common/events/listeners/trade/TradeInteractListener.java b/src/main/java/com/gildedgames/aether/common/events/listeners/trade/TradeInteractListener.java deleted file mode 100644 index 9a7248b711..0000000000 --- a/src/main/java/com/gildedgames/aether/common/events/listeners/trade/TradeInteractListener.java +++ /dev/null @@ -1,55 +0,0 @@ -package com.gildedgames.aether.common.events.listeners.trade; - -import com.gildedgames.aether.api.registrar.ItemsAether; -import com.gildedgames.aether.common.AetherCore; -import com.gildedgames.aether.common.capabilities.entity.player.PlayerAether; -import com.gildedgames.aether.common.capabilities.entity.player.modules.PlayerTradeModule; -import com.gildedgames.aether.common.util.helpers.PlayerUtil; -import net.minecraft.entity.passive.EntityCow; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraft.util.EnumHand; -import net.minecraftforge.event.entity.player.PlayerInteractEvent; -import net.minecraftforge.fml.common.Mod; -import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; - -@Mod.EventBusSubscriber -public class TradeInteractListener -{ - - @SubscribeEvent - public static void onPlayerInteract(final PlayerInteractEvent.EntityInteract event) - { - if (event.getTarget() instanceof EntityCow && !((EntityCow) event.getTarget()).isChild()) - { - ItemStack item = event.getEntityPlayer().getHeldItem(event.getHand()); - - if (item.getItem() == ItemsAether.skyroot_bucket) - { - PlayerUtil.fillBucketInHand(event.getEntityPlayer(), event.getHand(), item, new ItemStack(ItemsAether.skyroot_milk_bucket)); - } - } - else if (event.getSide().isServer() && event.getTarget() instanceof EntityPlayer && event.getHand() == EnumHand.MAIN_HAND && event.getItemStack() - .isEmpty()) - { - PlayerTradeModule me = PlayerAether.getPlayer(event.getEntityPlayer()).getModule(PlayerTradeModule.class); - PlayerTradeModule other = PlayerAether.getPlayer((EntityPlayer) event.getTarget()).getModule(PlayerTradeModule.class); - - if (me.getPlayer().equals(other.getTarget()) && other.canAccept(event.getEntity().getPosition())) - { - me.setTrading(other); - other.accept(); - AetherCore.LOGGER.info(event.getTarget().getDisplayName().getFormattedText() + " is now trading with " + event.getEntity().getDisplayName() - .getFormattedText()); - } - else if (!other.isTrading() && me.canRequest()) - { - me.request(other.getPlayer()); - } - else if (me.getFailTime() == 0) - { - me.failRequest(other); - } - } - } -} diff --git a/src/main/java/com/gildedgames/aether/common/events/listeners/trade/TradeItemPickupListener.java b/src/main/java/com/gildedgames/aether/common/events/listeners/trade/TradeItemPickupListener.java deleted file mode 100644 index fc4277f6bf..0000000000 --- a/src/main/java/com/gildedgames/aether/common/events/listeners/trade/TradeItemPickupListener.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.gildedgames.aether.common.events.listeners.trade; - -import com.gildedgames.aether.common.containers.ContainerTrade; -import net.minecraftforge.fml.common.Mod; -import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; -import net.minecraftforge.fml.common.gameevent.PlayerEvent; - -@Mod.EventBusSubscriber -public class TradeItemPickupListener -{ - - @SubscribeEvent - public static void onPlayerPickUpItem(final PlayerEvent.ItemPickupEvent event) - { - if (event.player.openContainer instanceof ContainerTrade) - { - ((ContainerTrade) event.player.openContainer).addItemToQueue(event.getStack()); - } - } - -} diff --git a/src/main/java/com/gildedgames/aether/common/events/listeners/world/WorldFallListener.java b/src/main/java/com/gildedgames/aether/common/events/listeners/world/WorldFallListener.java deleted file mode 100644 index 3c0556f2b7..0000000000 --- a/src/main/java/com/gildedgames/aether/common/events/listeners/world/WorldFallListener.java +++ /dev/null @@ -1,72 +0,0 @@ -package com.gildedgames.aether.common.events.listeners.world; - -import com.gildedgames.aether.common.init.DimensionsAether; -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.util.DamageSource; -import net.minecraftforge.event.entity.living.LivingEvent; -import net.minecraftforge.fml.common.Mod; -import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; -import net.minecraftforge.fml.common.gameevent.TickEvent; - -@Mod.EventBusSubscriber -public class WorldFallListener -{ - @SubscribeEvent - public static void onLivingEntityUpdate(final LivingEvent.LivingUpdateEvent event) - { - final Entity entity = event.getEntity(); - - if (!entity.world.isRemote) - { - if (entity.world.provider.getDimensionType() == DimensionsAether.AETHER && entity.posY < -10) - { - if (entity.isBeingRidden()) - { - entity.removePassengers(); - } - - if (entity.isRiding()) - { - entity.dismountRidingEntity(); - } - - entity.attackEntityFrom(DamageSource.OUT_OF_WORLD, 200.0F); - - entity.setDead(); - } - } - } - @SubscribeEvent - public static void onPlayerEntityTick(final TickEvent.PlayerTickEvent event) - { - final EntityPlayer player = event.player; - - if (!player.world.isRemote) - { - if (player.world.provider.getDimensionType() == DimensionsAether.AETHER && player.posY < -10) - { - if (player.isBeingRidden()) - { - player.removePassengers(); - } - - if (player.isRiding()) - { - player.dismountRidingEntity(); - } - - player.attackEntityFrom(DamageSource.OUT_OF_WORLD, 200.0F); - - if (player.getHealth() <= 0 && !player.isDead) - { - player.isDead = true; - } - - player.world.playerEntities.remove(player); - player.world.onEntityRemoved(player); - } - } - } -} \ No newline at end of file diff --git a/src/main/java/com/gildedgames/aether/common/events/listeners/world/WorldLoadListener.java b/src/main/java/com/gildedgames/aether/common/events/listeners/world/WorldLoadListener.java deleted file mode 100644 index a29702792a..0000000000 --- a/src/main/java/com/gildedgames/aether/common/events/listeners/world/WorldLoadListener.java +++ /dev/null @@ -1,44 +0,0 @@ -package com.gildedgames.aether.common.events.listeners.world; - -import com.gildedgames.aether.common.blocks.IBlockRadiation; -import net.minecraft.block.Block; -import net.minecraft.block.state.IBlockState; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.chunk.Chunk; -import net.minecraft.world.chunk.storage.ExtendedBlockStorage; -import net.minecraftforge.event.world.ChunkEvent; -import net.minecraftforge.fml.common.Mod; -import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; - -import java.util.Random; - -@Mod.EventBusSubscriber -public class WorldLoadListener -{ - @SubscribeEvent - public static void onWorldLoad(final ChunkEvent.Load event) - { - int j = event.getChunk().x * 16; - int k = event.getChunk().z * 16; - - for (ExtendedBlockStorage extendedblockstorage : event.getChunk().getBlockStorageArray()) - { - if (extendedblockstorage != Chunk.NULL_BLOCK_STORAGE) - { - int updateLCG = (new Random()).nextInt(); - updateLCG = updateLCG * 3 + 1013904223; - int j1 = updateLCG >> 2; - int k1 = j1 & 15; - int l1 = j1 >> 8 & 15; - int i2 = j1 >> 16 & 15; - IBlockState iblockstate = extendedblockstorage.get(k1, i2, l1); - Block block = iblockstate.getBlock(); - - if (block instanceof IBlockRadiation) - { - event.getWorld().scheduleUpdate(new BlockPos(k1 + j, i2 + extendedblockstorage.getYLocation(), l1 + k), block, 1); - } - } - } - } -} diff --git a/src/main/java/com/gildedgames/aether/common/events/listeners/world/WorldTickListener.java b/src/main/java/com/gildedgames/aether/common/events/listeners/world/WorldTickListener.java deleted file mode 100644 index 2d71e5493e..0000000000 --- a/src/main/java/com/gildedgames/aether/common/events/listeners/world/WorldTickListener.java +++ /dev/null @@ -1,188 +0,0 @@ -package com.gildedgames.aether.common.events.listeners.world; - -import com.gildedgames.aether.api.registrar.BiomesAether; -import com.gildedgames.aether.api.registrar.BlocksAether; -import com.gildedgames.aether.api.registrar.CapabilitiesAether; -import com.gildedgames.aether.api.world.spawn.ISpawnHandler; -import com.gildedgames.aether.api.world.spawn.ISpawnSystem; -import com.gildedgames.aether.api.world.spawn.conditions.IConditionPosition; -import com.gildedgames.aether.common.entities.animals.*; -import com.gildedgames.aether.common.entities.monsters.*; -import com.gildedgames.aether.common.init.DimensionsAether; -import com.gildedgames.aether.common.world.spawning.SpawnEntry; -import com.gildedgames.aether.common.world.spawning.SpawnHandler; -import com.gildedgames.aether.common.world.spawning.conditions.*; -import com.gildedgames.aether.common.world.spawning.util.FlyingPositionSelector; -import com.gildedgames.aether.common.world.spawning.util.OffsetFromTopBlockPositionSelector; -import com.gildedgames.aether.common.world.spawning.util.UndergroundPositionSelector; -import com.google.common.collect.Lists; -import net.minecraft.entity.EntityLiving; -import net.minecraft.init.Blocks; -import net.minecraft.world.World; -import net.minecraftforge.fml.common.Mod; -import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; -import net.minecraftforge.fml.common.gameevent.TickEvent.Phase; -import net.minecraftforge.fml.common.gameevent.TickEvent.WorldTickEvent; - -import java.util.Collections; -import java.util.List; - -@Mod.EventBusSubscriber -public class WorldTickListener -{ - - public static List<ISpawnHandler> getSpawnHandlers(final World world) - { - if (world.provider.getDimensionType() != DimensionsAether.AETHER) - { - return Collections.emptyList(); - } - - final IConditionPosition grassCheck = new CheckBlockUnderneath(BlocksAether.aether_grass); - final IConditionPosition iceCheck = new CheckBlockUnderneath(BlocksAether.highlands_packed_ice, BlocksAether.highlands_ice, BlocksAether.aether_grass); - final IConditionPosition groundCheck = new CheckBlockUnderneath(BlocksAether.aether_grass, BlocksAether.holystone); - final IConditionPosition stoneCheck = new CheckBlockUnderneath(BlocksAether.holystone); - final IConditionPosition isUnderground = new CheckIsUnderground(); - final IConditionPosition arcticPeaks = new CheckBiome(BiomesAether.ARCTIC_PEAKS); - final IConditionPosition notForgot = new CheckBannedBiomes(BiomesAether.FORGOTTEN_HIGHLANDS); - final IConditionPosition forgottenHighlands = new CheckBiome(BiomesAether.FORGOTTEN_HIGHLANDS); - - /** PASSIVE **/ - final SpawnHandler animals = new SpawnHandler("aether_animals").chunkArea(4).targetEntityCountPerArea(9).updateFrequencyInTicks(200); - animals.addWorldCondition(new CheckDimension(DimensionsAether.AETHER)); - - final SpawnEntry burrukai = new SpawnEntry(EntityLiving.SpawnPlacementType.ON_GROUND, EntityBurrukai.class, 10F, 2, 3) - .addCondition(grassCheck).addCondition(notForgot); - final SpawnEntry ram = new SpawnEntry(EntityLiving.SpawnPlacementType.ON_GROUND, EntityKirrid.class, 10F, 2, 3) - .addCondition(grassCheck).addCondition(notForgot); - final SpawnEntry aerbunny = new SpawnEntry(EntityLiving.SpawnPlacementType.ON_GROUND, EntityAerbunny.class, 13F, 3, 5) - .addCondition(grassCheck).addCondition(notForgot); - final SpawnEntry taegore = new SpawnEntry(EntityLiving.SpawnPlacementType.ON_GROUND, EntityTaegore.class, 13F, 2, 3) - .addCondition(grassCheck).addCondition(notForgot); - final SpawnEntry carrion_sprout = new SpawnEntry(EntityLiving.SpawnPlacementType.ON_GROUND, EntityCarrionSprout.class, 10F, 2, 3) - .addCondition(grassCheck).addCondition(notForgot); - final SpawnEntry glactrix = new SpawnEntry(EntityLiving.SpawnPlacementType.ON_GROUND, EntityGlactrix.class, 14F, 2, 3).addCondition(arcticPeaks) - .addCondition(iceCheck).addCondition(notForgot); - - animals.addEntry(burrukai); - animals.addEntry(ram); - animals.addEntry(aerbunny); - animals.addEntry(taegore); - animals.addEntry(carrion_sprout); - animals.addEntry(glactrix); - - /** FORGOTTEN HIGHLANDS **/ - - final SpawnEntry sheepuff = new SpawnEntry(EntityLiving.SpawnPlacementType.ON_GROUND, EntitySheepuff.class, 10F, 2, 3) - .addCondition(grassCheck).addCondition(forgottenHighlands); - animals.addEntry(sheepuff); - - /** ATMOSPHERIC **/ - final SpawnHandler atmospheric = new SpawnHandler("aether_atmospheric").chunkArea(4).targetEntityCountPerArea(9).updateFrequencyInTicks(200); - atmospheric.addWorldCondition(new CheckDimension(DimensionsAether.AETHER)); - - final SpawnEntry butterfly = new SpawnEntry(EntityLiving.SpawnPlacementType.IN_AIR, EntityGlitterwing.class, 10F, 1, 6).addCondition(grassCheck); - - atmospheric.addEntry(butterfly); - - /** DAYTIME HOSTILES **/ - final SpawnHandler daytimeHostiles = new SpawnHandler("aether_daytime_hostiles").chunkArea(4).targetEntityCountPerArea(9).updateFrequencyInTicks(1200); - daytimeHostiles.addWorldCondition(new CheckDimension(DimensionsAether.AETHER)); - - final SpawnEntry zephyr = new SpawnEntry(EntityLiving.SpawnPlacementType.IN_AIR, EntityZephyr.class, 5F, 1, 1, - new OffsetFromTopBlockPositionSelector(15)) - .addCondition(new CheckBlockStateUnderneath(Blocks.AIR.getDefaultState())).addCondition(new CheckBlockAtPosition(Blocks.AIR)) - .addCondition(notForgot); - - final SpawnEntry swet = new SpawnEntry(EntityLiving.SpawnPlacementType.ON_GROUND, EntitySwet.class, 10F, 2, 4).addCondition(groundCheck) - .addCondition(notForgot); - - final SpawnEntry aechor_plant = new SpawnEntry(EntityLiving.SpawnPlacementType.ON_GROUND, EntityAechorPlant.class, 10F, 2, 3).addCondition(grassCheck); - - daytimeHostiles.addEntry(zephyr); - daytimeHostiles.addEntry(swet); - daytimeHostiles.addEntry(aechor_plant); - - /** NIGHTTIME HOSTILES **/ - final SpawnHandler nighttimeHostiles = new SpawnHandler("aether_nighttime_hostiles").chunkArea(4).targetEntityCountPerArea(5) - .updateFrequencyInTicks(1200); - nighttimeHostiles.addWorldCondition(new CheckDimension(DimensionsAether.AETHER)); - nighttimeHostiles.addWorldCondition(new CheckTime(CheckTime.Time.NIGHT)); - - final SpawnEntry tempest = new SpawnEntry(EntityLiving.SpawnPlacementType.IN_AIR, EntityTempest.class, 3F, 1, 1, new FlyingPositionSelector()) - .addCondition(new CheckBlockStateUnderneath(Blocks.AIR.getDefaultState())).addCondition(new CheckTime(CheckTime.Time.NIGHT)) - .addCondition(new CheckBlockAtPosition(Blocks.AIR)).addCondition(notForgot); - - final SpawnEntry cockatrice = new SpawnEntry(EntityLiving.SpawnPlacementType.ON_GROUND, EntityCockatrice.class, 12F, 2, 3) - .addCondition(groundCheck).addCondition(new CheckTime(CheckTime.Time.NIGHT)); - - final SpawnEntry varanys = new SpawnEntry(EntityLiving.SpawnPlacementType.ON_GROUND, EntityVaranys.class, 10f, 1, 2) - .addCondition(groundCheck).addCondition(new CheckTime(CheckTime.Time.NIGHT)).addCondition(arcticPeaks); - - nighttimeHostiles.addEntry(tempest); - nighttimeHostiles.addEntry(cockatrice); - nighttimeHostiles.addEntry(varanys); - - /** FLYING **/ - final SpawnHandler flying = new SpawnHandler("aether_flying") - .chunkArea(20) - .targetEntityCountPerArea(1) - .updateFrequencyInTicks(1200); - - flying.addWorldCondition(new CheckDimension(DimensionsAether.AETHER)); - - /* - SpawnEntry aerwhale = new SpawnEntry(EntityLiving.SpawnPlacementType.IN_AIR, EntityAerwhale.class, 10F, 1, 1, - new OffsetFromTopBlockPositionSelector(35)) - .addCondition(new CheckBlockStateUnderneath(Blocks.AIR.getDefaultState())); - - flying.addEntry(aerwhale); - */ - - /** UNDERGROUND **/ - final SpawnHandler underground = new SpawnHandler("aether_underground").chunkArea(4).targetEntityCountPerArea(10).updateFrequencyInTicks(1200); - daytimeHostiles.addWorldCondition(new CheckDimension(DimensionsAether.AETHER)); - - final SpawnEntry cockatriceUnderground = new SpawnEntry(EntityLiving.SpawnPlacementType.ON_GROUND, EntityCockatrice.class, 12F, 1, 3, - new UndergroundPositionSelector()) - .addCondition(stoneCheck).addCondition(isUnderground).addCondition(new CheckBlockAtPosition(Blocks.AIR)); - - final SpawnEntry varanysUnderground = new SpawnEntry(EntityLiving.SpawnPlacementType.ON_GROUND, EntityVaranys.class, 20f, 1, 3, - new UndergroundPositionSelector()) - .addCondition(stoneCheck).addCondition(isUnderground).addCondition(arcticPeaks). - addCondition(new CheckLightLevel(5)).addCondition(new CheckBlockAtPosition(Blocks.AIR)); - - final SpawnEntry tempestUnderground = new SpawnEntry(EntityLiving.SpawnPlacementType.ON_GROUND, EntityTempest.class, 10F, 2, 3, - new UndergroundPositionSelector()) - .addCondition(stoneCheck).addCondition(isUnderground).addCondition(new CheckBlockAtPosition(Blocks.AIR)).addCondition(notForgot); - - underground.addEntry(cockatriceUnderground); - underground.addEntry(tempestUnderground); - underground.addEntry(varanysUnderground); - - return Lists.newArrayList(animals, atmospheric, daytimeHostiles, nighttimeHostiles, flying, underground); - } - - @SubscribeEvent - public static void onWorldTick(final WorldTickEvent event) - { - if (event.phase == Phase.END) - { - final World world = event.world; - - if (!world.isRemote) - { - if (world.getGameRules().getBoolean("doMobSpawning")) - { - final ISpawnSystem system = event.world.getCapability(CapabilitiesAether.SPAWN_SYSTEM, null); - - if (system != null) - { - system.tick(); - } - } - } - } - } - -} diff --git a/src/main/java/com/gildedgames/aether/common/events/listeners/world/WorldWeatherListener.java b/src/main/java/com/gildedgames/aether/common/events/listeners/world/WorldWeatherListener.java deleted file mode 100644 index 09cdd83622..0000000000 --- a/src/main/java/com/gildedgames/aether/common/events/listeners/world/WorldWeatherListener.java +++ /dev/null @@ -1,72 +0,0 @@ -package com.gildedgames.aether.common.events.listeners.world; - -import com.gildedgames.aether.api.entity.effects.IAetherStatusEffectPool; -import com.gildedgames.aether.api.entity.effects.IAetherStatusEffects; -import com.gildedgames.aether.api.registrar.BiomesAether; -import com.gildedgames.aether.api.registrar.CapabilitiesAether; -import com.gildedgames.aether.api.world.islands.precipitation.IPrecipitationManager; -import com.gildedgames.aether.api.world.islands.precipitation.PrecipitationStrength; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.World; -import net.minecraftforge.event.entity.living.LivingEvent; -import net.minecraftforge.fml.common.Mod; -import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; -import net.minecraftforge.fml.common.gameevent.TickEvent; - -@Mod.EventBusSubscriber -public class WorldWeatherListener -{ - @SubscribeEvent - public static void onWeatherEvent(final TickEvent.PlayerTickEvent event) - { - if (event.phase == TickEvent.Phase.END) - { - EntityPlayer player = event.player; - World world = player.world; - BlockPos pos = player.getPosition(); - - IPrecipitationManager precipitation = world.getCapability(CapabilitiesAether.PRECIPITATION_MANAGER, null); - IAetherStatusEffectPool statusEffectPool = player.getCapability(CapabilitiesAether.STATUS_EFFECT_POOL, null); - - if (!player.isCreative()) - { - if (world.isRaining() && world.canSeeSky(pos)) - { - if (precipitation != null && statusEffectPool != null) - { - boolean tick = world.getTotalWorldTime() % 500 == 0; - - int effectStrength = 5; - - if (precipitation.getStrength() == PrecipitationStrength.HEAVY) - { - effectStrength = 10; - } - else if (precipitation.getStrength() == PrecipitationStrength.STORM) - { - effectStrength = 15; - } - - if (tick) - { - if (world.getBiome(pos) == BiomesAether.ARCTIC_PEAKS) - { - if (!statusEffectPool.effectExists(IAetherStatusEffects.effectTypes.FREEZE)) - { - statusEffectPool.applyStatusEffect(IAetherStatusEffects.effectTypes.FREEZE, effectStrength); - } - else - { - statusEffectPool.modifyActiveEffectBuildup(IAetherStatusEffects.effectTypes.FREEZE, - statusEffectPool.getBuildupFromEffect(IAetherStatusEffects.effectTypes.FREEZE) + effectStrength); - } - } - } - } - } - } - } - } -} diff --git a/src/main/java/com/gildedgames/aether/common/init/BiomesAetherInit.java b/src/main/java/com/gildedgames/aether/common/init/BiomesAetherInit.java deleted file mode 100644 index b76eac6e0e..0000000000 --- a/src/main/java/com/gildedgames/aether/common/init/BiomesAetherInit.java +++ /dev/null @@ -1,106 +0,0 @@ -package com.gildedgames.aether.common.init; - -import com.gildedgames.aether.common.AetherCore; -import com.gildedgames.aether.common.world.biomes.BiomeAetherBase; -import com.gildedgames.aether.common.world.biomes.BiomeInstancedZone; -import com.gildedgames.aether.common.world.biomes.BiomeVoid; -import com.gildedgames.aether.common.world.biomes.arctic_peaks.BiomeArcticPeaks; -import com.gildedgames.aether.common.world.biomes.forgotten_highlands.BiomeForgottenHighlands; -import com.gildedgames.aether.common.world.biomes.highlands.BiomeHighlands; -import com.gildedgames.aether.common.world.biomes.irradiated_forests.BiomeIrradiatedForests; -import com.gildedgames.aether.common.world.biomes.magnetic_hills.BiomeMagneticHills; -import com.google.common.collect.Lists; -import net.minecraft.world.biome.Biome; -import net.minecraftforge.common.BiomeDictionary; -import net.minecraftforge.event.RegistryEvent; -import net.minecraftforge.fml.common.Mod; -import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; -import net.minecraftforge.fml.common.registry.GameRegistry; - -import java.util.Arrays; -import java.util.List; -import java.util.Random; - -@Mod.EventBusSubscriber() -@GameRegistry.ObjectHolder(AetherCore.MOD_ID) -public class BiomesAetherInit -{ - private static final BiomeAetherBase HIGHLANDS = new BiomeHighlands( - new Biome.BiomeProperties("Highlands").setTemperature(0.5f).setWaterColor(0x70DB70), AetherCore.getResource("aether_highlands")); - - private static final BiomeAetherBase MAGNETIC_HILLS = new BiomeMagneticHills( - new Biome.BiomeProperties("Magnetic Hills").setTemperature(0.5f).setWaterColor(0x70DB70), - AetherCore.getResource("aether_magnetic_hills")); - - private static final BiomeAetherBase ARCTIC_PEAKS = new BiomeArcticPeaks( - new Biome.BiomeProperties("Arctic Peaks").setRainDisabled().setSnowEnabled().setTemperature(0.0f).setWaterColor(0x70DB70), - AetherCore.getResource("aether_arctic_peaks")); - - private static final BiomeAetherBase FORGOTTEN_HIGHLANDS = new BiomeForgottenHighlands( - new Biome.BiomeProperties("Forgotten Highlands").setTemperature(0.0f).setWaterColor(0x70DB70), - AetherCore.getResource("aether_forgotten_highlands")); - - private static final BiomeAetherBase IRRADIATED_FORESTS = new BiomeIrradiatedForests( - new Biome.BiomeProperties("Irradiated Forests").setTemperature(0.0f).setWaterColor(0xdebc33), - AetherCore.getResource("aether_irradiated_forests")); - - private static final Biome VOID = new BiomeVoid(); - - private static final Biome INSTANCED_ZONE = new BiomeInstancedZone(); - - private static final List<BiomeAetherBase> POSSIBLE_BIOMES = Lists.newArrayList(); - - @SubscribeEvent - public static void registerBiome(final RegistryEvent.Register<Biome> event) - { - event.getRegistry().registerAll(HIGHLANDS, MAGNETIC_HILLS, ARCTIC_PEAKS, FORGOTTEN_HIGHLANDS, IRRADIATED_FORESTS, VOID, INSTANCED_ZONE); - - BiomeDictionary.addTypes(HIGHLANDS, BiomeDictionary.Type.PLAINS); - BiomeDictionary.addTypes(MAGNETIC_HILLS, BiomeDictionary.Type.HILLS, BiomeDictionary.Type.HOT, BiomeDictionary.Type.SPARSE); - BiomeDictionary.addTypes(ARCTIC_PEAKS, BiomeDictionary.Type.MOUNTAIN, BiomeDictionary.Type.COLD, BiomeDictionary.Type.SNOWY, BiomeDictionary.Type.DENSE); - BiomeDictionary.addTypes(FORGOTTEN_HIGHLANDS, BiomeDictionary.Type.DENSE); - BiomeDictionary.addTypes(IRRADIATED_FORESTS, BiomeDictionary.Type.FOREST, BiomeDictionary.Type.HOT, BiomeDictionary.Type.DENSE); - BiomeDictionary.addTypes(VOID, BiomeDictionary.Type.VOID); - BiomeDictionary.addTypes(INSTANCED_ZONE, BiomeDictionary.Type.VOID); - - registerPossibleBiome(HIGHLANDS, MAGNETIC_HILLS, ARCTIC_PEAKS, FORGOTTEN_HIGHLANDS, IRRADIATED_FORESTS); - } - - public static void registerPossibleBiome(final BiomeAetherBase... biomes) - { - POSSIBLE_BIOMES.addAll(Arrays.asList(biomes)); - } - - public static float getTotalBiomeWeight() - { - float total = 0.0F; - - for (final BiomeAetherBase b : POSSIBLE_BIOMES) - { - total += b.getRarityWeight(); - } - - return total; - } - - public static BiomeAetherBase fetchRandomBiome(final Random rand) - { - - final float randomValue = rand.nextFloat() * getTotalBiomeWeight(); - - float chanceSum = 0.0F; - - for (final BiomeAetherBase b : POSSIBLE_BIOMES) - { - if (b.getRarityWeight() + chanceSum >= randomValue) - { - return b; - } - - chanceSum += b.getRarityWeight(); - } - - return null; - - } -} diff --git a/src/main/java/com/gildedgames/aether/common/init/BlocksAetherInit.java b/src/main/java/com/gildedgames/aether/common/init/BlocksAetherInit.java deleted file mode 100644 index 242ddfd3c8..0000000000 --- a/src/main/java/com/gildedgames/aether/common/init/BlocksAetherInit.java +++ /dev/null @@ -1,489 +0,0 @@ -package com.gildedgames.aether.common.init; - -import com.gildedgames.aether.api.registrar.BlocksAether; -import com.gildedgames.aether.api.registrar.ItemsAether; -import com.gildedgames.aether.client.renderer.tiles.items.TileEntityPresentItemRenderer; -import com.gildedgames.aether.common.AetherCore; -import com.gildedgames.aether.common.blocks.IBlockMultiName; -import com.gildedgames.aether.common.blocks.IBlockWithItem; -import com.gildedgames.aether.common.blocks.IInternalBlock; -import com.gildedgames.aether.common.blocks.construction.*; -import com.gildedgames.aether.common.blocks.construction.redstone.BlockHolystoneButton; -import com.gildedgames.aether.common.blocks.construction.redstone.BlockHolystonePressurePlate; -import com.gildedgames.aether.common.blocks.construction.redstone.BlockSkyrootButton; -import com.gildedgames.aether.common.blocks.construction.redstone.BlockSkyrootPressurePlate; -import com.gildedgames.aether.common.blocks.construction.signs.BlockStandingSkyrootSign; -import com.gildedgames.aether.common.blocks.construction.signs.BlockWallSkyrootSign; -import com.gildedgames.aether.common.blocks.construction.walls.BlockCandyCaneWall; -import com.gildedgames.aether.common.blocks.construction.walls.BlockCustomWall; -import com.gildedgames.aether.common.blocks.construction.walls.BlockScatterglassWall; -import com.gildedgames.aether.common.blocks.construction.walls.BlockSkyrootWall; -import com.gildedgames.aether.common.blocks.containers.*; -import com.gildedgames.aether.common.blocks.decorative.*; -import com.gildedgames.aether.common.blocks.multiblock.BlockMultiDummy; -import com.gildedgames.aether.common.blocks.multiblock.BlockMultiDummyHalf; -import com.gildedgames.aether.common.blocks.natural.*; -import com.gildedgames.aether.common.blocks.natural.leaves.*; -import com.gildedgames.aether.common.blocks.natural.ores.*; -import com.gildedgames.aether.common.blocks.natural.plants.*; -import com.gildedgames.aether.common.blocks.natural.plants.saplings.BlockAetherGreatrootSapling; -import com.gildedgames.aether.common.blocks.natural.plants.saplings.BlockAetherSkyrootSapling; -import com.gildedgames.aether.common.blocks.natural.plants.saplings.BlockAetherUniqueSapling; -import com.gildedgames.aether.common.blocks.natural.plants.saplings.BlockAetherWisprootSapling; -import com.gildedgames.aether.common.blocks.natural.wood.AetherWoodType; -import com.gildedgames.aether.common.blocks.natural.wood.BlockAetherLog; -import com.gildedgames.aether.common.blocks.natural.wood.BlockAmberLog; -import com.gildedgames.aether.common.blocks.util.*; -import com.gildedgames.aether.common.items.blocks.ItemBlockMultiName; -import net.minecraft.block.Block; -import net.minecraft.block.SoundType; -import net.minecraft.block.material.Material; -import net.minecraft.init.Blocks; -import net.minecraft.item.Item; -import net.minecraft.item.ItemBlock; -import net.minecraftforge.event.RegistryEvent; -import net.minecraftforge.fml.common.Mod; -import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; -import net.minecraftforge.registries.IForgeRegistry; - -import java.util.*; - -import static com.gildedgames.aether.common.init.CreativeTabsAether.*; - -@Mod.EventBusSubscriber -public class BlocksAetherInit -{ - private static final Collection<Block> registeredBlocks = new ArrayList<>(); - - @SubscribeEvent - public static void onRegisterBlocks(final RegistryEvent.Register<Block> event) - { - final BlockRegistryHelper r = new BlockRegistryHelper(event.getRegistry()); - - Block holystone = new BlockHolystone().setRadiationAmount(5).setRadiationDistance(8).setRadiationRate(40); - Block skyroot_planks = new BlockSkyrootPlanks(); - Block therawood_planks = new BlockTherawoodPlanks(); - Block icestone_bricks = new BlockIcestoneBricks(); - Block quicksoil_glass = new BlockQuicksoilGlass(); - Block scatterglass = new BlockRockGlassTranslucent(); - Block crude_scatterglass = new BlockRockGlass(); - Block candy_cane = new BlockCandyCane(); - - r.register("aether_grass", new BlockAetherGrass().setRadiationAmount(2).setRadiationDistance(4).setRadiationRate(60).setCreativeTab(TAB_NATURAL_BLOCKS)); - r.register("aether_dirt", new BlockAetherDirt().setCreativeTab(TAB_NATURAL_BLOCKS)); - r.register("quicksoil", new BlockQuicksoil().setCreativeTab(TAB_NATURAL_BLOCKS)); - r.register("highlands_snow", new BlockCustomSnowBlock().setCreativeTab(TAB_NATURAL_BLOCKS)); - r.register("highlands_snow_layer", new BlockCustomSnow().setCreativeTab(TAB_NATURAL_BLOCKS)); - r.register("highlands_ice", new BlockCustomIce().setHardness(0.5F).setLightOpacity(3).setCreativeTab(TAB_NATURAL_BLOCKS)); - r.register("highlands_packed_ice", new BlockCustomPackedIce().setHardness(0.5F).setCreativeTab(TAB_NATURAL_BLOCKS)); - r.register("ferrosite_sand", new BlockFerrositeSand().setCreativeTab(TAB_NATURAL_BLOCKS)); - r.register("holystone", holystone.setCreativeTab(TAB_NATURAL_BLOCKS)); - r.register("ambrosium_ore", new BlockAmbrosiumOre().setCreativeTab(TAB_NATURAL_BLOCKS)); - r.register("icestone_ore", new BlockIcestoneOre().setCreativeTab(TAB_NATURAL_BLOCKS)); - r.register("zanite_ore", new BlockZaniteOre().setCreativeTab(TAB_NATURAL_BLOCKS)); - r.register("arkenium_ore", new BlockArkeniumOre().setCreativeTab(TAB_NATURAL_BLOCKS)); - r.register("gravitite_ore", new BlockGravititeOre().setCreativeTab(TAB_NATURAL_BLOCKS)); - r.register("holystone_quartz_ore", new BlockHolystoneQuartzOre().setCreativeTab(TAB_NATURAL_BLOCKS)); - r.register("ferrosite", new BlockFerrosite().setCreativeTab(TAB_NATURAL_BLOCKS)); - r.register("rusted_ferrosite", new BlockRustedFerrosite().setCreativeTab(TAB_NATURAL_BLOCKS)); - r.register("irradiated_dust_block", new BlockIrradiatedDust().setRadiationAmount(8).setRadiationDistance(5).setRadiationRate(20).setCreativeTab(TAB_NATURAL_BLOCKS)); - r.register("crude_scatterglass", crude_scatterglass.setCreativeTab(TAB_NATURAL_BLOCKS)); - r.register("aercloud", new BlockAercloud().setCreativeTab(TAB_NATURAL_BLOCKS)); - r.register("skyroot_log", new BlockAetherLog(AetherWoodType.SKYROOT).setCreativeTab(TAB_NATURAL_BLOCKS)); - r.register("light_skyroot_log", new BlockAetherLog(AetherWoodType.WISPROOT).setCreativeTab(TAB_NATURAL_BLOCKS)); - r.register("dark_skyroot_log", new BlockAetherLog(AetherWoodType.GREATROOT).setCreativeTab(TAB_NATURAL_BLOCKS)); - r.register("skyroot_log_wall", new BlockSkyrootWall(new BlockAetherLog(AetherWoodType.SKYROOT).getDefaultState(), 2.0f, 10.0f).setCreativeTab(TAB_NATURAL_BLOCKS)); - r.register("wisproot_log_wall", new BlockSkyrootWall(new BlockAetherLog(AetherWoodType.WISPROOT).getDefaultState(), 2.0f, 10.0f).setCreativeTab(TAB_NATURAL_BLOCKS)); - r.register("greatroot_log_wall", new BlockSkyrootWall(new BlockAetherLog(AetherWoodType.GREATROOT).getDefaultState(), 2.0f, 10.0f).setCreativeTab(TAB_NATURAL_BLOCKS)); - r.register("golden_oak_log", new BlockAmberLog(AetherWoodType.AMBERROOT).setCreativeTab(TAB_NATURAL_BLOCKS)); - r.register("woven_sticks", new BlockWovenSticks().setCreativeTab(TAB_NATURAL_BLOCKS)); - r.register("highlands_bush", new BlockAetherLeaves().setCreativeTab(TAB_NATURAL_BLOCKS)); - r.register("green_skyroot_leaves", new BlockSkyrootLeaves(BlockColoredLeaves.Color.GREEN).setCreativeTab(TAB_NATURAL_BLOCKS)); - r.register("blue_skyroot_leaves", new BlockSkyrootLeaves(BlockColoredLeaves.Color.BLUE).setCreativeTab(TAB_NATURAL_BLOCKS)); - r.register("dark_blue_skyroot_leaves", new BlockSkyrootLeaves(BlockColoredLeaves.Color.DARK_BLUE).setCreativeTab(TAB_NATURAL_BLOCKS)); - r.register("green_light_skyroot_leaves", new BlockWisprootLeaves(BlockColoredLeaves.Color.GREEN).setCreativeTab(TAB_NATURAL_BLOCKS)); - r.register("blue_light_skyroot_leaves", new BlockWisprootLeaves(BlockColoredLeaves.Color.BLUE).setCreativeTab(TAB_NATURAL_BLOCKS)); - r.register("dark_blue_light_skyroot_leaves", new BlockWisprootLeaves(BlockColoredLeaves.Color.DARK_BLUE).setCreativeTab(TAB_NATURAL_BLOCKS)); - r.register("green_dark_skyroot_leaves", new BlockGreatrootLeaves(BlockColoredLeaves.Color.GREEN).setCreativeTab(TAB_NATURAL_BLOCKS)); - r.register("blue_dark_skyroot_leaves", new BlockGreatrootLeaves(BlockColoredLeaves.Color.BLUE).setCreativeTab(TAB_NATURAL_BLOCKS)); - r.register("dark_blue_dark_skyroot_leaves", new BlockGreatrootLeaves(BlockColoredLeaves.Color.DARK_BLUE).setCreativeTab(TAB_NATURAL_BLOCKS)); - r.register("amberoot_leaves", new BlockUniqueLeaves(AetherWoodType.AMBERROOT).setCreativeTab(TAB_NATURAL_BLOCKS)); - r.register("mutant_leaves", new BlockUniqueLeaves(AetherWoodType.MUTANT).setCreativeTab(TAB_NATURAL_BLOCKS)); - r.register("mutant_leaves_decorated", new BlockUniqueLeaves(AetherWoodType.MUTANT).setLightLevel(1f).setCreativeTab(TAB_NATURAL_BLOCKS)); - r.register("skyroot_sapling", new BlockAetherSkyrootSapling().setCreativeTab(TAB_NATURAL_BLOCKS)); - r.register("wisproot_sapling", new BlockAetherWisprootSapling().setCreativeTab(TAB_NATURAL_BLOCKS)); - r.register("greatroot_sapling", new BlockAetherGreatrootSapling().setCreativeTab(TAB_NATURAL_BLOCKS)); - r.register("unique_sapling", new BlockAetherUniqueSapling().setCreativeTab(TAB_NATURAL_BLOCKS)); - r.register("aether_flower", new BlockAetherFlower().setCreativeTab(TAB_NATURAL_BLOCKS)); - r.register("quickshoot", new BlockAetherFlowerBase().setCreativeTab(TAB_NATURAL_BLOCKS)); - r.register("pink_swingtip", new BlockAetherFlowerBase().setCreativeTab(TAB_NATURAL_BLOCKS)); - r.register("green_swingtip", new BlockAetherFlowerBase().setCreativeTab(TAB_NATURAL_BLOCKS)); - r.register("blue_swingtip", new BlockAetherFlowerBase().setCreativeTab(TAB_NATURAL_BLOCKS)); - r.register("neverbloom", new BlockAetherFlowerBase().setCreativeTab(TAB_NATURAL_BLOCKS)); - r.register("highlands_tulips", new BlockAetherFlowerBase().setCreativeTab(TAB_NATURAL_BLOCKS)); - r.register("arctic_spikespring", new BlockAetherFlowerBase().setCreativeTab(TAB_NATURAL_BLOCKS)); - r.register("irradiated_flower", new BlockAetherFlowerBase().setCreativeTab(TAB_NATURAL_BLOCKS)); - r.register("forgotten_rose", new BlockAetherFlowerBase().setCreativeTab(TAB_NATURAL_BLOCKS)); - r.register("tall_aether_grass", new BlockTallAetherGrass().setCreativeTab(TAB_NATURAL_BLOCKS)); - r.register("stoneshroom", new BlockAetherMushroom().setCreativeTab(TAB_NATURAL_BLOCKS)); - r.register("barkshroom", new BlockAetherMushroom().setCreativeTab(TAB_NATURAL_BLOCKS)); - r.register("magnetic_shroom", new BlockAetherMushroom().setLightLevel(0.5F).setCreativeTab(TAB_NATURAL_BLOCKS)); - r.register("plumproot", new BlockPlumproot().setCreativeTab(TAB_NATURAL_BLOCKS)); - r.register("blueberry_bush", new BlockBlueberryBush().setCreativeTab(TAB_NATURAL_BLOCKS)); - r.register("orange_tree", new BlockOrangeTree().setCreativeTab(TAB_NATURAL_BLOCKS)); - r.register("valkyrie_grass", new BlockValkyrieGrass().setCreativeTab(TAB_NATURAL_BLOCKS)); - r.register("skyroot_twigs", new BlockFloorObject(Material.PLANTS, SoundType.WOOD).setCreativeTab(TAB_NATURAL_BLOCKS)); - r.register("holystone_rock", new BlockFloorObject(Material.ROCK, SoundType.STONE).setCreativeTab(TAB_NATURAL_BLOCKS)); - r.register("highlands_ice_crystal", new BlockIceCrystal().setCreativeTab(TAB_NATURAL_BLOCKS)); - - r.register("skyroot_planks", skyroot_planks.setCreativeTab(TAB_CONSTRUCTION)); - r.register("light_skyroot_planks", new BlockSkyrootPlanks().setCreativeTab(TAB_CONSTRUCTION)); - r.register("dark_skyroot_planks", new BlockSkyrootPlanks().setCreativeTab(TAB_CONSTRUCTION)); - r.register("skyroot_fence", new BlockSkyrootFence().setCreativeTab(TAB_CONSTRUCTION)); - r.register("wisproot_fence", new BlockSkyrootFence().setCreativeTab(TAB_CONSTRUCTION)); - r.register("greatroot_fence", new BlockSkyrootFence().setCreativeTab(TAB_CONSTRUCTION)); - r.register("skyroot_fence_gate", new BlockSkyrootFenceGate().setCreativeTab(TAB_CONSTRUCTION)); - r.register("wisproot_fence_gate", new BlockSkyrootFenceGate().setCreativeTab(TAB_CONSTRUCTION)); - r.register("greatroot_fence_gate", new BlockSkyrootFenceGate().setCreativeTab(TAB_CONSTRUCTION)); - r.register("holystone_brick", new BlockBuilder(Material.ROCK).setSoundType(SoundType.STONE).setHardness(1.5f).setResistance(10.0f).setCreativeTab(TAB_CONSTRUCTION)); - r.register("agiosite", new BlockBuilder(Material.ROCK).setSoundType(SoundType.STONE).setHardness(1.5f).setResistance(10.0f).setCreativeTab(TAB_CONSTRUCTION)); - r.register("agiosite_brick", new BlockBuilder(Material.ROCK).setSoundType(SoundType.STONE).setHardness(1.5f).setResistance(10.0f).setCreativeTab(TAB_CONSTRUCTION)); - r.register("icestone_bricks", icestone_bricks.setCreativeTab(TAB_CONSTRUCTION)); - r.register("cloudwool_block", new BlockCloudwoolBlock().setCreativeTab(TAB_CONSTRUCTION)); - r.register("cloudwool_carpet", new BlockCustomCarpet().setCreativeTab(TAB_CONSTRUCTION)); - r.register("skyroot_bookshelf", new BlockCustomBookshelf(Material.WOOD, SoundType.WOOD).setHardness(1.5f).setCreativeTab(TAB_CONSTRUCTION)); - r.register("holystone_bookshelf", new BlockCustomBookshelf(Material.ROCK, SoundType.STONE).setHardness(1f).setResistance(5.0f).setCreativeTab(TAB_CONSTRUCTION)); - r.register("crude_scatterglass_pane", new BlockRockGlassPane(crude_scatterglass, Material.ROCK).setHardness(1.0f).setLightOpacity(3).setCreativeTab(TAB_CONSTRUCTION)); - r.register("quicksoil_glass", quicksoil_glass.setCreativeTab(TAB_CONSTRUCTION)); - r.register("quicksoil_glass_pane", new BlockQuicksoilGlassPane().setCreativeTab(TAB_CONSTRUCTION)); - r.register("scatterglass", scatterglass.setCreativeTab(TAB_CONSTRUCTION)); - r.register("scatterglass_pane", new BlockRockGlassPane(scatterglass, Material.ROCK).setHardness(0.3f).setLightOpacity(0).setCreativeTab(TAB_CONSTRUCTION)); - r.register("zanite_block", new BlockOreBlock(Material.IRON).setSoundType(SoundType.METAL).setHardness(5f).setResistance(10f).setCreativeTab(TAB_CONSTRUCTION)); - r.register("gravitite_block", new BlockOreBlock(Material.IRON).setSoundType(SoundType.METAL).setHardness(5f).setResistance(10f).setCreativeTab(TAB_CONSTRUCTION)); - r.register("skyroot_ladder", new BlockCustomLadder().setCreativeTab(TAB_CONSTRUCTION)); - r.register("skyroot_door", new BlockCustomDoor(Material.WOOD, () -> ItemsAether.skyroot_door_item, SoundType.WOOD)); - r.register("arkenium_door", new BlockCustomDoor(Material.IRON, () -> ItemsAether.arkenium_door_item, SoundType.METAL)); - r.register("skyroot_trapdoor", new BlockSkyrootTrapDoor().setCreativeTab(TAB_CONSTRUCTION)); - r.register("skyroot_button", new BlockSkyrootButton().setCreativeTab(TAB_CONSTRUCTION)); - r.register("wisproot_button", new BlockSkyrootButton().setCreativeTab(TAB_CONSTRUCTION)); - r.register("greatroot_button", new BlockSkyrootButton().setCreativeTab(TAB_CONSTRUCTION)); - r.register("holystone_button", new BlockHolystoneButton().setCreativeTab(TAB_CONSTRUCTION)); - r.register("skyroot_pressure_plate", new BlockSkyrootPressurePlate().setCreativeTab(TAB_CONSTRUCTION)); - r.register("wisproot_pressure_plate", new BlockSkyrootPressurePlate().setCreativeTab(TAB_CONSTRUCTION)); - r.register("greatroot_pressure_plate", new BlockSkyrootPressurePlate().setCreativeTab(TAB_CONSTRUCTION)); - r.register("holystone_pressure_plate", new BlockHolystonePressurePlate().setCreativeTab(TAB_CONSTRUCTION)); - r.register("sentrystone_brick", new BlockBuilder(Material.ROCK).setSoundType(SoundType.STONE).setHardness(1.5f).setResistance(10.0f).setCreativeTab(TAB_CONSTRUCTION)); - r.register("hellfirestone_brick", new BlockBuilder(Material.ROCK).setSoundType(SoundType.STONE).setHardness(1.5f).setResistance(10.0f).setCreativeTab(TAB_CONSTRUCTION)); - r.register("ambrosium_torch", new BlockAmbrosiumTorch().setCreativeTab(TAB_CONSTRUCTION)); - r.register("standing_skyroot_sign", new BlockStandingSkyrootSign()); - r.register("wall_skyroot_sign", new BlockWallSkyrootSign()); - r.register("candy_cane_block", candy_cane.setCreativeTab(TAB_CONSTRUCTION)); - r.register("holystone_stairs", new BlockCustomStairs(holystone.getDefaultState()).setCreativeTab(TAB_CONSTRUCTION)); - r.register("mossy_holystone_stairs", new BlockCustomStairs(holystone.getDefaultState().withProperty(BlockHolystone.PROPERTY_VARIANT, BlockHolystone.MOSSY_HOLYSTONE)).setCreativeTab(TAB_CONSTRUCTION)); - r.register("skyroot_stairs", new BlockCustomStairs(skyroot_planks.getDefaultState()).setCreativeTab(TAB_CONSTRUCTION)); - r.register("wisproot_stairs", new BlockCustomStairs(skyroot_planks.getDefaultState()).setCreativeTab(TAB_CONSTRUCTION)); - r.register("greatroot_stairs", new BlockCustomStairs(skyroot_planks.getDefaultState()).setCreativeTab(TAB_CONSTRUCTION)); - r.register("holystone_brick_stairs", new BlockCustomStairs(holystone.getDefaultState()).setCreativeTab(TAB_CONSTRUCTION)); - r.register("agiosite_stairs", new BlockCustomStairs(holystone.getDefaultState()).setCreativeTab(TAB_CONSTRUCTION)); - r.register("agiosite_brick_stairs", new BlockCustomStairs(holystone.getDefaultState()).setCreativeTab(TAB_CONSTRUCTION)); - r.register("icestone_brick_stairs", new BlockCustomStairs(icestone_bricks.getDefaultState()).setCreativeTab(TAB_CONSTRUCTION)); - r.register("scatterglass_stairs", new BlockScatterglassStairs(scatterglass.getDefaultState()).setCreativeTab(TAB_CONSTRUCTION)); - r.register("sentrystone_brick_stairs", new BlockCustomStairs(holystone.getDefaultState()).setCreativeTab(TAB_CONSTRUCTION)); - r.register("hellfirestone_brick_stairs", new BlockCustomStairs(holystone.getDefaultState()).setCreativeTab(TAB_CONSTRUCTION)); - r.register("holystone_slab", new BlockCustomSlab(Material.ROCK).setSoundType(SoundType.STONE).setHardness(1.5f).setCreativeTab(TAB_CONSTRUCTION)); - r.register("mossy_holystone_slab", new BlockCustomSlab(Material.ROCK).setSoundType(SoundType.STONE).setHardness(1.5f).setCreativeTab(TAB_CONSTRUCTION)); - r.register("skyroot_slab", new BlockCustomSlab(Material.WOOD).setSoundType(SoundType.WOOD).setHardness(2.0f).setResistance(5.0f).setCreativeTab(TAB_CONSTRUCTION)); - r.register("wisproot_slab", new BlockCustomSlab(Material.WOOD).setSoundType(SoundType.WOOD).setHardness(2.0f).setResistance(5.0f).setCreativeTab(TAB_CONSTRUCTION)); - r.register("greatroot_slab", new BlockCustomSlab(Material.WOOD).setSoundType(SoundType.WOOD).setHardness(2.0f).setResistance(5.0f).setCreativeTab(TAB_CONSTRUCTION)); - r.register("holystone_brick_slab", new BlockCustomSlab(Material.ROCK).setSoundType(SoundType.STONE).setHardness(1.5f).setResistance(10.0f).setCreativeTab(TAB_CONSTRUCTION)); - r.register("agiosite_slab", new BlockCustomSlab(Material.ROCK).setSoundType(SoundType.STONE).setHardness(1.5f).setResistance(10.0f).setCreativeTab(TAB_CONSTRUCTION)); - r.register("agiosite_brick_slab", new BlockCustomSlab(Material.ROCK).setSoundType(SoundType.STONE).setHardness(1.5f).setResistance(10.0f).setCreativeTab(TAB_CONSTRUCTION)); - r.register("icestone_slab", new BlockCustomSlab(Material.ROCK).setSoundType(SoundType.GLASS).setHardness(2.0f).setResistance(10.0f).setCreativeTab(TAB_CONSTRUCTION)); - r.register("scatterglass_slab", new BlockScatterglassSlab(Material.ROCK).setSoundType(SoundType.STONE).setHardness(0.3f).setCreativeTab(TAB_CONSTRUCTION)); - r.register("sentrystone_brick_slab", new BlockCustomSlab(Material.ROCK).setSoundType(SoundType.STONE).setHardness(1.5f).setResistance(10.0f).setCreativeTab(TAB_CONSTRUCTION)); - r.register("hellfirestone_brick_slab", new BlockCustomSlab(Material.ROCK).setSoundType(SoundType.STONE).setHardness(1.5f).setResistance(10.0f).setCreativeTab(TAB_CONSTRUCTION)); - r.register("holystone_wall", new BlockCustomWall(holystone.getDefaultState(), 1.5f, 10.0f).setCreativeTab(TAB_CONSTRUCTION)); - r.register("mossy_holystone_wall", new BlockCustomWall(holystone.getDefaultState(), 1.5f, 10.0f).setCreativeTab(TAB_CONSTRUCTION)); - r.register("holystone_brick_wall", new BlockCustomWall(holystone.getDefaultState(), 1.5f, 10.0f).setCreativeTab(TAB_CONSTRUCTION)); - r.register("agiosite_wall", new BlockCustomWall(holystone.getDefaultState(), 1.5f, 10.0f).setCreativeTab(TAB_CONSTRUCTION)); - r.register("agiosite_brick_wall", new BlockCustomWall(holystone.getDefaultState(), 1.5f, 10.0f).setCreativeTab(TAB_CONSTRUCTION)); - r.register("icestone_wall", new BlockCustomWall(icestone_bricks.getDefaultState(), 2.0f, 10.0f).setCreativeTab(TAB_CONSTRUCTION)); - r.register("scatterglass_wall", new BlockScatterglassWall(scatterglass.getDefaultState(), 0.3f, 2000.0f).setLightOpacity(0).setCreativeTab(TAB_CONSTRUCTION)); - r.register("sentrystone_brick_wall", new BlockCustomWall(holystone.getDefaultState(), 1.5f, 10.0f).setCreativeTab(TAB_CONSTRUCTION)); - r.register("hellfirestone_brick_wall", new BlockCustomWall(holystone.getDefaultState(), 1.5f, 10.0f).setCreativeTab(TAB_CONSTRUCTION)); - r.register("candy_cane_wall", new BlockCandyCaneWall(candy_cane.getDefaultState(), 0.5f, 2.5f).setCreativeTab(TAB_CONSTRUCTION)); - - r.register("skyroot_decorative", new BlockSkyrootDecorative().setCreativeTab(TAB_DECORATIVE_BLOCKS)); - r.register("skyroot_beam", new BlockCustomPillar(Material.WOOD).setSoundType(SoundType.WOOD).setHardness(2.0f).setResistance(5.0f).setCreativeTab(TAB_DECORATIVE_BLOCKS)); - r.register("light_skyroot_decorative", new BlockLightSkyrootDecorative().setCreativeTab(TAB_DECORATIVE_BLOCKS)); - r.register("light_skyroot_beam", new BlockCustomPillar(Material.WOOD).setSoundType(SoundType.WOOD).setHardness(2.0f).setResistance(5.0f).setCreativeTab(TAB_DECORATIVE_BLOCKS)); - r.register("dark_skyroot_decorative", new BlockDarkSkyrootDecorative().setCreativeTab(TAB_DECORATIVE_BLOCKS)); - r.register("dark_skyroot_beam", new BlockCustomPillar(Material.WOOD).setSoundType(SoundType.WOOD).setHardness(2.0f).setResistance(5.0f).setCreativeTab(TAB_DECORATIVE_BLOCKS)); - r.register("holystone_brick_decorative", new BlockHolystoneDecorative().setCreativeTab(TAB_DECORATIVE_BLOCKS)); - r.register("holystone_pillar", new BlockCustomPillar(Material.ROCK).setSoundType(SoundType.STONE).setHardness(1.5f).setResistance(10.0f).setCreativeTab(TAB_DECORATIVE_BLOCKS)); - r.register("faded_holystone_brick", new BlockBuilder(Material.ROCK).setSoundType(SoundType.STONE).setHardness(1.5f).setResistance(10.0f).setCreativeTab(TAB_DECORATIVE_BLOCKS)); - r.register("faded_holystone_brick_stairs", new BlockCustomStairs(holystone.getDefaultState()).setCreativeTab(TAB_DECORATIVE_BLOCKS)); - r.register("faded_holystone_brick_slab", new BlockCustomSlab(Material.ROCK).setSoundType(SoundType.STONE).setHardness(1.5f).setResistance(10.0f).setCreativeTab(TAB_DECORATIVE_BLOCKS)); - r.register("faded_holystone_brick_wall", new BlockCustomWall(holystone.getDefaultState(), 1.5f, 10.0f).setCreativeTab(TAB_DECORATIVE_BLOCKS)); - r.register("faded_holystone_brick_decorative", new BlockFadedHolystoneDecorative().setCreativeTab(TAB_DECORATIVE_BLOCKS)); - r.register("faded_holystone_pillar", new BlockCustomPillar(Material.ROCK).setSoundType(SoundType.STONE).setHardness(1.5f).setResistance(10.0f).setCreativeTab(TAB_DECORATIVE_BLOCKS)); - r.register("agiosite_brick_decorative", new BlockAgiositeDecorative().setCreativeTab(TAB_DECORATIVE_BLOCKS)); - r.register("agiosite_pillar", new BlockCustomPillar(Material.ROCK).setSoundType(SoundType.STONE).setHardness(1.5f).setResistance(10.0f).setCreativeTab(TAB_DECORATIVE_BLOCKS)); - r.register("icestone_bricks_decorative", new BlockIcestoneBricksDecorative().setCreativeTab(TAB_DECORATIVE_BLOCKS)); - r.register("icestone_pillar", new BlockCustomPillar(Material.ROCK).setSoundType(SoundType.GLASS).setHardness(2.0f).setResistance(10.0f).setCreativeTab(TAB_DECORATIVE_BLOCKS)); - r.register("crude_scatterglass_decorative", new BlockRockGlassDecorative(Material.ROCK).setHardness(1.0f).setLightOpacity(3).setCreativeTab(TAB_DECORATIVE_BLOCKS)); - r.register("crude_scatterglass_pane_decorative", new BlockRockGlassPaneDecorative(Material.ROCK).setCreativeTab(TAB_DECORATIVE_BLOCKS)); - r.register("quicksoil_glass_decorative", new BlockQuicksoilGlassDecorative().setCreativeTab(TAB_DECORATIVE_BLOCKS)); - r.register("quicksoil_glass_pane_decorative", new BlockQuicksoilGlassPaneDecorative().setCreativeTab(TAB_DECORATIVE_BLOCKS)); - r.register("scatterglass_decorative", new BlockRockGlassDecorative(Material.ROCK).setCreativeTab(TAB_DECORATIVE_BLOCKS)); - r.register("scatterglass_pane_decorative", new BlockRockGlassPaneDecorative(Material.ROCK).setCreativeTab(TAB_DECORATIVE_BLOCKS)); - r.register("sentrystone_brick_decorative", new BlockSentrystoneDecorative().setCreativeTab(TAB_DECORATIVE_BLOCKS)); - r.register("sentrystone_pillar", new BlockCustomPillar(Material.ROCK).setSoundType(SoundType.STONE).setHardness(1.5f).setResistance(10.0f).setCreativeTab(TAB_DECORATIVE_BLOCKS)); - r.register("sentrystone_brick_decorative_lit", new BlockSentrystoneDecorativeLit().setLightLevel(0.5f).setCreativeTab(TAB_DECORATIVE_BLOCKS)); - r.register("sentrystone_pillar_lit", new BlockCustomPillar(Material.ROCK).setSoundType(SoundType.STONE).setHardness(1.5f).setResistance(10.0f).setLightLevel(0.5f).setCreativeTab(TAB_DECORATIVE_BLOCKS)); - r.register("hellfirestone_brick_decorative", new BlockHellfirestoneDecorative().setCreativeTab(TAB_DECORATIVE_BLOCKS)); - r.register("hellfirestone_lantern", new BlockBuilder(Material.ROCK).setSoundType(SoundType.STONE).setHardness(1.5f).setResistance(10.0f).setLightLevel(1.0f).setCreativeTab(TAB_DECORATIVE_BLOCKS)); - r.register("hellfirestone_pillar", new BlockCustomPillar(Material.ROCK).setSoundType(SoundType.STONE).setHardness(1.5f).setResistance(10.0f).setCreativeTab(TAB_DECORATIVE_BLOCKS)); - r.register("secret_skyroot_door", new BlockCustomDoor(Material.WOOD, () -> ItemsAether.secret_skyroot_door_item, SoundType.WOOD).setHardness(2.0f).setResistance(5.0f)); - r.register("secret_skyroot_trapdoor", new BlockSkyrootTrapDoor().setHardness(2.0f).setResistance(5.0f).setCreativeTab(TAB_DECORATIVE_BLOCKS)); - - r.register("aether_crafting_table", new BlockAetherCraftingTable().setCreativeTab(TAB_UTILITY)); - r.register("skyroot_chest", new BlockSkyrootChest().setCreativeTab(TAB_UTILITY)); - r.register("holystone_furnace", new BlockHolystoneFurnace().setCreativeTab(TAB_UTILITY)); - r.register("altar", new BlockAltar().setCreativeTab(TAB_UTILITY)); - r.register("incubator", new BlockIncubator().setCreativeTab(TAB_UTILITY)); - r.register("icestone_cooler", new BlockIcestoneCooler().setCreativeTab(TAB_UTILITY)); - r.register("masonry_bench", new BlockMasonryBench().setCreativeTab(TAB_UTILITY)); - r.register("skyroot_bed", new BlockCustomBed(() -> ItemsAether.skyroot_bed_item, SoundType.WOOD)); - r.register("aether_teleporter", new BlockAetherTeleporter().setCreativeTab(TAB_UTILITY)); - r.register("outpost_campfire", new BlockOutpostCampfire(Material.ROCK).setCreativeTab(TAB_UTILITY)); - - r.register("thera_grass", new BlockTheraGrass().setCreativeTab(TAB_THERA)); - r.register("thera_dirt", new BlockTheraDirt().setCreativeTab(TAB_THERA)); - r.register("therawood_log", new BlockAetherLog(AetherWoodType.THERA).setCreativeTab(TAB_THERA)); - r.register("therawood_log_wall", new BlockSkyrootWall(new BlockAetherLog(AetherWoodType.THERA).getDefaultState(), 2.0f, 10.0f).setCreativeTab(TAB_THERA)); - r.register("therawood_leaves", new BlockAetherLeaves().setCreativeTab(TAB_THERA)); - r.register("therawood_planks", therawood_planks.setCreativeTab(TAB_THERA)); - r.register("therawood_fence", new BlockSkyrootFence().setCreativeTab(TAB_THERA)); - r.register("therawood_fence_gate", new BlockSkyrootFenceGate().setCreativeTab(TAB_THERA)); - r.register("therawood_decorative", new BlockTherawoodDecorative().setCreativeTab(TAB_THERA)); - r.register("therawood_beam", new BlockCustomPillar(Material.WOOD).setSoundType(SoundType.WOOD).setHardness(2.0f).setResistance(5.0f).setCreativeTab(TAB_THERA)); - r.register("therastone_brick", new BlockBuilder(Material.ROCK).setSoundType(SoundType.STONE).setHardness(1.5f).setResistance(10.0f).setCreativeTab(TAB_THERA)); - r.register("therastone_brick_decorative", new BlockTherastoneDecorative().setCreativeTab(TAB_THERA)); - r.register("therastone_pillar", new BlockCustomPillar(Material.ROCK).setSoundType(SoundType.STONE).setHardness(1.5f).setResistance(10.0f).setCreativeTab(TAB_THERA)); - r.register("therawood_stairs", new BlockCustomStairs(therawood_planks.getDefaultState()).setCreativeTab(TAB_THERA)); - r.register("therawood_slab", new BlockCustomSlab(Material.WOOD).setSoundType(SoundType.WOOD).setHardness(2.0f).setCreativeTab(TAB_THERA)); - r.register("therastone_brick_stairs", new BlockCustomStairs(holystone.getDefaultState()).setCreativeTab(TAB_THERA)); - r.register("therastone_brick_slab", new BlockCustomSlab(Material.ROCK).setSoundType(SoundType.STONE).setHardness(1.5f).setResistance(10.0f).setCreativeTab(TAB_THERA)); - r.register("therastone_brick_wall", new BlockCustomWall(holystone.getDefaultState(), 1.5f, 10.0f).setCreativeTab(TAB_THERA)); - r.register("therawood_button", new BlockSkyrootButton().setCreativeTab(TAB_THERA)); - r.register("therawood_pressure_plate", new BlockSkyrootPressurePlate().setCreativeTab(TAB_THERA)); - - r.register("present", new BlockPresent().setCreativeTab(TAB_MISCELLANEOUS)); - - r.register("aether_portal", new BlockAetherPortal()); - r.register("brettl_plant", new BlockBrettlPlant()); - r.register("moa_egg", new BlockMoaEgg()); - r.register("multiblock_dummy", new BlockMultiDummy()); - r.register("multiblock_dummy_half", new BlockMultiDummyHalf()); - r.register("wildcard", new BlockWildcard()); - - } - - @SubscribeEvent - public static void onRegisterItems(final RegistryEvent.Register<Item> event) - { - for (final Block block : registeredBlocks) - { - final ItemBlock item; - - if (block instanceof IInternalBlock) - { - continue; - } - else if (block instanceof IBlockWithItem) - { - item = ((IBlockWithItem) block).createItemBlock(); - } - else if (block instanceof IBlockMultiName) - { - item = new ItemBlockMultiName(block); - } - else - { - item = new ItemBlock(block); - } - - if (block.getRegistryName() == null) - { - throw new RuntimeException("Registry name of block cannot be null"); - } - - String registryName = block.getRegistryName().getPath(); - - item.setTranslationKey(AetherCore.MOD_ID + "." + registryName); - item.setRegistryName(AetherCore.MOD_ID, registryName); - - event.getRegistry().register(item); - } - } - - public static void init() - { - registerFireInfo(); - registerHarvestLevels(); - } - - private static void registerFireInfo() - { - Blocks.FIRE.setFireInfo(BlocksAether.skyroot_twigs, 60, 100); - Blocks.FIRE.setFireInfo(BlocksAether.tall_aether_grass, 60, 100); - Blocks.FIRE.setFireInfo(BlocksAether.aether_flower, 60, 100); - Blocks.FIRE.setFireInfo(BlocksAether.arctic_spikespring, 60, 100); - Blocks.FIRE.setFireInfo(BlocksAether.blue_swingtip, 60, 100); - Blocks.FIRE.setFireInfo(BlocksAether.forgotten_rose, 60, 100); - Blocks.FIRE.setFireInfo(BlocksAether.green_swingtip, 60, 100); - Blocks.FIRE.setFireInfo(BlocksAether.highlands_tulips, 60, 100); - Blocks.FIRE.setFireInfo(BlocksAether.irradiated_flower, 60, 100); - Blocks.FIRE.setFireInfo(BlocksAether.neverbloom, 60, 100); - Blocks.FIRE.setFireInfo(BlocksAether.pink_swingtip, 60, 100); - Blocks.FIRE.setFireInfo(BlocksAether.quickshoot, 60, 100); - Blocks.FIRE.setFireInfo(BlocksAether.orange_tree, 60, 100); - Blocks.FIRE.setFireInfo(BlocksAether.blueberry_bush, 60, 100); - Blocks.FIRE.setFireInfo(BlocksAether.valkyrie_grass, 60, 100); - Blocks.FIRE.setFireInfo(BlocksAether.brettl_plant, 60, 60); - Blocks.FIRE.setFireInfo(BlocksAether.skyroot_log, 5, 5); - Blocks.FIRE.setFireInfo(BlocksAether.light_skyroot_log, 5, 5); - Blocks.FIRE.setFireInfo(BlocksAether.dark_skyroot_log, 5, 5); - Blocks.FIRE.setFireInfo(BlocksAether.golden_oak_log, 5, 5); - Blocks.FIRE.setFireInfo(BlocksAether.skyroot_log_wall, 5, 5); - Blocks.FIRE.setFireInfo(BlocksAether.skyroot_planks, 5, 20); - Blocks.FIRE.setFireInfo(BlocksAether.skyroot_bookshelf, 30, 20); - Blocks.FIRE.setFireInfo(BlocksAether.skyroot_beam, 5, 20); - Blocks.FIRE.setFireInfo(BlocksAether.skyroot_stairs, 5, 20); - Blocks.FIRE.setFireInfo(BlocksAether.skyroot_decorative, 5, 20); - Blocks.FIRE.setFireInfo(BlocksAether.light_skyroot_log, 5, 5); - Blocks.FIRE.setFireInfo(BlocksAether.light_skyroot_planks, 5, 20); - Blocks.FIRE.setFireInfo(BlocksAether.light_skyroot_decorative, 5, 20); - Blocks.FIRE.setFireInfo(BlocksAether.light_skyroot_beam, 5, 20); - Blocks.FIRE.setFireInfo(BlocksAether.therawood_log, 5, 5); - Blocks.FIRE.setFireInfo(BlocksAether.therawood_planks, 5, 20); - Blocks.FIRE.setFireInfo(BlocksAether.therawood_decorative, 5, 20); - Blocks.FIRE.setFireInfo(BlocksAether.therawood_beam, 5, 20); - Blocks.FIRE.setFireInfo(BlocksAether.dark_skyroot_log, 5, 5); - Blocks.FIRE.setFireInfo(BlocksAether.dark_skyroot_planks, 5, 20); - Blocks.FIRE.setFireInfo(BlocksAether.dark_skyroot_decorative, 5, 20); - Blocks.FIRE.setFireInfo(BlocksAether.skyroot_fence, 5, 20); - Blocks.FIRE.setFireInfo(BlocksAether.skyroot_fence_gate, 5, 20); - Blocks.FIRE.setFireInfo(BlocksAether.skyroot_slab, 5, 20); - Blocks.FIRE.setFireInfo(BlocksAether.wisproot_slab, 5, 20); - Blocks.FIRE.setFireInfo(BlocksAether.greatroot_slab, 5, 20); - Blocks.FIRE.setFireInfo(BlocksAether.skyroot_stairs, 5, 20); - Blocks.FIRE.setFireInfo(BlocksAether.woven_sticks, 30, 60); - Blocks.FIRE.setFireInfo(BlocksAether.green_skyroot_leaves, 30, 60); - Blocks.FIRE.setFireInfo(BlocksAether.blue_skyroot_leaves, 30, 60); - Blocks.FIRE.setFireInfo(BlocksAether.dark_blue_skyroot_leaves, 30, 60); - Blocks.FIRE.setFireInfo(BlocksAether.amberoot_leaves, 30, 60); - Blocks.FIRE.setFireInfo(BlocksAether.blue_dark_skyroot_leaves, 30, 60); - Blocks.FIRE.setFireInfo(BlocksAether.dark_blue_dark_skyroot_leaves, 30, 60); - Blocks.FIRE.setFireInfo(BlocksAether.green_dark_skyroot_leaves, 30, 60); - Blocks.FIRE.setFireInfo(BlocksAether.blue_light_skyroot_leaves, 30, 60); - Blocks.FIRE.setFireInfo(BlocksAether.dark_blue_light_skyroot_leaves, 30, 60); - Blocks.FIRE.setFireInfo(BlocksAether.green_light_skyroot_leaves, 30, 60); - Blocks.FIRE.setFireInfo(BlocksAether.therawood_leaves, 30, 60); - Blocks.FIRE.setFireInfo(BlocksAether.mutant_leaves, 30, 60); - Blocks.FIRE.setFireInfo(BlocksAether.mutant_leaves_decorated, 30, 60); - Blocks.FIRE.setFireInfo(BlocksAether.highlands_bush, 30, 60); - Blocks.FIRE.setFireInfo(BlocksAether.cloudwool_block, 30, 60); - Blocks.FIRE.setFireInfo(BlocksAether.cloudwool_carpet, 30, 60); - } - - private static void registerHarvestLevels() - { - BlocksAether.aether_dirt.setHarvestLevel("shovel", 0); - BlocksAether.aether_grass.setHarvestLevel("shovel", 0); - BlocksAether.holystone.setHarvestLevel("pickaxe", 0); - BlocksAether.holystone_brick.setHarvestLevel("pickaxe", 0); - BlocksAether.quicksoil.setHarvestLevel("shovel", 0); - BlocksAether.ferrosite_sand.setHarvestLevel("shovel", 0); - BlocksAether.highlands_snow.setHarvestLevel("shovel", 0); - BlocksAether.highlands_snow_layer.setHarvestLevel("shovel", 0); - BlocksAether.skyroot_decorative.setHarvestLevel("axe", 0); - BlocksAether.skyroot_chest.setHarvestLevel("axe", 0); - BlocksAether.skyroot_log.setHarvestLevel("axe", 0); - BlocksAether.golden_oak_log.setHarvestLevel("axe", 0); - BlocksAether.skyroot_planks.setHarvestLevel("axe", 0); - BlocksAether.woven_sticks.setHarvestLevel("axe", 0); - BlocksAether.blueberry_bush.setHarvestLevel("axe", 0); - BlocksAether.plumproot.setHarvestLevel("axe", 0); - BlocksAether.ambrosium_ore.setHarvestLevel("pickaxe", 0); - BlocksAether.zanite_ore.setHarvestLevel("pickaxe", 1); - BlocksAether.gravitite_ore.setHarvestLevel("pickaxe", 2); - BlocksAether.arkenium_ore.setHarvestLevel("pickaxe", 2); - BlocksAether.icestone_ore.setHarvestLevel("pickaxe", 1); - BlocksAether.holystone_quartz_ore.setHarvestLevel("pickaxe", 0); - BlocksAether.icestone_bricks.setHarvestLevel("pickaxe", 1); - BlocksAether.crude_scatterglass.setHarvestLevel("pickaxe", 0); - BlocksAether.scatterglass.setHarvestLevel("pickaxe", 0); - BlocksAether.highlands_ice.setHarvestLevel("pickaxe", 0); - BlocksAether.highlands_packed_ice.setHarvestLevel("pickaxe", 0); - BlocksAether.altar.setHarvestLevel("pickaxe", 0); - BlocksAether.holystone_furnace.setHarvestLevel("pickaxe", 0); - BlocksAether.aether_crafting_table.setHarvestLevel("axe", 0); - BlocksAether.icestone_cooler.setHarvestLevel("pickaxe", 0); - BlocksAether.incubator.setHarvestLevel("pickaxe", 0); - BlocksAether.masonry_bench.setHarvestLevel("pickaxe", 0); - BlocksAether.zanite_block.setHarvestLevel("pickaxe", 1); - BlocksAether.gravitite_block.setHarvestLevel("pickaxe", 2); - BlocksAether.skyroot_door.setHarvestLevel("axe", 0); - BlocksAether.skyroot_trapdoor.setHarvestLevel("axe", 0); - BlocksAether.secret_skyroot_door.setHarvestLevel("axe", 0); - BlocksAether.secret_skyroot_trapdoor.setHarvestLevel("axe", 0); - BlocksAether.holystone_wall.setHarvestLevel("pickaxe", 0); - BlocksAether.mossy_holystone_wall.setHarvestLevel("pickaxe", 0); - BlocksAether.skyroot_log_wall.setHarvestLevel("axe", 0); - BlocksAether.icestone_wall.setHarvestLevel("pickaxe", 1); - BlocksAether.scatterglass_wall.setHarvestLevel("pickaxe", 1); - BlocksAether.skyroot_slab.setHarvestLevel("axe", 0); - BlocksAether.holystone_slab.setHarvestLevel("pickaxe", 0); - BlocksAether.holystone_brick_slab.setHarvestLevel("pickaxe", 0); - BlocksAether.icestone_slab.setHarvestLevel("pickaxe", 0); - BlocksAether.holystone_bookshelf.setHarvestLevel("pickaxe", 0); - BlocksAether.skyroot_bookshelf.setHarvestLevel("axe", 0); - BlocksAether.candy_cane_block.setHarvestLevel("pickaxe", 0); - BlocksAether.candy_cane_wall.setHarvestLevel("pickaxe", 0); - BlocksAether.skyroot_ladder.setHarvestLevel("axe", 0); - BlocksAether.skyroot_button.setHarvestLevel("axe", 0); - BlocksAether.wisproot_button.setHarvestLevel("axe", 0); - BlocksAether.greatroot_button.setHarvestLevel("axe", 0); - BlocksAether.holystone_button.setHarvestLevel("pickaxe", 0); - BlocksAether.thera_grass.setHarvestLevel("shovel", 0); - BlocksAether.thera_dirt.setHarvestLevel("shovel", 0); - BlocksAether.irradiated_dust_block.setHarvestLevel("pickaxe", 2); - } - - public static Collection<Block> getRegisteredBlocks() - { - return Collections.unmodifiableCollection(registeredBlocks); - } - - private static class BlockRegistryHelper - { - private final IForgeRegistry<Block> registry; - - BlockRegistryHelper(final IForgeRegistry<Block> registry) - { - this.registry = registry; - } - - private void register(final String registryName, final Block block) - { - block.setTranslationKey(AetherCore.MOD_ID + "." + registryName); - block.setRegistryName(AetherCore.MOD_ID, registryName); - - this.registry.register(block); - - registeredBlocks.add(block); - } - } -} diff --git a/src/main/java/com/gildedgames/aether/common/init/BlueprintsAether.java b/src/main/java/com/gildedgames/aether/common/init/BlueprintsAether.java deleted file mode 100644 index 798e889dcf..0000000000 --- a/src/main/java/com/gildedgames/aether/common/init/BlueprintsAether.java +++ /dev/null @@ -1,117 +0,0 @@ -package com.gildedgames.aether.common.init; - -import com.gildedgames.aether.common.AetherCore; -import com.gildedgames.orbis.lib.OrbisLib; -import com.gildedgames.orbis.lib.data.blueprint.BlueprintData; -import com.gildedgames.orbis.lib.data.management.IProject; -import com.gildedgames.orbis.lib.data.management.IProjectManager; -import net.minecraft.util.ResourceLocation; - -import java.util.Optional; -import java.util.UUID; - -public class BlueprintsAether -{ - - public static BlueprintData OUTPOST_A; - - public static BlueprintData OUTPOST_B; - - public static BlueprintData NECROMANCER_TOWER; - - public static BlueprintData ABAND_ANGEL_STOREROOM_1A; - - public static BlueprintData ABAND_ANGEL_WATCHTOWER_1A; - - public static BlueprintData ABAND_CAMPSITE_1A; - - public static BlueprintData ABAND_HUMAN_HOUSE_1A; - - public static BlueprintData ABAND_HUMAN_HOUSE_1B; - - public static BlueprintData SKYROOT_WATCHTOWER_1A; - - public static BlueprintData SKYROOT_WATCHTOWER_1B; - - public static BlueprintData SKYROOT_WATCHTOWER_2A; - - public static BlueprintData SKYROOT_WATCHTOWER_2B; - - public static BlueprintData SKYROOT_WATCHTOWER_3A; - - public static BlueprintData SKYROOT_WATCHTOWER_3B; - - public static BlueprintData WELL_1A; - - public static BlueprintData WELL_1B; - - public static BlueprintData GREATROOT_TREE; - - public static BlueprintData SKYROOT_OAK_GREEN, SKYROOT_OAK_BLUE, SKYROOT_OAK_DARK_BLUE; - - public static BlueprintData AMBEROOT_TREE; - - public static BlueprintData WISPROOT_GREEN, WISPROOT_BLUE, WISPROOT_DARK_BLUE; - - public static BlueprintData CRAZY_MUTANT_TREE; - - private static IProject project; - - private BlueprintsAether() - { - - } - - private static BlueprintData loadData(String name) - { - Optional<UUID> id = project.getCache().getDataId(name + ".blueprint"); - - if (id.isPresent()) - { - Optional<BlueprintData> data = project.getCache().getData(id.get()); - - if (data.isPresent()) - { - return data.get(); - } - } - - throw new RuntimeException("Failed to load Blueprint Data: " + name + ".blueprint"); - } - - public static void load(IProjectManager projectManager) - { - ResourceLocation location = AetherCore.getResource("aetherii"); - - project = OrbisLib.services().loadProject(null, location, AetherCore.INSTANCE, "aether_ii"); - - projectManager.cacheProject(location.getPath(), project); - - OUTPOST_A = loadData("outpost_a"); - OUTPOST_B = loadData("outpost_b"); - NECROMANCER_TOWER = loadData("necromancer_tower"); - ABAND_ANGEL_STOREROOM_1A = loadData("aband_angel_storeroom_1a"); - ABAND_ANGEL_WATCHTOWER_1A = loadData("aband_angel_watchtower_1a"); - ABAND_CAMPSITE_1A = loadData("aband_campsite_1a"); - ABAND_HUMAN_HOUSE_1A = loadData("aband_human_house_1a"); - ABAND_HUMAN_HOUSE_1B = loadData("aband_human_house_1b"); - SKYROOT_WATCHTOWER_1A = loadData("skyroot_watchtower_1a"); - SKYROOT_WATCHTOWER_1B = loadData("skyroot_watchtower_1b"); - SKYROOT_WATCHTOWER_2A = loadData("skyroot_watchtower_2a"); - SKYROOT_WATCHTOWER_2B = loadData("skyroot_watchtower_2b"); - SKYROOT_WATCHTOWER_3A = loadData("skyroot_watchtower_3a"); - SKYROOT_WATCHTOWER_3B = loadData("skyroot_watchtower_3b"); - WELL_1A = loadData("well_1a"); - WELL_1B = loadData("well_1b"); - GREATROOT_TREE = loadData("greatroot_1"); - SKYROOT_OAK_GREEN = loadData("trees/skyroot/skyroot_oak_green"); - SKYROOT_OAK_BLUE = loadData("trees/skyroot/skyroot_oak_blue"); - SKYROOT_OAK_DARK_BLUE = loadData("trees/skyroot/skyroot_oak_dark_blue"); - AMBEROOT_TREE = loadData("trees/amberoot/amberoot_tree"); - WISPROOT_GREEN = loadData("trees/wisproot/wisproot_green"); - WISPROOT_BLUE = loadData("trees/wisproot/wisproot_blue"); - WISPROOT_DARK_BLUE = loadData("trees/wisproot/wisproot_dark_blue"); - - CRAZY_MUTANT_TREE = loadData("trees/skyroot/mutated_tree"); - } -} diff --git a/src/main/java/com/gildedgames/aether/common/init/CreativeTabsAether.java b/src/main/java/com/gildedgames/aether/common/init/CreativeTabsAether.java deleted file mode 100644 index 180a0c4f28..0000000000 --- a/src/main/java/com/gildedgames/aether/common/init/CreativeTabsAether.java +++ /dev/null @@ -1,168 +0,0 @@ -package com.gildedgames.aether.common.init; - -import com.gildedgames.aether.api.registrar.BlocksAether; -import com.gildedgames.aether.api.registrar.ItemsAether; -import com.gildedgames.aether.common.blocks.decorative.BlockSkyrootDecorative; -import com.gildedgames.aether.common.blocks.decorative.BlockTherastoneDecorative; -import net.minecraft.creativetab.CreativeTabs; -import net.minecraft.init.Items; -import net.minecraft.item.ItemBlock; -import net.minecraft.item.ItemMonsterPlacer; -import net.minecraft.item.ItemStack; -import net.minecraft.util.NonNullList; -import net.minecraft.util.ResourceLocation; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; - -public class CreativeTabsAether -{ - public static final CreativeTabs TAB_NATURAL_BLOCKS = new CreativeTabs("aether.natural_blocks") - { - @Override - public ItemStack createIcon() - { - return new ItemStack(BlocksAether.aether_grass); - } - }; - - public static final CreativeTabs TAB_CONSTRUCTION = new CreativeTabs("aether.construction") - { - @Override - public ItemStack createIcon() - { - return new ItemStack(BlocksAether.holystone_brick); - } - }; - - public static final CreativeTabs TAB_UTILITY = new CreativeTabs("aether.utility_blocks") - { - @Override - public ItemStack createIcon() - { - return new ItemStack(BlocksAether.altar); - } - }; - - public static final CreativeTabs TAB_DECORATIVE_BLOCKS = new CreativeTabs("aether.visual_variants") - { - @Override - public ItemStack createIcon() - { - return new ItemStack(BlocksAether.skyroot_decorative, 1, BlockSkyrootDecorative.HIGHLIGHT.getMeta()); - } - }; - - public static final CreativeTabs TAB_MATERIALS = new CreativeTabs("aether.materials") - { - @Override - public ItemStack createIcon() - { - return new ItemStack(ItemsAether.ambrosium_shard); - } - }; - - public static final CreativeTabs TAB_FOOD = new CreativeTabs("aether.food") - { - @Override - public ItemStack createIcon() - { - return new ItemStack(ItemsAether.orange); - } - }; - - public static final CreativeTabs TAB_CONSUMABLES = new CreativeTabs("aether.consumables") - { - @Override - public ItemStack createIcon() - { - return new ItemStack(ItemsAether.healing_stone); - } - }; - - public static final CreativeTabs TAB_TOOLS = new CreativeTabs("aether.tools") - { - @Override - public ItemStack createIcon() - { - return new ItemStack(ItemsAether.zanite_pickaxe); - } - }; - - public static final CreativeTabs TAB_WEAPONS = new CreativeTabs("aether.weapons") - { - @Override - public ItemStack createIcon() - { - return new ItemStack(ItemsAether.gravitite_sword); - } - }; - - public static final CreativeTabs TAB_ARMOR = new CreativeTabs("aether.armor") - { - @Override - public ItemStack createIcon() - { - return new ItemStack(ItemsAether.zanite_helmet); - } - }; - - public static final CreativeTabs TAB_CHARMS = new CreativeTabs("aether.charms") - { - @Override - public ItemStack createIcon() - { - return new ItemStack(ItemsAether.charm_mve_spd_01); - } - }; - - public static final CreativeTabs TAB_MISCELLANEOUS = new CreativeTabsMisc("aether.miscellaneous") - { - @Override - public ItemStack createIcon() - { - return new ItemStack(ItemsAether.skyroot_poison_bucket); - } - }; - - public static final CreativeTabs TAB_THERA = new CreativeTabs("aether.thera") - { - @Override - public ItemStack createIcon() - { - return new ItemStack(BlocksAether.therastone_brick_decorative, 1, BlockTherastoneDecorative.KEYSTONE.getMeta()); - } - }; - - - - private static abstract class CreativeTabsMisc extends CreativeTabs - { - private CreativeTabsMisc(final String unlocalizedName) - { - super(unlocalizedName); - } - - @Override - @SideOnly(Side.CLIENT) - public void displayAllRelevantItems(final NonNullList<ItemStack> list) - { - super.displayAllRelevantItems(list); - - list.sort((o1, o2) -> { - final boolean b1 = o1.getItem() instanceof ItemBlock; - final boolean b2 = o2.getItem() instanceof ItemBlock; - - return (b2 == b1 ? 0 : (b1 ? 1 : -1)); - }); - - for (final ResourceLocation res : EntitiesAether.getRegisteredSpawnEggs()) - { - final ItemStack stack = new ItemStack(Items.SPAWN_EGG); - - ItemMonsterPlacer.applyEntityIdToItemStack(stack, res); - - list.add(stack); - } - } - } -} diff --git a/src/main/java/com/gildedgames/aether/common/init/CurrencyAetherInit.java b/src/main/java/com/gildedgames/aether/common/init/CurrencyAetherInit.java deleted file mode 100644 index 450bfca1da..0000000000 --- a/src/main/java/com/gildedgames/aether/common/init/CurrencyAetherInit.java +++ /dev/null @@ -1,352 +0,0 @@ -package com.gildedgames.aether.common.init; - -import com.gildedgames.aether.api.AetherAPI; -import com.gildedgames.aether.api.recipes.IIndexableRecipe; -import com.gildedgames.aether.api.recipes.altar.IAltarRecipe; -import com.gildedgames.aether.api.recipes.simple.ISimpleRecipe; -import com.gildedgames.aether.api.registrar.BlocksAether; -import com.gildedgames.aether.api.registrar.ItemsAether; -import com.gildedgames.aether.api.shop.ICurrencyRegistry; -import com.gildedgames.aether.api.shop.IShopCurrency; -import com.gildedgames.aether.common.blocks.natural.plants.BlockAetherFlower; -import com.gildedgames.aether.common.recipes.simple.OreDictionaryRequirement; -import com.gildedgames.aether.common.shop.ShopCurrencyGilt; -import com.gildedgames.aether.common.util.helpers.ItemHelper; -import net.minecraft.block.Block; -import net.minecraft.block.state.IBlockState; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.item.crafting.FurnaceRecipes; -import net.minecraft.item.crafting.Ingredient; -import net.minecraftforge.oredict.OreDictionary; - -import java.util.Collection; - -public class CurrencyAetherInit -{ - public static final int GILT = 1; - - public static final int GILTAE = 100; - - public static final int GILTAEN = 10000; - - public static final int GILTAENI = 1000000; - - public static void onServerAboutToStart() - { - AetherAPI.content().currency().clearRegistrations(); - - GiltBuilder builder = new GiltBuilder(); - - ICurrencyRegistry c = AetherAPI.content().currency(); - c.registerValue(new ItemStack(BlocksAether.aether_dirt, 1, OreDictionary.WILDCARD_VALUE), builder.gilt(1).flush(), ShopCurrencyGilt.class); - c.registerValue(new ItemStack(BlocksAether.aether_grass, 1, OreDictionary.WILDCARD_VALUE), builder.gilt(1).flush(), ShopCurrencyGilt.class); - c.registerValue(new ItemStack(BlocksAether.holystone, 1, OreDictionary.WILDCARD_VALUE), builder.gilt(1).flush(), ShopCurrencyGilt.class); - c.registerValue(new ItemStack(BlocksAether.amberoot_leaves, 1, OreDictionary.WILDCARD_VALUE), builder.gilt(1).flush(), ShopCurrencyGilt.class); - c.registerValue(new ItemStack(BlocksAether.blue_dark_skyroot_leaves, 1, OreDictionary.WILDCARD_VALUE), builder.gilt(1).flush(), ShopCurrencyGilt.class); - c.registerValue(new ItemStack(BlocksAether.blue_light_skyroot_leaves, 1, OreDictionary.WILDCARD_VALUE), builder.gilt(1).flush(), - ShopCurrencyGilt.class); - c.registerValue(new ItemStack(BlocksAether.blue_skyroot_leaves, 1, OreDictionary.WILDCARD_VALUE), builder.gilt(1).flush(), ShopCurrencyGilt.class); - c.registerValue(new ItemStack(BlocksAether.dark_blue_dark_skyroot_leaves, 1, OreDictionary.WILDCARD_VALUE), builder.gilt(1).flush(), - ShopCurrencyGilt.class); - c.registerValue(new ItemStack(BlocksAether.dark_blue_light_skyroot_leaves, 1, OreDictionary.WILDCARD_VALUE), builder.gilt(1).flush(), - ShopCurrencyGilt.class); - c.registerValue(new ItemStack(BlocksAether.dark_blue_skyroot_leaves, 1, OreDictionary.WILDCARD_VALUE), builder.gilt(1).flush(), ShopCurrencyGilt.class); - c.registerValue(new ItemStack(BlocksAether.green_dark_skyroot_leaves, 1, OreDictionary.WILDCARD_VALUE), builder.gilt(1).flush(), - ShopCurrencyGilt.class); - c.registerValue(new ItemStack(BlocksAether.green_light_skyroot_leaves, 1, OreDictionary.WILDCARD_VALUE), builder.gilt(1).flush(), - ShopCurrencyGilt.class); - c.registerValue(new ItemStack(BlocksAether.green_skyroot_leaves, 1, OreDictionary.WILDCARD_VALUE), builder.gilt(1).flush(), ShopCurrencyGilt.class); - c.registerValue(new ItemStack(BlocksAether.therawood_leaves, 1, OreDictionary.WILDCARD_VALUE), builder.gilt(80).flush(), ShopCurrencyGilt.class); - c.registerValue(new ItemStack(BlocksAether.therawood_log, 1, OreDictionary.WILDCARD_VALUE), builder.gilt(80).flush(), ShopCurrencyGilt.class); - c.registerValue(new ItemStack(BlocksAether.thera_dirt, 1, OreDictionary.WILDCARD_VALUE), builder.gilt(80).flush(), ShopCurrencyGilt.class); - c.registerValue(new ItemStack(BlocksAether.thera_grass, 1, OreDictionary.WILDCARD_VALUE), builder.gilt(80).flush(), ShopCurrencyGilt.class); - c.registerValue(new ItemStack(BlocksAether.therastone_brick, 1, OreDictionary.WILDCARD_VALUE), builder.gilt(80).flush(), ShopCurrencyGilt.class); - c.registerValue(new ItemStack(BlocksAether.scatterglass, 1, OreDictionary.WILDCARD_VALUE), builder.gilt(3).flush(), ShopCurrencyGilt.class); - c.registerValue(new ItemStack(BlocksAether.crude_scatterglass, 1, OreDictionary.WILDCARD_VALUE), builder.gilt(3).flush(), ShopCurrencyGilt.class); - c.registerValue(new ItemStack(BlocksAether.ferrosite_sand, 1, OreDictionary.WILDCARD_VALUE), builder.gilt(2).flush(), ShopCurrencyGilt.class); - c.registerValue(new ItemStack(BlocksAether.quicksoil, 1, OreDictionary.WILDCARD_VALUE), builder.gilt(2).flush(), ShopCurrencyGilt.class); - c.registerValue(new ItemStack(BlocksAether.aercloud, 1, OreDictionary.WILDCARD_VALUE), builder.gilt(5).flush(), ShopCurrencyGilt.class); - c.registerValue(new ItemStack(BlocksAether.ferrosite, 1, OreDictionary.WILDCARD_VALUE), builder.gilt(3).flush(), ShopCurrencyGilt.class); - c.registerValue(new ItemStack(BlocksAether.rusted_ferrosite, 1, OreDictionary.WILDCARD_VALUE), builder.gilt(3).flush(), ShopCurrencyGilt.class); - c.registerValue(new ItemStack(BlocksAether.skyroot_sapling, 1, OreDictionary.WILDCARD_VALUE), builder.gilt(5).flush(), ShopCurrencyGilt.class); - c.registerValue(new ItemStack(BlocksAether.unique_sapling, 1, OreDictionary.WILDCARD_VALUE), builder.gilt(5).flush(), ShopCurrencyGilt.class); - c.registerValue(new ItemStack(BlocksAether.wisproot_sapling, 1, OreDictionary.WILDCARD_VALUE), builder.gilt(5).flush(), ShopCurrencyGilt.class); - c.registerValue(new ItemStack(BlocksAether.greatroot_sapling, 1, OreDictionary.WILDCARD_VALUE), builder.gilt(5).flush(), ShopCurrencyGilt.class); - c.registerValue(new ItemStack(BlocksAether.aether_flower, 1, BlockAetherFlower.WHITE_ROSE.getMeta()), builder.gilt(5).flush(), ShopCurrencyGilt.class); - c.registerValue(new ItemStack(BlocksAether.aether_flower, 1, BlockAetherFlower.PURPLE_FLOWER.getMeta()), builder.gilt(5).flush(), - ShopCurrencyGilt.class); - c.registerValue(new ItemStack(BlocksAether.aether_flower, 1, BlockAetherFlower.BURSTBLOSSOM.getMeta()), builder.gilt(5).flush(), - ShopCurrencyGilt.class); - c.registerValue(new ItemStack(BlocksAether.aether_flower, 1, BlockAetherFlower.AECHOR_SPROUT.getMeta()), builder.gilt(15).flush(), - ShopCurrencyGilt.class); - c.registerValue(new ItemStack(BlocksAether.plumproot, 1, OreDictionary.WILDCARD_VALUE), builder.gilt(10).flush(), - ShopCurrencyGilt.class); - c.registerValue(new ItemStack(BlocksAether.quickshoot, 1, OreDictionary.WILDCARD_VALUE), builder.gilt(5).flush(), ShopCurrencyGilt.class); - c.registerValue(new ItemStack(BlocksAether.pink_swingtip, 1, OreDictionary.WILDCARD_VALUE), builder.gilt(5).flush(), ShopCurrencyGilt.class); - c.registerValue(new ItemStack(BlocksAether.green_swingtip, 1, OreDictionary.WILDCARD_VALUE), builder.gilt(5).flush(), ShopCurrencyGilt.class); - c.registerValue(new ItemStack(BlocksAether.blue_swingtip, 1, OreDictionary.WILDCARD_VALUE), builder.gilt(5).flush(), ShopCurrencyGilt.class); - c.registerValue(new ItemStack(BlocksAether.neverbloom, 1, OreDictionary.WILDCARD_VALUE), builder.gilt(5).flush(), ShopCurrencyGilt.class); - c.registerValue(new ItemStack(BlocksAether.highlands_tulips, 1, OreDictionary.WILDCARD_VALUE), builder.gilt(5).flush(), ShopCurrencyGilt.class); - c.registerValue(new ItemStack(BlocksAether.arctic_spikespring, 1, OreDictionary.WILDCARD_VALUE), builder.gilt(5).flush(), ShopCurrencyGilt.class); - c.registerValue(new ItemStack(BlocksAether.irradiated_flower, 1, OreDictionary.WILDCARD_VALUE), builder.gilt(5).flush(), ShopCurrencyGilt.class); - c.registerValue(new ItemStack(BlocksAether.forgotten_rose, 1, OreDictionary.WILDCARD_VALUE), builder.gilt(5).flush(), ShopCurrencyGilt.class); - c.registerValue(new ItemStack(BlocksAether.stoneshroom, 1, OreDictionary.WILDCARD_VALUE), builder.gilt(5).flush(), ShopCurrencyGilt.class); - c.registerValue(new ItemStack(BlocksAether.barkshroom, 1, OreDictionary.WILDCARD_VALUE), builder.gilt(5).flush(), ShopCurrencyGilt.class); - c.registerValue(new ItemStack(BlocksAether.magnetic_shroom, 1, OreDictionary.WILDCARD_VALUE), builder.gilt(5).flush(), ShopCurrencyGilt.class); - c.registerValue(new ItemStack(BlocksAether.orange_tree, 1, OreDictionary.WILDCARD_VALUE), builder.gilt(30).flush(), ShopCurrencyGilt.class); - c.registerValue(new ItemStack(BlocksAether.blueberry_bush, 1, OreDictionary.WILDCARD_VALUE), builder.gilt(30).flush(), ShopCurrencyGilt.class); - c.registerValue(new ItemStack(BlocksAether.valkyrie_grass, 1, OreDictionary.WILDCARD_VALUE), builder.gilt(5).flush(), ShopCurrencyGilt.class); - c.registerValue(new ItemStack(ItemsAether.valkyrie_wings, 1, OreDictionary.WILDCARD_VALUE), builder.gilt(5).flush(), ShopCurrencyGilt.class); - c.registerValue(new ItemStack(BlocksAether.skyroot_log, 1, OreDictionary.WILDCARD_VALUE), builder.gilt(3).flush(), ShopCurrencyGilt.class); - c.registerValue(new ItemStack(BlocksAether.dark_skyroot_log, 1, OreDictionary.WILDCARD_VALUE), builder.gilt(3).flush(), ShopCurrencyGilt.class); - c.registerValue(new ItemStack(BlocksAether.light_skyroot_log, 1, OreDictionary.WILDCARD_VALUE), builder.gilt(3).flush(), ShopCurrencyGilt.class); - c.registerValue(new ItemStack(BlocksAether.golden_oak_log, 1, OreDictionary.WILDCARD_VALUE), builder.gilt(5).flush(), ShopCurrencyGilt.class); - c.registerValue(new ItemStack(ItemsAether.ambrosium_shard, 1, OreDictionary.WILDCARD_VALUE), builder.gilt(40).flush(), ShopCurrencyGilt.class); - c.registerValue(new ItemStack(ItemsAether.zanite_gemstone, 1, OreDictionary.WILDCARD_VALUE), builder.gilt(90).flush(), ShopCurrencyGilt.class); - c.registerValue(new ItemStack(ItemsAether.icestone, 1, OreDictionary.WILDCARD_VALUE), builder.gilt(66).flush(), ShopCurrencyGilt.class); - c.registerValue(new ItemStack(BlocksAether.arkenium_ore, 1, OreDictionary.WILDCARD_VALUE), builder.gilt(20).giltae(1).flush(), ShopCurrencyGilt.class); - c.registerValue(new ItemStack(ItemsAether.arkenium, 1, OreDictionary.WILDCARD_VALUE), builder.gilt(40).giltae(1).flush(), ShopCurrencyGilt.class); - c.registerValue(new ItemStack(ItemsAether.arkenium_strip, 1, OreDictionary.WILDCARD_VALUE), builder.gilt(35).flush(), ShopCurrencyGilt.class); - c.registerValue(new ItemStack(BlocksAether.gravitite_ore, 1, OreDictionary.WILDCARD_VALUE), builder.gilt(80).giltae(1).flush(), ShopCurrencyGilt.class); - c.registerValue(new ItemStack(ItemsAether.gravitite_plate, 1, OreDictionary.WILDCARD_VALUE), builder.giltae(2).flush(), ShopCurrencyGilt.class); - c.registerValue(new ItemStack(BlocksAether.cloudwool_block, 1, OreDictionary.WILDCARD_VALUE), builder.gilt(4).flush(), ShopCurrencyGilt.class); - c.registerValue(new ItemStack(ItemsAether.moa_feather, 1, OreDictionary.WILDCARD_VALUE), builder.gilt(1).flush(), ShopCurrencyGilt.class); - c.registerValue(new ItemStack(ItemsAether.cockatrice_feather, 1, OreDictionary.WILDCARD_VALUE), builder.gilt(3).flush(), ShopCurrencyGilt.class); - c.registerValue(new ItemStack(ItemsAether.golden_amber, 1, OreDictionary.WILDCARD_VALUE), builder.gilt(2).flush(), ShopCurrencyGilt.class); - c.registerValue(new ItemStack(ItemsAether.taegore_hide, 1, OreDictionary.WILDCARD_VALUE), builder.gilt(10).flush(), ShopCurrencyGilt.class); - c.registerValue(new ItemStack(ItemsAether.burrukai_pelt, 1, OreDictionary.WILDCARD_VALUE), builder.gilt(15).flush(), ShopCurrencyGilt.class); - c.registerValue(new ItemStack(ItemsAether.brettl_cane, 1, OreDictionary.WILDCARD_VALUE), builder.gilt(5).flush(), ShopCurrencyGilt.class); - c.registerValue(new ItemStack(ItemsAether.brettl_grass, 1, OreDictionary.WILDCARD_VALUE), builder.gilt(20).flush(), ShopCurrencyGilt.class); - c.registerValue(new ItemStack(ItemsAether.swet_gel, 1, OreDictionary.WILDCARD_VALUE), builder.gilt(3).flush(), ShopCurrencyGilt.class); - c.registerValue(new ItemStack(ItemsAether.swet_sugar, 1, OreDictionary.WILDCARD_VALUE), builder.gilt(6).flush(), ShopCurrencyGilt.class); - c.registerValue(new ItemStack(ItemsAether.blueberries, 1, OreDictionary.WILDCARD_VALUE), builder.gilt(2).flush(), ShopCurrencyGilt.class); - c.registerValue(new ItemStack(ItemsAether.orange, 1, OreDictionary.WILDCARD_VALUE), builder.gilt(3).flush(), ShopCurrencyGilt.class); - c.registerValue(new ItemStack(ItemsAether.wyndberry, 1, OreDictionary.WILDCARD_VALUE), builder.gilt(5).flush(), ShopCurrencyGilt.class); - c.registerValue(new ItemStack(ItemsAether.raw_taegore_meat, 1, OreDictionary.WILDCARD_VALUE), builder.gilt(25).flush(), ShopCurrencyGilt.class); - c.registerValue(new ItemStack(ItemsAether.burrukai_rib_cut, 1, OreDictionary.WILDCARD_VALUE), builder.gilt(45).flush(), ShopCurrencyGilt.class); - c.registerValue(new ItemStack(ItemsAether.kirrid_loin, 1, OreDictionary.WILDCARD_VALUE), builder.gilt(15).flush(), ShopCurrencyGilt.class); - c.registerValue(new ItemStack(ItemsAether.skyroot_lizard_stick, 1, OreDictionary.WILDCARD_VALUE), builder.gilt(5).flush(), ShopCurrencyGilt.class); - c.registerValue(new ItemStack(ItemsAether.moa_egg_item, 1, OreDictionary.WILDCARD_VALUE), builder.giltae(1).flush(), ShopCurrencyGilt.class); - c.registerValue(new ItemStack(ItemsAether.aechor_petal, 1, OreDictionary.WILDCARD_VALUE), builder.gilt(7).flush(), ShopCurrencyGilt.class); - c.registerValue(new ItemStack(ItemsAether.skyroot_pinecone, 1, OreDictionary.WILDCARD_VALUE), builder.gilt(1).flush(), ShopCurrencyGilt.class); - - for (Block block : BlocksAetherInit.getRegisteredBlocks()) - { - registerBlockCurrency(block, builder, c, ShopCurrencyGilt.class); - } - - for (Item item : ItemsAetherInit.getRegisteredItems()) - { - registerItemCurrency(item, builder, c, ShopCurrencyGilt.class); - } - - for (ISimpleRecipe recipe : AetherAPI.content().masonry().getAllRecipes()) - { - if (recipe.getResult() != null && !c.hasValue(recipe.getResult(), ShopCurrencyGilt.class)) - { - double value = 0; - - for (Object obj : recipe.getRequired()) - { - if (obj instanceof ItemStack) - { - ItemStack stack = (ItemStack) obj; - - value += c.getValue(stack, ShopCurrencyGilt.class); - } - else if (obj instanceof OreDictionaryRequirement) - { - //TODO: Get item stacks from Ore requirement, get currency value, add. Can't right now. - } - } - - c.registerValue(recipe.getResult(), value, ShopCurrencyGilt.class); - } - } - - c.registerValue(new ItemStack(ItemsAether.secret_skyroot_door_item, 1, OreDictionary.WILDCARD_VALUE), - c.getValue(new ItemStack(ItemsAether.skyroot_door_item, 1, OreDictionary.WILDCARD_VALUE), ShopCurrencyGilt.class), ShopCurrencyGilt.class); - c.registerValue(new ItemStack(BlocksAether.secret_skyroot_trapdoor, 1, OreDictionary.WILDCARD_VALUE), - c.getValue(new ItemStack(BlocksAether.skyroot_trapdoor, 1, OreDictionary.WILDCARD_VALUE), ShopCurrencyGilt.class), ShopCurrencyGilt.class); - } - - private static void registerBlockCurrency(Block block, GiltBuilder builder, ICurrencyRegistry c, Class<? extends IShopCurrency> currency) - { - boolean doneDefaultMeta = false; - - for (IBlockState state : block.getBlockState().getValidStates()) - { - int meta = block.getMetaFromState(state); - - if (meta == 0) - { - doneDefaultMeta = true; - } - - ItemStack stack = new ItemStack(block, 1, meta); - - registerCurrency(null, stack, builder, c, currency); - } - - if (!doneDefaultMeta) - { - ItemStack stack = new ItemStack(block, 1, 0); - - registerCurrency(null, stack, builder, c, currency); - } - } - - private static void registerItemCurrency(Item item, GiltBuilder builder, ICurrencyRegistry c, Class<? extends IShopCurrency> currency) - { - ItemStack stack = new ItemStack(item, 1, OreDictionary.WILDCARD_VALUE); - - registerCurrency(null, stack, builder, c, currency); - } - - private static void registerCurrency(ItemStack recursiveParent, ItemStack stack, GiltBuilder builder, ICurrencyRegistry c, - Class<? extends IShopCurrency> currency) - { - Collection<IIndexableRecipe> recipes = AetherAPI.content().craftable().getRecipesContainingResult(stack); - - double highestValue = Double.MIN_VALUE; - - for (IIndexableRecipe recipe : recipes) - { - ItemStack result = recipe.getCraftingResult(); - - for (Ingredient ingredient : recipe.getCraftingMatrix()) - { - double lowestValue = Double.MAX_VALUE; - - for (ItemStack s : ingredient.getMatchingStacks()) - { - if (!c.hasValue(s, currency) && (recursiveParent == null || ItemHelper.getKeyForItemStack(recursiveParent) != ItemHelper - .getKeyForItemStack(s))) - { - if (recursiveParent == null) - { - registerCurrency(s, s, new GiltBuilder(), c, currency); - } - else - { - registerCurrency(recursiveParent, s, new GiltBuilder(), c, currency); - } - } - - double value = c.getValue(s, ShopCurrencyGilt.class); - - if (value > 0 && value < lowestValue) - { - lowestValue = value; - } - } - - if (lowestValue == Double.MAX_VALUE) - { - lowestValue = 0; - } - - builder.value += lowestValue; - } - - double value = builder.flush() / (double) result.getCount(); - - if (value > highestValue) - { - highestValue = value; - } - } - - IAltarRecipe recipe = AetherAPI.content().altar().getMatchingRecipeFromOutput(stack); - - if (recipe != null && recipe.getInput() != null) - { - ItemStack s = recipe.getInput(); - - if (!c.hasValue(s, currency) && (recursiveParent == null || ItemHelper.getKeyForItemStack(recursiveParent) != ItemHelper.getKeyForItemStack(s))) - { - if (recursiveParent == null) - { - registerCurrency(s, s, new GiltBuilder(), c, currency); - } - else - { - registerCurrency(recursiveParent, s, new GiltBuilder(), c, currency); - } - } - - double value = c.getValue(s, currency) + c.getValue(new ItemStack(ItemsAether.ambrosium_shard, 1, recipe.getAmbrosiumCost(s)), currency); - - if (value > highestValue) - { - highestValue = value; - } - } - - if (highestValue == Double.MIN_VALUE) - { - highestValue = 0; - } - - if (highestValue > 0) - { - c.registerValue(stack, highestValue, currency); - } - - ItemStack smeltingResult = FurnaceRecipes.instance().getSmeltingResult(stack); - - if (!smeltingResult.isEmpty() && !c.hasValue(smeltingResult, currency)) - { - c.registerValue(smeltingResult, (c.getValue(stack, currency) + 20) / (double) smeltingResult.getCount(), currency); - } - } - - private static class GiltBuilder - { - private double value; - - private GiltBuilder() - { - - } - - public GiltBuilder gilt(int count) - { - this.value += count * GILT; - - return this; - } - - public GiltBuilder giltae(int count) - { - this.value += count * GILTAE; - - return this; - } - - public GiltBuilder giltaen(int count) - { - this.value += count * GILTAEN; - - return this; - } - - public GiltBuilder giltaeni(int count) - { - this.value += count * GILTAENI; - - return this; - } - - public double flush() - { - double value = this.value; - - this.value = 0; - - return value; - } - - } -} diff --git a/src/main/java/com/gildedgames/aether/common/init/DefinitionsAetherInit.java b/src/main/java/com/gildedgames/aether/common/init/DefinitionsAetherInit.java deleted file mode 100644 index 75430ab18b..0000000000 --- a/src/main/java/com/gildedgames/aether/common/init/DefinitionsAetherInit.java +++ /dev/null @@ -1,45 +0,0 @@ -package com.gildedgames.aether.common.init; - -import com.gildedgames.aether.api.AetherAPI; -import com.gildedgames.aether.common.AetherCore; -import net.minecraft.util.ResourceLocation; - -public class DefinitionsAetherInit -{ - public static void preInit() - { - AetherAPI.content().tgManager().registerEntry(new ResourceLocation("aether:aechor_plant")); - AetherAPI.content().tgManager().registerEntry(new ResourceLocation("aether:aerbunny")); - AetherAPI.content().tgManager().registerEntry(new ResourceLocation("aether:burrukai")); - AetherAPI.content().tgManager().registerEntry(new ResourceLocation("aether:carrion_sprout")); - AetherAPI.content().tgManager().registerEntry(new ResourceLocation("aether:cockatrice")); - AetherAPI.content().tgManager().registerEntry(new ResourceLocation("aether:glactrix")); - AetherAPI.content().tgManager().registerEntry(new ResourceLocation("aether:glitterwing")); - AetherAPI.content().tgManager().registerEntry(new ResourceLocation("aether:kirrid")); - AetherAPI.content().tgManager().registerEntry(new ResourceLocation("aether:moa")); - AetherAPI.content().tgManager().registerEntry(new ResourceLocation("aether:sheepuff")); - AetherAPI.content().tgManager().registerEntry(new ResourceLocation("aether:skyroot_lizard")); - AetherAPI.content().tgManager().registerEntry(new ResourceLocation("aether:swet")); - AetherAPI.content().tgManager().registerEntry(new ResourceLocation("aether:taegore")); - AetherAPI.content().tgManager().registerEntry(new ResourceLocation("aether:tempest")); - AetherAPI.content().tgManager().registerEntry(new ResourceLocation("aether:varanys")); - AetherAPI.content().tgManager().registerEntry(new ResourceLocation("aether:zephyr")); - - AetherAPI.content().tgManager().registerEntry(new ResourceLocation("aether:ambrosium_poisoning")); - AetherAPI.content().tgManager().registerEntry(new ResourceLocation("aether:bleed")); - AetherAPI.content().tgManager().registerEntry(new ResourceLocation("aether:cockatrice_venom")); - AetherAPI.content().tgManager().registerEntry(new ResourceLocation("aether:fracture")); - AetherAPI.content().tgManager().registerEntry(new ResourceLocation("aether:freeze")); - AetherAPI.content().tgManager().registerEntry(new ResourceLocation("aether:guard_break")); - AetherAPI.content().tgManager().registerEntry(new ResourceLocation("aether:irradiation")); - AetherAPI.content().tgManager().registerEntry(new ResourceLocation("aether:saturation_boost")); - AetherAPI.content().tgManager().registerEntry(new ResourceLocation("aether:stun")); - AetherAPI.content().tgManager().registerEntry(new ResourceLocation("aether:toxin")); - AetherAPI.content().tgManager().registerEntry(new ResourceLocation("aether:webbing")); - - if (AetherCore.isServer()) - { - AetherAPI.content().tgManager().load(); - } - } -} diff --git a/src/main/java/com/gildedgames/aether/common/init/DimensionsAether.java b/src/main/java/com/gildedgames/aether/common/init/DimensionsAether.java deleted file mode 100644 index 958c8f42d9..0000000000 --- a/src/main/java/com/gildedgames/aether/common/init/DimensionsAether.java +++ /dev/null @@ -1,28 +0,0 @@ -package com.gildedgames.aether.common.init; - -import com.gildedgames.aether.common.AetherCore; -import com.gildedgames.aether.common.world.WorldProviderAether; -import com.gildedgames.aether.common.world.WorldProviderNecromancerTower; -import net.minecraft.world.DimensionType; -import net.minecraftforge.common.DimensionManager; - -public class DimensionsAether -{ - public static DimensionType AETHER; - - public static DimensionType NECROMANCER_TOWER; - - public static void preInit() - { - // Register dimension types - DimensionsAether.AETHER = DimensionType.register("Aether", "_aether", - AetherCore.CONFIG.aetherDimID, WorldProviderAether.class, false); - - DimensionsAether.NECROMANCER_TOWER = DimensionType.register("NecromancerTower", "_necromancer_tower", - AetherCore.CONFIG.necromancerDimId, WorldProviderNecromancerTower.class, false); - - // Register dimensions - DimensionManager.registerDimension(AetherCore.CONFIG.aetherDimID, DimensionsAether.AETHER); - } - -} diff --git a/src/main/java/com/gildedgames/aether/common/init/EntitiesAether.java b/src/main/java/com/gildedgames/aether/common/init/EntitiesAether.java deleted file mode 100644 index 915bfecd05..0000000000 --- a/src/main/java/com/gildedgames/aether/common/init/EntitiesAether.java +++ /dev/null @@ -1,109 +0,0 @@ -package com.gildedgames.aether.common.init; - -import com.gildedgames.aether.common.AetherCore; -import com.gildedgames.aether.common.entities.animals.*; -import com.gildedgames.aether.common.entities.blocks.EntityFloatingBlock; -import com.gildedgames.aether.common.entities.blocks.EntityMovingBlock; -import com.gildedgames.aether.common.entities.blocks.EntityParachute; -import com.gildedgames.aether.common.entities.characters.*; -import com.gildedgames.aether.common.entities.companions.*; -import com.gildedgames.aether.common.entities.monsters.*; -import com.gildedgames.aether.common.entities.projectiles.EntityBolt; -import com.gildedgames.aether.common.entities.projectiles.EntityDaggerfrostSnowball; -import com.gildedgames.aether.common.entities.projectiles.EntityDart; -import com.gildedgames.aether.common.entities.projectiles.EntityTNTPresent; -import net.minecraft.entity.Entity; -import net.minecraft.util.ResourceLocation; -import net.minecraftforge.fml.common.registry.EntityRegistry; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; - -import java.util.ArrayList; -import java.util.Collection; -import java.util.Collections; - -public class EntitiesAether -{ - private static final Collection<ResourceLocation> registeredEggs = new ArrayList<>(); - - private static int NEXT_ID = 0; - - public static void preInit() - { - registerLivingEntityWithEgg(EntityAechorPlant.class, "aechor_plant", 0x735190, 0xaed28f); - registerLivingEntityWithEgg(EntityAerbunny.class, "aerbunny", 0xcbe1e6, 0xe08c8c); - registerLivingEntityWithEgg(EntityCarrionSprout.class, "carrion_sprout", 0xcad9e9, 0x93b1d1); - registerLivingEntityWithEgg(EntityCockatrice.class, "cockatrice", 0x6b519c, 0x8ae390); - registerLivingEntityWithEgg(EntityKirrid.class, "kirrid", 0xf3efd8, 0x50575d); - registerLivingEntityWithEgg(EntityAerwhale.class, "aerwhale", 0x86b1c9, 0x8095a1); - registerLivingEntityWithEgg(EntityZephyr.class, "zephyr", 0xb8b5ab, 0x988c65); - registerLivingEntityWithEgg(EntityTempest.class, "tempest", 0x3c464c, 0xc3e6f0); - registerLivingEntityWithEgg(EntitySwet.class, "swet", 0xCCFFFF, 0xCCCCFF); - registerLivingEntityWithEgg(EntityTaegore.class, "taegore", 0xd7e1e6, 0xedcd6e); - registerLivingEntityWithEgg(EntityGlitterwing.class, "glitterwing", 0x5368a9, 0x1a2341); - registerLivingEntityWithEgg(EntityEdison.class, "edison", 0xedc5b1, 0x788b7e); - registerLivingEntityWithEgg(EntityBurrukai.class, "burrukai", 0x435258, 0x548193); - registerLivingEntityWithEgg(EntityNecromancer.class, "necromancer", 0x4b4b6a, 0x8a8a9e); - registerLivingEntityWithEgg(EntityJosediya.class, "josediya", 0xabd5cb, 0x87dbac); - registerLivingEntityWithEgg(EntityTivalier.class, "tivalier", 0x6eb196, 0x454e68); - registerLivingEntityWithEgg(EntityGlactrix.class, "glactrix", 0x6eb196, 0x454e68); - registerLivingEntityWithEgg(EntityMysteriousFigure.class, "mysterious_figure", 0x504960, 0xb68b69); - registerLivingEntityWithEgg(EntityVaranys.class, "varanys", 0x86b1c9, 0x548193); - registerLivingEntityWithEgg(EntitySkyrootLizard.class, "skyroot_lizard", 0x463B30, 0x86A470); - registerLivingEntityWithEgg(EntitySheepuff.class, "sheepuff", 0xA3EBEA, 0xB99972); - registerLivingEntityWithEgg(EntityArkeniumGolem.class, "arkenium_golem", 0xA5A5A5, 0x2e2e2e); - - registerLivingEntity(EntityFrostpineTotem.class, "frostpine_totem"); - registerLivingEntity(EntityKraisith.class, "kraisith"); - registerLivingEntity(EntityShadeOfArkenzus.class, "shade_of_arkenzus"); - registerLivingEntity(EntityEtherealWisp.class, "ethereal_wisp"); - registerLivingEntity(EntityFleetingWisp.class, "fleeting_wisp"); - registerLivingEntity(EntitySoaringWisp.class, "soaring_wisp"); - registerLivingEntity(EntityFangrin.class, "fangrin"); - registerLivingEntity(EntityNexSpirit.class, "nex_spirit"); - registerLivingEntity(EntityPinkBabySwet.class, "pink_baby_swet"); - - registerEntity(EntityFloatingBlock.class, "floating_block", 80, 1, true); - registerEntity(EntityMovingBlock.class, "moving_block", 80, 3, true); - registerEntity(EntityDart.class, "dart", 80, 3, true); - registerEntity(EntityDaggerfrostSnowball.class, "daggerfrost_snowball", 80, 3, true); - registerEntity(EntityBolt.class, "bolt", 80, 3, true); - registerEntity(EntityParachute.class, "parachute", 80, 3, true); - registerEntity(EntityTNTPresent.class, "tnt_present", 80, 3, true); - registerEntity(EntityMoa.class, "moa", 80, 1, true); - } - - private static void registerLivingEntityWithEgg(final Class<? extends Entity> entity, final String name, final int eggPrimaryColor, - final int eggSecondaryColor) - { - final ResourceLocation id = AetherCore.getResource(name); - - EntityRegistry.registerModEntity(id, entity, EntitiesAether.getEntityName(name), NEXT_ID++, AetherCore.INSTANCE, 80, 3, true, eggPrimaryColor, - eggSecondaryColor); - registeredEggs.add(id); - } - - private static void registerLivingEntity(final Class<? extends Entity> entity, final String name) - { - EntityRegistry.registerModEntity(AetherCore.getResource(name), entity, EntitiesAether.getEntityName(name), NEXT_ID++, AetherCore.INSTANCE, 80, 3, true); - } - - private static void registerEntity( - final Class<? extends Entity> entity, final String name, final int trackingRange, final int updateFrequency, final boolean sendsVelocityUpdates) - { - EntityRegistry - .registerModEntity(AetherCore.getResource(name), entity, EntitiesAether.getEntityName(name), NEXT_ID++, AetherCore.INSTANCE, trackingRange, - updateFrequency, sendsVelocityUpdates); - } - - private static String getEntityName(final String name) - { - return AetherCore.MOD_ID + "." + name; - } - - @SideOnly(Side.CLIENT) - public static Collection<ResourceLocation> getRegisteredSpawnEggs() - { - return Collections.unmodifiableCollection(registeredEggs); - } -} diff --git a/src/main/java/com/gildedgames/aether/common/init/EquipmentAether.java b/src/main/java/com/gildedgames/aether/common/init/EquipmentAether.java deleted file mode 100644 index 8228529ef3..0000000000 --- a/src/main/java/com/gildedgames/aether/common/init/EquipmentAether.java +++ /dev/null @@ -1,177 +0,0 @@ -package com.gildedgames.aether.common.init; - -import com.gildedgames.aether.api.AetherAPI; -import com.gildedgames.aether.api.entity.damage.DamageTypeAttributes; -import com.gildedgames.aether.api.items.EffectActivator; -import com.gildedgames.aether.api.items.equipment.ItemEquipmentSlot; -import com.gildedgames.aether.api.items.equipment.effects.IEffectProvider; -import com.gildedgames.aether.api.items.properties.ItemPropertiesBuilder; -import com.gildedgames.aether.api.items.properties.ItemRarity; -import com.gildedgames.aether.api.registrar.ItemsAether; -import com.gildedgames.aether.common.capabilities.item.effects.*; -import com.gildedgames.aether.common.capabilities.item.effects.CompanionEffectFactory.CompanionEffectProvider; -import com.gildedgames.aether.common.capabilities.item.effects.stats.StatEffectFactory; -import com.gildedgames.aether.common.entities.companions.EntityCompanion; -import com.gildedgames.aether.common.items.companions.ItemCompanion; -import net.minecraft.entity.SharedMonsterAttributes; -import net.minecraft.item.Item; - -public class EquipmentAether -{ - private static final EffectActivator[] EMPTY_ACTIVATORS = new EffectActivator[0]; - - private static final EffectActivator[] WHEN_HELD = new EffectActivator[] { - EffectActivator.WHEN_HELD - }; - - private static final EffectActivator[] WHEN_EQUIPPED = new EffectActivator[] { - EffectActivator.WHEN_EQUIPPED - }; - - public static void init() - { - registerProcessors(); - registerItems(); - } - - private static void registerProcessors() - { - AetherAPI.content().effects().registerEffect(new RegenerationEffectFactory()); - AetherAPI.content().effects().registerEffect(new WaterBreathEffectFactory()); - AetherAPI.content().effects().registerEffect(new FireImmunityEffectFactory()); - AetherAPI.content().effects().registerEffect(new StatEffectFactory()); - AetherAPI.content().effects().registerEffect(new PotionEffectFactory()); - AetherAPI.content().effects().registerEffect(new CompanionEffectFactory()); - AetherAPI.content().effects().registerEffect(new InvisiblityEffectFactory()); - } - - private static void registerItems() - { - //GLOVES - createEquipmentItem(ItemsAether.taegore_hide_gloves, ItemEquipmentSlot.HANDWEAR, ItemRarity.NONE, WHEN_EQUIPPED); - - createEquipmentItem(ItemsAether.burrukai_pelt_gloves, ItemEquipmentSlot.HANDWEAR, ItemRarity.NONE, WHEN_EQUIPPED); - - createEquipmentItem(ItemsAether.zanite_gloves, ItemEquipmentSlot.HANDWEAR, ItemRarity.NONE, WHEN_EQUIPPED); - - createEquipmentItem(ItemsAether.arkenium_gloves, ItemEquipmentSlot.HANDWEAR, ItemRarity.NONE, WHEN_EQUIPPED, - new StatEffectFactory.StatProvider(SharedMonsterAttributes.MOVEMENT_SPEED, -0.075, StatEffectFactory.StatProvider.OP_MULTIPLY)); - - createEquipmentItem(ItemsAether.gravitite_gloves, ItemEquipmentSlot.HANDWEAR, ItemRarity.NONE, WHEN_EQUIPPED); - - //CHARMS - //createEquipmentItem(ItemsAether.charm_arm_01, ItemEquipmentSlot.CHARM, ItemRarity.COMMON, WHEN_EQUIPPED, - // new StatEffectFactory.StatProvider(SharedMonsterAttributes.ARMOR, 1.0, StatEffectFactory.StatProvider.OP_ADD)); - //createEquipmentItem(ItemsAether.charm_arm_02, ItemEquipmentSlot.CHARM, ItemRarity.RARE, WHEN_EQUIPPED, - // new StatEffectFactory.StatProvider(SharedMonsterAttributes.ARMOR, 2.0, StatEffectFactory.StatProvider.OP_ADD)); - - //createEquipmentItem(ItemsAether.charm_arm_tgh_01, ItemEquipmentSlot.CHARM, ItemRarity.COMMON, WHEN_EQUIPPED, - // new StatEffectFactory.StatProvider(SharedMonsterAttributes.ARMOR_TOUGHNESS, 1.0, StatEffectFactory.StatProvider.OP_ADD)); - //createEquipmentItem(ItemsAether.charm_arm_tgh_02, ItemEquipmentSlot.CHARM, ItemRarity.RARE, WHEN_EQUIPPED, - // new StatEffectFactory.StatProvider(SharedMonsterAttributes.ARMOR_TOUGHNESS, 2.0, StatEffectFactory.StatProvider.OP_ADD)); - - //createEquipmentItem(ItemsAether.charm_imp_dmg_01, ItemEquipmentSlot.CHARM, ItemRarity.COMMON, WHEN_EQUIPPED); - //createEquipmentItem(ItemsAether.charm_imp_dmg_02, ItemEquipmentSlot.CHARM, ItemRarity.RARE, WHEN_EQUIPPED); - - //createEquipmentItem(ItemsAether.charm_atk_spd_01, ItemEquipmentSlot.CHARM, ItemRarity.COMMON, WHEN_EQUIPPED, - // new StatEffectFactory.StatProvider(SharedMonsterAttributes.ATTACK_SPEED, 0.1, StatEffectFactory.StatProvider.OP_ADD)); - //createEquipmentItem(ItemsAether.charm_atk_spd_02, ItemEquipmentSlot.CHARM, ItemRarity.RARE, WHEN_EQUIPPED, - // new StatEffectFactory.StatProvider(SharedMonsterAttributes.ATTACK_SPEED, 0.2, StatEffectFactory.StatProvider.OP_ADD)); - - //createEquipmentItem(ItemsAether.charm_kbk_res_01, ItemEquipmentSlot.CHARM, ItemRarity.COMMON, WHEN_EQUIPPED, - // new StatEffectFactory.StatProvider(SharedMonsterAttributes.KNOCKBACK_RESISTANCE, 1.0, StatEffectFactory.StatProvider.OP_ADD)); - //createEquipmentItem(ItemsAether.charm_kbk_res_02, ItemEquipmentSlot.CHARM, ItemRarity.RARE, WHEN_EQUIPPED, - // new StatEffectFactory.StatProvider(SharedMonsterAttributes.KNOCKBACK_RESISTANCE, 2.0, StatEffectFactory.StatProvider.OP_ADD)); - - //createEquipmentItem(ItemsAether.charm_lck_01, ItemEquipmentSlot.CHARM, ItemRarity.COMMON, WHEN_EQUIPPED, - // new StatEffectFactory.StatProvider(SharedMonsterAttributes.LUCK, 1.0, StatEffectFactory.StatProvider.OP_ADD)); - //createEquipmentItem(ItemsAether.charm_lck_02, ItemEquipmentSlot.CHARM, ItemRarity.RARE, WHEN_EQUIPPED, - // new StatEffectFactory.StatProvider(SharedMonsterAttributes.LUCK, 2.0, StatEffectFactory.StatProvider.OP_ADD)); - - createEquipmentItem(ItemsAether.charm_max_hlt_01, ItemEquipmentSlot.CHARM, ItemRarity.COMMON, WHEN_EQUIPPED, - new StatEffectFactory.StatProvider(SharedMonsterAttributes.MAX_HEALTH, 0.5, StatEffectFactory.StatProvider.OP_ADD)); - //createEquipmentItem(ItemsAether.charm_max_hlt_02, ItemEquipmentSlot.CHARM, ItemRarity.RARE, WHEN_EQUIPPED, - // new StatEffectFactory.StatProvider(SharedMonsterAttributes.MAX_HEALTH, 1.0, StatEffectFactory.StatProvider.OP_ADD)); - - createEquipmentItem(ItemsAether.charm_mve_spd_01, ItemEquipmentSlot.CHARM, ItemRarity.COMMON, WHEN_EQUIPPED, - new StatEffectFactory.StatProvider(SharedMonsterAttributes.MOVEMENT_SPEED, 0.001, StatEffectFactory.StatProvider.OP_ADD)); - createEquipmentItem(ItemsAether.charm_mve_spd_02, ItemEquipmentSlot.CHARM, ItemRarity.RARE, WHEN_EQUIPPED, - new StatEffectFactory.StatProvider(SharedMonsterAttributes.MOVEMENT_SPEED, 0.002, StatEffectFactory.StatProvider.OP_ADD)); - - //createEquipmentItem(ItemsAether.charm_prc_dmg_01, ItemEquipmentSlot.CHARM, ItemRarity.COMMON, WHEN_EQUIPPED); - //createEquipmentItem(ItemsAether.charm_prc_dmg_02, ItemEquipmentSlot.CHARM, ItemRarity.RARE, WHEN_EQUIPPED); - - //createEquipmentItem(ItemsAether.charm_slsh_dmg_01, ItemEquipmentSlot.CHARM, ItemRarity.COMMON, WHEN_EQUIPPED); - //createEquipmentItem(ItemsAether.charm_slsh_dmg_02, ItemEquipmentSlot.CHARM, ItemRarity.RARE, WHEN_EQUIPPED); - - createEquipmentItem(ItemsAether.charm_res_amb_01, ItemEquipmentSlot.CHARM, ItemRarity.COMMON, WHEN_EQUIPPED); - createEquipmentItem(ItemsAether.charm_res_amb_02, ItemEquipmentSlot.CHARM, ItemRarity.RARE, WHEN_EQUIPPED); - - createEquipmentItem(ItemsAether.charm_res_bld_01, ItemEquipmentSlot.CHARM, ItemRarity.COMMON, WHEN_EQUIPPED); - createEquipmentItem(ItemsAether.charm_res_bld_02, ItemEquipmentSlot.CHARM, ItemRarity.RARE, WHEN_EQUIPPED); - - createEquipmentItem(ItemsAether.charm_res_fra_01, ItemEquipmentSlot.CHARM, ItemRarity.COMMON, WHEN_EQUIPPED); - createEquipmentItem(ItemsAether.charm_res_fra_02, ItemEquipmentSlot.CHARM, ItemRarity.RARE, WHEN_EQUIPPED); - - createEquipmentItem(ItemsAether.charm_res_frz_01, ItemEquipmentSlot.CHARM, ItemRarity.COMMON, WHEN_EQUIPPED); - createEquipmentItem(ItemsAether.charm_res_frz_02, ItemEquipmentSlot.CHARM, ItemRarity.RARE, WHEN_EQUIPPED); - - createEquipmentItem(ItemsAether.charm_res_grd_brk_01, ItemEquipmentSlot.CHARM, ItemRarity.COMMON, WHEN_EQUIPPED); - createEquipmentItem(ItemsAether.charm_res_grd_brk_02, ItemEquipmentSlot.CHARM, ItemRarity.RARE, WHEN_EQUIPPED); - - createEquipmentItem(ItemsAether.charm_res_irr_01, ItemEquipmentSlot.CHARM, ItemRarity.COMMON, WHEN_EQUIPPED); - createEquipmentItem(ItemsAether.charm_res_irr_02, ItemEquipmentSlot.CHARM, ItemRarity.RARE, WHEN_EQUIPPED); - - createEquipmentItem(ItemsAether.charm_res_stn_01, ItemEquipmentSlot.CHARM, ItemRarity.COMMON, WHEN_EQUIPPED); - createEquipmentItem(ItemsAether.charm_res_stn_02, ItemEquipmentSlot.CHARM, ItemRarity.RARE, WHEN_EQUIPPED); - - createEquipmentItem(ItemsAether.charm_res_tox_01, ItemEquipmentSlot.CHARM, ItemRarity.COMMON, WHEN_EQUIPPED); - createEquipmentItem(ItemsAether.charm_res_tox_02, ItemEquipmentSlot.CHARM, ItemRarity.RARE, WHEN_EQUIPPED); - - createEquipmentItem(ItemsAether.charm_res_ven_01, ItemEquipmentSlot.CHARM, ItemRarity.COMMON, WHEN_EQUIPPED); - createEquipmentItem(ItemsAether.charm_res_ven_02, ItemEquipmentSlot.CHARM, ItemRarity.RARE, WHEN_EQUIPPED); - - createEquipmentItem(ItemsAether.charm_res_web_01, ItemEquipmentSlot.CHARM, ItemRarity.COMMON, WHEN_EQUIPPED); - createEquipmentItem(ItemsAether.charm_res_web_02, ItemEquipmentSlot.CHARM, ItemRarity.RARE, WHEN_EQUIPPED); - } - - private static void createEquipmentItem(final Item item, final ItemEquipmentSlot slot, final ItemRarity rarity) - { - createEquipmentItem(item, slot, rarity, EMPTY_ACTIVATORS); - } - - private static void createEquipmentItem(final Item item, final ItemEquipmentSlot slot, final ItemRarity rarity, EffectActivator[] effectActivators, - final IEffectProvider... providers) - { - final ItemPropertiesBuilder builder = new ItemPropertiesBuilder(); - builder.withSlot(slot); - builder.withRarity(rarity); - - for (final IEffectProvider provider : providers) - { - builder.withEffect(provider); - } - - builder.withEffectActivators(effectActivators); - - AetherAPI.content().items().registerItem(item, builder); - } - - private static void createCompanionItem(final Item item, final ItemEquipmentSlot slot, final ItemRarity rarity, - final Class<? extends EntityCompanion> companion, final IEffectProvider... providers) - { - final ItemPropertiesBuilder builder = new ItemPropertiesBuilder(); - builder.withSlot(slot); - builder.withRarity(rarity); - builder.withEffect(new CompanionEffectProvider(companion)); - builder.withPrecondition((player, stack) -> - !(stack.getItem() instanceof ItemCompanion) || ItemCompanion.getTicksUntilRespawn(stack, player.getEntity().getEntityWorld()) <= 0); - - for (final IEffectProvider provider : providers) - { - builder.withEffect(provider); - } - - AetherAPI.content().items().registerItem(item, builder); - } -} diff --git a/src/main/java/com/gildedgames/aether/common/init/GenerationAether.java b/src/main/java/com/gildedgames/aether/common/init/GenerationAether.java deleted file mode 100644 index eff8b848a2..0000000000 --- a/src/main/java/com/gildedgames/aether/common/init/GenerationAether.java +++ /dev/null @@ -1,508 +0,0 @@ -package com.gildedgames.aether.common.init; - -import com.gildedgames.aether.api.registrar.BlocksAether; -import com.gildedgames.aether.api.world.templates.TemplateDefinition; -import com.gildedgames.aether.api.world.templates.TemplateDefinitionPool; -import com.gildedgames.aether.common.AetherCore; -import com.gildedgames.aether.common.blocks.natural.BlockAercloud; -import com.gildedgames.aether.common.blocks.natural.plants.BlockTallAetherGrass; -import com.gildedgames.aether.common.world.decorations.WorldGenFloorPlacer; -import com.gildedgames.aether.common.world.decorations.WorldGenIceCrystals; -import com.gildedgames.aether.common.world.decorations.aerclouds.WorldGenAercloud; -import com.gildedgames.aether.common.world.templates.conditions.TemplateConditions; -import com.gildedgames.aether.common.world.templates.post.PostPlacementMoaFamily; -import com.gildedgames.aether.common.world.util.GenUtil; -import com.gildedgames.orbis.lib.OrbisLib; -import com.gildedgames.orbis.lib.core.BlueprintDefinition; -import com.gildedgames.orbis.lib.core.BlueprintDefinitionPool; -import com.gildedgames.orbis.lib.core.PlacementCondition; -import com.gildedgames.orbis.lib.core.conditions.PlacementConditionAvoidBlock; -import com.gildedgames.orbis.lib.core.conditions.PlacementConditionOnBlock; -import com.gildedgames.orbis.lib.core.conditions.PlacementConditionReplaceableMaterials; -import com.gildedgames.orbis.lib.core.registry.IOrbisDefinitionRegistry; -import com.gildedgames.orbis.lib.core.registry.OrbisDefinitionRegistry; -import com.gildedgames.orbis.lib.processing.CenterOffsetProcessor; -import net.minecraft.block.material.Material; -import net.minecraft.util.Rotation; -import net.minecraft.util.math.BlockPos; - -public class GenerationAether -{ - - public static final IOrbisDefinitionRegistry registry = new OrbisDefinitionRegistry(AetherCore.MOD_ID); - - public static TemplateDefinition blue_skyroot_tree_1, blue_skyroot_tree_2, blue_skyroot_tree_3; - - public static TemplateDefinition green_skyroot_tree_1, green_skyroot_tree_2, green_skyroot_tree_3; - - public static TemplateDefinition green_skyroot_oak_1, green_skyroot_oak_2; - - public static TemplateDefinition golden_oak_1, golden_oak_2; - - public static TemplateDefinition green_skyroot_windswept_1, green_skyroot_windswept_2, green_skyroot_windswept_3, green_skyroot_windswept_4, green_skyroot_windswept_5, green_skyroot_windswept_6, green_skyroot_windswept_7; - - public static TemplateDefinition large_green_skyroot_pine_1, large_green_skyroot_pine_2; - - public static TemplateDefinition green_skyroot_pine_1, green_skyroot_pine_2, green_skyroot_pine_3, green_skyroot_pine_4, green_skyroot_pine_5; - - public static TemplateDefinition dark_blue_skyroot_tree_1, dark_blue_skyroot_tree_2, dark_blue_skyroot_tree_3; - - public static TemplateDefinition dark_blue_skyroot_oak_1, dark_blue_skyroot_oak_2; - - public static TemplateDefinition skyroot_moa_nest_tree_1, skyroot_moa_nest_1, skyroot_moa_nest_2; - - public static TemplateDefinition aether_portal_for_world, aether_portal; - - public static TemplateDefinitionPool green_skyroot_windswept; - - public static TemplateDefinitionPool large_green_skyroot_pine, green_skyroot_pine, green_skyroot_small_pine; - - public static TemplateDefinitionPool blue_skyroot_tree, green_skyroot_tree, golden_oak, green_skyroot_oak; - - public static TemplateDefinitionPool dark_blue_skyroot_tree, dark_blue_skyroot_oak; - - public static TemplateDefinitionPool skyroot_moa_nest; - - public static WorldGenFloorPlacer short_aether_grass, aether_grass, long_aether_grass, skyroot_twigs, holystone_rocks; - - public static WorldGenIceCrystals ice_crystals; - - public static WorldGenAercloud green_aercloud, golden_aercloud, storm_aercloud; - - public static BlueprintDefinition OUTPOST_A; - - public static BlueprintDefinition OUTPOST_B; - - public static BlueprintDefinitionPool OUTPOST; - - public static BlueprintDefinition NECROMANCER_TOWER; - - public static BlueprintDefinition ABAND_ANGEL_STOREROOM_1A; - - public static BlueprintDefinitionPool ABAND_ANGEL_STOREROOM; - - public static BlueprintDefinition ABAND_ANGEL_WATCHTOWER_1A; - - public static BlueprintDefinitionPool ABAND_ANGEL_WATCHTOWER; - - public static BlueprintDefinition ABAND_CAMPSITE_1A; - - public static BlueprintDefinitionPool ABAND_CAMPSITE; - - public static BlueprintDefinition ABAND_HUMAN_HOUSE_1A; - - public static BlueprintDefinition ABAND_HUMAN_HOUSE_1B; - - public static BlueprintDefinitionPool ABAND_HUMAN_HOUSE; - - public static BlueprintDefinition SKYROOT_WATCHTOWER_1A; - - public static BlueprintDefinition SKYROOT_WATCHTOWER_1B; - - public static BlueprintDefinition SKYROOT_WATCHTOWER_2A; - - public static BlueprintDefinition SKYROOT_WATCHTOWER_2B; - - public static BlueprintDefinition SKYROOT_WATCHTOWER_3A; - - public static BlueprintDefinition SKYROOT_WATCHTOWER_3B; - - public static BlueprintDefinition GREATROOT_TREE; - - public static BlueprintDefinition SKYROOT_OAK_GREEN, SKYROOT_OAK_BLUE, SKYROOT_OAK_DARK_BLUE; - - public static BlueprintDefinition CRAZY_MUTANT_TREE; - - public static BlueprintDefinition WISPROOT_GREEN, WISPROOT_BLUE, WISPROOT_DARK_BLUE; - - public static BlueprintDefinitionPool SKYROOT_WATCHTOWER; - - public static BlueprintDefinition WELL_1A; - - public static BlueprintDefinition WELL_1B; - - public static BlueprintDefinitionPool WELL; - - public static BlueprintDefinition AMBEROOT_TREE; - - private GenerationAether() - { - - } - - public static void load() - { - registerLegacyTemplates(); - registerDynamicGenerators(); - registerBlueprints(); - } - - private static void registerDynamicGenerators() - { - short_aether_grass = new WorldGenFloorPlacer(GenUtil.equalStateFetcher(), - GenUtil.standardStateDefiner( - BlocksAether.tall_aether_grass.getDefaultState().withProperty(BlockTallAetherGrass.PROPERTY_VARIANT, BlockTallAetherGrass.SHORT))); - aether_grass = new WorldGenFloorPlacer(GenUtil.equalStateFetcher(), - GenUtil.standardStateDefiner( - BlocksAether.tall_aether_grass.getDefaultState().withProperty(BlockTallAetherGrass.PROPERTY_VARIANT, BlockTallAetherGrass.NORMAL))); - long_aether_grass = new WorldGenFloorPlacer(GenUtil.equalStateFetcher(), - GenUtil.standardStateDefiner( - BlocksAether.tall_aether_grass.getDefaultState().withProperty(BlockTallAetherGrass.PROPERTY_VARIANT, BlockTallAetherGrass.LONG))); - - skyroot_twigs = new WorldGenFloorPlacer(4, GenUtil.equalStateFetcher(), GenUtil.standardStateDefiner(BlocksAether.skyroot_twigs.getDefaultState(), - BlocksAether.holystone_rock.getDefaultState())); - - holystone_rocks = new WorldGenFloorPlacer(GenUtil.equalStateFetcher(), GenUtil.standardStateDefiner(BlocksAether.holystone_rock.getDefaultState())); - holystone_rocks.setStatesToPlaceOn(BlocksAether.holystone.getDefaultState()); - - ice_crystals = new WorldGenIceCrystals(64); - ice_crystals.setStatesToPlaceOn(BlocksAether.holystone.getDefaultState(), BlocksAether.highlands_packed_ice.getDefaultState()); - - green_aercloud = new WorldGenAercloud(BlockAercloud.getAercloudState(BlockAercloud.GREEN_AERCLOUD), 4, false); - golden_aercloud = new WorldGenAercloud(BlockAercloud.getAercloudState(BlockAercloud.GOLDEN_AERCLOUD), 4, false); - storm_aercloud = new WorldGenAercloud(BlockAercloud.getAercloudState(BlockAercloud.STORM_AERCLOUD), 16, false); - } - - private static void registerBlueprints() - { - OrbisLib.services().register(registry); - - final PlacementCondition avoidQuicksoil = new PlacementConditionAvoidBlock(BlocksAether.quicksoil); - final PlacementCondition isReplaceableGround = new PlacementConditionReplaceableMaterials(Material.GROUND, Material.GRASS); - final PlacementCondition isReplaceableTerrain = new PlacementConditionReplaceableMaterials(Material.ROCK, Material.GROUND, Material.GRASS); - final PlacementCondition isOnSoil = new PlacementConditionOnBlock(BlocksAether.aether_grass); - final PlacementCondition isOnEarth = new PlacementConditionOnBlock(BlocksAether.aether_grass, BlocksAether.aether_dirt, BlocksAether.holystone); - - final PlacementCondition[] structureConditions = new PlacementCondition[] { isOnEarth, avoidQuicksoil, isReplaceableGround }; - - OUTPOST_A = new BlueprintDefinition(BlueprintsAether.OUTPOST_A) - .setRegistry(registry) - .setConditions(structureConditions) - .setRandomRotation(false); - - OUTPOST_B = new BlueprintDefinition(BlueprintsAether.OUTPOST_B) - .setRegistry(registry) - .setConditions(structureConditions) - .setRandomRotation(false); - - NECROMANCER_TOWER = new BlueprintDefinition(BlueprintsAether.NECROMANCER_TOWER) - .setRegistry(registry) - .setRandomRotation(false); - - ABAND_ANGEL_STOREROOM_1A = new BlueprintDefinition(BlueprintsAether.ABAND_ANGEL_STOREROOM_1A, 1) - .setRegistry(registry) - .setConditions(isOnEarth, isReplaceableGround, avoidQuicksoil); - - ABAND_ANGEL_WATCHTOWER_1A = new BlueprintDefinition(BlueprintsAether.ABAND_ANGEL_WATCHTOWER_1A, 1) - .setRegistry(registry) - .setConditions(isOnEarth, isReplaceableGround, avoidQuicksoil); - - ABAND_CAMPSITE_1A = new BlueprintDefinition(BlueprintsAether.ABAND_CAMPSITE_1A) - .setRegistry(registry) - .setConditions(isOnSoil, isReplaceableGround, avoidQuicksoil); - - ABAND_HUMAN_HOUSE_1A = new BlueprintDefinition(BlueprintsAether.ABAND_HUMAN_HOUSE_1A, 1) - .setRegistry(registry) - .setConditions(isOnEarth, isReplaceableGround, avoidQuicksoil); - - ABAND_HUMAN_HOUSE_1B = new BlueprintDefinition(BlueprintsAether.ABAND_HUMAN_HOUSE_1B, 5) - .setRegistry(registry) - .setConditions(isOnEarth, isReplaceableGround, avoidQuicksoil); - - SKYROOT_WATCHTOWER_1A = new BlueprintDefinition(BlueprintsAether.SKYROOT_WATCHTOWER_1A) - .setRegistry(registry) - .setConditions(structureConditions); - - SKYROOT_WATCHTOWER_1B = new BlueprintDefinition(BlueprintsAether.SKYROOT_WATCHTOWER_1B) - .setRegistry(registry) - .setConditions(structureConditions); - - SKYROOT_WATCHTOWER_2A = new BlueprintDefinition(BlueprintsAether.SKYROOT_WATCHTOWER_2A) - .setRegistry(registry) - .setConditions(structureConditions); - - SKYROOT_WATCHTOWER_2B = new BlueprintDefinition(BlueprintsAether.SKYROOT_WATCHTOWER_2B) - .setRegistry(registry) - .setConditions(structureConditions); - - SKYROOT_WATCHTOWER_3A = new BlueprintDefinition(BlueprintsAether.SKYROOT_WATCHTOWER_3A) - .setRegistry(registry) - .setConditions(structureConditions); - - SKYROOT_WATCHTOWER_3B = new BlueprintDefinition(BlueprintsAether.SKYROOT_WATCHTOWER_3B) - .setRegistry(registry) - .setConditions(structureConditions); - - WELL_1A = new BlueprintDefinition(BlueprintsAether.WELL_1A, 10) - .setRegistry(registry) - .setConditions(isOnEarth, isReplaceableTerrain, avoidQuicksoil); - - WELL_1B = new BlueprintDefinition(BlueprintsAether.WELL_1B, 11) - .setRegistry(registry) - .setConditions(isOnEarth, isReplaceableTerrain, avoidQuicksoil); - - GREATROOT_TREE = new BlueprintDefinition(BlueprintsAether.GREATROOT_TREE, 0) - .setRegistry(registry) - .setConditions(isOnSoil, isReplaceableGround, avoidQuicksoil); - - SKYROOT_OAK_GREEN = new BlueprintDefinition(BlueprintsAether.SKYROOT_OAK_GREEN, 0) - .setRegistry(registry) - .setConditions(isOnSoil, isReplaceableGround, avoidQuicksoil); - - SKYROOT_OAK_BLUE = new BlueprintDefinition(BlueprintsAether.SKYROOT_OAK_BLUE, 0) - .setRegistry(registry) - .setConditions(isOnSoil, isReplaceableGround, avoidQuicksoil); - - SKYROOT_OAK_DARK_BLUE = new BlueprintDefinition(BlueprintsAether.SKYROOT_OAK_DARK_BLUE, 0) - .setRegistry(registry) - .setConditions(isOnSoil, isReplaceableGround, avoidQuicksoil); - - AMBEROOT_TREE = new BlueprintDefinition(BlueprintsAether.AMBEROOT_TREE, 0) - .setRegistry(registry) - .setConditions(isOnSoil, isReplaceableGround, avoidQuicksoil); - - WISPROOT_GREEN = new BlueprintDefinition(BlueprintsAether.WISPROOT_GREEN, 0) - .setRegistry(registry) - .setConditions(isOnSoil, isReplaceableGround, avoidQuicksoil); - - WISPROOT_BLUE = new BlueprintDefinition(BlueprintsAether.WISPROOT_BLUE, 0) - .setRegistry(registry) - .setConditions(isOnSoil, isReplaceableGround, avoidQuicksoil); - - WISPROOT_DARK_BLUE = new BlueprintDefinition(BlueprintsAether.WISPROOT_DARK_BLUE, 0) - .setRegistry(registry) - .setConditions(isOnSoil, isReplaceableGround, avoidQuicksoil); - - OUTPOST = new BlueprintDefinitionPool(OUTPOST_A, OUTPOST_B); - ABAND_ANGEL_STOREROOM = new BlueprintDefinitionPool(ABAND_ANGEL_STOREROOM_1A); - ABAND_ANGEL_WATCHTOWER = new BlueprintDefinitionPool(ABAND_ANGEL_WATCHTOWER_1A); - ABAND_CAMPSITE = new BlueprintDefinitionPool(ABAND_CAMPSITE_1A); - ABAND_HUMAN_HOUSE = new BlueprintDefinitionPool(ABAND_HUMAN_HOUSE_1A, ABAND_HUMAN_HOUSE_1B); - SKYROOT_WATCHTOWER = new BlueprintDefinitionPool(SKYROOT_WATCHTOWER_1A, SKYROOT_WATCHTOWER_1B, SKYROOT_WATCHTOWER_2A, SKYROOT_WATCHTOWER_2B, - SKYROOT_WATCHTOWER_3A, SKYROOT_WATCHTOWER_3B); - WELL = new BlueprintDefinitionPool(WELL_1A, WELL_1B); - - CRAZY_MUTANT_TREE = new BlueprintDefinition(BlueprintsAether.CRAZY_MUTANT_TREE, 0) - .setRegistry(registry) - .setConditions(isOnSoil, isReplaceableGround, avoidQuicksoil); - - registry.register(0, OUTPOST_A); - registry.register(1, NECROMANCER_TOWER); - - registry.register(2, ABAND_CAMPSITE_1A); - - registry.register(3, ABAND_HUMAN_HOUSE_1A); - registry.register(4, ABAND_HUMAN_HOUSE_1B); - - registry.register(5, ABAND_ANGEL_STOREROOM_1A); - registry.register(6, ABAND_ANGEL_WATCHTOWER_1A); - - registry.register(7, SKYROOT_WATCHTOWER_1A); - registry.register(8, SKYROOT_WATCHTOWER_1B); - - registry.register(9, SKYROOT_WATCHTOWER_2A); - registry.register(10, SKYROOT_WATCHTOWER_2B); - - registry.register(11, SKYROOT_WATCHTOWER_3A); - registry.register(12, SKYROOT_WATCHTOWER_3B); - - registry.register(13, WELL_1A); - registry.register(14, WELL_1B); - registry.register(15, OUTPOST_B); - - registry.register(17, GREATROOT_TREE); - registry.register(18, SKYROOT_OAK_GREEN); - registry.register(19, SKYROOT_OAK_BLUE); - registry.register(20, SKYROOT_OAK_DARK_BLUE); - registry.register(21, AMBEROOT_TREE); - registry.register(22, WISPROOT_GREEN); - registry.register(23, WISPROOT_BLUE); - registry.register(24, WISPROOT_DARK_BLUE); - registry.register(25, CRAZY_MUTANT_TREE); - } - - private static void registerLegacyTemplates() - { - blue_skyroot_tree_1 = new TemplateDefinition(TemplatesAether.blue_skyroot_tree_1) - .setConditions(TemplateConditions.FLAT_GROUND, TemplateConditions.ON_SOIL, - TemplateConditions.REPLACEABLE); - blue_skyroot_tree_2 = new TemplateDefinition(TemplatesAether.blue_skyroot_tree_2) - .setConditions(TemplateConditions.FLAT_GROUND, TemplateConditions.ON_SOIL, - TemplateConditions.REPLACEABLE); - blue_skyroot_tree_3 = new TemplateDefinition(TemplatesAether.blue_skyroot_tree_3) - .setConditions(TemplateConditions.FLAT_GROUND, TemplateConditions.ON_SOIL, - TemplateConditions.REPLACEABLE); - - green_skyroot_tree_1 = new TemplateDefinition(TemplatesAether.green_skyroot_tree_1) - .setConditions(TemplateConditions.FLAT_GROUND, TemplateConditions.ON_SOIL, - TemplateConditions.REPLACEABLE); - green_skyroot_tree_2 = new TemplateDefinition(TemplatesAether.green_skyroot_tree_2) - .setConditions(TemplateConditions.FLAT_GROUND, TemplateConditions.ON_SOIL, - TemplateConditions.REPLACEABLE); - green_skyroot_tree_3 = new TemplateDefinition(TemplatesAether.green_skyroot_tree_3) - .setConditions(TemplateConditions.FLAT_GROUND, TemplateConditions.ON_SOIL, - TemplateConditions.REPLACEABLE); - - final CenterOffsetProcessor oak_center = rotation -> - { - if (rotation == Rotation.CLOCKWISE_90) - { - return new BlockPos(-1, 0, 0); - } - - if (rotation == Rotation.COUNTERCLOCKWISE_90) - { - return new BlockPos(0, 0, -1); - } - - if (rotation == Rotation.CLOCKWISE_180) - { - return new BlockPos(-1, 0, -1); - } - - return new BlockPos(0, 0, 0); - }; - - green_skyroot_oak_1 = new TemplateDefinition(TemplatesAether.green_skyroot_oak_1) - .setConditions(TemplateConditions.FLAT_GROUND, TemplateConditions.ON_SOIL, - TemplateConditions.REPLACEABLE).setOffset(oak_center); - green_skyroot_oak_2 = new TemplateDefinition(TemplatesAether.green_skyroot_oak_2) - .setConditions(TemplateConditions.FLAT_GROUND, TemplateConditions.ON_SOIL, - TemplateConditions.REPLACEABLE).setOffset(oak_center); - - golden_oak_1 = new TemplateDefinition(TemplatesAether.golden_oak_1).setConditions(TemplateConditions.FLAT_GROUND, TemplateConditions.ON_SOIL, - TemplateConditions.REPLACEABLE).setOffset(oak_center); - golden_oak_2 = new TemplateDefinition(TemplatesAether.golden_oak_2).setConditions(TemplateConditions.FLAT_GROUND, TemplateConditions.ON_SOIL, - TemplateConditions.REPLACEABLE).setOffset(oak_center); - - dark_blue_skyroot_oak_1 = new TemplateDefinition(TemplatesAether.dark_blue_skyroot_oak_1) - .setConditions(TemplateConditions.FLAT_GROUND, TemplateConditions.ON_SOIL, - TemplateConditions.REPLACEABLE).setOffset(oak_center); - dark_blue_skyroot_oak_2 = new TemplateDefinition(TemplatesAether.dark_blue_skyroot_oak_2) - .setConditions(TemplateConditions.FLAT_GROUND, TemplateConditions.ON_SOIL, - TemplateConditions.REPLACEABLE).setOffset(oak_center); - - green_skyroot_windswept_1 = new TemplateDefinition(TemplatesAether.green_skyroot_windswept_1) - .setConditions(TemplateConditions.FLAT_GROUND, TemplateConditions.ON_SOIL, - TemplateConditions.REPLACEABLE_CANOPY); - green_skyroot_windswept_2 = new TemplateDefinition(TemplatesAether.green_skyroot_windswept_2) - .setConditions(TemplateConditions.FLAT_GROUND, TemplateConditions.ON_SOIL, - TemplateConditions.REPLACEABLE_CANOPY); - green_skyroot_windswept_3 = new TemplateDefinition(TemplatesAether.green_skyroot_windswept_3) - .setConditions(TemplateConditions.FLAT_GROUND, TemplateConditions.ON_SOIL, - TemplateConditions.REPLACEABLE_CANOPY); - green_skyroot_windswept_4 = new TemplateDefinition(TemplatesAether.green_skyroot_windswept_4) - .setConditions(TemplateConditions.FLAT_GROUND, TemplateConditions.ON_SOIL, - TemplateConditions.REPLACEABLE_CANOPY); - green_skyroot_windswept_5 = new TemplateDefinition(TemplatesAether.green_skyroot_windswept_5) - .setConditions(TemplateConditions.FLAT_GROUND, TemplateConditions.ON_SOIL, - TemplateConditions.REPLACEABLE_CANOPY); - green_skyroot_windswept_6 = new TemplateDefinition(TemplatesAether.green_skyroot_windswept_6) - .setConditions(TemplateConditions.FLAT_GROUND, TemplateConditions.ON_SOIL, - TemplateConditions.REPLACEABLE_CANOPY); - green_skyroot_windswept_7 = new TemplateDefinition(TemplatesAether.green_skyroot_windswept_7) - .setConditions(TemplateConditions.FLAT_GROUND, TemplateConditions.ON_SOIL, - TemplateConditions.REPLACEABLE_CANOPY); - - large_green_skyroot_pine_1 = new TemplateDefinition(TemplatesAether.large_green_skyroot_pine_1).setConditions(TemplateConditions.FLAT_GROUND, - TemplateConditions.ON_SOIL, TemplateConditions.REPLACEABLE); - large_green_skyroot_pine_2 = new TemplateDefinition(TemplatesAether.large_green_skyroot_pine_2).setConditions(TemplateConditions.FLAT_GROUND, - TemplateConditions.ON_SOIL, TemplateConditions.REPLACEABLE); - - green_skyroot_pine_1 = new TemplateDefinition(TemplatesAether.green_skyroot_pine_1) - .setConditions(TemplateConditions.FLAT_GROUND, TemplateConditions.ON_SOIL, - TemplateConditions.REPLACEABLE); - green_skyroot_pine_2 = new TemplateDefinition(TemplatesAether.green_skyroot_pine_2) - .setConditions(TemplateConditions.FLAT_GROUND, TemplateConditions.ON_SOIL, - TemplateConditions.REPLACEABLE); - green_skyroot_pine_3 = new TemplateDefinition(TemplatesAether.green_skyroot_pine_3) - .setConditions(TemplateConditions.FLAT_GROUND, TemplateConditions.ON_SOIL, - TemplateConditions.REPLACEABLE); - green_skyroot_pine_4 = new TemplateDefinition(TemplatesAether.green_skyroot_pine_4) - .setConditions(TemplateConditions.FLAT_GROUND, TemplateConditions.ON_SOIL, - TemplateConditions.REPLACEABLE); - green_skyroot_pine_5 = new TemplateDefinition(TemplatesAether.green_skyroot_pine_5) - .setConditions(TemplateConditions.FLAT_GROUND, TemplateConditions.ON_SOIL, - TemplateConditions.REPLACEABLE); - - dark_blue_skyroot_tree_1 = new TemplateDefinition(TemplatesAether.dark_blue_skyroot_tree_1) - .setConditions(TemplateConditions.FLAT_GROUND, TemplateConditions.ON_SOIL, - TemplateConditions.REPLACEABLE); - dark_blue_skyroot_tree_2 = new TemplateDefinition(TemplatesAether.dark_blue_skyroot_tree_2) - .setConditions(TemplateConditions.FLAT_GROUND, TemplateConditions.ON_SOIL, - TemplateConditions.REPLACEABLE); - dark_blue_skyroot_tree_3 = new TemplateDefinition(TemplatesAether.dark_blue_skyroot_tree_3) - .setConditions(TemplateConditions.FLAT_GROUND, TemplateConditions.ON_SOIL, - TemplateConditions.REPLACEABLE); - - skyroot_moa_nest_tree_1 = new TemplateDefinition(TemplatesAether.skyroot_moa_nest_tree_1).setConditions(TemplateConditions.FLAT_GROUND, - TemplateConditions.IGNORE_QUICKSOIL, TemplateConditions.REPLACEABLE, TemplateConditions.ON_SOIL) - .setPostPlacements(new PostPlacementMoaFamily(new BlockPos(4, 5, 4))); - - skyroot_moa_nest_1 = new TemplateDefinition(TemplatesAether.skyroot_moa_nest_1).setConditions(TemplateConditions.INSIDE_GROUND, - TemplateConditions.REPLACEABLE_GROUND).setPostPlacements(new PostPlacementMoaFamily(new BlockPos(2, 0, 2))); - skyroot_moa_nest_2 = new TemplateDefinition(TemplatesAether.skyroot_moa_nest_2).setConditions(TemplateConditions.INSIDE_GROUND, - TemplateConditions.REPLACEABLE_GROUND).setPostPlacements(new PostPlacementMoaFamily(new BlockPos(3, 0, 3))); - - aether_portal = new TemplateDefinition(TemplatesAether.aether_portal).setConditions(TemplateConditions.REPLACEABLE); - - aether_portal_for_world = new TemplateDefinition(TemplatesAether.aether_portal) - .setConditions(TemplateConditions.FLAT_GROUND, TemplateConditions.IGNORE_QUICKSOIL, - TemplateConditions.REPLACEABLE_GROUND); - - blue_skyroot_tree = new TemplateDefinitionPool(blue_skyroot_tree_1, blue_skyroot_tree_2, blue_skyroot_tree_3); - green_skyroot_tree = new TemplateDefinitionPool(green_skyroot_tree_1, green_skyroot_tree_2, green_skyroot_tree_3); - golden_oak = new TemplateDefinitionPool(golden_oak_1, golden_oak_2); - green_skyroot_oak = new TemplateDefinitionPool(green_skyroot_oak_1, green_skyroot_oak_2); - green_skyroot_windswept = new TemplateDefinitionPool(green_skyroot_windswept_1, green_skyroot_windswept_2, green_skyroot_windswept_3, - green_skyroot_windswept_4, green_skyroot_windswept_5, green_skyroot_windswept_6, green_skyroot_windswept_7); - large_green_skyroot_pine = new TemplateDefinitionPool(large_green_skyroot_pine_1, large_green_skyroot_pine_2); - green_skyroot_pine = new TemplateDefinitionPool(green_skyroot_pine_1, green_skyroot_pine_2, green_skyroot_pine_3, green_skyroot_pine_4, - green_skyroot_pine_5); - green_skyroot_small_pine = new TemplateDefinitionPool(green_skyroot_pine_1, green_skyroot_pine_2, green_skyroot_pine_3); - dark_blue_skyroot_tree = new TemplateDefinitionPool(dark_blue_skyroot_tree_1, dark_blue_skyroot_tree_2, dark_blue_skyroot_tree_3); - dark_blue_skyroot_oak = new TemplateDefinitionPool(dark_blue_skyroot_oak_1, dark_blue_skyroot_oak_2); - skyroot_moa_nest = new TemplateDefinitionPool(skyroot_moa_nest_1, skyroot_moa_nest_2); - - registerTemplate(0, blue_skyroot_tree_1); - registerTemplate(1, blue_skyroot_tree_2); - registerTemplate(2, blue_skyroot_tree_3); - registerTemplate(3, green_skyroot_tree_1); - registerTemplate(4, green_skyroot_tree_2); - registerTemplate(5, green_skyroot_tree_3); - registerTemplate(6, green_skyroot_oak_1); - registerTemplate(7, green_skyroot_oak_2); - registerTemplate(8, golden_oak_1); - registerTemplate(9, golden_oak_2); - registerTemplate(10, dark_blue_skyroot_oak_1); - registerTemplate(11, dark_blue_skyroot_oak_2); - registerTemplate(12, green_skyroot_windswept_1); - registerTemplate(13, green_skyroot_windswept_2); - registerTemplate(14, green_skyroot_windswept_3); - registerTemplate(15, green_skyroot_windswept_4); - registerTemplate(16, green_skyroot_windswept_5); - registerTemplate(17, green_skyroot_windswept_6); - registerTemplate(18, green_skyroot_windswept_7); - registerTemplate(19, large_green_skyroot_pine_1); - registerTemplate(20, large_green_skyroot_pine_2); - registerTemplate(21, green_skyroot_pine_1); - registerTemplate(22, green_skyroot_pine_2); - registerTemplate(23, green_skyroot_pine_3); - registerTemplate(24, green_skyroot_pine_4); - registerTemplate(25, green_skyroot_pine_5); - registerTemplate(26, dark_blue_skyroot_tree_1); - registerTemplate(27, dark_blue_skyroot_tree_2); - registerTemplate(28, dark_blue_skyroot_tree_3); - registerTemplate(29, skyroot_moa_nest_tree_1); - registerTemplate(30, skyroot_moa_nest_1); - registerTemplate(31, skyroot_moa_nest_2); - registerTemplate(32, aether_portal); - registerTemplate(35, aether_portal_for_world); - } - - private static void registerTemplate(final int id, final TemplateDefinition def) - { - AetherCore.PROXY.content().templates().register(id, def); - } - -} diff --git a/src/main/java/com/gildedgames/aether/common/init/InstancesAether.java b/src/main/java/com/gildedgames/aether/common/init/InstancesAether.java deleted file mode 100644 index c774d97cd7..0000000000 --- a/src/main/java/com/gildedgames/aether/common/init/InstancesAether.java +++ /dev/null @@ -1,17 +0,0 @@ -package com.gildedgames.aether.common.init; - -import com.gildedgames.aether.common.world.instances.necromancer_tower.NecromancerTowerInstanceFactory; -import com.gildedgames.aether.common.world.instances.necromancer_tower.NecromancerTowerInstanceHelper; -import com.gildedgames.orbis.lib.OrbisLib; - -public class InstancesAether -{ - public static NecromancerTowerInstanceHelper NECROMANCER_TOWER_HANDLER; - - public static void postInit() - { - final NecromancerTowerInstanceFactory factory = new NecromancerTowerInstanceFactory(DimensionsAether.NECROMANCER_TOWER); - - NECROMANCER_TOWER_HANDLER = new NecromancerTowerInstanceHelper(OrbisLib.instances().createInstanceHandler(factory)); - } -} diff --git a/src/main/java/com/gildedgames/aether/common/init/ItemsAetherInit.java b/src/main/java/com/gildedgames/aether/common/init/ItemsAetherInit.java deleted file mode 100644 index 4a02aaaa6c..0000000000 --- a/src/main/java/com/gildedgames/aether/common/init/ItemsAetherInit.java +++ /dev/null @@ -1,280 +0,0 @@ -package com.gildedgames.aether.common.init; - -import com.gildedgames.aether.api.entity.effects.IAetherStatusEffects; -import com.gildedgames.aether.api.registrar.BlocksAether; -import com.gildedgames.aether.common.AetherCore; -import com.gildedgames.aether.common.entities.effects.*; -import com.gildedgames.aether.common.entities.effects.unique.StatusEffectGuardBreak; -import com.gildedgames.aether.common.items.ItemDropOnDeath; -import com.gildedgames.aether.common.items.accessories.ItemAccessory; -import com.gildedgames.aether.common.items.accessories.ItemDamageCharm; -import com.gildedgames.aether.common.items.armor.*; -import com.gildedgames.aether.common.items.blocks.ItemBlockCustomDoor; -import com.gildedgames.aether.common.items.consumables.*; -import com.gildedgames.aether.common.items.irradiated.ItemIrradiatedDust; -import com.gildedgames.aether.common.items.irradiated.ItemIrradiatedVisuals; -import com.gildedgames.aether.common.items.other.*; -import com.gildedgames.aether.common.items.tools.*; -import com.gildedgames.aether.common.items.weapons.ItemDart; -import com.gildedgames.aether.common.items.weapons.ItemDartShooter; -import com.gildedgames.aether.common.items.weapons.crossbow.ItemBolt; -import com.gildedgames.aether.common.items.weapons.crossbow.ItemCrossbow; -import com.gildedgames.aether.common.items.weapons.swords.*; -import net.minecraft.init.Blocks; -import net.minecraft.inventory.EntityEquipmentSlot; -import net.minecraft.item.*; -import net.minecraftforge.event.RegistryEvent; -import net.minecraftforge.fml.common.Mod; -import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; -import net.minecraftforge.registries.IForgeRegistry; - -import java.util.ArrayList; -import java.util.Collection; -import java.util.Collections; - -@Mod.EventBusSubscriber -public class ItemsAetherInit -{ - private static final Collection<Item> registeredItems = new ArrayList<>(); - - @SubscribeEvent - public static void onRegisterItems(final RegistryEvent.Register<Item> event) - { - final ItemRegistryHelper r = new ItemRegistryHelper(event.getRegistry()); - - r.register("skyroot_door_item", new ItemBlockCustomDoor(BlocksAether.skyroot_door).setCreativeTab(CreativeTabsAether.TAB_CONSTRUCTION)); - r.register("arkenium_door_item", new ItemBlockCustomDoor(BlocksAether.arkenium_door).setCreativeTab(CreativeTabsAether.TAB_CONSTRUCTION)); - r.register("skyroot_sign", new ItemSkyrootSign().setCreativeTab(CreativeTabsAether.TAB_CONSTRUCTION)); - - r.register("secret_skyroot_door_item", new ItemBlockCustomDoor(BlocksAether.secret_skyroot_door).setCreativeTab(CreativeTabsAether.TAB_DECORATIVE_BLOCKS)); - - r.register("skyroot_bed_item", new ItemSkyrootBed().setCreativeTab(CreativeTabsAether.TAB_UTILITY)); - - r.register("skyroot_stick", new ItemSkyrootStick().setCreativeTab(CreativeTabsAether.TAB_MATERIALS)); - r.register("valkyrie_wings", new ItemDropOnDeath().setCreativeTab(CreativeTabsAether.TAB_MATERIALS)); - r.register("brettl_cane", new ItemBrettlCane().setCreativeTab(CreativeTabsAether.TAB_MATERIALS)); - r.register("brettl_grass", new ItemDropOnDeath().setCreativeTab(CreativeTabsAether.TAB_MATERIALS)); - r.register("brettl_rope", new ItemDropOnDeath().setCreativeTab(CreativeTabsAether.TAB_MATERIALS)); - r.register("skyroot_pinecone", new ItemDropOnDeath().setCreativeTab(CreativeTabsAether.TAB_MATERIALS)); - r.register("golden_amber", new ItemDropOnDeath().setCreativeTab(CreativeTabsAether.TAB_MATERIALS)); - r.register("cloudtwine", new ItemDropOnDeath().setCreativeTab(CreativeTabsAether.TAB_MATERIALS)); - r.register("moa_feather", new ItemMoaFeather().setCreativeTab(CreativeTabsAether.TAB_MATERIALS)); - r.register("taegore_hide", new ItemDropOnDeath().setCreativeTab(CreativeTabsAether.TAB_MATERIALS)); - r.register("burrukai_pelt", new ItemDropOnDeath().setCreativeTab(CreativeTabsAether.TAB_MATERIALS)); - r.register("swet_gel", new ItemSwetGel().setCreativeTab(CreativeTabsAether.TAB_MATERIALS)); - r.register("swet_sugar", new ItemDropOnDeath().setCreativeTab(CreativeTabsAether.TAB_MATERIALS)); - r.register("aechor_petal", new ItemDropOnDeath().setCreativeTab(CreativeTabsAether.TAB_MATERIALS)); - r.register("cockatrice_feather", new ItemDropOnDeath().setCreativeTab(CreativeTabsAether.TAB_MATERIALS)); - r.register("crude_scatterglass_shard", new ItemDropOnDeath().setCreativeTab(CreativeTabsAether.TAB_MATERIALS)); - r.register("ambrosium_shard", new ItemAmbrosiumShard().setCreativeTab(CreativeTabsAether.TAB_MATERIALS)); - r.register("ambrosium_chunk", new ItemAmbrosiumChunk().setCreativeTab(CreativeTabsAether.TAB_MATERIALS)); - r.register("icestone", new ItemDropOnDeath().setCreativeTab(CreativeTabsAether.TAB_MATERIALS)); - r.register("zanite_gemstone", new ItemDropOnDeath().setCreativeTab(CreativeTabsAether.TAB_MATERIALS)); - r.register("arkenium", new ItemDropOnDeath().setCreativeTab(CreativeTabsAether.TAB_MATERIALS)); - r.register("arkenium_strip", new ItemDropOnDeath().setCreativeTab(CreativeTabsAether.TAB_MATERIALS)); - r.register("gravitite_plate", new ItemDropOnDeath().setCreativeTab(CreativeTabsAether.TAB_MATERIALS)); - r.register("scatterglass_vial", new ItemScatterglassVial().setCreativeTab(CreativeTabsAether.TAB_MATERIALS)); - r.register("irradiated_dust", new ItemIrradiatedDust().setCreativeTab(CreativeTabsAether.TAB_MATERIALS)); - r.register("irradiated_chunk", new ItemIrradiatedVisuals().setMaxStackSize(1).setCreativeTab(CreativeTabsAether.TAB_MATERIALS)); - r.register("irradiated_tool", new ItemIrradiatedVisuals().setMaxStackSize(1).setCreativeTab(CreativeTabsAether.TAB_MATERIALS)); - r.register("irradiated_sword", new ItemIrradiatedVisuals().setMaxStackSize(1).setCreativeTab(CreativeTabsAether.TAB_MATERIALS)); - r.register("irradiated_armor", new ItemIrradiatedVisuals().setMaxStackSize(1).setCreativeTab(CreativeTabsAether.TAB_MATERIALS)); - r.register("irradiated_ring", new ItemIrradiatedVisuals().setMaxStackSize(1).setCreativeTab(CreativeTabsAether.TAB_MATERIALS)); - r.register("irradiated_neckwear", new ItemIrradiatedVisuals().setMaxStackSize(1).setCreativeTab(CreativeTabsAether.TAB_MATERIALS)); - r.register("irradiated_charm", new ItemIrradiatedVisuals().setMaxStackSize(1).setCreativeTab(CreativeTabsAether.TAB_MATERIALS)); - - r.register("blueberries", new ItemAetherFood(1,0.2F,false).setConsumptionDuration(16).setCreativeTab(CreativeTabsAether.TAB_FOOD)); - r.register("enchanted_blueberry", new ItemAetherFood(3, 0.6F, false).setConsumptionDuration(16).setCreativeTab(CreativeTabsAether.TAB_FOOD)); - r.register("orange", new ItemAetherFood(2, 0.3F, false).setConsumptionDuration(24).setCreativeTab(CreativeTabsAether.TAB_FOOD)); - r.register("wyndberry", new ItemAetherFood(3, 0.3F, false).setCreativeTab(CreativeTabsAether.TAB_FOOD)); - r.register("enchanted_wyndberry", new ItemEnchantedWyndberry().setCreativeTab(CreativeTabsAether.TAB_FOOD)); - r.register("plumproot_mash", new ItemAetherFood(2, 0.2F, false).setConsumptionDuration(24).setCreativeTab(CreativeTabsAether.TAB_FOOD)); - r.register("plumproot_pie", new ItemAetherFood(7, 0.3F, false).setCreativeTab(CreativeTabsAether.TAB_FOOD)); - r.register("fried_moa_egg", new ItemFood(5, 0.3F,false).setCreativeTab(CreativeTabsAether.TAB_FOOD)); - r.register("skyroot_lizard_stick", new ItemAetherFood(2, 0.3F, false).setConsumptionDuration(16).setCreativeTab(CreativeTabsAether.TAB_FOOD)); - r.register("skyroot_lizard_stick_roasted", new ItemAetherFood(6, 0.6F, false).setConsumptionDuration(24).setCreativeTab(CreativeTabsAether.TAB_FOOD)); - r.register("kirrid_loin", new ItemAetherFood(2, 0.3F, true).setCreativeTab(CreativeTabsAether.TAB_FOOD)); - r.register("kirrid_cutlet", new ItemAetherFood(6, 0.8F, true).setCreativeTab(CreativeTabsAether.TAB_FOOD)); - r.register("raw_taegore_meat", new ItemAetherFood(2, 0.3F, true).setCreativeTab(CreativeTabsAether.TAB_FOOD)); - r.register("taegore_steak", new ItemAetherFood(6, 0.8F, true).setCreativeTab(CreativeTabsAether.TAB_FOOD)); - r.register("burrukai_rib_cut", new ItemAetherFood(4, 0.3F, true).setConsumptionDuration(40).setCreativeTab(CreativeTabsAether.TAB_FOOD)); - r.register("burrukai_ribs", new ItemAetherFood(9, 0.8F, true).setConsumptionDuration(40).setCreativeTab(CreativeTabsAether.TAB_FOOD)); - r.register("swet_jelly", new ItemSwetJelly().setConsumptionDuration(24).setCreativeTab(CreativeTabsAether.TAB_FOOD)); - r.register("blueberry_lollipop", new ItemAetherFood(5, 0.6F, false).setCreativeTab(CreativeTabsAether.TAB_FOOD)); - r.register("orange_lollipop", new ItemAetherFood(7, 0.6F, false).setCreativeTab(CreativeTabsAether.TAB_FOOD)); - r.register("candy_corn", new ItemAetherFood(3, 0.1F, false).setConsumptionDuration(16).setCreativeTab(CreativeTabsAether.TAB_FOOD)); - r.register("wrapped_chocolates", new ItemAetherFood(4, 0.3F, false).setCreativeTab(CreativeTabsAether.TAB_FOOD)); - r.register("jelly_plumproot", new ItemAetherFood(6, 0.6F, false).setConsumptionDuration(32).setCreativeTab(CreativeTabsAether.TAB_FOOD)); - r.register("cocoatrice", new ItemAetherFood(4, 0.3F, false).setCreativeTab(CreativeTabsAether.TAB_FOOD)); - r.register("candy_cane", new ItemAetherFood(2, 0.1F, false).setConsumptionDuration(16).setCreativeTab(CreativeTabsAether.TAB_FOOD)); - r.register("ginger_bread_man", new ItemAetherFood(3, 0.2F, false).setConsumptionDuration(24).setCreativeTab(CreativeTabsAether.TAB_FOOD)); - r.register("icestone_poprocks", new ItemAetherFood(2, 0.1F, false).setConsumptionDuration(16).setCreativeTab(CreativeTabsAether.TAB_FOOD)); - r.register("eggnog", new ItemEggnog().setCreativeTab(CreativeTabsAether.TAB_FOOD)); - r.register("yule_log", new ItemAetherFood(8, 0.6F, false).setConsumptionDuration(40).setCreativeTab(CreativeTabsAether.TAB_FOOD)); - r.register("stomper_pop", new ItemStomperPop().setCreativeTab(CreativeTabsAether.TAB_FOOD)); - - r.register("healing_stone_depleted", new ItemDropOnDeath().setMaxStackSize(1).setCreativeTab(CreativeTabsAether.TAB_CONSUMABLES)); - r.register("healing_stone", new ItemHealingStone().setMaxStackSize(1).setCreativeTab(CreativeTabsAether.TAB_CONSUMABLES)); - r.register("bandage", new ItemCurative(IAetherStatusEffects.effectTypes.BLEED, false, 32, EnumAction.DRINK) - .setCreativeTab(CreativeTabsAether.TAB_CONSUMABLES)); - r.register("splint", new ItemCurative(IAetherStatusEffects.effectTypes.FRACTURE,false, 32, EnumAction.DRINK) - .setCreativeTab(CreativeTabsAether.TAB_CONSUMABLES)); - r.register("water_vial", new ItemWaterVial().setCreativeTab(CreativeTabsAether.TAB_CONSUMABLES)); - r.register("antitoxin_vial", new ItemCurative(IAetherStatusEffects.effectTypes.TOXIN,true, 32, EnumAction.DRINK) - .setCreativeTab(CreativeTabsAether.TAB_CONSUMABLES)); - r.register("antivenom_vial", new ItemCurative(IAetherStatusEffects.effectTypes.COCKATRICE_VENOM,true, 32, EnumAction.DRINK) - .setCreativeTab(CreativeTabsAether.TAB_CONSUMABLES)); - r.register("valkyrie_tea", new ItemTea(IAetherStatusEffects.effectTypes.SATURATION_BOOST, true).setCreativeTab(CreativeTabsAether.TAB_CONSUMABLES)); - r.register("shard_of_life", new ItemShardOfLife().setMaxStackSize(4).setCreativeTab(CreativeTabsAether.TAB_CONSUMABLES)); - - r.register("skyroot_shovel", new ItemAetherShovel(MaterialsAether.SKYROOT_TOOL).setImpactDamageLevel(2.5F)); - r.register("skyroot_pickaxe", new ItemAetherPickaxe(MaterialsAether.SKYROOT_TOOL).setPierceDamageLevel(2.0F)); - r.register("skyroot_axe", new ItemAetherAxe(MaterialsAether.SKYROOT_TOOL).setImpactDamageLevel(7.0F)); - r.register("holystone_shovel", new ItemAetherShovel(MaterialsAether.HOLYSTONE_TOOL).setImpactDamageLevel(3.5F)); - r.register("holystone_pickaxe", new ItemAetherPickaxe(MaterialsAether.HOLYSTONE_TOOL).setPierceDamageLevel(3.0F)); - r.register("holystone_axe", new ItemAetherAxe(MaterialsAether.HOLYSTONE_TOOL, 8.0F, -3.2F).setImpactDamageLevel(9.0F)); - r.register("zanite_shovel", new ItemAetherShovel(MaterialsAether.ZANITE_TOOL).setImpactDamageLevel(4.5F)); - r.register("zanite_pickaxe", new ItemAetherPickaxe(MaterialsAether.ZANITE_TOOL).setPierceDamageLevel(4.0F)); - r.register("zanite_axe", new ItemAetherAxe(MaterialsAether.ZANITE_TOOL, 8.0F, -3.1F).setImpactDamageLevel(9.0F)); - r.register("arkenium_shovel", new ItemAetherShovel(MaterialsAether.ARKENIUM_TOOL, 1.5F, -3.5F).setImpactDamageLevel(6.5F)); - r.register("arkenium_pickaxe", new ItemAetherPickaxe(MaterialsAether.ARKENIUM_TOOL, 1.0F, -3.3F).setPierceDamageLevel(6.0F)); - r.register("arkenium_axe", new ItemAetherAxe(MaterialsAether.ARKENIUM_TOOL, 9.0F, -3.5F).setImpactDamageLevel(10.0F)); - r.register("gravitite_shovel", new ItemAetherShovel(MaterialsAether.GRAVITITE_TOOL).setImpactDamageLevel(5.5F)); - r.register("gravitite_pickaxe", new ItemAetherPickaxe(MaterialsAether.GRAVITITE_TOOL).setPierceDamageLevel(5.0F)); - r.register("gravitite_axe", new ItemAetherAxe(MaterialsAether.GRAVITITE_TOOL, 8.0F, -3.0F).setImpactDamageLevel(9.0F)); - r.register("arkenium_shears", new ItemArkeniumShears().setCreativeTab(CreativeTabsAether.TAB_TOOLS)); - - r.register("dart_shooter", new ItemDartShooter().setCreativeTab(CreativeTabsAether.TAB_WEAPONS)); - r.register("dart", new ItemDart().setCreativeTab(CreativeTabsAether.TAB_WEAPONS)); - r.register("skyroot_sword", new ItemSkyrootSword().setSlashDamageLevel(4.0F)); - r.register("holystone_sword", new ItemHolystoneSword().setSlashDamageLevel(5.0F)); - r.register("zanite_sword", new ItemZaniteSword().setSlashDamageLevel(6.0F)); - r.register("arkenium_sword", new ItemArkeniumSword().setSlashDamageLevel(8.0F)); - r.register("gravitite_sword", new ItemGravititeSword().setSlashDamageLevel(7.0F)); - r.register("bolt", new ItemBolt().setCreativeTab(CreativeTabsAether.TAB_WEAPONS)); - r.register("skyroot_crossbow", new ItemCrossbow().setDurationInTicks(20).setKnockBackValue(0.5F).setType(ItemCrossbow.crossBowTypes.SKYROOT)); - r.register("holystone_crossbow", new ItemCrossbow().setDurationInTicks(20).setKnockBackValue(0.7F).setType(ItemCrossbow.crossBowTypes.HOLYSTONE)); - r.register("zanite_crossbow", new ItemCrossbow().setDurationInTicks(20).setKnockBackValue(0.5F).setType(ItemCrossbow.crossBowTypes.ZANITE)); - r.register("arkenium_crossbow", new ItemCrossbow().setDurationInTicks(24).setKnockBackValue(0.5F).setType(ItemCrossbow.crossBowTypes.ARKENIUM)); - r.register("gravitite_crossbow", new ItemCrossbow().setDurationInTicks(20).setKnockBackValue(1.2F).setType(ItemCrossbow.crossBowTypes.GRAVETITE)); - - r.register("taegore_hide_helmet", new ItemTaegoreHideArmor(EntityEquipmentSlot.HEAD)); - r.register("taegore_hide_chestplate", new ItemTaegoreHideArmor(EntityEquipmentSlot.CHEST)); - r.register("taegore_hide_leggings", new ItemTaegoreHideArmor(EntityEquipmentSlot.LEGS)); - r.register("taegore_hide_boots", new ItemTaegoreHideArmor(EntityEquipmentSlot.FEET)); - r.register("taegore_hide_gloves", new ItemAetherGloves(ItemAetherGloves.GloveType.TAEGOREHIDE).setMaxDamage(60)); - r.register("skyroot_shield", new ItemAetherShield(ItemAetherShield.ShieldType.SKYROOT).setMaxDamage(114)); - r.register("burrukai_pelt_helmet", new ItemBurrukaiPeltArmor(EntityEquipmentSlot.HEAD)); - r.register("burrukai_pelt_chestplate", new ItemBurrukaiPeltArmor(EntityEquipmentSlot.CHEST)); - r.register("burrukai_pelt_leggings", new ItemBurrukaiPeltArmor(EntityEquipmentSlot.LEGS)); - r.register("burrukai_pelt_boots", new ItemBurrukaiPeltArmor(EntityEquipmentSlot.FEET)); - r.register("burrukai_pelt_gloves", new ItemAetherGloves(ItemAetherGloves.GloveType.BURRUKAIPELT).setMaxDamage(60)); - r.register("holystone_shield", new ItemAetherShield(ItemAetherShield.ShieldType.HOLYSTONE).setMaxDamage(253)); - r.register("zanite_helmet", new ItemZaniteArmor(EntityEquipmentSlot.HEAD)); - r.register("zanite_chestplate", new ItemZaniteArmor(EntityEquipmentSlot.CHEST)); - r.register("zanite_leggings", new ItemZaniteArmor(EntityEquipmentSlot.LEGS)); - r.register("zanite_boots", new ItemZaniteArmor(EntityEquipmentSlot.FEET)); - r.register("zanite_gloves", new ItemAetherGloves(ItemAetherGloves.GloveType.ZANITE).setMaxDamage(180)); - r.register("zanite_shield", new ItemAetherShield(ItemAetherShield.ShieldType.ZANITE).setMaxDamage(482)); - r.register("arkenium_helmet", new ItemArkeniumArmor(EntityEquipmentSlot.HEAD)); - r.register("arkenium_chestplate", new ItemArkeniumArmor(EntityEquipmentSlot.CHEST)); - r.register("arkenium_leggings", new ItemArkeniumArmor(EntityEquipmentSlot.LEGS)); - r.register("arkenium_boots", new ItemArkeniumArmor(EntityEquipmentSlot.FEET)); - r.register("arkenium_gloves", new ItemAetherGloves(ItemAetherGloves.GloveType.ARKENIUM).setMaxDamage(528)); - r.register("arkenium_shield", new ItemAetherShield(ItemAetherShield.ShieldType.ARKENIUM).setMaxDamage(6154)); - r.register("gravitite_helmet", new ItemGravititeArmor(EntityEquipmentSlot.HEAD)); - r.register("gravitite_chestplate", new ItemGravititeArmor(EntityEquipmentSlot.CHEST)); - r.register("gravitite_leggings", new ItemGravititeArmor(EntityEquipmentSlot.LEGS)); - r.register("gravitite_boots", new ItemGravititeArmor(EntityEquipmentSlot.FEET)); - r.register("gravitite_gloves", new ItemAetherGloves(ItemAetherGloves.GloveType.GRAVITITE).setMaxDamage(396)); - r.register("gravitite_shield", new ItemAetherShield(ItemAetherShield.ShieldType.GRAVITITE).setMaxDamage(3010)); - - r.register("rainbow_moa_egg", new ItemMoaEgg(true).setCreativeTab(CreativeTabsAether.TAB_MISCELLANEOUS)); - r.register("aether_saddle", new ItemDropOnDeath().setMaxStackSize(1).setCreativeTab(CreativeTabsAether.TAB_MISCELLANEOUS)); - r.register("moa_feed", new ItemMoaFeed(ItemMoaFeed.MoaFeedType.BASIC).setCreativeTab(CreativeTabsAether.TAB_MISCELLANEOUS)); - r.register("moa_feed_blueberries", new ItemMoaFeed(ItemMoaFeed.MoaFeedType.BLUEBERRY).setCreativeTab(CreativeTabsAether.TAB_MISCELLANEOUS)); - r.register("moa_feed_enchanted_blueberries", new ItemMoaFeed(ItemMoaFeed.MoaFeedType.ENCHANTED_BLUEBERRY).setCreativeTab(CreativeTabsAether.TAB_MISCELLANEOUS)); - r.register("cloud_parachute", new ItemCloudParachute().setCreativeTab(CreativeTabsAether.TAB_MISCELLANEOUS)); - r.register("skyroot_bucket", new ItemSkyrootBucket(Blocks.AIR)); - r.register("skyroot_water_bucket", new ItemSkyrootBucket(Blocks.FLOWING_WATER)); - r.register("skyroot_milk_bucket", new ItemSkyrootConsumableBucket()); - r.register("skyroot_poison_bucket", new ItemSkyrootConsumableBucket()); - r.register("aerwhale_music_disc", new ItemAetherRecord("aerwhale", "records.aerwhale")); - r.register("moa_music_disc", new ItemAetherRecord("moa", "records.moa")); - r.register("labyrinth_music_disc", new ItemAetherRecord("labyrinth", "records.labyrinth")); - r.register("valkyrie_music_disc", new ItemAetherRecord("valkyrie", "records.valkyrie")); - r.register("recording_892", new ItemAetherRecord("recording_892", "records.recording_892")); - r.register("winter_hat", new ItemWinterHat().setCreativeTab(CreativeTabsAether.TAB_MISCELLANEOUS)); - r.register("wrapping_paper", new ItemWrappingPaper().setCreativeTab(CreativeTabsAether.TAB_MISCELLANEOUS)); - - r.register("moa_egg_item", new ItemMoaEgg(false)); - - r.register("charm_max_hlt_01", new ItemAccessory().setCreativeTab(CreativeTabsAether.TAB_CHARMS)); - //r.register("charm_max_hlt_02", new ItemAccessory().setCreativeTab(CreativeTabsAether.TAB_CHARMS)); - //r.register("charm_arm_01", new ItemAccessory().setCreativeTab(CreativeTabsAether.TAB_CHARMS)); - //r.register("charm_arm_02", new ItemAccessory().setCreativeTab(CreativeTabsAether.TAB_CHARMS)); - //r.register("charm_arm_tgh_01", new ItemAccessory().setCreativeTab(CreativeTabsAether.TAB_CHARMS)); - //r.register("charm_arm_tgh_02", new ItemAccessory().setCreativeTab(CreativeTabsAether.TAB_CHARMS)); - //r.register("charm_kbk_res_01", new ItemAccessory().setCreativeTab(CreativeTabsAether.TAB_CHARMS)); - //r.register("charm_kbk_res_02", new ItemAccessory().setCreativeTab(CreativeTabsAether.TAB_CHARMS)); - //r.register("charm_atk_spd_01", new ItemAccessory().setCreativeTab(CreativeTabsAether.TAB_CHARMS)); - //r.register("charm_atk_spd_02", new ItemAccessory().setCreativeTab(CreativeTabsAether.TAB_CHARMS)); - r.register("charm_mve_spd_01", new ItemAccessory().setCreativeTab(CreativeTabsAether.TAB_CHARMS)); - r.register("charm_mve_spd_02", new ItemAccessory().setCreativeTab(CreativeTabsAether.TAB_CHARMS)); - //r.register("charm_lck_01", new ItemAccessory().setCreativeTab(CreativeTabsAether.TAB_CHARMS)); - //r.register("charm_lck_02", new ItemAccessory().setCreativeTab(CreativeTabsAether.TAB_CHARMS)); - - //r.register("charm_slsh_dmg_01", new ItemDamageCharm().setSlashDamageLevel(0.5F).setCreativeTab(CreativeTabsAether.TAB_CHARMS)); - //r.register("charm_slsh_dmg_02", new ItemDamageCharm().setSlashDamageLevel(1.0F).setCreativeTab(CreativeTabsAether.TAB_CHARMS)); - //r.register("charm_imp_dmg_01", new ItemDamageCharm().setImpactDamageLevel(0.5F).setCreativeTab(CreativeTabsAether.TAB_CHARMS)); - //r.register("charm_imp_dmg_02", new ItemDamageCharm().setImpactDamageLevel(1.0F).setCreativeTab(CreativeTabsAether.TAB_CHARMS)); - //r.register("charm_prc_dmg_01", new ItemDamageCharm().setPierceDamageLevel(0.5F).setCreativeTab(CreativeTabsAether.TAB_CHARMS)); - //r.register("charm_prc_dmg_02", new ItemDamageCharm().setPierceDamageLevel(1.0F).setCreativeTab(CreativeTabsAether.TAB_CHARMS)); - - r.register("charm_res_amb_01", new ItemAccessory().addStatusEffectResistance(new StatusEffectAmbrosiumPoisoning(null),0.02 ).setCreativeTab(CreativeTabsAether.TAB_CHARMS)); - r.register("charm_res_amb_02", new ItemAccessory().addStatusEffectResistance(new StatusEffectAmbrosiumPoisoning(null),0.05 ).setCreativeTab(CreativeTabsAether.TAB_CHARMS)); - r.register("charm_res_bld_01", new ItemAccessory().addStatusEffectResistance(new StatusEffectBleed(null),0.02 ).setCreativeTab(CreativeTabsAether.TAB_CHARMS)); - r.register("charm_res_bld_02", new ItemAccessory().addStatusEffectResistance(new StatusEffectBleed(null),0.05 ).setCreativeTab(CreativeTabsAether.TAB_CHARMS)); - r.register("charm_res_fra_01", new ItemAccessory().addStatusEffectResistance(new StatusEffectFracture(null),0.02 ).setCreativeTab(CreativeTabsAether.TAB_CHARMS)); - r.register("charm_res_fra_02", new ItemAccessory().addStatusEffectResistance(new StatusEffectFracture(null),0.05 ).setCreativeTab(CreativeTabsAether.TAB_CHARMS)); - r.register("charm_res_frz_01", new ItemAccessory().addStatusEffectResistance(new StatusEffectFreeze(null),0.02 ).setCreativeTab(CreativeTabsAether.TAB_CHARMS)); - r.register("charm_res_frz_02", new ItemAccessory().addStatusEffectResistance(new StatusEffectFreeze(null),0.05 ).setCreativeTab(CreativeTabsAether.TAB_CHARMS)); - r.register("charm_res_grd_brk_01", new ItemAccessory().addStatusEffectResistance(new StatusEffectGuardBreak(null),0.02 ).setCreativeTab(CreativeTabsAether.TAB_CHARMS)); - r.register("charm_res_grd_brk_02", new ItemAccessory().addStatusEffectResistance(new StatusEffectGuardBreak(null),0.05 ).setCreativeTab(CreativeTabsAether.TAB_CHARMS)); - r.register("charm_res_irr_01", new ItemAccessory().addStatusEffectResistance(new StatusEffectIrradiation(null),0.02 ).setCreativeTab(CreativeTabsAether.TAB_CHARMS)); - r.register("charm_res_irr_02", new ItemAccessory().addStatusEffectResistance(new StatusEffectIrradiation(null),0.05 ).setCreativeTab(CreativeTabsAether.TAB_CHARMS)); - r.register("charm_res_stn_01", new ItemAccessory().addStatusEffectResistance(new StatusEffectStun(null),0.02 ).setCreativeTab(CreativeTabsAether.TAB_CHARMS)); - r.register("charm_res_stn_02", new ItemAccessory().addStatusEffectResistance(new StatusEffectStun(null),0.05 ).setCreativeTab(CreativeTabsAether.TAB_CHARMS)); - r.register("charm_res_tox_01", new ItemAccessory().addStatusEffectResistance(new StatusEffectToxin(null),0.02 ).setCreativeTab(CreativeTabsAether.TAB_CHARMS)); - r.register("charm_res_tox_02", new ItemAccessory().addStatusEffectResistance(new StatusEffectToxin(null),0.05 ).setCreativeTab(CreativeTabsAether.TAB_CHARMS)); - r.register("charm_res_ven_01", new ItemAccessory().addStatusEffectResistance(new StatusEffectCockatriceVenom(null),0.02 ).setCreativeTab(CreativeTabsAether.TAB_CHARMS)); - r.register("charm_res_ven_02", new ItemAccessory().addStatusEffectResistance(new StatusEffectCockatriceVenom(null),0.05 ).setCreativeTab(CreativeTabsAether.TAB_CHARMS)); - r.register("charm_res_web_01", new ItemAccessory().addStatusEffectResistance(new StatusEffectWebbing(null),0.02 ).setCreativeTab(CreativeTabsAether.TAB_CHARMS)); - r.register("charm_res_web_02", new ItemAccessory().addStatusEffectResistance(new StatusEffectWebbing(null),0.05 ).setCreativeTab(CreativeTabsAether.TAB_CHARMS)); - } - - public static Collection<Item> getRegisteredItems() - { - return Collections.unmodifiableCollection(registeredItems); - } - - private static class ItemRegistryHelper - { - private final IForgeRegistry<Item> registry; - - ItemRegistryHelper(final IForgeRegistry<Item> registry) - { - this.registry = registry; - } - - private void register(final String registryName, final Item item) - { - item.setTranslationKey(AetherCore.MOD_ID + "." + registryName); - item.setRegistryName(registryName); - - this.registry.register(item); - - registeredItems.add(item); - } - } -} \ No newline at end of file diff --git a/src/main/java/com/gildedgames/aether/common/init/LootTablesAether.java b/src/main/java/com/gildedgames/aether/common/init/LootTablesAether.java deleted file mode 100644 index ae81c7d673..0000000000 --- a/src/main/java/com/gildedgames/aether/common/init/LootTablesAether.java +++ /dev/null @@ -1,57 +0,0 @@ -package com.gildedgames.aether.common.init; - -import com.gildedgames.aether.common.AetherCore; -import net.minecraft.util.ResourceLocation; -import net.minecraft.world.storage.loot.LootTableList; - -public class LootTablesAether -{ - public static ResourceLocation ENTITY_KIRRID_SHEARED; - - public static ResourceLocation ENTITY_KIRRID; - - public static ResourceLocation ENTITY_AECHOR_PLANT; - - public static ResourceLocation ENTITY_COCKATRICE; - - public static ResourceLocation ENTITY_SWET, ENTITY_SWET_BLUE, ENTITY_SWET_GREEN, ENTITY_SWET_PURPLE; - - public static ResourceLocation ENTITY_TAEGORE; - - public static ResourceLocation ENTITY_BURRUKAI; - - public static ResourceLocation ENTITY_CARRION_SPROUT; - - public static ResourceLocation ENTITY_AERBUNNY; - - public static ResourceLocation ENTITY_ZEPHYR; - - public static ResourceLocation ENTITY_GLACTRIX; - - public static void preInit() - { - ENTITY_KIRRID_SHEARED = LootTableList.register(AetherCore.getResource("entities/kirrid/kirrid_sheared")); - ENTITY_KIRRID = LootTableList.register(AetherCore.getResource("entities/kirrid/kirrid")); - - ENTITY_AECHOR_PLANT = LootTableList.register(AetherCore.getResource("entities/aechor_plant")); - - ENTITY_COCKATRICE = LootTableList.register(AetherCore.getResource("entities/cockatrice")); - - ENTITY_SWET = LootTableList.register(AetherCore.getResource("entities/swet/swet")); - ENTITY_SWET_BLUE = LootTableList.register(AetherCore.getResource("entities/swet/swet_blue")); - ENTITY_SWET_GREEN = LootTableList.register(AetherCore.getResource("entities/swet/swet_green")); - ENTITY_SWET_PURPLE = LootTableList.register(AetherCore.getResource("entities/swet/swet_purple")); - - ENTITY_TAEGORE = LootTableList.register(AetherCore.getResource("entities/taegore")); - - ENTITY_BURRUKAI = LootTableList.register(AetherCore.getResource("entities/burrukai")); - - ENTITY_CARRION_SPROUT = LootTableList.register(AetherCore.getResource("entities/carrion_sprout")); - - ENTITY_AERBUNNY = LootTableList.register(AetherCore.getResource("entities/aerbunny")); - - ENTITY_ZEPHYR = LootTableList.register(AetherCore.getResource("entities/zephyr")); - - ENTITY_GLACTRIX = LootTableList.register(AetherCore.getResource("entities/glactrix")); - } -} diff --git a/src/main/java/com/gildedgames/aether/common/init/MaterialsAether.java b/src/main/java/com/gildedgames/aether/common/init/MaterialsAether.java deleted file mode 100644 index c570bde4d7..0000000000 --- a/src/main/java/com/gildedgames/aether/common/init/MaterialsAether.java +++ /dev/null @@ -1,53 +0,0 @@ -package com.gildedgames.aether.common.init; - -import net.minecraft.init.Blocks; -import net.minecraft.init.SoundEvents; -import net.minecraft.item.Item.ToolMaterial; -import net.minecraft.item.ItemArmor.ArmorMaterial; -import net.minecraft.item.ItemStack; -import net.minecraftforge.common.util.EnumHelper; -import net.minecraftforge.oredict.OreDictionary; - -public class MaterialsAether -{ - // REGULAR TOOLS - - public static final ToolMaterial SKYROOT_TOOL = EnumHelper.addToolMaterial("AETHER_SKYROOT", 0, 59, 2.0F, 0.0F, 15); - - public static final ToolMaterial HOLYSTONE_TOOL = EnumHelper.addToolMaterial("AETHER_HOLYSTONE", 1, 131, 4.0F, 1.0F, 5); - - public static final ToolMaterial ARKENIUM_TOOL = EnumHelper.addToolMaterial("AETHER_ARKENIUM", 2, 3192, 5.0F, 4.0F, 14); - - public static final ToolMaterial ZANITE_TOOL = EnumHelper.addToolMaterial("AETHER_ZANITE", 2, 250, 6.0F, 2.0F, 14); - - public static final ToolMaterial GRAVITITE_TOOL = EnumHelper.addToolMaterial("AETHER_GRAVITITE", 3, 1561, 8.0F, 3.0F, 10); - - // REGULAR ARMOR - - public static final ArmorMaterial WINTER_ARMOR = EnumHelper.addArmorMaterial("winter", "", 8, - new int[] { 0, 0, 0, 0 }, 25, SoundEvents.ITEM_ARMOR_EQUIP_LEATHER, 0F).setRepairItem(new ItemStack(Blocks.WOOL, 1, OreDictionary.WILDCARD_VALUE)); - - public static final ArmorMaterial PELT_ARMOR = EnumHelper.addArmorMaterial("AETHER_PELT", "", 10, - new int[] { 1, 3, 4, 2 }, 15, SoundEvents.ITEM_ARMOR_EQUIP_LEATHER, 0F); - - public static final ArmorMaterial ARKENIUM_ARMOR = EnumHelper.addArmorMaterial("AETHER_ARKENIUM", "", 44, - new int[] { 3, 6, 8, 3 }, 10, SoundEvents.ITEM_ARMOR_EQUIP_IRON, 2.0F); - - //LOOT TOOLS - - public static final ToolMaterial LEGENDARY_TOOL = EnumHelper.addToolMaterial("AETHER_LEGENDARY", 3, 1000, 8.0F, 2.0F, 14); - - //LOOT ARMOR - - public static final ArmorMaterial VALKYRIE_ARMOR = EnumHelper.addArmorMaterial("AETHER_VALKYRIE", "", 33, new int[] { 2, 5, 6, - 2 }, 10, SoundEvents.ITEM_ARMOR_EQUIP_DIAMOND, 0.5F); - - public static final ArmorMaterial NEPTUNE_ARMOR = EnumHelper.addArmorMaterial("AETHER_NEPTUNE", "", 33, new int[] { 2, 5, 6, - 2 }, 10, SoundEvents.ITEM_ARMOR_EQUIP_DIAMOND, 0.5F); - - public static final ArmorMaterial PHOENIX_ARMOR = EnumHelper.addArmorMaterial("AETHER_PHOENIX", "", 33, new int[] { 2, 5, 6, - 2 }, 10, SoundEvents.ITEM_ARMOR_EQUIP_DIAMOND, 0.5F); - - public static final ArmorMaterial LEGENDARY_ARMOR = EnumHelper.addArmorMaterial("AETHER_LEGENDARY", "", 30, new int[] { 2, 6, 5, - 2 }, 10, SoundEvents.ITEM_ARMOR_EQUIP_DIAMOND, 1.0F); -} diff --git a/src/main/java/com/gildedgames/aether/common/init/ParticlesAether.java b/src/main/java/com/gildedgames/aether/common/init/ParticlesAether.java deleted file mode 100644 index 3981c45b1b..0000000000 --- a/src/main/java/com/gildedgames/aether/common/init/ParticlesAether.java +++ /dev/null @@ -1,6 +0,0 @@ -package com.gildedgames.aether.common.init; - -public enum ParticlesAether -{ - SLASH, PIERCE, IMPACT -} diff --git a/src/main/java/com/gildedgames/aether/common/init/RecipesAether.java b/src/main/java/com/gildedgames/aether/common/init/RecipesAether.java deleted file mode 100644 index 8516cc6409..0000000000 --- a/src/main/java/com/gildedgames/aether/common/init/RecipesAether.java +++ /dev/null @@ -1,459 +0,0 @@ -package com.gildedgames.aether.common.init; - -import com.gildedgames.aether.api.AetherAPI; -import com.gildedgames.aether.api.registrar.BlocksAether; -import com.gildedgames.aether.api.registrar.ItemsAether; -import com.gildedgames.aether.common.AetherCore; -import com.gildedgames.aether.common.blocks.decorative.*; -import com.gildedgames.aether.common.blocks.natural.BlockHolystone; -import com.gildedgames.aether.common.blocks.properties.BlockVariant; -import com.gildedgames.aether.common.items.weapons.ItemDartType; -import com.gildedgames.aether.common.recipes.CoolerRecipes; -import com.gildedgames.aether.common.recipes.MasonryRecipes; -import com.gildedgames.aether.common.recipes.RecipePresentCrafting; -import com.gildedgames.aether.common.recipes.RecipeWrappingPaper; -import com.gildedgames.aether.common.recipes.altar.AltarEnchantRecipe; -import com.gildedgames.aether.common.recipes.altar.AltarRepairRecipe; -import com.gildedgames.aether.common.recipes.simple.SimpleRecipe; -import com.gildedgames.aether.common.util.helpers.MapGen; -import net.minecraft.init.Blocks; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.item.crafting.IRecipe; -import net.minecraftforge.event.RegistryEvent; -import net.minecraftforge.fml.common.Mod; -import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; -import net.minecraftforge.fml.common.registry.GameRegistry; -import net.minecraftforge.oredict.OreDictionary; -import net.minecraftforge.registries.IForgeRegistry; - -@Mod.EventBusSubscriber -public class RecipesAether -{ - public static void init() - { - registerOreDictionary(); - registerFurnaceRecipes(); - registerAltarRecipes(); - registerMasonryRecipes(); - registerCoolerRecipes(); - } - - private static void registerFurnaceRecipes() - { - registerSmeltingRecipe(new ItemStack(BlocksAether.holystone), new ItemStack(BlocksAether.agiosite), 0.1f); - registerSmeltingRecipe(new ItemStack(BlocksAether.arkenium_ore), new ItemStack(ItemsAether.arkenium), 0.85f); - registerSmeltingRecipe(new ItemStack(BlocksAether.gravitite_ore), new ItemStack(ItemsAether.gravitite_plate), 1.0f); - registerSmeltingRecipe(new ItemStack(BlocksAether.quicksoil), new ItemStack(BlocksAether.quicksoil_glass), 0.1f); - registerSmeltingRecipe(new ItemStack(ItemsAether.moa_egg_item), new ItemStack(ItemsAether.fried_moa_egg), 0.4f); - registerSmeltingRecipe(new ItemStack(ItemsAether.rainbow_moa_egg), new ItemStack(ItemsAether.fried_moa_egg), 0.4f); - registerSmeltingRecipe(new ItemStack(BlocksAether.crude_scatterglass), new ItemStack(BlocksAether.scatterglass), 0.1f); - registerSmeltingRecipe(new ItemStack(ItemsAether.raw_taegore_meat), new ItemStack(ItemsAether.taegore_steak), 0.4f); - registerSmeltingRecipe(new ItemStack(ItemsAether.burrukai_rib_cut), new ItemStack(ItemsAether.burrukai_ribs), 0.4f); - registerSmeltingRecipe(new ItemStack(ItemsAether.kirrid_loin), new ItemStack(ItemsAether.kirrid_cutlet), 0.4f); - registerSmeltingRecipe(new ItemStack(ItemsAether.skyroot_lizard_stick), new ItemStack(ItemsAether.skyroot_lizard_stick_roasted), 0.65f); - } - - public static void registerOreDictionary() - { - OreDictionary.registerOre("skyrootplanks", BlocksAether.skyroot_planks); - OreDictionary.registerOre("skyrootplanks", BlocksAether.dark_skyroot_planks); - OreDictionary.registerOre("skyrootplanks", BlocksAether.light_skyroot_planks); - OreDictionary.registerOre("feather", ItemsAether.moa_feather); - OreDictionary.registerOre("feather", ItemsAether.cockatrice_feather); - OreDictionary.registerOre("aerleather", ItemsAether.taegore_hide); - OreDictionary.registerOre("aerleather", ItemsAether.burrukai_pelt); - OreDictionary.registerOre("sugar", ItemsAether.swet_sugar); - - OreDictionary.registerOre("holystone", new ItemStack(BlocksAether.holystone, 1, 0)); - OreDictionary.registerOre("holystone", new ItemStack(BlocksAether.holystone, 1, 1)); - - for (BlockVariant variant : BlockSkyrootDecorative.PROPERTY_VARIANT.getAllowedValues()) - { - OreDictionary.registerOre("skyroot_decorative", new ItemStack(BlocksAether.skyroot_decorative, 1, variant.getMeta())); - } - - OreDictionary.registerOre("skyroot_decorative", new ItemStack(BlocksAether.skyroot_beam, 1)); - - for (BlockVariant variant : BlockSkyrootDecorative.PROPERTY_VARIANT.getAllowedValues()) - { - OreDictionary.registerOre("wisproot_decorative", new ItemStack(BlocksAether.light_skyroot_decorative, 1, variant.getMeta())); - } - - OreDictionary.registerOre("wisproot_decorative", new ItemStack(BlocksAether.light_skyroot_beam, 1)); - - for (BlockVariant variant : BlockSkyrootDecorative.PROPERTY_VARIANT.getAllowedValues()) - { - OreDictionary.registerOre("greatroot_decorative", new ItemStack(BlocksAether.dark_skyroot_decorative, 1, variant.getMeta())); - } - - OreDictionary.registerOre("greatroot_decorative", new ItemStack(BlocksAether.dark_skyroot_beam, 1)); - - for (BlockVariant variant : BlockTherawoodDecorative.PROPERTY_VARIANT.getAllowedValues()) - { - OreDictionary.registerOre("therawood_decorative", new ItemStack(BlocksAether.therawood_decorative, 1, variant.getMeta())); - } - - OreDictionary.registerOre("therawood_decorative", new ItemStack(BlocksAether.therawood_beam, 1)); - - for (BlockVariant variant : BlockIcestoneBricksDecorative.PROPERTY_VARIANT.getAllowedValues()) - { - OreDictionary.registerOre("icestone_bricks_decorative", new ItemStack(BlocksAether.icestone_bricks_decorative, 1, variant.getMeta())); - } - - OreDictionary.registerOre("icestone_bricks_decorative", new ItemStack(BlocksAether.icestone_pillar, 1)); - - for (BlockVariant variant : BlockHolystoneDecorative.PROPERTY_VARIANT.getAllowedValues()) - { - OreDictionary.registerOre("holystone_brick_decorative", new ItemStack(BlocksAether.holystone_brick_decorative, 1, variant.getMeta())); - } - - OreDictionary.registerOre("holystone_brick_decorative", new ItemStack(BlocksAether.holystone_pillar, 1)); - - for (BlockVariant variant : BlockFadedHolystoneDecorative.PROPERTY_VARIANT.getAllowedValues()) - { - OreDictionary.registerOre("faded_holystone_brick_decorative", new ItemStack(BlocksAether.faded_holystone_brick_decorative, 1, variant.getMeta())); - } - - OreDictionary.registerOre("faded_holystone_brick_decorative", new ItemStack(BlocksAether.faded_holystone_pillar, 1)); - - OreDictionary.registerOre("faded_holystone_brick", new ItemStack(BlocksAether.faded_holystone_brick, 1)); - - for (BlockVariant variant : BlockAgiositeDecorative.PROPERTY_VARIANT.getAllowedValues()) - { - OreDictionary.registerOre("agiosite_brick_decorative", new ItemStack(BlocksAether.agiosite_brick_decorative, 1, variant.getMeta())); - } - - OreDictionary.registerOre("agiosite_brick_decorative", new ItemStack(BlocksAether.agiosite_pillar, 1)); - - for (BlockVariant variant : BlockSentrystoneDecorative.PROPERTY_VARIANT.getAllowedValues()) - { - OreDictionary.registerOre("sentrystone_brick_decorative", new ItemStack(BlocksAether.sentrystone_brick_decorative, 1, variant.getMeta())); - } - - OreDictionary.registerOre("sentrystone_brick_decorative", new ItemStack(BlocksAether.sentrystone_pillar, 1)); - - for (BlockVariant variant : BlockSentrystoneDecorativeLit.PROPERTY_VARIANT.getAllowedValues()) - { - OreDictionary.registerOre("sentrystone_brick_decorative", new ItemStack(BlocksAether.sentrystone_brick_decorative_lit, 1, variant.getMeta())); - } - - OreDictionary.registerOre("sentrystone_brick_decorative", new ItemStack(BlocksAether.sentrystone_pillar_lit, 1)); - - for (BlockVariant variant : BlockHellfirestoneDecorative.PROPERTY_VARIANT.getAllowedValues()) - { - OreDictionary.registerOre("hellfirestone_brick_decorative", new ItemStack(BlocksAether.hellfirestone_brick_decorative, 1, variant.getMeta())); - } - - OreDictionary.registerOre("hellfirestone_brick_decorative", new ItemStack(BlocksAether.hellfirestone_pillar, 1)); - - OreDictionary.registerOre("hellfirestone_brick_decorative", new ItemStack(BlocksAether.hellfirestone_lantern, 1)); - - for (BlockVariant variant : BlockTherastoneDecorative.PROPERTY_VARIANT.getAllowedValues()) - { - OreDictionary.registerOre("therastone_brick_decorative", new ItemStack(BlocksAether.therastone_brick_decorative, 1, variant.getMeta())); - } - - OreDictionary.registerOre("therastone_brick_decorative", new ItemStack(BlocksAether.therastone_pillar, 1)); - - OreDictionary.registerOre("canHarvestAetherAmber", ItemsAether.zanite_axe); - OreDictionary.registerOre("canHarvestAetherAmber", ItemsAether.arkenium_axe); - OreDictionary.registerOre("canHarvestAetherAmber", ItemsAether.gravitite_axe); - } - - @SubscribeEvent - public static void registerCraftingRecipes(RegistryEvent.Register<IRecipe> event) - { - IForgeRegistry<IRecipe> r = event.getRegistry(); - r.register(new RecipeWrappingPaper().setRegistryName(AetherCore.getResource("wrapping_paper"))); - r.register(new RecipePresentCrafting().setRegistryName(AetherCore.getResource("present_crafting"))); - - //TODO: - //RecipeSorter.register("aether:wrappingPaper", RecipeWrappingPaper.class, RecipeSorter.Category.SHAPED, "after:minecraft:shaped"); - //RecipeSorter.register("aether:presentCrafting", RecipePresentCrafting.class, RecipeSorter.Category.SHAPED, "after:minecraft:shaped"); - - //CraftingManager.getInstance().addRecipe(new RecipeWrappingPaper()); - //CraftingManager.getInstance().addRecipe(new RecipePresentCrafting()); - } - - private static void registerAltarRecipes() - { - // Enchanted Blueberry - AetherAPI.content().altar().registerAltarRecipe(new AltarEnchantRecipe(2, new ItemStack(ItemsAether.blueberries), - new ItemStack(ItemsAether.enchanted_blueberry))); - - // Enchanted Wyndberry - AetherAPI.content().altar().registerAltarRecipe(new AltarEnchantRecipe(4, new ItemStack(ItemsAether.wyndberry), - new ItemStack(ItemsAether.enchanted_wyndberry))); - - // Tool Repair Recipes - AetherAPI.content().altar().registerAltarRecipe(new AltarRepairRecipe()); - - // Healing Stone - AetherAPI.content().altar().registerAltarRecipe(new AltarEnchantRecipe(5, new ItemStack(ItemsAether.healing_stone_depleted), - new ItemStack(ItemsAether.healing_stone))); - } - - private static void registerMasonryRecipes() - { - MasonryRecipes.instance().addMasonry(BlocksAether.holystone_brick, - new ItemStack(BlocksAether.holystone_brick_decorative, 1, BlockHolystoneDecorative.BASE_BRICKS.getMeta()), - new ItemStack(BlocksAether.holystone_brick_decorative, 1, BlockHolystoneDecorative.BASE_PILLAR.getMeta()), - new ItemStack(BlocksAether.holystone_brick_decorative, 1, BlockHolystoneDecorative.CAPSTONE_BRICKS.getMeta()), - new ItemStack(BlocksAether.holystone_brick_decorative, 1, BlockHolystoneDecorative.CAPSTONE_PILLAR.getMeta()), - new ItemStack(BlocksAether.holystone_brick_decorative, 1, BlockHolystoneDecorative.FLAGSTONES.getMeta()), - new ItemStack(BlocksAether.holystone_brick_decorative, 1, BlockHolystoneDecorative.HEADSTONE.getMeta()), - new ItemStack(BlocksAether.holystone_brick_decorative, 1, BlockHolystoneDecorative.KEYSTONE.getMeta()), - new ItemStack(BlocksAether.holystone_pillar, 1), - new ItemStack(BlocksAether.faded_holystone_brick, 1) - ); - - MasonryRecipes.instance().addMasonry(BlocksAether.sentrystone_brick, - new ItemStack(BlocksAether.sentrystone_brick_decorative, 1, BlockSentrystoneDecorative.BASE_BRICKS.getMeta()), - new ItemStack(BlocksAether.sentrystone_brick_decorative, 1, BlockSentrystoneDecorative.BASE_PILLAR.getMeta()), - new ItemStack(BlocksAether.sentrystone_brick_decorative, 1, BlockSentrystoneDecorative.CAPSTONE_BRICKS.getMeta()), - new ItemStack(BlocksAether.sentrystone_brick_decorative, 1, BlockSentrystoneDecorative.CAPSTONE_PILLAR.getMeta()), - new ItemStack(BlocksAether.sentrystone_brick_decorative, 1, BlockSentrystoneDecorative.FLAGSTONES.getMeta()), - new ItemStack(BlocksAether.sentrystone_brick_decorative, 1, BlockSentrystoneDecorative.LIGHTSTONE.getMeta()), - new ItemStack(BlocksAether.sentrystone_brick_decorative, 1, BlockSentrystoneDecorative.KEYSTONE.getMeta()), - new ItemStack(BlocksAether.sentrystone_pillar, 1), - new ItemStack(BlocksAether.sentrystone_brick_decorative_lit, 1, BlockSentrystoneDecorativeLit.BASE_BRICKS.getMeta()), - new ItemStack(BlocksAether.sentrystone_brick_decorative_lit, 1, BlockSentrystoneDecorativeLit.BASE_PILLAR.getMeta()), - new ItemStack(BlocksAether.sentrystone_brick_decorative_lit, 1, BlockSentrystoneDecorativeLit.CAPSTONE_BRICKS.getMeta()), - new ItemStack(BlocksAether.sentrystone_brick_decorative_lit, 1, BlockSentrystoneDecorativeLit.CAPSTONE_PILLAR.getMeta()), - new ItemStack(BlocksAether.sentrystone_brick_decorative_lit, 1, BlockSentrystoneDecorativeLit.LIGHTSTONE.getMeta()), - new ItemStack(BlocksAether.sentrystone_brick_decorative_lit, 1, BlockSentrystoneDecorativeLit.KEYSTONE.getMeta()), - new ItemStack(BlocksAether.sentrystone_pillar_lit, 1) - ); - - MasonryRecipes.instance().addMasonry(BlocksAether.hellfirestone_brick, - new ItemStack(BlocksAether.hellfirestone_brick_decorative, 1, BlockHellfirestoneDecorative.BASE_BRICKS.getMeta()), - new ItemStack(BlocksAether.hellfirestone_brick_decorative, 1, BlockHellfirestoneDecorative.BASE_PILLAR.getMeta()), - new ItemStack(BlocksAether.hellfirestone_brick_decorative, 1, BlockHellfirestoneDecorative.CAPSTONE_BRICKS.getMeta()), - new ItemStack(BlocksAether.hellfirestone_brick_decorative, 1, BlockHellfirestoneDecorative.CAPSTONE_PILLAR.getMeta()), - new ItemStack(BlocksAether.hellfirestone_brick_decorative, 1, BlockHellfirestoneDecorative.FLAGSTONES.getMeta()), - new ItemStack(BlocksAether.hellfirestone_lantern, 1, 0), - new ItemStack(BlocksAether.hellfirestone_brick_decorative, 1, BlockHellfirestoneDecorative.KEYSTONE.getMeta()), - new ItemStack(BlocksAether.hellfirestone_pillar, 1) - ); - - MasonryRecipes.instance().addMasonry(BlocksAether.faded_holystone_brick, - new ItemStack(BlocksAether.faded_holystone_brick_decorative, 1, BlockFadedHolystoneDecorative.BASE_BRICKS.getMeta()), - new ItemStack(BlocksAether.faded_holystone_brick_decorative, 1, BlockFadedHolystoneDecorative.BASE_PILLAR.getMeta()), - new ItemStack(BlocksAether.faded_holystone_brick_decorative, 1, BlockFadedHolystoneDecorative.CAPSTONE_BRICKS.getMeta()), - new ItemStack(BlocksAether.faded_holystone_brick_decorative, 1, BlockFadedHolystoneDecorative.CAPSTONE_PILLAR.getMeta()), - new ItemStack(BlocksAether.faded_holystone_brick_decorative, 1, BlockFadedHolystoneDecorative.FLAGSTONES.getMeta()), - new ItemStack(BlocksAether.faded_holystone_brick_decorative, 1, BlockFadedHolystoneDecorative.HEADSTONE.getMeta()), - new ItemStack(BlocksAether.faded_holystone_brick_decorative, 1, BlockFadedHolystoneDecorative.KEYSTONE.getMeta()), - new ItemStack(BlocksAether.faded_holystone_pillar, 1) - ); - - MasonryRecipes.instance().addMasonry(BlocksAether.agiosite_brick, - new ItemStack(BlocksAether.agiosite_brick_decorative, 1, BlockAgiositeDecorative.BASE_BRICKS.getMeta()), - new ItemStack(BlocksAether.agiosite_brick_decorative, 1, BlockAgiositeDecorative.BASE_PILLAR.getMeta()), - new ItemStack(BlocksAether.agiosite_brick_decorative, 1, BlockAgiositeDecorative.CAPSTONE_BRICKS.getMeta()), - new ItemStack(BlocksAether.agiosite_brick_decorative, 1, BlockAgiositeDecorative.CAPSTONE_PILLAR.getMeta()), - new ItemStack(BlocksAether.agiosite_brick_decorative, 1, BlockAgiositeDecorative.FLAGSTONES.getMeta()), - new ItemStack(BlocksAether.agiosite_brick_decorative, 1, BlockAgiositeDecorative.KEYSTONE.getMeta()), - new ItemStack(BlocksAether.agiosite_pillar, 1) - ); - - MasonryRecipes.instance().addMasonry(BlocksAether.icestone_bricks, - new ItemStack(BlocksAether.icestone_bricks_decorative, 1, BlockAgiositeDecorative.BASE_BRICKS.getMeta()), - new ItemStack(BlocksAether.icestone_bricks_decorative, 1, BlockAgiositeDecorative.BASE_PILLAR.getMeta()), - new ItemStack(BlocksAether.icestone_bricks_decorative, 1, BlockAgiositeDecorative.CAPSTONE_BRICKS.getMeta()), - new ItemStack(BlocksAether.icestone_bricks_decorative, 1, BlockAgiositeDecorative.CAPSTONE_PILLAR.getMeta()), - new ItemStack(BlocksAether.icestone_bricks_decorative, 1, BlockAgiositeDecorative.FLAGSTONES.getMeta()), - new ItemStack(BlocksAether.icestone_bricks_decorative, 1, BlockAgiositeDecorative.KEYSTONE.getMeta()), - new ItemStack(BlocksAether.icestone_pillar, 1) - ); - - MasonryRecipes.instance().addMasonry(BlocksAether.skyroot_planks, - new ItemStack(BlocksAether.skyroot_decorative, 1, BlockSkyrootDecorative.BASE_PLANKS.getMeta()), - new ItemStack(BlocksAether.skyroot_decorative, 1, BlockSkyrootDecorative.BASE_BEAM.getMeta()), - new ItemStack(BlocksAether.skyroot_decorative, 1, BlockSkyrootDecorative.TOP_PLANKS.getMeta()), - new ItemStack(BlocksAether.skyroot_decorative, 1, BlockSkyrootDecorative.TOP_BEAM.getMeta()), - new ItemStack(BlocksAether.skyroot_decorative, 1, BlockSkyrootDecorative.FLOORBOARDS.getMeta()), - new ItemStack(BlocksAether.skyroot_decorative, 1, BlockSkyrootDecorative.HIGHLIGHT.getMeta()), - new ItemStack(BlocksAether.skyroot_decorative, 1, BlockSkyrootDecorative.TILES.getMeta()), - new ItemStack(BlocksAether.skyroot_decorative, 1, BlockSkyrootDecorative.TILES_SMALL.getMeta()), - new ItemStack(BlocksAether.skyroot_beam, 1) - ); - - MasonryRecipes.instance().addMasonry(BlocksAether.light_skyroot_planks, - new ItemStack(BlocksAether.light_skyroot_decorative, 1, BlockSkyrootDecorative.BASE_PLANKS.getMeta()), - new ItemStack(BlocksAether.light_skyroot_decorative, 1, BlockSkyrootDecorative.BASE_BEAM.getMeta()), - new ItemStack(BlocksAether.light_skyroot_decorative, 1, BlockSkyrootDecorative.TOP_PLANKS.getMeta()), - new ItemStack(BlocksAether.light_skyroot_decorative, 1, BlockSkyrootDecorative.TOP_BEAM.getMeta()), - new ItemStack(BlocksAether.light_skyroot_decorative, 1, BlockSkyrootDecorative.FLOORBOARDS.getMeta()), - new ItemStack(BlocksAether.light_skyroot_decorative, 1, BlockSkyrootDecorative.HIGHLIGHT.getMeta()), - new ItemStack(BlocksAether.light_skyroot_decorative, 1, BlockSkyrootDecorative.TILES.getMeta()), - new ItemStack(BlocksAether.light_skyroot_decorative, 1, BlockSkyrootDecorative.TILES_SMALL.getMeta()), - new ItemStack(BlocksAether.light_skyroot_beam, 1) - ); - - MasonryRecipes.instance().addMasonry(BlocksAether.dark_skyroot_planks, - new ItemStack(BlocksAether.dark_skyroot_decorative, 1, BlockSkyrootDecorative.BASE_PLANKS.getMeta()), - new ItemStack(BlocksAether.dark_skyroot_decorative, 1, BlockSkyrootDecorative.BASE_BEAM.getMeta()), - new ItemStack(BlocksAether.dark_skyroot_decorative, 1, BlockSkyrootDecorative.TOP_PLANKS.getMeta()), - new ItemStack(BlocksAether.dark_skyroot_decorative, 1, BlockSkyrootDecorative.TOP_BEAM.getMeta()), - new ItemStack(BlocksAether.dark_skyroot_decorative, 1, BlockSkyrootDecorative.FLOORBOARDS.getMeta()), - new ItemStack(BlocksAether.dark_skyroot_decorative, 1, BlockSkyrootDecorative.HIGHLIGHT.getMeta()), - new ItemStack(BlocksAether.dark_skyroot_decorative, 1, BlockSkyrootDecorative.TILES.getMeta()), - new ItemStack(BlocksAether.dark_skyroot_decorative, 1, BlockSkyrootDecorative.TILES_SMALL.getMeta()), - new ItemStack(BlocksAether.dark_skyroot_beam, 1) - ); - - MasonryRecipes.instance().addMasonry(BlocksAether.therawood_planks, - new ItemStack(BlocksAether.therawood_decorative, 1, BlockTherawoodDecorative.BASE_PLANKS.getMeta()), - new ItemStack(BlocksAether.therawood_decorative, 1, BlockTherawoodDecorative.BASE_BEAM.getMeta()), - new ItemStack(BlocksAether.therawood_decorative, 1, BlockTherawoodDecorative.TOP_PLANKS.getMeta()), - new ItemStack(BlocksAether.therawood_decorative, 1, BlockTherawoodDecorative.TOP_BEAM.getMeta()), - new ItemStack(BlocksAether.therawood_decorative, 1, BlockTherawoodDecorative.FLOORBOARDS.getMeta()), - new ItemStack(BlocksAether.therawood_decorative, 1, BlockTherawoodDecorative.HIGHLIGHT.getMeta()), - new ItemStack(BlocksAether.therawood_beam, 1) - ); - - MasonryRecipes.instance().addMasonry(BlocksAether.quicksoil_glass, - new ItemStack(BlocksAether.quicksoil_glass_decorative, 1, BlockQuicksoilGlassDecorative.SKYROOT_FRAME.getMeta()), - new ItemStack(BlocksAether.quicksoil_glass_decorative, 1, BlockQuicksoilGlassDecorative.ARKENIUM_FRAME.getMeta()) - ); - - MasonryRecipes.instance().addMasonry(BlocksAether.scatterglass, - new ItemStack(BlocksAether.scatterglass_decorative, 1, BlockRockGlassDecorative.SKYROOT_FRAME.getMeta()), - new ItemStack(BlocksAether.scatterglass_decorative, 1, BlockRockGlassDecorative.ARKENIUM_FRAME.getMeta()) - ); - - MasonryRecipes.instance().addMasonry(BlocksAether.crude_scatterglass, - new ItemStack(BlocksAether.crude_scatterglass_decorative, 1, BlockRockGlassDecorative.SKYROOT_FRAME.getMeta()), - new ItemStack(BlocksAether.crude_scatterglass_decorative, 1, BlockRockGlassDecorative.ARKENIUM_FRAME.getMeta()) - ); - - MasonryRecipes.instance().addMasonry(BlocksAether.quicksoil_glass_pane, - new ItemStack(BlocksAether.quicksoil_glass_pane_decorative, 1, BlockQuicksoilGlassPaneDecorative.SKYROOT_FRAME.getMeta()), - new ItemStack(BlocksAether.quicksoil_glass_pane_decorative, 1, BlockQuicksoilGlassPaneDecorative.ARKENIUM_FRAME.getMeta()) - ); - - MasonryRecipes.instance().addMasonry(BlocksAether.scatterglass_pane, - new ItemStack(BlocksAether.scatterglass_pane_decorative, 1, BlockRockGlassPaneDecorative.SKYROOT_FRAME.getMeta()), - new ItemStack(BlocksAether.scatterglass_pane_decorative, 1, BlockRockGlassPaneDecorative.ARKENIUM_FRAME.getMeta()) - ); - - MasonryRecipes.instance().addMasonry(BlocksAether.crude_scatterglass_pane, - new ItemStack(BlocksAether.crude_scatterglass_pane_decorative, 1, BlockRockGlassPaneDecorative.SKYROOT_FRAME.getMeta()), - new ItemStack(BlocksAether.crude_scatterglass_pane_decorative, 1, BlockRockGlassPaneDecorative.ARKENIUM_FRAME.getMeta()) - ); - - MasonryRecipes.instance().addMasonry(BlocksAether.therastone_brick, - new ItemStack(BlocksAether.therastone_brick_decorative, 1, BlockTherastoneDecorative.BASE_BRICKS.getMeta()), - new ItemStack(BlocksAether.therastone_brick_decorative, 1, BlockTherastoneDecorative.BASE_PILLAR.getMeta()), - new ItemStack(BlocksAether.therastone_brick_decorative, 1, BlockTherastoneDecorative.CAPSTONE_BRICKS.getMeta()), - new ItemStack(BlocksAether.therastone_brick_decorative, 1, BlockTherastoneDecorative.CAPSTONE_PILLAR.getMeta()), - new ItemStack(BlocksAether.therastone_brick_decorative, 1, BlockTherastoneDecorative.FLAGSTONES.getMeta()), - new ItemStack(BlocksAether.therastone_brick_decorative, 1, BlockTherastoneDecorative.KEYSTONE.getMeta()), - new ItemStack(BlocksAether.therastone_pillar, 1) - ); - - MasonryRecipes.instance().addMasonryItem(ItemsAether.skyroot_door_item, - new ItemStack(ItemsAether.secret_skyroot_door_item, 1) - ); - - MasonryRecipes.instance().addMasonry(BlocksAether.skyroot_trapdoor, - new ItemStack(BlocksAether.secret_skyroot_trapdoor, 1) - ); - } - - @SuppressWarnings("unchecked") - private static void registerCoolerRecipes() - { - CoolerRecipes.instance().addCoolingFromItem(ItemsAether.irradiated_chunk, Item.getItemFromBlock(Blocks.AIR), new ItemStack(ItemsAether.irradiated_dust), - MapGen.genMap(new ItemStack(ItemsAether.aerwhale_music_disc), 20), - MapGen.genMap(new ItemStack(ItemsAether.moa_music_disc), 20), - MapGen.genMap(new ItemStack(ItemsAether.labyrinth_music_disc), 20), - MapGen.genMap(new ItemStack(ItemsAether.valkyrie_music_disc), 20), - MapGen.genMap(new ItemStack(ItemsAether.recording_892), 20)); - - CoolerRecipes.instance().addCoolingFromItem(ItemsAether.irradiated_armor, Item.getItemFromBlock(Blocks.AIR), new ItemStack(ItemsAether.irradiated_dust), - MapGen.genMap(new ItemStack(ItemsAether.irradiated_dust), 100)); - - CoolerRecipes.instance().addCoolingFromItem(ItemsAether.irradiated_charm, Item.getItemFromBlock(Blocks.AIR), new ItemStack(ItemsAether.irradiated_dust), - MapGen.genMap(new ItemStack(ItemsAether.irradiated_dust), 30), - //MapGen.genMap(new ItemStack(ItemsAether.charm_arm_01), 20), - //MapGen.genMap(new ItemStack(ItemsAether.charm_arm_02), 5), - //MapGen.genMap(new ItemStack(ItemsAether.charm_arm_tgh_01), 20), - //MapGen.genMap(new ItemStack(ItemsAether.charm_arm_tgh_02), 5), - //MapGen.genMap(new ItemStack(ItemsAether.charm_atk_spd_01), 20), - //MapGen.genMap(new ItemStack(ItemsAether.charm_atk_spd_02), 5), - //MapGen.genMap(new ItemStack(ItemsAether.charm_imp_dmg_01), 20), - //MapGen.genMap(new ItemStack(ItemsAether.charm_imp_dmg_02), 5), - //MapGen.genMap(new ItemStack(ItemsAether.charm_kbk_res_01), 20), - //MapGen.genMap(new ItemStack(ItemsAether.charm_kbk_res_02), 5), - //MapGen.genMap(new ItemStack(ItemsAether.charm_lck_01), 20), - //MapGen.genMap(new ItemStack(ItemsAether.charm_lck_02), 5), - MapGen.genMap(new ItemStack(ItemsAether.charm_max_hlt_01), 20), - //MapGen.genMap(new ItemStack(ItemsAether.charm_max_hlt_02), 5), - MapGen.genMap(new ItemStack(ItemsAether.charm_mve_spd_01), 20), - MapGen.genMap(new ItemStack(ItemsAether.charm_mve_spd_02), 5), - //MapGen.genMap(new ItemStack(ItemsAether.charm_prc_dmg_01), 20), - //MapGen.genMap(new ItemStack(ItemsAether.charm_prc_dmg_02), 5), - MapGen.genMap(new ItemStack(ItemsAether.charm_res_amb_01), 20), - MapGen.genMap(new ItemStack(ItemsAether.charm_res_amb_02), 5), - MapGen.genMap(new ItemStack(ItemsAether.charm_res_bld_01), 20), - MapGen.genMap(new ItemStack(ItemsAether.charm_res_bld_02), 5), - MapGen.genMap(new ItemStack(ItemsAether.charm_res_fra_01), 20), - MapGen.genMap(new ItemStack(ItemsAether.charm_res_fra_02), 5), - MapGen.genMap(new ItemStack(ItemsAether.charm_res_frz_01), 20), - MapGen.genMap(new ItemStack(ItemsAether.charm_res_frz_02), 5), - MapGen.genMap(new ItemStack(ItemsAether.charm_res_grd_brk_01), 20), - MapGen.genMap(new ItemStack(ItemsAether.charm_res_grd_brk_02), 5), - MapGen.genMap(new ItemStack(ItemsAether.charm_res_irr_01), 20), - MapGen.genMap(new ItemStack(ItemsAether.charm_res_irr_02), 5), - MapGen.genMap(new ItemStack(ItemsAether.charm_res_stn_01), 20), - MapGen.genMap(new ItemStack(ItemsAether.charm_res_stn_02), 5), - MapGen.genMap(new ItemStack(ItemsAether.charm_res_tox_01), 20), - MapGen.genMap(new ItemStack(ItemsAether.charm_res_tox_02), 5), - MapGen.genMap(new ItemStack(ItemsAether.charm_res_ven_01), 20), - MapGen.genMap(new ItemStack(ItemsAether.charm_res_ven_02), 5), - MapGen.genMap(new ItemStack(ItemsAether.charm_res_web_01), 20), - MapGen.genMap(new ItemStack(ItemsAether.charm_res_web_02), 5)); - //MapGen.genMap(new ItemStack(ItemsAether.charm_slsh_dmg_01), 20), - //MapGen.genMap(new ItemStack(ItemsAether.charm_slsh_dmg_02), 5)); - - - CoolerRecipes.instance().addCoolingFromItem(ItemsAether.irradiated_neckwear, Item.getItemFromBlock(Blocks.AIR), new ItemStack(ItemsAether.irradiated_dust), - MapGen.genMap(new ItemStack(ItemsAether.irradiated_dust), 100)); - - CoolerRecipes.instance().addCoolingFromItem(ItemsAether.irradiated_ring, Item.getItemFromBlock(Blocks.AIR), new ItemStack(ItemsAether.irradiated_dust), - MapGen.genMap(new ItemStack(ItemsAether.irradiated_dust), 100)); - - CoolerRecipes.instance().addCoolingFromItem(ItemsAether.irradiated_sword, Item.getItemFromBlock(Blocks.AIR), new ItemStack(ItemsAether.irradiated_dust), - MapGen.genMap(new ItemStack(ItemsAether.irradiated_dust), 100)); - - CoolerRecipes.instance().addCoolingFromItem(ItemsAether.irradiated_tool, Item.getItemFromBlock(Blocks.AIR), new ItemStack(ItemsAether.irradiated_dust), - MapGen.genMap(new ItemStack(ItemsAether.irradiated_dust), 100)); - - CoolerRecipes.instance().addCoolingFromItem(ItemsAether.skyroot_bucket, Item.getItemFromBlock(BlocksAether.aercloud), null, - MapGen.genMap(new ItemStack(ItemsAether.skyroot_water_bucket), 100)); - - CoolerRecipes.instance().addCoolingFromItem(ItemsAether.water_vial, ItemsAether.valkyrie_wings, null, - MapGen.genMap(new ItemStack(ItemsAether.valkyrie_tea), 100)); - - CoolerRecipes.instance().addCoolingFromItem(ItemsAether.skyroot_water_bucket, Item.getItemFromBlock(Blocks.AIR), new ItemStack(ItemsAether.skyroot_bucket), - MapGen.genMap(new ItemStack(BlocksAether.highlands_ice), 100)); - } - - private static void addMasonry(ItemStack result, Object... required) - { - AetherAPI.content().masonry().registerRecipe(new SimpleRecipe(result, required)); - } - - private static void registerSmeltingRecipe(final ItemStack input, final ItemStack output, final float xp) - { - GameRegistry.addSmelting(input, output, xp); - } - - public static void bakeRecipes() - { - AetherCore.PROXY.content().masonry().finalizeRecipes(); - } -} diff --git a/src/main/java/com/gildedgames/aether/common/init/SoundsAetherInit.java b/src/main/java/com/gildedgames/aether/common/init/SoundsAetherInit.java deleted file mode 100644 index fe3ea4aa1c..0000000000 --- a/src/main/java/com/gildedgames/aether/common/init/SoundsAetherInit.java +++ /dev/null @@ -1,98 +0,0 @@ -package com.gildedgames.aether.common.init; - -import com.gildedgames.aether.common.AetherCore; -import net.minecraft.util.SoundEvent; -import net.minecraftforge.event.RegistryEvent; -import net.minecraftforge.fml.common.Mod; -import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; -import net.minecraftforge.registries.IForgeRegistry; - -@Mod.EventBusSubscriber -public class SoundsAetherInit -{ - @SubscribeEvent - public static void onRegisterSounds(final RegistryEvent.Register<SoundEvent> event) - { - final SoundRegistryHelper r = new SoundRegistryHelper(event.getRegistry()); - - r.register("portal.glowstone.hum", new SoundEvent(AetherCore.getResource("portal.glowstone.hum"))); - r.register("portal.glowstone.trigger", new SoundEvent(AetherCore.getResource("portal.glowstone.trigger"))); - r.register("portal.glowstone.travel", new SoundEvent(AetherCore.getResource("portal.glowstone.travel"))); - - r.register("portal.labyrinth_totem.drone", new SoundEvent(AetherCore.getResource("portal.labyrinth_totem.drone"))); - - r.register("block.aercloud.bounce", new SoundEvent(AetherCore.getResource("block.aercloud.bounce"))); - - r.register("mob.aerbunny.ambient", new SoundEvent(AetherCore.getResource("mob.aerbunny.ambient"))); - r.register("mob.aerbunny.hurt", new SoundEvent(AetherCore.getResource("mob.aerbunny.hurt"))); - r.register("mob.aerbunny.death", new SoundEvent(AetherCore.getResource("mob.aerbunny.death"))); - r.register("mob.aerbunny.lift", new SoundEvent(AetherCore.getResource("mob.aerbunny.lift"))); - - r.register("mob.aerwhale.ambient", new SoundEvent(AetherCore.getResource("mob.aerwhale.ambient"))); - r.register("mob.aerwhale.death", new SoundEvent(AetherCore.getResource("mob.aerwhale.death"))); - - r.register("mob.cockatrice.ambient", new SoundEvent(AetherCore.getResource("mob.cockatrice.ambient"))); - r.register("mob.cockatrice.hurt", new SoundEvent(AetherCore.getResource("mob.cockatrice.hurt"))); - r.register("mob.cockatrice.death", new SoundEvent(AetherCore.getResource("mob.cockatrice.death"))); - - r.register("mob.tempest.ambient", new SoundEvent(AetherCore.getResource("mob.tempest.ambient"))); - r.register("mob.tempest.hurt", new SoundEvent(AetherCore.getResource("mob.tempest.hurt"))); - r.register("mob.tempest.death", new SoundEvent(AetherCore.getResource("mob.tempest.death"))); - r.register("mob.tempest.angry", new SoundEvent(AetherCore.getResource("mob.tempest.angry"))); - r.register("mob.tempest.electric_shock", new SoundEvent(AetherCore.getResource("mob.tempest.electric_shock"))); - - r.register("mob.zephyr.ambient", new SoundEvent(AetherCore.getResource("mob.zephyr.ambient"))); - r.register("mob.zephyr.puff", new SoundEvent(AetherCore.getResource("mob.zephyr.puff"))); - - r.register("record.aerwhale", new SoundEvent(AetherCore.getResource("records.aerwhale"))); - r.register("record.labyrinth", new SoundEvent(AetherCore.getResource("records.labyrinth"))); - r.register("record.moa", new SoundEvent(AetherCore.getResource("records.moa"))); - r.register("record.recording_892", new SoundEvent(AetherCore.getResource("records.recording_892"))); - r.register("record.valkyrie", new SoundEvent(AetherCore.getResource("records.valkyrie"))); - - r.register("random.dart_shooter.fire", new SoundEvent(AetherCore.getResource("random.dart_shooter.fire"))); - - r.register("mob.moa.ambient", new SoundEvent(AetherCore.getResource("mob.moa.ambient"))); - r.register("mob.moa.hurt", new SoundEvent(AetherCore.getResource("mob.moa.hurt"))); - - r.register("random.present_unwrap", new SoundEvent(AetherCore.getResource("random.present_unwrap"))); - r.register("random.dungeon.container.smash", new SoundEvent(AetherCore.getResource("random.dungeon.container.smash"))); - - r.register("mob.generic.wings.flap", new SoundEvent(AetherCore.getResource("mob.generic.wings.flap"))); - - r.register("mob.kirrid.ambient", new SoundEvent(AetherCore.getResource("mob.kirrid.ambient"))); - r.register("mob.kirrid.hurt", new SoundEvent(AetherCore.getResource("mob.kirrid.hurt"))); - r.register("mob.kirrid.death", new SoundEvent(AetherCore.getResource("mob.kirrid.death"))); - - r.register("mob.taegore.ambient", new SoundEvent(AetherCore.getResource("mob.taegore.ambient"))); - r.register("mob.taegore.hurt", new SoundEvent(AetherCore.getResource("mob.taegore.hurt"))); - r.register("mob.taegore.death", new SoundEvent(AetherCore.getResource("mob.taegore.death"))); - r.register("mob.taegore.attack", new SoundEvent(AetherCore.getResource("mob.taegore.attack"))); - - r.register("mob.burrukai.ambient", new SoundEvent(AetherCore.getResource("mob.burrukai.ambient"))); - r.register("mob.burrukai.hurt", new SoundEvent(AetherCore.getResource("mob.burrukai.hurt"))); - r.register("mob.burrukai.death", new SoundEvent(AetherCore.getResource("mob.burrukai.death"))); - r.register("mob.burrukai.attack", new SoundEvent(AetherCore.getResource("mob.burrukai.attack"))); - - r.register("environment.rain.light", new SoundEvent(AetherCore.getResource("environment.rain.light"))); - r.register("environment.rain.heavy", new SoundEvent(AetherCore.getResource("environment.rain.heavy"))); - r.register("environment.snow.wind", new SoundEvent(AetherCore.getResource("environment.snow.wind"))); - } - - private static class SoundRegistryHelper - { - private final IForgeRegistry<SoundEvent> registry; - - SoundRegistryHelper(final IForgeRegistry<SoundEvent> registry) - { - this.registry = registry; - } - - private void register(final String registryName, final SoundEvent soundEvent) - { - soundEvent.setRegistryName(AetherCore.MOD_ID, registryName); - this.registry.register(soundEvent); - } - } - -} diff --git a/src/main/java/com/gildedgames/aether/common/init/TemplatesAether.java b/src/main/java/com/gildedgames/aether/common/init/TemplatesAether.java deleted file mode 100644 index 24a21415e6..0000000000 --- a/src/main/java/com/gildedgames/aether/common/init/TemplatesAether.java +++ /dev/null @@ -1,105 +0,0 @@ -package com.gildedgames.aether.common.init; - -import com.gildedgames.aether.common.AetherCore; -import net.minecraft.util.ResourceLocation; -import net.minecraft.util.datafix.DataFixesManager; -import net.minecraft.world.gen.structure.template.Template; -import net.minecraft.world.gen.structure.template.TemplateManager; - -public class TemplatesAether -{ - private static final TemplateManager MANAGER = new TemplateManager("structures", DataFixesManager.createFixer()); - - public static Template blue_skyroot_tree_1, blue_skyroot_tree_2, blue_skyroot_tree_3; - - public static Template green_skyroot_tree_1, green_skyroot_tree_2, green_skyroot_tree_3; - - public static Template green_skyroot_oak_1, green_skyroot_oak_2; - - public static Template golden_oak_1, golden_oak_2; - - public static Template green_skyroot_windswept_1, green_skyroot_windswept_2, green_skyroot_windswept_3, green_skyroot_windswept_4, green_skyroot_windswept_5, green_skyroot_windswept_6, green_skyroot_windswept_7; - - public static Template dark_blue_skyroot_tree_1, dark_blue_skyroot_tree_2, dark_blue_skyroot_tree_3; - - public static Template dark_blue_skyroot_oak_1, dark_blue_skyroot_oak_2; - - public static Template large_green_skyroot_pine_1, large_green_skyroot_pine_2; - - public static Template green_skyroot_pine_1, green_skyroot_pine_2, green_skyroot_pine_3, green_skyroot_pine_4, green_skyroot_pine_5; - - public static Template skyroot_moa_nest_tree_1, skyroot_moa_nest_1, skyroot_moa_nest_2; - - public static Template aether_portal; - - public static Template mysterious_henge, outpost_a, outpost_b, outpost_c; - - private TemplatesAether() - { - - } - - public static void init() - { - blue_skyroot_tree_1 = registerTemplate("highlands/trees/normal/blue/blue_skyroot_tree_1"); - blue_skyroot_tree_2 = registerTemplate("highlands/trees/normal/blue/blue_skyroot_tree_2"); - blue_skyroot_tree_3 = registerTemplate("highlands/trees/normal/blue/blue_skyroot_tree_3"); - - green_skyroot_tree_1 = registerTemplate("highlands/trees/normal/green/green_skyroot_tree_1"); - green_skyroot_tree_2 = registerTemplate("highlands/trees/normal/green/green_skyroot_tree_2"); - green_skyroot_tree_3 = registerTemplate("highlands/trees/normal/green/green_skyroot_tree_3"); - - green_skyroot_oak_1 = registerTemplate("highlands/trees/oak/green/green_skyroot_oak_1"); - green_skyroot_oak_2 = registerTemplate("highlands/trees/oak/green/green_skyroot_oak_2"); - - golden_oak_1 = registerTemplate("highlands/trees/oak/golden/golden_oak_1"); - golden_oak_2 = registerTemplate("highlands/trees/oak/golden/golden_oak_2"); - - green_skyroot_windswept_1 = registerTemplate("highlands/trees/windswept/green/green_skyroot_windswept_1"); - green_skyroot_windswept_2 = registerTemplate("highlands/trees/windswept/green/green_skyroot_windswept_2"); - green_skyroot_windswept_3 = registerTemplate("highlands/trees/windswept/green/green_skyroot_windswept_3"); - green_skyroot_windswept_4 = registerTemplate("highlands/trees/windswept/green/green_skyroot_windswept_4"); - green_skyroot_windswept_5 = registerTemplate("highlands/trees/windswept/green/green_skyroot_windswept_5"); - green_skyroot_windswept_6 = registerTemplate("highlands/trees/windswept/green/green_skyroot_windswept_6"); - green_skyroot_windswept_7 = registerTemplate("highlands/trees/windswept/green/green_skyroot_windswept_7"); - - skyroot_moa_nest_tree_1 = registerTemplate("moa_nest/skyroot_moa_nest_tree_1"); - skyroot_moa_nest_1 = registerTemplate("moa_nest/skyroot_moa_nest_1"); - skyroot_moa_nest_2 = registerTemplate("moa_nest/skyroot_moa_nest_2"); - - large_green_skyroot_pine_1 = registerTemplate("highlands/trees/pine/green/large_green_skyroot_pine_1"); - large_green_skyroot_pine_2 = registerTemplate("highlands/trees/pine/green/large_green_skyroot_pine_2"); - - green_skyroot_pine_1 = registerTemplate("highlands/trees/pine/green/green_skyroot_pine_1"); - green_skyroot_pine_2 = registerTemplate("highlands/trees/pine/green/green_skyroot_pine_2"); - green_skyroot_pine_3 = registerTemplate("highlands/trees/pine/green/green_skyroot_pine_3"); - green_skyroot_pine_4 = registerTemplate("highlands/trees/pine/green/green_skyroot_pine_4"); - green_skyroot_pine_5 = registerTemplate("highlands/trees/pine/green/green_skyroot_pine_5"); - - dark_blue_skyroot_tree_1 = registerTemplate("highlands/trees/normal/dark_blue/dark_blue_skyroot_tree_1"); - dark_blue_skyroot_tree_2 = registerTemplate("highlands/trees/normal/dark_blue/dark_blue_skyroot_tree_2"); - dark_blue_skyroot_tree_3 = registerTemplate("highlands/trees/normal/dark_blue/dark_blue_skyroot_tree_3"); - - dark_blue_skyroot_oak_1 = registerTemplate("highlands/trees/oak/dark_blue/dark_blue_skyroot_oak_1"); - dark_blue_skyroot_oak_2 = registerTemplate("highlands/trees/oak/dark_blue/dark_blue_skyroot_oak_2"); - - aether_portal = registerTemplate("aether_portal"); - - mysterious_henge = registerTemplate("mysterious_henge"); - - outpost_a = registerTemplate("outpost_a"); - outpost_b = registerTemplate("outpost_b"); - outpost_c = registerTemplate("outpost_c"); - } - - private static Template registerTemplate(final String resource) - { - return registerTemplate(AetherCore.getResource(resource)); - } - - public static Template registerTemplate(final ResourceLocation resourceLocation) - { - return TemplatesAether.MANAGER.getTemplate(null, resourceLocation); - } - -} diff --git a/src/main/java/com/gildedgames/aether/common/init/TileEntitiesAether.java b/src/main/java/com/gildedgames/aether/common/init/TileEntitiesAether.java deleted file mode 100644 index 11db2f7549..0000000000 --- a/src/main/java/com/gildedgames/aether/common/init/TileEntitiesAether.java +++ /dev/null @@ -1,44 +0,0 @@ -package com.gildedgames.aether.common.init; - -import com.gildedgames.aether.common.entities.tiles.*; -import com.gildedgames.aether.common.entities.tiles.multiblock.TileEntityMultiblockDummy; -import net.minecraftforge.fml.common.registry.GameRegistry; - -public class TileEntitiesAether -{ - - public static final String - ALTAR_ID = "aether.altar", - HOLYSTONE_FURNACE_ID = "aether.holystone_furnace", - SKYROOT_CHEST_ID = "aether.skyroot_chest", - SKYROOT_SIGN_ID = "aether.skyroot_sign", - MULTIBLOCK_DUMMY = "aether.multiblock_dummy", - MOA_EGG_ID = "aether.moa_egg", - ICESTONE_COOLER_ID = "aether.icestone_cooler", - INCUBATOR_ID = "aether.incubator", - PRESENT_ID = "aether.present", - WILDCARD_ID = "aether.wildcard", - MASONRY_BENCH_ID = "aether.masonry_bench", - OUTPOST_CAMPFIRE_ID = "aether.outpost_campfire", - TELEPORTER_ID = "aether.aether_teleporter", - SKYROOT_BED_ID = "aether.skyroot_bed"; - - public static void preInit() - { - GameRegistry.registerTileEntity(TileEntityAltar.class, ALTAR_ID); - GameRegistry.registerTileEntity(TileEntityHolystoneFurnace.class, HOLYSTONE_FURNACE_ID); - GameRegistry.registerTileEntity(TileEntitySkyrootChest.class, SKYROOT_CHEST_ID); - GameRegistry.registerTileEntity(TileEntitySkyrootSign.class, SKYROOT_SIGN_ID); - GameRegistry.registerTileEntity(TileEntityMultiblockDummy.class, MULTIBLOCK_DUMMY); - GameRegistry.registerTileEntity(TileEntityMoaEgg.class, MOA_EGG_ID); - GameRegistry.registerTileEntity(TileEntityIcestoneCooler.class, ICESTONE_COOLER_ID); - GameRegistry.registerTileEntity(TileEntityIncubator.class, INCUBATOR_ID); - GameRegistry.registerTileEntity(TileEntityPresent.class, PRESENT_ID); - GameRegistry.registerTileEntity(TileEntityWildcard.class, WILDCARD_ID); - GameRegistry.registerTileEntity(TileEntityMasonryBench.class, MASONRY_BENCH_ID); - GameRegistry.registerTileEntity(TileEntityOutpostCampfire.class, OUTPOST_CAMPFIRE_ID); - GameRegistry.registerTileEntity(TileEntityTeleporter.class, TELEPORTER_ID); - GameRegistry.registerTileEntity(TileEntitySkyrootBed.class, SKYROOT_BED_ID); - } - -} diff --git a/src/main/java/com/gildedgames/aether/common/items/IDropOnDeath.java b/src/main/java/com/gildedgames/aether/common/items/IDropOnDeath.java deleted file mode 100644 index f52db30d23..0000000000 --- a/src/main/java/com/gildedgames/aether/common/items/IDropOnDeath.java +++ /dev/null @@ -1,8 +0,0 @@ -package com.gildedgames.aether.common.items; - -/** - * Drops this item type on death in the Aether. - */ -public interface IDropOnDeath -{ -} diff --git a/src/main/java/com/gildedgames/aether/common/items/IUsesCustomSound.java b/src/main/java/com/gildedgames/aether/common/items/IUsesCustomSound.java deleted file mode 100644 index 28261b3b3f..0000000000 --- a/src/main/java/com/gildedgames/aether/common/items/IUsesCustomSound.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.gildedgames.aether.common.items; - -import net.minecraft.item.ItemStack; -import net.minecraft.util.SoundEvent; - -public interface IUsesCustomSound -{ - boolean usesCustomSound(ItemStack stack); - - SoundEvent getDefaultSound(); - - SoundEvent getCustomSound(); -} diff --git a/src/main/java/com/gildedgames/aether/common/items/InformationProvider.java b/src/main/java/com/gildedgames/aether/common/items/InformationProvider.java deleted file mode 100644 index dc882f0a69..0000000000 --- a/src/main/java/com/gildedgames/aether/common/items/InformationProvider.java +++ /dev/null @@ -1,15 +0,0 @@ -package com.gildedgames.aether.common.items; - -import net.minecraft.client.util.ITooltipFlag; -import net.minecraft.item.ItemStack; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; - -import java.util.List; - -public interface InformationProvider -{ - @SideOnly(Side.CLIENT) - void addInformation(ItemStack stack, List<String> tooltip, ITooltipFlag flag); - -} diff --git a/src/main/java/com/gildedgames/aether/common/items/ItemAbilityType.java b/src/main/java/com/gildedgames/aether/common/items/ItemAbilityType.java deleted file mode 100644 index 3942a79b2e..0000000000 --- a/src/main/java/com/gildedgames/aether/common/items/ItemAbilityType.java +++ /dev/null @@ -1,18 +0,0 @@ -package com.gildedgames.aether.common.items; - -public enum ItemAbilityType -{ - /** The item doesn't have any abilities. */ - NONE, - - /** The item has an ability, but doesn't require a special button. */ - PASSIVE, - - /** The item has an ability, but requires a special button. */ - ACTIVE; - - public boolean isPassive() - { - return this != ItemAbilityType.ACTIVE; - } -} diff --git a/src/main/java/com/gildedgames/aether/common/items/ItemDropOnDeath.java b/src/main/java/com/gildedgames/aether/common/items/ItemDropOnDeath.java deleted file mode 100644 index e3001fb278..0000000000 --- a/src/main/java/com/gildedgames/aether/common/items/ItemDropOnDeath.java +++ /dev/null @@ -1,7 +0,0 @@ -package com.gildedgames.aether.common.items; - -import net.minecraft.item.Item; - -public class ItemDropOnDeath extends Item implements IDropOnDeath -{ -} diff --git a/src/main/java/com/gildedgames/aether/common/items/accessories/ItemAccessory.java b/src/main/java/com/gildedgames/aether/common/items/accessories/ItemAccessory.java deleted file mode 100644 index 33012492c4..0000000000 --- a/src/main/java/com/gildedgames/aether/common/items/accessories/ItemAccessory.java +++ /dev/null @@ -1,30 +0,0 @@ -package com.gildedgames.aether.common.items.accessories; - -import com.gildedgames.aether.common.entities.effects.IEffectResistanceHolder; -import com.gildedgames.aether.common.entities.effects.StatusEffect; -import net.minecraft.item.Item; - -import java.util.HashMap; -import java.util.Map; - -public class ItemAccessory extends Item implements IEffectResistanceHolder -{ - private Map<StatusEffect, Double> statusEffects = new HashMap<>(); - - public ItemAccessory() - { - this.setMaxStackSize(1); - } - - public ItemAccessory addStatusEffectResistance(StatusEffect effect, double resistance) - { - this.statusEffects.put(effect, resistance); - - return this; - } - - public Map<StatusEffect, Double> getStatusEffects() - { - return this.statusEffects; - } -} diff --git a/src/main/java/com/gildedgames/aether/common/items/accessories/ItemDamageCharm.java b/src/main/java/com/gildedgames/aether/common/items/accessories/ItemDamageCharm.java deleted file mode 100644 index a93bfe11e6..0000000000 --- a/src/main/java/com/gildedgames/aether/common/items/accessories/ItemDamageCharm.java +++ /dev/null @@ -1,123 +0,0 @@ -package com.gildedgames.aether.common.items.accessories; - -import net.minecraft.client.resources.I18n; -import net.minecraft.client.util.ITooltipFlag; -import net.minecraft.item.ItemStack; -import net.minecraft.util.text.TextFormatting; -import net.minecraft.world.World; - -import javax.annotation.Nullable; -import java.util.List; - -public class ItemDamageCharm extends ItemAccessory -{ - private float slashDamageLevel, pierceDamageLevel, impactDamageLevel; - - public ItemDamageCharm() - { - super(); - } - - @Override - public void addInformation(ItemStack stack, @Nullable World worldIn, List<String> tooltip, ITooltipFlag flagIn) - { - if (getSlashDamageLevel() > 0) - { - String slashValue; - - if (getSlashDamageLevel() % 1 == 0) - { - int n = Math.round(getSlashDamageLevel()); - slashValue = String.valueOf(n); - } - else - { - float n = getSlashDamageLevel(); - slashValue = String.valueOf(n); - } - - tooltip.add(String.format(" %s %s", - TextFormatting.BLUE + "+" + slashValue, - String.format("%s %s", - TextFormatting.BLUE + I18n.format("attribute.name.aether.slash"), - TextFormatting.BLUE + I18n.format("attribute.name.aether.damageLevel")))); - } - - if (getPierceDamageLevel() > 0) - { - String pierceValue; - - if (getPierceDamageLevel() % 1 == 0) - { - int n = Math.round(getPierceDamageLevel()); - pierceValue = String.valueOf(n); - } - else - { - float n = getPierceDamageLevel(); - pierceValue = String.valueOf(n); - } - - tooltip.add(String.format(" %s %s", - TextFormatting.BLUE + "+" + pierceValue, - String.format("%s %s", - TextFormatting.BLUE + I18n.format("attribute.name.aether.pierce"), - TextFormatting.BLUE + I18n.format("attribute.name.aether.damageLevel")))); - } - - if (getImpactDamageLevel() > 0) - { - String impactValue; - - if (getImpactDamageLevel() % 1 == 0) - { - int n = Math.round(getImpactDamageLevel()); - impactValue = String.valueOf(n); - } - else - { - float n = getImpactDamageLevel(); - impactValue = String.valueOf(n); - } - - tooltip.add(String.format(" %s %s", - TextFormatting.BLUE + "+" + impactValue, - String.format("%s %s", - TextFormatting.BLUE + I18n.format("attribute.name.aether.impact"), - TextFormatting.BLUE + I18n.format("attribute.name.aether.damageLevel")))); - } - } - - public ItemDamageCharm setSlashDamageLevel(float slashDamageLevel) - { - this.slashDamageLevel = slashDamageLevel; - return this; - } - - public ItemDamageCharm setPierceDamageLevel(float pierceDamageLevel) - { - this.pierceDamageLevel = pierceDamageLevel; - return this; - } - - public ItemDamageCharm setImpactDamageLevel(float impactDamageLevel) - { - this.impactDamageLevel = impactDamageLevel; - return this; - } - - public float getSlashDamageLevel() - { - return this.slashDamageLevel; - } - - public float getPierceDamageLevel() - { - return this.pierceDamageLevel; - } - - public float getImpactDamageLevel() - { - return this.impactDamageLevel; - } -} diff --git a/src/main/java/com/gildedgames/aether/common/items/armor/ItemAetherArmor.java b/src/main/java/com/gildedgames/aether/common/items/armor/ItemAetherArmor.java deleted file mode 100644 index 5442373961..0000000000 --- a/src/main/java/com/gildedgames/aether/common/items/armor/ItemAetherArmor.java +++ /dev/null @@ -1,72 +0,0 @@ -package com.gildedgames.aether.common.items.armor; - -import com.gildedgames.aether.api.entity.effects.IAetherStatusEffects; -import com.gildedgames.aether.common.AetherCore; -import com.gildedgames.aether.common.entities.effects.IEffectResistanceHolder; -import com.gildedgames.aether.common.entities.effects.StatusEffect; -import com.gildedgames.aether.common.init.CreativeTabsAether; -import net.minecraft.entity.Entity; -import net.minecraft.inventory.EntityEquipmentSlot; -import net.minecraft.item.ItemArmor; -import net.minecraft.item.ItemStack; - -import java.util.HashMap; -import java.util.Map; -import java.util.UUID; - -public class ItemAetherArmor extends ItemArmor implements IEffectResistanceHolder -{ - private Map<StatusEffect, Double> statusEffects = new HashMap<>(); - - private static final UUID[] ARMOR_MODIFIERS = new UUID[] { UUID.fromString("a8896424-20ea-4d0a-b0d1-d961dbdcb309"), - UUID.fromString("48712e68-2b7e-4c3e-95ae-dba24d7e9e84"), UUID.fromString("13552bc9-9a27-4b8f-879b-0d7e68417486"), - UUID.fromString("fbaef69d-8d56-43e4-ac35-af3a25b28330") }; - - private final String name; - - public ItemAetherArmor(final ArmorMaterial material, final String name, final EntityEquipmentSlot armorType) - { - super(material, 0, armorType); - - this.name = name; - - this.setCreativeTab(CreativeTabsAether.TAB_ARMOR); - - this.damageReduceAmount = material.getDamageReductionAmount(armorType); - } - - @Override - public boolean getIsRepairable(final ItemStack target, final ItemStack stack) - { - return false; - } - - protected boolean isAbilityPassive() - { - return true; - } - - public float getExtraDamageReduction(final ItemStack stack) - { - return 0.0f; - } - - @Override - public String getArmorTexture(final ItemStack stack, final Entity entity, final EntityEquipmentSlot slot, final String type) - { - return AetherCore.getResourcePath("textures/armor/" + this.name + "_layer_" + (slot == EntityEquipmentSlot.LEGS ? 2 : - 1 + (AetherCore.CONFIG.cutoutHelmets ? "b" : "")) + ".png"); - } - - public ItemAetherArmor addStatusEffectResistance(StatusEffect effect, double resistance) - { - this.statusEffects.put(effect, resistance); - - return this; - } - - public Map<StatusEffect, Double> getStatusEffects() - { - return this.statusEffects; - } -} diff --git a/src/main/java/com/gildedgames/aether/common/items/armor/ItemAetherGloves.java b/src/main/java/com/gildedgames/aether/common/items/armor/ItemAetherGloves.java deleted file mode 100644 index ea22bdab37..0000000000 --- a/src/main/java/com/gildedgames/aether/common/items/armor/ItemAetherGloves.java +++ /dev/null @@ -1,228 +0,0 @@ -package com.gildedgames.aether.common.items.armor; - -import com.gildedgames.aether.common.AetherCore; -import com.gildedgames.aether.common.capabilities.entity.player.PlayerAether; -import com.gildedgames.aether.common.capabilities.entity.player.modules.PlayerPatronRewardModule; -import com.gildedgames.aether.common.init.CreativeTabsAether; -import com.gildedgames.aether.common.patron.armor.PatronRewardArmor; -import com.gildedgames.aether.common.util.helpers.EntityUtil; -import net.minecraft.client.resources.I18n; -import net.minecraft.client.util.ITooltipFlag; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.init.SoundEvents; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.util.ResourceLocation; -import net.minecraft.util.SoundEvent; -import net.minecraft.util.text.TextFormatting; -import net.minecraft.world.World; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; - -import java.text.DecimalFormat; -import java.util.List; - -public class ItemAetherGloves extends Item -{ - public final GloveType gloveType; - - public ItemAetherGloves(GloveType type) - { - this.gloveType = type; - - this.setMaxStackSize(1); - - this.setCreativeTab(CreativeTabsAether.TAB_ARMOR); - } - - @SideOnly(Side.CLIENT) - public ResourceLocation getGloveTexture(EntityPlayer player) - { - String skinType = EntityUtil.getSkin(player); - - boolean slim = skinType.equals("slim"); - - PlayerAether playerAether = PlayerAether.getPlayer(player); - - PatronRewardArmor armorChoice = playerAether.getModule(PlayerPatronRewardModule.class).getChoices().getArmorChoice(); - - if (armorChoice != null) - { - return armorChoice.getArmorGloveTexture(slim); - } - - return slim ? this.gloveType.getTextureSlim() : this.gloveType.getTexture(); - } - - @Override - @SideOnly(Side.CLIENT) - public void addInformation(final ItemStack stack, final World world, final List<String> tooltip, final ITooltipFlag flag) - { - tooltip.add(""); - - tooltip.add(TextFormatting.GRAY + I18n.format("item.aether.tooltip.modifiers.gloves")); - - if (getAttackSpeed() > 0) - { - tooltip.add(TextFormatting.GRAY + " " + new DecimalFormat("#.#").format(0.2 + getAttackSpeed()) + " " + I18n.format("attribute.name.generic.attackSpeed")); - } - - if (getSlashDamageLevel() > 0) - { - String slashValue; - - if (getSlashDamageLevel() % 1 == 0) - { - int n = Math.round(getSlashDamageLevel()); - slashValue = String.valueOf(n); - } - else - { - float n = getSlashDamageLevel(); - slashValue = String.valueOf(n); - } - - tooltip.add(String.format(" %s %s", - slashValue, - String.format("%s %s", - TextFormatting.BLUE + I18n.format("attribute.name.aether.slash"), - TextFormatting.GRAY + I18n.format("attribute.name.aether.damageLevel")))); - } - - if (getPierceDamageLevel() > 0) - { - String pierceValue; - - if (getPierceDamageLevel() % 1 == 0) - { - int n = Math.round(getPierceDamageLevel()); - pierceValue = String.valueOf(n); - } - else - { - float n = getPierceDamageLevel(); - pierceValue = String.valueOf(n); - } - - tooltip.add(String.format(" %s %s", - pierceValue, - String.format("%s %s", - TextFormatting.RED + I18n.format("attribute.name.aether.pierce"), - TextFormatting.GRAY + I18n.format("attribute.name.aether.damageLevel")))); - } - - if (getImpactDamageLevel() > 0) - { - String impactValue; - - if (getImpactDamageLevel() % 1 == 0) - { - int n = Math.round(getImpactDamageLevel()); - impactValue = String.valueOf(n); - } - else - { - float n = getImpactDamageLevel(); - impactValue = String.valueOf(n); - } - - tooltip.add(String.format(" %s %s", - impactValue, - String.format("%s %s", - TextFormatting.YELLOW + I18n.format("attribute.name.aether.impact"), - TextFormatting.GRAY + I18n.format("attribute.name.aether.damageLevel")))); - } - } - - public SoundEvent getGloveSound() - { - return this.gloveType.getEquipSound(); - } - - public float getSlashDamageLevel() - { - return this.gloveType.getSlashDamageLevel(); - } - - public float getPierceDamageLevel() - { - return this.gloveType.getPierceDamageLevel(); - } - - public float getImpactDamageLevel() - { - return this.gloveType.getImpactDamageLevel(); - } - - public double getAttackSpeed() - { - return this.gloveType.getAttackSpeed(); - } - - public enum GloveType - { - TAEGOREHIDE("taegore_hide_gloves", SoundEvents.ITEM_ARMOR_EQUIP_LEATHER, 0, 0, 4, 1.4D), - BURRUKAIPELT("burrukai_pelt_gloves", SoundEvents.ITEM_ARMOR_EQUIP_LEATHER, 0, 0, 5, 1.4D), - ZANITE("zanite_gloves", SoundEvents.ITEM_ARMOR_EQUIP_IRON, 0, 0, 6, 1.4D), - ARKENIUM("arkenium_gloves", SoundEvents.ITEM_ARMOR_EQUIP_IRON, 0, 0, 8, 0.8D), - GRAVITITE("gravitite_gloves", SoundEvents.ITEM_ARMOR_EQUIP_DIAMOND, 0, 0, 7, 1.4D), - VALKYRIE("valkyrie_gloves", SoundEvents.ITEM_ARMOR_EQUIP_DIAMOND, 0, 0, 0, 1.4D), - NEPTUNE("neptune_gloves", SoundEvents.ITEM_ARMOR_EQUIP_DIAMOND, 0, 0, 0, 1.4D), - PHOENIX("phoenix_gloves", SoundEvents.ITEM_ARMOR_EQUIP_DIAMOND, 0, 0, 0, 1.4D), - OBSIDIAN("obsidian_gloves", SoundEvents.ITEM_ARMOR_EQUIP_DIAMOND, 0, 0, 0, 1.4D); - - private final ResourceLocation texture, textureSlim; - - private final SoundEvent equipSound; - - private final float slashDamageLevel, pierceDamageLevel, impactDamageLevel; - - private final double attackSpeed; - - GloveType(String texture, SoundEvent equipSound, float slashDamageLevel, float pierceDamageLevel, float impactDamageLevel, double attackSpeed) - { - this.texture = AetherCore.getResource("textures/armor/" + texture + ".png"); - this.textureSlim = AetherCore.getResource("textures/armor/" + texture + "_slim.png"); - this.equipSound = equipSound; - this.slashDamageLevel = slashDamageLevel; - this.pierceDamageLevel = pierceDamageLevel; - this.impactDamageLevel = impactDamageLevel; - this.attackSpeed = attackSpeed; - } - - public ResourceLocation getTextureSlim() - { - return this.textureSlim; - } - - public ResourceLocation getTexture() - { - return this.texture; - } - - public SoundEvent getEquipSound() - { - return this.equipSound; - } - - public float getSlashDamageLevel() - { - return this.slashDamageLevel; - } - - public float getPierceDamageLevel() - { - return this.pierceDamageLevel; - } - - public float getImpactDamageLevel() - { - return this.impactDamageLevel; - } - - public double getAttackSpeed() - { - return this.attackSpeed; - } - } -} diff --git a/src/main/java/com/gildedgames/aether/common/items/armor/ItemAetherShield.java b/src/main/java/com/gildedgames/aether/common/items/armor/ItemAetherShield.java deleted file mode 100644 index b66950b1fb..0000000000 --- a/src/main/java/com/gildedgames/aether/common/items/armor/ItemAetherShield.java +++ /dev/null @@ -1,114 +0,0 @@ -package com.gildedgames.aether.common.items.armor; - -import com.gildedgames.aether.api.registrar.ItemsAether; -import com.gildedgames.aether.common.AetherCore; -import com.gildedgames.aether.common.init.CreativeTabsAether; -import net.minecraft.block.BlockDispenser; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.init.SoundEvents; -import net.minecraft.item.*; -import net.minecraft.util.*; -import net.minecraft.world.World; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; - -public class ItemAetherShield extends Item -{ - public final ShieldType shieldType; - - public boolean isBlocking; - - public ItemAetherShield(ShieldType type) - { - this.setMaxStackSize(1); - this.setMaxDamage(336); - - this.shieldType = type; - - this.addPropertyOverride(new ResourceLocation("blocking"), new IItemPropertyGetter() - { - @Override - @SideOnly(Side.CLIENT) - public float apply(ItemStack stack, World worldIn, EntityLivingBase entity) - { - return entity != null && entity.isHandActive() && entity.getActiveItemStack() == stack ? 1.0F : 0.0F; - } - }); - - BlockDispenser.DISPENSE_BEHAVIOR_REGISTRY.putObject(this, ItemArmor.DISPENSER_BEHAVIOR); - - this.setCreativeTab(CreativeTabsAether.TAB_ARMOR); - } - - @Override - public EnumAction getItemUseAction(ItemStack stack) - { - return EnumAction.BLOCK; - } - - @Override - public int getMaxItemUseDuration(ItemStack stack) - { - return 72000; - } - - @Override - public ActionResult<ItemStack> onItemRightClick(World worldIn, EntityPlayer playerIn, EnumHand handIn) - { - ItemStack stack = playerIn.getHeldItem(handIn); - playerIn.setActiveHand(handIn); - - return new ActionResult<>(EnumActionResult.SUCCESS, stack); - } - - @Override - public void onUsingTick(final ItemStack stack, final EntityLivingBase living, final int count) - { - this.isBlocking = true; - } - - @Override - public ItemStack onItemUseFinish(ItemStack stack, World worldIn, EntityLivingBase entityLiving) - { - this.isBlocking = false; - - return stack; - } - - @Override - public int getItemBurnTime(ItemStack itemStack) - { - if (itemStack.getItem() == ItemsAether.skyroot_shield) - { - return 200; - } - - return super.getItemBurnTime(itemStack); - } - - public double getStunResistance() - { - return this.shieldType.getStunResistance(); - } - public enum ShieldType - { - SKYROOT(0.0D), - HOLYSTONE(0.1D), - ZANITE(0.25D), - ARKENIUM(0.6D), - GRAVITITE(0.4D); - - private final double stunResistance; - - ShieldType(double stunResistance) - { - this.stunResistance = stunResistance; - } - - public double getStunResistance() - { - return this.stunResistance; - } - } -} diff --git a/src/main/java/com/gildedgames/aether/common/items/armor/ItemArkeniumArmor.java b/src/main/java/com/gildedgames/aether/common/items/armor/ItemArkeniumArmor.java deleted file mode 100644 index 52852f3f83..0000000000 --- a/src/main/java/com/gildedgames/aether/common/items/armor/ItemArkeniumArmor.java +++ /dev/null @@ -1,35 +0,0 @@ -package com.gildedgames.aether.common.items.armor; - -import com.gildedgames.aether.common.init.MaterialsAether; -import com.google.common.collect.Multimap; -import net.minecraft.entity.SharedMonsterAttributes; -import net.minecraft.entity.ai.attributes.AttributeModifier; -import net.minecraft.inventory.EntityEquipmentSlot; - -import java.util.UUID; - -public class ItemArkeniumArmor extends ItemAetherArmor -{ - private static final UUID[] ARMOR_MODIFIERS = new UUID[] {UUID.fromString("845DB27C-C624-495F-8C9F-6020A9A58B6B"), - UUID.fromString("D8499B04-0E66-4726-AB29-64469D734E0D"), - UUID.fromString("9F3D476D-C118-4544-8365-64846904B48E"), - UUID.fromString("2AD3F246-FEE1-4E67-B886-69FD380BB150")}; - - public ItemArkeniumArmor(EntityEquipmentSlot armorType) - { - super(MaterialsAether.ARKENIUM_ARMOR, "arkenium", armorType); - } - - @Override - public Multimap<String, AttributeModifier> getItemAttributeModifiers(EntityEquipmentSlot equipmentSlot) - { - Multimap<String, AttributeModifier> multimap = super.getItemAttributeModifiers(equipmentSlot); - - if (equipmentSlot == this.armorType) - { - multimap.put(SharedMonsterAttributes.MOVEMENT_SPEED.getName(), new AttributeModifier(ARMOR_MODIFIERS[equipmentSlot.getIndex()], "aether.arkeniumWeight", -0.075, 1)); - } - - return multimap; - } -} diff --git a/src/main/java/com/gildedgames/aether/common/items/armor/ItemBurrukaiPeltArmor.java b/src/main/java/com/gildedgames/aether/common/items/armor/ItemBurrukaiPeltArmor.java deleted file mode 100644 index 70ec191833..0000000000 --- a/src/main/java/com/gildedgames/aether/common/items/armor/ItemBurrukaiPeltArmor.java +++ /dev/null @@ -1,12 +0,0 @@ -package com.gildedgames.aether.common.items.armor; - -import com.gildedgames.aether.common.init.MaterialsAether; -import net.minecraft.inventory.EntityEquipmentSlot; - -public class ItemBurrukaiPeltArmor extends ItemAetherArmor -{ - public ItemBurrukaiPeltArmor(EntityEquipmentSlot armorType) - { - super(MaterialsAether.PELT_ARMOR, "burrukai_pelt", armorType); - } -} diff --git a/src/main/java/com/gildedgames/aether/common/items/armor/ItemGravititeArmor.java b/src/main/java/com/gildedgames/aether/common/items/armor/ItemGravititeArmor.java deleted file mode 100644 index 69dcfc1c5c..0000000000 --- a/src/main/java/com/gildedgames/aether/common/items/armor/ItemGravititeArmor.java +++ /dev/null @@ -1,14 +0,0 @@ -package com.gildedgames.aether.common.items.armor; - -import com.gildedgames.aether.api.registrar.BlocksAether; -import net.minecraft.inventory.EntityEquipmentSlot; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; - -public class ItemGravititeArmor extends ItemAetherArmor -{ - public ItemGravititeArmor(EntityEquipmentSlot armorType) - { - super(ArmorMaterial.DIAMOND, "gravitite", armorType); - } -} diff --git a/src/main/java/com/gildedgames/aether/common/items/armor/ItemTaegoreHideArmor.java b/src/main/java/com/gildedgames/aether/common/items/armor/ItemTaegoreHideArmor.java deleted file mode 100644 index 37d91ca5a3..0000000000 --- a/src/main/java/com/gildedgames/aether/common/items/armor/ItemTaegoreHideArmor.java +++ /dev/null @@ -1,12 +0,0 @@ -package com.gildedgames.aether.common.items.armor; - -import net.minecraft.inventory.EntityEquipmentSlot; - -public class ItemTaegoreHideArmor extends ItemAetherArmor -{ - public ItemTaegoreHideArmor(EntityEquipmentSlot armorType) - { - super(ArmorMaterial.LEATHER, "taegore_hide", armorType); - } - -} diff --git a/src/main/java/com/gildedgames/aether/common/items/armor/ItemWinterHat.java b/src/main/java/com/gildedgames/aether/common/items/armor/ItemWinterHat.java deleted file mode 100644 index 8ba0c56fd1..0000000000 --- a/src/main/java/com/gildedgames/aether/common/items/armor/ItemWinterHat.java +++ /dev/null @@ -1,49 +0,0 @@ -package com.gildedgames.aether.common.items.armor; - -import com.gildedgames.aether.api.registrar.BlocksAether; -import com.gildedgames.aether.client.models.items.ModelWinterHat; -import com.gildedgames.aether.common.AetherCore; -import com.gildedgames.aether.common.init.MaterialsAether; -import com.google.common.collect.HashMultimap; -import com.google.common.collect.Multimap; -import net.minecraft.client.model.ModelBiped; -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.ai.attributes.AttributeModifier; -import net.minecraft.inventory.EntityEquipmentSlot; -import net.minecraft.item.ItemArmor; -import net.minecraft.item.ItemStack; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; - -import javax.annotation.Nullable; - -public class ItemWinterHat extends ItemArmor -{ - public ItemWinterHat() - { - super(MaterialsAether.WINTER_ARMOR, 0, EntityEquipmentSlot.HEAD); - } - - @Nullable - @Override - @SideOnly(Side.CLIENT) - public String getArmorTexture(ItemStack stack, Entity entity, EntityEquipmentSlot slot, String type) - { - return AetherCore.getResourcePath("textures/armor/winter_hat.png"); - } - - @Nullable - @Override - @SideOnly(Side.CLIENT) - public ModelBiped getArmorModel(EntityLivingBase entityLiving, ItemStack itemStack, EntityEquipmentSlot armorSlot, ModelBiped _default) - { - return new ModelWinterHat(); - } - - @Override - public Multimap<String, AttributeModifier> getItemAttributeModifiers(EntityEquipmentSlot equipmentSlot) - { - return HashMultimap.create(); - } -} diff --git a/src/main/java/com/gildedgames/aether/common/items/armor/ItemZaniteArmor.java b/src/main/java/com/gildedgames/aether/common/items/armor/ItemZaniteArmor.java deleted file mode 100644 index d5b35a8a00..0000000000 --- a/src/main/java/com/gildedgames/aether/common/items/armor/ItemZaniteArmor.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.gildedgames.aether.common.items.armor; - -import net.minecraft.inventory.EntityEquipmentSlot; -import net.minecraft.item.ItemStack; - -public class ItemZaniteArmor extends ItemAetherArmor -{ - public ItemZaniteArmor(EntityEquipmentSlot armorType) - { - super(ArmorMaterial.IRON, "zanite", armorType); - } - -} diff --git a/src/main/java/com/gildedgames/aether/common/items/blocks/ItemBlockCloudwool.java b/src/main/java/com/gildedgames/aether/common/items/blocks/ItemBlockCloudwool.java deleted file mode 100644 index c5725e6d8e..0000000000 --- a/src/main/java/com/gildedgames/aether/common/items/blocks/ItemBlockCloudwool.java +++ /dev/null @@ -1,19 +0,0 @@ -package com.gildedgames.aether.common.items.blocks; - -import net.minecraft.block.Block; -import net.minecraft.item.ItemBlock; -import net.minecraft.item.ItemStack; - -public class ItemBlockCloudwool extends ItemBlock -{ - public ItemBlockCloudwool(Block block) - { - super(block); - } - - @Override - public int getItemBurnTime(ItemStack itemStack) - { - return 100; - } -} diff --git a/src/main/java/com/gildedgames/aether/common/items/blocks/ItemBlockCustomCarpet.java b/src/main/java/com/gildedgames/aether/common/items/blocks/ItemBlockCustomCarpet.java deleted file mode 100644 index 546d1f50c5..0000000000 --- a/src/main/java/com/gildedgames/aether/common/items/blocks/ItemBlockCustomCarpet.java +++ /dev/null @@ -1,19 +0,0 @@ -package com.gildedgames.aether.common.items.blocks; - -import net.minecraft.block.Block; -import net.minecraft.item.ItemBlock; -import net.minecraft.item.ItemStack; - -public class ItemBlockCustomCarpet extends ItemBlock -{ - public ItemBlockCustomCarpet(Block block) - { - super(block); - } - - @Override - public int getItemBurnTime(ItemStack itemStack) - { - return 67; - } -} diff --git a/src/main/java/com/gildedgames/aether/common/items/blocks/ItemBlockCustomDoor.java b/src/main/java/com/gildedgames/aether/common/items/blocks/ItemBlockCustomDoor.java deleted file mode 100644 index a8b2c45312..0000000000 --- a/src/main/java/com/gildedgames/aether/common/items/blocks/ItemBlockCustomDoor.java +++ /dev/null @@ -1,27 +0,0 @@ -package com.gildedgames.aether.common.items.blocks; - -import com.gildedgames.aether.api.registrar.ItemsAether; -import net.minecraft.block.Block; -import net.minecraft.item.ItemDoor; -import net.minecraft.item.ItemStack; - -public class ItemBlockCustomDoor extends ItemDoor -{ - public ItemBlockCustomDoor(Block block) - { - super(block); - } - - @Override - public int getItemBurnTime(ItemStack itemStack) - { - if (itemStack.getItem() != ItemsAether.arkenium_door_item) - { - return 200; - } - else - { - return 0; - } - } -} diff --git a/src/main/java/com/gildedgames/aether/common/items/blocks/ItemBlockCustomLadder.java b/src/main/java/com/gildedgames/aether/common/items/blocks/ItemBlockCustomLadder.java deleted file mode 100644 index 576b757244..0000000000 --- a/src/main/java/com/gildedgames/aether/common/items/blocks/ItemBlockCustomLadder.java +++ /dev/null @@ -1,19 +0,0 @@ -package com.gildedgames.aether.common.items.blocks; - -import net.minecraft.block.Block; -import net.minecraft.item.ItemBlock; -import net.minecraft.item.ItemStack; - -public class ItemBlockCustomLadder extends ItemBlock -{ - public ItemBlockCustomLadder(Block block) - { - super(block); - } - - @Override - public int getItemBurnTime(ItemStack itemStack) - { - return 300; - } -} diff --git a/src/main/java/com/gildedgames/aether/common/items/blocks/ItemBlockCustomSapling.java b/src/main/java/com/gildedgames/aether/common/items/blocks/ItemBlockCustomSapling.java deleted file mode 100644 index 052f85dad8..0000000000 --- a/src/main/java/com/gildedgames/aether/common/items/blocks/ItemBlockCustomSapling.java +++ /dev/null @@ -1,18 +0,0 @@ -package com.gildedgames.aether.common.items.blocks; - -import net.minecraft.block.Block; -import net.minecraft.item.ItemStack; - -public class ItemBlockCustomSapling extends ItemBlockMultiName -{ - public ItemBlockCustomSapling(Block block) - { - super(block); - } - - @Override - public int getItemBurnTime(ItemStack itemStack) - { - return 100; - } -} diff --git a/src/main/java/com/gildedgames/aether/common/items/blocks/ItemBlockCustomSlab.java b/src/main/java/com/gildedgames/aether/common/items/blocks/ItemBlockCustomSlab.java deleted file mode 100644 index 718e3fb530..0000000000 --- a/src/main/java/com/gildedgames/aether/common/items/blocks/ItemBlockCustomSlab.java +++ /dev/null @@ -1,107 +0,0 @@ -package com.gildedgames.aether.common.items.blocks; - -import com.gildedgames.aether.common.blocks.util.BlockCustomSlab; -import com.gildedgames.aether.common.blocks.util.BlockCustomSlab.EnumSlabPart; -import net.minecraft.block.Block; -import net.minecraft.block.state.IBlockState; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemBlock; -import net.minecraft.item.ItemStack; -import net.minecraft.util.EnumActionResult; -import net.minecraft.util.EnumFacing; -import net.minecraft.util.EnumHand; -import net.minecraft.util.math.AxisAlignedBB; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.World; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; - -public class ItemBlockCustomSlab extends ItemBlock -{ - public ItemBlockCustomSlab(Block block) - { - super(block); - } - - @Override - public EnumActionResult onItemUse(EntityPlayer player, World world, BlockPos pos, EnumHand hand, EnumFacing facing, - float hitX, float hitY, float hitZ) - { - ItemStack stack = player.getHeldItem(hand); - - BlockPos target = pos; - - IBlockState state = world.getBlockState(pos); - - if (state.getBlock() == this.block && state.getValue(BlockCustomSlab.PROPERTY_SLAB_STATE) != EnumSlabPart.FULL_BLOCK) - { - EnumSlabPart part = state.getValue(BlockCustomSlab.PROPERTY_SLAB_STATE); - - if ((part == EnumSlabPart.BOTTOM_HALF && facing == EnumFacing.UP) || - (part == EnumSlabPart.TOP_HALF && facing == EnumFacing.DOWN)) - { - IBlockState newState = state.withProperty(BlockCustomSlab.PROPERTY_SLAB_STATE, EnumSlabPart.FULL_BLOCK); - - AxisAlignedBB boundingBox = newState.getCollisionBoundingBox(world, pos); - - if (boundingBox != Block.NULL_AABB && world.checkNoEntityCollision(boundingBox.offset(pos)) - && player.canPlayerEdit(target, facing, stack) && world.setBlockState(target, newState, 11)) - { - stack.shrink(1); - - return EnumActionResult.SUCCESS; - } - } - } - else - { - target = pos.offset(facing); - state = world.getBlockState(target); - - if (state.getBlock() == this.block) - { - EnumSlabPart part = state.getValue(BlockCustomSlab.PROPERTY_SLAB_STATE); - - if (part != EnumSlabPart.FULL_BLOCK) - { - IBlockState newState = state.withProperty(BlockCustomSlab.PROPERTY_SLAB_STATE, EnumSlabPart.FULL_BLOCK); - - if (player.canPlayerEdit(target, facing, stack) && world.setBlockState(target, newState, 11)) - { - stack.shrink(1); - - return EnumActionResult.SUCCESS; - } - } - } - } - - return super.onItemUse(player, world, pos, hand, facing, hitX, hitY, hitZ); - } - - @Override - @SideOnly(Side.CLIENT) - public boolean canPlaceBlockOnSide(World world, BlockPos pos, EnumFacing side, EntityPlayer player, ItemStack stack) - { - BlockPos blockpos = pos; - - IBlockState state = world.getBlockState(pos); - - if (state.getBlock() == this.block && state.getValue(BlockCustomSlab.PROPERTY_SLAB_STATE) != EnumSlabPart.FULL_BLOCK) - { - boolean flag = state.getValue(BlockCustomSlab.PROPERTY_SLAB_STATE) == EnumSlabPart.TOP_HALF; - - if ((side == EnumFacing.UP && !flag || side == EnumFacing.DOWN && flag) && state.getBlock() == this.block) - { - return true; - } - } - - pos = pos.offset(side); - - IBlockState offsetState = world.getBlockState(pos); - - return offsetState.getBlock() == this.block || super.canPlaceBlockOnSide(world, blockpos, side, player, stack); - } - -} diff --git a/src/main/java/com/gildedgames/aether/common/items/blocks/ItemBlockCustomSnow.java b/src/main/java/com/gildedgames/aether/common/items/blocks/ItemBlockCustomSnow.java deleted file mode 100644 index 0163ec2c96..0000000000 --- a/src/main/java/com/gildedgames/aether/common/items/blocks/ItemBlockCustomSnow.java +++ /dev/null @@ -1,98 +0,0 @@ -package com.gildedgames.aether.common.items.blocks; - -import com.gildedgames.aether.api.registrar.BlocksAether; -import net.minecraft.advancements.CriteriaTriggers; -import net.minecraft.block.Block; -import net.minecraft.block.BlockSnow; -import net.minecraft.block.SoundType; -import net.minecraft.block.state.IBlockState; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.EntityPlayerMP; -import net.minecraft.item.ItemBlock; -import net.minecraft.item.ItemStack; -import net.minecraft.util.EnumActionResult; -import net.minecraft.util.EnumFacing; -import net.minecraft.util.EnumHand; -import net.minecraft.util.SoundCategory; -import net.minecraft.util.math.AxisAlignedBB; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.World; - -public class ItemBlockCustomSnow extends ItemBlock -{ - public ItemBlockCustomSnow(Block block) - { - super(block); - } - - @Override - public EnumActionResult onItemUse(EntityPlayer player, World world, BlockPos pos, EnumHand hand, EnumFacing facing, float hitX, float hitY, float hitZ) - { - ItemStack heldStack = player.getHeldItem(hand); - - if (!heldStack.isEmpty() && player.canPlayerEdit(pos, facing, heldStack)) - { - IBlockState state = world.getBlockState(pos); - Block block = state.getBlock(); - - BlockPos otherPos = pos; - - if ((facing != EnumFacing.UP || block != this.block) && !block.isReplaceable(world, pos)) - { - otherPos = pos.offset(facing); - - state = world.getBlockState(otherPos); - block = state.getBlock(); - } - - if (block == this.block) - { - int i = state.getValue(BlockSnow.LAYERS); - - if (i < 8) - { - IBlockState modifiedState = state.withProperty(BlockSnow.LAYERS, i + 1); - - AxisAlignedBB aabb = modifiedState.getCollisionBoundingBox(world, otherPos); - - if (aabb != Block.NULL_AABB && world.checkNoEntityCollision(aabb.offset(otherPos)) && world.setBlockState(otherPos, modifiedState, 10)) - { - SoundType soundtype = this.block.getSoundType(modifiedState, world, pos, player); - world.playSound(player, otherPos, soundtype.getPlaceSound(), SoundCategory.BLOCKS, (soundtype.getVolume() + 1.0F) / 2.0F, - soundtype.getPitch() * 0.8F); - - if (player instanceof EntityPlayerMP) - { - CriteriaTriggers.PLACED_BLOCK.trigger((EntityPlayerMP) player, pos, heldStack); - } - - heldStack.shrink(1); - - return EnumActionResult.SUCCESS; - } - } - } - - return super.onItemUse(player, world, pos, hand, facing, hitX, hitY, hitZ); - } - else - { - return EnumActionResult.FAIL; - } - } - - @Override - public int getMetadata(int damage) - { - return damage; - } - - @Override - public boolean canPlaceBlockOnSide(World world, BlockPos pos, EnumFacing side, EntityPlayer player, ItemStack stack) - { - IBlockState state = world.getBlockState(pos); - - return (state.getBlock() == BlocksAether.highlands_snow_layer && state.getValue(BlockSnow.LAYERS) <= 7) || super - .canPlaceBlockOnSide(world, pos, side, player, stack); - } -} diff --git a/src/main/java/com/gildedgames/aether/common/items/blocks/ItemBlockFloorObject.java b/src/main/java/com/gildedgames/aether/common/items/blocks/ItemBlockFloorObject.java deleted file mode 100644 index ae6f12d00f..0000000000 --- a/src/main/java/com/gildedgames/aether/common/items/blocks/ItemBlockFloorObject.java +++ /dev/null @@ -1,27 +0,0 @@ -package com.gildedgames.aether.common.items.blocks; - -import com.gildedgames.aether.api.registrar.BlocksAether; -import net.minecraft.block.Block; -import net.minecraft.item.ItemBlock; -import net.minecraft.item.ItemStack; - -public class ItemBlockFloorObject extends ItemBlock -{ - public ItemBlockFloorObject(Block block) - { - super(block); - } - - @Override - public int getItemBurnTime(ItemStack itemStack) - { - if (block == BlocksAether.skyroot_twigs) - { - return 100; - } - else - { - return 0; - } - } -} diff --git a/src/main/java/com/gildedgames/aether/common/items/blocks/ItemBlockMultiName.java b/src/main/java/com/gildedgames/aether/common/items/blocks/ItemBlockMultiName.java deleted file mode 100644 index 24bd456146..0000000000 --- a/src/main/java/com/gildedgames/aether/common/items/blocks/ItemBlockMultiName.java +++ /dev/null @@ -1,34 +0,0 @@ -package com.gildedgames.aether.common.items.blocks; - -import com.gildedgames.aether.common.blocks.IBlockMultiName; -import net.minecraft.block.Block; -import net.minecraft.item.ItemBlock; -import net.minecraft.item.ItemStack; - -public class ItemBlockMultiName extends ItemBlock -{ - private final IBlockMultiName blockWithVariants; - - public ItemBlockMultiName(Block block) - { - super(block); - - this.blockWithVariants = (IBlockMultiName) block; - - this.setMaxDamage(0); - this.setHasSubtypes(true); - } - - @Override - public int getMetadata(int damage) - { - return damage; - } - - @Override - public String getTranslationKey(ItemStack stack) - { - return super.getTranslationKey() + "." + this.blockWithVariants.getTranslationKey(stack); - } - -} diff --git a/src/main/java/com/gildedgames/aether/common/items/blocks/ItemBlockPresent.java b/src/main/java/com/gildedgames/aether/common/items/blocks/ItemBlockPresent.java deleted file mode 100644 index ff505f843f..0000000000 --- a/src/main/java/com/gildedgames/aether/common/items/blocks/ItemBlockPresent.java +++ /dev/null @@ -1,120 +0,0 @@ -package com.gildedgames.aether.common.items.blocks; - -import com.gildedgames.aether.common.items.other.ItemWrappingPaper; -import net.minecraft.block.Block; -import net.minecraft.client.resources.I18n; -import net.minecraft.client.util.ITooltipFlag; -import net.minecraft.item.EnumRarity; -import net.minecraft.item.ItemBlock; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.util.text.TextFormatting; -import net.minecraft.world.World; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; - -import javax.annotation.Nullable; -import java.util.List; - -public class ItemBlockPresent extends ItemBlock -{ - - public ItemBlockPresent(final Block block) - { - super(block); - - this.setMaxStackSize(1); - } - - public static PresentData getData(final ItemStack stack) - { - if (stack != null && stack.getTagCompound() != null) - { - return PresentData.readFromNBT(stack.getTagCompound()); - } - - return new PresentData(); - } - - @Override - public EnumRarity getRarity(final ItemStack stack) - { - return EnumRarity.RARE; - } - - @SideOnly(Side.CLIENT) - @Override - public void addInformation(final ItemStack stack, @Nullable final World worldIn, final List<String> tooltip, final ITooltipFlag flagIn) - { - final PresentData data = ItemBlockPresent.getData(stack); - - if (data.getStack() != null) - { - tooltip.add(TextFormatting.GRAY + "" + TextFormatting.ITALIC + I18n.format("item.aether.present.tooltip.hasitem")); - } - else - { - tooltip.add(TextFormatting.DARK_GRAY + "" + TextFormatting.ITALIC + I18n.format("item.aether.present.tooltip.empty")); - } - } - - public static class PresentData - { - private ItemStack stack; - - private ItemWrappingPaper.PresentDyeData dye = new ItemWrappingPaper.PresentDyeData(); - - public static PresentData readFromNBT(final NBTTagCompound compound) - { - final PresentData data = new PresentData(); - - if (compound.hasKey("item")) - { - data.stack = new ItemStack(compound.getCompoundTag("item")); - } - - if (compound.hasKey("dye")) - { - data.dye = ItemWrappingPaper.PresentDyeData.readFromNBT(compound.getCompoundTag("dye")); - } - - return data; - } - - public NBTTagCompound writeToNBT(final NBTTagCompound compound) - { - if (this.stack != null) - { - compound.setTag("item", this.stack.writeToNBT(new NBTTagCompound())); - } - - if (this.dye != null) - { - compound.setTag("dye", this.dye.writeToNBT(new NBTTagCompound())); - } - - return compound; - } - - public ItemStack getStack() - { - return this.stack; - } - - public void setStack(final ItemStack stack) - { - this.stack = stack; - } - - public ItemWrappingPaper.PresentDyeData getDye() - { - return this.dye; - } - - public void setDye(final ItemWrappingPaper.PresentDyeData data) - { - this.dye = data; - } - } - -} diff --git a/src/main/java/com/gildedgames/aether/common/items/blocks/ItemBlockSkyrootButton.java b/src/main/java/com/gildedgames/aether/common/items/blocks/ItemBlockSkyrootButton.java deleted file mode 100644 index 5d03b8571a..0000000000 --- a/src/main/java/com/gildedgames/aether/common/items/blocks/ItemBlockSkyrootButton.java +++ /dev/null @@ -1,19 +0,0 @@ -package com.gildedgames.aether.common.items.blocks; - -import net.minecraft.block.Block; -import net.minecraft.item.ItemBlock; -import net.minecraft.item.ItemStack; - -public class ItemBlockSkyrootButton extends ItemBlock -{ - public ItemBlockSkyrootButton(Block block) - { - super(block); - } - - @Override - public int getItemBurnTime(ItemStack itemStack) - { - return 100; - } -} diff --git a/src/main/java/com/gildedgames/aether/common/items/blocks/ItemBlockSubtypes.java b/src/main/java/com/gildedgames/aether/common/items/blocks/ItemBlockSubtypes.java deleted file mode 100644 index e04270f167..0000000000 --- a/src/main/java/com/gildedgames/aether/common/items/blocks/ItemBlockSubtypes.java +++ /dev/null @@ -1,20 +0,0 @@ -package com.gildedgames.aether.common.items.blocks; - -import net.minecraft.block.Block; -import net.minecraft.item.ItemBlock; - -public class ItemBlockSubtypes extends ItemBlock -{ - public ItemBlockSubtypes(Block block) - { - super(block); - - this.setHasSubtypes(true); - } - - @Override - public int getMetadata(int damage) - { - return damage; - } -} diff --git a/src/main/java/com/gildedgames/aether/common/items/companions/ItemCompanion.java b/src/main/java/com/gildedgames/aether/common/items/companions/ItemCompanion.java deleted file mode 100644 index 4f7b109900..0000000000 --- a/src/main/java/com/gildedgames/aether/common/items/companions/ItemCompanion.java +++ /dev/null @@ -1,85 +0,0 @@ -package com.gildedgames.aether.common.items.companions; - -import com.gildedgames.aether.common.items.InformationProvider; -import net.minecraft.client.util.ITooltipFlag; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.util.text.TextFormatting; -import net.minecraft.world.World; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; - -import javax.annotation.Nullable; -import java.text.DecimalFormat; -import java.util.List; - -public class ItemCompanion extends Item -{ - private final DecimalFormat timeFormat = new DecimalFormat("0.0"); - - private InformationProvider informationProvider; - - public ItemCompanion() - { - this.setMaxStackSize(1); - //this.setCreativeTab(CreativeTabsAether.COMPANIONS); - } - - public ItemCompanion(final InformationProvider informationProvider) - { - this(); - - this.informationProvider = informationProvider; - } - - public static void setRespawnTimer(final ItemStack stack, final World world, final int timer) - { - NBTTagCompound compound = stack.getTagCompound(); - - if (compound == null) - { - stack.setTagCompound(compound = new NBTTagCompound()); - } - - compound.setLong("respawnTimer", world.getTotalWorldTime() + timer); - } - - public static long getTicksUntilRespawn(final ItemStack stack, final World world) - { - final NBTTagCompound compound = stack.getTagCompound(); - - if (compound == null || !compound.hasKey("respawnTimer")) - { - return 0; - } - - return compound.getLong("respawnTimer") - world.getTotalWorldTime(); - } - - @Override - @SideOnly(Side.CLIENT) - public void addInformation(final ItemStack stack, @Nullable final World worldIn, final List<String> tooltip, final ITooltipFlag flagIn) - { - final long respawn = ItemCompanion.getTicksUntilRespawn(stack, worldIn); - - if (respawn > 0) - { - tooltip.add(TextFormatting.RED + "" + TextFormatting.ITALIC + "Disabled! Respawns in " + this.parseTicks(respawn) + "."); - } - - if (this.informationProvider != null) - { - this.informationProvider.addInformation(stack, tooltip, flagIn); - } - - super.addInformation(stack, worldIn, tooltip, flagIn); - } - - protected String parseTicks(final long ticks) - { - final boolean useMinutes = ticks > (20 * 60); - - return this.timeFormat.format(ticks / (useMinutes ? 20f * 60 : 20f)) + " " + (useMinutes ? "minutes" : "seconds"); - } -} diff --git a/src/main/java/com/gildedgames/aether/common/items/companions/ItemDeathSeal.java b/src/main/java/com/gildedgames/aether/common/items/companions/ItemDeathSeal.java deleted file mode 100644 index 5de23ea975..0000000000 --- a/src/main/java/com/gildedgames/aether/common/items/companions/ItemDeathSeal.java +++ /dev/null @@ -1,71 +0,0 @@ -package com.gildedgames.aether.common.items.companions; - -import net.minecraft.client.util.ITooltipFlag; -import net.minecraft.entity.Entity; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.util.text.TextFormatting; -import net.minecraft.world.World; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; - -import javax.annotation.Nullable; -import java.util.List; - -public class ItemDeathSeal extends ItemCompanion -{ - public static void setDisabledTimer(final ItemStack stack, final World world, final int timer) - { - NBTTagCompound compound = stack.getTagCompound(); - - if (compound == null) - { - stack.setTagCompound(compound = new NBTTagCompound()); - } - - compound.setLong("disabledTimer", world.getTotalWorldTime() + timer); - - stack.setItemDamage(1); - } - - public static long getTicksUntilEnabled(final ItemStack stack, final World world) - { - final NBTTagCompound compound = stack.getTagCompound(); - - if (compound == null || !compound.hasKey("disabledTimer")) - { - return 0; - } - - return compound.getLong("disabledTimer") - world.getTotalWorldTime(); - } - - @Override - public void onUpdate(final ItemStack stack, final World worldIn, final Entity entityIn, final int itemSlot, final boolean isSelected) - { - final long disabledTime = ItemDeathSeal.getTicksUntilEnabled(stack, worldIn); - - if (disabledTime <= 0) - { - stack.setItemDamage(0); - } - else - { - stack.setItemDamage(1); - } - } - - @Override - @SideOnly(Side.CLIENT) - public void addInformation(final ItemStack stack, @Nullable final World worldIn, final List<String> tooltip, final ITooltipFlag flagIn) - { - super.addInformation(stack, worldIn, tooltip, flagIn); - - final long disabledTime = ItemDeathSeal.getTicksUntilEnabled(stack, worldIn); - - if (disabledTime > 0) - { - tooltip.add(TextFormatting.RED + "" + TextFormatting.ITALIC + "Disabled! Ready in " + this.parseTicks(disabledTime)); - } - } -} diff --git a/src/main/java/com/gildedgames/aether/common/items/consumables/ItemAetherFood.java b/src/main/java/com/gildedgames/aether/common/items/consumables/ItemAetherFood.java deleted file mode 100644 index 8c6e7bd717..0000000000 --- a/src/main/java/com/gildedgames/aether/common/items/consumables/ItemAetherFood.java +++ /dev/null @@ -1,36 +0,0 @@ -package com.gildedgames.aether.common.items.consumables; - -import com.gildedgames.aether.common.init.CreativeTabsAether; -import com.gildedgames.aether.common.items.IDropOnDeath; -import net.minecraft.item.ItemFood; -import net.minecraft.item.ItemStack; - -public class ItemAetherFood extends ItemFood implements IDropOnDeath -{ - private int duration = 32; - - public ItemAetherFood(int amount, boolean isWolfFood) - { - super(amount, isWolfFood); - } - - public ItemAetherFood(int amount, float saturation, boolean isWolfFood) - { - super(amount, saturation, isWolfFood); - - this.setCreativeTab(CreativeTabsAether.TAB_CONSUMABLES); - } - - public ItemAetherFood setConsumptionDuration(int duration) - { - this.duration = duration; - - return this; - } - - @Override - public int getMaxItemUseDuration(ItemStack stack) - { - return this.duration; - } -} diff --git a/src/main/java/com/gildedgames/aether/common/items/consumables/ItemAmbrosiumChunk.java b/src/main/java/com/gildedgames/aether/common/items/consumables/ItemAmbrosiumChunk.java deleted file mode 100644 index 3aa199e6dd..0000000000 --- a/src/main/java/com/gildedgames/aether/common/items/consumables/ItemAmbrosiumChunk.java +++ /dev/null @@ -1,50 +0,0 @@ -package com.gildedgames.aether.common.items.consumables; - -import com.gildedgames.aether.api.registrar.BlocksAether; -import com.gildedgames.aether.common.blocks.natural.BlockAetherGrass; -import com.gildedgames.aether.common.items.IDropOnDeath; -import net.minecraft.block.state.IBlockState; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.util.EnumActionResult; -import net.minecraft.util.EnumFacing; -import net.minecraft.util.EnumHand; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.World; - -public class ItemAmbrosiumChunk extends Item implements IDropOnDeath -{ - @Override - public EnumActionResult onItemUse(EntityPlayer player, World world, BlockPos pos, EnumHand hand, EnumFacing side, - float hitX, float hitY, float hitZ) - { - ItemStack stack = player.getHeldItem(hand); - - IBlockState state = world.getBlockState(pos); - - if (state.getBlock() == BlocksAether.aether_grass && state.getValue(BlockAetherGrass.PROPERTY_VARIANT) != BlockAetherGrass.ENCHANTED) - { - if (player.canPlayerEdit(pos, side, stack)) - { - world.setBlockState(pos, - BlocksAether.aether_grass.getDefaultState().withProperty(BlockAetherGrass.PROPERTY_VARIANT, BlockAetherGrass.ENCHANTED)); - - if (!player.capabilities.isCreativeMode) - { - stack.shrink(1); - } - - return EnumActionResult.SUCCESS; - } - } - - return EnumActionResult.FAIL; - } - - @Override - public int getItemBurnTime(ItemStack itemStack) - { - return 6400; - } -} diff --git a/src/main/java/com/gildedgames/aether/common/items/consumables/ItemBrettlCane.java b/src/main/java/com/gildedgames/aether/common/items/consumables/ItemBrettlCane.java deleted file mode 100644 index 64a86aa085..0000000000 --- a/src/main/java/com/gildedgames/aether/common/items/consumables/ItemBrettlCane.java +++ /dev/null @@ -1,67 +0,0 @@ -package com.gildedgames.aether.common.items.consumables; - -import com.gildedgames.aether.api.registrar.BlocksAether; -import com.gildedgames.aether.common.blocks.natural.plants.BlockBrettlPlant; -import com.gildedgames.aether.common.items.IDropOnDeath; -import net.minecraft.block.state.IBlockState; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.util.EnumActionResult; -import net.minecraft.util.EnumFacing; -import net.minecraft.util.EnumHand; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.IBlockAccess; -import net.minecraft.world.World; -import net.minecraftforge.common.EnumPlantType; -import net.minecraftforge.common.IPlantable; - -public class ItemBrettlCane extends Item implements IPlantable, IDropOnDeath -{ - @Override - public EnumActionResult onItemUse(EntityPlayer player, World worldIn, BlockPos pos, EnumHand hand, EnumFacing facing, float hitX, float hitY, float hitZ) - { - ItemStack itemstack = player.getHeldItem(hand); - IBlockState state = worldIn.getBlockState(pos); - if (facing == EnumFacing.UP && player.canPlayerEdit(pos.offset(facing), facing, itemstack) && this.isPlantable(worldIn, pos) && worldIn - .isAirBlock(pos.up()) && worldIn.isAirBlock(pos.up(2)) && worldIn.isAirBlock(pos.up(3))) - { - worldIn.setBlockState(pos.up(), BlocksAether.brettl_plant.getStateForPlacement(worldIn, pos, facing, hitX, hitY, hitZ, 0, player)); - worldIn.setBlockState(pos.up(2), BlocksAether.brettl_plant.getDefaultState().withProperty(BlockBrettlPlant.PROPERTY_VARIANT, BlockBrettlPlant.TOP) - .withProperty(BlockBrettlPlant.PROPERTY_HARVESTABLE, false)); - itemstack.shrink(1); - return EnumActionResult.SUCCESS; - } - else - { - return EnumActionResult.FAIL; - } - } - - @Override - public EnumPlantType getPlantType(IBlockAccess world, BlockPos pos) - { - return null; - } - - @Override - public IBlockState getPlant(IBlockAccess world, BlockPos pos) - { - return null; - } - - private boolean isPlantable(World world, BlockPos pos) - { - if (world.isAirBlock(pos.up()) && world.isAirBlock(pos.up(2))) - { - return world.getBlockState(pos).getBlock() == BlocksAether.quicksoil; - } - return false; - } - - @Override - public int getItemBurnTime(ItemStack itemStack) - { - return 50; - } -} diff --git a/src/main/java/com/gildedgames/aether/common/items/consumables/ItemCloudParachute.java b/src/main/java/com/gildedgames/aether/common/items/consumables/ItemCloudParachute.java deleted file mode 100644 index c0e338e6eb..0000000000 --- a/src/main/java/com/gildedgames/aether/common/items/consumables/ItemCloudParachute.java +++ /dev/null @@ -1,113 +0,0 @@ -package com.gildedgames.aether.common.items.consumables; - -import com.gildedgames.aether.api.registrar.ItemsAether; -import com.gildedgames.aether.common.capabilities.entity.player.PlayerAether; -import com.gildedgames.aether.common.capabilities.entity.player.modules.PlayerParachuteModule; -import com.gildedgames.aether.common.entities.blocks.EntityParachute; -import com.gildedgames.aether.common.items.IDropOnDeath; -import com.gildedgames.aether.common.util.helpers.ItemHelper; -import net.minecraft.client.resources.I18n; -import net.minecraft.client.util.ITooltipFlag; -import net.minecraft.creativetab.CreativeTabs; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.util.ActionResult; -import net.minecraft.util.EnumHand; -import net.minecraft.util.NonNullList; -import net.minecraft.world.World; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; - -import javax.annotation.Nullable; -import java.util.List; - -public class ItemCloudParachute extends Item implements IDropOnDeath -{ - public ItemCloudParachute() - { - this.maxStackSize = 1; - this.setHasSubtypes(true); - } - - @Override - public void getSubItems(final CreativeTabs tab, final NonNullList<ItemStack> subItems) - { - if (this.isInCreativeTab(tab)) { - for(int i = 0; i < 3; ++i) { - subItems.add(new ItemStack(this, 1, i)); - } - } - } - - @Override - @SideOnly(Side.CLIENT) - public void addInformation(final ItemStack stack, @Nullable final World worldIn, final List<String> tooltip, final ITooltipFlag flagIn) - { - tooltip.add(I18n.format("cloudParachute.ability") + " " + "\247r" + I18n.format( - "cloudParachute.ability." + EntityParachute.Type.fromOrdinal(stack.getMetadata()).name)); - tooltip.add(I18n.format("cloudParachute.ability.rightClick")); - } - - @Override - public ActionResult<ItemStack> onItemRightClick(final World world, final EntityPlayer player, final EnumHand hand) - { - final ItemStack stack = player.getHeldItem(hand); - - final EntityParachute parachute = new EntityParachute(world, player, EntityParachute.Type.fromOrdinal(stack.getMetadata())); - - final PlayerAether playerAether = PlayerAether.getPlayer(player); - - if (playerAether.getModule(PlayerParachuteModule.class).isParachuting()) - { - if (playerAether.getModule(PlayerParachuteModule.class).getParachuteType() == EntityParachute.Type.COLD) - { - if (playerAether.getModule(PlayerParachuteModule.class).getParachuteType().ordinal() != stack.getMetadata()) - { - playerAether.getModule(PlayerParachuteModule.class).parachuteEquipped(true); - - spawnParachute(playerAether, world, stack, parachute, hand); - } - else if (playerAether.getModule(PlayerParachuteModule.class).getParachuteType().ordinal() == stack.getMetadata()) - { - playerAether.getModule(PlayerParachuteModule.class).setParachuting(false, playerAether.getModule(PlayerParachuteModule.class).getParachuteType()); - } - } - } - else - { - spawnParachute(playerAether, world, stack, parachute, hand); - } - - return super.onItemRightClick(world, player, hand); - } - - public void spawnParachute(PlayerAether playerAether, World world, ItemStack stack, EntityParachute parachute, EnumHand hand) - { - ItemStack coldParachute = new ItemStack(ItemsAether.cloud_parachute); - - playerAether.getModule(PlayerParachuteModule.class).setParachuting(true, EntityParachute.Type.fromOrdinal(stack.getMetadata())); - - world.spawnEntity(parachute); - - stack.shrink(1); - - playerAether.getModule(PlayerParachuteModule.class).parachuteItem(coldParachute); - - ItemStack parachuteStack = playerAether.getModule(PlayerParachuteModule.class).getParachuteItem(); - - if (!playerAether.getEntity().inventory.addItemStackToInventory(parachuteStack)) - { - playerAether.getEntity().dropItem(parachuteStack, false); - } - - playerAether.getModule(PlayerParachuteModule.class).parachuteItemSlot(playerAether.getEntity().inventory.currentItem); - } - - @Override - public String getTranslationKey(final ItemStack stack) - { - return "item.aether." + EntityParachute.Type.fromOrdinal(stack.getMetadata()).name + "_cloud_parachute"; - } - -} diff --git a/src/main/java/com/gildedgames/aether/common/items/consumables/ItemCurative.java b/src/main/java/com/gildedgames/aether/common/items/consumables/ItemCurative.java deleted file mode 100644 index 58063d8d74..0000000000 --- a/src/main/java/com/gildedgames/aether/common/items/consumables/ItemCurative.java +++ /dev/null @@ -1,197 +0,0 @@ -package com.gildedgames.aether.common.items.consumables; - -import com.gildedgames.aether.api.entity.effects.IAetherStatusEffectPool; -import com.gildedgames.aether.api.entity.effects.IAetherStatusEffects; -import com.gildedgames.aether.api.registrar.CapabilitiesAether; -import com.gildedgames.aether.api.registrar.ItemsAether; -import com.gildedgames.aether.common.items.IUsesCustomSound; -import com.gildedgames.aether.common.items.ItemDropOnDeath; -import net.minecraft.advancements.CriteriaTriggers; -import net.minecraft.client.resources.I18n; -import net.minecraft.client.util.ITooltipFlag; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.EntityPlayerMP; -import net.minecraft.init.Items; -import net.minecraft.init.SoundEvents; -import net.minecraft.item.EnumAction; -import net.minecraft.item.ItemStack; -import net.minecraft.stats.StatList; -import net.minecraft.util.ActionResult; -import net.minecraft.util.EnumActionResult; -import net.minecraft.util.EnumHand; -import net.minecraft.util.SoundEvent; -import net.minecraft.util.text.TextFormatting; -import net.minecraft.world.World; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; - -import javax.annotation.Nullable; -import java.util.List; -import java.util.Objects; - -public class ItemCurative extends ItemDropOnDeath implements IUsesCustomSound -{ - private IAetherStatusEffects.effectTypes effect; - private boolean returnItem; - private int duration; - private EnumAction action; - - public ItemCurative(IAetherStatusEffects.effectTypes effect, boolean returnItem, int duration, EnumAction action) - { - this.effect = effect; - this.returnItem = returnItem; - this.duration = duration; - this.action = action; - - this.maxStackSize = 4; - } - - @Override - @SideOnly(Side.CLIENT) - public void addInformation(final ItemStack stack, @Nullable final World worldIn, final List<String> tooltip, final ITooltipFlag flagIn) - { - if (stack.getItem() == ItemsAether.bandage || stack.getItem() == ItemsAether.splint) - { - tooltip.add(String.format("%s: %s", - TextFormatting.GREEN + I18n.format("item.aether.tooltip.heals"), - TextFormatting.WHITE + I18n.format(effect.name))); - } - else - { - tooltip.add(String.format("%s: %s", - TextFormatting.GREEN + I18n.format("item.aether.tooltip.cures"), - TextFormatting.WHITE + I18n.format(effect.name))); - } - - if (stack.getItem() != ItemsAether.bandage && stack.getItem() != ItemsAether.splint) - { - tooltip.add(TextFormatting.GRAY + I18n.format("item.aether.curative.desc1")); - } - else if (stack.getItem() == ItemsAether.splint) - { - tooltip.add(TextFormatting.GRAY + I18n.format("item.aether.curative.fracture.desc1")); - } - - tooltip.add(TextFormatting.GRAY + I18n.format("item.aether.curative.desc2")); - } - - @Override - public ItemStack onItemUseFinish(ItemStack stack, World worldIn, EntityLivingBase entityLiving) - { - EntityPlayer entityPlayer = entityLiving instanceof EntityPlayer ? (EntityPlayer)entityLiving : null; - - if (entityPlayer instanceof EntityPlayerMP) - { - CriteriaTriggers.CONSUME_ITEM.trigger((EntityPlayerMP)entityPlayer, stack); - } - - if (entityPlayer != null) - { - entityPlayer.addStat(Objects.requireNonNull(StatList.getObjectUseStats(this))); - } - - if (entityPlayer == null || !entityPlayer.capabilities.isCreativeMode) - { - stack.shrink(1); - - IAetherStatusEffectPool statusEffectPool = (entityPlayer != null) - ? entityPlayer.getCapability(CapabilitiesAether.STATUS_EFFECT_POOL, null) - : entityLiving.getCapability(CapabilitiesAether.STATUS_EFFECT_POOL, null); - - if (statusEffectPool != null) - { - if (this.effect == IAetherStatusEffects.effectTypes.BLEED) - { - statusEffectPool.modifyActiveEffectBuildup(this.effect,statusEffectPool.getBuildupFromEffect(this.effect) - 55); - } - else if (this.effect == IAetherStatusEffects.effectTypes.FRACTURE) - { - if (statusEffectPool.isEffectApplied(this.effect)) - { - statusEffectPool.modifyActiveEffectTime(this.effect, 0.2); - } - else - { - statusEffectPool.modifyActiveEffectBuildup(this.effect,statusEffectPool.getBuildupFromEffect(this.effect) - 55); - } - } - else if (this.effect == IAetherStatusEffects.effectTypes.TOXIN) - { - if (statusEffectPool.isEffectApplied(this.effect)) - { - statusEffectPool.modifyActiveEffectApplication(this.effect, false); - } - - statusEffectPool.modifyActiveEffectBuildup(this.effect,statusEffectPool.getBuildupFromEffect(this.effect) - 55); - } - else if (this.effect == IAetherStatusEffects.effectTypes.COCKATRICE_VENOM) - { - if (statusEffectPool.isEffectApplied(this.effect)) - { - statusEffectPool.modifyActiveEffectApplication(this.effect, false); - } - - statusEffectPool.modifyActiveEffectBuildup(this.effect,statusEffectPool.getBuildupFromEffect(this.effect) - 55); - } - } - - if (this.returnItem) - { - if (stack.isEmpty()) - { - return new ItemStack(ItemsAether.scatterglass_vial); - } - - if (entityPlayer != null) - { - entityPlayer.inventory.addItemStackToInventory(new ItemStack(ItemsAether.scatterglass_vial)); - } - } - } - - return stack; - } - - @Override - public ActionResult<ItemStack> onItemRightClick(World worldIn, EntityPlayer playerIn, EnumHand handIn) - { - playerIn.setActiveHand(handIn); - return new ActionResult<>(EnumActionResult.SUCCESS, playerIn.getHeldItem(handIn)); - } - - @Override - public int getMaxItemUseDuration(ItemStack stack) - { - return this.duration; - } - - @Override - public EnumAction getItemUseAction(ItemStack stack) - { - return this.action; - } - - @Override - public boolean usesCustomSound(ItemStack stack) - { - if (stack.getItem() == ItemsAether.bandage || stack.getItem() == ItemsAether.splint) - { - return true; - } - - return false; - } - - @Override - public SoundEvent getDefaultSound() - { - return SoundEvents.ENTITY_GENERIC_DRINK; - } - - @Override - public SoundEvent getCustomSound() - { - return null; - } -} diff --git a/src/main/java/com/gildedgames/aether/common/items/consumables/ItemEggnog.java b/src/main/java/com/gildedgames/aether/common/items/consumables/ItemEggnog.java deleted file mode 100644 index 5d4d1b0d5b..0000000000 --- a/src/main/java/com/gildedgames/aether/common/items/consumables/ItemEggnog.java +++ /dev/null @@ -1,73 +0,0 @@ -package com.gildedgames.aether.common.items.consumables; - -import com.gildedgames.aether.common.capabilities.entity.player.PlayerAether; -import net.minecraft.advancements.CriteriaTriggers; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.EntityPlayerMP; -import net.minecraft.init.MobEffects; -import net.minecraft.item.EnumAction; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.potion.PotionEffect; -import net.minecraft.stats.StatList; -import net.minecraft.util.ActionResult; -import net.minecraft.util.EnumActionResult; -import net.minecraft.util.EnumHand; -import net.minecraft.world.World; - -public class ItemEggnog extends Item -{ - public ItemEggnog() - { - this.setMaxStackSize(1); - } - - @Override - public ItemStack onItemUseFinish(ItemStack stack, World worldIn, EntityLivingBase entityLiving) - { - EntityPlayer entityplayer = entityLiving instanceof EntityPlayer ? (EntityPlayer) entityLiving : null; - - if (entityplayer == null || !entityplayer.capabilities.isCreativeMode) - { - stack.shrink(1); - } - - if (entityplayer instanceof EntityPlayerMP) - { - CriteriaTriggers.CONSUME_ITEM.trigger((EntityPlayerMP) entityplayer, stack); - } - - if (!worldIn.isRemote) - { - entityLiving.addPotionEffect(new PotionEffect(MobEffects.REGENERATION, 200, 0)); - PlayerAether.getPlayer(entityplayer).setDrankEggnog(); - } - - if (entityplayer != null) - { - entityplayer.addStat(StatList.getObjectUseStats(this)); - } - - return stack; - } - - @Override - public int getMaxItemUseDuration(ItemStack stack) - { - return 32; - } - - @Override - public EnumAction getItemUseAction(ItemStack stack) - { - return EnumAction.DRINK; - } - - @Override - public ActionResult<ItemStack> onItemRightClick(World worldIn, EntityPlayer playerIn, EnumHand handIn) - { - playerIn.setActiveHand(handIn); - return new ActionResult<ItemStack>(EnumActionResult.SUCCESS, playerIn.getHeldItem(handIn)); - } -} diff --git a/src/main/java/com/gildedgames/aether/common/items/consumables/ItemEnchantedWyndberry.java b/src/main/java/com/gildedgames/aether/common/items/consumables/ItemEnchantedWyndberry.java deleted file mode 100644 index 13c740dc29..0000000000 --- a/src/main/java/com/gildedgames/aether/common/items/consumables/ItemEnchantedWyndberry.java +++ /dev/null @@ -1,28 +0,0 @@ -package com.gildedgames.aether.common.items.consumables; - -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.init.MobEffects; -import net.minecraft.item.ItemStack; -import net.minecraft.potion.PotionEffect; -import net.minecraft.world.World; - -public class ItemEnchantedWyndberry extends ItemAetherFood -{ - public ItemEnchantedWyndberry() - { - super(5, 0.6F, false); - } - - @Override - protected void onFoodEaten(ItemStack stack, World worldIn, EntityPlayer player) - { - if (!worldIn.isRemote) - { - player.addPotionEffect(new PotionEffect(MobEffects.RESISTANCE, 200, 1)); - player.addPotionEffect(new PotionEffect(MobEffects.HASTE, 200, 1)); - } - - super.onFoodEaten(stack, worldIn, player); - } - -} \ No newline at end of file diff --git a/src/main/java/com/gildedgames/aether/common/items/consumables/ItemHealingStone.java b/src/main/java/com/gildedgames/aether/common/items/consumables/ItemHealingStone.java deleted file mode 100644 index ceae4fc89e..0000000000 --- a/src/main/java/com/gildedgames/aether/common/items/consumables/ItemHealingStone.java +++ /dev/null @@ -1,183 +0,0 @@ -package com.gildedgames.aether.common.items.consumables; - -import com.gildedgames.aether.api.entity.effects.IAetherStatusEffectPool; -import com.gildedgames.aether.api.entity.effects.IAetherStatusEffects; -import com.gildedgames.aether.api.registrar.CapabilitiesAether; -import com.gildedgames.aether.api.registrar.ItemsAether; -import com.gildedgames.aether.common.items.IDropOnDeath; -import com.gildedgames.aether.common.items.IUsesCustomSound; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.init.SoundEvents; -import net.minecraft.item.EnumAction; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.util.*; -import net.minecraft.world.World; - -public class ItemHealingStone extends Item implements IDropOnDeath, IUsesCustomSound -{ - - public static final int MAX_USES = 5; - - public ItemHealingStone() - { - super(); - - this.addPropertyOverride(new ResourceLocation("uses"), (stack, world, entity) -> - { - if (!stack.isEmpty()) - { - return ItemHealingStone.getUsesLeft(stack) * 0.2F; - } - - return 1.0F; - }); - } - - private static void initTagCompound(ItemStack stack) - { - NBTTagCompound tag = new NBTTagCompound(); - - tag.setInteger("usesLeft", MAX_USES); - - stack.setTagCompound(tag); - } - - public static int getUsesLeft(ItemStack stack) - { - if (stack == null) - { - return 0; - } - - if (stack.getTagCompound() == null) - { - initTagCompound(stack); - } - - return stack.getTagCompound().getInteger("usesLeft"); - } - - public static void setUsesLeft(ItemStack stack, int usesLeft) - { - if (stack == null) - { - return; - } - - if (stack.getTagCompound() == null) - { - initTagCompound(stack); - } - - stack.getTagCompound().setInteger("usesLeft", usesLeft); - } - - @Override - public ActionResult<ItemStack> onItemRightClick(World worldIn, EntityPlayer player, EnumHand hand) - { - ItemStack stack = player.getHeldItem(hand); - - IAetherStatusEffectPool statusEffectPool = player.getCapability(CapabilitiesAether.STATUS_EFFECT_POOL, null); - - if (statusEffectPool != null && !statusEffectPool.isEffectApplied(IAetherStatusEffects.effectTypes.AMBROSIUM_POISONING)) - { - if (getUsesLeft(stack) > 0 && player.getAbsorptionAmount() < 20.0F) - { - player.setActiveHand(EnumHand.MAIN_HAND); - return new ActionResult<>(EnumActionResult.SUCCESS, stack); - } - } - - return new ActionResult<>(EnumActionResult.FAIL, stack); - } - - @Override - public ItemStack onItemUseFinish(ItemStack stack, World worldIn, EntityLivingBase entity) - { - setUsesLeft(stack, getUsesLeft(stack) - 1); - - if (!worldIn.isRemote) - { - IAetherStatusEffectPool statusEffectPool = entity.getCapability(CapabilitiesAether.STATUS_EFFECT_POOL, null); - - if (statusEffectPool != null) - { - if (!statusEffectPool.effectExists(IAetherStatusEffects.effectTypes.AMBROSIUM_POISONING)) - { - statusEffectPool.applyStatusEffect(IAetherStatusEffects.effectTypes.AMBROSIUM_POISONING, 25); - } - else - { - statusEffectPool.modifyActiveEffectBuildup(IAetherStatusEffects.effectTypes.AMBROSIUM_POISONING, - statusEffectPool.getBuildupFromEffect(IAetherStatusEffects.effectTypes.AMBROSIUM_POISONING) + 25); - } - } - - if (entity.getHealth() < entity.getMaxHealth()) - { - float dif = entity.getMaxHealth() - entity.getHealth(); - float leftOver = 4.0F - dif; - - if (dif > 4.0F) - { - entity.heal(4.0F); - } - else if (leftOver > 0.0F) - { - entity.heal(dif); - entity.setAbsorptionAmount(Math.min(20.0F, entity.getAbsorptionAmount() + leftOver)); - } - } - else - { - entity.setAbsorptionAmount(Math.min(20.0F, entity.getAbsorptionAmount() + 4.0F)); - } - } - - if (getUsesLeft(stack) <= 0) - { - stack = new ItemStack(ItemsAether.healing_stone_depleted); - } - - return stack; - } - - @Override - public EnumAction getItemUseAction(ItemStack stack) - { - return EnumAction.DRINK; - } - - @Override - public int getMaxItemUseDuration(ItemStack stack) - { - return 32; - } - - @Override - public boolean getShareTag() - { - return true; - } - - @Override - public boolean usesCustomSound(ItemStack stack) - { - return true; - } - - @Override - public SoundEvent getDefaultSound() - { - return SoundEvents.ENTITY_GENERIC_DRINK; - } - - @Override - public SoundEvent getCustomSound() - { - return null; - } -} diff --git a/src/main/java/com/gildedgames/aether/common/items/consumables/ItemShardOfLife.java b/src/main/java/com/gildedgames/aether/common/items/consumables/ItemShardOfLife.java deleted file mode 100644 index fda9549ec9..0000000000 --- a/src/main/java/com/gildedgames/aether/common/items/consumables/ItemShardOfLife.java +++ /dev/null @@ -1,73 +0,0 @@ -package com.gildedgames.aether.common.items.consumables; - -import com.gildedgames.aether.common.items.IDropOnDeath; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.init.MobEffects; -import net.minecraft.item.EnumAction; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.potion.PotionEffect; -import net.minecraft.util.ActionResult; -import net.minecraft.util.EnumActionResult; -import net.minecraft.util.EnumHand; -import net.minecraft.world.World; - -public class ItemShardOfLife extends Item implements IDropOnDeath -{ - - public ItemShardOfLife() - { - super(); - } - - @Override - public ActionResult<ItemStack> onItemRightClick(World worldIn, EntityPlayer playerIn, EnumHand hand) - { - ItemStack stack = playerIn.getHeldItem(hand); - playerIn.setActiveHand(hand); - - return new ActionResult<>(EnumActionResult.SUCCESS, stack); - } - - @Override - public ItemStack onItemUseFinish(ItemStack stack, World worldIn, EntityLivingBase entity) - { - if (!worldIn.isRemote) - { - entity.addPotionEffect(new PotionEffect(MobEffects.REGENERATION, 600, 0)); - } - - boolean decreaseStackSize = true; - - if (entity instanceof EntityPlayer) - { - EntityPlayer player = (EntityPlayer) entity; - - if (player.capabilities.isCreativeMode) - { - decreaseStackSize = false; - } - } - - if (decreaseStackSize) - { - stack.shrink(1); - } - - return stack; - } - - @Override - public EnumAction getItemUseAction(ItemStack stack) - { - return EnumAction.DRINK; - } - - @Override - public int getMaxItemUseDuration(ItemStack stack) - { - return 32; - } - -} diff --git a/src/main/java/com/gildedgames/aether/common/items/consumables/ItemSkyrootConsumableBucket.java b/src/main/java/com/gildedgames/aether/common/items/consumables/ItemSkyrootConsumableBucket.java deleted file mode 100644 index f44a18cd59..0000000000 --- a/src/main/java/com/gildedgames/aether/common/items/consumables/ItemSkyrootConsumableBucket.java +++ /dev/null @@ -1,122 +0,0 @@ -package com.gildedgames.aether.common.items.consumables; - -import com.gildedgames.aether.api.entity.effects.IAetherStatusEffectPool; -import com.gildedgames.aether.api.entity.effects.IAetherStatusEffects; -import com.gildedgames.aether.api.registrar.CapabilitiesAether; -import com.gildedgames.aether.api.registrar.ItemsAether; -import com.gildedgames.aether.common.init.CreativeTabsAether; -import com.gildedgames.aether.common.items.IDropOnDeath; -import net.minecraft.advancements.CriteriaTriggers; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.EntityPlayerMP; -import net.minecraft.init.Items; -import net.minecraft.init.MobEffects; -import net.minecraft.item.EnumAction; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.potion.PotionEffect; -import net.minecraft.stats.StatList; -import net.minecraft.util.ActionResult; -import net.minecraft.util.EnumActionResult; -import net.minecraft.util.EnumHand; -import net.minecraft.world.World; - -import java.util.Objects; - -public class ItemSkyrootConsumableBucket extends Item implements IDropOnDeath -{ - public ItemSkyrootConsumableBucket() - { - this.setMaxStackSize(1); - - this.setCreativeTab(CreativeTabsAether.TAB_MISCELLANEOUS); - } - - @Override - public ActionResult<ItemStack> onItemRightClick(World worldIn, EntityPlayer playerIn, EnumHand hand) - { - ItemStack stack = playerIn.getHeldItem(hand); - playerIn.setActiveHand(hand); - - return new ActionResult<>(EnumActionResult.SUCCESS, stack); - } - - @Override - public ItemStack onItemUseFinish(ItemStack stack, World world, EntityLivingBase entityLiving) - { - EntityPlayer entityPlayer = entityLiving instanceof EntityPlayer ? (EntityPlayer)entityLiving : null; - - if (entityPlayer instanceof EntityPlayerMP) - { - CriteriaTriggers.CONSUME_ITEM.trigger((EntityPlayerMP)entityPlayer, stack); - } - - if (entityPlayer != null) - { - entityPlayer.addStat(Objects.requireNonNull(StatList.getObjectUseStats(this))); - - if (!world.isRemote) - { - if (stack.getItem() == ItemsAether.skyroot_milk_bucket) - { - entityPlayer.curePotionEffects(new ItemStack(Items.MILK_BUCKET)); - } - } - } - - if (entityPlayer == null || !entityPlayer.capabilities.isCreativeMode) - { - IAetherStatusEffectPool statusEffectPool = (entityPlayer != null) - ? entityPlayer.getCapability(CapabilitiesAether.STATUS_EFFECT_POOL, null) - : entityLiving.getCapability(CapabilitiesAether.STATUS_EFFECT_POOL, null); - - if (!world.isRemote) - { - if (statusEffectPool != null) - { - if (stack.getItem() == ItemsAether.skyroot_poison_bucket) - { - if (!statusEffectPool.effectExists(IAetherStatusEffects.effectTypes.TOXIN)) - { - statusEffectPool.applyStatusEffect(IAetherStatusEffects.effectTypes.TOXIN, 50); - } - else - { - statusEffectPool.modifyActiveEffectBuildup(IAetherStatusEffects.effectTypes.TOXIN, - statusEffectPool.getBuildupFromEffect(IAetherStatusEffects.effectTypes.TOXIN) + 50); - } - } - } - } - - stack.shrink(1); - } - - return stack.getCount() <= 0 ? new ItemStack(ItemsAether.skyroot_bucket) : stack; - } - - private void applyEffect(ItemStack stack, World world, EntityLivingBase player) - { - if (stack.getItem() == ItemsAether.skyroot_milk_bucket) - { - player.curePotionEffects(new ItemStack(Items.MILK_BUCKET)); - } - else if (stack.getItem() == ItemsAether.skyroot_poison_bucket) - { - player.addPotionEffect(new PotionEffect(MobEffects.POISON, 100, 3)); - } - } - - @Override - public EnumAction getItemUseAction(ItemStack stack) - { - return EnumAction.DRINK; - } - - @Override - public int getMaxItemUseDuration(ItemStack stack) - { - return 32; - } -} diff --git a/src/main/java/com/gildedgames/aether/common/items/consumables/ItemStomperPop.java b/src/main/java/com/gildedgames/aether/common/items/consumables/ItemStomperPop.java deleted file mode 100644 index 63f8933744..0000000000 --- a/src/main/java/com/gildedgames/aether/common/items/consumables/ItemStomperPop.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.gildedgames.aether.common.items.consumables; - -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraft.world.World; - -public class ItemStomperPop extends ItemAetherFood -{ - - public ItemStomperPop() - { - super(20, 0.5F, false); - } - - @Override - public void onCreated(ItemStack stack, World worldIn, EntityPlayer player) - { - //Play scary sound - } - -} diff --git a/src/main/java/com/gildedgames/aether/common/items/consumables/ItemSwetJelly.java b/src/main/java/com/gildedgames/aether/common/items/consumables/ItemSwetJelly.java deleted file mode 100644 index d3bf63aa81..0000000000 --- a/src/main/java/com/gildedgames/aether/common/items/consumables/ItemSwetJelly.java +++ /dev/null @@ -1,42 +0,0 @@ -package com.gildedgames.aether.common.items.consumables; - -import com.gildedgames.aether.common.entities.monsters.EntitySwet; -import net.minecraft.creativetab.CreativeTabs; -import net.minecraft.item.ItemStack; -import net.minecraft.util.NonNullList; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; - -import java.util.HashMap; - -public class ItemSwetJelly extends ItemAetherFood -{ - - public ItemSwetJelly() - { - super(4, 0.2F, false); - - this.setHasSubtypes(true); - } - - @Override - @SideOnly(Side.CLIENT) - public void getSubItems(final CreativeTabs tab, final NonNullList<ItemStack> subItems) - { - if (!this.isInCreativeTab(tab)) - { - return; - } - - for (final EntitySwet.Type types : EntitySwet.Type.values()) - { - subItems.add(new ItemStack(this, 1, types.ordinal())); - } - } - - @Override - public String getTranslationKey(final ItemStack stack) - { - return "item.aether.swet_jelly." + EntitySwet.Type.fromOrdinal(stack.getMetadata()).name; - } -} \ No newline at end of file diff --git a/src/main/java/com/gildedgames/aether/common/items/consumables/ItemTea.java b/src/main/java/com/gildedgames/aether/common/items/consumables/ItemTea.java deleted file mode 100644 index a26b36c74e..0000000000 --- a/src/main/java/com/gildedgames/aether/common/items/consumables/ItemTea.java +++ /dev/null @@ -1,133 +0,0 @@ -package com.gildedgames.aether.common.items.consumables; - -import com.gildedgames.aether.api.entity.effects.IAetherStatusEffectPool; -import com.gildedgames.aether.api.entity.effects.IAetherStatusEffects; -import com.gildedgames.aether.api.registrar.CapabilitiesAether; -import com.gildedgames.aether.api.registrar.ItemsAether; -import com.gildedgames.aether.common.items.ItemDropOnDeath; -import net.minecraft.advancements.CriteriaTriggers; -import net.minecraft.client.resources.I18n; -import net.minecraft.client.util.ITooltipFlag; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.EntityPlayerMP; -import net.minecraft.item.EnumAction; -import net.minecraft.item.ItemStack; -import net.minecraft.stats.StatList; -import net.minecraft.util.ActionResult; -import net.minecraft.util.EnumActionResult; -import net.minecraft.util.EnumHand; -import net.minecraft.util.StringUtils; -import net.minecraft.util.math.MathHelper; -import net.minecraft.util.text.TextFormatting; -import net.minecraft.world.World; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; - -import javax.annotation.Nullable; -import java.util.List; -import java.util.Objects; - -public class ItemTea extends ItemDropOnDeath -{ - private IAetherStatusEffects.effectTypes effect; - - private boolean hasExtraInfo; - - public ItemTea(IAetherStatusEffects.effectTypes effect, boolean hasExtraInfo) - { - this.effect = effect; - - this.hasExtraInfo = hasExtraInfo; - - this.maxStackSize = 1; - } - - @Override - @SideOnly(Side.CLIENT) - public void addInformation(final ItemStack stack, @Nullable final World worldIn, final List<String> tooltip, final ITooltipFlag flagIn) - { - String time = getEffectTimeInfo(effect.activeEffectTime); - - tooltip.add(String.format("%s (%s)", - TextFormatting.BLUE + I18n.format(effect.name), - TextFormatting.BLUE + time)); - - if (this.hasExtraInfo) - { - tooltip.add(""); - - tooltip.add(TextFormatting.DARK_PURPLE + I18n.format("item.aether.tea.applied.desc")); - tooltip.add(TextFormatting.BLUE + I18n.format(this.getTranslationKey() + ".desc")); - } - } - - private static String getEffectTimeInfo(int time) - { - int i = time; - int j = time / 60; - i = i % 60; - return i < 10 ? j + ":0" + i : j + ":" + i; - } - - @Override - public ItemStack onItemUseFinish(ItemStack stack, World worldIn, EntityLivingBase entityLiving) - { - EntityPlayer entityPlayer = entityLiving instanceof EntityPlayer ? (EntityPlayer)entityLiving : null; - - if (entityPlayer instanceof EntityPlayerMP) - { - CriteriaTriggers.CONSUME_ITEM.trigger((EntityPlayerMP)entityPlayer, stack); - } - - if (entityPlayer != null) - { - entityPlayer.addStat(Objects.requireNonNull(StatList.getObjectUseStats(this))); - } - - if (entityPlayer == null || !entityPlayer.capabilities.isCreativeMode) - { - stack.shrink(1); - - IAetherStatusEffectPool statusEffectPool = (entityPlayer != null) - ? entityPlayer.getCapability(CapabilitiesAether.STATUS_EFFECT_POOL, null) - : entityLiving.getCapability(CapabilitiesAether.STATUS_EFFECT_POOL, null); - - if (statusEffectPool != null) - { - statusEffectPool.applyStatusEffect(this.effect, 100); - } - - if (stack.isEmpty()) - { - return new ItemStack(ItemsAether.scatterglass_vial); - } - - if (entityPlayer != null) - { - entityPlayer.inventory.addItemStackToInventory(new ItemStack(ItemsAether.scatterglass_vial)); - } - } - - return stack; - } - - @Override - public ActionResult<ItemStack> onItemRightClick(World worldIn, EntityPlayer playerIn, EnumHand handIn) - { - playerIn.setActiveHand(handIn); - return new ActionResult<>(EnumActionResult.SUCCESS, playerIn.getHeldItem(handIn)); - } - - @Override - public int getMaxItemUseDuration(ItemStack stack) - { - return 32; - } - - @Override - public EnumAction getItemUseAction(ItemStack stack) - { - return EnumAction.DRINK; - } -} diff --git a/src/main/java/com/gildedgames/aether/common/items/consumables/ItemWaterVial.java b/src/main/java/com/gildedgames/aether/common/items/consumables/ItemWaterVial.java deleted file mode 100644 index 74e37fda46..0000000000 --- a/src/main/java/com/gildedgames/aether/common/items/consumables/ItemWaterVial.java +++ /dev/null @@ -1,78 +0,0 @@ -package com.gildedgames.aether.common.items.consumables; - -import com.gildedgames.aether.api.registrar.ItemsAether; -import com.gildedgames.aether.common.items.ItemDropOnDeath; -import net.minecraft.advancements.CriteriaTriggers; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.EntityPlayerMP; -import net.minecraft.item.EnumAction; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.stats.StatList; -import net.minecraft.util.ActionResult; -import net.minecraft.util.EnumActionResult; -import net.minecraft.util.EnumHand; -import net.minecraft.world.World; - -import java.util.Objects; - -public class ItemWaterVial extends ItemDropOnDeath -{ - public ItemWaterVial() - { - this.maxStackSize = 1; - } - - @Override - public ItemStack onItemUseFinish(ItemStack stack, World worldIn, EntityLivingBase entityLiving) - { - EntityPlayer entityplayer = entityLiving instanceof EntityPlayer ? (EntityPlayer)entityLiving : null; - - if (entityplayer instanceof EntityPlayerMP) - { - CriteriaTriggers.CONSUME_ITEM.trigger((EntityPlayerMP)entityplayer, stack); - } - - if (entityplayer != null) - { - entityplayer.addStat(Objects.requireNonNull(StatList.getObjectUseStats(this))); - } - - if (entityplayer == null || !entityplayer.capabilities.isCreativeMode) - { - stack.shrink(1); - - if (stack.isEmpty()) - { - return new ItemStack(ItemsAether.scatterglass_vial); - } - - if (entityplayer != null) - { - entityplayer.inventory.addItemStackToInventory(new ItemStack(ItemsAether.scatterglass_vial)); - } - } - - return stack; - } - - @Override - public int getMaxItemUseDuration(ItemStack stack) - { - return 32; - } - - @Override - public EnumAction getItemUseAction(ItemStack stack) - { - return EnumAction.DRINK; - } - - @Override - public ActionResult<ItemStack> onItemRightClick(World worldIn, EntityPlayer playerIn, EnumHand handIn) - { - playerIn.setActiveHand(handIn); - return new ActionResult<>(EnumActionResult.SUCCESS, playerIn.getHeldItem(handIn)); - } -} diff --git a/src/main/java/com/gildedgames/aether/common/items/irradiated/ItemIrradiatedDust.java b/src/main/java/com/gildedgames/aether/common/items/irradiated/ItemIrradiatedDust.java deleted file mode 100644 index 395a33361c..0000000000 --- a/src/main/java/com/gildedgames/aether/common/items/irradiated/ItemIrradiatedDust.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.gildedgames.aether.common.items.irradiated; - -import com.gildedgames.aether.common.items.IDropOnDeath; -import net.minecraft.item.ItemStack; - -public class ItemIrradiatedDust extends ItemIrradiatedVisuals implements IDropOnDeath -{ - @Override - public int getItemBurnTime(ItemStack itemStack) - { - return 9600; - } -} diff --git a/src/main/java/com/gildedgames/aether/common/items/irradiated/ItemIrradiatedVisuals.java b/src/main/java/com/gildedgames/aether/common/items/irradiated/ItemIrradiatedVisuals.java deleted file mode 100644 index 6723d184fc..0000000000 --- a/src/main/java/com/gildedgames/aether/common/items/irradiated/ItemIrradiatedVisuals.java +++ /dev/null @@ -1,96 +0,0 @@ -package com.gildedgames.aether.common.items.irradiated; - -import com.gildedgames.aether.common.items.IDropOnDeath; -import net.minecraft.client.Minecraft; -import net.minecraft.client.renderer.GlStateManager; -import net.minecraft.client.renderer.RenderItem; -import net.minecraft.client.renderer.block.model.IBakedModel; -import net.minecraft.client.renderer.texture.TextureMap; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.util.ResourceLocation; -import net.minecraftforge.fml.common.FMLCommonHandler; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; - -public class ItemIrradiatedVisuals extends Item implements IDropOnDeath -{ - private static ResourceLocation RES_ITEM_GLINT; - - static - { - if (FMLCommonHandler.instance().getEffectiveSide() == Side.CLIENT) - { - RES_ITEM_GLINT = new ResourceLocation("textures/misc/enchanted_item_glint.png"); - } - } - - @Override - public boolean hasEffect(ItemStack stack) - { - final RenderItem itemRenderer = Minecraft.getMinecraft().getRenderItem(); - - Minecraft mc = Minecraft.getMinecraft(); - - GlStateManager.pushMatrix(); - - GlStateManager.disableLighting(); - - mc.getTextureManager().bindTexture(TextureMap.LOCATION_BLOCKS_TEXTURE); - - IBakedModel model = itemRenderer.getItemModelMesher().getItemModel(stack); - - this.renderEffect(model); - - GlStateManager.enableLighting(); - - GlStateManager.popMatrix(); - - return false; - } - - @SideOnly(Side.CLIENT) - private void renderEffect(IBakedModel model) - { - Minecraft mc = Minecraft.getMinecraft(); - - GlStateManager.depthMask(false); - GlStateManager.depthFunc(514); - GlStateManager.disableLighting(); - GlStateManager.blendFunc(GlStateManager.SourceFactor.SRC_COLOR, GlStateManager.DestFactor.ONE); - - mc.getTextureManager().bindTexture(RES_ITEM_GLINT); - - GlStateManager.matrixMode(5890); - GlStateManager.pushMatrix(); - GlStateManager.scale(8.0F, 8.0F, 8.0F); - - float f = (float) (Minecraft.getSystemTime() % 10000L) / 10000.0F / 8.0F; - - GlStateManager.translate(f, 0.0F, 0.0F); - GlStateManager.rotate(-50.0F, 0.0F, 0.0F, 1.0F); - - mc.getRenderItem().renderModel(model, -999999992); - - GlStateManager.popMatrix(); - GlStateManager.pushMatrix(); - GlStateManager.scale(8.0F, 8.0F, 8.0F); - - float f1 = (float) (Minecraft.getSystemTime() % 12873L) / 12873.0F / 8.0F; - - GlStateManager.translate(-f1, 0.0F, 0.0F); - GlStateManager.rotate(10.0F, 0.0F, 0.0F, 1.0F); - - mc.getRenderItem().renderModel(model, -999999992); - - GlStateManager.popMatrix(); - GlStateManager.matrixMode(5888); - GlStateManager.blendFunc(GlStateManager.SourceFactor.SRC_ALPHA, GlStateManager.DestFactor.ONE_MINUS_SRC_ALPHA); - GlStateManager.enableLighting(); - GlStateManager.depthFunc(515); - GlStateManager.depthMask(true); - - mc.getTextureManager().bindTexture(TextureMap.LOCATION_BLOCKS_TEXTURE); - } - -} diff --git a/src/main/java/com/gildedgames/aether/common/items/other/ItemAetherRecord.java b/src/main/java/com/gildedgames/aether/common/items/other/ItemAetherRecord.java deleted file mode 100644 index cedf99aaab..0000000000 --- a/src/main/java/com/gildedgames/aether/common/items/other/ItemAetherRecord.java +++ /dev/null @@ -1,33 +0,0 @@ -package com.gildedgames.aether.common.items.other; - -import com.gildedgames.aether.common.AetherCore; -import com.gildedgames.aether.common.init.CreativeTabsAether; -import net.minecraft.item.ItemRecord; -import net.minecraft.util.SoundEvent; -import net.minecraft.util.text.TextComponentTranslation; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; - -public class ItemAetherRecord extends ItemRecord -{ - public ItemAetherRecord(final String recordName, final String sound) - { - super(recordName, new SoundEvent(AetherCore.getResource(sound))); - - this.setCreativeTab(CreativeTabsAether.TAB_MISCELLANEOUS); - } - - @Override - @SideOnly(Side.CLIENT) - public String getRecordNameLocal() - { - return new TextComponentTranslation(this.getTranslationKey() + ".desc").getFormattedText(); - } - - //TODO: Reimplement for 1.12.2? - /*@Override - public ResourceLocation getRecordResource(String name) - { - return AetherCore.getResource(name); - }*/ -} diff --git a/src/main/java/com/gildedgames/aether/common/items/other/ItemAmbrosiumShard.java b/src/main/java/com/gildedgames/aether/common/items/other/ItemAmbrosiumShard.java deleted file mode 100644 index 48ed0b4564..0000000000 --- a/src/main/java/com/gildedgames/aether/common/items/other/ItemAmbrosiumShard.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.gildedgames.aether.common.items.other; - -import com.gildedgames.aether.common.items.ItemDropOnDeath; -import net.minecraft.item.ItemStack; - -public class ItemAmbrosiumShard extends ItemDropOnDeath -{ - @Override - public int getItemBurnTime(ItemStack itemStack) - { - return 1600; - } -} diff --git a/src/main/java/com/gildedgames/aether/common/items/other/ItemMoaEgg.java b/src/main/java/com/gildedgames/aether/common/items/other/ItemMoaEgg.java deleted file mode 100644 index fe45ea5e40..0000000000 --- a/src/main/java/com/gildedgames/aether/common/items/other/ItemMoaEgg.java +++ /dev/null @@ -1,240 +0,0 @@ -package com.gildedgames.aether.common.items.other; - -import com.gildedgames.aether.api.registrar.BlocksAether; -import com.gildedgames.aether.api.registrar.ItemsAether; -import com.gildedgames.aether.common.blocks.natural.BlockMoaEgg; -import com.gildedgames.aether.common.entities.animals.EntityMoa; -import com.gildedgames.aether.common.entities.genes.GeneUtil; -import com.gildedgames.aether.common.entities.genes.moa.MoaGenePool; -import com.gildedgames.aether.common.entities.tiles.TileEntityMoaEgg; -import com.gildedgames.aether.common.items.IDropOnDeath; -import net.minecraft.block.SoundType; -import net.minecraft.block.state.IBlockState; -import net.minecraft.client.resources.I18n; -import net.minecraft.client.util.ITooltipFlag; -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.IItemPropertyGetter; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.util.*; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.text.TextFormatting; -import net.minecraft.world.World; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; - -import javax.annotation.Nullable; -import java.util.List; - -public class ItemMoaEgg extends Item implements IDropOnDeath -{ - - private final boolean creativeEgg; - - public ItemMoaEgg(final boolean creativeEgg) - { - super(); - - this.creativeEgg = creativeEgg; - - this.setHasSubtypes(true); - - this.maxStackSize = 1; - - this.addPropertyOverride(new ResourceLocation("curved"), new ModelProperty("curved")); - this.addPropertyOverride(new ResourceLocation("flat"), new ModelProperty("flat")); - this.addPropertyOverride(new ResourceLocation("pointed"), new ModelProperty("pointed")); - } - - public static void setGenePool(final ItemStack stack, final MoaGenePool pool) - { - if (stack.getTagCompound() == null) - { - stack.setTagCompound(new NBTTagCompound()); - } - - final NBTTagCompound poolTag = new NBTTagCompound(); - - pool.write(poolTag); - - stack.getTagCompound().setTag("pool", poolTag); - } - - public static MoaGenePool getGenePool(final ItemStack stack) - { - if (stack.getTagCompound() == null) - { - ItemMoaEgg.setGenePool(stack, new MoaGenePool()); - } - - final NBTTagCompound poolTag = stack.getTagCompound().getCompoundTag("pool"); - - final MoaGenePool pool = new MoaGenePool(); - - pool.read(poolTag); - - return pool; - } - - @Override - @SideOnly(Side.CLIENT) - public void addInformation(final ItemStack stack, final World world, final List<String> creativeList, final ITooltipFlag flag) - { - final MoaGenePool genePool = ItemMoaEgg.getGenePool(stack); - - if (genePool.getFeathers() != null && stack.getItem() != ItemsAether.rainbow_moa_egg) - { - creativeList.add("\u2022 " + I18n.format("moa.feathers", genePool.getFeathers().gene().localizedName())); - creativeList.add("\u2022 " + I18n.format("moa.keratin", genePool.getKeratin().gene().localizedName())); - creativeList.add("\u2022 " + I18n.format("moa.eyes", genePool.getEyes().gene().localizedName())); - creativeList.add("\u2022 " + I18n.format("moa.feather_type", genePool.getMarks().gene().localizedName())); - - creativeList.add(""); - - /* - creativeList.add(TextFormatting.YELLOW + "" + TextFormatting.ITALIC + "" + I18n - .format("moa.wing_strength", genePool.getWingStrength().gene().localizedName())); - */ - } - } - - @Override - public EnumActionResult onItemUse(final EntityPlayer player, final World world, final BlockPos pos, final EnumHand hand, final EnumFacing facing, - final float hitX, final float hitY, final float hitZ) - { - final ItemStack stack = player.getHeldItem(hand); - - final IBlockState state = world.getBlockState(pos); - - final boolean replaceable = state.getBlock().isReplaceable(world, pos); - - final int yOffset = replaceable ? 0 : 1; - - if (stack.getCount() == 0) - { - return EnumActionResult.FAIL; - } - else if (!player.canPlayerEdit(pos, facing, stack)) - { - return EnumActionResult.FAIL; - } - else if ((world.isAirBlock(pos.add(0, yOffset, 0)) || replaceable) - && BlocksAether.moa_egg.canPlaceBlockAt(world, pos.add(0, yOffset, 0))) - { - if (player.capabilities.isCreativeMode || this.creativeEgg) - { - if (!world.isRemote) - { - final EntityMoa moa = new EntityMoa(world, GeneUtil.getRandomSeed(world)); - moa.setPosition(pos.getX() + 0.5F, pos.getY() + (moa.height / 2), pos.getZ() + 0.5F); - - final MoaGenePool stackGenePool = ItemMoaEgg.getGenePool(stack); - - moa.setRaisedByPlayer(true); - - world.spawnEntity(moa); - - final MoaGenePool genePool = moa.getGenePool(); - - if (this.creativeEgg) - { - genePool.transformFromSeed(GeneUtil.getRandomSeed(world)); - } - else - { - genePool.transformFromParents(stackGenePool.getStorage().getSeed(), stackGenePool.getStorage().getFatherSeed(), - stackGenePool.getStorage().getMotherSeed()); - } - } - - stack.shrink(1); - - return EnumActionResult.SUCCESS; - } - else if (world.checkNoEntityCollision(BlockMoaEgg.BOUNDING_BOX.offset(pos.getX(), pos.getY() + 1, pos.getZ())) && - world.setBlockState(pos.add(0, yOffset, 0), BlocksAether.moa_egg.getDefaultState())) - { - final SoundType soundtype = world.getBlockState(pos).getBlock().getSoundType(world.getBlockState(pos), world, pos, player); - world.playSound(player, pos, soundtype.getPlaceSound(), SoundCategory.BLOCKS, - (soundtype.getVolume() + 1.0F) / 2.0F, soundtype.getPitch() * 0.8F); - - final TileEntityMoaEgg egg = (TileEntityMoaEgg) world.getTileEntity(pos.add(0, yOffset, 0)); - - if (egg != null) - { - final MoaGenePool stackGenes = ItemMoaEgg.getGenePool(stack); - final MoaGenePool teGenes = egg.getGenePool(); - - teGenes.transformFromParents(stackGenes.getStorage().getSeed(), stackGenes.getStorage().getFatherSeed(), - stackGenes.getStorage().getMotherSeed()); - - egg.setPlayerPlaced(); - } - - stack.shrink(1); - - return EnumActionResult.SUCCESS; - } - } - - return EnumActionResult.PASS; - } - - private boolean checkCollision(BlockPos pos, World world, float yOffset) - { - return false; - } - - @Override - public String getItemStackDisplayName(final ItemStack stack) - { - return this.creativeEgg ? super.getItemStackDisplayName(stack) : super.getItemStackDisplayName(stack); - } - - @Override - public boolean getShareTag() - { - return true; - } - - @Override - public void onUpdate(final ItemStack stack, final World worldIn, final Entity entityIn, final int itemSlot, final boolean isSelected) - { - - } - - private static class ModelProperty implements IItemPropertyGetter - { - - private final String propertyName; - - public ModelProperty(final String propertyName) - { - this.propertyName = propertyName; - } - - @Override - @SideOnly(Side.CLIENT) - public float apply(final ItemStack stack, @Nullable final World worldIn, @Nullable final EntityLivingBase entityIn) - { - final MoaGenePool genePool = ItemMoaEgg.getGenePool(stack); - - if (genePool.getMarks() != null) - { - final String mark = genePool.getMarks().gene().getResourceName(); - - if (mark.equals(this.propertyName)) - { - return 1.0F; - } - } - - return 0.0F; - } - - } - -} diff --git a/src/main/java/com/gildedgames/aether/common/items/other/ItemMoaFeather.java b/src/main/java/com/gildedgames/aether/common/items/other/ItemMoaFeather.java deleted file mode 100644 index 7cc439f874..0000000000 --- a/src/main/java/com/gildedgames/aether/common/items/other/ItemMoaFeather.java +++ /dev/null @@ -1,100 +0,0 @@ -package com.gildedgames.aether.common.items.other; - -import com.gildedgames.aether.common.items.IDropOnDeath; -import net.minecraft.client.resources.I18n; -import net.minecraft.client.util.ITooltipFlag; -import net.minecraft.creativetab.CreativeTabs; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.util.NonNullList; -import net.minecraft.util.text.TextFormatting; -import net.minecraft.world.World; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; - -import java.awt.*; -import java.util.List; - -public class ItemMoaFeather extends Item implements IDropOnDeath -{ - - public ItemMoaFeather() - { - this.setHasSubtypes(true); - } - - public static void setColor(final ItemStack stack, final String colorName, final int color) - { - if (stack.getTagCompound() == null) - { - stack.setTagCompound(new NBTTagCompound()); - } - - final NBTTagCompound tag = new NBTTagCompound(); - - tag.setString("colorName", colorName); - tag.setInteger("color", color); - - stack.getTagCompound().setTag("featherColor", tag); - } - - public static int getColor(final ItemStack stack) - { - if (stack.getTagCompound() == null) - { - ItemMoaFeather.setColor(stack, "", 0xFFFFFF); - } - - final NBTTagCompound tag = stack.getTagCompound().getCompoundTag("featherColor"); - - return tag.getInteger("color"); - } - - @SideOnly(Side.CLIENT) - public static String getColorName(final ItemStack stack) - { - if (stack.getTagCompound() == null) - { - ItemMoaFeather.setColor(stack, "", 0xFFFFFF); - } - - final NBTTagCompound tag = stack.getTagCompound().getCompoundTag("featherColor"); - - return tag.getString("colorName"); - } - - @Override - @SideOnly(Side.CLIENT) - public void getSubItems(final CreativeTabs tab, final NonNullList<ItemStack> subItems) - { - if (!this.isInCreativeTab(tab)) - { - return; - } - - final ItemStack feather = new ItemStack(this); - ItemMoaFeather.setColor(feather, "moa.feathers.blue", new Color(0x83c4e2).getRGB()); - - subItems.add(feather); - } - - @Override - @SideOnly(Side.CLIENT) - public void addInformation(final ItemStack stack, final World world, final List<String> tooltip, final ITooltipFlag flag) - { - final String colorName = ItemMoaFeather.getColorName(stack); - - if (!colorName.isEmpty()) - { - tooltip.add(TextFormatting.GRAY + "" + TextFormatting.ITALIC + "Color: " + I18n.format(colorName)); - } - } - - @Override - public boolean getShareTag() - { - return true; - } - -} diff --git a/src/main/java/com/gildedgames/aether/common/items/other/ItemMoaFeed.java b/src/main/java/com/gildedgames/aether/common/items/other/ItemMoaFeed.java deleted file mode 100644 index 3d4dd6ac31..0000000000 --- a/src/main/java/com/gildedgames/aether/common/items/other/ItemMoaFeed.java +++ /dev/null @@ -1,38 +0,0 @@ -package com.gildedgames.aether.common.items.other; - -import com.gildedgames.aether.common.items.IDropOnDeath; -import net.minecraft.item.Item; - -public class ItemMoaFeed extends Item implements IDropOnDeath -{ - public final ItemMoaFeed.MoaFeedType feedType; - - public ItemMoaFeed(ItemMoaFeed.MoaFeedType feedType) - { - this.feedType = feedType; - } - - public double getHealingAmount() - { - return this.feedType.getHealingAmount(); - } - - public enum MoaFeedType - { - BASIC(5.0D), - BLUEBERRY(10.0D), - ENCHANTED_BLUEBERRY(15.0D); - - private double healingAmount; - - MoaFeedType(double healingAmount) - { - this.healingAmount = healingAmount; - } - - public double getHealingAmount() - { - return this.healingAmount; - } - } -} diff --git a/src/main/java/com/gildedgames/aether/common/items/other/ItemScatterglassVial.java b/src/main/java/com/gildedgames/aether/common/items/other/ItemScatterglassVial.java deleted file mode 100644 index 6d91d69131..0000000000 --- a/src/main/java/com/gildedgames/aether/common/items/other/ItemScatterglassVial.java +++ /dev/null @@ -1,73 +0,0 @@ -package com.gildedgames.aether.common.items.other; - -import com.gildedgames.aether.api.registrar.ItemsAether; -import com.gildedgames.aether.common.items.ItemDropOnDeath; -import net.minecraft.block.material.Material; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.init.Items; -import net.minecraft.init.PotionTypes; -import net.minecraft.init.SoundEvents; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.potion.PotionUtils; -import net.minecraft.stats.StatList; -import net.minecraft.util.ActionResult; -import net.minecraft.util.EnumActionResult; -import net.minecraft.util.EnumHand; -import net.minecraft.util.SoundCategory; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.RayTraceResult; -import net.minecraft.world.World; - -import java.util.Objects; - -public class ItemScatterglassVial extends ItemDropOnDeath -{ - @Override - public ActionResult<ItemStack> onItemRightClick(World world, EntityPlayer player, EnumHand hand) - { - ItemStack stack = player.getHeldItem(hand); - RayTraceResult rayTraceResult = this.rayTrace(world, player, true); - - if (rayTraceResult != null) - { - if (rayTraceResult.typeOfHit == RayTraceResult.Type.BLOCK) - { - BlockPos blockpos = rayTraceResult.getBlockPos(); - - if (!world.isBlockModifiable(player, blockpos) || !player.canPlayerEdit(blockpos.offset(rayTraceResult.sideHit), rayTraceResult.sideHit, stack)) - { - return new ActionResult<>(EnumActionResult.PASS, stack); - } - - if (world.getBlockState(blockpos).getMaterial() == Material.WATER) - { - world.playSound(player, player.posX, player.posY, player.posZ, SoundEvents.ITEM_BOTTLE_FILL, SoundCategory.NEUTRAL, 1.0F, 1.0F); - return new ActionResult<>(EnumActionResult.SUCCESS, this.turnVialIntoItem(stack, player, new ItemStack(ItemsAether.water_vial))); - } - } - } - - return new ActionResult<>(EnumActionResult.PASS, stack); - } - - protected ItemStack turnVialIntoItem(ItemStack inputStack, EntityPlayer player, ItemStack stack) - { - inputStack.shrink(1); - player.addStat(Objects.requireNonNull(StatList.getObjectUseStats(this))); - - if (inputStack.isEmpty()) - { - return stack; - } - else - { - if (!player.inventory.addItemStackToInventory(stack)) - { - player.dropItem(stack, false); - } - - return inputStack; - } - } -} diff --git a/src/main/java/com/gildedgames/aether/common/items/other/ItemSkyrootBed.java b/src/main/java/com/gildedgames/aether/common/items/other/ItemSkyrootBed.java deleted file mode 100644 index 6db6bbb7cc..0000000000 --- a/src/main/java/com/gildedgames/aether/common/items/other/ItemSkyrootBed.java +++ /dev/null @@ -1,97 +0,0 @@ -package com.gildedgames.aether.common.items.other; - -import com.gildedgames.aether.api.registrar.BlocksAether; -import com.gildedgames.aether.common.items.IDropOnDeath; -import net.minecraft.block.Block; -import net.minecraft.block.BlockBed; -import net.minecraft.block.SoundType; -import net.minecraft.block.state.IBlockState; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.util.EnumActionResult; -import net.minecraft.util.EnumFacing; -import net.minecraft.util.EnumHand; -import net.minecraft.util.SoundCategory; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.MathHelper; -import net.minecraft.world.World; - -public class ItemSkyrootBed extends Item implements IDropOnDeath -{ - public ItemSkyrootBed() - { - this.maxStackSize = 1; - } - - @Override - public EnumActionResult onItemUse(final EntityPlayer player, final World world, BlockPos pos, final EnumHand hand, final EnumFacing facing, - final float hitX, final float hitY, final float hitZ) - { - if (world.isRemote) - { - return EnumActionResult.SUCCESS; - } - else if (facing != EnumFacing.UP) - { - return EnumActionResult.FAIL; - } - else - { - final IBlockState state = world.getBlockState(pos); - - final Block block = state.getBlock(); - - final boolean canReplace = block.isReplaceable(world, pos); - - if (!canReplace) - { - pos = pos.up(); - } - - final int look = MathHelper.floor((double) (player.rotationYaw * 4.0F / 360.0F) + 0.5D) & 3; - - final EnumFacing enumfacing = EnumFacing.byHorizontalIndex(look); - - final BlockPos adjPos = pos.offset(enumfacing); - - final ItemStack heldStack = player.getHeldItem(hand); - - if (player.canPlayerEdit(pos, facing, heldStack) && player.canPlayerEdit(adjPos, facing, heldStack)) - { - final IBlockState adjBlock = world.getBlockState(adjPos); - - final boolean flag1 = adjBlock.getBlock().isReplaceable(world, adjPos); - final boolean flag2 = canReplace || world.isAirBlock(pos); - final boolean flag3 = flag1 || world.isAirBlock(adjPos); - - if (flag2 && flag3 && world.getBlockState(pos.down()).isSideSolid(world, pos.down(), EnumFacing.UP) && - world.getBlockState(adjPos.down()).isSideSolid(world, adjPos.down(), EnumFacing.UP)) - { - IBlockState otherBed = BlocksAether.skyroot_bed.getDefaultState().withProperty(BlockBed.OCCUPIED, Boolean.FALSE) - .withProperty(BlockBed.FACING, enumfacing).withProperty(BlockBed.PART, BlockBed.EnumPartType.FOOT); - world.setBlockState(pos, otherBed, 10); - world.setBlockState(adjPos, otherBed.withProperty(BlockBed.PART, BlockBed.EnumPartType.HEAD), 10); - - world.notifyNeighborsRespectDebug(pos, block, false); - world.notifyNeighborsRespectDebug(adjPos, adjBlock.getBlock(), false); - - final SoundType sound = otherBed.getBlock().getSoundType(otherBed, world, pos, player); - world.playSound(null, pos, sound.getPlaceSound(), SoundCategory.BLOCKS, (sound.getVolume() + 1.0F) / 2.0F, sound.getPitch() * 0.8F); - - heldStack.shrink(1); - - return EnumActionResult.SUCCESS; - } - else - { - return EnumActionResult.FAIL; - } - } - else - { - return EnumActionResult.FAIL; - } - } - } -} diff --git a/src/main/java/com/gildedgames/aether/common/items/other/ItemSkyrootSign.java b/src/main/java/com/gildedgames/aether/common/items/other/ItemSkyrootSign.java deleted file mode 100644 index b840492bf6..0000000000 --- a/src/main/java/com/gildedgames/aether/common/items/other/ItemSkyrootSign.java +++ /dev/null @@ -1,82 +0,0 @@ -package com.gildedgames.aether.common.items.other; - -import com.gildedgames.aether.api.registrar.BlocksAether; -import com.gildedgames.aether.common.blocks.construction.signs.BlockStandingSkyrootSign; -import com.gildedgames.aether.common.blocks.construction.signs.BlockWallSkyrootSign; -import com.gildedgames.aether.common.entities.tiles.TileEntitySkyrootSign; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.Item; -import net.minecraft.item.ItemBlock; -import net.minecraft.item.ItemStack; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.EnumActionResult; -import net.minecraft.util.EnumFacing; -import net.minecraft.util.EnumHand; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.MathHelper; -import net.minecraft.world.World; - -public class ItemSkyrootSign extends Item -{ - public ItemSkyrootSign() - { - this.maxStackSize = 16; - } - - @Override - public EnumActionResult onItemUse(EntityPlayer player, World world, BlockPos pos, EnumHand hand, EnumFacing side, - float hitX, float hitY, float hitZ) - { - if (side == EnumFacing.DOWN) - { - return EnumActionResult.FAIL; - } - else if (!world.getBlockState(pos).getMaterial().isSolid()) - { - return EnumActionResult.FAIL; - } - else - { - pos = pos.offset(side); - - ItemStack stack = player.getHeldItem(hand); - - if (!player.canPlayerEdit(pos, side, stack)) - { - return EnumActionResult.FAIL; - } - else if (!BlocksAether.standing_skyroot_sign.canPlaceBlockAt(world, pos)) - { - return EnumActionResult.FAIL; - } - else - { - if (side == EnumFacing.UP) - { - int rotation = MathHelper.floor((double) ((player.rotationYaw + 180.0F) * 16.0F / 360.0F) + 0.5D) & 15; - world.setBlockState(pos, BlocksAether.standing_skyroot_sign.getDefaultState().withProperty(BlockStandingSkyrootSign.ROTATION, rotation), 3); - } - else - { - world.setBlockState(pos, BlocksAether.wall_skyroot_sign.getDefaultState().withProperty(BlockWallSkyrootSign.FACING, side), 3); - } - - stack.shrink(1); - TileEntity tileentity = world.getTileEntity(pos); - - if (tileentity instanceof TileEntitySkyrootSign && !ItemBlock.setTileEntityNBT(world, player, pos, stack)) - { - player.openEditSign((TileEntitySkyrootSign) tileentity); - } - - return EnumActionResult.SUCCESS; - } - } - } - - @Override - public int getItemBurnTime(ItemStack itemStack) - { - return 200; - } -} diff --git a/src/main/java/com/gildedgames/aether/common/items/other/ItemSkyrootStick.java b/src/main/java/com/gildedgames/aether/common/items/other/ItemSkyrootStick.java deleted file mode 100644 index 3a79d0c3c7..0000000000 --- a/src/main/java/com/gildedgames/aether/common/items/other/ItemSkyrootStick.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.gildedgames.aether.common.items.other; - -import com.gildedgames.aether.common.items.ItemDropOnDeath; -import net.minecraft.item.ItemStack; - -public class ItemSkyrootStick extends ItemDropOnDeath -{ - @Override - public int getItemBurnTime(ItemStack itemStack) - { - return 100; - } -} diff --git a/src/main/java/com/gildedgames/aether/common/items/other/ItemSwetGel.java b/src/main/java/com/gildedgames/aether/common/items/other/ItemSwetGel.java deleted file mode 100644 index 7eaa78042a..0000000000 --- a/src/main/java/com/gildedgames/aether/common/items/other/ItemSwetGel.java +++ /dev/null @@ -1,169 +0,0 @@ -package com.gildedgames.aether.common.items.other; - -import com.gildedgames.aether.api.registrar.BlocksAether; -import com.gildedgames.aether.common.blocks.natural.BlockAetherDirt; -import com.gildedgames.aether.common.blocks.natural.BlockAetherGrass; -import com.gildedgames.aether.common.blocks.natural.BlockTheraDirt; -import com.gildedgames.aether.common.entities.monsters.EntitySwet; -import com.gildedgames.aether.common.items.IDropOnDeath; -import com.gildedgames.aether.common.world.biomes.arctic_peaks.BiomeArcticPeaks; -import com.gildedgames.aether.common.world.biomes.irradiated_forests.BiomeIrradiatedForests; -import com.gildedgames.aether.common.world.biomes.magnetic_hills.BiomeMagneticHills; -import net.minecraft.block.BlockDirt; -import net.minecraft.block.IGrowable; -import net.minecraft.block.material.Material; -import net.minecraft.block.state.IBlockState; -import net.minecraft.creativetab.CreativeTabs; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.init.Blocks; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.util.*; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.World; -import net.minecraft.world.biome.Biome; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; - -import java.util.HashMap; - -public class ItemSwetGel extends Item implements IDropOnDeath -{ - private static final HashMap<IBlockState, IBlockState> growables = new HashMap<>(); - - public ItemSwetGel() - { - super(); - - this.setHasSubtypes(true); - } - - @Override - @SideOnly(Side.CLIENT) - public void getSubItems(final CreativeTabs tab, final NonNullList<ItemStack> subItems) - { - if (!this.isInCreativeTab(tab)) - { - return; - } - - for (final EntitySwet.Type types : EntitySwet.Type.values()) - { - subItems.add(new ItemStack(this, 1, types.ordinal())); - } - } - - @Override - public EnumActionResult onItemUse(final EntityPlayer player, final World world, final BlockPos pos, final EnumHand hand, final EnumFacing facing, - final float hitX, final float hitY, final float hitZ) - { - ItemStack stack = player.getHeldItem(hand); - - final IBlockState state = world.getBlockState(pos); - - Biome biome = world.getBiome(pos); - - ItemSwetGel.growables.put(Blocks.DIRT.getDefaultState().withProperty(BlockDirt.VARIANT, BlockDirt.DirtType.COARSE_DIRT), - Blocks.DIRT.getDefaultState().withProperty(BlockDirt.VARIANT, BlockDirt.DirtType.DIRT)); - ItemSwetGel.growables.put(Blocks.DIRT.getDefaultState().withProperty(BlockDirt.VARIANT, BlockDirt.DirtType.DIRT), Blocks.GRASS.getDefaultState()); - ItemSwetGel.growables.put(BlocksAether.aether_dirt.getDefaultState().withProperty(BlockAetherDirt.PROPERTY_VARIANT, BlockAetherDirt.COARSE_DIRT), - BlocksAether.aether_dirt.getDefaultState().withProperty(BlockAetherDirt.PROPERTY_VARIANT, BlockAetherDirt.DIRT)); - ItemSwetGel.growables.put(BlocksAether.thera_dirt.getDefaultState().withProperty(BlockTheraDirt.PROPERTY_VARIANT, BlockTheraDirt.DIRT), BlocksAether.thera_grass.getDefaultState()); - - if (biome instanceof BiomeArcticPeaks) - { - ItemSwetGel.growables.put(BlocksAether.aether_dirt.getDefaultState().withProperty(BlockAetherDirt.PROPERTY_VARIANT, BlockAetherDirt.DIRT), - BlocksAether.aether_grass.getDefaultState().withProperty(BlockAetherGrass.PROPERTY_VARIANT, BlockAetherGrass.ARCTIC)); - } - else if (biome instanceof BiomeIrradiatedForests) - { - ItemSwetGel.growables.put(BlocksAether.aether_dirt.getDefaultState().withProperty(BlockAetherDirt.PROPERTY_VARIANT, BlockAetherDirt.DIRT), - BlocksAether.aether_grass.getDefaultState().withProperty(BlockAetherGrass.PROPERTY_VARIANT, BlockAetherGrass.IRRADIATED)); - } - else if (biome instanceof BiomeMagneticHills) - { - ItemSwetGel.growables.put(BlocksAether.aether_dirt.getDefaultState().withProperty(BlockAetherDirt.PROPERTY_VARIANT, BlockAetherDirt.DIRT), - BlocksAether.aether_grass.getDefaultState().withProperty(BlockAetherGrass.PROPERTY_VARIANT, BlockAetherGrass.MAGNETIC)); - } - else - { - ItemSwetGel.growables.put(BlocksAether.aether_dirt.getDefaultState().withProperty(BlockAetherDirt.PROPERTY_VARIANT, BlockAetherDirt.DIRT), - BlocksAether.aether_grass.getDefaultState()); - } - - if (ItemSwetGel.growables.containsKey(state)) - { - final IBlockState nState = ItemSwetGel.growables.get(state); - - final int radius = 1; - - for (int x = pos.getX() - radius; x <= pos.getX() + radius; x++) - { - for (int z = pos.getZ() - radius; z <= pos.getZ() + radius; z++) - { - final BlockPos nPos = new BlockPos(x, pos.getY(), z); - - if (world.getBlockState(nPos) == state && !world.getBlockState(nPos.up()).isNormalCube()) - { - world.setBlockState(nPos, nState); - } - } - } - - if (!player.capabilities.isCreativeMode) - { - stack.shrink(1); - } - - return EnumActionResult.SUCCESS; - } - - if (applyBonemeal(stack, world, pos, player, hand)) - { - if (!world.isRemote) - { - world.playEvent(2005, pos, 0); - } - - return EnumActionResult.SUCCESS; - } - - return EnumActionResult.FAIL; - } - - private static boolean applyBonemeal(ItemStack stack, World worldIn, BlockPos target, EntityPlayer player, @javax.annotation.Nullable EnumHand hand) - { - IBlockState iblockstate = worldIn.getBlockState(target); - - int hook = net.minecraftforge.event.ForgeEventFactory.onApplyBonemeal(player, worldIn, target, iblockstate, stack, hand); - if (hook != 0) return hook > 0; - - if (iblockstate.getBlock() instanceof IGrowable) - { - IGrowable igrowable = (IGrowable)iblockstate.getBlock(); - - if (igrowable.canGrow(worldIn, target, iblockstate, worldIn.isRemote)) - { - if (!worldIn.isRemote) - { - if (igrowable.canUseBonemeal(worldIn, worldIn.rand, target, iblockstate)) - { - igrowable.grow(worldIn, worldIn.rand, target, iblockstate); - } - - stack.shrink(1); - } - - return true; - } - } - - return false; - } - - @Override - public String getTranslationKey(final ItemStack stack) - { - return "item.aether.swet_gel." + EntitySwet.Type.fromOrdinal(stack.getMetadata()).name; - } -} \ No newline at end of file diff --git a/src/main/java/com/gildedgames/aether/common/items/other/ItemWrappingPaper.java b/src/main/java/com/gildedgames/aether/common/items/other/ItemWrappingPaper.java deleted file mode 100644 index 5cbe045163..0000000000 --- a/src/main/java/com/gildedgames/aether/common/items/other/ItemWrappingPaper.java +++ /dev/null @@ -1,122 +0,0 @@ -package com.gildedgames.aether.common.items.other; - -import com.gildedgames.aether.common.items.IDropOnDeath; -import net.minecraft.client.resources.I18n; -import net.minecraft.client.util.ITooltipFlag; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.util.text.TextFormatting; -import net.minecraft.world.World; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; - -import java.util.List; - -public class ItemWrappingPaper extends Item implements IDropOnDeath -{ - - public static PresentDyeData getDyeData(final ItemStack stack) - { - return PresentDyeData.readFromNBT(stack.getTagCompound()); - } - - @Override - @SideOnly(Side.CLIENT) - public void addInformation(final ItemStack stack, final World world, final List<String> tooltip, final ITooltipFlag flag) - { - final PresentDyeData data = ItemWrappingPaper.getDyeData(stack); - - if (data == null) - { - return; - } - - tooltip.add(TextFormatting.YELLOW + I18n.format(data.getBoxColorName())); - tooltip.add(TextFormatting.YELLOW + I18n.format(data.getBowColorName())); - - tooltip.add(TextFormatting.GRAY + I18n.format("item.aether.wrapping_paper.tooltip.craft")); - } - - public static class PresentDyeData - { - public static final String[] dyeNames = new String[] { "black", "red", "green", "brown", "blue", "purple", "cyan", "silver", "gray", - "pink", "lime", "yellow", "light_blue", "magenta", "orange", "white" }; - - private byte bowColor = 1, boxColor = 15; - - public static PresentDyeData readFromNBT(final NBTTagCompound compound) - { - final PresentDyeData data = new PresentDyeData(); - - if (compound == null) - { - return new PresentDyeData(); - } - - data.setBoxColor(compound.getByte("boxColor")); - data.setBowColor(compound.getByte("bowColor")); - - return data; - } - - public NBTTagCompound writeToNBT(final NBTTagCompound compound) - { - compound.setByte("boxColor", this.getBoxColor()); - compound.setByte("bowColor", this.getBowColor()); - - return compound; - } - - public String getBowColorName() - { - return "item.aether.wrapping_paper.bow." + dyeNames[this.getBowColor()] + ".name"; - } - - public String getBoxColorName() - { - return "item.aether.wrapping_paper.box." + dyeNames[this.getBoxColor()] + ".name"; - } - - public byte getBowColor() - { - return this.bowColor; - } - - public void setBowColor(final byte bowColor) - { - this.bowColor = bowColor; - } - - public byte getBoxColor() - { - return this.boxColor; - } - - public void setBoxColor(final byte boxColor) - { - this.boxColor = boxColor; - } - } - -/* @SideOnly(Side.CLIENT) - @Override - public int getColorFromItemStack(ItemStack stack, int phase) - { - PresentDyeData data = ItemWrappingPaper.getDyeData(stack); - - if (phase == 0) - { - return ItemDye.dyeColors[data.getBoxColor()]; - } - else if (phase == 1) - { - return ItemDye.dyeColors[data.getBowColor()]; - } - else - { - return super.getColorFromItemStack(stack, phase); - } - }*/ - -} diff --git a/src/main/java/com/gildedgames/aether/common/items/properties/ItemPropertiesImmutable.java b/src/main/java/com/gildedgames/aether/common/items/properties/ItemPropertiesImmutable.java deleted file mode 100644 index d77cde29d9..0000000000 --- a/src/main/java/com/gildedgames/aether/common/items/properties/ItemPropertiesImmutable.java +++ /dev/null @@ -1,78 +0,0 @@ -package com.gildedgames.aether.common.items.properties; - -import com.gildedgames.aether.api.items.EffectActivator; -import com.gildedgames.aether.api.items.equipment.ItemEquipmentSlot; -import com.gildedgames.aether.api.items.equipment.effects.IEffectPrecondition; -import com.gildedgames.aether.api.items.equipment.effects.IEffectProvider; -import com.gildedgames.aether.api.items.properties.IItemProperties; -import com.gildedgames.aether.api.items.properties.ItemRarity; - -import javax.annotation.Nonnull; -import java.util.Collection; -import java.util.Collections; - -/** - * Stateless, immutable container for item information. - */ -public class ItemPropertiesImmutable implements IItemProperties -{ - private final ItemEquipmentSlot slot; - - private final Collection<IEffectProvider> effects; - - private final Collection<IEffectPrecondition> preconditions; - - private final Collection<EffectActivator> effectActivators; - - private final ItemRarity rarity; - - public ItemPropertiesImmutable() - { - this(ItemEquipmentSlot.NONE, Collections.emptyList(), Collections.emptyList(), Collections.emptyList(), ItemRarity.NONE); - } - - public ItemPropertiesImmutable(@Nonnull ItemEquipmentSlot slot, - @Nonnull Collection<IEffectProvider> effects, - @Nonnull Collection<IEffectPrecondition> preconditions, - @Nonnull Collection<EffectActivator> effectActivators, - @Nonnull ItemRarity rarity) - { - this.slot = slot; - this.effects = effects; - this.preconditions = preconditions; - this.effectActivators = effectActivators; - this.rarity = rarity; - } - - @Nonnull - @Override - public ItemEquipmentSlot getEquipmentSlot() - { - return this.slot; - } - - @Override - public Collection<IEffectProvider> getEffectProviders() - { - return this.effects; - } - - @Nonnull - @Override - public Collection<EffectActivator> getEffectActivators() - { - return this.effectActivators; - } - - @Override - public ItemRarity getRarity() - { - return this.rarity; - } - - @Override - public Collection<IEffectPrecondition> getEffectPreconditions() - { - return this.preconditions; - } -} diff --git a/src/main/java/com/gildedgames/aether/common/items/properties/ItemPropertiesRegistry.java b/src/main/java/com/gildedgames/aether/common/items/properties/ItemPropertiesRegistry.java deleted file mode 100644 index e57da05013..0000000000 --- a/src/main/java/com/gildedgames/aether/common/items/properties/ItemPropertiesRegistry.java +++ /dev/null @@ -1,34 +0,0 @@ -package com.gildedgames.aether.common.items.properties; - -import com.gildedgames.aether.api.items.properties.IItemProperties; -import com.gildedgames.aether.api.items.properties.ItemPropertiesBuilder; -import com.gildedgames.aether.api.registry.IItemPropertiesRegistry; -import net.minecraft.item.Item; -import net.minecraft.util.ResourceLocation; -import org.apache.commons.lang3.Validate; - -import javax.annotation.Nonnull; -import java.util.HashMap; -import java.util.Map; - -public class ItemPropertiesRegistry implements IItemPropertiesRegistry -{ - private static final IItemProperties DEFAULT = new ItemPropertiesImmutable(); - - private final Map<ResourceLocation, IItemProperties> registry = new HashMap<>(); - - @Override - @Nonnull - public IItemProperties getProperties(Item item) - { - return this.registry.getOrDefault(item.getRegistryName(), ItemPropertiesRegistry.DEFAULT); - } - - @Override - public void registerItem(Item item, ItemPropertiesBuilder def) - { - Validate.isTrue(!this.registry.containsKey(item.getRegistryName()), "Properties already registered for item %s", item.getRegistryName()); - - this.registry.put(item.getRegistryName(), new ItemPropertiesImmutable(def.getSlot(), def.getEffects(), def.getPreconditions(), def.getEffectActivators(), def.getRarity())); - } -} diff --git a/src/main/java/com/gildedgames/aether/common/items/tools/ItemAetherAxe.java b/src/main/java/com/gildedgames/aether/common/items/tools/ItemAetherAxe.java deleted file mode 100644 index 4b8315f105..0000000000 --- a/src/main/java/com/gildedgames/aether/common/items/tools/ItemAetherAxe.java +++ /dev/null @@ -1,112 +0,0 @@ -package com.gildedgames.aether.common.items.tools; - -import com.gildedgames.aether.api.entity.damage.IDamageLevelsHolder; -import com.gildedgames.aether.api.registrar.ItemsAether; -import com.gildedgames.aether.common.events.listeners.items.ItemToolListener; -import com.gildedgames.aether.common.init.CreativeTabsAether; -import com.gildedgames.aether.common.init.MaterialsAether; -import com.gildedgames.aether.common.items.armor.ItemAetherArmor; -import com.google.common.collect.HashMultimap; -import com.google.common.collect.Multimap; -import net.minecraft.block.material.Material; -import net.minecraft.block.state.IBlockState; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.SharedMonsterAttributes; -import net.minecraft.entity.ai.attributes.AttributeModifier; -import net.minecraft.inventory.EntityEquipmentSlot; -import net.minecraft.item.ItemAxe; -import net.minecraft.item.ItemStack; - -public class ItemAetherAxe extends ItemAxe implements IDamageLevelsHolder -{ - private float slashDamageLevel = 0, pierceDamageLevel = 0, impactDamageLevel = 0; - - public ItemAetherAxe(final ToolMaterial material) - { - // The parent constructor will crash trying to set parameters, we need to do it here - this(material, 6.0F, -3.2F); - } - - public ItemAetherAxe(final ToolMaterial material, final float damageVsEntity, final float attackSpeed) - { - super(material, damageVsEntity, attackSpeed); - - this.setHarvestLevel("axe", material.getHarvestLevel()); - - this.setCreativeTab(CreativeTabsAether.TAB_TOOLS); - } - - @Override - public boolean hitEntity(final ItemStack stack, final EntityLivingBase target, final EntityLivingBase attacker) - { - super.hitEntity(stack, target, attacker); - - return ItemToolListener.onEntityHit(stack, this.toolMaterial, target, attacker); - } - - public boolean canMine(IBlockState state) - { - Material material = state.getMaterial(); - return material == Material.WOOD || material == Material.PLANTS || material == Material.VINE; - } - - @Override - public float getDestroySpeed(ItemStack stack, IBlockState state) - { - float original = this.toolMaterial.getEfficiency(); - - if (this.canMine(state)) - { - return ItemToolListener.getBreakSpeed(stack, state, original); - } - - return super.getDestroySpeed(stack, state); - } - - @Override - public int getItemBurnTime(ItemStack itemStack) - { - if (this.toolMaterial == MaterialsAether.SKYROOT_TOOL) - { - return 200; - } - - return super.getItemBurnTime(itemStack); - } - - public <T extends ItemAetherAxe> T setSlashDamageLevel(float level) - { - this.slashDamageLevel = level; - - return (T) this; - } - - public <T extends ItemAetherAxe> T setPierceDamageLevel(float level) - { - this.pierceDamageLevel = level; - - return (T) this; - } - - public <T extends ItemAetherAxe> T setImpactDamageLevel(float level) - { - this.impactDamageLevel = level; - - return (T) this; - } - - public float getSlashDamageLevel() - { - return slashDamageLevel; - } - - public float getPierceDamageLevel() - { - return pierceDamageLevel; - } - - public float getImpactDamageLevel() - { - return impactDamageLevel; - } -} diff --git a/src/main/java/com/gildedgames/aether/common/items/tools/ItemAetherPickaxe.java b/src/main/java/com/gildedgames/aether/common/items/tools/ItemAetherPickaxe.java deleted file mode 100644 index 9740650b0c..0000000000 --- a/src/main/java/com/gildedgames/aether/common/items/tools/ItemAetherPickaxe.java +++ /dev/null @@ -1,114 +0,0 @@ -package com.gildedgames.aether.common.items.tools; - -import com.gildedgames.aether.api.entity.damage.IDamageLevelsHolder; -import com.gildedgames.aether.api.registrar.ItemsAether; -import com.gildedgames.aether.common.events.listeners.items.ItemToolListener; -import com.gildedgames.aether.common.init.CreativeTabsAether; -import com.gildedgames.aether.common.init.MaterialsAether; -import com.google.common.collect.HashMultimap; -import com.google.common.collect.Multimap; -import net.minecraft.block.material.Material; -import net.minecraft.block.state.IBlockState; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.SharedMonsterAttributes; -import net.minecraft.entity.ai.attributes.AttributeModifier; -import net.minecraft.inventory.EntityEquipmentSlot; -import net.minecraft.item.ItemPickaxe; -import net.minecraft.item.ItemStack; - -public class ItemAetherPickaxe extends ItemPickaxe implements IDamageLevelsHolder -{ - private float slashDamageLevel = 0, pierceDamageLevel = 0, impactDamageLevel = 0; - - public ItemAetherPickaxe(final ToolMaterial material) - { - this(material, 1.0F, -2.8F); - } - - public ItemAetherPickaxe(final ToolMaterial material, final float damageVsEntity, final float attackSpeed) - { - super(material); - - this.attackDamage = damageVsEntity + material.getAttackDamage(); - - this.attackSpeed = attackSpeed; - - this.setHarvestLevel("pickaxe", material.getHarvestLevel()); - - this.setCreativeTab(CreativeTabsAether.TAB_TOOLS); - } - - @Override - public boolean hitEntity(final ItemStack stack, final EntityLivingBase target, final EntityLivingBase attacker) - { - super.hitEntity(stack, target, attacker); - - return ItemToolListener.onEntityHit(stack, this.toolMaterial, target, attacker); - } - - public boolean canMine(IBlockState state) - { - Material material = state.getMaterial(); - return material == Material.IRON || material == Material.ANVIL || material == Material.ROCK; - } - - @Override - public float getDestroySpeed(ItemStack stack, IBlockState state) - { - float original = this.toolMaterial.getEfficiency(); - - if (this.canMine(state)) - { - return ItemToolListener.getBreakSpeed(stack, state, original); - } - - return super.getDestroySpeed(stack, state); - } - - @Override - public int getItemBurnTime(ItemStack itemStack) - { - if (this.toolMaterial == MaterialsAether.SKYROOT_TOOL) - { - return 200; - } - - return super.getItemBurnTime(itemStack); - } - - public <T extends ItemAetherPickaxe> T setSlashDamageLevel(float level) - { - this.slashDamageLevel = level; - - return (T) this; - } - - public <T extends ItemAetherPickaxe> T setPierceDamageLevel(float level) - { - this.pierceDamageLevel = level; - - return (T) this; - } - - public <T extends ItemAetherPickaxe> T setImpactDamageLevel(float level) - { - this.impactDamageLevel = level; - - return (T) this; - } - - public float getSlashDamageLevel() - { - return slashDamageLevel; - } - - public float getPierceDamageLevel() - { - return pierceDamageLevel; - } - - public float getImpactDamageLevel() - { - return impactDamageLevel; - } -} diff --git a/src/main/java/com/gildedgames/aether/common/items/tools/ItemAetherShovel.java b/src/main/java/com/gildedgames/aether/common/items/tools/ItemAetherShovel.java deleted file mode 100644 index 70cb3c94fe..0000000000 --- a/src/main/java/com/gildedgames/aether/common/items/tools/ItemAetherShovel.java +++ /dev/null @@ -1,116 +0,0 @@ -package com.gildedgames.aether.common.items.tools; - -import com.gildedgames.aether.api.entity.damage.IDamageLevelsHolder; -import com.gildedgames.aether.api.registrar.ItemsAether; -import com.gildedgames.aether.common.events.listeners.items.ItemToolListener; -import com.gildedgames.aether.common.init.CreativeTabsAether; -import com.gildedgames.aether.common.init.MaterialsAether; -import com.google.common.collect.HashMultimap; -import com.google.common.collect.Multimap; -import net.minecraft.block.Block; -import net.minecraft.block.material.Material; -import net.minecraft.block.state.IBlockState; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.SharedMonsterAttributes; -import net.minecraft.entity.ai.attributes.AttributeModifier; -import net.minecraft.init.Blocks; -import net.minecraft.inventory.EntityEquipmentSlot; -import net.minecraft.item.ItemSpade; -import net.minecraft.item.ItemStack; - -public class ItemAetherShovel extends ItemSpade implements IDamageLevelsHolder -{ - private float slashDamageLevel = 0, pierceDamageLevel = 0, impactDamageLevel = 0; - - public ItemAetherShovel(final ToolMaterial material) - { - this(material, 1.5F, -3.0F); - } - - public ItemAetherShovel(final ToolMaterial material, final float damageVsEntity, final float attackSpeed) - { - super(material); - - this.attackDamage = damageVsEntity + material.getAttackDamage(); - - this.attackSpeed = attackSpeed; - - this.setHarvestLevel("shovel", material.getHarvestLevel()); - - this.setCreativeTab(CreativeTabsAether.TAB_TOOLS); - } - - @Override - public boolean hitEntity(final ItemStack stack, final EntityLivingBase target, final EntityLivingBase attacker) - { - super.hitEntity(stack, target, attacker); - - return ItemToolListener.onEntityHit(stack, this.toolMaterial, target, attacker); - } - - public boolean canMine(IBlockState state) - { - Material material = state.getMaterial(); - return material == Material.CLAY || material == Material.GROUND || material == Material.GRASS || material == Material.SAND || material == Material.SNOW || material == Material.CRAFTED_SNOW; - } - - @Override - public float getDestroySpeed(ItemStack stack, IBlockState state) - { - float original = this.toolMaterial.getEfficiency(); - - if (this.canMine(state)) - { - return ItemToolListener.getBreakSpeed(stack, state, original); - } - - return super.getDestroySpeed(stack, state); - } - - @Override - public int getItemBurnTime(ItemStack itemStack) - { - if (this.toolMaterial == MaterialsAether.SKYROOT_TOOL) - { - return 200; - } - - return super.getItemBurnTime(itemStack); - } - - public <T extends ItemAetherShovel> T setSlashDamageLevel(float level) - { - this.slashDamageLevel = level; - - return (T) this; - } - - public <T extends ItemAetherShovel> T setPierceDamageLevel(float level) - { - this.pierceDamageLevel = level; - - return (T) this; - } - - public <T extends ItemAetherShovel> T setImpactDamageLevel(float level) - { - this.impactDamageLevel = level; - - return (T) this; - } - - public float getSlashDamageLevel() - { - return slashDamageLevel; - } - - public float getPierceDamageLevel() - { - return pierceDamageLevel; - } - - public float getImpactDamageLevel() - { - return impactDamageLevel; - } -} diff --git a/src/main/java/com/gildedgames/aether/common/items/tools/ItemArkeniumShears.java b/src/main/java/com/gildedgames/aether/common/items/tools/ItemArkeniumShears.java deleted file mode 100644 index aee5d0ac8a..0000000000 --- a/src/main/java/com/gildedgames/aether/common/items/tools/ItemArkeniumShears.java +++ /dev/null @@ -1,24 +0,0 @@ -package com.gildedgames.aether.common.items.tools; - -import com.gildedgames.aether.api.registrar.BlocksAether; -import net.minecraft.block.Block; -import net.minecraft.block.state.IBlockState; -import net.minecraft.item.ItemShears; -import net.minecraft.item.ItemStack; - -public class ItemArkeniumShears extends ItemShears -{ - - @Override - public float getDestroySpeed(ItemStack stack, IBlockState state) - { - Block block = state.getBlock(); - - if (block == BlocksAether.cloudwool_block || block == BlocksAether.aercloud) - { - return 5.0f; - } - - return super.getDestroySpeed(stack, state); - } -} diff --git a/src/main/java/com/gildedgames/aether/common/items/tools/ItemSkyrootBucket.java b/src/main/java/com/gildedgames/aether/common/items/tools/ItemSkyrootBucket.java deleted file mode 100644 index e006962444..0000000000 --- a/src/main/java/com/gildedgames/aether/common/items/tools/ItemSkyrootBucket.java +++ /dev/null @@ -1,160 +0,0 @@ -package com.gildedgames.aether.common.items.tools; - -import com.gildedgames.aether.api.registrar.ItemsAether; -import com.gildedgames.aether.common.init.CreativeTabsAether; -import com.gildedgames.aether.common.items.IDropOnDeath; -import net.minecraft.block.Block; -import net.minecraft.block.BlockLiquid; -import net.minecraft.block.material.Material; -import net.minecraft.block.state.IBlockState; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.init.Blocks; -import net.minecraft.init.SoundEvents; -import net.minecraft.item.Item; -import net.minecraft.item.ItemBucket; -import net.minecraft.item.ItemStack; -import net.minecraft.stats.StatList; -import net.minecraft.util.ActionResult; -import net.minecraft.util.EnumActionResult; -import net.minecraft.util.EnumFacing; -import net.minecraft.util.EnumHand; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.RayTraceResult; -import net.minecraft.world.World; -import net.minecraftforge.event.ForgeEventFactory; - -public class ItemSkyrootBucket extends ItemBucket implements IDropOnDeath -{ - public ItemSkyrootBucket(Block liquid) - { - super(liquid); - - if (liquid == Blocks.AIR) - { - this.setMaxStackSize(16); - } - - this.setCreativeTab(CreativeTabsAether.TAB_MISCELLANEOUS); - } - - @Override - public ActionResult<ItemStack> onItemRightClick(World worldIn, EntityPlayer player, EnumHand hand) - { - ItemStack stack = player.getHeldItem(hand); - - boolean isEmpty = stack.getItem() == ItemsAether.skyroot_bucket; - - RayTraceResult traceResult = this.rayTrace(worldIn, player, isEmpty); - - ActionResult<ItemStack> ret = ForgeEventFactory.onBucketUse(player, worldIn, stack, traceResult); - - // when traceResult is null it means the player has right clicked on an air block. - // Ignore intellij's warning that traceResult is never null. - if (traceResult == null) - { - return new ActionResult<>(EnumActionResult.PASS, stack); - } - - if (ret != null) - { - return ret; - } - - else if (traceResult.typeOfHit != RayTraceResult.Type.BLOCK) - { - return new ActionResult<>(EnumActionResult.PASS, stack); - } - else - { - BlockPos pos = traceResult.getBlockPos(); - - if (!worldIn.isBlockModifiable(player, pos)) - { - return new ActionResult<>(EnumActionResult.FAIL, stack); - } - else if (isEmpty) - { - if (!player.canPlayerEdit(pos.offset(traceResult.sideHit), traceResult.sideHit, stack)) - { - return new ActionResult<>(EnumActionResult.FAIL, stack); - } - else - { - IBlockState state = worldIn.getBlockState(pos); - - if (state.getMaterial() == Material.WATER && state.getValue(BlockLiquid.LEVEL) == 0) - { - worldIn.setBlockState(pos, Blocks.AIR.getDefaultState(), 11); - - player.addStat(StatList.getObjectUseStats(this)); - player.playSound(SoundEvents.ITEM_BUCKET_FILL, 1.0F, 1.0F); - - return new ActionResult<>(EnumActionResult.SUCCESS, this.fillBucket(stack, player, ItemsAether.skyroot_water_bucket)); - } - - return new ActionResult<>(EnumActionResult.FAIL, stack); - } - } - else - { - boolean canPlace = worldIn.getBlockState(pos).getBlock().isReplaceable(worldIn, pos); - - BlockPos placePos = canPlace && traceResult.sideHit == EnumFacing.UP ? pos : pos.offset(traceResult.sideHit); - - if (!player.canPlayerEdit(placePos, traceResult.sideHit, stack)) - { - return new ActionResult<>(EnumActionResult.FAIL, stack); - } - else if (this.tryPlaceContainedLiquid(player, worldIn, placePos)) - { - player.addStat(StatList.getObjectUseStats(this)); - - return !player.capabilities.isCreativeMode ? - new ActionResult<>(EnumActionResult.SUCCESS, new ItemStack(ItemsAether.skyroot_bucket)) : - new ActionResult<>(EnumActionResult.SUCCESS, stack); - } - else - { - return new ActionResult<>(EnumActionResult.FAIL, stack); - } - } - } - } - - private ItemStack fillBucket(ItemStack emptyBucket, EntityPlayer player, Item fullBucket) - { - if (player.capabilities.isCreativeMode) - { - return emptyBucket; - } - - emptyBucket.shrink(1); - - if (emptyBucket.isEmpty()) - { - return new ItemStack(fullBucket); - } - else - { - if (!player.inventory.addItemStackToInventory(new ItemStack(fullBucket))) - { - player.dropItem(new ItemStack(fullBucket), false); - } - - return emptyBucket; - } - } - - @Override - public int getItemBurnTime(ItemStack itemStack) - { - if (itemStack.getItem() == ItemsAether.skyroot_bucket) - { - return 200; - } - else - { - return 0; - } - } -} diff --git a/src/main/java/com/gildedgames/aether/common/items/tools/handlers/IToolEventHandler.java b/src/main/java/com/gildedgames/aether/common/items/tools/handlers/IToolEventHandler.java deleted file mode 100644 index 8c9d016111..0000000000 --- a/src/main/java/com/gildedgames/aether/common/items/tools/handlers/IToolEventHandler.java +++ /dev/null @@ -1,28 +0,0 @@ -package com.gildedgames.aether.common.items.tools.handlers; - -import net.minecraft.block.state.IBlockState; -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraft.util.EnumFacing; -import net.minecraft.util.EnumHand; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.World; - -import java.util.List; - -public interface IToolEventHandler -{ - void onHarvestBlock(ItemStack stack, World world, IBlockState state, BlockPos pos, EntityPlayer entity, List<ItemStack> drops); - - boolean onRightClickBlock(World world, BlockPos pos, EntityPlayer player, EnumHand hand, EnumFacing facing); - - void onRightClickItem(EntityPlayer player, EnumHand hand); - - void addInformation(ItemStack stack, List<String> tooltip); - - void onEntityHit(ItemStack stack, Entity target, EntityLivingBase attacker); - - float getBreakSpeed(ItemStack stack, IBlockState state, float original); -} diff --git a/src/main/java/com/gildedgames/aether/common/items/tools/handlers/ItemArkeniumToolHandler.java b/src/main/java/com/gildedgames/aether/common/items/tools/handlers/ItemArkeniumToolHandler.java deleted file mode 100644 index ea91febd2c..0000000000 --- a/src/main/java/com/gildedgames/aether/common/items/tools/handlers/ItemArkeniumToolHandler.java +++ /dev/null @@ -1,56 +0,0 @@ -package com.gildedgames.aether.common.items.tools.handlers; - -import net.minecraft.block.state.IBlockState; -import net.minecraft.client.resources.I18n; -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraft.util.EnumFacing; -import net.minecraft.util.EnumHand; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.text.TextFormatting; -import net.minecraft.world.World; - -import java.util.List; - -public class ItemArkeniumToolHandler implements IToolEventHandler -{ - @Override - public void onHarvestBlock(ItemStack stack, World world, IBlockState state, BlockPos pos, EntityPlayer entity, List<ItemStack> drops) - { - - } - - @Override - public boolean onRightClickBlock(World world, BlockPos pos, EntityPlayer player, EnumHand hand, EnumFacing facing) - { - return false; - } - - @Override - public void onRightClickItem(EntityPlayer player, EnumHand hand) - { - - } - - @Override - public void addInformation(ItemStack stack, List<String> tooltip) - { - tooltip.add(1, String.format("%s: %s", - TextFormatting.BLUE + I18n.format("item.aether.tooltip.ability"), - TextFormatting.WHITE + I18n.format("item.aether.tool.arkenium.ability.desc"))); - } - - @Override - public void onEntityHit(ItemStack stack, Entity target, EntityLivingBase attacker) - { - - } - - @Override - public float getBreakSpeed(ItemStack stack, IBlockState state, float original) - { - return original; - } -} diff --git a/src/main/java/com/gildedgames/aether/common/items/tools/handlers/ItemGravititeToolHandler.java b/src/main/java/com/gildedgames/aether/common/items/tools/handlers/ItemGravititeToolHandler.java deleted file mode 100644 index c91f3058da..0000000000 --- a/src/main/java/com/gildedgames/aether/common/items/tools/handlers/ItemGravititeToolHandler.java +++ /dev/null @@ -1,148 +0,0 @@ -package com.gildedgames.aether.common.items.tools.handlers; - -import com.gildedgames.aether.common.capabilities.entity.player.PlayerAether; -import com.gildedgames.aether.common.capabilities.entity.player.modules.PlayerBlockLevitateModule; -import com.gildedgames.aether.common.items.armor.ItemAetherShield; -import com.gildedgames.aether.common.items.tools.ItemAetherAxe; -import com.gildedgames.aether.common.items.tools.ItemAetherPickaxe; -import com.gildedgames.aether.common.items.tools.ItemAetherShovel; -import net.minecraft.block.Block; -import net.minecraft.block.state.IBlockState; -import net.minecraft.client.resources.I18n; -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraft.util.EnumFacing; -import net.minecraft.util.EnumHand; -import net.minecraft.util.EnumParticleTypes; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.text.TextFormatting; -import net.minecraft.world.World; - -import java.util.List; - -public class ItemGravititeToolHandler implements IToolEventHandler -{ - @Override - public void onHarvestBlock(ItemStack stack, World world, IBlockState state, BlockPos pos, EntityPlayer entity, List<ItemStack> drops) - { - - } - - private boolean canMine(IBlockState state, ItemStack stack) - { - if (stack.getItem() instanceof ItemAetherAxe) - { - return ((ItemAetherAxe) stack.getItem()).canMine(state); - } - else if (stack.getItem() instanceof ItemAetherPickaxe) - { - return ((ItemAetherPickaxe) stack.getItem()).canMine(state); - } - else if (stack.getItem() instanceof ItemAetherShovel) - { - return ((ItemAetherShovel) stack.getItem()).canMine(state); - } - - return false; - } - - @Override - public boolean onRightClickBlock(World world, BlockPos pos, EntityPlayer player, EnumHand hand, EnumFacing facing) - { - if (hand != EnumHand.MAIN_HAND) - { - return false; - } - - PlayerAether aePlayer = PlayerAether.getPlayer(player); - - if (!aePlayer.getEntity().capabilities.allowEdit) - { - return false; - } - - ItemStack stack = player.getHeldItem(hand); - - if (aePlayer.getModule(PlayerBlockLevitateModule.class).getHeldBlock() == null && player.isSneaking()) - { - IBlockState state = world.getBlockState(pos); - - if (this.canMine(state, stack)) - { - if (state.getBlock().hasTileEntity(state)) - { - return false; - } - - if (!state.isFullBlock() || state.getBlockHardness(world, pos) < 0.0f) - { - return false; - } - - if (!world.isRemote) - { - if (aePlayer.getModule(PlayerBlockLevitateModule.class).pickupBlock(pos, world)) - { - stack.damageItem(2, player); - } - } - else - { - for (int i = 0; i < 15; i++) - { - world.spawnParticle(EnumParticleTypes.BLOCK_DUST, - pos.getX() + (world.rand.nextDouble() * 1.2D), - pos.getY() + (world.rand.nextDouble()), - pos.getZ() + (world.rand.nextDouble() * 1.2D), 0.0D, 0.0D, 0.0D, - Block.getStateId(state)); - } - } - - return true; - } - } - - return false; - } - - @Override - public void onRightClickItem(EntityPlayer player, EnumHand hand) - { - if (hand == EnumHand.MAIN_HAND && !player.world.isRemote) - { - PlayerAether aePlayer = PlayerAether.getPlayer(player); - PlayerBlockLevitateModule blockLevitateModule = aePlayer.getModule(PlayerBlockLevitateModule.class); - - if (blockLevitateModule.getHeldBlock() != null && blockLevitateModule.getHeldBlock().ticksExisted > 1) - { - blockLevitateModule.dropHeldBlock(); - } - } - } - - @Override - public void addInformation(ItemStack stack, List<String> tooltip) - { - tooltip.add(1, String.format("%s: %s", - TextFormatting.DARK_AQUA + I18n.format("item.aether.tooltip.use"), - TextFormatting.WHITE + I18n.format("item.aether.tool.gravitite.use.desc"))); - - tooltip.add(1, String.format("%s: %s", - TextFormatting.BLUE + I18n.format("item.aether.tooltip.ability"), - TextFormatting.WHITE + I18n.format("item.aether.tool.gravitite.ability.desc"))); - } - - @Override - public void onEntityHit(ItemStack stack, Entity target, EntityLivingBase attacker) - { - - } - - @Override - public float getBreakSpeed(ItemStack stack, IBlockState state, float original) - { - return original; - } -} diff --git a/src/main/java/com/gildedgames/aether/common/items/tools/handlers/ItemHolystoneToolHandler.java b/src/main/java/com/gildedgames/aether/common/items/tools/handlers/ItemHolystoneToolHandler.java deleted file mode 100644 index d15305c72c..0000000000 --- a/src/main/java/com/gildedgames/aether/common/items/tools/handlers/ItemHolystoneToolHandler.java +++ /dev/null @@ -1,64 +0,0 @@ -package com.gildedgames.aether.common.items.tools.handlers; - -import com.gildedgames.aether.api.registrar.ItemsAether; -import com.gildedgames.aether.common.items.weapons.swords.ItemHolystoneSword; -import net.minecraft.block.state.IBlockState; -import net.minecraft.client.resources.I18n; -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraft.util.EnumFacing; -import net.minecraft.util.EnumHand; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.text.TextFormatting; -import net.minecraft.world.World; - -import java.util.List; - -public class ItemHolystoneToolHandler implements IToolEventHandler -{ - @Override - public void onHarvestBlock(ItemStack stack, World world, IBlockState state, BlockPos pos, EntityPlayer entity, List<ItemStack> drops) - { - if (!world.isRemote && world.rand.nextInt(100) <= 5) - { - if (state.getBlockHardness(world, pos) > 0.0f) - { - drops.add(new ItemStack(ItemsAether.ambrosium_shard)); - } - } - } - - @Override - public boolean onRightClickBlock(World world, BlockPos pos, EntityPlayer player, EnumHand hand, EnumFacing facing) - { - return false; - } - - @Override - public void onRightClickItem(EntityPlayer player, EnumHand hand) - { - - } - - @Override - public void addInformation(ItemStack stack, List<String> tooltip) - { - tooltip.add(1, String.format("%s: %s", - TextFormatting.BLUE + I18n.format("item.aether.tooltip.ability"), - TextFormatting.WHITE + I18n.format("item.aether.tool.holystone.ability.desc"))); - } - - @Override - public void onEntityHit(ItemStack stack, Entity target, EntityLivingBase attacker) - { - ItemHolystoneSword.trySpawnAmbrosium(stack, target, attacker); - } - - @Override - public float getBreakSpeed(ItemStack stack, IBlockState state, float original) - { - return original; - } -} diff --git a/src/main/java/com/gildedgames/aether/common/items/tools/handlers/ItemSkyrootToolHandler.java b/src/main/java/com/gildedgames/aether/common/items/tools/handlers/ItemSkyrootToolHandler.java deleted file mode 100644 index 7a7ac75d13..0000000000 --- a/src/main/java/com/gildedgames/aether/common/items/tools/handlers/ItemSkyrootToolHandler.java +++ /dev/null @@ -1,88 +0,0 @@ -package com.gildedgames.aether.common.items.tools.handlers; - -import com.gildedgames.aether.api.chunk.IPlacementFlagCapability; -import com.gildedgames.aether.api.registrar.CapabilitiesAether; -import net.minecraft.block.IGrowable; -import net.minecraft.block.state.IBlockState; -import net.minecraft.client.resources.I18n; -import net.minecraft.enchantment.EnchantmentHelper; -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.init.Enchantments; -import net.minecraft.item.ItemStack; -import net.minecraft.util.EnumFacing; -import net.minecraft.util.EnumHand; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.text.TextFormatting; -import net.minecraft.world.World; - -import java.util.ArrayList; -import java.util.List; - -public class ItemSkyrootToolHandler implements IToolEventHandler -{ - @Override - public void onHarvestBlock(final ItemStack stack, final World world, final IBlockState state, final BlockPos pos, final EntityPlayer entity, - final List<ItemStack> drops) - { - if (!world.isRemote) - { - if (state.getBlock() instanceof IGrowable) - { - return; - } - - final IPlacementFlagCapability data = world.getChunk(pos).getCapability(CapabilitiesAether.CHUNK_PLACEMENT_FLAG, EnumFacing.UP); - - if (data.isModified(pos)) - { - return; - } - - if (state.getBlock().canHarvestBlock(world, pos, entity)) - { - final int fortune = EnchantmentHelper.getEnchantmentLevel(Enchantments.FORTUNE, stack); - - final List<ItemStack> copy = new ArrayList<>(drops); - - for (int i = 0; i < fortune + 1; i++) - { - drops.addAll(copy); - } - } - } - } - - @Override - public boolean onRightClickBlock(final World world, final BlockPos pos, final EntityPlayer player, final EnumHand hand, final EnumFacing facing) - { - return false; - } - - @Override - public void onRightClickItem(final EntityPlayer player, final EnumHand hand) - { - - } - - @Override - public void addInformation(final ItemStack stack, final List<String> tooltip) - { - tooltip.add(1, String.format("%s: %s", - TextFormatting.BLUE + I18n.format("item.aether.tooltip.ability"), - TextFormatting.WHITE + I18n.format("item.aether.tool.skyroot.ability.desc"))); - } - - @Override - public void onEntityHit(final ItemStack stack, final Entity target, final EntityLivingBase attacker) - { - - } - - @Override - public float getBreakSpeed(ItemStack stack, IBlockState state, float original) - { - return original; - } -} diff --git a/src/main/java/com/gildedgames/aether/common/items/tools/handlers/ItemZaniteToolHandler.java b/src/main/java/com/gildedgames/aether/common/items/tools/handlers/ItemZaniteToolHandler.java deleted file mode 100644 index 3c92d376ed..0000000000 --- a/src/main/java/com/gildedgames/aether/common/items/tools/handlers/ItemZaniteToolHandler.java +++ /dev/null @@ -1,58 +0,0 @@ -package com.gildedgames.aether.common.items.tools.handlers; - -import net.minecraft.block.state.IBlockState; -import net.minecraft.client.resources.I18n; -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraft.util.EnumFacing; -import net.minecraft.util.EnumHand; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.text.TextFormatting; -import net.minecraft.world.World; - -import java.util.List; - -public class ItemZaniteToolHandler implements IToolEventHandler -{ - @Override - public void onHarvestBlock(ItemStack stack, World world, IBlockState state, BlockPos pos, EntityPlayer entity, List<ItemStack> drops) - { - - } - - @Override - public boolean onRightClickBlock(World world, BlockPos pos, EntityPlayer player, EnumHand hand, EnumFacing facing) - { - return false; - } - - @Override - public void onRightClickItem(EntityPlayer player, EnumHand hand) - { - - } - - @Override - public void addInformation(ItemStack stack, List<String> tooltip) - { - tooltip.add(1, String.format("%s: %s", - TextFormatting.BLUE + I18n.format("item.aether.tooltip.ability"), - TextFormatting.WHITE + I18n.format("item.aether.tool.zanite.ability.desc"))); - } - - @Override - public void onEntityHit(ItemStack stack, Entity target, EntityLivingBase attacker) - { - - } - - @Override - public float getBreakSpeed(ItemStack stack, IBlockState state, float original) - { - float scale = ((2.0F * ((float) stack.getItemDamage() / (float) stack.getItem().getMaxDamage())) + 1.0F); - - return original * scale; - } -} diff --git a/src/main/java/com/gildedgames/aether/common/items/weapons/ItemDart.java b/src/main/java/com/gildedgames/aether/common/items/weapons/ItemDart.java deleted file mode 100644 index 74c31b419e..0000000000 --- a/src/main/java/com/gildedgames/aether/common/items/weapons/ItemDart.java +++ /dev/null @@ -1,80 +0,0 @@ -package com.gildedgames.aether.common.items.weapons; - -import com.gildedgames.aether.common.items.IDropOnDeath; -import net.minecraft.client.resources.I18n; -import net.minecraft.client.util.ITooltipFlag; -import net.minecraft.creativetab.CreativeTabs; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.util.NonNullList; -import net.minecraft.util.text.TextFormatting; -import net.minecraft.world.World; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; - -import java.util.List; - -public class ItemDart extends Item implements IDropOnDeath -{ - public static final ItemDartType[] ITEM_VARIANTS = new ItemDartType[] { ItemDartType.GOLDEN, ItemDartType.ENCHANTED, - ItemDartType.POISON }; - - public ItemDart() - { - this.setHasSubtypes(true); - } - - @Override - @SideOnly(Side.CLIENT) - public void getSubItems(final CreativeTabs tab, final NonNullList<ItemStack> subItems) - { - if (!this.isInCreativeTab(tab)) - { - return; - } - - for (final ItemDartType type : ITEM_VARIANTS) - { - subItems.add(new ItemStack(this, 1, type.ordinal())); - } - } - - @Override - @SideOnly(Side.CLIENT) - public void addInformation(final ItemStack stack, final World world, final List<String> tooltip, final ITooltipFlag flag) - { - final ItemDartType type = ITEM_VARIANTS[stack.getItemDamage()]; - - final int slashDamageLevel = type.getSlashDamageLevel(); - final int pierceDamageLevel = type.getPierceDamageLevel(); - final int impactDamageLevel = type.getImpactDamageLevel(); - - tooltip.add(TextFormatting.GRAY + I18n.format("item.aether.dart.desc")); - - if (slashDamageLevel > 0) - { - this.addDamageLevel("slash", slashDamageLevel, tooltip); - } - - if (pierceDamageLevel > 0) - { - this.addDamageLevel("pierce", pierceDamageLevel, tooltip); - } - - if (impactDamageLevel > 0) - { - this.addDamageLevel("impact", impactDamageLevel, tooltip); - } - } - - private void addDamageLevel(String damageType, int damageLevel, final List<String> tooltip) - { - tooltip.add(TextFormatting.GRAY + String.valueOf(damageLevel) + " " + I18n.format("item.aether.bolt." + damageType)); - } - - @Override - public String getTranslationKey(final ItemStack stack) - { - return super.getTranslationKey(stack) + "." + ItemDartType.fromOrdinal(stack.getMetadata()).getID(); - } -} diff --git a/src/main/java/com/gildedgames/aether/common/items/weapons/ItemDartShooter.java b/src/main/java/com/gildedgames/aether/common/items/weapons/ItemDartShooter.java deleted file mode 100644 index 700a71e085..0000000000 --- a/src/main/java/com/gildedgames/aether/common/items/weapons/ItemDartShooter.java +++ /dev/null @@ -1,170 +0,0 @@ -package com.gildedgames.aether.common.items.weapons; - -import com.gildedgames.aether.api.registrar.ItemsAether; -import com.gildedgames.aether.api.registrar.SoundsAether; -import com.gildedgames.aether.common.entities.projectiles.EntityDart; -import net.minecraft.creativetab.CreativeTabs; -import net.minecraft.enchantment.Enchantment; -import net.minecraft.enchantment.EnchantmentHelper; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.entity.projectile.EntityArrow; -import net.minecraft.item.EnumAction; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.util.ActionResult; -import net.minecraft.util.EnumActionResult; -import net.minecraft.util.EnumHand; -import net.minecraft.util.NonNullList; -import net.minecraft.world.World; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; - -public class ItemDartShooter extends Item -{ - public ItemDartShooter() - { - this.setHasSubtypes(true); - - this.setMaxStackSize(1); - } - - @Override - @SideOnly(Side.CLIENT) - public void getSubItems(final CreativeTabs tab, final NonNullList<ItemStack> subItems) - { - if (!this.isInCreativeTab(tab)) - { - return; - } - - for (final ItemDartType type : ItemDartType.values()) - { - subItems.add(new ItemStack(this, 1, type.ordinal())); - } - } - - @Override - public int getMaxItemUseDuration(final ItemStack stack) - { - return 72000; - } - - @Override - public EnumAction getItemUseAction(final ItemStack stack) - { - return EnumAction.BOW; - } - - @Override - public ActionResult<ItemStack> onItemRightClick(final World worldIn, final EntityPlayer player, final EnumHand hand) - { - final ItemStack stack = player.getHeldItem(hand); - - final ItemDartType dartType = ItemDartType.fromOrdinal(stack.getMetadata()); - - final int ammoSlot = this.getMatchingAmmoSlot(player.inventory, dartType.getAmmoItem()); - - if (ammoSlot > 0 || player.capabilities.isCreativeMode) - { - player.setActiveHand(hand); - } - - return new ActionResult<>(EnumActionResult.PASS, stack); - } - - @Override - public void onPlayerStoppedUsing(final ItemStack stack, final World world, final EntityLivingBase entity, final int timeLeft) - { - if (!(entity instanceof EntityPlayer)) - { - return; - } - - final EntityPlayer player = (EntityPlayer) entity; - - final ItemDartType dartType = ItemDartType.fromOrdinal(stack.getMetadata()); - - final int inventorySlot = this.getMatchingAmmoSlot(player.inventory, dartType.getAmmoItem()); - - if (inventorySlot < 0 && !player.capabilities.isCreativeMode) - { - return; - } - - final boolean isInfiniteArrow = player.capabilities.isCreativeMode - || EnchantmentHelper.getEnchantmentLevel(Enchantment.getEnchantmentByLocation("infinity"), stack) > 0; - - final int duration = this.getMaxItemUseDuration(stack) - timeLeft - 5; - - if (duration > 3) - { - float speed = duration / 15f; - speed = (speed * speed + speed * 2.0F) / 4.0F; - - if (speed > 1f) - { - speed = 1f; - } - - final EntityDart dart = new EntityDart(world, player); - dart.shoot(player, player.rotationPitch, player.rotationYaw, 0.0F, speed * 3.0F, 1.0F); - dart.setDartType(dartType); - - if (speed >= 0.8f) - { - dart.setIsCritical(true); - } - - if (isInfiniteArrow) - { - dart.pickupStatus = EntityArrow.PickupStatus.CREATIVE_ONLY; - } - - player.playSound(SoundsAether.dart_shooter_fire, 1.0F, 1.0F / (itemRand.nextFloat() * 0.4F + 1.2F) + speed * 0.5F); - - if (!world.isRemote) - { - world.spawnEntity(dart); - } - - if (inventorySlot >= 0 && !player.capabilities.isCreativeMode) - { - final ItemStack ammoStack = player.inventory.getStackInSlot(inventorySlot); - ammoStack.shrink(1); - - if (ammoStack.getCount() <= 0) - { - player.inventory.deleteStack(ammoStack); - } - } - } - } - - private int getMatchingAmmoSlot(final InventoryPlayer inventory, final ItemDartType ammo) - { - final int searchMeta = ammo.ordinal(); - - for (int i = 0; i < inventory.mainInventory.size(); i++) - { - final ItemStack stack = inventory.mainInventory.get(i); - - if (stack.getItem() == ItemsAether.dart) - { - if (stack.getMetadata() == searchMeta) - { - return i; - } - } - } - - return -1; - } - - @Override - public String getTranslationKey(final ItemStack stack) - { - return super.getTranslationKey(stack) + "." + ItemDartType.fromOrdinal(stack.getMetadata()).getID(); - } -} diff --git a/src/main/java/com/gildedgames/aether/common/items/weapons/ItemDartType.java b/src/main/java/com/gildedgames/aether/common/items/weapons/ItemDartType.java deleted file mode 100644 index 52415d5a2f..0000000000 --- a/src/main/java/com/gildedgames/aether/common/items/weapons/ItemDartType.java +++ /dev/null @@ -1,53 +0,0 @@ -package com.gildedgames.aether.common.items.weapons; - -public enum ItemDartType -{ - GOLDEN(0, 0, 0, "golden"), - ENCHANTED(0, 0, 0, "enchanted"), - POISON(0, 0, 0, "poison"); - - private final int slashDamageLevel, pierceDamageLevel, impactDamageLevel; - - private final String id; - - ItemDartType(int slashDamageLevel, int pierceDamageLevel, int impactDamageLevel, String id) - { - this.slashDamageLevel = slashDamageLevel; - this.pierceDamageLevel = pierceDamageLevel; - this.impactDamageLevel = impactDamageLevel; - - this.id = id; - } - - public static ItemDartType fromOrdinal(int ordinal) - { - ItemDartType[] darts = values(); - - return darts[ordinal >= darts.length || ordinal < 0 ? 0 : ordinal]; - } - - public int getSlashDamageLevel() - { - return this.slashDamageLevel; - } - - public int getPierceDamageLevel() - { - return this.pierceDamageLevel; - } - - public int getImpactDamageLevel() - { - return this.impactDamageLevel; - } - - public String getID() - { - return this.id; - } - - public ItemDartType getAmmoItem() - { - return this; - } -} diff --git a/src/main/java/com/gildedgames/aether/common/items/weapons/crossbow/ItemBolt.java b/src/main/java/com/gildedgames/aether/common/items/weapons/crossbow/ItemBolt.java deleted file mode 100644 index 9592a6cf36..0000000000 --- a/src/main/java/com/gildedgames/aether/common/items/weapons/crossbow/ItemBolt.java +++ /dev/null @@ -1,30 +0,0 @@ -package com.gildedgames.aether.common.items.weapons.crossbow; - -import com.gildedgames.aether.common.items.IDropOnDeath; -import net.minecraft.client.resources.I18n; -import net.minecraft.client.util.ITooltipFlag; -import net.minecraft.creativetab.CreativeTabs; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.util.NonNullList; -import net.minecraft.util.text.TextFormatting; -import net.minecraft.world.World; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; - -import java.util.List; - -public class ItemBolt extends Item implements IDropOnDeath -{ - public ItemBolt() - { - - } - - @Override - @SideOnly(Side.CLIENT) - public void addInformation(final ItemStack stack, final World world, final List<String> tooltip, final ITooltipFlag flag) - { - tooltip.add(TextFormatting.GRAY + I18n.format("item.aether.bolt.desc")); - } -} diff --git a/src/main/java/com/gildedgames/aether/common/items/weapons/crossbow/ItemCrossbow.java b/src/main/java/com/gildedgames/aether/common/items/weapons/crossbow/ItemCrossbow.java deleted file mode 100644 index 9206b959c8..0000000000 --- a/src/main/java/com/gildedgames/aether/common/items/weapons/crossbow/ItemCrossbow.java +++ /dev/null @@ -1,741 +0,0 @@ -package com.gildedgames.aether.common.items.weapons.crossbow; - -import com.gildedgames.aether.api.entity.damage.DamageTypeAttributes; -import com.gildedgames.aether.api.player.inventory.IInventoryEquipment; -import com.gildedgames.aether.common.capabilities.DamageSystem; -import com.gildedgames.aether.common.capabilities.entity.player.PlayerAether; -import com.gildedgames.aether.common.capabilities.entity.player.modules.PlayerEquipmentModule; -import com.gildedgames.aether.common.entities.projectiles.EntityBolt; -import com.gildedgames.aether.common.init.CreativeTabsAether; -import net.minecraft.client.Minecraft; -import net.minecraft.client.renderer.ItemRenderer; -import net.minecraft.client.resources.I18n; -import net.minecraft.client.util.ITooltipFlag; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.projectile.EntityArrow; -import net.minecraft.init.SoundEvents; -import net.minecraft.item.EnumAction; -import net.minecraft.item.IItemPropertyGetter; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.util.*; -import net.minecraft.util.text.TextFormatting; -import net.minecraft.world.World; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; - -import javax.annotation.Nullable; -import java.util.List; - -public class ItemCrossbow extends Item -{ - private float durationInTicks; - - private float knockBackValue; - - private crossBowTypes cBType; - - private boolean isSpecialLoaded; - - private boolean finishedLoading = false; - - public ItemCrossbow() - { - this.maxStackSize = 1; - - this.knockBackValue = 0; - this.durationInTicks = 20.0F; - - this.isSpecialLoaded = false; - - this.setCreativeTab(CreativeTabsAether.TAB_WEAPONS); - - this.addPropertyOverride(new ResourceLocation("pull"), new IItemPropertyGetter() - { - @Override - @SideOnly(Side.CLIENT) - public float apply(final ItemStack stack, @Nullable final World worldIn, @Nullable final EntityLivingBase entityIn) - { - //"pull": The amount that the crossbow has been pulled. - - if (entityIn != null) - { - final ItemStack activeItemStack = entityIn.getActiveItemStack(); - final ItemStack heldItemStack = entityIn.getHeldItemMainhand(); - float duration; - - if (ItemCrossbow.this.isSpecialLoaded) - { - duration = getDurationInTicks() * 2; - } - else - { - duration = getDurationInTicks(); - } - - if (heldItemStack == stack && heldItemStack.getItem() == ItemCrossbow.this) - { - if (entityIn.isHandActive() && activeItemStack == stack && activeItemStack.getItem() == ItemCrossbow.this) - { - return ((float) (stack.getMaxItemUseDuration() - entityIn.getItemInUseCount()) / duration); - } - else if (((ItemCrossbow) heldItemStack.getItem()).finishedLoading) - { - return 1.0F; - } - } - } - - return 0.0F; - } - }); - - this.addPropertyOverride(new ResourceLocation("pulling"), new IItemPropertyGetter() - { - @Override - @SideOnly(Side.CLIENT) - public float apply(final ItemStack stack, @Nullable final World worldIn, @Nullable final EntityLivingBase entityIn) - { - //"pulling": Whether the crossbow is being pulled or not. Basically a boolean in 1.0F and 0.0F form. - - if (entityIn != null) - { - final ItemStack activeItemStack = entityIn.getActiveItemStack(); - final ItemStack heldItemStack = entityIn.getHeldItemMainhand(); - - if (heldItemStack == stack && heldItemStack.getItem() == ItemCrossbow.this) - { - if (entityIn.isHandActive() && activeItemStack == stack && activeItemStack.getItem() == ItemCrossbow.this) - { - return 1.0F; - } - } - } - - return 0.0F; - } - }); - - this.addPropertyOverride(new ResourceLocation("ready"), new IItemPropertyGetter() - { - @Override - @SideOnly(Side.CLIENT) - public float apply(final ItemStack stack, @Nullable final World worldIn, @Nullable final EntityLivingBase entityIn) - { - return entityIn != null && ItemCrossbow.this.finishedLoading ? 1.0F : 0.0F; - } - }); - - this.addPropertyOverride(new ResourceLocation("charged"), new IItemPropertyGetter() - { - @Override - @SideOnly(Side.CLIENT) - public float apply(final ItemStack stack, @Nullable final World worldIn, @Nullable final EntityLivingBase entityIn) - { - return entityIn != null && ItemCrossbow.isLoaded(stack) ? 1.0F : 0.0F; - } - }); - } - - private static void checkTag(final ItemStack stack) - { - if (stack.getTagCompound() == null) - { - stack.setTagCompound(new NBTTagCompound()); - } - } - - public static boolean isLoaded(final ItemStack stack) - { - if (stack == null) - { - return false; - } - - checkTag(stack); - - return stack.getTagCompound().getBoolean("loaded"); - } - - public static void setLoaded(final ItemStack stack, final boolean loaded) - { - if (stack == null) - { - return; - } - - checkTag(stack); - - stack.getTagCompound().setBoolean("loaded", loaded); - } - - private ItemStack findAmmo(EntityPlayer player) - { - if (this.isBolt(player.getHeldItem(EnumHand.OFF_HAND))) - { - return player.getHeldItem(EnumHand.OFF_HAND); - } - else if (this.isBolt(player.getHeldItem(EnumHand.MAIN_HAND))) - { - return player.getHeldItem(EnumHand.MAIN_HAND); - } - else - { - for (int i = 0; i < player.inventory.getSizeInventory(); ++i) - { - ItemStack itemStack = player.inventory.getStackInSlot(i); - - if (this.isBolt(itemStack)) - { - return itemStack; - } - } - - return ItemStack.EMPTY; - } - } - - private boolean hasAmmo(final EntityPlayer player) - { - final ItemStack boltStack = this.findAmmo(player); - - boolean hasBolts = boltStack.getCount() >= 1; - - if (this.cBType == crossBowTypes.SKYROOT && player.isSneaking()) - { - hasBolts = boltStack.getCount() >= 2; - } - else if (this.cBType == crossBowTypes.HOLYSTONE && player.isSneaking()) - { - hasBolts = boltStack.getCount() >= 3; - } - - return this.isBolt(boltStack) && hasBolts; - } - - private boolean isBolt(ItemStack stack) - { - return stack.getItem() instanceof ItemBolt; - } - - @Override - public ActionResult<ItemStack> onItemRightClick(final World worldIn, final EntityPlayer playerIn, final EnumHand hand) - { - final ItemStack stack = playerIn.getHeldItem(hand); - - if (!ItemCrossbow.isLoaded(stack)) - { - if (this.hasAmmo(playerIn)) - { - playerIn.setActiveHand(EnumHand.MAIN_HAND); - return new ActionResult<>(EnumActionResult.SUCCESS, stack); - } - } - else - { - if (playerIn.world.isRemote) - { - final ItemRenderer renderer = Minecraft.getMinecraft().getItemRenderer(); - renderer.equippedProgressMainHand = 1.5F; - } - - this.shootBolt(playerIn, stack); - - if (!playerIn.world.isRemote) - { - ItemCrossbow.setLoaded(stack, false); - } - - playerIn.activeItemStackUseCount = 0; - - return new ActionResult<>(EnumActionResult.SUCCESS, stack); - } - - return new ActionResult<>(EnumActionResult.PASS, stack); - } - - private void shootBolt(final EntityLivingBase entityLiving, final ItemStack stack) - { - if (!entityLiving.world.isRemote) - { - final World world = entityLiving.world; - - world.playSound(null, entityLiving.posX, entityLiving.posY, entityLiving.posZ, SoundEvents.ENTITY_ARROW_SHOOT, SoundCategory.NEUTRAL, 1.0F, - 1.0F / (itemRand.nextFloat() * 0.4F + 1.2F)); - - final float speed = 1.0f; - - EntityBolt bolt0 = null, - bolt1 = null, - bolt2 = null; - - float slashDamageLevel = this.cBType.slashDamageLevel; - float pierceDamageLevel = this.cBType.pierceDamageLevel; - float impactDamageLevel = this.cBType.impactDamageLevel; - float vanillaDamage = this.cBType.damage; - - IInventoryEquipment inventory = null; - - if (entityLiving instanceof EntityPlayer) - { - EntityPlayer player = (EntityPlayer) entityLiving; - - inventory = PlayerAether.getPlayer(player).getModule(PlayerEquipmentModule.class).getInventory(); - } - - if (slashDamageLevel > 0) - { - slashDamageLevel += DamageSystem.getBonusDamageFromAccessories("slash", inventory); - } - if (pierceDamageLevel > 0) - { - pierceDamageLevel += DamageSystem.getBonusDamageFromAccessories("pierce", inventory); - } - if (impactDamageLevel > 0) - { - impactDamageLevel += DamageSystem.getBonusDamageFromAccessories("impact", inventory); - } - - // calculate bolts that are special is being loaded. - if (this.isSpecialLoaded && this.cBType != crossBowTypes.ZANITE && this.cBType != crossBowTypes.GRAVETITE) - { - if (this.cBType == crossBowTypes.SKYROOT) - { - bolt0 = this.createBolt(entityLiving, speed, 0, 0, 0, slashDamageLevel, pierceDamageLevel, impactDamageLevel, vanillaDamage); - bolt1 = this.createBolt(entityLiving, speed, 0, 0, 0, slashDamageLevel, pierceDamageLevel, impactDamageLevel, vanillaDamage); - } - else if (this.cBType == crossBowTypes.HOLYSTONE) - { - bolt0 = this.createBolt(entityLiving, speed / 2, 0, 0, 0, slashDamageLevel, pierceDamageLevel, impactDamageLevel, vanillaDamage); - bolt1 = this.createBolt(entityLiving, speed / 2, 10, 0, 0, slashDamageLevel, pierceDamageLevel, impactDamageLevel, vanillaDamage); - bolt2 = this.createBolt(entityLiving, speed / 2, -10, 0, 0, slashDamageLevel, pierceDamageLevel, impactDamageLevel, vanillaDamage); - } - else if (this.cBType == crossBowTypes.ARKENIUM) - { - bolt0 = this.createBolt(entityLiving, speed * 2.5f, 0, -1, 0, slashDamageLevel, pierceDamageLevel, impactDamageLevel, vanillaDamage); - } - } - // standard bolts - else - { - if (this.cBType == crossBowTypes.ZANITE) - { - float bonusPierce = 0; - - if (entityLiving.getHeldItemMainhand() == stack) - { - vanillaDamage = 6f + ((float) (stack.getItemDamage() * 4) / stack.getItem().getMaxDamage()); - - bonusPierce = ((float) (stack.getItemDamage() * 4) / stack.getItem().getMaxDamage()); - } - - bolt0 = this.createBolt(entityLiving, speed, 0, 0, 0, slashDamageLevel, pierceDamageLevel + bonusPierce, impactDamageLevel, - vanillaDamage); - } - else if (this.cBType == crossBowTypes.GRAVETITE) - { - bolt0 = this.createBolt(entityLiving, speed, 0, 0, 0, slashDamageLevel, pierceDamageLevel, impactDamageLevel, vanillaDamage); - - if (bolt0 != null) - { - bolt0.setNoGravity(true); - } - } - else - { - bolt0 = this.createBolt(entityLiving, speed, 0, 0, 0, slashDamageLevel, pierceDamageLevel, impactDamageLevel, vanillaDamage); - } - } - - if (entityLiving instanceof EntityPlayer) - { - final EntityPlayer player = (EntityPlayer) entityLiving; - - if (player.capabilities.isCreativeMode) - { - if (bolt0 != null) - { - bolt0.pickupStatus = EntityArrow.PickupStatus.CREATIVE_ONLY; - } - if (bolt1 != null) - { - bolt1.pickupStatus = EntityArrow.PickupStatus.CREATIVE_ONLY; - } - if (bolt2 != null) - { - bolt2.pickupStatus = EntityArrow.PickupStatus.CREATIVE_ONLY; - } - } - else - { - if (this.getDamage(stack) >= this.getMaxDamage(stack)) - { - player.inventory.deleteStack(stack); - world.playSound(null, entityLiving.posX, entityLiving.posY, entityLiving.posZ, SoundEvents.ENTITY_ITEM_BREAK, SoundCategory.PLAYERS, - 1.0F, - 1.0F / (itemRand.nextFloat() * 0.4F + 1.2F)); - } - - // damage crossbow - if (this.isSpecialLoaded) - { - this.setDamage(stack, this.getDamage(stack) + 2); - } - else - { - this.setDamage(stack, this.getDamage(stack) + 1); - } - } - } - - if (bolt0 != null) - { - entityLiving.getEntityWorld().spawnEntity(bolt0); - } - - if (bolt1 != null) - { - entityLiving.getEntityWorld().spawnEntity(bolt1); - } - - if (bolt2 != null) - { - entityLiving.getEntityWorld().spawnEntity(bolt2); - } - - this.isSpecialLoaded = false; - this.finishedLoading = false; - } - } - - private EntityBolt createBolt(EntityLivingBase entityLiving, float speed, float addRotationYaw, float addRotationPitch, float addInaccuracy, - float slashDamageLevel, float pierceDamageLevel, float impactDamageLevel, float damage) - { - if (!entityLiving.world.isRemote) - { - final EntityBolt bolt = new EntityBolt(entityLiving.getEntityWorld(), entityLiving); - - bolt.shoot(entityLiving, entityLiving.rotationPitch + addRotationPitch, entityLiving.rotationYaw + addRotationYaw, - 0.0F, speed * 2.0F, 1.0F + addInaccuracy); - - bolt.setSlashDamageLevel(slashDamageLevel); - bolt.setPierceDamageLevel(pierceDamageLevel); - bolt.setImpactDamageLevel(impactDamageLevel); - bolt.setDamage(damage / 2); - bolt.setIsCritical(false); - - bolt.pickupStatus = EntityArrow.PickupStatus.ALLOWED; - - return bolt; - } - - return null; - } - - @Override - public void onUsingTick(final ItemStack stack, final EntityLivingBase living, final int count) - { - if (living instanceof EntityPlayer) - { - final EntityPlayer player = (EntityPlayer) living; - - if (this.hasAmmo(player)) - { - if (!living.getEntityWorld().isRemote) - { - final float use = (float) (this.getMaxItemUseDuration(stack) - living.getItemInUseCount()) / 20.0F; - float duration; - - if (use == 0) - { - if (this.cBType != crossBowTypes.ZANITE && this.cBType != crossBowTypes.GRAVETITE) - { - this.isSpecialLoaded = player.isSneaking(); - } - - this.finishedLoading = false; - } - - if (this.isSpecialLoaded) - { - duration = getDurationInTicks() * 2; - } - else - { - duration = getDurationInTicks(); - } - - if (use >= (duration / 20.0F)) - { - this.finishedLoading = true; - } - } - } - } - } - - @Override - public void onPlayerStoppedUsing(final ItemStack stack, final World worldIn, final EntityLivingBase entityLiving, final int timeLeft) - { - if (entityLiving instanceof EntityPlayer) - { - final EntityPlayer player = (EntityPlayer) entityLiving; - final ItemStack boltStack = findAmmo(player); - - this.finishedLoading = false; - - if (this.hasAmmo(player)) - { - if (!entityLiving.getEntityWorld().isRemote) - { - final float use = (float) (this.getMaxItemUseDuration(stack) - entityLiving.getItemInUseCount()) / 20.0F; - float duration; - - if (!player.isSneaking()) - { - this.isSpecialLoaded = false; - } - - if (this.isSpecialLoaded) - { - duration = getDurationInTicks() * 2; - } - else - { - duration = getDurationInTicks(); - } - - if (use >= (duration / 20.0F)) - { - ItemCrossbow.setLoaded(stack, true); - - final World world = entityLiving.world; - - world.playSound(null, entityLiving.posX, entityLiving.posY, entityLiving.posZ, SoundEvents.BLOCK_WOOD_BUTTON_CLICK_OFF, SoundCategory.NEUTRAL, 1.0F, - 1.0F / (itemRand.nextFloat() * 0.4F + 1.2F)); - - if (!player.capabilities.isCreativeMode) - { - int shrinkQuantity = 1; - if (this.isSpecialLoaded) - { - if (this.cBType == crossBowTypes.HOLYSTONE) - { - shrinkQuantity = 3; - } - if (this.cBType == crossBowTypes.SKYROOT) - { - shrinkQuantity = 2; - } - } - boltStack.shrink(shrinkQuantity); - - if (boltStack.getCount() == 0) - { - player.inventory.deleteStack(boltStack); - } - } - } - } - } - } - } - - @Override - public int getMaxItemUseDuration(final ItemStack stack) - { - return 72000; - } - - @Override - public EnumAction getItemUseAction(final ItemStack stack) - { - return EnumAction.BOW; - } - - @Override - public boolean getShareTag() - { - return true; - } - - public float getKnockBackValue() - { - return this.knockBackValue; - } - - public ItemCrossbow setKnockBackValue(final float x) - { - this.knockBackValue = x; - - return this; - } - - public float getDurationInTicks() - { - return this.durationInTicks; - } - - public ItemCrossbow setDurationInTicks(final int x) - { - this.durationInTicks = x; - - return this; - } - - public boolean getIsSpecialLoaded() - { - return this.isSpecialLoaded; - } - - @Override - @SideOnly(Side.CLIENT) - public void addInformation(final ItemStack stack, final World world, final List<String> tooltip, final ITooltipFlag flag) - { - final float seconds = this.durationInTicks / 20.0F; - - tooltip.add(String.format("%s: %s", - TextFormatting.BLUE + I18n.format("item.aether.crossbow.desc4"), - TextFormatting.WHITE + I18n.format("item.aether." + this.cBType.name + ".ability"))); - - if (this.cBType != crossBowTypes.ZANITE && this.cBType != crossBowTypes.GRAVETITE) - { - tooltip.add(String.format("%s: %s", - TextFormatting.DARK_AQUA + I18n.format("item.aether.tooltip.use"), - TextFormatting.WHITE + I18n.format("item.aether.crossbow.use.desc"))); - } - - tooltip.add(""); - - tooltip.add(TextFormatting.GRAY + I18n.format("item.modifiers.mainhand")); - - if (seconds == Math.floor(seconds)) - { - tooltip.add(TextFormatting.GRAY + " " + (int) Math.floor(seconds) + " " + I18n.format( - "item.aether.crossbow.desc3") + I18n.format("item.aether.crossbow.desc1")); - } - else - { - tooltip.add(TextFormatting.GRAY + " " + seconds + " " + I18n.format( - "item.aether.crossbow.desc3") + I18n.format("item.aether.crossbow.desc1")); - } - - if (this.cBType.slashDamageLevel > 0) - { - String slashValue; - - if (this.cBType.slashDamageLevel % 1 == 0) - { - int n = Math.round(this.cBType.slashDamageLevel); - slashValue = String.valueOf(n); - } - else - { - float n = this.cBType.slashDamageLevel; - slashValue = String.valueOf(n); - } - - tooltip.add(String.format(" %s %s", - slashValue, - String.format("%s %s", - TextFormatting.BLUE + I18n.format("attribute.name.aether.slash"), - TextFormatting.GRAY + I18n.format("attribute.name.aether.damageLevel")))); - } - - if (this.cBType.pierceDamageLevel > 0) - { - String pierceValue; - - if (this.cBType.pierceDamageLevel % 1 == 0) - { - int n = Math.round(this.cBType.pierceDamageLevel); - pierceValue = String.valueOf(n); - } - else - { - float n = this.cBType.pierceDamageLevel; - pierceValue = String.valueOf(n); - } - - tooltip.add(String.format(" %s %s", - pierceValue, - String.format("%s %s", - TextFormatting.RED + I18n.format("attribute.name.aether.pierce"), - TextFormatting.GRAY + I18n.format("attribute.name.aether.damageLevel")))); - } - - if (this.cBType.impactDamageLevel > 0) - { - String impactValue; - - if (this.cBType.impactDamageLevel % 1 == 0) - { - int n = Math.round(this.cBType.impactDamageLevel); - impactValue = String.valueOf(n); - } - else - { - float n = this.cBType.impactDamageLevel; - impactValue = String.valueOf(n); - } - - tooltip.add(String.format(" %s %s", - impactValue, - String.format("%s %s", - TextFormatting.YELLOW + I18n.format("attribute.name.aether.impact"), - TextFormatting.GRAY + I18n.format("attribute.name.aether.damageLevel")))); - } - } - - @Override - public int getItemBurnTime(ItemStack itemStack) - { - if (this.cBType == crossBowTypes.SKYROOT) - { - return 300; - } - else - { - return 0; - } - } - - public crossBowTypes getType() - { - return this.cBType; - } - - public ItemCrossbow setType(crossBowTypes type) - { - this.cBType = type; - this.setMaxDamage(this.cBType.maxDurability); - return this; - } - - public enum crossBowTypes - { - SKYROOT(0, 4, 0, 4, 82, "skyroot_crossbow"), - HOLYSTONE(0, 5, 0, 5, 181, "holystone_crossbow"), - ZANITE(0, 6, 0, 6, 346, "zanite_crossbow"), - ARKENIUM(0, 8, 0, 8, 4418, "arkenium_crossbow"), - GRAVETITE(0, 7, 0, 7, 2160, "gravitite_crossbow"); - - final float slashDamageLevel, pierceDamageLevel, impactDamageLevel, damage; - - final int maxDurability; - - final String name; - - crossBowTypes(float slashDamageLevel, float pierceDamageLevel, float impactDamageLevel, float damage, int maxDurability, String name) - { - this.slashDamageLevel = slashDamageLevel; - this.pierceDamageLevel = pierceDamageLevel; - this.impactDamageLevel = impactDamageLevel; - this.damage = damage; - this.maxDurability = maxDurability; - this.name = name; - } - } -} diff --git a/src/main/java/com/gildedgames/aether/common/items/weapons/swords/ItemAetherSword.java b/src/main/java/com/gildedgames/aether/common/items/weapons/swords/ItemAetherSword.java deleted file mode 100644 index 0433f56c5f..0000000000 --- a/src/main/java/com/gildedgames/aether/common/items/weapons/swords/ItemAetherSword.java +++ /dev/null @@ -1,148 +0,0 @@ -package com.gildedgames.aether.common.items.weapons.swords; - -import com.gildedgames.aether.api.entity.damage.IDamageLevelsHolder; -import com.gildedgames.aether.api.entity.effects.IAetherStatusEffectPool; -import com.gildedgames.aether.api.entity.effects.IAetherStatusEffects; -import com.gildedgames.aether.api.registrar.CapabilitiesAether; -import com.gildedgames.aether.api.registrar.ItemsAether; -import com.gildedgames.aether.common.entities.effects.IEffectDamageHolder; -import com.gildedgames.aether.common.entities.effects.StatusEffect; -import com.gildedgames.aether.common.init.CreativeTabsAether; -import com.gildedgames.aether.common.items.ItemAbilityType; -import com.gildedgames.aether.common.items.tools.ItemAetherShovel; -import net.minecraft.client.resources.I18n; -import net.minecraft.client.util.ITooltipFlag; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.item.ItemStack; -import net.minecraft.item.ItemSword; -import net.minecraft.util.text.TextFormatting; -import net.minecraft.world.World; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; - -import java.util.*; - -public class ItemAetherSword extends ItemSword implements IDamageLevelsHolder, IEffectDamageHolder -{ - private Map<StatusEffect, Integer> statusEffects = new HashMap<>(); - - private float slashDamageLevel = 0, pierceDamageLevel = 0, impactDamageLevel = 0; - - private final ItemAbilityType abilityType; - - public ItemAetherSword(final ToolMaterial material, final ItemAbilityType abilityType) - { - super(material); - - this.abilityType = abilityType; - - this.setCreativeTab(CreativeTabsAether.TAB_WEAPONS); - } - - @Override - public boolean hitEntity(final ItemStack stack, final EntityLivingBase target, final EntityLivingBase attacker) - { - IAetherStatusEffectPool statusEffectPool = target.getCapability(CapabilitiesAether.STATUS_EFFECT_POOL, null); - - if (statusEffectPool != null) - { - if (!this.statusEffects.isEmpty()) - { - for (Map.Entry<StatusEffect, Integer> effect : this.statusEffects.entrySet()) - { - IAetherStatusEffects actualEffect = statusEffectPool.createEffect(effect.getKey().getEffectType().name, target); - - if (!statusEffectPool.effectExists(actualEffect.getEffectType())) - { - statusEffectPool.applyStatusEffect(actualEffect.getEffectType(), effect.getValue()); - } - else - { - statusEffectPool.modifyActiveEffectBuildup(actualEffect.getEffectType(), - statusEffectPool.getBuildupFromEffect(actualEffect.getEffectType()) + effect.getValue()); - } - } - } - } - - return super.hitEntity(stack, target, attacker); - } - - @Override - @SideOnly(Side.CLIENT) - public void addInformation(final ItemStack stack, final World world, final List<String> tooltip, final ITooltipFlag flag) - { - if (this.abilityType != ItemAbilityType.NONE) - { - tooltip.add(String.format("%s: %s", - TextFormatting.BLUE + I18n.format("item.aether.tooltip.ability"), - TextFormatting.WHITE + I18n.format(this.getTranslationKey() + ".ability.desc"))); - - if (!this.abilityType.isPassive()) - { - tooltip.add(String.format("%s: %s", - TextFormatting.DARK_AQUA + I18n.format("item.aether.tooltip.use"), - TextFormatting.WHITE + I18n.format(this.getTranslationKey() + ".use.desc"))); - } - } - } - - @Override - public int getItemBurnTime(ItemStack itemStack) - { - if (this == ItemsAether.skyroot_sword) - { - return 100; - } - - return super.getItemBurnTime(itemStack); - } - - public <T extends ItemAetherSword> T setSlashDamageLevel(float level) - { - this.slashDamageLevel = level; - - return (T) this; - } - - public <T extends ItemAetherSword> T setPierceDamageLevel(float level) - { - this.pierceDamageLevel = level; - - return (T) this; - } - - public <T extends ItemAetherSword> T setImpactDamageLevel(float level) - { - this.impactDamageLevel = level; - - return (T) this; - } - - public float getSlashDamageLevel() - { - return slashDamageLevel; - } - - public float getPierceDamageLevel() - { - return pierceDamageLevel; - } - - public float getImpactDamageLevel() - { - return impactDamageLevel; - } - - public <T extends ItemAetherSword> T addStatusEffect(StatusEffect effect, int amount) - { - this.statusEffects.put(effect, amount); - - return (T) this; - } - - public Map<StatusEffect, Integer> getStatusEffects() - { - return this.statusEffects; - } -} diff --git a/src/main/java/com/gildedgames/aether/common/items/weapons/swords/ItemArkeniumSword.java b/src/main/java/com/gildedgames/aether/common/items/weapons/swords/ItemArkeniumSword.java deleted file mode 100644 index b2cab4ca54..0000000000 --- a/src/main/java/com/gildedgames/aether/common/items/weapons/swords/ItemArkeniumSword.java +++ /dev/null @@ -1,32 +0,0 @@ -package com.gildedgames.aether.common.items.weapons.swords; - -import com.gildedgames.aether.common.init.MaterialsAether; -import com.gildedgames.aether.common.items.ItemAbilityType; -import com.google.common.collect.HashMultimap; -import com.google.common.collect.Multimap; -import net.minecraft.entity.SharedMonsterAttributes; -import net.minecraft.entity.ai.attributes.AttributeModifier; -import net.minecraft.inventory.EntityEquipmentSlot; -import net.minecraft.item.ItemStack; - -public class ItemArkeniumSword extends ItemAetherSword -{ - public ItemArkeniumSword() - { - super(MaterialsAether.ARKENIUM_TOOL, ItemAbilityType.PASSIVE); - } - - @Override - public Multimap<String, AttributeModifier> getAttributeModifiers(EntityEquipmentSlot slot, ItemStack stack) - { - Multimap<String, AttributeModifier> multimap = HashMultimap.create(); - - if (slot == EntityEquipmentSlot.MAINHAND) - { - multimap.put(SharedMonsterAttributes.ATTACK_DAMAGE.getName(), new AttributeModifier(ATTACK_DAMAGE_MODIFIER, "Weapon modifier", 7D, 0)); - multimap.put(SharedMonsterAttributes.ATTACK_SPEED.getName(), new AttributeModifier(ATTACK_SPEED_MODIFIER, "Weapon modifier", -3D, 0)); - } - - return multimap; - } -} diff --git a/src/main/java/com/gildedgames/aether/common/items/weapons/swords/ItemCandyCaneSword.java b/src/main/java/com/gildedgames/aether/common/items/weapons/swords/ItemCandyCaneSword.java deleted file mode 100644 index c869006ff7..0000000000 --- a/src/main/java/com/gildedgames/aether/common/items/weapons/swords/ItemCandyCaneSword.java +++ /dev/null @@ -1,44 +0,0 @@ -package com.gildedgames.aether.common.items.weapons.swords; - -import com.gildedgames.aether.api.registrar.ItemsAether; -import com.gildedgames.aether.common.entities.companions.EntityCompanion; -import com.gildedgames.aether.common.items.ItemAbilityType; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; - -public class ItemCandyCaneSword extends ItemAetherSword -{ - public ItemCandyCaneSword() - { - super(ToolMaterial.STONE, ItemAbilityType.PASSIVE); - - this.setMaxDamage(25); - } - - @Override - public boolean hitEntity(ItemStack stack, EntityLivingBase target, EntityLivingBase attacker) - { - if (target instanceof EntityCompanion) - { - return true; - } - - if (!attacker.world.isRemote && target != null && attacker instanceof EntityPlayer) - { - if (attacker.world.rand.nextInt(3) == 0) - { - - target.dropItemWithOffset(ItemsAether.candy_cane, 1, 0F); - } - } - - return true; - } - - @Override - public boolean getIsRepairable(ItemStack toRepair, ItemStack repair) - { - return (repair.getItem() == ItemsAether.candy_cane); - } -} diff --git a/src/main/java/com/gildedgames/aether/common/items/weapons/swords/ItemGravititeSword.java b/src/main/java/com/gildedgames/aether/common/items/weapons/swords/ItemGravititeSword.java deleted file mode 100644 index e7e4a419f4..0000000000 --- a/src/main/java/com/gildedgames/aether/common/items/weapons/swords/ItemGravititeSword.java +++ /dev/null @@ -1,28 +0,0 @@ -package com.gildedgames.aether.common.items.weapons.swords; - -import com.gildedgames.aether.common.items.ItemAbilityType; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.item.ItemStack; - -public class ItemGravititeSword extends ItemAetherSword -{ - public ItemGravititeSword() - { - super(ToolMaterial.DIAMOND, ItemAbilityType.ACTIVE); - } - - @Override - public boolean hitEntity(ItemStack stack, EntityLivingBase target, EntityLivingBase attacker) - { - if (attacker.isSneaking()) - { - // This prevents players from sending entities into the air rapidly - if (target.hurtTime == target.maxHurtTime && target.deathTime <= 0) - { - target.addVelocity(0.0D, 0.5D, 0.0D); - } - } - - return super.hitEntity(stack, target, attacker); - } -} diff --git a/src/main/java/com/gildedgames/aether/common/items/weapons/swords/ItemHolystoneSword.java b/src/main/java/com/gildedgames/aether/common/items/weapons/swords/ItemHolystoneSword.java deleted file mode 100644 index 667c646ccd..0000000000 --- a/src/main/java/com/gildedgames/aether/common/items/weapons/swords/ItemHolystoneSword.java +++ /dev/null @@ -1,35 +0,0 @@ -package com.gildedgames.aether.common.items.weapons.swords; - -import com.gildedgames.aether.api.registrar.ItemsAether; -import com.gildedgames.aether.common.items.ItemAbilityType; -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.item.EntityItem; -import net.minecraft.item.ItemStack; - -public class ItemHolystoneSword extends ItemAetherSword -{ - public ItemHolystoneSword() - { - super(ToolMaterial.STONE, ItemAbilityType.PASSIVE); - } - - public static void trySpawnAmbrosium(final ItemStack stack, final Entity target, final EntityLivingBase attacker) - { - if (!target.world.isRemote && target.world.rand.nextInt(100) <= 3) - { - final EntityItem entityItem = new EntityItem(target.world, target.posX, target.posY, target.posZ); - entityItem.setItem(new ItemStack(ItemsAether.ambrosium_shard, 1)); - - target.world.spawnEntity(entityItem); - } - } - - @Override - public boolean hitEntity(final ItemStack stack, final EntityLivingBase target, final EntityLivingBase attacker) - { - ItemHolystoneSword.trySpawnAmbrosium(stack, target, attacker); - - return super.hitEntity(stack, target, attacker); - } -} diff --git a/src/main/java/com/gildedgames/aether/common/items/weapons/swords/ItemSkyrootSword.java b/src/main/java/com/gildedgames/aether/common/items/weapons/swords/ItemSkyrootSword.java deleted file mode 100644 index a2ed04d3df..0000000000 --- a/src/main/java/com/gildedgames/aether/common/items/weapons/swords/ItemSkyrootSword.java +++ /dev/null @@ -1,20 +0,0 @@ -package com.gildedgames.aether.common.items.weapons.swords; - -import com.gildedgames.aether.common.items.ItemAbilityType; -import net.minecraft.item.ItemStack; -import net.minecraftforge.fml.common.Mod; - -@Mod.EventBusSubscriber -public class ItemSkyrootSword extends ItemAetherSword -{ - public ItemSkyrootSword() - { - super(ToolMaterial.WOOD, ItemAbilityType.PASSIVE); - } - - @Override - public int getItemBurnTime(ItemStack itemStack) - { - return 200; - } -} diff --git a/src/main/java/com/gildedgames/aether/common/items/weapons/swords/ItemZaniteSword.java b/src/main/java/com/gildedgames/aether/common/items/weapons/swords/ItemZaniteSword.java deleted file mode 100644 index 5a0d000865..0000000000 --- a/src/main/java/com/gildedgames/aether/common/items/weapons/swords/ItemZaniteSword.java +++ /dev/null @@ -1,58 +0,0 @@ -package com.gildedgames.aether.common.items.weapons.swords; - -import com.gildedgames.aether.api.entity.damage.IDefenseLevelsHolder; -import com.gildedgames.aether.common.items.ItemAbilityType; -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraft.util.DamageSource; -import net.minecraft.world.World; - -public class ItemZaniteSword extends ItemAetherSword -{ - public ItemZaniteSword() - { - super(ToolMaterial.IRON, ItemAbilityType.PASSIVE); - } - - @Override - public boolean hitEntity(final ItemStack stack, final EntityLivingBase target, final EntityLivingBase attacker) - { - /************************** - |* It appears that stack.getItemDamage() / stack.getItem().getMaxDamage() never returns anything >= 1. So it adds small decimals to the health decrese - |* Originally I felt we could just multiply stack.getItemDamage by 2, but that essentially only allowed a max of +2 damage (so 1 more heart) - |* This really doesn't feel powerful. - |* what I ended up figuring out: Whatever number we multiply stack.getItemDamage() by (in this case 4) is the TOTAL extra damage that will be dealt to - |* to the enemy when the sword is on its last hit. As in, the final hit of the sword will deal 4 extra damage, prior hits will deal building up to this - |* point. - |* Also, this item breaks when item damage is 250. Just in case someone wanted to add an added effect or extra damage on that last hit. - */ - - if (!(target instanceof IDefenseLevelsHolder)) - { - final float damage = 6f + ((float) (stack.getItemDamage() * 4) - / stack.getItem().getMaxDamage()); // on last hit, sword will deal 10 damage (5 hearts) - - if (target instanceof EntityPlayer) - { - target.attackEntityFrom(DamageSource.causePlayerDamage((EntityPlayer) attacker), damage); - } - else - { - target.attackEntityFrom(DamageSource.causeMobDamage(attacker), damage); - } - - stack.damageItem(1, attacker); - } - - return false; - } - - @Override - public float getAttackDamage() - { - // We apply our own DamageSource in hitEntity(stack, target, attacker). - return 0.0f; - } -} diff --git a/src/main/java/com/gildedgames/aether/common/math/delaunay/BoundsCheck.java b/src/main/java/com/gildedgames/aether/common/math/delaunay/BoundsCheck.java deleted file mode 100644 index c38ea74edd..0000000000 --- a/src/main/java/com/gildedgames/aether/common/math/delaunay/BoundsCheck.java +++ /dev/null @@ -1,35 +0,0 @@ -package com.gildedgames.aether.common.math.delaunay; - -final class BoundsCheck -{ - - final public static int TOP = 1; - - final public static int BOTTOM = 2; - - final public static int LEFT = 4; - - final public static int RIGHT = 8; - - public static int check(final Point point, final Rectangle bounds) - { - int value = 0; - if (point.x == bounds.left) - { - value |= LEFT; - } - if (point.x == bounds.right) - { - value |= RIGHT; - } - if (point.y == bounds.top) - { - value |= TOP; - } - if (point.y == bounds.bottom) - { - value |= BOTTOM; - } - return value; - } -} diff --git a/src/main/java/com/gildedgames/aether/common/math/delaunay/EdgeList.java b/src/main/java/com/gildedgames/aether/common/math/delaunay/EdgeList.java deleted file mode 100644 index ed22a09974..0000000000 --- a/src/main/java/com/gildedgames/aether/common/math/delaunay/EdgeList.java +++ /dev/null @@ -1,131 +0,0 @@ -package com.gildedgames.aether.common.math.delaunay; - -public final class EdgeList -{ - - private final double deltaX; - - private final double minX; - - private final int hashSize; - - private final HalfEdge leftEnd; - - private final HalfEdge rightEnd; - - private final HalfEdge[] hash; - - public EdgeList(final double xmin, final double deltax, final int sqrtnsites) - { - this.minX = xmin; - this.deltaX = deltax; - this.hashSize = 2 * sqrtnsites; - - this.hash = new HalfEdge[this.hashSize]; - - // two dummy Halfedges: - this.leftEnd = HalfEdge.createDummy(); - this.rightEnd = HalfEdge.createDummy(); - this.leftEnd.edgeListLeftNeighbor = null; - this.leftEnd.edgeListRightNeighbor = this.rightEnd; - this.rightEnd.edgeListLeftNeighbor = this.leftEnd; - this.rightEnd.edgeListRightNeighbor = null; - - this.hash[0] = this.leftEnd; - this.hash[this.hashSize - 1] = this.rightEnd; - } - - public void insert(final HalfEdge lb, final HalfEdge newHalfEdge) - { - newHalfEdge.edgeListLeftNeighbor = lb; - newHalfEdge.edgeListRightNeighbor = lb.edgeListRightNeighbor; - lb.edgeListRightNeighbor.edgeListLeftNeighbor = newHalfEdge; - lb.edgeListRightNeighbor = newHalfEdge; - } - - public void remove(final HalfEdge halfEdge) - { - halfEdge.edgeListLeftNeighbor.edgeListRightNeighbor = halfEdge.edgeListRightNeighbor; - halfEdge.edgeListRightNeighbor.edgeListLeftNeighbor = halfEdge.edgeListLeftNeighbor; - halfEdge.edge = VoronoiEdge.DELETED; - halfEdge.edgeListLeftNeighbor = halfEdge.edgeListRightNeighbor = null; - } - - public HalfEdge edgeListLeftNeighbor(final Point p) - { - - /* Use hash table to get close to desired halfedge */ - int bucket = (int) ((p.x - this.minX) / this.deltaX * this.hashSize); - if (bucket < 0) - { - bucket = 0; - } - if (bucket >= this.hashSize) - { - bucket = this.hashSize - 1; - } - HalfEdge halfEdge = this.getHash(bucket); - if (halfEdge == null) - { - for (int i = 1; true; ++i) - { - if ((halfEdge = this.getHash(bucket - i)) != null) - { - break; - } - if ((halfEdge = this.getHash(bucket + i)) != null) - { - break; - } - } - } - /* Now search linear list of halfedges for the correct one */ - if (halfEdge == this.leftEnd || (halfEdge != this.rightEnd && halfEdge.isLeftOf(p))) - { - do - { - halfEdge = halfEdge.edgeListRightNeighbor; - } - while (halfEdge != this.rightEnd && halfEdge.isLeftOf(p)); - halfEdge = halfEdge.edgeListLeftNeighbor; - } - else - { - do - { - halfEdge = halfEdge.edgeListLeftNeighbor; - } - while (halfEdge != this.leftEnd && !halfEdge.isLeftOf(p)); - } - - /* Update hash table and reference counts */ - if (bucket > 0 && bucket < this.hashSize - 1) - { - this.hash[bucket] = halfEdge; - } - return halfEdge; - } - - /* Get entry from hash table, pruning any deleted nodes */ - private HalfEdge getHash(final int b) - { - final HalfEdge halfEdge; - - if (b < 0 || b >= this.hashSize) - { - return null; - } - halfEdge = this.hash[b]; - if (halfEdge != null && halfEdge.edge == VoronoiEdge.DELETED) - { - /* Hash table points to deleted halfedge. Patch as necessary. */ - this.hash[b] = null; - // still can't dispose halfEdge yet! - return null; - } - else - { - return halfEdge; - } - } -} \ No newline at end of file diff --git a/src/main/java/com/gildedgames/aether/common/math/delaunay/EdgeReorderer.java b/src/main/java/com/gildedgames/aether/common/math/delaunay/EdgeReorderer.java deleted file mode 100644 index c78df2b310..0000000000 --- a/src/main/java/com/gildedgames/aether/common/math/delaunay/EdgeReorderer.java +++ /dev/null @@ -1,124 +0,0 @@ -package com.gildedgames.aether.common.math.delaunay; - -import java.util.ArrayList; - -public final class EdgeReorderer -{ - - private ArrayList<VoronoiEdge> edges; - - private ArrayList<LeftRight> edgeLeftRights; - - public EdgeReorderer(final ArrayList<VoronoiEdge> origEdges) - { - if (origEdges.size() > 0) - { - this.reorderEdges(origEdges); - } - else - { - this.edges = new ArrayList<>(); - this.edgeLeftRights = new ArrayList<>(); - } - } - - public ArrayList<VoronoiEdge> getEdges() - { - return this.edges; - } - - public ArrayList<LeftRight> getEdgeLeftRights() - { - return this.edgeLeftRights; - } - - private void reorderEdges(final ArrayList<VoronoiEdge> origEdges) - { - final int n = origEdges.size(); - - // we're going to reorder the edges in order of traversal - final boolean[] done = new boolean[n]; - - final ArrayList<VoronoiEdge> newEdges = new ArrayList<>(n); - final ArrayList<LeftRight> newLeftRights = new ArrayList<>(n); - - int i = 0; - - VoronoiEdge edge = origEdges.get(i); - - newEdges.add(edge); - newLeftRights.add(LeftRight.LEFT); - - Vertex firstPoint = edge.getLeftVertex(); - Vertex lastPoint = edge.getRightVertex(); - - done[i] = true; - - int nDone = 1; - - while (nDone < n) - { - for (i = 1; i < n; ++i) - { - if (done[i]) - { - continue; - } - - edge = origEdges.get(i); - - final Vertex leftPoint = edge.getLeftVertex(); - final Vertex rightPoint = edge.getRightVertex(); - - boolean created = false; - - if (leftPoint == lastPoint) - { - lastPoint = rightPoint; - - newLeftRights.add(LeftRight.LEFT); - newEdges.add(edge); - - created = true; - } - else if (rightPoint == firstPoint) - { - firstPoint = leftPoint; - - newLeftRights.add(0, LeftRight.LEFT); - newEdges.add(0, edge); - - created = true; - } - else if (leftPoint == firstPoint) - { - firstPoint = rightPoint; - - newLeftRights.add(0, LeftRight.RIGHT); - newEdges.add(0, edge); - - created = true; - } - else if (rightPoint == lastPoint) - { - lastPoint = leftPoint; - - newLeftRights.add(LeftRight.RIGHT); - newEdges.add(edge); - - created = true; - } - - if (created) - { - done[i] = true; - - ++nDone; - } - } - } - - this.edgeLeftRights = newLeftRights; - this.edges = newEdges; - } -} \ No newline at end of file diff --git a/src/main/java/com/gildedgames/aether/common/math/delaunay/HalfEdge.java b/src/main/java/com/gildedgames/aether/common/math/delaunay/HalfEdge.java deleted file mode 100644 index f4a1289272..0000000000 --- a/src/main/java/com/gildedgames/aether/common/math/delaunay/HalfEdge.java +++ /dev/null @@ -1,96 +0,0 @@ -package com.gildedgames.aether.common.math.delaunay; - -public final class HalfEdge -{ - - public HalfEdge edgeListLeftNeighbor, edgeListRightNeighbor; - - public HalfEdge nextInPriorityQueue; - - public VoronoiEdge edge; - - public final LeftRight leftRight; - - public Vertex vertex; - - // the vertex's y-coordinate in the transformed Voronoi space V* - public double ystar; - - public HalfEdge(final VoronoiEdge edge, final LeftRight lr) - { - this.edge = edge; - this.leftRight = lr; - this.nextInPriorityQueue = null; - this.vertex = null; - } - - public static HalfEdge createDummy() - { - return new HalfEdge(null, null); - } - - @Override - public String toString() - { - return "HalfEdge (leftRight: " + this.leftRight + "; vertex: " + this.vertex + ")"; - } - - public boolean isLeftOf(final Point p) - { - - final Site topSite = this.edge.getRightSite(); - final boolean rightOfSite = p.x > topSite.x; - if (rightOfSite && this.leftRight == LeftRight.LEFT) - { - return true; - } - if (!rightOfSite && this.leftRight == LeftRight.RIGHT) - { - return false; - } - - boolean above; - if (this.edge.a == 1.0) - { - final double dyp = p.y - topSite.y; - final double dxp = p.x - topSite.x; - boolean fast = false; - if ((!rightOfSite && this.edge.b < 0.0) || (rightOfSite && this.edge.b >= 0.0)) - { - above = dyp >= this.edge.b * dxp; - fast = above; - } - else - { - above = p.x + p.y * this.edge.b > this.edge.c; - if (this.edge.b < 0.0) - { - above = !above; - } - if (!above) - { - fast = true; - } - } - if (!fast) - { - final double dxs = topSite.x - this.edge.getLeftSite().x; - above = this.edge.b * (dxp * dxp - dyp * dyp) - < dxs * dyp * (1.0 + 2.0 * dxp / dxs + this.edge.b * this.edge.b); - if (this.edge.b < 0.0) - { - above = !above; - } - } - } - else /* edge.b == 1.0 */ - { - final double yl = this.edge.c - this.edge.a * p.x; - final double t1 = p.y - yl; - final double t2 = p.x - topSite.x; - final double t3 = yl - topSite.y; - above = t1 * t1 > t2 * t2 + t3 * t3; - } - return (this.leftRight == LeftRight.LEFT) == above; - } -} diff --git a/src/main/java/com/gildedgames/aether/common/math/delaunay/HalfEdgePriorityQueue.java b/src/main/java/com/gildedgames/aether/common/math/delaunay/HalfEdgePriorityQueue.java deleted file mode 100644 index a616111c97..0000000000 --- a/src/main/java/com/gildedgames/aether/common/math/delaunay/HalfEdgePriorityQueue.java +++ /dev/null @@ -1,134 +0,0 @@ -package com.gildedgames.aether.common.math.delaunay; - -public final class HalfEdgePriorityQueue // also known as heap -{ - - private final int hashSize; - - private final double minY; - - private final double deltaY; - - private final HalfEdge[] hash; - - private int count; - - private int minBucket; - - public HalfEdgePriorityQueue(final double ymin, final double deltay, final int sqrtnsites) - { - this.minY = ymin; - this.deltaY = deltay; - this.hashSize = 4 * sqrtnsites; - - this.count = 0; - this.minBucket = 0; - this.hash = new HalfEdge[this.hashSize]; - - // dummy HalfEdge at the top of each hash - for (int i = 0; i < this.hashSize; ++i) - { - this.hash[i] = HalfEdge.createDummy(); - } - } - - public void insert(final HalfEdge halfEdge) - { - final int insertionBucket = this.bucket(halfEdge); - - if (insertionBucket < this.minBucket) - { - this.minBucket = insertionBucket; - } - - HalfEdge previous = this.hash[insertionBucket]; - HalfEdge next; - - while ((next = previous.nextInPriorityQueue) != null - && (halfEdge.ystar > next.ystar || (halfEdge.ystar == next.ystar && halfEdge.vertex.x > next.vertex.x))) - { - previous = next; - } - - halfEdge.nextInPriorityQueue = previous.nextInPriorityQueue; - previous.nextInPriorityQueue = halfEdge; - - ++this.count; - } - - public void remove(final HalfEdge halfEdge) - { - if (halfEdge.vertex != null) - { - HalfEdge previous = this.hash[this.bucket(halfEdge)]; - - while (previous.nextInPriorityQueue != halfEdge) - { - previous = previous.nextInPriorityQueue; - } - - previous.nextInPriorityQueue = halfEdge.nextInPriorityQueue; - - this.count--; - - halfEdge.vertex = null; - halfEdge.nextInPriorityQueue = null; - } - } - - private int bucket(final HalfEdge halfEdge) - { - int theBucket = (int) ((halfEdge.ystar - this.minY) / this.deltaY * this.hashSize); - - if (theBucket < 0) - { - theBucket = 0; - } - - if (theBucket >= this.hashSize) - { - theBucket = this.hashSize - 1; - } - - return theBucket; - } - - private boolean isEmpty(final int bucket) - { - return (this.hash[bucket].nextInPriorityQueue == null); - } - - private void adjustMinBucket() - { - while (this.minBucket < this.hashSize - 1 && this.isEmpty(this.minBucket)) - { - ++this.minBucket; - } - } - - public boolean empty() - { - return this.count == 0; - } - - public Point min() - { - this.adjustMinBucket(); - final HalfEdge answer = this.hash[this.minBucket].nextInPriorityQueue; - return new Point(answer.vertex.x, answer.ystar); - } - - public HalfEdge extractMin() - { - final HalfEdge a = this.hash[this.minBucket]; - - // get the first real HalfEdge in minBucket - final HalfEdge answer = a.nextInPriorityQueue; - a.nextInPriorityQueue = answer.nextInPriorityQueue; - answer.nextInPriorityQueue = null; - - this.count--; - - return answer; - } -} \ No newline at end of file diff --git a/src/main/java/com/gildedgames/aether/common/math/delaunay/LeftRight.java b/src/main/java/com/gildedgames/aether/common/math/delaunay/LeftRight.java deleted file mode 100644 index 7ea1b17f4b..0000000000 --- a/src/main/java/com/gildedgames/aether/common/math/delaunay/LeftRight.java +++ /dev/null @@ -1,12 +0,0 @@ -package com.gildedgames.aether.common.math.delaunay; - -public enum LeftRight -{ - LEFT, - RIGHT; - - public LeftRight other() - { - return this == LEFT ? RIGHT : LEFT; - } -} diff --git a/src/main/java/com/gildedgames/aether/common/math/delaunay/LeftRightPair.java b/src/main/java/com/gildedgames/aether/common/math/delaunay/LeftRightPair.java deleted file mode 100644 index 2038b92008..0000000000 --- a/src/main/java/com/gildedgames/aether/common/math/delaunay/LeftRightPair.java +++ /dev/null @@ -1,52 +0,0 @@ -package com.gildedgames.aether.common.math.delaunay; - -public class LeftRightPair<T> -{ - private T left, right; - - public void put(LeftRight leftRight, T val) - { - if (leftRight == LeftRight.LEFT) - { - this.setLeft(val); - } - else if (leftRight == LeftRight.RIGHT) - { - this.setRight(val); - } - } - - public T get(LeftRight leftRight) - { - if (leftRight == LeftRight.LEFT) - { - return this.getLeft(); - } - else if (leftRight == LeftRight.RIGHT) - { - return this.getRight(); - } - - return null; - } - - public T getLeft() - { - return this.left; - } - - public T getRight() - { - return this.right; - } - - public void setLeft(T val) - { - this.left = val; - } - - public void setRight(T val) - { - this.right = val; - } -} diff --git a/src/main/java/com/gildedgames/aether/common/math/delaunay/LineSegment.java b/src/main/java/com/gildedgames/aether/common/math/delaunay/LineSegment.java deleted file mode 100644 index ef1191e3dc..0000000000 --- a/src/main/java/com/gildedgames/aether/common/math/delaunay/LineSegment.java +++ /dev/null @@ -1,28 +0,0 @@ -package com.gildedgames.aether.common.math.delaunay; - -public final class LineSegment -{ - - private final Point p0; - - private final Point p1; - - public LineSegment(final Point p0, final Point p1) - { - this.p0 = p0; - this.p1 = p1; - } - - private static double compareLengths_MAX(final LineSegment segment0, final LineSegment segment1) - { - final double length0 = Point.distanceSq(segment0.p0, segment0.p1); - final double length1 = Point.distanceSq(segment1.p0, segment1.p1); - - return Double.compare(length1, length0); - } - - public static double compareLengths(final LineSegment edge0, final LineSegment edge1) - { - return -compareLengths_MAX(edge0, edge1); - } -} \ No newline at end of file diff --git a/src/main/java/com/gildedgames/aether/common/math/delaunay/Point.java b/src/main/java/com/gildedgames/aether/common/math/delaunay/Point.java deleted file mode 100644 index ba6b46f70a..0000000000 --- a/src/main/java/com/gildedgames/aether/common/math/delaunay/Point.java +++ /dev/null @@ -1,96 +0,0 @@ -package com.gildedgames.aether.common.math.delaunay; - -/** - * Point.java - * - * @author Connor - */ -public class Point -{ - - public double x, y; - - public Point(final double x, final double y) - { - this.x = x; - this.y = y; - } - - public static double distanceSq(final Point p1, final Point p2) - { - return (p1.x - p2.x) * (p1.x - p2.x) + (p1.y - p2.y) * (p1.y - p2.y); - } - - public static double distance(final Point p1, final Point p2) - { - return Math.sqrt(distanceSq(p1, p2)); - } - - public static Point interpolate(final Point p1, final Point p2, final double alpha) - { - return new Point(lerp(p1.x, p2.x, alpha), lerp(p1.y, p2.y, alpha)); - } - - public static double lerp(final double point1, final double point2, final double alpha) - { - return point1 + alpha * (point2 - point1); - } - - public static Point centroid(final Point... points) - { - double centroidX = 0, centroidY = 0; - - for (final Point knot : points) - { - centroidX += knot.x; - centroidY += knot.y; - } - - return new Point(centroidX / points.length, centroidY / points.length); - } - - public static Point subtract(final Point p1, final Point p2) - { - return new Point(p1.x - p2.x, p1.y - p2.y); - } - - /** Compare two doubles within a given epsilon */ - private static boolean equals(final double a, final double b, final double eps) - { - if (a == b) - { - return true; - } - // If the difference is less than epsilon, treat as equal. - return Math.abs(a - b) < eps; - } - - @Override - public String toString() - { - return this.x + ", " + this.y; - } - - public double length() - { - return Math.sqrt(this.x * this.x + this.y * this.y); - } - - @Override - public boolean equals(final Object obj) - { - if (obj == this) - { - return true; - } - - if (obj instanceof Point) - { - final Point p = (Point) obj; - - return equals(p.x, this.x, 0.000001) && equals(p.y, this.y, 0.000001); - } - - return false; - } -} diff --git a/src/main/java/com/gildedgames/aether/common/math/delaunay/Polygon.java b/src/main/java/com/gildedgames/aether/common/math/delaunay/Polygon.java deleted file mode 100644 index 14c01c1055..0000000000 --- a/src/main/java/com/gildedgames/aether/common/math/delaunay/Polygon.java +++ /dev/null @@ -1,36 +0,0 @@ -package com.gildedgames.aether.common.math.delaunay; - -import java.util.ArrayList; - -public final class Polygon -{ - public static Winding getWinding(ArrayList<Point> vertices) - { - final double signedDoubleArea = signedDoubleArea(vertices); - if (signedDoubleArea < 0) - { - return Winding.CLOCKWISE; - } - if (signedDoubleArea > 0) - { - return Winding.COUNTERCLOCKWISE; - } - return Winding.NONE; - } - - private static double signedDoubleArea(ArrayList<Point> vertices) - { - int index, nextIndex; - final int n = vertices.size(); - Point point, next; - double signedDoubleArea = 0; - for (index = 0; index < n; ++index) - { - nextIndex = (index + 1) % n; - point = vertices.get(index); - next = vertices.get(nextIndex); - signedDoubleArea += point.x * next.y - next.x * point.y; - } - return signedDoubleArea; - } -} \ No newline at end of file diff --git a/src/main/java/com/gildedgames/aether/common/math/delaunay/Rectangle.java b/src/main/java/com/gildedgames/aether/common/math/delaunay/Rectangle.java deleted file mode 100644 index c8ed9d70a6..0000000000 --- a/src/main/java/com/gildedgames/aether/common/math/delaunay/Rectangle.java +++ /dev/null @@ -1,32 +0,0 @@ -package com.gildedgames.aether.common.math.delaunay; - -/** - * Rectangle.java - * - * @author Connor - */ -public class Rectangle -{ - - final public double x, y, width, height, right, bottom, left, top; - - public Rectangle(final double x, final double y, final double width, final double height) - { - this.left = this.x = x; - this.top = this.y = y; - this.width = width; - this.height = height; - this.right = x + width; - this.bottom = y + height; - } - - public boolean inBounds(final Point p) - { - return this.inBounds(p.x, p.y); - } - - private boolean inBounds(final double x0, final double y0) - { - return !(x0 < this.x || x0 > this.right || y0 < this.y || y0 > this.bottom); - } -} diff --git a/src/main/java/com/gildedgames/aether/common/math/delaunay/Site.java b/src/main/java/com/gildedgames/aether/common/math/delaunay/Site.java deleted file mode 100644 index 4cf1ecaa17..0000000000 --- a/src/main/java/com/gildedgames/aether/common/math/delaunay/Site.java +++ /dev/null @@ -1,340 +0,0 @@ -package com.gildedgames.aether.common.math.delaunay; - -import java.util.ArrayList; -import java.util.Collections; - -public final class Site extends Point implements Comparable<Site> -{ - - final private static double EPSILON = .005; - - // the edges that define this Site's Voronoi region: - private ArrayList<VoronoiEdge> edges; - - private int siteIndex; - - // which end of each edge hooks up with the previous edge in edges: - private ArrayList<LeftRight> edgeLeftRights; - - // ordered list of points that define the region clipped to bounds: - private ArrayList<Point> region; - - public Site(final Point p, final int index) - { - super(p.x, p.y); - - this.siteIndex = index; - this.edges = new ArrayList<>(); - this.region = null; - } - - private static boolean closeEnough(final Point p0, final Point p1) - { - return Point.distanceSq(p0, p1) < EPSILON; - } - - void addEdge(final VoronoiEdge edge) - { - this.edges.add(edge); - } - - public VoronoiEdge nearestEdge() - { - // edges.sort(VoronoiEdge.compareSitesDistances); - this.edges.sort((o1, o2) -> (int) VoronoiEdge.compareSitesDistances(o1, o2)); - return this.edges.get(0); - } - - Site[] neighborSites() - { - if (this.edges == null || this.edges.isEmpty()) - { - return new Site[0]; - } - - if (this.edgeLeftRights == null) - { - this.reorderEdges(); - } - - final Site[] list = new Site[this.edges.size()]; - - for (int i = 0; i < this.edges.size(); i++) - { - VoronoiEdge edge = this.edges.get(i); - - list[i] = this.neighborSite(edge); - } - - return list; - } - - private Site neighborSite(final VoronoiEdge edge) - { - if (this == edge.getLeftSite()) - { - return edge.getRightSite(); - } - if (this == edge.getRightSite()) - { - return edge.getLeftSite(); - } - return null; - } - - ArrayList<Point> region(final Rectangle clippingBounds) - { - if (this.edges == null || this.edges.isEmpty()) - { - return new ArrayList<>(); - } - if (this.edgeLeftRights == null) - { - this.reorderEdges(); - this.region = this.clipToBounds(clippingBounds); - if (Polygon.getWinding(this.region) == Winding.CLOCKWISE) - { - Collections.reverse(this.region); - } - } - return this.region; - } - - private void reorderEdges() - { - final EdgeReorderer reorderer = new EdgeReorderer(this.edges); - - this.edges = reorderer.getEdges(); - this.edgeLeftRights = reorderer.getEdgeLeftRights(); - } - - private ArrayList<Point> clipToBounds(final Rectangle bounds) - { - final int n = this.edges.size(); - int i = 0; - while (i < n && (!this.edges.get(i).getVisible())) - { - ++i; - } - - if (i == n) - { - // no edges visible - return new ArrayList<>(); - } - - VoronoiEdge edge = this.edges.get(i); - LeftRight leftRight = this.edgeLeftRights.get(i); - - final ArrayList<Point> points = new ArrayList<>(); - points.add(edge.getClippedEnds().get(leftRight)); - points.add(edge.getClippedEnds().get(leftRight.other())); - - for (int j = i + 1; j < n; ++j) - { - edge = this.edges.get(j); - - if (!edge.getVisible()) - { - continue; - } - - this.connect(points, j, bounds, false); - } - - // close up the polygon by adding another corner point of the bounds if needed: - this.connect(points, i, bounds, true); - - return points; - } - - private void connect(final ArrayList<Point> points, final int j, final Rectangle bounds, final boolean closingUp) - { - final Point rightPoint = points.get(points.size() - 1); - final VoronoiEdge newEdge = this.edges.get(j); - final LeftRight newLeftRight = this.edgeLeftRights.get(j); - // the point that must be connected to rightPoint: - final Point newPoint = newEdge.getClippedEnds().get(newLeftRight); - if (!closeEnough(rightPoint, newPoint)) - { - // The points do not coincide, so they must have been clipped at the bounds; - // see if they are on the same border of the bounds: - if (rightPoint.x != newPoint.x && rightPoint.y != newPoint.y) - { - // They are on different borders of the bounds; - // insert one or two corners of bounds as needed to hook them up: - // (NOTE this will not be correct if the region should take up more than - // half of the bounds rect, for then we will have gone the wrong way - // around the bounds and included the smaller part rather than the larger) - final int rightCheck = BoundsCheck.check(rightPoint, bounds); - final int newCheck = BoundsCheck.check(newPoint, bounds); - final double px; - final double py; - if ((rightCheck & BoundsCheck.RIGHT) != 0) - { - px = bounds.right; - if ((newCheck & BoundsCheck.BOTTOM) != 0) - { - py = bounds.bottom; - points.add(new Point(px, py)); - } - else if ((newCheck & BoundsCheck.TOP) != 0) - { - py = bounds.top; - points.add(new Point(px, py)); - } - else if ((newCheck & BoundsCheck.LEFT) != 0) - { - if (rightPoint.y - bounds.y + newPoint.y - bounds.y < bounds.height) - { - py = bounds.top; - } - else - { - py = bounds.bottom; - } - points.add(new Point(px, py)); - points.add(new Point(bounds.left, py)); - } - } - else if ((rightCheck & BoundsCheck.LEFT) != 0) - { - px = bounds.left; - if ((newCheck & BoundsCheck.BOTTOM) != 0) - { - py = bounds.bottom; - points.add(new Point(px, py)); - } - else if ((newCheck & BoundsCheck.TOP) != 0) - { - py = bounds.top; - points.add(new Point(px, py)); - } - else if ((newCheck & BoundsCheck.RIGHT) != 0) - { - if (rightPoint.y - bounds.y + newPoint.y - bounds.y < bounds.height) - { - py = bounds.top; - } - else - { - py = bounds.bottom; - } - points.add(new Point(px, py)); - points.add(new Point(bounds.right, py)); - } - } - else if ((rightCheck & BoundsCheck.TOP) != 0) - { - py = bounds.top; - if ((newCheck & BoundsCheck.RIGHT) != 0) - { - px = bounds.right; - points.add(new Point(px, py)); - } - else if ((newCheck & BoundsCheck.LEFT) != 0) - { - px = bounds.left; - points.add(new Point(px, py)); - } - else if ((newCheck & BoundsCheck.BOTTOM) != 0) - { - if (rightPoint.x - bounds.x + newPoint.x - bounds.x < bounds.width) - { - px = bounds.left; - } - else - { - px = bounds.right; - } - points.add(new Point(px, py)); - points.add(new Point(px, bounds.bottom)); - } - } - else if ((rightCheck & BoundsCheck.BOTTOM) != 0) - { - py = bounds.bottom; - if ((newCheck & BoundsCheck.RIGHT) != 0) - { - px = bounds.right; - points.add(new Point(px, py)); - } - else if ((newCheck & BoundsCheck.LEFT) != 0) - { - px = bounds.left; - points.add(new Point(px, py)); - } - else if ((newCheck & BoundsCheck.TOP) != 0) - { - if (rightPoint.x - bounds.x + newPoint.x - bounds.x < bounds.width) - { - px = bounds.left; - } - else - { - px = bounds.right; - } - points.add(new Point(px, py)); - points.add(new Point(px, bounds.top)); - } - } - } - if (closingUp) - { - // newEdge's ends have already been added - return; - } - points.add(newPoint); - } - final Point newRightPoint = newEdge.getClippedEnds().get(newLeftRight.other()); - if (!closeEnough(points.get(0), newRightPoint)) - { - points.add(newRightPoint); - } - } - - public double dist(final Vertex p) - { - return Point.distance(p, this); - } - - /** - * sort sites on y, then x, coord also change each site's siteIndex to - * match its new position in the list so the siteIndex can be used to - * identify the site for nearest-neighbor queries - * - * haha "also" - means more than one responsibility... - * - */ - @Override - public int compareTo(Site other) - { - if (this.y < other.y) - { - if (this.siteIndex > other.siteIndex) - { - final int tempIndex = this.siteIndex; - this.siteIndex = other.siteIndex; - other.siteIndex = tempIndex; - } - - return -1; - } - else if (this.y > other.y) - { - if (other.siteIndex > this.siteIndex) - { - final int tempIndex = other.siteIndex; - other.siteIndex = this.siteIndex; - this.siteIndex = tempIndex; - } - - return 1; - } - else - { - return 0; - } - } -} - diff --git a/src/main/java/com/gildedgames/aether/common/math/delaunay/SiteList.java b/src/main/java/com/gildedgames/aether/common/math/delaunay/SiteList.java deleted file mode 100644 index 7c666d6b68..0000000000 --- a/src/main/java/com/gildedgames/aether/common/math/delaunay/SiteList.java +++ /dev/null @@ -1,73 +0,0 @@ -package com.gildedgames.aether.common.math.delaunay; - -import java.util.ArrayDeque; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; - -public final class SiteList -{ - - private final List<Site> sites; - - public SiteList() - { - this.sites = new ArrayList<>(); - } - - public void push(final Site site) - { - this.sites.add(site); - } - - public int getSize() - { - return this.sites.size(); - } - - public ArrayDeque<Site> getSortedQueue() - { - Collections.sort(this.sites); - - return new ArrayDeque<>(this.sites); - } - - public Rectangle getSitesBounds() - { - if (this.sites.isEmpty()) - { - return new Rectangle(0, 0, 0, 0); - } - double xmin = Double.MAX_VALUE; - double xmax = Double.MIN_VALUE; - - double ymin = Double.MAX_VALUE; - double ymax = Double.MIN_VALUE; - - for (final Site site : this.sites) - { - if (site.x < xmin) - { - xmin = site.x; - } - if (site.x > xmax) - { - xmax = site.x; - } - if (site.y < ymin) - { - ymin = site.y; - } - if (site.y > ymax) - { - ymax = site.y; - } - } - return new Rectangle(xmin, ymin, xmax - xmin, ymax - ymin); - } - - public List<Site> getInner() - { - return this.sites; - } -} \ No newline at end of file diff --git a/src/main/java/com/gildedgames/aether/common/math/delaunay/Vertex.java b/src/main/java/com/gildedgames/aether/common/math/delaunay/Vertex.java deleted file mode 100644 index bd6ee8a991..0000000000 --- a/src/main/java/com/gildedgames/aether/common/math/delaunay/Vertex.java +++ /dev/null @@ -1,60 +0,0 @@ -package com.gildedgames.aether.common.math.delaunay; - -final class Vertex extends Point -{ - private Vertex(final double x, final double y) - { - super(x, y); - } - - public static Vertex intersect(final HalfEdge halfEdge0, final HalfEdge halfEdge1) - { - final VoronoiEdge edge0 = halfEdge0.edge; - final VoronoiEdge edge1 = halfEdge1.edge; - - if (edge0 == null || edge1 == null) - { - return null; - } - - if (edge0.getRightSite() == edge1.getRightSite()) - { - return null; - } - - final double determinant = edge0.a * edge1.b - edge0.b * edge1.a; - - if (-1.0e-10 < determinant && determinant < 1.0e-10) - { - // the edges are parallel - return null; - } - - final VoronoiEdge edge; - final HalfEdge halfedge; - - if (Voronoi.compareByYThenX(edge0.getRightSite(), edge1.getRightSite()) < 0) - { - halfedge = halfEdge0; - edge = edge0; - } - else - { - halfedge = halfEdge1; - edge = edge1; - } - - final double intersectionX = (edge0.c * edge1.b - edge1.c * edge0.b) / determinant; - final double intersectionY = (edge1.c * edge0.a - edge0.c * edge1.a) / determinant; - - final boolean rightOfSite = intersectionX >= edge.getRightSite().x; - - if ((rightOfSite && halfedge.leftRight == LeftRight.LEFT) || (!rightOfSite && halfedge.leftRight == LeftRight.RIGHT)) - { - return null; - } - - return new Vertex(intersectionX, intersectionY); - - } -} diff --git a/src/main/java/com/gildedgames/aether/common/math/delaunay/Voronoi.java b/src/main/java/com/gildedgames/aether/common/math/delaunay/Voronoi.java deleted file mode 100644 index 8443876971..0000000000 --- a/src/main/java/com/gildedgames/aether/common/math/delaunay/Voronoi.java +++ /dev/null @@ -1,281 +0,0 @@ -package com.gildedgames.aether.common.math.delaunay; - -/* - * Java implementaition by Connor Clark (www.hotengames.com). Pretty much a 1:1 - * translation of a wonderful map generating algorthim by Amit Patel of Red Blob Games, - * which can be found here (http://www-cs-students.stanford.edu/~amitp/game-programming/polygon-map-generation/) - * Hopefully it's of use to someone out there who needed it in Java like I did! - * Note, the only island mode implemented is Radial. Implementing more is generateDecorations for another day. - * - * FORTUNE'S ALGORTIHIM - * - * This is a java implementation of an AS3 (Flash) implementation of an algorthim - * originally created in C++. Pretty much a 1:1 translation from as3 to java, save - * for some necessary workarounds. Original as3 implementation by Alan Shaw (of nodename) - * can be found here (https://github.com/nodename/as3delaunay). Original algorthim - * by Steven Fortune (see lisence for c++ implementation below) - * - * The author of this software is Steven Fortune. Copyright (c) 1994 by AT&T - * Bell Laboratories. - * Permission to use, copy, modify, and distribute this software for any - * purpose without fee is hereby granted, provided that this entire notice - * is included in all copies of any software which is or includes a copy - * or modification of this software and in all copies of the supporting - * documentation for such software. - * THIS SOFTWARE IS BEING PROVIDED "AS IS", WITHOUT ANY EXPRESS OR IMPLIED - * WARRANTY. IN PARTICULAR, NEITHER THE AUTHORS NOR AT&T MAKE ANY - * REPRESENTATION OR WARRANTY OF ANY KIND CONCERNING THE MERCHANTABILITY - * OF THIS SOFTWARE OR ITS FITNESS FOR ANY PARTICULAR PURPOSE. - */ - -import java.util.ArrayDeque; -import java.util.ArrayList; -import java.util.List; -import java.util.Random; - -public final class Voronoi -{ - - private SiteList sites; - - private ArrayList<VoronoiEdge> edges; - - // TODO generalize this so it doesn't have to be a rectangle; - // then we can make the fractal voronois-within-voronois - private Rectangle plotBounds; - - public Voronoi(final List<Point> points, final Rectangle plotBounds) - { - this.init(points, plotBounds); - this.fortunesAlgorithm(); - } - - public Voronoi(final int numSites, final Random r, final Rectangle plotBounds) - { - final ArrayList<Point> points = new ArrayList<>(numSites); - for (int i = 0; i < numSites; i++) - { - points.add(new Point(plotBounds.x + (r.nextDouble() * plotBounds.width), plotBounds.y + (r.nextDouble() * plotBounds.height))); - } - this.init(points, plotBounds); - this.fortunesAlgorithm(); - } - - public static int compareByYThenX(final Site s1, final Site s2) - { - return Double.compare(s1.y, s2.y); - } - - private static int compareByYThenX(final Site s1, final Point s2) - { - return Double.compare(s1.y, s2.y); - } - - public Rectangle getPlotBounds() - { - return this.plotBounds; - } - - private void init(final List<Point> points, final Rectangle plotBounds) - { - this.sites = new SiteList(); - this.addSites(points); - this.plotBounds = plotBounds; - this.edges = new ArrayList<>(); - } - - private void addSites(final List<Point> points) - { - final int length = points.size(); - for (int i = 0; i < length; ++i) - { - this.addSite(points.get(i), i); - } - } - - private void addSite(final Point p, final int index) - { - final Site site = new Site(p, index); - this.sites.push(site); - } - - public ArrayList<VoronoiEdge> edges() - { - return this.edges; - } - - public ArrayList<Point> region(final Site site) - { - return site.region(this.plotBounds); - } - - // TODO: bug: if you call this before you call region(), generateDecorations goes wrong :( - public Site[] neighborSitesForSite(final Site site) - { - return site.neighborSites(); - } - - public List<Site> getSites() - { - return this.sites.getInner(); - } - - private void fortunesAlgorithm() - { - final Rectangle dataBounds = this.sites.getSitesBounds(); - - final int sqrtnsites = (int) Math.sqrt(this.sites.getSize() + 4); - - final HalfEdgePriorityQueue heap = new HalfEdgePriorityQueue(dataBounds.y, dataBounds.height, sqrtnsites); - final EdgeList edgeList = new EdgeList(dataBounds.x, dataBounds.width, sqrtnsites); - - final ArrayDeque<Site> sortedSites = this.sites.getSortedQueue(); - - final Site bottomMostSite = sortedSites.poll(); - Site newSite = sortedSites.poll(); - - Point newintstar = null; - - while (true) - { - if (!heap.empty()) - { - newintstar = heap.min(); - } - - if (newSite != null && (heap.empty() || compareByYThenX(newSite, newintstar) < 0)) - { - /* new site is smallest */ - - // Step 8: - HalfEdge lbnd = edgeList.edgeListLeftNeighbor(newSite); // the HalfEdge just to the left of newSite - HalfEdge rbnd = lbnd.edgeListRightNeighbor; // the HalfEdge just to the right - Site bottomSite = this.rightRegion(lbnd, bottomMostSite); // this is the same as leftRegion(rbnd) - // this Site determines the region containing the new site - - // Step 9: - final VoronoiEdge edge = VoronoiEdge.createBisectingEdge(bottomSite, newSite); - - this.edges.add(edge); - - HalfEdge bisector = new HalfEdge(edge, LeftRight.LEFT); - - // inserting two Halfedges into edgeList constitutes Step 10: - // insert bisector to the right of lbnd: - edgeList.insert(lbnd, bisector); - - Vertex vertex; - - // first half of Step 11: - if ((vertex = Vertex.intersect(lbnd, bisector)) != null) - { - heap.remove(lbnd); - lbnd.vertex = vertex; - lbnd.ystar = vertex.y + newSite.dist(vertex); - heap.insert(lbnd); - } - - lbnd = bisector; - bisector = new HalfEdge(edge, LeftRight.RIGHT); - // second HalfEdge for Step 10: - // insert bisector to the right of lbnd: - edgeList.insert(lbnd, bisector); - - // second half of Step 11: - if ((vertex = Vertex.intersect(bisector, rbnd)) != null) - { - bisector.vertex = vertex; - bisector.ystar = vertex.y + newSite.dist(vertex); - heap.insert(bisector); - } - - newSite = sortedSites.poll(); - } - else if (!heap.empty()) - { - /* intersection is smallest */ - final HalfEdge lbnd = heap.extractMin(); - final HalfEdge llbnd = lbnd.edgeListLeftNeighbor; - final HalfEdge rbnd = lbnd.edgeListRightNeighbor; - final HalfEdge rrbnd = rbnd.edgeListRightNeighbor; - Site bottomSite = this.leftRegion(lbnd, bottomMostSite); - Site topSite = this.rightRegion(rbnd, bottomMostSite); - // these three sites define a Delaunay triangle - // (not actually using these for anything...) - - Vertex v = lbnd.vertex; - lbnd.edge.setVertex(lbnd.leftRight, v); - rbnd.edge.setVertex(rbnd.leftRight, v); - - edgeList.remove(lbnd); - heap.remove(rbnd); - edgeList.remove(rbnd); - - LeftRight leftRight = LeftRight.LEFT; - - if (bottomSite.y > topSite.y) - { - Site tempSite = bottomSite; - bottomSite = topSite; - topSite = tempSite; - leftRight = LeftRight.RIGHT; - } - - final VoronoiEdge edge = VoronoiEdge.createBisectingEdge(bottomSite, topSite); - - this.edges.add(edge); - - HalfEdge bisector = new HalfEdge(edge, leftRight); - edgeList.insert(llbnd, bisector); - edge.setVertex(leftRight.other(), v); - - Vertex vertex; - - if ((vertex = Vertex.intersect(llbnd, bisector)) != null) - { - heap.remove(llbnd); - llbnd.vertex = vertex; - llbnd.ystar = vertex.y + bottomSite.dist(vertex); - heap.insert(llbnd); - } - - if ((vertex = Vertex.intersect(bisector, rrbnd)) != null) - { - bisector.vertex = vertex; - bisector.ystar = vertex.y + bottomSite.dist(vertex); - heap.insert(bisector); - } - } - else - { - break; - } - } - - // we need the vertices to clip the edges - for (final VoronoiEdge e : this.edges) - { - e.clipVertices(this.plotBounds); - } - } - - private Site leftRegion(final HalfEdge he, final Site site) - { - final VoronoiEdge edge = he.edge; - if (edge == null) - { - return site; - } - return edge.getSite(he.leftRight); - } - - private Site rightRegion(final HalfEdge he, final Site site) - { - final VoronoiEdge edge = he.edge; - if (edge == null) - { - return site; - } - return edge.getSite(he.leftRight.other()); - } -} diff --git a/src/main/java/com/gildedgames/aether/common/math/delaunay/VoronoiEdge.java b/src/main/java/com/gildedgames/aether/common/math/delaunay/VoronoiEdge.java deleted file mode 100644 index cb0b32d259..0000000000 --- a/src/main/java/com/gildedgames/aether/common/math/delaunay/VoronoiEdge.java +++ /dev/null @@ -1,304 +0,0 @@ -package com.gildedgames.aether.common.math.delaunay; - -/** - * The line segment connecting the two Sites is part of the Delaunay - * triangulation; the line segment connecting the two Vertices is part of the - * Voronoi diagram - * - * @author ashaw - * - */ -public final class VoronoiEdge -{ - - final static VoronoiEdge DELETED = new VoronoiEdge(0, 0, 0); - - // the equation of the edge: ax + by = c - public final double a, b, c; - - // the two Voronoi vertices that the edge connects - // (if one of them is null, the edge extends to infinity) - private final LeftRightPair<Vertex> vertices; - - // Once clipVertices() is called, this Dictionary will hold two Points - // representing the clipped coordinates of the left and right ends... - private final LeftRightPair<Point> clippedVertices; - - // the two input Sites for which this VoronoiEdge is a bisector: - private final LeftRightPair<Site> sites; - - private VoronoiEdge(double a, double b, double c) - { - this.vertices = new LeftRightPair<>(); - this.sites = new LeftRightPair<>(); - this.clippedVertices = new LeftRightPair<>(); - - this.a = a; - this.b = b; - this.c = c; - } - - public static VoronoiEdge createBisectingEdge(final Site site0, final Site site1) - { - - final double dx = site1.x - site0.x; - final double dy = site1.y - site0.y; - final double absdx = dx > 0 ? dx : -dx; - final double absdy = dy > 0 ? dy : -dy; - double c = site0.x * dx + site0.y * dy + (dx * dx + dy * dy) * 0.5; - final double b; - final double a; - if (absdx > absdy) - { - a = 1.0; - b = dy / dx; - c /= dx; - } - else - { - b = 1.0; - a = dx / dy; - c /= dy; - } - - final VoronoiEdge edge = new VoronoiEdge(a, b, c); - - edge.setLeftSite(site0); - edge.setRightSite(site1); - site0.addEdge(edge); - site1.addEdge(edge); - - return edge; - } - - private static double compareSitesDistances_MAX(final VoronoiEdge edge0, final VoronoiEdge edge1) - { - final double length0 = edge0.sitesDistanceSq(); - final double length1 = edge1.sitesDistanceSq(); - - return Double.compare(length1, length0); - } - - public static double compareSitesDistances(final VoronoiEdge edge0, final VoronoiEdge edge1) - { - return -compareSitesDistances_MAX(edge0, edge1); - } - - public LineSegment delaunayLine() - { - // draw a line connecting the input Sites for which the edge is a bisector: - return new LineSegment(this.getLeftSite(), this.getRightSite()); - } - - public LineSegment voronoiEdge() - { - if (!this.getVisible()) - { - return new LineSegment(null, null); - } - - return new LineSegment(this.clippedVertices.getLeft(), this.clippedVertices.getRight()); - } - - public Vertex getLeftVertex() - { - return this.vertices.getLeft(); - } - - public Vertex getRightVertex() - { - return this.vertices.getRight(); - } - - public void setVertex(final LeftRight leftRight, final Vertex v) - { - this.vertices.put(leftRight, v); - } - - - public boolean isPartOfConvexHull() - { - return (this.vertices.getLeft() == null || this.vertices.getRight() == null); - } - - private double sitesDistanceSq() - { - return Point.distanceSq(this.getLeftSite(), this.getRightSite()); - } - - public LeftRightPair<Point> getClippedEnds() - { - return this.clippedVertices; - } - - public boolean getVisible() - { - return this.clippedVertices.getLeft() != null && this.clippedVertices.getRight() != null; - } - - public Site getLeftSite() - { - return this.sites.getLeft(); - } - - private void setLeftSite(final Site s) - { - this.sites.setLeft(s); - } - - public Site getRightSite() - { - return this.sites.getRight(); - } - - private void setRightSite(final Site s) - { - this.sites.setRight(s); - } - - public Site getSite(final LeftRight leftRight) - { - return this.sites.get(leftRight); - } - - public void clipVertices(final Rectangle bounds) - { - final double xmin = bounds.x; - final double ymin = bounds.y; - final double xmax = bounds.right; - final double ymax = bounds.bottom; - - final Vertex vertex0; - final Vertex vertex1; - - if (this.a == 1.0 && this.b >= 0.0) - { - vertex0 = this.vertices.getRight(); - vertex1 = this.vertices.getLeft(); - } - else - { - vertex0 = this.vertices.getLeft(); - vertex1 = this.vertices.getRight(); - } - - double y1; - double y0; - double x1; - double x0; - - if (this.a == 1.0) - { - y0 = ymin; - if (vertex0 != null && vertex0.y > ymin) - { - y0 = vertex0.y; - } - if (y0 > ymax) - { - return; - } - x0 = this.c - this.b * y0; - - y1 = ymax; - if (vertex1 != null && vertex1.y < ymax) - { - y1 = vertex1.y; - } - if (y1 < ymin) - { - return; - } - x1 = this.c - this.b * y1; - - if ((x0 > xmax && x1 > xmax) || (x0 < xmin && x1 < xmin)) - { - return; - } - - if (x0 > xmax) - { - x0 = xmax; - y0 = (this.c - x0) / this.b; - } - else if (x0 < xmin) - { - x0 = xmin; - y0 = (this.c - x0) / this.b; - } - - if (x1 > xmax) - { - x1 = xmax; - y1 = (this.c - x1) / this.b; - } - else if (x1 < xmin) - { - x1 = xmin; - y1 = (this.c - x1) / this.b; - } - } - else - { - x0 = xmin; - if (vertex0 != null && vertex0.x > xmin) - { - x0 = vertex0.x; - } - if (x0 > xmax) - { - return; - } - y0 = this.c - this.a * x0; - - x1 = xmax; - if (vertex1 != null && vertex1.x < xmax) - { - x1 = vertex1.x; - } - if (x1 < xmin) - { - return; - } - y1 = this.c - this.a * x1; - - if ((y0 > ymax && y1 > ymax) || (y0 < ymin && y1 < ymin)) - { - return; - } - - if (y0 > ymax) - { - y0 = ymax; - x0 = (this.c - y0) / this.a; - } - else if (y0 < ymin) - { - y0 = ymin; - x0 = (this.c - y0) / this.a; - } - - if (y1 > ymax) - { - y1 = ymax; - x1 = (this.c - y1) / this.a; - } - else if (y1 < ymin) - { - y1 = ymin; - x1 = (this.c - y1) / this.a; - } - } - - if (vertex0 == this.vertices.getLeft()) - { - this.clippedVertices.setLeft(new Point(x0, y0)); - this.clippedVertices.setRight(new Point(x1, y1)); - } - else - { - this.clippedVertices.setRight(new Point(x0, y0)); - this.clippedVertices.setLeft(new Point(x1, y1)); - } - } -} \ No newline at end of file diff --git a/src/main/java/com/gildedgames/aether/common/math/delaunay/Winding.java b/src/main/java/com/gildedgames/aether/common/math/delaunay/Winding.java deleted file mode 100644 index 0fe6fbd2eb..0000000000 --- a/src/main/java/com/gildedgames/aether/common/math/delaunay/Winding.java +++ /dev/null @@ -1,8 +0,0 @@ -package com.gildedgames.aether.common.math.delaunay; - -public enum Winding -{ - CLOCKWISE, - COUNTERCLOCKWISE, - NONE -} \ No newline at end of file diff --git a/src/main/java/com/gildedgames/aether/common/math/voronoi/VoronoiGraphUtils.java b/src/main/java/com/gildedgames/aether/common/math/voronoi/VoronoiGraphUtils.java deleted file mode 100644 index ad5e80bc5a..0000000000 --- a/src/main/java/com/gildedgames/aether/common/math/voronoi/VoronoiGraphUtils.java +++ /dev/null @@ -1,46 +0,0 @@ -package com.gildedgames.aether.common.math.voronoi; - -import com.gildedgames.aether.common.math.delaunay.Point; -import com.gildedgames.aether.common.math.delaunay.Site; -import com.gildedgames.aether.common.math.delaunay.Voronoi; - -import java.util.ArrayList; -import java.util.List; - -public class VoronoiGraphUtils -{ - public static Voronoi lloydRelax(Voronoi v, final int numLloydRelaxations) - { - for (int i = 0; i < numLloydRelaxations; i++) - { - final List<Site> sites = v.getSites(); - final List<Point> points = new ArrayList<>(sites.size()); - - for (final Site site : sites) - { - final ArrayList<Point> region = v.region(site); - - double x = 0; - double y = 0; - - for (final Point c : region) - { - x += c.x; - y += c.y; - } - - x /= region.size(); - y /= region.size(); - - site.x = x; - site.y = y; - - points.add(site); - } - - v = new Voronoi(points, v.getPlotBounds()); - } - - return v; - } -} diff --git a/src/main/java/com/gildedgames/aether/common/network/AetherGuiHandler.java b/src/main/java/com/gildedgames/aether/common/network/AetherGuiHandler.java deleted file mode 100644 index a7d96beae3..0000000000 --- a/src/main/java/com/gildedgames/aether/common/network/AetherGuiHandler.java +++ /dev/null @@ -1,237 +0,0 @@ -package com.gildedgames.aether.common.network; - -import com.gildedgames.aether.api.dialog.IDialogSlide; -import com.gildedgames.aether.api.dialog.IDialogSlideRenderer; -import com.gildedgames.aether.api.shop.IShopInstance; -import com.gildedgames.aether.api.shop.IShopInstanceGroup; -import com.gildedgames.aether.client.gui.container.GuiIcestoneCooler; -import com.gildedgames.aether.client.gui.container.GuiIncubator; -import com.gildedgames.aether.client.gui.container.masonry_bench.GuiMasonryBench; -import com.gildedgames.aether.client.gui.container.guidebook.GuiGuidebookInventory; -import com.gildedgames.aether.client.gui.container.guidebook.GuiGuidebookLoreTome; -import com.gildedgames.aether.client.gui.container.guidebook.status.GuiGuidebookStatus; -import com.gildedgames.aether.client.gui.container.guidebook.discovery.DiscoveryTab; -import com.gildedgames.aether.client.gui.dialog.ContainerShop; -import com.gildedgames.aether.client.gui.dialog.GuiDialogViewer; -import com.gildedgames.aether.client.gui.dialog.GuiTrade; -import com.gildedgames.aether.client.gui.misc.GuiAetherLoading; -import com.gildedgames.aether.client.gui.misc.GuiAetherTeleporterNotice; -import com.gildedgames.aether.client.gui.misc.GuiPatronRewards; -import com.gildedgames.aether.common.capabilities.entity.player.PlayerAether; -import com.gildedgames.aether.common.capabilities.entity.player.modules.PlayerDialogModule; -import com.gildedgames.aether.common.capabilities.entity.player.modules.PlayerProgressModule; -import com.gildedgames.aether.common.containers.ContainerCustomWorkbench; -import com.gildedgames.aether.common.containers.ContainerDialogController; -import com.gildedgames.aether.common.containers.ContainerLoadingScreen; -import com.gildedgames.aether.common.containers.ContainerTrade; -import com.gildedgames.aether.common.containers.guidebook.ContainerGuidebookInventory; -import com.gildedgames.aether.common.containers.guidebook.EmptyContainer; -import com.gildedgames.aether.common.containers.tiles.ContainerIcestoneCooler; -import com.gildedgames.aether.common.containers.tiles.ContainerIncubator; -import com.gildedgames.aether.common.containers.tiles.ContainerMasonryBench; -import com.gildedgames.aether.common.dialog.DialogUtil; -import com.gildedgames.orbis.lib.client.gui.util.gui_library.GuiViewer; -import net.minecraft.client.gui.inventory.GuiContainer; -import net.minecraft.client.gui.inventory.GuiCrafting; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.inventory.Container; -import net.minecraft.inventory.IInventory; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.World; -import net.minecraftforge.fml.client.FMLClientHandler; -import net.minecraftforge.fml.common.network.IGuiHandler; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; - -public class AetherGuiHandler implements IGuiHandler -{ - - public static final int CUSTOM_WORKBENCH_ID = 1; - - public static final int INVENTORY_ID = 2; - - public static final int STATUS_ID = 3; - - public static final int LORE_TOME_ID = 4; - - public static final int DISCOVERY_ID = 5; - - public static final int FROSTPINE_COOLER_ID = 6; - - public static final int INCUBATOR_ID = 7; - - public static final int MASONRY_BENCH_ID = 8; - - public static final int AETHER_LOADING_ID = 9; - - public static final int PATRON_REWARDS_ID = 10; - - public static final int TELEPORTER_NOTICE_ID = 11; - - public static final int DIALOG_SHOP_ID = 12; - - public static final int DIALOG_VIEWER_ID = 13; - - public static final int TRADE_ID = 14; - - @Override - public Container getServerGuiElement(final int id, final EntityPlayer player, final World world, final int x, final int y, final int z) - { - final BlockPos pos = new BlockPos(x, y, z); - final PlayerAether playerAether = PlayerAether.getPlayer(player); - - switch (id) - { - case CUSTOM_WORKBENCH_ID: - return new ContainerCustomWorkbench(player.inventory, world, pos); - case INVENTORY_ID: - return new ContainerGuidebookInventory(playerAether); - case STATUS_ID: - return new EmptyContainer(); - case LORE_TOME_ID: - return new EmptyContainer(); - case DISCOVERY_ID: - return new EmptyContainer(); - case FROSTPINE_COOLER_ID: - return new ContainerIcestoneCooler(player.inventory, (IInventory) world.getTileEntity(pos)); - case INCUBATOR_ID: - return new ContainerIncubator(player.inventory, (IInventory) world.getTileEntity(pos)); - case MASONRY_BENCH_ID: - return new ContainerMasonryBench(player, player.inventory, (IInventory) world.getTileEntity(pos)); - case AETHER_LOADING_ID: - return new ContainerLoadingScreen(); - case DIALOG_SHOP_ID: - { - final PlayerDialogModule dialogModule = playerAether.getModule(PlayerDialogModule.class); - - if (dialogModule.getTalkingCharacter() == null) - { - return null; - } - - final IShopInstanceGroup group = dialogModule.getTalkingCharacter().getShopInstanceGroup(); - - if (group == null) - { - return null; - } - - final int shopIndex = pos.getX(); - - final IShopInstance shopInstance = group.getShopInstance(shopIndex); - - if (shopInstance == null) - { - return null; - } - - return new com.gildedgames.aether.common.containers.ContainerShop(player.inventory, shopInstance); - } - case DIALOG_VIEWER_ID: - return new ContainerDialogController(player); - case TRADE_ID: - return new ContainerTrade(player.inventory); - default: - return null; - } - } - - @Override - @SideOnly(Side.CLIENT) - public GuiContainer getClientGuiElement(final int id, final EntityPlayer player, final World world, final int x, final int y, final int z) - { - final BlockPos pos = new BlockPos(x, y, z); - final PlayerAether playerAether = PlayerAether.getPlayer(player); - - switch (id) - { - case CUSTOM_WORKBENCH_ID: - return new GuiCrafting(player.inventory, world, pos); - case INVENTORY_ID: - return new GuiGuidebookInventory(null, playerAether); - case STATUS_ID: - return new GuiGuidebookStatus(null, playerAether); - case LORE_TOME_ID: - return new GuiGuidebookLoreTome(null, playerAether); - case DISCOVERY_ID: - final PlayerProgressModule progress = playerAether.getModule(PlayerProgressModule.class); - final DiscoveryTab.DiscoveryTabType discoveryTab = progress.getOpenedDiscoveryTabType(); - - return discoveryTab.createPageContainer(playerAether); - case FROSTPINE_COOLER_ID: - return new GuiIcestoneCooler(player.inventory, (IInventory) world.getTileEntity(pos)); - case INCUBATOR_ID: - return new GuiIncubator(player.inventory, (IInventory) world.getTileEntity(pos)); - case MASONRY_BENCH_ID: - return new GuiMasonryBench(player, player.inventory, (IInventory) world.getTileEntity(pos)); - case AETHER_LOADING_ID: - return new GuiAetherLoading(); - case PATRON_REWARDS_ID: - return new GuiPatronRewards(); - case TELEPORTER_NOTICE_ID: - return new GuiAetherTeleporterNotice(); - case DIALOG_SHOP_ID: - { - final PlayerDialogModule dialogModule = playerAether.getModule(PlayerDialogModule.class); - - if (dialogModule.getTalkingCharacter() == null) - { - return null; - } - - final IDialogSlide slide = DialogUtil.getSlide(dialogModule); - - final IShopInstanceGroup group = dialogModule.getTalkingCharacter().getShopInstanceGroup(); - - if (group == null) - { - return null; - } - - final int shopIndex = pos.getX(); - - final IShopInstance shopInstance = group.getShopInstance(shopIndex); - - if (shopInstance == null || slide == null) - { - return null; - } - - GuiViewer prevViewer = null; - - if (FMLClientHandler.instance().getClient().currentScreen instanceof GuiViewer) - { - prevViewer = (GuiViewer) FMLClientHandler.instance().getClient().currentScreen; - } - - GuiDialogViewer.preventDialogControllerClose = true; - - if (slide.getRenderer().isPresent()) - { - final IDialogSlideRenderer renderer = DialogUtil.getRenderer(slide); - - return new ContainerShop(prevViewer, player, slide, renderer, shopInstance, shopIndex); - } - else - { - return new ContainerShop(prevViewer, player, slide, null, shopInstance, shopIndex); - } - } - case DIALOG_VIEWER_ID: - final PlayerDialogModule dialogModule = playerAether.getModule(PlayerDialogModule.class); - - return new GuiDialogViewer(player, dialogModule, dialogModule.getCurrentSceneInstance()); - case TRADE_ID: - GuiViewer prevViewerA = null; - - if (FMLClientHandler.instance().getClient().currentScreen instanceof GuiViewer) - { - prevViewerA = (GuiViewer) FMLClientHandler.instance().getClient().currentScreen; - } - - return new GuiTrade(prevViewerA, player); - default: - return null; - } - } -} diff --git a/src/main/java/com/gildedgames/aether/common/network/MessageHandler.java b/src/main/java/com/gildedgames/aether/common/network/MessageHandler.java deleted file mode 100644 index ffc143ef0e..0000000000 --- a/src/main/java/com/gildedgames/aether/common/network/MessageHandler.java +++ /dev/null @@ -1,10 +0,0 @@ -package com.gildedgames.aether.common.network; - -import net.minecraft.entity.player.EntityPlayer; -import net.minecraftforge.fml.common.network.simpleimpl.IMessage; -import net.minecraftforge.fml.common.network.simpleimpl.IMessageHandler; - -public abstract class MessageHandler<REQ extends IMessage, RES extends IMessage> implements IMessageHandler<REQ, RES> -{ - public abstract RES onMessage(REQ message, EntityPlayer player); -} diff --git a/src/main/java/com/gildedgames/aether/common/network/MessageHandlerClient.java b/src/main/java/com/gildedgames/aether/common/network/MessageHandlerClient.java deleted file mode 100644 index 4c932076ed..0000000000 --- a/src/main/java/com/gildedgames/aether/common/network/MessageHandlerClient.java +++ /dev/null @@ -1,76 +0,0 @@ -package com.gildedgames.aether.common.network; - -import net.minecraft.client.Minecraft; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraftforge.fml.common.network.simpleimpl.IMessage; -import net.minecraftforge.fml.common.network.simpleimpl.MessageContext; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; - -public abstract class MessageHandlerClient<REQ extends IMessage, RES extends IMessage> extends MessageHandler<REQ, RES> -{ - private final boolean executesOnGameThread; - - public MessageHandlerClient() - { - this(true); - } - - /** - * Creates a message handler for the client-side. - * @param safety True if this packet should process on the main game thread. - * You almost always want this unless you need to reply instantly - * to the packet. - */ - public MessageHandlerClient(final boolean safety) - { - this.executesOnGameThread = safety; - } - - @Override - @SideOnly(Side.CLIENT) - public RES onMessage(final REQ message, final MessageContext ctx) - { - final Minecraft mc = Minecraft.getMinecraft(); - - if (this.executesOnGameThread) - { - mc.addScheduledTask(new FutureMessage<>(this, message)); - - return null; - } - - return this.onMessage(message, mc.player); - } - - @Override - @SideOnly(Side.CLIENT) - public abstract RES onMessage(REQ message, EntityPlayer player); - - /** - * This is needed to prevent a crash on dedicated servers. It seems that - * {@link SideOnly} annotations don't apply to lambdas inside a method, causing - * client code to be loaded on the server. It's unfortunate, but it is what it is. - * - * @param <REQ> The original {@link IMessage} type - */ - @SideOnly(Side.CLIENT) - private static class FutureMessage<REQ extends IMessage> implements Runnable - { - private final MessageHandlerClient<REQ, ?> handler; - - private final REQ message; - - private FutureMessage(final MessageHandlerClient<REQ, ?> handler, final REQ message) - { - this.message = message; - this.handler = handler; - } - - @Override - public void run() - { - this.handler.onMessage(this.message, Minecraft.getMinecraft().player); - } - } -} diff --git a/src/main/java/com/gildedgames/aether/common/network/MessageHandlerServer.java b/src/main/java/com/gildedgames/aether/common/network/MessageHandlerServer.java deleted file mode 100644 index 547de443d4..0000000000 --- a/src/main/java/com/gildedgames/aether/common/network/MessageHandlerServer.java +++ /dev/null @@ -1,42 +0,0 @@ -package com.gildedgames.aether.common.network; - -import net.minecraft.entity.player.EntityPlayer; -import net.minecraftforge.fml.common.network.simpleimpl.IMessage; -import net.minecraftforge.fml.common.network.simpleimpl.MessageContext; - -public abstract class MessageHandlerServer<REQ extends IMessage, RES extends IMessage> extends MessageHandler<REQ, RES> -{ - private final boolean executesOnGameThread; - - public MessageHandlerServer() - { - this(true); - } - - /** - * Creates a message handler for the server-side. - * @param safety True if this packet should process on the main game thread. - * You almost always want this unless you need to reply instantly - * to the packet. - */ - public MessageHandlerServer(final boolean safety) - { - this.executesOnGameThread = safety; - } - - @Override - public RES onMessage(final REQ message, final MessageContext ctx) - { - if (this.executesOnGameThread) - { - ctx.getServerHandler().player.getServerWorld().addScheduledTask(() -> this.onMessage(message, ctx.getServerHandler().player)); - - return null; - } - - return this.onMessage(message, ctx.getServerHandler().player); - } - - @Override - public abstract RES onMessage(REQ message, EntityPlayer player); -} diff --git a/src/main/java/com/gildedgames/aether/common/network/NetworkingAether.java b/src/main/java/com/gildedgames/aether/common/network/NetworkingAether.java deleted file mode 100644 index e77121eac3..0000000000 --- a/src/main/java/com/gildedgames/aether/common/network/NetworkingAether.java +++ /dev/null @@ -1,148 +0,0 @@ -package com.gildedgames.aether.common.network; - -import com.gildedgames.aether.common.AetherCore; -import com.gildedgames.aether.common.network.packets.*; -import com.gildedgames.aether.common.network.packets.dialog.*; -import com.gildedgames.aether.common.network.packets.effects.PacketResetResistance; -import com.gildedgames.aether.common.network.packets.effects.PacketResistance; -import com.gildedgames.aether.common.network.packets.effects.PacketStatusEffect; -import com.gildedgames.aether.common.network.packets.trade.*; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.EntityTracker; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.EntityPlayerMP; -import net.minecraft.server.management.PlayerList; -import net.minecraft.world.WorldServer; -import net.minecraftforge.fml.common.FMLCommonHandler; -import net.minecraftforge.fml.common.network.NetworkRegistry; -import net.minecraftforge.fml.common.network.simpleimpl.IMessage; -import net.minecraftforge.fml.common.network.simpleimpl.SimpleNetworkWrapper; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; - -public class NetworkingAether -{ - private static SimpleNetworkWrapper instance; - - private static int discriminant; - - public static void preInit() - { - instance = NetworkRegistry.INSTANCE.newSimpleChannel(AetherCore.MOD_ID); - - // S E R V E R - instance.registerMessage(PacketSpecialMovement.HandlerServer.class, PacketSpecialMovement.class, discriminant++, Side.SERVER); - instance.registerMessage(PacketOpenTab.HandlerServer.class, PacketOpenTab.class, discriminant++, Side.SERVER); - instance.registerMessage(PacketCloseScene.HandlerServer.class, PacketCloseScene.class, discriminant++, Side.SERVER); - instance.registerMessage(PacketSetPlayedIntro.HandlerServer.class, PacketSetPlayedIntro.class, discriminant++, Side.SERVER); - instance.registerMessage(PacketActivateButton.HandlerServer.class, PacketActivateButton.class, discriminant++, Side.SERVER); - instance.registerMessage(PacketCancelIntro.HandlerServer.class, PacketCancelIntro.class, discriminant++, Side.SERVER); - instance.registerMessage(PacketSetShouldRespawnAtCampfire.HandlerServer.class, PacketSetShouldRespawnAtCampfire.class, discriminant++, Side.SERVER); - instance.registerMessage(PacketSetPlayerConfig.HandlerServer.class, PacketSetPlayerConfig.class, discriminant++, Side.SERVER); - instance.registerMessage(PacketAdvance.HandlerServer.class, PacketAdvance.class, discriminant++, Side.SERVER); - instance.registerMessage(PacketShopSell.HandlerServer.class, PacketShopSell.class, discriminant++, Side.SERVER); - instance.registerMessage(PacketShopBack.HandlerServer.class, PacketShopBack.class, discriminant++, Side.SERVER); - instance.registerMessage(PacketShopBuy.HandlerServer.class, PacketShopBuy.class, discriminant++, Side.SERVER); - instance.registerMessage(PacketChangeCoinAmount.HandlerServer.class, PacketChangeCoinAmount.class, discriminant++, Side.SERVER); - instance.registerMessage(PacketTradeState.HandlerServer.class, PacketTradeState.class, discriminant++, Side.SERVER); - instance.registerMessage(PacketTradeMessage.HandlerServer.class, PacketTradeMessage.class, discriminant++, Side.SERVER); - instance.registerMessage(PacketDiscoveryTabType.HandlerServer.class, PacketDiscoveryTabType.class, discriminant++, Side.SERVER); - instance.registerMessage(PacketMasonryOutputChanged.HandlerServer.class, PacketMasonryOutputChanged.class, discriminant++, Side.SERVER); - instance.registerMessage(PacketMasonryProcessOutput.HandlerServer.class, PacketMasonryProcessOutput.class, discriminant++, Side.SERVER); - instance.registerMessage(PacketMasonryProcessOutputShift.HandlerServer.class, PacketMasonryProcessOutputShift.class, discriminant++, Side.SERVER); - - // C L I E N T - instance.registerMessage(PacketEquipment.HandlerClient.class, PacketEquipment.class, discriminant++, Side.CLIENT); - instance.registerMessage(PacketMarkPlayerDeath.HandlerClient.class, PacketMarkPlayerDeath.class, discriminant++, Side.CLIENT); - instance.registerMessage(PacketMoaJump.HandlerClient.class, PacketMoaJump.class, discriminant++, Side.CLIENT); - instance.registerMessage(PacketOpenDialog.HandlerClient.class, PacketOpenDialog.class, discriminant++, Side.CLIENT); - instance.registerMessage(PacketLatchSwet.HandlerClient.class, PacketLatchSwet.class, discriminant++, Side.CLIENT); - instance.registerMessage(PacketDetachSwet.HandlerClient.class, PacketDetachSwet.class, discriminant++, Side.CLIENT); - instance.registerMessage(PacketSetPlayedIntro.HandlerClient.class, PacketSetPlayedIntro.class, discriminant++, Side.CLIENT); - instance.registerMessage(PacketCloseLoadingScreen.HandlerClient.class, PacketCloseLoadingScreen.class, discriminant++, Side.CLIENT); - instance.registerMessage(PacketLoadingScreenPercent.HandlerClient.class, PacketLoadingScreenPercent.class, discriminant++, Side.CLIENT); - instance.registerMessage(PacketCampfires.HandlerClient.class, PacketCampfires.class, discriminant++, Side.CLIENT); - instance.registerMessage(PacketPreventDropsInventories.HandlerClient.class, PacketPreventDropsInventories.class, discriminant++, Side.CLIENT); - instance.registerMessage(PacketAerbunnySetRiding.HandlerClient.class, PacketAerbunnySetRiding.class, discriminant++, Side.CLIENT); - instance.registerMessage(PacketRequestClientInfo.HandlerClient.class, PacketRequestClientInfo.class, discriminant++, Side.CLIENT); - instance.registerMessage(PacketProgressModule.HandlerClient.class, PacketProgressModule.class, discriminant++, Side.CLIENT); - instance.registerMessage(PacketTalkedTo.HandlerClient.class, PacketTalkedTo.class, discriminant++, Side.CLIENT); - instance.registerMessage(PacketConditionsMetData.HandlerClient.class, PacketConditionsMetData.class, discriminant++, Side.CLIENT); - instance.registerMessage(PacketActivateButton.HandlerClient.class, PacketActivateButton.class, discriminant++, Side.CLIENT); - instance.registerMessage(PacketNavigateNode.HandlerClient.class, PacketNavigateNode.class, discriminant++, Side.CLIENT); - instance.registerMessage(PacketNavigateBack.HandlerClient.class, PacketNavigateBack.class, discriminant++, Side.CLIENT); - instance.registerMessage(PacketAdvance.HandlerClient.class, PacketAdvance.class, discriminant++, Side.CLIENT); - instance.registerMessage(PacketCurrencyModule.HandlerClient.class, PacketCurrencyModule.class, discriminant++, Side.CLIENT); - instance.registerMessage(PacketUpdatePrecipitation.HandlerClient.class, PacketUpdatePrecipitation.class, discriminant++, Side.CLIENT); - instance.registerMessage(PacketProgressBooleanData.HandlerClient.class, PacketProgressBooleanData.class, discriminant++, Side.CLIENT); - instance.registerMessage(PacketParticles.HandlerClient.class, PacketParticles.class, discriminant++, Side.CLIENT); - instance.registerMessage(PacketStatusEffect.HandlerClient.class, PacketStatusEffect.class, discriminant++, Side.CLIENT); - instance.registerMessage(PacketChangeCoinAmount.HandlerClient.class, PacketChangeCoinAmount.class, discriminant++, Side.CLIENT); - instance.registerMessage(PacketCloseScreen.HandlerClient.class, PacketCloseScreen.class, discriminant++, Side.CLIENT); - instance.registerMessage(PacketSendInventorySize.HandlerClient.class, PacketSendInventorySize.class, discriminant++, Side.CLIENT); - instance.registerMessage(PacketTradeState.HandlerClient.class, PacketTradeState.class, discriminant++, Side.CLIENT); - instance.registerMessage(PacketTradeInventory.HandlerClient.class, PacketTradeInventory.class, discriminant++, Side.CLIENT); - instance.registerMessage(PacketTradeMessage.HandlerClient.class, PacketTradeMessage.class, discriminant++, Side.CLIENT); - instance.registerMessage(PacketTradeInitial.HandlerClient.class, PacketTradeInitial.class, discriminant++, Side.CLIENT); - instance.registerMessage(PacketFlagPlayerCondition.HandlerClient.class, PacketFlagPlayerCondition.class, discriminant++, Side.CLIENT); - instance.registerMessage(PacketPlayerConditionModule.HandlerClient.class, PacketPlayerConditionModule.class, discriminant++, Side.CLIENT); - instance.registerMessage(PacketStatusParticles.HandlerClient.class, PacketStatusParticles.class, discriminant++, Side.CLIENT); - instance.registerMessage(PacketResistance.HandlerClient.class, PacketResistance.class, discriminant++, Side.CLIENT); - instance.registerMessage(PacketResetResistance.HandlerClient.class, PacketResetResistance.class, discriminant++, Side.CLIENT); - instance.registerMessage(PacketPlayerSwetTrackerModule.HandlerClient.class, PacketPlayerSwetTrackerModule.class, discriminant++, Side.CLIENT); - - NetworkRegistry.INSTANCE.registerGuiHandler(AetherCore.INSTANCE, new AetherGuiHandler()); - } - - public static void sendPacketToDimension(final IMessage message, final int dimension) - { - NetworkingAether.instance.sendToDimension(message, dimension); - } - - public static void sendPacketToAllPlayers(final IMessage message) - { - NetworkingAether.instance.sendToAll(message); - } - - public static void sendPacketToAllPlayersExcept(final IMessage message, final EntityPlayerMP player) - { - final PlayerList playerList = FMLCommonHandler.instance().getMinecraftServerInstance().getPlayerList(); - - for (final EntityPlayerMP p : playerList.getPlayers()) - { - if (p != player) - { - NetworkingAether.instance.sendTo(message, p); - } - } - } - - public static void sendPacketToPlayer(final IMessage message, final EntityPlayerMP player) - { - NetworkingAether.instance.sendTo(message, player); - } - - public static void sendPacketToWatching(final IMessage message, final EntityLivingBase entity, final boolean includeSelf) - { - final WorldServer world = (WorldServer) entity.world; - - final EntityTracker tracker = world.getEntityTracker(); - - for (final EntityPlayer player : tracker.getTrackingPlayers(entity)) - { - NetworkingAether.sendPacketToPlayer(message, (EntityPlayerMP) player); - } - - // Entities don't watch themselves, take special care here - if (includeSelf && entity instanceof EntityPlayer) - { - NetworkingAether.sendPacketToPlayer(message, (EntityPlayerMP) entity); - } - } - - @SideOnly(Side.CLIENT) - public static void sendPacketToServer(final IMessage message) - { - NetworkingAether.instance.sendToServer(message); - } -} diff --git a/src/main/java/com/gildedgames/aether/common/network/api/GildedGamesAccountApiImpl.java b/src/main/java/com/gildedgames/aether/common/network/api/GildedGamesAccountApiImpl.java deleted file mode 100644 index e1de80f9d8..0000000000 --- a/src/main/java/com/gildedgames/aether/common/network/api/GildedGamesAccountApiImpl.java +++ /dev/null @@ -1,53 +0,0 @@ -package com.gildedgames.aether.common.network.api; - -import com.gildedgames.aether.api.net.IGildedGamesAccountApi; -import com.gildedgames.aether.api.net.data.UserFeatures; -import com.google.gson.Gson; - -import java.io.IOException; -import java.io.InputStream; -import java.io.InputStreamReader; -import java.net.HttpURLConnection; -import java.net.URL; -import java.util.UUID; -import java.util.concurrent.*; - -public class GildedGamesAccountApiImpl implements IGildedGamesAccountApi -{ - private static final String API_BASE = "https://api.gildedgames.com"; - - private final ExecutorService service = new ThreadPoolExecutor(0, 2, 1L, TimeUnit.MINUTES, new LinkedBlockingQueue<>()); - - private final Gson gson = new Gson(); - - @Override - public Future<UserFeatures> retrieveUserFeatures(UUID uuid) - { - return this.service.submit(() -> { - URL url = new URL(GildedGamesAccountApiImpl.API_BASE + "/minecraft/user/" + uuid.toString() + "/features"); - - HttpURLConnection connection = (HttpURLConnection) url.openConnection(); - connection.setRequestMethod("GET"); - connection.setConnectTimeout(15000); - connection.setReadTimeout(15000); - connection.connect(); - - if (connection.getResponseCode() != 200) - { - throw new IOException("Expected 200 OK response"); - } - - UserFeatures features; - - try (InputStream stream = connection.getInputStream()) - { - try (InputStreamReader reader = new InputStreamReader(stream)) - { - features = this.gson.fromJson(reader, UserFeatures.class); - } - } - - return features; - }); - } -} diff --git a/src/main/java/com/gildedgames/aether/common/network/packets/PacketAerbunnySetRiding.java b/src/main/java/com/gildedgames/aether/common/network/packets/PacketAerbunnySetRiding.java deleted file mode 100644 index 7751f66201..0000000000 --- a/src/main/java/com/gildedgames/aether/common/network/packets/PacketAerbunnySetRiding.java +++ /dev/null @@ -1,84 +0,0 @@ -package com.gildedgames.aether.common.network.packets; - -import com.gildedgames.aether.api.registrar.SoundsAether; -import com.gildedgames.aether.common.AetherCore; -import com.gildedgames.aether.common.entities.animals.EntityAerbunny; -import com.gildedgames.aether.common.network.MessageHandlerClient; -import io.netty.buffer.ByteBuf; -import net.minecraft.entity.Entity; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.util.SoundCategory; -import net.minecraftforge.fml.common.network.simpleimpl.IMessage; - -public class PacketAerbunnySetRiding implements IMessage -{ - private int entityId; - - private int playerId; - - public PacketAerbunnySetRiding(EntityPlayer player, EntityAerbunny bunny) - { - if (player != null) - { - this.playerId = player.getEntityId(); - } - else - { - this.playerId = -1; - } - - this.entityId = bunny.getEntityId(); - } - - public PacketAerbunnySetRiding() - { - - } - - @Override - public void fromBytes(ByteBuf buf) - { - this.entityId = buf.readInt(); - this.playerId = buf.readInt(); - } - - @Override - public void toBytes(ByteBuf buf) - { - buf.writeInt(this.entityId); - buf.writeInt(this.playerId); - } - - public static class HandlerClient extends MessageHandlerClient<PacketAerbunnySetRiding, IMessage> - { - @Override - public IMessage onMessage(PacketAerbunnySetRiding message, EntityPlayer player) - { - Entity aerbunny = player.world.getEntityByID(message.entityId); - - if (!(aerbunny instanceof EntityAerbunny)) - { - return null; - } - - aerbunny.dismountRidingEntity(); - - if (message.playerId >= 0) - { - Entity otherPlayer = player.world.getEntityByID(message.playerId); - - if (otherPlayer != null) - { - aerbunny.startRiding(otherPlayer, true); - - player.world.playSound(player, player.getPosition(), SoundsAether.aerbunny_lift, SoundCategory.NEUTRAL, 1.0F, - 0.8F + (player.getRNG().nextFloat() * 0.5F)); - - AetherCore.PROXY.displayDismountMessage(player); - } - } - - return null; - } - } -} diff --git a/src/main/java/com/gildedgames/aether/common/network/packets/PacketCampfires.java b/src/main/java/com/gildedgames/aether/common/network/packets/PacketCampfires.java deleted file mode 100644 index b2ff1b7d5c..0000000000 --- a/src/main/java/com/gildedgames/aether/common/network/packets/PacketCampfires.java +++ /dev/null @@ -1,67 +0,0 @@ -package com.gildedgames.aether.common.network.packets; - -import com.gildedgames.aether.common.capabilities.entity.player.PlayerAether; -import com.gildedgames.aether.common.capabilities.entity.player.modules.PlayerCampfiresModule; -import com.gildedgames.aether.common.network.MessageHandlerClient; -import com.gildedgames.orbis.lib.util.io.NBTFunnel; -import com.gildedgames.orbis.lib.util.mc.BlockPosDimension; -import io.netty.buffer.ByteBuf; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraftforge.fml.common.network.ByteBufUtils; -import net.minecraftforge.fml.common.network.simpleimpl.IMessage; - -import java.util.Set; - -public class PacketCampfires implements IMessage -{ - - private Set<BlockPosDimension> campfires; - - private NBTFunnel funnel; - - public PacketCampfires() - { - - } - - public PacketCampfires(Set<BlockPosDimension> campfires) - { - this.campfires = campfires; - } - - @Override - public void fromBytes(final ByteBuf buf) - { - this.funnel = new NBTFunnel(ByteBufUtils.readTag(buf)); - } - - @Override - public void toBytes(final ByteBuf buf) - { - NBTFunnel funnel = new NBTFunnel(new NBTTagCompound()); - - funnel.setSet("c", this.campfires); - - ByteBufUtils.writeTag(buf, funnel.getTag()); - } - - public static class HandlerClient extends MessageHandlerClient<PacketCampfires, IMessage> - { - @Override - public IMessage onMessage(final PacketCampfires message, final EntityPlayer player) - { - if (player == null || player.world == null) - { - return null; - } - - Set<BlockPosDimension> campfires = message.funnel.getSet("c"); - - final PlayerAether aePlayer = PlayerAether.getPlayer(player); - aePlayer.getModule(PlayerCampfiresModule.class).setCampfiresActivated(campfires); - - return null; - } - } -} diff --git a/src/main/java/com/gildedgames/aether/common/network/packets/PacketCancelIntro.java b/src/main/java/com/gildedgames/aether/common/network/packets/PacketCancelIntro.java deleted file mode 100644 index 545be3c0fc..0000000000 --- a/src/main/java/com/gildedgames/aether/common/network/packets/PacketCancelIntro.java +++ /dev/null @@ -1,62 +0,0 @@ -package com.gildedgames.aether.common.network.packets; - -import com.gildedgames.aether.common.init.InstancesAether; -import com.gildedgames.aether.common.network.MessageHandlerServer; -import com.gildedgames.aether.common.world.instances.necromancer_tower.NecromancerTowerInstanceHelper; -import com.gildedgames.orbis.lib.OrbisLib; -import com.gildedgames.orbis.lib.world.instances.IInstance; -import com.gildedgames.orbis.lib.world.instances.IPlayerInstances; -import io.netty.buffer.ByteBuf; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.EntityPlayerMP; -import net.minecraftforge.fml.common.network.simpleimpl.IMessage; - -public class PacketCancelIntro implements IMessage -{ - - public PacketCancelIntro() - { - - } - - @Override - public void fromBytes(final ByteBuf buf) - { - - } - - @Override - public void toBytes(final ByteBuf buf) - { - - } - - public static class HandlerServer extends MessageHandlerServer<PacketCancelIntro, IMessage> - { - @Override - public IMessage onMessage(final PacketCancelIntro message, final EntityPlayer player) - { - if (player == null || player.world == null) - { - return null; - } - - final NecromancerTowerInstanceHelper handler = InstancesAether.NECROMANCER_TOWER_HANDLER; - - final IPlayerInstances hook = OrbisLib.instances().getPlayer(player); - - if (hook.getInstance() != null) - { - final IInstance instance = hook.getInstance(); - - if (player.dimension == instance.getDimensionId()) - { - handler.teleportBack((EntityPlayerMP) player); - } - } - - return null; - } - } - -} diff --git a/src/main/java/com/gildedgames/aether/common/network/packets/PacketCloseLoadingScreen.java b/src/main/java/com/gildedgames/aether/common/network/packets/PacketCloseLoadingScreen.java deleted file mode 100644 index eec011646d..0000000000 --- a/src/main/java/com/gildedgames/aether/common/network/packets/PacketCloseLoadingScreen.java +++ /dev/null @@ -1,49 +0,0 @@ -package com.gildedgames.aether.common.network.packets; - -import com.gildedgames.aether.client.events.listeners.gui.GuiLoadingListener; -import com.gildedgames.aether.common.network.MessageHandlerClient; -import io.netty.buffer.ByteBuf; -import net.minecraft.client.Minecraft; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraftforge.fml.common.network.simpleimpl.IMessage; - -public class PacketCloseLoadingScreen implements IMessage -{ - - public PacketCloseLoadingScreen() - { - - } - - @Override - public void fromBytes(final ByteBuf buf) - { - - } - - @Override - public void toBytes(final ByteBuf buf) - { - - } - - public static class HandlerClient extends MessageHandlerClient<PacketCloseLoadingScreen, IMessage> - { - @Override - public IMessage onMessage(final PacketCloseLoadingScreen message, final EntityPlayer player) - { - if (player == null || player.world == null) - { - return null; - } - - Minecraft.getMinecraft().displayGuiScreen(null); - - GuiLoadingListener.setDrawLoading(false); - GuiLoadingListener.setDrawBlackScreen(false); - - return null; - } - } - -} diff --git a/src/main/java/com/gildedgames/aether/common/network/packets/PacketCloseScreen.java b/src/main/java/com/gildedgames/aether/common/network/packets/PacketCloseScreen.java deleted file mode 100644 index 4ebbc94d75..0000000000 --- a/src/main/java/com/gildedgames/aether/common/network/packets/PacketCloseScreen.java +++ /dev/null @@ -1,56 +0,0 @@ -package com.gildedgames.aether.common.network.packets; - -import com.gildedgames.aether.client.gui.util.IRemoteClose; -import com.gildedgames.aether.common.network.MessageHandlerClient; -import io.netty.buffer.ByteBuf; -import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.GuiScreen; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraftforge.fml.common.network.simpleimpl.IMessage; - -public class PacketCloseScreen implements IMessage -{ - - private int guiID; - - public PacketCloseScreen() - { - - } - - public PacketCloseScreen(int guiID) - { - this.guiID = guiID; - } - - @Override - public void fromBytes(final ByteBuf buf) - { - this.guiID = buf.readInt(); - } - - @Override - public void toBytes(final ByteBuf buf) - { - buf.writeInt(this.guiID); - } - - public static class HandlerClient extends MessageHandlerClient<PacketCloseScreen, IMessage> - { - @Override - public IMessage onMessage(PacketCloseScreen message, EntityPlayer player) - { - Minecraft mc = Minecraft.getMinecraft(); - GuiScreen screen = mc.currentScreen; - - if (screen instanceof IRemoteClose && message.guiID == ((IRemoteClose) screen).getConfirmID()) - { - mc.currentScreen = null; - player.closeScreen(); - } - - return null; - } - - } -} diff --git a/src/main/java/com/gildedgames/aether/common/network/packets/PacketCurrencyModule.java b/src/main/java/com/gildedgames/aether/common/network/packets/PacketCurrencyModule.java deleted file mode 100644 index 344dcbf0fd..0000000000 --- a/src/main/java/com/gildedgames/aether/common/network/packets/PacketCurrencyModule.java +++ /dev/null @@ -1,61 +0,0 @@ -package com.gildedgames.aether.common.network.packets; - -import com.gildedgames.aether.common.capabilities.entity.player.PlayerAether; -import com.gildedgames.aether.common.capabilities.entity.player.modules.PlayerCurrencyModule; -import com.gildedgames.aether.common.network.MessageHandlerClient; -import io.netty.buffer.ByteBuf; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraftforge.fml.common.network.ByteBufUtils; -import net.minecraftforge.fml.common.network.simpleimpl.IMessage; - -public class PacketCurrencyModule implements IMessage -{ - - private PlayerCurrencyModule module; - - private NBTTagCompound tag; - - public PacketCurrencyModule() - { - - } - - public PacketCurrencyModule(PlayerCurrencyModule module) - { - this.module = module; - } - - @Override - public void fromBytes(final ByteBuf buf) - { - this.tag = ByteBufUtils.readTag(buf); - } - - @Override - public void toBytes(final ByteBuf buf) - { - NBTTagCompound tag = new NBTTagCompound(); - - this.module.write(tag); - - ByteBufUtils.writeTag(buf, tag); - } - - public static class HandlerClient extends MessageHandlerClient<PacketCurrencyModule, IMessage> - { - @Override - public IMessage onMessage(final PacketCurrencyModule message, final EntityPlayer player) - { - if (player == null || player.world == null) - { - return null; - } - - final PlayerAether playerAether = PlayerAether.getPlayer(player); - playerAether.getModule(PlayerCurrencyModule.class).read(message.tag); - - return null; - } - } -} diff --git a/src/main/java/com/gildedgames/aether/common/network/packets/PacketDetachSwet.java b/src/main/java/com/gildedgames/aether/common/network/packets/PacketDetachSwet.java deleted file mode 100644 index 8c002aa1c3..0000000000 --- a/src/main/java/com/gildedgames/aether/common/network/packets/PacketDetachSwet.java +++ /dev/null @@ -1,82 +0,0 @@ -package com.gildedgames.aether.common.network.packets; - -import com.gildedgames.aether.common.capabilities.entity.player.PlayerAether; -import com.gildedgames.aether.common.capabilities.entity.player.modules.PlayerSwetTrackerModule; -import com.gildedgames.aether.common.entities.monsters.EntitySwet; -import com.gildedgames.aether.common.network.MessageHandlerClient; -import io.netty.buffer.ByteBuf; -import net.minecraft.entity.Entity; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraftforge.fml.common.network.simpleimpl.IMessage; - -public class PacketDetachSwet implements IMessage -{ - - private EntitySwet.Type type; - - private int id; - - public PacketDetachSwet() - { - - } - - public PacketDetachSwet(final EntitySwet.Type type, final int id) - { - this.type = type; - this.id = id; - } - - @Override - public void fromBytes(final ByteBuf buf) - { - this.type = EntitySwet.Type.fromOrdinal(buf.readInt()); - this.id = buf.readInt(); - } - - @Override - public void toBytes(final ByteBuf buf) - { - buf.writeInt(this.type.ordinal()); - buf.writeInt(this.id); - } - - public static class HandlerClient extends MessageHandlerClient<PacketDetachSwet, IMessage> - { - @Override - public IMessage onMessage(final PacketDetachSwet message, final EntityPlayer player) - { - if (player == null || player.world == null) - { - return null; - } - - Entity entity = player.world.getEntityByID(message.id); - - if (!(entity instanceof EntityPlayer)) - { - throw new IllegalArgumentException("Entity is not a player"); - } - - final PlayerAether playerAether = PlayerAether.getPlayer((EntityPlayer) entity); - - EntitySwet remove = null; - - for (final EntitySwet swet : playerAether.getModule(PlayerSwetTrackerModule.class).getLatchedSwets()) - { - if (swet.getType() == message.type) - { - remove = swet; - break; - } - } - - if (remove != null) - { - playerAether.getModule(PlayerSwetTrackerModule.class).detachSwet(remove); - } - - return null; - } - } -} diff --git a/src/main/java/com/gildedgames/aether/common/network/packets/PacketDiscoveryTabType.java b/src/main/java/com/gildedgames/aether/common/network/packets/PacketDiscoveryTabType.java deleted file mode 100644 index f23c74ecfc..0000000000 --- a/src/main/java/com/gildedgames/aether/common/network/packets/PacketDiscoveryTabType.java +++ /dev/null @@ -1,58 +0,0 @@ -package com.gildedgames.aether.common.network.packets; - -import com.gildedgames.aether.client.gui.container.guidebook.discovery.DiscoveryTab; -import com.gildedgames.aether.common.capabilities.entity.player.PlayerAether; -import com.gildedgames.aether.common.capabilities.entity.player.modules.PlayerProgressModule; -import com.gildedgames.aether.common.network.MessageHandlerServer; -import io.netty.buffer.ByteBuf; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraftforge.fml.common.network.ByteBufUtils; -import net.minecraftforge.fml.common.network.simpleimpl.IMessage; - -public class PacketDiscoveryTabType implements IMessage -{ - - private DiscoveryTab.DiscoveryTabType type; - - public PacketDiscoveryTabType() - { - - } - - public PacketDiscoveryTabType(final DiscoveryTab.DiscoveryTabType type) - { - this.type = type; - } - - @Override - public void fromBytes(final ByteBuf buf) - { - final String typeString = ByteBufUtils.readUTF8String(buf); - - this.type = DiscoveryTab.DiscoveryTabType.valueOf(typeString); - } - - @Override - public void toBytes(final ByteBuf buf) - { - ByteBufUtils.writeUTF8String(buf, this.type.toString()); - } - - public static class HandlerServer extends MessageHandlerServer<PacketDiscoveryTabType, IMessage> - { - @Override - public IMessage onMessage(final PacketDiscoveryTabType message, final EntityPlayer player) - { - if (player == null || player.world == null) - { - return null; - } - - final PlayerAether playerAether = PlayerAether.getPlayer(player); - - playerAether.getModule(PlayerProgressModule.class).setOpenedDiscoveryTabType(message.type); - - return null; - } - } -} diff --git a/src/main/java/com/gildedgames/aether/common/network/packets/PacketEquipment.java b/src/main/java/com/gildedgames/aether/common/network/packets/PacketEquipment.java deleted file mode 100644 index f565649467..0000000000 --- a/src/main/java/com/gildedgames/aether/common/network/packets/PacketEquipment.java +++ /dev/null @@ -1,107 +0,0 @@ -package com.gildedgames.aether.common.network.packets; - -import com.gildedgames.aether.api.player.IPlayerAether; -import com.gildedgames.aether.common.capabilities.entity.player.PlayerAether; -import com.gildedgames.aether.common.capabilities.entity.player.modules.PlayerEquipmentModule; -import com.gildedgames.aether.common.network.MessageHandlerClient; -import io.netty.buffer.ByteBuf; -import net.minecraft.entity.Entity; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.inventory.IInventory; -import net.minecraft.item.ItemStack; -import net.minecraftforge.fml.common.network.ByteBufUtils; -import net.minecraftforge.fml.common.network.simpleimpl.IMessage; -import org.apache.commons.lang3.tuple.Pair; - -import java.util.ArrayList; -import java.util.List; - -public class PacketEquipment implements IMessage -{ - private final List<Pair<Integer, ItemStack>> changes = new ArrayList<>(); - - private int entityId; - - public PacketEquipment() - { - - } - - public PacketEquipment(final PlayerAether aePlayer) - { - this.entityId = aePlayer.getEntity().getEntityId(); - - final IInventory inventory = aePlayer.getModule(PlayerEquipmentModule.class).getInventory(); - - for (int i = 0; i < inventory.getSizeInventory(); i++) - { - this.changes.add(Pair.of(i, inventory.getStackInSlot(i))); - } - } - - public PacketEquipment(final Entity entity, final List<Pair<Integer, ItemStack>> changes) - { - this.entityId = entity.getEntityId(); - - this.changes.addAll(changes); - } - - @Override - public void fromBytes(final ByteBuf buf) - { - this.entityId = buf.readInt(); - - final int count = buf.readByte(); - - for (int i = 0; i < count; i++) - { - final int slot = buf.readByte(); - - final ItemStack stack = ByteBufUtils.readItemStack(buf); - - this.changes.add(Pair.of(slot, stack)); - } - } - - @Override - public void toBytes(final ByteBuf buf) - { - buf.writeInt(this.entityId); - buf.writeByte(this.changes.size()); - - for (final Pair<Integer, ItemStack> pair : this.changes) - { - buf.writeByte(pair.getKey()); - - ByteBufUtils.writeItemStack(buf, pair.getValue()); - } - } - - public static class HandlerClient extends MessageHandlerClient<PacketEquipment, IMessage> - { - @Override - public IMessage onMessage(final PacketEquipment message, final EntityPlayer player) - { - if (player == null || player.world == null) - { - return null; - } - - final Entity entity = player.world.getEntityByID(message.entityId); - - if (entity != null && PlayerAether.hasCapability(entity)) - { - final IPlayerAether aePlayer = PlayerAether.getPlayer(player); - - final IInventory inventory = aePlayer.getModule(PlayerEquipmentModule.class).getInventory(); - - for (final Pair<Integer, ItemStack> pair : message.changes) - { - inventory.setInventorySlotContents(pair.getKey(), pair.getValue()); - } - } - - return null; - } - } -} diff --git a/src/main/java/com/gildedgames/aether/common/network/packets/PacketFlagPlayerCondition.java b/src/main/java/com/gildedgames/aether/common/network/packets/PacketFlagPlayerCondition.java deleted file mode 100644 index 6e0e76c45f..0000000000 --- a/src/main/java/com/gildedgames/aether/common/network/packets/PacketFlagPlayerCondition.java +++ /dev/null @@ -1,58 +0,0 @@ -package com.gildedgames.aether.common.network.packets; - -import com.gildedgames.aether.common.capabilities.entity.player.PlayerAether; -import com.gildedgames.aether.common.capabilities.entity.player.modules.PlayerConditionModule; -import com.gildedgames.aether.common.network.MessageHandlerClient; -import io.netty.buffer.ByteBuf; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.util.ResourceLocation; -import net.minecraftforge.fml.common.network.ByteBufUtils; -import net.minecraftforge.fml.common.network.simpleimpl.IMessage; - -public class PacketFlagPlayerCondition implements IMessage -{ - - private ResourceLocation conditionUniqueId; - - public PacketFlagPlayerCondition() - { - - } - - public PacketFlagPlayerCondition(final ResourceLocation conditionUniqueId) - { - this.conditionUniqueId = conditionUniqueId; - } - - @Override - public void fromBytes(final ByteBuf buf) - { - final String conditionUniqueIdString = ByteBufUtils.readUTF8String(buf); - - this.conditionUniqueId = new ResourceLocation(conditionUniqueIdString); - } - - @Override - public void toBytes(final ByteBuf buf) - { - ByteBufUtils.writeUTF8String(buf, this.conditionUniqueId.toString()); - } - - public static class HandlerClient extends MessageHandlerClient<PacketFlagPlayerCondition, IMessage> - { - @Override - public IMessage onMessage(final PacketFlagPlayerCondition message, final EntityPlayer player) - { - if (player == null || player.world == null) - { - return null; - } - - final PlayerAether playerAether = PlayerAether.getPlayer(player); - - playerAether.getModule(PlayerConditionModule.class).flagCondition(message.conditionUniqueId); - - return null; - } - } -} diff --git a/src/main/java/com/gildedgames/aether/common/network/packets/PacketLatchSwet.java b/src/main/java/com/gildedgames/aether/common/network/packets/PacketLatchSwet.java deleted file mode 100644 index 719736ee97..0000000000 --- a/src/main/java/com/gildedgames/aether/common/network/packets/PacketLatchSwet.java +++ /dev/null @@ -1,73 +0,0 @@ -package com.gildedgames.aether.common.network.packets; - -import com.gildedgames.aether.common.capabilities.entity.player.PlayerAether; -import com.gildedgames.aether.common.capabilities.entity.player.modules.PlayerSwetTrackerModule; -import com.gildedgames.aether.common.entities.monsters.EntitySwet; -import com.gildedgames.aether.common.network.MessageHandlerClient; -import io.netty.buffer.ByteBuf; -import net.minecraft.entity.Entity; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraftforge.fml.common.network.simpleimpl.IMessage; - -public class PacketLatchSwet implements IMessage -{ - - private EntitySwet.Type type; - - private int id; - - public PacketLatchSwet() - { - - } - - public PacketLatchSwet(final EntitySwet.Type type, final int id) - { - this.id = id; - this.type = type; - } - - @Override - public void fromBytes(final ByteBuf buf) - { - this.type = EntitySwet.Type.fromOrdinal(buf.readInt()); - this.id = buf.readInt(); - } - - @Override - public void toBytes(final ByteBuf buf) - { - buf.writeInt(this.type.ordinal()); - buf.writeInt(this.id); - } - - public static class HandlerClient extends MessageHandlerClient<PacketLatchSwet, IMessage> - { - @Override - public IMessage onMessage(final PacketLatchSwet message, final EntityPlayer player) - { - if (player == null || player.world == null) - { - return null; - } - - final Entity entity = player.world.getEntityByID(message.id); - - if (!(entity instanceof EntityPlayer)) - { - throw new IllegalArgumentException("Entity is not a player"); - } - - final PlayerAether playerAether = PlayerAether.getPlayer((EntityPlayer) entity); - - final EntitySwet swet = new EntitySwet(player.world); - - swet.setPosition(player.posX, player.posY, player.posZ); - swet.setType(message.type); - - playerAether.getModule(PlayerSwetTrackerModule.class).latchSwet(swet); - - return null; - } - } -} diff --git a/src/main/java/com/gildedgames/aether/common/network/packets/PacketLoadingScreenPercent.java b/src/main/java/com/gildedgames/aether/common/network/packets/PacketLoadingScreenPercent.java deleted file mode 100644 index 6ea0c5991e..0000000000 --- a/src/main/java/com/gildedgames/aether/common/network/packets/PacketLoadingScreenPercent.java +++ /dev/null @@ -1,52 +0,0 @@ -package com.gildedgames.aether.common.network.packets; - -import com.gildedgames.aether.client.gui.misc.GuiAetherLoading; -import com.gildedgames.aether.common.network.MessageHandlerClient; -import io.netty.buffer.ByteBuf; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraftforge.fml.common.network.simpleimpl.IMessage; - -public class PacketLoadingScreenPercent implements IMessage -{ - - private float percent; - - public PacketLoadingScreenPercent() - { - - } - - public PacketLoadingScreenPercent(float percent) - { - this.percent = percent; - } - - @Override - public void fromBytes(final ByteBuf buf) - { - this.percent = buf.readFloat(); - } - - @Override - public void toBytes(final ByteBuf buf) - { - buf.writeFloat(this.percent); - } - - public static class HandlerClient extends MessageHandlerClient<PacketLoadingScreenPercent, IMessage> - { - @Override - public IMessage onMessage(final PacketLoadingScreenPercent message, final EntityPlayer player) - { - if (player == null || player.world == null) - { - return null; - } - - GuiAetherLoading.PERCENT = message.percent; - - return null; - } - } - -} diff --git a/src/main/java/com/gildedgames/aether/common/network/packets/PacketMarkPlayerDeath.java b/src/main/java/com/gildedgames/aether/common/network/packets/PacketMarkPlayerDeath.java deleted file mode 100644 index a485db7924..0000000000 --- a/src/main/java/com/gildedgames/aether/common/network/packets/PacketMarkPlayerDeath.java +++ /dev/null @@ -1,53 +0,0 @@ -package com.gildedgames.aether.common.network.packets; - -import com.gildedgames.aether.common.capabilities.entity.player.PlayerAether; -import com.gildedgames.aether.common.capabilities.entity.player.modules.PlayerProgressModule; -import com.gildedgames.aether.common.network.MessageHandlerClient; -import io.netty.buffer.ByteBuf; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraftforge.fml.common.network.simpleimpl.IMessage; - -public class PacketMarkPlayerDeath implements IMessage -{ - - private boolean flag = true; - - public PacketMarkPlayerDeath() - { - - } - - public PacketMarkPlayerDeath(final boolean flag) - { - this.flag = flag; - } - - @Override - public void fromBytes(final ByteBuf buf) - { - this.flag = buf.readBoolean(); - } - - @Override - public void toBytes(final ByteBuf buf) - { - buf.writeBoolean(this.flag); - } - - public static class HandlerClient extends MessageHandlerClient<PacketMarkPlayerDeath, IMessage> - { - @Override - public IMessage onMessage(final PacketMarkPlayerDeath message, final EntityPlayer player) - { - if (player == null || player.world == null) - { - return null; - } - - final PlayerAether playerAether = PlayerAether.getPlayer(player); - playerAether.getModule(PlayerProgressModule.class).setHasDiedInAether(message.flag); - - return null; - } - } -} diff --git a/src/main/java/com/gildedgames/aether/common/network/packets/PacketMasonryOutputChanged.java b/src/main/java/com/gildedgames/aether/common/network/packets/PacketMasonryOutputChanged.java deleted file mode 100644 index 88cdd1a10e..0000000000 --- a/src/main/java/com/gildedgames/aether/common/network/packets/PacketMasonryOutputChanged.java +++ /dev/null @@ -1,58 +0,0 @@ -package com.gildedgames.aether.common.network.packets; - -import com.gildedgames.aether.common.containers.tiles.ContainerMasonryBench; -import com.gildedgames.aether.common.network.MessageHandlerServer; -import io.netty.buffer.ByteBuf; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraftforge.fml.common.network.ByteBufUtils; -import net.minecraftforge.fml.common.network.simpleimpl.IMessage; - -public class PacketMasonryOutputChanged implements IMessage -{ - private ItemStack outputStack; - - public PacketMasonryOutputChanged() - { - - } - - public PacketMasonryOutputChanged(ItemStack stack) - { - this.outputStack = stack; - } - - @Override - public void fromBytes(ByteBuf buf) - { - this.outputStack = ByteBufUtils.readItemStack(buf); - } - - @Override - public void toBytes(ByteBuf buf) - { - ByteBufUtils.writeItemStack(buf, this.outputStack); - } - - public static class HandlerServer extends MessageHandlerServer<PacketMasonryOutputChanged, IMessage> - { - @Override - public IMessage onMessage(PacketMasonryOutputChanged message, EntityPlayer player) - { - if (player == null || player.world == null) - { - return null; - } - - if (player.openContainer instanceof ContainerMasonryBench) - { - ContainerMasonryBench container = (ContainerMasonryBench) player.openContainer; - - container.setOutput(message.outputStack); - } - - return null; - } - } -} diff --git a/src/main/java/com/gildedgames/aether/common/network/packets/PacketMasonryProcessOutput.java b/src/main/java/com/gildedgames/aether/common/network/packets/PacketMasonryProcessOutput.java deleted file mode 100644 index ab67b19b17..0000000000 --- a/src/main/java/com/gildedgames/aether/common/network/packets/PacketMasonryProcessOutput.java +++ /dev/null @@ -1,61 +0,0 @@ -package com.gildedgames.aether.common.network.packets; - -import com.gildedgames.aether.common.containers.tiles.ContainerMasonryBench; -import com.gildedgames.aether.common.network.MessageHandlerServer; -import com.gildedgames.aether.common.util.helpers.ItemHelper; -import io.netty.buffer.ByteBuf; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraftforge.fml.common.network.simpleimpl.IMessage; - -public class PacketMasonryProcessOutput implements IMessage -{ - - public PacketMasonryProcessOutput() - { - - } - - @Override - public void fromBytes(ByteBuf buf) - { - - } - - @Override - public void toBytes(ByteBuf buf) - { - - } - - public static class HandlerServer extends MessageHandlerServer<PacketMasonryProcessOutput, IMessage> - { - @Override - public IMessage onMessage(PacketMasonryProcessOutput message, EntityPlayer player) - { - if (player == null || player.world == null) - { - return null; - } - - if (player.openContainer instanceof ContainerMasonryBench) - { - ItemStack outputStack = player.openContainer.inventorySlots.get(1).getStack(); - - if (player.inventory.getItemStack().isEmpty()) - { - player.inventory.setItemStack(outputStack.copy()); - } - else if (ItemHelper.getKeyForItemStack(player.inventory.getItemStack()) == ItemHelper - .getKeyForItemStack(player.openContainer.inventorySlots.get(1).getStack())) - { - player.inventory.getItemStack().setCount(player.inventory.getItemStack().getCount() + 1); - } - - player.openContainer.inventorySlots.get(0).decrStackSize(1); - } - - return null; - } - } -} diff --git a/src/main/java/com/gildedgames/aether/common/network/packets/PacketMasonryProcessOutputShift.java b/src/main/java/com/gildedgames/aether/common/network/packets/PacketMasonryProcessOutputShift.java deleted file mode 100644 index 69f65f7362..0000000000 --- a/src/main/java/com/gildedgames/aether/common/network/packets/PacketMasonryProcessOutputShift.java +++ /dev/null @@ -1,54 +0,0 @@ -package com.gildedgames.aether.common.network.packets; - -import com.gildedgames.aether.common.containers.tiles.ContainerMasonryBench; -import com.gildedgames.aether.common.network.MessageHandlerServer; -import com.gildedgames.aether.common.util.helpers.ItemHelper; -import io.netty.buffer.ByteBuf; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraftforge.fml.common.network.simpleimpl.IMessage; - -public class PacketMasonryProcessOutputShift implements IMessage -{ - - public PacketMasonryProcessOutputShift() - { - - } - - @Override - public void fromBytes(ByteBuf buf) - { - - } - - @Override - public void toBytes(ByteBuf buf) - { - - } - - public static class HandlerServer extends MessageHandlerServer<PacketMasonryProcessOutputShift, IMessage> - { - @Override - public IMessage onMessage(PacketMasonryProcessOutputShift message, EntityPlayer player) - { - if (player == null || player.world == null) - { - return null; - } - - if (player.openContainer instanceof ContainerMasonryBench) - { - ItemStack newOutputStack = player.openContainer.inventorySlots.get(1).getStack().copy(); - newOutputStack.setCount(player.openContainer.inventorySlots.get(0).getStack().getCount()); -// - player.inventory.addItemStackToInventory(newOutputStack); -// - player.openContainer.inventorySlots.get(0).decrStackSize(player.openContainer.inventorySlots.get(0).getStack().getCount()); - } - - return null; - } - } -} diff --git a/src/main/java/com/gildedgames/aether/common/network/packets/PacketMoaJump.java b/src/main/java/com/gildedgames/aether/common/network/packets/PacketMoaJump.java deleted file mode 100644 index 89150802a8..0000000000 --- a/src/main/java/com/gildedgames/aether/common/network/packets/PacketMoaJump.java +++ /dev/null @@ -1,49 +0,0 @@ -package com.gildedgames.aether.common.network.packets; - -import com.gildedgames.aether.common.capabilities.entity.player.PlayerAether; -import com.gildedgames.aether.common.capabilities.entity.player.modules.PlayerAbilitiesModule; -import com.gildedgames.aether.common.network.MessageHandlerClient; -import io.netty.buffer.ByteBuf; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraftforge.fml.common.network.simpleimpl.IMessage; - -public class PacketMoaJump implements IMessage -{ - - private int midAirJumpsAllowed; - - public PacketMoaJump() - { - - } - - public PacketMoaJump(final int midAirJumpsAllowed) - { - this.midAirJumpsAllowed = midAirJumpsAllowed; - } - - @Override - public void fromBytes(final ByteBuf buf) - { - this.midAirJumpsAllowed = buf.readInt(); - } - - @Override - public void toBytes(final ByteBuf buf) - { - buf.writeInt(this.midAirJumpsAllowed); - } - - public static class HandlerClient extends MessageHandlerClient<PacketMoaJump, PacketMoaJump> - { - @Override - public PacketMoaJump onMessage(final PacketMoaJump message, final EntityPlayer player) - { - final PlayerAether playerAether = PlayerAether.getPlayer(player); - playerAether.getModule(PlayerAbilitiesModule.class).setMidAirJumpsAllowed(message.midAirJumpsAllowed); - - return null; - } - - } -} diff --git a/src/main/java/com/gildedgames/aether/common/network/packets/PacketOpenTab.java b/src/main/java/com/gildedgames/aether/common/network/packets/PacketOpenTab.java deleted file mode 100644 index 5bc0c63822..0000000000 --- a/src/main/java/com/gildedgames/aether/common/network/packets/PacketOpenTab.java +++ /dev/null @@ -1,95 +0,0 @@ -package com.gildedgames.aether.common.network.packets; - -import com.gildedgames.aether.api.AetherAPI; -import com.gildedgames.aether.api.registry.tab.ITab; -import com.gildedgames.aether.api.registry.tab.ITabGroup; -import com.gildedgames.aether.api.registry.tab.ITabGroupHandler; -import com.gildedgames.aether.common.network.MessageHandlerServer; -import io.netty.buffer.ByteBuf; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.EntityPlayerMP; -import net.minecraftforge.fml.common.network.simpleimpl.IMessage; - -import java.util.Map; - -public class PacketOpenTab implements IMessage -{ - - private int tabGroupIndex, tabIndex; - - public PacketOpenTab() - { - } - - public PacketOpenTab(final ITab tab) - { - for (final Map.Entry<Integer, ITabGroupHandler> entry : AetherAPI.content().tabs().getRegisteredTabGroups().entrySet()) - { - final int groupIndex = entry.getKey(); - - final ITabGroupHandler handler = entry.getValue(); - - for (final ITab groupTab : handler.getClientGroup().getTabs()) - { - if (tab == groupTab) - { - this.tabGroupIndex = groupIndex; - - this.tabIndex = handler.getDiscriminant(tab); - - return; - } - } - } - } - - public PacketOpenTab(final int tabGroupIndex, final int tabIndex) - { - this.tabGroupIndex = tabGroupIndex; - this.tabIndex = tabIndex; - } - - @Override - public void fromBytes(final ByteBuf buf) - { - this.tabGroupIndex = buf.readInt(); - this.tabIndex = buf.readInt(); - } - - @Override - public void toBytes(final ByteBuf buf) - { - buf.writeInt(this.tabGroupIndex); - buf.writeInt(this.tabIndex); - } - - public static class HandlerServer extends MessageHandlerServer<PacketOpenTab, PacketOpenTab> - { - @Override - public PacketOpenTab onMessage(final PacketOpenTab message, final EntityPlayer player) - { - if (player instanceof EntityPlayerMP) - { - if (message.tabGroupIndex < AetherAPI.content().tabs().getRegisteredTabGroups().size()) - { - final ITabGroupHandler tabGroupHandler = AetherAPI.content().tabs().getRegisteredTabGroups().get(message.tabGroupIndex); - - if (tabGroupHandler == null) - { - return null; - } - - final ITabGroup<ITab> tabGroup = tabGroupHandler.getServerGroup(); - - if (message.tabIndex < tabGroup.getTabs().size()) - { - final ITab tab = tabGroup.getTabs().get(message.tabIndex); - tab.onOpen(player); - } - } - } - - return null; - } - } -} diff --git a/src/main/java/com/gildedgames/aether/common/network/packets/PacketParticles.java b/src/main/java/com/gildedgames/aether/common/network/packets/PacketParticles.java deleted file mode 100644 index b635e25e15..0000000000 --- a/src/main/java/com/gildedgames/aether/common/network/packets/PacketParticles.java +++ /dev/null @@ -1,85 +0,0 @@ -package com.gildedgames.aether.common.network.packets; - -import com.gildedgames.aether.common.AetherCore; -import com.gildedgames.aether.common.init.ParticlesAether; -import com.gildedgames.aether.common.network.MessageHandlerClient; -import io.netty.buffer.ByteBuf; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraftforge.fml.common.network.simpleimpl.IMessage; - -public class PacketParticles implements IMessage -{ - private static final ParticlesAether[] PARTICLES = ParticlesAether.values(); - - private ParticlesAether particle; - - private double x, y, z, offsetX, offsetY, offsetZ; - - public PacketParticles() - { - - } - - public PacketParticles(ParticlesAether particle, double x, double y, double z, double offsetX, double offsetY, double offsetZ) - { - this.particle = particle; - - this.x = x; - this.y = y; - this.z = z; - - this.offsetX = offsetX; - this.offsetY = offsetY; - this.offsetZ = offsetZ; - } - - @Override - public void fromBytes(final ByteBuf buf) - { - this.particle = PARTICLES[buf.readInt()]; - - this.x = buf.readDouble(); - this.y = buf.readDouble(); - this.z = buf.readDouble(); - - this.offsetX = buf.readDouble(); - this.offsetY = buf.readDouble(); - this.offsetZ = buf.readDouble(); - } - - @Override - public void toBytes(final ByteBuf buf) - { - buf.writeInt(this.particle.ordinal()); - - buf.writeDouble(this.x); - buf.writeDouble(this.y); - buf.writeDouble(this.z); - - buf.writeDouble(this.offsetX); - buf.writeDouble(this.offsetY); - buf.writeDouble(this.offsetZ); - } - - public static class HandlerClient extends MessageHandlerClient<PacketParticles, PacketParticles> - { - @Override - public PacketParticles onMessage(final PacketParticles message, final EntityPlayer player) - { - switch (message.particle) - { - case SLASH: - AetherCore.PROXY.spawnSlashParticleFrom(player.world, message.x, message.y, message.z, message.offsetX, message.offsetY, message.offsetZ); - break; - case IMPACT: - AetherCore.PROXY.spawnImpactParticleFrom(player.world, message.x, message.y, message.z, message.offsetX, message.offsetY, message.offsetZ); - break; - case PIERCE: - AetherCore.PROXY.spawnPierceParticleFrom(player.world, message.x, message.y, message.z, message.offsetX, message.offsetY, message.offsetZ); - break; - } - - return null; - } - } -} diff --git a/src/main/java/com/gildedgames/aether/common/network/packets/PacketPlayerConditionModule.java b/src/main/java/com/gildedgames/aether/common/network/packets/PacketPlayerConditionModule.java deleted file mode 100644 index e964a1e25a..0000000000 --- a/src/main/java/com/gildedgames/aether/common/network/packets/PacketPlayerConditionModule.java +++ /dev/null @@ -1,63 +0,0 @@ -package com.gildedgames.aether.common.network.packets; - -import com.gildedgames.aether.api.player.IPlayerConditionModule; -import com.gildedgames.aether.common.capabilities.entity.player.PlayerAether; -import com.gildedgames.aether.common.capabilities.entity.player.modules.PlayerConditionModule; -import com.gildedgames.aether.common.network.MessageHandlerClient; -import io.netty.buffer.ByteBuf; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraftforge.fml.common.network.ByteBufUtils; -import net.minecraftforge.fml.common.network.simpleimpl.IMessage; - -public class PacketPlayerConditionModule implements IMessage -{ - - private IPlayerConditionModule module; - - private NBTTagCompound tag; - - public PacketPlayerConditionModule() - { - - } - - public PacketPlayerConditionModule(final IPlayerConditionModule module) - { - this.module = module; - } - - @Override - public void fromBytes(final ByteBuf buf) - { - this.tag = ByteBufUtils.readTag(buf); - } - - @Override - public void toBytes(final ByteBuf buf) - { - final NBTTagCompound tag = new NBTTagCompound(); - - this.module.write(tag); - - ByteBufUtils.writeTag(buf, tag); - } - - public static class HandlerClient extends MessageHandlerClient<PacketPlayerConditionModule, IMessage> - { - @Override - public IMessage onMessage(final PacketPlayerConditionModule message, final EntityPlayer player) - { - if (player == null || player.world == null) - { - return null; - } - - final PlayerAether playerAether = PlayerAether.getPlayer(player); - - playerAether.getModule(PlayerConditionModule.class).read(message.tag); - - return null; - } - } -} diff --git a/src/main/java/com/gildedgames/aether/common/network/packets/PacketPlayerSwetTrackerModule.java b/src/main/java/com/gildedgames/aether/common/network/packets/PacketPlayerSwetTrackerModule.java deleted file mode 100644 index 5360c53c06..0000000000 --- a/src/main/java/com/gildedgames/aether/common/network/packets/PacketPlayerSwetTrackerModule.java +++ /dev/null @@ -1,61 +0,0 @@ -package com.gildedgames.aether.common.network.packets; - -import com.gildedgames.aether.common.capabilities.entity.player.PlayerAether; -import com.gildedgames.aether.common.capabilities.entity.player.modules.PlayerSwetTrackerModule; -import com.gildedgames.aether.common.network.MessageHandlerClient; -import io.netty.buffer.ByteBuf; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraftforge.fml.common.network.ByteBufUtils; -import net.minecraftforge.fml.common.network.simpleimpl.IMessage; - -public class PacketPlayerSwetTrackerModule implements IMessage -{ - - private PlayerSwetTrackerModule module; - - private NBTTagCompound tag; - - public PacketPlayerSwetTrackerModule() - { - - } - - public PacketPlayerSwetTrackerModule(PlayerSwetTrackerModule module) - { - this.module = module; - } - - @Override - public void fromBytes(final ByteBuf buf) - { - this.tag = ByteBufUtils.readTag(buf); - } - - @Override - public void toBytes(final ByteBuf buf) - { - NBTTagCompound tag = new NBTTagCompound(); - - this.module.write(tag); - - ByteBufUtils.writeTag(buf, tag); - } - - public static class HandlerClient extends MessageHandlerClient<PacketPlayerSwetTrackerModule, IMessage> - { - @Override - public IMessage onMessage(final PacketPlayerSwetTrackerModule message, final EntityPlayer player) - { - if (player == null || player.world == null) - { - return null; - } - - final PlayerAether playerAether = PlayerAether.getPlayer(player); - playerAether.getModule(PlayerSwetTrackerModule.class).read(message.tag); - - return null; - } - } -} diff --git a/src/main/java/com/gildedgames/aether/common/network/packets/PacketPreventDropsInventories.java b/src/main/java/com/gildedgames/aether/common/network/packets/PacketPreventDropsInventories.java deleted file mode 100644 index 3c48a1c67f..0000000000 --- a/src/main/java/com/gildedgames/aether/common/network/packets/PacketPreventDropsInventories.java +++ /dev/null @@ -1,61 +0,0 @@ -package com.gildedgames.aether.common.network.packets; - -import com.gildedgames.aether.common.capabilities.entity.player.PlayerAether; -import com.gildedgames.aether.common.capabilities.entity.player.modules.PlayerPreventDropsModule; -import com.gildedgames.aether.common.network.MessageHandlerClient; -import io.netty.buffer.ByteBuf; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraftforge.fml.common.network.ByteBufUtils; -import net.minecraftforge.fml.common.network.simpleimpl.IMessage; - -public class PacketPreventDropsInventories implements IMessage -{ - - private PlayerPreventDropsModule module; - - private NBTTagCompound tag; - - public PacketPreventDropsInventories() - { - - } - - public PacketPreventDropsInventories(PlayerPreventDropsModule module) - { - this.module = module; - } - - @Override - public void fromBytes(final ByteBuf buf) - { - this.tag = ByteBufUtils.readTag(buf); - } - - @Override - public void toBytes(final ByteBuf buf) - { - NBTTagCompound tag = new NBTTagCompound(); - - this.module.write(tag); - - ByteBufUtils.writeTag(buf, tag); - } - - public static class HandlerClient extends MessageHandlerClient<PacketPreventDropsInventories, IMessage> - { - @Override - public IMessage onMessage(final PacketPreventDropsInventories message, final EntityPlayer player) - { - if (player == null || player.world == null) - { - return null; - } - - final PlayerAether playerAether = PlayerAether.getPlayer(player); - playerAether.getModule(PlayerPreventDropsModule.class).read(message.tag); - - return null; - } - } -} diff --git a/src/main/java/com/gildedgames/aether/common/network/packets/PacketProgressBooleanData.java b/src/main/java/com/gildedgames/aether/common/network/packets/PacketProgressBooleanData.java deleted file mode 100644 index 162031559c..0000000000 --- a/src/main/java/com/gildedgames/aether/common/network/packets/PacketProgressBooleanData.java +++ /dev/null @@ -1,59 +0,0 @@ -package com.gildedgames.aether.common.network.packets; - -import com.gildedgames.aether.common.capabilities.entity.player.PlayerAether; -import com.gildedgames.aether.common.capabilities.entity.player.modules.PlayerProgressModule; -import com.gildedgames.aether.common.network.MessageHandlerClient; -import io.netty.buffer.ByteBuf; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraftforge.fml.common.network.ByteBufUtils; -import net.minecraftforge.fml.common.network.simpleimpl.IMessage; - -public class PacketProgressBooleanData implements IMessage -{ - - private String key; - - private boolean flag = true; - - public PacketProgressBooleanData() - { - - } - - public PacketProgressBooleanData(String key, final boolean flag) - { - this.key = key; - this.flag = flag; - } - - @Override - public void fromBytes(final ByteBuf buf) - { - this.key = ByteBufUtils.readUTF8String(buf); - this.flag = buf.readBoolean(); - } - - @Override - public void toBytes(final ByteBuf buf) - { - ByteBufUtils.writeUTF8String(buf, this.key); - buf.writeBoolean(this.flag); - } - - public static class HandlerClient extends MessageHandlerClient<PacketProgressBooleanData, IMessage> - { - @Override - public IMessage onMessage(final PacketProgressBooleanData message, final EntityPlayer player) - { - if (player == null || player.world == null) - { - return null; - } - - final PlayerAether aePlayer = PlayerAether.getPlayer(player); - aePlayer.getModule(PlayerProgressModule.class).setBoolean(message.key, message.flag); - - return null; - } - } -} diff --git a/src/main/java/com/gildedgames/aether/common/network/packets/PacketProgressModule.java b/src/main/java/com/gildedgames/aether/common/network/packets/PacketProgressModule.java deleted file mode 100644 index 48e60638d1..0000000000 --- a/src/main/java/com/gildedgames/aether/common/network/packets/PacketProgressModule.java +++ /dev/null @@ -1,61 +0,0 @@ -package com.gildedgames.aether.common.network.packets; - -import com.gildedgames.aether.common.capabilities.entity.player.PlayerAether; -import com.gildedgames.aether.common.capabilities.entity.player.modules.PlayerProgressModule; -import com.gildedgames.aether.common.network.MessageHandlerClient; -import io.netty.buffer.ByteBuf; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraftforge.fml.common.network.ByteBufUtils; -import net.minecraftforge.fml.common.network.simpleimpl.IMessage; - -public class PacketProgressModule implements IMessage -{ - - private PlayerProgressModule module; - - private NBTTagCompound tag; - - public PacketProgressModule() - { - - } - - public PacketProgressModule(PlayerProgressModule module) - { - this.module = module; - } - - @Override - public void fromBytes(final ByteBuf buf) - { - this.tag = ByteBufUtils.readTag(buf); - } - - @Override - public void toBytes(final ByteBuf buf) - { - NBTTagCompound tag = new NBTTagCompound(); - - this.module.write(tag); - - ByteBufUtils.writeTag(buf, tag); - } - - public static class HandlerClient extends MessageHandlerClient<PacketProgressModule, IMessage> - { - @Override - public IMessage onMessage(final PacketProgressModule message, final EntityPlayer player) - { - if (player == null || player.world == null) - { - return null; - } - - final PlayerAether playerAether = PlayerAether.getPlayer(player); - playerAether.getModule(PlayerProgressModule.class).read(message.tag); - - return null; - } - } -} diff --git a/src/main/java/com/gildedgames/aether/common/network/packets/PacketRequestClientInfo.java b/src/main/java/com/gildedgames/aether/common/network/packets/PacketRequestClientInfo.java deleted file mode 100644 index f2478185af..0000000000 --- a/src/main/java/com/gildedgames/aether/common/network/packets/PacketRequestClientInfo.java +++ /dev/null @@ -1,39 +0,0 @@ -package com.gildedgames.aether.common.network.packets; - -import com.gildedgames.aether.common.AetherCore; -import com.gildedgames.aether.common.network.MessageHandlerClient; -import com.gildedgames.aether.common.network.NetworkingAether; -import io.netty.buffer.ByteBuf; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraftforge.fml.common.network.simpleimpl.IMessage; - -public class PacketRequestClientInfo implements IMessage -{ - - public PacketRequestClientInfo() - { - } - - @Override - public void fromBytes(final ByteBuf buf) - { - - } - - @Override - public void toBytes(final ByteBuf buf) - { - - } - - public static class HandlerClient extends MessageHandlerClient<PacketRequestClientInfo, PacketRequestClientInfo> - { - @Override - public PacketRequestClientInfo onMessage(final PacketRequestClientInfo message, final EntityPlayer player) - { - NetworkingAether.sendPacketToServer(new PacketSetPlayerConfig(AetherCore.CONFIG)); - - return null; - } - } -} diff --git a/src/main/java/com/gildedgames/aether/common/network/packets/PacketSetPlayedIntro.java b/src/main/java/com/gildedgames/aether/common/network/packets/PacketSetPlayedIntro.java deleted file mode 100644 index ba40ffeed0..0000000000 --- a/src/main/java/com/gildedgames/aether/common/network/packets/PacketSetPlayedIntro.java +++ /dev/null @@ -1,71 +0,0 @@ -package com.gildedgames.aether.common.network.packets; - -import com.gildedgames.aether.common.capabilities.entity.player.PlayerAether; -import com.gildedgames.aether.common.capabilities.entity.player.modules.PlayerTeleportingModule; -import com.gildedgames.aether.common.network.MessageHandlerClient; -import com.gildedgames.aether.common.network.MessageHandlerServer; -import io.netty.buffer.ByteBuf; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraftforge.fml.common.network.simpleimpl.IMessage; - -public class PacketSetPlayedIntro implements IMessage -{ - - private boolean flag = true; - - public PacketSetPlayedIntro() - { - - } - - public PacketSetPlayedIntro(final boolean flag) - { - this.flag = flag; - } - - @Override - public void fromBytes(final ByteBuf buf) - { - this.flag = buf.readBoolean(); - } - - @Override - public void toBytes(final ByteBuf buf) - { - buf.writeBoolean(this.flag); - } - - public static class HandlerClient extends MessageHandlerClient<PacketSetPlayedIntro, IMessage> - { - @Override - public IMessage onMessage(final PacketSetPlayedIntro message, final EntityPlayer player) - { - if (player == null || player.world == null) - { - return null; - } - - final PlayerAether playerAether = PlayerAether.getPlayer(player); - playerAether.getModule(PlayerTeleportingModule.class).setPlayedIntro(message.flag); - - return null; - } - } - - public static class HandlerServer extends MessageHandlerServer<PacketSetPlayedIntro, IMessage> - { - @Override - public IMessage onMessage(final PacketSetPlayedIntro message, final EntityPlayer player) - { - if (player == null || player.world == null) - { - return null; - } - - final PlayerAether playerAether = PlayerAether.getPlayer(player); - playerAether.getModule(PlayerTeleportingModule.class).setPlayedIntro(message.flag); - - return null; - } - } -} diff --git a/src/main/java/com/gildedgames/aether/common/network/packets/PacketSetPlayerConfig.java b/src/main/java/com/gildedgames/aether/common/network/packets/PacketSetPlayerConfig.java deleted file mode 100644 index c90cd531ad..0000000000 --- a/src/main/java/com/gildedgames/aether/common/network/packets/PacketSetPlayerConfig.java +++ /dev/null @@ -1,55 +0,0 @@ -package com.gildedgames.aether.common.network.packets; - -import com.gildedgames.aether.common.ConfigAether; -import com.gildedgames.aether.common.capabilities.entity.player.PlayerAether; -import com.gildedgames.aether.common.capabilities.entity.player.modules.PlayerConfigModule; -import com.gildedgames.aether.common.network.MessageHandlerServer; -import io.netty.buffer.ByteBuf; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraftforge.fml.common.network.simpleimpl.IMessage; - -public class PacketSetPlayerConfig implements IMessage -{ - - private boolean skipIntro; - - public PacketSetPlayerConfig() - { - - } - - public PacketSetPlayerConfig(ConfigAether config) - { - this.skipIntro = config.skipIntro; - } - - @Override - public void fromBytes(final ByteBuf buf) - { - this.skipIntro = buf.readBoolean(); - } - - @Override - public void toBytes(final ByteBuf buf) - { - buf.writeBoolean(this.skipIntro); - } - - public static class HandlerServer extends MessageHandlerServer<PacketSetPlayerConfig, IMessage> - { - @Override - public IMessage onMessage(final PacketSetPlayerConfig message, final EntityPlayer player) - { - if (player == null || player.world == null) - { - return null; - } - - PlayerAether playerAether = PlayerAether.getPlayer(player); - playerAether.getModule(PlayerConfigModule.class).setSkipIntro(message.skipIntro); - - return null; - } - } - -} diff --git a/src/main/java/com/gildedgames/aether/common/network/packets/PacketSetShouldRespawnAtCampfire.java b/src/main/java/com/gildedgames/aether/common/network/packets/PacketSetShouldRespawnAtCampfire.java deleted file mode 100644 index ca6494d462..0000000000 --- a/src/main/java/com/gildedgames/aether/common/network/packets/PacketSetShouldRespawnAtCampfire.java +++ /dev/null @@ -1,47 +0,0 @@ -package com.gildedgames.aether.common.network.packets; - -import com.gildedgames.aether.common.capabilities.entity.player.PlayerAether; -import com.gildedgames.aether.common.capabilities.entity.player.modules.PlayerCampfiresModule; -import com.gildedgames.aether.common.network.MessageHandlerServer; -import io.netty.buffer.ByteBuf; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraftforge.fml.common.network.simpleimpl.IMessage; - -public class PacketSetShouldRespawnAtCampfire implements IMessage -{ - - public PacketSetShouldRespawnAtCampfire() - { - - } - - @Override - public void fromBytes(final ByteBuf buf) - { - - } - - @Override - public void toBytes(final ByteBuf buf) - { - - } - - public static class HandlerServer extends MessageHandlerServer<PacketSetShouldRespawnAtCampfire, IMessage> - { - @Override - public IMessage onMessage(final PacketSetShouldRespawnAtCampfire message, final EntityPlayer player) - { - if (player == null || player.world == null) - { - return null; - } - - PlayerAether playerAether = PlayerAether.getPlayer(player); - playerAether.getModule(PlayerCampfiresModule.class).setShouldRespawnAtCampfire(true); - - return null; - } - } - -} diff --git a/src/main/java/com/gildedgames/aether/common/network/packets/PacketShopBack.java b/src/main/java/com/gildedgames/aether/common/network/packets/PacketShopBack.java deleted file mode 100644 index 7cf512fc1a..0000000000 --- a/src/main/java/com/gildedgames/aether/common/network/packets/PacketShopBack.java +++ /dev/null @@ -1,60 +0,0 @@ -package com.gildedgames.aether.common.network.packets; - -import com.gildedgames.aether.common.AetherCore; -import com.gildedgames.aether.common.capabilities.entity.player.PlayerAether; -import com.gildedgames.aether.common.capabilities.entity.player.modules.PlayerDialogModule; -import com.gildedgames.aether.common.containers.ContainerShop; -import com.gildedgames.aether.common.network.AetherGuiHandler; -import com.gildedgames.aether.common.network.MessageHandlerServer; -import io.netty.buffer.ByteBuf; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.util.math.BlockPos; -import net.minecraftforge.fml.common.network.simpleimpl.IMessage; - -public class PacketShopBack implements IMessage -{ - - public PacketShopBack() - { - - } - - @Override - public void fromBytes(final ByteBuf buf) - { - - } - - @Override - public void toBytes(final ByteBuf buf) - { - - } - - public static class HandlerServer extends MessageHandlerServer<PacketShopBack, IMessage> - { - @Override - public IMessage onMessage(final PacketShopBack message, final EntityPlayer player) - { - if (player == null || player.world == null) - { - return null; - } - - if (player.openContainer instanceof ContainerShop) - { - PlayerAether playerAether = PlayerAether.getPlayer(player); - - PlayerDialogModule dialogModule = playerAether.getModule(PlayerDialogModule.class); - dialogModule.navigateNode(dialogModule.getCurrentScene().getStartingNode().getIdentifier()); - - BlockPos pos = player.getPosition(); - - player.openGui(AetherCore.MOD_ID, AetherGuiHandler.DIALOG_VIEWER_ID, player.world, pos.getX(), pos.getY(), pos.getZ()); - } - - return null; - } - } - -} diff --git a/src/main/java/com/gildedgames/aether/common/network/packets/PacketShopBuy.java b/src/main/java/com/gildedgames/aether/common/network/packets/PacketShopBuy.java deleted file mode 100644 index 092f824c21..0000000000 --- a/src/main/java/com/gildedgames/aether/common/network/packets/PacketShopBuy.java +++ /dev/null @@ -1,138 +0,0 @@ -package com.gildedgames.aether.common.network.packets; - -import com.gildedgames.aether.api.entity.EntityCharacter; -import com.gildedgames.aether.api.shop.IShopBuy; -import com.gildedgames.aether.api.shop.IShopInstance; -import com.gildedgames.aether.api.shop.IShopInstanceGroup; -import com.gildedgames.aether.api.shop.ShopUtil; -import com.gildedgames.aether.common.capabilities.entity.player.PlayerAether; -import com.gildedgames.aether.common.capabilities.entity.player.modules.PlayerDialogModule; -import com.gildedgames.aether.common.containers.ContainerShop; -import com.gildedgames.aether.common.network.MessageHandlerServer; -import com.gildedgames.aether.common.util.helpers.ItemHelper; -import io.netty.buffer.ByteBuf; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraftforge.fml.common.network.simpleimpl.IMessage; - -public class PacketShopBuy implements IMessage -{ - private int stockIndex, buyCount; - - private int shopIndex; - - public PacketShopBuy() - { - - } - - public PacketShopBuy(int stockIndex, int buyCount, int shopIndex) - { - this.stockIndex = stockIndex; - this.buyCount = buyCount; - this.shopIndex = shopIndex; - } - - @Override - public void fromBytes(final ByteBuf buf) - { - this.stockIndex = buf.readInt(); - this.buyCount = buf.readInt(); - this.shopIndex = buf.readInt(); - } - - @Override - public void toBytes(final ByteBuf buf) - { - buf.writeInt(this.stockIndex); - buf.writeInt(this.buyCount); - buf.writeInt(this.shopIndex); - } - - public static class HandlerServer extends MessageHandlerServer<PacketShopBuy, IMessage> - { - @Override - public IMessage onMessage(final PacketShopBuy message, final EntityPlayer player) - { - if (player == null || player.world == null) - { - return null; - } - - if (player.openContainer instanceof ContainerShop) - { - PlayerAether playerAether = PlayerAether.getPlayer(player); - PlayerDialogModule dialogModule = playerAether.getModule(PlayerDialogModule.class); - - EntityCharacter talking = dialogModule.getTalkingCharacter(); - - if (talking != null) - { - IShopInstanceGroup group = talking.getShopInstanceGroup(); - - if (group == null) - { - return null; - } - - IShopInstance shopInstance = group.getShopInstance(message.shopIndex); - - if (shopInstance != null && shopInstance.getStock() != null) - { - boolean isHandFree = player.inventory.getItemStack().isEmpty(); - - if (message.stockIndex >= 0 && message.stockIndex < shopInstance.getStock().size()) - { - IShopBuy buy = shopInstance.getStock().get(message.stockIndex); - - if (buy.getStock() <= 0) - { - return null; - } - - int maxAllowedWithHeldStack = buy.getItemStack().getMaxStackSize() - player.inventory.getItemStack().getCount(); - - int amount = Math.min(maxAllowedWithHeldStack, Math.min(message.buyCount, buy.getStock())); - - if (amount <= 0) - { - return null; - } - - boolean canAfford = - shopInstance.getCurrencyType().getValue(playerAether) >= (ShopUtil.getFilteredPrice(shopInstance, buy) * amount); - boolean isBuyItem = ItemHelper.getKeyForItemStack(player.inventory.getItemStack()) == ItemHelper - .getKeyForItemStack(buy.getItemStack()); - boolean canStack = player.inventory.getItemStack().isStackable(); - boolean isAtStackLimit = player.inventory.getItemStack().getCount() >= player.inventory.getItemStack().getMaxStackSize(); - - if (!isAtStackLimit && canStack && canAfford && (isHandFree || isBuyItem) && buy.getStock() > 0) - { - if (isHandFree) - { - buy.addStock(-amount); - - ItemStack stack = buy.getItemStack().copy(); - stack.setCount(amount); - - player.inventory.setItemStack(stack); - } - else - { - buy.addStock(-amount); - - player.inventory.getItemStack().setCount(player.inventory.getItemStack().getCount() + amount); - } - - shopInstance.getCurrencyType().removeValue(ShopUtil.getFilteredPrice(shopInstance, buy) * amount, playerAether); - } - } - } - } - } - - return null; - } - } - -} diff --git a/src/main/java/com/gildedgames/aether/common/network/packets/PacketShopSell.java b/src/main/java/com/gildedgames/aether/common/network/packets/PacketShopSell.java deleted file mode 100644 index 7cd7c7e4cc..0000000000 --- a/src/main/java/com/gildedgames/aether/common/network/packets/PacketShopSell.java +++ /dev/null @@ -1,153 +0,0 @@ -package com.gildedgames.aether.common.network.packets; - -import com.gildedgames.aether.api.AetherAPI; -import com.gildedgames.aether.api.shop.IShopBuy; -import com.gildedgames.aether.api.shop.IShopInstance; -import com.gildedgames.aether.api.shop.IShopInstanceGroup; -import com.gildedgames.aether.api.shop.ShopUtil; -import com.gildedgames.aether.common.capabilities.entity.player.PlayerAether; -import com.gildedgames.aether.common.capabilities.entity.player.modules.PlayerDialogModule; -import com.gildedgames.aether.common.containers.ContainerShop; -import com.gildedgames.aether.common.network.MessageHandlerServer; -import com.gildedgames.aether.common.util.helpers.ItemHelper; -import io.netty.buffer.ByteBuf; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraft.util.math.MathHelper; -import net.minecraftforge.fml.common.network.simpleimpl.IMessage; - -public class PacketShopSell implements IMessage -{ - - private int shopIndex; - - public PacketShopSell() - { - - } - - public PacketShopSell(int shopIndex) - { - this.shopIndex = shopIndex; - } - - @Override - public void fromBytes(final ByteBuf buf) - { - this.shopIndex = buf.readInt(); - } - - @Override - public void toBytes(final ByteBuf buf) - { - buf.writeInt(this.shopIndex); - } - - public static class HandlerServer extends MessageHandlerServer<PacketShopSell, IMessage> - { - @Override - public IMessage onMessage(final PacketShopSell message, final EntityPlayer player) - { - if (player == null || player.world == null) - { - return null; - } - - PlayerAether playerAether = PlayerAether.getPlayer(player); - PlayerDialogModule dialogModule = playerAether.getModule(PlayerDialogModule.class); - - if (player.openContainer instanceof ContainerShop) - { - if (dialogModule.getTalkingCharacter() != null) - { - IShopInstanceGroup group = dialogModule.getTalkingCharacter().getShopInstanceGroup(); - - if (group == null) - { - return null; - } - - IShopInstance shopInstance = group.getShopInstance(message.shopIndex); - - if (shopInstance != null) - { - ContainerShop container = (ContainerShop) player.openContainer; - ItemStack stackToSell = container.getSlot(0).getStack(); - - int hash = ItemHelper.getKeyForItemStack(stackToSell); - IShopBuy shopBuy = null; - - for (IShopBuy buy : container.getShopInstance().getStock()) - { - int buyHash = ItemHelper.getKeyForItemStack(buy.getItemStack()); - - if (buyHash == hash) - { - shopBuy = buy; - break; - } - } - - double value; - - if (shopBuy != null) - { - value = ShopUtil.getFilteredPrice(shopInstance, stackToSell, shopBuy.getSellingPrice()) * stackToSell.getCount(); - } - else - { - value = ShopUtil - .getFilteredPrice(shopInstance, stackToSell, - AetherAPI.content().currency().getValue(stackToSell, shopInstance.getCurrencyType().getClass())); - } - - if (value > 0) - { - double singleValue = ShopUtil - .getFilteredPrice(shopInstance, stackToSell, - AetherAPI.content().currency().getSingleValue(stackToSell, shopInstance.getCurrencyType().getClass())); - - if (shopBuy != null) - { - singleValue = ShopUtil.getFilteredPrice(shopInstance, stackToSell, shopBuy.getSellingPrice()); - } - - if (singleValue < 1) - { - double wholeValue = ShopUtil - .getFilteredPrice(shopInstance, stackToSell, - AetherAPI.content().currency().getValue(stackToSell, shopInstance.getCurrencyType().getClass())); - - if (shopBuy != null) - { - wholeValue = ShopUtil.getFilteredPrice(shopInstance, stackToSell, shopBuy.getSellingPrice()) * stackToSell.getCount(); - } - - double floored = MathHelper.floor(wholeValue); - - double decimals = wholeValue - floored; - - double howManyTimesDivInto = decimals / singleValue; - - int leftover = MathHelper.floor(howManyTimesDivInto); - - stackToSell.setCount(leftover); - - shopInstance.getCurrencyType().addValue((long) floored, playerAether); - } - else - { - container.getSlot(0).putStack(ItemStack.EMPTY); - - shopInstance.getCurrencyType().addValue((long) value, playerAether); - } - } - } - } - } - - return null; - } - } - -} diff --git a/src/main/java/com/gildedgames/aether/common/network/packets/PacketSpecialMovement.java b/src/main/java/com/gildedgames/aether/common/network/packets/PacketSpecialMovement.java deleted file mode 100644 index bc8546dc1b..0000000000 --- a/src/main/java/com/gildedgames/aether/common/network/packets/PacketSpecialMovement.java +++ /dev/null @@ -1,70 +0,0 @@ -package com.gildedgames.aether.common.network.packets; - -import com.gildedgames.aether.common.capabilities.entity.player.PlayerAether; -import com.gildedgames.aether.common.capabilities.entity.player.modules.PlayerAbilitiesModule; -import com.gildedgames.aether.common.capabilities.entity.player.modules.PlayerRollMovementModule; -import com.gildedgames.aether.common.network.MessageHandlerServer; -import io.netty.buffer.ByteBuf; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraftforge.fml.common.network.simpleimpl.IMessage; - -public class PacketSpecialMovement implements IMessage -{ - private Action action; - - public PacketSpecialMovement() - { - - } - - public PacketSpecialMovement(final Action action) - { - this.action = action; - } - - @Override - public void fromBytes(final ByteBuf buf) - { - this.action = Action.values()[buf.readByte()]; - } - - @Override - public void toBytes(final ByteBuf buf) - { - buf.writeByte(this.action.ordinal()); - } - - public enum Action - { - EXTRA_JUMP, - ROLL_FORWARD, - ROLL_BACK, - ROLL_LEFT, - ROLL_RIGHT - } - - public static class HandlerServer extends MessageHandlerServer<PacketSpecialMovement, PacketSpecialMovement> - { - @Override - public PacketSpecialMovement onMessage(final PacketSpecialMovement message, final EntityPlayer player) - { - final PlayerAether aePlayer = PlayerAether.getPlayer(player); - - switch (message.action) - { - case EXTRA_JUMP: - aePlayer.getModule(PlayerAbilitiesModule.class).performMidAirJump(); - case ROLL_FORWARD: - aePlayer.getModule(PlayerRollMovementModule.class).startRolling(message.action); - case ROLL_BACK: - aePlayer.getModule(PlayerRollMovementModule.class).startRolling(message.action); - case ROLL_LEFT: - aePlayer.getModule(PlayerRollMovementModule.class).startRolling(message.action); - case ROLL_RIGHT: - aePlayer.getModule(PlayerRollMovementModule.class).startRolling(message.action); - } - - return null; - } - } -} diff --git a/src/main/java/com/gildedgames/aether/common/network/packets/PacketStatusParticles.java b/src/main/java/com/gildedgames/aether/common/network/packets/PacketStatusParticles.java deleted file mode 100644 index 662077f64c..0000000000 --- a/src/main/java/com/gildedgames/aether/common/network/packets/PacketStatusParticles.java +++ /dev/null @@ -1,79 +0,0 @@ -package com.gildedgames.aether.common.network.packets; - -import com.gildedgames.aether.common.AetherCore; -import com.gildedgames.aether.common.init.ParticlesAether; -import com.gildedgames.aether.common.network.MessageHandlerClient; -import io.netty.buffer.ByteBuf; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraftforge.fml.common.network.simpleimpl.IMessage; - -public class PacketStatusParticles implements IMessage -{ - private double x, y, z, motionX, motionY, motionZ; - - private float particleRed, particleGreen, particleBlue; - - public PacketStatusParticles() - { - - } - - public PacketStatusParticles(double x, double y, double z, double motionX, double motionY, double motionZ, float particleRed, float particleGreen, float particleBlue) - { - this.x = x; - this.y = y; - this.z = z; - - this.motionX = motionX; - this.motionY = motionY; - this.motionZ = motionZ; - - this.particleRed = particleRed; - this.particleGreen = particleGreen; - this.particleBlue = particleBlue; - } - - @Override - public void fromBytes(final ByteBuf buf) - { - this.x = buf.readDouble(); - this.y = buf.readDouble(); - this.z = buf.readDouble(); - - this.motionX = buf.readDouble(); - this.motionY = buf.readDouble(); - this.motionZ = buf.readDouble(); - - this.particleRed = buf.readFloat(); - this.particleGreen = buf.readFloat(); - this.particleBlue = buf.readFloat(); - } - - @Override - public void toBytes(final ByteBuf buf) - { - buf.writeDouble(this.x); - buf.writeDouble(this.y); - buf.writeDouble(this.z); - - buf.writeDouble(this.motionX); - buf.writeDouble(this.motionY); - buf.writeDouble(this.motionZ); - - buf.writeFloat(this.particleRed); - buf.writeFloat(this.particleGreen); - buf.writeFloat(this.particleBlue); - } - - public static class HandlerClient extends MessageHandlerClient<PacketStatusParticles, PacketStatusParticles> - { - @Override - public PacketStatusParticles onMessage(final PacketStatusParticles message, final EntityPlayer player) - { - AetherCore.PROXY.spawnEffectParticles(player.world, message.x, message.y, message.z, message.motionX, message.motionY, message.motionZ, message.particleRed, message.particleGreen, - message.particleBlue); - - return null; - } - } -} diff --git a/src/main/java/com/gildedgames/aether/common/network/packets/PacketTalkedTo.java b/src/main/java/com/gildedgames/aether/common/network/packets/PacketTalkedTo.java deleted file mode 100644 index 4811963e74..0000000000 --- a/src/main/java/com/gildedgames/aether/common/network/packets/PacketTalkedTo.java +++ /dev/null @@ -1,60 +0,0 @@ -package com.gildedgames.aether.common.network.packets; - -import com.gildedgames.aether.common.capabilities.entity.player.PlayerAether; -import com.gildedgames.aether.common.capabilities.entity.player.modules.PlayerProgressModule; -import com.gildedgames.aether.common.network.MessageHandlerClient; -import io.netty.buffer.ByteBuf; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.util.ResourceLocation; -import net.minecraftforge.fml.common.network.ByteBufUtils; -import net.minecraftforge.fml.common.network.simpleimpl.IMessage; - -public class PacketTalkedTo implements IMessage -{ - - private ResourceLocation speaker; - - private boolean flag = true; - - public PacketTalkedTo() - { - - } - - public PacketTalkedTo(ResourceLocation speaker, final boolean flag) - { - this.speaker = speaker; - this.flag = flag; - } - - @Override - public void fromBytes(final ByteBuf buf) - { - this.speaker = new ResourceLocation(ByteBufUtils.readUTF8String(buf)); - this.flag = buf.readBoolean(); - } - - @Override - public void toBytes(final ByteBuf buf) - { - ByteBufUtils.writeUTF8String(buf, this.speaker.toString()); - buf.writeBoolean(this.flag); - } - - public static class HandlerClient extends MessageHandlerClient<PacketTalkedTo, IMessage> - { - @Override - public IMessage onMessage(final PacketTalkedTo message, final EntityPlayer player) - { - if (player == null || player.world == null) - { - return null; - } - - final PlayerAether playerAether = PlayerAether.getPlayer(player); - playerAether.getModule(PlayerProgressModule.class).setHasTalkedTo(message.speaker, message.flag); - - return null; - } - } -} diff --git a/src/main/java/com/gildedgames/aether/common/network/packets/PacketUpdatePrecipitation.java b/src/main/java/com/gildedgames/aether/common/network/packets/PacketUpdatePrecipitation.java deleted file mode 100644 index 64b2b69575..0000000000 --- a/src/main/java/com/gildedgames/aether/common/network/packets/PacketUpdatePrecipitation.java +++ /dev/null @@ -1,75 +0,0 @@ -package com.gildedgames.aether.common.network.packets; - -import com.gildedgames.aether.api.registrar.CapabilitiesAether; -import com.gildedgames.aether.api.world.islands.precipitation.IPrecipitationManager; -import com.gildedgames.aether.common.network.MessageHandlerClient; -import io.netty.buffer.ByteBuf; -import io.netty.buffer.ByteBufInputStream; -import io.netty.buffer.ByteBufOutputStream; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.nbt.CompressedStreamTools; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraftforge.fml.common.network.simpleimpl.IMessage; - -import java.io.IOException; - -public class PacketUpdatePrecipitation implements IMessage -{ - private NBTTagCompound tag; - - private IPrecipitationManager precipitation; - - public PacketUpdatePrecipitation() - { - - } - - public PacketUpdatePrecipitation(IPrecipitationManager precipitation) - { - this.precipitation = precipitation; - } - - @Override - public void fromBytes(ByteBuf buf) - { - try (ByteBufInputStream stream = new ByteBufInputStream(buf)) - { - this.tag = CompressedStreamTools.readCompressed(stream); - } - catch (IOException e) - { - throw new RuntimeException(e); - } - } - - @Override - public void toBytes(ByteBuf buf) - { - NBTTagCompound tag = this.precipitation.serializeNBT(); - - try (ByteBufOutputStream stream = new ByteBufOutputStream(buf)) - { - CompressedStreamTools.writeCompressed(tag, stream); - } - catch (IOException e) - { - throw new RuntimeException(e); - } - } - - public static class HandlerClient extends MessageHandlerClient<PacketUpdatePrecipitation, IMessage> - { - @Override - public IMessage onMessage(PacketUpdatePrecipitation message, EntityPlayer player) - { - IPrecipitationManager precip = player.world.getCapability(CapabilitiesAether.PRECIPITATION_MANAGER, null); - - if (precip != null) - { - precip.deserializeNBT(message.tag); - } - - return null; - } - } -} diff --git a/src/main/java/com/gildedgames/aether/common/network/packets/dialog/PacketActivateButton.java b/src/main/java/com/gildedgames/aether/common/network/packets/dialog/PacketActivateButton.java deleted file mode 100644 index 0704ab51a9..0000000000 --- a/src/main/java/com/gildedgames/aether/common/network/packets/dialog/PacketActivateButton.java +++ /dev/null @@ -1,114 +0,0 @@ -package com.gildedgames.aether.common.network.packets.dialog; - -import com.gildedgames.aether.api.dialog.IDialogAction; -import com.gildedgames.aether.api.dialog.IDialogButton; -import com.gildedgames.aether.api.dialog.IDialogController; -import com.gildedgames.aether.api.player.IPlayerAether; -import com.gildedgames.aether.common.capabilities.entity.player.PlayerAether; -import com.gildedgames.aether.common.capabilities.entity.player.modules.PlayerDialogModule; -import com.gildedgames.aether.common.network.MessageHandlerClient; -import com.gildedgames.aether.common.network.MessageHandlerServer; -import com.google.common.base.Objects; -import io.netty.buffer.ByteBuf; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraftforge.fml.common.network.ByteBufUtils; -import net.minecraftforge.fml.common.network.simpleimpl.IMessage; - -import java.util.Collection; - -public class PacketActivateButton implements IMessage -{ - private String label; - - public PacketActivateButton() - { - } - - public PacketActivateButton(final String label) - { - this.label = label; - } - - @Override - public void fromBytes(final ByteBuf buf) - { - this.label = ByteBufUtils.readUTF8String(buf); - } - - @Override - public void toBytes(final ByteBuf buf) - { - ByteBufUtils.writeUTF8String(buf, this.label); - } - - public static class HandlerClient extends MessageHandlerClient<PacketActivateButton, PacketActivateButton> - { - @Override - public PacketActivateButton onMessage(final PacketActivateButton message, final EntityPlayer player) - { - final IPlayerAether aePlayer = PlayerAether.getPlayer(player); - final IDialogController dialogController = aePlayer.getModule(PlayerDialogModule.class); - - if (dialogController.getCurrentSceneInstance() == null) - { - return null; - } - - IDialogButton found = null; - - for (final IDialogButton b : dialogController.getCurrentNode().getButtons()) - { - if (Objects.equal(message.label, b.getLabel())) - { - found = b; - break; - } - } - - if (found != null && dialogController.conditionsMet(found)) - { - final Collection<IDialogAction> actions = found.getActions(); - - for (final IDialogAction action : actions) - { - action.performAction(dialogController); - } - } - - return null; - } - } - - public static class HandlerServer extends MessageHandlerServer<PacketActivateButton, PacketActivateButton> - { - @Override - public PacketActivateButton onMessage(final PacketActivateButton message, final EntityPlayer player) - { - final IPlayerAether aePlayer = PlayerAether.getPlayer(player); - final IDialogController dialogController = aePlayer.getModule(PlayerDialogModule.class); - - if (dialogController.getCurrentSceneInstance() == null) - { - return null; - } - - IDialogButton found = null; - - for (final IDialogButton b : dialogController.getCurrentNode().getButtons()) - { - if (Objects.equal(message.label, b.getLabel())) - { - found = b; - break; - } - } - - if (found != null) - { - dialogController.activateButton(found); - } - - return null; - } - } -} diff --git a/src/main/java/com/gildedgames/aether/common/network/packets/dialog/PacketAdvance.java b/src/main/java/com/gildedgames/aether/common/network/packets/dialog/PacketAdvance.java deleted file mode 100644 index b1346c5cf7..0000000000 --- a/src/main/java/com/gildedgames/aether/common/network/packets/dialog/PacketAdvance.java +++ /dev/null @@ -1,58 +0,0 @@ -package com.gildedgames.aether.common.network.packets.dialog; - -import com.gildedgames.aether.api.player.IPlayerAether; -import com.gildedgames.aether.common.capabilities.entity.player.PlayerAether; -import com.gildedgames.aether.common.capabilities.entity.player.modules.PlayerDialogModule; -import com.gildedgames.aether.common.network.MessageHandlerClient; -import com.gildedgames.aether.common.network.MessageHandlerServer; -import io.netty.buffer.ByteBuf; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraftforge.fml.common.network.simpleimpl.IMessage; - -public class PacketAdvance implements IMessage -{ - - public PacketAdvance() - { - } - - @Override - public void fromBytes(final ByteBuf buf) - { - - } - - @Override - public void toBytes(final ByteBuf buf) - { - - } - - public static class HandlerClient extends MessageHandlerClient<PacketAdvance, PacketAdvance> - { - @Override - public PacketAdvance onMessage(final PacketAdvance message, final EntityPlayer player) - { - final IPlayerAether aePlayer = PlayerAether.getPlayer(player); - - final PlayerDialogModule dialogModule = aePlayer.getModule(PlayerDialogModule.class); - dialogModule.advanceClient(); - - return null; - } - } - - public static class HandlerServer extends MessageHandlerServer<PacketAdvance, PacketAdvance> - { - @Override - public PacketAdvance onMessage(final PacketAdvance message, final EntityPlayer player) - { - final IPlayerAether aePlayer = PlayerAether.getPlayer(player); - - final PlayerDialogModule dialogModule = aePlayer.getModule(PlayerDialogModule.class); - dialogModule.advance(); - - return null; - } - } -} diff --git a/src/main/java/com/gildedgames/aether/common/network/packets/dialog/PacketCloseScene.java b/src/main/java/com/gildedgames/aether/common/network/packets/dialog/PacketCloseScene.java deleted file mode 100644 index 5165a3a79d..0000000000 --- a/src/main/java/com/gildedgames/aether/common/network/packets/dialog/PacketCloseScene.java +++ /dev/null @@ -1,42 +0,0 @@ -package com.gildedgames.aether.common.network.packets.dialog; - -import com.gildedgames.aether.api.player.IPlayerAether; -import com.gildedgames.aether.common.capabilities.entity.player.PlayerAether; -import com.gildedgames.aether.common.capabilities.entity.player.modules.PlayerDialogModule; -import com.gildedgames.aether.common.network.MessageHandlerServer; -import io.netty.buffer.ByteBuf; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraftforge.fml.common.network.simpleimpl.IMessage; - -public class PacketCloseScene implements IMessage -{ - public PacketCloseScene() - { - } - - @Override - public void fromBytes(final ByteBuf buf) - { - - } - - @Override - public void toBytes(final ByteBuf buf) - { - - } - - public static class HandlerServer extends MessageHandlerServer<PacketCloseScene, PacketCloseScene> - { - @Override - public PacketCloseScene onMessage(final PacketCloseScene message, final EntityPlayer player) - { - final IPlayerAether aePlayer = PlayerAether.getPlayer(player); - - final PlayerDialogModule dialogModule = aePlayer.getModule(PlayerDialogModule.class); - dialogModule.closeCurrentScene(); - - return null; - } - } -} diff --git a/src/main/java/com/gildedgames/aether/common/network/packets/dialog/PacketConditionsMetData.java b/src/main/java/com/gildedgames/aether/common/network/packets/dialog/PacketConditionsMetData.java deleted file mode 100644 index bb548b73b7..0000000000 --- a/src/main/java/com/gildedgames/aether/common/network/packets/dialog/PacketConditionsMetData.java +++ /dev/null @@ -1,66 +0,0 @@ -package com.gildedgames.aether.common.network.packets.dialog; - -import com.gildedgames.aether.api.player.IPlayerAether; -import com.gildedgames.aether.common.capabilities.entity.player.PlayerAether; -import com.gildedgames.aether.common.capabilities.entity.player.modules.PlayerDialogModule; -import com.gildedgames.aether.common.network.MessageHandlerClient; -import com.gildedgames.orbis.lib.util.io.NBTFunnel; -import io.netty.buffer.ByteBuf; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraftforge.fml.common.network.ByteBufUtils; -import net.minecraftforge.fml.common.network.simpleimpl.IMessage; - -import java.util.Map; - -public class PacketConditionsMetData implements IMessage -{ - private Map<String, Boolean> conditionsMet; - - private NBTFunnel funnel; - - public PacketConditionsMetData() - { - } - - public PacketConditionsMetData(Map<String, Boolean> conditionsMet) - { - this.conditionsMet = conditionsMet; - } - - @Override - public void fromBytes(final ByteBuf buf) - { - this.funnel = new NBTFunnel(ByteBufUtils.readTag(buf)); - } - - @Override - public void toBytes(final ByteBuf buf) - { - NBTTagCompound tag = new NBTTagCompound(); - NBTFunnel funnel = new NBTFunnel(tag); - - funnel.setMap("c", this.conditionsMet, NBTFunnel.STRING_SETTER, NBTFunnel.BOOLEAN_SETTER); - - ByteBufUtils.writeTag(buf, tag); - } - - public static class HandlerClient extends MessageHandlerClient<PacketConditionsMetData, PacketConditionsMetData> - { - @Override - public PacketConditionsMetData onMessage(final PacketConditionsMetData message, final EntityPlayer player) - { - final IPlayerAether aePlayer = PlayerAether.getPlayer(player); - - Map<String, Boolean> conditionsMet = message.funnel.getMap("c", NBTFunnel.STRING_GETTER, NBTFunnel.BOOLEAN_GETTER); - - if (conditionsMet != null) - { - aePlayer.getModule(PlayerDialogModule.class).setConditionsMetData(conditionsMet); - } - - return null; - } - } - -} diff --git a/src/main/java/com/gildedgames/aether/common/network/packets/dialog/PacketNavigateBack.java b/src/main/java/com/gildedgames/aether/common/network/packets/dialog/PacketNavigateBack.java deleted file mode 100644 index 586f204f84..0000000000 --- a/src/main/java/com/gildedgames/aether/common/network/packets/dialog/PacketNavigateBack.java +++ /dev/null @@ -1,42 +0,0 @@ -package com.gildedgames.aether.common.network.packets.dialog; - -import com.gildedgames.aether.api.player.IPlayerAether; -import com.gildedgames.aether.common.capabilities.entity.player.PlayerAether; -import com.gildedgames.aether.common.capabilities.entity.player.modules.PlayerDialogModule; -import com.gildedgames.aether.common.network.MessageHandlerClient; -import io.netty.buffer.ByteBuf; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraftforge.fml.common.network.simpleimpl.IMessage; - -public class PacketNavigateBack implements IMessage -{ - - public PacketNavigateBack() - { - } - - @Override - public void fromBytes(final ByteBuf buf) - { - - } - - @Override - public void toBytes(final ByteBuf buf) - { - } - - public static class HandlerClient extends MessageHandlerClient<PacketNavigateBack, PacketNavigateBack> - { - @Override - public PacketNavigateBack onMessage(final PacketNavigateBack message, final EntityPlayer player) - { - final IPlayerAether aePlayer = PlayerAether.getPlayer(player); - final PlayerDialogModule module = aePlayer.getModule(PlayerDialogModule.class); - - module.navigateBackClient(); - - return null; - } - } -} diff --git a/src/main/java/com/gildedgames/aether/common/network/packets/dialog/PacketNavigateNode.java b/src/main/java/com/gildedgames/aether/common/network/packets/dialog/PacketNavigateNode.java deleted file mode 100644 index 7dc6cb8668..0000000000 --- a/src/main/java/com/gildedgames/aether/common/network/packets/dialog/PacketNavigateNode.java +++ /dev/null @@ -1,50 +0,0 @@ -package com.gildedgames.aether.common.network.packets.dialog; - -import com.gildedgames.aether.api.player.IPlayerAether; -import com.gildedgames.aether.common.capabilities.entity.player.PlayerAether; -import com.gildedgames.aether.common.capabilities.entity.player.modules.PlayerDialogModule; -import com.gildedgames.aether.common.network.MessageHandlerClient; -import io.netty.buffer.ByteBuf; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraftforge.fml.common.network.ByteBufUtils; -import net.minecraftforge.fml.common.network.simpleimpl.IMessage; - -public class PacketNavigateNode implements IMessage -{ - private String nodeId; - - public PacketNavigateNode() - { - } - - public PacketNavigateNode(final String label) - { - this.nodeId = label; - } - - @Override - public void fromBytes(final ByteBuf buf) - { - this.nodeId = ByteBufUtils.readUTF8String(buf); - } - - @Override - public void toBytes(final ByteBuf buf) - { - ByteBufUtils.writeUTF8String(buf, this.nodeId); - } - - public static class HandlerClient extends MessageHandlerClient<PacketNavigateNode, PacketNavigateNode> - { - @Override - public PacketNavigateNode onMessage(final PacketNavigateNode message, final EntityPlayer player) - { - final IPlayerAether aePlayer = PlayerAether.getPlayer(player); - final PlayerDialogModule module = aePlayer.getModule(PlayerDialogModule.class); - - module.navigateNodeClient(message.nodeId); - - return null; - } - } -} diff --git a/src/main/java/com/gildedgames/aether/common/network/packets/dialog/PacketOpenDialog.java b/src/main/java/com/gildedgames/aether/common/network/packets/dialog/PacketOpenDialog.java deleted file mode 100644 index 46c5091bd5..0000000000 --- a/src/main/java/com/gildedgames/aether/common/network/packets/dialog/PacketOpenDialog.java +++ /dev/null @@ -1,77 +0,0 @@ -package com.gildedgames.aether.common.network.packets.dialog; - -import com.gildedgames.aether.api.dialog.IDialogController; -import com.gildedgames.aether.api.player.IPlayerAether; -import com.gildedgames.aether.common.capabilities.entity.player.PlayerAether; -import com.gildedgames.aether.common.capabilities.entity.player.modules.PlayerDialogModule; -import com.gildedgames.aether.common.network.MessageHandlerClient; -import com.gildedgames.orbis.lib.util.io.NBTFunnel; -import io.netty.buffer.ByteBuf; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.util.ResourceLocation; -import net.minecraftforge.fml.common.network.ByteBufUtils; -import net.minecraftforge.fml.common.network.simpleimpl.IMessage; - -import java.util.Map; - -public class PacketOpenDialog implements IMessage -{ - private ResourceLocation name; - - private String startingNodeId; - - private Map<String, Boolean> conditionsMet; - - private NBTFunnel funnel; - - public PacketOpenDialog() - { - } - - public PacketOpenDialog(final ResourceLocation res, String startingNodeId, Map<String, Boolean> conditionsMet) - { - this.name = res; - this.startingNodeId = startingNodeId; - this.conditionsMet = conditionsMet; - } - - @Override - public void fromBytes(final ByteBuf buf) - { - this.name = new ResourceLocation(ByteBufUtils.readUTF8String(buf)); - this.startingNodeId = ByteBufUtils.readUTF8String(buf); - this.funnel = new NBTFunnel(ByteBufUtils.readTag(buf)); - } - - @Override - public void toBytes(final ByteBuf buf) - { - ByteBufUtils.writeUTF8String(buf, this.name.toString()); - ByteBufUtils.writeUTF8String(buf, this.startingNodeId); - - NBTTagCompound tag = new NBTTagCompound(); - NBTFunnel funnel = new NBTFunnel(tag); - - funnel.setMap("c", this.conditionsMet, NBTFunnel.STRING_SETTER, NBTFunnel.BOOLEAN_SETTER); - - ByteBufUtils.writeTag(buf, tag); - } - - public static class HandlerClient extends MessageHandlerClient<PacketOpenDialog, PacketOpenDialog> - { - @Override - public PacketOpenDialog onMessage(final PacketOpenDialog message, final EntityPlayer player) - { - Map<String, Boolean> conditionsMet = message.funnel.getMap("c", NBTFunnel.STRING_GETTER, NBTFunnel.BOOLEAN_GETTER); - - final IPlayerAether aePlayer = PlayerAether.getPlayer(player); - final IDialogController controller = aePlayer.getModule(PlayerDialogModule.class); - - controller.setConditionsMetData(conditionsMet); - controller.openScene(message.name, message.startingNodeId); - - return null; - } - } -} diff --git a/src/main/java/com/gildedgames/aether/common/network/packets/effects/PacketResetResistance.java b/src/main/java/com/gildedgames/aether/common/network/packets/effects/PacketResetResistance.java deleted file mode 100644 index c437b9991b..0000000000 --- a/src/main/java/com/gildedgames/aether/common/network/packets/effects/PacketResetResistance.java +++ /dev/null @@ -1,62 +0,0 @@ -package com.gildedgames.aether.common.network.packets.effects; - -import com.gildedgames.aether.api.entity.effects.IAetherStatusEffectPool; -import com.gildedgames.aether.api.registrar.CapabilitiesAether; -import com.gildedgames.aether.common.network.MessageHandlerClient; -import io.netty.buffer.ByteBuf; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraftforge.fml.common.network.simpleimpl.IMessage; - -public class PacketResetResistance implements IMessage -{ - int playerID; - - public PacketResetResistance() - { - - } - - public PacketResetResistance(EntityPlayer player) - { - this.playerID = player.getEntityId(); - } - - @Override - public void fromBytes(final ByteBuf buf) - { - this.playerID = buf.readInt(); - } - - @Override - public void toBytes(final ByteBuf buf) - { - buf.writeInt(this.playerID); - } - - public static class HandlerClient extends MessageHandlerClient<PacketResetResistance, PacketResetResistance> - { - @Override - public PacketResetResistance onMessage(final PacketResetResistance message, final EntityPlayer clientPlayer) - { - if (clientPlayer != null && clientPlayer.world != null) - { - if (clientPlayer.world.getEntityByID(message.playerID) instanceof EntityPlayer) - { - EntityPlayer entityPlayer = (EntityPlayer) clientPlayer.world.getEntityByID(message.playerID); - - if (entityPlayer != null) - { - IAetherStatusEffectPool statusEffectPool = entityPlayer.getCapability(CapabilitiesAether.STATUS_EFFECT_POOL, null); - - if (statusEffectPool != null) - { - statusEffectPool.resetAllResistances(); - } - } - } - } - - return null; - } - } -} diff --git a/src/main/java/com/gildedgames/aether/common/network/packets/effects/PacketResistance.java b/src/main/java/com/gildedgames/aether/common/network/packets/effects/PacketResistance.java deleted file mode 100644 index 4d685f382b..0000000000 --- a/src/main/java/com/gildedgames/aether/common/network/packets/effects/PacketResistance.java +++ /dev/null @@ -1,74 +0,0 @@ -package com.gildedgames.aether.common.network.packets.effects; - -import com.gildedgames.aether.api.entity.effects.IAetherStatusEffectPool; -import com.gildedgames.aether.api.entity.effects.IAetherStatusEffects; -import com.gildedgames.aether.api.registrar.CapabilitiesAether; -import com.gildedgames.aether.common.network.MessageHandlerClient; -import io.netty.buffer.ByteBuf; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraftforge.fml.common.network.ByteBufUtils; -import net.minecraftforge.fml.common.network.simpleimpl.IMessage; - -public class PacketResistance implements IMessage -{ - int playerID; - String effect; - double resistance; - - public PacketResistance() - { - - } - - public PacketResistance(EntityPlayer player, String effect, double resistance) - { - this.playerID = player.getEntityId(); - this.effect = effect; - this.resistance = resistance; - } - - @Override - public void fromBytes(final ByteBuf buf) - { - this.playerID = buf.readInt(); - this.effect = ByteBufUtils.readUTF8String(buf);; - this.resistance = buf.readDouble(); - } - - @Override - public void toBytes(final ByteBuf buf) - { - buf.writeInt(this.playerID); - ByteBufUtils.writeUTF8String(buf, this.effect); - buf.writeDouble(this.resistance); - } - - public static class HandlerClient extends MessageHandlerClient<PacketResistance, PacketResistance> - { - @Override - public PacketResistance onMessage(final PacketResistance message, final EntityPlayer clientPlayer) - { - if (clientPlayer != null && clientPlayer.world != null) - { - if (clientPlayer.world.getEntityByID(message.playerID) instanceof EntityPlayer) - { - EntityPlayer entityPlayer = (EntityPlayer) clientPlayer.world.getEntityByID(message.playerID); - - if (entityPlayer != null) - { - IAetherStatusEffectPool statusEffectPool = entityPlayer.getCapability(CapabilitiesAether.STATUS_EFFECT_POOL, null); - - if (statusEffectPool != null) - { - IAetherStatusEffects actualEffect = statusEffectPool.createEffect(message.effect,entityPlayer); - - statusEffectPool.addResistanceToEffect(actualEffect.getEffectType(), message.resistance); - } - } - } - } - - return null; - } - } -} diff --git a/src/main/java/com/gildedgames/aether/common/network/packets/effects/PacketStatusEffect.java b/src/main/java/com/gildedgames/aether/common/network/packets/effects/PacketStatusEffect.java deleted file mode 100644 index 192e136033..0000000000 --- a/src/main/java/com/gildedgames/aether/common/network/packets/effects/PacketStatusEffect.java +++ /dev/null @@ -1,105 +0,0 @@ -package com.gildedgames.aether.common.network.packets.effects; - -import com.gildedgames.aether.api.entity.effects.IAetherStatusEffectPool; -import com.gildedgames.aether.api.entity.effects.IAetherStatusEffects; -import com.gildedgames.aether.api.registrar.CapabilitiesAether; -import com.gildedgames.aether.common.AetherCore; -import com.gildedgames.aether.common.network.MessageHandlerClient; -import io.netty.buffer.ByteBuf; -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.nbt.NBTTagList; -import net.minecraftforge.fml.common.network.ByteBufUtils; -import net.minecraftforge.fml.common.network.simpleimpl.IMessage; - -public class PacketStatusEffect implements IMessage -{ - IAetherStatusEffectPool capability; - private int entityID; - private NBTTagCompound tag; - - public PacketStatusEffect() - { - - } - - public PacketStatusEffect(final Entity entity) - { - this.entityID = entity.getEntityId(); - - capability = entity.getCapability(CapabilitiesAether.STATUS_EFFECT_POOL, null); - } - - @Override - public void fromBytes(ByteBuf buf) - { - this.tag = ByteBufUtils.readTag(buf); - } - - @Override - public void toBytes(ByteBuf buf) - { - NBTTagCompound tag = new NBTTagCompound(); - tag.setInteger("entityID", entityID); - - NBTTagList effects = new NBTTagList(); - - for (IAetherStatusEffects effect : capability.getPool().values()) - { - if(!effect.isDirty()) - continue; - - NBTTagCompound effectData = new NBTTagCompound(); - effect.write(effectData); - - effects.appendTag(effectData); - } - tag.setTag("statusEffects", effects); - - ByteBufUtils.writeTag(buf, tag); - } - - public static class HandlerClient extends MessageHandlerClient<PacketStatusEffect, IMessage> - { - - @Override - public IMessage onMessage(PacketStatusEffect message, EntityPlayer player) - { - if (player == null || player.world == null || message.tag == null) - { - return null; - } - - message.entityID = message.tag.getInteger("entityID"); - final Entity entity = player.world.getEntityByID(message.entityID); - - if (!(entity instanceof EntityLivingBase)) - { - AetherCore.LOGGER.warn("Tried to set effects for non-living entity with ID " + message.entityID); - - return null; - } - - final EntityLivingBase entityLiving = (EntityLivingBase) entity; - IAetherStatusEffectPool map = entityLiving.getCapability(CapabilitiesAether.STATUS_EFFECT_POOL, null); - - if (map != null) - { - NBTTagList effects = message.tag.getTagList("statusEffects", 10); - - for(int i = 0; i < effects.tagCount(); i++) - { - NBTTagCompound compound = effects.getCompoundTagAt(i); - - IAetherStatusEffects effect = map.createEffect(compound.getString("type"), entityLiving); - effect.read(compound); - } - } - - return null; - } - - } -} diff --git a/src/main/java/com/gildedgames/aether/common/network/packets/trade/PacketChangeCoinAmount.java b/src/main/java/com/gildedgames/aether/common/network/packets/trade/PacketChangeCoinAmount.java deleted file mode 100644 index d41be6dd72..0000000000 --- a/src/main/java/com/gildedgames/aether/common/network/packets/trade/PacketChangeCoinAmount.java +++ /dev/null @@ -1,77 +0,0 @@ -package com.gildedgames.aether.common.network.packets.trade; - -import com.gildedgames.aether.client.gui.dialog.GuiTrade; -import com.gildedgames.aether.common.capabilities.entity.player.PlayerAether; -import com.gildedgames.aether.common.capabilities.entity.player.modules.PlayerCurrencyModule; -import com.gildedgames.aether.common.capabilities.entity.player.modules.PlayerTradeModule; -import com.gildedgames.aether.common.network.MessageHandlerClient; -import com.gildedgames.aether.common.network.MessageHandlerServer; -import com.gildedgames.aether.common.network.NetworkingAether; -import io.netty.buffer.ByteBuf; -import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.GuiScreen; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.EntityPlayerMP; -import net.minecraftforge.fml.common.network.simpleimpl.IMessage; - -public class PacketChangeCoinAmount implements IMessage -{ - - private double coinCount; - - public PacketChangeCoinAmount() { - } - - public PacketChangeCoinAmount(double coinCount) - { - this.coinCount = coinCount; - } - - @Override - public void fromBytes(final ByteBuf buf) - { - this.coinCount = buf.readDouble(); - } - - @Override - public void toBytes(final ByteBuf buf) - { - buf.writeDouble(this.coinCount); - } - - public static class HandlerServer extends MessageHandlerServer<PacketChangeCoinAmount, IMessage> - { - @Override - public IMessage onMessage(PacketChangeCoinAmount message, EntityPlayer player) - { - PlayerAether aePlayer = PlayerAether.getPlayer(player); - PlayerTradeModule tradeModule = aePlayer.getModule(PlayerTradeModule.class); - - double val = aePlayer.getModule(PlayerCurrencyModule.class).getCurrencyValue(); - - if (message.coinCount <= val && tradeModule.isTrading() && !tradeModule.isLockedIn()) - { - tradeModule.setCoinAmount(message.coinCount); - NetworkingAether.sendPacketToPlayer(new PacketChangeCoinAmount(message.coinCount), (EntityPlayerMP) tradeModule.getTarget().getEntity()); - } - - return null; - } - } - - public static class HandlerClient extends MessageHandlerClient<PacketChangeCoinAmount, IMessage> - { - @Override - public IMessage onMessage(PacketChangeCoinAmount message, EntityPlayer player) - { - GuiScreen screen = Minecraft.getMinecraft().currentScreen; - - if (screen instanceof GuiTrade) - { - ((GuiTrade) screen).setCoinCount(message.coinCount); - } - - return null; - } - } -} diff --git a/src/main/java/com/gildedgames/aether/common/network/packets/trade/PacketSendInventorySize.java b/src/main/java/com/gildedgames/aether/common/network/packets/trade/PacketSendInventorySize.java deleted file mode 100644 index ac24befa9f..0000000000 --- a/src/main/java/com/gildedgames/aether/common/network/packets/trade/PacketSendInventorySize.java +++ /dev/null @@ -1,49 +0,0 @@ -package com.gildedgames.aether.common.network.packets.trade; - -import com.gildedgames.aether.common.capabilities.entity.player.PlayerAether; -import com.gildedgames.aether.common.capabilities.entity.player.modules.PlayerTradeModule; -import com.gildedgames.aether.common.network.MessageHandlerClient; -import io.netty.buffer.ByteBuf; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraftforge.fml.common.network.simpleimpl.IMessage; - -public class PacketSendInventorySize implements IMessage -{ - private byte size; - - public PacketSendInventorySize() - { - - } - - public PacketSendInventorySize(byte size) - { - this.size = size; - } - - @Override - public void toBytes(ByteBuf buf) - { - buf.writeByte(this.size); - } - - @Override - public void fromBytes(ByteBuf buf) - { - this.size = buf.readByte(); - } - - public static class HandlerClient extends MessageHandlerClient<PacketSendInventorySize, IMessage> - { - @Override - public IMessage onMessage(PacketSendInventorySize message, EntityPlayer player) - { - PlayerAether aePlayer = PlayerAether.getPlayer(player); - - PlayerTradeModule tradeModule = aePlayer.getModule(PlayerTradeModule.class); - tradeModule.setTradeSlots(message.size); - - return null; - } - } -} diff --git a/src/main/java/com/gildedgames/aether/common/network/packets/trade/PacketTradeInitial.java b/src/main/java/com/gildedgames/aether/common/network/packets/trade/PacketTradeInitial.java deleted file mode 100644 index ffec6ae14a..0000000000 --- a/src/main/java/com/gildedgames/aether/common/network/packets/trade/PacketTradeInitial.java +++ /dev/null @@ -1,62 +0,0 @@ -package com.gildedgames.aether.common.network.packets.trade; - -import com.gildedgames.aether.common.capabilities.entity.player.PlayerAether; -import com.gildedgames.aether.common.capabilities.entity.player.modules.PlayerTradeModule; -import com.gildedgames.aether.common.network.MessageHandlerClient; -import io.netty.buffer.ByteBuf; -import net.minecraft.entity.Entity; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraftforge.fml.common.network.simpleimpl.IMessage; - -public class PacketTradeInitial implements IMessage -{ - private int entityId; - - public PacketTradeInitial() - { - - } - - public PacketTradeInitial(int id) - { - this.entityId = id; - } - - @Override - public void toBytes(ByteBuf buf) - { - buf.writeInt(this.entityId); - } - - @Override - public void fromBytes(ByteBuf buf) - { - this.entityId = buf.readInt(); - } - - public static class HandlerClient extends MessageHandlerClient<PacketTradeInitial, IMessage> - { - @Override - public IMessage onMessage(PacketTradeInitial message, EntityPlayer player) - { - Entity entity = player.world.getEntityByID(message.entityId); - - if (!(entity instanceof EntityPlayer)) - { - throw new IllegalArgumentException("Entity is not a player"); - } - - PlayerAether aePlayer = PlayerAether.getPlayer(player); - - PlayerTradeModule tradeModule = aePlayer.getModule(PlayerTradeModule.class); - tradeModule.clear(); - - PlayerAether target = PlayerAether.getPlayer((EntityPlayer) entity); - target.getModule(PlayerTradeModule.class).clear(); - - tradeModule.setTarget(target); - - return null; - } - } -} diff --git a/src/main/java/com/gildedgames/aether/common/network/packets/trade/PacketTradeInventory.java b/src/main/java/com/gildedgames/aether/common/network/packets/trade/PacketTradeInventory.java deleted file mode 100644 index 4175e321bd..0000000000 --- a/src/main/java/com/gildedgames/aether/common/network/packets/trade/PacketTradeInventory.java +++ /dev/null @@ -1,94 +0,0 @@ -package com.gildedgames.aether.common.network.packets.trade; - -import com.gildedgames.aether.client.gui.dialog.GuiTrade; -import com.gildedgames.aether.common.network.MessageHandlerClient; -import io.netty.buffer.ByteBuf; -import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.GuiScreen; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.inventory.IInventory; -import net.minecraft.item.ItemStack; -import net.minecraftforge.fml.common.network.ByteBufUtils; -import net.minecraftforge.fml.common.network.simpleimpl.IMessage; -import org.apache.commons.lang3.tuple.Pair; - -import java.util.ArrayList; -import java.util.List; - -public class PacketTradeInventory implements IMessage -{ - - private final List<Pair<Integer, ItemStack>> changes = new ArrayList<>(); - - private int decSlots; - - public PacketTradeInventory() - { - - } - - public PacketTradeInventory(IInventory inventory) - { - for (int i = 0; i < inventory.getSizeInventory(); i++) - { - ItemStack stack = inventory.getStackInSlot(i); - - if (stack.isEmpty()) - { - break; - } - - this.changes.add(Pair.of(i, stack)); - } - } - - @Override - public void fromBytes(final ByteBuf buf) - { - this.decSlots = buf.readInt(); - - final int count = buf.readByte(); - - for (int i = 0; i < count; i++) - { - final int slot = buf.readByte(); - - final ItemStack stack = ByteBufUtils.readItemStack(buf); - - this.changes.add(Pair.of(slot, stack)); - } - } - - @Override - public void toBytes(final ByteBuf buf) - { - buf.writeInt(this.decSlots); - buf.writeByte(this.changes.size()); - - for (final Pair<Integer, ItemStack> pair : this.changes) - { - buf.writeByte(pair.getKey()); - - ByteBufUtils.writeItemStack(buf, pair.getValue()); - } - } - - public static class HandlerClient extends MessageHandlerClient<PacketTradeInventory, IMessage> - { - @Override - public IMessage onMessage(PacketTradeInventory message, EntityPlayer player) - { - GuiScreen screen = Minecraft.getMinecraft().currentScreen; - - if (screen instanceof GuiTrade) - { - GuiTrade trade = (GuiTrade) screen; - - trade.setTradeOffer(message.changes); - } - - return null; - } - } - -} diff --git a/src/main/java/com/gildedgames/aether/common/network/packets/trade/PacketTradeMessage.java b/src/main/java/com/gildedgames/aether/common/network/packets/trade/PacketTradeMessage.java deleted file mode 100644 index 8f5646f927..0000000000 --- a/src/main/java/com/gildedgames/aether/common/network/packets/trade/PacketTradeMessage.java +++ /dev/null @@ -1,100 +0,0 @@ -package com.gildedgames.aether.common.network.packets.trade; - -import com.gildedgames.aether.client.gui.dialog.GuiTrade; -import com.gildedgames.aether.common.capabilities.entity.player.PlayerAether; -import com.gildedgames.aether.common.capabilities.entity.player.modules.PlayerTradeModule; -import com.gildedgames.aether.common.network.MessageHandlerClient; -import com.gildedgames.aether.common.network.MessageHandlerServer; -import com.gildedgames.aether.common.network.NetworkingAether; -import io.netty.buffer.ByteBuf; -import net.minecraft.client.Minecraft; -import net.minecraft.entity.Entity; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.util.text.*; -import net.minecraftforge.fml.common.network.ByteBufUtils; -import net.minecraftforge.fml.common.network.simpleimpl.IMessage; - -public class PacketTradeMessage implements IMessage -{ - private String text; - - private int entityId; - - public PacketTradeMessage() - { - - } - - public PacketTradeMessage(String message, EntityPlayer player) - { - this.text = message; - this.entityId = player.getEntityId(); - } - - public PacketTradeMessage(String message) - { - this.text = message; - } - - @Override - public void toBytes(ByteBuf buf) - { - buf.writeInt(this.entityId); - ByteBufUtils.writeUTF8String(buf, this.text); - } - - @Override - public void fromBytes(ByteBuf buf) - { - this.entityId = buf.readInt(); - this.text = ByteBufUtils.readUTF8String(buf); - } - - public static class HandlerClient extends MessageHandlerClient<PacketTradeMessage, IMessage> - { - @Override - public IMessage onMessage(PacketTradeMessage message, EntityPlayer player) - { - Minecraft mc = Minecraft.getMinecraft(); - - if (mc.currentScreen instanceof GuiTrade) - { - GuiTrade tradeGui = (GuiTrade) mc.currentScreen; - Entity entity = player.world.getEntityByID(message.entityId); - - if (message.entityId != 0 && entity instanceof EntityPlayer) - { - tradeGui.sendTradeMessage((EntityPlayer) entity, new TextComponentString(message.text)); - } - else - { - ITextComponent comp = new TextComponentTranslation(message.text, tradeGui.getTrader()); - - comp.setStyle(new Style().setColor(message.text.endsWith("warn") ? TextFormatting.RED : message.text.endsWith("safe") ? TextFormatting.YELLOW : TextFormatting.AQUA)); - - tradeGui.sendMessage(comp); - } - } - - return null; - } - } - - public static class HandlerServer extends MessageHandlerServer<PacketTradeMessage, IMessage> - { - @Override - public IMessage onMessage(PacketTradeMessage message, EntityPlayer player) - { - PlayerAether aePlayer = PlayerAether.getPlayer(player); - - PlayerTradeModule tradeModule = aePlayer.getModule(PlayerTradeModule.class); - - if(tradeModule.isTrading() && message.text.length() <= 256) - { - NetworkingAether.sendPacketToPlayer(new PacketTradeMessage(message.text, player), tradeModule.getTargetMP()); - } - - return null; - } - } -} diff --git a/src/main/java/com/gildedgames/aether/common/network/packets/trade/PacketTradeState.java b/src/main/java/com/gildedgames/aether/common/network/packets/trade/PacketTradeState.java deleted file mode 100644 index dada731d5d..0000000000 --- a/src/main/java/com/gildedgames/aether/common/network/packets/trade/PacketTradeState.java +++ /dev/null @@ -1,150 +0,0 @@ -package com.gildedgames.aether.common.network.packets.trade; - -import com.gildedgames.aether.common.capabilities.entity.player.PlayerAether; -import com.gildedgames.aether.common.capabilities.entity.player.modules.PlayerCurrencyModule; -import com.gildedgames.aether.common.capabilities.entity.player.modules.PlayerTradeModule; -import com.gildedgames.aether.common.containers.ContainerTrade; -import com.gildedgames.aether.common.network.MessageHandlerClient; -import com.gildedgames.aether.common.network.MessageHandlerServer; -import com.gildedgames.aether.common.network.NetworkingAether; -import io.netty.buffer.ByteBuf; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.inventory.Slot; -import net.minecraft.item.ItemStack; -import net.minecraftforge.fml.common.network.simpleimpl.IMessage; - -public class PacketTradeState implements IMessage -{ - private byte state; - - public PacketTradeState() - { - - } - - public PacketTradeState(byte state) - { - this.state = state; - } - - @Override - public void toBytes(ByteBuf buf) - { - buf.writeByte(this.state); - } - - @Override - public void fromBytes(ByteBuf buf) - { - this.state = buf.readByte(); - } - - public static class HandlerClient extends MessageHandlerClient<PacketTradeState, IMessage> - { - @Override - public IMessage onMessage(PacketTradeState message, EntityPlayer player) - { - PlayerAether aePlayer = PlayerAether.getPlayer(player); - - PlayerTradeModule tradeModule = aePlayer.getModule(PlayerTradeModule.class); - - if (message.state == -1) - { - tradeModule.clear(); - } - - tradeModule.updateClientState(message.state); - - return null; - } - } - - public static class HandlerServer extends MessageHandlerServer<PacketTradeState, IMessage> - { - @Override - public IMessage onMessage(PacketTradeState message, EntityPlayer player) - { - PlayerAether aePlayer = PlayerAether.getPlayer(player); - - PlayerTradeModule tradeModule = aePlayer.getModule(PlayerTradeModule.class); - PlayerTradeModule targetTrade = tradeModule.getTarget().getModule(PlayerTradeModule.class); - - if (tradeModule.isTrading()) - { - String statusMessage = ""; - - if (message.state == 0) - { - tradeModule.setLockedIn(true); - targetTrade.sendState(0); - statusMessage = "targetlock"; - } - else if (message.state == 1) - { - tradeModule.setLockedIn(false); - - if (targetTrade.isLockedIn()) - { - targetTrade.setLockedIn(false); - tradeModule.sendState(0); - statusMessage = "unlockwarn"; - } - else - { - statusMessage = "unlocksafe"; - } - - targetTrade.sendState(0); - } - else if (message.state == 2 && tradeModule.isLockedIn() && targetTrade.isLockedIn()) - { - if (targetTrade.isConfirmed()) - { - if (tradeModule.getEntity().openContainer instanceof ContainerTrade && targetTrade.getEntity().openContainer instanceof ContainerTrade) - { - ContainerTrade hostContainer = (ContainerTrade) tradeModule.getEntity().openContainer; - ContainerTrade otherContainer = (ContainerTrade) targetTrade.getEntity().openContainer; - - aePlayer.getModule(PlayerCurrencyModule.class).add((long) (targetTrade.getCoinAmount() - tradeModule.getCoinAmount())); - tradeModule.getTarget().getModule(PlayerCurrencyModule.class).add((long) (tradeModule.getCoinAmount() - targetTrade.getCoinAmount())); - - for (int i = 0; i < 16; i++) - { - Slot slotA = hostContainer.getSlot(36 + i); - Slot slotB = otherContainer.getSlot(36 + i); - - if (!slotB.getStack().isEmpty()) - { - tradeModule.getEntity().addItemStackToInventory(slotB.getStack().copy()); - slotB.putStack(ItemStack.EMPTY); - } - - if (!slotA.getStack().isEmpty()) - { - targetTrade.getEntity().addItemStackToInventory(slotA.getStack().copy()); - slotA.putStack(ItemStack.EMPTY); - } - } - } - - tradeModule.closeGui(); - targetTrade.closeGui(); - } - else - { - tradeModule.setConfirmed(true); - targetTrade.sendState(3); - statusMessage = "targetconfirm"; - } - } - - if (!statusMessage.isEmpty()) - { - NetworkingAether.sendPacketToPlayer(new PacketTradeMessage("aether.trade.message." + statusMessage), targetTrade.getPlayerMP()); - } - } - - return null; - } - } -} diff --git a/src/main/java/com/gildedgames/aether/common/patron/PatronChoices.java b/src/main/java/com/gildedgames/aether/common/patron/PatronChoices.java deleted file mode 100644 index 7a90ed58e8..0000000000 --- a/src/main/java/com/gildedgames/aether/common/patron/PatronChoices.java +++ /dev/null @@ -1,47 +0,0 @@ -package com.gildedgames.aether.common.patron; - -import com.gildedgames.aether.api.patron.PatronRewardRegistry; -import com.gildedgames.aether.common.capabilities.entity.player.modules.PlayerPatronRewardModule; -import com.gildedgames.aether.common.patron.armor.PatronRewardArmor; -import com.gildedgames.orbis.lib.util.mc.NBT; -import net.minecraft.nbt.NBTTagCompound; - -public class PatronChoices implements NBT -{ - private PatronRewardArmor armorChoice; - - private final PlayerPatronRewardModule parent; - - private final PatronRewardRegistry registry; - - public PatronChoices(PlayerPatronRewardModule parent, PatronRewardRegistry registry) - { - this.parent = parent; - this.registry = registry; - } - - public PatronRewardArmor getArmorChoice() - { - return this.armorChoice; - } - - public void setArmorChoice(PatronRewardArmor armorChoice) - { - if (armorChoice == null || armorChoice.isUnlocked(this.parent.getFeatures())) - { - this.armorChoice = armorChoice; - } - } - - @Override - public void write(NBTTagCompound tag) - { - tag.setInteger("armorChoice", this.registry.get(this.armorChoice)); - } - - @Override - public void read(NBTTagCompound tag) - { - this.armorChoice = this.registry.get(tag.getInteger("armorChoice")); - } -} diff --git a/src/main/java/com/gildedgames/aether/common/patron/PatronRewards.java b/src/main/java/com/gildedgames/aether/common/patron/PatronRewards.java deleted file mode 100644 index 1b127e23d3..0000000000 --- a/src/main/java/com/gildedgames/aether/common/patron/PatronRewards.java +++ /dev/null @@ -1,42 +0,0 @@ -package com.gildedgames.aether.common.patron; - -import com.gildedgames.aether.api.AetherAPI; -import com.gildedgames.aether.api.patron.PatronRewardRegistry; -import com.gildedgames.aether.common.AetherCore; -import com.gildedgames.aether.common.patron.armor.PatronRewardArmor; -import net.minecraft.util.ResourceLocation; - -import static com.gildedgames.aether.api.patron.PatronUnlocks.hasSkin; - -public class PatronRewards -{ - public static ResourceLocation armor(String name) - { - return AetherCore.getResource("textures/armor/patron/" + name + ".png"); - } - - public static ResourceLocation armorIcon(String name) - { - return AetherCore.getResource("textures/patron/armor/" + name + ".png"); - } - - public static void preInit() - { - PatronRewardRegistry r = AetherAPI.content().patronRewards(); - - r.register(0, new PatronRewardArmor("aether.reward.sun_spirit.name", armorIcon("sun_spirit"), "patron/sun_spirit", - armor("sun_spirit_gloves"), - armor("sun_spirit_gloves_slim"), - hasSkin("sun_spirit"))); - - r.register(1, new PatronRewardArmor("aether.reward.slider.name", armorIcon("slider"), "patron/slider", - armor("slider_gloves"), - armor("slider_gloves_slim"), - hasSkin("slider_gloves"))); - - r.register(2, new PatronRewardArmor("aether.reward.valkyrie_queen.name", armorIcon("valkyrie_queen"), "patron/valkyrie_queen", - armor("valkyrie_queen_gloves"), - armor("valkyrie_queen_gloves_slim"), - hasSkin("valkyrie_queen"))); - } -} diff --git a/src/main/java/com/gildedgames/aether/common/patron/armor/PatronRewardArmor.java b/src/main/java/com/gildedgames/aether/common/patron/armor/PatronRewardArmor.java deleted file mode 100644 index 2e9fa723a4..0000000000 --- a/src/main/java/com/gildedgames/aether/common/patron/armor/PatronRewardArmor.java +++ /dev/null @@ -1,95 +0,0 @@ -package com.gildedgames.aether.common.patron.armor; - -import com.gildedgames.aether.api.net.data.UserFeatures; -import com.gildedgames.aether.api.patron.IPatronReward; -import com.gildedgames.aether.api.patron.IPatronRewardRenderer; -import com.gildedgames.aether.client.renderer.PatronRewardArmorRenderer; -import net.minecraft.util.ResourceLocation; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; - -import java.util.function.Function; - -public class PatronRewardArmor implements IPatronReward -{ - private final String armorTextureName; - - private final Function<UserFeatures, Boolean> isUnlocked; - - private final String unlocalizedName; - - private final ResourceLocation armorGloveTexture; - - private final ResourceLocation armorGloveTextureSlim; - - private final ResourceLocation icon; - - @SideOnly(Side.CLIENT) - private IPatronRewardRenderer renderer; - - public PatronRewardArmor(String unlocalizedName, ResourceLocation icon, String armorTextureName, ResourceLocation armorGloveTexture, - ResourceLocation armorGloveTextureSlim, - Function<UserFeatures, Boolean> isUnlocked) - { - this.icon = icon; - this.unlocalizedName = unlocalizedName; - this.armorTextureName = armorTextureName; - this.isUnlocked = isUnlocked; - - this.armorGloveTexture = armorGloveTexture; - this.armorGloveTextureSlim = armorGloveTextureSlim; - } - - public String getArmorTextureName() - { - return this.armorTextureName; - } - - public ResourceLocation getArmorGloveTexture(boolean slim) - { - return slim ? this.armorGloveTextureSlim : this.armorGloveTexture; - } - - @Override - public ResourceLocation getRewardIcon() - { - return this.icon; - } - - @Override - public String getUnlocalizedName() - { - return this.unlocalizedName; - } - - @Override - public boolean isUnlocked(UserFeatures details) - { - return this.isUnlocked.apply(details); - } - - @Override - public void onUse() - { - - } - - @Override - public void onRemove() - { - - } - - @Override - @SideOnly(Side.CLIENT) - public IPatronRewardRenderer getPreviewRenderer() - { - if (this.renderer == null) - { - this.renderer = new PatronRewardArmorRenderer(this); - } - - return this.renderer; - } - -} diff --git a/src/main/java/com/gildedgames/aether/common/player_conditions/PlayerConditionBase.java b/src/main/java/com/gildedgames/aether/common/player_conditions/PlayerConditionBase.java deleted file mode 100644 index ff4f37f14f..0000000000 --- a/src/main/java/com/gildedgames/aether/common/player_conditions/PlayerConditionBase.java +++ /dev/null @@ -1,39 +0,0 @@ -package com.gildedgames.aether.common.player_conditions; - -import com.gildedgames.aether.api.player.conditions.IPlayerCondition; -import com.gildedgames.aether.api.player.conditions.types.IPlayerConditionListener; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.util.ResourceLocation; - -public abstract class PlayerConditionBase implements IPlayerCondition -{ - private IPlayerConditionListener listener; - - public PlayerConditionBase() - { - - } - - protected void triggerCondition(final EntityPlayer player) - { - this.listener.onTriggered(this, player); - } - - @Override - public ResourceLocation getUniqueIdentifier() - { - return null; - } - - @Override - public void listen(final IPlayerConditionListener listener) - { - this.listener = listener; - } - - @Override - public void unlisten(final IPlayerConditionListener listener) - { - this.listener = null; - } -} diff --git a/src/main/java/com/gildedgames/aether/common/player_conditions/PlayerConditionDeserializer.java b/src/main/java/com/gildedgames/aether/common/player_conditions/PlayerConditionDeserializer.java deleted file mode 100644 index b5f6021ae7..0000000000 --- a/src/main/java/com/gildedgames/aether/common/player_conditions/PlayerConditionDeserializer.java +++ /dev/null @@ -1,46 +0,0 @@ -package com.gildedgames.aether.common.player_conditions; - -import com.gildedgames.aether.api.player.conditions.IPlayerCondition; -import com.gildedgames.aether.common.AetherCore; -import com.gildedgames.aether.common.player_conditions.types.PlayerConditionFeedEntity; -import com.gildedgames.aether.common.player_conditions.types.PlayerConditionKillEntity; -import com.gildedgames.aether.common.player_conditions.types.PlayerConditionNone; -import com.gildedgames.aether.common.player_conditions.types.PlayerConditionSeeEntity; -import com.google.gson.*; -import net.minecraft.util.ResourceLocation; - -import java.lang.reflect.Type; -import java.util.HashMap; - -public class PlayerConditionDeserializer implements JsonDeserializer<IPlayerCondition> -{ - private final HashMap<ResourceLocation, Class<? extends IPlayerCondition>> conditions = new HashMap<>(); - - public PlayerConditionDeserializer() - { - this.conditions.put(AetherCore.getResource("seeEntity"), PlayerConditionSeeEntity.class); - this.conditions.put(AetherCore.getResource("feedEntity"), PlayerConditionFeedEntity.class); - this.conditions.put(AetherCore.getResource("killEntity"), PlayerConditionKillEntity.class); - this.conditions.put(AetherCore.getResource("none"), PlayerConditionNone.class); - } - - @Override - public IPlayerCondition deserialize(final JsonElement json, final Type typeOfT, final JsonDeserializationContext context) throws JsonParseException - { - final JsonObject root = json.getAsJsonObject(); - - if (!root.has("type")) - { - throw new JsonParseException("Missing required field 'type' for condition"); - } - - final ResourceLocation type = new ResourceLocation(root.get("type").getAsString()); - - if (!this.conditions.containsKey(type)) - { - throw new JsonParseException("Invalid condition type " + type); - } - - return context.deserialize(json, this.conditions.get(type)); - } -} diff --git a/src/main/java/com/gildedgames/aether/common/player_conditions/PlayerConditionTracker.java b/src/main/java/com/gildedgames/aether/common/player_conditions/PlayerConditionTracker.java deleted file mode 100644 index 3fbc526c66..0000000000 --- a/src/main/java/com/gildedgames/aether/common/player_conditions/PlayerConditionTracker.java +++ /dev/null @@ -1,53 +0,0 @@ -package com.gildedgames.aether.common.player_conditions; - -import com.gildedgames.aether.api.player.IPlayerConditionModule; -import com.gildedgames.aether.api.player.conditions.IPlayerCondition; -import com.gildedgames.aether.api.player.conditions.IPlayerConditionTracker; -import com.gildedgames.aether.api.player.conditions.types.IPlayerConditionListener; -import com.gildedgames.aether.common.capabilities.entity.player.PlayerAether; -import com.gildedgames.aether.common.capabilities.entity.player.modules.PlayerConditionModule; -import com.google.common.collect.Sets; -import net.minecraft.entity.player.EntityPlayer; - -import java.util.Collection; -import java.util.HashSet; - -public class PlayerConditionTracker implements IPlayerConditionTracker, IPlayerConditionListener -{ - private final HashSet<IPlayerCondition> conditions = Sets.newHashSet(); - - @Override - public void trackConditions(final Collection<IPlayerCondition> conditions) - { - for (final IPlayerCondition condition : conditions) - { - if (!this.conditions.contains(condition)) - { - condition.listen(this); - this.conditions.add(condition); - condition.onTracked(); - } - } - } - - @Override - public void unload() - { - for (final IPlayerCondition condition : this.conditions) - { - condition.unlisten(this); - condition.onUntracked(); - } - - this.conditions.clear(); - } - - @Override - public void onTriggered(final IPlayerCondition condition, final EntityPlayer player) - { - final PlayerAether playerAether = PlayerAether.getPlayer(player); - final IPlayerConditionModule module = playerAether.getModule(PlayerConditionModule.class); - - module.flagCondition(condition.getUniqueIdentifier()); - } -} diff --git a/src/main/java/com/gildedgames/aether/common/player_conditions/types/PlayerConditionFeedEntity.java b/src/main/java/com/gildedgames/aether/common/player_conditions/types/PlayerConditionFeedEntity.java deleted file mode 100644 index eacdcadf29..0000000000 --- a/src/main/java/com/gildedgames/aether/common/player_conditions/types/PlayerConditionFeedEntity.java +++ /dev/null @@ -1,160 +0,0 @@ -package com.gildedgames.aether.common.player_conditions.types; - -import com.gildedgames.aether.api.player.IPlayerConditionModule; -import com.gildedgames.aether.api.player.conditions.types.IPlayerConditionEntity; -import com.gildedgames.aether.common.AetherCore; -import com.gildedgames.aether.common.capabilities.entity.player.PlayerAether; -import com.gildedgames.aether.common.capabilities.entity.player.modules.PlayerConditionModule; -import com.gildedgames.aether.common.player_conditions.PlayerConditionBase; -import com.gildedgames.aether.common.util.helpers.EntityUtil; -import com.google.gson.JsonDeserializationContext; -import com.google.gson.JsonDeserializer; -import com.google.gson.JsonElement; -import com.google.gson.JsonParseException; -import net.minecraft.entity.Entity; -import net.minecraft.entity.MultiPartEntityPart; -import net.minecraft.entity.passive.EntityAnimal; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.util.ResourceLocation; -import net.minecraftforge.common.MinecraftForge; -import net.minecraftforge.event.entity.player.PlayerInteractEvent; -import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; -import net.minecraftforge.fml.common.registry.EntityEntry; -import net.minecraftforge.fml.common.registry.ForgeRegistries; -import org.apache.commons.lang3.Validate; - -import java.lang.reflect.Type; -import java.util.Objects; - -public class PlayerConditionFeedEntity extends PlayerConditionBase implements IPlayerConditionEntity -{ - private final ResourceLocation entityId; - - private final EntityEntry entityEntry; - - private final ResourceLocation uniqueId; - - public PlayerConditionFeedEntity(final ResourceLocation entityId) - { - Validate.notNull(entityId, "entityId cannot be null."); - - this.entityId = entityId; - this.entityEntry = ForgeRegistries.ENTITIES.getValue(this.entityId); - - if (this.entityEntry == null) - { - throw new RuntimeException("Entity entry cannot be found with given entityId: " + this.entityId); - } - - this.uniqueId = AetherCore.getResource("feedEntity:" + this.entityId); - } - - @Override - public ResourceLocation getUniqueIdentifier() - { - return this.uniqueId; - } - - @Override - public void onTracked() - { - MinecraftForge.EVENT_BUS.register(this); - } - - @Override - public void onUntracked() - { - MinecraftForge.EVENT_BUS.unregister(this); - } - - @Override - public boolean equals(final Object o) - { - if (this == o) - { - return true; - } - if (o == null || this.getClass() != o.getClass()) - { - return false; - } - final PlayerConditionFeedEntity that = (PlayerConditionFeedEntity) o; - return Objects.equals(this.entityId, that.entityId); - } - - @Override - public int hashCode() - { - return Objects.hash(this.entityId); - } - - @Override - public ResourceLocation getEntityId() - { - return this.entityId; - } - - @Override - public EntityEntry getEntityEntry() - { - return this.entityEntry; - } - - @SubscribeEvent - public void onFeedEntity(final PlayerInteractEvent.EntityInteractSpecific event) - { - Entity entity = event.getTarget(); - - if (!EntityUtil.checkEntityClass(entity, this.entityEntry.getEntityClass())) - { - return; - } - - // Some entities use this, need to check for cast to get parent - if (entity instanceof MultiPartEntityPart) - { - final MultiPartEntityPart multi = (MultiPartEntityPart) entity; - - entity = (Entity) multi.parent; - } - - if (!(entity instanceof EntityAnimal)) - { - return; - } - - final EntityPlayer player = event.getEntityPlayer(); - - final PlayerAether playerAether = PlayerAether.getPlayer(player); - final IPlayerConditionModule module = playerAether.getModule(PlayerConditionModule.class); - - // If already flagged condition, stop - if (module.isConditionFlagged(this.getUniqueIdentifier())) - { - return; - } - - final EntityAnimal animal = (EntityAnimal) entity; - - if (animal.isBreedingItem(player.getHeldItem(event.getHand()))) - { - final int growingAge = animal.getGrowingAge(); - final boolean inLove = animal.isInLove(); - - if (animal.isChild() || (growingAge == 0 && !inLove)) - { - this.triggerCondition(player); - } - } - } - - public static class Deserializer implements JsonDeserializer<PlayerConditionFeedEntity> - { - @Override - public PlayerConditionFeedEntity deserialize(final JsonElement json, final Type typeOfT, final JsonDeserializationContext context) - throws JsonParseException - { - return new PlayerConditionFeedEntity(new ResourceLocation(json.getAsJsonObject().get("entityId").getAsString())); - } - } -} diff --git a/src/main/java/com/gildedgames/aether/common/player_conditions/types/PlayerConditionKillEntity.java b/src/main/java/com/gildedgames/aether/common/player_conditions/types/PlayerConditionKillEntity.java deleted file mode 100644 index 3aa8bdd0b3..0000000000 --- a/src/main/java/com/gildedgames/aether/common/player_conditions/types/PlayerConditionKillEntity.java +++ /dev/null @@ -1,132 +0,0 @@ -package com.gildedgames.aether.common.player_conditions.types; - -import com.gildedgames.aether.api.player.IPlayerConditionModule; -import com.gildedgames.aether.api.player.conditions.types.IPlayerConditionEntity; -import com.gildedgames.aether.common.AetherCore; -import com.gildedgames.aether.common.capabilities.entity.player.PlayerAether; -import com.gildedgames.aether.common.capabilities.entity.player.modules.PlayerConditionModule; -import com.gildedgames.aether.common.player_conditions.PlayerConditionBase; -import com.google.gson.JsonDeserializationContext; -import com.google.gson.JsonDeserializer; -import com.google.gson.JsonElement; -import com.google.gson.JsonParseException; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.util.ResourceLocation; -import net.minecraftforge.common.MinecraftForge; -import net.minecraftforge.event.entity.living.LivingDeathEvent; -import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; -import net.minecraftforge.fml.common.registry.EntityEntry; -import net.minecraftforge.fml.common.registry.ForgeRegistries; -import org.apache.commons.lang3.Validate; - -import java.lang.reflect.Type; -import java.util.Objects; - -public class PlayerConditionKillEntity extends PlayerConditionBase implements IPlayerConditionEntity -{ - private final ResourceLocation entityId; - - private final EntityEntry entityEntry; - - private final ResourceLocation uniqueId; - - public PlayerConditionKillEntity(final ResourceLocation entityId) - { - Validate.notNull(entityId, "entityId cannot be null."); - - this.entityId = entityId; - this.entityEntry = ForgeRegistries.ENTITIES.getValue(this.entityId); - - if (this.entityEntry == null) - { - throw new RuntimeException("Entity entry cannot be found with given entityId: " + this.entityId); - } - - this.uniqueId = AetherCore.getResource("killEntity:" + this.entityId); - } - - @Override - public ResourceLocation getUniqueIdentifier() - { - return this.uniqueId; - } - - @Override - public void onTracked() - { - MinecraftForge.EVENT_BUS.register(this); - } - - @Override - public void onUntracked() - { - MinecraftForge.EVENT_BUS.unregister(this); - } - - @Override - public boolean equals(final Object o) - { - if (this == o) - { - return true; - } - if (o == null || this.getClass() != o.getClass()) - { - return false; - } - final PlayerConditionKillEntity that = (PlayerConditionKillEntity) o; - return Objects.equals(this.entityId, that.entityId); - } - - @Override - public int hashCode() - { - return Objects.hash(this.entityId); - } - - @Override - public ResourceLocation getEntityId() - { - return this.entityId; - } - - @Override - public EntityEntry getEntityEntry() - { - return this.entityEntry; - } - - @SubscribeEvent - public void onKillEntity(final LivingDeathEvent event) - { - final EntityLivingBase entity = event.getEntityLiving(); - - if (entity.getClass() != this.entityEntry.getEntityClass() || !(event.getSource().getTrueSource() instanceof EntityPlayer)) - { - return; - } - - final EntityPlayer player = (EntityPlayer) event.getSource().getTrueSource(); - - final PlayerAether playerAether = PlayerAether.getPlayer(player); - final IPlayerConditionModule module = playerAether.getModule(PlayerConditionModule.class); - - if (module.isConditionFlagged(this.getUniqueIdentifier())) - { - return; - } - - this.triggerCondition(player); - } - - public static class Deserializer implements JsonDeserializer<PlayerConditionKillEntity> - { - @Override - public PlayerConditionKillEntity deserialize(final JsonElement json, final Type typeOfT, final JsonDeserializationContext context) - throws JsonParseException - { - return new PlayerConditionKillEntity(new ResourceLocation(json.getAsJsonObject().get("entityId").getAsString())); - } - } -} diff --git a/src/main/java/com/gildedgames/aether/common/player_conditions/types/PlayerConditionNone.java b/src/main/java/com/gildedgames/aether/common/player_conditions/types/PlayerConditionNone.java deleted file mode 100644 index d2a7f1c251..0000000000 --- a/src/main/java/com/gildedgames/aether/common/player_conditions/types/PlayerConditionNone.java +++ /dev/null @@ -1,40 +0,0 @@ -package com.gildedgames.aether.common.player_conditions.types; - -import com.gildedgames.aether.common.player_conditions.PlayerConditionBase; -import com.google.gson.JsonDeserializationContext; -import com.google.gson.JsonDeserializer; -import com.google.gson.JsonElement; -import com.google.gson.JsonParseException; -import net.minecraftforge.common.MinecraftForge; - -import java.lang.reflect.Type; - -public class PlayerConditionNone extends PlayerConditionBase -{ - public PlayerConditionNone() - { - - } - - @Override - public void onTracked() - { - MinecraftForge.EVENT_BUS.register(this); - } - - @Override - public void onUntracked() - { - MinecraftForge.EVENT_BUS.unregister(this); - } - - public static class Deserializer implements JsonDeserializer<PlayerConditionNone> - { - @Override - public PlayerConditionNone deserialize(final JsonElement json, final Type typeOfT, final JsonDeserializationContext context) - throws JsonParseException - { - return new PlayerConditionNone(); - } - } -} diff --git a/src/main/java/com/gildedgames/aether/common/player_conditions/types/PlayerConditionSeeEntity.java b/src/main/java/com/gildedgames/aether/common/player_conditions/types/PlayerConditionSeeEntity.java deleted file mode 100644 index 2c55789aba..0000000000 --- a/src/main/java/com/gildedgames/aether/common/player_conditions/types/PlayerConditionSeeEntity.java +++ /dev/null @@ -1,126 +0,0 @@ -package com.gildedgames.aether.common.player_conditions.types; - -import com.gildedgames.aether.api.player.IPlayerConditionModule; -import com.gildedgames.aether.api.player.conditions.events.ISeeEntityEventsListener; -import com.gildedgames.aether.api.player.conditions.types.IPlayerConditionEntity; -import com.gildedgames.aether.common.AetherCore; -import com.gildedgames.aether.common.capabilities.entity.player.PlayerAether; -import com.gildedgames.aether.common.capabilities.entity.player.modules.PlayerConditionModule; -import com.gildedgames.aether.common.player_conditions.PlayerConditionBase; -import com.google.gson.JsonDeserializationContext; -import com.google.gson.JsonDeserializer; -import com.google.gson.JsonElement; -import com.google.gson.JsonParseException; -import net.minecraft.entity.Entity; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.util.ResourceLocation; -import net.minecraftforge.fml.common.registry.EntityEntry; -import net.minecraftforge.fml.common.registry.ForgeRegistries; -import org.apache.commons.lang3.Validate; - -import java.lang.reflect.Type; -import java.util.Objects; - -public class PlayerConditionSeeEntity extends PlayerConditionBase implements IPlayerConditionEntity, ISeeEntityEventsListener -{ - private final ResourceLocation entityId; - - private final EntityEntry entityEntry; - - private final ResourceLocation uniqueId; - - public PlayerConditionSeeEntity(final ResourceLocation entityId) - { - Validate.notNull(entityId, "entityId cannot be null."); - - this.entityId = entityId; - this.entityEntry = ForgeRegistries.ENTITIES.getValue(this.entityId); - - if (this.entityEntry == null) - { - throw new RuntimeException("Entity entry cannot be found with given entityId: " + this.entityId); - } - - this.uniqueId = AetherCore.getResource("seeEntity:" + this.entityId); - } - - @Override - public ResourceLocation getUniqueIdentifier() - { - return this.uniqueId; - } - - @Override - public void onTracked() - { - AetherCore.PROXY.content().seeEntityEvents().listen(this); - } - - @Override - public void onUntracked() - { - AetherCore.PROXY.content().seeEntityEvents().unlisten(this); - } - - @Override - public boolean equals(final Object o) - { - if (this == o) - { - return true; - } - if (o == null || this.getClass() != o.getClass()) - { - return false; - } - final PlayerConditionSeeEntity that = (PlayerConditionSeeEntity) o; - return Objects.equals(this.entityId, that.entityId); - } - - @Override - public int hashCode() - { - return Objects.hash(this.entityId); - } - - @Override - public ResourceLocation getEntityId() - { - return this.entityId; - } - - @Override - public EntityEntry getEntityEntry() - { - return this.entityEntry; - } - - @Override - public void onSeeEntity(final Entity entity, final EntityPlayer player) - { - if (entity.getClass() != this.entityEntry.getEntityClass()) - { - return; - } - - final PlayerAether playerAether = PlayerAether.getPlayer(player); - final IPlayerConditionModule module = playerAether.getModule(PlayerConditionModule.class); - - if (module.isConditionFlagged(this.getUniqueIdentifier())) - { - return; - } - - this.triggerCondition(player); - } - - public static class Deserializer implements JsonDeserializer<PlayerConditionSeeEntity> - { - @Override - public PlayerConditionSeeEntity deserialize(final JsonElement json, final Type typeOfT, final JsonDeserializationContext context) - throws JsonParseException - { - return new PlayerConditionSeeEntity(new ResourceLocation(json.getAsJsonObject().get("entityId").getAsString())); - } - } -} diff --git a/src/main/java/com/gildedgames/aether/common/recipes/CoolerRecipes.java b/src/main/java/com/gildedgames/aether/common/recipes/CoolerRecipes.java deleted file mode 100644 index c56b161477..0000000000 --- a/src/main/java/com/gildedgames/aether/common/recipes/CoolerRecipes.java +++ /dev/null @@ -1,171 +0,0 @@ -package com.gildedgames.aether.common.recipes; - -import com.gildedgames.aether.api.registrar.ItemsAether; -import com.gildedgames.aether.common.AetherCore; -import com.gildedgames.aether.common.util.selectors.ItemEntry; -import com.google.common.collect.Maps; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.util.WeightedRandom; - -import java.util.ArrayList; -import java.util.List; -import java.util.Map; -import java.util.Map.Entry; -import java.util.Random; - -public class CoolerRecipes -{ - private static final CoolerRecipes COOLING_BASE = new CoolerRecipes(); - - private final Map<Map<ItemStack, ItemStack>, Map<ItemStack, Integer>[]> coolingList = Maps.newHashMap(); - - private final Map<Map<ItemStack, ItemStack>, ItemStack> outputList = Maps.newHashMap(); - - private final Random rand = new Random(); - - public static CoolerRecipes instance() - { - return COOLING_BASE; - } - - public void addCoolingFromItem(Item input, Item inputSecondary, ItemStack outputSecondary, Map<ItemStack, Integer>... stackList) - { - Map<ItemStack, ItemStack> map = Maps.newHashMap(); - map.put(new ItemStack(input, 1, 32767), new ItemStack(inputSecondary, 1, 32767)); - - this.addCoolingRecipe(map, outputSecondary, stackList); - } - - public void addCoolingRecipe(Map<ItemStack, ItemStack> inputMap, ItemStack outputSecondary, Map<ItemStack, Integer>... stackList) - { - for (Entry<ItemStack, ItemStack> entry : inputMap.entrySet()) - { - if (this.getCoolingResult(entry.getKey(), entry.getValue()) != ItemStack.EMPTY) - { - AetherCore.LOGGER.warn("Ignored cooling recipe with conflicting input: " + inputMap + stackList[0]); - return; - } - } - - this.outputList.put(inputMap, outputSecondary); - this.coolingList.put(inputMap, stackList); - } - - public ItemStack getPrimaryOutput(ItemStack stack) - { - for (Entry<Map<ItemStack, ItemStack>, Map<ItemStack, Integer>[]> entry : this.coolingList.entrySet()) - { - for (Entry<ItemStack, ItemStack> entryInput : entry.getKey().entrySet()) - { - if (this.compareItemStacks(stack, entryInput.getKey())) - { - List<ItemEntry> outputEntries = new ArrayList<>(); - - for (Map<ItemStack, Integer> map : entry.getValue()) - { - for (Entry<ItemStack, Integer> mapEntry : map.entrySet()) - { - outputEntries.add(new ItemEntry(mapEntry.getKey().getItem(), mapEntry.getValue())); - } - } - - ItemEntry itemEntry = WeightedRandom.getRandomItem(this.rand, outputEntries); - if (itemEntry.getItem() != null) - { - return new ItemStack(itemEntry.getItem()); - } - } - } - } - return ItemStack.EMPTY; - } - - public ItemStack getSecondaryOutput(ItemStack stack) - { - for (Entry<Map<ItemStack, ItemStack>, ItemStack> entry : this.outputList.entrySet()) - { - for (Entry<ItemStack, ItemStack> entryInput : entry.getKey().entrySet()) - { - if (this.compareItemStacks(stack, entryInput.getKey())) - { - return entry.getValue(); - } - } - } - return ItemStack.EMPTY; - } - - public ItemStack getSecondaryInputForSlot(ItemStack stack) - { - for (Entry<Map<ItemStack, ItemStack>, Map<ItemStack, Integer>[]> entry : this.coolingList.entrySet()) - { - for (Entry<ItemStack, ItemStack> entryInput : entry.getKey().entrySet()) - { - if (this.compareItemStacks(stack, entryInput.getValue())) - { - return entryInput.getValue(); - } - } - } - return ItemStack.EMPTY; - } - - public ItemStack getSecondaryInput(ItemStack stack) - { - for (Entry<Map<ItemStack, ItemStack>, Map<ItemStack, Integer>[]> entry : this.coolingList.entrySet()) - { - for (Entry<ItemStack, ItemStack> entryInput : entry.getKey().entrySet()) - { - if (this.compareItemStacks(stack, entryInput.getKey())) - { - return entryInput.getValue(); - } - } - } - return ItemStack.EMPTY; - } - - public ItemStack getCoolingResult(ItemStack stack, ItemStack stackSecondary) - { - for (Entry<Map<ItemStack, ItemStack>, Map<ItemStack, Integer>[]> entry : this.coolingList.entrySet()) - { - for (Entry<ItemStack, ItemStack> entryInput : entry.getKey().entrySet()) - { - if (this.compareItemStacks(stack, entryInput.getKey())) - { - if (this.compareItemStacks(stackSecondary, entryInput.getValue())) - { - List<ItemEntry> outputEntries = new ArrayList<>(); - - for (Map<ItemStack, Integer> map : entry.getValue()) - { - for (Entry<ItemStack, Integer> mapEntry : map.entrySet()) - { - outputEntries.add(new ItemEntry(mapEntry.getKey().getItem(), mapEntry.getValue())); - } - } - - ItemEntry itemEntry = WeightedRandom.getRandomItem(this.rand, outputEntries); - if (itemEntry.getItem() != null) - { - return new ItemStack(itemEntry.getItem()); - } - } - } - } - } - return ItemStack.EMPTY; - } - - public Map<Map<ItemStack, ItemStack>, Map<ItemStack, Integer>[]> getCoolingList() - { - return this.coolingList; - } - - private boolean compareItemStacks(ItemStack stack, ItemStack toCompare) - { - return toCompare.getItem() == stack.getItem() && (toCompare.getMetadata() == 32767 || toCompare.getMetadata() == stack.getMetadata()); - } - -} diff --git a/src/main/java/com/gildedgames/aether/common/recipes/MasonryRecipes.java b/src/main/java/com/gildedgames/aether/common/recipes/MasonryRecipes.java deleted file mode 100644 index 6f87dc1a6c..0000000000 --- a/src/main/java/com/gildedgames/aether/common/recipes/MasonryRecipes.java +++ /dev/null @@ -1,59 +0,0 @@ -package com.gildedgames.aether.common.recipes; - -import com.gildedgames.aether.api.registrar.BlocksAether; -import com.gildedgames.aether.common.blocks.decorative.BlockHolystoneDecorative; -import com.google.common.collect.Maps; -import net.minecraft.block.Block; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; - -import java.util.Map; - -public class MasonryRecipes -{ - private static final MasonryRecipes MASONRY_BASE = new MasonryRecipes(); - - private final Map<ItemStack, ItemStack[]> masonryList = Maps.newHashMap(); - - public static MasonryRecipes instance() - { - return MASONRY_BASE; - } - - public void addMasonry(Block input, ItemStack... stack) - { - this.addMasonryRecipe(new ItemStack(input, 1, 32767), stack); - } - public void addMasonryItem(Item input, ItemStack... stack) - { - this.addMasonryRecipe(new ItemStack(input, 1, 32767), stack); - } - - public void addMasonryRecipe(ItemStack input, ItemStack... stack) - { - this.masonryList.put(input, stack); - } - - public ItemStack[] getOutput(ItemStack stack) - { - for (Map.Entry<ItemStack, ItemStack[]> entry : this.masonryList.entrySet()) - { - if (this.compareItemStacks(stack, entry.getKey())) - { - return entry.getValue(); - } - } - - return null; - } - - public Map<ItemStack, ItemStack[]> getMasonryList() - { - return this.masonryList; - } - - private boolean compareItemStacks(ItemStack stack, ItemStack toCompare) - { - return toCompare.getItem() == stack.getItem() && (toCompare.getMetadata() == 32767 || toCompare.getMetadata() == stack.getMetadata()); - } -} diff --git a/src/main/java/com/gildedgames/aether/common/recipes/RecipePresentCrafting.java b/src/main/java/com/gildedgames/aether/common/recipes/RecipePresentCrafting.java deleted file mode 100644 index 6a10ecd0e2..0000000000 --- a/src/main/java/com/gildedgames/aether/common/recipes/RecipePresentCrafting.java +++ /dev/null @@ -1,112 +0,0 @@ -package com.gildedgames.aether.common.recipes; - -import com.gildedgames.aether.api.registrar.BlocksAether; -import com.gildedgames.aether.api.registrar.ItemsAether; -import com.gildedgames.aether.common.items.blocks.ItemBlockPresent; -import com.gildedgames.aether.common.items.other.ItemWrappingPaper; -import net.minecraft.inventory.InventoryCrafting; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.item.crafting.IRecipe; -import net.minecraft.item.crafting.Ingredient; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.util.NonNullList; -import net.minecraft.world.World; -import net.minecraftforge.common.ForgeHooks; -import net.minecraftforge.common.crafting.CraftingHelper; -import net.minecraftforge.registries.IForgeRegistryEntry; - -//TODO: -public class RecipePresentCrafting extends IForgeRegistryEntry.Impl<IRecipe> implements IRecipe -{ - private static final NonNullList<Ingredient> ingredients = CraftingHelper - .parseShaped("PPP", "P P", "PPP", 'P', new ItemStack(ItemsAether.wrapping_paper)).input; - - @Override - public boolean matches(final InventoryCrafting inventory, final World world) - { - ItemWrappingPaper.PresentDyeData masterDye = null; - - for (int i = 0; i < inventory.getSizeInventory(); i++) - { - if (i == 4) - { - continue; - } - - final ItemStack stack = inventory.getStackInSlot(i); - - if (stack.getItem() != ItemsAether.wrapping_paper) - { - return false; - } - - final ItemWrappingPaper.PresentDyeData dye = ItemWrappingPaper.PresentDyeData.readFromNBT(stack.getTagCompound()); - - if (masterDye != null) - { - if (dye.getBowColor() != masterDye.getBowColor() || dye.getBoxColor() != masterDye.getBoxColor()) - { - return false; - } - } - - masterDye = dye; - } - - final ItemStack centerItem = inventory.getStackInSlot(4); - - return centerItem.getItem() != Item.getItemFromBlock(BlocksAether.present); - } - - @Override - public ItemStack getCraftingResult(final InventoryCrafting inventory) - { - final ItemStack stack = inventory.getStackInSlot(4).copy(); - stack.setCount(1); - - final ItemWrappingPaper.PresentDyeData dye = ItemWrappingPaper.getDyeData(inventory.getStackInSlot(0)); - - final ItemBlockPresent.PresentData data = new ItemBlockPresent.PresentData(); - data.setStack(stack); - data.setDye(dye); - - final ItemStack present = new ItemStack(BlocksAether.present); - present.setTagCompound(data.writeToNBT(new NBTTagCompound())); - - return present; - } - - @Override - public boolean canFit(final int width, final int height) - { - return width >= 3 && height >= 3; - } - - @Override - public ItemStack getRecipeOutput() - { - return new ItemStack(BlocksAether.present); - } - - @Override - public NonNullList<Ingredient> getIngredients() - { - return ingredients; - } - - @Override - public NonNullList<ItemStack> getRemainingItems(final InventoryCrafting inv) - { - final NonNullList<ItemStack> stacks = NonNullList.withSize(inv.getSizeInventory(), ItemStack.EMPTY); - - for (int i = 0; i < stacks.size(); ++i) - { - final ItemStack stack = inv.getStackInSlot(i); - - stacks.set(i, ForgeHooks.getContainerItem(stack)); - } - - return stacks; - } -} diff --git a/src/main/java/com/gildedgames/aether/common/recipes/RecipeWrappingPaper.java b/src/main/java/com/gildedgames/aether/common/recipes/RecipeWrappingPaper.java deleted file mode 100644 index fd20dca365..0000000000 --- a/src/main/java/com/gildedgames/aether/common/recipes/RecipeWrappingPaper.java +++ /dev/null @@ -1,133 +0,0 @@ -package com.gildedgames.aether.common.recipes; - -import com.gildedgames.aether.api.registrar.ItemsAether; -import com.gildedgames.aether.common.items.other.ItemWrappingPaper; -import net.minecraft.init.Items; -import net.minecraft.inventory.InventoryCrafting; -import net.minecraft.item.ItemDye; -import net.minecraft.item.ItemStack; -import net.minecraft.item.crafting.IRecipe; -import net.minecraft.item.crafting.Ingredient; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.util.NonNullList; -import net.minecraft.world.World; -import net.minecraftforge.common.ForgeHooks; -import net.minecraftforge.common.crafting.CraftingHelper; -import net.minecraftforge.oredict.OreDictionary; -import net.minecraftforge.registries.IForgeRegistryEntry; - -//TODO: COMPLETELY WRONG, RECIPE SYSTEM CHANGED -public class RecipeWrappingPaper extends IForgeRegistryEntry.Impl<IRecipe> implements IRecipe -{ - private static final NonNullList<Ingredient> ingredients = CraftingHelper.parseShaped(" 1 ", " P ", " 2 ", - '1', new ItemStack(Items.DYE, 1, OreDictionary.WILDCARD_VALUE), - '2', new ItemStack(Items.DYE, 1, OreDictionary.WILDCARD_VALUE), - 'P', new ItemStack(Items.PAPER)).input; - - @Override - public boolean matches(final InventoryCrafting inventory, final World world) - { - int paperLoc = -1; - - for (int i = 3; i < (inventory.getSizeInventory() - 3); i++) - { - final ItemStack stack = inventory.getStackInSlot(i); - - if (stack.getItem() == Items.PAPER) - { - if (paperLoc != -1) - { - return false; - } - - paperLoc = i; - } - } - if (paperLoc < 0 || paperLoc > 8) - { - return false; - } - - final ItemStack bowDye = inventory.getStackInSlot(paperLoc - 3); - final ItemStack boxDye = inventory.getStackInSlot(paperLoc + 3); - - return this.isValidDye(bowDye) && this.isValidDye(boxDye); - } - - private boolean isValidDye(final ItemStack stack) - { - return stack != null && stack.getItem() instanceof ItemDye; - } - - @Override - public ItemStack getCraftingResult(final InventoryCrafting inventory) - { - int paperLoc = -1; - - for (int i = 3; i < (inventory.getSizeInventory() - 3); i++) - { - final ItemStack stack = inventory.getStackInSlot(i); - - if (stack.getItem() == Items.PAPER) - { - paperLoc = i; - - break; - } - } - - final ItemStack bowDye = inventory.getStackInSlot(paperLoc - 3); - final ItemStack boxDye = inventory.getStackInSlot(paperLoc + 3); - - final ItemWrappingPaper.PresentDyeData data = new ItemWrappingPaper.PresentDyeData(); - - if (!bowDye.isEmpty()) - { - data.setBowColor((byte) bowDye.getMetadata()); - } - - if (!boxDye.isEmpty()) - { - data.setBoxColor((byte) boxDye.getMetadata()); - } - - final ItemStack output = new ItemStack(ItemsAether.wrapping_paper, 8); - - output.setTagCompound(new NBTTagCompound()); - data.writeToNBT(output.getTagCompound()); - - return output; - } - - @Override - public NonNullList<Ingredient> getIngredients() - { - return ingredients; - } - - @Override - public boolean canFit(final int width, final int height) - { - return width >= 1 && height >= 3; - } - - @Override - public ItemStack getRecipeOutput() - { - return new ItemStack(ItemsAether.wrapping_paper, 8); - } - - @Override - public NonNullList<ItemStack> getRemainingItems(final InventoryCrafting inv) - { - final NonNullList<ItemStack> stacks = NonNullList.withSize(inv.getSizeInventory(), ItemStack.EMPTY); - - for (int i = 0; i < stacks.size(); ++i) - { - final ItemStack stack = inv.getStackInSlot(i); - stacks.set(i, ForgeHooks.getContainerItem(stack)); - } - - return stacks; - } -} diff --git a/src/main/java/com/gildedgames/aether/common/recipes/altar/AltarEnchantRecipe.java b/src/main/java/com/gildedgames/aether/common/recipes/altar/AltarEnchantRecipe.java deleted file mode 100644 index f7de91f739..0000000000 --- a/src/main/java/com/gildedgames/aether/common/recipes/altar/AltarEnchantRecipe.java +++ /dev/null @@ -1,51 +0,0 @@ -package com.gildedgames.aether.common.recipes.altar; - -import com.gildedgames.aether.api.recipes.altar.IAltarRecipe; -import com.gildedgames.aether.common.util.helpers.ItemHelper; -import net.minecraft.item.ItemStack; - -public class AltarEnchantRecipe implements IAltarRecipe -{ - private final int cost; - - private final ItemStack output; - - private final ItemStack input; - - public AltarEnchantRecipe(int cost, ItemStack input, ItemStack output) - { - this.cost = cost; - this.input = input; - this.output = output; - } - - @Override - public boolean matchesInput(ItemStack stack) - { - return ItemHelper.areEqual(this.input, stack); - } - - @Override - public boolean matchesOutput(ItemStack stack) - { - return ItemHelper.areEqual(this.output, stack); - } - - @Override - public int getAmbrosiumCost(ItemStack stack) - { - return this.cost; - } - - @Override - public ItemStack getOutput(ItemStack stack) - { - return this.output.copy(); - } - - @Override - public ItemStack getInput() - { - return this.input; - } -} diff --git a/src/main/java/com/gildedgames/aether/common/recipes/altar/AltarRecipeRegistry.java b/src/main/java/com/gildedgames/aether/common/recipes/altar/AltarRecipeRegistry.java deleted file mode 100644 index e831242b44..0000000000 --- a/src/main/java/com/gildedgames/aether/common/recipes/altar/AltarRecipeRegistry.java +++ /dev/null @@ -1,46 +0,0 @@ -package com.gildedgames.aether.common.recipes.altar; - -import com.gildedgames.aether.api.recipes.altar.IAltarRecipe; -import com.gildedgames.aether.api.recipes.altar.IAltarRecipeRegistry; -import net.minecraft.item.ItemStack; - -import java.util.ArrayList; - -public class AltarRecipeRegistry implements IAltarRecipeRegistry -{ - private final ArrayList<IAltarRecipe> altarRecipes = new ArrayList<>(); - - @Override - public void registerAltarRecipe(IAltarRecipe recipe) - { - this.altarRecipes.add(recipe); - } - - @Override - public IAltarRecipe getMatchingRecipeFromInput(ItemStack stack) - { - for (IAltarRecipe recipe : this.altarRecipes) - { - if (recipe.matchesInput(stack)) - { - return recipe; - } - } - - return null; - } - - @Override - public IAltarRecipe getMatchingRecipeFromOutput(ItemStack stack) - { - for (IAltarRecipe recipe : this.altarRecipes) - { - if (recipe.matchesOutput(stack)) - { - return recipe; - } - } - - return null; - } -} diff --git a/src/main/java/com/gildedgames/aether/common/recipes/altar/AltarRepairRecipe.java b/src/main/java/com/gildedgames/aether/common/recipes/altar/AltarRepairRecipe.java deleted file mode 100644 index 66a96b4e2d..0000000000 --- a/src/main/java/com/gildedgames/aether/common/recipes/altar/AltarRepairRecipe.java +++ /dev/null @@ -1,102 +0,0 @@ -package com.gildedgames.aether.common.recipes.altar; - -import com.gildedgames.aether.api.recipes.altar.IAltarRecipe; -import com.gildedgames.aether.common.init.MaterialsAether; -import com.gildedgames.aether.common.items.armor.ItemAetherShield; -import com.gildedgames.aether.common.items.tools.ItemArkeniumShears; -import com.gildedgames.aether.common.items.weapons.crossbow.ItemCrossbow; -import net.minecraft.item.*; - -public class AltarRepairRecipe implements IAltarRecipe -{ - @Override - public boolean matchesInput(final ItemStack stack) - { - return (stack.getItem() instanceof ItemSword - || stack.getItem() instanceof ItemTool - || stack.getItem() instanceof ItemArmor - || stack.getItem() instanceof ItemShears - || stack.getItem() instanceof ItemArkeniumShears - || stack.getItem() instanceof ItemCrossbow - || stack.getItem() instanceof ItemBow - || stack.getItem() instanceof ItemAetherShield - || stack.getItem() instanceof ItemShield - ) && stack.isItemDamaged(); - } - - @Override - public boolean matchesOutput(ItemStack stack) - { - return false; - } - - @Override - public int getAmbrosiumCost(final ItemStack stack) - { - if (stack.getItem() instanceof ItemSword || stack.getItem() instanceof ItemCrossbow || stack.getItem() instanceof ItemBow || stack.getItem() instanceof ItemAetherShield || stack.getItem() instanceof ItemShield) - { - return 6; - } - else if (stack.getItem() instanceof ItemTool) - { - final ItemTool tool = (ItemTool) stack.getItem(); - - switch (tool.getToolMaterialName()) - { - case "WOOD": - return 2; - case "STONE": - return 3; - case "IRON": - return 4; - case "DIAMOND": - return 5; - case "GOLD": - return 3; - } - } - else if (stack.getItem() instanceof ItemArmor) - { - final ItemArmor armor = (ItemArmor) stack.getItem(); - - switch (armor.getArmorMaterial()) - { - case LEATHER: - return 2; - case IRON: - return 3; - case GOLD: - return 3; - case CHAIN: - return 3; - case DIAMOND: - return 5; - } - - if (armor.getArmorMaterial() == MaterialsAether.LEGENDARY_ARMOR || armor.getArmorMaterial() == MaterialsAether.VALKYRIE_ARMOR) - { - return 6; - } - } - else if (stack.getItem() instanceof ItemShears || stack.getItem() instanceof ItemArkeniumShears) - { - return 4; - } - - return 5; - } - - @Override - public ItemStack getOutput(final ItemStack stack) - { - stack.setItemDamage(0); - - return stack; - } - - @Override - public ItemStack getInput() - { - return null; - } -} diff --git a/src/main/java/com/gildedgames/aether/common/recipes/simple/OreDictionaryRequirement.java b/src/main/java/com/gildedgames/aether/common/recipes/simple/OreDictionaryRequirement.java deleted file mode 100644 index 25860edb08..0000000000 --- a/src/main/java/com/gildedgames/aether/common/recipes/simple/OreDictionaryRequirement.java +++ /dev/null @@ -1,67 +0,0 @@ -package com.gildedgames.aether.common.recipes.simple; - -import net.minecraft.item.ItemStack; -import net.minecraftforge.oredict.OreDictionary; - -public class OreDictionaryRequirement -{ - - private final String key; - - private int count; - - public OreDictionaryRequirement(String key, int count) - { - this.key = key; - this.count = count; - } - - public String getKey() - { - return this.key; - } - - public int getCount() - { - return this.count; - } - - public void addCount(int count) - { - this.count += count; - } - - public boolean matches(ItemStack stack) - { - int[] stackIds = OreDictionary.getOreIDs(stack); - int ore = OreDictionary.getOreID(this.getKey()); - - for (int id : stackIds) - { - if (ore == id) - { - return true; - } - } - - return false; - } - - @Override - public boolean equals(Object obj) - { - if (this == obj) - { - return true; - } - - if (obj == null || this.getClass() != obj.getClass()) - { - return false; - } - - OreDictionaryRequirement other = (OreDictionaryRequirement) obj; - - return OreDictionary.getOreID(other.getKey()) == OreDictionary.getOreID(this.getKey()); - } -} diff --git a/src/main/java/com/gildedgames/aether/common/recipes/simple/RecipeIndexRegistry.java b/src/main/java/com/gildedgames/aether/common/recipes/simple/RecipeIndexRegistry.java deleted file mode 100644 index 2461c4b85b..0000000000 --- a/src/main/java/com/gildedgames/aether/common/recipes/simple/RecipeIndexRegistry.java +++ /dev/null @@ -1,80 +0,0 @@ -package com.gildedgames.aether.common.recipes.simple; - -import com.gildedgames.aether.api.recipes.IIndexableRecipe; -import com.gildedgames.aether.api.registry.recipes.IRecipeIndexRegistry; -import com.gildedgames.aether.api.util.ItemMetaPair; -import com.gildedgames.aether.common.util.helpers.ItemHelper; -import net.minecraft.item.ItemStack; -import org.apache.commons.lang3.Validate; - -import java.util.*; - -public class RecipeIndexRegistry implements IRecipeIndexRegistry -{ - private static final Collection<IIndexableRecipe> EMPTY = Collections.emptyList(); - - private final Map<ItemMetaPair, Collection<IIndexableRecipe>> cache = new HashMap<>(); - - private final Map<Integer, Collection<IIndexableRecipe>> resultCache = new HashMap<>(); - - @Override - public void clearRegistrations() - { - this.cache.clear(); - this.resultCache.clear(); - } - - @Override - public void registerRecipe(IIndexableRecipe recipe) - { - Validate.notNull(recipe); - - for (ItemMetaPair item : recipe.getRecipeItems()) - { - Collection<IIndexableRecipe> group = this.cache.computeIfAbsent(item, k -> new ArrayList<>()); - group.add(recipe); - } - - Collection<IIndexableRecipe> group = this.resultCache - .computeIfAbsent(ItemHelper.getKeyForItemStack(recipe.getCraftingResult()), k -> new ArrayList<>()); - group.add(recipe); - } - - @Override - public int getIndexSize() - { - return this.cache.size(); - } - - @Override - public Collection<IIndexableRecipe> getRecipesContainingIngredient(ItemStack stack) - { - ItemMetaPair pair = new ItemMetaPair(stack); - - for (Map.Entry<ItemMetaPair, Collection<IIndexableRecipe>> entry : this.cache.entrySet()) - { - if (entry.getKey().equals(pair)) - { - return entry.getValue(); - } - } - - return EMPTY; - } - - @Override - public Collection<IIndexableRecipe> getRecipesContainingResult(ItemStack item) - { - int hash = ItemHelper.getKeyForItemStack(item); - - for (Map.Entry<Integer, Collection<IIndexableRecipe>> entry : this.resultCache.entrySet()) - { - if (entry.getKey().equals(hash)) - { - return entry.getValue(); - } - } - - return EMPTY; - } -} diff --git a/src/main/java/com/gildedgames/aether/common/recipes/simple/RecipeWrapper.java b/src/main/java/com/gildedgames/aether/common/recipes/simple/RecipeWrapper.java deleted file mode 100644 index 10be4d2bde..0000000000 --- a/src/main/java/com/gildedgames/aether/common/recipes/simple/RecipeWrapper.java +++ /dev/null @@ -1,55 +0,0 @@ -package com.gildedgames.aether.common.recipes.simple; - -import com.gildedgames.aether.api.recipes.IIndexableRecipe; -import com.gildedgames.aether.api.util.ItemMetaPair; -import net.minecraft.item.ItemStack; -import net.minecraft.item.crafting.IRecipe; -import net.minecraft.item.crafting.Ingredient; -import net.minecraft.util.NonNullList; -import org.apache.commons.lang3.Validate; - -import java.util.Collection; -import java.util.HashSet; -import java.util.Set; - -public class RecipeWrapper implements IIndexableRecipe -{ - private final IRecipe recipe; - - private final Set<ItemMetaPair> unique; - - public RecipeWrapper(final IRecipe recipe) - { - Validate.notNull(recipe.getRecipeOutput(), "Recipe is missing output stack"); - Validate.notEmpty(recipe.getIngredients(), "Recipe is missing inputs"); - - this.recipe = recipe; - this.unique = new HashSet<>(); - - for (final Ingredient ingredient : this.recipe.getIngredients()) - { - for (ItemStack stack : ingredient.getMatchingStacks()) - { - this.unique.add(new ItemMetaPair(stack)); - } - } - } - - @Override - public NonNullList<Ingredient> getCraftingMatrix() - { - return this.recipe.getIngredients(); - } - - @Override - public Collection<ItemMetaPair> getRecipeItems() - { - return this.unique; - } - - @Override - public ItemStack getCraftingResult() - { - return this.recipe.getRecipeOutput(); - } -} diff --git a/src/main/java/com/gildedgames/aether/common/recipes/simple/SimpleCraftingRegistry.java b/src/main/java/com/gildedgames/aether/common/recipes/simple/SimpleCraftingRegistry.java deleted file mode 100644 index 20677c6e59..0000000000 --- a/src/main/java/com/gildedgames/aether/common/recipes/simple/SimpleCraftingRegistry.java +++ /dev/null @@ -1,188 +0,0 @@ -package com.gildedgames.aether.common.recipes.simple; - -import com.gildedgames.aether.api.recipes.simple.ISimpleCraftingRegistry; -import com.gildedgames.aether.api.recipes.simple.ISimpleRecipe; -import com.gildedgames.aether.api.recipes.simple.ISimpleRecipeGroup; -import com.google.common.collect.HashBiMap; -import com.google.common.collect.Lists; -import com.google.common.collect.Maps; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraftforge.oredict.OreDictionary; - -import java.util.*; - -public class SimpleCraftingRegistry implements ISimpleCraftingRegistry -{ - - private final HashBiMap<Integer, ISimpleRecipe> recipes = HashBiMap.create(); - - private final Map<Integer, ISimpleRecipeGroup> stackLookup = Maps.newHashMap(); - - private final Map<String, ISimpleRecipeGroup> oreDictionaryLookup = Maps.newHashMap(); - - private int id; - - @Override - public Collection<ISimpleRecipe> getAllRecipes() - { - return Collections.unmodifiableCollection(this.recipes.values()); - } - - @Override - public void registerRecipe(ISimpleRecipe recipe) - { - this.recipes.put(this.id, recipe); - - this.id++; - } - - public void finalizeRecipes() - { - this.stackLookup.clear(); - this.oreDictionaryLookup.clear(); - - for (ISimpleRecipe recipe : this.recipes.values()) - { - for (Object req : recipe.getRequired()) - { - if (req instanceof ItemStack) - { - if (((ItemStack) req).isEmpty()) - { - continue; - } - - int hash = this.getItemStackKey((ItemStack) req); - - if (!this.stackLookup.containsKey(hash)) - { - ISimpleRecipeGroup group = new SimpleRecipeGroup(); - - group.addRecipe(recipe); - - this.stackLookup.put(hash, group); - } - else - { - ISimpleRecipeGroup group = this.stackLookup.get(hash); - - if (!group.getRecipes().contains(recipe)) - { - group.addRecipe(recipe); - } - } - } - else if (req instanceof OreDictionaryRequirement) - { - OreDictionaryRequirement oreReq = (OreDictionaryRequirement) req; - - if (!this.oreDictionaryLookup.containsKey(oreReq.getKey())) - { - ISimpleRecipeGroup group = new SimpleRecipeGroup(); - - group.addRecipe(recipe); - - this.oreDictionaryLookup.put(oreReq.getKey(), group); - } - else - { - ISimpleRecipeGroup group = this.oreDictionaryLookup.get(oreReq.getKey()); - - if (!group.getRecipes().contains(recipe)) - { - group.addRecipe(recipe); - } - } - } - } - } - } - - @Override - public ISimpleRecipe getRecipeFromID(int id) - { - if (id < 0) - { - return null; - } - - return this.recipes.get(id); - } - - @Override - public int getIDFromRecipe(ISimpleRecipe recipe) - { - if (recipe == null) - { - return -1; - } - - return this.recipes.inverse().get(recipe); - } - - @Override - public Collection<ISimpleRecipeGroup> getRecipesFromRequirement(Object req) - { - if (req instanceof ItemStack) - { - ItemStack stack = (ItemStack) req; - - if (stack.isEmpty()) - { - return new ArrayList<>(); - } - - int[] ids = OreDictionary.getOreIDs(stack); - - if (ids.length > 0) - { - List<ISimpleRecipeGroup> groups = Lists.newArrayList(); - - for (int id : ids) - { - String key = OreDictionary.getOreName(id); - - if (this.oreDictionaryLookup.containsKey(key)) - { - groups.add(this.oreDictionaryLookup.get(key)); - } - } - - if (groups.size() > 0) - { - int key = this.getItemStackKey(stack); - - return Lists.newArrayList(this.stackLookup.get(key)); - } - } - - int hash = this.getItemStackKey(stack); - - return Lists.newArrayList(this.stackLookup.get(hash)); - } - else if (req instanceof OreDictionaryRequirement) - { - return Lists.newArrayList(this.oreDictionaryLookup.get(((OreDictionaryRequirement) req).getKey())); - } - else if (req instanceof String) - { - return Lists.newArrayList(this.oreDictionaryLookup.get(req)); - } - - return new ArrayList<>(); - } - - private int getItemStackKey(ItemStack stack) - { - int hash = (Item.getIdFromItem(stack.getItem()) & 0xFFFF) << 16; - - if (!stack.isItemStackDamageable() && stack.getItemDamage() != OreDictionary.WILDCARD_VALUE) - { - hash = hash | (stack.getItemDamage() & 0xFFFF); - } - - return hash; - } - -} diff --git a/src/main/java/com/gildedgames/aether/common/recipes/simple/SimpleRecipe.java b/src/main/java/com/gildedgames/aether/common/recipes/simple/SimpleRecipe.java deleted file mode 100644 index d91e3d0ca5..0000000000 --- a/src/main/java/com/gildedgames/aether/common/recipes/simple/SimpleRecipe.java +++ /dev/null @@ -1,82 +0,0 @@ -package com.gildedgames.aether.common.recipes.simple; - -import com.gildedgames.aether.api.recipes.simple.ISimpleRecipe; -import com.gildedgames.aether.common.util.helpers.RecipeUtil; -import net.minecraft.item.ItemStack; - -import java.util.Arrays; - -public class SimpleRecipe implements ISimpleRecipe -{ - - private ItemStack result; - - private Object[] required; - - private SimpleRecipe() - { - - } - - public SimpleRecipe(ItemStack result, Object... required) - { - this.result = result; - this.required = required; - } - - @Override - public Object[] getRequired() - { - return Arrays.copyOf(this.required, this.required.length); - } - - @Override - public ItemStack getResult() - { - return this.result.copy(); - } - - @Override - public boolean equals(Object obj) - { - if (obj instanceof SimpleRecipe) - { - SimpleRecipe r = (SimpleRecipe) obj; - - if (RecipeUtil.areEqual(r.getResult(), this.getResult())) - { - if (r.getRequired().length != this.getRequired().length) - { - return false; - } - - for (int i = 0; i < this.getRequired().length; i++) - { - Object req1 = this.getRequired()[i]; - - boolean equal = false; - - for (int j = 0; j < r.getRequired().length; j++) - { - Object req2 = r.getRequired()[j]; - - if (RecipeUtil.areEqual(req1, req2)) - { - equal = true; - } - } - - if (!equal) - { - return false; - } - } - - return true; - } - } - - return false; - } - -} diff --git a/src/main/java/com/gildedgames/aether/common/recipes/simple/SimpleRecipeGroup.java b/src/main/java/com/gildedgames/aether/common/recipes/simple/SimpleRecipeGroup.java deleted file mode 100644 index 568cc58790..0000000000 --- a/src/main/java/com/gildedgames/aether/common/recipes/simple/SimpleRecipeGroup.java +++ /dev/null @@ -1,27 +0,0 @@ -package com.gildedgames.aether.common.recipes.simple; - -import com.gildedgames.aether.api.recipes.simple.ISimpleRecipe; -import com.gildedgames.aether.api.recipes.simple.ISimpleRecipeGroup; -import com.google.common.collect.Lists; - -import java.util.Collection; -import java.util.List; - -public class SimpleRecipeGroup implements ISimpleRecipeGroup -{ - - private final List<ISimpleRecipe> recipes = Lists.newArrayList(); - - @Override - public Collection<ISimpleRecipe> getRecipes() - { - return this.recipes; - } - - @Override - public void addRecipe(ISimpleRecipe recipe) - { - this.recipes.add(recipe); - } - -} diff --git a/src/main/java/com/gildedgames/aether/common/shop/CurrencyRegistry.java b/src/main/java/com/gildedgames/aether/common/shop/CurrencyRegistry.java deleted file mode 100644 index 014cff95a0..0000000000 --- a/src/main/java/com/gildedgames/aether/common/shop/CurrencyRegistry.java +++ /dev/null @@ -1,69 +0,0 @@ -package com.gildedgames.aether.common.shop; - -import com.gildedgames.aether.api.shop.ICurrencyRegistry; -import com.gildedgames.aether.api.shop.IShopCurrency; -import com.gildedgames.aether.common.util.helpers.ItemHelper; -import com.google.common.collect.Maps; -import net.minecraft.item.ItemStack; - -import java.util.Map; - -public class CurrencyRegistry implements ICurrencyRegistry -{ - private final Map<Class<? extends IShopCurrency>, Map<Integer, Double>> registries = Maps.newHashMap(); - - @Override - public void clearRegistrations() - { - this.registries.clear(); - } - - private Map<Integer, Double> getHashToValue(Class<? extends IShopCurrency> currency) - { - if (!this.registries.containsKey(currency)) - { - this.registries.put(currency, Maps.newHashMap()); - } - - return this.registries.get(currency); - } - - @Override - public void registerValue(ItemStack stack, double value, Class<? extends IShopCurrency> currency) - { - int hash = ItemHelper.getKeyForItemStack(stack); - - this.getHashToValue(currency).put(hash, value); - } - - @Override - public double getValue(ItemStack stack, Class<? extends IShopCurrency> currency) - { - return this.getSingleValue(stack, currency) * stack.getCount(); - } - - @Override - public double getSingleValue(ItemStack stack, Class<? extends IShopCurrency> currency) - { - Map<Integer, Double> hashToValue = this.getHashToValue(currency); - - Double value = hashToValue.get(ItemHelper.getKeyForItemStack(stack)); - - if (value == null) - { - value = hashToValue.get(ItemHelper.getKeyForItemStack(stack, false)); - - return value == null ? 0 : value; - } - - return value; - } - - @Override - public boolean hasValue(ItemStack stack, Class<? extends IShopCurrency> currency) - { - boolean has = this.getHashToValue(currency).containsKey(ItemHelper.getKeyForItemStack(stack)); - - return has || this.getHashToValue(currency).containsKey(ItemHelper.getKeyForItemStack(stack, false)); - } -} diff --git a/src/main/java/com/gildedgames/aether/common/shop/ShopBuy.java b/src/main/java/com/gildedgames/aether/common/shop/ShopBuy.java deleted file mode 100644 index 75f9d74a4b..0000000000 --- a/src/main/java/com/gildedgames/aether/common/shop/ShopBuy.java +++ /dev/null @@ -1,153 +0,0 @@ -package com.gildedgames.aether.common.shop; - -import com.gildedgames.aether.api.shop.IShopBuy; -import com.gildedgames.orbis.lib.util.io.NBTFunnel; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; - -import java.util.List; - -public class ShopBuy implements IShopBuy -{ - private ItemStack stack; - - private int price; - - private double sellingPrice; - - private int ticksUntilRestock, maxStock; - - private int currentTicks; - - // TODO: Should be saving the shop ResourceLocation and the buy definition tag, then fetching back the descriptions - private List<String> descriptions; - - private boolean isDirty; - - private int stock; - - private ShopBuy() - { - - } - - public ShopBuy(ItemStack stack, List<String> descriptions, int price, double sellingPrice, int ticksUntilRestock, int maxStock) - { - this.stack = stack; - this.descriptions = descriptions; - this.price = price; - this.sellingPrice = sellingPrice; - this.ticksUntilRestock = ticksUntilRestock; - this.maxStock = maxStock; - this.stock = maxStock; - } - - @Override - public ItemStack getItemStack() - { - return this.stack; - } - - @Override - public void addStock(int stock) - { - this.stock = (Math.max(0, this.stock + stock)); - - this.isDirty = true; - } - - @Override - public int getStock() - { - return this.stock; - } - - @Override - public List<String> getUnlocalizedDescriptions() - { - return this.descriptions; - } - - @Override - public int getMaxStock() - { - return this.maxStock; - } - - @Override - public int getTicksUntilRestock() - { - return this.ticksUntilRestock; - } - - @Override - public int getPrice() - { - return this.price; - } - - @Override - public double getSellingPrice() - { - return this.sellingPrice; - } - - @Override - public void tick() - { - if (this.getStock() < this.getMaxStock()) - { - this.currentTicks++; - - if (this.currentTicks >= this.getTicksUntilRestock()) - { - this.currentTicks = 0; - this.addStock(1); - } - } - else - { - this.currentTicks = 0; - } - } - - @Override - public boolean isDirty() - { - return this.isDirty; - } - - @Override - public void markClean() - { - this.isDirty = false; - } - - @Override - public void write(NBTTagCompound tag) - { - NBTFunnel funnel = new NBTFunnel(tag); - - funnel.setStack("stack", this.stack); - funnel.setStringList("descriptions", this.descriptions); - tag.setInteger("price", this.price); - tag.setDouble("sellingPrice", this.sellingPrice); - tag.setInteger("maxStock", this.maxStock); - tag.setInteger("ticksUntilRestock", this.ticksUntilRestock); - tag.setInteger("stock", this.stock); - } - - @Override - public void read(NBTTagCompound tag) - { - NBTFunnel funnel = new NBTFunnel(tag); - - this.stack = funnel.getStack("stack"); - this.descriptions = funnel.getStringList("descriptions"); - this.price = tag.getInteger("price"); - this.sellingPrice = tag.getDouble("sellingPrice"); - this.maxStock = tag.getInteger("maxStock"); - this.ticksUntilRestock = tag.getInteger("ticksUntilRestock"); - this.stock = tag.getInteger("stock"); - } -} diff --git a/src/main/java/com/gildedgames/aether/common/shop/ShopCurrencyGilt.java b/src/main/java/com/gildedgames/aether/common/shop/ShopCurrencyGilt.java deleted file mode 100644 index 4cd4797e4d..0000000000 --- a/src/main/java/com/gildedgames/aether/common/shop/ShopCurrencyGilt.java +++ /dev/null @@ -1,84 +0,0 @@ -package com.gildedgames.aether.common.shop; - -import com.gildedgames.aether.api.player.IPlayerAether; -import com.gildedgames.aether.api.shop.ICurrencyListener; -import com.gildedgames.aether.api.shop.IGuiCurrencyValue; -import com.gildedgames.aether.api.shop.IShopCurrency; -import com.gildedgames.aether.client.gui.dialog.GuiCoinsContainer; -import com.gildedgames.aether.common.capabilities.entity.player.modules.PlayerCurrencyModule; -import com.gildedgames.orbis.lib.client.rect.Rect; -import net.minecraft.nbt.NBTTagCompound; - -public class ShopCurrencyGilt implements IShopCurrency -{ - public ShopCurrencyGilt() - { - - } - - @Override - public long getValue(IPlayerAether playerAether) - { - return playerAether.getModule(PlayerCurrencyModule.class).getCurrencyValue(); - } - - @Override - public void addValue(long value, IPlayerAether playerAether) - { - playerAether.getModule(PlayerCurrencyModule.class).add(value); - } - - @Override - public void removeValue(long value, IPlayerAether playerAether) - { - playerAether.getModule(PlayerCurrencyModule.class).take(value); - } - - @Override - public IGuiCurrencyValue createCurrencyValueGui(Rect rect) - { - return new GuiCoinsContainer(rect, true, false); - } - - @Override - public IGuiCurrencyValue createBuyItemCurrencyValueGui(Rect rect) - { - return new GuiCoinsContainer(rect, false, true); - } - - @Override - public IGuiCurrencyValue createSellItemCurrencyValueGui(Rect rect) - { - return new GuiCoinsContainer(rect, false, false); - } - - @Override - public void listenForCurrency(IPlayerAether playerAether, ICurrencyListener listener) - { - playerAether.getModule(PlayerCurrencyModule.class).listen(listener); - } - - @Override - public boolean unlistenForCurrency(IPlayerAether playerAether, ICurrencyListener listener) - { - return playerAether.getModule(PlayerCurrencyModule.class).unlisten(listener); - } - - @Override - public void update(IPlayerAether playerAether) - { - - } - - @Override - public void write(NBTTagCompound tag) - { - - } - - @Override - public void read(NBTTagCompound tag) - { - - } -} diff --git a/src/main/java/com/gildedgames/aether/common/shop/ShopCurrencyPlumproot.java b/src/main/java/com/gildedgames/aether/common/shop/ShopCurrencyPlumproot.java deleted file mode 100644 index fbdbe93249..0000000000 --- a/src/main/java/com/gildedgames/aether/common/shop/ShopCurrencyPlumproot.java +++ /dev/null @@ -1,167 +0,0 @@ -package com.gildedgames.aether.common.shop; - -import com.gildedgames.aether.api.player.IPlayerAether; -import com.gildedgames.aether.api.registrar.BlocksAether; -import com.gildedgames.aether.api.shop.ICurrencyListener; -import com.gildedgames.aether.api.shop.IGuiCurrencyValue; -import com.gildedgames.aether.api.shop.IShopCurrency; -import com.gildedgames.aether.client.gui.dialog.GuiPumpkinCurrency; -import com.gildedgames.aether.common.blocks.natural.plants.BlockPlumproot; -import com.gildedgames.orbis.lib.client.rect.Rect; -import com.google.common.collect.Lists; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemBlock; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; - -import java.util.List; - -public class ShopCurrencyPlumproot implements IShopCurrency -{ - private final List<ICurrencyListener> listeners = Lists.newArrayList(); - - private long value; - - public ShopCurrencyPlumproot() - { - - } - - @Override - public long getValue(IPlayerAether playerAether) - { - this.update(playerAether); - - return this.value; - } - - @Override - public void addValue(long value, IPlayerAether playerAether) - { - long old = this.value; - - for (long i = value; i > 0; i -= 64) - { - playerAether.getEntity().addItemStackToInventory(new ItemStack(BlocksAether.plumproot, (int) Math.min(64, i))); - } - - this.value += value; - - this.listeners.forEach((l -> l.onCurrencyChange(old, value))); - } - - @Override - public void removeValue(long value, IPlayerAether playerAether) - { - EntityPlayer player = playerAether.getEntity(); - - long count = value; - - for (int i = 0; i < player.inventory.mainInventory.size(); i++) - { - if (count <= 0) - { - return; - } - - ItemStack stack = player.inventory.mainInventory.get(i); - - if (stack.getItem() instanceof ItemBlock) - { - ItemBlock block = (ItemBlock) stack.getItem(); - - if (block.getBlock() instanceof BlockPlumproot) - { - long reduce = Math.min(64, count); - - player.inventory.decrStackSize(i, (int) reduce); - - count -= reduce; - } - } - } - - long old = this.value; - this.value -= value; - - this.listeners.forEach((l -> l.onCurrencyChange(old, value))); - } - - @Override - public IGuiCurrencyValue createCurrencyValueGui(Rect rect) - { - return new GuiPumpkinCurrency(rect); - } - - @Override - public IGuiCurrencyValue createBuyItemCurrencyValueGui(Rect rect) - { - return new GuiPumpkinCurrency(rect); - } - - @Override - public IGuiCurrencyValue createSellItemCurrencyValueGui(Rect rect) - { - return new GuiPumpkinCurrency(rect); - } - - @Override - public void listenForCurrency(IPlayerAether playerAether, ICurrencyListener listener) - { - if (!this.listeners.contains(listener)) - { - this.listeners.add(listener); - } - } - - @Override - public boolean unlistenForCurrency(IPlayerAether playerAether, ICurrencyListener listener) - { - return this.listeners.remove(listener); - } - - @Override - public void update(IPlayerAether playerAether) - { - EntityPlayer player = playerAether.getEntity(); - - long count = 0; - - for (int i = 0; i < player.inventory.mainInventory.size(); i++) - { - ItemStack stack = player.inventory.mainInventory.get(i); - - if (stack.getItem() instanceof ItemBlock) - { - ItemBlock block = (ItemBlock) stack.getItem(); - - if (block.getBlock() instanceof BlockPlumproot) - { - count += stack.getCount(); - } - } - } - - if (count != this.value) - { - long finalCount = count; - long old = this.value; - - this.value = count; - - this.listeners.forEach((l -> l.onCurrencyChange(old, finalCount))); - } - } - - @Override - public void write(NBTTagCompound tag) - { - - } - - @Override - public void read(NBTTagCompound tag) - { - - } -} diff --git a/src/main/java/com/gildedgames/aether/common/shop/ShopInstance.java b/src/main/java/com/gildedgames/aether/common/shop/ShopInstance.java deleted file mode 100644 index 23f021b5c7..0000000000 --- a/src/main/java/com/gildedgames/aether/common/shop/ShopInstance.java +++ /dev/null @@ -1,150 +0,0 @@ -package com.gildedgames.aether.common.shop; - -import com.gildedgames.aether.api.shop.IShopBuy; -import com.gildedgames.aether.api.shop.IShopCurrency; -import com.gildedgames.aether.api.shop.IShopInstance; -import com.gildedgames.orbis.lib.util.io.NBTFunnel; -import com.google.common.collect.Lists; -import com.google.common.collect.Maps; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.inventory.IInventory; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.util.ResourceLocation; - -import java.util.LinkedList; -import java.util.List; -import java.util.Map; -import java.util.UUID; - -public class ShopInstance implements IShopInstance -{ - private LinkedList<IShopBuy> stock; - - private List<String> greetings; - - private boolean isDirty; - - private Map<UUID, ShopInventory> inventories = Maps.newHashMap(); - - private IShopCurrency currencyType; - - private ResourceLocation shopDefinitionLocation; - - private ShopInstance() - { - - } - - public ShopInstance(ResourceLocation shopDefinitionLocation, LinkedList<IShopBuy> stock, List<String> greetings, IShopCurrency currencyType) - { - this.shopDefinitionLocation = shopDefinitionLocation; - this.stock = stock; - this.greetings = greetings; - this.currencyType = currencyType; - } - - @Override - public ResourceLocation getShopDefinitionLocation() - { - return this.shopDefinitionLocation; - } - - @Override - public List<IShopBuy> getStock() - { - return this.stock; - } - - @Override - public List<String> getUnlocalizedGreetings() - { - return this.greetings; - } - - @Override - public void tick() - { - for (IShopBuy buy : this.stock) - { - buy.tick(); - - if (buy.isDirty()) - { - this.isDirty = true; - } - } - } - - @Override - public IInventory getInventory(EntityPlayer player) - { - if (!this.inventories.containsKey(player.getUniqueID())) - { - this.inventories.put(player.getUniqueID(), new ShopInventory(this)); - } - - return this.inventories.get(player.getUniqueID()); - } - - @Override - public boolean isDirty() - { - return this.isDirty; - } - - @Override - public void markClean() - { - this.isDirty = false; - - for (IShopBuy buy : this.stock) - { - buy.markClean(); - } - } - - @Override - public IShopCurrency getCurrencyType() - { - return this.currencyType; - } - - @Override - public void write(NBTTagCompound tag) - { - NBTFunnel funnel = new NBTFunnel(tag); - - funnel.setList("stock", this.stock); - funnel.setStringList("greetings", this.greetings); - funnel.setMap("inventories", this.inventories, NBTFunnel.UUID_SETTER, NBTFunnel.setter()); - funnel.set("currencyType", this.currencyType); - - if (this.shopDefinitionLocation != null) - { - tag.setString("shopDefinitionLocation", this.shopDefinitionLocation.toString()); - } - } - - @Override - public void read(NBTTagCompound tag) - { - NBTFunnel funnel = new NBTFunnel(tag); - - this.stock = Lists.newLinkedList(funnel.getList("stock")); - this.greetings = funnel.getStringList("greetings"); - this.inventories = funnel.getMap("inventories", NBTFunnel.UUID_GETTER, NBTFunnel.getter()); - - for (ShopInventory inventory : this.inventories.values()) - { - inventory.setShopInstance(this); - } - - this.currencyType = funnel.getWithDefault("currencyType", ShopCurrencyGilt::new); - - if (tag.hasKey("shopDefinitionLocation")) - { - this.shopDefinitionLocation = new ResourceLocation(tag.getString("shopDefinitionLocation")); - } - } - -} diff --git a/src/main/java/com/gildedgames/aether/common/shop/ShopInstanceGroup.java b/src/main/java/com/gildedgames/aether/common/shop/ShopInstanceGroup.java deleted file mode 100644 index 05579ad55b..0000000000 --- a/src/main/java/com/gildedgames/aether/common/shop/ShopInstanceGroup.java +++ /dev/null @@ -1,49 +0,0 @@ -package com.gildedgames.aether.common.shop; - -import com.gildedgames.aether.api.shop.IShopInstance; -import com.gildedgames.aether.api.shop.IShopInstanceGroup; -import com.gildedgames.orbis.lib.util.io.NBTFunnel; -import com.google.common.collect.Maps; -import net.minecraft.nbt.NBTTagCompound; - -import java.util.Collection; -import java.util.Map; - -public class ShopInstanceGroup implements IShopInstanceGroup -{ - private Map<Integer, IShopInstance> keyToShopInstance = Maps.newHashMap(); - - @Override - public IShopInstance getShopInstance(int key) - { - return this.keyToShopInstance.get(key); - } - - @Override - public void setShopInstance(int key, IShopInstance shopInstance) - { - this.keyToShopInstance.put(key, shopInstance); - } - - @Override - public Collection<IShopInstance> getShopInstances() - { - return this.keyToShopInstance.values(); - } - - @Override - public void write(NBTTagCompound tag) - { - NBTFunnel funnel = new NBTFunnel(tag); - - funnel.setMap("keyToShopInstance", this.keyToShopInstance, NBTFunnel.INTEGER_SETTER, NBTFunnel.setter()); - } - - @Override - public void read(NBTTagCompound tag) - { - NBTFunnel funnel = new NBTFunnel(tag); - - this.keyToShopInstance = funnel.getMap("keyToShopInstance", NBTFunnel.INTEGER_GETTER, NBTFunnel.getter()); - } -} diff --git a/src/main/java/com/gildedgames/aether/common/shop/ShopInventory.java b/src/main/java/com/gildedgames/aether/common/shop/ShopInventory.java deleted file mode 100644 index 71eb82d28b..0000000000 --- a/src/main/java/com/gildedgames/aether/common/shop/ShopInventory.java +++ /dev/null @@ -1,195 +0,0 @@ -package com.gildedgames.aether.common.shop; - -import com.gildedgames.aether.api.AetherAPI; -import com.gildedgames.aether.api.shop.IShopBuy; -import com.gildedgames.aether.common.util.helpers.ItemHelper; -import com.gildedgames.orbis.lib.util.mc.NBT; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.inventory.IInventory; -import net.minecraft.inventory.ItemStackHelper; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.util.NonNullList; -import net.minecraft.util.text.ITextComponent; -import net.minecraft.util.text.TextComponentTranslation; - -public class ShopInventory implements IInventory, NBT -{ - private final NonNullList<ItemStack> stacks = NonNullList.withSize(1, ItemStack.EMPTY); - - private ShopInstance shopInstance; - - private ShopInventory() - { - - } - - public ShopInventory(ShopInstance shopInstance) - { - this.shopInstance = shopInstance; - } - - public void setShopInstance(ShopInstance shopInstance) - { - this.shopInstance = shopInstance; - } - - @Override - public int getSizeInventory() - { - return this.stacks.size(); - } - - @Override - public boolean isEmpty() - { - for (ItemStack itemstack : this.stacks) - { - if (!itemstack.isEmpty()) - { - return false; - } - } - - return true; - } - - @Override - public ItemStack getStackInSlot(int index) - { - return this.stacks.get(index); - } - - @Override - public ItemStack decrStackSize(int index, int count) - { - return ItemStackHelper.getAndSplit(this.stacks, index, count); - } - - @Override - public ItemStack removeStackFromSlot(int index) - { - return ItemStackHelper.getAndRemove(this.stacks, index); - } - - @Override - public void setInventorySlotContents(int index, ItemStack stack) - { - ItemStack itemstack = this.stacks.get(index); - boolean flag = !stack.isEmpty() && stack.isItemEqual(itemstack) && ItemStack.areItemStackTagsEqual(stack, itemstack); - this.stacks.set(index, stack); - - if (stack.getCount() > this.getInventoryStackLimit()) - { - stack.setCount(this.getInventoryStackLimit()); - } - - if (index == 0 && !flag) - { - this.markDirty(); - } - } - - @Override - public int getInventoryStackLimit() - { - return 64; - } - - @Override - public void markDirty() - { - - } - - @Override - public boolean isUsableByPlayer(EntityPlayer player) - { - return true; - } - - @Override - public void openInventory(EntityPlayer player) - { - - } - - @Override - public void closeInventory(EntityPlayer player) - { - - } - - @Override - public boolean isItemValidForSlot(int index, ItemStack stack) - { - int hash = ItemHelper.getKeyForItemStack(stack); - - for (IShopBuy buy : this.shopInstance.getStock()) - { - int buyHash = ItemHelper.getKeyForItemStack(buy.getItemStack()); - - if (buyHash == hash) - { - return true; - } - } - - return AetherAPI.content().currency().hasValue(stack, this.shopInstance.getCurrencyType().getClass()); - } - - @Override - public int getField(int id) - { - return 0; - } - - @Override - public void setField(int id, int value) - { - - } - - @Override - public int getFieldCount() - { - return 0; - } - - @Override - public void clear() - { - this.stacks.clear(); - } - - @Override - public String getName() - { - return "Shop"; - } - - @Override - public boolean hasCustomName() - { - return false; - } - - @Override - public ITextComponent getDisplayName() - { - return new TextComponentTranslation(this.getName()); - } - - @Override - public void write(NBTTagCompound tag) - { - ItemStackHelper.saveAllItems(tag, this.stacks); - } - - @Override - public void read(NBTTagCompound tag) - { - ItemStackHelper.loadAllItems(tag, this.stacks); - } - -} diff --git a/src/main/java/com/gildedgames/aether/common/shop/ShopManager.java b/src/main/java/com/gildedgames/aether/common/shop/ShopManager.java deleted file mode 100644 index 3623b18e30..0000000000 --- a/src/main/java/com/gildedgames/aether/common/shop/ShopManager.java +++ /dev/null @@ -1,173 +0,0 @@ -package com.gildedgames.aether.common.shop; - -import com.gildedgames.aether.api.shop.*; -import com.gildedgames.aether.common.AetherCore; -import com.gildedgames.aether.common.util.helpers.MathUtil; -import com.google.common.collect.Lists; -import com.google.gson.Gson; -import com.google.gson.GsonBuilder; -import net.minecraft.item.ItemStack; -import net.minecraft.server.MinecraftServer; -import net.minecraft.util.ResourceLocation; -import net.minecraft.util.math.MathHelper; - -import java.io.IOException; -import java.io.InputStream; -import java.io.InputStreamReader; -import java.util.*; - -/** - * Used to load and cache shop definitions for cleaner and quicker use. - */ -public class ShopManager implements IShopManager -{ - - private final HashMap<ResourceLocation, IShopDefinition> cachedDefinitions = new HashMap<>(); - - private final Gson gson; - - private final boolean allowCaching; - - private final List<IShopFilter> globalFilters = Lists.newArrayList(); - - public ShopManager() - { - this(true); - } - - /** - * Creates an instance of this dialog manager with caching enabled or disabled - * @param allowCaching Controls whether or not caching is enabled. Useful for debugging. - */ - public ShopManager(final boolean allowCaching) - { - this.allowCaching = allowCaching; - - this.gson = this.buildDeserializer().create(); - } - - /** - * Creates the JSON deserializer that converts a shop file into a {@link IShopDefinition}. - * - * @return A {@link GsonBuilder} that will construct an appropriate {@link Gson} object. - */ - protected GsonBuilder buildDeserializer() - { - return new GsonBuilder(); - } - - @Override - public Optional<IShopDefinition> getShopDefinition(final ResourceLocation resource) - { - if (this.allowCaching && this.cachedDefinitions.containsKey(resource)) - { - return Optional.of(this.cachedDefinitions.get(resource)); - } - - final IShopDefinition speaker; - - try - { - speaker = this.loadShopDefinition(resource); - - if (this.allowCaching) - { - this.cachedDefinitions.put(resource, speaker); - } - } - catch (final IOException e) - { - AetherCore.LOGGER.error("Failed to load shop definition: {}", resource, e); - - return Optional.empty(); - } - - return Optional.of(speaker); - } - - @Override - public IShopInstance createInstance(ResourceLocation definitionLocation, IShopDefinition definition, Random rand) - { - int stock = MathHelper.getInt(rand, definition.getMinStock(), definition.getMaxStock()); - - if (stock > definition.getBuyDefinitions().size()) - { - throw new IllegalArgumentException("One of your shop definitions has a higher stock possibility than the amount of stock options"); - } - - List<IShopBuyDefinition> chosenStockDefs = Lists.newArrayList(); - IShopBuyDefinition it = null; - - for (int i = 0; i < stock; i++) - { - while (it == null || chosenStockDefs.contains(it)) - { - it = definition.getBuyDefinitions().get(rand.nextInt(definition.getBuyDefinitions().size())); - } - - chosenStockDefs.add(it); - } - - LinkedList<IShopBuy> chosenStock = Lists.newLinkedList(); - - for (IShopBuyDefinition def : chosenStockDefs) - { - if (def.getItemStack().isPresent()) - { - //TODO: Factor in the definition's rarity weight - int price = MathHelper.getInt(rand, def.getMinPrice(), def.getMaxPrice()); - double sellingPrice = MathUtil.getDoubleRange(rand, def.getMinSellPrice(), def.getMaxSellPrice()); - int maxStock = MathHelper.getInt(rand, def.getMinStock(), def.getMaxStock()); - int ticksUntilRestock = def.getTicksUntilRestock(); - - ItemStack stack = def.getItemStack().get().copy(); - - chosenStock - .add(new ShopBuy(stack, Lists.newArrayList(def.getUnlocalizedDescriptions()), price, sellingPrice, ticksUntilRestock, - maxStock)); - } - } - - IShopCurrency currency = new ShopCurrencyGilt(); - - switch (definition.getCurrencyType()) - { - case "plumproots": - currency = new ShopCurrencyPlumproot(); - break; - } - - return new ShopInstance(definitionLocation, chosenStock, Lists.newArrayList(definition.getUnlocalizedGreetings()), currency); - } - - @Override - public List<IShopFilter> getGlobalFilters() - { - return this.globalFilters; - } - - @Override - public void registerGlobalFilter(IShopFilter filter) - { - if (!this.globalFilters.contains(filter)) - { - this.globalFilters.add(filter); - } - } - - private IShopDefinition loadShopDefinition(final ResourceLocation resource) throws IOException - { - final String path = "/assets/" + resource.getNamespace() + "/shop/" + resource.getPath() + ".json"; - - AetherCore.LOGGER.info("Loading shop definition from file {}", path); - - try (InputStream stream = MinecraftServer.class.getResourceAsStream(path)) - { - try (InputStreamReader reader = new InputStreamReader(stream)) - { - return this.gson.fromJson(reader, ShopSchema.class); - } - } - } - -} diff --git a/src/main/java/com/gildedgames/aether/common/shop/ShopSchema.java b/src/main/java/com/gildedgames/aether/common/shop/ShopSchema.java deleted file mode 100644 index 1a4055b794..0000000000 --- a/src/main/java/com/gildedgames/aether/common/shop/ShopSchema.java +++ /dev/null @@ -1,205 +0,0 @@ -package com.gildedgames.aether.common.shop; - -import com.gildedgames.aether.api.shop.IShopBuyDefinition; -import com.gildedgames.aether.api.shop.IShopDefinition; -import com.gildedgames.aether.common.AetherCore; -import com.google.gson.annotations.SerializedName; -import net.minecraft.block.Block; -import net.minecraft.init.Blocks; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.util.ResourceLocation; - -import java.util.Collection; -import java.util.Collections; -import java.util.List; -import java.util.Optional; - -public class ShopSchema implements IShopDefinition -{ - @SerializedName("buy_definitions") - private final List<ShopBuyDefinitionSchema> buyDefinitions = null; - - @SerializedName("greetings") - private final Collection<String> greetings = null; - - @SerializedName("max_stock") - private int maxStock; - - @SerializedName("min_stock") - private int minStock; - - @SerializedName("currency_type") - private String currencyType = null; - - @Override - public List<IShopBuyDefinition> getBuyDefinitions() - { - return this.buyDefinitions == null ? Collections.emptyList() : Collections.unmodifiableList(this.buyDefinitions); - } - - @Override - public Collection<String> getUnlocalizedGreetings() - { - return this.greetings == null ? Collections.emptyList() : Collections.unmodifiableCollection(this.greetings); - } - - @Override - public int getMaxStock() - { - return this.maxStock; - } - - @Override - public int getMinStock() - { - return this.minStock; - } - - @Override - public String getCurrencyType() - { - return this.currencyType == null ? "" : this.currencyType; - } - - private class ItemStackSchema - { - private transient ItemStack stack; - - @SerializedName("item") - private String item = null; - - @SerializedName("data") - private int data; - - public ItemStack getStack() - { - if (this.stack == null && this.item != null) - { - ResourceLocation resource = new ResourceLocation(this.item); - - Block block = Block.REGISTRY.getObject(resource); - - Item item; - - if (block != Blocks.AIR) - { - item = Item.getItemFromBlock(block); - } - else - { - item = Item.REGISTRY.getObject(resource); - } - - if (item != null) - { - this.stack = new ItemStack(item, 1, this.data); - } - else - { - AetherCore.LOGGER.error("Failed to load Item: {}", this.item); - } - } - - return this.stack; - } - } - - private class ShopBuyDefinitionSchema implements IShopBuyDefinition - { - @SerializedName("ticks_until_restock") - public int ticksUntilRestock; - - @SerializedName("rarity_weight") - public float rarityWeight; - - @SerializedName("min_price") - public int min_price; - - @SerializedName("max_price") - public int max_price; - - @SerializedName("min_stock") - public int min_stock; - - @SerializedName("max_stock") - public int max_stock; - - @SerializedName("min_sell_price") - public double min_sell_price; - - @SerializedName("max_sell_price") - public double max_sell_price; - - @SerializedName("stack") - private ItemStackSchema stack = null; - - @SerializedName("descriptions") - private Collection<String> descriptions = null; - - @Override - public Optional<ItemStack> getItemStack() - { - if (this.stack == null) - { - return Optional.empty(); - } - - return this.stack.getStack() == null ? Optional.empty() : Optional.of(this.stack.getStack()); - } - - @Override - public Collection<String> getUnlocalizedDescriptions() - { - return this.descriptions == null ? Collections.emptyList() : Collections.unmodifiableCollection(this.descriptions); - } - - @Override - public int getTicksUntilRestock() - { - return this.ticksUntilRestock; - } - - @Override - public float getRarityWeight() - { - return this.rarityWeight; - } - - @Override - public double getMinSellPrice() - { - return this.min_sell_price; - } - - @Override - public double getMaxSellPrice() - { - return this.max_sell_price; - } - - @Override - public int getMinPrice() - { - return this.min_price; - } - - @Override - public int getMaxPrice() - { - return this.max_price; - } - - @Override - public int getMaxStock() - { - return this.max_stock; - } - - @Override - public int getMinStock() - { - return this.min_stock; - } - } -} diff --git a/src/main/java/com/gildedgames/aether/common/shop/filters/ShopFilterNewYearsEdisonSale.java b/src/main/java/com/gildedgames/aether/common/shop/filters/ShopFilterNewYearsEdisonSale.java deleted file mode 100644 index 6c38509e88..0000000000 --- a/src/main/java/com/gildedgames/aether/common/shop/filters/ShopFilterNewYearsEdisonSale.java +++ /dev/null @@ -1,36 +0,0 @@ -package com.gildedgames.aether.common.shop.filters; - -import com.gildedgames.aether.api.shop.IShopFilter; -import com.gildedgames.aether.api.shop.IShopInstance; -import com.gildedgames.aether.common.AetherCelebrations; -import com.gildedgames.aether.common.util.helpers.ItemHelper; -import net.minecraft.item.ItemStack; - -public class ShopFilterNewYearsEdisonSale implements IShopFilter -{ - public static final float DISCOUNT = 0.5F; - - @Override - public double getFilteredPrice(IShopInstance instance, ItemStack stack, double originalPrice) - { - if (AetherCelebrations.isEdisonNewYearsSale(instance) && instance.getStock().stream() - .anyMatch((stock) -> ItemHelper.areEqual(stock.getItemStack(), stack))) - { - return originalPrice * DISCOUNT; - } - - return originalPrice; - } - - @Override - public int getFilteredPrice(IShopInstance instance, ItemStack stack, int originalPrice) - { - if (AetherCelebrations.isEdisonNewYearsSale(instance) && instance.getStock().stream() - .anyMatch((stock) -> ItemHelper.areEqual(stock.getItemStack(), stack))) - { - return (int) Math.max(1, originalPrice * DISCOUNT); - } - - return originalPrice; - } -} diff --git a/src/main/java/com/gildedgames/aether/common/travellers_guidebook/TGDefinition.java b/src/main/java/com/gildedgames/aether/common/travellers_guidebook/TGDefinition.java deleted file mode 100644 index c6a0077767..0000000000 --- a/src/main/java/com/gildedgames/aether/common/travellers_guidebook/TGDefinition.java +++ /dev/null @@ -1,52 +0,0 @@ -package com.gildedgames.aether.common.travellers_guidebook; - -import com.gildedgames.aether.api.player.conditions.IConditionResolution; -import com.gildedgames.aether.api.player.conditions.IPlayerCondition; -import com.gildedgames.aether.api.travellers_guidebook.ITGDefinition; -import com.gildedgames.aether.api.travellers_guidebook.ITGEntry; -import com.google.gson.annotations.SerializedName; - -import javax.annotation.Nonnull; -import java.util.Collection; -import java.util.Map; - -public class TGDefinition implements ITGDefinition -{ - @SerializedName("conditions") - private final Collection<IPlayerCondition> conditions; - - @SerializedName("resolution") - private final IConditionResolution resolution; - - @SerializedName("entries") - private final Map<String, ITGEntry> entries; - - public TGDefinition(final Collection<IPlayerCondition> conditions, final IConditionResolution conditionResolution, - final Map<String, ITGEntry> entries) - { - this.conditions = conditions; - this.resolution = conditionResolution; - this.entries = entries; - } - - @Nonnull - @Override - public Collection<IPlayerCondition> conditions() - { - return this.conditions; - } - - @Nonnull - @Override - public IConditionResolution resolution() - { - return this.resolution; - } - - @Nonnull - @Override - public Map<String, ITGEntry> entries() - { - return this.entries; - } -} diff --git a/src/main/java/com/gildedgames/aether/common/travellers_guidebook/TGEntryBase.java b/src/main/java/com/gildedgames/aether/common/travellers_guidebook/TGEntryBase.java deleted file mode 100644 index 4c78605710..0000000000 --- a/src/main/java/com/gildedgames/aether/common/travellers_guidebook/TGEntryBase.java +++ /dev/null @@ -1,54 +0,0 @@ -package com.gildedgames.aether.common.travellers_guidebook; - -import com.gildedgames.aether.api.player.IPlayerAether; -import com.gildedgames.aether.api.player.conditions.IConditionResolution; -import com.gildedgames.aether.api.player.conditions.IPlayerCondition; -import com.gildedgames.aether.api.travellers_guidebook.ITGEntry; -import com.gildedgames.aether.common.capabilities.entity.player.modules.PlayerConditionModule; -import net.minecraft.util.ResourceLocation; - -import java.util.Collection; -import java.util.Collections; - -public abstract class TGEntryBase implements ITGEntry -{ - private Collection<ResourceLocation> conditionIDs; - - private IConditionResolution conditionResolution; - - @Override - public Collection<ResourceLocation> getConditionIDs() - { - return this.conditionIDs; - } - - @Override - public void setConditionIDs(final Collection<ResourceLocation> conditionIDs) - { - this.conditionIDs = conditionIDs; - } - - @Override - public Collection<IPlayerCondition> providePlayerConditions() - { - return Collections.emptyList(); - } - - @Override - public IConditionResolution getConditionResolution() - { - return this.conditionResolution; - } - - @Override - public void setConditionResolution(final IConditionResolution conditionResolution) - { - this.conditionResolution = conditionResolution; - } - - @Override - public boolean isUnlocked(final IPlayerAether playerAether) - { - return playerAether.getModule(PlayerConditionModule.class).isEntryUnlocked(this); - } -} diff --git a/src/main/java/com/gildedgames/aether/common/travellers_guidebook/TGEntryDeserializer.java b/src/main/java/com/gildedgames/aether/common/travellers_guidebook/TGEntryDeserializer.java deleted file mode 100644 index 23e004969d..0000000000 --- a/src/main/java/com/gildedgames/aether/common/travellers_guidebook/TGEntryDeserializer.java +++ /dev/null @@ -1,40 +0,0 @@ -package com.gildedgames.aether.common.travellers_guidebook; - -import com.gildedgames.aether.api.travellers_guidebook.ITGEntry; -import com.gildedgames.aether.common.travellers_guidebook.entries.TGEntryBestiaryPage; -import com.gildedgames.aether.common.travellers_guidebook.entries.TGEntryEffectsPage; -import com.google.gson.*; - -import java.lang.reflect.Type; -import java.util.HashMap; - -public class TGEntryDeserializer implements JsonDeserializer<ITGEntry> -{ - private final HashMap<String, Class<? extends ITGEntry>> entryDefinitions = new HashMap<>(); - - public TGEntryDeserializer() - { - this.entryDefinitions.put("bestiary_page", TGEntryBestiaryPage.class); - this.entryDefinitions.put("effects_page", TGEntryEffectsPage.class); - } - - @Override - public ITGEntry deserialize(final JsonElement json, final Type typeOfT, final JsonDeserializationContext context) throws JsonParseException - { - final JsonObject root = json.getAsJsonObject(); - - if (!root.has("type")) - { - throw new JsonParseException("Missing required field 'type' for entry"); - } - - final String type = root.get("type").getAsString(); - - if (!this.entryDefinitions.containsKey(type)) - { - throw new JsonParseException("Invalid entry type " + type); - } - - return context.deserialize(json, this.entryDefinitions.get(type)); - } -} diff --git a/src/main/java/com/gildedgames/aether/common/travellers_guidebook/TGManager.java b/src/main/java/com/gildedgames/aether/common/travellers_guidebook/TGManager.java deleted file mode 100644 index 5d8707fcc5..0000000000 --- a/src/main/java/com/gildedgames/aether/common/travellers_guidebook/TGManager.java +++ /dev/null @@ -1,249 +0,0 @@ -package com.gildedgames.aether.common.travellers_guidebook; - -import com.gildedgames.aether.api.player.conditions.*; -import com.gildedgames.aether.api.player.conditions.resolutions.ConditionResolutionRequireAll; -import com.gildedgames.aether.api.player.conditions.resolutions.ConditionResolutionRequireAny; -import com.gildedgames.aether.api.travellers_guidebook.ITGDefinition; -import com.gildedgames.aether.api.travellers_guidebook.ITGEntry; -import com.gildedgames.aether.api.travellers_guidebook.ITGManager; -import com.gildedgames.aether.common.AetherCore; -import com.gildedgames.aether.common.player_conditions.PlayerConditionDeserializer; -import com.gildedgames.aether.common.player_conditions.types.PlayerConditionFeedEntity; -import com.gildedgames.aether.common.player_conditions.types.PlayerConditionKillEntity; -import com.gildedgames.aether.common.player_conditions.types.PlayerConditionNone; -import com.gildedgames.aether.common.player_conditions.types.PlayerConditionSeeEntity; -import com.gildedgames.aether.common.travellers_guidebook.entries.TGEntryBestiaryPage; -import com.gildedgames.aether.common.travellers_guidebook.entries.TGEntryEffectsPage; -import com.google.common.collect.Lists; -import com.google.common.collect.Maps; -import com.google.gson.Gson; -import com.google.gson.GsonBuilder; -import net.minecraft.client.Minecraft; -import net.minecraft.client.resources.IReloadableResourceManager; -import net.minecraft.client.resources.IResourceManager; -import net.minecraft.client.resources.IResourceManagerReloadListener; -import net.minecraft.server.MinecraftServer; -import net.minecraft.util.ResourceLocation; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; - -import java.io.IOException; -import java.io.InputStream; -import java.io.InputStreamReader; -import java.util.*; - -/** - * Manages all data serialization and deserialization of traveller's guidebook - * entries. This also acts as an entry point to retrieve entries with keys/tags. - */ -public class TGManager implements ITGManager -{ - private final Gson gson; - - private final Map<String, List<ITGEntry>> tagToEntries = Maps.newHashMap(); - - private final Map<String, ITGEntry> idToEntries = Maps.newHashMap(); - - private final List<ResourceLocation> definitionsToLoad = Lists.newArrayList(); - - private final IPlayerConditionTracker playerConditionTracker; - - public TGManager(final IPlayerConditionTracker playerConditionTracker) - { - this.gson = this.buildDeserializer().create(); - this.playerConditionTracker = playerConditionTracker; - } - - private GsonBuilder buildDeserializer() - { - final GsonBuilder builder = new GsonBuilder(); - - builder.registerTypeAdapter(IPlayerCondition.class, new PlayerConditionDeserializer()); - builder.registerTypeAdapter(IConditionResolution.class, new ConditionResolutionDeserializer()); - builder.registerTypeAdapter(ITGEntry.class, new TGEntryDeserializer()); - - builder.registerTypeAdapter(PlayerConditionSeeEntity.class, new PlayerConditionSeeEntity.Deserializer()); - builder.registerTypeAdapter(PlayerConditionFeedEntity.class, new PlayerConditionFeedEntity.Deserializer()); - builder.registerTypeAdapter(PlayerConditionKillEntity.class, new PlayerConditionKillEntity.Deserializer()); - builder.registerTypeAdapter(PlayerConditionNone.class, new PlayerConditionNone.Deserializer()); - - builder.registerTypeAdapter(ConditionResolutionRequireAll.class, new ConditionResolutionRequireAll.Deserializer()); - builder.registerTypeAdapter(ConditionResolutionRequireAny.class, new ConditionResolutionRequireAny.Deserializer()); - - builder.registerTypeAdapter(TGEntryBestiaryPage.class, new TGEntryBestiaryPage.Deserializer()); - builder.registerTypeAdapter(TGEntryEffectsPage.class, new TGEntryEffectsPage.Deserializer()); - - return builder; - } - - @Override - public void registerEntry(final ResourceLocation entry) - { - this.definitionsToLoad.add(entry); - } - - @Override - public void load() - { - for (final ResourceLocation location : this.definitionsToLoad) - { - this.loadDefinitions(location); - } - } - - private void loadDefinitions(final ResourceLocation location) - { - try - { - final String path = location.getPath(); - - final String definitionPath = "/assets/" + location.getNamespace() + "/travellers_guidebook/definitions/" + path + ".json"; - - AetherCore.LOGGER.info("Loading definitions from file {}", definitionPath); - - try (final InputStream stream = MinecraftServer.class.getResourceAsStream(definitionPath)) - { - try (final InputStreamReader reader = new InputStreamReader(stream)) - { - final TGDefinition[] definitions = this.gson.fromJson(reader, TGDefinition[].class); - - for (final ITGDefinition def : definitions) - { - this.registerDefinition(def); - } - } - } - } - catch (final IOException e) - { - AetherCore.LOGGER.error("Failed to load definitions: {}", location, e); - } - } - - private void registerDefinition(final ITGDefinition def) - { - final Collection<ResourceLocation> conditionIDs = PlayerConditionUtils.getIDs(def.conditions()); - this.playerConditionTracker.trackConditions(def.conditions()); - - for (final Map.Entry<String, ITGEntry> e : def.entries().entrySet()) - { - final ITGEntry entryDef = e.getValue(); - final String entryId = e.getKey(); - - if (this.idToEntries.containsKey(entryId)) - { - throw new RuntimeException("An entry with an existing id is trying to be registered: " + entryId); - } - - entryDef.setConditionResolution(def.resolution()); - - // Provide player conditions required by its sub data - this.playerConditionTracker.trackConditions(entryDef.providePlayerConditions()); - entryDef.setConditionIDs(conditionIDs); - - this.idToEntries.put(entryId, entryDef); - - final String tag = entryDef.getTag(); - - // If tag doesn't exist, don't add to tag list - if (tag == null || tag.isEmpty()) - { - continue; - } - - if (!this.tagToEntries.containsKey(tag)) - { - this.tagToEntries.put(tag, Lists.newArrayList()); - } - - final List<ITGEntry> tagList = this.tagToEntries.get(tag); - - tagList.add(entryDef); - } - } - - @Override - public void unload() - { - this.tagToEntries.clear(); - this.idToEntries.clear(); - - this.playerConditionTracker.unload(); - } - - @Override - public List<ITGEntry> getEntriesWithTag(final String tag) - { - if (this.tagToEntries.containsKey(tag)) - { - return this.tagToEntries.get(tag); - } - - return Collections.emptyList(); - } - - @Override - public <T extends ITGEntry> List<T> getEntriesWithTagAndClass(final String tag, final Class<T> clazzType) - { - if (this.tagToEntries.containsKey(tag)) - { - final List<T> entries = Lists.newArrayList(); - - for (final ITGEntry entry : this.tagToEntries.get(tag)) - { - if (entry.getClass().isAssignableFrom(clazzType)) - { - entries.add((T) entry); - } - } - - return entries; - } - - return Collections.emptyList(); - } - - @Override - public <T extends ITGEntry> Optional<T> getEntry(final String entryId, final Class<T> clazzType) - { - if (this.idToEntries.containsKey(entryId)) - { - return Optional.of((T) this.idToEntries.get(entryId)); - } - - return Optional.empty(); - } - - @Override - @SideOnly(Side.CLIENT) - public void attachReloadListener() - { - StackTraceElement[] stackTraceElements = Thread.currentThread().getStackTrace(); - System.out.println(Arrays.toString(stackTraceElements)); - - final IResourceManager resManager = Minecraft.getMinecraft().getResourceManager(); - - if (resManager instanceof IReloadableResourceManager) - { - ((IReloadableResourceManager) resManager).registerReloadListener(new TGManager.ReloadListener(this)); - } - } - - @SideOnly(Side.CLIENT) - public static class ReloadListener implements IResourceManagerReloadListener - { - private final TGManager manager; - - public ReloadListener(final TGManager manager) - { - this.manager = manager; - } - - @Override - public void onResourceManagerReload(final IResourceManager resourceManager) - { - this.manager.unload(); - this.manager.load(); - } - } -} diff --git a/src/main/java/com/gildedgames/aether/common/travellers_guidebook/entries/TGEntryBestiaryPage.java b/src/main/java/com/gildedgames/aether/common/travellers_guidebook/entries/TGEntryBestiaryPage.java deleted file mode 100644 index 683b228365..0000000000 --- a/src/main/java/com/gildedgames/aether/common/travellers_guidebook/entries/TGEntryBestiaryPage.java +++ /dev/null @@ -1,150 +0,0 @@ -package com.gildedgames.aether.common.travellers_guidebook.entries; - -import com.gildedgames.aether.api.cache.IEntityStats; -import com.gildedgames.aether.api.player.IPlayerAether; -import com.gildedgames.aether.api.player.conditions.IConditionResolution; -import com.gildedgames.aether.api.player.conditions.IPlayerCondition; -import com.gildedgames.aether.api.travellers_guidebook.entries.ITGEntryBestiaryPage; -import com.gildedgames.aether.common.AetherCore; -import com.gildedgames.aether.common.capabilities.entity.player.modules.PlayerConditionModule; -import com.gildedgames.aether.common.player_conditions.types.PlayerConditionFeedEntity; -import com.gildedgames.aether.common.player_conditions.types.PlayerConditionKillEntity; -import com.gildedgames.aether.common.travellers_guidebook.TGEntryBase; -import com.google.common.collect.Lists; -import com.google.gson.*; -import net.minecraft.client.resources.I18n; -import net.minecraft.util.ResourceLocation; - -import java.lang.reflect.Type; -import java.util.Collection; - -public class TGEntryBestiaryPage extends TGEntryBase implements ITGEntryBestiaryPage -{ - private final ResourceLocation entityId; - - private final String tag; - - private final ResourceLocation silhouetteTexture, discoveredTexture, silhouetteSlotTexture, discoveredSlotTexture; - - private final String unlocalizedDescription; - - protected TGEntryBestiaryPage(final String tag, final ResourceLocation entityId, final String unlocalizedDescription, - final ResourceLocation silhouetteTexture, - final ResourceLocation discoveredTexture, final ResourceLocation silhouetteSlotTexture, final ResourceLocation discoveredSlotTexture) - { - this.tag = tag; - - this.entityId = entityId; - - this.unlocalizedDescription = unlocalizedDescription; - - this.silhouetteTexture = silhouetteTexture; - this.discoveredTexture = discoveredTexture; - this.silhouetteSlotTexture = silhouetteSlotTexture; - this.discoveredSlotTexture = discoveredSlotTexture; - } - - @Override - public Collection<IPlayerCondition> providePlayerConditions() - { - final Collection<IPlayerCondition> conditions = Lists.newArrayList(); - - conditions.add(new PlayerConditionFeedEntity(this.entityId)); - conditions.add(new PlayerConditionKillEntity(this.entityId)); - - return conditions; - } - - @Override - public ResourceLocation getEntityId() - { - return this.entityId; - } - - @Override - public ResourceLocation getSilhouetteTexture() - { - return this.silhouetteTexture; - } - - @Override - public ResourceLocation getDiscoveredTexture() - { - return this.discoveredTexture; - } - - @Override - public ResourceLocation getDiscoveredSlotTexture() - { - return this.discoveredSlotTexture; - } - - @Override - public ResourceLocation getSilhouetteSlotTexture() - { - return this.silhouetteSlotTexture; - } - - @Override - public IEntityStats getEntityStats() - { - return AetherCore.PROXY.content().entityStatsCache().getStats(this.entityId); - } - - @Override - public String getUnlocalizedDescription() - { - return this.unlocalizedDescription; - } - - @Override - public String getEntityName() - { - return I18n.format("entity." + this.getEntityId().getNamespace() + "." + this.getEntityId().getPath() + ".name"); - } - - @Override - public boolean isUnderstood(final IPlayerAether playerAether) - { - return true; -// return playerAether.getModule(PlayerConditionModule.class).areConditionsFlagged(IConditionResolution.REQUIRE_ANY, -// AetherCore.getResource("feedEntity:" + this.entityId), -// AetherCore.getResource("killEntity:" + this.entityId)); - } - - @Override - public boolean isUnlocked(IPlayerAether playerAether) - { - return true; - } - - @Override - public boolean hasUnlockedCompleteOverview(final IPlayerAether playerAether) - { - return this.isUnderstood(playerAether); // TODO: Need to have conditions for each move - } - - @Override - public String getTag() - { - return this.tag; - } - - public static class Deserializer implements JsonDeserializer<TGEntryBestiaryPage> - { - @Override - public TGEntryBestiaryPage deserialize(final JsonElement json, final Type typeOfT, final JsonDeserializationContext context) - throws JsonParseException - { - final JsonObject obj = json.getAsJsonObject(); - - return new TGEntryBestiaryPage(obj.get("tag").getAsString(), - new ResourceLocation(obj.get("entityId").getAsString()), - obj.get("description").getAsString(), - new ResourceLocation(obj.get("silhouetteTexture").getAsString()), - new ResourceLocation(obj.get("discoveredTexture").getAsString()), - new ResourceLocation(obj.get("silhouetteSlotTexture").getAsString()), - new ResourceLocation(obj.get("discoveredSlotTexture").getAsString())); - } - } -} diff --git a/src/main/java/com/gildedgames/aether/common/travellers_guidebook/entries/TGEntryEffectsPage.java b/src/main/java/com/gildedgames/aether/common/travellers_guidebook/entries/TGEntryEffectsPage.java deleted file mode 100644 index 931337284f..0000000000 --- a/src/main/java/com/gildedgames/aether/common/travellers_guidebook/entries/TGEntryEffectsPage.java +++ /dev/null @@ -1,129 +0,0 @@ -package com.gildedgames.aether.common.travellers_guidebook.entries; - -import com.gildedgames.aether.api.player.IPlayerAether; -import com.gildedgames.aether.api.player.conditions.IPlayerCondition; -import com.gildedgames.aether.api.travellers_guidebook.entries.ITGEntryEffectsPage; -import com.gildedgames.aether.common.travellers_guidebook.TGEntryBase; -import com.google.common.collect.Lists; -import com.google.gson.*; -import net.minecraft.client.resources.I18n; -import net.minecraft.item.Item; -import net.minecraft.util.ResourceLocation; - -import java.lang.reflect.Type; -import java.util.ArrayList; -import java.util.Collection; -import java.util.List; - -public class TGEntryEffectsPage extends TGEntryBase implements ITGEntryEffectsPage -{ - private final String effectName; - - private final String tag; - - private final ResourceLocation displayTexture, slotTexture; - - private final String unlocalizedDescription; - - private final List<String> curativeItems; - - protected TGEntryEffectsPage(final String tag, final String effectName, final String unlocalizedDescription, - final ResourceLocation displayTexture, final ResourceLocation slotTexture, - final List<String> curativeItems) - { - this.tag = tag; - - this.effectName = effectName; - - this.unlocalizedDescription = unlocalizedDescription; - - this.displayTexture = displayTexture; - this.slotTexture = slotTexture; - - this.curativeItems = curativeItems; - } - - @Override - public Collection<IPlayerCondition> providePlayerConditions() - { - return Lists.newArrayList(); - } - - @Override - public String getEffectName() - { - return this.effectName; - } - - @Override - public ResourceLocation getDisplayTexture() - { - return this.displayTexture; - } - - @Override - public ResourceLocation getSlotTexture() - { - return this.slotTexture; - } - - @Override - public String getUnlocalizedDescription() - { - return this.unlocalizedDescription; - } - - @Override - public List<String> getCurativeItems() - { - return this.curativeItems; - } - - @Override - public String getLocalizedEffectName() - { - return I18n.format("effect.aether." + this.getEffectName()); - } - - @Override - public boolean isUnderstood(final IPlayerAether playerAether) - { - return true; - } - - @Override - public boolean hasUnlockedCompleteOverview(final IPlayerAether playerAether) - { - return this.isUnderstood(playerAether); // TODO: Need to have conditions for each move - } - - @Override - public String getTag() - { - return this.tag; - } - - public static class Deserializer implements JsonDeserializer<TGEntryEffectsPage> - { - @Override - public TGEntryEffectsPage deserialize(final JsonElement json, final Type typeOfT, final JsonDeserializationContext context) - throws JsonParseException - { - final JsonObject obj = json.getAsJsonObject(); - - List<String> curativeItemsArray = new ArrayList<>(); - - for (JsonElement element : obj.get("curativeItems").getAsJsonArray()) - { - curativeItemsArray.add(element.toString()); - } - - return new TGEntryEffectsPage(obj.get("tag").getAsString(), - obj.get("effectName").getAsString(), - obj.get("description").getAsString(), - new ResourceLocation(obj.get("displayTexture").getAsString()), - new ResourceLocation(obj.get("slotTexture").getAsString()), - curativeItemsArray); - } - } -} diff --git a/src/main/java/com/gildedgames/aether/common/util/JarValidator.java b/src/main/java/com/gildedgames/aether/common/util/JarValidator.java deleted file mode 100644 index 1ffd433258..0000000000 --- a/src/main/java/com/gildedgames/aether/common/util/JarValidator.java +++ /dev/null @@ -1,49 +0,0 @@ -package com.gildedgames.aether.common.util; - -import com.gildedgames.aether.common.AetherCore; - -import java.io.BufferedInputStream; -import java.io.File; -import java.io.FileInputStream; -import java.io.IOException; -import java.util.jar.JarInputStream; -import java.util.jar.Manifest; - -public class JarValidator -{ - private static final String MANIFEST_PATH = "/META-INF/MANIFEST.MF"; - - /** - * Performs additional validation to ensure that the classpath of the current Aether II installation - * comes from a file which has an expected name. It's very common for third-party distributors to - * change the file name. - * @param clazz The main mod's class. - * @return True if the extended validation succeeded, otherwise false. - */ - public static boolean validate(final File file) - { - Manifest prop; - - try (JarInputStream stream = new JarInputStream(new BufferedInputStream(new FileInputStream(file)))) - { - prop = stream.getManifest(); - } - catch (IOException e) - { - AetherCore.LOGGER.warn("Couldn't open and decode JAR manifest information", e); - - return true; - } - - String expectedFileName = prop.getMainAttributes().getValue("SignedFileName"); - - if (expectedFileName == null) - { - AetherCore.LOGGER.warn("JAR manifest does not contain attributes for extended validation"); - - return true; - } - - return file.getName().equals(expectedFileName); - } -} diff --git a/src/main/java/com/gildedgames/aether/common/util/ObjectHolderHelper.java b/src/main/java/com/gildedgames/aether/common/util/ObjectHolderHelper.java deleted file mode 100644 index a2dd3208e6..0000000000 --- a/src/main/java/com/gildedgames/aether/common/util/ObjectHolderHelper.java +++ /dev/null @@ -1,29 +0,0 @@ -package com.gildedgames.aether.common.util; - -import java.lang.reflect.Field; - -public class ObjectHolderHelper -{ - public static void validateEntries(Class<?> clazz, Class<?> type) - { - for (Field field : clazz.getDeclaredFields()) - { - if (field.getType() != type) - { - continue; - } - - try - { - if (field.get(null) == null) - { - throw new IllegalStateException("Field is null in registrar " + clazz.getSimpleName() + ": " + field.getName()); - } - } - catch (IllegalAccessException e) - { - throw new RuntimeException("Could not use reflection to access field " + field.getName() + " in registrar " + clazz.getSimpleName(), e); - } - } - } -} diff --git a/src/main/java/com/gildedgames/aether/common/util/helpers/AetherHelper.java b/src/main/java/com/gildedgames/aether/common/util/helpers/AetherHelper.java deleted file mode 100644 index aba76212bf..0000000000 --- a/src/main/java/com/gildedgames/aether/common/util/helpers/AetherHelper.java +++ /dev/null @@ -1,67 +0,0 @@ -package com.gildedgames.aether.common.util.helpers; - -import com.gildedgames.aether.common.AetherCore; -import com.gildedgames.aether.common.init.DimensionsAether; -import com.gildedgames.aether.common.init.InstancesAether; -import com.gildedgames.orbis.lib.world.instances.IInstance; -import net.minecraft.world.World; -import net.minecraftforge.common.DimensionManager; - -public class AetherHelper -{ - - public static boolean isEnabled(World world) - { - if (world == null) - { - return false; - } - - return world.provider.getDimensionType() == DimensionsAether.AETHER || world.provider.getDimensionType() == DimensionsAether.NECROMANCER_TOWER; - } - - public static boolean isEnabled(int dimension) - { - World world = DimensionManager.getWorld(dimension); - - if (world != null) - { - return isEnabled(world); - } - - return isNecromancerTower(dimension) || isAether(dimension); - } - - public static boolean isNecromancerTower(int dimension) - { - IInstance instance = InstancesAether.NECROMANCER_TOWER_HANDLER.getFromDimId(dimension); - - return instance != null || dimension == AetherCore.CONFIG.necromancerDimId; - } - - public static boolean isAether(int dimension) - { - return dimension == AetherCore.CONFIG.aetherDimID; - } - - public static boolean isAether(World world) - { - if (world == null) - { - return false; - } - - return world.provider.getDimensionType() == DimensionsAether.AETHER; - } - - public static boolean isNecromancerTower(World world) - { - if (world == null) - { - return false; - } - - return world.provider.getDimensionType() == DimensionsAether.NECROMANCER_TOWER; - } - -} diff --git a/src/main/java/com/gildedgames/aether/common/util/helpers/EntityUtil.java b/src/main/java/com/gildedgames/aether/common/util/helpers/EntityUtil.java deleted file mode 100644 index 7005864384..0000000000 --- a/src/main/java/com/gildedgames/aether/common/util/helpers/EntityUtil.java +++ /dev/null @@ -1,296 +0,0 @@ -package com.gildedgames.aether.common.util.helpers; - -import com.gildedgames.aether.api.entity.effects.IAetherStatusEffectPool; -import com.gildedgames.aether.api.entity.effects.IAetherStatusEffects; -import com.gildedgames.aether.api.registrar.CapabilitiesAether; -import com.gildedgames.aether.client.gui.EffectSystemOverlay; -import com.gildedgames.aether.client.renderer.particles.ParticleAetherStatusEffect; -import com.gildedgames.aether.common.AetherCore; -import com.gildedgames.aether.common.network.NetworkingAether; -import com.gildedgames.aether.common.network.packets.PacketStatusParticles; -import net.minecraft.block.state.IBlockState; -import net.minecraft.client.Minecraft; -import net.minecraft.client.entity.AbstractClientPlayer; -import net.minecraft.client.multiplayer.WorldClient; -import net.minecraft.client.resources.DefaultPlayerSkin; -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityList; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.MultiPartEntityPart; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.init.Blocks; -import net.minecraft.util.DamageSource; -import net.minecraft.util.EnumParticleTypes; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.MathHelper; -import net.minecraft.world.EnumSkyBlock; -import net.minecraft.world.World; -import net.minecraft.world.WorldServer; -import net.minecraftforge.fml.client.FMLClientHandler; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; - -import java.util.UUID; - -public class EntityUtil -{ - public static boolean checkEntityClass(final Entity entity, final Class<?> clazz) - { - // Some entities use this, need to check for cast to get parent - if (entity instanceof MultiPartEntityPart) - { - final MultiPartEntityPart multi = (MultiPartEntityPart) entity; - - if (multi.parent.getClass() != clazz) - { - return false; - } - } - - return entity.getClass() == clazz; - } - - @SuppressWarnings("unchecked") - public static <T extends Entity> T clone(final T entity) - { - final T newEnt = (T) EntityList.newEntity(entity.getClass(), entity.getEntityWorld()); - - if (newEnt != null) - { - newEnt.copyDataFromOld(entity); - } - - return newEnt; - } - - public static void despawnEntityDuringDaytime(final EntityLivingBase entity) - { - if (entity.ticksExisted % 20 == 0) - { - final BlockPos blockpos = new BlockPos(entity.posX, entity.getEntityBoundingBox().minY, entity.posZ); - - if (!entity.world.isRemote && entity.world.getLightFor(EnumSkyBlock.SKY, blockpos) - entity.world.getSkylightSubtracted() >= 15 && entity.world - .canBlockSeeSky(blockpos)) - { - entity.attackEntityFrom(DamageSource.OUT_OF_WORLD, 1.0F); - - final double x = entity.posX; - final double y = (entity.getEntityBoundingBox().maxY - entity.getEntityBoundingBox().minY) / 2 + entity.getEntityBoundingBox().minY; - final double z = entity.posZ; - - final double motionX = 0; - final double motionY = 0; - final double motionZ = 0; - - for (int i = 0; i < 15; i++) - { - final EnumParticleTypes type = entity.getRNG().nextBoolean() ? EnumParticleTypes.SMOKE_LARGE : EnumParticleTypes.SMOKE_NORMAL; - final double radius = 0.3; - - final double randX = entity.getRNG().nextDouble() * (entity.getRNG().nextBoolean() ? 1.0 : -1.0) * radius; - final double randZ = entity.getRNG().nextDouble() * (entity.getRNG().nextBoolean() ? 1.0 : -1.0) * radius; - - if (entity.world.isRemote) - { - entity.world.spawnParticle(type, x + randX, y, z + randZ, motionX, motionY, motionZ); - } - else if (entity.world instanceof WorldServer) - { - final WorldServer worldServer = (WorldServer) entity.world; - worldServer.spawnParticle(type, - x + randX, y, z + randZ, 1, motionX, motionY, motionZ, (entity.world.rand.nextBoolean() ? 0.01D : -0.01D)); - } - } - } - } - } - - public static Entity getEntityFromUUID(final World world, final UUID uuid) - { - for (int i = 0; i < world.loadedEntityList.size(); ++i) - { - final Entity entity = world.loadedEntityList.get(i); - - if (uuid.equals(entity.getUniqueID())) - { - return entity; - } - } - - return null; - } - - public static void facePos(final Entity entity, final BlockPos pos, final float maxYawIncrease, final float maxPitchIncrease) - { - facePos(entity, pos.getX(), pos.getY(), pos.getZ(), maxYawIncrease, maxPitchIncrease); - } - - public static double getYawFacingPosition(final Entity entity, final double posX, final double posZ) - { - final double x = posX - entity.posX; - final double z = posZ - entity.posZ; - - return (MathHelper.atan2(z, x) * (180D / Math.PI)) - 90.0D; - } - - public static void facePos(final Entity entity, final double posX, final double posY, final double posZ, final float maxYawIncrease, - final float maxPitchIncrease) - { - final double x = posX - entity.posX; - final double y = posY - entity.posY; - final double z = posZ - entity.posZ; - - final double d3 = (double) MathHelper.sqrt(x * x + z * z); - final float f = (float) (MathHelper.atan2(z, x) * (180D / Math.PI)) - 90.0F; - final float f1 = (float) (-(MathHelper.atan2(y, d3) * (180D / Math.PI))); - - entity.rotationPitch = EntityUtil.updateRotation(entity.rotationPitch, f1, maxPitchIncrease); - entity.rotationYaw = EntityUtil.updateRotation(entity.rotationYaw, f, maxYawIncrease); - } - - public static float updateRotation(final float angle, final float targetAngle, final float maxIncrease) - { - float f = MathHelper.wrapDegrees(targetAngle - angle); - - if (f > maxIncrease) - { - f = maxIncrease; - } - - if (f < -maxIncrease) - { - f = -maxIncrease; - } - - return angle + f; - } - - public static void spawnParticleLineBetween(final Entity e1, final Entity e2, final double density, final EnumParticleTypes type, final int... parameters) - { - for (int k = 0; k < 1; ++k) - { - final World world = e1.world; - - double currentX = e2.posX; - double currentY = (e2.getEntityBoundingBox().maxY - e2.getEntityBoundingBox().minY) / 2 + e2.getEntityBoundingBox().minY; - double currentZ = e2.posZ; - - final double width = e1.getEntityBoundingBox().maxX - e1.getEntityBoundingBox().minX; - final double length1 = e1.getEntityBoundingBox().maxZ - e1.getEntityBoundingBox().minZ; - - final double targetX = e1.getEntityBoundingBox().minX + (width / 2); - final double targetY = e1.posY; - final double targetZ = e1.getEntityBoundingBox().minZ + (length1 / 2); - - final double difXt = targetX - e2.posX; - double difY = targetY - e2.posY; - double difZ = targetZ - e2.posZ; - - final double length = Math.sqrt(difXt * difXt + difY * difY + difZ * difZ); - - final double difX = difXt / (length * density); - difY /= length * density; - difZ /= length * density; - - final double veldif = difX / difXt; - double velcur = 1; - - final double randX = difX * world.rand.nextDouble(); - final double randZ = difZ * world.rand.nextDouble(); - - while (Math.signum(difX) == 1 ? currentX < targetX : currentX > targetX) - { - final double motionX = e2.motionX * velcur; - final double motionY = e2.motionY * velcur; - final double motionZ = e2.motionZ * velcur; - - if (e1.world.isRemote) - { - e1.world.spawnParticle(type, currentX + randX, currentY, currentZ + randZ, motionX, motionY, motionZ, parameters); - } - else if (e1.world instanceof WorldServer) - { - final WorldServer worldServer = (WorldServer) e1.world; - worldServer.spawnParticle(type, - currentX + randX, currentY, - currentZ + randZ, 1, motionX, motionY, motionZ, (world.rand.nextBoolean() ? 0.01D : -0.01D), parameters); - } - - currentX += difX; - currentY += difY; - currentZ += difZ; - velcur -= veldif; - } - } - } - - public static String getSkin(final EntityPlayer player) - { - String skinType = DefaultPlayerSkin.getSkinType(player.getUniqueID()); - - if (player instanceof AbstractClientPlayer) - { - skinType = ((AbstractClientPlayer) player).getSkinType(); - } - - return skinType; - } - - public static IBlockState getBlockBelow(final Entity entity) - { - return getBlockBelow(entity.world, entity.getPosition()); - } - - public static IBlockState getBlockBelow(final World world, BlockPos pos) - { - IBlockState state; - - state = world.getBlockState(pos); - - while (state == Blocks.AIR.getDefaultState() && pos.getY() > 0 && pos.getY() < 256) - { - pos = pos.down(); - - state = world.getBlockState(pos); - } - - return state; - } - - public static void spawnEffectParticles(final EntityLivingBase entity, final IAetherStatusEffects.effectTypes effect) - { - IAetherStatusEffectPool statusEffectPool = entity.getCapability(CapabilitiesAether.STATUS_EFFECT_POOL, null); - - if (!entity.world.isRemote) - { - if (statusEffectPool != null) - { - if (effect != null) - { - float r = 0, g = 0, b = 0; - r = EffectSystemOverlay.Color.getColorFromEffect(effect).r / 255.F; - g = EffectSystemOverlay.Color.getColorFromEffect(effect).g / 255.F; - b = EffectSystemOverlay.Color.getColorFromEffect(effect).b / 255.F; - - final double x = entity.posX; - final double y = (entity.getEntityBoundingBox().maxY - entity.getEntityBoundingBox().minY) / 2 + entity.getEntityBoundingBox().minY; - final double z = entity.posZ; - - for (int i = 0; i < 2; i++) - { - final double radius = 0.4; - - final double randX = entity.getRNG().nextDouble() * (entity.getRNG().nextBoolean() ? 1.0 : -1.0) * radius; - final double randY = entity.getRNG().nextDouble() * (entity.getRNG().nextBoolean() ? 1.0 : -1.0) * (entity.getEntityBoundingBox().maxY - entity.getEntityBoundingBox().minY); - final double randZ = entity.getRNG().nextDouble() * (entity.getRNG().nextBoolean() ? 1.0 : -1.0) * radius; - - final double randMotionY = entity.getRNG().nextInt(5); - - NetworkingAether.sendPacketToDimension(new PacketStatusParticles(x + randX, y + randY, z + randZ, - 0, randMotionY == 0 ? 0.1 : randMotionY / 50, 0, r, g, b), entity.dimension); - } - } - } - } - } -} diff --git a/src/main/java/com/gildedgames/aether/common/util/helpers/IslandHelper.java b/src/main/java/com/gildedgames/aether/common/util/helpers/IslandHelper.java deleted file mode 100644 index 3fdaceef1f..0000000000 --- a/src/main/java/com/gildedgames/aether/common/util/helpers/IslandHelper.java +++ /dev/null @@ -1,49 +0,0 @@ -package com.gildedgames.aether.common.util.helpers; - -import com.gildedgames.aether.api.world.islands.IIslandData; -import com.gildedgames.aether.api.world.preparation.IPrepSector; -import com.gildedgames.aether.common.AetherCore; -import com.gildedgames.aether.common.world.aether.PrepSectorDataAether; -import com.gildedgames.aether.common.world.preparation.PrepHelper; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.World; - -public class IslandHelper -{ - - public static BlockPos getOutpostPos(final World world, final BlockPos pos) - { - IIslandData island = get(world, pos.getX() >> 4, pos.getZ() >> 4); - - if (island != null && island.getOutpostPos() != null) - { - return island.getOutpostPos(); - } - - if (island != null) - { - AetherCore.LOGGER.info("SOMETHING IS VERY WRONG - AN ISLAND DIDN'T HAVE A RESPAWN POINT, PLAYER WILL SPAWN AT ISLAND CENTER NOW"); - - return new BlockPos(island.getBounds().getCenterX(), world.getHeight((int) island.getBounds().getCenterX(), (int) island.getBounds().getCenterZ()), - island.getBounds().getCenterZ()); - } - - AetherCore.LOGGER.info("SOMETHING IS VERY WRONG - AN ISLAND DIDN'T HAVE A RESPAWN POINT, PLAYER WILL SPAWN AT ORIGIN NOW"); - - return BlockPos.ORIGIN; - } - - public static IIslandData get(World world, int chunkX, int chunkZ) - { - IPrepSector sector = PrepHelper.getSector(world, chunkX, chunkZ); - - if (sector != null && sector.getData() instanceof PrepSectorDataAether) - { - PrepSectorDataAether data = (PrepSectorDataAether) sector.getData(); - - return data.getIslandData(); - } - - return null; - } -} diff --git a/src/main/java/com/gildedgames/aether/common/util/helpers/ItemHelper.java b/src/main/java/com/gildedgames/aether/common/util/helpers/ItemHelper.java deleted file mode 100644 index 9e7213c4a0..0000000000 --- a/src/main/java/com/gildedgames/aether/common/util/helpers/ItemHelper.java +++ /dev/null @@ -1,56 +0,0 @@ -package com.gildedgames.aether.common.util.helpers; - -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraftforge.oredict.OreDictionary; - -public class ItemHelper -{ - public static int getKeyForItemStack(ItemStack stack, boolean hashDamage) - { - if (stack == null) - { - return 0; - } - - int id = Item.getIdFromItem(stack.getItem()); - - int hash = (id & 0xFFFF) << 16; - - if (!stack.isItemStackDamageable() && stack.getItemDamage() != OreDictionary.WILDCARD_VALUE && hashDamage) - { - hash = hash | (stack.getItemDamage() & 0xFFFF); - } - - return hash; - } - - public static int getKeyForItemStack(ItemStack stack) - { - return getKeyForItemStack(stack, true); - } - - public static boolean areEqual(ItemStack s1, ItemStack s2) - { - return ItemHelper.getKeyForItemStack(s1) == ItemHelper.getKeyForItemStack(s2); - } - - public static int getSlotFor(ItemStack stack, EntityPlayer player) - { - for (int i = 0; i < player.inventory.mainInventory.size(); ++i) - { - if (!(player.inventory.mainInventory.get(i)).isEmpty() && stackEqualExact(stack, player.inventory.mainInventory.get(i))) - { - return i; - } - } - - return -1; - } - - private static boolean stackEqualExact(ItemStack stack1, ItemStack stack2) - { - return stack1.getItem() == stack2.getItem() && (!stack1.getHasSubtypes() || stack1.getMetadata() == stack2.getMetadata()) && ItemStack.areItemStackTagsEqual(stack1, stack2); - } -} diff --git a/src/main/java/com/gildedgames/aether/common/util/helpers/MapGen.java b/src/main/java/com/gildedgames/aether/common/util/helpers/MapGen.java deleted file mode 100644 index fd2a02a476..0000000000 --- a/src/main/java/com/gildedgames/aether/common/util/helpers/MapGen.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.gildedgames.aether.common.util.helpers; - -import net.minecraft.item.ItemStack; - -import java.util.HashMap; -import java.util.Map; - -public class MapGen -{ - public static Map<ItemStack, Integer> genMap(ItemStack stack, int integer) - { - Map<ItemStack, Integer> map = new HashMap<>(); - map.put(stack, integer); - return map; - } -} diff --git a/src/main/java/com/gildedgames/aether/common/util/helpers/MathUtil.java b/src/main/java/com/gildedgames/aether/common/util/helpers/MathUtil.java deleted file mode 100644 index 7eef49029f..0000000000 --- a/src/main/java/com/gildedgames/aether/common/util/helpers/MathUtil.java +++ /dev/null @@ -1,45 +0,0 @@ -package com.gildedgames.aether.common.util.helpers; - -import net.minecraft.util.math.MathHelper; - -import java.util.List; -import java.util.Random; - -public class MathUtil -{ - - public static boolean epsilonEquals(float a, float b) - { - return MathHelper.abs(b - a) < 1.0E-5F; - } - - public static <T> T getRandomElement(List<T> from, Random rand) - { - return from.get(rand.nextInt(from.size())); - } - - public static double getDoubleRange(Random random, double minimum, double maximum) - { - return minimum >= maximum ? minimum : (random.nextDouble() * (maximum - minimum + 1)) + minimum; - } - - public static float interpolateRotation(float prevYawOffset, float yawOffset, float partialTicks) - { - float f = yawOffset - prevYawOffset; - - while (f < -180.0F) - { - f += 360.0F; - } - - while (f >= 180.0F) - { - f -= 360.0F; - } - - return prevYawOffset + partialTicks * f; - } - - - -} diff --git a/src/main/java/com/gildedgames/aether/common/util/helpers/PerfHelper.java b/src/main/java/com/gildedgames/aether/common/util/helpers/PerfHelper.java deleted file mode 100644 index 0fa2772faa..0000000000 --- a/src/main/java/com/gildedgames/aether/common/util/helpers/PerfHelper.java +++ /dev/null @@ -1,15 +0,0 @@ -package com.gildedgames.aether.common.util.helpers; - -import com.gildedgames.aether.common.AetherCore; - -public class PerfHelper -{ - public static void measure(String name, Runnable o) - { - long start = System.nanoTime(); - - o.run(); - - AetherCore.LOGGER.debug("'{}' completed in {}ms", name, ((System.nanoTime() - start) / 1000000)); - } -} diff --git a/src/main/java/com/gildedgames/aether/common/util/helpers/PlayerUtil.java b/src/main/java/com/gildedgames/aether/common/util/helpers/PlayerUtil.java deleted file mode 100644 index ca19c508b0..0000000000 --- a/src/main/java/com/gildedgames/aether/common/util/helpers/PlayerUtil.java +++ /dev/null @@ -1,76 +0,0 @@ -package com.gildedgames.aether.common.util.helpers; - -import com.gildedgames.aether.api.player.IPlayerAether; -import com.gildedgames.aether.common.capabilities.entity.player.modules.PlayerEquipmentModule; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.inventory.IInventory; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.util.EnumHand; -import net.minecraft.util.NonNullList; - -public class PlayerUtil -{ - public static boolean isWearingEquipment(IPlayerAether aePlayer, Item... items) - { - PlayerEquipmentModule equipmentModule = aePlayer.getModule(PlayerEquipmentModule.class); - - IInventory equipmentInventory = equipmentModule.getInventory(); - NonNullList<ItemStack> armorInventory = aePlayer.getEntity().inventory.armorInventory; - - for (Item item : items) - { - boolean found = false; - - for (int i = 0; i < equipmentInventory.getSizeInventory(); i++) - { - ItemStack stack = equipmentInventory.getStackInSlot(i); - - if (stack.getItem() == item) - { - found = true; - - break; - } - } - - for (ItemStack stack : armorInventory) - { - if (stack.getItem() == item) - { - found = true; - - break; - } - } - - if (!found) - { - return false; - } - } - - return true; - } - - public static void fillBucketInHand(EntityPlayer player, EnumHand hand, ItemStack emptyBucket, ItemStack fillBucket) - { - final int invSlot = hand == EnumHand.MAIN_HAND ? player.inventory.currentItem : 40; - - if (emptyBucket.getCount() == 1) - { - player.inventory.setInventorySlotContents(invSlot, fillBucket); - } - else - { - emptyBucket.shrink(1); - - player.inventory.setInventorySlotContents(invSlot, emptyBucket); - - if (!player.inventory.addItemStackToInventory(fillBucket)) - { - player.dropItem(fillBucket, false); - } - } - } -} diff --git a/src/main/java/com/gildedgames/aether/common/util/helpers/RecipeUtil.java b/src/main/java/com/gildedgames/aether/common/util/helpers/RecipeUtil.java deleted file mode 100644 index fe6acddc50..0000000000 --- a/src/main/java/com/gildedgames/aether/common/util/helpers/RecipeUtil.java +++ /dev/null @@ -1,206 +0,0 @@ -package com.gildedgames.aether.common.util.helpers; - -import com.gildedgames.aether.api.recipes.simple.ISimpleRecipe; -import com.gildedgames.aether.common.recipes.simple.OreDictionaryRequirement; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraftforge.oredict.OreDictionary; - -public class RecipeUtil -{ - - private RecipeUtil() - { - - } - - public static boolean areEqual(Object obj1, Object obj2) - { - if (obj2 == null || obj1 == null) - { - return false; - } - - if (obj1 instanceof ItemStack && obj2 instanceof ItemStack) - { - ItemStack stack1 = (ItemStack) obj1; - ItemStack stack2 = (ItemStack) obj2; - - if (stack1.getItemDamage() == OreDictionary.WILDCARD_VALUE || stack2.getItemDamage() == OreDictionary.WILDCARD_VALUE) - { - return stack2.getItem() == stack1.getItem(); - } - - return ItemStack.areItemsEqualIgnoreDurability(stack1, stack2); - } - - return obj1.equals(obj2) || obj2.equals(obj1); - } - - public static boolean areEqual(Object obj, ItemStack stack) - { - if (stack == ItemStack.EMPTY || obj == ItemStack.EMPTY || stack.isEmpty() || (obj instanceof ItemStack && ((ItemStack) obj).isEmpty())) - { - return false; - } - - if (obj instanceof ItemStack) - { - ItemStack otherStack = (ItemStack) obj; - - if (otherStack.getItemDamage() == OreDictionary.WILDCARD_VALUE) - { - return otherStack.getItem() == stack.getItem(); - } - - return ItemStack.areItemsEqualIgnoreDurability((ItemStack) obj, stack); - } - else if (obj instanceof OreDictionaryRequirement) - { - OreDictionaryRequirement oreReq = (OreDictionaryRequirement) obj; - - return oreReq.matches(stack); - } - else if (obj instanceof String) - { - int[] stackIds = OreDictionary.getOreIDs(stack); - int ore = OreDictionary.getOreID((String) obj); - - for (int id : stackIds) - { - if (ore == id) - { - return true; - } - } - } - - return false; - } - - public static boolean hasEnoughOfMaterial(EntityPlayer player, Object req) - { - if (req == null) - { - return false; - } - - int amount = 0; - - if (req instanceof ItemStack) - { - amount = ((ItemStack) req).getCount(); - } - else if (req instanceof OreDictionaryRequirement) - { - amount = ((OreDictionaryRequirement) req).getCount(); - } - - for (int i = 0; i < player.inventory.mainInventory.size(); i++) - { - ItemStack inventoryStack = player.inventory.mainInventory.get(i); - - if (RecipeUtil.areEqual(req, inventoryStack)) - { - amount = Math.max(0, amount - inventoryStack.getCount()); - - if (amount <= 0) - { - return true; - } - } - } - - return false; - } - - public static boolean canCraft(EntityPlayer player, ISimpleRecipe recipe) - { - if (recipe == null) - { - return false; - } - - outside: - for (int reqIndex = 0; reqIndex < recipe.getRequired().length; reqIndex++) - { - Object req = recipe.getRequired()[reqIndex]; - - int amount = 0; - - if (req instanceof ItemStack) - { - amount = ((ItemStack) req).getCount(); - } - else if (req instanceof OreDictionaryRequirement) - { - amount = ((OreDictionaryRequirement) req).getCount(); - } - - for (int i = 0; i < player.inventory.mainInventory.size(); i++) - { - ItemStack inventoryStack = player.inventory.mainInventory.get(i); - - if (RecipeUtil.areEqual(req, inventoryStack)) - { - amount = Math.max(0, amount - inventoryStack.getCount()); - - if (amount <= 0) - { - continue outside; - } - } - } - - if (amount > 0) - { - return false; - } - } - - return true; - } - - public static int getTotalTimesCanCraft(EntityPlayer player, ISimpleRecipe recipe) - { - if (recipe == null) - { - return 0; - } - - int totalCount = Integer.MAX_VALUE; - - for (int reqIndex = 0; reqIndex < recipe.getRequired().length; reqIndex++) - { - Object req = recipe.getRequired()[reqIndex]; - - int amount = 0; - - if (req instanceof ItemStack) - { - amount = ((ItemStack) req).getCount(); - } - else if (req instanceof OreDictionaryRequirement) - { - amount = ((OreDictionaryRequirement) req).getCount(); - } - - int innerTotalCount = 0; - - for (int i = 0; i < player.inventory.mainInventory.size(); i++) - { - ItemStack inventoryStack = player.inventory.mainInventory.get(i); - - if (RecipeUtil.areEqual(req, inventoryStack)) - { - innerTotalCount += inventoryStack.getCount(); - } - } - - totalCount = Math.min(innerTotalCount / amount, totalCount); - } - - return totalCount; - } - -} diff --git a/src/main/java/com/gildedgames/aether/common/util/helpers/WorldUtil.java b/src/main/java/com/gildedgames/aether/common/util/helpers/WorldUtil.java deleted file mode 100644 index 65a135b3ad..0000000000 --- a/src/main/java/com/gildedgames/aether/common/util/helpers/WorldUtil.java +++ /dev/null @@ -1,116 +0,0 @@ -package com.gildedgames.aether.common.util.helpers; - -import net.minecraft.block.state.IBlockState; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.init.Blocks; -import net.minecraft.util.math.AxisAlignedBB; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.MathHelper; -import net.minecraft.world.World; -import net.minecraft.world.chunk.Chunk; - -import java.util.List; - -public class WorldUtil -{ - - public static boolean isBlockInAABB(AxisAlignedBB bb, World world, IBlockState state) - { - return isBlockInAABB(bb, world, state, true); - } - - public static boolean isBlockInAABB(AxisAlignedBB bb, World world, IBlockState state, boolean checkLoaded) - { - int minX = MathHelper.floor(bb.minX); - int minY = MathHelper.floor(bb.minY); - int minZ = MathHelper.floor(bb.minZ); - - int maxX = MathHelper.ceil(bb.maxX); - int maxY = MathHelper.ceil(bb.maxY); - int maxZ = MathHelper.ceil(bb.maxZ); - - if (checkLoaded && !world.isAreaLoaded(new BlockPos(minX, minY, minZ), new BlockPos(maxX, maxY, maxZ))) - { - return false; - } - - BlockPos.MutableBlockPos pos = new BlockPos.MutableBlockPos(); - - Chunk chunk = null; - - for (int x = minX; x < maxX; x++) - { - for (int z = minZ; z < maxZ; z++) - { - if (chunk != null && (chunk.x != (x >> 4) || chunk.z != (z >> 4))) - { - chunk = null; - } - - if (chunk == null) - { - chunk = world.getChunk(x >> 4, z >> 4); - } - - for (int y = minY; y < maxY; y++) - { - pos.setPos(x, y, z); - - if (world.getBlockState(pos) == state) - { - return true; - } - } - - } - - } - - return false; - } - - public static boolean isBlockBelowAABB(AxisAlignedBB bb, World world, IBlockState block) - { - int minX = MathHelper.floor(bb.minX); - int maxX = MathHelper.floor(bb.maxX); - int minY = MathHelper.floor(bb.minY); - int maxY = MathHelper.floor(bb.maxY); - int minZ = MathHelper.floor(bb.minZ); - int maxZ = MathHelper.floor(bb.maxZ); - - if (!world.isAreaLoaded(new BlockPos(minX, minY, minZ), new BlockPos(maxX, maxY, maxZ))) - { - return false; - } - - BlockPos.PooledMutableBlockPos pos = BlockPos.PooledMutableBlockPos.retain(); - - for (int x = minX; x <= maxX; x++) - { - for (int z = minZ; z <= maxZ; z++) - { - for (int y = maxY; y >= 0; y--) - { - IBlockState state = world.getBlockState(pos.setPos(x, y, z)); - - if (state == block) - { - pos.release(); - - return true; - } - - if (state != Blocks.AIR.getDefaultState()) - { - break; - } - } - } - } - - pos.release(); - - return false; - } - -} diff --git a/src/main/java/com/gildedgames/aether/common/util/selectors/ItemEntry.java b/src/main/java/com/gildedgames/aether/common/util/selectors/ItemEntry.java deleted file mode 100644 index 122b3c4d63..0000000000 --- a/src/main/java/com/gildedgames/aether/common/util/selectors/ItemEntry.java +++ /dev/null @@ -1,20 +0,0 @@ -package com.gildedgames.aether.common.util.selectors; - -import net.minecraft.item.Item; -import net.minecraft.util.WeightedRandom; - -public class ItemEntry extends WeightedRandom.Item -{ - private final Item item; - - public ItemEntry(Item item, int itemWeightIn) - { - super(itemWeightIn); - this.item = item; - } - - public Item getItem() - { - return this.item; - } -} diff --git a/src/main/java/com/gildedgames/aether/common/util/selectors/RandomItemSelector.java b/src/main/java/com/gildedgames/aether/common/util/selectors/RandomItemSelector.java deleted file mode 100644 index 7450026246..0000000000 --- a/src/main/java/com/gildedgames/aether/common/util/selectors/RandomItemSelector.java +++ /dev/null @@ -1,50 +0,0 @@ -package com.gildedgames.aether.common.util.selectors; - -import com.gildedgames.aether.api.items.loot.Loot; -import com.gildedgames.aether.common.init.ItemsAetherInit; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; - -import java.util.ArrayList; -import java.util.Random; -import java.util.function.Predicate; - -public class RandomItemSelector implements Loot -{ - - private ArrayList<Item> validStackCache; - - private final Predicate<Item> constraint; - - public RandomItemSelector(Predicate<Item> constraint) - { - this.constraint = constraint; - } - - @Override - public ItemStack select(Random random) - { - if (this.validStackCache == null) - { - this.validStackCache = new ArrayList<>(); - - for (Item item : ItemsAetherInit.getRegisteredItems()) - { - if (item == null) - { - continue; - } - - if (this.constraint.test(item)) - { - this.validStackCache.add(item); - } - } - } - - Item item = this.validStackCache.get(random.nextInt(this.validStackCache.size())); - - return new ItemStack(item); - } - -} diff --git a/src/main/java/com/gildedgames/aether/common/world/WorldProviderAether.java b/src/main/java/com/gildedgames/aether/common/world/WorldProviderAether.java deleted file mode 100644 index a0c8a0a945..0000000000 --- a/src/main/java/com/gildedgames/aether/common/world/WorldProviderAether.java +++ /dev/null @@ -1,253 +0,0 @@ -package com.gildedgames.aether.common.world; - -import com.gildedgames.aether.api.registrar.BlocksAether; -import com.gildedgames.aether.api.registrar.CapabilitiesAether; -import com.gildedgames.aether.api.util.OpenSimplexNoise; -import com.gildedgames.aether.api.world.islands.precipitation.IPrecipitationManager; -import com.gildedgames.aether.client.renderer.world.RenderWorldPrecipitation; -import com.gildedgames.aether.client.renderer.world.RenderWorldSkybox; -import com.gildedgames.aether.common.init.DimensionsAether; -import com.gildedgames.aether.common.world.biomes.BiomeProviderAether; -import com.gildedgames.aether.common.world.generators.ChunkGeneratorAether; -import net.minecraft.block.Block; -import net.minecraft.entity.player.EntityPlayerMP; -import net.minecraft.util.EnumFacing; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.MathHelper; -import net.minecraft.util.math.Vec3d; -import net.minecraft.world.DimensionType; -import net.minecraft.world.World; -import net.minecraft.world.WorldProviderSurface; -import net.minecraft.world.biome.Biome; -import net.minecraft.world.chunk.Chunk; -import net.minecraft.world.gen.IChunkGenerator; -import net.minecraftforge.fml.common.FMLCommonHandler; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; - -public class WorldProviderAether extends WorldProviderSurface -{ - @Override - public void updateWeather() - { - IPrecipitationManager precip = this.world.getCapability(CapabilitiesAether.PRECIPITATION_MANAGER, null); - - if (precip != null) - { - precip.tick(); - } - } - - private final float[] sunriseSunsetColors = new float[4]; - - private OpenSimplexNoise noise; - - public WorldProviderAether() - { - if (FMLCommonHandler.instance().getSide() == Side.CLIENT) - { - this.setupClientRenderer(); - } - } - - public static WorldProviderAether get(World world) - { - return (WorldProviderAether) world.provider; - } - - public OpenSimplexNoise getNoise() - { - return this.noise; - } - - @SideOnly(Side.CLIENT) - private void setupClientRenderer() - { - //this.setSkyRenderer(new RenderWorldSkybox()); - this.setWeatherRenderer(new RenderWorldPrecipitation()); - } - - @Override - protected void init() - { - this.hasSkyLight = true; - this.biomeProvider = new BiomeProviderAether(this.world); - this.noise = new OpenSimplexNoise(this.world.getSeed()); - } - - @Override - public Biome getBiomeForCoords(final BlockPos pos) - { - return super.getBiomeForCoords(pos); - } - - @Override - public IChunkGenerator createChunkGenerator() - { - return new ChunkGeneratorAether(this.world, this.world.getSeed()); - } - - public BlockPos getTopBlockPos(final BlockPos pos) - { - BlockPos.MutableBlockPos testPos = new BlockPos.MutableBlockPos(pos.getX(), 0, pos.getZ()); - - while (!this.world.isAirBlock(testPos.up())) - { - testPos = testPos.move(EnumFacing.UP); - } - - return testPos; - } - - @Override - public boolean canSnowAt(final BlockPos pos, final boolean checkLight) - { - if (pos.getY() <= 80) - { - return false; - } - - if (!super.canSnowAt(pos, checkLight)) - { - return false; - } - - Block down = this.world.getBlockState(pos.down()).getBlock(); - - return down != BlocksAether.highlands_ice && down != BlocksAether.highlands_packed_ice; - } - - // Disables Minecraft weather mechanics for the dimension - // See PrecipitationManagerImpl#updateBlocks - @Override - public boolean canDoRainSnowIce(final Chunk chunk) - { - return false; - } - - @Override - public int getRespawnDimension(final EntityPlayerMP player) - { - return 0; - } - - @Override - public boolean canCoordinateBeSpawn(final int x, final int z) - { - final BlockPos top = this.getTopBlockPos(new BlockPos(x, 0, z)); - - return !this.world.isAirBlock(top) && this.world.getBlockState(top) == BlocksAether.aether_grass.getDefaultState(); - } - - @Override - public boolean canRespawnHere() - { - return true; - } - - @Override - public boolean isSurfaceWorld() - { - return true; - } - - @Override - public String getSaveFolder() - { - return "AETHER"; - } - - @Override - public double getHorizon() - { - return 0.0; - } - - @Override - public DimensionType getDimensionType() - { - return DimensionsAether.AETHER; - } - - @Override - @SideOnly(Side.CLIENT) - public Vec3d getFogColor(final float angle, final float partialTicks) - { - final int color = 0xCED5EB; - - float cos = MathHelper.cos(angle * 3.141593F * 2.0F) * 2.0F + 0.5F; - - if (cos < 0.0F) - { - cos = 0.0F; - } - else if (cos > 1.0F) - { - cos = 1.0F; - } - - float red = (color >> 16 & 0xff) / 255F; - float green = (color >> 8 & 0xff) / 255F; - float blue = (color & 0xff) / 255F; - - red *= cos * 0.94F + 0.06F; - green *= cos * 0.94F + 0.06F; - blue *= cos * 0.91F + 0.09F; - - return new Vec3d(red, green, blue); - } - - @Override - @SideOnly(Side.CLIENT) - public boolean doesXZShowFog(final int x, final int z) - { - return false; - } - - @Override - @SideOnly(Side.CLIENT) - public float[] calcSunriseSunsetColors(final float angle, final float partialTicks) - { - final float f2 = 0.4F; - final float cos = MathHelper.cos(angle * 3.141593F * 2.0F) - 0.0F; - final float f4 = -0F; - - if (cos >= f4 - f2 && cos <= f4 + f2) - { - final float f5 = (cos - f4) / f2 * 0.5F + 0.5F; - float f6 = 1.0F - (1.0F - MathHelper.sin(f5 * 3.141593F)) * 0.99F; - f6 *= f6; - - this.sunriseSunsetColors[0] = f5 * 0.3F + 0.7F; - this.sunriseSunsetColors[1] = f5 * f5 * 0.7F + 0.2F; - this.sunriseSunsetColors[2] = f5 * f5 * 0.0F + 0.2F; - this.sunriseSunsetColors[3] = f6; - - return this.sunriseSunsetColors; - } - else - { - return null; - } - } - - @Override - @SideOnly(Side.CLIENT) - public double getVoidFogYFactor() - { - return 0.03125D; - } - - @Override - @SideOnly(Side.CLIENT) - public float getCloudHeight() - { - return 200; - } - - @Override - public boolean canDropChunk(final int x, final int z) - { - return true; - } -} diff --git a/src/main/java/com/gildedgames/aether/common/world/WorldProviderNecromancerTower.java b/src/main/java/com/gildedgames/aether/common/world/WorldProviderNecromancerTower.java deleted file mode 100644 index 9c01e00938..0000000000 --- a/src/main/java/com/gildedgames/aether/common/world/WorldProviderNecromancerTower.java +++ /dev/null @@ -1,147 +0,0 @@ -package com.gildedgames.aether.common.world; - -import com.gildedgames.aether.api.registrar.BiomesAether; -import com.gildedgames.aether.common.init.DimensionsAether; -import com.gildedgames.aether.common.world.generators.ChunkGeneratorNecromancerTower; -import net.minecraft.entity.Entity; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.EntityPlayerMP; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.Vec3d; -import net.minecraft.world.DimensionType; -import net.minecraft.world.WorldProviderSurface; -import net.minecraft.world.biome.Biome; -import net.minecraft.world.biome.BiomeProviderSingle; -import net.minecraft.world.gen.IChunkGenerator; - -public class WorldProviderNecromancerTower extends WorldProviderSurface -{ - - public WorldProviderNecromancerTower() - { - - } - - @Override - protected void init() - { - this.hasSkyLight = true; - this.biomeProvider = new BiomeProviderSingle(BiomesAether.INSTANCED_ZONE); - } - - @Override - public Biome getBiomeForCoords(final BlockPos pos) - { - return this.biomeProvider.getBiome(pos); - } - - @Override - public IChunkGenerator createChunkGenerator() - { - return new ChunkGeneratorNecromancerTower(this.world, this.world.getSeed()); - } - - @Override - public boolean canCoordinateBeSpawn(final int x, final int z) - { - return true; - } - - @Override - public boolean canRespawnHere() - { - return true; - } - - @Override - public boolean isSurfaceWorld() - { - return true; - } - - @Override - public int getRespawnDimension(final EntityPlayerMP player) - { - return 0; - } - - @Override - public double getHorizon() - { - return 0.0; - } - - @Override - public DimensionType getDimensionType() - { - return DimensionsAether.NECROMANCER_TOWER; - } - - @Override - public double getVoidFogYFactor() - { - return 100; - } - - @Override - public boolean isSkyColored() - { - return true; - } - - @Override - public Vec3d getSkyColor(final Entity par1Entity, final float par2) - { - return new Vec3d(0.0D, 0.0D, 0.0D); - } - - @Override - public float[] calcSunriseSunsetColors(final float f, final float f1) - { - return null; - } - - @Override - protected void generateLightBrightnessTable() - { - for (int i = 0; i <= 15; ++i) - { - final float factor = 1.0F - (float) i / 15.0F; - - this.lightBrightnessTable[i] = (1.0F - factor) / (factor * 3.0F + 1.0F) * 0.9F + 0.1F; - } - } - - @Override - public boolean canDropChunk(final int x, final int z) - { - return true; - } - - @Override - public boolean canMineBlock(final EntityPlayer player, final BlockPos pos) - { - // Doing this will prevent buckets from being used when not GM1, but will not affect block - // placement/destruction (only called in World#isBlockModifiable(EntityPlayer, Blockpos) ) - return (player.capabilities.isCreativeMode); - } - - @Override - public int getMoonPhase(final long worldTime) - { - return 1; - } - - @Override - public float calculateCelestialAngle(final long worldTime, final float partialTicks) - { - return 0.375F; - } - - @Override - public boolean canDoRainSnowIce(final net.minecraft.world.chunk.Chunk chunk) - { - return false; - } - -} diff --git a/src/main/java/com/gildedgames/aether/common/world/access/BlockAccessChunkDataContainer.java b/src/main/java/com/gildedgames/aether/common/world/access/BlockAccessChunkDataContainer.java deleted file mode 100644 index db0ae52e4d..0000000000 --- a/src/main/java/com/gildedgames/aether/common/world/access/BlockAccessChunkDataContainer.java +++ /dev/null @@ -1,163 +0,0 @@ -package com.gildedgames.aether.common.world.access; - -import com.gildedgames.aether.common.world.preparation.mask.ChunkDataContainer; -import com.gildedgames.orbis.lib.processing.IBlockAccessExtended; -import net.minecraft.block.state.IBlockState; -import net.minecraft.entity.Entity; -import net.minecraft.init.Blocks; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.EnumFacing; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.World; -import net.minecraft.world.WorldType; -import net.minecraft.world.biome.Biome; - -import javax.annotation.Nullable; - -public class BlockAccessChunkDataContainer implements IBlockAccessExtended -{ - private final World world; - - private final ChunkDataContainer container; - - private final int offsetX, offsetZ; - - public BlockAccessChunkDataContainer(final World world, final ChunkDataContainer container) - { - this.world = world; - this.container = container; - - this.offsetX = (this.container.getChunkX() * 16); - this.offsetZ = (this.container.getChunkZ() * 16); - } - - @Nullable - @Override - public World getWorld() - { - return this.world; - } - - @Override - public boolean canAccess(final BlockPos pos) - { - //TODO: - return true; - } - - @Override - public boolean canAccess(BlockPos pos, int radius) - { - //TODO: - return true; - } - - @Override - public boolean canAccess(final int x, final int z) - { - //TODO: - return true; - } - - @Override - public boolean canAccess(int minX, int minY, int minZ, int maxX, int maxY, int maxZ) - { - //TODO: - return true; - } - - @Override - public BlockPos getTopPos(final BlockPos pos) - { - return this.world.getTopSolidOrLiquidBlock(pos); - } - - @Override - public int getTopY(final int x, final int z) - { - return this.world.getHeight(x, z); - } - - @Override - public void setBlockToAir(final BlockPos pos) - { - this.container.setBlockState(pos.getX() - this.offsetX, pos.getY(), pos.getZ() - this.offsetZ, Blocks.AIR.getDefaultState()); - } - - @Override - public boolean setBlockState(final BlockPos pos, final IBlockState state) - { - this.container.setBlockState(pos.getX() - this.offsetX, pos.getY(), pos.getZ() - this.offsetZ, state); - - return true; - } - - @Override - public boolean setBlockState(final BlockPos pos, final IBlockState state, final int flags) - { - this.container.setBlockState(pos.getX() - this.offsetX, pos.getY(), pos.getZ() - this.offsetZ, state); - - return true; - } - - @Override - public void setTileEntity(final BlockPos pos, final TileEntity tileEntity) - { - this.container.setTileEntity(pos.toImmutable(), tileEntity); - } - - @Override - public void spawnEntity(Entity entity) - { - this.container.addEntity(entity); - } - - @Nullable - @Override - public TileEntity getTileEntity(final BlockPos pos) - { - return this.container.getTileEntity(pos); - } - - @Override - public int getCombinedLight(final BlockPos pos, final int lightValue) - { - return this.world.getCombinedLight(pos, lightValue); - } - - @Override - public IBlockState getBlockState(final BlockPos pos) - { - return this.container.getBlockState(pos.getX() - this.offsetX, pos.getY(), pos.getZ() - this.offsetZ); - } - - @Override - public boolean isAirBlock(final BlockPos pos) - { - return this.getBlockState(pos) != Blocks.AIR.getDefaultState(); - } - - @Override - public Biome getBiome(final BlockPos pos) - { - return this.world.getBiome(pos); - } - - @Override - public int getStrongPower(final BlockPos pos, final EnumFacing direction) - { - return this.world.getStrongPower(pos, direction); - } - - @Override - public WorldType getWorldType() - { - return this.world.getWorldType(); - } - - @Override - public boolean isSideSolid(final BlockPos pos, final EnumFacing side, final boolean _default) - { - return this.world.isSideSolid(pos, side, _default); - } -} diff --git a/src/main/java/com/gildedgames/aether/common/world/access/BlockAccessPrep.java b/src/main/java/com/gildedgames/aether/common/world/access/BlockAccessPrep.java deleted file mode 100644 index d623ff829c..0000000000 --- a/src/main/java/com/gildedgames/aether/common/world/access/BlockAccessPrep.java +++ /dev/null @@ -1,160 +0,0 @@ -package com.gildedgames.aether.common.world.access; - -import com.gildedgames.aether.api.world.preparation.*; -import com.gildedgames.aether.common.world.preparation.PrepChunkManager; -import com.gildedgames.orbis.lib.processing.IBlockAccessExtended; -import net.minecraft.block.state.IBlockState; -import net.minecraft.entity.Entity; -import net.minecraft.init.Blocks; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.EnumFacing; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.World; -import net.minecraft.world.WorldType; -import net.minecraft.world.biome.Biome; - -import javax.annotation.Nullable; - -public abstract class BlockAccessPrep implements IBlockAccessExtended -{ - protected IChunkMaskTransformer transformer; - - private World world; - - private IPrepChunkManager<? extends IChunkInfo> chunkManager; - - private IPrepSectorData sectorData; - - public BlockAccessPrep(World world, IPrepSectorData sectorData, IPrepRegistryEntry<? extends IChunkInfo> registryEntry) - { - this.world = world; - - this.sectorData = sectorData; - - this.chunkManager = new PrepChunkManager<>(world, registryEntry); - this.transformer = this.chunkManager.createMaskTransformer(); - } - - @Override - @Nullable - public World getWorld() - { - return this.world; - } - - @Override - public boolean canAccess(BlockPos pos, int radius) - { - return true; - } - - @Override - public BlockPos getTopPos(BlockPos pos) - { - return new BlockPos(pos.getX(), this.getTopY(pos.getX(), pos.getZ()), pos.getZ()); - } - - @Override - public int getTopY(int x, int z) - { - int chunkX = x >> 4; - int chunkZ = z >> 4; - - IChunkMask mask = this.chunkManager.getChunk(this.sectorData, chunkX, chunkZ); - - return mask.getHighestBlock(x & 15, z & 15); - } - - @Override - public void setBlockToAir(BlockPos pos) - { - - } - - @Override - public boolean setBlockState(BlockPos pos, IBlockState state) - { - return false; - } - - @Override - public boolean setBlockState(BlockPos pos, IBlockState state, int flags) - { - return false; - } - - @Override - public void setTileEntity(BlockPos pos, TileEntity tileEntity) - { - - } - - @Override - public void spawnEntity(Entity entity) - { - - } - - @Nullable - @Override - public TileEntity getTileEntity(BlockPos pos) - { - return null; - } - - @Override - public int getCombinedLight(BlockPos pos, int lightValue) - { - return 0; - } - - @Override - public IBlockState getBlockState(BlockPos pos) - { - IChunkMask chunk = this.getChunk(pos.getX() >> 4, pos.getZ() >> 4); - - return this.transformer.getBlockState(chunk.getBlock(pos.getX() & 15, pos.getY(), pos.getZ() & 15)); - } - - @Override - public boolean isAirBlock(BlockPos pos) - { - return this.getBlockState(pos).getBlock() == Blocks.AIR; - } - - @Override - public Biome getBiome(BlockPos pos) - { - return this.world.getBiome(pos); - } - - @Override - public int getStrongPower(BlockPos pos, EnumFacing direction) - { - return 0; - } - - @Override - public WorldType getWorldType() - { - return null; - } - - @Override - public boolean isSideSolid(BlockPos pos, EnumFacing side, boolean _default) - { - return false; - } - - protected IChunkMask getChunk(int x, int z) - { - IChunkMask chunk = this.chunkManager.getChunk(this.sectorData, x, z); - - if (chunk == null) - { - throw new RuntimeException("ChunkMask is null at position: x(" + x + "), z(" + z + ")"); - } - - return chunk; - } -} diff --git a/src/main/java/com/gildedgames/aether/common/world/aether/ChunkInfoAether.java b/src/main/java/com/gildedgames/aether/common/world/aether/ChunkInfoAether.java deleted file mode 100644 index cbd6c98a95..0000000000 --- a/src/main/java/com/gildedgames/aether/common/world/aether/ChunkInfoAether.java +++ /dev/null @@ -1,37 +0,0 @@ -package com.gildedgames.aether.common.world.aether; - -import com.gildedgames.aether.api.world.IChunkInfoAether; -import com.gildedgames.aether.api.world.islands.IIslandChunkInfo; - -public class ChunkInfoAether implements IChunkInfoAether -{ - private final IIslandChunkInfo[] islands; - - public ChunkInfoAether(int count) - { - this.islands = new IIslandChunkInfo[count]; - } - - @Override - public void setIslandData(int index, IIslandChunkInfo data) - { - if (data == null) - { - throw new IllegalArgumentException("Data must not be null"); - } - - if (this.islands[index] != null) - { - throw new IllegalArgumentException("Data already set for index " + index); - } - - this.islands[index] = data; - } - - @Override - @SuppressWarnings("unchecked") - public <T extends IIslandChunkInfo> T getIslandData(int index, Class<T> clazz) - { - return (T) this.islands[index]; - } -} diff --git a/src/main/java/com/gildedgames/aether/common/world/aether/PrepAether.java b/src/main/java/com/gildedgames/aether/common/world/aether/PrepAether.java deleted file mode 100644 index fae05d8b04..0000000000 --- a/src/main/java/com/gildedgames/aether/common/world/aether/PrepAether.java +++ /dev/null @@ -1,165 +0,0 @@ -package com.gildedgames.aether.common.world.aether; - -import com.gildedgames.aether.api.registrar.BiomesAether; -import com.gildedgames.aether.api.world.IChunkInfoAether; -import com.gildedgames.aether.api.world.islands.IIslandBounds; -import com.gildedgames.aether.api.world.islands.IIslandChunkInfo; -import com.gildedgames.aether.api.world.islands.IIslandData; -import com.gildedgames.aether.api.world.preparation.IChunkMask; -import com.gildedgames.aether.api.world.preparation.IChunkMaskTransformer; -import com.gildedgames.aether.api.world.preparation.IPrepRegistryEntry; -import com.gildedgames.aether.api.world.preparation.IPrepSectorData; -import com.gildedgames.aether.common.AetherCore; -import com.gildedgames.aether.common.init.BiomesAetherInit; -import com.gildedgames.aether.common.init.DimensionsAether; -import com.gildedgames.aether.common.world.biomes.BiomeAetherBase; -import com.gildedgames.aether.common.world.generators.ChunkGeneratorAether; -import com.gildedgames.aether.common.world.island.BlockAccessIsland; -import com.gildedgames.aether.common.world.island.IslandBounds; -import com.gildedgames.aether.common.world.island.IslandChunkMaskTransformer; -import com.gildedgames.aether.common.world.island.IslandData; -import com.gildedgames.orbis.lib.util.random.XoRoShiRoRandom; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.util.ResourceLocation; -import net.minecraft.world.World; -import net.minecraft.world.biome.Biome; -import net.minecraft.world.gen.IChunkGenerator; - -import java.util.Random; - -public class PrepAether implements IPrepRegistryEntry<IChunkInfoAether> -{ - public static final ResourceLocation UNIQUE_ID = AetherCore.getResource("islands"); - - private final IslandChunkMaskTransformer chunkMaskTransformer = new IslandChunkMaskTransformer(); - - @Override - public ResourceLocation getUniqueId() - { - return UNIQUE_ID; - } - - @Override - public int getSectorChunkArea() - { - return 30; - } - - @Override - public boolean shouldAttachTo(World world) - { - return world.provider.getDimensionType() == DimensionsAether.AETHER; - } - - @Override - public void postSectorDataCreate(World world, IPrepSectorData sectorData) - { - if (sectorData instanceof PrepSectorDataAether) - { - PrepSectorDataAether sectorDataAether = (PrepSectorDataAether) sectorData; - - IIslandData islandData = sectorDataAether.getIslandData(); - Biome biome = islandData.getBiome(); - - if (biome instanceof BiomeAetherBase) - { - BiomeAetherBase biomeAether = (BiomeAetherBase) biome; - - islandData.addComponents(biomeAether.createIslandComponents(islandData)); - - biomeAether.getBiomeDecorator().prepareDecorationsWholeIsland(world, - new BlockAccessIsland(world, islandData, sectorData, this), islandData, - new XoRoShiRoRandom(islandData.getSeed())); - } - } - } - - @Override - public IPrepSectorData createData(World world, long seed, int sectorX, int sectorY) - { - final int sectorArea = this.getSectorChunkArea() * 16; - - final int width = 480; - final int height = 255; - final int length = 480; - - final int x = (sectorArea * sectorX); - final int y = 0; - final int z = (sectorArea * sectorY); - - final IIslandBounds bounds = new IslandBounds(x, y, z, x + width, y + height, z + length); - - final long islandSeed = seed ^ ((long) x * 341873128712L + (long) z * 132897987541L); - - final Random rand = new Random(islandSeed); - - final BiomeAetherBase chosen; - - if (sectorX == 0 && sectorY == 0) - { - chosen = (BiomeAetherBase) BiomesAether.HIGHLANDS; - } - else - { - chosen = BiomesAetherInit.fetchRandomBiome(rand); - } - - final PrepSectorDataAether data = new PrepSectorDataAether(world, sectorX, sectorY); - final IslandData island = new IslandData(data, bounds, chosen, islandSeed); - - data.setIslandData(island); - - return data; - } - - @Override - public IPrepSectorData createDataAndRead(World world, NBTTagCompound tag) - { - return new PrepSectorDataAether(world, tag); - } - - @Override - public void threadSafeGenerateMask(IChunkInfoAether info, World world, IPrepSectorData sectorData, IChunkMask mask, int x, int z) - { - IChunkGenerator generator = world.provider.createChunkGenerator(); - - if (generator instanceof ChunkGeneratorAether && sectorData instanceof PrepSectorDataAether) - { - ChunkGeneratorAether aetherGen = (ChunkGeneratorAether) generator; - PrepSectorDataAether aetherData = (PrepSectorDataAether) sectorData; - - IIslandData islandData = aetherData.getIslandData(); - - aetherGen.generateBaseTerrain(info, mask, islandData, x, z); - } - } - - @Override - public IChunkMaskTransformer createMaskTransformer() - { - return this.chunkMaskTransformer; - } - - @Override - public ChunkInfoAether generateChunkColumnInfo(World world, IPrepSectorData sectorData, int chunkX, int chunkZ) - { - IChunkGenerator generator = world.provider.createChunkGenerator(); - - if (generator instanceof ChunkGeneratorAether && sectorData instanceof PrepSectorDataAether) - { - ChunkGeneratorAether aetherGen = (ChunkGeneratorAether) generator; - PrepSectorDataAether aetherData = (PrepSectorDataAether) sectorData; - - IIslandData islandData = aetherData.getIslandData(); - - IIslandChunkInfo obj = aetherGen.generateChunkColumnInfo(islandData, chunkX, chunkZ); - - ChunkInfoAether info = new ChunkInfoAether(1); - info.setIslandData(0, obj); - - return info; - } - - return null; - } -} diff --git a/src/main/java/com/gildedgames/aether/common/world/aether/PrepSectorDataAether.java b/src/main/java/com/gildedgames/aether/common/world/aether/PrepSectorDataAether.java deleted file mode 100644 index cb72df0e08..0000000000 --- a/src/main/java/com/gildedgames/aether/common/world/aether/PrepSectorDataAether.java +++ /dev/null @@ -1,109 +0,0 @@ -package com.gildedgames.aether.common.world.aether; - -import com.gildedgames.aether.api.world.islands.IIslandData; -import com.gildedgames.aether.api.world.preparation.IPrepSectorData; -import com.gildedgames.aether.common.world.island.IslandData; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.world.World; - -public class PrepSectorDataAether implements IPrepSectorData -{ - private boolean dirty; - - private final World world; - - private int sectorX, sectorY; - - private long seed; - - private IIslandData islandData; - - public PrepSectorDataAether(World world, int sectorX, int sectorY) - { - this.world = world; - this.sectorX = sectorX; - this.sectorY = sectorY; - } - - public PrepSectorDataAether(World world, NBTTagCompound tag) - { - this.world = world; - - this.read(tag); - } - - public IIslandData getIslandData() - { - return this.islandData; - } - - @Override - public boolean isDirty() - { - return this.dirty; - } - - @Override - public void markDirty() - { - this.dirty = true; - } - - @Override - public void markClean() - { - this.dirty = false; - } - - @Override - public int getSectorX() - { - return this.sectorX; - } - - @Override - public int getSectorY() - { - return this.sectorY; - } - - @Override - public long getSeed() - { - return this.seed; - } - - @Override - public void write(NBTTagCompound tag) - { - tag.setInteger("x", this.sectorX); - tag.setInteger("y", this.sectorY); - tag.setLong("s", this.seed); - - NBTTagCompound islandTag = new NBTTagCompound(); - - this.islandData.write(islandTag); - - tag.setTag("island", islandTag); - } - - @Override - public void read(NBTTagCompound tag) - { - this.sectorX = tag.getInteger("x"); - this.sectorY = tag.getInteger("y"); - this.seed = tag.getLong("s"); - - this.islandData = new IslandData(this, tag.getCompoundTag("island")); - } - - public void setIslandData(IIslandData island) - { - this.islandData = island; - } - - public void tick() - { - this.islandData.tick(); - } -} diff --git a/src/main/java/com/gildedgames/aether/common/world/aether/WorldPreparationAether.java b/src/main/java/com/gildedgames/aether/common/world/aether/WorldPreparationAether.java deleted file mode 100644 index 38196a4539..0000000000 --- a/src/main/java/com/gildedgames/aether/common/world/aether/WorldPreparationAether.java +++ /dev/null @@ -1,173 +0,0 @@ -package com.gildedgames.aether.common.world.aether; - -import com.gildedgames.aether.api.util.OpenSimplexNoise; -import com.gildedgames.aether.api.world.IChunkInfoAether; -import com.gildedgames.aether.api.world.islands.IIslandChunkInfo; -import com.gildedgames.aether.api.world.islands.IIslandData; -import com.gildedgames.aether.api.world.islands.IIslandGenerator; -import com.gildedgames.aether.api.world.noise.IChunkNoiseBuffer2D; -import com.gildedgames.aether.api.world.preparation.IChunkMask; -import com.gildedgames.aether.common.world.biomes.arctic_peaks.BiomeArcticPeaks; -import com.gildedgames.aether.common.world.decorations.WorldGenUndergroundVeins; -import com.gildedgames.aether.common.world.decorations.caves.WorldGenAetherCaves; -import com.gildedgames.aether.common.world.island.IslandBlockType; -import com.gildedgames.aether.common.world.preparation.mask.ChunkMask; -import com.gildedgames.orbis.lib.processing.BlockAccessExtendedWrapper; -import com.gildedgames.orbis.lib.processing.IBlockAccessExtended; -import net.minecraft.world.World; - -/** - * This is like a ChunkGenerator, but instead using virtual chunks - * Here we'll place the island for generation later - */ -public class WorldPreparationAether -{ - private final IBlockAccessExtended access; - - private final OpenSimplexNoise noise; - - private final WorldGenAetherCaves caveGenerator; - - private final WorldGenUndergroundVeins veinGenerator; - - public WorldPreparationAether(World world, OpenSimplexNoise noise) - { - this.access = new BlockAccessExtendedWrapper(world); - this.noise = noise; - this.caveGenerator = new WorldGenAetherCaves(); - this.veinGenerator = new WorldGenUndergroundVeins(); - } - - public void generateFull(IChunkInfoAether info, ChunkMask mask, IIslandData island, int chunkX, int chunkZ, long seed) - { - this.generateCloudLayer(info, mask); - - final IIslandGenerator generator = island.getGenerator(); - generator.generateChunkSegment(info, mask, island, chunkX, chunkZ); - - byte[] heightmap = this.createHeightmap(mask); - - this.caveGenerator.generate(island.getCaveSystemGenerator(), chunkX, chunkZ, mask); - - this.replaceBiomeBlocks(info, mask, heightmap); - - if (island.getBiome() instanceof BiomeArcticPeaks) - { - this.veinGenerator.generate(seed, chunkX, chunkZ, mask); - } - } - - private void generateCloudLayer(IChunkInfoAether info, final ChunkMask mask) - { - int maxDepth = 8; - int levelY = 70; - - IIslandChunkInfo chunkInfo = info.getIslandData(0, IIslandChunkInfo.class); - - IChunkNoiseBuffer2D cloudBuffer = chunkInfo.getCloudDepthBuffer(); - - double threshold = 0.2; - - for (int x = 0; x < 16; x++) - { - for (int z = 0; z < 16; z++) - { - final double val = cloudBuffer.get(x, z); - - if (val > threshold) - { - final int depth = (int) ((val - threshold) * maxDepth); - - for (int y = levelY + depth; y >= levelY - depth; y--) - { - mask.setBlock(x, y, z, IslandBlockType.CLOUD_BED_BLOCK.ordinal()); - } - } - } - } - } - - // Calculate max penetration depth - private void replaceBiomeBlocks(IChunkInfoAether info, final IChunkMask mask, final byte[] heightmap) - { - IIslandChunkInfo chunkInfo = info.getIslandData(0, IIslandChunkInfo.class); - - int i = 0; - - for (int x = 0; x < 16; x++) - { - for (int z = 0; z < 16; z++, i++) - { - int height = Byte.toUnsignedInt(heightmap[i]); - - if (height == 0) - { - continue; - } - - int penetration = 0; - - final int depth = (int) chunkInfo.getTerrainDepthBuffer().get(x, z); - - int m0a = Math.min(height, 254); - int m0b = Math.max((height - depth), 0); - - for (int y = m0a; y >= m0b; y--) - { - final int state = mask.getBlock(x, y, z); - - if (state == IslandBlockType.STONE_BLOCK.ordinal() || state == IslandBlockType.STONE_MOSSY_BLOCK.ordinal() || state == IslandBlockType.FERROSITE_BLOCK.ordinal()) - { - if (penetration == 0 && mask.getBlock(x, y + 1, z) == IslandBlockType.AIR_BLOCK.ordinal()) - { - mask.setBlock(x, y, z, IslandBlockType.TOPSOIL_BLOCK.ordinal()); - } - else - { - mask.setBlock(x, y, z, IslandBlockType.SOIL_BLOCK.ordinal()); - } - - penetration++; - } - else - { - penetration = 0; - } - } - } - } - } - - private byte[] createHeightmap(final IChunkMask mask) - { - byte[] heightmap = new byte[256]; - - int i = 0; - - for (int x = 0; x < 16; x++) - { - for (int z = 0; z < 16; z++) - { - int height = mask.getHighestBlock(x, z); - - heightmap[i++] = (byte) height; - } - } - - return heightmap; - } - - public void generateBaseTerrain(IChunkInfoAether info, IChunkMask mask, IIslandData island, int chunkX, int chunkZ, long seed) - { - island.getGenerator().generateChunkSegment(info, mask, island, chunkX, chunkZ); - - byte[] heightmap = this.createHeightmap(mask); - - this.replaceBiomeBlocks(info, mask, heightmap); - } - - public IIslandChunkInfo generateChunkColumnInfo(IIslandData island, int chunkX, int chunkZ) - { - return island.getGenerator().generateColumnInfo(this.noise, island, chunkX, chunkZ); - } -} diff --git a/src/main/java/com/gildedgames/aether/common/world/biomes/BiomeAetherBase.java b/src/main/java/com/gildedgames/aether/common/world/biomes/BiomeAetherBase.java deleted file mode 100644 index 6eb64d505e..0000000000 --- a/src/main/java/com/gildedgames/aether/common/world/biomes/BiomeAetherBase.java +++ /dev/null @@ -1,79 +0,0 @@ -package com.gildedgames.aether.common.world.biomes; - -import com.gildedgames.aether.api.registrar.BlocksAether; -import com.gildedgames.aether.api.world.decoration.WorldDecoration; -import com.gildedgames.aether.api.world.islands.IIslandData; -import com.gildedgames.aether.api.world.islands.IIslandGenerator; -import com.gildedgames.orbis.lib.util.mc.NBT; -import net.minecraft.block.state.IBlockState; -import net.minecraft.util.ResourceLocation; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.World; -import net.minecraft.world.biome.Biome; -import net.minecraft.world.gen.feature.WorldGenAbstractTree; - -import java.util.Collection; -import java.util.List; -import java.util.Random; - -public abstract class BiomeAetherBase extends Biome -{ - - private final BiomeAetherDecorator biomeDecorator = new BiomeAetherDecorator(); - - public BiomeAetherBase(final BiomeProperties properties, final ResourceLocation registryName) - { - super(properties); - - this.topBlock = BlocksAether.aether_grass.getDefaultState(); - this.fillerBlock = BlocksAether.aether_dirt.getDefaultState(); - - this.spawnableMonsterList.clear(); - this.spawnableCreatureList.clear(); - this.spawnableWaterCreatureList.clear(); - this.spawnableCaveCreatureList.clear(); - - this.setRegistryName(registryName); - } - - public BiomeAetherDecorator getBiomeDecorator() - { - return this.biomeDecorator; - } - - public abstract IBlockState getCoastalBlock(); - - @Override - public final WorldGenAbstractTree getRandomTreeFeature(final Random random) - { - return null; - } - - @Override - public int getSkyColorByTemp(final float temp) - { - return 0xACBAE6; - } - - @Override - public final void decorate(final World world, final Random random, final BlockPos pos) - { - this.biomeDecorator.genDecorations(world, random, pos, this); - } - - public abstract IIslandGenerator createIslandGenerator(Random rand, IIslandData islandData); - - public abstract Collection<NBT> createIslandComponents(IIslandData islandData); - - public abstract float getRarityWeight(); - - public abstract void postDecorate(World world, Random rand, BlockPos pos); - - public abstract List<WorldDecoration> createBasicDecorations(Random rand); - - public abstract List<WorldDecoration> createTreeDecorations(Random rand); - - public abstract float createForestTreeCountModifier(Random rand); - - public abstract float createOpenAreaDecorationGenChance(Random rand); -} diff --git a/src/main/java/com/gildedgames/aether/common/world/biomes/BiomeAetherDecorator.java b/src/main/java/com/gildedgames/aether/common/world/biomes/BiomeAetherDecorator.java deleted file mode 100644 index be90eae80f..0000000000 --- a/src/main/java/com/gildedgames/aether/common/world/biomes/BiomeAetherDecorator.java +++ /dev/null @@ -1,595 +0,0 @@ -package com.gildedgames.aether.common.world.biomes; - -import com.gildedgames.aether.api.registrar.BiomesAether; -import com.gildedgames.aether.api.registrar.BlocksAether; -import com.gildedgames.aether.api.world.decoration.WorldDecorationUtil; -import com.gildedgames.aether.api.world.islands.IIslandData; -import com.gildedgames.aether.api.world.templates.TemplateLoc; -import com.gildedgames.aether.common.AetherCore; -import com.gildedgames.aether.common.blocks.natural.BlockAercloud; -import com.gildedgames.aether.common.blocks.natural.BlockAetherDirt; -import com.gildedgames.aether.common.blocks.natural.BlockHolystone; -import com.gildedgames.aether.common.blocks.natural.plants.BlockAetherFlower; -import com.gildedgames.aether.common.blocks.natural.plants.BlockBlueberryBush; -import com.gildedgames.aether.common.blocks.natural.plants.BlockValkyrieGrass; -import com.gildedgames.aether.common.init.GenerationAether; -import com.gildedgames.aether.common.util.helpers.IslandHelper; -import com.gildedgames.aether.common.world.WorldProviderAether; -import com.gildedgames.aether.common.world.decorations.WorldGenAetherMinable; -import com.gildedgames.aether.common.world.decorations.WorldGenIrradiatedPool; -import com.gildedgames.aether.common.world.decorations.aerclouds.WorldGenAercloud; -import com.gildedgames.aether.common.world.decorations.aerclouds.WorldGenPurpleAercloud; -import com.gildedgames.aether.common.world.decorations.plants.WorldGenBrettlPlant; -import com.gildedgames.aether.common.world.decorations.plants.WorldGenFoliage; -import com.gildedgames.aether.common.world.decorations.trees.WorldGenOrangeTree; -import com.gildedgames.aether.common.world.island.BlockAccessIsland; -import com.gildedgames.aether.common.world.templates.TemplatePlacer; -import com.gildedgames.orbis.lib.core.BlueprintDefinition; -import com.gildedgames.orbis.lib.core.BlueprintDefinitionPool; -import com.gildedgames.orbis.lib.core.CreationData; -import com.gildedgames.orbis.lib.core.PlacedBlueprint; -import com.gildedgames.orbis.lib.core.baking.BakedBlueprint; -import com.gildedgames.orbis.lib.core.util.BlueprintPlacer; -import com.gildedgames.orbis.lib.data.schedules.ScheduleRegion; -import com.gildedgames.orbis.lib.processing.DataPrimer; -import com.gildedgames.orbis.lib.processing.IBlockAccessExtended; -import com.gildedgames.orbis.lib.world.WorldSlice; -import net.minecraft.block.state.IBlockState; -import net.minecraft.util.Rotation; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.ChunkPos; -import net.minecraft.world.World; -import net.minecraft.world.biome.Biome; -import net.minecraft.world.chunk.Chunk; -import net.minecraftforge.common.MinecraftForge; -import net.minecraftforge.event.terraingen.DecorateBiomeEvent; -import net.minecraftforge.event.terraingen.TerrainGen; - -import java.util.Random; - -public class BiomeAetherDecorator -{ - - private final WorldGenAetherMinable genAmbrosium, genZanite, genGravitite, genIcestone, genArkenium, genCoarseAetherDirtOnDirt, genCoarseAetherDirtOnHolystone; - - private final WorldGenAetherMinable genCrudeScatterglass, genIrradiatedHolystone, genIrradiatedDust, genMossyHolystone, genHolystoneQuartzOre; - - private final WorldGenFoliage genPurpleFlowers, genWhiteRoses, genBurstblossom, genAechorSprout; - - private final WorldGenOrangeTree genOrangeTree; - - private final WorldGenFoliage genBlueberryBushes, genValkyrieGrass, genPlumproots; - - private final WorldGenAercloud genColdColumbusAercloud, genBlueAercloud, genGreenAercloud, genGoldAercloud, genStormAercloud; - - private final WorldGenPurpleAercloud genPurpleAercloud; - - private final WorldGenBrettlPlant genBrettlPlant; - - private final WorldGenIrradiatedPool genIrradiatedPool; - - public final boolean generateBushes = true; - - public BiomeAetherDecorator() - { - final IBlockState[] dirtStates = new IBlockState[] { BlocksAether.aether_dirt.getDefaultState() }; - final IBlockState[] holystoneStates = new IBlockState[] { BlocksAether.holystone.getDefaultState() }; - - this.genAmbrosium = new WorldGenAetherMinable(BlocksAether.ambrosium_ore.getDefaultState(), 16, holystoneStates); - - this.genZanite = new WorldGenAetherMinable(BlocksAether.zanite_ore.getDefaultState(), 8, holystoneStates); - this.genHolystoneQuartzOre = new WorldGenAetherMinable(BlocksAether.holystone_quartz_ore.getDefaultState(), 8, holystoneStates); - this.genGravitite = new WorldGenAetherMinable(BlocksAether.gravitite_ore.getDefaultState(), 5, holystoneStates); - this.genIcestone = new WorldGenAetherMinable(BlocksAether.icestone_ore.getDefaultState(), 12, holystoneStates); - this.genArkenium = new WorldGenAetherMinable(BlocksAether.arkenium_ore.getDefaultState(), 6, holystoneStates); - - this.genAmbrosium.setEmitsLight(true); - this.genGravitite.setFloating(true); - - this.genIrradiatedHolystone = new WorldGenAetherMinable( - BlocksAether.holystone.getDefaultState().withProperty(BlockHolystone.PROPERTY_VARIANT, BlockHolystone.IRRADIATED_HOLYSTONE), 22, holystoneStates); - - this.genMossyHolystone = new WorldGenAetherMinable( - BlocksAether.holystone.getDefaultState().withProperty(BlockHolystone.PROPERTY_VARIANT, BlockHolystone.MOSSY_HOLYSTONE), 32, holystoneStates); - - this.genIrradiatedDust = new WorldGenAetherMinable( - BlocksAether.irradiated_dust_block.getDefaultState(), 4, holystoneStates); - - this.genCoarseAetherDirtOnDirt = new WorldGenAetherMinable( - BlocksAether.aether_dirt.getDefaultState().withProperty(BlockAetherDirt.PROPERTY_VARIANT, BlockAetherDirt.COARSE_DIRT), 22, dirtStates); - this.genCoarseAetherDirtOnHolystone = new WorldGenAetherMinable( - BlocksAether.aether_dirt.getDefaultState().withProperty(BlockAetherDirt.PROPERTY_VARIANT, BlockAetherDirt.COARSE_DIRT), 22, holystoneStates); - - this.genCrudeScatterglass = new WorldGenAetherMinable(BlocksAether.crude_scatterglass.getDefaultState(), 10, holystoneStates); - - this.genPurpleFlowers = new WorldGenFoliage(64, - BlocksAether.aether_flower.getDefaultState().withProperty(BlockAetherFlower.PROPERTY_VARIANT, BlockAetherFlower.PURPLE_FLOWER)); - this.genWhiteRoses = new WorldGenFoliage(64, - BlocksAether.aether_flower.getDefaultState().withProperty(BlockAetherFlower.PROPERTY_VARIANT, BlockAetherFlower.WHITE_ROSE)); - this.genBurstblossom = new WorldGenFoliage(64, - BlocksAether.aether_flower.getDefaultState().withProperty(BlockAetherFlower.PROPERTY_VARIANT, BlockAetherFlower.BURSTBLOSSOM)); - this.genAechorSprout = new WorldGenFoliage(4, - BlocksAether.aether_flower.getDefaultState().withProperty(BlockAetherFlower.PROPERTY_VARIANT, BlockAetherFlower.AECHOR_SPROUT)); - - this.genOrangeTree = new WorldGenOrangeTree(); - - this.genBlueberryBushes = new WorldGenFoliage(32, - BlocksAether.blueberry_bush.getDefaultState().withProperty(BlockBlueberryBush.PROPERTY_HARVESTABLE, true)); - - this.genValkyrieGrass = new WorldGenFoliage(64, - BlocksAether.valkyrie_grass.getDefaultState().withProperty(BlockValkyrieGrass.PROPERTY_HARVESTABLE, true) - .withProperty(BlockValkyrieGrass.PROPERTY_VARIANT, BlockValkyrieGrass.FULL)); - - this.genPlumproots = new WorldGenFoliage(64, BlocksAether.plumproot.getDefaultState()); - - this.genBrettlPlant = new WorldGenBrettlPlant(); - - this.genColdColumbusAercloud = new WorldGenAercloud(BlockAercloud.getAercloudState(BlockAercloud.COLD_AERCLOUD), 16, false); - this.genBlueAercloud = new WorldGenAercloud(BlockAercloud.getAercloudState(BlockAercloud.BLUE_AERCLOUD), 8, false); - this.genGreenAercloud = new WorldGenAercloud(BlockAercloud.getAercloudState(BlockAercloud.GREEN_AERCLOUD), 8, false); - this.genGoldAercloud = new WorldGenAercloud(BlockAercloud.getAercloudState(BlockAercloud.GOLDEN_AERCLOUD), 8, false); - this.genStormAercloud = new WorldGenAercloud(BlockAercloud.getAercloudState(BlockAercloud.STORM_AERCLOUD), 8, false); - - this.genPurpleAercloud = new WorldGenPurpleAercloud(BlockAercloud.getAercloudState(BlockAercloud.PURPLE_AERCLOUD), 4, false); - - this.genIrradiatedPool = new WorldGenIrradiatedPool(); - } - - public void prepareDecorationsWholeIsland(final World world, BlockAccessIsland access, final IIslandData island, final Random random) - { - final DataPrimer primer = new DataPrimer(access); - - final int startX = island.getBounds().getMinX(); - final int startZ = island.getBounds().getMinZ(); - - boolean generated = false; - - final BlueprintDefinition outpostDef = GenerationAether.OUTPOST.getRandomDefinition(random); - - final Rotation rotation = (outpostDef.hasRandomRotation()) ? - BlueprintPlacer.ROTATIONS[world.rand.nextInt(BlueprintPlacer.ROTATIONS.length)] : - BlueprintPlacer.ROTATIONS[0]; - - BakedBlueprint outpostBake = new BakedBlueprint(outpostDef, new CreationData(world).seed(random.nextLong()).rotation(rotation)); - - for (int i = 0; i < 10000; i++) - { - final int x = random.nextInt(island.getBounds().getWidth()); - final int z = random.nextInt(island.getBounds().getLength()); - - if (access.canAccess(startX + x, startZ + z)) - { - final int y = access.getTopY(startX + x, startZ + z); - - if (y > 0) - { - BlockPos pos = new BlockPos(startX + x, y, startZ + z); - - generated = primer.canGenerate(outpostBake, pos); - - if (generated) - { - final PlacedBlueprint placed = island.placeBlueprint(outpostBake, pos); - - final ScheduleRegion trigger = placed.getBaked().getScheduleFromTriggerID("spawn"); - - if (trigger != null) - { - island.setOutpostPos(trigger.getBounds().getMin().add(pos)); - } - - break; - } - } - } - } - - if (!generated) - { - AetherCore.LOGGER.info("WARNING: OUTPOST NOT GENERATED ON AN ISLAND!"); - } - - //this.generate(GenerationAether.WISPROOT_TREE, 500, 100, island, access, primer, world, random); - this.generate(GenerationAether.WELL, 100, random.nextInt(8), island, access, primer, world, random); - this.generate(GenerationAether.ABAND_ANGEL_STOREROOM, 100, random.nextInt(10), island, access, primer, world, random); - this.generate(GenerationAether.ABAND_ANGEL_WATCHTOWER, 100, random.nextInt(10), island, access, primer, world, random); - this.generate(GenerationAether.ABAND_CAMPSITE, 100, 5, island, access, primer, world, random); - this.generate(GenerationAether.ABAND_HUMAN_HOUSE, 100, random.nextInt(10), island, access, primer, world, random); - this.generate(GenerationAether.SKYROOT_WATCHTOWER, 100, random.nextInt(10), island, access, primer, world, random); - } - - private void generate( - final BlueprintDefinition def, final int tries, final int maxGenerated, final IIslandData island, - final IBlockAccessExtended access, final DataPrimer primer, final World world, final Random rand) - { - if (maxGenerated <= 0) - { - return; - } - - Rotation rotation = (def.hasRandomRotation()) ? - BlueprintPlacer.ROTATIONS[rand.nextInt(BlueprintPlacer.ROTATIONS.length)] : - BlueprintPlacer.ROTATIONS[0]; - - BakedBlueprint baked = new BakedBlueprint(def, new CreationData(world).rotation(rotation)); - - int amountGenerated = 0; - - final int startX = island.getBounds().getMinX(); - final int startZ = island.getBounds().getMinZ(); - - for (int i = 0; i < tries; i++) - { - final int x = rand.nextInt(island.getBounds().getWidth()); - final int z = rand.nextInt(island.getBounds().getLength()); - - if (access.canAccess(startX + x, startZ + z)) - { - final int y = access.getTopY(startX + x, startZ + z) - def.getFloorHeight() + (def.getFloorHeight() == 0 ? 1 : 0); - - if (y >= 80) - { - BlockPos pos = new BlockPos(startX + x, y, startZ + z); - - final boolean generated = primer.canGenerate(baked, pos); - - if (generated) - { - island.placeBlueprint(baked, pos); - - rotation = (def.hasRandomRotation()) ? - BlueprintPlacer.ROTATIONS[rand.nextInt(BlueprintPlacer.ROTATIONS.length)] : - BlueprintPlacer.ROTATIONS[0]; - - baked = new BakedBlueprint(def, new CreationData(world).rotation(rotation)); - - amountGenerated++; - - if (amountGenerated >= maxGenerated) - { - return; - } - } - } - } - } - } - - private void generate(final BlueprintDefinitionPool pool, final int tries, final int maxGenerated, final IIslandData island, - final IBlockAccessExtended access, final DataPrimer primer, final World world, final Random rand) - { - if (maxGenerated <= 0) - { - return; - } - - final BlueprintDefinition def = pool.getRandomDefinition(rand); - - this.generate(def, tries, maxGenerated, island, access, primer, world, rand); - } - - protected void genDecorations(final World world, final Random random, final BlockPos pos, final Biome genBase) - { - ChunkPos chunkPos = new ChunkPos(pos); - - MinecraftForge.EVENT_BUS.post(new DecorateBiomeEvent.Pre(world, random, chunkPos)); - - WorldSlice slice = new WorldSlice(world, chunkPos); - - if (TerrainGen.decorate(world, random, chunkPos, DecorateBiomeEvent.Decorate.EventType.CUSTOM)) - { - this.generateOres(slice, random, pos); - } - - IIslandData island = IslandHelper.get(world, chunkPos.x, chunkPos.z); - - if (island == null) - { - return; - } - - WorldDecorationUtil.generateDecorations(island.getBasicDecorations(), world, random, pos); - - final WorldProviderAether provider = WorldProviderAether.get(world); - - if (TerrainGen.decorate(world, random, chunkPos, DecorateBiomeEvent.Decorate.EventType.TREE)) - { - WorldDecorationUtil.generateDecorationsWithNoise(island.getTreeDecorations(), world, random, pos, provider.getNoise(), - island.getOpenAreaDecorationGenChance(), island.getForestTreeCountModifier()); - } - - BlockPos.PooledMutableBlockPos randomPos = BlockPos.PooledMutableBlockPos.retain(); - - if (TerrainGen.decorate(world, random, chunkPos, DecorateBiomeEvent.Decorate.EventType.CUSTOM)) - { - // Moa Nests - if (random.nextInt(4) == 0) - { - int x = random.nextInt(16) + 8; - int z = random.nextInt(16) + 8; - - final BlockPos pos2 = world.getTopSolidOrLiquidBlock(pos.add(x, 0, z)).add(0, -1, 0); - - TemplatePlacer.place(world, GenerationAether.skyroot_moa_nest.getRandomDefinition(random), new TemplateLoc().set(pos2), random); - } - } - - if (TerrainGen.decorate(world, random, chunkPos, DecorateBiomeEvent.Decorate.EventType.TREE)) - { - // Orange Tree Generator - for (int count = 0; count < 3; count++) - { - int x = random.nextInt(16) + 8; - int y = random.nextInt(180) + 64; - int z = random.nextInt(16) + 8; - - this.genOrangeTree.generate(world, random, translate(randomPos, pos, x, y, z)); - } - } - - if (TerrainGen.decorate(world, random, chunkPos, DecorateBiomeEvent.Decorate.EventType.CUSTOM)) - { - if (this.generateBushes) - { - this.generateFoliage(this.genBlueberryBushes, slice, random, pos, 15); - } - } - - if (TerrainGen.decorate(world, random, chunkPos, DecorateBiomeEvent.Decorate.EventType.FLOWERS)) - { - this.generateFoliage(this.genPurpleFlowers, slice, random, pos, 5); - this.generateFoliage(this.genWhiteRoses, slice, random, pos,5); - this.generateFoliage(this.genBurstblossom, slice, random, pos,5); - this.generateFoliage(this.genAechorSprout, slice, random, pos,5); - - this.generateFoliage(this.genValkyrieGrass, slice, random, pos,5); - } - - if (TerrainGen.decorate(world, random, chunkPos, DecorateBiomeEvent.Decorate.EventType.FLOWERS)) - { - /*// Purple Flowers Generator - for (count = 0; count < 8; count++) - { - if (random.nextInt(2) == 0) - { - x = random.nextInt(16) + 8; - y = random.nextInt(180) + 64; - z = random.nextInt(16) + 8; - - this.genPurpleFlowers.generate(world, random, pos.add(x, y, z)); - } - } - - // White Rose Generator - for (count = 0; count < 3; count++) - { - x = random.nextInt(16) + 8; - y = random.nextInt(180) + 64; - z = random.nextInt(16) + 8; - - this.genWhiteRoses.generate(world, random, pos.add(x, y, z)); - } - - // Burstblossom Generator - for (count = 0; count < 3; count++) - { - x = random.nextInt(16) + 8; - y = random.nextInt(180) + 64; - z = random.nextInt(16) + 8; - - this.genBurstblossom.generate(world, random, pos.add(x, y, z)); - }*/ - - // Aechor Sprout Generator - this.generateFoliage(this.genAechorSprout, slice, random, pos,5); - - // Valkyrie Grass Generator - this.generateFoliage(this.genValkyrieGrass, slice, random, pos,5); - - - // Brettl Plant Generator - if (random.nextInt(5) == 0) - { - int x = random.nextInt(16) + 8; - int y = random.nextInt(180) + 64; - int z = random.nextInt(16) + 8; - - this.genBrettlPlant.generate(world, random, translate(randomPos, pos, x, y, z)); - } - } - - if (TerrainGen.decorate(world, random, chunkPos, DecorateBiomeEvent.Decorate.EventType.PUMPKIN)) - { - this.generateFoliage(this.genPlumproots, slice, random, pos, 50); - } - - randomPos.release(); - - this.generateClouds(slice, random, new BlockPos(pos.getX(), 0, pos.getZ())); - - // Post decorate - if (genBase instanceof BiomeAetherBase) - { - final BiomeAetherBase aetherBiome = (BiomeAetherBase) genBase; - - aetherBiome.postDecorate(world, random, pos); - } - - if (world.getBiome(pos) == BiomesAether.IRRADIATED_FORESTS) - { - if (random.nextInt(10) == 0) - { - this.genIrradiatedPool.generate(slice, random, pos.add(random.nextInt(16) + 8, 0, random.nextInt(16) + 8)); - } - } - - MinecraftForge.EVENT_BUS.post(new DecorateBiomeEvent.Post(world, random, chunkPos)); - } - - /** - * @param gen The generation feature - * @param slice A slice of the world centered at {@param pos} - * @param random The random number generator for the generation pass - * @param pos The position around which this feature should generate - * @param chance The 1 in N chance to generate - */ - private void generateFoliage(final WorldGenFoliage gen, final WorldSlice slice, final Random random, final BlockPos pos, final int chance) - { - if (random.nextInt(chance) == 0) - { - int x = pos.getX() + random.nextInt(16) + 8; - int z = pos.getZ() + random.nextInt(16) + 8; - - gen.generate(slice, random, x, z); - } - } - - private void generateMinable(final WorldGenAetherMinable minable, final WorldSlice slice, final Random random, final BlockPos pos, - final int maxY, final int attempts) - { - double attemptsPerLevel = (double) attempts / (double) maxY; - - int topY = Math.max(slice.getWorld().getTopSolidOrLiquidBlock(pos).getY() + 8, 255); - - if (topY <= 0) - { - return; - } - - int adjustedMaxY = Math.min(topY, maxY); - - if (adjustedMaxY < 0) - { - return; - } - - int bottomY = Math.min(getBottomSolidOrLiquidBlock(slice.getWorld(), pos).getY() - 8, 0); - - if (adjustedMaxY <= bottomY) - { - return; - } - - double adjustedAttempts = (double) (adjustedMaxY - bottomY) * attemptsPerLevel; - - BlockPos.PooledMutableBlockPos randomPos = BlockPos.PooledMutableBlockPos.retain(); - - for (int count = 0; count < adjustedAttempts; count++) - { - translate(randomPos, pos, random.nextInt(16), random.nextInt(adjustedMaxY - bottomY) + bottomY, random.nextInt(16)); - - minable.generate(slice, random, randomPos); - } - - randomPos.release(); - } - - private void generateCloud(final WorldGenAercloud gen, final WorldSlice slice, final BlockPos pos, final Random rand, final int rarity, final int width, - final int minY, final int maxY) - { - BlockPos.PooledMutableBlockPos randomPos = BlockPos.PooledMutableBlockPos.retain(); - - if (rand.nextInt(rarity) == 0) - { - translate(randomPos, pos, rand.nextInt(width), minY + rand.nextInt(maxY - minY), rand.nextInt(width)); - - gen.generate(slice, rand, randomPos); - } - - randomPos.release(); - - } - - protected int nextInt(final Random random, final int i) - { - if (i <= 1) - { - return 0; - } - - return random.nextInt(i); - } - - private static BlockPos translate(BlockPos.PooledMutableBlockPos pos, BlockPos origin, int x, int y, int z) - { - return pos.setPos(origin.getX() + x, origin.getY() + y, origin.getZ() + z); - } - - protected void generateOres(final WorldSlice slice, final Random random, final BlockPos pos) - { - this.generateMinable(this.genAmbrosium, slice, random, pos, 256, 10); - this.generateMinable(this.genZanite, slice, random, pos, 256, 10); - this.generateMinable(this.genGravitite, slice, random, pos, 50, 5); - this.generateMinable(this.genIcestone, slice, random, pos, 256, 10); - this.generateMinable(this.genHolystoneQuartzOre, slice, random, pos, 256, 10); - this.generateMinable(this.genArkenium, slice, random, pos, 70, 7); - this.generateMinable(this.genCrudeScatterglass, slice, random, pos, 110, 10); - this.generateMinable(this.genMossyHolystone, slice, random, pos, 132, 16); - this.generateMinable(this.genIrradiatedHolystone, slice, random, pos, 70, 12); - this.generateMinable(this.genIrradiatedDust, slice, random, pos, 60, 5); - - - - } - - protected void generateClouds(final WorldSlice world, final Random random, final BlockPos pos) - { - //TOP - this.generateCloud(this.genStormAercloud, world, pos, random, 30, 16, 238, 256); - this.generateCloud(this.genPurpleAercloud, world, pos, random, 50, 4, 226, 246); - this.generateCloud(this.genBlueAercloud, world, pos, random, 50, 16, 218, 236); - this.generateCloud(this.genColdColumbusAercloud, world, pos, random, 15, 16, 190, 230); - this.generateCloud(this.genGreenAercloud, world, pos, random, 50, 16, 208, 226); - this.generateCloud(this.genGoldAercloud, world, pos, random, 50, 16, 185, 205); - - //MIDDLE - this.generateCloud(this.genColdColumbusAercloud, world, pos, random, 15, 16, 110, 150); - this.generateCloud(this.genGreenAercloud, world, pos, random, 50, 16, 100, 110); - this.generateCloud(this.genPurpleAercloud, world, pos, random, 50, 4, 90, 100); - this.generateCloud(this.genBlueAercloud, world, pos, random, 50, 16, 85, 95); - - //BOTTOM - this.generateCloud(this.genStormAercloud, world, pos, random, 15, 16, 40, 55); - this.generateCloud(this.genGreenAercloud, world, pos, random, 30, 16, 25, 35); - this.generateCloud(this.genGoldAercloud, world, pos, random, 30, 16, 12, 24); - this.generateCloud(this.genBlueAercloud, world, pos, random, 30, 16, 5, 15); - } - - private static BlockPos getBottomSolidOrLiquidBlock(World world, BlockPos pos) - { - Chunk chunk = world.getChunk(pos); - - int lowestSection = -1; - - for (int i = 0; i < chunk.getBlockStorageArray().length; i++) - { - if (chunk.getBlockStorageArray()[i] != Chunk.NULL_BLOCK_STORAGE) - { - lowestSection = i * 16; - - break; - } - } - - if (lowestSection == -1) - { - return new BlockPos(pos.getX(), 0, pos.getZ()); - } - - BlockPos blockpos; - BlockPos blockpos1; - - for (blockpos = new BlockPos(pos.getX(), lowestSection, pos.getZ()); blockpos.getY() <= 255; blockpos = blockpos1) - { - blockpos1 = blockpos.up(); - IBlockState state = chunk.getBlockState(blockpos1); - - if (state.getMaterial().blocksMovement() && !state.getBlock().isLeaves(state, world, blockpos1) && !state.getBlock().isFoliage(world, blockpos1)) - { - break; - } - } - - return blockpos; - } -} diff --git a/src/main/java/com/gildedgames/aether/common/world/biomes/BiomeInstancedZone.java b/src/main/java/com/gildedgames/aether/common/world/biomes/BiomeInstancedZone.java deleted file mode 100644 index 6a51b8c037..0000000000 --- a/src/main/java/com/gildedgames/aether/common/world/biomes/BiomeInstancedZone.java +++ /dev/null @@ -1,47 +0,0 @@ -package com.gildedgames.aether.common.world.biomes; - -import com.gildedgames.aether.common.AetherCore; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.World; -import net.minecraft.world.biome.Biome; - -import java.util.Random; - -public class BiomeInstancedZone extends Biome -{ - public BiomeInstancedZone() - { - super(new BiomeProperties("Instanced Zone").setRainDisabled().setTemperature(0.5f).setRainfall(0.0f)); - - this.setRegistryName(AetherCore.getResource("instanced_zone")); - - this.spawnableMonsterList.clear(); - this.spawnableCreatureList.clear(); - this.spawnableWaterCreatureList.clear(); - this.spawnableCaveCreatureList.clear(); - } - - @Override - public float getSpawningChance() - { - return 0.0F; - } - - @Override - public int getSkyColorByTemp(final float temp) - { - return 0xC0C0FF; - } - - @Override - public int getWaterColorMultiplier() - { - return 0x70DB70; - } - - @Override - public void decorate(final World world, final Random random, final BlockPos pos) - { - - } -} diff --git a/src/main/java/com/gildedgames/aether/common/world/biomes/BiomeProviderAether.java b/src/main/java/com/gildedgames/aether/common/world/biomes/BiomeProviderAether.java deleted file mode 100644 index a8d0cb59bb..0000000000 --- a/src/main/java/com/gildedgames/aether/common/world/biomes/BiomeProviderAether.java +++ /dev/null @@ -1,205 +0,0 @@ -package com.gildedgames.aether.common.world.biomes; - -import com.gildedgames.aether.api.registrar.BiomesAether; -import com.gildedgames.aether.api.world.preparation.IPrepManager; -import com.gildedgames.aether.api.world.preparation.IPrepSector; -import com.gildedgames.aether.api.world.preparation.IPrepSectorAccess; -import com.gildedgames.aether.common.world.aether.PrepSectorDataAether; -import com.gildedgames.aether.common.world.preparation.PrepHelper; -import com.google.common.collect.Lists; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.World; -import net.minecraft.world.biome.Biome; -import net.minecraft.world.biome.BiomeCache; -import net.minecraft.world.biome.BiomeProvider; -import net.minecraft.world.gen.layer.IntCache; - -import javax.annotation.Nullable; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; -import java.util.Random; - -public class BiomeProviderAether extends BiomeProvider -{ - - public static final ArrayList<Biome> allowedBiomes = Lists.newArrayList(BiomesAether.VOID, BiomesAether.HIGHLANDS, BiomesAether.MAGNETIC_HILLS); - - private final ThreadLocal<BiomeCache> cache = ThreadLocal.withInitial(() -> new BiomeCache(this)); - - private final World world; - - public BiomeProviderAether(final World world) - { - this.world = world; - } - - @Override - public List<Biome> getBiomesToSpawnIn() - { - return allowedBiomes; - } - - @Override - public void cleanupCache() - { - this.cache.get().cleanupCache(); - } - - @Override - public Biome getBiome(final BlockPos pos) - { - return this.getBiome(pos, BiomesAether.VOID); - } - - @Override - public Biome getBiome(final BlockPos pos, final Biome defaultBiome) - { - return this.cache.get().getBiome(pos.getX(), pos.getZ(), BiomesAether.VOID); - } - - private Biome[] generateBiomes(final Biome[] biomes, final int x, final int z, final int width, final int height) - { - Arrays.fill(biomes, BiomesAether.VOID); - - // We can't do anything on the client. Don't waste time. - if (this.world.isRemote) - { - return biomes; - } - - IPrepManager manager = PrepHelper.getManager(this.world); - - if (manager == null) - { - return biomes; - } - - IPrepSectorAccess access = manager.getAccess(); - - IPrepSector cachedSector = null; - - int prevChunkX = 0, prevChunkY = 0; - - for (int i = 0; i < width; i++) - { - for (int j = 0; j < height; j++) - { - final int index = j + (i * width); - - final int posX = i + x; - final int posZ = j + z; - - final int chunkX = Math.floorDiv(posX, 16); - final int chunkY = Math.floorDiv(posZ, 16); - - if (chunkX != prevChunkX || chunkY != prevChunkY || cachedSector == null) - { - cachedSector = access.getLoadedSectorForChunk(chunkX, chunkY).orElse(null); - - prevChunkX = chunkX; - prevChunkY = chunkY; - } - - if (cachedSector != null && cachedSector.getData() instanceof PrepSectorDataAether) - { - PrepSectorDataAether sectorDataAether = (PrepSectorDataAether) cachedSector.getData(); - - biomes[index] = sectorDataAether.getIslandData().getBiome(); - } - } - } - - return biomes; - } - - /** - * Returns an array of biomes for the location input. - */ - @Override - public Biome[] getBiomesForGeneration(Biome[] biomes, final int x, final int z, final int width, final int height) - { - IntCache.resetIntCache(); - - if (biomes == null || biomes.length < width * height) - { - biomes = new Biome[width * height]; - } - - this.generateBiomes(biomes, x, z, width, height); - - return biomes; - } - - /** - * Gets biomes to use for the blocks and loads the other data like tempNoise and humidity onto the - * WorldChunkManager. - */ - @Override - public Biome[] getBiomes(@Nullable final Biome[] listToReuse, final int x, final int z, final int width, final int length) - { - return this.getBiomes(listToReuse, x, z, width, length, true); - } - - /** - * Gets a list of biomes for the specified blocks. - */ - @Override - public Biome[] getBiomes(@Nullable Biome[] listToReuse, final int x, final int z, final int width, final int length, final boolean cacheFlag) - { - IntCache.resetIntCache(); - - if (listToReuse == null || listToReuse.length < width * length) - { - listToReuse = new Biome[width * length]; - } - - if (cacheFlag && width == 16 && length == 16 && (x & 15) == 0 && (z & 15) == 0) - { - final Biome[] abiome = this.cache.get().getCachedBiomes(x, z); - - System.arraycopy(abiome, 0, listToReuse, 0, width * length); - - return listToReuse; - } - else - { - this.generateBiomes(listToReuse, x, z, width, length); - - return listToReuse; - } - } - - @Override - @Nullable - public BlockPos findBiomePosition(final int x, final int z, final int range, final List<Biome> biomes, final Random random) - { - for (final Biome biome : biomes) - { - if (!allowedBiomes.contains(biome)) - { - return null; - } - } - - return new BlockPos(x - range + random.nextInt(range * 2 + 1), 0, z - range + random.nextInt(range * 2 + 1)); - } - - /** - * checks given Chunk's Biomes against List of allowed ones - */ - @Override - public boolean areBiomesViable(final int x, final int z, final int radius, final List<Biome> allowed) - { - for (final Biome biome : allowed) - { - if (!allowedBiomes.contains(biome)) - { - return false; - } - } - - return true; - } - -} diff --git a/src/main/java/com/gildedgames/aether/common/world/biomes/BiomeVoid.java b/src/main/java/com/gildedgames/aether/common/world/biomes/BiomeVoid.java deleted file mode 100644 index 29ab5e3356..0000000000 --- a/src/main/java/com/gildedgames/aether/common/world/biomes/BiomeVoid.java +++ /dev/null @@ -1,81 +0,0 @@ -package com.gildedgames.aether.common.world.biomes; - -import com.gildedgames.aether.api.registrar.BlocksAether; -import com.gildedgames.aether.api.world.decoration.WorldDecoration; -import com.gildedgames.aether.api.world.islands.IIslandData; -import com.gildedgames.aether.api.world.islands.IIslandGenerator; -import com.gildedgames.aether.common.AetherCore; -import com.gildedgames.orbis.lib.util.mc.NBT; -import net.minecraft.block.state.IBlockState; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.World; -import net.minecraft.world.biome.Biome; - -import java.util.Collection; -import java.util.Collections; -import java.util.List; -import java.util.Random; - -public class BiomeVoid extends BiomeAetherBase -{ - - public BiomeVoid() - { - super(new Biome.BiomeProperties("Aether Void").setRainDisabled().setTemperature(0.5f).setWaterColor(0x70DB70), AetherCore.getResource("aether_void")); - } - - @Override - public IBlockState getCoastalBlock() - { - return BlocksAether.quicksoil.getDefaultState(); - } - - @Override - public IIslandGenerator createIslandGenerator(Random rand, IIslandData islandData) - { - return null; - } - - @Override - public Collection<NBT> createIslandComponents(final IIslandData islandData) - { - return Collections.emptyList(); - } - - @Override - public float getRarityWeight() - { - return 0.0F; - } - - @Override - public void postDecorate(final World world, final Random rand, final BlockPos pos) - { - - } - - @Override - public List<WorldDecoration> createBasicDecorations(Random rand) - { - return Collections.emptyList(); - } - - @Override - public List<WorldDecoration> createTreeDecorations(Random rand) - { - return Collections.emptyList(); - } - - @Override - public float createForestTreeCountModifier(Random rand) - { - return 0; - } - - @Override - public float createOpenAreaDecorationGenChance(Random rand) - { - return 0; - } - -} diff --git a/src/main/java/com/gildedgames/aether/common/world/biomes/ISnowyBiome.java b/src/main/java/com/gildedgames/aether/common/world/biomes/ISnowyBiome.java deleted file mode 100644 index 162f590778..0000000000 --- a/src/main/java/com/gildedgames/aether/common/world/biomes/ISnowyBiome.java +++ /dev/null @@ -1,22 +0,0 @@ -package com.gildedgames.aether.common.world.biomes; - -import com.gildedgames.aether.api.registrar.BlocksAether; -import net.minecraft.block.state.IBlockState; - -/** - * If implemented for a biome, snowfall and ice-freezing will occur with - * the specified blocks. - */ -public interface ISnowyBiome -{ - default IBlockState getFrozenWaterBlock() - { - return BlocksAether.highlands_ice.getDefaultState(); - } - - default IBlockState getSnowBlock() - { - return BlocksAether.highlands_snow_layer.getDefaultState(); - } - -} diff --git a/src/main/java/com/gildedgames/aether/common/world/biomes/arctic_peaks/BiomeArcticPeaks.java b/src/main/java/com/gildedgames/aether/common/world/biomes/arctic_peaks/BiomeArcticPeaks.java deleted file mode 100644 index 70e66f8590..0000000000 --- a/src/main/java/com/gildedgames/aether/common/world/biomes/arctic_peaks/BiomeArcticPeaks.java +++ /dev/null @@ -1,261 +0,0 @@ -package com.gildedgames.aether.common.world.biomes.arctic_peaks; - -import com.gildedgames.aether.api.registrar.BlocksAether; -import com.gildedgames.aether.api.world.decoration.WorldDecoration; -import com.gildedgames.aether.api.world.decoration.WorldDecorationSimple; -import com.gildedgames.aether.api.world.generation.BlueprintWorldGen; -import com.gildedgames.aether.api.world.generation.positioners.PositionerLevels; -import com.gildedgames.aether.api.world.generation.positioners.PositionerSurface; -import com.gildedgames.aether.api.world.islands.IIslandBounds; -import com.gildedgames.aether.api.world.islands.IIslandData; -import com.gildedgames.aether.api.world.islands.IIslandGenerator; -import com.gildedgames.aether.api.world.noise.IChunkNoiseBuffer2D; -import com.gildedgames.aether.common.blocks.IBlockSnowy; -import com.gildedgames.aether.common.blocks.natural.BlockAetherGrass; -import com.gildedgames.aether.common.init.GenerationAether; -import com.gildedgames.aether.common.util.helpers.IslandHelper; -import com.gildedgames.aether.common.world.WorldProviderAether; -import com.gildedgames.aether.common.world.biomes.BiomeAetherBase; -import com.gildedgames.aether.common.world.biomes.ISnowyBiome; -import com.gildedgames.aether.common.world.island.IslandVariables; -import com.gildedgames.aether.common.world.island.generators.IslandGeneratorHighlands; -import com.gildedgames.aether.common.world.noise.ChunkDataGenerator2DSingle; -import com.gildedgames.aether.common.world.noise.impl.NoiseGeneratorIslandTerrain; -import com.gildedgames.aether.common.world.util.GenUtil; -import com.gildedgames.orbis.lib.core.BlueprintDefinition; -import com.gildedgames.orbis.lib.util.mc.NBT; -import com.google.common.collect.Lists; -import net.minecraft.block.Block; -import net.minecraft.block.state.IBlockState; -import net.minecraft.util.ResourceLocation; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.World; -import net.minecraftforge.event.terraingen.DecorateBiomeEvent.Decorate.EventType; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; - -import java.util.Collection; -import java.util.Collections; -import java.util.List; -import java.util.Random; - -public class BiomeArcticPeaks extends BiomeAetherBase implements ISnowyBiome -{ - - public BiomeArcticPeaks(final BiomeProperties properties, final ResourceLocation registryName) - { - super(properties, registryName); - - this.topBlock = BlocksAether.aether_grass.getDefaultState().withProperty(BlockAetherGrass.PROPERTY_VARIANT, BlockAetherGrass.ARCTIC); - } - - @Override - public IBlockState getCoastalBlock() - { - return BlocksAether.highlands_packed_ice.getDefaultState(); - } - - @Override - public IIslandGenerator createIslandGenerator(Random rand, IIslandData islandData) - { - int coastHeight = 1 + rand.nextInt(3); - double coastSpread = 0.15; - - if (coastHeight == 0) - { - coastSpread = 0.0; - } - - double mountainAmplitude = 3.75; - - boolean hasTerraces = rand.nextInt(30) == 0; - - int maxTerrainHeight = 40 + rand.nextInt(35); - - return new IslandGeneratorHighlands(IslandVariables.build() - .coastHeight(coastHeight) - .coastSpread(coastSpread) - .lakeBlendRange(0.05 + (rand.nextDouble() * 0.5)) - .lakeDepth(rand.nextInt(40) + 5) - .lakeScale(40.0D + (rand.nextDouble() * 30.0D)) - .lakeThreshold(rand.nextDouble() * 0.3) - .maxTerrainHeight(maxTerrainHeight) - .terraces(hasTerraces) - .lakeConcentrationModifier(0.5 + (rand.nextDouble() * -2.5)) - .heightSampleFilter((heightSample) -> Math.min(1.1, Math.pow(heightSample, mountainAmplitude) * 0.55)) - .snowCaps(!hasTerraces) - .maxTerrainHeight(20 + rand.nextInt(25)) - .maxYFilter((bottomMaxY, filteredSample, cutoffPoint) -> bottomMaxY + ((filteredSample - (hasTerraces ? cutoffPoint : 0.0)) - * maxTerrainHeight)) - .lakeBottomValueFilter((lakeBottomValue) -> 0.0)); - } - - @Override - public Collection<NBT> createIslandComponents(final IIslandData islandData) - { - return Collections.emptyList(); - } - - @Override - public float getRarityWeight() - { - return 1.0F; - } - - @Override - public void postDecorate(final World world, final Random rand, final BlockPos pos) - { - final int chunkX = pos.getX() >> 4; - final int chunkZ = pos.getZ() >> 4; - - IIslandData island = IslandHelper.get(world, chunkX, chunkZ); - - if (island == null) - { - return; - } - - WorldProviderAether provider = WorldProviderAether.get(world); - - IIslandBounds bounds = island.getBounds(); - - final IChunkNoiseBuffer2D samples = new ChunkDataGenerator2DSingle(new NoiseGeneratorIslandTerrain(provider.getNoise(), bounds), 4) - .generate(chunkX, chunkZ) - .createInterpolatedNoiseBuffer(); - - final int posX = pos.getX() + 8; - final int posZ = pos.getZ() + 8; - - final double centerX = island.getBounds().getCenterX(); - final double centerZ = island.getBounds().getCenterZ(); - - final double radiusX = island.getBounds().getWidth() / 2.0; - final double radiusZ = island.getBounds().getLength() / 2.0; - - for (int x = 0; x < 16; x++) - { - for (int z = 0; z < 16; z++) - { - final BlockPos p = new BlockPos(posX + x, 0, posZ + z); - - if (world.isBlockLoaded(p)) - { - final int worldX = posX + x; - final int worldZ = posZ + z; - - final double distX = Math.abs((centerX - worldX) * (1.0 / radiusX)); - final double distZ = Math.abs((centerZ - worldZ) * (1.0 / radiusZ)); - - // Get distance from center of Island - final double dist = Math.sqrt(distX * distX + distZ * distZ) / 1.0D; - - final double sample = samples.get(x, z); - final double heightSample = sample + 1.0 - dist; - - final BlockPos blockpos1 = p.add(0, world.getHeight(posX + x, posZ + z), 0); - final BlockPos blockpos2 = blockpos1.down(); - - if (world.canBlockFreezeWater(blockpos2)) - { - world.setBlockState(blockpos2, BlocksAether.highlands_ice.getDefaultState(), 2 | 16); - } - - if (heightSample > 0.5) - { - final IBlockState state = world.getBlockState(blockpos1); - final Block block = state.getBlock(); - - if (world.canSnowAt(blockpos1, true)) - { - world.setBlockState(blockpos1, BlocksAether.highlands_snow_layer.getDefaultState(), 2 | 16); - } - else if (block instanceof IBlockSnowy) - { - final IBlockState newState = state.withProperty(IBlockSnowy.PROPERTY_SNOWY, Boolean.TRUE); - - world.setBlockState(blockpos1, newState, 2 | 16); - } - } - } - } - } - } - - @Override - public List<WorldDecoration> createBasicDecorations(Random rand) - { - List<WorldDecoration> decorations = Lists.newArrayList(); - - decorations.add(new WorldDecorationSimple(2, 0.0F, EventType.GRASS, new PositionerSurface(), GenerationAether.short_aether_grass)); - decorations.add(new WorldDecorationSimple(1, 0.2F, EventType.GRASS, new PositionerSurface(), GenerationAether.skyroot_twigs)); - - List<IBlockState> flowers = Lists.newArrayList(); - - flowers.addAll(GenUtil.GENERAL_FLOWER_STATES); - - decorations.add(GenUtil.createFlowerDecorations(rand, flowers, Lists.newArrayList(BlocksAether.arctic_spikespring.getDefaultState()))); - decorations.add(GenUtil.createShroomDecorations(GenUtil.SHROOM_STATES)); - - decorations.add(new WorldDecorationSimple(6, 0.0F, EventType.GRASS, new PositionerLevels(0, 128), GenerationAether.holystone_rocks)); - - decorations.add(new WorldDecorationSimple(2, 0.5f, EventType.CUSTOM, new PositionerLevels(26, 90), GenerationAether.ice_crystals)); - - return decorations; - } - - @Override - public List<WorldDecoration> createTreeDecorations(Random rand) - { - List<WorldDecoration> treeDecorations = Lists.newArrayList(); - - BlueprintDefinition[] forest = new BlueprintDefinition[] - { - GenerationAether.SKYROOT_OAK_DARK_BLUE, GenerationAether.SKYROOT_OAK_BLUE - }; - - BlueprintDefinition[] neopolitan = new BlueprintDefinition[] - { - GenerationAether.SKYROOT_OAK_DARK_BLUE, GenerationAether.SKYROOT_OAK_BLUE, - GenerationAether.WISPROOT_BLUE, GenerationAether.WISPROOT_DARK_BLUE - }; - - BlueprintDefinition[] chosen = rand.nextBoolean() ? neopolitan : forest; - - int amountOfTreeTypes = 2 + rand.nextInt(4); - - for (int i = 0; i < amountOfTreeTypes; i++) - { - treeDecorations.add(new WorldDecorationSimple(15, 0.0F, EventType.TREE, new PositionerSurface(), - new BlueprintWorldGen(chosen[rand.nextInt(chosen.length)]))); - } - - treeDecorations.add(new WorldDecorationSimple(20, 0.0F, EventType.TREE, new PositionerSurface(), new BlueprintWorldGen(GenerationAether.GREATROOT_TREE))); - - return treeDecorations; - } - - @Override - public float createForestTreeCountModifier(Random rand) - { - if (rand.nextInt(30) == 0) - { - return 0.1F + (rand.nextFloat() * 0.9F); - } - - return 0.75F + (rand.nextFloat() * 0.25F); - } - - @Override - public float createOpenAreaDecorationGenChance(Random rand) - { - return 0.15F * rand.nextFloat(); - } - - @Override - @SideOnly(Side.CLIENT) - public int getSkyColorByTemp(final float currentTemperature) - { - return 0xACBAE6; - } - -} diff --git a/src/main/java/com/gildedgames/aether/common/world/biomes/forgotten_highlands/BiomeForgottenHighlands.java b/src/main/java/com/gildedgames/aether/common/world/biomes/forgotten_highlands/BiomeForgottenHighlands.java deleted file mode 100644 index a30af5dfe9..0000000000 --- a/src/main/java/com/gildedgames/aether/common/world/biomes/forgotten_highlands/BiomeForgottenHighlands.java +++ /dev/null @@ -1,120 +0,0 @@ -package com.gildedgames.aether.common.world.biomes.forgotten_highlands; - -import com.gildedgames.aether.api.registrar.BlocksAether; -import com.gildedgames.aether.api.world.decoration.WorldDecoration; -import com.gildedgames.aether.api.world.decoration.WorldDecorationSimple; -import com.gildedgames.aether.api.world.generation.BlueprintWorldGen; -import com.gildedgames.aether.api.world.generation.positioners.PositionerLevels; -import com.gildedgames.aether.api.world.generation.positioners.PositionerSurface; -import com.gildedgames.aether.api.world.islands.IIslandData; -import com.gildedgames.aether.api.world.islands.IIslandGenerator; -import com.gildedgames.aether.common.blocks.natural.BlockAetherGrass; -import com.gildedgames.aether.common.init.GenerationAether; -import com.gildedgames.aether.common.world.biomes.BiomeAetherBase; -import com.gildedgames.aether.common.world.island.generators.IslandGeneratorForgottenHighlands; -import com.gildedgames.aether.common.world.util.GenUtil; -import com.gildedgames.orbis.lib.util.mc.NBT; -import com.google.common.collect.Lists; -import net.minecraft.block.state.IBlockState; -import net.minecraft.util.ResourceLocation; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.World; -import net.minecraftforge.event.terraingen.DecorateBiomeEvent.Decorate.EventType; - -import java.util.Collection; -import java.util.Collections; -import java.util.List; -import java.util.Random; - -public class BiomeForgottenHighlands extends BiomeAetherBase -{ - - public BiomeForgottenHighlands(final BiomeProperties properties, final ResourceLocation registryName) - { - super(properties, registryName); - - this.topBlock = BlocksAether.aether_grass.getDefaultState().withProperty(BlockAetherGrass.PROPERTY_VARIANT, BlockAetherGrass.AETHER); - } - - @Override - public IBlockState getCoastalBlock() - { - return BlocksAether.quicksoil.getDefaultState(); - } - - @Override - public IIslandGenerator createIslandGenerator(Random rand, IIslandData islandData) - { - return new IslandGeneratorForgottenHighlands(); - } - - @Override - public Collection<NBT> createIslandComponents(final IIslandData islandData) - { - return Collections.emptyList(); - } - - @Override - public float getRarityWeight() - { - return 0.75F; - } - - @Override - public void postDecorate(final World world, final Random rand, final BlockPos pos) - { - - } - - @Override - public List<WorldDecoration> createBasicDecorations(Random rand) - { - List<WorldDecoration> decorations = Lists.newArrayList(); - - decorations - .add(new WorldDecorationSimple(6, 0.0F, EventType.GRASS, new PositionerSurface(), GenerationAether.short_aether_grass, - GenerationAether.aether_grass, GenerationAether.long_aether_grass)); - decorations.add(new WorldDecorationSimple(1, 0.2F, EventType.GRASS, new PositionerSurface(), GenerationAether.skyroot_twigs)); - - - List<IBlockState> flowers = Lists.newArrayList(); - - flowers.addAll(GenUtil.GENERAL_FLOWER_STATES); - - decorations.add(GenUtil.createFlowerDecorations(rand, flowers, Lists.newArrayList(BlocksAether.forgotten_rose.getDefaultState()))); - decorations.add(GenUtil.createShroomDecorations(GenUtil.SHROOM_STATES)); - - decorations.add(new WorldDecorationSimple(6, 0.0F, EventType.GRASS, new PositionerLevels(0, 128), GenerationAether.holystone_rocks)); - - return decorations; - } - - @Override - public List<WorldDecoration> createTreeDecorations(Random rand) - { - List<WorldDecoration> treeDecorations = Lists.newArrayList(); - - treeDecorations.add(new WorldDecorationSimple(6, 0.0F, EventType.TREE, new PositionerSurface(), new BlueprintWorldGen(GenerationAether.SKYROOT_OAK_GREEN))); - treeDecorations.add(new WorldDecorationSimple(1, 0.0F, EventType.TREE, new PositionerSurface(), new BlueprintWorldGen(GenerationAether.AMBEROOT_TREE))); - - return treeDecorations; - } - - @Override - public float createForestTreeCountModifier(Random rand) - { - if (rand.nextInt(30) == 0) - { - return 0.1F + (rand.nextFloat() * 0.9F); - } - - return 0.75F + (rand.nextFloat() * 0.25F); - } - - @Override - public float createOpenAreaDecorationGenChance(Random rand) - { - return 0.15F * rand.nextFloat(); - } - -} diff --git a/src/main/java/com/gildedgames/aether/common/world/biomes/highlands/BiomeHighlands.java b/src/main/java/com/gildedgames/aether/common/world/biomes/highlands/BiomeHighlands.java deleted file mode 100644 index 3d28238ee7..0000000000 --- a/src/main/java/com/gildedgames/aether/common/world/biomes/highlands/BiomeHighlands.java +++ /dev/null @@ -1,167 +0,0 @@ -package com.gildedgames.aether.common.world.biomes.highlands; - -import com.gildedgames.aether.api.registrar.BlocksAether; -import com.gildedgames.aether.api.world.decoration.WorldDecoration; -import com.gildedgames.aether.api.world.decoration.WorldDecorationSimple; -import com.gildedgames.aether.api.world.generation.BlueprintWorldGen; -import com.gildedgames.aether.api.world.generation.positioners.PositionerLevels; -import com.gildedgames.aether.api.world.generation.positioners.PositionerSurface; -import com.gildedgames.aether.api.world.islands.IIslandData; -import com.gildedgames.aether.api.world.islands.IIslandGenerator; -import com.gildedgames.aether.common.init.GenerationAether; -import com.gildedgames.aether.common.world.biomes.BiomeAetherBase; -import com.gildedgames.aether.common.world.island.IslandVariables; -import com.gildedgames.aether.common.world.island.generators.IslandGeneratorHighlandMegacoast; -import com.gildedgames.aether.common.world.island.generators.IslandGeneratorHighlands; -import com.gildedgames.aether.common.world.templates.TemplateWorldGen; -import com.gildedgames.aether.common.world.util.GenUtil; -import com.gildedgames.orbis.lib.core.BlueprintDefinition; -import com.gildedgames.orbis.lib.util.mc.NBT; -import com.google.common.collect.Lists; -import net.minecraft.block.state.IBlockState; -import net.minecraft.util.ResourceLocation; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.World; -import net.minecraft.world.biome.Biome; -import net.minecraftforge.event.terraingen.DecorateBiomeEvent.Decorate.EventType; - -import java.util.Collection; -import java.util.Collections; -import java.util.List; -import java.util.Random; - -public class BiomeHighlands extends BiomeAetherBase -{ - - public BiomeHighlands(final Biome.BiomeProperties properties, final ResourceLocation registryName) - { - super(properties, registryName); - } - - @Override - public IBlockState getCoastalBlock() - { - return BlocksAether.quicksoil.getDefaultState(); - } - - @Override - public IIslandGenerator createIslandGenerator(Random rand, IIslandData islandData) - { - int range = rand.nextInt(20); - - boolean firstIsland = islandData.getBounds().getMinX() == 0 && islandData.getBounds().getMinZ() == 0; - -// if (range < 3) -// { -// return new IslandGeneratorHighlandMegacoast(); -// } - - int coastHeight = 1 + rand.nextInt(2); - - double coastSpread = 0.1; - - if (coastHeight == 0) - { - coastSpread = 0.0; - } - - return new IslandGeneratorHighlands(IslandVariables.build() - .coastHeight(coastHeight) - .coastSpread(coastSpread) - .lakeBlendRange(0.05 + (rand.nextDouble() * 0.5)) - .lakeDepth(rand.nextInt(40) + 5) - .lakeScale(40.0D + (rand.nextDouble() * 30.0D)) - .lakeThreshold(rand.nextDouble() * 0.3) - .maxTerrainHeight(20 + rand.nextInt(25)) - .terraces(rand.nextBoolean()) - .lakeConcentrationModifier(0.5 + (rand.nextDouble() * -2.5))); - } - - @Override - public Collection<NBT> createIslandComponents(final IIslandData islandData) - { - return Collections.emptyList(); - } - - @Override - public float getRarityWeight() - { - return 1.0F; - } - - @Override - public void postDecorate(final World world, final Random rand, final BlockPos pos) - { - - } - - @Override - public List<WorldDecoration> createBasicDecorations(Random rand) - { - List<WorldDecoration> decorations = Lists.newArrayList(); - - decorations.add(new WorldDecorationSimple(2, 0.0f, EventType.GRASS, new PositionerSurface(), GenerationAether.short_aether_grass)); - decorations.add(new WorldDecorationSimple(1, 0.2f, EventType.GRASS, new PositionerSurface(), GenerationAether.skyroot_twigs)); - - List<IBlockState> flowers = Lists.newArrayList(); - - flowers.addAll(GenUtil.GENERAL_FLOWER_STATES); - - decorations.add(GenUtil.createFlowerDecorations(rand, flowers, Lists.newArrayList(BlocksAether.highlands_tulips.getDefaultState()))); - decorations.add(GenUtil.createShroomDecorations(GenUtil.SHROOM_STATES)); - - decorations.add(new WorldDecorationSimple(6, 0.0f, EventType.GRASS, new PositionerLevels(0, 128), GenerationAether.holystone_rocks)); - - return decorations; - } - - @Override - public List<WorldDecoration> createTreeDecorations(Random rand) - { - List<WorldDecoration> treeDecorations = Lists.newArrayList(); - - BlueprintDefinition[] forest = new BlueprintDefinition[] - { - GenerationAether.SKYROOT_OAK_GREEN, GenerationAether.WISPROOT_GREEN - }; - - BlueprintDefinition[] neopolitan = new BlueprintDefinition[] - { - GenerationAether.SKYROOT_OAK_GREEN, GenerationAether.SKYROOT_OAK_DARK_BLUE, GenerationAether.SKYROOT_OAK_BLUE, - GenerationAether.WISPROOT_GREEN, GenerationAether.WISPROOT_BLUE, GenerationAether.WISPROOT_DARK_BLUE - }; - - BlueprintDefinition[] chosen = rand.nextBoolean() ? neopolitan : forest; - - int amountOfTreeTypes = 2 + rand.nextInt(4); - - for (int i = 0; i < amountOfTreeTypes; i++) - { - treeDecorations.add(new WorldDecorationSimple(15, 0.0f, EventType.TREE, new PositionerSurface(), - new BlueprintWorldGen(chosen[rand.nextInt(chosen.length)]))); - } - - treeDecorations.add(new WorldDecorationSimple(1 + rand.nextInt(3), 0.0f, EventType.TREE, new PositionerSurface(), - new TemplateWorldGen(GenerationAether.skyroot_moa_nest_tree_1))); - - float k = rand.nextFloat(); - - treeDecorations.add(new WorldDecorationSimple(1 + rand.nextInt(3), 0.5F * k, EventType.TREE, new PositionerSurface(), - new BlueprintWorldGen(GenerationAether.AMBEROOT_TREE))); - - return treeDecorations; - } - - @Override - public float createForestTreeCountModifier(Random rand) - { - return 0.75F + (rand.nextFloat() * 0.25F); - } - - @Override - public float createOpenAreaDecorationGenChance(Random rand) - { - return 0.8F * rand.nextFloat(); - } - -} diff --git a/src/main/java/com/gildedgames/aether/common/world/biomes/irradiated_forests/BiomeIrradiatedForests.java b/src/main/java/com/gildedgames/aether/common/world/biomes/irradiated_forests/BiomeIrradiatedForests.java deleted file mode 100644 index d2d7eb8867..0000000000 --- a/src/main/java/com/gildedgames/aether/common/world/biomes/irradiated_forests/BiomeIrradiatedForests.java +++ /dev/null @@ -1,115 +0,0 @@ -package com.gildedgames.aether.common.world.biomes.irradiated_forests; - -import com.gildedgames.aether.api.registrar.BlocksAether; -import com.gildedgames.aether.api.world.decoration.WorldDecoration; -import com.gildedgames.aether.api.world.decoration.WorldDecorationSimple; -import com.gildedgames.aether.api.world.generation.BlueprintWorldGen; -import com.gildedgames.aether.api.world.generation.positioners.PositionerLevels; -import com.gildedgames.aether.api.world.generation.positioners.PositionerSurface; -import com.gildedgames.aether.api.world.islands.IIslandData; -import com.gildedgames.aether.api.world.islands.IIslandGenerator; -import com.gildedgames.aether.common.blocks.natural.BlockAetherGrass; -import com.gildedgames.aether.common.init.GenerationAether; -import com.gildedgames.aether.common.world.biomes.BiomeAetherBase; -import com.gildedgames.aether.common.world.island.generators.IslandGeneratorIrradiatedForests; -import com.gildedgames.aether.common.world.util.GenUtil; -import com.gildedgames.orbis.lib.util.mc.NBT; -import com.google.common.collect.Lists; -import net.minecraft.block.state.IBlockState; -import net.minecraft.util.ResourceLocation; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.World; -import net.minecraftforge.event.terraingen.DecorateBiomeEvent.Decorate.EventType; - -import java.util.Collection; -import java.util.List; -import java.util.Random; - -public class BiomeIrradiatedForests extends BiomeAetherBase -{ - - public BiomeIrradiatedForests(final BiomeProperties properties, final ResourceLocation registryName) - { - super(properties, registryName); - - this.topBlock = BlocksAether.aether_grass.getDefaultState().withProperty(BlockAetherGrass.PROPERTY_VARIANT, BlockAetherGrass.IRRADIATED); - } - - @Override - public IBlockState getCoastalBlock() - { - return BlocksAether.quicksoil.getDefaultState(); - } - - @Override - public IIslandGenerator createIslandGenerator(Random rand, IIslandData islandData) - { - return new IslandGeneratorIrradiatedForests(); - } - - @Override - public Collection<NBT> createIslandComponents(final IIslandData islandData) - { - return Lists.newArrayList(new IrradiatedForestsData(120, islandData.getSeed(), islandData.getBounds())); - } - - @Override - public float getRarityWeight() - { - return 0.75F; - } - - @Override - public void postDecorate(final World world, final Random rand, final BlockPos pos) - { - - } - - @Override - public List<WorldDecoration> createBasicDecorations(Random rand) - { - List<WorldDecoration> decorations = Lists.newArrayList(); - - decorations.add(new WorldDecorationSimple(2, 0.0F, EventType.GRASS, new PositionerSurface(), GenerationAether.short_aether_grass)); - decorations.add(new WorldDecorationSimple(1, 0.2F, EventType.GRASS, new PositionerSurface(), GenerationAether.skyroot_twigs)); - - List<IBlockState> flowers = Lists.newArrayList(); - - flowers.addAll(GenUtil.GENERAL_FLOWER_STATES); - - decorations.add(GenUtil.createFlowerDecorations(rand, flowers, Lists.newArrayList(BlocksAether.irradiated_flower.getDefaultState()))); - decorations.add(GenUtil.createShroomDecorations(GenUtil.SHROOM_STATES)); - - decorations.add(new WorldDecorationSimple(6, 0.0F, EventType.GRASS, new PositionerLevels(0, 128), GenerationAether.holystone_rocks)); - - return decorations; - } - - @Override - public List<WorldDecoration> createTreeDecorations(Random rand) - { - List<WorldDecoration> treeDecorations = Lists.newArrayList(); - - treeDecorations.add(new WorldDecorationSimple(30, 0.0F, EventType.TREE, new PositionerSurface(), new BlueprintWorldGen(GenerationAether.AMBEROOT_TREE))); - - return treeDecorations; - } - - @Override - public float createForestTreeCountModifier(Random rand) - { - if (rand.nextInt(30) == 0) - { - return 0.1F + (rand.nextFloat() * 0.9F); - } - - return 0.75F + (rand.nextFloat() * 0.25F); - } - - @Override - public float createOpenAreaDecorationGenChance(Random rand) - { - return 0.15F * rand.nextFloat(); - } - -} diff --git a/src/main/java/com/gildedgames/aether/common/world/biomes/irradiated_forests/CrackLineSegment.java b/src/main/java/com/gildedgames/aether/common/world/biomes/irradiated_forests/CrackLineSegment.java deleted file mode 100644 index bbcde5d674..0000000000 --- a/src/main/java/com/gildedgames/aether/common/world/biomes/irradiated_forests/CrackLineSegment.java +++ /dev/null @@ -1,112 +0,0 @@ -package com.gildedgames.aether.common.world.biomes.irradiated_forests; - -public class CrackLineSegment -{ - public final double x1, x2, y1, y2; - - public CrackLineSegment(double x1, double x2, double y1, double y2) - { - this.x1 = x1; - this.x2 = x2; - this.y1 = y1; - this.y2 = y2; - } - - public double distanceToPoint(double x, double y) - { - double a = x - this.x1; - double b = y - this.y1; - double c = this.x2 - this.x1; - double d = this.y2 - this.y1; - - double dot = a * c + b * d; - double length = c * c + d * d; - - double param = dot / length; - - double xx, yy; - - if (param < 0) - { - xx = this.x1; - yy = this.y1; - } - else if (param > 1) - { - xx = this.x2; - yy = this.y2; - } - else - { - xx = this.x1 + param * c; - yy = this.y1 + param * d; - } - - double dx = x - xx; - double dy = y - yy; - - return Math.sqrt(dx * dx + dy * dy); - } - - - public boolean intersects(double boundsMinX, double boundsMinY, double boundsMaxX, double boundsMaxY) - { - double minX = this.x1; - double maxX = this.x2; - - if (this.x1 > this.x2) - { - minX = this.x2; - maxX = this.x1; - } - - if (maxX > boundsMaxX) - { - maxX = boundsMaxX; - } - - if (minX < boundsMinX) - { - minX = boundsMinX; - } - - if (minX > maxX) - { - return false; - } - - double minY = this.y1; - double maxY = this.y2; - - double dx = this.x2 - this.x1; - - if (Math.abs(dx) > 0.0000001) - { - double a = (this.y2 - this.y1) / dx; - double b = this.y1 - a * this.x2; - - minY = a * minX + b; - maxY = a * maxX + b; - } - - if (minY > maxY) - { - double tmp = maxY; - - maxY = minY; - minY = tmp; - } - - if (maxY > boundsMaxY) - { - maxY = boundsMaxY; - } - - if (minY < boundsMinY) - { - minY = boundsMinY; - } - - return !(minY > maxY); - } -} diff --git a/src/main/java/com/gildedgames/aether/common/world/biomes/irradiated_forests/IrradiatedForestsData.java b/src/main/java/com/gildedgames/aether/common/world/biomes/irradiated_forests/IrradiatedForestsData.java deleted file mode 100644 index 0a4c445360..0000000000 --- a/src/main/java/com/gildedgames/aether/common/world/biomes/irradiated_forests/IrradiatedForestsData.java +++ /dev/null @@ -1,325 +0,0 @@ -package com.gildedgames.aether.common.world.biomes.irradiated_forests; - -import com.gildedgames.aether.api.world.islands.IIslandBounds; -import com.gildedgames.aether.common.math.delaunay.Point; -import com.gildedgames.aether.common.math.delaunay.Rectangle; -import com.gildedgames.aether.common.math.delaunay.Site; -import com.gildedgames.aether.common.math.delaunay.Voronoi; -import com.gildedgames.aether.common.math.voronoi.VoronoiGraphUtils; -import com.gildedgames.orbis.lib.util.ChunkMap; -import com.gildedgames.orbis.lib.util.io.NBTFunnel; -import com.gildedgames.orbis.lib.util.mc.NBT; -import com.google.common.collect.Lists; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.util.math.BlockPos; - -import java.util.*; - -public class IrradiatedForestsData implements NBT -{ - private static final int NUM_LLOYD_RELAXATIONS = 1; - - private final ChunkMap<List<CrackLineSegment>> cracks = new ChunkMap<>(); - - private Voronoi voronoi; - - private int crackPoints, islandWidth, islandLength; - - private long seed; - - private BlockPos min; - - private IrradiatedForestsData() - { - - } - - public IrradiatedForestsData(final int crackPoints, final long seed, IIslandBounds bounds) - { - this.crackPoints = crackPoints; - this.seed = seed; - this.islandWidth = bounds.getWidth(); - this.islandLength = bounds.getLength(); - this.min = new BlockPos(bounds.getMinX(), bounds.getMinY(), bounds.getMinZ()); - } - - public boolean checkInit() - { - boolean generate = this.voronoi == null; - - if (generate) - { - final Random rand = new Random(this.seed); - - this.voronoi = new Voronoi(this.crackPoints, rand, new Rectangle(0, 0, this.islandWidth, this.islandLength)); - this.voronoi = VoronoiGraphUtils.lloydRelax(this.voronoi, NUM_LLOYD_RELAXATIONS); - - final List<Site> sitesUsed = Lists.newArrayList(); - - Site centerSite = null; - - final double radiusX = (this.islandWidth / 2.0); - final double radiusZ = (this.islandLength / 2.0); - - double oldDist = Double.POSITIVE_INFINITY; - - for (final Site s : this.voronoi.getSites()) - { - final double newDistX = Math.abs((radiusX - s.x) * (1.0 / radiusX)); - final double newDistZ = Math.abs((radiusZ - s.y) * (1.0 / radiusZ)); - - final double newDist = Math.sqrt(newDistX * newDistX + newDistZ * newDistZ); - - if (newDist < oldDist) - { - centerSite = s; - - oldDist = newDist; - } - } - - if (centerSite == null) - { - throw new IllegalStateException("Couldn't find center site"); - } - - for (int crackIt = 0; crackIt < 4; crackIt++) - { - Site site = centerSite; - - loop: - for (int i = 0; i < 20; i++) - { - final Site[] sites = this.voronoi.neighborSitesForSite(site); - - Site end = null; - - int sitesChecked = 0; - - while (end == null || sitesUsed.contains(end)) - { - end = sites[rand.nextInt(sites.length)]; - - sitesChecked++; - - if (sitesChecked > sites.length) - { - break loop; - } - } - - final Point a = site; - final Point b = end; - - final Point[] divided = this.subdivideFractal(a, b, 4, 0.8, rand); - - for (int j = 0; j < divided.length - 1; j++) - { - final Point div1 = divided[j]; - final Point div2 = divided[j + 1]; - - this.addCrackLine(div1.x, div1.y, div2.x, div2.y); - } - - sitesUsed.add(site); - - site = end; - } - } - } - - return generate; - } - - private static final double ANGLE_COS = Math.cos(Math.PI / 2.0); - private static final double ANGLE_SIN = Math.sin(Math.PI / 2.0); - - private Point[] subdivideFractal(final Point a, final Point b, final int subdivisionCount, final double amplitude, - final Random rand) - { - Point[] values = new Point[] { a, b }; - - for (int i = 0; i < subdivisionCount; i++) - { - final Point[] divided = new Point[(values.length - 1) * 3]; - - for (int j = 0; j < values.length - 1; j++) - { - final Point div1 = values[j]; - final Point div2 = values[j + 1]; - - double centerX = Point.lerp(div1.x, div2.x, 0.5); - double centerY = Point.lerp(div1.y, div2.y, 0.5); - - double cX = centerX + (div1.x - centerX) * ANGLE_COS - (div1.y - centerY) * ANGLE_SIN; - double cY = centerY + (div1.x - centerX) * ANGLE_SIN - (div1.y - centerY) * ANGLE_COS; - - double dX = centerX + (div2.x - centerX) * ANGLE_COS - (div2.y - centerY) * ANGLE_SIN; - double dY = centerY + (div2.x - centerX) * ANGLE_SIN - (div2.y - centerY) * ANGLE_COS; - - final double zAlpha = 0.1 + ((amplitude - 0.1) * rand.nextDouble()); - final double zX = Point.lerp(cX, dX, zAlpha); - final double zY = Point.lerp(cY, dY, zAlpha); - - final double lerpedX = Point.lerp(centerX, zX, 0.5); - final double lerpedY = Point.lerp(centerY, zY, 0.5); - - final Point lerped = new Point(lerpedX, lerpedY); - - final int n = j * 3; - - divided[n] = div1; - divided[n + 1] = lerped; - divided[n + 2] = div2; - } - - values = divided; - } - - return values; - } - - @Override - public void write(final NBTTagCompound tag) - { - final NBTFunnel funnel = new NBTFunnel(tag); - - tag.setLong("seed", this.seed); - tag.setInteger("crackPoints", this.crackPoints); - tag.setInteger("width", this.islandWidth); - tag.setInteger("length", this.islandLength); - funnel.setPos("min", this.min); - } - - @Override - public void read(final NBTTagCompound tag) - { - final NBTFunnel funnel = new NBTFunnel(tag); - - this.seed = tag.getLong("seed"); - this.crackPoints = tag.getInteger("crackPoints"); - this.islandWidth = tag.getInteger("width"); - this.islandLength = tag.getInteger("length"); - this.min = funnel.getPos("min"); - } - - public Collection<CrackLineSegment> getCracksInRegion(int chunkX, int chunkZ, int radius) - { - int minX = (chunkX) - radius; - int minZ = (chunkZ) - radius; - - int maxX = (chunkX) + radius + 1; - int maxZ = (chunkZ) + radius + 1; - - HashSet<CrackLineSegment> list = new HashSet<>(); - - for (int x = minX; x < maxX; x++) - { - for (int z = minZ; z < maxZ; z++) - { - List<CrackLineSegment> lines = this.cracks.get(x - (this.min.getX() >> 4), z - (this.min.getZ() >> 4)); - - if (lines != null) - { - list.addAll(lines); - } - } - } - - return list; - } - - private void addCrackLine(double x0, double y0, double x1, double y1) - { - CrackLineSegment segment = new CrackLineSegment( - (this.min.getX() + x0), (this.min.getX() + x1), - (this.min.getZ() + y0), (this.min.getZ() + y1) - ); - - x0 /= 16.0; - x1 /= 16.0; - y0 /= 16.0; - y1 /= 16.0; - - double dx = Math.abs(x1 - x0); - double dy = Math.abs(y1 - y0); - - int x = (int) (Math.floor(x0) / 1.0); - int y = (int) (Math.floor(y0) / 1.0); - - double dt_dx = 1.0 / dx; - double dt_dy = 1.0 / dy; - - double t = 0; - - int n = 1; - int x_inc, y_inc; - double t_next_vertical, t_next_horizontal; - - if (dx == 0) - { - x_inc = 0; - t_next_horizontal = dt_dx; // infinity - } - else if (x1 > x0) - { - x_inc = 1; - n += (int) (Math.floor(x1)) - x; - t_next_horizontal = (Math.floor(x0) + 1 - x0) * dt_dx; - } - else - { - x_inc = -1; - n += x - (int) (Math.floor(x1)); - t_next_horizontal = (x0 - Math.floor(x0)) * dt_dx; - } - - if (dy == 0) - { - y_inc = 0; - t_next_vertical = dt_dy; // infinity - } - else if (y1 > y0) - { - y_inc = 1; - n += (int) (Math.floor(y1)) - y; - t_next_vertical = (Math.floor(y0) + 1 - y0) * dt_dy; - } - else - { - y_inc = -1; - n += y - (int) (Math.floor(y1)); - t_next_vertical = (y0 - Math.floor(y0)) * dt_dy; - } - - while (n > 0) - { - List<CrackLineSegment> list = this.cracks.get(x, y); - - if (list == null) - { - list = new ArrayList<>(); - - this.cracks.put(x, y, list); - } - - list.add(segment); - - if (t_next_vertical < t_next_horizontal) - { - y += y_inc; - t = t_next_vertical; - t_next_vertical += dt_dy; - } - else - { - x += x_inc; - t = t_next_horizontal; - t_next_horizontal += dt_dx; - } - - --n; - } - - } -} diff --git a/src/main/java/com/gildedgames/aether/common/world/biomes/magnetic_hills/BiomeMagneticHills.java b/src/main/java/com/gildedgames/aether/common/world/biomes/magnetic_hills/BiomeMagneticHills.java deleted file mode 100644 index 9bc7955193..0000000000 --- a/src/main/java/com/gildedgames/aether/common/world/biomes/magnetic_hills/BiomeMagneticHills.java +++ /dev/null @@ -1,170 +0,0 @@ -package com.gildedgames.aether.common.world.biomes.magnetic_hills; - -import com.gildedgames.aether.api.registrar.BlocksAether; -import com.gildedgames.aether.api.world.decoration.WorldDecoration; -import com.gildedgames.aether.api.world.decoration.WorldDecorationSimple; -import com.gildedgames.aether.api.world.generation.BlueprintWorldGen; -import com.gildedgames.aether.api.world.generation.positioners.PositionerLevels; -import com.gildedgames.aether.api.world.generation.positioners.PositionerSurface; -import com.gildedgames.aether.api.world.islands.IIslandData; -import com.gildedgames.aether.api.world.islands.IIslandGenerator; -import com.gildedgames.aether.common.blocks.natural.BlockAetherGrass; -import com.gildedgames.aether.common.init.GenerationAether; -import com.gildedgames.aether.common.world.biomes.BiomeAetherBase; -import com.gildedgames.aether.common.world.island.IslandVariables; -import com.gildedgames.aether.common.world.island.generators.IslandGeneratorHighlands; -import com.gildedgames.aether.common.world.templates.TemplateWorldGen; -import com.gildedgames.aether.common.world.util.GenUtil; -import com.gildedgames.orbis.lib.core.BlueprintDefinition; -import com.gildedgames.orbis.lib.util.mc.NBT; -import com.google.common.collect.Lists; -import net.minecraft.block.state.IBlockState; -import net.minecraft.util.ResourceLocation; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.World; -import net.minecraftforge.event.terraingen.DecorateBiomeEvent.Decorate.EventType; - -import java.util.Collection; -import java.util.List; -import java.util.Random; - -public class BiomeMagneticHills extends BiomeAetherBase -{ - - public BiomeMagneticHills(final BiomeProperties properties, final ResourceLocation registryName) - { - super(properties, registryName); - - this.topBlock = BlocksAether.aether_grass.getDefaultState().withProperty(BlockAetherGrass.PROPERTY_VARIANT, BlockAetherGrass.MAGNETIC); - } - - @Override - public IBlockState getCoastalBlock() - { - return BlocksAether.ferrosite_sand.getDefaultState(); - } - - @Override - public IIslandGenerator createIslandGenerator(Random rand, IIslandData islandData) - { - int coastHeight = 1 + rand.nextInt(3); - double coastSpread = 0.1; - - if (coastHeight == 0) - { - coastSpread = 0.0; - } - - return new IslandGeneratorHighlands(IslandVariables.build() - .coastHeight(coastHeight) - .coastSpread(coastSpread) - .lakeBlendRange(0.05 + (rand.nextDouble() * 0.5)) - .lakeDepth(rand.nextInt(40) + 5) - .lakeScale(40.0D + (rand.nextDouble() * 30.0D)) - .lakeThreshold(rand.nextDouble() * 0.3) - .maxTerrainHeight(20 + rand.nextInt(15)) - .terraces(rand.nextInt(20) == 0) - .lakeConcentrationModifier(0.5 + (rand.nextDouble() * -2.5)) - .magneticPillars(true)); - } - - @Override - public Collection<NBT> createIslandComponents(final IIslandData islandData) - { - final List<NBT> components = Lists.newArrayList(); - - final BlockPos center = new BlockPos(islandData.getBounds().getCenterX(), 0, islandData.getBounds().getCenterZ()); - - components - .add(new MagneticHillsData(center, islandData.getSeed(), 300, - 600)); - - return components; - } - - @Override - public float getRarityWeight() - { - return 1.0F; - } - - @Override - public void postDecorate(final World world, final Random rand, final BlockPos pos) - { - - } - - @Override - public List<WorldDecoration> createBasicDecorations(Random rand) - { - List<WorldDecoration> decorations = Lists.newArrayList(); - - decorations.add(new WorldDecorationSimple(2, 0.0F, EventType.GRASS, new PositionerSurface(), GenerationAether.short_aether_grass)); - decorations.add(new WorldDecorationSimple(1, 0.2F, EventType.GRASS, new PositionerSurface(), GenerationAether.skyroot_twigs)); - - List<IBlockState> flowers = Lists.newArrayList(); - - flowers.addAll(GenUtil.GENERAL_FLOWER_STATES); - - decorations.add(GenUtil.createFlowerDecorations(rand, flowers, Lists.newArrayList(BlocksAether.magnetic_shroom.getDefaultState()))); - decorations.add(GenUtil.createShroomDecorations(GenUtil.SHROOM_STATES)); - decorations.add(GenUtil.createShroomDecorations(Lists.newArrayList(BlocksAether.magnetic_shroom.getDefaultState()))); - - decorations.add(new WorldDecorationSimple(6, 0.0F, EventType.GRASS, new PositionerLevels(0, 128), GenerationAether.holystone_rocks)); - - return decorations; - } - - @Override - public List<WorldDecoration> createTreeDecorations(Random rand) - { - List<WorldDecoration> treeDecorations = Lists.newArrayList(); - - BlueprintDefinition[] forest = new BlueprintDefinition[] - { - GenerationAether.SKYROOT_OAK_GREEN, GenerationAether.WISPROOT_GREEN - }; - - BlueprintDefinition[] neopolitan = new BlueprintDefinition[] - { - GenerationAether.SKYROOT_OAK_GREEN, GenerationAether.SKYROOT_OAK_DARK_BLUE, GenerationAether.SKYROOT_OAK_BLUE, - GenerationAether.WISPROOT_GREEN, GenerationAether.WISPROOT_BLUE, GenerationAether.WISPROOT_DARK_BLUE - }; - - BlueprintDefinition[] chosen = rand.nextBoolean() ? neopolitan : forest; - - int amountOfTreeTypes = 2 + rand.nextInt(4); - - for (int i = 0; i < amountOfTreeTypes; i++) - { - treeDecorations.add(new WorldDecorationSimple(15, 0.0F, EventType.TREE, new PositionerSurface(), - new BlueprintWorldGen(chosen[rand.nextInt(chosen.length)]))); - } - - treeDecorations.add(new WorldDecorationSimple(1, 0.0F, EventType.TREE, new PositionerSurface(), - new BlueprintWorldGen(GenerationAether.AMBEROOT_TREE))); - - treeDecorations.add(new WorldDecorationSimple(1, 0.0F, EventType.TREE, new PositionerSurface(), - new TemplateWorldGen(GenerationAether.skyroot_moa_nest_tree_1))); - - return treeDecorations; - } - - @Override - public float createForestTreeCountModifier(Random rand) - { - if (rand.nextInt(30) == 0) - { - return 0.1F + (rand.nextFloat() * 0.9F); - } - - return 0.75F + (rand.nextFloat() * 0.25F); - } - - @Override - public float createOpenAreaDecorationGenChance(Random rand) - { - return 0.15F * rand.nextFloat(); - } - -} diff --git a/src/main/java/com/gildedgames/aether/common/world/biomes/magnetic_hills/MagneticHillPillar.java b/src/main/java/com/gildedgames/aether/common/world/biomes/magnetic_hills/MagneticHillPillar.java deleted file mode 100644 index 528d2a04c9..0000000000 --- a/src/main/java/com/gildedgames/aether/common/world/biomes/magnetic_hills/MagneticHillPillar.java +++ /dev/null @@ -1,72 +0,0 @@ -package com.gildedgames.aether.common.world.biomes.magnetic_hills; - -import com.gildedgames.orbis.lib.util.io.NBTFunnel; -import com.gildedgames.orbis.lib.util.mc.NBT; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.util.math.BlockPos; - -public class MagneticHillPillar implements NBT -{ - private float elongationMod; - - private int topHeight; - - private double radius; - - private BlockPos pos; - - private MagneticHillPillar() - { - - } - - public MagneticHillPillar(final float elongationMod, final int topHeight, final BlockPos pos, final double radius) - { - this.elongationMod = elongationMod; - this.topHeight = topHeight; - this.pos = pos; - this.radius = radius; - } - - public float getElongationMod() - { - return this.elongationMod; - } - - public int getTopHeight() - { - return this.topHeight; - } - - public BlockPos getPos() - { - return this.pos; - } - - public double getRadius() - { - return this.radius; - } - - @Override - public void write(final NBTTagCompound tag) - { - final NBTFunnel funnel = new NBTFunnel(tag); - - tag.setFloat("elongationMod", this.elongationMod); - tag.setInteger("topHeight", this.topHeight); - funnel.setPos("pos", this.pos); - tag.setDouble("radius", this.radius); - } - - @Override - public void read(final NBTTagCompound tag) - { - final NBTFunnel funnel = new NBTFunnel(tag); - - this.elongationMod = tag.getFloat("elongationMod"); - this.topHeight = tag.getInteger("topHeight"); - this.pos = funnel.getPos("pos"); - this.radius = tag.getDouble("radius"); - } -} diff --git a/src/main/java/com/gildedgames/aether/common/world/biomes/magnetic_hills/MagneticHillsData.java b/src/main/java/com/gildedgames/aether/common/world/biomes/magnetic_hills/MagneticHillsData.java deleted file mode 100644 index 5bbf6a6aed..0000000000 --- a/src/main/java/com/gildedgames/aether/common/world/biomes/magnetic_hills/MagneticHillsData.java +++ /dev/null @@ -1,87 +0,0 @@ -package com.gildedgames.aether.common.world.biomes.magnetic_hills; - -import com.gildedgames.orbis.lib.util.io.NBTFunnel; -import com.gildedgames.orbis.lib.util.mc.NBT; -import com.google.common.collect.Lists; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.util.math.BlockPos; - -import java.util.Collection; -import java.util.List; -import java.util.Random; - -public class MagneticHillsData implements NBT -{ - private long seed; - - private int shaftCount, spawnRadius; - - private List<MagneticHillPillar> magneticPillars; - - private BlockPos center; - - private MagneticHillsData() - { - - } - - public MagneticHillsData(final BlockPos center, final long seed, final int shaftCount, final int spawnRadius) - { - this.center = center; - this.seed = seed; - this.shaftCount = shaftCount; - this.spawnRadius = spawnRadius; - } - - public Collection<MagneticHillPillar> getMagneticPillars() - { - if (this.magneticPillars == null) - { - this.magneticPillars = Lists.newArrayList(); - - final Random rand = new Random(this.seed); - - for (int i = 0; i < this.shaftCount; i++) - { - final boolean negPillar = rand.nextInt(4) == 0; - - final BlockPos pos = this.center - .add(rand.nextInt(this.spawnRadius) * (rand.nextBoolean() ? -1 : 1), - (negPillar ? -rand.nextInt(30) : rand.nextInt(30)) + (negPillar ? -50 : 10), - rand.nextInt(this.spawnRadius) * (rand.nextBoolean() ? -1 : 1)); - - final float elongationMod = (rand.nextFloat() * 0.5F) + 0.25F; - final int topHeight = rand.nextInt(10) + 30; - final double radius = (rand.nextDouble() * 20.0D) + 15D; - - final MagneticHillPillar pillar = new MagneticHillPillar(elongationMod, topHeight, pos, radius); - - this.magneticPillars.add(pillar); - } - } - - return this.magneticPillars; - } - - @Override - public void write(final NBTTagCompound tag) - { - final NBTFunnel funnel = new NBTFunnel(tag); - - funnel.setPos("center", this.center); - tag.setLong("seed", this.seed); - tag.setInteger("shaftCount", this.shaftCount); - tag.setInteger("spawnRadius", this.spawnRadius); - } - - @Override - public void read(final NBTTagCompound tag) - { - final NBTFunnel funnel = new NBTFunnel(tag); - - this.center = funnel.getPos("center"); - this.seed = tag.getLong("seed"); - this.shaftCount = tag.getInteger("shaftCount"); - this.spawnRadius = tag.getInteger("spawnRadius"); - } -} diff --git a/src/main/java/com/gildedgames/aether/common/world/decorations/WorldGenAetherMinable.java b/src/main/java/com/gildedgames/aether/common/world/decorations/WorldGenAetherMinable.java deleted file mode 100644 index 217e8608ec..0000000000 --- a/src/main/java/com/gildedgames/aether/common/world/decorations/WorldGenAetherMinable.java +++ /dev/null @@ -1,148 +0,0 @@ -package com.gildedgames.aether.common.world.decorations; - -import com.gildedgames.orbis.lib.util.ArrayHelper; -import com.gildedgames.orbis.lib.world.WorldSlice; -import net.minecraft.block.state.IBlockState; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.MathHelper; - -import java.util.Random; - -public class WorldGenAetherMinable -{ - private final IBlockState oreBlock; - - /** The number of blocks to generate. */ - private final int numberOfBlocks; - - private final IBlockState[] predicate; - - private boolean emitsLight, isFloating; - - public WorldGenAetherMinable(final IBlockState state, final int blockCount, final IBlockState[] replaceableStates) - { - this.oreBlock = state; - this.numberOfBlocks = blockCount; - this.predicate = replaceableStates; - } - - public void setFloating(boolean val) - { - this.isFloating = val; - } - - public void setEmitsLight(boolean val) - { - this.emitsLight = val; - } - - public boolean generate(final WorldSlice slice, final Random rand, final BlockPos position) - { - final float f = rand.nextFloat() * (float) Math.PI; - final float fSin = MathHelper.sin(f); - - final float d0 = ((position.getX() + 8) + fSin * this.numberOfBlocks / 8.0f); - final float d1 = ((position.getX() + 8) - fSin * this.numberOfBlocks / 8.0f); - - final float d2 = ((position.getZ() + 8) + fSin * this.numberOfBlocks / 8.0f); - final float d3 = ((position.getZ() + 8) - fSin * this.numberOfBlocks / 8.0f); - - final float d4 = (position.getY() + rand.nextInt(3) - 2.0f); - final float d5 = (position.getY() + rand.nextInt(3) - 2.0f); - - BlockPos.MutableBlockPos nextPos = new BlockPos.MutableBlockPos(); - - int attempts = 0; - - while (attempts < this.numberOfBlocks) - { - final float radius = attempts / (float) this.numberOfBlocks; - final float radiusSin = MathHelper.sin((float) Math.PI * radius); - - final float d6 = d0 + (d1 - d0) * radius; - final float d7 = d4 + (d5 - d4) * radius; - final float d8 = d2 + (d3 - d2) * radius; - - final float d9 = rand.nextFloat() * (float) this.numberOfBlocks / 16.0f; - - final float d10 = (radiusSin + 1.0f) * d9 + 1.0f; - final float d11 = (radiusSin + 1.0f) * d9 + 1.0f; - - final int minX = MathHelper.floor(d6 - d10 / 2.0f); - final int minY = MathHelper.floor(d7 - d11 / 2.0f); - final int minZ = MathHelper.floor(d8 - d10 / 2.0f); - - final int maxX = MathHelper.floor(d6 + d10 / 2.0f); - final int maxY = MathHelper.floor(d7 + d11 / 2.0f); - final int maxZ = MathHelper.floor(d8 + d10 / 2.0f); - - float xStepFactor = (minX + 0.5f - d6) / (d10 / 2.0f); - float xStep = ((minX + 1 + 0.5f - d6) / (d10 / 2.0f)) - xStepFactor; - - float yStepFactor = (minY + 0.5f - d7) / (d11 / 2.0f); - float yStep = ((minY + 1 + 0.5f - d7) / (d11 / 2.0f)) - yStepFactor; - - float zStepFactor = (minZ + 0.5f - d8) / (d10 / 2.0f); - float zStep = ((minZ + 1 + 0.5f - d8) / (d10 / 2.0f)) - zStepFactor; - - float xDist = xStepFactor; - - for (int x = minX; x <= maxX; ++x) - { - float xDistSq = xDist * xDist; - - if (xDistSq < 1.0f) - { - float yDist = yStepFactor; - - for (int y = minY; y <= maxY; ++y) - { - float yDistSq = yDist * yDist; - - if (xDistSq + yDistSq < 1.0f) - { - float zDist = zStepFactor; - - for (int z = minZ; z <= maxZ; ++z) - { - float zDistSq = zDist * zDist; - - if (xDistSq + yDistSq + zDistSq < 1.0f) - { - final IBlockState state = slice.getBlockState(x, y, z); - - if (ArrayHelper.contains(this.predicate, state)) - { - nextPos.setPos(x, y, z); - - slice.setBlockState(nextPos, this.oreBlock); - - if (this.emitsLight) - { - slice.getWorld().checkLight(nextPos); - } - - if (this.isFloating) - { - slice.getWorld().scheduleUpdate(nextPos, this.oreBlock.getBlock(), 0); - } - } - } - - zDist += zStep; - } - } - - yDist += yStep; - } - } - - xDist += xStep; - } - - attempts++; - } - - return true; - } -} diff --git a/src/main/java/com/gildedgames/aether/common/world/decorations/WorldGenCaveFloorPlacer.java b/src/main/java/com/gildedgames/aether/common/world/decorations/WorldGenCaveFloorPlacer.java deleted file mode 100644 index 939aab23aa..0000000000 --- a/src/main/java/com/gildedgames/aether/common/world/decorations/WorldGenCaveFloorPlacer.java +++ /dev/null @@ -1,75 +0,0 @@ -package com.gildedgames.aether.common.world.decorations; - -import com.gildedgames.aether.api.registrar.BlocksAether; -import com.gildedgames.aether.api.world.decoration.WorldDecorationGenerator; -import com.gildedgames.orbis.lib.util.ArrayHelper; -import com.gildedgames.orbis.lib.world.WorldSlice; -import net.minecraft.block.state.IBlockState; -import net.minecraft.util.math.BlockPos; - -import java.util.Random; -import java.util.function.Function; - -public class WorldGenCaveFloorPlacer implements WorldDecorationGenerator -{ - - private final Function<Random, IBlockState> statesToPlace; - - private final int max; - - private IBlockState[] statesCanPlaceOn = new IBlockState[] { BlocksAether.holystone.getDefaultState() }; - - public WorldGenCaveFloorPlacer(Function<Random, IBlockState> statesToPlace, final int max) - { - this.statesToPlace = statesToPlace; - this.max = max; - } - - public void setStatesToPlaceOn(final IBlockState... states) - { - this.statesCanPlaceOn = states; - } - - @Override - public boolean generate(WorldSlice slice, Random rand, BlockPos pos) - { - int count = 0; - - BlockPos.MutableBlockPos randomPos = new BlockPos.MutableBlockPos(); - - for (int attempts = 0; attempts < 128; attempts++) - { - randomPos.setPos( - pos.getX() + (rand.nextInt(16) - 8), - pos.getY() + (rand.nextInt(8) - 4), - pos.getZ() + (rand.nextInt(16) - 8) - ); - - if (slice.isAirBlock(randomPos)) - { - final IBlockState below = slice.getBlockState(randomPos.down()); - - if (ArrayHelper.contains(this.statesCanPlaceOn, below)) - { - final IBlockState toPlace = this.statesToPlace.apply(rand); - - slice.setBlockState(randomPos, toPlace); - - if (this.max > 0) - { - if (count < this.max) - { - count++; - } - else - { - return true; - } - } - } - } - } - - return true; - } -} diff --git a/src/main/java/com/gildedgames/aether/common/world/decorations/WorldGenFloorPlacer.java b/src/main/java/com/gildedgames/aether/common/world/decorations/WorldGenFloorPlacer.java deleted file mode 100644 index 938b929b85..0000000000 --- a/src/main/java/com/gildedgames/aether/common/world/decorations/WorldGenFloorPlacer.java +++ /dev/null @@ -1,92 +0,0 @@ -package com.gildedgames.aether.common.world.decorations; - -import com.gildedgames.aether.api.registrar.BlocksAether; -import com.gildedgames.aether.api.world.decoration.WorldDecorationGenerator; -import com.gildedgames.orbis.lib.util.ArrayHelper; -import com.gildedgames.orbis.lib.world.WorldSlice; -import net.minecraft.block.state.IBlockState; -import net.minecraft.util.math.BlockPos; - -import java.util.List; -import java.util.Random; -import java.util.function.Function; - -public class WorldGenFloorPlacer implements WorldDecorationGenerator -{ - private final StateFetcher stateFetcher; - - private final Function<Random, List<IBlockState>> stateDefiner; - - private final int amount; - - private IBlockState[] statesCanPlaceOn = new IBlockState[] { BlocksAether.aether_grass.getDefaultState() }; - - public WorldGenFloorPlacer(StateFetcher stateFetcher, Function<Random, List<IBlockState>> stateDefiner) - { - this(-1, stateFetcher, stateDefiner); - } - - public WorldGenFloorPlacer(final int amount, final StateFetcher stateFetcher, Function<Random, List<IBlockState>> stateDefiner) - { - this.stateFetcher = stateFetcher; - this.stateDefiner = stateDefiner; - this.amount = amount; - } - - public void setStatesToPlaceOn(final IBlockState... states) - { - this.statesCanPlaceOn = states; - } - - @Override - public boolean generate(WorldSlice slice, Random rand, BlockPos pos) - { - int count = 0; - - BlockPos.MutableBlockPos randomPos = new BlockPos.MutableBlockPos(); - - final List<IBlockState> states = this.stateDefiner.apply(rand); - - for (int attempts = 0; attempts < 128; attempts++) - { - randomPos.setPos( - pos.getX() + (rand.nextInt(16) - 8), - pos.getY() + (rand.nextInt(8) - 4), - pos.getZ() + (rand.nextInt(16) - 8) - ); - - if (!slice.isAirBlock(randomPos)) - { - continue; - } - - final IBlockState below = slice.getBlockState(randomPos.down()); - - if (ArrayHelper.contains(this.statesCanPlaceOn, below)) - { - final IBlockState chosen = this.stateFetcher.fetch(rand, states); - - slice.setBlockState(randomPos, chosen); - - if (this.amount > 0) - { - if (count < this.amount) - { - count++; - } - else - { - return true; - } - } - } - } - - return true; - } - - public interface StateFetcher - { - IBlockState fetch(Random rand, List<IBlockState> states); - } -} diff --git a/src/main/java/com/gildedgames/aether/common/world/decorations/WorldGenIceCrystals.java b/src/main/java/com/gildedgames/aether/common/world/decorations/WorldGenIceCrystals.java deleted file mode 100644 index c3885b7673..0000000000 --- a/src/main/java/com/gildedgames/aether/common/world/decorations/WorldGenIceCrystals.java +++ /dev/null @@ -1,93 +0,0 @@ -package com.gildedgames.aether.common.world.decorations; - -import com.gildedgames.aether.api.registrar.BlocksAether; -import com.gildedgames.aether.api.world.decoration.WorldDecorationGenerator; -import com.gildedgames.aether.common.blocks.natural.BlockIceCrystal; -import com.gildedgames.orbis.lib.world.WorldSlice; -import com.google.common.collect.Lists; -import net.minecraft.block.state.IBlockState; -import net.minecraft.util.math.BlockPos; - -import java.util.List; -import java.util.Random; - -public class WorldGenIceCrystals implements WorldDecorationGenerator -{ - - private final IBlockState crystalState; - - private List<IBlockState> statesCanPlaceOn = Lists.newArrayList(); - - private final int max; - - public WorldGenIceCrystals(final int max) - { - this.crystalState = BlocksAether.highlands_ice_crystal.getDefaultState(); - this.max = max; - } - - public void setStatesToPlaceOn(final IBlockState... states) - { - this.statesCanPlaceOn = Lists.newArrayList(states); - } - - @Override - public boolean generate(WorldSlice slice, Random rand, BlockPos pos) - { - int count = 0; - - for (int attempts = 0; attempts < 128; attempts++) - { - final BlockPos randomPos = pos.add( - rand.nextInt(8) - rand.nextInt(8), - rand.nextInt(4) - rand.nextInt(4), - rand.nextInt(8) - rand.nextInt(8)); - - - final IBlockState above = slice.getBlockState(randomPos.up()); - final IBlockState below = slice.getBlockState(randomPos.down()); - - if (slice.isAirBlock(randomPos)) - { - if (this.statesCanPlaceOn.isEmpty() || this.statesCanPlaceOn.contains(below)) - { - int type = rand.nextInt(3); - slice.setBlockState(randomPos, - this.crystalState.withProperty(BlockIceCrystal.PROPERTY_VARIANT, BlockIceCrystal.PROPERTY_VARIANT.fromMeta(type))); - if (this.max > 0) - { - if (count < this.max) - { - count++; - } - else - { - return true; - } - } - } - - if (this.statesCanPlaceOn.isEmpty() || this.statesCanPlaceOn.contains(above)) - { - int type = rand.nextInt(3); - type = type + 3; - slice.setBlockState(randomPos, - this.crystalState.withProperty(BlockIceCrystal.PROPERTY_VARIANT, BlockIceCrystal.PROPERTY_VARIANT.fromMeta(type))); - if (this.max > 0) - { - if (count < this.max) - { - count++; - } - else - { - return true; - } - } - } - } - } - - return true; - } -} diff --git a/src/main/java/com/gildedgames/aether/common/world/decorations/WorldGenIrradiatedPool.java b/src/main/java/com/gildedgames/aether/common/world/decorations/WorldGenIrradiatedPool.java deleted file mode 100644 index 68f3a8649a..0000000000 --- a/src/main/java/com/gildedgames/aether/common/world/decorations/WorldGenIrradiatedPool.java +++ /dev/null @@ -1,111 +0,0 @@ -package com.gildedgames.aether.common.world.decorations; - -import com.gildedgames.aether.api.registrar.BlocksAether; -import com.gildedgames.aether.api.world.decoration.WorldDecorationGenerator; -import com.gildedgames.aether.common.blocks.natural.BlockAetherGrass; -import com.gildedgames.aether.common.blocks.natural.BlockHolystone; -import com.gildedgames.orbis.lib.world.WorldSlice; -import net.minecraft.init.Blocks; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.World; - -import java.util.Random; - -public class WorldGenIrradiatedPool implements WorldDecorationGenerator -{ - private int dustAmount = 0; - - public WorldGenIrradiatedPool() {} - - @Override - public boolean generate(WorldSlice slice, Random rand, BlockPos pos) - { - World world = slice.getWorld(); - pos = slice.getHighestBlockPos(pos.getX(), pos.getZ()); - - if (world.getBlockState(pos.down()) != BlocksAether.aether_grass.getDefaultState().withProperty(BlockAetherGrass.PROPERTY_VARIANT, BlockAetherGrass.IRRADIATED)) - { - return false; - } - - pos = pos.down(1); - - int radius = 4; - int radiusExterior = radius + 1; - - for (int x = pos.getX() - radius; x < pos.getX() + radius; x++) - { - for (int z = pos.getZ() - radius; z < pos.getZ() + radius; z++) - { - if (world.getBlockState(new BlockPos(x, pos.down(1).getY(), z)) == Blocks.AIR.getDefaultState()) - { - return false; - } - } - } - - for (int x = pos.getX() - radiusExterior; x < pos.getX() + radiusExterior; x++) - { - for (int y = pos.getY() - radiusExterior; y < pos.getY() + radiusExterior; y++) - { - for (int z = pos.getZ() - radiusExterior; z < pos.getZ() + radiusExterior; z++) - { - float formula = (float) (Math.pow(x - pos.getX(), 2) + Math.pow(y - pos.getY(), 2) + Math.pow(z - pos.getZ(), 2)); - - if (formula <= Math.pow(radiusExterior, 2)) - { - if ((world.getBlockState(new BlockPos(x, y, z)) != Blocks.AIR.getDefaultState() - && world.getBlockState(new BlockPos(x, y, z)) != Blocks.FLOWING_WATER.getDefaultState()) - || y <= pos.getY() - 1) - { - world.setBlockState(new BlockPos(x, y, z), BlocksAether.holystone.getDefaultState().withProperty(BlockHolystone.PROPERTY_VARIANT, BlockHolystone.IRRADIATED_HOLYSTONE), 2 | 16); - } - } - } - } - } - - for (int x = pos.getX() - radius; x < pos.getX() + radius; x++) - { - for (int y = pos.getY() - radius; y < pos.getY() + radius; y++) - { - for (int z = pos.getZ() - radius; z < pos.getZ() + radius; z++) - { - float formula = (float) (Math.pow(x - pos.getX(), 2) + Math.pow(y - pos.getY(), 2) + Math.pow(z - pos.getZ(), 2)); - - if (formula <= Math.pow(radius, 2)) - { - world.setBlockState(new BlockPos(x, y, z), Blocks.AIR.getDefaultState(), 2 | 16); - - if (y <= pos.getY() - 1) - { - world.setBlockState(new BlockPos(x, y, z), Blocks.FLOWING_WATER.getDefaultState(), 2 | 16); - } - } - } - } - } - - for (int x = pos.getX() - 1; x < pos.getX() + 1; x++) - { - for (int z = pos.getZ() - 1; z < pos.getZ() + 1; z++) - { - world.setBlockState(new BlockPos(pos.getX(), pos.down(radius).getY(), pos.getZ()), BlocksAether.irradiated_dust_block.getDefaultState()); - this.dustAmount++; - - if (this.dustAmount <= 3) - { - if (rand.nextInt(2) == 0) - { - BlockPos down = new BlockPos(x, pos.down(radius - 1).getY(), z); - - world.setBlockState(down, BlocksAether.irradiated_dust_block.getDefaultState()); - this.dustAmount++; - } - } - } - } - - return true; - } -} diff --git a/src/main/java/com/gildedgames/aether/common/world/decorations/WorldGenQuicksoil.java b/src/main/java/com/gildedgames/aether/common/world/decorations/WorldGenQuicksoil.java deleted file mode 100644 index 99bb0c16aa..0000000000 --- a/src/main/java/com/gildedgames/aether/common/world/decorations/WorldGenQuicksoil.java +++ /dev/null @@ -1,40 +0,0 @@ -package com.gildedgames.aether.common.world.decorations; - -import com.gildedgames.aether.api.registrar.BlocksAether; -import net.minecraft.block.state.IBlockState; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.World; -import net.minecraft.world.gen.feature.WorldGenerator; - -import java.util.Random; - -public class WorldGenQuicksoil extends WorldGenerator -{ - private final IBlockState quicksoil; - - public WorldGenQuicksoil() - { - this.quicksoil = BlocksAether.quicksoil.getDefaultState(); - } - - @Override - public boolean generate(final World world, final Random rand, final BlockPos pos) - { - final BlockPos.MutableBlockPos nextPos = new BlockPos.MutableBlockPos(); - - for (int x = pos.getX() - 3; x < pos.getX() + 4; x++) - { - for (int z = pos.getZ() - 3; z < pos.getZ() + 4; z++) - { - nextPos.setPos(x, pos.getY(), z); - - if (world.isAirBlock(nextPos) && ((x - pos.getX()) * (x - pos.getX()) + (z - pos.getZ()) * (z - pos.getZ())) < 12) - { - world.setBlockState(nextPos, this.quicksoil, 2 | 16); - } - } - } - - return true; - } -} diff --git a/src/main/java/com/gildedgames/aether/common/world/decorations/WorldGenUndergroundVeins.java b/src/main/java/com/gildedgames/aether/common/world/decorations/WorldGenUndergroundVeins.java deleted file mode 100644 index 913d1f0c40..0000000000 --- a/src/main/java/com/gildedgames/aether/common/world/decorations/WorldGenUndergroundVeins.java +++ /dev/null @@ -1,268 +0,0 @@ -package com.gildedgames.aether.common.world.decorations; - -import com.gildedgames.aether.common.world.island.IslandBlockType; -import com.gildedgames.aether.common.world.preparation.mask.ChunkMask; -import com.gildedgames.orbis.lib.util.random.XoRoShiRoRandom; -import net.minecraft.util.math.MathHelper; - -import java.util.Random; - -public class WorldGenUndergroundVeins -{ - protected final int chunkRange = 12; - - protected final ThreadLocal<XoRoShiRoRandom> rand = ThreadLocal.withInitial(XoRoShiRoRandom::new); - - protected void addTunnel(long seed, int chunkX, int chunkZ, ChunkMask mask, double posX, double posY, double posZ, float nodeSizeMultiplier, - float angleBetweenNodes, float distBetweenNodes, int nodeIndex, int noOfNodes, double startingNodeHeightMult) - { - double chunkBlockCenterX = (double) (chunkX * 16 + 8); - double chunkBlockCenterZ = (double) (chunkZ * 16 + 8); - float nodeAngleMult = 0.0F; - float nodeDistMult = 0.0F; - XoRoShiRoRandom random = new XoRoShiRoRandom(seed); - - // Generates number of nodes the tunnel is going to have based on the chunkRange - if (noOfNodes <= 0) - { - int i = this.chunkRange * 16 - 16; - noOfNodes = i - random.nextInt(i / 4); - } - - // Gets a random value between (noOfNodes/4, noOfNodes/4 + noOfNodes/2 - 1) - int branchNodeIndex = random.nextInt(noOfNodes / 2) + noOfNodes / 4; - // branchNodeIndex = nodeIndex + (noOfNodes - nodeIndex)/ 2; -- Custom code to generate branches every half of a tunnel and branch - - for (boolean higherDist = random.nextInt(6) == 0; nodeIndex < noOfNodes; ++nodeIndex) - { - double nodeHeight = 1.5D + (double) (MathHelper.sin((float) nodeIndex * (float) Math.PI / (float) noOfNodes) * nodeSizeMultiplier); - double d3 = nodeHeight * startingNodeHeightMult; - float f2 = MathHelper.cos(distBetweenNodes); - float f3 = MathHelper.sin(distBetweenNodes); - - // Determines the position of the next node of the tunnel - posX += (double) (MathHelper.cos(angleBetweenNodes) * f2); - posY += (double) f3; - posZ += (double) (MathHelper.sin(angleBetweenNodes) * f2); - - // Changes distance between nodes based on higherDist for even more random generation (not sure why specifically those 2 values, though) - distBetweenNodes *= (higherDist ? 0.92F : 0.7F); - - // Ensures that the next node is on a different position, so the tunnel isn't on the same Y level - distBetweenNodes += nodeDistMult * 0.1F; - angleBetweenNodes += nodeAngleMult * 0.1F; - - // Even more randomness introduced - nodeDistMult = nodeDistMult * 0.9F; - nodeAngleMult = nodeAngleMult * 0.75F; - nodeDistMult = nodeDistMult + (random.nextFloat() - random.nextFloat()) * random.nextFloat() * 2.0F; - nodeAngleMult = nodeAngleMult + (random.nextFloat() - random.nextFloat()) * random.nextFloat() * 4.0F; - - if (random.nextInt(4) != 0) - { - double d4 = posX - chunkBlockCenterX; - double d5 = posZ - chunkBlockCenterZ; - double nodesLeft = (double) (noOfNodes - nodeIndex); - double d7 = (double) (nodeSizeMultiplier + 18.0F); - - if (d4 * d4 + d5 * d5 - nodesLeft * nodesLeft > d7 * d7) - { - return; - } - - if (posX >= chunkBlockCenterX - 16.0D - nodeHeight * 2.0D && posZ >= chunkBlockCenterZ - 16.0D - nodeHeight * 2.0D - && posX <= chunkBlockCenterX + 16.0D + nodeHeight * 2.0D - && posZ <= chunkBlockCenterZ + 16.0D + nodeHeight * 2.0D) - { - int k2 = MathHelper.floor(posX - nodeHeight) - chunkX * 16 - 1; - int k = MathHelper.floor(posX + nodeHeight) - chunkX * 16 + 1; - int l2 = MathHelper.floor(posY - d3) - 1; - int l = MathHelper.floor(posY + d3) + 1; - int i3 = MathHelper.floor(posZ - nodeHeight) - chunkZ * 16 - 1; - int i1 = MathHelper.floor(posZ + nodeHeight) - chunkZ * 16 + 1; - - if (k2 < 0) - { - k2 = 0; - } - - if (k > 16) - { - k = 16; - } - - if (l2 < 1) - { - l2 = 1; - } - - if (l > 248) - { - l = 248; - } - - if (i3 < 0) - { - i3 = 0; - } - - if (i1 > 16) - { - i1 = 16; - } - - boolean isBlockWater = false; - - for (int j1 = k2; !isBlockWater && j1 < k; ++j1) - { - for (int k1 = i3; !isBlockWater && k1 < i1; ++k1) - { - for (int l1 = l + 1; !isBlockWater && l1 >= l2 - 1; --l1) - { - if (l1 >= 0 && l1 < 256) - { - if (this.isOceanBlock(mask, j1, l1, k1)) - { - isBlockWater = true; - } - - if (l1 != l2 - 1 && j1 != k2 && j1 != k - 1 && k1 != i3 && k1 != i1 - 1) - { - l1 = l2; - } - } - } - } - } - - if (!isBlockWater) - { - for (int j3 = k2; j3 < k; ++j3) - { - double d10 = ((double) (j3 + chunkX * 16) + 0.5D - posX) / nodeHeight; - - for (int i2 = i3; i2 < i1; ++i2) - { - double d8 = ((double) (i2 + chunkZ * 16) + 0.5D - posZ) / nodeHeight; - boolean foundTop = false; - - if (d10 * d10 + d8 * d8 < 1.0D) - { - for (int j2 = l; j2 > l2; --j2) - { - double d9 = ((double) (j2 - 1) + 0.5D - posY) / d3; - - if (d9 > -0.7D && d10 * d10 + d9 * d9 + d8 * d8 < 1.0D) - { - int block = mask.getBlock(j3, j2, i2); - - if (this.isTopBlock(mask, j3, j2, i2)) - { - foundTop = true; - } - this.digBlock(mask, j3, j2, i2, foundTop, block); - } - } - } - } - } - } - } - } - } - } - - protected boolean isOceanBlock(ChunkMask data, int x, int y, int z) - { - return data.getBlock(x, y, z) == IslandBlockType.WATER_BLOCK.ordinal(); - } - - public void generate(long seed, int x, int z, ChunkMask mask) - { - - XoRoShiRoRandom rand = this.rand.get(); - rand.setSeed(seed); - - int i = this.chunkRange; - - long j = rand.nextLong(); - long k = rand.nextLong(); - - for (int l = x - i; l <= x + i; ++l) - { - for (int i1 = z - i; i1 <= z + i; ++i1) - { - long j1 = (long) l * j; - long k1 = (long) i1 * k; - - rand.setSeed(j1 ^ k1 ^ seed); - - this.recursiveGenerate(l, i1, x, z, mask); - } - } - } - - /** - * Recursively called by generate() - */ - private void recursiveGenerate(int chunkX, int chunkZ, int originalX, int originalZ, ChunkMask mask) - { - Random rand = this.rand.get(); - - int i = rand.nextInt(rand.nextInt(rand.nextInt(10) + 1) + 1); - - if (rand.nextInt(5) != 0) - { - i = 0; - } - - for (int j = 0; j < i; ++j) - { - double x = (double) (chunkX * 16 + rand.nextInt(16)); - double y = (double) rand.nextInt(64); - double z = (double) (chunkZ * 16 + rand.nextInt(16)); - - int tunnels = 2; - - for (int l = 0; l < tunnels; ++l) - { - float f = rand.nextFloat() * ((float) Math.PI * 2F); - float f1 = (rand.nextFloat() - 0.5F) * 2.0F / 8.0F; - float f2 = rand.nextFloat() * 2.0F + rand.nextFloat(); - - if (rand.nextInt(8) == 0) - { - this.addTunnel(rand.nextLong(), originalX, originalZ, mask, x, y, z, f2, f, f1, 0, 0, 0.5D); - tunnels += rand.nextInt(2); - } - - if (rand.nextInt(20) == 0) - { - f2 *= rand.nextFloat() * rand.nextFloat() * 3.0F + 1.0F; - } - - this.addTunnel(rand.nextLong(), originalX, originalZ, mask, x, y, z, f2, f, f1, 0, 0, 0.5D); - } - - } - } - - private boolean isTopBlock(ChunkMask data, int x, int y, int z) - { - return data.getBlock(x, y, z) == IslandBlockType.TOPSOIL_BLOCK.ordinal(); - } - - private void digBlock(ChunkMask data, int x, int y, int z, boolean foundTop, int state) - { - if ((state == IslandBlockType.STONE_BLOCK.ordinal() || state == IslandBlockType.COAST_BLOCK.ordinal() || state == IslandBlockType.FERROSITE_BLOCK - .ordinal())) - { - data.setBlock(x, y, z, IslandBlockType.VEIN_BLOCK.ordinal()); - - if (foundTop && data.getBlock(x, y - 1, z) == IslandBlockType.SOIL_BLOCK.ordinal()) - { - data.setBlock(x, y - 1, z, IslandBlockType.TOPSOIL_BLOCK.ordinal()); - } - } - } -} diff --git a/src/main/java/com/gildedgames/aether/common/world/decorations/aerclouds/WorldGenAercloud.java b/src/main/java/com/gildedgames/aether/common/world/decorations/aerclouds/WorldGenAercloud.java deleted file mode 100644 index bf33c544d7..0000000000 --- a/src/main/java/com/gildedgames/aether/common/world/decorations/aerclouds/WorldGenAercloud.java +++ /dev/null @@ -1,108 +0,0 @@ -package com.gildedgames.aether.common.world.decorations.aerclouds; - -import com.gildedgames.aether.api.registrar.BlocksAether; -import com.gildedgames.aether.api.world.decoration.WorldDecorationGenerator; -import com.gildedgames.aether.common.blocks.natural.BlockAercloud; -import com.gildedgames.orbis.lib.world.WorldSlice; -import net.minecraft.block.state.IBlockState; -import net.minecraft.init.Blocks; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.World; -import net.minecraft.world.chunk.Chunk; - -import java.util.ArrayList; -import java.util.Random; - -public class WorldGenAercloud implements WorldDecorationGenerator -{ - protected final IBlockState state; - - protected final int numberOfBlocks; - - protected final boolean isFlat; - - public WorldGenAercloud(final IBlockState state, final int numberOfBlocks, final boolean isFlat) - { - this.state = state; - this.numberOfBlocks = numberOfBlocks; - this.isFlat = isFlat; - } - - public IBlockState getAercloudState(final Random random) - { - return this.state; - } - - - @Override - public boolean generate(WorldSlice slice, Random rand, BlockPos pos) - { - // TODO: Use WorldSlice - World world = slice.getWorld(); - - final IBlockState state = this.getAercloudState(rand); - - final BlockPos.MutableBlockPos posMut = new BlockPos.MutableBlockPos(pos.getX(), pos.getY(), pos.getZ()); - - int x = pos.getX() + 8; - int y = pos.getY(); - int z = pos.getZ() + 8; - - final int xTendency = rand.nextInt(3) - 1; - final int zTendency = rand.nextInt(3) - 1; - - final ArrayList<BlockPos> transaction = new ArrayList<>(this.numberOfBlocks); - - for (int n = 0; n < this.numberOfBlocks; n++) - { - x += (rand.nextInt(3) - 1 + xTendency); - - if ((rand.nextBoolean() && !this.isFlat) || (this.isFlat && rand.nextInt(10) == 0)) - { - y += (rand.nextInt(3) - 1); - } - - z += (rand.nextInt(3) - 1 + zTendency); - - for (int x1 = x; x1 < x + rand.nextInt(4) + 3 * (this.isFlat ? 3 : 1); x1++) - { - for (int z1 = z; z1 < z + rand.nextInt(4) + 3 * (this.isFlat ? 3 : 1); z1++) - { - posMut.setPos(x1, 0, z1); - - int height = world.getChunk(posMut).getHeight(posMut); - - int maxY = y + rand.nextInt(1) + 2; - - if (height >= maxY && world.getBlockState(new BlockPos.MutableBlockPos(x1, height - 1, z1)).getBlock() != BlocksAether.aercloud) - { - return false; - } - - for (int y1 = y; y1 < maxY; y1++) - { - posMut.setPos(x1, y1, z1); - - if (!world.isAreaLoaded(posMut, 2)) - { - return false; - } - - if (world.getBlockState(posMut) == Blocks.AIR.getDefaultState() && - Math.abs(x1 - x) + Math.abs(y1 - y) + Math.abs(z1 - z) < 4 * (this.isFlat ? 3 : 1) + rand.nextInt(2)) - { - transaction.add(posMut.toImmutable()); - } - } - } - } - } - - for (final BlockPos block : transaction) - { - world.setBlockState(block, state, 2 | 16); - } - - return true; - } -} diff --git a/src/main/java/com/gildedgames/aether/common/world/decorations/aerclouds/WorldGenPurpleAercloud.java b/src/main/java/com/gildedgames/aether/common/world/decorations/aerclouds/WorldGenPurpleAercloud.java deleted file mode 100644 index 49f937c3cd..0000000000 --- a/src/main/java/com/gildedgames/aether/common/world/decorations/aerclouds/WorldGenPurpleAercloud.java +++ /dev/null @@ -1,22 +0,0 @@ -package com.gildedgames.aether.common.world.decorations.aerclouds; - -import com.gildedgames.aether.common.blocks.natural.BlockAercloud; -import net.minecraft.block.state.IBlockState; -import net.minecraft.util.EnumFacing; - -import java.util.Random; - -public class WorldGenPurpleAercloud extends WorldGenAercloud -{ - public WorldGenPurpleAercloud(final IBlockState state, final int numberOfBlocks, final boolean isFlat) - { - super(state, numberOfBlocks, isFlat); - } - - @Override - public IBlockState getAercloudState(final Random random) - { - return this.state.withProperty(BlockAercloud.PROPERTY_FACING, - EnumFacing.HORIZONTALS[random.nextInt(EnumFacing.HORIZONTALS.length)]); - } -} diff --git a/src/main/java/com/gildedgames/aether/common/world/decorations/caves/VanillaCaveSystemGenerator.java b/src/main/java/com/gildedgames/aether/common/world/decorations/caves/VanillaCaveSystemGenerator.java deleted file mode 100644 index 674c400fdd..0000000000 --- a/src/main/java/com/gildedgames/aether/common/world/decorations/caves/VanillaCaveSystemGenerator.java +++ /dev/null @@ -1,197 +0,0 @@ -package com.gildedgames.aether.common.world.decorations.caves; - -import com.gildedgames.aether.api.world.generation.caves.CaveSystemNode; -import com.gildedgames.aether.api.world.generation.caves.CaveSystemTunnel; -import com.gildedgames.aether.api.world.generation.caves.ICaveSystemGenerator; -import com.gildedgames.orbis.lib.util.ChunkMap; -import com.gildedgames.orbis.lib.util.random.XoRoShiRoRandom; -import net.minecraft.util.math.MathHelper; - -public class VanillaCaveSystemGenerator implements ICaveSystemGenerator -{ - private final ChunkMap<CaveSystemNode> cache = new ChunkMap<>(); - - private final long seed; - - private final long s1, s2; - - public VanillaCaveSystemGenerator(long seed) - { - this.seed = seed; - - XoRoShiRoRandom r = new XoRoShiRoRandom(this.seed); - - this.s1 = r.nextLong(); - this.s2 = r.nextLong(); - } - - private void addRoom(CaveSystemNode node, XoRoShiRoRandom rand, long seed, double dirX, double dirY, - double dirZ) - { - this.addTunnel(node, seed, dirX, dirY, dirZ, 1.0F + rand.nextFloat() * 6.0F, 0.0F, 0.0F, -1, -1, 0.5D); - } - - /** - * Tunnel generation - * - * @param seed The seed of the randomizer - * @param posX X block position for the starting node - * @param posY Y block position for the starting node - * @param posZ Z block position for the starting node - * @param nodeSizeMultiplier Sets the size multiplier of each node - * @param angleBetweenNodes Angle between this node and the next one on the horizontal plane; - * Multiply 2*pi with a value from 0 to 1 to get the precise value, since the algorithm uses a circle to determine the angle - * @param distBetweenNodes The distance between each node, also used for random Y position of nodes; - * Takes a value between 0 and PI - * @param nodeIndex The index node for a tunnel, used to keep track of node iterations to add branching tunnels; 0 is a good number for a starting index value - * Settings this to -1 will generate a value for you based on the noOfNodes value you put in or it generated - * @param noOfNodes The number of nodes a tunnel will have starting from nodeIndex; Setting this to 0 will cause it to generate a value for you based on the chunkRange value - * A chunkRange value of 8 will result in a tunnel with (84, 112) nodes - * @param startingNodeHeightMult Sets the height of the elliptoid of the starting node of a tunnel, with 1.0D being a perfect sphere; - * Lower values flatten it out and larger make it taller - */ - private void addTunnel(CaveSystemNode segment, long seed, double posX, double posY, double posZ, float nodeSizeMultiplier, float angleBetweenNodes, - float distBetweenNodes, int nodeIndex, int noOfNodes, double startingNodeHeightMult) - { - float nodeAngleMult = 0.0F; - float nodeDistMult = 0.0F; - - boolean isRoom = false; - - XoRoShiRoRandom random = new XoRoShiRoRandom(seed); - - // Generates number of nodes the tunnel is going to have based on the chunkRange - if (noOfNodes <= 0) - { - int i = this.getNeighborChunkSearchRadius() * 16 - 16; - noOfNodes = i - random.nextInt(i / 4); - } - - // Determines if the tunnel is actually going to be a room - if (nodeIndex == -1) - { - nodeIndex = noOfNodes / 2; - isRoom = true; - } - - // Gets a random value between (noOfNodes/4, noOfNodes/4 + noOfNodes/2 - 1) - int branchNodeIndex = random.nextInt(noOfNodes / 2) + noOfNodes / 4; - - // Generates a tunnel from nodeIndex to noOfNodes - 1 - for (boolean higherDist = random.nextInt(6) == 0; nodeIndex < noOfNodes; ++nodeIndex) - { - // How wide and tall the node will be - double nodeWidthRadius = 1.5D + ((double) MathHelper.sin((float) nodeIndex * (float) Math.PI / (float) noOfNodes) * nodeSizeMultiplier); - double nodeHeightRadius = nodeWidthRadius * startingNodeHeightMult; - - float nodeDistMultiplier = MathHelper.cos(distBetweenNodes); // A multiplier to determine how far apart each node will be from the other - float nodeYIncrease = MathHelper.sin(distBetweenNodes); // By how much a node will move up - - // Determines the position of the next node of the tunnel - posX += (double) (MathHelper.cos(angleBetweenNodes) * nodeDistMultiplier); - posY += (double) nodeYIncrease; - posZ += (double) (MathHelper.sin(angleBetweenNodes) * nodeDistMultiplier); - - // Changes distance between nodes based on higherDist for even more random generation (not sure why specifically those 2 values, though) - distBetweenNodes *= (higherDist ? 0.92F : 0.7F); - - // Ensures that the next node is on a different position, so the tunnel isn't on the same Y level - distBetweenNodes += nodeDistMult * 0.1F; - angleBetweenNodes += nodeAngleMult * 0.1F; - - // Even more randomness introduced - nodeDistMult = nodeDistMult * 0.9F; - nodeAngleMult = nodeAngleMult * 0.75F; - nodeDistMult = nodeDistMult + (random.nextFloat() - random.nextFloat()) * random.nextFloat() * 2.0F; - nodeAngleMult = nodeAngleMult + (random.nextFloat() - random.nextFloat()) * random.nextFloat() * 4.0F; - - // Adding new branches starting at node index = branchNodeIndex - if (!isRoom && nodeIndex == branchNodeIndex && nodeSizeMultiplier > 1.0F && noOfNodes > 0) - { - this.addTunnel(segment.addBranch(), random.nextLong(), posX, posY, posZ, - random.nextFloat() * 0.5F + 0.5F, angleBetweenNodes - ((float) Math.PI / 2F), distBetweenNodes / 3.0F, nodeIndex, noOfNodes, 1.0D); - this.addTunnel(segment.addBranch(), random.nextLong(), posX, posY, posZ, - random.nextFloat() * 0.5F + 0.5F, angleBetweenNodes + ((float) Math.PI / 2F), distBetweenNodes / 3.0F, nodeIndex, noOfNodes, 1.0D); - return; - } - - // 75% chance to generate a node normally or 100% chance if it's a room - if (isRoom || random.nextInt(4) != 0) - { - segment.entries.add(new CaveSystemTunnel(posX, posY, posZ, isRoom, nodeWidthRadius, nodeHeightRadius, nodeSizeMultiplier, noOfNodes, nodeIndex)); - } - } - } - - @Override - public CaveSystemNode getNode(int chunkX, int chunkZ) - { - CaveSystemNode root = this.cache.get(chunkX, chunkZ); - - if (root != null) - { - return root; - } - - root = this.generateNode(chunkX, chunkZ); - - this.cache.put(chunkX, chunkZ, root); - - return root; - } - - private CaveSystemNode generateNode(int chunkX, int chunkZ) - { - CaveSystemNode root = new CaveSystemNode(); - - long j1 = (long) chunkX * this.s1; - long k1 = (long) chunkZ * this.s2; - - XoRoShiRoRandom rand = new XoRoShiRoRandom(j1 ^ k1 ^ this.seed); - - int tunnelsPerChunk = rand.nextInt(rand.nextInt(rand.nextInt(10) + 1) + 1); - - if (rand.nextInt(5) != 0) - { - tunnelsPerChunk = 0; - } - - for (int j = 0; j < tunnelsPerChunk; ++j) - { - double x = (double) (chunkX * 16 + rand.nextInt(16)); - double y = (double) rand.nextInt(128); - double z = (double) (chunkZ * 16 + rand.nextInt(16)); - - int tunnels = 2; - - if (rand.nextInt(4) == 0) - { - this.addRoom(root.addBranch(), rand, rand.nextLong(), x, y, z); - tunnels += rand.nextInt(4); - } - - for (int l = 0; l < tunnels; ++l) - { - float nodeAngle = rand.nextFloat() * ((float) Math.PI * 2F); - float nodeDist = (rand.nextFloat() - 0.5F) * 2.0F / 8.0F; - float nodeSize = rand.nextFloat() * 2.0F + rand.nextFloat(); - - // 10% chance for a node to have massively increased size - if (rand.nextInt(10) == 0) - { - nodeSize *= rand.nextFloat() * rand.nextFloat() * 3.0F + 1.0F; - } - - this.addTunnel(root.addBranch(), rand.nextLong(), x, y, z, nodeSize * 2.0F, nodeAngle, nodeDist, 0, 0, 0.5D); - } - } - - return root; - } - - @Override - public int getNeighborChunkSearchRadius() - { - return 8; - } -} diff --git a/src/main/java/com/gildedgames/aether/common/world/decorations/caves/WorldGenAetherCaves.java b/src/main/java/com/gildedgames/aether/common/world/decorations/caves/WorldGenAetherCaves.java deleted file mode 100644 index cf06458aa5..0000000000 --- a/src/main/java/com/gildedgames/aether/common/world/decorations/caves/WorldGenAetherCaves.java +++ /dev/null @@ -1,222 +0,0 @@ -package com.gildedgames.aether.common.world.decorations.caves; - -import com.gildedgames.aether.api.world.generation.caves.CaveSystemNode; -import com.gildedgames.aether.api.world.generation.caves.CaveSystemTunnel; -import com.gildedgames.aether.api.world.generation.caves.ICaveSystemGenerator; -import com.gildedgames.aether.common.world.island.IslandBlockType; -import com.gildedgames.aether.common.world.preparation.mask.ChunkMask; -import com.gildedgames.aether.common.world.preparation.mask.ChunkMaskSegment; -import net.minecraft.util.math.MathHelper; - -public class WorldGenAetherCaves -{ - private void tryCarveTunnel(ChunkMask mask, CaveSystemNode node, double chunkBlockCenterX, double chunkBlockCenterZ, int centerChunkX, int centerChunkZ) - { - double chunkMaxY = (mask.getMaxYSegment() * 8) + 8; - double chunkMinY = (mask.getMinYSegment() * 8); - - for (CaveSystemTunnel segment : node.entries) - { - double d4 = segment.posX - chunkBlockCenterX; - double d5 = segment.posZ - chunkBlockCenterZ; - - double nodesLeft = (double) segment.nodesLeft; - - double d7 = (segment.nodeSizeMultiplier + 18.0F); - - if (d4 * d4 + d5 * d5 - nodesLeft * nodesLeft > d7 * d7) - { - return; - } - - if (segment.posY - segment.nodeHeightRadius - 1 > chunkMaxY) - { - continue; - } - - if (segment.posY + segment.nodeHeightRadius + 1 < chunkMinY) - { - continue; - } - - // Generates a tunnel only if the position of the node is with a 3x3 chunk area from the center chunk + the diameter of the node - if (segment.posX >= chunkBlockCenterX - 16.0D - segment.nodeWidthRadius * 2.0D - && segment.posZ >= chunkBlockCenterZ - 16.0D - segment.nodeWidthRadius * 2.0D - && segment.posX <= chunkBlockCenterX + 16.0D + segment.nodeWidthRadius * 2.0D - && segment.posZ <= chunkBlockCenterZ + 16.0D + segment.nodeWidthRadius * 2.0D) - { - int minPosX = MathHelper.floor(segment.posX - segment.nodeWidthRadius) - centerChunkX * 16 - 1; - int maxPosX = MathHelper.floor(segment.posX + segment.nodeWidthRadius) - centerChunkX * 16 + 1; - int minPosY = MathHelper.floor(segment.posY - segment.nodeHeightRadius) - 1; - int maxPosY = MathHelper.floor(segment.posY + segment.nodeHeightRadius) + 1; - int minPosZ = MathHelper.floor(segment.posZ - segment.nodeWidthRadius) - centerChunkZ * 16 - 1; - int maxPosZ = MathHelper.floor(segment.posZ + segment.nodeWidthRadius) - centerChunkZ * 16 + 1; - - // Makes sure the node stays within the 16x256x16 chunk area - if (minPosX < 0) - { - minPosX = 0; - } - - if (maxPosX > 16) - { - maxPosX = 16; - } - - if (minPosY < 1) - { - minPosY = 1; - } - - if (maxPosY > 248) - { - maxPosY = 248; - } - - if (minPosZ < 0) - { - minPosZ = 0; - } - - if (maxPosZ > 16) - { - maxPosZ = 16; - } - - if (this.carveTunnel(mask, centerChunkX, centerChunkZ, segment, minPosX, maxPosX, minPosY, maxPosY, minPosZ, maxPosZ)) - { - return; - } - } - } - - for (CaveSystemNode branch : node.branches) - { - this.tryCarveTunnel(mask, branch, chunkBlockCenterX, chunkBlockCenterZ, centerChunkX, centerChunkZ); - } - } - - private boolean carveTunnel(ChunkMask mask, int centerChunkX, int centerChunkZ, CaveSystemTunnel segment, int minPosX, int maxPosX, int minPosY, - int maxPosY, int minPosZ, int maxPosZ) - { - boolean doesNodeIntersectWater = false; - - outerLoop: - - // Goes through each block from maxPosY + 1 to minPosY - 1 to check if the block is a water tile, as long as doesNodeIntersectWater is false - // Basically makes sure that the shell of the node doesn't intersect water and stops it from generating if it does - for (int x = minPosX; x < maxPosX; ++x) - { - boolean a = x != minPosX && x != maxPosX - 1; - - for (int z = minPosZ; z < maxPosZ; ++z) - { - boolean b = z != minPosZ && z != maxPosZ - 1; - - for (int y = maxPosY + 1; y >= minPosY - 1; --y) - { - // If the block is not part of the outer layer of the node (the furthest-most blocks of the node) set the y to minPosY - // This makes it so it doesn't care if the interior has water in it, as long as none of the walls have water - if (y != minPosY - 1 && a && b) - { - y = minPosY; - } - - int block = mask.getBlock(x, y, z); - - if (block == IslandBlockType.WATER_BLOCK.ordinal() || block == IslandBlockType.COAST_BLOCK.ordinal()) - { - doesNodeIntersectWater = true; - - break outerLoop; - } - } - } - } - - if (!doesNodeIntersectWater) - { - double wStep = 1.0 / segment.nodeWidthRadius; - double hStep = 1.0 / segment.nodeHeightRadius; - - double distX = (minPosX + (centerChunkX * 16) + 0.5D - segment.posX) * wStep; - - for (int x = minPosX; x < maxPosX; ++x) - { - double distXSq = distX * distX; - - if (distXSq < 1.0D) - { - double distZ = (minPosZ + (centerChunkZ * 16) + 0.5D - segment.posZ) * wStep; - - for (int z = minPosZ; z < maxPosZ; ++z) - { - double distZSq = distZ * distZ; - - // Makes it so it carves out a block from a cylinder rather than a cube (this is presumably to cut out on extra loops for blocks that shouldn't generate anyway) - if (distXSq + distZSq < 1.0D) - { - double distY = (maxPosY - 0.5D - segment.posY) * hStep; - - for (int y = maxPosY; y > minPosY; --y) - { - double distYSq = distY * distY; - - // Checks to see if the block is inside the sphere (based on the Sphere's surface formula: x^2 + y^2 + z^2 = r2) - if (distYSq + distXSq + distZSq < 1.0D) - { - this.digBlock(mask, x, y, z); - } - - distY -= hStep; - } - } - - distZ += wStep; - } - } - - distX += wStep; - } - - // If the tunnel is destined to be a room, it stops generation at 1 node - return segment.isRoom; - } - - return false; - } - - private void digBlock(ChunkMask mask, int x, int y, int z) - { - ChunkMaskSegment segment = mask.getSegment(y >> 3); - - if (segment != null) - { - int block = segment.getBlock(x, y & 7, z); - - if (block == IslandBlockType.STONE_BLOCK.ordinal() || block == IslandBlockType.STONE_MOSSY_BLOCK.ordinal()) - { - segment.setBlock(x, y & 7, z, IslandBlockType.AIR_BLOCK.ordinal()); - } - } - -// mask.setBlock(x, y, z, IslandBlockType.FERROSITE_BLOCK.ordinal()); - } - - public void generate(ICaveSystemGenerator generator, int centerChunkX, int centerChunkZ, ChunkMask mask) - { - int i = generator.getNeighborChunkSearchRadius(); - - // Generates tunnels in the current chunk and surrounding ones in chunkRange distance (which is 8, so it generates tunnels in a 16x16 chunks area) - for (int chunkX = centerChunkX - i; chunkX <= centerChunkX + i; ++chunkX) - { - for (int chunkZ = centerChunkZ - i; chunkZ <= centerChunkZ + i; ++chunkZ) - { - CaveSystemNode tree = generator.getNode(chunkX, chunkZ); - - this.tryCarveTunnel(mask, tree, (centerChunkX * 16) + 8, (centerChunkZ * 16) + 8, centerChunkX, centerChunkZ); - } - } - } - -} diff --git a/src/main/java/com/gildedgames/aether/common/world/decorations/plants/WorldGenBrettlPlant.java b/src/main/java/com/gildedgames/aether/common/world/decorations/plants/WorldGenBrettlPlant.java deleted file mode 100644 index 1efba114d2..0000000000 --- a/src/main/java/com/gildedgames/aether/common/world/decorations/plants/WorldGenBrettlPlant.java +++ /dev/null @@ -1,75 +0,0 @@ -package com.gildedgames.aether.common.world.decorations.plants; - -import com.gildedgames.aether.api.registrar.BlocksAether; -import com.gildedgames.aether.common.blocks.natural.plants.BlockBrettlPlant; -import net.minecraft.block.state.IBlockState; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.World; -import net.minecraft.world.gen.feature.WorldGenerator; - -import java.util.Random; - -public class WorldGenBrettlPlant extends WorldGenerator -{ - - private final IBlockState brettlState; - - public WorldGenBrettlPlant() - { - this.brettlState = BlocksAether.brettl_plant.getDefaultState(); - } - - @Override - public boolean generate(final World worldIn, final Random rand, final BlockPos position) - { - // growth stage controls what stage will be grown. - // count is used to minimize the number of brettl plants that spawn in close proximity. - int i = 0, growthStage, count = 0; - while (i < 64 && count < 4) - { - BlockPos randomPos = position.add(rand.nextInt(8) - rand.nextInt(8), 0, rand.nextInt(8) - rand.nextInt(8)); - randomPos = worldIn.getHeight(randomPos).down(); - - if (!worldIn.isBlockLoaded(randomPos)) - { - continue; - } - - if (worldIn.getBlockState(randomPos).getBlock() == BlocksAether.quicksoil && worldIn.isAirBlock(randomPos.up())) - { - growthStage = rand.nextInt(10); - - if (growthStage == 0) - { - ((BlockBrettlPlant) BlocksAether.brettl_plant).fullyGrowPlant(worldIn, randomPos.up(2), this.brettlState); - } - else if (growthStage > 0 && growthStage <= 3) - { - ((BlockBrettlPlant) BlocksAether.brettl_plant).fullyPrunePlant(worldIn, randomPos.up(2), this.brettlState); - } - else if (growthStage > 4 && growthStage <= 8) - { - worldIn.setBlockState(randomPos.up(), this.brettlState.withProperty(BlockBrettlPlant.PROPERTY_HARVESTABLE, false) - .withProperty(BlockBrettlPlant.PROPERTY_VARIANT, BlockBrettlPlant.BASE), 2 | 16); - worldIn.setBlockState(randomPos.up(2), this.brettlState.withProperty(BlockBrettlPlant.PROPERTY_HARVESTABLE, false) - .withProperty(BlockBrettlPlant.PROPERTY_VARIANT, BlockBrettlPlant.MID), 2 | 16); - worldIn.setBlockState(randomPos.up(3), this.brettlState.withProperty(BlockBrettlPlant.PROPERTY_HARVESTABLE, false) - .withProperty(BlockBrettlPlant.PROPERTY_VARIANT, BlockBrettlPlant.TOP), 2 | 16); - } - else - { - worldIn.setBlockState(randomPos.up(), this.brettlState.withProperty(BlockBrettlPlant.PROPERTY_HARVESTABLE, false) - .withProperty(BlockBrettlPlant.PROPERTY_VARIANT, BlockBrettlPlant.BASE), 2 | 16); - worldIn.setBlockState(randomPos.up(2), this.brettlState.withProperty(BlockBrettlPlant.PROPERTY_HARVESTABLE, false) - .withProperty(BlockBrettlPlant.PROPERTY_VARIANT, BlockBrettlPlant.TOP), 2 | 16); - } - - count++; - } - - i++; - } - - return true; - } -} diff --git a/src/main/java/com/gildedgames/aether/common/world/decorations/plants/WorldGenCustomVines.java b/src/main/java/com/gildedgames/aether/common/world/decorations/plants/WorldGenCustomVines.java deleted file mode 100644 index 95b38c1335..0000000000 --- a/src/main/java/com/gildedgames/aether/common/world/decorations/plants/WorldGenCustomVines.java +++ /dev/null @@ -1,54 +0,0 @@ -package com.gildedgames.aether.common.world.decorations.plants; - -import net.minecraft.block.BlockVine; -import net.minecraft.block.state.IBlockState; -import net.minecraft.init.Blocks; -import net.minecraft.util.EnumFacing; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.World; -import net.minecraft.world.gen.feature.WorldGenerator; - -import java.util.Random; - -public class WorldGenCustomVines extends WorldGenerator -{ - - private final IBlockState vines; - - public WorldGenCustomVines(final IBlockState vines) - { - this.vines = vines; - } - - @Override - public boolean generate(final World world, final Random rand, BlockPos pos) - { - while (pos.getY() < 128) - { - if (world.isAirBlock(pos)) - { - for (final EnumFacing enumfacing : EnumFacing.Plane.HORIZONTAL.facings()) - { - if (Blocks.VINE.canPlaceBlockOnSide(world, pos, enumfacing)) - { - final IBlockState iblockstate = this.vines.withProperty(BlockVine.NORTH, - enumfacing == EnumFacing.NORTH).withProperty(BlockVine.EAST, - enumfacing == EnumFacing.EAST).withProperty(BlockVine.SOUTH, - enumfacing == EnumFacing.SOUTH).withProperty(BlockVine.WEST, enumfacing == EnumFacing.WEST); - world.setBlockState(pos, iblockstate, 2 | 16); - - break; - } - } - } - else - { - pos = pos.add(rand.nextInt(4) - rand.nextInt(4), 0, rand.nextInt(4) - rand.nextInt(4)); - } - - pos = pos.up(); - } - - return true; - } -} diff --git a/src/main/java/com/gildedgames/aether/common/world/decorations/plants/WorldGenFoliage.java b/src/main/java/com/gildedgames/aether/common/world/decorations/plants/WorldGenFoliage.java deleted file mode 100644 index a148af3665..0000000000 --- a/src/main/java/com/gildedgames/aether/common/world/decorations/plants/WorldGenFoliage.java +++ /dev/null @@ -1,78 +0,0 @@ -package com.gildedgames.aether.common.world.decorations.plants; - -import com.gildedgames.aether.api.registrar.BlocksAether; -import com.gildedgames.orbis.lib.util.ArrayHelper; -import com.gildedgames.orbis.lib.world.WorldSlice; -import net.minecraft.block.state.IBlockState; -import net.minecraft.util.math.BlockPos; - -import java.util.Random; - -public class WorldGenFoliage -{ - private final IBlockState[] states; - - private final int max; - - private IBlockState[] statesCanPlaceOn = new IBlockState[] { BlocksAether.aether_grass.getDefaultState() }; - - public WorldGenFoliage(final int max, final IBlockState... states) - { - if (states.length == 0) - { - throw new IllegalArgumentException("At least one state must be specified"); - } - - this.max = max; - this.states = states; - } - - public void setStatesToPlaceOn(final IBlockState... states) - { - this.statesCanPlaceOn = states; - } - - public boolean generate(final WorldSlice slice, final Random rand, int x, int z) - { - BlockPos pos = slice.getHighestBlockPos(x, z); - - BlockPos.MutableBlockPos randomPos = new BlockPos.MutableBlockPos(); - BlockPos.MutableBlockPos randomPosDown = new BlockPos.MutableBlockPos(); - - for (int attempts = 0; attempts < this.max; attempts++) - { - randomPos.setPos( - pos.getX() + (rand.nextInt(16) - 8), - pos.getY() + (rand.nextInt(8) - 4), - pos.getZ() + (rand.nextInt(16) - 8) - ); - - if (!slice.isAirBlock(randomPos)) - { - continue; - } - - randomPosDown.setPos(randomPos.getX(), randomPos.getY() - 1, randomPos.getZ()); - - final IBlockState below = slice.getBlockState(randomPosDown); - - if (ArrayHelper.contains(this.statesCanPlaceOn, below)) - { - final IBlockState chosen; - - if (this.states.length == 1) - { - chosen = this.states[0]; - } - else - { - chosen = this.states[rand.nextInt(this.states.length)]; - } - - slice.setBlockState(randomPos, chosen); - } - } - - return true; - } -} diff --git a/src/main/java/com/gildedgames/aether/common/world/decorations/trees/WorldGenOrangeTree.java b/src/main/java/com/gildedgames/aether/common/world/decorations/trees/WorldGenOrangeTree.java deleted file mode 100644 index c700e977c2..0000000000 --- a/src/main/java/com/gildedgames/aether/common/world/decorations/trees/WorldGenOrangeTree.java +++ /dev/null @@ -1,62 +0,0 @@ -package com.gildedgames.aether.common.world.decorations.trees; - -import com.gildedgames.aether.api.registrar.BlocksAether; -import com.gildedgames.aether.common.blocks.natural.plants.BlockOrangeTree; -import net.minecraft.block.state.IBlockState; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.World; -import net.minecraft.world.gen.feature.WorldGenerator; - -import java.util.Random; - -public class WorldGenOrangeTree extends WorldGenerator -{ - private static final int COUNT = 10; - - private final BlockOrangeTree treeBlock = (BlockOrangeTree) BlocksAether.orange_tree; - - @Override - public boolean generate(final World world, final Random rand, final BlockPos position) - { - BlockPos.PooledMutableBlockPos pos = BlockPos.PooledMutableBlockPos.retain(); - BlockPos.PooledMutableBlockPos posUp = BlockPos.PooledMutableBlockPos.retain(); - - int i = 0; - - while (i < COUNT) - { - final int x = rand.nextInt(8) - rand.nextInt(8); - final int y = rand.nextInt(4) - rand.nextInt(4); - final int z = rand.nextInt(8) - rand.nextInt(8); - - pos.setPos(position.getX() + x, position.getY() + y, position.getZ() + z); - posUp.setPos(pos.getX(), pos.getY() + 1, pos.getZ()); - - i++; - - if (!world.isBlockLoaded(pos)) - { - continue; - } - - if (world.isAirBlock(pos) && world.isAirBlock(posUp) && this.treeBlock.isSuitableSoilBlock(world, pos, world.getBlockState(pos.down()))) - { - final int stage = 1 + rand.nextInt(4); - - final IBlockState state = BlocksAether.orange_tree.getDefaultState().withProperty(BlockOrangeTree.PROPERTY_STAGE, stage); - - if (stage >= 3) - { - world.setBlockState(posUp, state.withProperty(BlockOrangeTree.PROPERTY_IS_TOP_BLOCK, Boolean.TRUE), 2 | 16); - } - - world.setBlockState(pos, state.withProperty(BlockOrangeTree.PROPERTY_IS_TOP_BLOCK, Boolean.FALSE), 2 | 16); - } - } - - posUp.release(); - pos.release(); - - return true; - } -} diff --git a/src/main/java/com/gildedgames/aether/common/world/generators/ChunkGeneratorAether.java b/src/main/java/com/gildedgames/aether/common/world/generators/ChunkGeneratorAether.java deleted file mode 100644 index 831933c1a3..0000000000 --- a/src/main/java/com/gildedgames/aether/common/world/generators/ChunkGeneratorAether.java +++ /dev/null @@ -1,177 +0,0 @@ -package com.gildedgames.aether.common.world.generators; - -import com.gildedgames.aether.api.world.IChunkInfoAether; -import com.gildedgames.aether.api.world.islands.IIslandChunkInfo; -import com.gildedgames.aether.api.world.islands.IIslandData; -import com.gildedgames.aether.api.world.preparation.IChunkMask; -import com.gildedgames.aether.api.world.preparation.IChunkMaskTransformer; -import com.gildedgames.aether.common.util.helpers.IslandHelper; -import com.gildedgames.aether.common.world.WorldProviderAether; -import com.gildedgames.aether.common.world.access.BlockAccessChunkDataContainer; -import com.gildedgames.aether.common.world.aether.ChunkInfoAether; -import com.gildedgames.aether.common.world.aether.WorldPreparationAether; -import com.gildedgames.aether.common.world.preparation.mask.ChunkDataContainer; -import com.gildedgames.aether.common.world.preparation.mask.ChunkMask; -import com.gildedgames.orbis.lib.core.PlacedBlueprint; -import com.gildedgames.orbis.lib.data.region.IRegion; -import com.gildedgames.orbis.lib.data.region.Region; -import com.gildedgames.orbis.lib.processing.DataPrimer; -import com.gildedgames.orbis.lib.util.random.XoRoShiRoRandom; -import net.minecraft.entity.EnumCreatureType; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.World; -import net.minecraft.world.biome.Biome; -import net.minecraft.world.chunk.Chunk; -import net.minecraft.world.gen.IChunkGenerator; -import net.minecraftforge.common.MinecraftForge; -import net.minecraftforge.event.terraingen.PopulateChunkEvent; - -import javax.annotation.Nullable; -import java.util.List; -import java.util.Random; - -public class ChunkGeneratorAether implements IChunkGenerator -{ - - private final World world; - - private final Random rand; - - private final WorldPreparationAether preparation; - - public ChunkGeneratorAether(final World world, final long seed) - { - this.world = world; - - if (!this.world.isRemote) - { - this.world.setSeaLevel(0); - } - - this.rand = new XoRoShiRoRandom(seed); - this.preparation = new WorldPreparationAether(this.world, WorldProviderAether.get(world).getNoise()); - } - - public WorldPreparationAether getPreparation() - { - return this.preparation; - } - - @Override - public Chunk generateChunk(final int chunkX, final int chunkZ) - { - this.rand.setSeed((long) chunkX * 341873128712L + (long) chunkZ * 132897987541L); - - IIslandData islandData = IslandHelper.get(this.world, chunkX, chunkZ); - - if (islandData == null) - { - return new Chunk(this.world, chunkX, chunkZ); - } - - ChunkInfoAether info = new ChunkInfoAether(1); - info.setIslandData(0, this.generateChunkColumnInfo(islandData, chunkX, chunkZ)); - - ChunkMask mask = new ChunkMask(chunkX, chunkZ); - - this.preparation.generateFull(info, mask, islandData, chunkX, chunkZ, this.world.getSeed()); - - IChunkMaskTransformer transformer = islandData.getGenerator().createMaskTransformer(islandData, chunkX, chunkZ); - - final ChunkDataContainer data = ChunkDataContainer.createFromMask(this.world, mask, transformer, chunkX, chunkZ); - - final BlockAccessChunkDataContainer blockAccess = new BlockAccessChunkDataContainer(this.world, data); - - final DataPrimer dataPrimer = new DataPrimer(blockAccess); - - IRegion region = new Region(new BlockPos(chunkX * 16, 0, chunkZ * 16), - new BlockPos(chunkX * 16, 255, chunkZ * 16).add(15, 15, 15)); - - // Prime placed templates - for (final PlacedBlueprint instance : islandData.getPlacedBlueprintsInChunk(chunkX, chunkZ)) - { - dataPrimer.place(instance, region); - } - - return data.createChunk(this.world, chunkX, chunkZ); - } - - @Override - public void populate(final int chunkX, final int chunkZ) - { - IIslandData island = IslandHelper.get(this.world, chunkX, chunkZ); - - if (island == null) - { - return; - } - - MinecraftForge.EVENT_BUS.post(new PopulateChunkEvent.Pre(this, this.world, this.rand, chunkX, chunkZ, false)); - - final int x = chunkX * 16; - final int z = chunkZ * 16; - - final BlockPos pos = new BlockPos(x, 0, z); - - final Biome biome = this.world.getBiome(pos.add(16, 0, 16)); - - this.rand.setSeed(this.world.getSeed()); - - final long seedX = this.rand.nextLong() / 2L * 2L + 1L; - final long seedZ = this.rand.nextLong() / 2L * 2L + 1L; - - this.rand.setSeed(chunkX * seedX + chunkZ * seedZ ^ this.world.getSeed()); - - biome.decorate(this.world, this.rand, pos); - } - - @Override - public boolean generateStructures(final Chunk chunkIn, final int x, final int z) - { - return false; - } - - @Override - public void recreateStructures(final Chunk chunk, final int chunkX, final int chunkZ) - { - - } - - @Override - public boolean isInsideStructure(final World worldIn, final String structureName, final BlockPos pos) - { - return false; - } - - @Override - public List<Biome.SpawnListEntry> getPossibleCreatures(final EnumCreatureType creatureType, final BlockPos pos) - { - final Biome biomegenbase = this.world.getBiome(pos); - - if (biomegenbase == null) - { - return null; - } - else - { - return biomegenbase.getSpawnableList(creatureType); - } - } - - @Nullable - @Override - public BlockPos getNearestStructurePos(final World worldIn, final String structureName, final BlockPos position, final boolean findUnexplored) - { - return null; - } - - public void generateBaseTerrain(IChunkInfoAether info, IChunkMask mask, IIslandData islandData, int x, int z) - { - this.preparation.generateBaseTerrain(info, mask, islandData, x, z, this.world.getSeed()); - } - - public IIslandChunkInfo generateChunkColumnInfo(IIslandData islandData, int chunkX, int chunkZ) - { - return this.preparation.generateChunkColumnInfo(islandData, chunkX, chunkZ); - } -} diff --git a/src/main/java/com/gildedgames/aether/common/world/generators/ChunkGeneratorNecromancerTower.java b/src/main/java/com/gildedgames/aether/common/world/generators/ChunkGeneratorNecromancerTower.java deleted file mode 100644 index 73bcd17feb..0000000000 --- a/src/main/java/com/gildedgames/aether/common/world/generators/ChunkGeneratorNecromancerTower.java +++ /dev/null @@ -1,109 +0,0 @@ -package com.gildedgames.aether.common.world.generators; - -import com.gildedgames.aether.common.init.InstancesAether; -import com.gildedgames.aether.common.world.access.BlockAccessChunkDataContainer; -import com.gildedgames.aether.common.world.instances.necromancer_tower.NecromancerTowerInstance; -import com.gildedgames.aether.common.world.preparation.mask.ChunkDataContainer; -import com.gildedgames.orbis.lib.data.region.IRegion; -import com.gildedgames.orbis.lib.data.region.Region; -import com.gildedgames.orbis.lib.processing.DataPrimer; -import com.gildedgames.orbis.lib.util.random.XoRoShiRoRandom; -import net.minecraft.entity.EnumCreatureType; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.World; -import net.minecraft.world.biome.Biome; -import net.minecraft.world.chunk.Chunk; -import net.minecraft.world.gen.IChunkGenerator; - -import javax.annotation.Nullable; -import java.util.List; -import java.util.Random; - -public class ChunkGeneratorNecromancerTower implements IChunkGenerator -{ - - private final World world; - - private final Random random; - - public ChunkGeneratorNecromancerTower(final World world, final long seed) - { - this.world = world; - - if (!this.world.isRemote) - { - this.world.setSeaLevel(0); - } - - this.random = new XoRoShiRoRandom(seed); - } - - @Override - public void populate(final int chunkX, final int chunkZ) - { - - } - - @Override - public boolean generateStructures(final Chunk chunkIn, final int x, final int z) - { - return false; - } - - @Override - public Chunk generateChunk(final int chunkX, final int chunkZ) - { - final NecromancerTowerInstance inst = InstancesAether.NECROMANCER_TOWER_HANDLER.getFromDimId(this.world.provider.getDimension()); - - this.random.setSeed(chunkX * 0x4f9939f508L + chunkZ * 0x1ef1565bd5L); - - final ChunkDataContainer blocks = new ChunkDataContainer(chunkX, chunkZ, this.world.provider.hasSkyLight()); - - if (inst.getTower() != null) - { - IRegion region = new Region(new BlockPos(chunkX * 16, 0, chunkZ * 16), - new BlockPos(chunkX * 16, 255, chunkZ * 16).add(15, 15, 15)); - - final DataPrimer dataPrimer = new DataPrimer(new BlockAccessChunkDataContainer(this.world, blocks)); - - dataPrimer.place(inst.getTower(), region); - } - - return blocks.createChunk(this.world, chunkX, chunkZ); - } - - @Override - public List<Biome.SpawnListEntry> getPossibleCreatures(final EnumCreatureType creatureType, final BlockPos pos) - { - final Biome biome = this.world.getBiome(pos); - - if (biome == null) - { - return null; - } - else - { - return biome.getSpawnableList(creatureType); - } - } - - @Nullable - @Override - public BlockPos getNearestStructurePos(final World worldIn, final String structureName, final BlockPos position, final boolean findUnexplored) - { - return null; - } - - @Override - public void recreateStructures(final Chunk chunk, final int chunkX, final int chunkZ) - { - - } - - @Override - public boolean isInsideStructure(final World worldIn, final String structureName, final BlockPos pos) - { - return false; - } - -} diff --git a/src/main/java/com/gildedgames/aether/common/world/instances/necromancer_tower/NecromancerTowerInstance.java b/src/main/java/com/gildedgames/aether/common/world/instances/necromancer_tower/NecromancerTowerInstance.java deleted file mode 100644 index e6d70b5c12..0000000000 --- a/src/main/java/com/gildedgames/aether/common/world/instances/necromancer_tower/NecromancerTowerInstance.java +++ /dev/null @@ -1,227 +0,0 @@ -package com.gildedgames.aether.common.world.instances.necromancer_tower; - -import com.gildedgames.aether.common.init.DimensionsAether; -import com.gildedgames.aether.common.init.GenerationAether; -import com.gildedgames.aether.common.init.InstancesAether; -import com.gildedgames.orbis.lib.core.CreationData; -import com.gildedgames.orbis.lib.core.PlacedBlueprint; -import com.gildedgames.orbis.lib.core.baking.BakedBlueprint; -import com.gildedgames.orbis.lib.util.io.NBTFunnel; -import com.gildedgames.orbis.lib.util.mc.BlockPosDimension; -import com.gildedgames.orbis.lib.world.instances.IInstance; -import com.google.common.collect.Lists; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.EntityPlayerMP; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.nbt.NBTUtil; -import net.minecraft.server.MinecraftServer; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.DimensionType; -import net.minecraft.world.GameType; -import net.minecraft.world.World; -import net.minecraftforge.fml.common.FMLCommonHandler; -import org.apache.commons.lang3.builder.HashCodeBuilder; - -import java.util.List; - -public class NecromancerTowerInstance implements IInstance -{ - - private final List<EntityPlayer> players = Lists.newArrayList(); - - private BlockPos insideEntrance; - - private int dimensionId; - - private PlacedBlueprint tower; - - @SuppressWarnings("unused") - public NecromancerTowerInstance() - { - } - - @SuppressWarnings("unused") - public NecromancerTowerInstance(World world) - { - - } - - public NecromancerTowerInstance(final int id) - { - this.dimensionId = id; - } - - private boolean initTower() - { - final MinecraftServer server = FMLCommonHandler.instance().getMinecraftServerInstance(); - - final World world = server.getWorld(this.dimensionId); - - if (world == null) - { - return false; - } - - BakedBlueprint baked = new BakedBlueprint(GenerationAether.NECROMANCER_TOWER, new CreationData(world).pos(BlockPos.ORIGIN)); - - this.tower = new PlacedBlueprint(baked, baked.getCreationData()); - - final BlockPos spawn = this.tower.getBaked().getScheduleFromTriggerID("spawn").getBounds().getMin(); - - if (spawn != null) - { - this.insideEntrance = new BlockPosDimension(spawn.getX(), spawn.getY(), spawn.getZ(), this.dimensionId); - } - - return true; - } - - public PlacedBlueprint getTower() - { - if (this.tower == null) - { - this.initTower(); - } - - return this.tower; - } - - @Override - public void write(final NBTTagCompound output) - { - final NBTFunnel funnel = new NBTFunnel(output); - - output.setTag("spawn", NBTUtil.createPosTag(this.insideEntrance)); - - output.setInteger("dim", this.dimensionId); - - funnel.set("tower", this.tower); - } - - @Override - public void read(final NBTTagCompound input) - { - final NBTFunnel funnel = new NBTFunnel(input); - - this.insideEntrance = NBTUtil.getPosFromTag(input.getCompoundTag("spawn")); - - this.dimensionId = input.getInteger("dim"); - - this.tower = funnel.get("tower"); - } - - @Override - public void onJoin(final EntityPlayer player) - { - this.players.add(player); - - if (player instanceof EntityPlayerMP) - { - final EntityPlayerMP playerMP = (EntityPlayerMP) player; - - if (playerMP.interactionManager.getGameType() == GameType.SURVIVAL) - { - player.setGameType(GameType.ADVENTURE); - player.setEntityInvulnerable(true); - } - - this.teleportPlayerToSpawn(player); - } - } - - @Override - public void onLeave(final EntityPlayer player) - { - this.players.remove(player); - - if (player instanceof EntityPlayerMP) - { - final EntityPlayerMP playerMP = (EntityPlayerMP) player; - - if (playerMP.interactionManager.getGameType() == GameType.ADVENTURE) - { - player.setGameType(GameType.SURVIVAL); - player.setEntityInvulnerable(false); - } - } - - if (this.players.isEmpty()) - { - InstancesAether.NECROMANCER_TOWER_HANDLER.handler.unregisterInstance(this); - } - } - - @Override - public void onRespawn(EntityPlayer player) - { - this.teleportPlayerToSpawn(player); - } - - private void teleportPlayerToSpawn(EntityPlayer player) - { - BlockPos spawn = this.getSpawnPosition(); - - if (spawn != null) - { - ((EntityPlayerMP) player).connection.setPlayerLocation(spawn.getX() + 0.5D, spawn.getY() + 0.5D, spawn.getZ() + 0.5D, 215, 0); - } - } - - public BlockPos getSpawnPosition() - { - return this.insideEntrance; - } - - @Override - public List<EntityPlayer> getPlayers() - { - return this.players; - } - - @Override - public DimensionType getDimensionType() - { - return DimensionsAether.NECROMANCER_TOWER; - } - - @Override - public int getDimensionId() - { - return this.dimensionId; - } - - @Override - public boolean isTemporary() - { - return true; - } - - @Override - public boolean equals(Object obj) - { - if (obj == this) - { - return true; - } - - if (obj instanceof NecromancerTowerInstance) - { - NecromancerTowerInstance instance = (NecromancerTowerInstance) obj; - - return instance.getDimensionId() == this.getDimensionId(); - } - - return false; - } - - @Override - public int hashCode() - { - HashCodeBuilder builder = new HashCodeBuilder(); - - builder.append(this.dimensionId); - - return builder.toHashCode(); - } - -} diff --git a/src/main/java/com/gildedgames/aether/common/world/instances/necromancer_tower/NecromancerTowerInstanceFactory.java b/src/main/java/com/gildedgames/aether/common/world/instances/necromancer_tower/NecromancerTowerInstanceFactory.java deleted file mode 100644 index 210229d2ec..0000000000 --- a/src/main/java/com/gildedgames/aether/common/world/instances/necromancer_tower/NecromancerTowerInstanceFactory.java +++ /dev/null @@ -1,38 +0,0 @@ -package com.gildedgames.aether.common.world.instances.necromancer_tower; - -import com.gildedgames.orbis.lib.util.TeleporterGeneric; -import com.gildedgames.orbis.lib.world.instances.IInstanceFactory; -import com.gildedgames.orbis.lib.world.instances.IInstanceHandler; -import net.minecraft.world.DimensionType; -import net.minecraft.world.Teleporter; -import net.minecraft.world.WorldServer; - -public class NecromancerTowerInstanceFactory implements IInstanceFactory<NecromancerTowerInstance> -{ - - private final DimensionType dimensionType; - - public NecromancerTowerInstanceFactory(final DimensionType dimensionType) - { - this.dimensionType = dimensionType; - } - - @Override - public NecromancerTowerInstance createInstance(final int dimId, final IInstanceHandler instanceHandler) - { - return new NecromancerTowerInstance(dimId); - } - - @Override - public DimensionType dimensionType() - { - return this.dimensionType; - } - - @Override - public Teleporter getTeleporter(final WorldServer worldIn) - { - return new TeleporterGeneric(worldIn); - } - -} diff --git a/src/main/java/com/gildedgames/aether/common/world/instances/necromancer_tower/NecromancerTowerInstanceHelper.java b/src/main/java/com/gildedgames/aether/common/world/instances/necromancer_tower/NecromancerTowerInstanceHelper.java deleted file mode 100644 index 6a8a1896ab..0000000000 --- a/src/main/java/com/gildedgames/aether/common/world/instances/necromancer_tower/NecromancerTowerInstanceHelper.java +++ /dev/null @@ -1,38 +0,0 @@ -package com.gildedgames.aether.common.world.instances.necromancer_tower; - -import com.gildedgames.orbis.lib.world.instances.IInstanceHandler; -import net.minecraft.entity.player.EntityPlayerMP; - -public class NecromancerTowerInstanceHelper -{ - public final IInstanceHandler<NecromancerTowerInstance> handler; - - public NecromancerTowerInstanceHelper(final IInstanceHandler<NecromancerTowerInstance> handler) - { - this.handler = handler; - } - - public NecromancerTowerInstance getFromDimId(final int dimId) - { - return this.handler.getInstanceForDimension(dimId); - } - - public void teleportToInst(final EntityPlayerMP player) - { - NecromancerTowerInstance inst = this.handler.createNew(); - - if (!net.minecraftforge.common.ForgeHooks.onTravelToDimension(player, inst.getDimensionId())) - { - this.handler.unregisterInstance(inst); - - return; - } - - this.handler.teleportPlayerToInstance(inst, player); - } - - public void teleportBack(final EntityPlayerMP player) - { - this.handler.returnPlayerFromInstance(player); - } -} diff --git a/src/main/java/com/gildedgames/aether/common/world/island/AbstractIslandChunkInfo.java b/src/main/java/com/gildedgames/aether/common/world/island/AbstractIslandChunkInfo.java deleted file mode 100644 index 8345a48886..0000000000 --- a/src/main/java/com/gildedgames/aether/common/world/island/AbstractIslandChunkInfo.java +++ /dev/null @@ -1,52 +0,0 @@ -package com.gildedgames.aether.common.world.island; - -import com.gildedgames.aether.api.util.OpenSimplexNoise; -import com.gildedgames.aether.api.world.islands.IIslandChunkInfo; -import com.gildedgames.aether.api.world.noise.IChunkNoiseBuffer2D; -import com.gildedgames.aether.common.world.noise.ChunkDataGenerator2DSingle; -import com.gildedgames.aether.common.world.noise.impl.NoiseGeneratorClouds; -import com.gildedgames.aether.common.world.noise.impl.NoiseGeneratorSoilDepth; - -public abstract class AbstractIslandChunkInfo implements IIslandChunkInfo -{ - // Lazily initialized. - private IChunkNoiseBuffer2D terrainDepthBuffer, cloudDepthBuffer; - - private final OpenSimplexNoise noise; - - private final int chunkX, chunkZ; - - protected AbstractIslandChunkInfo(OpenSimplexNoise noise, int chunkX, int chunkZ) - { - this.noise = noise; - - this.chunkX = chunkX; - this.chunkZ = chunkZ; - } - - @Override - public final IChunkNoiseBuffer2D getTerrainDepthBuffer() - { - if (this.terrainDepthBuffer == null) - { - this.terrainDepthBuffer = new ChunkDataGenerator2DSingle(new NoiseGeneratorSoilDepth(this.noise), 2) - .generate(this.chunkX, this.chunkZ) - .createInterpolatedNoiseBuffer(); - } - - return this.terrainDepthBuffer; - } - - @Override - public final IChunkNoiseBuffer2D getCloudDepthBuffer() - { - if (this.cloudDepthBuffer == null) - { - this.cloudDepthBuffer = new ChunkDataGenerator2DSingle(new NoiseGeneratorClouds(this.noise), 2) - .generate(this.chunkX, this.chunkZ) - .createInterpolatedNoiseBuffer(); - } - - return this.cloudDepthBuffer; - } -} diff --git a/src/main/java/com/gildedgames/aether/common/world/island/BlockAccessIsland.java b/src/main/java/com/gildedgames/aether/common/world/island/BlockAccessIsland.java deleted file mode 100644 index 5e5b2fbe57..0000000000 --- a/src/main/java/com/gildedgames/aether/common/world/island/BlockAccessIsland.java +++ /dev/null @@ -1,78 +0,0 @@ -package com.gildedgames.aether.common.world.island; - -import com.gildedgames.aether.api.world.islands.IIslandData; -import com.gildedgames.aether.api.world.preparation.IChunkMask; -import com.gildedgames.aether.api.world.preparation.IPrepRegistryEntry; -import com.gildedgames.aether.api.world.preparation.IPrepSectorData; -import com.gildedgames.aether.common.world.access.BlockAccessPrep; -import com.gildedgames.orbis.lib.core.PlacedBlueprint; -import com.gildedgames.orbis.lib.util.mc.BlockUtil; -import net.minecraft.block.state.IBlockState; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.World; - -import java.util.List; - -public class BlockAccessIsland extends BlockAccessPrep -{ - private final IIslandData island; - - public BlockAccessIsland(World world, IIslandData island, IPrepSectorData sectorData, IPrepRegistryEntry registryEntry) - { - super(world, sectorData, registryEntry); - - this.island = island; - } - - @Override - public boolean canAccess(BlockPos pos) - { - return this.island.getBounds().contains(pos.getX(), pos.getY(), pos.getZ()); - } - - @Override - public boolean canAccess(int x, int z) - { - return this.island.getBounds().contains(x, 0, z); - } - - @Override - public boolean canAccess(int minX, int minY, int minZ, int maxX, int maxY, int maxZ) - { - return this.island.getBounds().contains(minX, minY, minZ, maxX, maxY, maxZ); - } - - @Override - public IBlockState getBlockState(BlockPos pos) - { - int chunkX = pos.getX() >> 4; - int chunkZ = pos.getZ() >> 4; - - List<PlacedBlueprint> placedBlueprints = this.island.getPlacedBlueprintsInChunk(chunkX, chunkZ); - - for (PlacedBlueprint placed : placedBlueprints) - { - if (!placed.getRegion().contains(pos)) - { - continue; - } - - BlockPos min = placed.getRegion().getMin(); - - IBlockState state = placed.getBaked().getBlockData().getBlockState( - pos.getX() - min.getX(), - pos.getY() - min.getY(), - pos.getZ() - min.getZ() - ); - - if (!BlockUtil.isVoid(state)) - { - return state; - } - } - - IChunkMask chunk = this.getChunk(chunkX, chunkZ); - - return this.transformer.getBlockState(chunk.getBlock(pos.getX() & 15, pos.getY(), pos.getZ() & 15)); - } -} diff --git a/src/main/java/com/gildedgames/aether/common/world/island/IslandBlockType.java b/src/main/java/com/gildedgames/aether/common/world/island/IslandBlockType.java deleted file mode 100644 index 54b62d3829..0000000000 --- a/src/main/java/com/gildedgames/aether/common/world/island/IslandBlockType.java +++ /dev/null @@ -1,22 +0,0 @@ -package com.gildedgames.aether.common.world.island; - -/** - * Blocks that an island's basic structure can contain. See {@link IslandChunkMaskTransformer} for implementing the conversion methods. - */ -public enum IslandBlockType -{ - AIR_BLOCK, - STONE_MOSSY_BLOCK, - STONE_IRRADIATED_BLOCK, - STONE_BLOCK, - TOPSOIL_BLOCK, - SOIL_BLOCK, - COAST_BLOCK, - SNOW_BLOCK, - FERROSITE_BLOCK, - WATER_BLOCK, - CLOUD_BED_BLOCK, - VEIN_BLOCK; - - public static final IslandBlockType[] VALUES = IslandBlockType.values(); -} diff --git a/src/main/java/com/gildedgames/aether/common/world/island/IslandBounds.java b/src/main/java/com/gildedgames/aether/common/world/island/IslandBounds.java deleted file mode 100644 index 781b627031..0000000000 --- a/src/main/java/com/gildedgames/aether/common/world/island/IslandBounds.java +++ /dev/null @@ -1,139 +0,0 @@ -package com.gildedgames.aether.common.world.island; - -import com.gildedgames.aether.api.world.islands.IIslandBounds; -import net.minecraft.nbt.NBTBase; -import net.minecraft.nbt.NBTTagCompound; - -public class IslandBounds implements IIslandBounds -{ - private final int x1, y1, z1; - - private final int x2, y2, z2; - - public IslandBounds(int x1, int y1, int z1, int x2, int y2, int z2) - { - this.x1 = x1; - this.y1 = y1; - this.z1 = z1; - - this.x2 = x2; - this.y2 = y2; - this.z2 = z2; - } - - public IslandBounds(NBTBase nbt) - { - NBTTagCompound tag = (NBTTagCompound) nbt; - - int[] min = tag.getIntArray("Min"); - int[] max = tag.getIntArray("Max"); - - this.x1 = min[0]; - this.y1 = min[1]; - this.z1 = min[2]; - - this.x2 = max[0]; - this.y2 = max[1]; - this.z2 = max[2]; - } - - @Override - public boolean intersects(int x1, int y1, int z1, int x2, int y2, int z2) - { - return this.x1 <= x2 && this.x2 >= x1 && this.y1 <= y2 && this.y2 >= y1 && this.z1 <= z2 && this.z2 >= z1; - } - - @Override - public boolean contains(int minX, int minY, int minZ, int maxX, int maxY, int maxZ) - { - return this.x1 <= minX && this.x2 >= maxX && this.y1 <= minY && this.y2 >= maxY && this.z1 <= minZ && this.z2 >= maxZ; - } - - @Override - public boolean contains(int x, int y, int z) - { - return this.intersects(x, y, z, x, y, z); - } - - @Override - public int getMinX() - { - return this.x1; - } - - @Override - public int getMinY() - { - return this.y1; - } - - @Override - public int getMinZ() - { - return this.z1; - } - - @Override - public int getMaxX() - { - return this.x2; - } - - @Override - public int getMaxY() - { - return this.y2; - } - - @Override - public int getMaxZ() - { - return this.z2; - } - - @Override - public int getWidth() - { - return this.getMaxX() - this.getMinX(); - } - - @Override - public int getHeight() - { - return this.getMaxY() - this.getMinY(); - } - - @Override - public int getLength() - { - return this.getMaxZ() - this.getMinZ(); - } - - @Override - public double getCenterX() - { - return this.getMinX() + (this.getWidth() / 2.0D); - } - - @Override - public double getCenterY() - { - return this.getMinY() + (this.getHeight() / 2.0D); - } - - @Override - public double getCenterZ() - { - return this.getMinZ() + (this.getLength() / 2.0D); - } - - @Override - public NBTBase serialize() - { - NBTTagCompound tag = new NBTTagCompound(); - tag.setIntArray("Min", new int[] { this.x1, this.y1, this.z1 }); - tag.setIntArray("Max", new int[] { this.x2, this.y2, this.z2 }); - - return tag; - } -} diff --git a/src/main/java/com/gildedgames/aether/common/world/island/IslandChunkMaskTransformer.java b/src/main/java/com/gildedgames/aether/common/world/island/IslandChunkMaskTransformer.java deleted file mode 100644 index 0491908d5e..0000000000 --- a/src/main/java/com/gildedgames/aether/common/world/island/IslandChunkMaskTransformer.java +++ /dev/null @@ -1,60 +0,0 @@ -package com.gildedgames.aether.common.world.island; - -import com.gildedgames.aether.api.registrar.BlocksAether; -import com.gildedgames.aether.api.world.preparation.IChunkMaskTransformer; -import com.gildedgames.aether.common.blocks.natural.BlockHolystone; -import com.gildedgames.aether.common.world.preparation.mask.ChunkMask; -import net.minecraft.block.state.IBlockState; -import net.minecraft.init.Blocks; - -/** - * Transforms generic blocks in a {@link ChunkMask} into real-world blocks for usage by block accessors or - * chunk generation. - */ -public class IslandChunkMaskTransformer implements IChunkMaskTransformer -{ - private final IBlockState[] states; - - public IslandChunkMaskTransformer() - { - this.states = new IBlockState[IslandBlockType.VALUES.length]; - - this.setMaskValue(IslandBlockType.AIR_BLOCK, Blocks.AIR.getDefaultState()); - this.setMaskValue(IslandBlockType.WATER_BLOCK, Blocks.WATER.getDefaultState()); - - this.setMaskValue(IslandBlockType.STONE_BLOCK, BlocksAether.holystone.getDefaultState()); - this.setMaskValue(IslandBlockType.STONE_MOSSY_BLOCK, - BlocksAether.holystone.getDefaultState().withProperty(BlockHolystone.PROPERTY_VARIANT, BlockHolystone.MOSSY_HOLYSTONE)); - this.setMaskValue(IslandBlockType.STONE_IRRADIATED_BLOCK, - BlocksAether.holystone.getDefaultState().withProperty(BlockHolystone.PROPERTY_VARIANT, BlockHolystone.IRRADIATED_HOLYSTONE)); - - this.setMaskValue(IslandBlockType.SNOW_BLOCK, BlocksAether.highlands_snow.getDefaultState()); - this.setMaskValue(IslandBlockType.FERROSITE_BLOCK, BlocksAether.ferrosite.getDefaultState()); - - this.setMaskValue(IslandBlockType.TOPSOIL_BLOCK, BlocksAether.aether_grass.getDefaultState()); - this.setMaskValue(IslandBlockType.SOIL_BLOCK, BlocksAether.aether_dirt.getDefaultState()); - this.setMaskValue(IslandBlockType.COAST_BLOCK, BlocksAether.quicksoil.getDefaultState()); - - this.setMaskValue(IslandBlockType.CLOUD_BED_BLOCK, BlocksAether.aercloud.getDefaultState()); - this.setMaskValue(IslandBlockType.VEIN_BLOCK, BlocksAether.highlands_packed_ice.getDefaultState()); - } - - public void setMaskValue(IslandBlockType type, IBlockState state) - { - int key = type.ordinal(); - - this.states[key] = state; - } - - @Override - public IBlockState getBlockState(int key) - { - return this.states[key]; - } - - @Override - public int getBlockCount() - { - return this.states.length; - } -} diff --git a/src/main/java/com/gildedgames/aether/common/world/island/IslandData.java b/src/main/java/com/gildedgames/aether/common/world/island/IslandData.java deleted file mode 100644 index ae0266d124..0000000000 --- a/src/main/java/com/gildedgames/aether/common/world/island/IslandData.java +++ /dev/null @@ -1,249 +0,0 @@ -package com.gildedgames.aether.common.world.island; - -import com.gildedgames.aether.api.world.decoration.WorldDecoration; -import com.gildedgames.aether.api.world.generation.caves.ICaveSystemGenerator; -import com.gildedgames.aether.api.world.islands.IIslandBounds; -import com.gildedgames.aether.api.world.islands.IIslandData; -import com.gildedgames.aether.api.world.islands.IIslandGenerator; -import com.gildedgames.aether.api.world.preparation.IPrepSectorData; -import com.gildedgames.aether.common.world.biomes.BiomeAetherBase; -import com.gildedgames.aether.common.world.decorations.caves.VanillaCaveSystemGenerator; -import com.gildedgames.orbis.lib.core.ICreationData; -import com.gildedgames.orbis.lib.core.PlacedBlueprint; -import com.gildedgames.orbis.lib.core.baking.BakedBlueprint; -import com.gildedgames.orbis.lib.util.ChunkMap; -import com.gildedgames.orbis.lib.util.io.NBTFunnel; -import com.gildedgames.orbis.lib.util.mc.NBT; -import com.gildedgames.orbis.lib.util.mc.NBTHelper; -import com.google.common.collect.Lists; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.util.ResourceLocation; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.ChunkPos; -import net.minecraft.world.biome.Biome; - -import javax.annotation.Nonnull; -import java.util.Collection; -import java.util.Collections; -import java.util.List; -import java.util.Random; - -public class IslandData implements IIslandData -{ - private final IPrepSectorData parent; - - private BlockPos respawnPoint; - - private long seed; - - private List<NBT> components = Lists.newArrayList(); - - private IIslandGenerator generator; - - private List<WorldDecoration> basicDecorations; - - private List<WorldDecoration> treeDecorations; - - private float forestTreeCountModifier, openAreaDecorationGenChance; - - private ChunkMap<List<PlacedBlueprint>> placedBlueprints = new ChunkMap<>(); - - private IIslandBounds bounds; - - private BiomeAetherBase biome; - - private ICaveSystemGenerator caveSystemGenerator; - - public IslandData(final IPrepSectorData parent, final IIslandBounds bounds, final BiomeAetherBase biome, final long seed) - { - this.parent = parent; - - this.seed = seed; - - this.bounds = bounds; - this.biome = biome; - - this.initProperties(new Random(seed)); - } - - public IslandData(final IPrepSectorData parent, NBTTagCompound tag) - { - this.parent = parent; - - this.read(tag); - } - - private void initProperties(Random rand) - { - this.generator = this.biome.createIslandGenerator(rand, this); - this.basicDecorations = this.biome.createBasicDecorations(rand); - this.treeDecorations = this.biome.createTreeDecorations(rand); - this.forestTreeCountModifier = this.biome.createForestTreeCountModifier(rand); - this.openAreaDecorationGenChance = this.biome.createOpenAreaDecorationGenChance(rand); - this.caveSystemGenerator = new VanillaCaveSystemGenerator(this.seed); - } - - @Override - public <T extends NBT> void addComponents(final Collection<T> components) - { - this.components.addAll(components); - } - - @Override - public Collection<NBT> getComponents() - { - return this.components; - } - - @Override - public List<WorldDecoration> getBasicDecorations() - { - return this.basicDecorations; - } - - @Override - public List<WorldDecoration> getTreeDecorations() - { - return this.treeDecorations; - } - - @Override - public float getForestTreeCountModifier() - { - return this.forestTreeCountModifier; - } - - @Override - public float getOpenAreaDecorationGenChance() - { - return this.openAreaDecorationGenChance; - } - - @Nonnull - @Override - public IIslandGenerator getGenerator() - { - return this.generator; - } - - @Override - public BlockPos getOutpostPos() - { - return this.respawnPoint; - } - - @Override - public void setOutpostPos(final BlockPos pos) - { - this.respawnPoint = pos; - } - - @Override - public long getSeed() - { - return this.seed; - } - - @Override - public PlacedBlueprint placeBlueprint(BakedBlueprint baked, BlockPos offset) - { - ICreationData<?> data = baked.getCreationData().clone(); - data.pos(offset); - - final PlacedBlueprint instance = new PlacedBlueprint(baked, data); - - for (ChunkPos pos : baked.getOccupiedChunks(offset)) - { - if (!this.placedBlueprints.containsKey(pos.x, pos.z)) - { - this.placedBlueprints.put(pos.x, pos.z, Lists.newArrayList()); - } - - this.placedBlueprints.get(pos.x, pos.z).add(instance); - } - - return instance; - } - - @Override - public List<PlacedBlueprint> getPlacedBlueprintsInChunk(int chunkX, int chunkZ) - { - if (!this.placedBlueprints.containsKey(chunkX, chunkZ)) - { - return Collections.emptyList(); - } - - return this.placedBlueprints.get(chunkX, chunkZ); - } - - @Nonnull - @Override - public IIslandBounds getBounds() - { - return this.bounds; - } - - @Nonnull - @Override - public Biome getBiome() - { - return this.biome; - } - - @Nonnull - @Override - public ICaveSystemGenerator getCaveSystemGenerator() - { - return this.caveSystemGenerator; - } - - @Override - public void tick() - { - - } - - @Override - public IPrepSectorData getParentSectorData() - { - return this.parent; - } - - @Override - public void write(final NBTTagCompound tag) - { - tag.setTag("Bounds", this.bounds.serialize()); - tag.setString("BiomeID", this.biome.getRegistryName().toString()); - tag.setLong("Seed", this.seed); - tag.setTag("RespawnPoint", NBTHelper.writeBlockPos(this.respawnPoint)); - - NBTFunnel funnel = new NBTFunnel(tag); - - funnel.setLongMap("placedBlueprints", this.placedBlueprints.getInnerMap(), NBTFunnel.listSetter()); - funnel.setList("Components", this.components); - } - - @Override - public void read(final NBTTagCompound tag) - { - this.bounds = new IslandBounds(tag.getCompoundTag("Bounds")); - this.biome = (BiomeAetherBase) Biome.REGISTRY.getObject(new ResourceLocation(tag.getString("BiomeID"))); - - final NBTFunnel funnel = new NBTFunnel(tag); - - this.seed = tag.getLong("Seed"); - - if (tag.hasKey("RespawnPoint")) - { - this.respawnPoint = NBTHelper.readBlockPos(tag.getCompoundTag("RespawnPoint")); - } - - this.placedBlueprints = ChunkMap.createFrom(funnel.getLongMap("placedBlueprints", NBTFunnel.listGetter())); - - this.components = funnel.getList("Components"); - - final Random rand = new Random(this.seed); - - this.initProperties(rand); - } -} diff --git a/src/main/java/com/gildedgames/aether/common/world/island/IslandVariables.java b/src/main/java/com/gildedgames/aether/common/world/island/IslandVariables.java deleted file mode 100644 index 48e64a27aa..0000000000 --- a/src/main/java/com/gildedgames/aether/common/world/island/IslandVariables.java +++ /dev/null @@ -1,302 +0,0 @@ -package com.gildedgames.aether.common.world.island; - -import com.gildedgames.aether.api.world.noise.INoiseTransformer; -import com.gildedgames.orbis.lib.util.mc.NBT; -import net.minecraft.nbt.NBTTagCompound; - -public class IslandVariables implements NBT -{ - - /** - * The height level of the coast. If this is 1, it will only generate the 1st y value of the island. - * 2, it will generate the 1st, then the height level above it - and so on. - */ - private int coastHeight = 2; - - /** - * This dictates how spread out the edge of the coast is. The higher the number, the more spread it is. - */ - private double coastSpread; - - /** - * The scale of the lake noise. The higher this number is, the more spread out and large - * the lakes will be. Likewise, the lower this is, the smaller the lakes will be. HOWEVER, - * the lakes will also be closer together, so you'll find lots of small lakes everywhere. - */ - private double lakeScale = 65D; - - /** - * This is the spread range between the lake itself and the terrain around it. Be warned, that the more - * blend you add, the less lake there is. If you blend too much, there's practically no lake. - */ - private double lakeBlendRange = 0.5; - - /** - * This is where the terrain begins to recognise the area as a lake. If you put this at a low number, you'll find - * larger concentrations of lakes. - */ - private double lakeThreshold = 0.2; - - /** - * The depth at which the lakes dig into the island. - */ - private int lakeDepth = 25; - - /** - * This dictates the highest point the terrain can go. The noise values will be multiplied by this. - * If the max terrain height is lower, you'll get more plain-like terrain. Higher values will result in rolling, - * erratic hills. - */ - private int maxTerrainHeight = 80; - - /** - * Whether or not terraces will try to generate. - */ - private boolean terraces = true; - - /** - * This modifier adds directly to the lake noise. If the modifier is higher, there will be large lakes. - * If it is lower, the lakes will be smaller, or you'll have less in general. - */ - private double lakeConcentrationModifier = 0.0; - - /** - * Whether or not this island will generate snow caps for high pieces of terrain. - */ - private boolean snowCaps; - - /** - * A height sample filter which allows the variables to change the heightSample as they see fit - * - * Default filter returns original value. - */ - private INoiseTransformer heightSampleFilter = (heightSample) -> heightSample; - - /** - * Whether or not this island will generate magnetic pillars. - */ - private boolean magneticPillars; - - /** - * A max y filter which allows the variables to change the maxY as they see fit. - * - * Default filter returns the filter sample multiplied by the top height of the island, negating the cutoff point. - */ - private MaxYFilter maxYFilter = (bottomMaxY, filteredSample, cutoffPoint) -> bottomMaxY + ((filteredSample - cutoffPoint) * this.getMaxTerrainHeight()); - - /** - * A filter which allows the variables to change the bottom value of the water/lakes. - * - * Default filter returns original value. - */ - private INoiseTransformer lakeBottomValueFilter = (lakeBottomValue) -> lakeBottomValue; - - private IslandVariables() - { - - } - - public static IslandVariables build() - { - return new IslandVariables(); - } - - public INoiseTransformer getLakeBottomValueFilter() - { - return this.lakeBottomValueFilter; - } - - public MaxYFilter getMaxYFilter() - { - return this.maxYFilter; - } - - public boolean hasSnowCaps() - { - return this.snowCaps; - } - - public INoiseTransformer getHeightSampleFilter() - { - return this.heightSampleFilter; - } - - public double getLakeConcentrationModifier() - { - return this.lakeConcentrationModifier; - } - - public int getLakeDepth() - { - return this.lakeDepth; - } - - public boolean hasTerraces() - { - return this.terraces; - } - - public int getMaxTerrainHeight() - { - return this.maxTerrainHeight; - } - - public double getLakeThreshold() - { - return this.lakeThreshold; - } - - public double getLakeBlendRange() - { - return this.lakeBlendRange; - } - - public double getLakeScale() - { - return this.lakeScale; - } - - public int getCoastHeight() - { - return this.coastHeight; - } - - public double getCoastSpread() - { - return this.coastSpread; - } - - public boolean hasMagneticPillars() - { - return this.magneticPillars; - } - - public IslandVariables coastHeight(int coastHeight) - { - this.coastHeight = coastHeight; - - return this; - } - - public IslandVariables coastSpread(double coastSpread) - { - this.coastSpread = coastSpread; - - return this; - } - - public IslandVariables lakeScale(double lakeScale) - { - this.lakeScale = lakeScale; - - return this; - } - - public IslandVariables lakeBlendRange(double lakeBlendRange) - { - this.lakeBlendRange = lakeBlendRange; - - return this; - } - - public IslandVariables lakeThreshold(double lakeThreshold) - { - this.lakeThreshold = lakeThreshold; - - return this; - } - - public IslandVariables maxTerrainHeight(int maxTerrainHeight) - { - this.maxTerrainHeight = maxTerrainHeight; - - return this; - } - - public IslandVariables terraces(boolean terraces) - { - this.terraces = terraces; - - return this; - } - - public IslandVariables lakeDepth(int lakeDepth) - { - this.lakeDepth = lakeDepth; - - return this; - } - - public IslandVariables lakeConcentrationModifier(double lakeConcentrationModifier) - { - this.lakeConcentrationModifier = lakeConcentrationModifier; - - return this; - } - - public IslandVariables heightSampleFilter(INoiseTransformer heightSampleFilter) - { - this.heightSampleFilter = heightSampleFilter; - - return this; - } - - public IslandVariables snowCaps(boolean snowCaps) - { - this.snowCaps = snowCaps; - - return this; - } - - public IslandVariables magneticPillars(boolean magneticPillars) - { - this.magneticPillars = magneticPillars; - - return this; - } - - public IslandVariables maxYFilter(MaxYFilter maxYFilter) - { - this.maxYFilter = maxYFilter; - - return this; - } - - public IslandVariables lakeBottomValueFilter(INoiseTransformer lakeBottomValueFilter) - { - this.lakeBottomValueFilter = lakeBottomValueFilter; - - return this; - } - - @Override - public void write(NBTTagCompound tag) - { - tag.setInteger("coastHeight", this.coastHeight); - tag.setDouble("coastSpread", this.coastSpread); - tag.setDouble("lakeScale", this.lakeScale); - tag.setDouble("lakeBlendRange", this.lakeBlendRange); - tag.setDouble("lakeThreshold", this.lakeThreshold); - tag.setInteger("maxTerrainHeight", this.maxTerrainHeight); - tag.setBoolean("terraces", this.terraces); - tag.setInteger("lakeDepth", this.lakeDepth); - } - - @Override - public void read(NBTTagCompound tag) - { - this.coastHeight = tag.getInteger("coastHeight"); - this.coastSpread = tag.getDouble("coastSpread"); - this.lakeScale = tag.getDouble("lakeScale"); - this.lakeBlendRange = tag.getDouble("lakeBlendRange"); - this.lakeThreshold = tag.getDouble("lakeThreshold"); - this.maxTerrainHeight = tag.getInteger("maxTerrainHeight"); - this.terraces = tag.getBoolean("terraces"); - this.lakeDepth = tag.getInteger("lakeDepth"); - } - - public interface MaxYFilter - { - double transform(double bottomMaxY, double filteredSample, double cutoffPoint); - } -} diff --git a/src/main/java/com/gildedgames/aether/common/world/island/generators/IslandGeneratorForgottenHighlands.java b/src/main/java/com/gildedgames/aether/common/world/island/generators/IslandGeneratorForgottenHighlands.java deleted file mode 100644 index 57a241d4a0..0000000000 --- a/src/main/java/com/gildedgames/aether/common/world/island/generators/IslandGeneratorForgottenHighlands.java +++ /dev/null @@ -1,158 +0,0 @@ -package com.gildedgames.aether.common.world.island.generators; - -import com.gildedgames.aether.api.util.NoiseUtil; -import com.gildedgames.aether.api.util.OpenSimplexNoise; -import com.gildedgames.aether.api.world.IChunkInfoAether; -import com.gildedgames.aether.api.world.islands.IIslandChunkInfo; -import com.gildedgames.aether.api.world.islands.IIslandData; -import com.gildedgames.aether.api.world.islands.IIslandGenerator; -import com.gildedgames.aether.api.world.noise.IChunkNoiseBuffer3D; -import com.gildedgames.aether.api.world.preparation.IChunkMask; -import com.gildedgames.aether.api.world.preparation.IChunkMaskTransformer; -import com.gildedgames.aether.common.world.island.AbstractIslandChunkInfo; -import com.gildedgames.aether.common.world.island.IslandBlockType; -import com.gildedgames.aether.common.world.island.IslandChunkMaskTransformer; -import com.gildedgames.aether.common.world.noise.ChunkDataGenerator3D; -import com.gildedgames.aether.common.world.noise.NoiseSampleData3D; - -import javax.annotation.Nonnull; - -public class IslandGeneratorForgottenHighlands implements IIslandGenerator -{ - private class ChunkDataGeneratorForgottenHighlands extends ChunkDataGenerator3D<ForgottenHighlandsNoiseData> - { - private final double minX, minZ; - - private final double centerX, centerY, centerZ; - - private final double radiusX, radiusY, radiusZ; - - private final double offset = 0; - - private final double scaleXZ = 300.0D, scaleY = 0.5D; - - private final OpenSimplexNoise noise; - - private final boolean centerGradient = false; - - public ChunkDataGeneratorForgottenHighlands(OpenSimplexNoise noise, IIslandData island) - { - super(3, 15); - - this.noise = noise; - - this.minX = island.getBounds().getMinX(); - this.minZ = island.getBounds().getMinZ(); - - this.centerX = island.getBounds().getCenterX(); - this.centerY = 100; - this.centerZ = island.getBounds().getCenterZ(); - - this.radiusX = island.getBounds().getWidth() / 2.0; - this.radiusY = 180 / 2.0; - this.radiusZ = island.getBounds().getLength() / 2.0; - } - - @Override - protected ForgottenHighlandsNoiseData prepare(int chunkX, int chunkZ) - { - return new ForgottenHighlandsNoiseData(chunkX, chunkZ, this.noiseScaleFactorXZ, this.noiseScaleFactorY, this.noiseSampleCountXZ, this.noiseSampleCountY); - } - - @Override - protected void generate(ForgottenHighlandsNoiseData data, int x, int y, int z, double worldX, double worldY, double worldZ) - { - final double nx = (worldX + this.minX + this.offset) / this.scaleXZ; - final double ny = (worldY + this.offset) / this.scaleY; - final double nz = (worldZ + this.minZ + this.offset) / this.scaleXZ; - - final double distX = Math.abs((this.centerX - worldX) * (1.0 / this.radiusX)); - final double distY = Math.abs((this.centerY - worldY) * (1.0 / this.radiusY)); - final double distZ = Math.abs((this.centerZ - worldZ) * (1.0 / this.radiusZ)); - - // Get distance from center of Island - final double dist = Math.sqrt(distX * distX + distY * distY + distZ * distZ); - - final double sample = NoiseUtil.genNoise(this.noise, nx, ny, nz); - - final double height = sample - (this.centerGradient ? dist : 0); - - data.samples.set(x, y, z, (float) (height + 1.0 - dist)); - } - } - - private class ForgottenHighlandsNoiseData - { - private final NoiseSampleData3D samples; - - private final int chunkX, chunkZ; - - private ForgottenHighlandsNoiseData(int chunkX, int chunkZ, double noiseScaleFactorXZ, double noiseScaleFactorY, int sampleCountXZ, int sampleCountY) - { - this.chunkX = chunkX; - this.chunkZ = chunkZ; - - this.samples = new NoiseSampleData3D(noiseScaleFactorXZ, noiseScaleFactorY, sampleCountXZ, sampleCountY); - } - } - - private class ForgottenHighlandsInfo extends AbstractIslandChunkInfo - { - public final IChunkNoiseBuffer3D samples; - - protected ForgottenHighlandsInfo(OpenSimplexNoise noise, int chunkX, int chunkZ, ForgottenHighlandsNoiseData noiseData) - { - super(noise, chunkX, chunkZ); - - this.samples = noiseData.samples.createInterpolatedNoiseBuffer(); - } - } - - @Override - public void generateChunkSegment(IChunkInfoAether info, IChunkMask mask, IIslandData island, int chunkX, int chunkZ) - { - ForgottenHighlandsInfo column = info.getIslandData(0, ForgottenHighlandsInfo.class); - - double k = 1.0 / 16.0; - - for (int x = 0; x < 16; x++) - { - for (int z = 0; z < 16; z++) - { - for (int y = 0; y < 15; y++) - { - float a = column.samples.get(x, y, z); - float b = column.samples.get(x, y + 1, z); - - float t = 0.0f; - - for (int y2 = 0; y2 < 16; y2++, t += k) - { - float result = a + (b - a) * t; - - if (result > 0.2f) - { - mask.setBlock(x, (y * 16) + y2, z, IslandBlockType.STONE_BLOCK.ordinal()); - } - } - } - } - } - } - - @Nonnull - @Override - public IIslandChunkInfo generateColumnInfo(OpenSimplexNoise noise, IIslandData island, int chunkX, int chunkZ) - { - ForgottenHighlandsNoiseData noiseData = new ChunkDataGeneratorForgottenHighlands(noise, island) - .generate(chunkX, chunkZ); - - return new ForgottenHighlandsInfo(noise, chunkX, chunkZ, noiseData); - } - - @Override - public IChunkMaskTransformer createMaskTransformer(IIslandData island, int chunkX, int chunkZ) - { - return new IslandChunkMaskTransformer(); - } -} diff --git a/src/main/java/com/gildedgames/aether/common/world/island/generators/IslandGeneratorHighlandMegacoast.java b/src/main/java/com/gildedgames/aether/common/world/island/generators/IslandGeneratorHighlandMegacoast.java deleted file mode 100644 index b98f9b428b..0000000000 --- a/src/main/java/com/gildedgames/aether/common/world/island/generators/IslandGeneratorHighlandMegacoast.java +++ /dev/null @@ -1,200 +0,0 @@ -package com.gildedgames.aether.common.world.island.generators; - -import com.gildedgames.aether.api.util.NoiseUtil; -import com.gildedgames.aether.api.util.OpenSimplexNoise; -import com.gildedgames.aether.api.world.IChunkInfoAether; -import com.gildedgames.aether.api.world.islands.IIslandBounds; -import com.gildedgames.aether.api.world.islands.IIslandChunkInfo; -import com.gildedgames.aether.api.world.islands.IIslandData; -import com.gildedgames.aether.api.world.islands.IIslandGenerator; -import com.gildedgames.aether.api.world.noise.IChunkNoiseBuffer2D; -import com.gildedgames.aether.api.world.noise.INoiseGenerator2D; -import com.gildedgames.aether.api.world.preparation.IChunkMask; -import com.gildedgames.aether.api.world.preparation.IChunkMaskTransformer; -import com.gildedgames.aether.common.world.island.AbstractIslandChunkInfo; -import com.gildedgames.aether.common.world.island.IslandBlockType; -import com.gildedgames.aether.common.world.island.IslandChunkMaskTransformer; -import com.gildedgames.aether.common.world.noise.ChunkDataGenerator2D; -import com.gildedgames.aether.common.world.noise.NoiseSampleData2D; -import com.gildedgames.aether.common.world.noise.impl.NoiseGeneratorIslandTerrain; - -public class IslandGeneratorHighlandMegacoast implements IIslandGenerator -{ - private static final double CUTOFF_POINT = 0.325; - - private static final int BOTTOM_MAX_Y = 100; - - private static final int TOP_HEIGHT = 80; - - private static final int BOTTOM_HEIGHT = 100; - - private static final double TERRACE_WIDTH = 0.15; - - private static final double ISLAND_EDGE_BLEND_RANGE = 0.1; - - private static final double ISLAND_BOTTOM_BLEND_RANGE = 0.25; - - private static final double ISLAND_EDGE = 0.75; - - @Override - public void generateChunkSegment(IChunkInfoAether info, IChunkMask mask, IIslandData island, int chunkX, int chunkZ) - { - HighlandMegacostChunkInfo column = info.getIslandData(0, HighlandMegacostChunkInfo.class); - - for (int x = 0; x < 16; x++) - { - for (int z = 0; z < 16; z++) - { - final int topHeight = (int) column.topHeight.get(x, z); - final int bottomHeight = (int) column.bottomHeight.get(x, z); - - final int minY = Math.max(BOTTOM_MAX_Y - bottomHeight, 0); - final int maxY = Math.min(BOTTOM_MAX_Y + topHeight, 255); - - final boolean coast = topHeight < 3; - - for (int y = minY; y <= maxY; y++) - { - if (coast && y > BOTTOM_MAX_Y - 2) - { - mask.setBlock(x, y, z, IslandBlockType.COAST_BLOCK.ordinal()); - } - else - { - mask.setBlock(x, y, z, IslandBlockType.STONE_BLOCK.ordinal()); - } - } - } - } - } - - @Override - public IChunkMaskTransformer createMaskTransformer(IIslandData island, - int chunkX, int chunkZ) - { - return new IslandChunkMaskTransformer(); - } - - @Override - public IIslandChunkInfo generateColumnInfo(OpenSimplexNoise noise, IIslandData island, int chunkX, int chunkZ) - { - final ChunkDataGeneratorMegacoast.NoiseDataMegacoast data = new ChunkDataGeneratorMegacoast(noise, island) - .generate(chunkX, chunkZ); - - return new HighlandMegacostChunkInfo(data, noise); - } - - private class ChunkDataGeneratorMegacoast extends ChunkDataGenerator2D<ChunkDataGeneratorMegacoast.NoiseDataMegacoast> - { - private static final int NOISE_RESOLUTION = 3; - - private final double centerX, centerZ; - - private final double radiusX, radiusZ; - - private final INoiseGenerator2D heightGen; - - public ChunkDataGeneratorMegacoast(OpenSimplexNoise noise, IIslandData island) - { - super(NOISE_RESOLUTION); - - IIslandBounds bounds = island.getBounds(); - - this.centerX = bounds.getCenterX(); - this.centerZ = bounds.getCenterZ(); - - this.radiusX = bounds.getWidth() / 2.0; - this.radiusZ = bounds.getLength() / 2.0; - - this.heightGen = new NoiseGeneratorIslandTerrain(noise, bounds, 0); - } - - @Override - public NoiseDataMegacoast prepare(int chunkX, int chunkZ) - { - return new NoiseDataMegacoast(this.noiseScaleFactor, this.noiseSampleCount, chunkX, chunkZ); - } - - @Override - protected void generate(NoiseDataMegacoast data, int x, int z, double worldX, double worldZ) - { - double distX = Math.abs((this.centerX - worldX) * (1.0 / this.radiusX)); - double distZ = Math.abs((this.centerZ - worldZ) * (1.0 / this.radiusZ)); - - // Get distance from center of Island - double dist = Math.sqrt(distX * distX + distZ * distZ) / 1.0D; - - double sample = this.heightGen.generate(worldX, worldZ) * 0.7; - - final double heightSample = sample + 1.0 - dist; - - final double k = Math.floor(heightSample / TERRACE_WIDTH); - - final double f = (heightSample - k * TERRACE_WIDTH) / 0.05; - - final double s = Math.min(2.0 * f, 1.0); - - final double terrace = (k + s) * TERRACE_WIDTH; - - final double topSample = Math.pow(terrace, 2.5) + (heightSample / 2.0); - - final double normal = NoiseUtil.normalise(sample); - double bottomSample = Math.min(1.0, normal + 0.25); - - double islandBottom = (bottomSample * 0.25) + 0.75; - - if (heightSample < CUTOFF_POINT + ISLAND_EDGE_BLEND_RANGE) - { - double thresh = (heightSample - CUTOFF_POINT); - - double blend = thresh * (1.0 / ISLAND_EDGE_BLEND_RANGE); - - bottomSample = NoiseUtil.lerp(0.0, ISLAND_EDGE, blend); - } - else if (heightSample < CUTOFF_POINT + ISLAND_BOTTOM_BLEND_RANGE + ISLAND_EDGE_BLEND_RANGE) - { - double thresh = (heightSample - CUTOFF_POINT - ISLAND_EDGE_BLEND_RANGE); - - double blend = thresh * (1.0 / ISLAND_BOTTOM_BLEND_RANGE); - - bottomSample = NoiseUtil.lerp(ISLAND_EDGE, islandBottom, blend); - } - - final double maxY = (topSample - CUTOFF_POINT) * TOP_HEIGHT; - - data.topHeight.set(x, z, (float) Math.max(0.0, maxY)); - data.bottomHeight.set(x, z, (float) (BOTTOM_HEIGHT * bottomSample)); - } - - // The generated noise data from the Highlands generator. - private class NoiseDataMegacoast - { - final int chunkX, chunkZ; - - final NoiseSampleData2D bottomHeight, topHeight; - - NoiseDataMegacoast(double noiseScaleFactor, int sampleCount, int chunkX, int chunkZ) - { - this.chunkX = chunkX; - this.chunkZ = chunkZ; - - this.bottomHeight = new NoiseSampleData2D(noiseScaleFactor, sampleCount); - this.topHeight = new NoiseSampleData2D(noiseScaleFactor, sampleCount); - } - } - } - - private class HighlandMegacostChunkInfo extends AbstractIslandChunkInfo - { - final IChunkNoiseBuffer2D bottomHeight, topHeight; - - HighlandMegacostChunkInfo(ChunkDataGeneratorMegacoast.NoiseDataMegacoast data, OpenSimplexNoise noise) - { - super(noise, data.chunkX, data.chunkZ); - - this.bottomHeight = data.bottomHeight.createInterpolatedNoiseBuffer(); - this.topHeight = data.topHeight.createInterpolatedNoiseBuffer(); - } - } - -} diff --git a/src/main/java/com/gildedgames/aether/common/world/island/generators/IslandGeneratorHighlands.java b/src/main/java/com/gildedgames/aether/common/world/island/generators/IslandGeneratorHighlands.java deleted file mode 100644 index 954688ea9a..0000000000 --- a/src/main/java/com/gildedgames/aether/common/world/island/generators/IslandGeneratorHighlands.java +++ /dev/null @@ -1,247 +0,0 @@ -package com.gildedgames.aether.common.world.island.generators; - -import com.gildedgames.aether.api.util.NoiseUtil; -import com.gildedgames.aether.api.util.OpenSimplexNoise; -import com.gildedgames.aether.api.world.IChunkInfoAether; -import com.gildedgames.aether.api.world.islands.IIslandBounds; -import com.gildedgames.aether.api.world.islands.IIslandChunkInfo; -import com.gildedgames.aether.api.world.islands.IIslandData; -import com.gildedgames.aether.api.world.islands.IIslandGenerator; -import com.gildedgames.aether.api.world.noise.IChunkNoiseBuffer2D; -import com.gildedgames.aether.api.world.noise.INoiseGenerator2D; -import com.gildedgames.aether.api.world.preparation.IChunkMask; -import com.gildedgames.aether.api.world.preparation.IChunkMaskTransformer; -import com.gildedgames.aether.common.world.biomes.BiomeAetherBase; -import com.gildedgames.aether.common.world.island.AbstractIslandChunkInfo; -import com.gildedgames.aether.common.world.island.IslandBlockType; -import com.gildedgames.aether.common.world.island.IslandChunkMaskTransformer; -import com.gildedgames.aether.common.world.island.IslandVariables; -import com.gildedgames.aether.common.world.noise.ChunkDataGenerator2D; -import com.gildedgames.aether.common.world.noise.NoiseSampleData2D; -import com.gildedgames.aether.common.world.noise.impl.NoiseGeneratorIslandTerrain; -import net.minecraft.util.math.MathHelper; - -public class IslandGeneratorHighlands implements IIslandGenerator -{ - private static final double ISLAND_EDGE_BLEND_RANGE = 0.1; - private static final double ISLAND_BOTTOM_BLEND_RANGE = 0.25; - - private static final double ISLAND_EDGE = 0.75; - private static final double ISLAND_CUTOFF_POINT = 0.325; - - private static final int ISLAND_BOTTOM_HEIGHT = 100; - - private static final double SAMPLE_SCALE_FACTOR = 0.7; - - private final IslandVariables vars; - - public IslandGeneratorHighlands(IslandVariables variables) - { - this.vars = variables; - } - - @Override - public IIslandChunkInfo generateColumnInfo(OpenSimplexNoise noise, IIslandData island, int chunkX, int chunkZ) - { - // Generate low-resolution terrain data - final ChunkDataGeneratorHighlands.NoiseDataHighlands data = new ChunkDataGeneratorHighlands(noise, island, this.vars) - .generate(chunkX, chunkZ); - - // Generate chunk column information from low-resolution terrain data - return new HighlandsChunkInfo(data, noise); - } - - @Override - public void generateChunkSegment(IChunkInfoAether columnInfo, IChunkMask mask, IIslandData island, int chunkX, int chunkZ) - { - HighlandsChunkInfo info = columnInfo.getIslandData(0, HighlandsChunkInfo.class); - - for (int x = 0; x < 16; x++) - { - for (int z = 0; z < 16; z++) - { - int maxY = (int) info.maxY.get(x, z); - int minY = (int) info.minY.get(x, z); - - boolean snowy = this.vars.hasSnowCaps() && maxY > (ISLAND_BOTTOM_HEIGHT + (this.vars.getMaxTerrainHeight() * 0.7)); - - int m1a = Math.max(minY, 0); - int m1b = Math.min(maxY, 255); - - int snowThreshold = maxY - 8; - - for (int y = m1a; y <= m1b; y++) - { - if (snowy && y > snowThreshold) - { - mask.setBlock(x, y, z, IslandBlockType.SNOW_BLOCK.ordinal()); - } - else - { - mask.setBlock(x, y, z, IslandBlockType.STONE_BLOCK.ordinal()); - } - } - - if (this.vars.getCoastHeight() > 0) - { - int coastMaxY = ISLAND_BOTTOM_HEIGHT + this.vars.getCoastHeight(); - - if (maxY <= coastMaxY) - { - int m3a = Math.min(coastMaxY, 255); - int m3b = Math.max(ISLAND_BOTTOM_HEIGHT, 0); - - for (int y = m3a; y >= m3b; y--) - { - final int state = mask.getBlock(x, y, z); - - if (state == IslandBlockType.STONE_BLOCK.ordinal() || state == IslandBlockType.FERROSITE_BLOCK.ordinal()) - { - mask.setBlock(x, y, z, IslandBlockType.COAST_BLOCK.ordinal()); - } - } - } - } - } - } - } - - @Override - public IChunkMaskTransformer createMaskTransformer(IIslandData island, int chunkX, int chunkZ) - { - BiomeAetherBase biome = (BiomeAetherBase) island.getBiome(); - - IslandChunkMaskTransformer transformer = new IslandChunkMaskTransformer(); - transformer.setMaskValue(IslandBlockType.TOPSOIL_BLOCK, biome.topBlock); - transformer.setMaskValue(IslandBlockType.SOIL_BLOCK, biome.fillerBlock); - transformer.setMaskValue(IslandBlockType.COAST_BLOCK, biome.getCoastalBlock()); - - return transformer; - } - - private class ChunkDataGeneratorHighlands extends ChunkDataGenerator2D<ChunkDataGeneratorHighlands.NoiseDataHighlands> - { - private static final int NOISE_RESOLUTION = 3; - - private final IslandVariables vars; - - private final double centerX, centerZ; - - private final double radiusX, radiusZ; - - private final INoiseGenerator2D heightGen; - - private final INoiseGenerator2D terraceGen; - - public ChunkDataGeneratorHighlands(OpenSimplexNoise noise, IIslandData island, IslandVariables vars) - { - super(NOISE_RESOLUTION); - - this.vars = vars; - - IIslandBounds bounds = island.getBounds(); - - this.centerX = bounds.getCenterX(); - this.centerZ = bounds.getCenterZ(); - - this.radiusX = bounds.getWidth() / 2.0; - this.radiusZ = bounds.getLength() / 2.0; - - this.heightGen = new NoiseGeneratorIslandTerrain(noise, bounds, 0); - this.terraceGen = new NoiseGeneratorIslandTerrain(noise, bounds, 1000); - } - - @Override - public NoiseDataHighlands prepare(int chunkX, int chunkZ) - { - return new NoiseDataHighlands(this.noiseScaleFactor, this.noiseSampleCount, chunkX, chunkZ); - } - - @Override - protected void generate(NoiseDataHighlands data, int x, int z, double worldX, double worldZ) - { - final double distX = Math.abs((this.centerX - worldX) * (1.0 / this.radiusX)); - final double distZ = Math.abs((this.centerZ - worldZ) * (1.0 / this.radiusZ)); - - // Get distance from center of Island - final double dist = Math.sqrt(distX * distX + distZ * distZ) / 1.0D; - - final double sample = this.heightGen.generate(worldX, worldZ) * SAMPLE_SCALE_FACTOR; - - final double heightSample = sample + 1.0 - dist; - - double topSample = this.vars.getHeightSampleFilter().transform(heightSample); - - if (this.vars.hasTerraces()) - { - final double cutoffPointDist = Math.abs(ISLAND_CUTOFF_POINT - heightSample); - final double diff = Math.max(0.0, ISLAND_CUTOFF_POINT - cutoffPointDist) * 8.0; - - final double terraceSample = this.terraceGen.generate(worldX, worldZ) + 1.0; - - topSample = NoiseUtil.lerp(heightSample, terraceSample - diff > 0.7 ? terraceSample - diff : heightSample, 0.7); - } - - topSample = Math.pow(topSample, 1.0 + (this.vars.getCoastSpread() * 0.25)); - - final double normal = NoiseUtil.normalise(sample); - - double bottomSample = Math.max(1.0D, normal + 0.25); - - if (heightSample < ISLAND_CUTOFF_POINT + ISLAND_EDGE_BLEND_RANGE) - { - final double thresh = (heightSample - ISLAND_CUTOFF_POINT); - final double blend = thresh * (1.0 / ISLAND_EDGE_BLEND_RANGE); - - bottomSample = NoiseUtil.lerp(0.0, ISLAND_EDGE, blend); - } - else if (heightSample < ISLAND_CUTOFF_POINT + ISLAND_BOTTOM_BLEND_RANGE + ISLAND_EDGE_BLEND_RANGE) - { - final double thresh = (heightSample - ISLAND_CUTOFF_POINT - ISLAND_EDGE_BLEND_RANGE); - final double blend = thresh * (1.0 / ISLAND_BOTTOM_BLEND_RANGE); - - final double islandBottom = (bottomSample * 0.25) + 0.75; - - bottomSample = NoiseUtil.lerp(ISLAND_EDGE, islandBottom, blend); - } - - final double maxY = this.vars.getMaxYFilter().transform(ISLAND_BOTTOM_HEIGHT, topSample, ISLAND_CUTOFF_POINT); - final double minY = ISLAND_BOTTOM_HEIGHT - (ISLAND_BOTTOM_HEIGHT * bottomSample); - - data.maxY.set(x, z, (float) MathHelper.clamp(maxY, ISLAND_BOTTOM_HEIGHT, 254.0D)); - data.minY.set(x, z, (float) minY); - } - - // The generated noise data from the Highlands generator. - private class NoiseDataHighlands - { - final int chunkX, chunkZ; - - final NoiseSampleData2D minY, maxY; - - NoiseDataHighlands(double noiseScaleFactor, int sampleCount, int chunkX, int chunkZ) - { - this.chunkX = chunkX; - this.chunkZ = chunkZ; - - this.minY = new NoiseSampleData2D(noiseScaleFactor, sampleCount); - this.maxY = new NoiseSampleData2D(noiseScaleFactor, sampleCount); - } - } - } - - // The final resulting data for the chunk column for Highlands terrain. - private class HighlandsChunkInfo extends AbstractIslandChunkInfo - { - final IChunkNoiseBuffer2D minY, maxY; - - HighlandsChunkInfo(ChunkDataGeneratorHighlands.NoiseDataHighlands data, OpenSimplexNoise noise) - { - super(noise, data.chunkX, data.chunkZ); - - this.minY = data.minY.createInterpolatedNoiseBuffer(); - this.maxY = data.maxY.createInterpolatedNoiseBuffer(); - } - } - -} diff --git a/src/main/java/com/gildedgames/aether/common/world/island/generators/IslandGeneratorIrradiatedForests.java b/src/main/java/com/gildedgames/aether/common/world/island/generators/IslandGeneratorIrradiatedForests.java deleted file mode 100644 index ad812359c8..0000000000 --- a/src/main/java/com/gildedgames/aether/common/world/island/generators/IslandGeneratorIrradiatedForests.java +++ /dev/null @@ -1,285 +0,0 @@ -package com.gildedgames.aether.common.world.island.generators; - -import com.gildedgames.aether.api.registrar.BlocksAether; -import com.gildedgames.aether.api.util.NoiseUtil; -import com.gildedgames.aether.api.util.OpenSimplexNoise; -import com.gildedgames.aether.api.world.IChunkInfoAether; -import com.gildedgames.aether.api.world.islands.IIslandBounds; -import com.gildedgames.aether.api.world.islands.IIslandChunkInfo; -import com.gildedgames.aether.api.world.islands.IIslandData; -import com.gildedgames.aether.api.world.islands.IIslandGenerator; -import com.gildedgames.aether.api.world.noise.IChunkNoiseBuffer2D; -import com.gildedgames.aether.api.world.noise.INoiseGenerator2D; -import com.gildedgames.aether.api.world.preparation.IChunkMask; -import com.gildedgames.aether.api.world.preparation.IChunkMaskTransformer; -import com.gildedgames.aether.common.AetherCore; -import com.gildedgames.aether.common.blocks.natural.BlockAetherGrass; -import com.gildedgames.aether.common.world.biomes.irradiated_forests.CrackLineSegment; -import com.gildedgames.aether.common.world.biomes.irradiated_forests.IrradiatedForestsData; -import com.gildedgames.aether.common.world.island.AbstractIslandChunkInfo; -import com.gildedgames.aether.common.world.island.IslandBlockType; -import com.gildedgames.aether.common.world.island.IslandChunkMaskTransformer; -import com.gildedgames.aether.common.world.noise.ChunkDataGenerator2D; -import com.gildedgames.aether.common.world.noise.NoiseSampleData2D; -import com.gildedgames.aether.common.world.noise.impl.NoiseGeneratorIslandTerrain; -import com.gildedgames.orbis.lib.util.ObjectFilter; -import net.minecraft.util.math.MathHelper; - -import java.util.Collection; - -public class IslandGeneratorIrradiatedForests implements IIslandGenerator -{ - private static final int BOTTOM_HEIGHT = 100; - - private static final double CUTOFF_POINT = 0.325; - - private static final double TOP_HEIGHT = 80; - - private static final double ISLAND_EDGE_BLEND_RANGE = 0.1; - private static final double ISLAND_BOTTOM_BLEND_RANGE = 0.25; - - private static final double ISLAND_EDGE = 0.75; - - @Override - public void generateChunkSegment(IChunkInfoAether info, IChunkMask mask, IIslandData island, int chunkX, int chunkZ) - { - IrradiatedForestsChunkInfo column = info.getIslandData(0, IrradiatedForestsChunkInfo.class); - - for (int x = 0; x < 16; x++) - { - for (int z = 0; z < 16; z++) - { - double heightSample = column.heightSample_xz.get(x, z); - double cutoffPoint = 0.325; - - if (heightSample <= cutoffPoint) - { - continue; - } - - float topHeight = column.topHeight.get(x, z); - float bottomHeight = column.bottomHeight.get(x, z); - - double closestCrackDist = column.distToCrack.get(x, z); - - if (closestCrackDist < 10.0D) - { - double f = Math.max(0.0, (closestCrackDist - 5.0D) / 5.0D); - - topHeight *= f; - bottomHeight *= f; - } - - int top = (int) topHeight; - int bottom = (int) bottomHeight; - - if (top + bottom == 0) - { - continue; - } - - final int minY = Math.max(BOTTOM_HEIGHT - bottom, 0); - final int maxY = Math.min(BOTTOM_HEIGHT + top, 255); - - boolean mossy = column.distToCrack.get(x, z) < 12.0D; - - for (int y = minY; y <= maxY; y++) - { - mask.setBlock(x, y, z, mossy ? IslandBlockType.STONE_IRRADIATED_BLOCK.ordinal() : IslandBlockType.STONE_BLOCK.ordinal()); - } - } - } - } - - @Override - public IChunkMaskTransformer createMaskTransformer(IIslandData island, - int chunkX, int chunkZ) - { - IslandChunkMaskTransformer transformer = new IslandChunkMaskTransformer(); - transformer.setMaskValue(IslandBlockType.TOPSOIL_BLOCK, - BlocksAether.aether_grass.getDefaultState().withProperty(BlockAetherGrass.PROPERTY_VARIANT, BlockAetherGrass.IRRADIATED)); - - return transformer; - } - - @Override - public IIslandChunkInfo generateColumnInfo(OpenSimplexNoise noise, IIslandData island, int chunkX, int chunkZ) - { - ChunkDataGeneratorIrradiatedForests generator = new ChunkDataGeneratorIrradiatedForests(noise, island); - - return new IrradiatedForestsChunkInfo(noise, generator.generate(chunkX, chunkZ)); - } - - private class IrradiatedForestsChunkInfo extends AbstractIslandChunkInfo - { - final IChunkNoiseBuffer2D topHeight; - final IChunkNoiseBuffer2D bottomHeight; - final IChunkNoiseBuffer2D heightSample_xz; - final IChunkNoiseBuffer2D topSample_xz; - final IChunkNoiseBuffer2D distToCrack; - - IrradiatedForestsChunkInfo(OpenSimplexNoise noise, NoiseDataIrradiatedForests data) - { - super(noise, data.chunkX, data.chunkZ); - - this.topHeight = data.topHeight.createInterpolatedNoiseBuffer(); - this.bottomHeight = data.bottomHeight.createInterpolatedNoiseBuffer(); - - this.distToCrack = data.distToCrack_xz.createInterpolatedNoiseBuffer(); - - this.heightSample_xz = data.heightSample_xz.createInterpolatedNoiseBuffer(); - this.topSample_xz = data.topSample_xz.createInterpolatedNoiseBuffer(); - } - } - - private class ChunkDataGeneratorIrradiatedForests extends ChunkDataGenerator2D<NoiseDataIrradiatedForests> - { - private static final int NOISE_RESOLUTION = 3; - - private final INoiseGenerator2D terrain, terrace; - - private final IIslandData island; - - private final double centerX, centerZ; - - private final double radiusX, radiusZ; - - public ChunkDataGeneratorIrradiatedForests(OpenSimplexNoise noise, IIslandData island) - { - super(NOISE_RESOLUTION); - - this.island = island; - - IIslandBounds bounds = island.getBounds(); - - this.centerX = bounds.getCenterX(); - this.centerZ = bounds.getCenterZ(); - - this.radiusX = bounds.getWidth() / 2.0; - this.radiusZ = bounds.getLength() / 2.0; - - this.terrain = new NoiseGeneratorIslandTerrain(noise, island.getBounds()); - this.terrace = new NoiseGeneratorIslandTerrain(noise, island.getBounds(), 1000); - } - - @Override - protected NoiseDataIrradiatedForests prepare(int chunkX, int chunkZ) - { - return new NoiseDataIrradiatedForests(this.island, this.noiseScaleFactor, this.noiseSampleCount, chunkX, chunkZ); - } - - @Override - protected void generate(NoiseDataIrradiatedForests data, int x, int z, double worldX, double worldZ) - { - final double sample = this.terrain.generate(worldX, worldZ) * 0.7; - - final double distX = Math.abs((this.centerX - worldX) * (1.0 / this.radiusX)); - final double distZ = Math.abs((this.centerZ - worldZ) * (1.0 / this.radiusZ)); - - // Get distance from center of Island - final double dist = Math.sqrt(distX * distX + distZ * distZ) / 1.0D; - - final double heightSample = sample + 1.0 - dist; - - double closestCrackDist = Double.POSITIVE_INFINITY; - - for (CrackLineSegment edge : data.cracks) - { - double d = edge.distanceToPoint(worldX, worldZ); - - if (d < closestCrackDist) - { - closestCrackDist = d; - } - } - - final double normal = NoiseUtil.normalise(sample); - final double cutoffPointDist = Math.abs(CUTOFF_POINT - heightSample); - final double diff = Math.max(0.0, CUTOFF_POINT - cutoffPointDist) * 8.0; - - final double terraceSample = this.terrace.generate(worldX, worldZ) + 1.0; - - final double topSample = NoiseUtil.lerp(heightSample, ((terraceSample - diff) > 0.7) ? (terraceSample - diff) : heightSample, 0.7); - - double bottomSample = Math.min(1.0D, normal + 0.25); - - double islandBottom = (bottomSample * 0.25) + 0.75; - - if (heightSample < CUTOFF_POINT + ISLAND_EDGE_BLEND_RANGE) - { - double thresh = (heightSample - CUTOFF_POINT); - - double blend = thresh * (1.0 / ISLAND_EDGE_BLEND_RANGE); - - bottomSample = NoiseUtil.lerp(0.0, ISLAND_EDGE, blend); - } - else if (heightSample < CUTOFF_POINT + ISLAND_BOTTOM_BLEND_RANGE + ISLAND_EDGE_BLEND_RANGE) - { - double thresh = (heightSample - CUTOFF_POINT - ISLAND_EDGE_BLEND_RANGE); - - double blend = thresh * (1.0 / ISLAND_BOTTOM_BLEND_RANGE); - - bottomSample = NoiseUtil.lerp(ISLAND_EDGE, islandBottom, blend); - } - - double topHeight = (topSample - CUTOFF_POINT) * TOP_HEIGHT; - double bottomHeight = BOTTOM_HEIGHT * bottomSample; - - topHeight = MathHelper.clamp(topHeight, 0.0D, 254.0D); - bottomHeight = MathHelper.clamp(bottomHeight, 0.0D, 254.0D); - - data.topHeight.set(x, z, (float) topHeight); - data.bottomHeight.set(x, z, (float) bottomHeight); - - data.distToCrack_xz.set(x, z, (float) closestCrackDist); - - data.heightSample_xz.set(x, z, (float) heightSample); - data.topSample_xz.set(x, z, (float) topSample); - } - } - - private class NoiseDataIrradiatedForests - { - final NoiseSampleData2D topHeight; - final NoiseSampleData2D bottomHeight; - - final NoiseSampleData2D heightSample_xz; - final NoiseSampleData2D topSample_xz; - - final NoiseSampleData2D distToCrack_xz; - - final Collection<CrackLineSegment> cracks; - - final int chunkX, chunkZ; - - public NoiseDataIrradiatedForests(IIslandData island, double noiseScaleFactor, int noiseResolution, int chunkX, int chunkZ) - { - this.chunkX = chunkX; - this.chunkZ = chunkZ; - - this.topHeight = new NoiseSampleData2D(noiseScaleFactor, noiseResolution); - this.bottomHeight = new NoiseSampleData2D(noiseScaleFactor, noiseResolution); - - this.distToCrack_xz = new NoiseSampleData2D(noiseScaleFactor, noiseResolution); - - this.heightSample_xz = new NoiseSampleData2D(noiseScaleFactor, noiseResolution); - this.topSample_xz = new NoiseSampleData2D(noiseScaleFactor, noiseResolution); - - IrradiatedForestsData data = ObjectFilter.getFirstFrom(island.getComponents(), IrradiatedForestsData.class); - - if (data == null) - { - throw new RuntimeException("IrradiatedForestsData could not be found"); - } - - long start = System.nanoTime(); - - if (data.checkInit()) - { - AetherCore.LOGGER.info("Data generation took {}ns", (System.nanoTime() - start)); - } - - this.cracks = data.getCracksInRegion(chunkX, chunkZ, 1); - } - } -} diff --git a/src/main/java/com/gildedgames/aether/common/world/noise/ChunkDataGenerator2D.java b/src/main/java/com/gildedgames/aether/common/world/noise/ChunkDataGenerator2D.java deleted file mode 100644 index 8e8939e94c..0000000000 --- a/src/main/java/com/gildedgames/aether/common/world/noise/ChunkDataGenerator2D.java +++ /dev/null @@ -1,49 +0,0 @@ -package com.gildedgames.aether.common.world.noise; - -public abstract class ChunkDataGenerator2D<T> -{ - // The scale of each sampled point in world coordinates. - protected final double noiseScaleFactor; - - // The number of points that will be sampled, squared. This is always one greater than the noise scale factor, as we need - // to generate samples at the top and right edges in order to interpolate cleanly into adjacent chunks. - protected final int noiseSampleCount; - - public ChunkDataGenerator2D(int noiseResolution) - { - // Sanity check. We can't handle very high resolutions where the scale factor would be a fraction of a world coordinate. - if (noiseResolution > 16) - { - throw new IllegalArgumentException("Resolution must not be greater than 16"); - } - - this.noiseScaleFactor = 16.0D / noiseResolution; - this.noiseSampleCount = noiseResolution + 1; - } - - public final T generate(int chunkX, int chunkZ) - { - T data = this.prepare(chunkX, chunkZ); - - int posX = chunkX * 16; - int posZ = chunkZ * 16; - - for (int x = 0; x < this.noiseSampleCount; x++) - { - double worldX = posX + (x * this.noiseScaleFactor); - - for (int z = 0; z < this.noiseSampleCount; z++) - { - double worldZ = posZ + (z * this.noiseScaleFactor); - - this.generate(data, x, z, worldX, worldZ); - } - } - - return data; - } - - protected abstract T prepare(int chunkX, int chunkZ); - - protected abstract void generate(T data, int x, int z, double worldX, double worldZ); -} diff --git a/src/main/java/com/gildedgames/aether/common/world/noise/ChunkDataGenerator2DSingle.java b/src/main/java/com/gildedgames/aether/common/world/noise/ChunkDataGenerator2DSingle.java deleted file mode 100644 index 411dcc4466..0000000000 --- a/src/main/java/com/gildedgames/aether/common/world/noise/ChunkDataGenerator2DSingle.java +++ /dev/null @@ -1,27 +0,0 @@ -package com.gildedgames.aether.common.world.noise; - -import com.gildedgames.aether.api.world.noise.INoiseGenerator2D; - -public class ChunkDataGenerator2DSingle extends ChunkDataGenerator2D<NoiseSampleData2D> -{ - private final INoiseGenerator2D generator; - - public ChunkDataGenerator2DSingle(INoiseGenerator2D generator, int noiseResolution) - { - super(noiseResolution); - - this.generator = generator; - } - - @Override - protected NoiseSampleData2D prepare(int chunkX, int chunkZ) - { - return new NoiseSampleData2D(this.noiseScaleFactor, this.noiseSampleCount); - } - - @Override - protected void generate(NoiseSampleData2D data, int x, int z, double worldX, double worldZ) - { - data.set(x, z, (float) this.generator.generate(worldX, worldZ)); - } -} diff --git a/src/main/java/com/gildedgames/aether/common/world/noise/ChunkDataGenerator3D.java b/src/main/java/com/gildedgames/aether/common/world/noise/ChunkDataGenerator3D.java deleted file mode 100644 index abc096740a..0000000000 --- a/src/main/java/com/gildedgames/aether/common/world/noise/ChunkDataGenerator3D.java +++ /dev/null @@ -1,57 +0,0 @@ -package com.gildedgames.aether.common.world.noise; - -public abstract class ChunkDataGenerator3D<T> -{ - // The scale of each sampled point in world coordinates. - protected final double noiseScaleFactorXZ, noiseScaleFactorY; - - // The number of points that will be sampled, squared. This is always one greater than the noise scale factor, as we need - // to generate samples at the top and right edges in order to interpolate cleanly into adjacent chunks. - protected final int noiseSampleCountXZ, noiseSampleCountY; - - public ChunkDataGenerator3D(int noiseResolutionXZ, int noiseResolutionY) - { - // Sanity check. We can't handle very high resolutions where the scale factor would be a fraction of a world coordinate. - if (noiseResolutionXZ > 16) - { - throw new IllegalArgumentException("Resolution must not be greater than 16"); - } - - this.noiseScaleFactorXZ = 16.0D / noiseResolutionXZ; - this.noiseSampleCountXZ = noiseResolutionXZ + 1; - - this.noiseScaleFactorY = 256.0D / noiseResolutionY; - this.noiseSampleCountY = noiseResolutionY + 1; - } - - public final T generate(int chunkX, int chunkZ) - { - T data = this.prepare(chunkX, chunkZ); - - int posX = chunkX * 16; - int posZ = chunkZ * 16; - - for (int x = 0; x < this.noiseSampleCountXZ; x++) - { - double worldX = posX + (x * this.noiseScaleFactorXZ); - - for (int z = 0; z < this.noiseSampleCountXZ; z++) - { - double worldZ = posZ + (z * this.noiseScaleFactorXZ); - - for (int y = 0; y < this.noiseSampleCountY; y++) - { - double worldY = y * this.noiseScaleFactorY; - - this.generate(data, x, y, z, worldX, worldY, worldZ); - } - } - } - - return data; - } - - protected abstract T prepare(int chunkX, int chunkZ); - - protected abstract void generate(T data, int x, int y, int z, double worldX, double worldY, double worldZ); -} diff --git a/src/main/java/com/gildedgames/aether/common/world/noise/InterpolatedChunkNoiseBuffer2D.java b/src/main/java/com/gildedgames/aether/common/world/noise/InterpolatedChunkNoiseBuffer2D.java deleted file mode 100644 index 844ec7a908..0000000000 --- a/src/main/java/com/gildedgames/aether/common/world/noise/InterpolatedChunkNoiseBuffer2D.java +++ /dev/null @@ -1,45 +0,0 @@ -package com.gildedgames.aether.common.world.noise; - -import com.gildedgames.aether.api.world.noise.IChunkNoiseBuffer2D; - -public class InterpolatedChunkNoiseBuffer2D implements IChunkNoiseBuffer2D -{ - private final float[] samples; - - private final int sampleCount; - - private final float noiseScaleFactor; - - public InterpolatedChunkNoiseBuffer2D(final float[] samples, final int sampleCount, final double noiseScaleFactor) - { - this.samples = samples; - this.sampleCount = sampleCount; - - this.noiseScaleFactor = 1.0f / (float) noiseScaleFactor; - } - - @Override - public float get(int x, int z) - { - final float x0 = x * this.noiseScaleFactor; - final float z0 = z * this.noiseScaleFactor; - - final int integerX = (int) x0; - final int integerZ = (int) z0; - - final float fractionX = x0 - integerX; - final float fractionZ = z0 - integerZ; - - final float a = this.samples[(integerX * this.sampleCount) + integerZ]; - final float b = this.samples[(integerX * this.sampleCount) + integerZ + 1]; - - final float c = this.samples[((integerX + 1) * this.sampleCount) + integerZ]; - final float d = this.samples[((integerX + 1) * this.sampleCount) + integerZ + 1]; - - final float r1 = a + (b - a) * fractionZ; - final float r2 = c + (d - c) * fractionZ; - - return r1 + (r2 - r1) * fractionX; - } - -} diff --git a/src/main/java/com/gildedgames/aether/common/world/noise/InterpolatedChunkNoiseBuffer3D.java b/src/main/java/com/gildedgames/aether/common/world/noise/InterpolatedChunkNoiseBuffer3D.java deleted file mode 100644 index ed06c4351f..0000000000 --- a/src/main/java/com/gildedgames/aether/common/world/noise/InterpolatedChunkNoiseBuffer3D.java +++ /dev/null @@ -1,44 +0,0 @@ -package com.gildedgames.aether.common.world.noise; - -import com.gildedgames.aether.api.world.noise.IChunkNoiseBuffer3D; - -public class InterpolatedChunkNoiseBuffer3D implements IChunkNoiseBuffer3D -{ - private final float[][] samples; - - private final float noiseScaleFactorXZ; - - private final int sampleCountXZ; - - public InterpolatedChunkNoiseBuffer3D(float[][] samples, final double noiseScaleFactorXZ, final int sampleCountXZ) - { - this.samples = samples; - - this.noiseScaleFactorXZ = 1.0f / (float) noiseScaleFactorXZ; - this.sampleCountXZ = sampleCountXZ; - } - - @Override - public float get(int x, int y, int z) - { - final float x0 = x * this.noiseScaleFactorXZ; - final float z0 = z * this.noiseScaleFactorXZ; - - final int integerX = (int) x0; - final int integerZ = (int) z0; - - final float[] row = this.samples[y]; - - final float a = row[(integerX * this.sampleCountXZ) + integerZ]; - final float b = row[(integerX * this.sampleCountXZ) + integerZ + 1]; - - final float c = row[((integerX + 1) * this.sampleCountXZ) + integerZ]; - final float d = row[((integerX + 1) * this.sampleCountXZ) + integerZ + 1]; - - final float r1 = a + (b - a) * (z0 - integerZ); - final float r2 = c + (d - c) * (z0 - integerZ); - - return r1 + (r2 - r1) * (x0 - integerX); - } - -} diff --git a/src/main/java/com/gildedgames/aether/common/world/noise/NoiseSampleData2D.java b/src/main/java/com/gildedgames/aether/common/world/noise/NoiseSampleData2D.java deleted file mode 100644 index 8ea4e290eb..0000000000 --- a/src/main/java/com/gildedgames/aether/common/world/noise/NoiseSampleData2D.java +++ /dev/null @@ -1,36 +0,0 @@ -package com.gildedgames.aether.common.world.noise; - -import com.gildedgames.aether.api.world.noise.IChunkNoiseBuffer2D; - -public class NoiseSampleData2D -{ - private final float[] data; - - private final double noiseScaleFactor; - - private final int sampleCount; - - public NoiseSampleData2D(double noiseScaleFactor, int sampleCount) - { - this.noiseScaleFactor = noiseScaleFactor; - this.sampleCount = sampleCount; - - this.data = new float[this.sampleCount * this.sampleCount]; - } - - public void set(int x, int z, float i) - { - this.data[(x * this.sampleCount) + z] = i; - } - - public float get(int x, int z) - { - return this.data[(x * this.sampleCount) + z]; - } - - public IChunkNoiseBuffer2D createInterpolatedNoiseBuffer() - { - return new InterpolatedChunkNoiseBuffer2D(this.data, this.sampleCount, this.noiseScaleFactor); - } - -} diff --git a/src/main/java/com/gildedgames/aether/common/world/noise/NoiseSampleData3D.java b/src/main/java/com/gildedgames/aether/common/world/noise/NoiseSampleData3D.java deleted file mode 100644 index 8bbf3330fc..0000000000 --- a/src/main/java/com/gildedgames/aether/common/world/noise/NoiseSampleData3D.java +++ /dev/null @@ -1,34 +0,0 @@ -package com.gildedgames.aether.common.world.noise; - -import com.gildedgames.aether.api.world.noise.IChunkNoiseBuffer3D; - -public class NoiseSampleData3D -{ - private final float[][] data; - - private final double noiseScaleFactorXZ, noiseScaleFactorY; - - private final int sampleCountXZ; - - private final int sampleCountY; - - public NoiseSampleData3D(double noiseScaleFactorXZ, double noiseScaleFactorY, int sampleCountXZ, int sampleCountY) - { - this.noiseScaleFactorXZ = noiseScaleFactorXZ; - this.noiseScaleFactorY = noiseScaleFactorY; - this.sampleCountXZ = sampleCountXZ; - this.sampleCountY = sampleCountY; - - this.data = new float[this.sampleCountY][this.sampleCountXZ * this.sampleCountXZ]; - } - - public void set(int x, int y, int z, float i) - { - this.data[y][(x * this.sampleCountXZ) + z] = i; - } - - public IChunkNoiseBuffer3D createInterpolatedNoiseBuffer() - { - return new InterpolatedChunkNoiseBuffer3D(this.data, this.noiseScaleFactorXZ, this.sampleCountXZ); - } -} diff --git a/src/main/java/com/gildedgames/aether/common/world/noise/impl/NoiseGeneratorClouds.java b/src/main/java/com/gildedgames/aether/common/world/noise/impl/NoiseGeneratorClouds.java deleted file mode 100644 index 32803385de..0000000000 --- a/src/main/java/com/gildedgames/aether/common/world/noise/impl/NoiseGeneratorClouds.java +++ /dev/null @@ -1,25 +0,0 @@ -package com.gildedgames.aether.common.world.noise.impl; - -import com.gildedgames.aether.api.util.NoiseUtil; -import com.gildedgames.aether.api.util.OpenSimplexNoise; -import com.gildedgames.aether.api.world.noise.INoiseGenerator2D; - -public class NoiseGeneratorClouds implements INoiseGenerator2D -{ - private static final double SCALE_FACTOR = 100.0D; - - private final OpenSimplexNoise noise; - - public NoiseGeneratorClouds(OpenSimplexNoise noise) - { - this.noise = noise; - } - - @Override - public double generate(double worldX, double worldZ) - { - double sample = NoiseUtil.something(this.noise, worldX / SCALE_FACTOR, worldZ / SCALE_FACTOR); - - return NoiseUtil.normalise(sample); - } -} diff --git a/src/main/java/com/gildedgames/aether/common/world/noise/impl/NoiseGeneratorIslandTerrain.java b/src/main/java/com/gildedgames/aether/common/world/noise/impl/NoiseGeneratorIslandTerrain.java deleted file mode 100644 index 47eef5dac7..0000000000 --- a/src/main/java/com/gildedgames/aether/common/world/noise/impl/NoiseGeneratorIslandTerrain.java +++ /dev/null @@ -1,48 +0,0 @@ -package com.gildedgames.aether.common.world.noise.impl; - -import com.gildedgames.aether.api.util.OpenSimplexNoise; -import com.gildedgames.aether.api.world.islands.IIslandBounds; -import com.gildedgames.aether.api.world.noise.INoiseGenerator2D; - -public class NoiseGeneratorIslandTerrain implements INoiseGenerator2D -{ - private static final double NOISE_SCALE = 300.0D; - - private final OpenSimplexNoise noise; - - private final double offsetX, offsetZ; - - public NoiseGeneratorIslandTerrain(OpenSimplexNoise noise, IIslandBounds bounds) - { - this(noise, bounds.getMinX(), bounds.getMinZ()); - } - - public NoiseGeneratorIslandTerrain(OpenSimplexNoise noise, IIslandBounds bounds, int offset) - { - this(noise, bounds.getMinX() + offset, bounds.getMinZ() + offset); - } - - public NoiseGeneratorIslandTerrain(OpenSimplexNoise noise, int offsetX, int offsetZ) - { - this.noise = noise; - - this.offsetX = offsetX; - this.offsetZ = offsetZ; - } - - @Override - public double generate(double worldX, double worldZ) - { - double noiseX = (worldX + this.offsetX) / NOISE_SCALE; - double noiseZ = (worldZ + this.offsetZ) / NOISE_SCALE; - - // Generate evalNormalised for X/Z coordinate - final double noise1 = this.noise.eval(noiseX, noiseZ); - final double noise2 = 0.5D * this.noise.eval(noiseX * 8D, noiseZ * 8D); - final double noise3 = 0.25D * this.noise.eval(noiseX * 16D, noiseZ * 16D); - final double noise4 = 0.1D * this.noise.eval(noiseX * 32D, noiseZ * 32D); - - // Averages evalNormalised samples linearly - return (noise1 + noise2 + noise3 + noise4) / 4.0D; - } -} diff --git a/src/main/java/com/gildedgames/aether/common/world/noise/impl/NoiseGeneratorSoilDepth.java b/src/main/java/com/gildedgames/aether/common/world/noise/impl/NoiseGeneratorSoilDepth.java deleted file mode 100644 index e553d7e87f..0000000000 --- a/src/main/java/com/gildedgames/aether/common/world/noise/impl/NoiseGeneratorSoilDepth.java +++ /dev/null @@ -1,26 +0,0 @@ -package com.gildedgames.aether.common.world.noise.impl; - -import com.gildedgames.aether.api.util.OpenSimplexNoise; -import com.gildedgames.aether.api.world.noise.INoiseGenerator2D; -import net.minecraft.util.math.MathHelper; - -public class NoiseGeneratorSoilDepth implements INoiseGenerator2D -{ - private static final double NOISE_SCALE = 0.0625D; - - private final OpenSimplexNoise noise; - - public NoiseGeneratorSoilDepth(OpenSimplexNoise noise) - { - this.noise = noise; - } - - @Override - public double generate(double worldX, double worldZ) - { - double nx = worldX / NOISE_SCALE; - double nz = worldZ / NOISE_SCALE; - - return MathHelper.ceil(((this.noise.eval(nx, nz) - 0.5D) * 2.0D)) + 3.0D; - } -} diff --git a/src/main/java/com/gildedgames/aether/common/world/preparation/PrepChunkManager.java b/src/main/java/com/gildedgames/aether/common/world/preparation/PrepChunkManager.java deleted file mode 100644 index 820d02a570..0000000000 --- a/src/main/java/com/gildedgames/aether/common/world/preparation/PrepChunkManager.java +++ /dev/null @@ -1,81 +0,0 @@ -package com.gildedgames.aether.common.world.preparation; - -import com.gildedgames.aether.api.world.preparation.*; -import com.gildedgames.aether.common.world.preparation.mask.ChunkMask; -import com.gildedgames.orbis.lib.util.ChunkMap; -import net.minecraft.nbt.NBTBase; -import net.minecraft.util.EnumFacing; -import net.minecraft.world.World; -import net.minecraftforge.common.capabilities.Capability; - -import javax.annotation.Nullable; - -public class PrepChunkManager<T extends IChunkInfo> implements IPrepChunkManager<T> -{ - private World world; - - private IPrepRegistryEntry<T> registryEntry; - - private final ChunkMap<ChunkMask> chunkCache = new ChunkMap<>(); - - public PrepChunkManager() - { - - } - - public PrepChunkManager(World world, IPrepRegistryEntry<T> registryEntry) - { - this.world = world; - this.registryEntry = registryEntry; - } - - @Override - public World getWorld() - { - return this.world; - } - - @Nullable - @Override - public ChunkMask getChunk(IPrepSectorData sectorData, int chunkX, int chunkZ) - { - ChunkMask mask = this.chunkCache.get(chunkX, chunkZ); - - if (mask != null) - { - return mask; - } - - mask = new ChunkMask(chunkX, chunkZ); - - T info = this.registryEntry.generateChunkColumnInfo(this.world, sectorData, chunkX, chunkZ); - - this.registryEntry.threadSafeGenerateMask(info, this.world, sectorData, mask, chunkX, chunkZ); - - this.chunkCache.put(chunkX, chunkZ, mask); - - return mask; - } - - @Override - public IChunkMaskTransformer createMaskTransformer() - { - return this.registryEntry.createMaskTransformer(); - } - - public static class Storage implements Capability.IStorage<IPrepChunkManager> - { - @Nullable - @Override - public NBTBase writeNBT(final Capability<IPrepChunkManager> capability, final IPrepChunkManager instance, final EnumFacing side) - { - return null; - } - - @Override - public void readNBT(final Capability<IPrepChunkManager> capability, final IPrepChunkManager instance, final EnumFacing side, final NBTBase nbt) - { - - } - } -} diff --git a/src/main/java/com/gildedgames/aether/common/world/preparation/PrepEventListener.java b/src/main/java/com/gildedgames/aether/common/world/preparation/PrepEventListener.java deleted file mode 100644 index 6e67e6d7c7..0000000000 --- a/src/main/java/com/gildedgames/aether/common/world/preparation/PrepEventListener.java +++ /dev/null @@ -1,51 +0,0 @@ -package com.gildedgames.aether.common.world.preparation; - -import com.gildedgames.aether.api.world.preparation.IPrepManager; -import net.minecraft.world.World; -import net.minecraftforge.event.world.ChunkEvent; -import net.minecraftforge.fml.common.Mod; -import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; -import net.minecraftforge.fml.common.gameevent.TickEvent; - -@Mod.EventBusSubscriber -public class PrepEventListener -{ - @SubscribeEvent - public static void onChunkLoaded(final ChunkEvent.Load event) - { - final World world = event.getWorld(); - - IPrepManager manager = PrepHelper.getManager(world); - - if (manager != null) - { - manager.getAccess().onChunkLoaded(event.getChunk().x, event.getChunk().z); - } - } - - @SubscribeEvent - public static void onChunkUnloaded(final ChunkEvent.Unload event) - { - final World world = event.getWorld(); - - IPrepManager manager = PrepHelper.getManager(world); - - if (manager != null) - { - manager.getAccess().onChunkUnloaded(event.getChunk().x, event.getChunk().z); - } - } - - @SubscribeEvent - public static void onWorldTick(final TickEvent.WorldTickEvent event) - { - final World world = event.world; - - IPrepManager manager = PrepHelper.getManager(world); - - if (manager != null) - { - manager.getAccess().update(); - } - } -} diff --git a/src/main/java/com/gildedgames/aether/common/world/preparation/PrepHelper.java b/src/main/java/com/gildedgames/aether/common/world/preparation/PrepHelper.java deleted file mode 100644 index b0bb0069dc..0000000000 --- a/src/main/java/com/gildedgames/aether/common/world/preparation/PrepHelper.java +++ /dev/null @@ -1,67 +0,0 @@ -package com.gildedgames.aether.common.world.preparation; - -import com.gildedgames.aether.api.registrar.CapabilitiesAether; -import com.gildedgames.aether.api.world.preparation.IPrepManager; -import com.gildedgames.aether.api.world.preparation.IPrepSector; -import net.minecraft.world.World; - -import javax.annotation.Nullable; -import java.util.Optional; -import java.util.concurrent.ExecutionException; - -public class PrepHelper -{ - /** - * Helper method which returns the {@link IPrepManager) for a world, or throws - * an {@link RuntimeException} if it does not exist. - * - * @param world The world - * @return The {@link IPrepManager} belonging to the world - */ - @Nullable - public static IPrepManager getManager(World world) - { - IPrepManager access = null; - - if (world.hasCapability(CapabilitiesAether.PREP_MANAGER, null)) - { - access = world.getCapability(CapabilitiesAether.PREP_MANAGER, null); - } - - return access; - } - - public static IPrepSector getSector(World world, int chunkX, int chunkY) - { - IPrepManager manager = PrepHelper.getManager(world); - - if (manager == null) - { - return null; - } - - try - { - return manager.getAccess().provideSectorForChunk(chunkX, chunkY, false).get(); - } - catch (InterruptedException | ExecutionException e) - { - throw new RuntimeException(e); - } - } - - public static boolean isSectorLoaded(World world, int chunkX, int chunkY) - { - IPrepManager manager = PrepHelper.getManager(world); - - return isSectorLoaded(manager, chunkX, chunkY); - } - - public static boolean isSectorLoaded(IPrepManager manager, int chunkX, int chunkY) - { - Optional<IPrepSector> sector = manager.getAccess().getLoadedSectorForChunk(chunkX, chunkY); - - return sector.isPresent(); - } - -} diff --git a/src/main/java/com/gildedgames/aether/common/world/preparation/PrepRegistry.java b/src/main/java/com/gildedgames/aether/common/world/preparation/PrepRegistry.java deleted file mode 100644 index ed80c126ba..0000000000 --- a/src/main/java/com/gildedgames/aether/common/world/preparation/PrepRegistry.java +++ /dev/null @@ -1,27 +0,0 @@ -package com.gildedgames.aether.common.world.preparation; - -import com.gildedgames.aether.api.world.preparation.IPrepRegistry; -import com.gildedgames.aether.api.world.preparation.IPrepRegistryEntry; -import com.google.common.collect.Lists; - -import java.util.List; - -public class PrepRegistry implements IPrepRegistry -{ - private List<IPrepRegistryEntry> entries = Lists.newArrayList(); - - @Override - public void register(IPrepRegistryEntry registration) - { - if (!this.entries.contains(registration)) - { - this.entries.add(registration); - } - } - - @Override - public List<IPrepRegistryEntry> getEntries() - { - return this.entries; - } -} diff --git a/src/main/java/com/gildedgames/aether/common/world/preparation/PrepSector.java b/src/main/java/com/gildedgames/aether/common/world/preparation/PrepSector.java deleted file mode 100644 index 01165798af..0000000000 --- a/src/main/java/com/gildedgames/aether/common/world/preparation/PrepSector.java +++ /dev/null @@ -1,78 +0,0 @@ -package com.gildedgames.aether.common.world.preparation; - -import com.gildedgames.aether.api.world.preparation.IPrepSector; -import com.gildedgames.aether.api.world.preparation.IPrepSectorData; -import it.unimi.dsi.fastutil.ints.IntOpenHashSet; -import it.unimi.dsi.fastutil.longs.LongOpenHashSet; -import net.minecraft.util.math.ChunkPos; - -public class PrepSector implements IPrepSector -{ - private final LongOpenHashSet watchingChunks = new LongOpenHashSet(); - - private final IntOpenHashSet watchingPlayers = new IntOpenHashSet(); - - private IPrepSectorData data; - - private int dormantTicks; - - public PrepSector(IPrepSectorData data) - { - this.data = data; - } - - @Override - public IPrepSectorData getData() - { - return this.data; - } - - @Override - public boolean addWatchingChunk(final int chunkX, final int chunkZ) - { - return this.watchingChunks.add(ChunkPos.asLong(chunkX, chunkZ)); - } - - @Override - public boolean removeWatchingChunk(final int chunkX, final int chunkZ) - { - return this.watchingChunks.remove(ChunkPos.asLong(chunkX, chunkZ)); - } - - @Override - public void addWatchingPlayer(int entityId) - { - this.watchingPlayers.add(entityId); - } - - @Override - public void removeWatchingPlayer(int entityId) - { - this.watchingPlayers.remove(entityId); - } - - @Override - public boolean hasWatchers() - { - return !this.watchingChunks.isEmpty() || !this.watchingPlayers.isEmpty(); - } - - @Override - public int getDormantTicks() - { - return this.dormantTicks; - } - - @Override - public void tick() - { - if (this.hasWatchers()) - { - this.dormantTicks = 0; - } - else - { - this.dormantTicks++; - } - } -} diff --git a/src/main/java/com/gildedgames/aether/common/world/preparation/access/PrepSectorAccessClient.java b/src/main/java/com/gildedgames/aether/common/world/preparation/access/PrepSectorAccessClient.java deleted file mode 100644 index b2a971d14d..0000000000 --- a/src/main/java/com/gildedgames/aether/common/world/preparation/access/PrepSectorAccessClient.java +++ /dev/null @@ -1,99 +0,0 @@ -package com.gildedgames.aether.common.world.preparation.access; - -import com.gildedgames.aether.api.world.preparation.IPrepRegistryEntry; -import com.gildedgames.aether.api.world.preparation.IPrepSector; -import com.gildedgames.aether.api.world.preparation.IPrepSectorAccessClient; -import com.gildedgames.orbis.lib.util.ChunkMap; -import com.google.common.util.concurrent.Futures; -import com.google.common.util.concurrent.ListenableFuture; -import net.minecraft.world.World; - -import java.util.Collection; -import java.util.Optional; - -public class PrepSectorAccessClient implements IPrepSectorAccessClient -{ - private final ChunkMap<IPrepSector> loaded = new ChunkMap<>(); - - private final World world; - - private final IPrepRegistryEntry registry; - - public PrepSectorAccessClient(World world, IPrepRegistryEntry registry) - { - this.world = world; - this.registry = registry; - } - - @Override - public Optional<IPrepSector> getLoadedSector(int sectorX, int sectorZ) - { - return Optional.ofNullable(this.loaded.get(sectorX, sectorZ)); - } - - @Override - public Optional<IPrepSector> getLoadedSectorForChunk(int chunkX, int chunkZ) - { - final int sectorX = Math.floorDiv(chunkX, this.registry.getSectorChunkArea()); - final int sectorZ = Math.floorDiv(chunkZ, this.registry.getSectorChunkArea()); - - return this.getLoadedSector(sectorX, sectorZ); - } - - @Override - public ListenableFuture<IPrepSector> provideSector(int sectorX, int sectorZ, boolean background) - { - return Futures.immediateFuture(this.loaded.get(sectorX, sectorZ)); - } - - @Override - public ListenableFuture<IPrepSector> provideSectorForChunk(int chunkX, int chunkZ, boolean background) - { - final int sectorX = Math.floorDiv(chunkX, this.registry.getSectorChunkArea()); - final int sectorZ = Math.floorDiv(chunkZ, this.registry.getSectorChunkArea()); - - return this.provideSector(sectorX, sectorZ, background); - } - - @Override - public void onChunkLoaded(int chunkX, int chunkZ) - { - - } - - @Override - public void onChunkUnloaded(int chunkX, int chunkZ) - { - - } - - @Override - public void retainSector(IPrepSector sector) - { - - } - - @Override - public Collection<IPrepSector> getLoadedSectors() - { - return this.loaded.getValues(); - } - - @Override - public void update() - { - - } - - @Override - public void addSector(IPrepSector sector) - { - this.loaded.put(sector.getData().getSectorX(), sector.getData().getSectorY(), sector); - } - - @Override - public void removeSector(IPrepSector sector) - { - this.loaded.remove(sector.getData().getSectorX(), sector.getData().getSectorY()); - } -} diff --git a/src/main/java/com/gildedgames/aether/common/world/preparation/access/PrepSectorAccessServer.java b/src/main/java/com/gildedgames/aether/common/world/preparation/access/PrepSectorAccessServer.java deleted file mode 100644 index 09f148bd71..0000000000 --- a/src/main/java/com/gildedgames/aether/common/world/preparation/access/PrepSectorAccessServer.java +++ /dev/null @@ -1,370 +0,0 @@ -package com.gildedgames.aether.common.world.preparation.access; - -import com.gildedgames.aether.api.world.preparation.*; -import com.gildedgames.aether.common.world.preparation.PrepSector; -import com.gildedgames.orbis.lib.OrbisLib; -import com.gildedgames.orbis.lib.util.ChunkMap; -import com.gildedgames.orbis.lib.world.data.IWorldData; -import com.gildedgames.orbis.lib.world.data.IWorldDataManager; -import com.google.common.util.concurrent.*; -import net.minecraft.nbt.CompressedStreamTools; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.util.ResourceLocation; -import net.minecraft.world.World; - -import java.io.*; -import java.util.ArrayList; -import java.util.Collection; -import java.util.List; -import java.util.Optional; -import java.util.concurrent.*; - -public class PrepSectorAccessServer implements IPrepSectorAccess, IWorldData -{ - private static final int THREADS = Math.max(1, Runtime.getRuntime().availableProcessors() / 2); - - private static final ThreadFactory threadFactory = new ThreadFactoryBuilder().setNameFormat("Sector Access %d").build(); - - private final World world; - - private final ListeningExecutorService foregroundService = - MoreExecutors.listeningDecorator(Executors.newSingleThreadExecutor(threadFactory)); - - private final ListeningExecutorService backgroundService = - MoreExecutors.listeningDecorator(new ThreadPoolExecutor(0, THREADS, 1L, TimeUnit.MINUTES, new LinkedBlockingQueue<>(), threadFactory)); - - private final IPrepRegistryEntry registry; - - private final IPrepManager prepManager; - - private final ChunkMap<IPrepSector> loaded = new ChunkMap<>(); - - private final ChunkMap<IPrepSector> generating = new ChunkMap<>(); - - private final ChunkMap<ListenableFuture<IPrepSector>> loading = new ChunkMap<>(); - - private final IWorldDataManager dataManager; - - private final ArrayList<IPrepSector> dirty = new ArrayList<>(); - - public PrepSectorAccessServer(World world, IPrepRegistryEntry registry, IPrepManager prepManager, IWorldDataManager dataManager) - { - this.world = world; - this.prepManager = prepManager; - this.registry = registry; - - this.dataManager = dataManager; - this.dataManager.register(this); - } - - @Override - public Optional<IPrepSector> getLoadedSector(int sectorX, int sectorZ) - { - synchronized (this.generating) - { - IPrepSector job = this.generating.get(sectorX, sectorZ); - - if (job != null) - { - return Optional.of(job); - } - } - - return Optional.ofNullable(this.loaded.get(sectorX, sectorZ)); - } - - @Override - public Optional<IPrepSector> getLoadedSectorForChunk(final int chunkX, final int chunkZ) - { - final int sectorX = Math.floorDiv(chunkX, this.registry.getSectorChunkArea()); - final int sectorZ = Math.floorDiv(chunkZ, this.registry.getSectorChunkArea()); - - return this.getLoadedSector(sectorX, sectorZ); - } - - @Override - public ListenableFuture<IPrepSector> provideSector(int sectorX, int sectorZ, boolean background) - { - synchronized (this.loading) - { - if (this.loading.containsKey(sectorX, sectorZ)) - { - return this.loading.get(sectorX, sectorZ); - } - } - - Optional<IPrepSector> sector = this.getLoadedSector(sectorX, sectorZ); - - if (sector.isPresent()) - { - return Futures.immediateFuture(sector.get()); - } - - synchronized (this.loading) - { - ListeningExecutorService service = background ? this.backgroundService : this.foregroundService; - - ListenableFuture<IPrepSector> future = service.submit(() -> this.loadSector(sectorX, sectorZ)); - - this.loading.put(sectorX, sectorZ, future); - - return future; - } - } - - @Override - public ListenableFuture<IPrepSector> provideSectorForChunk(final int chunkX, final int chunkZ, boolean background) - { - final int sectorX = Math.floorDiv(chunkX, this.registry.getSectorChunkArea()); - final int sectorZ = Math.floorDiv(chunkZ, this.registry.getSectorChunkArea()); - - return this.provideSector(sectorX, sectorZ, background); - } - - private IPrepSector loadSector(int sectorX, int sectorZ) throws IOException - { - IPrepSectorData data = this.readSectorDataFromDisk(sectorX, sectorZ); - - PrepSector sector; - - if (data != null) - { - sector = new PrepSector(data); - } - else - { - OrbisLib.LOGGER.info("Generating Sector (" + sectorX + ", " + sectorZ + ")"); - - long startTime = System.currentTimeMillis(); - - data = this.prepManager.createSector(sectorX, sectorZ); - sector = new PrepSector(data); - - synchronized (this.generating) - { - this.generating.put(sectorX, sectorZ, sector); - } - - this.prepManager.decorateSectorData(data); - - synchronized (this.generating) - { - this.generating.remove(sectorX, sectorZ); - } - - sector.getData().markDirty(); - - long duration = System.currentTimeMillis() - startTime; - - OrbisLib.LOGGER.info("Finished generating Sector (" + sectorX + ", " + sectorZ + ") in " + duration + "ms"); - } - - return sector; - } - - @Override - public void onChunkLoaded(final int chunkX, final int chunkZ) - { - try - { - IPrepSector sector = this.provideSectorForChunk(chunkX, chunkZ, false).get(); - - if (sector == null) - { - return; - } - - sector.addWatchingChunk(chunkX, chunkZ); - - this.retainSector(sector); - } - catch (InterruptedException | ExecutionException e) - { - e.printStackTrace(); - } - } - - @Override - public void onChunkUnloaded(final int chunkX, final int chunkZ) - { - this.getLoadedSectorForChunk(chunkX, chunkZ).ifPresent(sector -> { - sector.removeWatchingChunk(chunkX, chunkZ); - }); - } - - @Override - public void retainSector(IPrepSector sector) - { - int sectorX = sector.getData().getSectorX(); - int sectorZ = sector.getData().getSectorY(); - - synchronized (this.loaded) - { - if (!this.loaded.containsKey(sectorX, sectorZ)) - { - this.loaded.put(sectorX, sectorZ, sector); - } - } - } - - @Override - public Collection<IPrepSector> getLoadedSectors() - { - return this.loaded.getValues(); - } - - @Override - public ResourceLocation getName() - { - return this.registry.getUniqueId(); - } - - /** - * Saves all dirty sectors to the disk synchronously and unloads - * those of which have no players watching them. - */ - @Override - public void flush() - { - List<IPrepSector> dirty; - - synchronized (this.dirty) - { - dirty = new ArrayList<>(this.dirty); - - this.dirty.clear(); - } - - for (IPrepSector sector : dirty) - { - try - { - this.writeSectorDataToDisk(sector.getData()); - } - catch (IOException e) - { - OrbisLib.LOGGER.warn("Failed to flush sector", e); - } - - sector.getData().markClean(); - } - } - - @Override - public void update() - { - this.loading.getInnerMap().long2ObjectEntrySet().removeIf(entry -> - entry.getValue().isDone() || entry.getValue().isCancelled()); - - synchronized (this.loaded) - { - List<IPrepSector> removal = new ArrayList<>(); - - for (IPrepSector sector : this.loaded.getValues()) - { - sector.tick(); - - if (sector.getData().isDirty()) - { - synchronized (this.dirty) - { - this.dirty.add(sector); - } - - continue; - } - - if (sector.getDormantTicks() > 20 * 60 * 5) - { - removal.add(sector); - } - } - - for (IPrepSector sector : removal) - { - this.loaded.remove(sector.getData().getSectorX(), sector.getData().getSectorY()); - } - } - } - - /** - * Returns the location of a sector on disk by it's coordinates. - * - * @param sectorX The sector's x-coordinate - * @param sectorZ The sector's z-coordinate - * @return A {@link File} pointing to the sector on disk - */ - private String getSectorFileName(final int sectorX, final int sectorZ) - { - return "sector_" + sectorX + "_" + sectorZ + ".nbt.gz"; - } - - private IPrepSectorData readSectorDataFromDisk(int sectorX, int sectorY) throws IOException - { - byte[] bytes = this.dataManager.readBytes(this, this.getSectorFileName(sectorX, sectorY)); - - if (bytes == null) - { - return null; - } - - try (InputStream stream = new ByteArrayInputStream(bytes)) - { - final IPrepSectorData sector = this.readSectorDataFromStream(stream); - - if (sector.getSectorX() != sectorX || sector.getSectorY() != sectorY) - { - throw new IOException(String.format("Sector has wrong coordinates on disk! (expected [%s, %s], found [%s, %s])", - sectorX, sectorY, sector.getSectorX(), sector.getSectorY())); - } - - return sector; - } - } - - /** - * Reads an {@link IPrepSector} from an {@link InputStream}. - * - * @param stream The {@link InputStream} containing the sector's data - * @return The {@link IPrepSector} read from the stream - * - * @throws IOException If an I/O exception occurs while reading - */ - private IPrepSectorData readSectorDataFromStream(final InputStream stream) throws IOException - { - final NBTTagCompound tag = CompressedStreamTools.readCompressed(stream); - - return this.registry.createDataAndRead(this.world, tag); - } - - private void writeSectorDataToDisk(IPrepSectorData sectorData) throws IOException - { - byte[] bytes; - - try (ByteArrayOutputStream out = new ByteArrayOutputStream()) - { - this.writeSectorDataToStream(sectorData, out); - - bytes = out.toByteArray(); - } - - this.dataManager.writeBytes(this, this.getSectorFileName(sectorData.getSectorX(), sectorData.getSectorY()), bytes); - } - - /** - * Writes an {@link IPrepSector} to an {@link OutputStream}. - * - * @param sector The sector to write - * @param out The {@link OutputStream} to write to - * - * @throws IOException If an I/O exception occurs while writing - */ - private void writeSectorDataToStream(final IPrepSectorData sector, final OutputStream out) throws IOException - { - final NBTTagCompound tag = new NBTTagCompound(); - sector.write(tag); - - CompressedStreamTools.writeCompressed(tag, out); - } - -} diff --git a/src/main/java/com/gildedgames/aether/common/world/preparation/capability/PrepManager.java b/src/main/java/com/gildedgames/aether/common/world/preparation/capability/PrepManager.java deleted file mode 100644 index e5639b757e..0000000000 --- a/src/main/java/com/gildedgames/aether/common/world/preparation/capability/PrepManager.java +++ /dev/null @@ -1,87 +0,0 @@ -package com.gildedgames.aether.common.world.preparation.capability; - -import com.gildedgames.aether.api.world.preparation.IPrepManager; -import com.gildedgames.aether.api.world.preparation.IPrepRegistryEntry; -import com.gildedgames.aether.api.world.preparation.IPrepSectorAccess; -import com.gildedgames.aether.api.world.preparation.IPrepSectorData; -import com.gildedgames.aether.common.world.preparation.access.PrepSectorAccessClient; -import com.gildedgames.aether.common.world.preparation.access.PrepSectorAccessServer; -import com.gildedgames.orbis.lib.OrbisLib; -import net.minecraft.nbt.NBTBase; -import net.minecraft.util.EnumFacing; -import net.minecraft.world.World; -import net.minecraftforge.common.capabilities.Capability; - -import javax.annotation.Nullable; - -public class PrepManager implements IPrepManager -{ - private final World world; - - private final IPrepRegistryEntry registry; - - private IPrepSectorAccess access; - - public PrepManager() - { - this.world = null; - this.registry = null; - } - - public PrepManager(World world, IPrepRegistryEntry registry) - { - this.world = world; - this.registry = registry; - - if (world.isRemote) - { - this.access = new PrepSectorAccessClient(this.world, this.registry); - } - else - { - this.access = new PrepSectorAccessServer(this.world, this.registry, this, OrbisLib.services().getWorldDataManager(world)); - } - } - - @Override - public IPrepRegistryEntry getRegistryEntry() - { - return this.registry; - } - - @Override - public IPrepSectorAccess getAccess() - { - return this.access; - } - - @Override - public IPrepSectorData createSector(int sectorX, int sectorZ) - { - long seed = this.world.getSeed() ^ ((long) sectorX * 341873128712L + (long) sectorZ * 132897987541L); - - return this.registry.createData(this.world, seed, sectorX, sectorZ); - } - - @Override - public void decorateSectorData(IPrepSectorData data) - { - this.registry.postSectorDataCreate(this.world, data); - } - - public static class Storage implements Capability.IStorage<IPrepManager> - { - @Nullable - @Override - public NBTBase writeNBT(final Capability<IPrepManager> capability, final IPrepManager instance, final EnumFacing side) - { - return null; - } - - @Override - public void readNBT(final Capability<IPrepManager> capability, final IPrepManager instance, final EnumFacing side, final NBTBase nbt) - { - - } - } -} diff --git a/src/main/java/com/gildedgames/aether/common/world/preparation/capability/PrepManagerStorageProvider.java b/src/main/java/com/gildedgames/aether/common/world/preparation/capability/PrepManagerStorageProvider.java deleted file mode 100644 index 81dc7ca6c9..0000000000 --- a/src/main/java/com/gildedgames/aether/common/world/preparation/capability/PrepManagerStorageProvider.java +++ /dev/null @@ -1,51 +0,0 @@ -package com.gildedgames.aether.common.world.preparation.capability; - -import com.gildedgames.aether.api.registrar.CapabilitiesAether; -import com.gildedgames.aether.api.world.preparation.IPrepManager; -import com.gildedgames.aether.api.world.preparation.IPrepRegistryEntry; -import net.minecraft.util.EnumFacing; -import net.minecraft.world.World; -import net.minecraftforge.common.capabilities.Capability; -import net.minecraftforge.common.capabilities.ICapabilityProvider; - -import javax.annotation.Nonnull; -import javax.annotation.Nullable; - -public class PrepManagerStorageProvider implements ICapabilityProvider -{ - private final World world; - - private IPrepRegistryEntry entry; - - private IPrepManager manager; - - public PrepManagerStorageProvider(World world, IPrepRegistryEntry entry) - { - this.world = world; - this.entry = entry; - } - - @Override - public boolean hasCapability(@Nonnull Capability<?> capability, @Nullable EnumFacing facing) - { - return capability == CapabilitiesAether.PREP_MANAGER; - } - - @Nullable - @Override - @SuppressWarnings("unchecked") - public <T> T getCapability(@Nonnull Capability<T> capability, @Nullable EnumFacing facing) - { - if (this.hasCapability(capability, facing)) - { - if (this.manager == null) - { - this.manager = new PrepManager(this.world, this.entry); - } - - return (T) this.manager; - } - - return null; - } -} \ No newline at end of file diff --git a/src/main/java/com/gildedgames/aether/common/world/preparation/mask/ChunkDataContainer.java b/src/main/java/com/gildedgames/aether/common/world/preparation/mask/ChunkDataContainer.java deleted file mode 100644 index b659f3192c..0000000000 --- a/src/main/java/com/gildedgames/aether/common/world/preparation/mask/ChunkDataContainer.java +++ /dev/null @@ -1,343 +0,0 @@ -package com.gildedgames.aether.common.world.preparation.mask; - -import com.gildedgames.aether.api.world.preparation.IChunkMaskTransformer; -import net.minecraft.block.state.IBlockState; -import net.minecraft.entity.Entity; -import net.minecraft.init.Blocks; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.BitArray; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.World; -import net.minecraft.world.biome.Biome; -import net.minecraft.world.chunk.BlockStateContainer; -import net.minecraft.world.chunk.Chunk; -import net.minecraft.world.chunk.storage.ExtendedBlockStorage; - -import java.util.ArrayList; -import java.util.Arrays; -import java.util.HashMap; - -public class ChunkDataContainer -{ - private final SegmentStorage[] segments = new SegmentStorage[16]; - - private final HashMap<BlockPos, TileEntity> tileEntities = new HashMap<>(); - - private final ArrayList<Entity> entities = new ArrayList<>(); - - private final int chunkX, chunkZ; - - private final boolean hasSkylight; - - private Biome[] biomesForGeneration; - - public ChunkDataContainer(int chunkX, int chunkZ, boolean hasSkylight) - { - this.chunkX = chunkX; - this.chunkZ = chunkZ; - this.hasSkylight = hasSkylight; - } - - public IBlockState getBlockState(final BlockPos pos) - { - return this.getBlockState(pos.getX(), pos.getY(), pos.getZ()); - } - - public IBlockState getBlockState(final int x, final int y, final int z) - { - SegmentStorage segment = this.segments[y >> 4]; - - if (segment == null) - { - return Blocks.AIR.getDefaultState(); - } - - return segment.blockStorage.get(x, y & 15, z); - } - - public void setBlockState(final int x, final int y, final int z, final IBlockState state) - { - SegmentStorage segment = this.segments[y >> 4]; - - if (segment == null) - { - this.segments[y >> 4] = segment = new SegmentStorage((y >> 4) * 16, this.hasSkylight); - } - - segment.blockStorage.set(x, y & 15, z, state); - - segment.opacity[x << 8 | z << 4 | (y & 15)] = (byte) state.getLightOpacity(); - } - - private int getBlockOpacity(int x, int y, int z) - { - SegmentStorage segment = this.segments[y >> 4]; - - if (segment == null) - { - return 0; - } - - return Byte.toUnsignedInt(segment.opacity[x << 8 | z << 4 | (y & 15)]); - } - - public void setBlockState(final BlockPos pos, final IBlockState state) - { - this.setBlockState(pos.getX(), pos.getY(), pos.getZ(), state); - } - - public TileEntity getTileEntity(BlockPos pos) - { - return this.tileEntities.get(pos); - } - - public void setTileEntity(BlockPos pos, TileEntity entity) - { - if (entity == null) - { - this.tileEntities.remove(pos); - } - else - { - entity.setPos(pos); - - this.tileEntities.put(pos, entity); - } - } - - public static ChunkDataContainer createFromMask(World world, ChunkMask mask, IChunkMaskTransformer transformer, int chunkX, int chunkZ) - { - ChunkDataContainer container = new ChunkDataContainer(chunkX, chunkZ, world.provider.hasSkyLight()); - - BlockStateCacher cacher = new BlockStateCacher(transformer); - - for (int chunkY = 0; chunkY < 32; chunkY++) - { - ChunkMaskSegment src = mask.getSegment(chunkY); - - if (src == null) - { - continue; - } - - SegmentStorage dest = container.segments[chunkY >> 1]; - - if (dest == null) - { - dest = new SegmentStorage((chunkY >> 1) << 4, world.provider.hasSkyLight()); - - container.segments[chunkY >> 1] = dest; - } - - ExtendedBlockStorage blockStorage = dest.blockStorage; - BitArray bitArray = blockStorage.data.storage; - - cacher.update(blockStorage.data); - - for (int x = 0; x < 16; x++) - { - for (int z = 0; z < 16; z++) - { - for (int y = 0, y2 = (chunkY & 0b1) * 8; y < 8; y++, y2++) - { - int block = src.getBlock(x, y, z); - - if (block == 0) - { - continue; - } - - int key = cacher.getValue(transformer, block); - - dest.opacity[x << 8 | z << 4 | y2] = 127; - - bitArray.setAt(y2 << 8 | z << 4 | x, key); - blockStorage.blockRefCount++; - } - } - } - } - - return container; - } - - public Chunk createChunk(World world, int chunkX, int chunkZ) - { - Chunk chunk = new Chunk(world, chunkX, chunkZ); - - for (int chunkY = 0; chunkY < 16; chunkY++) - { - SegmentStorage segment = this.segments[chunkY]; - - if (segment == null) - { - continue; - } - - chunk.getBlockStorageArray()[chunkY] = segment.blockStorage; - } - - for (TileEntity tileEntity : this.tileEntities.values()) - { - chunk.addTileEntity(tileEntity.getPos(), tileEntity); - } - - for (Entity entity : this.entities) - { - chunk.addEntity(entity); - } - - this.biomesForGeneration = world.getBiomeProvider().getBiomes(biomesForGeneration, chunkX * 16, chunkZ * 16, 16, 16); - - byte[] chunkBiomes = chunk.getBiomeArray(); - for (int i = 0; i < chunkBiomes.length; ++i) - { - chunkBiomes[i] = (byte) Biome.getIdForBiome(this.biomesForGeneration[i]); - } - - this.prepareChunkLighting(world, chunk); - - return chunk; - } - - private void prepareChunkLighting(World world, Chunk chunk) - { - int maxY = chunk.getTopFilledSegment(); - - chunk.heightMapMinimum = Integer.MAX_VALUE; - - for (int x = 0; x < 16; ++x) - { - for (int z = 0; z < 16; ++z) - { - chunk.precipitationHeightMap[x + (z << 4)] = -999; - - for (int y = maxY + 16; y > 0; --y) - { - if (this.getBlockOpacity(x, y - 1, z) != 0) - { - chunk.heightMap[z << 4 | x] = y; - - if (y < chunk.heightMapMinimum) - { - chunk.heightMapMinimum = y; - } - - break; - } - } - - if (world.provider.hasSkyLight()) - { - int light = 15; - - int y2 = maxY + 16 - 1; - - do - { - int opacity = this.getBlockOpacity(x, y2, z); - - if (opacity == 0 && light != 15) - { - opacity = 1; - } - - light -= opacity; - - if (light > 0) - { - ExtendedBlockStorage extendedblockstorage = chunk.getBlockStorageArray()[y2 >> 4]; - - if (extendedblockstorage != Chunk.NULL_BLOCK_STORAGE) - { - extendedblockstorage.setSkyLight(x, y2 & 15, z, light); - } - } - - --y2; - } - while (y2 > 0 && light > 0); - } - } - } - - chunk.markDirty(); - } - - public void addEntity(Entity entity) - { - this.entities.add(entity); - } - - public int getChunkX() - { - return this.chunkX; - } - - public int getChunkZ() - { - return this.chunkZ; - } - - private static class BlockStateCacher - { - private final int[] cache; - - private BlockStateContainer container; - - public BlockStateCacher(IChunkMaskTransformer transformer) - { - this.cache = new int[transformer.getBlockCount()]; - } - - public void update(BlockStateContainer container) - { - this.container = container; - - this.reset(); - } - - public int getValue(IChunkMaskTransformer transformer, int index) - { - if (this.container == null) - { - throw new IllegalStateException("Not yet initialized"); - } - - int state = this.cache[index]; - - if (state < 0) - { - int bits = this.container.bits; - - state = this.container.palette.idFor(transformer.getBlockState(index)); - - if (bits != this.container.bits) - { - this.reset(); - } - - this.cache[index] = state; - } - - return state; - } - - private void reset() - { - Arrays.fill(this.cache, -1); - } - } - - private static class SegmentStorage - { - private final ExtendedBlockStorage blockStorage; - - private final byte[] opacity = new byte[16 * 16 * 16]; - - public SegmentStorage(int y, boolean storeSkylight) - { - this.blockStorage = new ExtendedBlockStorage(y, storeSkylight); - } - } -} diff --git a/src/main/java/com/gildedgames/aether/common/world/preparation/mask/ChunkMask.java b/src/main/java/com/gildedgames/aether/common/world/preparation/mask/ChunkMask.java deleted file mode 100644 index ba4ad137b8..0000000000 --- a/src/main/java/com/gildedgames/aether/common/world/preparation/mask/ChunkMask.java +++ /dev/null @@ -1,146 +0,0 @@ -package com.gildedgames.aether.common.world.preparation.mask; - -import com.gildedgames.aether.api.world.preparation.IChunkMask; -import net.minecraft.block.state.IBlockState; -import net.minecraft.world.chunk.ChunkPrimer; - -/** - * Very minimal alternative to chunks for terrain generation. - * - * This allows mods with very expensive terrain generation to quickly compose the general structure of blocks - * inside a chunk without referring to specific block types or performing costly {@link IBlockState} operations. - * - * After the general structure has been created, a very quick conversion of the blocks contained in the mask can - * be performed to create a {@link ChunkPrimer}. - * - * Block 0 is assumed to always be air. - */ -public class ChunkMask implements IChunkMask -{ - private final ChunkMaskSegment[] segments = new ChunkMaskSegment[32]; - - private int maxY = Integer.MIN_VALUE, minY = Integer.MAX_VALUE; - - private boolean empty = true; - - private final int x, z; - - public ChunkMask(int x, int z) - { - this.x = x; - this.z = z; - } - - @Override - public void setBlock(int x, int y, int z, int b) - { - int chunkY = y >> 3; - - ChunkMaskSegment segment = this.segments[chunkY]; - - if (segment == null) - { - segment = new ChunkMaskSegment(); - - this.segments[chunkY] = segment; - - this.maxY = Math.max(chunkY, this.maxY); - this.minY = Math.min(chunkY, this.minY); - - this.empty = false; - } - - segment.setBlock(x, y & 7, z, b); - } - - @Override - public int getBlock(int x, int y, int z) - { - ChunkMaskSegment segment = this.segments[y >> 3]; - - if (segment == null) - { - return 0; - } - - return segment.getBlock(x, y & 7, z); - } - - @Override - public int getX() - { - return this.x; - } - - @Override - public int getZ() - { - return this.z; - } - - @Override - public ChunkMaskSegment getSegment(int y) - { - return this.segments[y]; - } - - @Override - public int getMaxYSegment() - { - return this.maxY; - } - - @Override - public int getMinYSegment() - { - return this.minY; - } - - @Override - public int getHighestBlock(int x, int z) - { - if (!this.empty) - { - for (int chunkY = this.maxY; chunkY >= this.minY; chunkY--) - { - ChunkMaskSegment segment = this.segments[chunkY]; - - if (segment == null) - { - continue; - } - - for (int y = 7; y >= 0; y--) - { - if (segment.getBlock(x, y, z) > 0) - { - return (chunkY * 8) + y; - } - } - } - } - - return -1; - } - - @Override - public void fill(int b) - { - for (int chunkY = 0; chunkY < 32; chunkY++) - { - ChunkMaskSegment segment = this.segments[chunkY]; - - if (segment == null) - { - this.segments[chunkY] = segment = new ChunkMaskSegment(); - } - - segment.fill(b); - } - - this.minY = 0; - this.maxY = 31; - - this.empty = false; - } -} diff --git a/src/main/java/com/gildedgames/aether/common/world/preparation/mask/ChunkMaskSegment.java b/src/main/java/com/gildedgames/aether/common/world/preparation/mask/ChunkMaskSegment.java deleted file mode 100644 index 60eee94106..0000000000 --- a/src/main/java/com/gildedgames/aether/common/world/preparation/mask/ChunkMaskSegment.java +++ /dev/null @@ -1,31 +0,0 @@ -package com.gildedgames.aether.common.world.preparation.mask; - -import com.gildedgames.aether.api.world.preparation.IChunkMaskSegment; - -import java.util.Arrays; - -/** - * 16x8x16 segment of ChunkMask blocks. - */ -public class ChunkMaskSegment implements IChunkMaskSegment -{ - private final byte[] blocks = new byte[16 * 8 * 16]; - - @Override - public void setBlock(int x, int y, int z, int b) - { - this.blocks[x << 7 | z << 3 | y] = (byte) b; - } - - @Override - public int getBlock(int x, int y, int z) - { - return this.blocks[x << 7 | z << 3 | y]; - } - - @Override - public void fill(int b) - { - Arrays.fill(this.blocks, (byte) b); - } -} diff --git a/src/main/java/com/gildedgames/aether/common/world/spawning/SpawnArea.java b/src/main/java/com/gildedgames/aether/common/world/spawning/SpawnArea.java deleted file mode 100644 index a9a1532a72..0000000000 --- a/src/main/java/com/gildedgames/aether/common/world/spawning/SpawnArea.java +++ /dev/null @@ -1,170 +0,0 @@ -package com.gildedgames.aether.common.world.spawning; - -import com.gildedgames.aether.api.world.spawn.ISpawnArea; -import com.gildedgames.aether.common.AetherCore; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.util.math.ChunkPos; -import org.apache.commons.lang3.builder.HashCodeBuilder; - -import java.util.Objects; - -public class SpawnArea implements ISpawnArea -{ - private final ChunkPos min; - - private final ChunkPos max; - - private final int areaX; - - private final int areaZ; - - private int entityCount; - - private boolean hasPlayerInside; - - private boolean dirty = false; - - public SpawnArea(final int chunkArea, final int areaX, final int areaZ) - { - this.min = new ChunkPos(areaX * chunkArea, areaZ * chunkArea); - this.max = new ChunkPos(this.min.x + chunkArea, this.min.z + chunkArea); - - this.areaX = areaX; - this.areaZ = areaZ; - } - - @Override - public ChunkPos getMinChunkPos() - { - return this.min; - } - - @Override - public ChunkPos getMaxChunkPos() - { - return this.max; - } - - @Override - public int getAreaX() - { - return this.areaX; - } - - @Override - public int getAreaZ() - { - return this.areaZ; - } - - @Override - public void addToEntityCount(final int count) - { - int entityCount = this.entityCount; - entityCount += count; - - if (entityCount < 0) - { - AetherCore.LOGGER - .warn("Something has gone horribly wrong! The entity count in a SpawnArea object has become negative. Please warn the devs so they can fix this bug."); - } - - this.entityCount = Math.max(0, entityCount); - - this.markDirty(); - } - - @Override - public int getEntityCount() - { - return this.entityCount; - } - - @Override - public void setEntityCount(int entityCount) - { - this.entityCount = entityCount; - - this.markDirty(); - } - - @Override - public boolean hasPlayerInside() - { - return this.hasPlayerInside; - } - - @Override - public void setInPlayersRenderDistance(final boolean flag) - { - this.hasPlayerInside = flag; - } - - @Override - public boolean isDirty() - { - return this.dirty; - } - - @Override - public void markDirty() - { - this.dirty = true; - } - - @Override - public void markClean() - { - this.dirty = false; - } - - @Override - public boolean equals(Object o) - { - if (this == o) - { - return true; - } - - if (o == null || this.getClass() != o.getClass()) - { - return false; - } - - SpawnArea area = (SpawnArea) o; - - return this.areaX == area.areaX && - this.areaZ == area.areaZ && - this.entityCount == area.entityCount && - this.hasPlayerInside == area.hasPlayerInside && - this.dirty == area.dirty && - Objects.equals(this.min, area.min) && - Objects.equals(this.max, area.max); - } - - @Override - - public int hashCode() - { - final HashCodeBuilder builder = new HashCodeBuilder(); - builder.append(this.min); - builder.append(this.max); - - return builder.toHashCode(); - } - - @Override - public NBTTagCompound serializeNBT() - { - NBTTagCompound nbt = new NBTTagCompound(); - nbt.setInteger("EntityCount", this.entityCount); - - return nbt; - } - - @Override - public void deserializeNBT(NBTTagCompound nbt) - { - this.entityCount = nbt.getInteger("EntityCount"); - } -} diff --git a/src/main/java/com/gildedgames/aether/common/world/spawning/SpawnAreaManager.java b/src/main/java/com/gildedgames/aether/common/world/spawning/SpawnAreaManager.java deleted file mode 100644 index 8f784fa680..0000000000 --- a/src/main/java/com/gildedgames/aether/common/world/spawning/SpawnAreaManager.java +++ /dev/null @@ -1,254 +0,0 @@ -package com.gildedgames.aether.common.world.spawning; - -import com.gildedgames.aether.api.entity.spawning.EntitySpawn; -import com.gildedgames.aether.api.entity.spawning.ISpawningInfo; -import com.gildedgames.aether.api.registrar.CapabilitiesAether; -import com.gildedgames.aether.api.world.spawn.ISpawnArea; -import com.gildedgames.aether.api.world.spawn.ISpawnAreaManager; -import com.gildedgames.aether.api.world.spawn.ISpawnHandler; -import com.gildedgames.aether.common.AetherCore; -import com.gildedgames.orbis.lib.OrbisLib; -import com.gildedgames.orbis.lib.util.ChunkMap; -import com.gildedgames.orbis.lib.world.data.IWorldDataManager; -import com.google.common.collect.Lists; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.nbt.CompressedStreamTools; -import net.minecraft.nbt.NBTBase; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.util.EnumFacing; -import net.minecraft.util.ResourceLocation; -import net.minecraft.util.math.MathHelper; -import net.minecraft.world.World; -import net.minecraftforge.common.capabilities.Capability; -import net.minecraftforge.event.entity.living.LivingDeathEvent; - -import javax.annotation.Nullable; -import java.io.*; -import java.util.Collection; -import java.util.HashSet; -import java.util.List; - -public class SpawnAreaManager implements ISpawnAreaManager -{ - private final IWorldDataManager dataManager; - - private final ChunkMap<ISpawnArea> loadedAreas = new ChunkMap<>(); - - private final HashSet<ISpawnArea> dirty = new HashSet<>(); - - private final World world; - - private final ISpawnHandler handler; - - public SpawnAreaManager(World world, ISpawnHandler handler) - { - this.world = world; - this.handler = handler; - - this.dataManager = OrbisLib.services().getWorldDataManager(world); - } - - private boolean isLoaded(int chunkX, int chunkZ) - { - return this.loadedAreas.containsKey(chunkX, chunkZ); - } - - private ISpawnArea loadArea(final int areaX, final int areaZ) - { - if (this.isLoaded(areaX, areaZ)) - { - return this.getLoadedArea(areaX, areaZ); - } - - ISpawnArea area = this.fetchArea(areaX, areaZ); - - if (area == null) - { - area = new SpawnArea(this.handler.getChunkArea(), areaX, areaZ); - area.markDirty(); - } - - this.loadedAreas.put(areaX, areaZ, area); - - return area; - } - - private ISpawnArea fetchArea(int areaX, int areaZ) - { - if (this.isLoaded(areaX, areaZ)) - { - return this.getLoadedArea(areaX, areaZ); - } - - final String areaID = this.createAreaID(areaX, areaZ); - - try - { - byte[] bytes = this.dataManager.readBytes(this, areaID); - - if (bytes != null) - { - try (ByteArrayInputStream in = new ByteArrayInputStream(bytes)) - { - try (DataInputStream dataIn = new DataInputStream(in)) - { - NBTTagCompound tag = CompressedStreamTools.read(dataIn); - - SpawnArea area = new SpawnArea(this.handler.getChunkArea(), areaX, areaZ); - area.deserializeNBT(tag); - - return area; - } - } - } - } - catch (Exception e) - { - AetherCore.LOGGER.warn("Failed to fetch spawn area", e); - } - - return null; - } - - @Override - public World getWorld() - { - return this.world; - } - - @Override - public void tick() - { - for (final ISpawnArea area : this.getLoaded()) - { - area.setInPlayersRenderDistance(false); - } - - for (final EntityPlayer player : this.world.playerEntities) - { - final int chunkX = MathHelper.floor(player.posX) >> 4; - final int chunkZ = MathHelper.floor(player.posZ) >> 4; - - final int centerAreaX = chunkX / this.handler.getChunkArea(); - final int centerAreaZ = chunkZ / this.handler.getChunkArea(); - - for (int areaX = centerAreaX - 1; areaX <= centerAreaX + 1; areaX++) - { - for (int areaZ = centerAreaZ - 1; areaZ <= centerAreaZ + 1; areaZ++) - { - ISpawnArea area = this.loadArea(areaX, areaZ); - area.setInPlayersRenderDistance(true); - } - } - } - - final List<ISpawnArea> areasToRemove = Lists.newArrayList(); - - for (ISpawnArea area : this.getLoaded()) - { - if (!area.hasPlayerInside()) - { - areasToRemove.add(area); - } - - if (area.isDirty()) - { - this.dirty.add(area); - } - } - - for (ISpawnArea area : areasToRemove) - { - this.loadedAreas.remove(area.getAreaX(), area.getAreaZ()); - } - } - - @Override - public Collection<ISpawnArea> getLoaded() - { - return this.loadedAreas.getValues(); - } - - private String createAreaID(int areaX, int areaZ) - { - return this.handler.getUniqueID() + "/" + areaX + "_" + areaZ + ".nbt"; - } - - @Override - public ResourceLocation getName() - { - return AetherCore.getResource("spawn_areas"); - } - - @Override - public void flush() - { - for (ISpawnArea area : this.dirty) - { - final String areaID = this.createAreaID(area.getAreaX(), area.getAreaZ()); - - final NBTTagCompound tag = area.serializeNBT(); - - try (ByteArrayOutputStream stream = new ByteArrayOutputStream()) - { - try (DataOutputStream dataOut = new DataOutputStream(stream)) - { - CompressedStreamTools.write(tag, dataOut); - } - - stream.flush(); - - this.dataManager.writeBytes(this, areaID, stream.toByteArray()); - } - catch (IOException e) - { - AetherCore.LOGGER.warn("Failed to write spawn area", e); - } - - area.markClean(); - } - - this.dirty.clear(); - } - - @Override - public ISpawnArea getLoadedArea(int areaX, int areaZ) - { - return this.loadedAreas.get(areaX, areaZ); - } - - @Override - public void onLivingDeath(LivingDeathEvent event) - { - final ISpawningInfo spawningInfo = event.getEntityLiving().getCapability(CapabilitiesAether.ENTITY_SPAWNING_INFO, null); - - final EntitySpawn area = spawningInfo.getSpawnArea(); - - if (area == null) - { - return; - } - - if (area.getSpawnHandlerUniqueID().equals(this.handler.getUniqueID())) - { - final ISpawnArea fetchedArea = this.fetchArea(area.getAreaX(), area.getAreaZ()); - fetchedArea.addToEntityCount(-1); - } - } - - public class Storage implements Capability.IStorage<SpawnAreaManager> - { - @Nullable - @Override - public NBTBase writeNBT(Capability<SpawnAreaManager> capability, SpawnAreaManager instance, EnumFacing side) - { - return null; - } - - @Override - public void readNBT(Capability<SpawnAreaManager> capability, SpawnAreaManager instance, EnumFacing side, NBTBase nbt) - { - - } - } -} diff --git a/src/main/java/com/gildedgames/aether/common/world/spawning/SpawnEntry.java b/src/main/java/com/gildedgames/aether/common/world/spawning/SpawnEntry.java deleted file mode 100644 index c49888b8fd..0000000000 --- a/src/main/java/com/gildedgames/aether/common/world/spawning/SpawnEntry.java +++ /dev/null @@ -1,95 +0,0 @@ -package com.gildedgames.aether.common.world.spawning; - -import com.gildedgames.aether.api.world.spawn.IPositionSelector; -import com.gildedgames.aether.api.world.spawn.ISpawnEntry; -import com.gildedgames.aether.api.world.spawn.conditions.IConditionPosition; -import com.gildedgames.aether.common.world.spawning.util.GroundPositionSelector; -import com.google.common.collect.Lists; -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLiving; - -import java.util.Collections; -import java.util.List; - -public class SpawnEntry implements ISpawnEntry -{ - - private final IPositionSelector positionSelector; - - private final EntityLiving.SpawnPlacementType placementType; - - private final Class<? extends Entity> clazz; - - private final int minGroupSize, maxGroupSize; - - private final float rarityWeight; - - private final List<IConditionPosition> conditions = Lists.newArrayList(); - - public SpawnEntry(EntityLiving.SpawnPlacementType placementType, Class<? extends Entity> clazz, float rarityWeight, int minGroupSize, int maxGroupSize) - { - this(placementType, clazz, rarityWeight, minGroupSize, maxGroupSize, new GroundPositionSelector()); - } - - public SpawnEntry(EntityLiving.SpawnPlacementType placementType, Class<? extends Entity> clazz, float rarityWeight, int minGroupSize, int maxGroupSize, - IPositionSelector heightSelector) - { - this.placementType = placementType; - this.clazz = clazz; - this.rarityWeight = rarityWeight; - this.minGroupSize = minGroupSize; - this.maxGroupSize = maxGroupSize; - this.positionSelector = heightSelector; - } - - @Override - public EntityLiving.SpawnPlacementType getPlacementType() - { - return this.placementType; - } - - @Override - public SpawnEntry addCondition(IConditionPosition condition) - { - this.conditions.add(condition); - - return this; - } - - @Override - public List<IConditionPosition> getConditions() - { - return Collections.unmodifiableList(this.conditions); - } - - @Override - public Class<? extends Entity> getEntityClass() - { - return this.clazz; - } - - @Override - public int getMinGroupSize() - { - return this.minGroupSize; - } - - @Override - public int getMaxGroupSize() - { - return this.maxGroupSize; - } - - @Override - public float getRarityWeight() - { - return this.rarityWeight; - } - - @Override - public IPositionSelector getPositionSelector() - { - return this.positionSelector; - } - -} diff --git a/src/main/java/com/gildedgames/aether/common/world/spawning/SpawnHandler.java b/src/main/java/com/gildedgames/aether/common/world/spawning/SpawnHandler.java deleted file mode 100644 index 880de4b257..0000000000 --- a/src/main/java/com/gildedgames/aether/common/world/spawning/SpawnHandler.java +++ /dev/null @@ -1,362 +0,0 @@ -package com.gildedgames.aether.common.world.spawning; - -import com.gildedgames.aether.api.entity.spawning.EntitySpawn; -import com.gildedgames.aether.api.entity.spawning.ISpawningInfo; -import com.gildedgames.aether.api.registrar.CapabilitiesAether; -import com.gildedgames.aether.api.world.spawn.ISpawnArea; -import com.gildedgames.aether.api.world.spawn.ISpawnAreaManager; -import com.gildedgames.aether.api.world.spawn.ISpawnEntry; -import com.gildedgames.aether.api.world.spawn.ISpawnHandler; -import com.gildedgames.aether.api.world.spawn.conditions.IConditionPosition; -import com.gildedgames.aether.api.world.spawn.conditions.IConditionWorld; -import com.gildedgames.aether.common.AetherCore; -import com.gildedgames.orbis.lib.OrbisLib; -import com.google.common.collect.Lists; -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLiving; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.IEntityLivingData; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.MathHelper; -import net.minecraft.world.World; -import net.minecraft.world.WorldEntitySpawner; -import net.minecraft.world.WorldServer; -import net.minecraftforge.event.ForgeEventFactory; -import net.minecraftforge.event.entity.living.LivingDeathEvent; - -import java.lang.reflect.Constructor; -import java.util.List; - -public class SpawnHandler implements ISpawnHandler -{ - private final String uniqueID; - - private final List<IConditionWorld> worldConditions = Lists.newArrayList(); - - private final List<IConditionPosition> posConditions = Lists.newArrayList(); - - private final List<ISpawnEntry> entries = Lists.newArrayList(); - - private ISpawnAreaManager access; - - private int targetEntityCountPerArea, chunkArea = 1, updateFrequencyInTicks = 20; - - public SpawnHandler(String uniqueID) - { - this.uniqueID = uniqueID; - } - - public static boolean isNotColliding(EntityLiving.SpawnPlacementType placementType, final World world, final Entity entity) - { - return (placementType == EntityLiving.SpawnPlacementType.IN_AIR || WorldEntitySpawner - .canCreatureTypeSpawnAtLocation(placementType, world, entity.getPosition())) - && world.getCollisionBoxes(entity, entity.getEntityBoundingBox()).isEmpty() - && world.checkNoEntityCollision(entity.getEntityBoundingBox(), entity); - } - - @Override - public void init(World world) - { - this.access = new SpawnAreaManager(world, this); - - OrbisLib.services().getWorldDataManager(world).register(this.access); - } - - @Override - public String getUniqueID() - { - return this.uniqueID; - } - - @Override - public SpawnHandler targetEntityCountPerArea(final int targetEntityCountPerArea) - { - this.targetEntityCountPerArea = targetEntityCountPerArea; - - return this; - } - - @Override - public SpawnHandler chunkArea(final int chunkArea) - { - this.chunkArea = chunkArea; - - return this; - } - - @Override - public SpawnHandler updateFrequencyInTicks(final int updateFrequencyInTicks) - { - this.updateFrequencyInTicks = updateFrequencyInTicks; - - return this; - } - - @Override - public <T extends IConditionWorld> SpawnHandler addWorldCondition(final T condition) - { - this.worldConditions.add(condition); - - return this; - } - - @Override - public <T extends IConditionPosition> SpawnHandler condition(final T condition) - { - this.posConditions.add(condition); - - return this; - } - - @Override - public void addEntry(final ISpawnEntry entry) - { - this.entries.add(entry); - } - - @Override - public void tick() - { - this.access.tick(); - - World world = this.access.getWorld(); - - if (this.updateFrequencyInTicks != 0 && world.getWorldTime() % this.updateFrequencyInTicks != 0) - { - return; - } - - for (final IConditionWorld condition : this.worldConditions) - { - if (!condition.isMet(world)) - { - return; - } - } - - try - { - this.checkAndSpawnEntries(this.access); - } - catch (Exception e) - { - AetherCore.LOGGER.warn("Failed to check and spawn entries", e); - } - } - - @Override - public int getChunkArea() - { - return this.chunkArea; - } - - @Override - public void onLivingDeath(LivingDeathEvent event) - { - this.access.onLivingDeath(event); - } - - private ISpawnEntry getWeightedEntry() - { - int maxRoll = 0; - int roll; - - final List<ISpawnEntry> table = Lists.newArrayList(); - - for (final ISpawnEntry entry : this.entries) - { - table.add(entry); - - maxRoll += entry.getRarityWeight(); - } - - if (table.size() == 0) - { - return null; - } - - roll = (int) (Math.random() * maxRoll); - - for (final ISpawnEntry entry : table) - { - // return element if roll < weight - if (roll < entry.getRarityWeight()) - { - return entry; - } - - // otherwise, subtract weight before moving on - roll -= entry.getRarityWeight(); - } - - return null; - } - - private void checkAndSpawnEntries(ISpawnAreaManager manager) throws ReflectiveOperationException - { - IEntityLivingData livingData = null; - - final int areaInBlocks = this.chunkArea * 16; - - for (ISpawnArea area : manager.getLoaded()) - { - while (area.getEntityCount() < this.targetEntityCountPerArea) - { - ISpawnEntry entry = this.getWeightedEntry(); - - if (entry == null) - { - break; - } - - int dif = entry.getMaxGroupSize() - entry.getMinGroupSize(); - - int randSize = dif > 0 ? manager.getWorld().rand.nextInt(dif) : 0; - - int groupSize = entry.getMinGroupSize() + randSize; - - if (area.getEntityCount() + groupSize > this.targetEntityCountPerArea) - { - break; - } - - int minX = (area.getMinChunkPos().x) * 16; - int minZ = (area.getMinChunkPos().z) * 16; - - int groupPosX = minX + manager.getWorld().rand.nextInt(areaInBlocks); - int groupPosZ = minZ + manager.getWorld().rand.nextInt(areaInBlocks); - - int attempts = 0; - - int MAX_ATTEMPTS = 100; - - inner: - - for (int count = 0; count < groupSize; count++) - { - int scatterX = - (manager.getWorld().rand.nextBoolean() ? 1 : -1) * (1 + manager.getWorld().rand - .nextInt(entry.getPositionSelector().getScatter(manager.getWorld()))); - int scatterZ = - (manager.getWorld().rand.nextBoolean() ? 1 : -1) * (1 + manager.getWorld().rand - .nextInt(entry.getPositionSelector().getScatter(manager.getWorld()))); - - int posX = MathHelper.floor( groupPosX + scatterX); - int posZ = MathHelper.floor( groupPosZ + scatterZ); - - if (!manager.getWorld().isBlockLoaded(new BlockPos(posX, 0, posZ))) - { - if (attempts < MAX_ATTEMPTS) - { - attempts++; - count--; - } - - continue; - } - - int posY = entry.getPositionSelector().getPosY(manager.getWorld(), posX, posZ); - - BlockPos spawnAt = new BlockPos(posX, posY, posZ); - - if (manager.getWorld().isAnyPlayerWithinRangeAt(posX, posY, posZ, 24.0D)) - { - if (attempts < MAX_ATTEMPTS) - { - attempts++; - count--; - } - - continue; - } - - for (IConditionPosition condition : this.posConditions) - { - if (!condition.isMet(manager.getWorld(), spawnAt, spawnAt.down())) - { - if (attempts < MAX_ATTEMPTS) - { - attempts++; - count--; - } - - continue inner; - } - } - - for (IConditionPosition condition : entry.getConditions()) - { - if (!condition.isMet(manager.getWorld(), spawnAt, spawnAt.down())) - { - if (attempts < MAX_ATTEMPTS) - { - attempts++; - count--; - } - - continue inner; - } - } - - Constructor<?> constructor = entry.getEntityClass().getConstructor(World.class); - - Entity entity = (Entity) constructor.newInstance(manager.getWorld()); - entity.setLocationAndAngles(posX + 0.5F, posY, posZ + 0.5F, manager.getWorld().rand.nextFloat() * 360.0F, 0.0F); - - if (entity instanceof EntityLivingBase) - { - EntityLivingBase entityliving = (EntityLivingBase) entity; - - entityliving.rotationYawHead = entityliving.rotationYaw; - entityliving.renderYawOffset = entityliving.rotationYaw; - } - - if (SpawnHandler.isNotColliding(entry.getPlacementType(), manager.getWorld(), entity)) - { - if (entity instanceof EntityLiving) - { - EntityLiving living = (EntityLiving) entity; - - if (!ForgeEventFactory.doSpecialSpawn(living, manager.getWorld(), posX, posY, posZ, null)) - { - living.onInitialSpawn(manager.getWorld().getDifficultyForLocation(new BlockPos(living)), null); - } - } - - ISpawningInfo info = entity.getCapability(CapabilitiesAether.ENTITY_SPAWNING_INFO, null); - info.setSpawnArea(new EntitySpawn(this.uniqueID, manager.getWorld().provider.getDimension(), area.getAreaX(), area.getAreaZ())); - - area.addToEntityCount(1); - - manager.getWorld().spawnEntity(entity); - - if (manager.getWorld() instanceof WorldServer) - { - manager.getWorld().updateEntityWithOptionalForce(entity, true); - } - - if (entity instanceof EntityLiving) - { - livingData = ((EntityLiving) entity).onInitialSpawn(manager.getWorld().getDifficultyForLocation(new BlockPos(entity)), livingData); - } - } - else - { - if (attempts < MAX_ATTEMPTS) - { - attempts++; - count--; - } - - entity.setDead(); - } - } - - if (attempts >= MAX_ATTEMPTS) - { - break; - } - } - } - } -} diff --git a/src/main/java/com/gildedgames/aether/common/world/spawning/SpawnSystem.java b/src/main/java/com/gildedgames/aether/common/world/spawning/SpawnSystem.java deleted file mode 100644 index 6050db1867..0000000000 --- a/src/main/java/com/gildedgames/aether/common/world/spawning/SpawnSystem.java +++ /dev/null @@ -1,75 +0,0 @@ -package com.gildedgames.aether.common.world.spawning; - -import com.gildedgames.aether.api.world.spawn.ISpawnHandler; -import com.gildedgames.aether.api.world.spawn.ISpawnSystem; -import net.minecraft.nbt.NBTBase; -import net.minecraft.util.EnumFacing; -import net.minecraft.world.World; -import net.minecraftforge.common.capabilities.Capability; - -import javax.annotation.Nullable; -import java.util.ArrayList; -import java.util.Collection; -import java.util.Collections; - -public class SpawnSystem implements ISpawnSystem -{ - private final Collection<ISpawnHandler> handlers; - - private final World world; - - private boolean hasInit; - - public SpawnSystem() - { - this.world = null; - this.handlers = new ArrayList<>(); - } - - public SpawnSystem(World world, Collection<ISpawnHandler> handler) - { - this.world = world; - this.handlers = Collections.unmodifiableCollection(new ArrayList<>(handler)); - } - - @Override - public Collection<ISpawnHandler> getSpawnHandlers() - { - return this.handlers; - } - - @Override - public void tick() - { - if (!this.hasInit) - { - for (ISpawnHandler handler : this.handlers) - { - handler.init(this.world); - } - - this.hasInit = true; - } - - for (ISpawnHandler handler : this.handlers) - { - handler.tick(); - } - } - - public static class Storage implements Capability.IStorage<ISpawnSystem> - { - @Nullable - @Override - public NBTBase writeNBT(Capability<ISpawnSystem> capability, ISpawnSystem instance, EnumFacing side) - { - return null; - } - - @Override - public void readNBT(Capability<ISpawnSystem> capability, ISpawnSystem instance, EnumFacing side, NBTBase nbt) - { - - } - } -} diff --git a/src/main/java/com/gildedgames/aether/common/world/spawning/SpawnSystemProvider.java b/src/main/java/com/gildedgames/aether/common/world/spawning/SpawnSystemProvider.java deleted file mode 100644 index 539f3da8d3..0000000000 --- a/src/main/java/com/gildedgames/aether/common/world/spawning/SpawnSystemProvider.java +++ /dev/null @@ -1,39 +0,0 @@ -package com.gildedgames.aether.common.world.spawning; - -import com.gildedgames.aether.api.registrar.CapabilitiesAether; -import com.gildedgames.aether.api.world.spawn.ISpawnSystem; -import net.minecraft.util.EnumFacing; -import net.minecraftforge.common.capabilities.Capability; -import net.minecraftforge.common.capabilities.ICapabilityProvider; - -import javax.annotation.Nonnull; -import javax.annotation.Nullable; - -public class SpawnSystemProvider implements ICapabilityProvider -{ - private final ISpawnSystem system; - - public SpawnSystemProvider(ISpawnSystem system) - { - this.system = system; - } - - @Override - public boolean hasCapability(@Nonnull Capability<?> capability, @Nullable EnumFacing facing) - { - return capability == CapabilitiesAether.SPAWN_SYSTEM; - } - - @SuppressWarnings("unchecked") - @Nullable - @Override - public <T> T getCapability(@Nonnull Capability<T> capability, @Nullable EnumFacing facing) - { - if (this.hasCapability(capability, facing)) - { - return (T) this.system; - } - - return null; - } -} diff --git a/src/main/java/com/gildedgames/aether/common/world/spawning/conditions/CheckBannedBiomes.java b/src/main/java/com/gildedgames/aether/common/world/spawning/conditions/CheckBannedBiomes.java deleted file mode 100644 index c338308982..0000000000 --- a/src/main/java/com/gildedgames/aether/common/world/spawning/conditions/CheckBannedBiomes.java +++ /dev/null @@ -1,37 +0,0 @@ -package com.gildedgames.aether.common.world.spawning.conditions; - -import com.gildedgames.aether.api.world.spawn.conditions.IConditionPosition; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.World; -import net.minecraft.world.biome.Biome; - -public class CheckBannedBiomes implements IConditionPosition -{ - - private final Biome[] bannedBiomes; - - public CheckBannedBiomes(Biome... bannedBiomes) - { - this.bannedBiomes = bannedBiomes; - } - - @Override - public boolean isMet(World world, BlockPos spawnAt, BlockPos underneath) - { - Biome biome = world.getBiome(spawnAt); - - if (this.bannedBiomes != null) - { - for (Biome banned : this.bannedBiomes) - { - if (banned == biome) - { - return false; - } - } - } - - return true; - } - -} diff --git a/src/main/java/com/gildedgames/aether/common/world/spawning/conditions/CheckBiome.java b/src/main/java/com/gildedgames/aether/common/world/spawning/conditions/CheckBiome.java deleted file mode 100644 index 576a07be11..0000000000 --- a/src/main/java/com/gildedgames/aether/common/world/spawning/conditions/CheckBiome.java +++ /dev/null @@ -1,24 +0,0 @@ -package com.gildedgames.aether.common.world.spawning.conditions; - -import com.gildedgames.aether.api.world.spawn.conditions.IConditionPosition; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.World; -import net.minecraft.world.biome.Biome; - -public class CheckBiome implements IConditionPosition -{ - - private final Biome biomeToCheckFor; - - public CheckBiome(Biome biomeToCheckFor) - { - this.biomeToCheckFor = biomeToCheckFor; - } - - @Override - public boolean isMet(World world, BlockPos spawnAt, BlockPos underneath) - { - return world.getBiome(spawnAt) == this.biomeToCheckFor; - } - -} diff --git a/src/main/java/com/gildedgames/aether/common/world/spawning/conditions/CheckBlockAtPosition.java b/src/main/java/com/gildedgames/aether/common/world/spawning/conditions/CheckBlockAtPosition.java deleted file mode 100644 index 8069cb1eef..0000000000 --- a/src/main/java/com/gildedgames/aether/common/world/spawning/conditions/CheckBlockAtPosition.java +++ /dev/null @@ -1,35 +0,0 @@ -package com.gildedgames.aether.common.world.spawning.conditions; - -import com.gildedgames.aether.api.world.spawn.conditions.IConditionPosition; -import net.minecraft.block.Block; -import net.minecraft.block.state.IBlockState; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.World; - -public class CheckBlockAtPosition implements IConditionPosition -{ - - private final Block[] blocksToCheckFor; - - public CheckBlockAtPosition(Block... blocksToCheckFor) - { - this.blocksToCheckFor = blocksToCheckFor; - } - - @Override - public boolean isMet(World world, BlockPos spawnAt, BlockPos underneath) - { - for (Block block : this.blocksToCheckFor) - { - IBlockState check = world.getBlockState(spawnAt); - - if (block == check.getBlock()) - { - return true; - } - } - - return false; - } - -} diff --git a/src/main/java/com/gildedgames/aether/common/world/spawning/conditions/CheckBlockStateUnderneath.java b/src/main/java/com/gildedgames/aether/common/world/spawning/conditions/CheckBlockStateUnderneath.java deleted file mode 100644 index 8897c4fbb7..0000000000 --- a/src/main/java/com/gildedgames/aether/common/world/spawning/conditions/CheckBlockStateUnderneath.java +++ /dev/null @@ -1,34 +0,0 @@ -package com.gildedgames.aether.common.world.spawning.conditions; - -import com.gildedgames.aether.api.world.spawn.conditions.IConditionPosition; -import net.minecraft.block.state.IBlockState; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.World; - -public class CheckBlockStateUnderneath implements IConditionPosition -{ - - private final IBlockState[] statesToCheckFor; - - public CheckBlockStateUnderneath(IBlockState... statesToCheckFor) - { - this.statesToCheckFor = statesToCheckFor; - } - - @Override - public boolean isMet(World world, BlockPos spawnAt, BlockPos underneath) - { - for (IBlockState state : this.statesToCheckFor) - { - IBlockState check = world.getBlockState(underneath); - - if (state == check) - { - return true; - } - } - - return false; - } - -} diff --git a/src/main/java/com/gildedgames/aether/common/world/spawning/conditions/CheckBlockUnderneath.java b/src/main/java/com/gildedgames/aether/common/world/spawning/conditions/CheckBlockUnderneath.java deleted file mode 100644 index 0787e70453..0000000000 --- a/src/main/java/com/gildedgames/aether/common/world/spawning/conditions/CheckBlockUnderneath.java +++ /dev/null @@ -1,35 +0,0 @@ -package com.gildedgames.aether.common.world.spawning.conditions; - -import com.gildedgames.aether.api.world.spawn.conditions.IConditionPosition; -import net.minecraft.block.Block; -import net.minecraft.block.state.IBlockState; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.World; - -public class CheckBlockUnderneath implements IConditionPosition -{ - - private final Block[] blocksToCheckFor; - - public CheckBlockUnderneath(Block... blocksToCheckFor) - { - this.blocksToCheckFor = blocksToCheckFor; - } - - @Override - public boolean isMet(World world, BlockPos spawnAt, BlockPos underneath) - { - for (Block block : this.blocksToCheckFor) - { - IBlockState check = world.getBlockState(underneath); - - if (block == check.getBlock()) - { - return true; - } - } - - return false; - } - -} diff --git a/src/main/java/com/gildedgames/aether/common/world/spawning/conditions/CheckDimension.java b/src/main/java/com/gildedgames/aether/common/world/spawning/conditions/CheckDimension.java deleted file mode 100644 index ee16593a6e..0000000000 --- a/src/main/java/com/gildedgames/aether/common/world/spawning/conditions/CheckDimension.java +++ /dev/null @@ -1,30 +0,0 @@ -package com.gildedgames.aether.common.world.spawning.conditions; - -import com.gildedgames.aether.api.world.spawn.conditions.IConditionPosition; -import com.gildedgames.aether.api.world.spawn.conditions.IConditionWorld; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.DimensionType; -import net.minecraft.world.World; - -public class CheckDimension implements IConditionPosition, IConditionWorld -{ - - private final DimensionType dimensionTypeToCheckFor; - - public CheckDimension(DimensionType dimensionTypeToCheckFor) - { - this.dimensionTypeToCheckFor = dimensionTypeToCheckFor; - } - - @Override - public boolean isMet(World world, BlockPos spawnAt, BlockPos underneath) - { - return this.isMet(world); - } - - @Override - public boolean isMet(World world) - { - return world.provider.getDimensionType() == this.dimensionTypeToCheckFor; - } -} diff --git a/src/main/java/com/gildedgames/aether/common/world/spawning/conditions/CheckIsUnderground.java b/src/main/java/com/gildedgames/aether/common/world/spawning/conditions/CheckIsUnderground.java deleted file mode 100644 index bb58221352..0000000000 --- a/src/main/java/com/gildedgames/aether/common/world/spawning/conditions/CheckIsUnderground.java +++ /dev/null @@ -1,20 +0,0 @@ -package com.gildedgames.aether.common.world.spawning.conditions; - -import com.gildedgames.aether.api.world.spawn.conditions.IConditionPosition; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.World; - -public class CheckIsUnderground implements IConditionPosition -{ - - public CheckIsUnderground() - { - - } - - @Override - public boolean isMet(World world, BlockPos spawnAt, BlockPos underneath) - { - return world.getTopSolidOrLiquidBlock(spawnAt).getY() > spawnAt.getY(); - } -} diff --git a/src/main/java/com/gildedgames/aether/common/world/spawning/conditions/CheckLightLevel.java b/src/main/java/com/gildedgames/aether/common/world/spawning/conditions/CheckLightLevel.java deleted file mode 100644 index 10f5918fb5..0000000000 --- a/src/main/java/com/gildedgames/aether/common/world/spawning/conditions/CheckLightLevel.java +++ /dev/null @@ -1,22 +0,0 @@ -package com.gildedgames.aether.common.world.spawning.conditions; - -import com.gildedgames.aether.api.world.spawn.conditions.IConditionPosition; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.World; - -public class CheckLightLevel implements IConditionPosition -{ - - protected final int lightLevel; - - public CheckLightLevel(int lightLevel) - { - this.lightLevel = lightLevel; - } - - @Override - public boolean isMet(World world, BlockPos spawnAt, BlockPos underneath) - { - return world.getLightFromNeighbors(spawnAt) <= this.lightLevel; - } -} diff --git a/src/main/java/com/gildedgames/aether/common/world/spawning/conditions/CheckTime.java b/src/main/java/com/gildedgames/aether/common/world/spawning/conditions/CheckTime.java deleted file mode 100644 index fcfe3eb474..0000000000 --- a/src/main/java/com/gildedgames/aether/common/world/spawning/conditions/CheckTime.java +++ /dev/null @@ -1,35 +0,0 @@ -package com.gildedgames.aether.common.world.spawning.conditions; - -import com.gildedgames.aether.api.world.spawn.conditions.IConditionPosition; -import com.gildedgames.aether.api.world.spawn.conditions.IConditionWorld; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.World; - -public class CheckTime implements IConditionPosition, IConditionWorld -{ - - private final Time time; - - public CheckTime(Time time) - { - this.time = time; - } - - @Override - public boolean isMet(World world, BlockPos spawnAt, BlockPos underneath) - { - return this.isMet(world); - } - - @Override - public boolean isMet(World world) - { - return (this.time == Time.DAY) == world.isDaytime(); - } - - public enum Time - { - DAY, NIGHT - } - -} diff --git a/src/main/java/com/gildedgames/aether/common/world/spawning/util/FlyingPositionSelector.java b/src/main/java/com/gildedgames/aether/common/world/spawning/util/FlyingPositionSelector.java deleted file mode 100644 index 68d31f2530..0000000000 --- a/src/main/java/com/gildedgames/aether/common/world/spawning/util/FlyingPositionSelector.java +++ /dev/null @@ -1,19 +0,0 @@ -package com.gildedgames.aether.common.world.spawning.util; - -import com.gildedgames.aether.api.world.spawn.IPositionSelector; -import net.minecraft.world.World; - -public class FlyingPositionSelector implements IPositionSelector -{ - @Override - public int getPosY(World world, int posX, int posZ) - { - return world.rand.nextInt(world.getActualHeight()); - } - - @Override - public int getScatter(World world) - { - return 4; - } -} diff --git a/src/main/java/com/gildedgames/aether/common/world/spawning/util/GroundPositionSelector.java b/src/main/java/com/gildedgames/aether/common/world/spawning/util/GroundPositionSelector.java deleted file mode 100644 index 585dccb6ab..0000000000 --- a/src/main/java/com/gildedgames/aether/common/world/spawning/util/GroundPositionSelector.java +++ /dev/null @@ -1,20 +0,0 @@ -package com.gildedgames.aether.common.world.spawning.util; - -import com.gildedgames.aether.api.world.spawn.IPositionSelector; -import com.gildedgames.orbis.lib.util.mc.BlockUtil; -import net.minecraft.world.World; - -public class GroundPositionSelector implements IPositionSelector -{ - @Override - public int getPosY(final World world, final int posX, final int posZ) - { - return BlockUtil.getTopBlockHeight(world, posX, posZ); - } - - @Override - public int getScatter(final World world) - { - return 4; - } -} diff --git a/src/main/java/com/gildedgames/aether/common/world/spawning/util/OffsetFromTopBlockPositionSelector.java b/src/main/java/com/gildedgames/aether/common/world/spawning/util/OffsetFromTopBlockPositionSelector.java deleted file mode 100644 index 88793fb791..0000000000 --- a/src/main/java/com/gildedgames/aether/common/world/spawning/util/OffsetFromTopBlockPositionSelector.java +++ /dev/null @@ -1,27 +0,0 @@ -package com.gildedgames.aether.common.world.spawning.util; - -import com.gildedgames.aether.api.world.spawn.IPositionSelector; -import com.gildedgames.orbis.lib.util.mc.BlockUtil; -import net.minecraft.world.World; - -public class OffsetFromTopBlockPositionSelector implements IPositionSelector -{ - private final int offset; - - public OffsetFromTopBlockPositionSelector(int offset) - { - this.offset = offset; - } - - @Override - public int getPosY(World world, int posX, int posZ) - { - return BlockUtil.getTopBlockHeight(world, posX, posZ) + this.offset; - } - - @Override - public int getScatter(World world) - { - return 4; - } -} diff --git a/src/main/java/com/gildedgames/aether/common/world/spawning/util/UndergroundPositionSelector.java b/src/main/java/com/gildedgames/aether/common/world/spawning/util/UndergroundPositionSelector.java deleted file mode 100644 index f5cd268939..0000000000 --- a/src/main/java/com/gildedgames/aether/common/world/spawning/util/UndergroundPositionSelector.java +++ /dev/null @@ -1,58 +0,0 @@ -package com.gildedgames.aether.common.world.spawning.util; - -import com.gildedgames.aether.api.registrar.BlocksAether; -import com.gildedgames.aether.api.world.spawn.IPositionSelector; -import net.minecraft.block.state.IBlockState; -import net.minecraft.util.EnumFacing; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.World; - -public class UndergroundPositionSelector implements IPositionSelector -{ - @Override - public int getPosY(World world, int posX, int posZ) - { - BlockPos.MutableBlockPos pos = new BlockPos.MutableBlockPos(posX, world.rand.nextInt(world.getActualHeight()), posZ); - - boolean airFlag = false; - boolean blockFlag = false; - - while (pos.getY() > 0) - { - if (world.isAirBlock(pos)) - { - blockFlag = false; - airFlag = true; - } - else - { - if (blockFlag) - { - airFlag = false; - } - - blockFlag = true; - } - - if (blockFlag && airFlag) - { - IBlockState state = world.getBlockState(pos); - - if (state.isFullBlock() && state.getBlock() != BlocksAether.aether_grass) - { - return pos.getY() + 1; - } - } - - pos.move(EnumFacing.DOWN); - } - - return pos.getY() + 1; - } - - @Override - public int getScatter(World world) - { - return 4; - } -} diff --git a/src/main/java/com/gildedgames/aether/common/world/templates/TemplatePipeline.java b/src/main/java/com/gildedgames/aether/common/world/templates/TemplatePipeline.java deleted file mode 100644 index c6f00a16c6..0000000000 --- a/src/main/java/com/gildedgames/aether/common/world/templates/TemplatePipeline.java +++ /dev/null @@ -1,120 +0,0 @@ -package com.gildedgames.aether.common.world.templates; - -import com.google.common.collect.Lists; -import net.minecraft.util.Mirror; -import net.minecraft.util.Rotation; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.ChunkPos; -import net.minecraft.world.World; -import net.minecraft.world.gen.structure.template.PlacementSettings; -import net.minecraft.world.gen.structure.template.Template; - -import java.util.Collections; -import java.util.List; - -public class TemplatePipeline -{ - - private final List<TemplateProgress> scheduledTemplates = Collections.synchronizedList(Lists.newArrayList()); - - public TemplatePipeline() - { - - } - - public void constructChunk(World world, int chunkX, int chunkZ) - { - List<TemplateProgress> toRemove = Lists.newArrayList(); - - synchronized (this.scheduledTemplates) - { - ChunkPos pos = new ChunkPos(chunkX, chunkZ); - - for (TemplateProgress template : this.scheduledTemplates) - { - template.construct(world, pos); - - if (template.isFinishedConstructing()) - { - toRemove.add(template); - } - } - } - - this.scheduledTemplates.removeAll(toRemove); - } - - public void scheduleTemplate(Template template, BlockPos pos) - { - this.scheduleTemplate(new TemplateProgress(template, pos)); - } - - public void scheduleTemplate(Template template, BlockPos pos, Runnable postConstuction) - { - this.scheduleTemplate(new TemplateProgress(template, pos, postConstuction)); - } - - private void scheduleTemplate(TemplateProgress progress) - { - this.scheduledTemplates.add(progress); - } - - private static class TemplateProgress - { - - private int chunksLeft; - - private final Template template; - - private final BlockPos pos; - - private final List<ChunkPos> chunksDone = Lists.newArrayList(); - - private Runnable postConstruction; - - protected TemplateProgress(Template template, BlockPos pos) - { - this.pos = pos; - this.template = template; - - int chunkX = template.getSize().getX() >> 4; - int chunkZ = template.getSize().getZ() >> 4; - - this.chunksLeft = (chunkX * chunkZ) + chunkX + chunkZ; - } - - protected TemplateProgress(Template template, BlockPos pos, Runnable postConstruction) - { - this(template, pos); - - this.postConstruction = postConstruction; - } - - public void construct(World world, ChunkPos pos) - { - if (!this.chunksDone.contains(pos)) - { - PlacementSettings settings = (new PlacementSettings()).setMirror(Mirror.NONE).setRotation(Rotation.NONE).setIgnoreEntities(false).setChunk(null) - .setReplacedBlock(null).setIgnoreStructureBlock(false); - - this.template.addBlocksToWorld(world, this.pos, settings); - - this.chunksDone.add(pos); - - this.chunksLeft--; - - if (this.isFinishedConstructing()) - { - this.postConstruction.run(); - } - } - } - - public boolean isFinishedConstructing() - { - return this.chunksLeft <= 0; - } - - } - -} diff --git a/src/main/java/com/gildedgames/aether/common/world/templates/TemplatePlacer.java b/src/main/java/com/gildedgames/aether/common/world/templates/TemplatePlacer.java deleted file mode 100644 index 80ac285f87..0000000000 --- a/src/main/java/com/gildedgames/aether/common/world/templates/TemplatePlacer.java +++ /dev/null @@ -1,98 +0,0 @@ -package com.gildedgames.aether.common.world.templates; - -import com.gildedgames.aether.api.util.TemplateUtil; -import com.gildedgames.aether.api.world.templates.PostPlacementTemplate; -import com.gildedgames.aether.api.world.templates.TemplateDefinition; -import com.gildedgames.aether.api.world.templates.TemplateLoc; -import com.gildedgames.orbis.lib.processing.BlockAccessExtendedWrapper; -import com.gildedgames.orbis.lib.processing.IBlockAccessExtended; -import com.google.common.collect.Lists; -import net.minecraft.util.Rotation; -import net.minecraft.world.World; - -import java.util.List; -import java.util.Random; - -public class TemplatePlacer -{ - - public static final Rotation[] ROTATIONS = Rotation.values(); - - /** Filled with block access instances for each world - */ - private static final List<IBlockAccessExtended> blockAccessList = Lists.newArrayList(); - - public static Rotation getRandomRotation(final Random rand) - { - return TemplatePlacer.ROTATIONS[rand.nextInt(TemplatePlacer.ROTATIONS.length)]; - } - - public static boolean place(final World placeWith, final TemplateDefinition def, final TemplateLoc loc, final Random rand) - { - IBlockAccessExtended chosen = null; - - for (final IBlockAccessExtended access : TemplatePlacer.blockAccessList) - { - if (access.getWorld() == placeWith) - { - chosen = access; - break; - } - } - - if (chosen == null) - { - chosen = new BlockAccessExtendedWrapper(placeWith); - - TemplatePlacer.blockAccessList.add(chosen); - } - - return TemplatePlacer.place(chosen, def, loc, rand); - } - - public static boolean place(final IBlockAccessExtended placeWith, final TemplateDefinition def, final TemplateLoc loc, final Random rand) - { - final Rotation rotation = def.hasRandomRotation() ? ROTATIONS[rand.nextInt(ROTATIONS.length)] : ROTATIONS[0]; - - loc.getSettings().setRotation(rotation); - - TemplateLoc before = loc.clone(); - - if (loc.isCentered()) - { - loc.set(TemplateUtil.getCenteredPos(def, loc)); - } - - final boolean result = TemplatePrimer.canGenerate(placeWith, def, before); - - if (result) - { - TemplatePrimer.generateTemplate(placeWith, def, before); - - if (placeWith.getWorld() != null) - { - for (final PostPlacementTemplate post : def.getPostPlacements()) - { - post.postGenerate(placeWith.getWorld(), rand, loc); - } - } - } - - return result; - } - - public static boolean canPlace(final IBlockAccessExtended placeWith, final TemplateDefinition def, final TemplateLoc loc, final Random rand) - { - final Rotation rotation = def.hasRandomRotation() ? ROTATIONS[rand.nextInt(ROTATIONS.length)] : ROTATIONS[0]; - - loc.getSettings().setRotation(rotation); - - if (loc.isCentered()) - { - loc.set(TemplateUtil.getCenteredPos(def, loc)); - } - - return TemplatePrimer.canGenerate(placeWith, def, loc); - } - -} diff --git a/src/main/java/com/gildedgames/aether/common/world/templates/TemplatePrimer.java b/src/main/java/com/gildedgames/aether/common/world/templates/TemplatePrimer.java deleted file mode 100644 index c1d41dd6b1..0000000000 --- a/src/main/java/com/gildedgames/aether/common/world/templates/TemplatePrimer.java +++ /dev/null @@ -1,363 +0,0 @@ -package com.gildedgames.aether.common.world.templates; - -import com.gildedgames.aether.api.registrar.BlocksAether; -import com.gildedgames.aether.api.util.TemplateUtil; -import com.gildedgames.aether.api.world.generation.BlockRotationProcessorExtended; -import com.gildedgames.aether.api.world.templates.ITemplateProcessorExtended; -import com.gildedgames.aether.api.world.templates.PlacementConditionTemplate; -import com.gildedgames.aether.api.world.templates.TemplateDefinition; -import com.gildedgames.aether.api.world.templates.TemplateLoc; -import com.gildedgames.aether.common.blocks.multiblock.BlockMultiDummy; -import com.gildedgames.aether.common.blocks.multiblock.BlockMultiDummyHalf; -import com.gildedgames.aether.common.entities.tiles.TileEntityWildcard; -import com.gildedgames.aether.common.entities.tiles.multiblock.TileEntityMultiblockController; -import com.gildedgames.orbis.lib.processing.IBlockAccessExtended; -import com.google.common.collect.Lists; -import net.minecraft.block.Block; -import net.minecraft.block.state.IBlockState; -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityList; -import net.minecraft.init.Blocks; -import net.minecraft.inventory.IInventory; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.nbt.NBTTagDouble; -import net.minecraft.nbt.NBTTagList; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.Mirror; -import net.minecraft.util.Rotation; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.Vec3d; -import net.minecraft.world.World; -import net.minecraft.world.gen.structure.StructureBoundingBox; -import net.minecraft.world.gen.structure.template.PlacementSettings; -import net.minecraft.world.gen.structure.template.Template; - -import javax.annotation.Nullable; -import java.util.List; -import java.util.UUID; - -public class TemplatePrimer -{ - public static boolean canGenerate(final IBlockAccessExtended blockAccess, final TemplateDefinition def, final TemplateLoc loc) - { - BlockPos pos = loc.getPos(); - - if (loc.isCentered()) - { - pos = TemplateUtil.getCenteredPos(def, loc); - } - - final StructureBoundingBox bb = TemplateUtil.getBoundingBoxFromTemplate(def, loc); - - if (bb.maxY > 256) - { - return false; - } - - final List<Template.BlockInfo> info = def.getTemplate().blocks; - - final List<Template.BlockInfo> infoTransformed = TemplatePrimer.getBlocks(info, pos, loc.getSettings(), def.getTemplate()); - - for (final Template.BlockInfo block : infoTransformed) - { - for (final PlacementConditionTemplate condition : def.getConditions()) - { - if (!blockAccess.canAccess(pos) || !condition.canPlace(def.getTemplate(), blockAccess, pos, block)) - { - return false; - } - } - } - - for (final PlacementConditionTemplate condition : def.getConditions()) - { - if (!condition.canPlaceCheckAll(def.getTemplate(), blockAccess, pos, infoTransformed)) - { - return false; - } - } - - return true; - } - - public static void generateTemplate(final IBlockAccessExtended blockAccess, final TemplateDefinition def, final TemplateLoc loc) - { - BlockPos pos = loc.getPos(); - - if (loc.isCentered()) - { - pos = TemplateUtil.getCenteredPos(def, loc); - } - - final ITemplateProcessorExtended processor = new BlockRotationProcessorExtended(pos, loc.getSettings()); - TemplatePrimer.populateAll(def.getTemplate(), blockAccess, pos, processor, loc.getSettings()); - } - - public static List<Template.BlockInfo> getBlocks(final List<Template.BlockInfo> blockInfo, final BlockPos pos, final PlacementSettings settings, - final Template template) - { - final List<Template.BlockInfo> newInfo = Lists.newArrayList(); - - for (final Template.BlockInfo info : blockInfo) - { - final BlockPos blockpos = Template.transformedBlockPos(settings, info.pos).add(pos); - - newInfo.add(new Template.BlockInfo(blockpos, info.blockState, info.tileentityData)); - } - - return newInfo; - } - - public static List<BlockPos> getBlockPos(final List<Template.BlockInfo> blockInfo, final BlockPos pos, final PlacementSettings settings) - { - final List<BlockPos> blockPos = Lists.newArrayList(); - - for (final Template.BlockInfo info : blockInfo) - { - final BlockPos blockpos = Template.transformedBlockPos(settings, info.pos).add(pos); - - blockPos.add(blockpos); - } - - return blockPos; - } - - public static void populateAll(final Template template, final IBlockAccessExtended blockAccess, final BlockPos pos, - @Nullable final ITemplateProcessorExtended processor, - final PlacementSettings settings) - { - final List<Template.BlockInfo> blocks = template.blocks; - - if (!blocks.isEmpty() && template.getSize().getX() >= 1 && template.getSize().getY() >= 1 && template.getSize().getZ() >= 1) - { - final Block block = settings.getReplacedBlock(); - final StructureBoundingBox bb = settings.getBoundingBox(); - - for (final Template.BlockInfo template$blockinfo : blocks) - { - final BlockPos blockpos = Template.transformedBlockPos(settings, template$blockinfo.pos).add(pos); - - final Template.BlockInfo template$blockinfo1 = - processor != null ? processor.processBlock(blockAccess, blockpos, template$blockinfo) : template$blockinfo; - - if (template$blockinfo1 != null) - { - final Block block1 = template$blockinfo1.blockState.getBlock(); - - if ((block == null || block != block1) && (!settings.getIgnoreStructureBlock() || block1 != Blocks.STRUCTURE_BLOCK) && ( - bb == null || bb.isVecInside(blockpos))) - { - final IBlockState iblockstate = template$blockinfo1.blockState.withMirror(settings.getMirror()); - final IBlockState iblockstate1 = iblockstate.withRotation(settings.getRotation()); - - if (iblockstate1.getBlock() instanceof BlockMultiDummy || iblockstate1.getBlock() instanceof BlockMultiDummyHalf) - { - continue; - } - - if (iblockstate1.getBlock() == BlocksAether.wildcard) - { - final TileEntityWildcard wildcard = new TileEntityWildcard(); - - if (blockAccess.getWorld() != null) - { - final World world = blockAccess.getWorld(); - - wildcard.setWorld(world); - - template$blockinfo1.tileentityData.setInteger("x", blockpos.getX()); - template$blockinfo1.tileentityData.setInteger("y", blockpos.getY()); - template$blockinfo1.tileentityData.setInteger("z", blockpos.getZ()); - wildcard.readFromNBT(template$blockinfo1.tileentityData); - wildcard.mirror(settings.getMirror()); - wildcard.rotate(settings.getRotation()); - - wildcard.onSchematicGeneration(blockAccess, world.rand); - } - - continue; - } - - if (template$blockinfo1.tileentityData != null) - { - final TileEntity tileentity = blockAccess.getTileEntity(blockpos); - - if (tileentity != null) - { - if (tileentity instanceof IInventory) - { - ((IInventory) tileentity).clear(); - } - } - } - - if (blockAccess.setBlockState(blockpos, iblockstate1, 2 | 16) && template$blockinfo1.tileentityData != null) - { - final TileEntity tileentity2 = blockAccess.getTileEntity(blockpos); - - if (tileentity2 != null) - { - template$blockinfo1.tileentityData.setInteger("x", blockpos.getX()); - template$blockinfo1.tileentityData.setInteger("y", blockpos.getY()); - template$blockinfo1.tileentityData.setInteger("z", blockpos.getZ()); - tileentity2.readFromNBT(template$blockinfo1.tileentityData); - tileentity2.mirror(settings.getMirror()); - tileentity2.rotate(settings.getRotation()); - - tileentity2.markDirty(); - - if (tileentity2 instanceof TileEntityMultiblockController) - { - final TileEntityMultiblockController controller = (TileEntityMultiblockController) tileentity2; - - controller.rebuild(); - } - } - } - } - } - } - - for (final Template.BlockInfo template$blockinfo2 : blocks) - { - if (block == null || block != template$blockinfo2.blockState.getBlock()) - { - final BlockPos blockpos1 = Template.transformedBlockPos(settings, template$blockinfo2.pos).add(pos); - - if (bb == null || bb.isVecInside(blockpos1)) - { - if (blockAccess.getWorld() != null) - { - blockAccess.getWorld().notifyNeighborsRespectDebug(blockpos1, template$blockinfo2.blockState.getBlock(), false); - } - - if (template$blockinfo2.tileentityData != null) - { - final TileEntity tileentity1 = blockAccess.getTileEntity(blockpos1); - - if (tileentity1 != null) - { - tileentity1.markDirty(); - } - } - } - } - } - - if (!settings.getIgnoreEntities()) - { - if (blockAccess.getWorld() != null) - { - TemplatePrimer.addEntitiesToWorld(template, blockAccess.getWorld(), pos, settings.getMirror(), settings.getRotation(), bb); - } - } - } - } - - private static void addEntitiesToWorld(final Template template, final World worldIn, final BlockPos pos, final Mirror mirrorIn, final Rotation rotationIn, - @Nullable final StructureBoundingBox aabb) - { - final List<Template.EntityInfo> entities = template.entities; - - for (final Template.EntityInfo template$entityinfo : entities) - { - final BlockPos blockpos = transformedBlockPos(template$entityinfo.blockPos, mirrorIn, rotationIn).add(pos); - - if (aabb == null || aabb.isVecInside(blockpos)) - { - final NBTTagCompound nbttagcompound = template$entityinfo.entityData; - final Vec3d vec3d = transformedVec3d(template$entityinfo.pos, mirrorIn, rotationIn); - final Vec3d vec3d1 = vec3d.add((double) pos.getX(), (double) pos.getY(), (double) pos.getZ()); - final NBTTagList nbttaglist = new NBTTagList(); - nbttaglist.appendTag(new NBTTagDouble(vec3d1.x)); - nbttaglist.appendTag(new NBTTagDouble(vec3d1.y)); - nbttaglist.appendTag(new NBTTagDouble(vec3d1.z)); - nbttagcompound.setTag("Pos", nbttaglist); - nbttagcompound.setUniqueId("UUID", UUID.randomUUID()); - Entity entity; - - try - { - entity = EntityList.createEntityFromNBT(nbttagcompound, worldIn); - } - catch (final Exception var15) - { - entity = null; - } - - if (entity != null) - { - float f = entity.getMirroredYaw(mirrorIn); - f = f + (entity.rotationYaw - entity.getRotatedYaw(rotationIn)); - entity.setLocationAndAngles(vec3d1.x, vec3d1.y, vec3d1.z, f, entity.rotationPitch); - worldIn.spawnEntity(entity); - } - } - } - } - - public static BlockPos transformedBlockPos(final BlockPos pos, final Mirror mirrorIn, final Rotation rotationIn) - { - int i = pos.getX(); - final int j = pos.getY(); - int k = pos.getZ(); - boolean flag = true; - - switch (mirrorIn) - { - case LEFT_RIGHT: - k = -k; - break; - case FRONT_BACK: - i = -i; - break; - default: - flag = false; - } - - switch (rotationIn) - { - case COUNTERCLOCKWISE_90: - return new BlockPos(k, j, -i); - case CLOCKWISE_90: - return new BlockPos(-k, j, i); - case CLOCKWISE_180: - return new BlockPos(-i, j, -k); - default: - return flag ? new BlockPos(i, j, k) : pos; - } - } - - private static Vec3d transformedVec3d(final Vec3d vec, final Mirror mirrorIn, final Rotation rotationIn) - { - double d0 = vec.x; - final double d1 = vec.y; - double d2 = vec.z; - boolean flag = true; - - switch (mirrorIn) - { - case LEFT_RIGHT: - d2 = 1.0D - d2; - break; - case FRONT_BACK: - d0 = 1.0D - d0; - break; - default: - flag = false; - } - - switch (rotationIn) - { - case COUNTERCLOCKWISE_90: - return new Vec3d(d2, d1, 1.0D - d0); - case CLOCKWISE_90: - return new Vec3d(1.0D - d2, d1, d0); - case CLOCKWISE_180: - return new Vec3d(1.0D - d0, d1, 1.0D - d2); - default: - return flag ? new Vec3d(d0, d1, d2) : vec; - } - } - -} diff --git a/src/main/java/com/gildedgames/aether/common/world/templates/TemplateRegistry.java b/src/main/java/com/gildedgames/aether/common/world/templates/TemplateRegistry.java deleted file mode 100644 index 1c871e0c0f..0000000000 --- a/src/main/java/com/gildedgames/aether/common/world/templates/TemplateRegistry.java +++ /dev/null @@ -1,29 +0,0 @@ -package com.gildedgames.aether.common.world.templates; - -import com.gildedgames.aether.api.world.templates.ITemplateRegistry; -import com.gildedgames.aether.api.world.templates.TemplateDefinition; -import com.google.common.collect.BiMap; -import com.google.common.collect.HashBiMap; - -public class TemplateRegistry implements ITemplateRegistry -{ - private final BiMap<Integer, TemplateDefinition> idToTemplate = HashBiMap.create(); - - @Override - public int getID(final TemplateDefinition def) - { - return this.idToTemplate.inverse().get(def); - } - - @Override - public TemplateDefinition get(final int id) - { - return this.idToTemplate.get(id); - } - - @Override - public void register(final int id, final TemplateDefinition def) - { - this.idToTemplate.put(id, def); - } -} diff --git a/src/main/java/com/gildedgames/aether/common/world/templates/TemplateWorldGen.java b/src/main/java/com/gildedgames/aether/common/world/templates/TemplateWorldGen.java deleted file mode 100644 index 0d68b75ed1..0000000000 --- a/src/main/java/com/gildedgames/aether/common/world/templates/TemplateWorldGen.java +++ /dev/null @@ -1,25 +0,0 @@ -package com.gildedgames.aether.common.world.templates; - -import com.gildedgames.aether.api.world.decoration.WorldDecorationGenerator; -import com.gildedgames.aether.api.world.templates.TemplateDefinition; -import com.gildedgames.aether.api.world.templates.TemplateLoc; -import com.gildedgames.orbis.lib.world.WorldSlice; -import net.minecraft.util.math.BlockPos; - -import java.util.Random; - -public class TemplateWorldGen implements WorldDecorationGenerator -{ - private final TemplateDefinition def; - - public TemplateWorldGen(final TemplateDefinition def) - { - this.def = def; - } - - @Override - public boolean generate(WorldSlice slice, Random rand, BlockPos pos) - { - return TemplatePlacer.place(slice.getWorld(), this.def, new TemplateLoc().set(pos), rand); - } -} diff --git a/src/main/java/com/gildedgames/aether/common/world/templates/conditions/FlatGroundPlacementCondition.java b/src/main/java/com/gildedgames/aether/common/world/templates/conditions/FlatGroundPlacementCondition.java deleted file mode 100644 index b7752590a1..0000000000 --- a/src/main/java/com/gildedgames/aether/common/world/templates/conditions/FlatGroundPlacementCondition.java +++ /dev/null @@ -1,43 +0,0 @@ -package com.gildedgames.aether.common.world.templates.conditions; - -import com.gildedgames.aether.api.world.templates.PlacementConditionTemplate; -import com.gildedgames.orbis.lib.processing.IBlockAccessExtended; -import com.gildedgames.orbis.lib.util.mc.BlockUtil; -import net.minecraft.block.state.IBlockState; -import net.minecraft.init.Blocks; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.gen.structure.template.Template; - -import java.util.List; - -public class FlatGroundPlacementCondition implements PlacementConditionTemplate -{ - - @Override - public boolean canPlace(final Template template, final IBlockAccessExtended world, final BlockPos placedAt, final Template.BlockInfo block) - { - if (block.pos.getY() == placedAt.getY() && block.blockState.getBlock() != Blocks.AIR - && block.blockState.getBlock() != Blocks.STRUCTURE_VOID) - { - final BlockPos down = block.pos.down(); - - if (!world.canAccess(down)) - { - return false; - } - - final IBlockState state = world.getBlockState(down); - - return BlockUtil.isSolid(state, world, down); - } - - return true; - } - - @Override - public boolean canPlaceCheckAll(final Template template, final IBlockAccessExtended world, final BlockPos placedAt, final List<Template.BlockInfo> blocks) - { - return true; - } - -} diff --git a/src/main/java/com/gildedgames/aether/common/world/templates/conditions/IgnoreBlockPlacementCondition.java b/src/main/java/com/gildedgames/aether/common/world/templates/conditions/IgnoreBlockPlacementCondition.java deleted file mode 100644 index 1a0e6d23e8..0000000000 --- a/src/main/java/com/gildedgames/aether/common/world/templates/conditions/IgnoreBlockPlacementCondition.java +++ /dev/null @@ -1,49 +0,0 @@ -package com.gildedgames.aether.common.world.templates.conditions; - -import com.gildedgames.aether.api.world.templates.PlacementConditionTemplate; -import com.gildedgames.orbis.lib.processing.IBlockAccessExtended; -import net.minecraft.block.state.IBlockState; -import net.minecraft.init.Blocks; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.gen.structure.template.Template; - -import java.util.List; - -public class IgnoreBlockPlacementCondition implements PlacementConditionTemplate -{ - - private final IBlockState state; - - public IgnoreBlockPlacementCondition(final IBlockState state) - { - this.state = state; - } - - @Override - public boolean canPlace(final Template template, final IBlockAccessExtended world, final BlockPos placedAt, final Template.BlockInfo block) - { - if (block.pos.getY() == placedAt.getY() && block.blockState.getBlock() != Blocks.AIR - && block.blockState.getBlock() != Blocks.STRUCTURE_VOID) - { - final BlockPos down = block.pos.down(); - - if (!world.canAccess(down)) - { - return false; - } - - final IBlockState state = world.getBlockState(down); - - return this.state != state; - } - - return true; - } - - @Override - public boolean canPlaceCheckAll(final Template template, final IBlockAccessExtended world, final BlockPos placedAt, final List<Template.BlockInfo> blocks) - { - return true; - } - -} diff --git a/src/main/java/com/gildedgames/aether/common/world/templates/conditions/InsideGroundAtSourcePlacementCondition.java b/src/main/java/com/gildedgames/aether/common/world/templates/conditions/InsideGroundAtSourcePlacementCondition.java deleted file mode 100644 index ba723dbf62..0000000000 --- a/src/main/java/com/gildedgames/aether/common/world/templates/conditions/InsideGroundAtSourcePlacementCondition.java +++ /dev/null @@ -1,61 +0,0 @@ -package com.gildedgames.aether.common.world.templates.conditions; - -import com.gildedgames.aether.api.registrar.BlocksAether; -import com.gildedgames.aether.api.world.templates.PlacementConditionTemplate; -import com.gildedgames.orbis.lib.processing.IBlockAccessExtended; -import com.gildedgames.orbis.lib.util.mc.BlockUtil; -import net.minecraft.block.state.IBlockState; -import net.minecraft.init.Blocks; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.gen.structure.template.Template; - -import java.util.List; - -public class InsideGroundAtSourcePlacementCondition implements PlacementConditionTemplate -{ - - @Override - public boolean canPlace(final Template template, final IBlockAccessExtended world, final BlockPos placedAt, final Template.BlockInfo block) - { - return true; - } - - @Override - public boolean canPlaceCheckAll(final Template template, final IBlockAccessExtended world, final BlockPos placedAt, final List<Template.BlockInfo> blocks) - { - if (!world.canAccess(placedAt)) - { - return false; - } - - IBlockState state = world.getBlockState(placedAt); - - if (state.getBlock() != BlocksAether.aether_grass) - { - return false; - } - - for (final Template.BlockInfo info : blocks) - { - if (info.pos.getY() == placedAt.getY() && info.blockState.getBlock() != Blocks.AIR && info.blockState.getBlock() != Blocks.STRUCTURE_VOID) - { - final BlockPos down = info.pos.down(); - - if (!world.canAccess(down)) - { - return false; - } - - state = world.getBlockState(down); - - if (!BlockUtil.isSolid(state)) - { - return false; - } - } - } - - return true; - } - -} diff --git a/src/main/java/com/gildedgames/aether/common/world/templates/conditions/InsideGroundPlacementCondition.java b/src/main/java/com/gildedgames/aether/common/world/templates/conditions/InsideGroundPlacementCondition.java deleted file mode 100644 index 6d333699f5..0000000000 --- a/src/main/java/com/gildedgames/aether/common/world/templates/conditions/InsideGroundPlacementCondition.java +++ /dev/null @@ -1,43 +0,0 @@ -package com.gildedgames.aether.common.world.templates.conditions; - -import com.gildedgames.aether.api.registrar.BlocksAether; -import com.gildedgames.aether.api.world.templates.PlacementConditionTemplate; -import com.gildedgames.orbis.lib.processing.IBlockAccessExtended; -import net.minecraft.block.state.IBlockState; -import net.minecraft.init.Blocks; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.gen.structure.template.Template; - -import java.util.List; - -public class InsideGroundPlacementCondition implements PlacementConditionTemplate -{ - - @Override - public boolean canPlace(final Template template, final IBlockAccessExtended world, final BlockPos placedAt, final Template.BlockInfo block) - { - if (block.pos.getY() == placedAt.getY() + 1 && block.blockState.getBlock() != Blocks.AIR - && block.blockState.getBlock() != Blocks.STRUCTURE_VOID) - { - final BlockPos down = block.pos.down(); - - if (!world.canAccess(down)) - { - return false; - } - - final IBlockState state = world.getBlockState(down); - - return state.getBlock() == BlocksAether.aether_grass; - } - - return true; - } - - @Override - public boolean canPlaceCheckAll(final Template template, final IBlockAccessExtended world, final BlockPos placedAt, final List<Template.BlockInfo> blocks) - { - return true; - } - -} diff --git a/src/main/java/com/gildedgames/aether/common/world/templates/conditions/OnSpecificBlockPlacementCondition.java b/src/main/java/com/gildedgames/aether/common/world/templates/conditions/OnSpecificBlockPlacementCondition.java deleted file mode 100644 index 1ee7c5bc9a..0000000000 --- a/src/main/java/com/gildedgames/aether/common/world/templates/conditions/OnSpecificBlockPlacementCondition.java +++ /dev/null @@ -1,57 +0,0 @@ -package com.gildedgames.aether.common.world.templates.conditions; - -import com.gildedgames.aether.api.world.templates.PlacementConditionTemplate; -import com.gildedgames.orbis.lib.processing.IBlockAccessExtended; -import net.minecraft.block.Block; -import net.minecraft.init.Blocks; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.gen.structure.template.Template; - -import java.util.List; - -public class OnSpecificBlockPlacementCondition implements PlacementConditionTemplate -{ - - private final Block[] blocks; - - public OnSpecificBlockPlacementCondition(final Block... blocks) - { - this.blocks = blocks; - } - - @Override - public boolean canPlace(final Template template, final IBlockAccessExtended world, final BlockPos placedAt, final Template.BlockInfo block) - { - if (block.pos.getY() == placedAt.getY() && block.blockState.getBlock() != Blocks.AIR - && block.blockState.getBlock() != Blocks.STRUCTURE_VOID) - { - final BlockPos down = block.pos.down(); - - if (!world.canAccess(down)) - { - return false; - } - - final Block blockDown = world.getBlockState(down).getBlock(); - - for (final Block s : this.blocks) - { - if (s == blockDown) - { - return true; - } - } - - return false; - } - - return true; - } - - @Override - public boolean canPlaceCheckAll(final Template template, final IBlockAccessExtended world, final BlockPos placedAt, final List<Template.BlockInfo> blocks) - { - return true; - } - -} diff --git a/src/main/java/com/gildedgames/aether/common/world/templates/conditions/OnSpecificBlockStatePlacementCondition.java b/src/main/java/com/gildedgames/aether/common/world/templates/conditions/OnSpecificBlockStatePlacementCondition.java deleted file mode 100644 index 707eae0e5f..0000000000 --- a/src/main/java/com/gildedgames/aether/common/world/templates/conditions/OnSpecificBlockStatePlacementCondition.java +++ /dev/null @@ -1,57 +0,0 @@ -package com.gildedgames.aether.common.world.templates.conditions; - -import com.gildedgames.aether.api.world.templates.PlacementConditionTemplate; -import com.gildedgames.orbis.lib.processing.IBlockAccessExtended; -import net.minecraft.block.state.IBlockState; -import net.minecraft.init.Blocks; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.gen.structure.template.Template; - -import java.util.List; - -public class OnSpecificBlockStatePlacementCondition implements PlacementConditionTemplate -{ - - private final IBlockState[] states; - - public OnSpecificBlockStatePlacementCondition(final IBlockState... states) - { - this.states = states; - } - - @Override - public boolean canPlace(final Template template, final IBlockAccessExtended world, final BlockPos placedAt, final Template.BlockInfo block) - { - if (block.pos.getY() == placedAt.getY() && block.blockState.getBlock() != Blocks.AIR - && block.blockState.getBlock() != Blocks.STRUCTURE_VOID) - { - final BlockPos down = block.pos.down(); - - if (!world.canAccess(down)) - { - return false; - } - - final IBlockState state = world.getBlockState(down); - - for (final IBlockState s : this.states) - { - if (s == state) - { - return true; - } - } - - return false; - } - - return true; - } - - @Override - public boolean canPlaceCheckAll(final Template template, final IBlockAccessExtended world, final BlockPos placedAt, final List<Template.BlockInfo> blocks) - { - return true; - } - -} diff --git a/src/main/java/com/gildedgames/aether/common/world/templates/conditions/ReplaceablePlacementCondition.java b/src/main/java/com/gildedgames/aether/common/world/templates/conditions/ReplaceablePlacementCondition.java deleted file mode 100644 index b2b48d94e1..0000000000 --- a/src/main/java/com/gildedgames/aether/common/world/templates/conditions/ReplaceablePlacementCondition.java +++ /dev/null @@ -1,66 +0,0 @@ -package com.gildedgames.aether.common.world.templates.conditions; - -import com.gildedgames.aether.api.util.TemplateUtil; -import com.gildedgames.aether.api.world.templates.PlacementConditionTemplate; -import com.gildedgames.orbis.lib.processing.IBlockAccessExtended; -import com.gildedgames.orbis.lib.util.mc.BlockUtil; -import com.google.common.collect.Lists; -import net.minecraft.block.material.Material; -import net.minecraft.block.state.IBlockState; -import net.minecraft.init.Blocks; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.gen.structure.template.Template; - -import java.util.List; - -public class ReplaceablePlacementCondition implements PlacementConditionTemplate -{ - - private final boolean isCriticalWithCheck; - - private final List<Material> acceptedMaterials; - - public ReplaceablePlacementCondition(final boolean isCriticalWithCheck, final Material... acceptedMaterials) - { - this.isCriticalWithCheck = isCriticalWithCheck; - this.acceptedMaterials = Lists.newArrayList(acceptedMaterials); - } - - @Override - public boolean canPlace(final Template template, final IBlockAccessExtended world, final BlockPos placedAt, final Template.BlockInfo block) - { - if (block.blockState.getBlock() != Blocks.STRUCTURE_VOID) - { - if (!world.canAccess(block.pos)) - { - return false; - } - - final IBlockState state = world.getBlockState(block.pos); - - if ((BlockUtil.isSolid(block.blockState) || block.blockState.getMaterial() == Material.PORTAL - || block.blockState == Blocks.AIR.getDefaultState()) && (TemplateUtil.isReplaceable(world, block.pos) - || this.acceptedMaterials.contains(state.getMaterial()))) - { - return true; - } - - if ((this.isCriticalWithCheck ? block.blockState == state : block.blockState.getBlock() == state.getBlock()) - || this.acceptedMaterials.contains(state.getMaterial())) - { - return true; - } - - return world.isAirBlock(block.pos); - } - - return true; - } - - @Override - public boolean canPlaceCheckAll(final Template template, final IBlockAccessExtended world, final BlockPos placedAt, final List<Template.BlockInfo> blocks) - { - return true; - } - -} diff --git a/src/main/java/com/gildedgames/aether/common/world/templates/conditions/TemplateConditions.java b/src/main/java/com/gildedgames/aether/common/world/templates/conditions/TemplateConditions.java deleted file mode 100644 index 38dd3208cb..0000000000 --- a/src/main/java/com/gildedgames/aether/common/world/templates/conditions/TemplateConditions.java +++ /dev/null @@ -1,20 +0,0 @@ -package com.gildedgames.aether.common.world.templates.conditions; - -import com.gildedgames.aether.api.registrar.BlocksAether; -import com.gildedgames.aether.api.world.templates.PlacementConditionTemplate; -import net.minecraft.block.material.Material; - -public class TemplateConditions -{ - public static final PlacementConditionTemplate FLAT_GROUND = new FlatGroundPlacementCondition(), - INSIDE_GROUND = new InsideGroundPlacementCondition(), - INSIDE_GROUND_AT_SOURCE = new InsideGroundAtSourcePlacementCondition(), - REPLACEABLE = new ReplaceablePlacementCondition(true), - REPLACEABLE_NOT_CRITICAL = new ReplaceablePlacementCondition(false), - REPLACEABLE_CANOPY = new ReplaceablePlacementCondition(false, Material.WOOD, Material.LEAVES), - REPLACEABLE_GROUND = new ReplaceablePlacementCondition(true, Material.GROUND, Material.GRASS), - UNDERGROUND_ENTRANCE = new UndergroundEntrancePlacementCondition(), - UNDERGROUND_PLACEMENT = new UndergroundPlacementCondition(), - ON_SOIL = new OnSpecificBlockPlacementCondition(BlocksAether.aether_grass, BlocksAether.aether_dirt), - IGNORE_QUICKSOIL = new IgnoreBlockPlacementCondition(BlocksAether.quicksoil.getDefaultState()); -} diff --git a/src/main/java/com/gildedgames/aether/common/world/templates/conditions/UndergroundEntrancePlacementCondition.java b/src/main/java/com/gildedgames/aether/common/world/templates/conditions/UndergroundEntrancePlacementCondition.java deleted file mode 100644 index 0da97a96ff..0000000000 --- a/src/main/java/com/gildedgames/aether/common/world/templates/conditions/UndergroundEntrancePlacementCondition.java +++ /dev/null @@ -1,69 +0,0 @@ -package com.gildedgames.aether.common.world.templates.conditions; - -import com.gildedgames.aether.api.registrar.BlocksAether; -import com.gildedgames.aether.api.util.TemplateUtil; -import com.gildedgames.aether.api.world.templates.PlacementConditionTemplate; -import com.gildedgames.orbis.lib.processing.IBlockAccessExtended; -import com.google.common.collect.Lists; -import net.minecraft.block.state.IBlockState; -import net.minecraft.init.Blocks; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.gen.structure.template.Template; - -import java.util.List; - -public class UndergroundEntrancePlacementCondition implements PlacementConditionTemplate -{ - - @Override - public boolean canPlace(final Template template, final IBlockAccessExtended world, final BlockPos placedAt, final Template.BlockInfo block) - { - return true; - } - - @Override - public boolean canPlaceCheckAll(final Template template, final IBlockAccessExtended world, final BlockPos placedAt, final List<Template.BlockInfo> blocks) - { - final List<BlockPos> posToDelete = Lists.newArrayList(); - - for (final Template.BlockInfo block : blocks) - { - if (block.pos.getY() == placedAt.getY() + template.getSize().getY() - 1 && block.blockState.getBlock() != Blocks.STRUCTURE_VOID) - { - final BlockPos up = block.pos.up(); - - if (!world.canAccess(up)) - { - return false; - } - - if (!TemplateUtil.isReplaceable(world, up)) - { - return false; - } - else if (!world.isAirBlock(up)) - { - posToDelete.add(up); - } - - if (block.blockState.getBlock() != Blocks.AIR) - { - final IBlockState state = world.getBlockState(block.pos); - - if (state.getBlock() != BlocksAether.aether_grass) - { - return false; - } - } - } - } - - for (final BlockPos pos : posToDelete) - { - world.setBlockToAir(pos); - } - - return true; - } - -} diff --git a/src/main/java/com/gildedgames/aether/common/world/templates/conditions/UndergroundPlacementCondition.java b/src/main/java/com/gildedgames/aether/common/world/templates/conditions/UndergroundPlacementCondition.java deleted file mode 100644 index 3fe0a920a5..0000000000 --- a/src/main/java/com/gildedgames/aether/common/world/templates/conditions/UndergroundPlacementCondition.java +++ /dev/null @@ -1,39 +0,0 @@ -package com.gildedgames.aether.common.world.templates.conditions; - -import com.gildedgames.aether.api.util.TemplateUtil; -import com.gildedgames.aether.api.world.templates.PlacementConditionTemplate; -import com.gildedgames.orbis.lib.processing.IBlockAccessExtended; -import net.minecraft.init.Blocks; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.gen.structure.template.Template; - -import java.util.List; - -public class UndergroundPlacementCondition implements PlacementConditionTemplate -{ - - @Override - public boolean canPlace(final Template template, final IBlockAccessExtended world, final BlockPos placedAt, final Template.BlockInfo block) - { - if (block.blockState.getBlock() != Blocks.STRUCTURE_VOID) - { - if (!world.canAccess(block.pos)) - { - return false; - } - - return (TemplateUtil.isReplaceable(world, block.pos) || world.getBlockState(block.pos).getMaterial().isSolid() - || block.blockState.getBlock() == Blocks.AIR) && (block.blockState.getBlock() == Blocks.AIR - || world.getBlockState(block.pos) != Blocks.AIR.getDefaultState()); - } - - return true; - } - - @Override - public boolean canPlaceCheckAll(final Template template, final IBlockAccessExtended world, final BlockPos placedAt, final List<Template.BlockInfo> blocks) - { - return true; - } - -} diff --git a/src/main/java/com/gildedgames/aether/common/world/templates/post/PostPlacementMoaFamily.java b/src/main/java/com/gildedgames/aether/common/world/templates/post/PostPlacementMoaFamily.java deleted file mode 100644 index f1fb0fac45..0000000000 --- a/src/main/java/com/gildedgames/aether/common/world/templates/post/PostPlacementMoaFamily.java +++ /dev/null @@ -1,29 +0,0 @@ -package com.gildedgames.aether.common.world.templates.post; - -import com.gildedgames.aether.api.world.templates.PostPlacementTemplate; -import com.gildedgames.aether.api.world.templates.TemplateLoc; -import com.gildedgames.aether.common.entities.genes.moa.MoaNest; -import com.gildedgames.aether.common.world.util.GenUtil; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.World; - -import java.util.Random; - -public class PostPlacementMoaFamily implements PostPlacementTemplate -{ - private final BlockPos familySpawnOffset; - - public PostPlacementMoaFamily(final BlockPos familySpawnOffset) - { - this.familySpawnOffset = familySpawnOffset; - } - - @Override - public void postGenerate(final World world, final Random rand, final TemplateLoc loc) - { - final MoaNest nest = new MoaNest(world, - GenUtil.rotate(loc.getPos(), loc.getPos().add(this.familySpawnOffset), loc.getSettings().getRotation())); - - nest.spawnMoaFamily(world, 2 + rand.nextInt(2), 3); - } -} diff --git a/src/main/java/com/gildedgames/aether/common/world/templates/post/PostPlacementSetBlock.java b/src/main/java/com/gildedgames/aether/common/world/templates/post/PostPlacementSetBlock.java deleted file mode 100644 index 2f9d766678..0000000000 --- a/src/main/java/com/gildedgames/aether/common/world/templates/post/PostPlacementSetBlock.java +++ /dev/null @@ -1,33 +0,0 @@ -package com.gildedgames.aether.common.world.templates.post; - -import com.gildedgames.aether.api.world.templates.PostPlacementTemplate; -import com.gildedgames.aether.api.world.templates.TemplateLoc; -import com.gildedgames.aether.common.world.util.GenUtil; -import net.minecraft.block.state.IBlockState; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.World; - -import java.util.Random; - -public class PostPlacementSetBlock implements PostPlacementTemplate -{ - private final IBlockState state; - - private final BlockPos offset; - - public PostPlacementSetBlock(final IBlockState state, final BlockPos offset) - { - this.state = state; - this.offset = offset; - } - - @Override - public void postGenerate(final World world, final Random rand, final TemplateLoc loc) - { - final BlockPos placeAt = GenUtil.rotate(loc.getPos(), loc.getPos().add(this.offset), loc.getSettings().getRotation()); - - world.setBlockState(placeAt, this.state); - - this.state.getBlock().onBlockAdded(world, placeAt, this.state); - } -} diff --git a/src/main/java/com/gildedgames/aether/common/world/templates/post/PostPlacementSpawnEntity.java b/src/main/java/com/gildedgames/aether/common/world/templates/post/PostPlacementSpawnEntity.java deleted file mode 100644 index c2097fd5d4..0000000000 --- a/src/main/java/com/gildedgames/aether/common/world/templates/post/PostPlacementSpawnEntity.java +++ /dev/null @@ -1,41 +0,0 @@ -package com.gildedgames.aether.common.world.templates.post; - -import com.gildedgames.aether.api.world.templates.PostPlacementTemplate; -import com.gildedgames.aether.api.world.templates.TemplateLoc; -import com.gildedgames.aether.common.world.util.GenUtil; -import net.minecraft.entity.EntityLiving; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.World; - -import java.util.Random; -import java.util.function.Function; - -public class PostPlacementSpawnEntity implements PostPlacementTemplate -{ - private final Function<World, EntityLiving> entity; - - private final BlockPos offset; - - public PostPlacementSpawnEntity(final Function<World, EntityLiving> entity, final BlockPos offset) - { - this.entity = entity; - this.offset = offset; - } - - @Override - public void postGenerate(final World world, final Random rand, final TemplateLoc loc) - { - if (world.isRemote) - { - return; - } - - final BlockPos spawnAt = GenUtil.rotate(loc.getPos(), loc.getPos().add(this.offset), loc.getSettings().getRotation()); - - final EntityLiving entity = this.entity.apply(world); - - entity.setPositionAndUpdate(spawnAt.getX(), spawnAt.getY(), spawnAt.getZ()); - - world.spawnEntity(entity); - } -} diff --git a/src/main/java/com/gildedgames/aether/common/world/util/GenUtil.java b/src/main/java/com/gildedgames/aether/common/world/util/GenUtil.java deleted file mode 100644 index d55bd04637..0000000000 --- a/src/main/java/com/gildedgames/aether/common/world/util/GenUtil.java +++ /dev/null @@ -1,100 +0,0 @@ -package com.gildedgames.aether.common.world.util; - -import com.gildedgames.aether.api.registrar.BlocksAether; -import com.gildedgames.aether.api.world.decoration.WorldDecoration; -import com.gildedgames.aether.api.world.decoration.WorldDecorationSimple; -import com.gildedgames.aether.api.world.generation.positioners.PositionerLevels; -import com.gildedgames.aether.api.world.generation.positioners.PositionerSurface; -import com.gildedgames.aether.common.blocks.natural.plants.BlockAetherFlower; -import com.gildedgames.aether.common.world.decorations.WorldGenCaveFloorPlacer; -import com.gildedgames.aether.common.world.decorations.WorldGenFloorPlacer; -import com.google.common.collect.Lists; -import net.minecraft.block.state.IBlockState; -import net.minecraft.util.Rotation; -import net.minecraft.util.math.BlockPos; -import net.minecraftforge.event.terraingen.DecorateBiomeEvent; - -import java.util.List; -import java.util.Random; -import java.util.function.Function; - -public class GenUtil -{ - public static List<IBlockState> GENERAL_FLOWER_STATES = Lists.newArrayList( - BlocksAether.pink_swingtip.getDefaultState(), - BlocksAether.green_swingtip.getDefaultState(), - BlocksAether.neverbloom.getDefaultState(), - BlocksAether.aether_flower.getStateFromMeta(BlockAetherFlower.BURSTBLOSSOM.getMeta()), - BlocksAether.aether_flower.getStateFromMeta(BlockAetherFlower.WHITE_ROSE.getMeta()), - BlocksAether.aether_flower.getStateFromMeta(BlockAetherFlower.PURPLE_FLOWER.getMeta()), - BlocksAether.quickshoot.getDefaultState(), - BlocksAether.blue_swingtip.getDefaultState()); - - public static List<IBlockState> SHROOM_STATES = Lists.newArrayList( - BlocksAether.barkshroom.getDefaultState(), - BlocksAether.stoneshroom.getDefaultState()); - - public static WorldDecoration createShroomDecorations(List<IBlockState> toPickFrom) - { - WorldGenCaveFloorPlacer shroomPlacer = new WorldGenCaveFloorPlacer((random) -> toPickFrom.get(random.nextInt(toPickFrom.size())), 7); - - return new WorldDecorationSimple(2, 0.2f, DecorateBiomeEvent.Decorate.EventType.CUSTOM, new PositionerLevels(26, 90), shroomPlacer); - } - - public static WorldDecoration createFlowerDecorations(Random rand, List<IBlockState> toPickFrom, List<IBlockState> mustHave) - { - final int amountOfFlowerTypes = 2 + rand.nextInt(4); - List<IBlockState> flowerStates = Lists.newArrayList(); - - for (int i = 0; i < amountOfFlowerTypes; i++) - { - flowerStates.add(toPickFrom.get(rand.nextInt(toPickFrom.size()))); - } - - WorldGenFloorPlacer flowers = new WorldGenFloorPlacer(4, GenUtil.equalStateFetcher(), - (random) -> - { - List<IBlockState> returned = Lists.newArrayList(); - - for (int i = 0; i < 1 + random.nextInt(amountOfFlowerTypes); i++) - { - returned.add(flowerStates.get(random.nextInt(flowerStates.size()))); - } - - returned.addAll(mustHave); - - return returned; - }); - - return new WorldDecorationSimple(1 + rand.nextInt(6), 0.05F + rand.nextFloat() * 0.2F, DecorateBiomeEvent.Decorate.EventType.FLOWERS, new PositionerSurface(), flowers); - } - - public static BlockPos rotate(final BlockPos origin, final BlockPos pos, final Rotation rotation) - { - final int i = pos.getX() - origin.getX(); - final int j = pos.getY() - origin.getY(); - final int k = pos.getZ() - origin.getZ(); - - switch (rotation) - { - case COUNTERCLOCKWISE_90: - return new BlockPos(origin.getX() + k, pos.getY(), origin.getZ() - i); - case CLOCKWISE_90: - return new BlockPos(origin.getX() - i, pos.getY(), origin.getZ() + i); - case CLOCKWISE_180: - return new BlockPos(origin.getX() - i, pos.getY(), origin.getZ() - k); - default: - return pos; - } - } - - public static WorldGenFloorPlacer.StateFetcher equalStateFetcher() - { - return (random, states) -> states.get(random.nextInt(states.size())); - } - - public static Function<Random, List<IBlockState>> standardStateDefiner(IBlockState... states) - { - return (random) -> Lists.newArrayList(states); - } -} diff --git a/src/main/java/com/gildedgames/aetherii/AetherII.java b/src/main/java/com/gildedgames/aetherii/AetherII.java new file mode 100644 index 0000000000..c2f49db0dd --- /dev/null +++ b/src/main/java/com/gildedgames/aetherii/AetherII.java @@ -0,0 +1,33 @@ +package com.gildedgames.aetherii; + +import com.mojang.logging.LogUtils; +import net.minecraft.client.Minecraft; +import net.minecraft.world.item.BlockItem; +import net.minecraft.world.item.CreativeModeTab; +import net.minecraft.world.item.Item; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.Blocks; +import net.minecraft.world.level.block.state.BlockBehaviour; +import net.minecraft.world.level.material.Material; +import net.minecraftforge.common.MinecraftForge; +import net.minecraftforge.eventbus.api.IEventBus; +import net.minecraftforge.eventbus.api.SubscribeEvent; +import net.minecraftforge.fml.common.Mod; +import net.minecraftforge.fml.event.lifecycle.FMLClientSetupEvent; +import net.minecraftforge.fml.event.lifecycle.FMLCommonSetupEvent; +import net.minecraftforge.event.server.ServerStartingEvent; +import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext; +import net.minecraftforge.registries.DeferredRegister; +import net.minecraftforge.registries.ForgeRegistries; +import net.minecraftforge.registries.RegistryObject; +import org.slf4j.Logger; + +@Mod(AetherII.MODID) +public class AetherII { + public static final String MODID = "aether_ii"; + private static final Logger LOGGER = LogUtils.getLogger(); + + public AetherII() { + + } +} diff --git a/src/main/resources/META-INF/accesstransformer.cfg b/src/main/resources/META-INF/accesstransformer.cfg new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/main/resources/META-INF/aether_at.cfg b/src/main/resources/META-INF/aether_at.cfg deleted file mode 100644 index 06f398a96f..0000000000 --- a/src/main/resources/META-INF/aether_at.cfg +++ /dev/null @@ -1,65 +0,0 @@ -# Used to create the edit sign GUI -public net.minecraft.client.gui.inventory.GuiEditSign field_146848_f #tileSign - -# Used for the TemplatePrimer to copy blocks from templates -public net.minecraft.world.gen.structure.template.Template field_186270_a # blocks -public net.minecraft.world.gen.structure.template.Template field_186271_b # entities - -# Used by the weather rendering system to modify the lightmap -public net.minecraft.client.renderer.EntityRenderer field_78504_Q # lightmapColors -public net.minecraft.client.renderer.EntityRenderer field_78513_d # lightmapTexture -public net.minecraft.client.renderer.EntityRenderer field_78514_e # torchFlickerX - -# Used by the skybox rendering system to render with the FOV taken into account -public net.minecraft.client.renderer.EntityRenderer func_78481_a(FZ)F # getFOVModifier - -# Used to re-render Irradiated items in order to apply a glimmer effect -public net.minecraft.client.renderer.RenderItem func_191965_a(Lnet/minecraft/client/renderer/block/model/IBakedModel;I)V # renderModel - -# Used by the mount system to determine if the player is holding the space bar on the server -public net.minecraft.entity.EntityLivingBase field_70703_bu # isJumping - -# Used by crossbows to modify player animation state -public net.minecraft.client.renderer.ItemRenderer field_187469_f # equippedProgressMainHand -public net.minecraft.entity.EntityLivingBase field_184628_bn # activeItemStackUseCount - -# Used to add layers to the vanilla skinned player models -public net.minecraft.client.renderer.entity.RenderLivingBase field_177097_h # layerRenderers - -# Used to modify buttons on the game over screen -public net.minecraft.client.gui.GuiScreen field_146292_n # buttonList - -# Used to copy entities -public net.minecraft.entity.Entity func_180432_n(Lnet/minecraft/entity/Entity;)V # copyDataFromOld - -# Used to measure server tick lag for the in-game performance indicator -public net.minecraft.server.MinecraftServer field_175591_ab # currentTime - -# Used to prevent issues when teleporting the player between dimensions -public net.minecraft.entity.player.EntityPlayerMP field_184851_cj # invulnerableDimensionChange - -# Used to modify the amount of damage armor blocks -public-f net.minecraft.item.ItemArmor field_77879_b # damageReduceAmount - -public net.minecraft.client.model.ModelRenderer func_78788_d(F)V # compileDisplayList -public net.minecraft.client.model.ModelRenderer field_78811_r # displayList -public net.minecraft.client.model.ModelRenderer field_78812_q # compiled - -# =========================================================================================================== -# OrbisAPI -# Make sure this stays up to date with the OrbisAPI submodule as ForgeGradle cannot inherit these rules. -# Maybe ForgeGradle 3.x will save us? -# =========================================================================================================== - -public net.minecraft.world.chunk.storage.ExtendedBlockStorage field_76682_b # blockRefCount -public net.minecraft.world.chunk.storage.ExtendedBlockStorage field_76683_c # tickRefCount - -public net.minecraft.world.chunk.BlockStateContainer field_186021_b # storage -public net.minecraft.world.chunk.BlockStateContainer field_186022_c # palette -public net.minecraft.world.chunk.BlockStateContainer field_186024_e # bits - -public-f net.minecraft.world.chunk.storage.ExtendedBlockStorage field_177488_d # data - -public net.minecraft.world.chunk.Chunk field_82912_p # heightMapMinimum -public net.minecraft.world.chunk.Chunk field_76638_b # heightMapPrecipitation -public net.minecraft.world.chunk.Chunk field_76634_f # heightMap \ No newline at end of file diff --git a/src/main/resources/META-INF/mods.toml b/src/main/resources/META-INF/mods.toml new file mode 100644 index 0000000000..99f6cc649a --- /dev/null +++ b/src/main/resources/META-INF/mods.toml @@ -0,0 +1,34 @@ +modLoader = "javafml" +loaderVersion = "[43,)" +license = "Assets: All Rights Reserved; Code: LGPL-3.0" + +[[mods]] +modId = "aether_ii" +version = "${file.jarVersion}" +displayName = "The Aether II" +displayURL = "https://www.curseforge.com/minecraft/mc-mods/aether-ii" +logoFile = "aether_ii.png" +credits = "The Aether Team AKA 'Gilded Games', former Aether Team Collaborators for their prior work on The Aether II Mod, GitHub contributors for their additional help, and C4 for Curios API, the source code of which can be found at https://github.com/TheIllusiveC4/Curios" +authors = "bconlon, Hugo Payn, Jaryt, Oscar Payn" +description = ''' + Work in progress... + ''' + +[[dependencies.aether_ii]] + modId = "forge" + mandatory = true + versionRange = "[43.1.38,)" + ordering = "NONE" + side = "BOTH" +[[dependencies.aether_ii]] + modId = "curios" + mandatory = true + versionRange = "[1.19.2-5.1.1.0,)" + ordering = "NONE" + side = "BOTH" +[[dependencies.aether_ii]] + modId = "minecraft" + mandatory = true + versionRange = "[1.19.2]" + ordering = "NONE" + side = "BOTH" \ No newline at end of file diff --git a/src/main/resources/aether_ii.mixins.json b/src/main/resources/aether_ii.mixins.json new file mode 100644 index 0000000000..f2964654e1 --- /dev/null +++ b/src/main/resources/aether_ii.mixins.json @@ -0,0 +1,16 @@ +{ + "required": true, + "package": "com.gildedgames.aetherii.mixin.mixins", + "minVersion": "0.8", + "compatibilityLevel": "JAVA_17", + "refmap": "aether_ii.refmap.json", + "mixins": [ + + ], + "client": [ + + ], + "injectors": { + "defaultRequire": 1 + } +} \ No newline at end of file diff --git a/doc/banner.png b/src/main/resources/aether_ii.png similarity index 100% rename from doc/banner.png rename to src/main/resources/aether_ii.png diff --git a/src/main/resources/assets/CREDITS.txt b/src/main/resources/assets/CREDITS.txt deleted file mode 100644 index 70c150bf8a..0000000000 --- a/src/main/resources/assets/CREDITS.txt +++ /dev/null @@ -1,29 +0,0 @@ -Author: RHumphries -License: CC-BY 3.0 (https://creativecommons.org/licenses/by/3.0/) -Name: rbh rain 01.wav -Source: https://freesound.org/people/RHumphries/sounds/2519/ -Usage: Light rain sound effects -Files: -- aether/sounds/environment/rain1.ogg -- aether/sounds/environment/rain2.ogg -- aether/sounds/environment/rain3.ogg - -Author: RHumphries -License: CC-BY 3.0 (https://creativecommons.org/licenses/by/3.0/) -Name: rbh rain 03.wav -Source: https://freesound.org/people/RHumphries/sounds/2521/ -Usage: Heavy rain sound effects -Files: - - aether/sounds/environment/rain_heavy1.ogg - - aether/sounds/environment/rain_heavy2.ogg - - aether/sounds/environment/rain_heavy3.ogg - -Author: Divinux -License: CC0 (https://creativecommons.org/publicdomain/zero/1.0/ -Name: wind.wav -Source: https://freesound.org/people/Divinux/sounds/254642/ -Usage: Snow storm sound effects -Files: - - aether/sounds/environment/wind1.ogg - - aether/sounds/environment/wind2.ogg - - aether/sounds/environment/wind3.ogg \ No newline at end of file diff --git a/src/main/resources/assets/LICENSE b/src/main/resources/assets/LICENSE deleted file mode 100644 index 4cc9cb55d1..0000000000 --- a/src/main/resources/assets/LICENSE +++ /dev/null @@ -1 +0,0 @@ -This work is licensed under the Creative Commons Attribution-ShareAlike 4.0 International License. To view a copy of this license, visit http://creativecommons.org/licenses/by-sa/4.0/ or send a letter to Creative Commons, PO Box 1866, Mountain View, CA 94042, USA. diff --git a/src/main/resources/assets/aether/blockstates/aercloud.json b/src/main/resources/assets/aether/blockstates/aercloud.json deleted file mode 100644 index 0c8a94b85e..0000000000 --- a/src/main/resources/assets/aether/blockstates/aercloud.json +++ /dev/null @@ -1,40 +0,0 @@ -{ - "variants": { - "variant=cold": { - "model": "aether:aercloud/cold_aercloud" - }, - "variant=blue": { - "model": "aether:aercloud/blue_aercloud" - }, - "variant=golden": { - "model": "aether:aercloud/golden_aercloud" - }, - "variant=green": { - "model": "aether:aercloud/green_aercloud" - }, - "facing=north,variant=purple": { - "model": "aether:aercloud/purple_aercloud" - }, - "facing=south,variant=purple": { - "model": "aether:aercloud/purple_aercloud", - "y": 180 - }, - "facing=west,variant=purple": { - "model": "aether:aercloud/purple_aercloud", - "y": 270 - }, - "facing=east,variant=purple": { - "model": "aether:aercloud/purple_aercloud", - "y": 90 - }, - "facing=up,variant=purple": { - "model": "aether:aercloud/purple_aercloud" - }, - "facing=down,variant=purple": { - "model": "aether:aercloud/purple_aercloud" - }, - "variant=storm": { - "model": "aether:aercloud/storm_aercloud" - } - } -} diff --git a/src/main/resources/assets/aether/blockstates/aether_crafting_table.json b/src/main/resources/assets/aether/blockstates/aether_crafting_table.json deleted file mode 100644 index 7c87d75ed4..0000000000 --- a/src/main/resources/assets/aether/blockstates/aether_crafting_table.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "variants": { - "normal": { - "model": "aether:crafting_tables/skyroot_crafting_table" - } - } -} diff --git a/src/main/resources/assets/aether/blockstates/aether_dirt.json b/src/main/resources/assets/aether/blockstates/aether_dirt.json deleted file mode 100644 index 1eeab4b008..0000000000 --- a/src/main/resources/assets/aether/blockstates/aether_dirt.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "variants": { - "variant=dirt": [ - { "model": "aether:aether_dirt/dirt" }, - { "model": "aether:aether_dirt/dirt", "y": 90 }, - { "model": "aether:aether_dirt/dirt", "y": 180 }, - { "model": "aether:aether_dirt/dirt", "y": 270 } - ], - "variant=coarse_dirt": [ - { "model": "aether:aether_dirt/coarse_dirt" }, - { "model": "aether:aether_dirt/coarse_dirt", "y": 90 }, - { "model": "aether:aether_dirt/coarse_dirt", "y": 180 }, - { "model": "aether:aether_dirt/coarse_dirt", "y": 270 } - ] - } -} diff --git a/src/main/resources/assets/aether/blockstates/aether_flower.json b/src/main/resources/assets/aether/blockstates/aether_flower.json deleted file mode 100644 index acb6c9b942..0000000000 --- a/src/main/resources/assets/aether/blockstates/aether_flower.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "variants": { - "snowy=false,variant=white_rose": { - "model": "aether:flowers/white_rose" - }, - "snowy=false,variant=purple_flower": { - "model": "aether:flowers/purple_flower" - }, - "snowy=false,variant=burstblossom": { - "model": "aether:flowers/burstblossom" - }, - "snowy=false,variant=aechor_sprout": { - "model": "aether:flowers/aechor_sprout" - }, - "snowy=true,variant=white_rose": { - "model": "aether:flowers/white_rose_snowy" - }, - "snowy=true,variant=purple_flower": { - "model": "aether:flowers/purple_flower_snowy" - }, - "snowy=true,variant=burstblossom": { - "model": "aether:flowers/burstblossom_snowy" - }, - "snowy=true,variant=aechor_sprout": { - "model": "aether:flowers/aechor_sprout_snowy" - } - } -} diff --git a/src/main/resources/assets/aether/blockstates/aether_grass.json b/src/main/resources/assets/aether/blockstates/aether_grass.json deleted file mode 100644 index 3c8ca31ba5..0000000000 --- a/src/main/resources/assets/aether/blockstates/aether_grass.json +++ /dev/null @@ -1,174 +0,0 @@ -{ - "variants": { - "snowy=false,variant=normal": [ - { - "model": "aether:grass/aether_grass" - }, - { - "model": "aether:grass/aether_grass", - "y": 90 - }, - { - "model": "aether:grass/aether_grass", - "y": 180 - }, - { - "model": "aether:grass/aether_grass", - "y": 270 - } - ], - "snowy=true,variant=normal": [ - { - "model": "aether:grass/aether_grass_snowed" - }, - { - "model": "aether:grass/aether_grass_snowed", - "y": 90 - }, - { - "model": "aether:grass/aether_grass_snowed", - "y": 180 - }, - { - "model": "aether:grass/aether_grass_snowed", - "y": 270 - } - ], - "snowy=true,variant=enchanted": [ - { - "model": "aether:grass/aether_grass_snowed" - }, - { - "model": "aether:grass/aether_grass_snowed", - "y": 90 - }, - { - "model": "aether:grass/aether_grass_snowed", - "y": 180 - }, - { - "model": "aether:grass/aether_grass_snowed", - "y": 270 - } - ], - "snowy=false,variant=enchanted": [ - { - "model": "aether:grass/enchanted_grass" - }, - { - "model": "aether:grass/enchanted_grass", - "y": 90 - }, - { - "model": "aether:grass/enchanted_grass", - "y": 180 - }, - { - "model": "aether:grass/enchanted_grass", - "y": 270 - } - ], - "snowy=true,variant=arctic": [ - { - "model": "aether:grass/aether_grass_snowed" - }, - { - "model": "aether:grass/aether_grass_snowed", - "y": 90 - }, - { - "model": "aether:grass/aether_grass_snowed", - "y": 180 - }, - { - "model": "aether:grass/aether_grass_snowed", - "y": 270 - } - ], - "snowy=false,variant=arctic": [ - { - "model": "aether:grass/arctic_grass" - }, - { - "model": "aether:grass/arctic_grass", - "y": 90 - }, - { - "model": "aether:grass/arctic_grass", - "y": 180 - }, - { - "model": "aether:grass/arctic_grass", - "y": 270 - } - ], - "snowy=true,variant=magnetic": [ - { - "model": "aether:grass/aether_grass_snowed" - }, - { - "model": "aether:grass/aether_grass_snowed", - "y": 90 - }, - { - "model": "aether:grass/aether_grass_snowed", - "y": 180 - }, - { - "model": "aether:grass/aether_grass_snowed", - "y": 270 - } - ], - "snowy=false,variant=magnetic": [ - { - "model": "aether:grass/magnetic_grass" - }, - { - "model": "aether:grass/magnetic_grass", - "y": 90 - }, - { - "model": "aether:grass/magnetic_grass", - "y": 180 - }, - { - "model": "aether:grass/magnetic_grass", - "y": 270 - } - ], - "snowy=true,variant=irradiated": [ - { - "model": "aether:grass/aether_grass_snowed" - }, - { - "model": "aether:grass/aether_grass_snowed", - "y": 90 - }, - { - "model": "aether:grass/aether_grass_snowed", - "y": 180 - }, - { - "model": "aether:grass/aether_grass_snowed", - "y": 270 - } - ], - "snowy=false,variant=irradiated": [ - { - "model": "aether:grass/irradiated_grass" - }, - { - "model": "aether:grass/irradiated_grass", - "y": 90 - }, - { - "model": "aether:grass/irradiated_grass", - "y": 180 - }, - { - "model": "aether:grass/irradiated_grass", - "y": 270 - } - ] - } -} diff --git a/src/main/resources/assets/aether/blockstates/aether_leaves.json b/src/main/resources/assets/aether/blockstates/aether_leaves.json deleted file mode 100644 index 60f280d43e..0000000000 --- a/src/main/resources/assets/aether/blockstates/aether_leaves.json +++ /dev/null @@ -1,37 +0,0 @@ -{ - "variants": { - "variant=blue_skyroot": { - "model": "aether:aether_leaves/blue_skyroot_leaves" - }, - "variant=green_skyroot": { - "model": "aether:aether_leaves/green_skyroot_leaves" - }, - "variant=dark_blue_skyroot": { - "model": "aether:aether_leaves/dark_blue_skyroot_leaves" - }, - "variant=blue_dark_skyroot": { - "model": "aether:aether_leaves/blue_dark_skyroot_leaves" - }, - "variant=green_dark_skyroot": { - "model": "aether:aether_leaves/green_dark_skyroot_leaves" - }, - "variant=dark_blue_dark_skyroot": { - "model": "aether:aether_leaves/dark_blue_dark_skyroot_leaves" - }, - "variant=blue_light_skyroot": { - "model": "aether:aether_leaves/blue_light_skyroot_leaves" - }, - "variant=green_light_skyroot": { - "model": "aether:aether_leaves/green_light_skyroot_leaves" - }, - "variant=dark_blue_light_skyroot": { - "model": "aether:aether_leaves/dark_blue_light_skyroot_leaves" - }, - "variant=golden_oak": { - "model": "aether:aether_leaves/golden_oak_leaves" - }, - "variant=therawood": { - "model": "aether:aether_leaves/therawood_leaves" - } - } -} diff --git a/src/main/resources/assets/aether/blockstates/aether_portal.json b/src/main/resources/assets/aether/blockstates/aether_portal.json deleted file mode 100644 index 4b5f91a0a2..0000000000 --- a/src/main/resources/assets/aether/blockstates/aether_portal.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "variants": { - "axis=z": { "model": "aether:aether_portal/aether_portal_ew" }, - "axis=x": { "model": "aether:aether_portal/aether_portal_ns" } - } -} diff --git a/src/main/resources/assets/aether/blockstates/aether_teleporter.json b/src/main/resources/assets/aether/blockstates/aether_teleporter.json deleted file mode 100644 index 550d2fba7e..0000000000 --- a/src/main/resources/assets/aether/blockstates/aether_teleporter.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "variants": { - "normal": [ - { "model": "aether:aether_teleporter" } - ] - } -} diff --git a/src/main/resources/assets/aether/blockstates/agiosite.json b/src/main/resources/assets/aether/blockstates/agiosite.json deleted file mode 100644 index a2ac6d3881..0000000000 --- a/src/main/resources/assets/aether/blockstates/agiosite.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "variants": { - "normal": { - "model": "aether:agiosite" - } - } -} diff --git a/src/main/resources/assets/aether/blockstates/agiosite_brick.json b/src/main/resources/assets/aether/blockstates/agiosite_brick.json deleted file mode 100644 index e00efec136..0000000000 --- a/src/main/resources/assets/aether/blockstates/agiosite_brick.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "variants": { - "normal": [ - { "model": "aether:agiosite_bricks/normal" } - ] - } -} diff --git a/src/main/resources/assets/aether/blockstates/agiosite_brick_decorative.json b/src/main/resources/assets/aether/blockstates/agiosite_brick_decorative.json deleted file mode 100644 index 303b3e22cd..0000000000 --- a/src/main/resources/assets/aether/blockstates/agiosite_brick_decorative.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "variants": { - "variant=base_bricks": [ - { "model": "aether:agiosite_bricks/base_bricks" } - ], - "variant=base_pillar": [ - { "model": "aether:agiosite_bricks/base_pillar" } - ], - "variant=capstone_bricks": [ - { "model": "aether:agiosite_bricks/capstone_bricks" } - ], - "variant=capstone_pillar": [ - { "model": "aether:agiosite_bricks/capstone_pillar" } - ], - "variant=flagstones": [ - { "model": "aether:agiosite_bricks/flagstones" } - ], - "variant=keystone": [ - { "model": "aether:agiosite_bricks/keystone" } - ] - } -} diff --git a/src/main/resources/assets/aether/blockstates/agiosite_brick_slab.json b/src/main/resources/assets/aether/blockstates/agiosite_brick_slab.json deleted file mode 100644 index 237e8ac8aa..0000000000 --- a/src/main/resources/assets/aether/blockstates/agiosite_brick_slab.json +++ /dev/null @@ -1,33 +0,0 @@ -{ - "forge_marker": 1, - "variants": { - "state=bottom": [ - { - "textures": { - "bottom": "aether:blocks/agiosite_brick", - "top": "aether:blocks/agiosite_brick", - "side": "aether:blocks/agiosite_brick" - }, - "model": "half_slab" - } - ], - "state=top": [ - { - "textures": { - "bottom": "aether:blocks/agiosite_brick", - "top": "aether:blocks/agiosite_brick", - "side": "aether:blocks/agiosite_brick" - }, - "model": "upper_slab" - } - ], - "state=full": [ - { - "textures": { - "all": "aether:blocks/agiosite_brick" - }, - "model": "cube_all" - } - ] - } -} diff --git a/src/main/resources/assets/aether/blockstates/agiosite_brick_stairs.json b/src/main/resources/assets/aether/blockstates/agiosite_brick_stairs.json deleted file mode 100644 index 5a641c7fe9..0000000000 --- a/src/main/resources/assets/aether/blockstates/agiosite_brick_stairs.json +++ /dev/null @@ -1,52 +0,0 @@ -{ - "forge_marker": 1, - "defaults": { - "textures": { - "bottom": "aether:blocks/agiosite_brick", - "side": "aether:blocks/agiosite_brick", - "top": "aether:blocks/agiosite_brick" - } - }, - "variants": { - "facing=east,half=bottom,shape=straight": { "model": "stairs" }, - "facing=west,half=bottom,shape=straight": { "model": "stairs", "y": 180, "uvlock": true }, - "facing=south,half=bottom,shape=straight": { "model": "stairs", "y": 90, "uvlock": true }, - "facing=north,half=bottom,shape=straight": { "model": "stairs", "y": 270, "uvlock": true }, - "facing=east,half=bottom,shape=outer_right": { "model": "outer_stairs" }, - "facing=west,half=bottom,shape=outer_right": { "model": "outer_stairs", "y": 180, "uvlock": true }, - "facing=south,half=bottom,shape=outer_right": { "model": "outer_stairs", "y": 90, "uvlock": true }, - "facing=north,half=bottom,shape=outer_right": { "model": "outer_stairs", "y": 270, "uvlock": true }, - "facing=east,half=bottom,shape=outer_left": { "model": "outer_stairs", "y": 270, "uvlock": true }, - "facing=west,half=bottom,shape=outer_left": { "model": "outer_stairs", "y": 90, "uvlock": true }, - "facing=south,half=bottom,shape=outer_left": { "model": "outer_stairs" }, - "facing=north,half=bottom,shape=outer_left": { "model": "outer_stairs", "y": 180, "uvlock": true }, - "facing=east,half=bottom,shape=inner_right": { "model": "inner_stairs" }, - "facing=west,half=bottom,shape=inner_right": { "model": "inner_stairs", "y": 180, "uvlock": true }, - "facing=south,half=bottom,shape=inner_right": { "model": "inner_stairs", "y": 90, "uvlock": true }, - "facing=north,half=bottom,shape=inner_right": { "model": "inner_stairs", "y": 270, "uvlock": true }, - "facing=east,half=bottom,shape=inner_left": { "model": "inner_stairs", "y": 270, "uvlock": true }, - "facing=west,half=bottom,shape=inner_left": { "model": "inner_stairs", "y": 90, "uvlock": true }, - "facing=south,half=bottom,shape=inner_left": { "model": "inner_stairs" }, - "facing=north,half=bottom,shape=inner_left": { "model": "inner_stairs", "y": 180, "uvlock": true }, - "facing=east,half=top,shape=straight": { "model": "stairs", "x": 180, "uvlock": true }, - "facing=west,half=top,shape=straight": { "model": "stairs", "x": 180, "y": 180, "uvlock": true }, - "facing=south,half=top,shape=straight": { "model": "stairs", "x": 180, "y": 90, "uvlock": true }, - "facing=north,half=top,shape=straight": { "model": "stairs", "x": 180, "y": 270, "uvlock": true }, - "facing=east,half=top,shape=outer_right": { "model": "outer_stairs", "x": 180, "y": 90, "uvlock": true }, - "facing=west,half=top,shape=outer_right": { "model": "outer_stairs", "x": 180, "y": 270, "uvlock": true }, - "facing=south,half=top,shape=outer_right": { "model": "outer_stairs", "x": 180, "y": 180, "uvlock": true }, - "facing=north,half=top,shape=outer_right": { "model": "outer_stairs", "x": 180, "uvlock": true }, - "facing=east,half=top,shape=outer_left": { "model": "outer_stairs", "x": 180, "uvlock": true }, - "facing=west,half=top,shape=outer_left": { "model": "outer_stairs", "x": 180, "y": 180, "uvlock": true }, - "facing=south,half=top,shape=outer_left": { "model": "outer_stairs", "x": 180, "y": 90, "uvlock": true }, - "facing=north,half=top,shape=outer_left": { "model": "outer_stairs", "x": 180, "y": 270, "uvlock": true }, - "facing=east,half=top,shape=inner_right": { "model": "inner_stairs", "x": 180, "y": 90, "uvlock": true }, - "facing=west,half=top,shape=inner_right": { "model": "inner_stairs", "x": 180, "y": 270, "uvlock": true }, - "facing=south,half=top,shape=inner_right": { "model": "inner_stairs", "x": 180, "y": 180, "uvlock": true }, - "facing=north,half=top,shape=inner_right": { "model": "inner_stairs", "x": 180, "uvlock": true }, - "facing=east,half=top,shape=inner_left": { "model": "inner_stairs", "x": 180, "uvlock": true }, - "facing=west,half=top,shape=inner_left": { "model": "inner_stairs", "x": 180, "y": 180, "uvlock": true }, - "facing=south,half=top,shape=inner_left": { "model": "inner_stairs", "x": 180, "y": 90, "uvlock": true }, - "facing=north,half=top,shape=inner_left": { "model": "inner_stairs", "x": 180, "y": 270, "uvlock": true } - } -} diff --git a/src/main/resources/assets/aether/blockstates/agiosite_brick_wall.json b/src/main/resources/assets/aether/blockstates/agiosite_brick_wall.json deleted file mode 100644 index 6a75e6b770..0000000000 --- a/src/main/resources/assets/aether/blockstates/agiosite_brick_wall.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "multipart": [ - { - "when": { "up": "true" }, - "apply": { "model": "aether:aether_wall/agiosite_brick_wall_post" } - }, - { - "when": { "north": "true" }, - "apply": { "model": "aether:aether_wall/agiosite_brick_wall_side", "uvlock": true } - }, - { - "when": { "east": "true" }, - "apply": { "model": "aether:aether_wall/agiosite_brick_wall_side", "y": 90, "uvlock": true } - }, - { - "when": { "south": "true" }, - "apply": { "model": "aether:aether_wall/agiosite_brick_wall_side", "y": 180, "uvlock": true } - }, - { - "when": { "west": "true" }, - "apply": { "model": "aether:aether_wall/agiosite_brick_wall_side", "y": 270, "uvlock": true } - } - ] -} diff --git a/src/main/resources/assets/aether/blockstates/agiosite_pillar.json b/src/main/resources/assets/aether/blockstates/agiosite_pillar.json deleted file mode 100644 index 8ad0196cc3..0000000000 --- a/src/main/resources/assets/aether/blockstates/agiosite_pillar.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "variants": { - "axis=y": { - "model": "aether:agiosite_bricks/pillar" - }, - "axis=z": { - "model": "aether:agiosite_bricks/pillar", - "x": 90 - }, - "axis=x": { - "model": "aether:agiosite_bricks/pillar", - "x": 90, "y": 90 - } - } -} diff --git a/src/main/resources/assets/aether/blockstates/agiosite_slab.json b/src/main/resources/assets/aether/blockstates/agiosite_slab.json deleted file mode 100644 index ec3e6a60b0..0000000000 --- a/src/main/resources/assets/aether/blockstates/agiosite_slab.json +++ /dev/null @@ -1,33 +0,0 @@ -{ - "forge_marker": 1, - "variants": { - "state=bottom": [ - { - "textures": { - "bottom": "aether:blocks/agiosite", - "top": "aether:blocks/agiosite", - "side": "aether:blocks/agiosite" - }, - "model": "half_slab" - } - ], - "state=top": [ - { - "textures": { - "bottom": "aether:blocks/agiosite", - "top": "aether:blocks/agiosite", - "side": "aether:blocks/agiosite" - }, - "model": "upper_slab" - } - ], - "state=full": [ - { - "textures": { - "all": "aether:blocks/agiosite" - }, - "model": "cube_all" - } - ] - } -} diff --git a/src/main/resources/assets/aether/blockstates/agiosite_stairs.json b/src/main/resources/assets/aether/blockstates/agiosite_stairs.json deleted file mode 100644 index 8c8ce6603c..0000000000 --- a/src/main/resources/assets/aether/blockstates/agiosite_stairs.json +++ /dev/null @@ -1,52 +0,0 @@ -{ - "forge_marker": 1, - "defaults": { - "textures": { - "bottom": "aether:blocks/agiosite", - "side": "aether:blocks/agiosite", - "top": "aether:blocks/agiosite" - } - }, - "variants": { - "facing=east,half=bottom,shape=straight": { "model": "stairs" }, - "facing=west,half=bottom,shape=straight": { "model": "stairs", "y": 180, "uvlock": true }, - "facing=south,half=bottom,shape=straight": { "model": "stairs", "y": 90, "uvlock": true }, - "facing=north,half=bottom,shape=straight": { "model": "stairs", "y": 270, "uvlock": true }, - "facing=east,half=bottom,shape=outer_right": { "model": "outer_stairs" }, - "facing=west,half=bottom,shape=outer_right": { "model": "outer_stairs", "y": 180, "uvlock": true }, - "facing=south,half=bottom,shape=outer_right": { "model": "outer_stairs", "y": 90, "uvlock": true }, - "facing=north,half=bottom,shape=outer_right": { "model": "outer_stairs", "y": 270, "uvlock": true }, - "facing=east,half=bottom,shape=outer_left": { "model": "outer_stairs", "y": 270, "uvlock": true }, - "facing=west,half=bottom,shape=outer_left": { "model": "outer_stairs", "y": 90, "uvlock": true }, - "facing=south,half=bottom,shape=outer_left": { "model": "outer_stairs" }, - "facing=north,half=bottom,shape=outer_left": { "model": "outer_stairs", "y": 180, "uvlock": true }, - "facing=east,half=bottom,shape=inner_right": { "model": "inner_stairs" }, - "facing=west,half=bottom,shape=inner_right": { "model": "inner_stairs", "y": 180, "uvlock": true }, - "facing=south,half=bottom,shape=inner_right": { "model": "inner_stairs", "y": 90, "uvlock": true }, - "facing=north,half=bottom,shape=inner_right": { "model": "inner_stairs", "y": 270, "uvlock": true }, - "facing=east,half=bottom,shape=inner_left": { "model": "inner_stairs", "y": 270, "uvlock": true }, - "facing=west,half=bottom,shape=inner_left": { "model": "inner_stairs", "y": 90, "uvlock": true }, - "facing=south,half=bottom,shape=inner_left": { "model": "inner_stairs" }, - "facing=north,half=bottom,shape=inner_left": { "model": "inner_stairs", "y": 180, "uvlock": true }, - "facing=east,half=top,shape=straight": { "model": "stairs", "x": 180, "uvlock": true }, - "facing=west,half=top,shape=straight": { "model": "stairs", "x": 180, "y": 180, "uvlock": true }, - "facing=south,half=top,shape=straight": { "model": "stairs", "x": 180, "y": 90, "uvlock": true }, - "facing=north,half=top,shape=straight": { "model": "stairs", "x": 180, "y": 270, "uvlock": true }, - "facing=east,half=top,shape=outer_right": { "model": "outer_stairs", "x": 180, "y": 90, "uvlock": true }, - "facing=west,half=top,shape=outer_right": { "model": "outer_stairs", "x": 180, "y": 270, "uvlock": true }, - "facing=south,half=top,shape=outer_right": { "model": "outer_stairs", "x": 180, "y": 180, "uvlock": true }, - "facing=north,half=top,shape=outer_right": { "model": "outer_stairs", "x": 180, "uvlock": true }, - "facing=east,half=top,shape=outer_left": { "model": "outer_stairs", "x": 180, "uvlock": true }, - "facing=west,half=top,shape=outer_left": { "model": "outer_stairs", "x": 180, "y": 180, "uvlock": true }, - "facing=south,half=top,shape=outer_left": { "model": "outer_stairs", "x": 180, "y": 90, "uvlock": true }, - "facing=north,half=top,shape=outer_left": { "model": "outer_stairs", "x": 180, "y": 270, "uvlock": true }, - "facing=east,half=top,shape=inner_right": { "model": "inner_stairs", "x": 180, "y": 90, "uvlock": true }, - "facing=west,half=top,shape=inner_right": { "model": "inner_stairs", "x": 180, "y": 270, "uvlock": true }, - "facing=south,half=top,shape=inner_right": { "model": "inner_stairs", "x": 180, "y": 180, "uvlock": true }, - "facing=north,half=top,shape=inner_right": { "model": "inner_stairs", "x": 180, "uvlock": true }, - "facing=east,half=top,shape=inner_left": { "model": "inner_stairs", "x": 180, "uvlock": true }, - "facing=west,half=top,shape=inner_left": { "model": "inner_stairs", "x": 180, "y": 180, "uvlock": true }, - "facing=south,half=top,shape=inner_left": { "model": "inner_stairs", "x": 180, "y": 90, "uvlock": true }, - "facing=north,half=top,shape=inner_left": { "model": "inner_stairs", "x": 180, "y": 270, "uvlock": true } - } -} diff --git a/src/main/resources/assets/aether/blockstates/agiosite_wall.json b/src/main/resources/assets/aether/blockstates/agiosite_wall.json deleted file mode 100644 index 077fcc28e5..0000000000 --- a/src/main/resources/assets/aether/blockstates/agiosite_wall.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "multipart": [ - { - "when": { "up": "true" }, - "apply": { "model": "aether:aether_wall/agiosite_wall_post" } - }, - { - "when": { "north": "true" }, - "apply": { "model": "aether:aether_wall/agiosite_wall_side", "uvlock": true } - }, - { - "when": { "east": "true" }, - "apply": { "model": "aether:aether_wall/agiosite_wall_side", "y": 90, "uvlock": true } - }, - { - "when": { "south": "true" }, - "apply": { "model": "aether:aether_wall/agiosite_wall_side", "y": 180, "uvlock": true } - }, - { - "when": { "west": "true" }, - "apply": { "model": "aether:aether_wall/agiosite_wall_side", "y": 270, "uvlock": true } - } - ] -} diff --git a/src/main/resources/assets/aether/blockstates/altar.json b/src/main/resources/assets/aether/blockstates/altar.json deleted file mode 100644 index c22da549e1..0000000000 --- a/src/main/resources/assets/aether/blockstates/altar.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "variants": { - "normal": [ - { "model": "aether:altar" } - ] - } -} diff --git a/src/main/resources/assets/aether/blockstates/amberoot_leaves.json b/src/main/resources/assets/aether/blockstates/amberoot_leaves.json deleted file mode 100644 index 83d542beec..0000000000 --- a/src/main/resources/assets/aether/blockstates/amberoot_leaves.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "variants": { - "normal": { - "model": "aether:leaves/amberoot_leaves" - } - } -} diff --git a/src/main/resources/assets/aether/blockstates/ambrosium_ore.json b/src/main/resources/assets/aether/blockstates/ambrosium_ore.json deleted file mode 100644 index 1e746b103b..0000000000 --- a/src/main/resources/assets/aether/blockstates/ambrosium_ore.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "variants": { - "normal": { - "model": "aether:ores/ambrosium_ore" - } - } -} diff --git a/src/main/resources/assets/aether/blockstates/ambrosium_torch.json b/src/main/resources/assets/aether/blockstates/ambrosium_torch.json deleted file mode 100644 index 0d0012eafa..0000000000 --- a/src/main/resources/assets/aether/blockstates/ambrosium_torch.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "variants": { - "facing=up": { - "model": "aether:ambrosium_torch/ambrosium_torch" - }, - "facing=east": { - "model": "aether:ambrosium_torch/ambrosium_torch_wall" - }, - "facing=south": { - "model": "aether:ambrosium_torch/ambrosium_torch_wall", - "y": 90 - }, - "facing=west": { - "model": "aether:ambrosium_torch/ambrosium_torch_wall", - "y": 180 - }, - "facing=north": { - "model": "aether:ambrosium_torch/ambrosium_torch_wall", - "y": 270 - } - } -} diff --git a/src/main/resources/assets/aether/blockstates/arctic_spikespring.json b/src/main/resources/assets/aether/blockstates/arctic_spikespring.json deleted file mode 100644 index b54749a149..0000000000 --- a/src/main/resources/assets/aether/blockstates/arctic_spikespring.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "variants": { - "snowy=false": { - "model": "aether:flowers/arctic_spikespring" - }, - "snowy=true": { - "model": "aether:flowers/arctic_spikespring_snowy" - } - } -} diff --git a/src/main/resources/assets/aether/blockstates/arkenium_door.json b/src/main/resources/assets/aether/blockstates/arkenium_door.json deleted file mode 100644 index 93bec848c9..0000000000 --- a/src/main/resources/assets/aether/blockstates/arkenium_door.json +++ /dev/null @@ -1,100 +0,0 @@ -{ - "variants": { - "facing=east,half=lower,hinge=left,open=false": { - "model": "aether:doors/arkenium_door_bottom_left" - }, - "facing=south,half=lower,hinge=left,open=false": { - "model": "aether:doors/arkenium_door_bottom_left", "y": 90 - }, - "facing=west,half=lower,hinge=left,open=false": { - "model": "aether:doors/arkenium_door_bottom_left", "y": 180 - }, - "facing=north,half=lower,hinge=left,open=false": { - "model": "aether:doors/arkenium_door_bottom_left", "y": 270 - }, - "facing=east,half=lower,hinge=right,open=false": { - "model": "aether:doors/arkenium_door_bottom_right" - }, - "facing=south,half=lower,hinge=right,open=false": { - "model": "aether:doors/arkenium_door_bottom_right", "y": 90 - }, - "facing=west,half=lower,hinge=right,open=false": { - "model": "aether:doors/arkenium_door_bottom_right", "y": 180 - }, - "facing=north,half=lower,hinge=right,open=false": { - "model": "aether:doors/arkenium_door_bottom_right", "y": 270 - }, - "facing=east,half=lower,hinge=left,open=true": { - "model": "aether:doors/arkenium_door_bottom_right", "y": 90 - }, - "facing=south,half=lower,hinge=left,open=true": { - "model": "aether:doors/arkenium_door_bottom_right", "y": 180 - }, - "facing=west,half=lower,hinge=left,open=true": { - "model": "aether:doors/arkenium_door_bottom_right", "y": 270 - }, - "facing=north,half=lower,hinge=left,open=true": { - "model": "aether:doors/arkenium_door_bottom_right" - }, - "facing=east,half=lower,hinge=right,open=true": { - "model": "aether:doors/arkenium_door_bottom_left", "y": 270 - }, - "facing=south,half=lower,hinge=right,open=true": { - "model": "aether:doors/arkenium_door_bottom_left" - }, - "facing=west,half=lower,hinge=right,open=true": { - "model": "aether:doors/arkenium_door_bottom_left", "y": 90 - }, - "facing=north,half=lower,hinge=right,open=true": { - "model": "aether:doors/arkenium_door_bottom_left", "y": 180 - }, - "facing=east,half=upper,hinge=left,open=false": { - "model": "aether:doors/arkenium_door_top_left" - }, - "facing=south,half=upper,hinge=left,open=false": { - "model": "aether:doors/arkenium_door_top_left", "y": 90 - }, - "facing=west,half=upper,hinge=left,open=false": { - "model": "aether:doors/arkenium_door_top_left", "y": 180 - }, - "facing=north,half=upper,hinge=left,open=false": { - "model": "aether:doors/arkenium_door_top_left", "y": 270 - }, - "facing=east,half=upper,hinge=right,open=false": { - "model": "aether:doors/arkenium_door_top_right" - }, - "facing=south,half=upper,hinge=right,open=false": { - "model": "aether:doors/arkenium_door_top_right", "y": 90 - }, - "facing=west,half=upper,hinge=right,open=false": { - "model": "aether:doors/arkenium_door_top_right", "y": 180 - }, - "facing=north,half=upper,hinge=right,open=false": { - "model": "aether:doors/arkenium_door_top_right", "y": 270 - }, - "facing=east,half=upper,hinge=left,open=true": { - "model": "aether:doors/arkenium_door_top_right", "y": 90 - }, - "facing=south,half=upper,hinge=left,open=true": { - "model": "aether:doors/arkenium_door_top_right", "y": 180 - }, - "facing=west,half=upper,hinge=left,open=true": { - "model": "aether:doors/arkenium_door_top_right", "y": 270 - }, - "facing=north,half=upper,hinge=left,open=true": { - "model": "aether:doors/arkenium_door_top_right" - }, - "facing=east,half=upper,hinge=right,open=true": { - "model": "aether:doors/arkenium_door_top_left", "y": 270 - }, - "facing=south,half=upper,hinge=right,open=true": { - "model": "aether:doors/arkenium_door_top_left" - }, - "facing=west,half=upper,hinge=right,open=true": { - "model": "aether:doors/arkenium_door_top_left", "y": 90 - }, - "facing=north,half=upper,hinge=right,open=true": { - "model": "aether:doors/arkenium_door_top_left", "y": 180 - } - } -} diff --git a/src/main/resources/assets/aether/blockstates/arkenium_ore.json b/src/main/resources/assets/aether/blockstates/arkenium_ore.json deleted file mode 100644 index 9d6cc2e8a2..0000000000 --- a/src/main/resources/assets/aether/blockstates/arkenium_ore.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "variants": { - "normal": { - "model": "aether:ores/arkenium_ore" - } - } -} diff --git a/src/main/resources/assets/aether/blockstates/barkshroom.json b/src/main/resources/assets/aether/blockstates/barkshroom.json deleted file mode 100644 index a11e923cf9..0000000000 --- a/src/main/resources/assets/aether/blockstates/barkshroom.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "variants": { - "snowy=false": { - "model": "aether:flowers/barkshroom" - }, - "snowy=true": { - "model": "aether:flowers/barkshroom_snowy" - } - } -} diff --git a/src/main/resources/assets/aether/blockstates/blue_dark_skyroot_leaves.json b/src/main/resources/assets/aether/blockstates/blue_dark_skyroot_leaves.json deleted file mode 100644 index 698a549700..0000000000 --- a/src/main/resources/assets/aether/blockstates/blue_dark_skyroot_leaves.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "variants": { - "normal": { - "model": "aether:leaves/blue_dark_skyroot_leaves" - } - } -} diff --git a/src/main/resources/assets/aether/blockstates/blue_light_skyroot_leaves.json b/src/main/resources/assets/aether/blockstates/blue_light_skyroot_leaves.json deleted file mode 100644 index 1ae2cdd7e9..0000000000 --- a/src/main/resources/assets/aether/blockstates/blue_light_skyroot_leaves.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "variants": { - "normal": { - "model": "aether:leaves/blue_light_skyroot_leaves" - } - } -} diff --git a/src/main/resources/assets/aether/blockstates/blue_skyroot_leaves.json b/src/main/resources/assets/aether/blockstates/blue_skyroot_leaves.json deleted file mode 100644 index bf9465a89d..0000000000 --- a/src/main/resources/assets/aether/blockstates/blue_skyroot_leaves.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "variants": { - "normal": { - "model": "aether:leaves/blue_skyroot_leaves" - } - } -} diff --git a/src/main/resources/assets/aether/blockstates/blue_swingtip.json b/src/main/resources/assets/aether/blockstates/blue_swingtip.json deleted file mode 100644 index ed66b5cea3..0000000000 --- a/src/main/resources/assets/aether/blockstates/blue_swingtip.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "variants": { - "snowy=false": { - "model": "aether:flowers/blue_swingtip" - }, - "snowy=true": { - "model": "aether:flowers/blue_swingtip_snowy" - } - } -} diff --git a/src/main/resources/assets/aether/blockstates/blueberry_bush.json b/src/main/resources/assets/aether/blockstates/blueberry_bush.json deleted file mode 100644 index 48de9b8b94..0000000000 --- a/src/main/resources/assets/aether/blockstates/blueberry_bush.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "variants": { - "harvestable=true": { - "model": "aether:bushes/blueberry_bush_ripe" - }, - "harvestable=false": { - "model": "aether:bushes/blueberry_bush_stem" - } - } -} diff --git a/src/main/resources/assets/aether/blockstates/brettl_plant.json b/src/main/resources/assets/aether/blockstates/brettl_plant.json deleted file mode 100644 index 66a7b07aac..0000000000 --- a/src/main/resources/assets/aether/blockstates/brettl_plant.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "variants": { - "variant=base": { - "model": "aether:brettl_plant/brettl_plant_base" - }, - "variant=mid": { - "model": "aether:brettl_plant/brettl_plant_mid" - }, - "variant=top": { - "model": "aether:brettl_plant/brettl_plant_top" - }, - "variant=base_g": { - "model": "aether:brettl_plant/brettl_plant_base_g" - }, - "variant=mid_g": { - "model": "aether:brettl_plant/brettl_plant_mid_g" - }, - "variant=top_g": { - "model": "aether:brettl_plant/brettl_plant_top_g" - } - } -} diff --git a/src/main/resources/assets/aether/blockstates/candy_cane_block.json b/src/main/resources/assets/aether/blockstates/candy_cane_block.json deleted file mode 100644 index 940ea4a765..0000000000 --- a/src/main/resources/assets/aether/blockstates/candy_cane_block.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "variants": { - "axis=y": { - "model": "aether:candy_cane_block" - }, - "axis=z": { - "model": "aether:candy_cane_block", - "x": 90 - }, - "axis=x": { - "model": "aether:candy_cane_block", - "x": 90, "y": 90 - }, - "axis=none": { - "model": "aether:candy_cane_block_full" - } - } -} diff --git a/src/main/resources/assets/aether/blockstates/candy_cane_wall.json b/src/main/resources/assets/aether/blockstates/candy_cane_wall.json deleted file mode 100644 index 94b87018d7..0000000000 --- a/src/main/resources/assets/aether/blockstates/candy_cane_wall.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "multipart": [ - { - "when": { "up": "true" }, - "apply": { "model": "aether:aether_wall/candy_cane_wall_post" } - }, - { - "when": { "north": "true" }, - "apply": { "model": "aether:aether_wall/candy_cane_wall_side", "uvlock": true } - }, - { - "when": { "east": "true" }, - "apply": { "model": "aether:aether_wall/candy_cane_wall_side", "y": 90, "uvlock": true } - }, - { - "when": { "south": "true" }, - "apply": { "model": "aether:aether_wall/candy_cane_wall_side", "y": 180, "uvlock": true } - }, - { - "when": { "west": "true" }, - "apply": { "model": "aether:aether_wall/candy_cane_wall_side", "y": 270, "uvlock": true } - } - ] -} diff --git a/src/main/resources/assets/aether/blockstates/cloudwool_block.json b/src/main/resources/assets/aether/blockstates/cloudwool_block.json deleted file mode 100644 index a7a6ad54f1..0000000000 --- a/src/main/resources/assets/aether/blockstates/cloudwool_block.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "variants": { - "normal": { - "model": "aether:cloudwool_block" - } - } -} diff --git a/src/main/resources/assets/aether/blockstates/cloudwool_carpet.json b/src/main/resources/assets/aether/blockstates/cloudwool_carpet.json deleted file mode 100644 index 7bd93ef9aa..0000000000 --- a/src/main/resources/assets/aether/blockstates/cloudwool_carpet.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "variants": { - "normal": { - "model": "aether:cloudwool_carpet" - } - } -} diff --git a/src/main/resources/assets/aether/blockstates/continuum_ore.json b/src/main/resources/assets/aether/blockstates/continuum_ore.json deleted file mode 100644 index 212f252a37..0000000000 --- a/src/main/resources/assets/aether/blockstates/continuum_ore.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "variants": { - "normal": { - "model": "aether:ores/continuum_ore" - } - } -} diff --git a/src/main/resources/assets/aether/blockstates/crude_scatterglass.json b/src/main/resources/assets/aether/blockstates/crude_scatterglass.json deleted file mode 100644 index 3c6817317c..0000000000 --- a/src/main/resources/assets/aether/blockstates/crude_scatterglass.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "variants": { - "normal": [ - { "model": "aether:crude_scatterglass/normal" } - ] - } -} diff --git a/src/main/resources/assets/aether/blockstates/crude_scatterglass_decorative.json b/src/main/resources/assets/aether/blockstates/crude_scatterglass_decorative.json deleted file mode 100644 index 5e95963e09..0000000000 --- a/src/main/resources/assets/aether/blockstates/crude_scatterglass_decorative.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "variants": { - "variant=skyroot_frame": [ - { "model": "aether:crude_scatterglass/skyroot_frame" } - ], - "variant=arkenium_frame": [ - { "model": "aether:crude_scatterglass/arkenium_frame" } - ] - } -} diff --git a/src/main/resources/assets/aether/blockstates/crude_scatterglass_pane.json b/src/main/resources/assets/aether/blockstates/crude_scatterglass_pane.json deleted file mode 100644 index 768e7265d6..0000000000 --- a/src/main/resources/assets/aether/blockstates/crude_scatterglass_pane.json +++ /dev/null @@ -1,37 +0,0 @@ -{ - "multipart": [ - { "apply": { "model": "aether:glass_pane/crude_scatterglass/post" } }, - { - "when": { "north": true }, - "apply": { "model": "aether:glass_pane/crude_scatterglass/side" } - }, - { - "when": { "east": true }, - "apply": { "model": "aether:glass_pane/crude_scatterglass/side", "y": 90 } - }, - { - "when": { "south": true }, - "apply": { "model": "aether:glass_pane/crude_scatterglass/side_alt" } - }, - { - "when": { "west": true }, - "apply": { "model": "aether:glass_pane/crude_scatterglass/side_alt", "y": 90 } - }, - { - "when": { "north": false }, - "apply": { "model": "aether:glass_pane/crude_scatterglass/noside" } - }, - { - "when": { "east": false }, - "apply": { "model": "aether:glass_pane/crude_scatterglass/noside_alt" } - }, - { - "when": { "south": false }, - "apply": { "model": "aether:glass_pane/crude_scatterglass/noside_alt", "y": 90 } - }, - { - "when": { "west": false }, - "apply": { "model": "aether:glass_pane/crude_scatterglass/noside", "y": 270 } - } - ] -} diff --git a/src/main/resources/assets/aether/blockstates/crude_scatterglass_pane_decorative.json b/src/main/resources/assets/aether/blockstates/crude_scatterglass_pane_decorative.json deleted file mode 100644 index 2d2c0e07ab..0000000000 --- a/src/main/resources/assets/aether/blockstates/crude_scatterglass_pane_decorative.json +++ /dev/null @@ -1,113 +0,0 @@ -{ - "multipart": [ - { - "when": { - "variant": "skyroot_frame" - }, "apply": { - "model": "aether:glass_pane/crude_scatterglass_skyroot/post" - } - }, { - "when": { - "north": true, "variant": "skyroot_frame" - }, "apply": { - "model": "aether:glass_pane/crude_scatterglass_skyroot/side" - } - }, { - "when": { - "east": true, "variant": "skyroot_frame" - }, "apply": { - "model": "aether:glass_pane/crude_scatterglass_skyroot/side", "y": 90 - } - }, { - "when": { - "south": true, "variant": "skyroot_frame" - }, "apply": { - "model": "aether:glass_pane/crude_scatterglass_skyroot/side_alt" - } - }, { - "when": { - "west": true, "variant": "skyroot_frame" - }, "apply": { - "model": "aether:glass_pane/crude_scatterglass_skyroot/side_alt", "y": 90 - } - }, { - "when": { - "north": false, "variant": "skyroot_frame" - }, "apply": { - "model": "aether:glass_pane/crude_scatterglass_skyroot/noside" - } - }, { - "when": { - "east": false, "variant": "skyroot_frame" - }, "apply": { - "model": "aether:glass_pane/crude_scatterglass_skyroot/noside_alt" - } - }, { - "when": { - "south": false, "variant": "skyroot_frame" - }, "apply": { - "model": "aether:glass_pane/crude_scatterglass_skyroot/noside_alt", "y": 90 - } - }, { - "when": { - "west": false, "variant": "skyroot_frame" - }, "apply": { - "model": "aether:glass_pane/crude_scatterglass_skyroot/noside", "y": 270 - } - }, { - "when": { - "variant": "arkenium_frame" - }, "apply": { - "model": "aether:glass_pane/crude_scatterglass_arkenium/post" - } - }, { - "when": { - "north": true, "variant": "arkenium_frame" - }, "apply": { - "model": "aether:glass_pane/crude_scatterglass_arkenium/side" - } - }, { - "when": { - "east": true, "variant": "arkenium_frame" - }, "apply": { - "model": "aether:glass_pane/crude_scatterglass_arkenium/side", "y": 90 - } - }, { - "when": { - "south": true, "variant": "arkenium_frame" - }, "apply": { - "model": "aether:glass_pane/crude_scatterglass_arkenium/side_alt" - } - }, { - "when": { - "west": true, "variant": "arkenium_frame" - }, "apply": { - "model": "aether:glass_pane/crude_scatterglass_arkenium/side_alt", "y": 90 - } - }, { - "when": { - "north": false, "variant": "arkenium_frame" - }, "apply": { - "model": "aether:glass_pane/crude_scatterglass_arkenium/noside" - } - }, { - "when": { - "east": false, "variant": "arkenium_frame" - }, "apply": { - "model": "aether:glass_pane/crude_scatterglass_arkenium/noside_alt" - } - }, { - "when": { - "south": false, "variant": "arkenium_frame" - }, "apply": { - "model": "aether:glass_pane/crude_scatterglass_arkenium/noside_alt", "y": 90 - } - }, { - "when": { - "west": false, "variant": "arkenium_frame" - }, "apply": { - "model": "aether:glass_pane/crude_scatterglass_arkenium/noside", "y": 270 - } - } - ] -} diff --git a/src/main/resources/assets/aether/blockstates/dark_blue_dark_skyroot_leaves.json b/src/main/resources/assets/aether/blockstates/dark_blue_dark_skyroot_leaves.json deleted file mode 100644 index a439c0c90b..0000000000 --- a/src/main/resources/assets/aether/blockstates/dark_blue_dark_skyroot_leaves.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "variants": { - "normal": { - "model": "aether:leaves/dark_blue_dark_skyroot_leaves" - } - } -} diff --git a/src/main/resources/assets/aether/blockstates/dark_blue_light_skyroot_leaves.json b/src/main/resources/assets/aether/blockstates/dark_blue_light_skyroot_leaves.json deleted file mode 100644 index 2a34e536fb..0000000000 --- a/src/main/resources/assets/aether/blockstates/dark_blue_light_skyroot_leaves.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "variants": { - "normal": { - "model": "aether:leaves/dark_blue_light_skyroot_leaves" - } - } -} diff --git a/src/main/resources/assets/aether/blockstates/dark_blue_skyroot_leaves.json b/src/main/resources/assets/aether/blockstates/dark_blue_skyroot_leaves.json deleted file mode 100644 index dbb6c0802c..0000000000 --- a/src/main/resources/assets/aether/blockstates/dark_blue_skyroot_leaves.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "variants": { - "normal": { - "model": "aether:leaves/dark_blue_skyroot_leaves" - } - } -} diff --git a/src/main/resources/assets/aether/blockstates/dark_skyroot_beam.json b/src/main/resources/assets/aether/blockstates/dark_skyroot_beam.json deleted file mode 100644 index 92df8e9f59..0000000000 --- a/src/main/resources/assets/aether/blockstates/dark_skyroot_beam.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "variants": { - "axis=y": { - "model": "aether:dark_skyroot_planks/beam" - }, - "axis=z": { - "model": "aether:dark_skyroot_planks/beam", - "x": 90 - }, - "axis=x": { - "model": "aether:dark_skyroot_planks/beam", - "x": 90, "y": 90 - } - } -} diff --git a/src/main/resources/assets/aether/blockstates/dark_skyroot_decorative.json b/src/main/resources/assets/aether/blockstates/dark_skyroot_decorative.json deleted file mode 100644 index b5ce1e23f9..0000000000 --- a/src/main/resources/assets/aether/blockstates/dark_skyroot_decorative.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "variants": { - "variant=base_planks": [ - { "model": "aether:dark_skyroot_planks/base_planks" } - ], - "variant=base_beam": [ - { "model": "aether:dark_skyroot_planks/base_beam" } - ], - "variant=top_planks": [ - { "model": "aether:dark_skyroot_planks/top_planks" } - ], - "variant=top_beam": [ - { "model": "aether:dark_skyroot_planks/top_beam" } - ], - "variant=floorboards": [ - { "model": "aether:dark_skyroot_planks/floorboards" } - ], - "variant=highlight": [ - { "model": "aether:dark_skyroot_planks/highlight" } - ], - "variant=tiles": [ - { "model": "aether:dark_skyroot_planks/tiles" } - ], - "variant=tiles_small": [ - { "model": "aether:dark_skyroot_planks/tiles_small" } - - ] - } -} diff --git a/src/main/resources/assets/aether/blockstates/dark_skyroot_log.json b/src/main/resources/assets/aether/blockstates/dark_skyroot_log.json deleted file mode 100644 index 0d3677b866..0000000000 --- a/src/main/resources/assets/aether/blockstates/dark_skyroot_log.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "variants": { - "axis=y": { - "model": "aether:logs/dark_skyroot_log" - }, - "axis=z": { - "model": "aether:logs/dark_skyroot_log", - "x": 90 - }, - "axis=x": { - "model": "aether:logs/dark_skyroot_log", - "x": 90, "y": 90 - }, - "axis=none": { - "model": "aether:logs/dark_skyroot_log_bark" - } - } -} diff --git a/src/main/resources/assets/aether/blockstates/dark_skyroot_planks.json b/src/main/resources/assets/aether/blockstates/dark_skyroot_planks.json deleted file mode 100644 index 4d09750f6c..0000000000 --- a/src/main/resources/assets/aether/blockstates/dark_skyroot_planks.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "variants": { - "normal": [ - { "model": "aether:dark_skyroot_planks/normal" } - ] - } -} diff --git a/src/main/resources/assets/aether/blockstates/divine_stone_wall.json b/src/main/resources/assets/aether/blockstates/divine_stone_wall.json deleted file mode 100644 index d4a7c83e6b..0000000000 --- a/src/main/resources/assets/aether/blockstates/divine_stone_wall.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "multipart": [ - { - "when": { "up": "true" }, - "apply": { "model": "aether:aether_wall/divine_stone_wall_post" } - }, - { - "when": { "north": "true" }, - "apply": { "model": "aether:aether_wall/divine_stone_wall_side", "uvlock": true } - }, - { - "when": { "east": "true" }, - "apply": { "model": "aether:aether_wall/divine_stone_wall_side", "y": 90, "uvlock": true } - }, - { - "when": { "south": "true" }, - "apply": { "model": "aether:aether_wall/divine_stone_wall_side", "y": 180, "uvlock": true } - }, - { - "when": { "west": "true" }, - "apply": { "model": "aether:aether_wall/divine_stone_wall_side", "y": 270, "uvlock": true } - } - ] -} diff --git a/src/main/resources/assets/aether/blockstates/faded_holystone_brick.json b/src/main/resources/assets/aether/blockstates/faded_holystone_brick.json deleted file mode 100644 index e055d6b8a4..0000000000 --- a/src/main/resources/assets/aether/blockstates/faded_holystone_brick.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "variants": { - "normal": [ - { "model": "aether:faded_holystone_bricks/normal" } - ] - } -} diff --git a/src/main/resources/assets/aether/blockstates/faded_holystone_brick_decorative.json b/src/main/resources/assets/aether/blockstates/faded_holystone_brick_decorative.json deleted file mode 100644 index 2353d4d65e..0000000000 --- a/src/main/resources/assets/aether/blockstates/faded_holystone_brick_decorative.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "variants": { - "variant=base_bricks": [ - { "model": "aether:faded_holystone_bricks/base_bricks" } - ], - "variant=base_pillar": [ - { "model": "aether:faded_holystone_bricks/base_pillar" } - ], - "variant=capstone_bricks": [ - { "model": "aether:faded_holystone_bricks/capstone_bricks" } - ], - "variant=capstone_pillar": [ - { "model": "aether:faded_holystone_bricks/capstone_pillar" } - ], - "variant=flagstones": [ - { "model": "aether:faded_holystone_bricks/flagstones" } - ], - "variant=headstone": [ - { "model": "aether:faded_holystone_bricks/headstone" } - ], - "variant=keystone": [ - { "model": "aether:faded_holystone_bricks/keystone" } - ] - } -} diff --git a/src/main/resources/assets/aether/blockstates/faded_holystone_brick_slab.json b/src/main/resources/assets/aether/blockstates/faded_holystone_brick_slab.json deleted file mode 100644 index 7c59284454..0000000000 --- a/src/main/resources/assets/aether/blockstates/faded_holystone_brick_slab.json +++ /dev/null @@ -1,33 +0,0 @@ -{ - "forge_marker": 1, - "variants": { - "state=bottom": [ - { - "textures": { - "bottom": "aether:blocks/faded_holystone_brick", - "top": "aether:blocks/faded_holystone_brick", - "side": "aether:blocks/faded_holystone_brick" - }, - "model": "half_slab" - } - ], - "state=top": [ - { - "textures": { - "bottom": "aether:blocks/faded_holystone_brick", - "top": "aether:blocks/faded_holystone_brick", - "side": "aether:blocks/faded_holystone_brick" - }, - "model": "upper_slab" - } - ], - "state=full": [ - { - "textures": { - "all": "aether:blocks/faded_holystone_brick" - }, - "model": "cube_all" - } - ] - } -} diff --git a/src/main/resources/assets/aether/blockstates/faded_holystone_brick_stairs.json b/src/main/resources/assets/aether/blockstates/faded_holystone_brick_stairs.json deleted file mode 100644 index 9173bc1688..0000000000 --- a/src/main/resources/assets/aether/blockstates/faded_holystone_brick_stairs.json +++ /dev/null @@ -1,52 +0,0 @@ -{ - "forge_marker": 1, - "defaults": { - "textures": { - "bottom": "aether:blocks/faded_holystone_brick", - "side": "aether:blocks/faded_holystone_brick", - "top": "aether:blocks/faded_holystone_brick" - } - }, - "variants": { - "facing=east,half=bottom,shape=straight": { "model": "stairs" }, - "facing=west,half=bottom,shape=straight": { "model": "stairs", "y": 180, "uvlock": true }, - "facing=south,half=bottom,shape=straight": { "model": "stairs", "y": 90, "uvlock": true }, - "facing=north,half=bottom,shape=straight": { "model": "stairs", "y": 270, "uvlock": true }, - "facing=east,half=bottom,shape=outer_right": { "model": "outer_stairs" }, - "facing=west,half=bottom,shape=outer_right": { "model": "outer_stairs", "y": 180, "uvlock": true }, - "facing=south,half=bottom,shape=outer_right": { "model": "outer_stairs", "y": 90, "uvlock": true }, - "facing=north,half=bottom,shape=outer_right": { "model": "outer_stairs", "y": 270, "uvlock": true }, - "facing=east,half=bottom,shape=outer_left": { "model": "outer_stairs", "y": 270, "uvlock": true }, - "facing=west,half=bottom,shape=outer_left": { "model": "outer_stairs", "y": 90, "uvlock": true }, - "facing=south,half=bottom,shape=outer_left": { "model": "outer_stairs" }, - "facing=north,half=bottom,shape=outer_left": { "model": "outer_stairs", "y": 180, "uvlock": true }, - "facing=east,half=bottom,shape=inner_right": { "model": "inner_stairs" }, - "facing=west,half=bottom,shape=inner_right": { "model": "inner_stairs", "y": 180, "uvlock": true }, - "facing=south,half=bottom,shape=inner_right": { "model": "inner_stairs", "y": 90, "uvlock": true }, - "facing=north,half=bottom,shape=inner_right": { "model": "inner_stairs", "y": 270, "uvlock": true }, - "facing=east,half=bottom,shape=inner_left": { "model": "inner_stairs", "y": 270, "uvlock": true }, - "facing=west,half=bottom,shape=inner_left": { "model": "inner_stairs", "y": 90, "uvlock": true }, - "facing=south,half=bottom,shape=inner_left": { "model": "inner_stairs" }, - "facing=north,half=bottom,shape=inner_left": { "model": "inner_stairs", "y": 180, "uvlock": true }, - "facing=east,half=top,shape=straight": { "model": "stairs", "x": 180, "uvlock": true }, - "facing=west,half=top,shape=straight": { "model": "stairs", "x": 180, "y": 180, "uvlock": true }, - "facing=south,half=top,shape=straight": { "model": "stairs", "x": 180, "y": 90, "uvlock": true }, - "facing=north,half=top,shape=straight": { "model": "stairs", "x": 180, "y": 270, "uvlock": true }, - "facing=east,half=top,shape=outer_right": { "model": "outer_stairs", "x": 180, "y": 90, "uvlock": true }, - "facing=west,half=top,shape=outer_right": { "model": "outer_stairs", "x": 180, "y": 270, "uvlock": true }, - "facing=south,half=top,shape=outer_right": { "model": "outer_stairs", "x": 180, "y": 180, "uvlock": true }, - "facing=north,half=top,shape=outer_right": { "model": "outer_stairs", "x": 180, "uvlock": true }, - "facing=east,half=top,shape=outer_left": { "model": "outer_stairs", "x": 180, "uvlock": true }, - "facing=west,half=top,shape=outer_left": { "model": "outer_stairs", "x": 180, "y": 180, "uvlock": true }, - "facing=south,half=top,shape=outer_left": { "model": "outer_stairs", "x": 180, "y": 90, "uvlock": true }, - "facing=north,half=top,shape=outer_left": { "model": "outer_stairs", "x": 180, "y": 270, "uvlock": true }, - "facing=east,half=top,shape=inner_right": { "model": "inner_stairs", "x": 180, "y": 90, "uvlock": true }, - "facing=west,half=top,shape=inner_right": { "model": "inner_stairs", "x": 180, "y": 270, "uvlock": true }, - "facing=south,half=top,shape=inner_right": { "model": "inner_stairs", "x": 180, "y": 180, "uvlock": true }, - "facing=north,half=top,shape=inner_right": { "model": "inner_stairs", "x": 180, "uvlock": true }, - "facing=east,half=top,shape=inner_left": { "model": "inner_stairs", "x": 180, "uvlock": true }, - "facing=west,half=top,shape=inner_left": { "model": "inner_stairs", "x": 180, "y": 180, "uvlock": true }, - "facing=south,half=top,shape=inner_left": { "model": "inner_stairs", "x": 180, "y": 90, "uvlock": true }, - "facing=north,half=top,shape=inner_left": { "model": "inner_stairs", "x": 180, "y": 270, "uvlock": true } - } -} diff --git a/src/main/resources/assets/aether/blockstates/faded_holystone_brick_wall.json b/src/main/resources/assets/aether/blockstates/faded_holystone_brick_wall.json deleted file mode 100644 index 0f47657a24..0000000000 --- a/src/main/resources/assets/aether/blockstates/faded_holystone_brick_wall.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "multipart": [ - { - "when": { "up": "true" }, - "apply": { "model": "aether:aether_wall/faded_holystone_brick_wall_post" } - }, - { - "when": { "north": "true" }, - "apply": { "model": "aether:aether_wall/faded_holystone_brick_wall_side", "uvlock": true } - }, - { - "when": { "east": "true" }, - "apply": { "model": "aether:aether_wall/faded_holystone_brick_wall_side", "y": 90, "uvlock": true } - }, - { - "when": { "south": "true" }, - "apply": { "model": "aether:aether_wall/faded_holystone_brick_wall_side", "y": 180, "uvlock": true } - }, - { - "when": { "west": "true" }, - "apply": { "model": "aether:aether_wall/faded_holystone_brick_wall_side", "y": 270, "uvlock": true } - } - ] -} diff --git a/src/main/resources/assets/aether/blockstates/faded_holystone_pillar.json b/src/main/resources/assets/aether/blockstates/faded_holystone_pillar.json deleted file mode 100644 index 44f8d5d083..0000000000 --- a/src/main/resources/assets/aether/blockstates/faded_holystone_pillar.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "variants": { - "axis=y": { - "model": "aether:faded_holystone_bricks/pillar" - }, - "axis=z": { - "model": "aether:faded_holystone_bricks/pillar", - "x": 90 - }, - "axis=x": { - "model": "aether:faded_holystone_bricks/pillar", - "x": 90, "y": 90 - } - } -} diff --git a/src/main/resources/assets/aether/blockstates/ferrosite.json b/src/main/resources/assets/aether/blockstates/ferrosite.json deleted file mode 100644 index 454ead3466..0000000000 --- a/src/main/resources/assets/aether/blockstates/ferrosite.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "variants": { - "normal": { - "model": "aether:ferrosite" - } - } -} diff --git a/src/main/resources/assets/aether/blockstates/ferrosite_sand.json b/src/main/resources/assets/aether/blockstates/ferrosite_sand.json deleted file mode 100644 index 90d72d0be4..0000000000 --- a/src/main/resources/assets/aether/blockstates/ferrosite_sand.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "variants": { - "normal": [ - { "model": "aether:ferrosite_sand" }, - { "model": "aether:ferrosite_sand", "y": 90 }, - { "model": "aether:ferrosite_sand", "y": 180 }, - { "model": "aether:ferrosite_sand", "y": 270 } - ] - } -} diff --git a/src/main/resources/assets/aether/blockstates/forgotten_rose.json b/src/main/resources/assets/aether/blockstates/forgotten_rose.json deleted file mode 100644 index 496112f8b8..0000000000 --- a/src/main/resources/assets/aether/blockstates/forgotten_rose.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "variants": { - "snowy=false": { - "model": "aether:flowers/forgotten_rose" - }, - "snowy=true": { - "model": "aether:flowers/forgotten_rose_snowy" - } - } -} diff --git a/src/main/resources/assets/aether/blockstates/golden_oak_log.json b/src/main/resources/assets/aether/blockstates/golden_oak_log.json deleted file mode 100644 index e350cbb1f6..0000000000 --- a/src/main/resources/assets/aether/blockstates/golden_oak_log.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "variants": { - "axis=y": { - "model": "aether:logs/golden_oak_log" - }, - "axis=z": { - "model": "aether:logs/golden_oak_log", - "x": 90 - }, - "axis=x": { - "model": "aether:logs/golden_oak_log", - "x": 90, "y": 90 - }, - "axis=none": { - "model": "aether:logs/golden_oak_log_bark" - } - } -} diff --git a/src/main/resources/assets/aether/blockstates/gravitite_block.json b/src/main/resources/assets/aether/blockstates/gravitite_block.json deleted file mode 100644 index e88fef46ee..0000000000 --- a/src/main/resources/assets/aether/blockstates/gravitite_block.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "variants": { - "normal": { - "model": "aether:gravitite_block" - } - } -} diff --git a/src/main/resources/assets/aether/blockstates/gravitite_ore.json b/src/main/resources/assets/aether/blockstates/gravitite_ore.json deleted file mode 100644 index 6699a5a412..0000000000 --- a/src/main/resources/assets/aether/blockstates/gravitite_ore.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "variants": { - "normal": { - "model": "aether:ores/gravitite_ore" - } - } -} diff --git a/src/main/resources/assets/aether/blockstates/greatroot_button.json b/src/main/resources/assets/aether/blockstates/greatroot_button.json deleted file mode 100644 index 24bcc5216f..0000000000 --- a/src/main/resources/assets/aether/blockstates/greatroot_button.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "variants": { - "facing=up,powered=false": { "model": "aether:greatroot_button/greatroot_button" }, - "facing=down,powered=false": { "model": "aether:greatroot_button/greatroot_button", "x": 180 }, - "facing=east,powered=false": { "model": "aether:greatroot_button/greatroot_button", "x": 90, "y": 90 }, - "facing=west,powered=false": { "model": "aether:greatroot_button/greatroot_button", "x": 90, "y": 270 }, - "facing=south,powered=false": { "model": "aether:greatroot_button/greatroot_button", "x": 90, "y": 180 }, - "facing=north,powered=false": { "model": "aether:greatroot_button/greatroot_button", "x": 90 }, - "facing=up,powered=true": { "model": "aether:greatroot_button/greatroot_button_pressed" }, - "facing=down,powered=true": { "model": "aether:greatroot_button/greatroot_button_pressed", "x": 180 }, - "facing=east,powered=true": { "model": "aether:greatroot_button/greatroot_button_pressed", "x": 90, "y": 90 }, - "facing=west,powered=true": { "model": "aether:greatroot_button/greatroot_button_pressed", "x": 90, "y": 270 }, - "facing=south,powered=true": { "model": "aether:greatroot_button/greatroot_button_pressed", "x": 90, "y": 180 }, - "facing=north,powered=true": { "model": "aether:greatroot_button/greatroot_button_pressed", "x": 90 } - } -} diff --git a/src/main/resources/assets/aether/blockstates/greatroot_fence.json b/src/main/resources/assets/aether/blockstates/greatroot_fence.json deleted file mode 100644 index a520cccf5e..0000000000 --- a/src/main/resources/assets/aether/blockstates/greatroot_fence.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "multipart": [ - { "apply": { "model": "aether:greatroot_fence/greatroot_fence_post" } }, - { - "when": { "north": "true" }, - "apply": { "model": "aether:greatroot_fence/greatroot_fence_side", "uvlock": true } - }, - { - "when": { "east": "true" }, - "apply": { "model": "aether:greatroot_fence/greatroot_fence_side", "y": 90, "uvlock": true } - }, - { - "when": { "south": "true" }, - "apply": { "model": "aether:greatroot_fence/greatroot_fence_side", "y": 180, "uvlock": true } - }, - { - "when": { "west": "true" }, - "apply": { "model": "aether:greatroot_fence/greatroot_fence_side", "y": 270, "uvlock": true } - } - ] -} diff --git a/src/main/resources/assets/aether/blockstates/greatroot_fence_gate.json b/src/main/resources/assets/aether/blockstates/greatroot_fence_gate.json deleted file mode 100644 index c3f6ae3fc6..0000000000 --- a/src/main/resources/assets/aether/blockstates/greatroot_fence_gate.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "variants": { - "facing=south,in_wall=false,open=false": { "model": "aether:greatroot_fence_gate/greatroot_fence_gate_closed", "uvlock": true }, - "facing=west,in_wall=false,open=false": { "model": "aether:greatroot_fence_gate/greatroot_fence_gate_closed", "uvlock": true, "y": 90 }, - "facing=north,in_wall=false,open=false": { "model": "aether:greatroot_fence_gate/greatroot_fence_gate_closed", "uvlock": true, "y": 180 }, - "facing=east,in_wall=false,open=false": { "model": "aether:greatroot_fence_gate/greatroot_fence_gate_closed", "uvlock": true, "y": 270 }, - "facing=south,in_wall=false,open=true": { "model": "aether:greatroot_fence_gate/greatroot_fence_gate_open", "uvlock": true }, - "facing=west,in_wall=false,open=true": { "model": "aether:greatroot_fence_gate/greatroot_fence_gate_open", "uvlock": true, "y": 90 }, - "facing=north,in_wall=false,open=true": { "model": "aether:greatroot_fence_gate/greatroot_fence_gate_open", "uvlock": true, "y": 180 }, - "facing=east,in_wall=false,open=true": { "model": "aether:greatroot_fence_gate/greatroot_fence_gate_open", "uvlock": true, "y": 270 }, - "facing=south,in_wall=true,open=false": { "model": "aether:greatroot_fence_gate/greatroot_wall_gate_closed", "uvlock": true }, - "facing=west,in_wall=true,open=false": { "model": "aether:greatroot_fence_gate/greatroot_wall_gate_closed", "uvlock": true, "y": 90 }, - "facing=north,in_wall=true,open=false": { "model": "aether:greatroot_fence_gate/greatroot_wall_gate_closed", "uvlock": true, "y": 180 }, - "facing=east,in_wall=true,open=false": { "model": "aether:greatroot_fence_gate/greatroot_wall_gate_closed", "uvlock": true, "y": 270 }, - "facing=south,in_wall=true,open=true": { "model": "aether:greatroot_fence_gate/greatroot_wall_gate_open", "uvlock": true }, - "facing=west,in_wall=true,open=true": { "model": "aether:greatroot_fence_gate/greatroot_wall_gate_open", "uvlock": true, "y": 90 }, - "facing=north,in_wall=true,open=true": { "model": "aether:greatroot_fence_gate/greatroot_wall_gate_open", "uvlock": true, "y": 180 }, - "facing=east,in_wall=true,open=true": { "model": "aether:greatroot_fence_gate/greatroot_wall_gate_open", "uvlock": true, "y": 270 } - } -} diff --git a/src/main/resources/assets/aether/blockstates/greatroot_log_wall.json b/src/main/resources/assets/aether/blockstates/greatroot_log_wall.json deleted file mode 100644 index 9662e436aa..0000000000 --- a/src/main/resources/assets/aether/blockstates/greatroot_log_wall.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "multipart": [ - { - "when": { "up": "true" }, - "apply": { "model": "aether:aether_wall/greatroot_log_wall_post" } - }, - { - "when": { "north": "true" }, - "apply": { "model": "aether:aether_wall/greatroot_log_wall_side", "uvlock": true } - }, - { - "when": { "east": "true" }, - "apply": { "model": "aether:aether_wall/greatroot_log_wall_side", "y": 90, "uvlock": true } - }, - { - "when": { "south": "true" }, - "apply": { "model": "aether:aether_wall/greatroot_log_wall_side", "y": 180, "uvlock": true } - }, - { - "when": { "west": "true" }, - "apply": { "model": "aether:aether_wall/greatroot_log_wall_side", "y": 270, "uvlock": true } - } - ] -} diff --git a/src/main/resources/assets/aether/blockstates/greatroot_pressure_plate.json b/src/main/resources/assets/aether/blockstates/greatroot_pressure_plate.json deleted file mode 100644 index 27dba3e9c1..0000000000 --- a/src/main/resources/assets/aether/blockstates/greatroot_pressure_plate.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "variants": { - "powered=false": { "model": "aether:greatroot_pressure_plate/greatroot_pressure_plate_up" }, - "powered=true": { "model": "aether:greatroot_pressure_plate/greatroot_pressure_plate_down" } - } -} diff --git a/src/main/resources/assets/aether/blockstates/greatroot_sapling.json b/src/main/resources/assets/aether/blockstates/greatroot_sapling.json deleted file mode 100644 index 0c6d0c5a6a..0000000000 --- a/src/main/resources/assets/aether/blockstates/greatroot_sapling.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "variants": { - "variant=green_greatroot": { - "model": "aether:saplings/green_greatroot_sapling" - }, - "variant=blue_greatroot": { - "model": "aether:saplings/blue_greatroot_sapling" - }, - "variant=dark_blue_greatroot": { - "model": "aether:saplings/dark_blue_greatroot_sapling" - } - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/blockstates/greatroot_slab.json b/src/main/resources/assets/aether/blockstates/greatroot_slab.json deleted file mode 100644 index d365b8d117..0000000000 --- a/src/main/resources/assets/aether/blockstates/greatroot_slab.json +++ /dev/null @@ -1,33 +0,0 @@ -{ - "forge_marker": 1, - "variants": { - "state=bottom": [ - { - "textures": { - "bottom": "aether:blocks/dark_skyroot_planks/greatroot_planks", - "top": "aether:blocks/dark_skyroot_planks/greatroot_planks", - "side": "aether:blocks/dark_skyroot_planks/greatroot_planks" - }, - "model": "half_slab" - } - ], - "state=top": [ - { - "textures": { - "bottom": "aether:blocks/dark_skyroot_planks/greatroot_planks", - "top": "aether:blocks/dark_skyroot_planks/greatroot_planks", - "side": "aether:blocks/dark_skyroot_planks/greatroot_planks" - }, - "model": "upper_slab" - } - ], - "state=full": [ - { - "textures": { - "all": "aether:blocks/dark_skyroot_planks/greatroot_planks" - }, - "model": "cube_all" - } - ] - } -} diff --git a/src/main/resources/assets/aether/blockstates/greatroot_stairs.json b/src/main/resources/assets/aether/blockstates/greatroot_stairs.json deleted file mode 100644 index 1ebf2e98b3..0000000000 --- a/src/main/resources/assets/aether/blockstates/greatroot_stairs.json +++ /dev/null @@ -1,52 +0,0 @@ -{ - "forge_marker": 1, - "defaults": { - "textures": { - "bottom": "aether:blocks/dark_skyroot_planks/greatroot_planks", - "side": "aether:blocks/dark_skyroot_planks/greatroot_planks", - "top": "aether:blocks/dark_skyroot_planks/greatroot_planks" - } - }, - "variants": { - "facing=east,half=bottom,shape=straight": { "model": "stairs" }, - "facing=west,half=bottom,shape=straight": { "model": "stairs", "y": 180, "uvlock": true }, - "facing=south,half=bottom,shape=straight": { "model": "stairs", "y": 90, "uvlock": true }, - "facing=north,half=bottom,shape=straight": { "model": "stairs", "y": 270, "uvlock": true }, - "facing=east,half=bottom,shape=outer_right": { "model": "outer_stairs" }, - "facing=west,half=bottom,shape=outer_right": { "model": "outer_stairs", "y": 180, "uvlock": true }, - "facing=south,half=bottom,shape=outer_right": { "model": "outer_stairs", "y": 90, "uvlock": true }, - "facing=north,half=bottom,shape=outer_right": { "model": "outer_stairs", "y": 270, "uvlock": true }, - "facing=east,half=bottom,shape=outer_left": { "model": "outer_stairs", "y": 270, "uvlock": true }, - "facing=west,half=bottom,shape=outer_left": { "model": "outer_stairs", "y": 90, "uvlock": true }, - "facing=south,half=bottom,shape=outer_left": { "model": "outer_stairs" }, - "facing=north,half=bottom,shape=outer_left": { "model": "outer_stairs", "y": 180, "uvlock": true }, - "facing=east,half=bottom,shape=inner_right": { "model": "inner_stairs" }, - "facing=west,half=bottom,shape=inner_right": { "model": "inner_stairs", "y": 180, "uvlock": true }, - "facing=south,half=bottom,shape=inner_right": { "model": "inner_stairs", "y": 90, "uvlock": true }, - "facing=north,half=bottom,shape=inner_right": { "model": "inner_stairs", "y": 270, "uvlock": true }, - "facing=east,half=bottom,shape=inner_left": { "model": "inner_stairs", "y": 270, "uvlock": true }, - "facing=west,half=bottom,shape=inner_left": { "model": "inner_stairs", "y": 90, "uvlock": true }, - "facing=south,half=bottom,shape=inner_left": { "model": "inner_stairs" }, - "facing=north,half=bottom,shape=inner_left": { "model": "inner_stairs", "y": 180, "uvlock": true }, - "facing=east,half=top,shape=straight": { "model": "stairs", "x": 180, "uvlock": true }, - "facing=west,half=top,shape=straight": { "model": "stairs", "x": 180, "y": 180, "uvlock": true }, - "facing=south,half=top,shape=straight": { "model": "stairs", "x": 180, "y": 90, "uvlock": true }, - "facing=north,half=top,shape=straight": { "model": "stairs", "x": 180, "y": 270, "uvlock": true }, - "facing=east,half=top,shape=outer_right": { "model": "outer_stairs", "x": 180, "y": 90, "uvlock": true }, - "facing=west,half=top,shape=outer_right": { "model": "outer_stairs", "x": 180, "y": 270, "uvlock": true }, - "facing=south,half=top,shape=outer_right": { "model": "outer_stairs", "x": 180, "y": 180, "uvlock": true }, - "facing=north,half=top,shape=outer_right": { "model": "outer_stairs", "x": 180, "uvlock": true }, - "facing=east,half=top,shape=outer_left": { "model": "outer_stairs", "x": 180, "uvlock": true }, - "facing=west,half=top,shape=outer_left": { "model": "outer_stairs", "x": 180, "y": 180, "uvlock": true }, - "facing=south,half=top,shape=outer_left": { "model": "outer_stairs", "x": 180, "y": 90, "uvlock": true }, - "facing=north,half=top,shape=outer_left": { "model": "outer_stairs", "x": 180, "y": 270, "uvlock": true }, - "facing=east,half=top,shape=inner_right": { "model": "inner_stairs", "x": 180, "y": 90, "uvlock": true }, - "facing=west,half=top,shape=inner_right": { "model": "inner_stairs", "x": 180, "y": 270, "uvlock": true }, - "facing=south,half=top,shape=inner_right": { "model": "inner_stairs", "x": 180, "y": 180, "uvlock": true }, - "facing=north,half=top,shape=inner_right": { "model": "inner_stairs", "x": 180, "uvlock": true }, - "facing=east,half=top,shape=inner_left": { "model": "inner_stairs", "x": 180, "uvlock": true }, - "facing=west,half=top,shape=inner_left": { "model": "inner_stairs", "x": 180, "y": 180, "uvlock": true }, - "facing=south,half=top,shape=inner_left": { "model": "inner_stairs", "x": 180, "y": 90, "uvlock": true }, - "facing=north,half=top,shape=inner_left": { "model": "inner_stairs", "x": 180, "y": 270, "uvlock": true } - } -} diff --git a/src/main/resources/assets/aether/blockstates/green_dark_skyroot_leaves.json b/src/main/resources/assets/aether/blockstates/green_dark_skyroot_leaves.json deleted file mode 100644 index d54437fde5..0000000000 --- a/src/main/resources/assets/aether/blockstates/green_dark_skyroot_leaves.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "variants": { - "normal": { - "model": "aether:leaves/green_dark_skyroot_leaves" - } - } -} diff --git a/src/main/resources/assets/aether/blockstates/green_light_skyroot_leaves.json b/src/main/resources/assets/aether/blockstates/green_light_skyroot_leaves.json deleted file mode 100644 index ed694289c9..0000000000 --- a/src/main/resources/assets/aether/blockstates/green_light_skyroot_leaves.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "variants": { - "normal": { - "model": "aether:leaves/green_light_skyroot_leaves" - } - } -} diff --git a/src/main/resources/assets/aether/blockstates/green_skyroot_leaves.json b/src/main/resources/assets/aether/blockstates/green_skyroot_leaves.json deleted file mode 100644 index 96bd2b5f49..0000000000 --- a/src/main/resources/assets/aether/blockstates/green_skyroot_leaves.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "variants": { - "normal": { - "model": "aether:leaves/green_skyroot_leaves" - } - } -} diff --git a/src/main/resources/assets/aether/blockstates/green_swingtip.json b/src/main/resources/assets/aether/blockstates/green_swingtip.json deleted file mode 100644 index 4953b9e912..0000000000 --- a/src/main/resources/assets/aether/blockstates/green_swingtip.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "variants": { - "snowy=false": { - "model": "aether:flowers/green_swingtip" - }, - "snowy=true": { - "model": "aether:flowers/green_swingtip_snowy" - } - } -} diff --git a/src/main/resources/assets/aether/blockstates/hellfirestone_brick.json b/src/main/resources/assets/aether/blockstates/hellfirestone_brick.json deleted file mode 100644 index fe038a82ec..0000000000 --- a/src/main/resources/assets/aether/blockstates/hellfirestone_brick.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "variants": { - "normal": [ - { "model": "aether:hellfirestone_bricks/normal" } - ] - } -} diff --git a/src/main/resources/assets/aether/blockstates/hellfirestone_brick_decorative.json b/src/main/resources/assets/aether/blockstates/hellfirestone_brick_decorative.json deleted file mode 100644 index b5d62d62f7..0000000000 --- a/src/main/resources/assets/aether/blockstates/hellfirestone_brick_decorative.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "variants": { - "variant=base_bricks": [ - { "model": "aether:hellfirestone_bricks/base_bricks" } - ], - "variant=base_pillar": [ - { "model": "aether:hellfirestone_bricks/base_pillar" } - ], - "variant=capstone_bricks": [ - { "model": "aether:hellfirestone_bricks/capstone_bricks" } - ], - "variant=capstone_pillar": [ - { "model": "aether:hellfirestone_bricks/capstone_pillar" } - ], - "variant=flagstones": [ - { "model": "aether:hellfirestone_bricks/flagstones" } - ], - "variant=keystone": [ - { "model": "aether:hellfirestone_bricks/keystone" } - ] - } -} diff --git a/src/main/resources/assets/aether/blockstates/hellfirestone_brick_slab.json b/src/main/resources/assets/aether/blockstates/hellfirestone_brick_slab.json deleted file mode 100644 index 59a258a55c..0000000000 --- a/src/main/resources/assets/aether/blockstates/hellfirestone_brick_slab.json +++ /dev/null @@ -1,33 +0,0 @@ -{ - "forge_marker": 1, - "variants": { - "state=bottom": [ - { - "textures": { - "bottom": "aether:blocks/hellfirestone_bricks/hellfirestone_brick", - "top": "aether:blocks/hellfirestone_bricks/hellfirestone_brick", - "side": "aether:blocks/hellfirestone_bricks/hellfirestone_brick" - }, - "model": "half_slab" - } - ], - "state=top": [ - { - "textures": { - "bottom": "aether:blocks/hellfirestone_bricks/hellfirestone_brick", - "top": "aether:blocks/hellfirestone_bricks/hellfirestone_brick", - "side": "aether:blocks/hellfirestone_bricks/hellfirestone_brick" - }, - "model": "upper_slab" - } - ], - "state=full": [ - { - "textures": { - "all": "aether:blocks/hellfirestone_bricks/hellfirestone_brick" - }, - "model": "cube_all" - } - ] - } -} diff --git a/src/main/resources/assets/aether/blockstates/hellfirestone_brick_stairs.json b/src/main/resources/assets/aether/blockstates/hellfirestone_brick_stairs.json deleted file mode 100644 index f208302461..0000000000 --- a/src/main/resources/assets/aether/blockstates/hellfirestone_brick_stairs.json +++ /dev/null @@ -1,52 +0,0 @@ -{ - "forge_marker": 1, - "defaults": { - "textures": { - "bottom": "aether:blocks/hellfirestone_bricks/hellfirestone_brick", - "side": "aether:blocks/hellfirestone_bricks/hellfirestone_brick", - "top": "aether:blocks/hellfirestone_bricks/hellfirestone_brick" - } - }, - "variants": { - "facing=east,half=bottom,shape=straight": { "model": "stairs" }, - "facing=west,half=bottom,shape=straight": { "model": "stairs", "y": 180, "uvlock": true }, - "facing=south,half=bottom,shape=straight": { "model": "stairs", "y": 90, "uvlock": true }, - "facing=north,half=bottom,shape=straight": { "model": "stairs", "y": 270, "uvlock": true }, - "facing=east,half=bottom,shape=outer_right": { "model": "outer_stairs" }, - "facing=west,half=bottom,shape=outer_right": { "model": "outer_stairs", "y": 180, "uvlock": true }, - "facing=south,half=bottom,shape=outer_right": { "model": "outer_stairs", "y": 90, "uvlock": true }, - "facing=north,half=bottom,shape=outer_right": { "model": "outer_stairs", "y": 270, "uvlock": true }, - "facing=east,half=bottom,shape=outer_left": { "model": "outer_stairs", "y": 270, "uvlock": true }, - "facing=west,half=bottom,shape=outer_left": { "model": "outer_stairs", "y": 90, "uvlock": true }, - "facing=south,half=bottom,shape=outer_left": { "model": "outer_stairs" }, - "facing=north,half=bottom,shape=outer_left": { "model": "outer_stairs", "y": 180, "uvlock": true }, - "facing=east,half=bottom,shape=inner_right": { "model": "inner_stairs" }, - "facing=west,half=bottom,shape=inner_right": { "model": "inner_stairs", "y": 180, "uvlock": true }, - "facing=south,half=bottom,shape=inner_right": { "model": "inner_stairs", "y": 90, "uvlock": true }, - "facing=north,half=bottom,shape=inner_right": { "model": "inner_stairs", "y": 270, "uvlock": true }, - "facing=east,half=bottom,shape=inner_left": { "model": "inner_stairs", "y": 270, "uvlock": true }, - "facing=west,half=bottom,shape=inner_left": { "model": "inner_stairs", "y": 90, "uvlock": true }, - "facing=south,half=bottom,shape=inner_left": { "model": "inner_stairs" }, - "facing=north,half=bottom,shape=inner_left": { "model": "inner_stairs", "y": 180, "uvlock": true }, - "facing=east,half=top,shape=straight": { "model": "stairs", "x": 180, "uvlock": true }, - "facing=west,half=top,shape=straight": { "model": "stairs", "x": 180, "y": 180, "uvlock": true }, - "facing=south,half=top,shape=straight": { "model": "stairs", "x": 180, "y": 90, "uvlock": true }, - "facing=north,half=top,shape=straight": { "model": "stairs", "x": 180, "y": 270, "uvlock": true }, - "facing=east,half=top,shape=outer_right": { "model": "outer_stairs", "x": 180, "y": 90, "uvlock": true }, - "facing=west,half=top,shape=outer_right": { "model": "outer_stairs", "x": 180, "y": 270, "uvlock": true }, - "facing=south,half=top,shape=outer_right": { "model": "outer_stairs", "x": 180, "y": 180, "uvlock": true }, - "facing=north,half=top,shape=outer_right": { "model": "outer_stairs", "x": 180, "uvlock": true }, - "facing=east,half=top,shape=outer_left": { "model": "outer_stairs", "x": 180, "uvlock": true }, - "facing=west,half=top,shape=outer_left": { "model": "outer_stairs", "x": 180, "y": 180, "uvlock": true }, - "facing=south,half=top,shape=outer_left": { "model": "outer_stairs", "x": 180, "y": 90, "uvlock": true }, - "facing=north,half=top,shape=outer_left": { "model": "outer_stairs", "x": 180, "y": 270, "uvlock": true }, - "facing=east,half=top,shape=inner_right": { "model": "inner_stairs", "x": 180, "y": 90, "uvlock": true }, - "facing=west,half=top,shape=inner_right": { "model": "inner_stairs", "x": 180, "y": 270, "uvlock": true }, - "facing=south,half=top,shape=inner_right": { "model": "inner_stairs", "x": 180, "y": 180, "uvlock": true }, - "facing=north,half=top,shape=inner_right": { "model": "inner_stairs", "x": 180, "uvlock": true }, - "facing=east,half=top,shape=inner_left": { "model": "inner_stairs", "x": 180, "uvlock": true }, - "facing=west,half=top,shape=inner_left": { "model": "inner_stairs", "x": 180, "y": 180, "uvlock": true }, - "facing=south,half=top,shape=inner_left": { "model": "inner_stairs", "x": 180, "y": 90, "uvlock": true }, - "facing=north,half=top,shape=inner_left": { "model": "inner_stairs", "x": 180, "y": 270, "uvlock": true } - } -} diff --git a/src/main/resources/assets/aether/blockstates/hellfirestone_brick_wall.json b/src/main/resources/assets/aether/blockstates/hellfirestone_brick_wall.json deleted file mode 100644 index 1c56390d24..0000000000 --- a/src/main/resources/assets/aether/blockstates/hellfirestone_brick_wall.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "multipart": [ - { - "when": { "up": "true" }, - "apply": { "model": "aether:aether_wall/hellfirestone_brick_wall_post" } - }, - { - "when": { "north": "true" }, - "apply": { "model": "aether:aether_wall/hellfirestone_brick_wall_side", "uvlock": true } - }, - { - "when": { "east": "true" }, - "apply": { "model": "aether:aether_wall/hellfirestone_brick_wall_side", "y": 90, "uvlock": true } - }, - { - "when": { "south": "true" }, - "apply": { "model": "aether:aether_wall/hellfirestone_brick_wall_side", "y": 180, "uvlock": true } - }, - { - "when": { "west": "true" }, - "apply": { "model": "aether:aether_wall/hellfirestone_brick_wall_side", "y": 270, "uvlock": true } - } - ] -} diff --git a/src/main/resources/assets/aether/blockstates/hellfirestone_lantern.json b/src/main/resources/assets/aether/blockstates/hellfirestone_lantern.json deleted file mode 100644 index 1d051d11fc..0000000000 --- a/src/main/resources/assets/aether/blockstates/hellfirestone_lantern.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "variants": { - "normal": [ - { "model": "aether:hellfirestone_bricks/lantern" } - ] - } -} diff --git a/src/main/resources/assets/aether/blockstates/hellfirestone_pillar.json b/src/main/resources/assets/aether/blockstates/hellfirestone_pillar.json deleted file mode 100644 index f7f69d9e8c..0000000000 --- a/src/main/resources/assets/aether/blockstates/hellfirestone_pillar.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "variants": { - "axis=y": { - "model": "aether:hellfirestone_bricks/pillar" - }, - "axis=z": { - "model": "aether:hellfirestone_bricks/pillar", - "x": 90 - }, - "axis=x": { - "model": "aether:hellfirestone_bricks/pillar", - "x": 90, "y": 90 - } - } -} diff --git a/src/main/resources/assets/aether/blockstates/highlands_bush.json b/src/main/resources/assets/aether/blockstates/highlands_bush.json deleted file mode 100644 index 8a396cbd2c..0000000000 --- a/src/main/resources/assets/aether/blockstates/highlands_bush.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "variants": { - "normal": { - "model": "aether:bushes/highlands_bush" - } - } -} diff --git a/src/main/resources/assets/aether/blockstates/highlands_ice.json b/src/main/resources/assets/aether/blockstates/highlands_ice.json deleted file mode 100644 index 3e1e71f9dd..0000000000 --- a/src/main/resources/assets/aether/blockstates/highlands_ice.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "variants": { - "normal": [ - { "model": "aether:highlands_ice" }, - { "model": "aether:highlands_ice", "y": 90 }, - { "model": "aether:highlands_ice", "y": 180 }, - { "model": "aether:highlands_ice", "y": 270 } - ] - } -} diff --git a/src/main/resources/assets/aether/blockstates/highlands_ice_crystal.json b/src/main/resources/assets/aether/blockstates/highlands_ice_crystal.json deleted file mode 100644 index c15e210c16..0000000000 --- a/src/main/resources/assets/aether/blockstates/highlands_ice_crystal.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "variants": { - "variant=stalagmite": { - "model": "aether:crystals/highlands_ice_crystal" - }, - "variant=stalagmite_a": { - "model": "aether:crystals/highlands_ice_crystal_a" - }, - "variant=stalagmite_b": { - "model": "aether:crystals/highlands_ice_crystal_b" - }, - "variant=stalactite": { - "model": "aether:crystals/highlands_ice_crystal", - "x": 180 - }, - "variant=stalactite_a": { - "model": "aether:crystals/highlands_ice_crystal_a", - "x": 180 - }, - "variant=stalactite_b": { - "model": "aether:crystals/highlands_ice_crystal_b", - "x": 180 - } - } -} diff --git a/src/main/resources/assets/aether/blockstates/highlands_packed_ice.json b/src/main/resources/assets/aether/blockstates/highlands_packed_ice.json deleted file mode 100644 index bf21c0f185..0000000000 --- a/src/main/resources/assets/aether/blockstates/highlands_packed_ice.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "variants": { - "normal": { "model": "aether:highlands_packed_ice" } - } -} diff --git a/src/main/resources/assets/aether/blockstates/highlands_snow.json b/src/main/resources/assets/aether/blockstates/highlands_snow.json deleted file mode 100644 index cc01b8313b..0000000000 --- a/src/main/resources/assets/aether/blockstates/highlands_snow.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "variants": { - "normal": { "model": "aether:highlands_snow" } - } -} diff --git a/src/main/resources/assets/aether/blockstates/highlands_snow_layer.json b/src/main/resources/assets/aether/blockstates/highlands_snow_layer.json deleted file mode 100644 index 52641ff400..0000000000 --- a/src/main/resources/assets/aether/blockstates/highlands_snow_layer.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "variants": { - "layers=1": { "model": "aether:highlands_snow_height2" }, - "layers=2": { "model": "aether:highlands_snow_height4" }, - "layers=3": { "model": "aether:highlands_snow_height6" }, - "layers=4": { "model": "aether:highlands_snow_height8" }, - "layers=5": { "model": "aether:highlands_snow_height10" }, - "layers=6": { "model": "aether:highlands_snow_height12" }, - "layers=7": { "model": "aether:highlands_snow_height14" }, - "layers=8": { "model": "aether:highlands_snow" } - } -} diff --git a/src/main/resources/assets/aether/blockstates/highlands_tulips.json b/src/main/resources/assets/aether/blockstates/highlands_tulips.json deleted file mode 100644 index c5a3f8ffbf..0000000000 --- a/src/main/resources/assets/aether/blockstates/highlands_tulips.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "variants": { - "snowy=false": { - "model": "aether:flowers/highlands_tulips" - }, - "snowy=true": { - "model": "aether:flowers/highlands_tulips_snowy" - } - } -} diff --git a/src/main/resources/assets/aether/blockstates/holystone.json b/src/main/resources/assets/aether/blockstates/holystone.json deleted file mode 100644 index 1931fe0480..0000000000 --- a/src/main/resources/assets/aether/blockstates/holystone.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "variants": { - "variant=normal": [ - { "model": "aether:holystone/holystone" } - ], - "variant=mossy": [ - { "model": "aether:holystone/mossy_holystone" } - ], - "variant=blood_moss": [ - { "model": "aether:holystone/blood_moss_holystone" } - ], - "variant=irradiated": [ - { "model": "aether:holystone/irradiated_holystone" } - ] - } -} diff --git a/src/main/resources/assets/aether/blockstates/holystone_bookshelf.json b/src/main/resources/assets/aether/blockstates/holystone_bookshelf.json deleted file mode 100644 index e704310d78..0000000000 --- a/src/main/resources/assets/aether/blockstates/holystone_bookshelf.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "variants": { - "normal": { - "model": "aether:holystone_bookshelf" - } - } -} diff --git a/src/main/resources/assets/aether/blockstates/holystone_brick.json b/src/main/resources/assets/aether/blockstates/holystone_brick.json deleted file mode 100644 index 648db763d1..0000000000 --- a/src/main/resources/assets/aether/blockstates/holystone_brick.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "variants": { - "normal": [ - { "model": "aether:holystone_bricks/normal" } - ] - } -} diff --git a/src/main/resources/assets/aether/blockstates/holystone_brick_decorative.json b/src/main/resources/assets/aether/blockstates/holystone_brick_decorative.json deleted file mode 100644 index b54e7af0f2..0000000000 --- a/src/main/resources/assets/aether/blockstates/holystone_brick_decorative.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "variants": { - "variant=base_bricks": [ - { "model": "aether:holystone_bricks/base_bricks" } - ], - "variant=base_pillar": [ - { "model": "aether:holystone_bricks/base_pillar" } - ], - "variant=capstone_bricks": [ - { "model": "aether:holystone_bricks/capstone_bricks" } - ], - "variant=capstone_pillar": [ - { "model": "aether:holystone_bricks/capstone_pillar" } - ], - "variant=flagstones": [ - { "model": "aether:holystone_bricks/flagstones" } - ], - "variant=headstone": [ - { "model": "aether:holystone_bricks/headstone" } - ], - "variant=keystone": [ - { "model": "aether:holystone_bricks/keystone" } - ] - } -} diff --git a/src/main/resources/assets/aether/blockstates/holystone_brick_slab.json b/src/main/resources/assets/aether/blockstates/holystone_brick_slab.json deleted file mode 100644 index 5dbde18b3f..0000000000 --- a/src/main/resources/assets/aether/blockstates/holystone_brick_slab.json +++ /dev/null @@ -1,33 +0,0 @@ -{ - "forge_marker": 1, - "variants": { - "state=bottom": [ - { - "textures": { - "bottom": "aether:blocks/holystone_brick", - "top": "aether:blocks/holystone_brick", - "side": "aether:blocks/holystone_brick" - }, - "model": "half_slab" - } - ], - "state=top": [ - { - "textures": { - "bottom": "aether:blocks/holystone_brick", - "top": "aether:blocks/holystone_brick", - "side": "aether:blocks/holystone_brick" - }, - "model": "upper_slab" - } - ], - "state=full": [ - { - "textures": { - "all": "aether:blocks/holystone_brick" - }, - "model": "cube_all" - } - ] - } -} diff --git a/src/main/resources/assets/aether/blockstates/holystone_brick_stairs.json b/src/main/resources/assets/aether/blockstates/holystone_brick_stairs.json deleted file mode 100644 index fdd539995c..0000000000 --- a/src/main/resources/assets/aether/blockstates/holystone_brick_stairs.json +++ /dev/null @@ -1,52 +0,0 @@ -{ - "forge_marker": 1, - "defaults": { - "textures": { - "bottom": "aether:blocks/holystone_brick", - "side": "aether:blocks/holystone_brick", - "top": "aether:blocks/holystone_brick" - } - }, - "variants": { - "facing=east,half=bottom,shape=straight": { "model": "stairs" }, - "facing=west,half=bottom,shape=straight": { "model": "stairs", "y": 180, "uvlock": true }, - "facing=south,half=bottom,shape=straight": { "model": "stairs", "y": 90, "uvlock": true }, - "facing=north,half=bottom,shape=straight": { "model": "stairs", "y": 270, "uvlock": true }, - "facing=east,half=bottom,shape=outer_right": { "model": "outer_stairs" }, - "facing=west,half=bottom,shape=outer_right": { "model": "outer_stairs", "y": 180, "uvlock": true }, - "facing=south,half=bottom,shape=outer_right": { "model": "outer_stairs", "y": 90, "uvlock": true }, - "facing=north,half=bottom,shape=outer_right": { "model": "outer_stairs", "y": 270, "uvlock": true }, - "facing=east,half=bottom,shape=outer_left": { "model": "outer_stairs", "y": 270, "uvlock": true }, - "facing=west,half=bottom,shape=outer_left": { "model": "outer_stairs", "y": 90, "uvlock": true }, - "facing=south,half=bottom,shape=outer_left": { "model": "outer_stairs" }, - "facing=north,half=bottom,shape=outer_left": { "model": "outer_stairs", "y": 180, "uvlock": true }, - "facing=east,half=bottom,shape=inner_right": { "model": "inner_stairs" }, - "facing=west,half=bottom,shape=inner_right": { "model": "inner_stairs", "y": 180, "uvlock": true }, - "facing=south,half=bottom,shape=inner_right": { "model": "inner_stairs", "y": 90, "uvlock": true }, - "facing=north,half=bottom,shape=inner_right": { "model": "inner_stairs", "y": 270, "uvlock": true }, - "facing=east,half=bottom,shape=inner_left": { "model": "inner_stairs", "y": 270, "uvlock": true }, - "facing=west,half=bottom,shape=inner_left": { "model": "inner_stairs", "y": 90, "uvlock": true }, - "facing=south,half=bottom,shape=inner_left": { "model": "inner_stairs" }, - "facing=north,half=bottom,shape=inner_left": { "model": "inner_stairs", "y": 180, "uvlock": true }, - "facing=east,half=top,shape=straight": { "model": "stairs", "x": 180, "uvlock": true }, - "facing=west,half=top,shape=straight": { "model": "stairs", "x": 180, "y": 180, "uvlock": true }, - "facing=south,half=top,shape=straight": { "model": "stairs", "x": 180, "y": 90, "uvlock": true }, - "facing=north,half=top,shape=straight": { "model": "stairs", "x": 180, "y": 270, "uvlock": true }, - "facing=east,half=top,shape=outer_right": { "model": "outer_stairs", "x": 180, "y": 90, "uvlock": true }, - "facing=west,half=top,shape=outer_right": { "model": "outer_stairs", "x": 180, "y": 270, "uvlock": true }, - "facing=south,half=top,shape=outer_right": { "model": "outer_stairs", "x": 180, "y": 180, "uvlock": true }, - "facing=north,half=top,shape=outer_right": { "model": "outer_stairs", "x": 180, "uvlock": true }, - "facing=east,half=top,shape=outer_left": { "model": "outer_stairs", "x": 180, "uvlock": true }, - "facing=west,half=top,shape=outer_left": { "model": "outer_stairs", "x": 180, "y": 180, "uvlock": true }, - "facing=south,half=top,shape=outer_left": { "model": "outer_stairs", "x": 180, "y": 90, "uvlock": true }, - "facing=north,half=top,shape=outer_left": { "model": "outer_stairs", "x": 180, "y": 270, "uvlock": true }, - "facing=east,half=top,shape=inner_right": { "model": "inner_stairs", "x": 180, "y": 90, "uvlock": true }, - "facing=west,half=top,shape=inner_right": { "model": "inner_stairs", "x": 180, "y": 270, "uvlock": true }, - "facing=south,half=top,shape=inner_right": { "model": "inner_stairs", "x": 180, "y": 180, "uvlock": true }, - "facing=north,half=top,shape=inner_right": { "model": "inner_stairs", "x": 180, "uvlock": true }, - "facing=east,half=top,shape=inner_left": { "model": "inner_stairs", "x": 180, "uvlock": true }, - "facing=west,half=top,shape=inner_left": { "model": "inner_stairs", "x": 180, "y": 180, "uvlock": true }, - "facing=south,half=top,shape=inner_left": { "model": "inner_stairs", "x": 180, "y": 90, "uvlock": true }, - "facing=north,half=top,shape=inner_left": { "model": "inner_stairs", "x": 180, "y": 270, "uvlock": true } - } -} diff --git a/src/main/resources/assets/aether/blockstates/holystone_brick_wall.json b/src/main/resources/assets/aether/blockstates/holystone_brick_wall.json deleted file mode 100644 index a3e89d94c7..0000000000 --- a/src/main/resources/assets/aether/blockstates/holystone_brick_wall.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "multipart": [ - { - "when": { "up": "true" }, - "apply": { "model": "aether:aether_wall/holystone_brick_wall_post" } - }, - { - "when": { "north": "true" }, - "apply": { "model": "aether:aether_wall/holystone_brick_wall_side", "uvlock": true } - }, - { - "when": { "east": "true" }, - "apply": { "model": "aether:aether_wall/holystone_brick_wall_side", "y": 90, "uvlock": true } - }, - { - "when": { "south": "true" }, - "apply": { "model": "aether:aether_wall/holystone_brick_wall_side", "y": 180, "uvlock": true } - }, - { - "when": { "west": "true" }, - "apply": { "model": "aether:aether_wall/holystone_brick_wall_side", "y": 270, "uvlock": true } - } - ] -} diff --git a/src/main/resources/assets/aether/blockstates/holystone_button.json b/src/main/resources/assets/aether/blockstates/holystone_button.json deleted file mode 100644 index d65cbabf69..0000000000 --- a/src/main/resources/assets/aether/blockstates/holystone_button.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "variants": { - "facing=up,powered=false": { "model": "aether:holystone_button/holystone_button" }, - "facing=down,powered=false": { "model": "aether:holystone_button/holystone_button", "x": 180 }, - "facing=east,powered=false": { "model": "aether:holystone_button/holystone_button", "x": 90, "y": 90 }, - "facing=west,powered=false": { "model": "aether:holystone_button/holystone_button", "x": 90, "y": 270 }, - "facing=south,powered=false": { "model": "aether:holystone_button/holystone_button", "x": 90, "y": 180 }, - "facing=north,powered=false": { "model": "aether:holystone_button/holystone_button", "x": 90 }, - "facing=up,powered=true": { "model": "aether:holystone_button/holystone_button_pressed" }, - "facing=down,powered=true": { "model": "aether:holystone_button/holystone_button_pressed", "x": 180 }, - "facing=east,powered=true": { "model": "aether:holystone_button/holystone_button_pressed", "x": 90, "y": 90 }, - "facing=west,powered=true": { "model": "aether:holystone_button/holystone_button_pressed", "x": 90, "y": 270 }, - "facing=south,powered=true": { "model": "aether:holystone_button/holystone_button_pressed", "x": 90, "y": 180 }, - "facing=north,powered=true": { "model": "aether:holystone_button/holystone_button_pressed", "x": 90 } - } -} diff --git a/src/main/resources/assets/aether/blockstates/holystone_furnace.json b/src/main/resources/assets/aether/blockstates/holystone_furnace.json deleted file mode 100644 index 333fc759fc..0000000000 --- a/src/main/resources/assets/aether/blockstates/holystone_furnace.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "variants": { - "facing=north,is_lit=true": { - "model": "aether:holystone_furnace/holystone_furnace_lit", "y": 180 - }, - "facing=east,is_lit=true": { - "model": "aether:holystone_furnace/holystone_furnace_lit", "y": 270 - }, - "facing=south,is_lit=true": { - "model": "aether:holystone_furnace/holystone_furnace_lit" - }, - "facing=west,is_lit=true": { - "model": "aether:holystone_furnace/holystone_furnace_lit", "y": 90 - }, - "facing=north,is_lit=false": { - "model": "aether:holystone_furnace/holystone_furnace_unlit", "y": 180 - }, - "facing=east,is_lit=false": { - "model": "aether:holystone_furnace/holystone_furnace_unlit", "y": 270 - }, - "facing=south,is_lit=false": { - "model": "aether:holystone_furnace/holystone_furnace_unlit" - }, - "facing=west,is_lit=false": { - "model": "aether:holystone_furnace/holystone_furnace_unlit", "y": 90 - } - } -} diff --git a/src/main/resources/assets/aether/blockstates/holystone_pillar.json b/src/main/resources/assets/aether/blockstates/holystone_pillar.json deleted file mode 100644 index 86ac4183e5..0000000000 --- a/src/main/resources/assets/aether/blockstates/holystone_pillar.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "variants": { - "axis=y": { - "model": "aether:holystone_bricks/pillar" - }, - "axis=z": { - "model": "aether:holystone_bricks/pillar", - "x": 90 - }, - "axis=x": { - "model": "aether:holystone_bricks/pillar", - "x": 90, "y": 90 - } - } -} diff --git a/src/main/resources/assets/aether/blockstates/holystone_pressure_plate.json b/src/main/resources/assets/aether/blockstates/holystone_pressure_plate.json deleted file mode 100644 index 19bf9f4652..0000000000 --- a/src/main/resources/assets/aether/blockstates/holystone_pressure_plate.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "variants": { - "powered=false": { "model": "aether:holystone_pressure_plate/holystone_pressure_plate_up" }, - "powered=true": { "model": "aether:holystone_pressure_plate/holystone_pressure_plate_down" } - } -} diff --git a/src/main/resources/assets/aether/blockstates/holystone_quartz_ore.json b/src/main/resources/assets/aether/blockstates/holystone_quartz_ore.json deleted file mode 100644 index ecafccf21f..0000000000 --- a/src/main/resources/assets/aether/blockstates/holystone_quartz_ore.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "variants": { - "normal": { - "model": "aether:holystone_quartz_ore" - } - } -} diff --git a/src/main/resources/assets/aether/blockstates/holystone_rock.json b/src/main/resources/assets/aether/blockstates/holystone_rock.json deleted file mode 100644 index 9b2edd92ca..0000000000 --- a/src/main/resources/assets/aether/blockstates/holystone_rock.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "variants": { - "normal": [ - { "model": "aether:holystone_rock/holystone_rock" }, - { "model": "aether:holystone_rock/holystone_rock", "y": 90 }, - { "model": "aether:holystone_rock/holystone_rock", "y": 180 }, - { "model": "aether:holystone_rock/holystone_rock", "y": 270 }, - { "model": "aether:holystone_rock/holystone_rock_2" }, - { "model": "aether:holystone_rock/holystone_rock_2", "y": 90 }, - { "model": "aether:holystone_rock/holystone_rock_2", "y": 180 }, - { "model": "aether:holystone_rock/holystone_rock_2", "y": 270 }, - { "model": "aether:holystone_rock/holystone_rock_3" }, - { "model": "aether:holystone_rock/holystone_rock_3", "y": 90 }, - { "model": "aether:holystone_rock/holystone_rock_3", "y": 180 }, - { "model": "aether:holystone_rock/holystone_rock_3", "y": 270 }, - { "model": "aether:holystone_rock/holystone_rock_4" }, - { "model": "aether:holystone_rock/holystone_rock_4", "y": 90 }, - { "model": "aether:holystone_rock/holystone_rock_4", "y": 180 }, - { "model": "aether:holystone_rock/holystone_rock_4", "y": 270 }, - { "model": "aether:holystone_rock/holystone_rock_5" }, - { "model": "aether:holystone_rock/holystone_rock_5", "y": 90 }, - { "model": "aether:holystone_rock/holystone_rock_5", "y": 180 }, - { "model": "aether:holystone_rock/holystone_rock_5", "y": 270 } - ] - } -} diff --git a/src/main/resources/assets/aether/blockstates/holystone_slab.json b/src/main/resources/assets/aether/blockstates/holystone_slab.json deleted file mode 100644 index 0ee86f8611..0000000000 --- a/src/main/resources/assets/aether/blockstates/holystone_slab.json +++ /dev/null @@ -1,33 +0,0 @@ -{ - "forge_marker": 1, - "variants": { - "state=bottom": [ - { - "textures": { - "bottom": "aether:blocks/holystone/holystone", - "top": "aether:blocks/holystone/holystone", - "side": "aether:blocks/holystone/holystone" - }, - "model": "half_slab" - } - ], - "state=top": [ - { - "textures": { - "bottom": "aether:blocks/holystone/holystone", - "top": "aether:blocks/holystone/holystone", - "side": "aether:blocks/holystone/holystone" - }, - "model": "upper_slab" - } - ], - "state=full": [ - { - "textures": { - "all": "aether:blocks/holystone/holystone" - }, - "model": "cube_all" - } - ] - } -} diff --git a/src/main/resources/assets/aether/blockstates/holystone_stairs.json b/src/main/resources/assets/aether/blockstates/holystone_stairs.json deleted file mode 100644 index aa32b13d74..0000000000 --- a/src/main/resources/assets/aether/blockstates/holystone_stairs.json +++ /dev/null @@ -1,52 +0,0 @@ -{ - "forge_marker": 1, - "defaults": { - "textures": { - "bottom": "aether:blocks/holystone/holystone", - "side": "aether:blocks/holystone/holystone", - "top": "aether:blocks/holystone/holystone" - } - }, - "variants": { - "facing=east,half=bottom,shape=straight": { "model": "stairs" }, - "facing=west,half=bottom,shape=straight": { "model": "stairs", "y": 180, "uvlock": true }, - "facing=south,half=bottom,shape=straight": { "model": "stairs", "y": 90, "uvlock": true }, - "facing=north,half=bottom,shape=straight": { "model": "stairs", "y": 270, "uvlock": true }, - "facing=east,half=bottom,shape=outer_right": { "model": "outer_stairs" }, - "facing=west,half=bottom,shape=outer_right": { "model": "outer_stairs", "y": 180, "uvlock": true }, - "facing=south,half=bottom,shape=outer_right": { "model": "outer_stairs", "y": 90, "uvlock": true }, - "facing=north,half=bottom,shape=outer_right": { "model": "outer_stairs", "y": 270, "uvlock": true }, - "facing=east,half=bottom,shape=outer_left": { "model": "outer_stairs", "y": 270, "uvlock": true }, - "facing=west,half=bottom,shape=outer_left": { "model": "outer_stairs", "y": 90, "uvlock": true }, - "facing=south,half=bottom,shape=outer_left": { "model": "outer_stairs" }, - "facing=north,half=bottom,shape=outer_left": { "model": "outer_stairs", "y": 180, "uvlock": true }, - "facing=east,half=bottom,shape=inner_right": { "model": "inner_stairs" }, - "facing=west,half=bottom,shape=inner_right": { "model": "inner_stairs", "y": 180, "uvlock": true }, - "facing=south,half=bottom,shape=inner_right": { "model": "inner_stairs", "y": 90, "uvlock": true }, - "facing=north,half=bottom,shape=inner_right": { "model": "inner_stairs", "y": 270, "uvlock": true }, - "facing=east,half=bottom,shape=inner_left": { "model": "inner_stairs", "y": 270, "uvlock": true }, - "facing=west,half=bottom,shape=inner_left": { "model": "inner_stairs", "y": 90, "uvlock": true }, - "facing=south,half=bottom,shape=inner_left": { "model": "inner_stairs" }, - "facing=north,half=bottom,shape=inner_left": { "model": "inner_stairs", "y": 180, "uvlock": true }, - "facing=east,half=top,shape=straight": { "model": "stairs", "x": 180, "uvlock": true }, - "facing=west,half=top,shape=straight": { "model": "stairs", "x": 180, "y": 180, "uvlock": true }, - "facing=south,half=top,shape=straight": { "model": "stairs", "x": 180, "y": 90, "uvlock": true }, - "facing=north,half=top,shape=straight": { "model": "stairs", "x": 180, "y": 270, "uvlock": true }, - "facing=east,half=top,shape=outer_right": { "model": "outer_stairs", "x": 180, "y": 90, "uvlock": true }, - "facing=west,half=top,shape=outer_right": { "model": "outer_stairs", "x": 180, "y": 270, "uvlock": true }, - "facing=south,half=top,shape=outer_right": { "model": "outer_stairs", "x": 180, "y": 180, "uvlock": true }, - "facing=north,half=top,shape=outer_right": { "model": "outer_stairs", "x": 180, "uvlock": true }, - "facing=east,half=top,shape=outer_left": { "model": "outer_stairs", "x": 180, "uvlock": true }, - "facing=west,half=top,shape=outer_left": { "model": "outer_stairs", "x": 180, "y": 180, "uvlock": true }, - "facing=south,half=top,shape=outer_left": { "model": "outer_stairs", "x": 180, "y": 90, "uvlock": true }, - "facing=north,half=top,shape=outer_left": { "model": "outer_stairs", "x": 180, "y": 270, "uvlock": true }, - "facing=east,half=top,shape=inner_right": { "model": "inner_stairs", "x": 180, "y": 90, "uvlock": true }, - "facing=west,half=top,shape=inner_right": { "model": "inner_stairs", "x": 180, "y": 270, "uvlock": true }, - "facing=south,half=top,shape=inner_right": { "model": "inner_stairs", "x": 180, "y": 180, "uvlock": true }, - "facing=north,half=top,shape=inner_right": { "model": "inner_stairs", "x": 180, "uvlock": true }, - "facing=east,half=top,shape=inner_left": { "model": "inner_stairs", "x": 180, "uvlock": true }, - "facing=west,half=top,shape=inner_left": { "model": "inner_stairs", "x": 180, "y": 180, "uvlock": true }, - "facing=south,half=top,shape=inner_left": { "model": "inner_stairs", "x": 180, "y": 90, "uvlock": true }, - "facing=north,half=top,shape=inner_left": { "model": "inner_stairs", "x": 180, "y": 270, "uvlock": true } - } -} diff --git a/src/main/resources/assets/aether/blockstates/holystone_wall.json b/src/main/resources/assets/aether/blockstates/holystone_wall.json deleted file mode 100644 index 7fdef424de..0000000000 --- a/src/main/resources/assets/aether/blockstates/holystone_wall.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "multipart": [ - { - "when": { "up": "true" }, - "apply": { "model": "aether:aether_wall/holystone_wall_post" } - }, - { - "when": { "north": "true" }, - "apply": { "model": "aether:aether_wall/holystone_wall_side", "uvlock": true } - }, - { - "when": { "east": "true" }, - "apply": { "model": "aether:aether_wall/holystone_wall_side", "y": 90, "uvlock": true } - }, - { - "when": { "south": "true" }, - "apply": { "model": "aether:aether_wall/holystone_wall_side", "y": 180, "uvlock": true } - }, - { - "when": { "west": "true" }, - "apply": { "model": "aether:aether_wall/holystone_wall_side", "y": 270, "uvlock": true } - } - ] -} diff --git a/src/main/resources/assets/aether/blockstates/icestone_brick_stairs.json b/src/main/resources/assets/aether/blockstates/icestone_brick_stairs.json deleted file mode 100644 index 9b560cf782..0000000000 --- a/src/main/resources/assets/aether/blockstates/icestone_brick_stairs.json +++ /dev/null @@ -1,52 +0,0 @@ -{ - "forge_marker": 1, - "defaults": { - "textures": { - "bottom": "aether:blocks/icestone_bricks", - "side": "aether:blocks/icestone_bricks", - "top": "aether:blocks/icestone_bricks" - } - }, - "variants": { - "facing=east,half=bottom,shape=straight": { "model": "stairs" }, - "facing=west,half=bottom,shape=straight": { "model": "stairs", "y": 180, "uvlock": true }, - "facing=south,half=bottom,shape=straight": { "model": "stairs", "y": 90, "uvlock": true }, - "facing=north,half=bottom,shape=straight": { "model": "stairs", "y": 270, "uvlock": true }, - "facing=east,half=bottom,shape=outer_right": { "model": "outer_stairs" }, - "facing=west,half=bottom,shape=outer_right": { "model": "outer_stairs", "y": 180, "uvlock": true }, - "facing=south,half=bottom,shape=outer_right": { "model": "outer_stairs", "y": 90, "uvlock": true }, - "facing=north,half=bottom,shape=outer_right": { "model": "outer_stairs", "y": 270, "uvlock": true }, - "facing=east,half=bottom,shape=outer_left": { "model": "outer_stairs", "y": 270, "uvlock": true }, - "facing=west,half=bottom,shape=outer_left": { "model": "outer_stairs", "y": 90, "uvlock": true }, - "facing=south,half=bottom,shape=outer_left": { "model": "outer_stairs" }, - "facing=north,half=bottom,shape=outer_left": { "model": "outer_stairs", "y": 180, "uvlock": true }, - "facing=east,half=bottom,shape=inner_right": { "model": "inner_stairs" }, - "facing=west,half=bottom,shape=inner_right": { "model": "inner_stairs", "y": 180, "uvlock": true }, - "facing=south,half=bottom,shape=inner_right": { "model": "inner_stairs", "y": 90, "uvlock": true }, - "facing=north,half=bottom,shape=inner_right": { "model": "inner_stairs", "y": 270, "uvlock": true }, - "facing=east,half=bottom,shape=inner_left": { "model": "inner_stairs", "y": 270, "uvlock": true }, - "facing=west,half=bottom,shape=inner_left": { "model": "inner_stairs", "y": 90, "uvlock": true }, - "facing=south,half=bottom,shape=inner_left": { "model": "inner_stairs" }, - "facing=north,half=bottom,shape=inner_left": { "model": "inner_stairs", "y": 180, "uvlock": true }, - "facing=east,half=top,shape=straight": { "model": "stairs", "x": 180, "uvlock": true }, - "facing=west,half=top,shape=straight": { "model": "stairs", "x": 180, "y": 180, "uvlock": true }, - "facing=south,half=top,shape=straight": { "model": "stairs", "x": 180, "y": 90, "uvlock": true }, - "facing=north,half=top,shape=straight": { "model": "stairs", "x": 180, "y": 270, "uvlock": true }, - "facing=east,half=top,shape=outer_right": { "model": "outer_stairs", "x": 180, "y": 90, "uvlock": true }, - "facing=west,half=top,shape=outer_right": { "model": "outer_stairs", "x": 180, "y": 270, "uvlock": true }, - "facing=south,half=top,shape=outer_right": { "model": "outer_stairs", "x": 180, "y": 180, "uvlock": true }, - "facing=north,half=top,shape=outer_right": { "model": "outer_stairs", "x": 180, "uvlock": true }, - "facing=east,half=top,shape=outer_left": { "model": "outer_stairs", "x": 180, "uvlock": true }, - "facing=west,half=top,shape=outer_left": { "model": "outer_stairs", "x": 180, "y": 180, "uvlock": true }, - "facing=south,half=top,shape=outer_left": { "model": "outer_stairs", "x": 180, "y": 90, "uvlock": true }, - "facing=north,half=top,shape=outer_left": { "model": "outer_stairs", "x": 180, "y": 270, "uvlock": true }, - "facing=east,half=top,shape=inner_right": { "model": "inner_stairs", "x": 180, "y": 90, "uvlock": true }, - "facing=west,half=top,shape=inner_right": { "model": "inner_stairs", "x": 180, "y": 270, "uvlock": true }, - "facing=south,half=top,shape=inner_right": { "model": "inner_stairs", "x": 180, "y": 180, "uvlock": true }, - "facing=north,half=top,shape=inner_right": { "model": "inner_stairs", "x": 180, "uvlock": true }, - "facing=east,half=top,shape=inner_left": { "model": "inner_stairs", "x": 180, "uvlock": true }, - "facing=west,half=top,shape=inner_left": { "model": "inner_stairs", "x": 180, "y": 180, "uvlock": true }, - "facing=south,half=top,shape=inner_left": { "model": "inner_stairs", "x": 180, "y": 90, "uvlock": true }, - "facing=north,half=top,shape=inner_left": { "model": "inner_stairs", "x": 180, "y": 270, "uvlock": true } - } -} diff --git a/src/main/resources/assets/aether/blockstates/icestone_bricks.json b/src/main/resources/assets/aether/blockstates/icestone_bricks.json deleted file mode 100644 index bba4bcd613..0000000000 --- a/src/main/resources/assets/aether/blockstates/icestone_bricks.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "variants": { - "normal": { - "model": "aether:icestone_bricks" - } - } -} diff --git a/src/main/resources/assets/aether/blockstates/icestone_bricks_decorative.json b/src/main/resources/assets/aether/blockstates/icestone_bricks_decorative.json deleted file mode 100644 index 6ab68f2e11..0000000000 --- a/src/main/resources/assets/aether/blockstates/icestone_bricks_decorative.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "variants": { - "variant=base_bricks": [ - { "model": "aether:icestone_bricks/base_bricks" } - ], - "variant=base_pillar": [ - { "model": "aether:icestone_bricks/base_pillar" } - ], - "variant=capstone_bricks": [ - { "model": "aether:icestone_bricks/capstone_bricks" } - ], - "variant=capstone_pillar": [ - { "model": "aether:icestone_bricks/capstone_pillar" } - ], - "variant=flagstones": [ - { "model": "aether:icestone_bricks/flagstones" } - ], - "variant=keystone": [ - { "model": "aether:icestone_bricks/keystone" } - ] - } -} diff --git a/src/main/resources/assets/aether/blockstates/icestone_cooler.json b/src/main/resources/assets/aether/blockstates/icestone_cooler.json deleted file mode 100644 index 9d8bd2b75b..0000000000 --- a/src/main/resources/assets/aether/blockstates/icestone_cooler.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "variants": { - "normal": [ - { "model": "aether:icestone_cooler" } - ] - } -} diff --git a/src/main/resources/assets/aether/blockstates/icestone_ore.json b/src/main/resources/assets/aether/blockstates/icestone_ore.json deleted file mode 100644 index abea2e884e..0000000000 --- a/src/main/resources/assets/aether/blockstates/icestone_ore.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "variants": { - "normal": { - "model": "aether:icestone_ore" - } - } -} diff --git a/src/main/resources/assets/aether/blockstates/icestone_pillar.json b/src/main/resources/assets/aether/blockstates/icestone_pillar.json deleted file mode 100644 index 24f5ecd6de..0000000000 --- a/src/main/resources/assets/aether/blockstates/icestone_pillar.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "variants": { - "axis=y": { - "model": "aether:icestone_bricks/pillar" - }, - "axis=z": { - "model": "aether:icestone_bricks/pillar", - "x": 90 - }, - "axis=x": { - "model": "aether:icestone_bricks/pillar", - "x": 90, "y": 90 - } - } -} diff --git a/src/main/resources/assets/aether/blockstates/icestone_slab.json b/src/main/resources/assets/aether/blockstates/icestone_slab.json deleted file mode 100644 index 695a1e8f16..0000000000 --- a/src/main/resources/assets/aether/blockstates/icestone_slab.json +++ /dev/null @@ -1,33 +0,0 @@ -{ - "forge_marker": 1, - "variants": { - "state=bottom": [ - { - "textures": { - "bottom": "aether:blocks/icestone_bricks", - "top": "aether:blocks/icestone_bricks", - "side": "aether:blocks/icestone_bricks" - }, - "model": "half_slab" - } - ], - "state=top": [ - { - "textures": { - "bottom": "aether:blocks/icestone_bricks", - "top": "aether:blocks/icestone_bricks", - "side": "aether:blocks/icestone_bricks" - }, - "model": "upper_slab" - } - ], - "state=full": [ - { - "textures": { - "all": "aether:blocks/icestone_bricks" - }, - "model": "cube_all" - } - ] - } -} diff --git a/src/main/resources/assets/aether/blockstates/icestone_wall.json b/src/main/resources/assets/aether/blockstates/icestone_wall.json deleted file mode 100644 index 074b86c0da..0000000000 --- a/src/main/resources/assets/aether/blockstates/icestone_wall.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "multipart": [ - { - "when": { "up": "true" }, - "apply": { "model": "aether:aether_wall/icestone_wall_post" } - }, - { - "when": { "north": "true" }, - "apply": { "model": "aether:aether_wall/icestone_wall_side", "uvlock": true } - }, - { - "when": { "east": "true" }, - "apply": { "model": "aether:aether_wall/icestone_wall_side", "y": 90, "uvlock": true } - }, - { - "when": { "south": "true" }, - "apply": { "model": "aether:aether_wall/icestone_wall_side", "y": 180, "uvlock": true } - }, - { - "when": { "west": "true" }, - "apply": { "model": "aether:aether_wall/icestone_wall_side", "y": 270, "uvlock": true } - } - ] -} diff --git a/src/main/resources/assets/aether/blockstates/incubator.json b/src/main/resources/assets/aether/blockstates/incubator.json deleted file mode 100644 index 47d34aaad3..0000000000 --- a/src/main/resources/assets/aether/blockstates/incubator.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "variants": { - "facing=north,is_lit=true": { - "model": "aether:incubator/incubator_on" - }, - "facing=east,is_lit=true": { - "model": "aether:incubator/incubator_on", "y": 90 - }, - "facing=south,is_lit=true": { - "model": "aether:incubator/incubator_on", "y": 180 - }, - "facing=west,is_lit=true": { - "model": "aether:incubator/incubator_on", "y": 270 - }, - "facing=north,is_lit=false": { - "model": "aether:incubator/incubator_off" - }, - "facing=east,is_lit=false": { - "model": "aether:incubator/incubator_off", "y": 90 - }, - "facing=south,is_lit=false": { - "model": "aether:incubator/incubator_off", "y": 180 - }, - "facing=west,is_lit=false": { - "model": "aether:incubator/incubator_off", "y": 270 - } - } -} diff --git a/src/main/resources/assets/aether/blockstates/irradiated_dust_block.json b/src/main/resources/assets/aether/blockstates/irradiated_dust_block.json deleted file mode 100644 index dc983dafb8..0000000000 --- a/src/main/resources/assets/aether/blockstates/irradiated_dust_block.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "variants": { - "normal": { - "model": "aether:irradiated_dust_block" - } - } -} diff --git a/src/main/resources/assets/aether/blockstates/irradiated_flower.json b/src/main/resources/assets/aether/blockstates/irradiated_flower.json deleted file mode 100644 index 56e35d24a7..0000000000 --- a/src/main/resources/assets/aether/blockstates/irradiated_flower.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "variants": { - "snowy=false": { - "model": "aether:flowers/irradiated_flower" - }, - "snowy=true": { - "model": "aether:flowers/irradiated_flower_snowy" - } - } -} diff --git a/src/main/resources/assets/aether/blockstates/light_skyroot_beam.json b/src/main/resources/assets/aether/blockstates/light_skyroot_beam.json deleted file mode 100644 index a80481dcae..0000000000 --- a/src/main/resources/assets/aether/blockstates/light_skyroot_beam.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "variants": { - "axis=y": { - "model": "aether:light_skyroot_planks/beam" - }, - "axis=z": { - "model": "aether:light_skyroot_planks/beam", - "x": 90 - }, - "axis=x": { - "model": "aether:light_skyroot_planks/beam", - "x": 90, "y": 90 - } - } -} diff --git a/src/main/resources/assets/aether/blockstates/light_skyroot_decorative.json b/src/main/resources/assets/aether/blockstates/light_skyroot_decorative.json deleted file mode 100644 index 74551a2fc5..0000000000 --- a/src/main/resources/assets/aether/blockstates/light_skyroot_decorative.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "variants": { - "variant=base_planks": [ - { "model": "aether:light_skyroot_planks/base_planks" } - ], - "variant=base_beam": [ - { "model": "aether:light_skyroot_planks/base_beam" } - ], - "variant=top_planks": [ - { "model": "aether:light_skyroot_planks/top_planks" } - ], - "variant=top_beam": [ - { "model": "aether:light_skyroot_planks/top_beam" } - ], - "variant=floorboards": [ - { "model": "aether:light_skyroot_planks/floorboards" } - ], - "variant=highlight": [ - { "model": "aether:light_skyroot_planks/highlight" } - ], - "variant=tiles": [ - { "model": "aether:light_skyroot_planks/tiles" } - ], - "variant=tiles_small": [ - { "model": "aether:light_skyroot_planks/tiles_small" } - - ] - } -} diff --git a/src/main/resources/assets/aether/blockstates/light_skyroot_log.json b/src/main/resources/assets/aether/blockstates/light_skyroot_log.json deleted file mode 100644 index d07b5314ea..0000000000 --- a/src/main/resources/assets/aether/blockstates/light_skyroot_log.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "variants": { - "axis=y": { - "model": "aether:logs/light_skyroot_log" - }, - "axis=z": { - "model": "aether:logs/light_skyroot_log", - "x": 90 - }, - "axis=x": { - "model": "aether:logs/light_skyroot_log", - "x": 90, "y": 90 - }, - "axis=none": { - "model": "aether:logs/light_skyroot_log_bark" - } - } -} diff --git a/src/main/resources/assets/aether/blockstates/light_skyroot_planks.json b/src/main/resources/assets/aether/blockstates/light_skyroot_planks.json deleted file mode 100644 index fd423e1db1..0000000000 --- a/src/main/resources/assets/aether/blockstates/light_skyroot_planks.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "variants": { - "normal": [ - { "model": "aether:light_skyroot_planks/normal" } - ] - } -} diff --git a/src/main/resources/assets/aether/blockstates/magnetic_shroom.json b/src/main/resources/assets/aether/blockstates/magnetic_shroom.json deleted file mode 100644 index aefffc0e96..0000000000 --- a/src/main/resources/assets/aether/blockstates/magnetic_shroom.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "variants": { - "snowy=false": { - "model": "aether:flowers/magnetic_shroom" - }, - "snowy=true": { - "model": "aether:flowers/magnetic_shroom_snowy" - } - } -} diff --git a/src/main/resources/assets/aether/blockstates/masonry_bench.json b/src/main/resources/assets/aether/blockstates/masonry_bench.json deleted file mode 100644 index 28ca4c0511..0000000000 --- a/src/main/resources/assets/aether/blockstates/masonry_bench.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "variants": { - "normal": [ - { "model": "aether:masonry_bench" } - ] - } -} diff --git a/src/main/resources/assets/aether/blockstates/moa_egg.json b/src/main/resources/assets/aether/blockstates/moa_egg.json deleted file mode 100644 index ecf2f92ddb..0000000000 --- a/src/main/resources/assets/aether/blockstates/moa_egg.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "variants": { - "normal": [ - { "model": "aether:moa_egg" } - ] - } -} diff --git a/src/main/resources/assets/aether/blockstates/mossy_holystone_slab.json b/src/main/resources/assets/aether/blockstates/mossy_holystone_slab.json deleted file mode 100644 index c3c497e414..0000000000 --- a/src/main/resources/assets/aether/blockstates/mossy_holystone_slab.json +++ /dev/null @@ -1,33 +0,0 @@ -{ - "forge_marker": 1, - "variants": { - "state=bottom": [ - { - "textures": { - "bottom": "aether:blocks/holystone/mossy_holystone", - "top": "aether:blocks/holystone/mossy_holystone", - "side": "aether:blocks/holystone/mossy_holystone" - }, - "model": "half_slab" - } - ], - "state=top": [ - { - "textures": { - "bottom": "aether:blocks/holystone/mossy_holystone", - "top": "aether:blocks/holystone/mossy_holystone", - "side": "aether:blocks/holystone/mossy_holystone" - }, - "model": "upper_slab" - } - ], - "state=full": [ - { - "textures": { - "all": "aether:blocks/holystone/mossy_holystone" - }, - "model": "cube_all" - } - ] - } -} diff --git a/src/main/resources/assets/aether/blockstates/mossy_holystone_stairs.json b/src/main/resources/assets/aether/blockstates/mossy_holystone_stairs.json deleted file mode 100644 index 9fd21e9071..0000000000 --- a/src/main/resources/assets/aether/blockstates/mossy_holystone_stairs.json +++ /dev/null @@ -1,52 +0,0 @@ -{ - "forge_marker": 1, - "defaults": { - "textures": { - "bottom": "aether:blocks/holystone/mossy_holystone", - "side": "aether:blocks/holystone/mossy_holystone", - "top": "aether:blocks/holystone/mossy_holystone" - } - }, - "variants": { - "facing=east,half=bottom,shape=straight": { "model": "stairs" }, - "facing=west,half=bottom,shape=straight": { "model": "stairs", "y": 180, "uvlock": true }, - "facing=south,half=bottom,shape=straight": { "model": "stairs", "y": 90, "uvlock": true }, - "facing=north,half=bottom,shape=straight": { "model": "stairs", "y": 270, "uvlock": true }, - "facing=east,half=bottom,shape=outer_right": { "model": "outer_stairs" }, - "facing=west,half=bottom,shape=outer_right": { "model": "outer_stairs", "y": 180, "uvlock": true }, - "facing=south,half=bottom,shape=outer_right": { "model": "outer_stairs", "y": 90, "uvlock": true }, - "facing=north,half=bottom,shape=outer_right": { "model": "outer_stairs", "y": 270, "uvlock": true }, - "facing=east,half=bottom,shape=outer_left": { "model": "outer_stairs", "y": 270, "uvlock": true }, - "facing=west,half=bottom,shape=outer_left": { "model": "outer_stairs", "y": 90, "uvlock": true }, - "facing=south,half=bottom,shape=outer_left": { "model": "outer_stairs" }, - "facing=north,half=bottom,shape=outer_left": { "model": "outer_stairs", "y": 180, "uvlock": true }, - "facing=east,half=bottom,shape=inner_right": { "model": "inner_stairs" }, - "facing=west,half=bottom,shape=inner_right": { "model": "inner_stairs", "y": 180, "uvlock": true }, - "facing=south,half=bottom,shape=inner_right": { "model": "inner_stairs", "y": 90, "uvlock": true }, - "facing=north,half=bottom,shape=inner_right": { "model": "inner_stairs", "y": 270, "uvlock": true }, - "facing=east,half=bottom,shape=inner_left": { "model": "inner_stairs", "y": 270, "uvlock": true }, - "facing=west,half=bottom,shape=inner_left": { "model": "inner_stairs", "y": 90, "uvlock": true }, - "facing=south,half=bottom,shape=inner_left": { "model": "inner_stairs" }, - "facing=north,half=bottom,shape=inner_left": { "model": "inner_stairs", "y": 180, "uvlock": true }, - "facing=east,half=top,shape=straight": { "model": "stairs", "x": 180, "uvlock": true }, - "facing=west,half=top,shape=straight": { "model": "stairs", "x": 180, "y": 180, "uvlock": true }, - "facing=south,half=top,shape=straight": { "model": "stairs", "x": 180, "y": 90, "uvlock": true }, - "facing=north,half=top,shape=straight": { "model": "stairs", "x": 180, "y": 270, "uvlock": true }, - "facing=east,half=top,shape=outer_right": { "model": "outer_stairs", "x": 180, "y": 90, "uvlock": true }, - "facing=west,half=top,shape=outer_right": { "model": "outer_stairs", "x": 180, "y": 270, "uvlock": true }, - "facing=south,half=top,shape=outer_right": { "model": "outer_stairs", "x": 180, "y": 180, "uvlock": true }, - "facing=north,half=top,shape=outer_right": { "model": "outer_stairs", "x": 180, "uvlock": true }, - "facing=east,half=top,shape=outer_left": { "model": "outer_stairs", "x": 180, "uvlock": true }, - "facing=west,half=top,shape=outer_left": { "model": "outer_stairs", "x": 180, "y": 180, "uvlock": true }, - "facing=south,half=top,shape=outer_left": { "model": "outer_stairs", "x": 180, "y": 90, "uvlock": true }, - "facing=north,half=top,shape=outer_left": { "model": "outer_stairs", "x": 180, "y": 270, "uvlock": true }, - "facing=east,half=top,shape=inner_right": { "model": "inner_stairs", "x": 180, "y": 90, "uvlock": true }, - "facing=west,half=top,shape=inner_right": { "model": "inner_stairs", "x": 180, "y": 270, "uvlock": true }, - "facing=south,half=top,shape=inner_right": { "model": "inner_stairs", "x": 180, "y": 180, "uvlock": true }, - "facing=north,half=top,shape=inner_right": { "model": "inner_stairs", "x": 180, "uvlock": true }, - "facing=east,half=top,shape=inner_left": { "model": "inner_stairs", "x": 180, "uvlock": true }, - "facing=west,half=top,shape=inner_left": { "model": "inner_stairs", "x": 180, "y": 180, "uvlock": true }, - "facing=south,half=top,shape=inner_left": { "model": "inner_stairs", "x": 180, "y": 90, "uvlock": true }, - "facing=north,half=top,shape=inner_left": { "model": "inner_stairs", "x": 180, "y": 270, "uvlock": true } - } -} diff --git a/src/main/resources/assets/aether/blockstates/mossy_holystone_wall.json b/src/main/resources/assets/aether/blockstates/mossy_holystone_wall.json deleted file mode 100644 index 80efa4c1c9..0000000000 --- a/src/main/resources/assets/aether/blockstates/mossy_holystone_wall.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "multipart": [ - { - "when": { "up": "true" }, - "apply": { "model": "aether:aether_wall/mossy_holystone_wall_post" } - }, - { - "when": { "north": "true" }, - "apply": { "model": "aether:aether_wall/mossy_holystone_wall_side", "uvlock": true } - }, - { - "when": { "east": "true" }, - "apply": { "model": "aether:aether_wall/mossy_holystone_wall_side", "y": 90, "uvlock": true } - }, - { - "when": { "south": "true" }, - "apply": { "model": "aether:aether_wall/mossy_holystone_wall_side", "y": 180, "uvlock": true } - }, - { - "when": { "west": "true" }, - "apply": { "model": "aether:aether_wall/mossy_holystone_wall_side", "y": 270, "uvlock": true } - } - ] -} diff --git a/src/main/resources/assets/aether/blockstates/multiblock_dummy.json b/src/main/resources/assets/aether/blockstates/multiblock_dummy.json deleted file mode 100644 index f9bfc059d7..0000000000 --- a/src/main/resources/assets/aether/blockstates/multiblock_dummy.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "variants": { - "normal": [ - { "model": "aether:multiblock_dummy" } - ] - } -} diff --git a/src/main/resources/assets/aether/blockstates/multiblock_dummy_half.json b/src/main/resources/assets/aether/blockstates/multiblock_dummy_half.json deleted file mode 100644 index f9bfc059d7..0000000000 --- a/src/main/resources/assets/aether/blockstates/multiblock_dummy_half.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "variants": { - "normal": [ - { "model": "aether:multiblock_dummy" } - ] - } -} diff --git a/src/main/resources/assets/aether/blockstates/mutant_leaves.json b/src/main/resources/assets/aether/blockstates/mutant_leaves.json deleted file mode 100644 index 7fb98f5657..0000000000 --- a/src/main/resources/assets/aether/blockstates/mutant_leaves.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "variants": { - "normal": { - "model": "aether:leaves/mutant_leaves" - } - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/blockstates/mutant_leaves_decorated.json b/src/main/resources/assets/aether/blockstates/mutant_leaves_decorated.json deleted file mode 100644 index 2c7fcb3279..0000000000 --- a/src/main/resources/assets/aether/blockstates/mutant_leaves_decorated.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "variants": { - "normal": { - "model": "aether:leaves/mutant_leaves_decorated" - } - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/blockstates/neverbloom.json b/src/main/resources/assets/aether/blockstates/neverbloom.json deleted file mode 100644 index 66bbe96a3f..0000000000 --- a/src/main/resources/assets/aether/blockstates/neverbloom.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "variants": { - "snowy=false": { - "model": "aether:flowers/neverbloom" - }, - "snowy=true": { - "model": "aether:flowers/neverbloom_snowy" - } - } -} diff --git a/src/main/resources/assets/aether/blockstates/orange_tree.json b/src/main/resources/assets/aether/blockstates/orange_tree.json deleted file mode 100644 index 9836b54367..0000000000 --- a/src/main/resources/assets/aether/blockstates/orange_tree.json +++ /dev/null @@ -1,31 +0,0 @@ -{ - "variants": { - "normal": { - "model": "aether:orange_tree/orange_tree_bottom_stage_1" - }, - "is_top_block=false,stage=1": { - "model": "aether:orange_tree/orange_tree_bottom_stage_1" - }, - "is_top_block=false,stage=2": { - "model": "aether:orange_tree/orange_tree_bottom_stage_2" - }, - "is_top_block=false,stage=3": { - "model": "aether:orange_tree/orange_tree_bottom_stage_3" - }, - "is_top_block=false,stage=4": { - "model": "aether:orange_tree/orange_tree_bottom_stage_3" - }, - "is_top_block=false,stage=5": { - "model": "aether:orange_tree/orange_tree_bottom_ripe" - }, - "is_top_block=true,stage=3": { - "model": "aether:orange_tree/orange_tree_top_stage_3" - }, - "is_top_block=true,stage=4": { - "model": "aether:orange_tree/orange_tree_top_stage_4" - }, - "is_top_block=true,stage=5": { - "model": "aether:orange_tree/orange_tree_top_ripe" - } - } -} diff --git a/src/main/resources/assets/aether/blockstates/outpost_campfire.json b/src/main/resources/assets/aether/blockstates/outpost_campfire.json deleted file mode 100644 index 142fcbc208..0000000000 --- a/src/main/resources/assets/aether/blockstates/outpost_campfire.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "variants": { - "normal": [ - { "model": "aether:outpost_campfire" } - ] - } -} diff --git a/src/main/resources/assets/aether/blockstates/pink_swingtip.json b/src/main/resources/assets/aether/blockstates/pink_swingtip.json deleted file mode 100644 index 1acbc04518..0000000000 --- a/src/main/resources/assets/aether/blockstates/pink_swingtip.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "variants": { - "snowy=false": { - "model": "aether:flowers/pink_swingtip" - }, - "snowy=true": { - "model": "aether:flowers/pink_swingtip_snowy" - } - } -} diff --git a/src/main/resources/assets/aether/blockstates/plumproot.json b/src/main/resources/assets/aether/blockstates/plumproot.json deleted file mode 100644 index 364fe2ca25..0000000000 --- a/src/main/resources/assets/aether/blockstates/plumproot.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "variants": { - "normal": { - "model": "aether:plumproot" - } - } -} diff --git a/src/main/resources/assets/aether/blockstates/present.json b/src/main/resources/assets/aether/blockstates/present.json deleted file mode 100644 index b1f32119e2..0000000000 --- a/src/main/resources/assets/aether/blockstates/present.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "variants": { - "normal": [ - { "model": "aether:present" } - ] - } -} diff --git a/src/main/resources/assets/aether/blockstates/quickshoot.json b/src/main/resources/assets/aether/blockstates/quickshoot.json deleted file mode 100644 index 9cd1ffa9f9..0000000000 --- a/src/main/resources/assets/aether/blockstates/quickshoot.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "variants": { - "snowy=false": { - "model": "aether:flowers/quickshoot" - }, - "snowy=true": { - "model": "aether:flowers/quickshoot_snowy" - } - } -} diff --git a/src/main/resources/assets/aether/blockstates/quicksoil.json b/src/main/resources/assets/aether/blockstates/quicksoil.json deleted file mode 100644 index bde9f1bf60..0000000000 --- a/src/main/resources/assets/aether/blockstates/quicksoil.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "variants": { - "normal": [ - { "model": "aether:quicksoil" }, - { "model": "aether:quicksoil", "y": 90 }, - { "model": "aether:quicksoil", "y": 180 }, - { "model": "aether:quicksoil", "y": 270 } - ] - } -} diff --git a/src/main/resources/assets/aether/blockstates/quicksoil_glass.json b/src/main/resources/assets/aether/blockstates/quicksoil_glass.json deleted file mode 100644 index 8421ce22cd..0000000000 --- a/src/main/resources/assets/aether/blockstates/quicksoil_glass.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "variants": { - "normal": [ - { "model": "aether:quicksoil_glass/normal" } - ] - } -} - diff --git a/src/main/resources/assets/aether/blockstates/quicksoil_glass_decorative.json b/src/main/resources/assets/aether/blockstates/quicksoil_glass_decorative.json deleted file mode 100644 index 9f58aeb4b9..0000000000 --- a/src/main/resources/assets/aether/blockstates/quicksoil_glass_decorative.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "variants": { - "variant=skyroot_frame": [ - { "model": "aether:quicksoil_glass/skyroot_frame" } - ], - "variant=arkenium_frame": [ - { "model": "aether:quicksoil_glass/arkenium_frame" } - ] - } -} - diff --git a/src/main/resources/assets/aether/blockstates/quicksoil_glass_pane.json b/src/main/resources/assets/aether/blockstates/quicksoil_glass_pane.json deleted file mode 100644 index d003ed08b8..0000000000 --- a/src/main/resources/assets/aether/blockstates/quicksoil_glass_pane.json +++ /dev/null @@ -1,37 +0,0 @@ -{ - "multipart": [ - { "apply": { "model": "aether:glass_pane/quicksoil_glass/post" } }, - { - "when": { "north": true }, - "apply": { "model": "aether:glass_pane/quicksoil_glass/side" } - }, - { - "when": { "east": true }, - "apply": { "model": "aether:glass_pane/quicksoil_glass/side", "y": 90 } - }, - { - "when": { "south": true }, - "apply": { "model": "aether:glass_pane/quicksoil_glass/side_alt" } - }, - { - "when": { "west": true }, - "apply": { "model": "aether:glass_pane/quicksoil_glass/side_alt", "y": 90 } - }, - { - "when": { "north": false }, - "apply": { "model": "aether:glass_pane/quicksoil_glass/noside" } - }, - { - "when": { "east": false }, - "apply": { "model": "aether:glass_pane/quicksoil_glass/noside_alt" } - }, - { - "when": { "south": false }, - "apply": { "model": "aether:glass_pane/quicksoil_glass/noside_alt", "y": 90 } - }, - { - "when": { "west": false }, - "apply": { "model": "aether:glass_pane/quicksoil_glass/noside", "y": 270 } - } - ] -} diff --git a/src/main/resources/assets/aether/blockstates/quicksoil_glass_pane_decorative.json b/src/main/resources/assets/aether/blockstates/quicksoil_glass_pane_decorative.json deleted file mode 100644 index 18a5088203..0000000000 --- a/src/main/resources/assets/aether/blockstates/quicksoil_glass_pane_decorative.json +++ /dev/null @@ -1,113 +0,0 @@ -{ - "multipart": [ - { - "when": { - "variant": "skyroot_frame" - }, "apply": { - "model": "aether:glass_pane/quicksoil_glass_skyroot/post" - } - }, { - "when": { - "north": true, "variant": "skyroot_frame" - }, "apply": { - "model": "aether:glass_pane/quicksoil_glass_skyroot/side" - } - }, { - "when": { - "east": true, "variant": "skyroot_frame" - }, "apply": { - "model": "aether:glass_pane/quicksoil_glass_skyroot/side", "y": 90 - } - }, { - "when": { - "south": true, "variant": "skyroot_frame" - }, "apply": { - "model": "aether:glass_pane/quicksoil_glass_skyroot/side_alt" - } - }, { - "when": { - "west": true, "variant": "skyroot_frame" - }, "apply": { - "model": "aether:glass_pane/quicksoil_glass_skyroot/side_alt", "y": 90 - } - }, { - "when": { - "north": false, "variant": "skyroot_frame" - }, "apply": { - "model": "aether:glass_pane/quicksoil_glass_skyroot/noside" - } - }, { - "when": { - "east": false, "variant": "skyroot_frame" - }, "apply": { - "model": "aether:glass_pane/quicksoil_glass_skyroot/noside_alt" - } - }, { - "when": { - "south": false, "variant": "skyroot_frame" - }, "apply": { - "model": "aether:glass_pane/quicksoil_glass_skyroot/noside_alt", "y": 90 - } - }, { - "when": { - "west": false, "variant": "skyroot_frame" - }, "apply": { - "model": "aether:glass_pane/quicksoil_glass_skyroot/noside", "y": 270 - } - }, { - "when": { - "variant": "arkenium_frame" - }, "apply": { - "model": "aether:glass_pane/quicksoil_glass_arkenium/post" - } - }, { - "when": { - "north": true, "variant": "arkenium_frame" - }, "apply": { - "model": "aether:glass_pane/quicksoil_glass_arkenium/side" - } - }, { - "when": { - "east": true, "variant": "arkenium_frame" - }, "apply": { - "model": "aether:glass_pane/quicksoil_glass_arkenium/side", "y": 90 - } - }, { - "when": { - "south": true, "variant": "arkenium_frame" - }, "apply": { - "model": "aether:glass_pane/quicksoil_glass_arkenium/side_alt" - } - }, { - "when": { - "west": true, "variant": "arkenium_frame" - }, "apply": { - "model": "aether:glass_pane/quicksoil_glass_arkenium/side_alt", "y": 90 - } - }, { - "when": { - "north": false, "variant": "arkenium_frame" - }, "apply": { - "model": "aether:glass_pane/quicksoil_glass_arkenium/noside" - } - }, { - "when": { - "east": false, "variant": "arkenium_frame" - }, "apply": { - "model": "aether:glass_pane/quicksoil_glass_arkenium/noside_alt" - } - }, { - "when": { - "south": false, "variant": "arkenium_frame" - }, "apply": { - "model": "aether:glass_pane/quicksoil_glass_arkenium/noside_alt", "y": 90 - } - }, { - "when": { - "west": false, "variant": "arkenium_frame" - }, "apply": { - "model": "aether:glass_pane/quicksoil_glass_arkenium/noside", "y": 270 - } - } - ] -} diff --git a/src/main/resources/assets/aether/blockstates/rusted_ferrosite.json b/src/main/resources/assets/aether/blockstates/rusted_ferrosite.json deleted file mode 100644 index af70b371d1..0000000000 --- a/src/main/resources/assets/aether/blockstates/rusted_ferrosite.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "variants": { - "normal": { - "model": "aether:rusted_ferrosite" - } - } -} diff --git a/src/main/resources/assets/aether/blockstates/scatterglass.json b/src/main/resources/assets/aether/blockstates/scatterglass.json deleted file mode 100644 index 76827fa6f7..0000000000 --- a/src/main/resources/assets/aether/blockstates/scatterglass.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "variants": { - "normal": [ - { "model": "aether:scatterglass/normal" } - ] - } -} diff --git a/src/main/resources/assets/aether/blockstates/scatterglass_decorative.json b/src/main/resources/assets/aether/blockstates/scatterglass_decorative.json deleted file mode 100644 index 14e06c87f2..0000000000 --- a/src/main/resources/assets/aether/blockstates/scatterglass_decorative.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "variants": { - "variant=skyroot_frame": [ - { "model": "aether:scatterglass/skyroot_frame" } - ], - "variant=arkenium_frame": [ - { "model": "aether:scatterglass/arkenium_frame" } - ] - } -} diff --git a/src/main/resources/assets/aether/blockstates/scatterglass_pane.json b/src/main/resources/assets/aether/blockstates/scatterglass_pane.json deleted file mode 100644 index f0a4dfaa96..0000000000 --- a/src/main/resources/assets/aether/blockstates/scatterglass_pane.json +++ /dev/null @@ -1,37 +0,0 @@ -{ - "multipart": [ - { "apply": { "model": "aether:glass_pane/scatterglass/post" } }, - { - "when": { "north": true }, - "apply": { "model": "aether:glass_pane/scatterglass/side" } - }, - { - "when": { "east": true }, - "apply": { "model": "aether:glass_pane/scatterglass/side", "y": 90 } - }, - { - "when": { "south": true }, - "apply": { "model": "aether:glass_pane/scatterglass/side_alt" } - }, - { - "when": { "west": true }, - "apply": { "model": "aether:glass_pane/scatterglass/side_alt", "y": 90 } - }, - { - "when": { "north": false }, - "apply": { "model": "aether:glass_pane/scatterglass/noside" } - }, - { - "when": { "east": false }, - "apply": { "model": "aether:glass_pane/scatterglass/noside_alt" } - }, - { - "when": { "south": false }, - "apply": { "model": "aether:glass_pane/scatterglass/noside_alt", "y": 90 } - }, - { - "when": { "west": false }, - "apply": { "model": "aether:glass_pane/scatterglass/noside", "y": 270 } - } - ] -} diff --git a/src/main/resources/assets/aether/blockstates/scatterglass_pane_decorative.json b/src/main/resources/assets/aether/blockstates/scatterglass_pane_decorative.json deleted file mode 100644 index 5385343095..0000000000 --- a/src/main/resources/assets/aether/blockstates/scatterglass_pane_decorative.json +++ /dev/null @@ -1,113 +0,0 @@ -{ - "multipart": [ - { - "when": { - "variant": "skyroot_frame" - }, "apply": { - "model": "aether:glass_pane/scatterglass_skyroot/post" - } - }, { - "when": { - "north": true, "variant": "skyroot_frame" - }, "apply": { - "model": "aether:glass_pane/scatterglass_skyroot/side" - } - }, { - "when": { - "east": true, "variant": "skyroot_frame" - }, "apply": { - "model": "aether:glass_pane/scatterglass_skyroot/side", "y": 90 - } - }, { - "when": { - "south": true, "variant": "skyroot_frame" - }, "apply": { - "model": "aether:glass_pane/scatterglass_skyroot/side_alt" - } - }, { - "when": { - "west": true, "variant": "skyroot_frame" - }, "apply": { - "model": "aether:glass_pane/scatterglass_skyroot/side_alt", "y": 90 - } - }, { - "when": { - "north": false, "variant": "skyroot_frame" - }, "apply": { - "model": "aether:glass_pane/scatterglass_skyroot/noside" - } - }, { - "when": { - "east": false, "variant": "skyroot_frame" - }, "apply": { - "model": "aether:glass_pane/scatterglass_skyroot/noside_alt" - } - }, { - "when": { - "south": false, "variant": "skyroot_frame" - }, "apply": { - "model": "aether:glass_pane/scatterglass_skyroot/noside_alt", "y": 90 - } - }, { - "when": { - "west": false, "variant": "skyroot_frame" - }, "apply": { - "model": "aether:glass_pane/scatterglass_skyroot/noside", "y": 270 - } - }, { - "when": { - "variant": "arkenium_frame" - }, "apply": { - "model": "aether:glass_pane/scatterglass_arkenium/post" - } - }, { - "when": { - "north": true, "variant": "arkenium_frame" - }, "apply": { - "model": "aether:glass_pane/scatterglass_arkenium/side" - } - }, { - "when": { - "east": true, "variant": "arkenium_frame" - }, "apply": { - "model": "aether:glass_pane/scatterglass_arkenium/side", "y": 90 - } - }, { - "when": { - "south": true, "variant": "arkenium_frame" - }, "apply": { - "model": "aether:glass_pane/scatterglass_arkenium/side_alt" - } - }, { - "when": { - "west": true, "variant": "arkenium_frame" - }, "apply": { - "model": "aether:glass_pane/scatterglass_arkenium/side_alt", "y": 90 - } - }, { - "when": { - "north": false, "variant": "arkenium_frame" - }, "apply": { - "model": "aether:glass_pane/scatterglass_arkenium/noside" - } - }, { - "when": { - "east": false, "variant": "arkenium_frame" - }, "apply": { - "model": "aether:glass_pane/scatterglass_arkenium/noside_alt" - } - }, { - "when": { - "south": false, "variant": "arkenium_frame" - }, "apply": { - "model": "aether:glass_pane/scatterglass_arkenium/noside_alt", "y": 90 - } - }, { - "when": { - "west": false, "variant": "arkenium_frame" - }, "apply": { - "model": "aether:glass_pane/scatterglass_arkenium/noside", "y": 270 - } - } - ] -} diff --git a/src/main/resources/assets/aether/blockstates/scatterglass_slab.json b/src/main/resources/assets/aether/blockstates/scatterglass_slab.json deleted file mode 100644 index 9fc0d02c05..0000000000 --- a/src/main/resources/assets/aether/blockstates/scatterglass_slab.json +++ /dev/null @@ -1,33 +0,0 @@ -{ - "forge_marker": 1, - "variants": { - "state=bottom": [ - { - "textures": { - "bottom": "aether:blocks/scatterglass", - "top": "aether:blocks/scatterglass", - "side": "aether:blocks/scatterglass" - }, - "model": "half_slab" - } - ], - "state=top": [ - { - "textures": { - "bottom": "aether:blocks/scatterglass", - "top": "aether:blocks/scatterglass", - "side": "aether:blocks/scatterglass" - }, - "model": "upper_slab" - } - ], - "state=full": [ - { - "textures": { - "all": "aether:blocks/scatterglass" - }, - "model": "cube_all" - } - ] - } -} diff --git a/src/main/resources/assets/aether/blockstates/scatterglass_stairs.json b/src/main/resources/assets/aether/blockstates/scatterglass_stairs.json deleted file mode 100644 index 5dbe238c79..0000000000 --- a/src/main/resources/assets/aether/blockstates/scatterglass_stairs.json +++ /dev/null @@ -1,52 +0,0 @@ -{ - "forge_marker": 1, - "defaults": { - "textures": { - "bottom": "aether:blocks/scatterglass", - "side": "aether:blocks/scatterglass", - "top": "aether:blocks/scatterglass" - } - }, - "variants": { - "facing=east,half=bottom,shape=straight": { "model": "stairs" }, - "facing=west,half=bottom,shape=straight": { "model": "stairs", "y": 180, "uvlock": true }, - "facing=south,half=bottom,shape=straight": { "model": "stairs", "y": 90, "uvlock": true }, - "facing=north,half=bottom,shape=straight": { "model": "stairs", "y": 270, "uvlock": true }, - "facing=east,half=bottom,shape=outer_right": { "model": "outer_stairs" }, - "facing=west,half=bottom,shape=outer_right": { "model": "outer_stairs", "y": 180, "uvlock": true }, - "facing=south,half=bottom,shape=outer_right": { "model": "outer_stairs", "y": 90, "uvlock": true }, - "facing=north,half=bottom,shape=outer_right": { "model": "outer_stairs", "y": 270, "uvlock": true }, - "facing=east,half=bottom,shape=outer_left": { "model": "outer_stairs", "y": 270, "uvlock": true }, - "facing=west,half=bottom,shape=outer_left": { "model": "outer_stairs", "y": 90, "uvlock": true }, - "facing=south,half=bottom,shape=outer_left": { "model": "outer_stairs" }, - "facing=north,half=bottom,shape=outer_left": { "model": "outer_stairs", "y": 180, "uvlock": true }, - "facing=east,half=bottom,shape=inner_right": { "model": "inner_stairs" }, - "facing=west,half=bottom,shape=inner_right": { "model": "inner_stairs", "y": 180, "uvlock": true }, - "facing=south,half=bottom,shape=inner_right": { "model": "inner_stairs", "y": 90, "uvlock": true }, - "facing=north,half=bottom,shape=inner_right": { "model": "inner_stairs", "y": 270, "uvlock": true }, - "facing=east,half=bottom,shape=inner_left": { "model": "inner_stairs", "y": 270, "uvlock": true }, - "facing=west,half=bottom,shape=inner_left": { "model": "inner_stairs", "y": 90, "uvlock": true }, - "facing=south,half=bottom,shape=inner_left": { "model": "inner_stairs" }, - "facing=north,half=bottom,shape=inner_left": { "model": "inner_stairs", "y": 180, "uvlock": true }, - "facing=east,half=top,shape=straight": { "model": "stairs", "x": 180, "uvlock": true }, - "facing=west,half=top,shape=straight": { "model": "stairs", "x": 180, "y": 180, "uvlock": true }, - "facing=south,half=top,shape=straight": { "model": "stairs", "x": 180, "y": 90, "uvlock": true }, - "facing=north,half=top,shape=straight": { "model": "stairs", "x": 180, "y": 270, "uvlock": true }, - "facing=east,half=top,shape=outer_right": { "model": "outer_stairs", "x": 180, "y": 90, "uvlock": true }, - "facing=west,half=top,shape=outer_right": { "model": "outer_stairs", "x": 180, "y": 270, "uvlock": true }, - "facing=south,half=top,shape=outer_right": { "model": "outer_stairs", "x": 180, "y": 180, "uvlock": true }, - "facing=north,half=top,shape=outer_right": { "model": "outer_stairs", "x": 180, "uvlock": true }, - "facing=east,half=top,shape=outer_left": { "model": "outer_stairs", "x": 180, "uvlock": true }, - "facing=west,half=top,shape=outer_left": { "model": "outer_stairs", "x": 180, "y": 180, "uvlock": true }, - "facing=south,half=top,shape=outer_left": { "model": "outer_stairs", "x": 180, "y": 90, "uvlock": true }, - "facing=north,half=top,shape=outer_left": { "model": "outer_stairs", "x": 180, "y": 270, "uvlock": true }, - "facing=east,half=top,shape=inner_right": { "model": "inner_stairs", "x": 180, "y": 90, "uvlock": true }, - "facing=west,half=top,shape=inner_right": { "model": "inner_stairs", "x": 180, "y": 270, "uvlock": true }, - "facing=south,half=top,shape=inner_right": { "model": "inner_stairs", "x": 180, "y": 180, "uvlock": true }, - "facing=north,half=top,shape=inner_right": { "model": "inner_stairs", "x": 180, "uvlock": true }, - "facing=east,half=top,shape=inner_left": { "model": "inner_stairs", "x": 180, "uvlock": true }, - "facing=west,half=top,shape=inner_left": { "model": "inner_stairs", "x": 180, "y": 180, "uvlock": true }, - "facing=south,half=top,shape=inner_left": { "model": "inner_stairs", "x": 180, "y": 90, "uvlock": true }, - "facing=north,half=top,shape=inner_left": { "model": "inner_stairs", "x": 180, "y": 270, "uvlock": true } - } -} diff --git a/src/main/resources/assets/aether/blockstates/scatterglass_wall.json b/src/main/resources/assets/aether/blockstates/scatterglass_wall.json deleted file mode 100644 index 82eca0cea0..0000000000 --- a/src/main/resources/assets/aether/blockstates/scatterglass_wall.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "multipart": [ - { - "when": { "up": "true" }, - "apply": { "model": "aether:aether_wall/scatterglass_wall_post" } - }, - { - "when": { "north": "true" }, - "apply": { "model": "aether:aether_wall/scatterglass_wall_side", "uvlock": true } - }, - { - "when": { "east": "true" }, - "apply": { "model": "aether:aether_wall/scatterglass_wall_side", "y": 90, "uvlock": true } - }, - { - "when": { "south": "true" }, - "apply": { "model": "aether:aether_wall/scatterglass_wall_side", "y": 180, "uvlock": true } - }, - { - "when": { "west": "true" }, - "apply": { "model": "aether:aether_wall/scatterglass_wall_side", "y": 270, "uvlock": true } - } - ] -} diff --git a/src/main/resources/assets/aether/blockstates/secret_skyroot_door.json b/src/main/resources/assets/aether/blockstates/secret_skyroot_door.json deleted file mode 100644 index 00020df7fa..0000000000 --- a/src/main/resources/assets/aether/blockstates/secret_skyroot_door.json +++ /dev/null @@ -1,100 +0,0 @@ -{ - "variants": { - "facing=east,half=lower,hinge=left,open=false": { - "model": "aether:doors/secret_skyroot_door_bottom_left" - }, - "facing=south,half=lower,hinge=left,open=false": { - "model": "aether:doors/secret_skyroot_door_bottom_left", "y": 90 - }, - "facing=west,half=lower,hinge=left,open=false": { - "model": "aether:doors/secret_skyroot_door_bottom_left", "y": 180 - }, - "facing=north,half=lower,hinge=left,open=false": { - "model": "aether:doors/secret_skyroot_door_bottom_left", "y": 270 - }, - "facing=east,half=lower,hinge=right,open=false": { - "model": "aether:doors/secret_skyroot_door_bottom_right" - }, - "facing=south,half=lower,hinge=right,open=false": { - "model": "aether:doors/secret_skyroot_door_bottom_right", "y": 90 - }, - "facing=west,half=lower,hinge=right,open=false": { - "model": "aether:doors/secret_skyroot_door_bottom_right", "y": 180 - }, - "facing=north,half=lower,hinge=right,open=false": { - "model": "aether:doors/secret_skyroot_door_bottom_right", "y": 270 - }, - "facing=east,half=lower,hinge=left,open=true": { - "model": "aether:doors/secret_skyroot_door_bottom_right", "y": 90 - }, - "facing=south,half=lower,hinge=left,open=true": { - "model": "aether:doors/secret_skyroot_door_bottom_right", "y": 180 - }, - "facing=west,half=lower,hinge=left,open=true": { - "model": "aether:doors/secret_skyroot_door_bottom_right", "y": 270 - }, - "facing=north,half=lower,hinge=left,open=true": { - "model": "aether:doors/secret_skyroot_door_bottom_right" - }, - "facing=east,half=lower,hinge=right,open=true": { - "model": "aether:doors/secret_skyroot_door_bottom_left", "y": 270 - }, - "facing=south,half=lower,hinge=right,open=true": { - "model": "aether:doors/secret_skyroot_door_bottom_left" - }, - "facing=west,half=lower,hinge=right,open=true": { - "model": "aether:doors/secret_skyroot_door_bottom_left", "y": 90 - }, - "facing=north,half=lower,hinge=right,open=true": { - "model": "aether:doors/secret_skyroot_door_bottom_left", "y": 180 - }, - "facing=east,half=upper,hinge=left,open=false": { - "model": "aether:doors/secret_skyroot_door_top_left" - }, - "facing=south,half=upper,hinge=left,open=false": { - "model": "aether:doors/secret_skyroot_door_top_left", "y": 90 - }, - "facing=west,half=upper,hinge=left,open=false": { - "model": "aether:doors/secret_skyroot_door_top_left", "y": 180 - }, - "facing=north,half=upper,hinge=left,open=false": { - "model": "aether:doors/secret_skyroot_door_top_left", "y": 270 - }, - "facing=east,half=upper,hinge=right,open=false": { - "model": "aether:doors/secret_skyroot_door_top_right" - }, - "facing=south,half=upper,hinge=right,open=false": { - "model": "aether:doors/secret_skyroot_door_top_right", "y": 90 - }, - "facing=west,half=upper,hinge=right,open=false": { - "model": "aether:doors/secret_skyroot_door_top_right", "y": 180 - }, - "facing=north,half=upper,hinge=right,open=false": { - "model": "aether:doors/secret_skyroot_door_top_right", "y": 270 - }, - "facing=east,half=upper,hinge=left,open=true": { - "model": "aether:doors/secret_skyroot_door_top_right", "y": 90 - }, - "facing=south,half=upper,hinge=left,open=true": { - "model": "aether:doors/secret_skyroot_door_top_right", "y": 180 - }, - "facing=west,half=upper,hinge=left,open=true": { - "model": "aether:doors/secret_skyroot_door_top_right", "y": 270 - }, - "facing=north,half=upper,hinge=left,open=true": { - "model": "aether:doors/secret_skyroot_door_top_right" - }, - "facing=east,half=upper,hinge=right,open=true": { - "model": "aether:doors/secret_skyroot_door_top_left", "y": 270 - }, - "facing=south,half=upper,hinge=right,open=true": { - "model": "aether:doors/secret_skyroot_door_top_left" - }, - "facing=west,half=upper,hinge=right,open=true": { - "model": "aether:doors/secret_skyroot_door_top_left", "y": 90 - }, - "facing=north,half=upper,hinge=right,open=true": { - "model": "aether:doors/secret_skyroot_door_top_left", "y": 180 - } - } -} diff --git a/src/main/resources/assets/aether/blockstates/secret_skyroot_trapdoor.json b/src/main/resources/assets/aether/blockstates/secret_skyroot_trapdoor.json deleted file mode 100644 index be3b18e6df..0000000000 --- a/src/main/resources/assets/aether/blockstates/secret_skyroot_trapdoor.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "variants": { - "facing=north,half=bottom,open=false": { "model": "aether:secret_skyroot_trapdoor/secret_skyroot_trapdoor_bottom" }, - "facing=south,half=bottom,open=false": { "model": "aether:secret_skyroot_trapdoor/secret_skyroot_trapdoor_bottom" }, - "facing=east,half=bottom,open=false": { "model": "aether:secret_skyroot_trapdoor/secret_skyroot_trapdoor_bottom" }, - "facing=west,half=bottom,open=false": { "model": "aether:secret_skyroot_trapdoor/secret_skyroot_trapdoor_bottom" }, - "facing=north,half=top,open=false": { "model": "aether:secret_skyroot_trapdoor/secret_skyroot_trapdoor_top" }, - "facing=south,half=top,open=false": { "model": "aether:secret_skyroot_trapdoor/secret_skyroot_trapdoor_top" }, - "facing=east,half=top,open=false": { "model": "aether:secret_skyroot_trapdoor/secret_skyroot_trapdoor_top" }, - "facing=west,half=top,open=false": { "model": "aether:secret_skyroot_trapdoor/secret_skyroot_trapdoor_top" }, - "facing=north,half=bottom,open=true": { "model": "aether:secret_skyroot_trapdoor/secret_skyroot_trapdoor_open" }, - "facing=south,half=bottom,open=true": { "model": "aether:secret_skyroot_trapdoor/secret_skyroot_trapdoor_open", "y": 180 }, - "facing=east,half=bottom,open=true": { "model": "aether:secret_skyroot_trapdoor/secret_skyroot_trapdoor_open", "y": 90 }, - "facing=west,half=bottom,open=true": { "model": "aether:secret_skyroot_trapdoor/secret_skyroot_trapdoor_open", "y": 270 }, - "facing=north,half=top,open=true": { "model": "aether:secret_skyroot_trapdoor/secret_skyroot_trapdoor_open" }, - "facing=south,half=top,open=true": { "model": "aether:secret_skyroot_trapdoor/secret_skyroot_trapdoor_open", "y": 180 }, - "facing=east,half=top,open=true": { "model": "aether:secret_skyroot_trapdoor/secret_skyroot_trapdoor_open", "y": 90 }, - "facing=west,half=top,open=true": { "model": "aether:secret_skyroot_trapdoor/secret_skyroot_trapdoor_open", "y": 270 } - } -} diff --git a/src/main/resources/assets/aether/blockstates/sentrystone_brick.json b/src/main/resources/assets/aether/blockstates/sentrystone_brick.json deleted file mode 100644 index 5658cc48a2..0000000000 --- a/src/main/resources/assets/aether/blockstates/sentrystone_brick.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "variants": { - "normal": [ - { "model": "aether:sentrystone_bricks/normal" } - ] - } -} diff --git a/src/main/resources/assets/aether/blockstates/sentrystone_brick_decorative.json b/src/main/resources/assets/aether/blockstates/sentrystone_brick_decorative.json deleted file mode 100644 index d22bcd9f8c..0000000000 --- a/src/main/resources/assets/aether/blockstates/sentrystone_brick_decorative.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "variants": { - "variant=base_bricks": [ - { "model": "aether:sentrystone_bricks/base_bricks" } - ], - "variant=base_pillar": [ - { "model": "aether:sentrystone_bricks/base_pillar" } - ], - "variant=capstone_bricks": [ - { "model": "aether:sentrystone_bricks/capstone_bricks" } - ], - "variant=capstone_pillar": [ - { "model": "aether:sentrystone_bricks/capstone_pillar" } - ], - "variant=flagstones": [ - { "model": "aether:sentrystone_bricks/flagstones" } - ], - "variant=lightstone": [ - { "model": "aether:sentrystone_bricks/lightstone" } - ], - "variant=keystone": [ - { "model": "aether:sentrystone_bricks/keystone" } - ] - } -} diff --git a/src/main/resources/assets/aether/blockstates/sentrystone_brick_decorative_lit.json b/src/main/resources/assets/aether/blockstates/sentrystone_brick_decorative_lit.json deleted file mode 100644 index 511a876e61..0000000000 --- a/src/main/resources/assets/aether/blockstates/sentrystone_brick_decorative_lit.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "variants": { - "variant=base_bricks": [ - { "model": "aether:sentrystone_bricks/base_bricks_lit" } - ], - "variant=base_pillar": [ - { "model": "aether:sentrystone_bricks/base_pillar_lit" } - ], - "variant=capstone_bricks": [ - { "model": "aether:sentrystone_bricks/capstone_bricks_lit" } - ], - "variant=capstone_pillar": [ - { "model": "aether:sentrystone_bricks/capstone_pillar_lit" } - ], - "variant=lightstone": [ - { "model": "aether:sentrystone_bricks/lightstone_lit" } - ], - "variant=keystone": [ - { "model": "aether:sentrystone_bricks/keystone_lit" } - ] - } -} diff --git a/src/main/resources/assets/aether/blockstates/sentrystone_brick_slab.json b/src/main/resources/assets/aether/blockstates/sentrystone_brick_slab.json deleted file mode 100644 index 69546cc235..0000000000 --- a/src/main/resources/assets/aether/blockstates/sentrystone_brick_slab.json +++ /dev/null @@ -1,33 +0,0 @@ -{ - "forge_marker": 1, - "variants": { - "state=bottom": [ - { - "textures": { - "bottom": "aether:blocks/sentrystone_bricks/sentrystone_brick", - "top": "aether:blocks/sentrystone_bricks/sentrystone_brick", - "side": "aether:blocks/sentrystone_bricks/sentrystone_brick" - }, - "model": "half_slab" - } - ], - "state=top": [ - { - "textures": { - "bottom": "aether:blocks/sentrystone_bricks/sentrystone_brick", - "top": "aether:blocks/sentrystone_bricks/sentrystone_brick", - "side": "aether:blocks/sentrystone_bricks/sentrystone_brick" - }, - "model": "upper_slab" - } - ], - "state=full": [ - { - "textures": { - "all": "aether:blocks/sentrystone_bricks/sentrystone_brick" - }, - "model": "cube_all" - } - ] - } -} diff --git a/src/main/resources/assets/aether/blockstates/sentrystone_brick_stairs.json b/src/main/resources/assets/aether/blockstates/sentrystone_brick_stairs.json deleted file mode 100644 index 12ad49173c..0000000000 --- a/src/main/resources/assets/aether/blockstates/sentrystone_brick_stairs.json +++ /dev/null @@ -1,52 +0,0 @@ -{ - "forge_marker": 1, - "defaults": { - "textures": { - "bottom": "aether:blocks/sentrystone_bricks/sentrystone_brick", - "side": "aether:blocks/sentrystone_bricks/sentrystone_brick", - "top": "aether:blocks/sentrystone_bricks/sentrystone_brick" - } - }, - "variants": { - "facing=east,half=bottom,shape=straight": { "model": "stairs" }, - "facing=west,half=bottom,shape=straight": { "model": "stairs", "y": 180, "uvlock": true }, - "facing=south,half=bottom,shape=straight": { "model": "stairs", "y": 90, "uvlock": true }, - "facing=north,half=bottom,shape=straight": { "model": "stairs", "y": 270, "uvlock": true }, - "facing=east,half=bottom,shape=outer_right": { "model": "outer_stairs" }, - "facing=west,half=bottom,shape=outer_right": { "model": "outer_stairs", "y": 180, "uvlock": true }, - "facing=south,half=bottom,shape=outer_right": { "model": "outer_stairs", "y": 90, "uvlock": true }, - "facing=north,half=bottom,shape=outer_right": { "model": "outer_stairs", "y": 270, "uvlock": true }, - "facing=east,half=bottom,shape=outer_left": { "model": "outer_stairs", "y": 270, "uvlock": true }, - "facing=west,half=bottom,shape=outer_left": { "model": "outer_stairs", "y": 90, "uvlock": true }, - "facing=south,half=bottom,shape=outer_left": { "model": "outer_stairs" }, - "facing=north,half=bottom,shape=outer_left": { "model": "outer_stairs", "y": 180, "uvlock": true }, - "facing=east,half=bottom,shape=inner_right": { "model": "inner_stairs" }, - "facing=west,half=bottom,shape=inner_right": { "model": "inner_stairs", "y": 180, "uvlock": true }, - "facing=south,half=bottom,shape=inner_right": { "model": "inner_stairs", "y": 90, "uvlock": true }, - "facing=north,half=bottom,shape=inner_right": { "model": "inner_stairs", "y": 270, "uvlock": true }, - "facing=east,half=bottom,shape=inner_left": { "model": "inner_stairs", "y": 270, "uvlock": true }, - "facing=west,half=bottom,shape=inner_left": { "model": "inner_stairs", "y": 90, "uvlock": true }, - "facing=south,half=bottom,shape=inner_left": { "model": "inner_stairs" }, - "facing=north,half=bottom,shape=inner_left": { "model": "inner_stairs", "y": 180, "uvlock": true }, - "facing=east,half=top,shape=straight": { "model": "stairs", "x": 180, "uvlock": true }, - "facing=west,half=top,shape=straight": { "model": "stairs", "x": 180, "y": 180, "uvlock": true }, - "facing=south,half=top,shape=straight": { "model": "stairs", "x": 180, "y": 90, "uvlock": true }, - "facing=north,half=top,shape=straight": { "model": "stairs", "x": 180, "y": 270, "uvlock": true }, - "facing=east,half=top,shape=outer_right": { "model": "outer_stairs", "x": 180, "y": 90, "uvlock": true }, - "facing=west,half=top,shape=outer_right": { "model": "outer_stairs", "x": 180, "y": 270, "uvlock": true }, - "facing=south,half=top,shape=outer_right": { "model": "outer_stairs", "x": 180, "y": 180, "uvlock": true }, - "facing=north,half=top,shape=outer_right": { "model": "outer_stairs", "x": 180, "uvlock": true }, - "facing=east,half=top,shape=outer_left": { "model": "outer_stairs", "x": 180, "uvlock": true }, - "facing=west,half=top,shape=outer_left": { "model": "outer_stairs", "x": 180, "y": 180, "uvlock": true }, - "facing=south,half=top,shape=outer_left": { "model": "outer_stairs", "x": 180, "y": 90, "uvlock": true }, - "facing=north,half=top,shape=outer_left": { "model": "outer_stairs", "x": 180, "y": 270, "uvlock": true }, - "facing=east,half=top,shape=inner_right": { "model": "inner_stairs", "x": 180, "y": 90, "uvlock": true }, - "facing=west,half=top,shape=inner_right": { "model": "inner_stairs", "x": 180, "y": 270, "uvlock": true }, - "facing=south,half=top,shape=inner_right": { "model": "inner_stairs", "x": 180, "y": 180, "uvlock": true }, - "facing=north,half=top,shape=inner_right": { "model": "inner_stairs", "x": 180, "uvlock": true }, - "facing=east,half=top,shape=inner_left": { "model": "inner_stairs", "x": 180, "uvlock": true }, - "facing=west,half=top,shape=inner_left": { "model": "inner_stairs", "x": 180, "y": 180, "uvlock": true }, - "facing=south,half=top,shape=inner_left": { "model": "inner_stairs", "x": 180, "y": 90, "uvlock": true }, - "facing=north,half=top,shape=inner_left": { "model": "inner_stairs", "x": 180, "y": 270, "uvlock": true } - } -} diff --git a/src/main/resources/assets/aether/blockstates/sentrystone_brick_wall.json b/src/main/resources/assets/aether/blockstates/sentrystone_brick_wall.json deleted file mode 100644 index 3625ccd1aa..0000000000 --- a/src/main/resources/assets/aether/blockstates/sentrystone_brick_wall.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "multipart": [ - { - "when": { "up": "true" }, - "apply": { "model": "aether:aether_wall/sentrystone_brick_wall_post" } - }, - { - "when": { "north": "true" }, - "apply": { "model": "aether:aether_wall/sentrystone_brick_wall_side", "uvlock": true } - }, - { - "when": { "east": "true" }, - "apply": { "model": "aether:aether_wall/sentrystone_brick_wall_side", "y": 90, "uvlock": true } - }, - { - "when": { "south": "true" }, - "apply": { "model": "aether:aether_wall/sentrystone_brick_wall_side", "y": 180, "uvlock": true } - }, - { - "when": { "west": "true" }, - "apply": { "model": "aether:aether_wall/sentrystone_brick_wall_side", "y": 270, "uvlock": true } - } - ] -} diff --git a/src/main/resources/assets/aether/blockstates/sentrystone_pillar.json b/src/main/resources/assets/aether/blockstates/sentrystone_pillar.json deleted file mode 100644 index 7f8de750cc..0000000000 --- a/src/main/resources/assets/aether/blockstates/sentrystone_pillar.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "variants": { - "axis=y": { - "model": "aether:sentrystone_bricks/pillar" - }, - "axis=z": { - "model": "aether:sentrystone_bricks/pillar", - "x": 90 - }, - "axis=x": { - "model": "aether:sentrystone_bricks/pillar", - "x": 90, "y": 90 - } - } -} diff --git a/src/main/resources/assets/aether/blockstates/sentrystone_pillar_lit.json b/src/main/resources/assets/aether/blockstates/sentrystone_pillar_lit.json deleted file mode 100644 index 51703a1af7..0000000000 --- a/src/main/resources/assets/aether/blockstates/sentrystone_pillar_lit.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "variants": { - "axis=y": { - "model": "aether:sentrystone_bricks/pillar_lit" - }, - "axis=z": { - "model": "aether:sentrystone_bricks/pillar_lit", - "x": 90 - }, - "axis=x": { - "model": "aether:sentrystone_bricks/pillar_lit", - "x": 90, "y": 90 - } - } -} diff --git a/src/main/resources/assets/aether/blockstates/skyroot_beam.json b/src/main/resources/assets/aether/blockstates/skyroot_beam.json deleted file mode 100644 index 586007875e..0000000000 --- a/src/main/resources/assets/aether/blockstates/skyroot_beam.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "variants": { - "axis=y": { - "model": "aether:skyroot_planks/beam" - }, - "axis=z": { - "model": "aether:skyroot_planks/beam", - "x": 90 - }, - "axis=x": { - "model": "aether:skyroot_planks/beam", - "x": 90, "y": 90 - } - } -} diff --git a/src/main/resources/assets/aether/blockstates/skyroot_bed.json b/src/main/resources/assets/aether/blockstates/skyroot_bed.json deleted file mode 100644 index e73975e69a..0000000000 --- a/src/main/resources/assets/aether/blockstates/skyroot_bed.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "variants": { - "facing=north,part=foot": { "model": "aether:skyroot_bed/skyroot_bed_foot" }, - "facing=east,part=foot": { "model": "aether:skyroot_bed/skyroot_bed_foot", "y": 90 }, - "facing=south,part=foot": { "model": "aether:skyroot_bed/skyroot_bed_foot", "y": 180 }, - "facing=west,part=foot": { "model": "aether:skyroot_bed/skyroot_bed_foot", "y": 270 }, - "facing=north,part=head": { "model": "aether:skyroot_bed/skyroot_bed_head" }, - "facing=east,part=head": { "model": "aether:skyroot_bed/skyroot_bed_head", "y": 90 }, - "facing=south,part=head": { "model": "aether:skyroot_bed/skyroot_bed_head", "y": 180 }, - "facing=west,part=head": { "model": "aether:skyroot_bed/skyroot_bed_head", "y": 270 } - } -} diff --git a/src/main/resources/assets/aether/blockstates/skyroot_bookshelf.json b/src/main/resources/assets/aether/blockstates/skyroot_bookshelf.json deleted file mode 100644 index 31f548bb31..0000000000 --- a/src/main/resources/assets/aether/blockstates/skyroot_bookshelf.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "variants": { - "normal": { - "model": "aether:skyroot_bookshelf" - } - } -} diff --git a/src/main/resources/assets/aether/blockstates/skyroot_button.json b/src/main/resources/assets/aether/blockstates/skyroot_button.json deleted file mode 100644 index 02416406c3..0000000000 --- a/src/main/resources/assets/aether/blockstates/skyroot_button.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "variants": { - "facing=up,powered=false": { "model": "aether:skyroot_button/skyroot_button" }, - "facing=down,powered=false": { "model": "aether:skyroot_button/skyroot_button", "x": 180 }, - "facing=east,powered=false": { "model": "aether:skyroot_button/skyroot_button", "x": 90, "y": 90 }, - "facing=west,powered=false": { "model": "aether:skyroot_button/skyroot_button", "x": 90, "y": 270 }, - "facing=south,powered=false": { "model": "aether:skyroot_button/skyroot_button", "x": 90, "y": 180 }, - "facing=north,powered=false": { "model": "aether:skyroot_button/skyroot_button", "x": 90 }, - "facing=up,powered=true": { "model": "aether:skyroot_button/skyroot_button_pressed" }, - "facing=down,powered=true": { "model": "aether:skyroot_button/skyroot_button_pressed", "x": 180 }, - "facing=east,powered=true": { "model": "aether:skyroot_button/skyroot_button_pressed", "x": 90, "y": 90 }, - "facing=west,powered=true": { "model": "aether:skyroot_button/skyroot_button_pressed", "x": 90, "y": 270 }, - "facing=south,powered=true": { "model": "aether:skyroot_button/skyroot_button_pressed", "x": 90, "y": 180 }, - "facing=north,powered=true": { "model": "aether:skyroot_button/skyroot_button_pressed", "x": 90 } - } -} diff --git a/src/main/resources/assets/aether/blockstates/skyroot_chest.json b/src/main/resources/assets/aether/blockstates/skyroot_chest.json deleted file mode 100644 index 8ccc14cf32..0000000000 --- a/src/main/resources/assets/aether/blockstates/skyroot_chest.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "variants": { - "normal": { - "model": "aether:skyroot_chest" - } - } -} diff --git a/src/main/resources/assets/aether/blockstates/skyroot_decorative.json b/src/main/resources/assets/aether/blockstates/skyroot_decorative.json deleted file mode 100644 index 0b3d1955cb..0000000000 --- a/src/main/resources/assets/aether/blockstates/skyroot_decorative.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "variants": { - "variant=base_planks": [ - { "model": "aether:skyroot_planks/base_planks" } - ], - "variant=base_beam": [ - { "model": "aether:skyroot_planks/base_beam" } - ], - "variant=top_planks": [ - { "model": "aether:skyroot_planks/top_planks" } - ], - "variant=top_beam": [ - { "model": "aether:skyroot_planks/top_beam" } - ], - "variant=floorboards": [ - { "model": "aether:skyroot_planks/floorboards" } - ], - "variant=highlight": [ - { "model": "aether:skyroot_planks/highlight" } - ], - "variant=tiles": [ - { "model": "aether:skyroot_planks/tiles" } - ], - "variant=tiles_small": [ - { "model": "aether:skyroot_planks/tiles_small" } - - ] - } -} diff --git a/src/main/resources/assets/aether/blockstates/skyroot_door.json b/src/main/resources/assets/aether/blockstates/skyroot_door.json deleted file mode 100644 index c702423697..0000000000 --- a/src/main/resources/assets/aether/blockstates/skyroot_door.json +++ /dev/null @@ -1,100 +0,0 @@ -{ - "variants": { - "facing=east,half=lower,hinge=left,open=false": { - "model": "aether:doors/skyroot_door_bottom_left" - }, - "facing=south,half=lower,hinge=left,open=false": { - "model": "aether:doors/skyroot_door_bottom_left", "y": 90 - }, - "facing=west,half=lower,hinge=left,open=false": { - "model": "aether:doors/skyroot_door_bottom_left", "y": 180 - }, - "facing=north,half=lower,hinge=left,open=false": { - "model": "aether:doors/skyroot_door_bottom_left", "y": 270 - }, - "facing=east,half=lower,hinge=right,open=false": { - "model": "aether:doors/skyroot_door_bottom_right" - }, - "facing=south,half=lower,hinge=right,open=false": { - "model": "aether:doors/skyroot_door_bottom_right", "y": 90 - }, - "facing=west,half=lower,hinge=right,open=false": { - "model": "aether:doors/skyroot_door_bottom_right", "y": 180 - }, - "facing=north,half=lower,hinge=right,open=false": { - "model": "aether:doors/skyroot_door_bottom_right", "y": 270 - }, - "facing=east,half=lower,hinge=left,open=true": { - "model": "aether:doors/skyroot_door_bottom_right", "y": 90 - }, - "facing=south,half=lower,hinge=left,open=true": { - "model": "aether:doors/skyroot_door_bottom_right", "y": 180 - }, - "facing=west,half=lower,hinge=left,open=true": { - "model": "aether:doors/skyroot_door_bottom_right", "y": 270 - }, - "facing=north,half=lower,hinge=left,open=true": { - "model": "aether:doors/skyroot_door_bottom_right" - }, - "facing=east,half=lower,hinge=right,open=true": { - "model": "aether:doors/skyroot_door_bottom_left", "y": 270 - }, - "facing=south,half=lower,hinge=right,open=true": { - "model": "aether:doors/skyroot_door_bottom_left" - }, - "facing=west,half=lower,hinge=right,open=true": { - "model": "aether:doors/skyroot_door_bottom_left", "y": 90 - }, - "facing=north,half=lower,hinge=right,open=true": { - "model": "aether:doors/skyroot_door_bottom_left", "y": 180 - }, - "facing=east,half=upper,hinge=left,open=false": { - "model": "aether:doors/skyroot_door_top_left" - }, - "facing=south,half=upper,hinge=left,open=false": { - "model": "aether:doors/skyroot_door_top_left", "y": 90 - }, - "facing=west,half=upper,hinge=left,open=false": { - "model": "aether:doors/skyroot_door_top_left", "y": 180 - }, - "facing=north,half=upper,hinge=left,open=false": { - "model": "aether:doors/skyroot_door_top_left", "y": 270 - }, - "facing=east,half=upper,hinge=right,open=false": { - "model": "aether:doors/skyroot_door_top_right" - }, - "facing=south,half=upper,hinge=right,open=false": { - "model": "aether:doors/skyroot_door_top_right", "y": 90 - }, - "facing=west,half=upper,hinge=right,open=false": { - "model": "aether:doors/skyroot_door_top_right", "y": 180 - }, - "facing=north,half=upper,hinge=right,open=false": { - "model": "aether:doors/skyroot_door_top_right", "y": 270 - }, - "facing=east,half=upper,hinge=left,open=true": { - "model": "aether:doors/skyroot_door_top_right", "y": 90 - }, - "facing=south,half=upper,hinge=left,open=true": { - "model": "aether:doors/skyroot_door_top_right", "y": 180 - }, - "facing=west,half=upper,hinge=left,open=true": { - "model": "aether:doors/skyroot_door_top_right", "y": 270 - }, - "facing=north,half=upper,hinge=left,open=true": { - "model": "aether:doors/skyroot_door_top_right" - }, - "facing=east,half=upper,hinge=right,open=true": { - "model": "aether:doors/skyroot_door_top_left", "y": 270 - }, - "facing=south,half=upper,hinge=right,open=true": { - "model": "aether:doors/skyroot_door_top_left" - }, - "facing=west,half=upper,hinge=right,open=true": { - "model": "aether:doors/skyroot_door_top_left", "y": 90 - }, - "facing=north,half=upper,hinge=right,open=true": { - "model": "aether:doors/skyroot_door_top_left", "y": 180 - } - } -} diff --git a/src/main/resources/assets/aether/blockstates/skyroot_fence.json b/src/main/resources/assets/aether/blockstates/skyroot_fence.json deleted file mode 100644 index 83cf4aec66..0000000000 --- a/src/main/resources/assets/aether/blockstates/skyroot_fence.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "multipart": [ - { "apply": { "model": "aether:skyroot_fence/skyroot_fence_post" } }, - { - "when": { "north": "true" }, - "apply": { "model": "aether:skyroot_fence/skyroot_fence_side", "uvlock": true } - }, - { - "when": { "east": "true" }, - "apply": { "model": "aether:skyroot_fence/skyroot_fence_side", "y": 90, "uvlock": true } - }, - { - "when": { "south": "true" }, - "apply": { "model": "aether:skyroot_fence/skyroot_fence_side", "y": 180, "uvlock": true } - }, - { - "when": { "west": "true" }, - "apply": { "model": "aether:skyroot_fence/skyroot_fence_side", "y": 270, "uvlock": true } - } - ] -} diff --git a/src/main/resources/assets/aether/blockstates/skyroot_fence_gate.json b/src/main/resources/assets/aether/blockstates/skyroot_fence_gate.json deleted file mode 100644 index 2fa7d613ca..0000000000 --- a/src/main/resources/assets/aether/blockstates/skyroot_fence_gate.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "variants": { - "facing=south,in_wall=false,open=false": { "model": "aether:skyroot_fence_gate/skyroot_fence_gate_closed", "uvlock": true }, - "facing=west,in_wall=false,open=false": { "model": "aether:skyroot_fence_gate/skyroot_fence_gate_closed", "uvlock": true, "y": 90 }, - "facing=north,in_wall=false,open=false": { "model": "aether:skyroot_fence_gate/skyroot_fence_gate_closed", "uvlock": true, "y": 180 }, - "facing=east,in_wall=false,open=false": { "model": "aether:skyroot_fence_gate/skyroot_fence_gate_closed", "uvlock": true, "y": 270 }, - "facing=south,in_wall=false,open=true": { "model": "aether:skyroot_fence_gate/skyroot_fence_gate_open", "uvlock": true }, - "facing=west,in_wall=false,open=true": { "model": "aether:skyroot_fence_gate/skyroot_fence_gate_open", "uvlock": true, "y": 90 }, - "facing=north,in_wall=false,open=true": { "model": "aether:skyroot_fence_gate/skyroot_fence_gate_open", "uvlock": true, "y": 180 }, - "facing=east,in_wall=false,open=true": { "model": "aether:skyroot_fence_gate/skyroot_fence_gate_open", "uvlock": true, "y": 270 }, - "facing=south,in_wall=true,open=false": { "model": "aether:skyroot_fence_gate/skyroot_wall_gate_closed", "uvlock": true }, - "facing=west,in_wall=true,open=false": { "model": "aether:skyroot_fence_gate/skyroot_wall_gate_closed", "uvlock": true, "y": 90 }, - "facing=north,in_wall=true,open=false": { "model": "aether:skyroot_fence_gate/skyroot_wall_gate_closed", "uvlock": true, "y": 180 }, - "facing=east,in_wall=true,open=false": { "model": "aether:skyroot_fence_gate/skyroot_wall_gate_closed", "uvlock": true, "y": 270 }, - "facing=south,in_wall=true,open=true": { "model": "aether:skyroot_fence_gate/skyroot_wall_gate_open", "uvlock": true }, - "facing=west,in_wall=true,open=true": { "model": "aether:skyroot_fence_gate/skyroot_wall_gate_open", "uvlock": true, "y": 90 }, - "facing=north,in_wall=true,open=true": { "model": "aether:skyroot_fence_gate/skyroot_wall_gate_open", "uvlock": true, "y": 180 }, - "facing=east,in_wall=true,open=true": { "model": "aether:skyroot_fence_gate/skyroot_wall_gate_open", "uvlock": true, "y": 270 } - } -} diff --git a/src/main/resources/assets/aether/blockstates/skyroot_ladder.json b/src/main/resources/assets/aether/blockstates/skyroot_ladder.json deleted file mode 100644 index a0229b41f2..0000000000 --- a/src/main/resources/assets/aether/blockstates/skyroot_ladder.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "variants": { - "facing=north": { "model": "aether:ladders/skyroot_ladder" }, - "facing=east": { "model": "aether:ladders/skyroot_ladder", "y": 90 }, - "facing=south": { "model": "aether:ladders/skyroot_ladder", "y": 180 }, - "facing=west": { "model": "aether:ladders/skyroot_ladder", "y": 270 } - } -} diff --git a/src/main/resources/assets/aether/blockstates/skyroot_log.json b/src/main/resources/assets/aether/blockstates/skyroot_log.json deleted file mode 100644 index a82843be9b..0000000000 --- a/src/main/resources/assets/aether/blockstates/skyroot_log.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "variants": { - "axis=y": { - "model": "aether:logs/skyroot_log" - }, - "axis=z": { - "model": "aether:logs/skyroot_log", - "x": 90 - }, - "axis=x": { - "model": "aether:logs/skyroot_log", - "x": 90, "y": 90 - }, - "axis=none": { - "model": "aether:logs/skyroot_log_bark" - } - } -} diff --git a/src/main/resources/assets/aether/blockstates/skyroot_log_wall.json b/src/main/resources/assets/aether/blockstates/skyroot_log_wall.json deleted file mode 100644 index 7c93fcdefb..0000000000 --- a/src/main/resources/assets/aether/blockstates/skyroot_log_wall.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "multipart": [ - { - "when": { "up": "true" }, - "apply": { "model": "aether:aether_wall/skyroot_log_wall_post" } - }, - { - "when": { "north": "true" }, - "apply": { "model": "aether:aether_wall/skyroot_log_wall_side", "uvlock": true } - }, - { - "when": { "east": "true" }, - "apply": { "model": "aether:aether_wall/skyroot_log_wall_side", "y": 90, "uvlock": true } - }, - { - "when": { "south": "true" }, - "apply": { "model": "aether:aether_wall/skyroot_log_wall_side", "y": 180, "uvlock": true } - }, - { - "when": { "west": "true" }, - "apply": { "model": "aether:aether_wall/skyroot_log_wall_side", "y": 270, "uvlock": true } - } - ] -} diff --git a/src/main/resources/assets/aether/blockstates/skyroot_planks.json b/src/main/resources/assets/aether/blockstates/skyroot_planks.json deleted file mode 100644 index fb5ed60282..0000000000 --- a/src/main/resources/assets/aether/blockstates/skyroot_planks.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "variants": { - "normal": [ - { "model": "aether:skyroot_planks/normal" } - ] - } -} diff --git a/src/main/resources/assets/aether/blockstates/skyroot_pressure_plate.json b/src/main/resources/assets/aether/blockstates/skyroot_pressure_plate.json deleted file mode 100644 index bd7bbc83cf..0000000000 --- a/src/main/resources/assets/aether/blockstates/skyroot_pressure_plate.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "variants": { - "powered=false": { "model": "aether:skyroot_pressure_plate/skyroot_pressure_plate_up" }, - "powered=true": { "model": "aether:skyroot_pressure_plate/skyroot_pressure_plate_down" } - } -} diff --git a/src/main/resources/assets/aether/blockstates/skyroot_sapling.json b/src/main/resources/assets/aether/blockstates/skyroot_sapling.json deleted file mode 100644 index 6ef0fbf6fb..0000000000 --- a/src/main/resources/assets/aether/blockstates/skyroot_sapling.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "variants": { - "variant=green_skyroot": { - "model": "aether:saplings/green_skyroot_sapling" - }, - "variant=blue_skyroot": { - "model": "aether:saplings/blue_skyroot_sapling" - }, - "variant=dark_blue_skyroot": { - "model": "aether:saplings/dark_blue_skyroot_sapling" - } - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/blockstates/skyroot_slab.json b/src/main/resources/assets/aether/blockstates/skyroot_slab.json deleted file mode 100644 index 6dae6ee812..0000000000 --- a/src/main/resources/assets/aether/blockstates/skyroot_slab.json +++ /dev/null @@ -1,33 +0,0 @@ -{ - "forge_marker": 1, - "variants": { - "state=bottom": [ - { - "textures": { - "bottom": "aether:blocks/skyroot_planks/skyroot_planks", - "top": "aether:blocks/skyroot_planks/skyroot_planks", - "side": "aether:blocks/skyroot_planks/skyroot_planks" - }, - "model": "half_slab" - } - ], - "state=top": [ - { - "textures": { - "bottom": "aether:blocks/skyroot_planks/skyroot_planks", - "top": "aether:blocks/skyroot_planks/skyroot_planks", - "side": "aether:blocks/skyroot_planks/skyroot_planks" - }, - "model": "upper_slab" - } - ], - "state=full": [ - { - "textures": { - "all": "aether:blocks/skyroot_planks/skyroot_planks" - }, - "model": "cube_all" - } - ] - } -} diff --git a/src/main/resources/assets/aether/blockstates/skyroot_stairs.json b/src/main/resources/assets/aether/blockstates/skyroot_stairs.json deleted file mode 100644 index 3e68d226e5..0000000000 --- a/src/main/resources/assets/aether/blockstates/skyroot_stairs.json +++ /dev/null @@ -1,52 +0,0 @@ -{ - "forge_marker": 1, - "defaults": { - "textures": { - "bottom": "aether:blocks/skyroot_planks/skyroot_planks", - "side": "aether:blocks/skyroot_planks/skyroot_planks", - "top": "aether:blocks/skyroot_planks/skyroot_planks" - } - }, - "variants": { - "facing=east,half=bottom,shape=straight": { "model": "stairs" }, - "facing=west,half=bottom,shape=straight": { "model": "stairs", "y": 180, "uvlock": true }, - "facing=south,half=bottom,shape=straight": { "model": "stairs", "y": 90, "uvlock": true }, - "facing=north,half=bottom,shape=straight": { "model": "stairs", "y": 270, "uvlock": true }, - "facing=east,half=bottom,shape=outer_right": { "model": "outer_stairs" }, - "facing=west,half=bottom,shape=outer_right": { "model": "outer_stairs", "y": 180, "uvlock": true }, - "facing=south,half=bottom,shape=outer_right": { "model": "outer_stairs", "y": 90, "uvlock": true }, - "facing=north,half=bottom,shape=outer_right": { "model": "outer_stairs", "y": 270, "uvlock": true }, - "facing=east,half=bottom,shape=outer_left": { "model": "outer_stairs", "y": 270, "uvlock": true }, - "facing=west,half=bottom,shape=outer_left": { "model": "outer_stairs", "y": 90, "uvlock": true }, - "facing=south,half=bottom,shape=outer_left": { "model": "outer_stairs" }, - "facing=north,half=bottom,shape=outer_left": { "model": "outer_stairs", "y": 180, "uvlock": true }, - "facing=east,half=bottom,shape=inner_right": { "model": "inner_stairs" }, - "facing=west,half=bottom,shape=inner_right": { "model": "inner_stairs", "y": 180, "uvlock": true }, - "facing=south,half=bottom,shape=inner_right": { "model": "inner_stairs", "y": 90, "uvlock": true }, - "facing=north,half=bottom,shape=inner_right": { "model": "inner_stairs", "y": 270, "uvlock": true }, - "facing=east,half=bottom,shape=inner_left": { "model": "inner_stairs", "y": 270, "uvlock": true }, - "facing=west,half=bottom,shape=inner_left": { "model": "inner_stairs", "y": 90, "uvlock": true }, - "facing=south,half=bottom,shape=inner_left": { "model": "inner_stairs" }, - "facing=north,half=bottom,shape=inner_left": { "model": "inner_stairs", "y": 180, "uvlock": true }, - "facing=east,half=top,shape=straight": { "model": "stairs", "x": 180, "uvlock": true }, - "facing=west,half=top,shape=straight": { "model": "stairs", "x": 180, "y": 180, "uvlock": true }, - "facing=south,half=top,shape=straight": { "model": "stairs", "x": 180, "y": 90, "uvlock": true }, - "facing=north,half=top,shape=straight": { "model": "stairs", "x": 180, "y": 270, "uvlock": true }, - "facing=east,half=top,shape=outer_right": { "model": "outer_stairs", "x": 180, "y": 90, "uvlock": true }, - "facing=west,half=top,shape=outer_right": { "model": "outer_stairs", "x": 180, "y": 270, "uvlock": true }, - "facing=south,half=top,shape=outer_right": { "model": "outer_stairs", "x": 180, "y": 180, "uvlock": true }, - "facing=north,half=top,shape=outer_right": { "model": "outer_stairs", "x": 180, "uvlock": true }, - "facing=east,half=top,shape=outer_left": { "model": "outer_stairs", "x": 180, "uvlock": true }, - "facing=west,half=top,shape=outer_left": { "model": "outer_stairs", "x": 180, "y": 180, "uvlock": true }, - "facing=south,half=top,shape=outer_left": { "model": "outer_stairs", "x": 180, "y": 90, "uvlock": true }, - "facing=north,half=top,shape=outer_left": { "model": "outer_stairs", "x": 180, "y": 270, "uvlock": true }, - "facing=east,half=top,shape=inner_right": { "model": "inner_stairs", "x": 180, "y": 90, "uvlock": true }, - "facing=west,half=top,shape=inner_right": { "model": "inner_stairs", "x": 180, "y": 270, "uvlock": true }, - "facing=south,half=top,shape=inner_right": { "model": "inner_stairs", "x": 180, "y": 180, "uvlock": true }, - "facing=north,half=top,shape=inner_right": { "model": "inner_stairs", "x": 180, "uvlock": true }, - "facing=east,half=top,shape=inner_left": { "model": "inner_stairs", "x": 180, "uvlock": true }, - "facing=west,half=top,shape=inner_left": { "model": "inner_stairs", "x": 180, "y": 180, "uvlock": true }, - "facing=south,half=top,shape=inner_left": { "model": "inner_stairs", "x": 180, "y": 90, "uvlock": true }, - "facing=north,half=top,shape=inner_left": { "model": "inner_stairs", "x": 180, "y": 270, "uvlock": true } - } -} diff --git a/src/main/resources/assets/aether/blockstates/skyroot_trapdoor.json b/src/main/resources/assets/aether/blockstates/skyroot_trapdoor.json deleted file mode 100644 index 842a27f3a6..0000000000 --- a/src/main/resources/assets/aether/blockstates/skyroot_trapdoor.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "variants": { - "facing=north,half=bottom,open=false": { "model": "aether:skyroot_trapdoor/skyroot_trapdoor_bottom" }, - "facing=south,half=bottom,open=false": { "model": "aether:skyroot_trapdoor/skyroot_trapdoor_bottom" }, - "facing=east,half=bottom,open=false": { "model": "aether:skyroot_trapdoor/skyroot_trapdoor_bottom" }, - "facing=west,half=bottom,open=false": { "model": "aether:skyroot_trapdoor/skyroot_trapdoor_bottom" }, - "facing=north,half=top,open=false": { "model": "aether:skyroot_trapdoor/skyroot_trapdoor_top" }, - "facing=south,half=top,open=false": { "model": "aether:skyroot_trapdoor/skyroot_trapdoor_top" }, - "facing=east,half=top,open=false": { "model": "aether:skyroot_trapdoor/skyroot_trapdoor_top" }, - "facing=west,half=top,open=false": { "model": "aether:skyroot_trapdoor/skyroot_trapdoor_top" }, - "facing=north,half=bottom,open=true": { "model": "aether:skyroot_trapdoor/skyroot_trapdoor_open" }, - "facing=south,half=bottom,open=true": { "model": "aether:skyroot_trapdoor/skyroot_trapdoor_open", "y": 180 }, - "facing=east,half=bottom,open=true": { "model": "aether:skyroot_trapdoor/skyroot_trapdoor_open", "y": 90 }, - "facing=west,half=bottom,open=true": { "model": "aether:skyroot_trapdoor/skyroot_trapdoor_open", "y": 270 }, - "facing=north,half=top,open=true": { "model": "aether:skyroot_trapdoor/skyroot_trapdoor_open" }, - "facing=south,half=top,open=true": { "model": "aether:skyroot_trapdoor/skyroot_trapdoor_open", "y": 180 }, - "facing=east,half=top,open=true": { "model": "aether:skyroot_trapdoor/skyroot_trapdoor_open", "y": 90 }, - "facing=west,half=top,open=true": { "model": "aether:skyroot_trapdoor/skyroot_trapdoor_open", "y": 270 } - } -} diff --git a/src/main/resources/assets/aether/blockstates/skyroot_twigs.json b/src/main/resources/assets/aether/blockstates/skyroot_twigs.json deleted file mode 100644 index 70652be595..0000000000 --- a/src/main/resources/assets/aether/blockstates/skyroot_twigs.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "variants": { - "normal": [ - { "model": "aether:skyroot_twigs/skyroot_twigs" }, - { "model": "aether:skyroot_twigs/skyroot_twigs", "y": 90 }, - { "model": "aether:skyroot_twigs/skyroot_twigs", "y": 180 }, - { "model": "aether:skyroot_twigs/skyroot_twigs", "y": 270 }, - { "model": "aether:skyroot_twigs/skyroot_twigs_2" }, - { "model": "aether:skyroot_twigs/skyroot_twigs_2", "y": 90 }, - { "model": "aether:skyroot_twigs/skyroot_twigs_2", "y": 180 }, - { "model": "aether:skyroot_twigs/skyroot_twigs_2", "y": 270 }, - { "model": "aether:skyroot_twigs/skyroot_twigs_3" }, - { "model": "aether:skyroot_twigs/skyroot_twigs_3", "y": 90 }, - { "model": "aether:skyroot_twigs/skyroot_twigs_3", "y": 180 }, - { "model": "aether:skyroot_twigs/skyroot_twigs_3", "y": 270 }, - { "model": "aether:skyroot_twigs/skyroot_twigs_4" }, - { "model": "aether:skyroot_twigs/skyroot_twigs_4", "y": 90 }, - { "model": "aether:skyroot_twigs/skyroot_twigs_4", "y": 180 }, - { "model": "aether:skyroot_twigs/skyroot_twigs_4", "y": 270 }, - { "model": "aether:skyroot_twigs/skyroot_twigs_5" }, - { "model": "aether:skyroot_twigs/skyroot_twigs_5", "y": 90 }, - { "model": "aether:skyroot_twigs/skyroot_twigs_5", "y": 180 }, - { "model": "aether:skyroot_twigs/skyroot_twigs_5", "y": 270 }, - { "model": "aether:skyroot_twigs/skyroot_twigs_6" }, - { "model": "aether:skyroot_twigs/skyroot_twigs_6", "y": 90 }, - { "model": "aether:skyroot_twigs/skyroot_twigs_6", "y": 180 }, - { "model": "aether:skyroot_twigs/skyroot_twigs_6", "y": 270 } - ] - } -} diff --git a/src/main/resources/assets/aether/blockstates/standing_skyroot_sign.json b/src/main/resources/assets/aether/blockstates/standing_skyroot_sign.json deleted file mode 100644 index 86eee3274b..0000000000 --- a/src/main/resources/assets/aether/blockstates/standing_skyroot_sign.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "forge_marker": 1, - "variants": { - "normal": { - "model": "aether:tesr", - "textures": { "particle": "aether:blocks/skyroot_planks/skyroot_planks" } - } - } -} diff --git a/src/main/resources/assets/aether/blockstates/stoneshroom.json b/src/main/resources/assets/aether/blockstates/stoneshroom.json deleted file mode 100644 index ef9a7092c8..0000000000 --- a/src/main/resources/assets/aether/blockstates/stoneshroom.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "variants": { - "snowy=false": { - "model": "aether:flowers/stoneshroom" - }, - "snowy=true": { - "model": "aether:flowers/stoneshroom_snowy" - } - } -} diff --git a/src/main/resources/assets/aether/blockstates/tall_aether_grass.json b/src/main/resources/assets/aether/blockstates/tall_aether_grass.json deleted file mode 100644 index 064601c339..0000000000 --- a/src/main/resources/assets/aether/blockstates/tall_aether_grass.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "variants": { - "snowy=false,type=highlands,variant=short": { "model": "aether:tall_grass/short_aether" }, - "snowy=false,type=highlands,variant=normal": { "model": "aether:tall_grass/normal_aether" }, - "snowy=false,type=highlands,variant=long": { "model": "aether:tall_grass/long_aether" }, - "snowy=false,type=enchanted,variant=short": { "model": "aether:tall_grass/short_enchanted" }, - "snowy=false,type=enchanted,variant=normal": { "model": "aether:tall_grass/normal_enchanted" }, - "snowy=false,type=enchanted,variant=long": { "model": "aether:tall_grass/long_enchanted" }, - "snowy=false,type=arctic,variant=short": { "model": "aether:tall_grass/short_arctic" }, - "snowy=false,type=arctic,variant=normal": { "model": "aether:tall_grass/normal_arctic" }, - "snowy=false,type=arctic,variant=long": { "model": "aether:tall_grass/long_arctic" }, - "snowy=false,type=magnetic,variant=short": { "model": "aether:tall_grass/short_magnetic" }, - "snowy=false,type=magnetic,variant=normal": { "model": "aether:tall_grass/normal_magnetic" }, - "snowy=false,type=magnetic,variant=long": { "model": "aether:tall_grass/long_magnetic" }, - "snowy=false,type=irradiated,variant=short": { "model": "aether:tall_grass/short_irradiated" }, - "snowy=false,type=irradiated,variant=normal": { "model": "aether:tall_grass/normal_irradiated" }, - "snowy=false,type=irradiated,variant=long": { "model": "aether:tall_grass/long_irradiated" }, - "snowy=true,type=highlands,variant=short": { "model": "aether:tall_grass/short_snowy" }, - "snowy=true,type=highlands,variant=normal": { "model": "aether:tall_grass/normal_snowy" }, - "snowy=true,type=highlands,variant=long": { "model": "aether:tall_grass/long_snowy" }, - "snowy=true,type=enchanted,variant=short": { "model": "aether:tall_grass/short_snowy" }, - "snowy=true,type=enchanted,variant=normal": { "model": "aether:tall_grass/normal_snowy" }, - "snowy=true,type=enchanted,variant=long": { "model": "aether:tall_grass/long_snowy" }, - "snowy=true,type=arctic,variant=short": { "model": "aether:tall_grass/short_snowy" }, - "snowy=true,type=arctic,variant=normal": { "model": "aether:tall_grass/normal_snowy" }, - "snowy=true,type=arctic,variant=long": { "model": "aether:tall_grass/long_snowy" }, - "snowy=true,type=magnetic,variant=short": { "model": "aether:tall_grass/short_snowy" }, - "snowy=true,type=magnetic,variant=normal": { "model": "aether:tall_grass/normal_snowy" }, - "snowy=true,type=magnetic,variant=long": { "model": "aether:tall_grass/long_snowy" }, - "snowy=true,type=irradiated,variant=short": { "model": "aether:tall_grass/short_snowy" }, - "snowy=true,type=irradiated,variant=normal": { "model": "aether:tall_grass/normal_snowy" }, - "snowy=true,type=irradiated,variant=long": { "model": "aether:tall_grass/long_snowy" } - } -} diff --git a/src/main/resources/assets/aether/blockstates/thera_dirt.json b/src/main/resources/assets/aether/blockstates/thera_dirt.json deleted file mode 100644 index b37281f541..0000000000 --- a/src/main/resources/assets/aether/blockstates/thera_dirt.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "variants": { - "variant=dirt": [ - { "model": "aether:thera_dirt/thera_dirt" }, - { "model": "aether:thera_dirt/thera_dirt", "y": 90 }, - { "model": "aether:thera_dirt/thera_dirt", "y": 180 }, - { "model": "aether:thera_dirt/thera_dirt", "y": 270 } - ] - } -} diff --git a/src/main/resources/assets/aether/blockstates/thera_grass.json b/src/main/resources/assets/aether/blockstates/thera_grass.json deleted file mode 100644 index 0671be9894..0000000000 --- a/src/main/resources/assets/aether/blockstates/thera_grass.json +++ /dev/null @@ -1,38 +0,0 @@ -{ - "variants": { - "snowy=false,variant=normal": [ - { - "model": "aether:thera_grass/thera_grass" - }, - { - "model": "aether:thera_grass/thera_grass", - "y": 90 - }, - { - "model": "aether:thera_grass/thera_grass", - "y": 180 - }, - { - "model": "aether:thera_grass/thera_grass", - "y": 270 - } - ], - "snowy=true,variant=normal": [ - { - "model": "aether:thera_grass/thera_grass" - }, - { - "model": "aether:thera_grass/thera_grass", - "y": 90 - }, - { - "model": "aether:thera_grass/thera_grass", - "y": 180 - }, - { - "model": "aether:thera_grass/thera_grass", - "y": 270 - } - ] - } -} diff --git a/src/main/resources/assets/aether/blockstates/therastone_brick.json b/src/main/resources/assets/aether/blockstates/therastone_brick.json deleted file mode 100644 index a310b2ee8c..0000000000 --- a/src/main/resources/assets/aether/blockstates/therastone_brick.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "variants": { - "normal": [ - { "model": "aether:therastone_bricks/normal" } - ] - } -} diff --git a/src/main/resources/assets/aether/blockstates/therastone_brick_decorative.json b/src/main/resources/assets/aether/blockstates/therastone_brick_decorative.json deleted file mode 100644 index 03cfcf69e5..0000000000 --- a/src/main/resources/assets/aether/blockstates/therastone_brick_decorative.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "variants": { - "variant=base_bricks": [ - { "model": "aether:therastone_bricks/base_bricks" } - ], - "variant=base_pillar": [ - { "model": "aether:therastone_bricks/base_pillar" } - ], - "variant=capstone_bricks": [ - { "model": "aether:therastone_bricks/capstone_bricks" } - ], - "variant=capstone_pillar": [ - { "model": "aether:therastone_bricks/capstone_pillar" } - ], - "variant=flagstones": [ - { "model": "aether:therastone_bricks/flagstones" } - ], - "variant=headstone": [ - { "model": "aether:therastone_bricks/headstone" } - ], - "variant=keystone": [ - { "model": "aether:therastone_bricks/keystone" } - ] - } -} diff --git a/src/main/resources/assets/aether/blockstates/therastone_brick_slab.json b/src/main/resources/assets/aether/blockstates/therastone_brick_slab.json deleted file mode 100644 index 94abfd7e0d..0000000000 --- a/src/main/resources/assets/aether/blockstates/therastone_brick_slab.json +++ /dev/null @@ -1,33 +0,0 @@ -{ - "forge_marker": 1, - "variants": { - "state=bottom": [ - { - "textures": { - "bottom": "aether:blocks/therastone_bricks/therastone_bricks", - "top": "aether:blocks/therastone_bricks/therastone_bricks", - "side": "aether:blocks/therastone_bricks/therastone_bricks" - }, - "model": "half_slab" - } - ], - "state=top": [ - { - "textures": { - "bottom": "aether:blocks/therastone_bricks/therastone_bricks", - "top": "aether:blocks/therastone_bricks/therastone_bricks", - "side": "aether:blocks/therastone_bricks/therastone_bricks" - }, - "model": "upper_slab" - } - ], - "state=full": [ - { - "textures": { - "all": "aether:blocks/therastone_bricks/therastone_bricks" - }, - "model": "cube_all" - } - ] - } -} diff --git a/src/main/resources/assets/aether/blockstates/therastone_brick_stairs.json b/src/main/resources/assets/aether/blockstates/therastone_brick_stairs.json deleted file mode 100644 index 2342b64100..0000000000 --- a/src/main/resources/assets/aether/blockstates/therastone_brick_stairs.json +++ /dev/null @@ -1,52 +0,0 @@ -{ - "forge_marker": 1, - "defaults": { - "textures": { - "bottom": "aether:blocks/therastone_bricks/therastone_bricks", - "side": "aether:blocks/therastone_bricks/therastone_bricks", - "top": "aether:blocks/therastone_bricks/therastone_bricks" - } - }, - "variants": { - "facing=east,half=bottom,shape=straight": { "model": "stairs" }, - "facing=west,half=bottom,shape=straight": { "model": "stairs", "y": 180, "uvlock": true }, - "facing=south,half=bottom,shape=straight": { "model": "stairs", "y": 90, "uvlock": true }, - "facing=north,half=bottom,shape=straight": { "model": "stairs", "y": 270, "uvlock": true }, - "facing=east,half=bottom,shape=outer_right": { "model": "outer_stairs" }, - "facing=west,half=bottom,shape=outer_right": { "model": "outer_stairs", "y": 180, "uvlock": true }, - "facing=south,half=bottom,shape=outer_right": { "model": "outer_stairs", "y": 90, "uvlock": true }, - "facing=north,half=bottom,shape=outer_right": { "model": "outer_stairs", "y": 270, "uvlock": true }, - "facing=east,half=bottom,shape=outer_left": { "model": "outer_stairs", "y": 270, "uvlock": true }, - "facing=west,half=bottom,shape=outer_left": { "model": "outer_stairs", "y": 90, "uvlock": true }, - "facing=south,half=bottom,shape=outer_left": { "model": "outer_stairs" }, - "facing=north,half=bottom,shape=outer_left": { "model": "outer_stairs", "y": 180, "uvlock": true }, - "facing=east,half=bottom,shape=inner_right": { "model": "inner_stairs" }, - "facing=west,half=bottom,shape=inner_right": { "model": "inner_stairs", "y": 180, "uvlock": true }, - "facing=south,half=bottom,shape=inner_right": { "model": "inner_stairs", "y": 90, "uvlock": true }, - "facing=north,half=bottom,shape=inner_right": { "model": "inner_stairs", "y": 270, "uvlock": true }, - "facing=east,half=bottom,shape=inner_left": { "model": "inner_stairs", "y": 270, "uvlock": true }, - "facing=west,half=bottom,shape=inner_left": { "model": "inner_stairs", "y": 90, "uvlock": true }, - "facing=south,half=bottom,shape=inner_left": { "model": "inner_stairs" }, - "facing=north,half=bottom,shape=inner_left": { "model": "inner_stairs", "y": 180, "uvlock": true }, - "facing=east,half=top,shape=straight": { "model": "stairs", "x": 180, "uvlock": true }, - "facing=west,half=top,shape=straight": { "model": "stairs", "x": 180, "y": 180, "uvlock": true }, - "facing=south,half=top,shape=straight": { "model": "stairs", "x": 180, "y": 90, "uvlock": true }, - "facing=north,half=top,shape=straight": { "model": "stairs", "x": 180, "y": 270, "uvlock": true }, - "facing=east,half=top,shape=outer_right": { "model": "outer_stairs", "x": 180, "y": 90, "uvlock": true }, - "facing=west,half=top,shape=outer_right": { "model": "outer_stairs", "x": 180, "y": 270, "uvlock": true }, - "facing=south,half=top,shape=outer_right": { "model": "outer_stairs", "x": 180, "y": 180, "uvlock": true }, - "facing=north,half=top,shape=outer_right": { "model": "outer_stairs", "x": 180, "uvlock": true }, - "facing=east,half=top,shape=outer_left": { "model": "outer_stairs", "x": 180, "uvlock": true }, - "facing=west,half=top,shape=outer_left": { "model": "outer_stairs", "x": 180, "y": 180, "uvlock": true }, - "facing=south,half=top,shape=outer_left": { "model": "outer_stairs", "x": 180, "y": 90, "uvlock": true }, - "facing=north,half=top,shape=outer_left": { "model": "outer_stairs", "x": 180, "y": 270, "uvlock": true }, - "facing=east,half=top,shape=inner_right": { "model": "inner_stairs", "x": 180, "y": 90, "uvlock": true }, - "facing=west,half=top,shape=inner_right": { "model": "inner_stairs", "x": 180, "y": 270, "uvlock": true }, - "facing=south,half=top,shape=inner_right": { "model": "inner_stairs", "x": 180, "y": 180, "uvlock": true }, - "facing=north,half=top,shape=inner_right": { "model": "inner_stairs", "x": 180, "uvlock": true }, - "facing=east,half=top,shape=inner_left": { "model": "inner_stairs", "x": 180, "uvlock": true }, - "facing=west,half=top,shape=inner_left": { "model": "inner_stairs", "x": 180, "y": 180, "uvlock": true }, - "facing=south,half=top,shape=inner_left": { "model": "inner_stairs", "x": 180, "y": 90, "uvlock": true }, - "facing=north,half=top,shape=inner_left": { "model": "inner_stairs", "x": 180, "y": 270, "uvlock": true } - } -} diff --git a/src/main/resources/assets/aether/blockstates/therastone_brick_wall.json b/src/main/resources/assets/aether/blockstates/therastone_brick_wall.json deleted file mode 100644 index 5064c6faf1..0000000000 --- a/src/main/resources/assets/aether/blockstates/therastone_brick_wall.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "multipart": [ - { - "when": { "up": "true" }, - "apply": { "model": "aether:aether_wall/therastone_brick_wall_post" } - }, - { - "when": { "north": "true" }, - "apply": { "model": "aether:aether_wall/therastone_brick_wall_side", "uvlock": true } - }, - { - "when": { "east": "true" }, - "apply": { "model": "aether:aether_wall/therastone_brick_wall_side", "y": 90, "uvlock": true } - }, - { - "when": { "south": "true" }, - "apply": { "model": "aether:aether_wall/therastone_brick_wall_side", "y": 180, "uvlock": true } - }, - { - "when": { "west": "true" }, - "apply": { "model": "aether:aether_wall/therastone_brick_wall_side", "y": 270, "uvlock": true } - } - ] -} diff --git a/src/main/resources/assets/aether/blockstates/therastone_pillar.json b/src/main/resources/assets/aether/blockstates/therastone_pillar.json deleted file mode 100644 index 8e8442b52c..0000000000 --- a/src/main/resources/assets/aether/blockstates/therastone_pillar.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "variants": { - "axis=y": { - "model": "aether:therastone_bricks/pillar" - }, - "axis=z": { - "model": "aether:therastone_bricks/pillar", - "x": 90 - }, - "axis=x": { - "model": "aether:therastone_bricks/pillar", - "x": 90, "y": 90 - } - } -} diff --git a/src/main/resources/assets/aether/blockstates/therawood_beam.json b/src/main/resources/assets/aether/blockstates/therawood_beam.json deleted file mode 100644 index 5e660bd7ae..0000000000 --- a/src/main/resources/assets/aether/blockstates/therawood_beam.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "variants": { - "axis=y": { - "model": "aether:therawood_planks/beam" - }, - "axis=z": { - "model": "aether:therawood_planks/beam", - "x": 90 - }, - "axis=x": { - "model": "aether:therawood_planks/beam", - "x": 90, "y": 90 - } - } -} diff --git a/src/main/resources/assets/aether/blockstates/therawood_button.json b/src/main/resources/assets/aether/blockstates/therawood_button.json deleted file mode 100644 index 41ff71a977..0000000000 --- a/src/main/resources/assets/aether/blockstates/therawood_button.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "variants": { - "facing=up,powered=false": { "model": "aether:therawood_button/therawood_button" }, - "facing=down,powered=false": { "model": "aether:therawood_button/therawood_button", "x": 180 }, - "facing=east,powered=false": { "model": "aether:therawood_button/therawood_button", "x": 90, "y": 90 }, - "facing=west,powered=false": { "model": "aether:therawood_button/therawood_button", "x": 90, "y": 270 }, - "facing=south,powered=false": { "model": "aether:therawood_button/therawood_button", "x": 90, "y": 180 }, - "facing=north,powered=false": { "model": "aether:therawood_button/therawood_button", "x": 90 }, - "facing=up,powered=true": { "model": "aether:therawood_button/therawood_button_pressed" }, - "facing=down,powered=true": { "model": "aether:therawood_button/therawood_button_pressed", "x": 180 }, - "facing=east,powered=true": { "model": "aether:therawood_button/therawood_button_pressed", "x": 90, "y": 90 }, - "facing=west,powered=true": { "model": "aether:therawood_button/therawood_button_pressed", "x": 90, "y": 270 }, - "facing=south,powered=true": { "model": "aether:therawood_button/therawood_button_pressed", "x": 90, "y": 180 }, - "facing=north,powered=true": { "model": "aether:therawood_button/therawood_button_pressed", "x": 90 } - } -} diff --git a/src/main/resources/assets/aether/blockstates/therawood_decorative.json b/src/main/resources/assets/aether/blockstates/therawood_decorative.json deleted file mode 100644 index db90544cbf..0000000000 --- a/src/main/resources/assets/aether/blockstates/therawood_decorative.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "variants": { - "variant=base_planks": [ - { "model": "aether:therawood_planks/base_planks" } - ], - "variant=base_beam": [ - { "model": "aether:therawood_planks/base_beam" } - ], - "variant=top_planks": [ - { "model": "aether:therawood_planks/top_planks" } - ], - "variant=top_beam": [ - { "model": "aether:therawood_planks/top_beam" } - ], - "variant=floorboards": [ - { "model": "aether:therawood_planks/floorboards" } - ], - "variant=highlight": [ - { "model": "aether:therawood_planks/highlight" } - - - ] - } -} diff --git a/src/main/resources/assets/aether/blockstates/therawood_fence.json b/src/main/resources/assets/aether/blockstates/therawood_fence.json deleted file mode 100644 index 96825c8822..0000000000 --- a/src/main/resources/assets/aether/blockstates/therawood_fence.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "multipart": [ - { "apply": { "model": "aether:therawood_fence/therawood_fence_post" } }, - { - "when": { "north": "true" }, - "apply": { "model": "aether:therawood_fence/therawood_fence_side", "uvlock": true } - }, - { - "when": { "east": "true" }, - "apply": { "model": "aether:therawood_fence/therawood_fence_side", "y": 90, "uvlock": true } - }, - { - "when": { "south": "true" }, - "apply": { "model": "aether:therawood_fence/therawood_fence_side", "y": 180, "uvlock": true } - }, - { - "when": { "west": "true" }, - "apply": { "model": "aether:therawood_fence/therawood_fence_side", "y": 270, "uvlock": true } - } - ] -} diff --git a/src/main/resources/assets/aether/blockstates/therawood_fence_gate.json b/src/main/resources/assets/aether/blockstates/therawood_fence_gate.json deleted file mode 100644 index 8e93a54a32..0000000000 --- a/src/main/resources/assets/aether/blockstates/therawood_fence_gate.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "variants": { - "facing=south,in_wall=false,open=false": { "model": "aether:therawood_fence_gate/therawood_fence_gate_closed", "uvlock": true }, - "facing=west,in_wall=false,open=false": { "model": "aether:therawood_fence_gate/therawood_fence_gate_closed", "uvlock": true, "y": 90 }, - "facing=north,in_wall=false,open=false": { "model": "aether:therawood_fence_gate/therawood_fence_gate_closed", "uvlock": true, "y": 180 }, - "facing=east,in_wall=false,open=false": { "model": "aether:therawood_fence_gate/therawood_fence_gate_closed", "uvlock": true, "y": 270 }, - "facing=south,in_wall=false,open=true": { "model": "aether:therawood_fence_gate/therawood_fence_gate_open", "uvlock": true }, - "facing=west,in_wall=false,open=true": { "model": "aether:therawood_fence_gate/therawood_fence_gate_open", "uvlock": true, "y": 90 }, - "facing=north,in_wall=false,open=true": { "model": "aether:therawood_fence_gate/therawood_fence_gate_open", "uvlock": true, "y": 180 }, - "facing=east,in_wall=false,open=true": { "model": "aether:therawood_fence_gate/therawood_fence_gate_open", "uvlock": true, "y": 270 }, - "facing=south,in_wall=true,open=false": { "model": "aether:therawood_fence_gate/therawood_fence_gate_closed", "uvlock": true }, - "facing=west,in_wall=true,open=false": { "model": "aether:therawood_fence_gate/therawood_fence_gate_closed", "uvlock": true, "y": 90 }, - "facing=north,in_wall=true,open=false": { "model": "aether:therawood_fence_gate/therawood_fence_gate_closed", "uvlock": true, "y": 180 }, - "facing=east,in_wall=true,open=false": { "model": "aether:therawood_fence_gate/therawood_fence_gate_closed", "uvlock": true, "y": 270 }, - "facing=south,in_wall=true,open=true": { "model": "aether:therawood_fence_gate/therawood_fence_gate_open", "uvlock": true }, - "facing=west,in_wall=true,open=true": { "model": "aether:therawood_fence_gate/therawood_fence_gate_open", "uvlock": true, "y": 90 }, - "facing=north,in_wall=true,open=true": { "model": "aether:therawood_fence_gate/therawood_fence_gate_open", "uvlock": true, "y": 180 }, - "facing=east,in_wall=true,open=true": { "model": "aether:therawood_fence_gate/therawood_fence_gate_open", "uvlock": true, "y": 270 } - } -} diff --git a/src/main/resources/assets/aether/blockstates/therawood_leaves.json b/src/main/resources/assets/aether/blockstates/therawood_leaves.json deleted file mode 100644 index 10aadd8982..0000000000 --- a/src/main/resources/assets/aether/blockstates/therawood_leaves.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "variants": { - "normal": { - "model": "aether:leaves/therawood_leaves" - } - } -} diff --git a/src/main/resources/assets/aether/blockstates/therawood_log.json b/src/main/resources/assets/aether/blockstates/therawood_log.json deleted file mode 100644 index b5f03bdfca..0000000000 --- a/src/main/resources/assets/aether/blockstates/therawood_log.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "variants": { - "axis=y": { - "model": "aether:logs/therawood_log" - }, - "axis=z": { - "model": "aether:logs/therawood_log", - "x": 90 - }, - "axis=x": { - "model": "aether:logs/therawood_log", - "x": 90, "y": 90 - }, - "axis=none": { - "model": "aether:logs/therawood_log_bark" - } - } -} diff --git a/src/main/resources/assets/aether/blockstates/therawood_log_wall.json b/src/main/resources/assets/aether/blockstates/therawood_log_wall.json deleted file mode 100644 index 78f67f96ef..0000000000 --- a/src/main/resources/assets/aether/blockstates/therawood_log_wall.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "multipart": [ - { - "when": { "up": "true" }, - "apply": { "model": "aether:aether_wall/therawood_log_wall_post" } - }, - { - "when": { "north": "true" }, - "apply": { "model": "aether:aether_wall/therawood_log_wall_side", "uvlock": true } - }, - { - "when": { "east": "true" }, - "apply": { "model": "aether:aether_wall/therawood_log_wall_side", "y": 90, "uvlock": true } - }, - { - "when": { "south": "true" }, - "apply": { "model": "aether:aether_wall/therawood_log_wall_side", "y": 180, "uvlock": true } - }, - { - "when": { "west": "true" }, - "apply": { "model": "aether:aether_wall/therawood_log_wall_side", "y": 270, "uvlock": true } - } - ] -} diff --git a/src/main/resources/assets/aether/blockstates/therawood_planks.json b/src/main/resources/assets/aether/blockstates/therawood_planks.json deleted file mode 100644 index bf0d729a14..0000000000 --- a/src/main/resources/assets/aether/blockstates/therawood_planks.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "variants": { - "normal": [ - { "model": "aether:therawood_planks/normal" } - ] - } -} diff --git a/src/main/resources/assets/aether/blockstates/therawood_pressure_plate.json b/src/main/resources/assets/aether/blockstates/therawood_pressure_plate.json deleted file mode 100644 index 66ede1ad4e..0000000000 --- a/src/main/resources/assets/aether/blockstates/therawood_pressure_plate.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "variants": { - "powered=false": { "model": "aether:therawood_pressure_plate/therawood_pressure_plate_up" }, - "powered=true": { "model": "aether:therawood_pressure_plate/therawood_pressure_plate_down" } - } -} diff --git a/src/main/resources/assets/aether/blockstates/therawood_slab.json b/src/main/resources/assets/aether/blockstates/therawood_slab.json deleted file mode 100644 index c3bc243d7e..0000000000 --- a/src/main/resources/assets/aether/blockstates/therawood_slab.json +++ /dev/null @@ -1,33 +0,0 @@ -{ - "forge_marker": 1, - "variants": { - "state=bottom": [ - { - "textures": { - "bottom": "aether:blocks/therawood_planks/therawood_planks", - "top": "aether:blocks/therawood_planks/therawood_planks", - "side": "aether:blocks/therawood_planks/therawood_planks" - }, - "model": "half_slab" - } - ], - "state=top": [ - { - "textures": { - "bottom": "aether:blocks/therawood_planks/therawood_planks", - "top": "aether:blocks/therawood_planks/therawood_planks", - "side": "aether:blocks/therawood_planks/therawood_planks" - }, - "model": "upper_slab" - } - ], - "state=full": [ - { - "textures": { - "all": "aether:blocks/therawood_planks/therawood_planks" - }, - "model": "cube_all" - } - ] - } -} diff --git a/src/main/resources/assets/aether/blockstates/therawood_stairs.json b/src/main/resources/assets/aether/blockstates/therawood_stairs.json deleted file mode 100644 index 34e0764fa8..0000000000 --- a/src/main/resources/assets/aether/blockstates/therawood_stairs.json +++ /dev/null @@ -1,52 +0,0 @@ -{ - "forge_marker": 1, - "defaults": { - "textures": { - "bottom": "aether:blocks/therawood_planks/therawood_planks", - "side": "aether:blocks/therawood_planks/therawood_planks", - "top": "aether:blocks/therawood_planks/therawood_planks" - } - }, - "variants": { - "facing=east,half=bottom,shape=straight": { "model": "stairs" }, - "facing=west,half=bottom,shape=straight": { "model": "stairs", "y": 180, "uvlock": true }, - "facing=south,half=bottom,shape=straight": { "model": "stairs", "y": 90, "uvlock": true }, - "facing=north,half=bottom,shape=straight": { "model": "stairs", "y": 270, "uvlock": true }, - "facing=east,half=bottom,shape=outer_right": { "model": "outer_stairs" }, - "facing=west,half=bottom,shape=outer_right": { "model": "outer_stairs", "y": 180, "uvlock": true }, - "facing=south,half=bottom,shape=outer_right": { "model": "outer_stairs", "y": 90, "uvlock": true }, - "facing=north,half=bottom,shape=outer_right": { "model": "outer_stairs", "y": 270, "uvlock": true }, - "facing=east,half=bottom,shape=outer_left": { "model": "outer_stairs", "y": 270, "uvlock": true }, - "facing=west,half=bottom,shape=outer_left": { "model": "outer_stairs", "y": 90, "uvlock": true }, - "facing=south,half=bottom,shape=outer_left": { "model": "outer_stairs" }, - "facing=north,half=bottom,shape=outer_left": { "model": "outer_stairs", "y": 180, "uvlock": true }, - "facing=east,half=bottom,shape=inner_right": { "model": "inner_stairs" }, - "facing=west,half=bottom,shape=inner_right": { "model": "inner_stairs", "y": 180, "uvlock": true }, - "facing=south,half=bottom,shape=inner_right": { "model": "inner_stairs", "y": 90, "uvlock": true }, - "facing=north,half=bottom,shape=inner_right": { "model": "inner_stairs", "y": 270, "uvlock": true }, - "facing=east,half=bottom,shape=inner_left": { "model": "inner_stairs", "y": 270, "uvlock": true }, - "facing=west,half=bottom,shape=inner_left": { "model": "inner_stairs", "y": 90, "uvlock": true }, - "facing=south,half=bottom,shape=inner_left": { "model": "inner_stairs" }, - "facing=north,half=bottom,shape=inner_left": { "model": "inner_stairs", "y": 180, "uvlock": true }, - "facing=east,half=top,shape=straight": { "model": "stairs", "x": 180, "uvlock": true }, - "facing=west,half=top,shape=straight": { "model": "stairs", "x": 180, "y": 180, "uvlock": true }, - "facing=south,half=top,shape=straight": { "model": "stairs", "x": 180, "y": 90, "uvlock": true }, - "facing=north,half=top,shape=straight": { "model": "stairs", "x": 180, "y": 270, "uvlock": true }, - "facing=east,half=top,shape=outer_right": { "model": "outer_stairs", "x": 180, "y": 90, "uvlock": true }, - "facing=west,half=top,shape=outer_right": { "model": "outer_stairs", "x": 180, "y": 270, "uvlock": true }, - "facing=south,half=top,shape=outer_right": { "model": "outer_stairs", "x": 180, "y": 180, "uvlock": true }, - "facing=north,half=top,shape=outer_right": { "model": "outer_stairs", "x": 180, "uvlock": true }, - "facing=east,half=top,shape=outer_left": { "model": "outer_stairs", "x": 180, "uvlock": true }, - "facing=west,half=top,shape=outer_left": { "model": "outer_stairs", "x": 180, "y": 180, "uvlock": true }, - "facing=south,half=top,shape=outer_left": { "model": "outer_stairs", "x": 180, "y": 90, "uvlock": true }, - "facing=north,half=top,shape=outer_left": { "model": "outer_stairs", "x": 180, "y": 270, "uvlock": true }, - "facing=east,half=top,shape=inner_right": { "model": "inner_stairs", "x": 180, "y": 90, "uvlock": true }, - "facing=west,half=top,shape=inner_right": { "model": "inner_stairs", "x": 180, "y": 270, "uvlock": true }, - "facing=south,half=top,shape=inner_right": { "model": "inner_stairs", "x": 180, "y": 180, "uvlock": true }, - "facing=north,half=top,shape=inner_right": { "model": "inner_stairs", "x": 180, "uvlock": true }, - "facing=east,half=top,shape=inner_left": { "model": "inner_stairs", "x": 180, "uvlock": true }, - "facing=west,half=top,shape=inner_left": { "model": "inner_stairs", "x": 180, "y": 180, "uvlock": true }, - "facing=south,half=top,shape=inner_left": { "model": "inner_stairs", "x": 180, "y": 90, "uvlock": true }, - "facing=north,half=top,shape=inner_left": { "model": "inner_stairs", "x": 180, "y": 270, "uvlock": true } - } -} diff --git a/src/main/resources/assets/aether/blockstates/unique_sapling.json b/src/main/resources/assets/aether/blockstates/unique_sapling.json deleted file mode 100644 index 371d1c2929..0000000000 --- a/src/main/resources/assets/aether/blockstates/unique_sapling.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "variants": { - "variant=amberoot": { - "model": "aether:saplings/amberoot_sapling" - }, - "variant=mutant_tree": { - "model": "aether:saplings/mutant_tree_sapling" - } - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/blockstates/valkyrie_grass.json b/src/main/resources/assets/aether/blockstates/valkyrie_grass.json deleted file mode 100644 index 3fd7356524..0000000000 --- a/src/main/resources/assets/aether/blockstates/valkyrie_grass.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "variants": { - "variant=sprout": { - "model": "aether:valkyrie_grass/valkyrie_grass_sprout" - }, - "variant=mid": { - "model": "aether:valkyrie_grass/valkyrie_grass_mid" - }, - "variant=full": { - "model": "aether:valkyrie_grass/valkyrie_grass_full" - } - } -} diff --git a/src/main/resources/assets/aether/blockstates/wall_skyroot_sign.json b/src/main/resources/assets/aether/blockstates/wall_skyroot_sign.json deleted file mode 100644 index 86eee3274b..0000000000 --- a/src/main/resources/assets/aether/blockstates/wall_skyroot_sign.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "forge_marker": 1, - "variants": { - "normal": { - "model": "aether:tesr", - "textures": { "particle": "aether:blocks/skyroot_planks/skyroot_planks" } - } - } -} diff --git a/src/main/resources/assets/aether/blockstates/wildcard.json b/src/main/resources/assets/aether/blockstates/wildcard.json deleted file mode 100644 index 492255fce0..0000000000 --- a/src/main/resources/assets/aether/blockstates/wildcard.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "variants": { - "normal": [ - { "model": "aether:wildcard" }, - { "model": "aether:wildcard", "y": 90 }, - { "model": "aether:wildcard", "y": 180 }, - { "model": "aether:wildcard", "y": 270 } - ] - } -} diff --git a/src/main/resources/assets/aether/blockstates/wisproot_button.json b/src/main/resources/assets/aether/blockstates/wisproot_button.json deleted file mode 100644 index 3f9cb35dd3..0000000000 --- a/src/main/resources/assets/aether/blockstates/wisproot_button.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "variants": { - "facing=up,powered=false": { "model": "aether:wisproot_button/wisproot_button" }, - "facing=down,powered=false": { "model": "aether:wisproot_button/wisproot_button", "x": 180 }, - "facing=east,powered=false": { "model": "aether:wisproot_button/wisproot_button", "x": 90, "y": 90 }, - "facing=west,powered=false": { "model": "aether:wisproot_button/wisproot_button", "x": 90, "y": 270 }, - "facing=south,powered=false": { "model": "aether:wisproot_button/wisproot_button", "x": 90, "y": 180 }, - "facing=north,powered=false": { "model": "aether:wisproot_button/wisproot_button", "x": 90 }, - "facing=up,powered=true": { "model": "aether:wisproot_button/wisproot_button_pressed" }, - "facing=down,powered=true": { "model": "aether:wisproot_button/wisproot_button_pressed", "x": 180 }, - "facing=east,powered=true": { "model": "aether:wisproot_button/wisproot_button_pressed", "x": 90, "y": 90 }, - "facing=west,powered=true": { "model": "aether:wisproot_button/wisproot_button_pressed", "x": 90, "y": 270 }, - "facing=south,powered=true": { "model": "aether:wisproot_button/wisproot_button_pressed", "x": 90, "y": 180 }, - "facing=north,powered=true": { "model": "aether:wisproot_button/wisproot_button_pressed", "x": 90 } - } -} diff --git a/src/main/resources/assets/aether/blockstates/wisproot_fence.json b/src/main/resources/assets/aether/blockstates/wisproot_fence.json deleted file mode 100644 index f480cb2745..0000000000 --- a/src/main/resources/assets/aether/blockstates/wisproot_fence.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "multipart": [ - { "apply": { "model": "aether:wisproot_fence/wisproot_fence_post" } }, - { - "when": { "north": "true" }, - "apply": { "model": "aether:wisproot_fence/wisproot_fence_side", "uvlock": true } - }, - { - "when": { "east": "true" }, - "apply": { "model": "aether:wisproot_fence/wisproot_fence_side", "y": 90, "uvlock": true } - }, - { - "when": { "south": "true" }, - "apply": { "model": "aether:wisproot_fence/wisproot_fence_side", "y": 180, "uvlock": true } - }, - { - "when": { "west": "true" }, - "apply": { "model": "aether:wisproot_fence/wisproot_fence_side", "y": 270, "uvlock": true } - } - ] -} diff --git a/src/main/resources/assets/aether/blockstates/wisproot_fence_gate.json b/src/main/resources/assets/aether/blockstates/wisproot_fence_gate.json deleted file mode 100644 index 9656f17fe7..0000000000 --- a/src/main/resources/assets/aether/blockstates/wisproot_fence_gate.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "variants": { - "facing=south,in_wall=false,open=false": { "model": "aether:wisproot_fence_gate/wisproot_fence_gate_closed", "uvlock": true }, - "facing=west,in_wall=false,open=false": { "model": "aether:wisproot_fence_gate/wisproot_fence_gate_closed", "uvlock": true, "y": 90 }, - "facing=north,in_wall=false,open=false": { "model": "aether:wisproot_fence_gate/wisproot_fence_gate_closed", "uvlock": true, "y": 180 }, - "facing=east,in_wall=false,open=false": { "model": "aether:wisproot_fence_gate/wisproot_fence_gate_closed", "uvlock": true, "y": 270 }, - "facing=south,in_wall=false,open=true": { "model": "aether:wisproot_fence_gate/wisproot_fence_gate_open", "uvlock": true }, - "facing=west,in_wall=false,open=true": { "model": "aether:wisproot_fence_gate/wisproot_fence_gate_open", "uvlock": true, "y": 90 }, - "facing=north,in_wall=false,open=true": { "model": "aether:wisproot_fence_gate/wisproot_fence_gate_open", "uvlock": true, "y": 180 }, - "facing=east,in_wall=false,open=true": { "model": "aether:wisproot_fence_gate/wisproot_fence_gate_open", "uvlock": true, "y": 270 }, - "facing=south,in_wall=true,open=false": { "model": "aether:wisproot_fence_gate/wisproot_wall_gate_closed", "uvlock": true }, - "facing=west,in_wall=true,open=false": { "model": "aether:wisproot_fence_gate/wisproot_wall_gate_closed", "uvlock": true, "y": 90 }, - "facing=north,in_wall=true,open=false": { "model": "aether:wisproot_fence_gate/wisproot_wall_gate_closed", "uvlock": true, "y": 180 }, - "facing=east,in_wall=true,open=false": { "model": "aether:wisproot_fence_gate/wisproot_wall_gate_closed", "uvlock": true, "y": 270 }, - "facing=south,in_wall=true,open=true": { "model": "aether:wisproot_fence_gate/wisproot_wall_gate_open", "uvlock": true }, - "facing=west,in_wall=true,open=true": { "model": "aether:wisproot_fence_gate/wisproot_wall_gate_open", "uvlock": true, "y": 90 }, - "facing=north,in_wall=true,open=true": { "model": "aether:wisproot_fence_gate/wisproot_wall_gate_open", "uvlock": true, "y": 180 }, - "facing=east,in_wall=true,open=true": { "model": "aether:wisproot_fence_gate/wisproot_wall_gate_open", "uvlock": true, "y": 270 } - } -} diff --git a/src/main/resources/assets/aether/blockstates/wisproot_log_wall.json b/src/main/resources/assets/aether/blockstates/wisproot_log_wall.json deleted file mode 100644 index c816fe34b7..0000000000 --- a/src/main/resources/assets/aether/blockstates/wisproot_log_wall.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "multipart": [ - { - "when": { "up": "true" }, - "apply": { "model": "aether:aether_wall/wisproot_log_wall_post" } - }, - { - "when": { "north": "true" }, - "apply": { "model": "aether:aether_wall/wisproot_log_wall_side", "uvlock": true } - }, - { - "when": { "east": "true" }, - "apply": { "model": "aether:aether_wall/wisproot_log_wall_side", "y": 90, "uvlock": true } - }, - { - "when": { "south": "true" }, - "apply": { "model": "aether:aether_wall/wisproot_log_wall_side", "y": 180, "uvlock": true } - }, - { - "when": { "west": "true" }, - "apply": { "model": "aether:aether_wall/wisproot_log_wall_side", "y": 270, "uvlock": true } - } - ] -} diff --git a/src/main/resources/assets/aether/blockstates/wisproot_pressure_plate.json b/src/main/resources/assets/aether/blockstates/wisproot_pressure_plate.json deleted file mode 100644 index 9dd84ffb90..0000000000 --- a/src/main/resources/assets/aether/blockstates/wisproot_pressure_plate.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "variants": { - "powered=false": { "model": "aether:wisproot_pressure_plate/wisproot_pressure_plate_up" }, - "powered=true": { "model": "aether:wisproot_pressure_plate/wisproot_pressure_plate_down" } - } -} diff --git a/src/main/resources/assets/aether/blockstates/wisproot_sapling.json b/src/main/resources/assets/aether/blockstates/wisproot_sapling.json deleted file mode 100644 index 528cc20eeb..0000000000 --- a/src/main/resources/assets/aether/blockstates/wisproot_sapling.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "variants": { - "variant=wisproot_green": { - "model": "aether:saplings/green_wisproot_sapling" - }, - "variant=wisproot_blue": { - "model": "aether:saplings/blue_wisproot_sapling" - }, - "variant=wisproot_dark_blue": { - "model": "aether:saplings/dark_blue_wisproot_sapling" - } - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/blockstates/wisproot_slab.json b/src/main/resources/assets/aether/blockstates/wisproot_slab.json deleted file mode 100644 index 12a94a5a64..0000000000 --- a/src/main/resources/assets/aether/blockstates/wisproot_slab.json +++ /dev/null @@ -1,33 +0,0 @@ -{ - "forge_marker": 1, - "variants": { - "state=bottom": [ - { - "textures": { - "bottom": "aether:blocks/light_skyroot_planks/wisproot_planks", - "top": "aether:blocks/light_skyroot_planks/wisproot_planks", - "side": "aether:blocks/light_skyroot_planks/wisproot_planks" - }, - "model": "half_slab" - } - ], - "state=top": [ - { - "textures": { - "bottom": "aether:blocks/light_skyroot_planks/wisproot_planks", - "top": "aether:blocks/light_skyroot_planks/wisproot_planks", - "side": "aether:blocks/light_skyroot_planks/wisproot_planks" - }, - "model": "upper_slab" - } - ], - "state=full": [ - { - "textures": { - "all": "aether:blocks/light_skyroot_planks/wisproot_planks" - }, - "model": "cube_all" - } - ] - } -} diff --git a/src/main/resources/assets/aether/blockstates/wisproot_stairs.json b/src/main/resources/assets/aether/blockstates/wisproot_stairs.json deleted file mode 100644 index fd260cb116..0000000000 --- a/src/main/resources/assets/aether/blockstates/wisproot_stairs.json +++ /dev/null @@ -1,52 +0,0 @@ -{ - "forge_marker": 1, - "defaults": { - "textures": { - "bottom": "aether:blocks/light_skyroot_planks/wisproot_planks", - "side": "aether:blocks/light_skyroot_planks/wisproot_planks", - "top": "aether:blocks/light_skyroot_planks/wisproot_planks" - } - }, - "variants": { - "facing=east,half=bottom,shape=straight": { "model": "stairs" }, - "facing=west,half=bottom,shape=straight": { "model": "stairs", "y": 180, "uvlock": true }, - "facing=south,half=bottom,shape=straight": { "model": "stairs", "y": 90, "uvlock": true }, - "facing=north,half=bottom,shape=straight": { "model": "stairs", "y": 270, "uvlock": true }, - "facing=east,half=bottom,shape=outer_right": { "model": "outer_stairs" }, - "facing=west,half=bottom,shape=outer_right": { "model": "outer_stairs", "y": 180, "uvlock": true }, - "facing=south,half=bottom,shape=outer_right": { "model": "outer_stairs", "y": 90, "uvlock": true }, - "facing=north,half=bottom,shape=outer_right": { "model": "outer_stairs", "y": 270, "uvlock": true }, - "facing=east,half=bottom,shape=outer_left": { "model": "outer_stairs", "y": 270, "uvlock": true }, - "facing=west,half=bottom,shape=outer_left": { "model": "outer_stairs", "y": 90, "uvlock": true }, - "facing=south,half=bottom,shape=outer_left": { "model": "outer_stairs" }, - "facing=north,half=bottom,shape=outer_left": { "model": "outer_stairs", "y": 180, "uvlock": true }, - "facing=east,half=bottom,shape=inner_right": { "model": "inner_stairs" }, - "facing=west,half=bottom,shape=inner_right": { "model": "inner_stairs", "y": 180, "uvlock": true }, - "facing=south,half=bottom,shape=inner_right": { "model": "inner_stairs", "y": 90, "uvlock": true }, - "facing=north,half=bottom,shape=inner_right": { "model": "inner_stairs", "y": 270, "uvlock": true }, - "facing=east,half=bottom,shape=inner_left": { "model": "inner_stairs", "y": 270, "uvlock": true }, - "facing=west,half=bottom,shape=inner_left": { "model": "inner_stairs", "y": 90, "uvlock": true }, - "facing=south,half=bottom,shape=inner_left": { "model": "inner_stairs" }, - "facing=north,half=bottom,shape=inner_left": { "model": "inner_stairs", "y": 180, "uvlock": true }, - "facing=east,half=top,shape=straight": { "model": "stairs", "x": 180, "uvlock": true }, - "facing=west,half=top,shape=straight": { "model": "stairs", "x": 180, "y": 180, "uvlock": true }, - "facing=south,half=top,shape=straight": { "model": "stairs", "x": 180, "y": 90, "uvlock": true }, - "facing=north,half=top,shape=straight": { "model": "stairs", "x": 180, "y": 270, "uvlock": true }, - "facing=east,half=top,shape=outer_right": { "model": "outer_stairs", "x": 180, "y": 90, "uvlock": true }, - "facing=west,half=top,shape=outer_right": { "model": "outer_stairs", "x": 180, "y": 270, "uvlock": true }, - "facing=south,half=top,shape=outer_right": { "model": "outer_stairs", "x": 180, "y": 180, "uvlock": true }, - "facing=north,half=top,shape=outer_right": { "model": "outer_stairs", "x": 180, "uvlock": true }, - "facing=east,half=top,shape=outer_left": { "model": "outer_stairs", "x": 180, "uvlock": true }, - "facing=west,half=top,shape=outer_left": { "model": "outer_stairs", "x": 180, "y": 180, "uvlock": true }, - "facing=south,half=top,shape=outer_left": { "model": "outer_stairs", "x": 180, "y": 90, "uvlock": true }, - "facing=north,half=top,shape=outer_left": { "model": "outer_stairs", "x": 180, "y": 270, "uvlock": true }, - "facing=east,half=top,shape=inner_right": { "model": "inner_stairs", "x": 180, "y": 90, "uvlock": true }, - "facing=west,half=top,shape=inner_right": { "model": "inner_stairs", "x": 180, "y": 270, "uvlock": true }, - "facing=south,half=top,shape=inner_right": { "model": "inner_stairs", "x": 180, "y": 180, "uvlock": true }, - "facing=north,half=top,shape=inner_right": { "model": "inner_stairs", "x": 180, "uvlock": true }, - "facing=east,half=top,shape=inner_left": { "model": "inner_stairs", "x": 180, "uvlock": true }, - "facing=west,half=top,shape=inner_left": { "model": "inner_stairs", "x": 180, "y": 180, "uvlock": true }, - "facing=south,half=top,shape=inner_left": { "model": "inner_stairs", "x": 180, "y": 90, "uvlock": true }, - "facing=north,half=top,shape=inner_left": { "model": "inner_stairs", "x": 180, "y": 270, "uvlock": true } - } -} diff --git a/src/main/resources/assets/aether/blockstates/woven_sticks.json b/src/main/resources/assets/aether/blockstates/woven_sticks.json deleted file mode 100644 index 60c1821c57..0000000000 --- a/src/main/resources/assets/aether/blockstates/woven_sticks.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "variants": { - "variant=skyroot": { - "model": "aether:woven_sticks/woven_skyroot_sticks" - } - } -} diff --git a/src/main/resources/assets/aether/blockstates/zanite_block.json b/src/main/resources/assets/aether/blockstates/zanite_block.json deleted file mode 100644 index 4e1480a07e..0000000000 --- a/src/main/resources/assets/aether/blockstates/zanite_block.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "variants": { - "normal": { - "model": "aether:zanite_block" - } - } -} diff --git a/src/main/resources/assets/aether/blockstates/zanite_ore.json b/src/main/resources/assets/aether/blockstates/zanite_ore.json deleted file mode 100644 index 310621fd33..0000000000 --- a/src/main/resources/assets/aether/blockstates/zanite_ore.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "variants": { - "normal": { - "model": "aether:ores/zanite_ore" - } - } -} diff --git a/src/main/resources/assets/aether/dialog/edison/outpost_greet.json b/src/main/resources/assets/aether/dialog/edison/outpost_greet.json deleted file mode 100644 index 2718b149cc..0000000000 --- a/src/main/resources/assets/aether/dialog/edison/outpost_greet.json +++ /dev/null @@ -1,224 +0,0 @@ -{ - "nodes": [ - { - "name": "start_not_introduced", - "lines": [ - { "speaker": "aether:edison#idle", "text": "edison.greet.start_not_introduced" } - ], - "buttons": [ - { "label": "edison.greet.option.expecting", "actions": [ { "type": "navigate", "target": "expecting" } ] }, - { "label": "edison.greet.option.who", "actions": [ { "type": "navigate", "target": "who" } ] }, - { "label": "edison.greet.option.map", "actions": [ { "type": "navigate", "target": "map" } ] }, - { "label": "generic.goodbye", "actions": [ { "type": "exit" } ] } - ] - }, - { - "name": "start_respawn_not_introduced", - "lines": [ - { "speaker": "aether:edison#idle", "text": "edison.greet.respawn_not_introduced" } - ], - "buttons": [ - { "label": "edison.greet.option.who", "actions": [ { "type": "navigate", "target": "who" } ] }, - { "label": "edison.greet.option.what", "actions": [ { "type": "navigate", "target": "what" } ] }, - { "label": "edison.greet.option.died", "actions": [ { "type": "navigate", "target": "died" } ] }, - { "label": "generic.goodbye", "actions": [ { "type": "exit" } ] } - ] - }, - { - "name": "start_respawn", - "lines": [ - { "speaker": "aether:edison#idle", "text": "edison.greet.respawn" } - ], - "buttons": [ - { "label": "edison.greet.option.fine", "actions": [ { "type": "navigate", "target": "fine" } ] }, - { "label": "edison.greet.option.thanks", "actions": [ { "type": "navigate", "target": "thanks" } ] }, - { "label": "edison.greet.option.okay_sale", "actions": [ { "type": "navigate", "target": "sale" } ] }, - { - "orConditions": [ { "type": "isChristmasEvent", "validate": "true" }, { "type": "isNewYearsEvent", "validate": "true" } ], - "label": "edison.greet.option.okay_holiday_sale", - "actions": [ { "type": "navigate", "target": "holiday_sale" } ] - }, - { "label": "generic.goodbye", "actions": [ { "type": "exit" } ] } - ] - }, - { - "name": "start", - "lines": [ - { "speaker": "aether:edison#idle", "text": "edison.greet.start" } - ], - "buttons": [ - { "label": "edison.greet.option.sale", "actions": [ { "type": "navigate", "target": "sale" } ] }, - { - "orConditions": [ { "type": "isChristmasEvent", "validate": "true" }, { "type": "isNewYearsEvent", "validate": "true" } ], - "label": "edison.greet.option.holiday_sale", - "actions": [ { "type": "navigate", "target": "holiday_sale" } ] - }, - { "label": "edison.greet.option.okay_goodbye", "actions": [ { "type": "exit" } ] } - ] - }, - { - "name": "expecting", - "lines": [ - { "speaker": "aether:edison#idle", "text": "edison.greet.expecting1" }, - { "speaker": "aether:edison#idle", "text": "edison.greet.expecting2" }, - { "speaker": "aether:edison#idle", "text": "edison.greet.expecting3" } - ], - "buttons": [ - { "label": "edison.greet.option.no_we_talked", "actions": [ { "type": "navigate", "target": "no_we_talked" } ] }, - { "label": "edison.greet.option.who", "actions": [ { "type": "navigate", "target": "who" } ] }, - { "label": "edison.greet.option.what", "actions": [ { "type": "navigate", "target": "what" } ] } - ] - }, - { - "name": "what", - "lines": [ - { "speaker": "aether:edison#idle", "text": "edison.greet.what1" }, - { "speaker": "aether:edison#idle", "text": "edison.greet.what2" }, - { "speaker": "aether:edison#idle", "text": "edison.greet.what3" } - ], - "buttons": [ - { "label": "edison.greet.option.building", "actions": [ { "type": "navigate", "target": "building" } ] }, - { "label": "edison.greet.option.world", "actions": [ { "type": "navigate", "target": "world" } ] } - ] - }, - { - "name": "who", - "lines": [ - { "speaker": "aether:edison#idle", "text": "edison.greet.who1" }, - { "speaker": "aether:edison#idle", "text": "edison.greet.who2" }, - { "speaker": "aether:edison#idle", "text": "edison.greet.who3" }, - { "speaker": "aether:edison#idle", "text": "edison.greet.who4" }, - { "speaker": "aether:edison#idle", "text": "edison.greet.who5" } - ], - "buttons": [ - { "label": "edison.greet.option.what", "actions": [ { "type": "navigate", "target": "what" } ] }, - { "label": "edison.greet.option.sale", "actions": [ { "type": "navigate", "target": "sale" } ] }, - { "label": "edison.greet.option.you_know_who", "actions": [ { "type": "navigate", "target": "you_know_who" } ] }, - { "label": "edison.greet.option.okay_goodbye", "actions": [ { "type": "exit" } ] } - ] - }, - { - "name": "map", - "lines": [ - { "speaker": "aether:edison#idle", "text": "edison.greet.map1" }, - { "speaker": "aether:edison#idle", "text": "edison.greet.map2" } - ], - "buttons": [ - { "label": "edison.greet.option.what", "actions": [ { "type": "navigate", "target": "what" } ] }, - { "label": "edison.greet.option.who", "actions": [ { "type": "navigate", "target": "who" } ] } - ] - }, - { - "name": "died", - "lines": [ - { "speaker": "aether:edison#idle", "text": "edison.greet.died1" } - ], - "buttons": [ - { "label": "edison.greet.option.what", "actions": [ { "type": "navigate", "target": "what" } ] }, - { "label": "edison.greet.option.who", "actions": [ { "type": "navigate", "target": "who" } ] } - ] - }, - { - "name": "fine", - "lines": [ - { "speaker": "aether:edison#idle", "text": "edison.greet.fine1" }, - { "speaker": "aether:edison#idle", "text": "edison.greet.fine2" } - ], - "buttons": [ - { "label": "edison.greet.option.sale", "actions": [ { "type": "navigate", "target": "sale" } ] }, - { "label": "generic.goodbye", "actions": [ { "type": "exit" } ] } - ] - }, - { - "name": "thanks", - "lines": [ - { "speaker": "aether:edison#idle", "text": "edison.greet.thanks1" }, - { "speaker": "aether:edison#idle", "text": "edison.greet.thanks2" } - ], - "buttons": [ - { "label": "edison.greet.option.sale", "actions": [ { "type": "navigate", "target": "sale" } ] }, - { "label": "edison.greet.option.ready_goodbye", "actions": [ { "type": "exit" } ] } - ] - }, - { - "name": "sale", - "lines": [ - { "speaker": "aether:edison#idle", "text": "edison.greet.sale" } - ], - "end_actions": [ - { "type": "openShop", "shopIndex": 0 } - ] - }, - { - "name": "holiday_sale", - "lines": [ - { "speaker": "aether:edison#idle", "text": "edison.greet.holiday_sale" } - ], - "end_actions": [ - { "type": "openShop", "shopIndex": 1 } - ] - }, - { - "name": "no_we_talked", - "lines": [ - { "speaker": "aether:edison#idle", "text": "edison.greet.no_we_talked1" }, - { "speaker": "aether:edison#idle", "text": "edison.greet.no_we_talked2" }, - { "speaker": "aether:edison#idle", "text": "edison.greet.no_we_talked3" }, - { "speaker": "aether:edison#idle", "text": "edison.greet.no_we_talked4" }, - { "speaker": "aether:edison#idle", "text": "edison.greet.no_we_talked5" } - ], - "buttons": [ - { "label": "edison.greet.option.what", "actions": [ { "type": "navigate", "target": "what" } ] }, - { "label": "edison.greet.option.sale", "actions": [ { "type": "navigate", "target": "sale" } ] } - ] - }, - { - "name": "you_know_who", - "lines": [ - { "speaker": "aether:edison#idle", "text": "edison.greet.you_know_who1" }, - { "speaker": "aether:edison#idle", "text": "edison.greet.you_know_who2" }, - { "speaker": "aether:edison#idle", "text": "edison.greet.you_know_who3" } - ], - "buttons": [ - { "label": "edison.greet.option.what", "actions": [ { "type": "navigate", "target": "what" } ] }, - { "label": "edison.greet.option.sale", "actions": [ { "type": "navigate", "target": "sale" } ] }, - { "label": "edison.greet.option.mind_goodbye", "actions": [ { "type": "exit" } ] } - ] - }, - { - "name": "building", - "lines": [ - { "speaker": "aether:edison#idle", "text": "edison.greet.building1" }, - { "speaker": "aether:edison#idle", "text": "edison.greet.building2" } - ], - "buttons": [ - { "label": "edison.greet.option.valkyries", "actions": [ { "type": "navigate", "target": "valkyries" } ] }, - { "label": "edison.greet.option.world", "actions": [ { "type": "navigate", "target": "world" } ] } - ] - }, - { - "name": "world", - "lines": [ - { "speaker": "aether:edison#idle", "text": "edison.greet.world1" }, - { "speaker": "aether:edison#idle", "text": "edison.greet.world2" } - ], - "buttons": [ - { "label": "edison.greet.option.valkyries", "actions": [ { "type": "navigate", "target": "valkyries" } ] }, - { "label": "edison.greet.option.building", "actions": [ { "type": "navigate", "target": "building" } ] } - ] - }, - { - "name": "valkyries", - "lines": [ - { "speaker": "aether:edison#idle", "text": "edison.greet.valkyries1" }, - { "speaker": "aether:edison#idle", "text": "edison.greet.valkyries2" }, - { "speaker": "aether:edison#idle", "text": "edison.greet.valkyries3" }, - { "speaker": "aether:edison#idle", "text": "edison.greet.valkyries4" } - ], - "buttons": [ - { "label": "edison.greet.option.who", "actions": [ { "type": "navigate", "target": "who" } ] }, - { "label": "edison.greet.option.okay_goodbye", "actions": [ { "type": "exit" } ] } - ] - } - ] -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/dialog/josediya/outpost_greet.json b/src/main/resources/assets/aether/dialog/josediya/outpost_greet.json deleted file mode 100644 index aa816fbbfc..0000000000 --- a/src/main/resources/assets/aether/dialog/josediya/outpost_greet.json +++ /dev/null @@ -1,185 +0,0 @@ -{ - "nodes": [ - { - "name": "start_not_introduced", - "lines": [ - { "speaker": "aether:josediya#default", "text": "josediya.greet.start_not_introduced" } - ], - "buttons": [ - { - "orConditions": [ { "type": "returningToOutpost", "validate": "true" }, { "type": "hasSleptInBed", "validate": "true" } ], - "label": "josediya.greet.option.travel", - "actions": [ { "type": "navigate", "target": "travel" } ] - }, - { "label": "josediya.greet.option.services", "actions": [ { "type": "navigate", "target": "services" } ] }, - { "label": "josediya.greet.option.what", "actions": [ { "type": "navigate", "target": "what" } ] }, - { "label": "josediya.greet.option.who", "actions": [ { "type": "navigate", "target": "who" } ] }, - { "label": "josediya.greet.option.winged_beast", "actions": [ { "type": "navigate", "target": "winged_beast" } ] }, - { "label": "generic.goodbye", "actions": [ { "type": "exit" } ] } - ] - }, - { - "name": "start", - "lines": [ - { "speaker": "aether:josediya#default", "text": "josediya.greet.start" } - ], - "buttons": [ - { - "orConditions": [ { "type": "returningToOutpost", "validate": "true" }, { "type": "hasSleptInBed", "validate": "true" } ], - "label": "josediya.greet.option.travel", - "actions": [ { "type": "navigate", "target": "travel" } ] - }, - { "label": "josediya.greet.option.services", "actions": [ { "type": "navigate", "target": "services" } ] }, - { "label": "josediya.greet.option.what", "actions": [ { "type": "navigate", "target": "what" } ] }, - { "label": "josediya.greet.option.who", "actions": [ { "type": "navigate", "target": "who" } ] }, - { "label": "josediya.greet.option.winged_beast", "actions": [ { "type": "navigate", "target": "winged_beast" } ] }, - { "label": "generic.goodbye", "actions": [ { "type": "exit" } ] } - ] - }, - { - "name": "travel", - "lines": [ - { "speaker": "aether:josediya#default", "text": "josediya.greet.travel" } - ], - "buttons": [ - { - "conditions": [ { "type": "returningToOutpost", "validate": "true" } ], - "label": "josediya.greet.option.travel_from", - "actions": [ { "type": "travelToLastOutpost" } ] - }, - { - "conditions": [ { "type": "hasSleptInBed", "validate": "true" } ], - "label": "josediya.greet.option.travel_to", - "actions": [ { "type": "travelToBed" } ] - }, - { "label": "generic.back", "actions": [ { "type": "back" } ] } - ] - }, - { - "name": "what", - "lines": [ - { "speaker": "aether:josediya#default", "text": "josediya.greet.what" } - ], - "buttons": [ - { "label": "josediya.greet.option.where", "actions": [ { "type": "navigate", "target": "where" } ] }, - { "label": "generic.back", "actions": [ { "type": "back" } ] } - ] - }, - { - "name": "where", - "lines": [ - { "speaker": "aether:josediya#default", "text": "josediya.greet.where" } - ], - "buttons": [ - { "label": "josediya.greet.option.take_me", "actions": [ { "type": "navigate", "target": "take_me" } ] }, - { "label": "generic.back", "actions": [ { "type": "navigate_start" } ] } - ] - }, - { - "name": "take_me", - "lines": [ - { "speaker": "aether:josediya#default", "text": "josediya.greet.take_me" } - ], - "end_actions": [ - { "type": "navigate_start" } - ] - }, - { - "name": "winged_beast", - "lines": [ - { "speaker": "aether:josediya#default", "text": "josediya.greet.winged_beast" } - ], - "buttons": [ - { "label": "josediya.greet.option.fly", "actions": [ { "type": "navigate", "target": "fly" } ] }, - { "label": "generic.back", "actions": [ { "type": "back" } ] } - ] - }, - { - "name": "fly", - "lines": [ - { "speaker": "aether:josediya#default", "text": "josediya.greet.fly" } - ], - "buttons": [ - { "label": "josediya.greet.option.moa", "actions": [ { "type": "navigate", "target": "moa" } ] }, - { "label": "generic.back", "actions": [ { "type": "navigate_start" } ] } - ] - }, - { - "name": "moa", - "lines": [ - { "speaker": "aether:josediya#default", "text": "josediya.greet.moa" } - ], - "end_actions": [ - { "type": "navigate_start" } - ] - }, - { - "name": "who", - "lines": [ - { "speaker": "aether:josediya#default", "text": "josediya.greet.who" } - ], - "buttons": [ - { "label": "josediya.greet.option.friends", "actions": [ { "type": "navigate", "target": "friends" } ] }, - { "label": "generic.back", "actions": [ { "type": "back" } ] } - ] - }, - { - "name": "friends", - "lines": [ - { "speaker": "aether:josediya#default", "text": "josediya.greet.friends" } - ], - "buttons": [ - { "label": "josediya.greet.option.paying", "actions": [ { "type": "navigate", "target": "paying" } ] }, - { "label": "generic.back", "actions": [ { "type": "navigate_start" } ] } - ] - }, - { - "name": "paying", - "lines": [ - { "speaker": "aether:josediya#default", "text": "josediya.greet.paying" } - ], - "buttons": [ - { "label": "josediya.greet.option.white_gold", "actions": [ { "type": "navigate", "target": "white_gold" } ] }, - { "label": "generic.back", "actions": [ { "type": "navigate_start" } ] } - ] - }, - { - "name": "white_gold", - "lines": [ - { "speaker": "aether:josediya#default", "text": "josediya.greet.white_gold" } - ], - "end_actions": [ - { "type": "navigate_start" } - ] - }, - { - "name": "services", - "lines": [ - { "speaker": "aether:josediya#default", "text": "josediya.greet.services" } - ], - "buttons": [ - { "label": "josediya.greet.option.home", "actions": [ { "type": "navigate", "target": "home" } ] }, - { "label": "josediya.greet.option.walk_home", "actions": [ { "type": "navigate", "target": "walk_home" } ] }, - { "label": "generic.back", "actions": [ { "type": "navigate_start" } ] } - ] - }, - { - "name": "home", - "lines": [ - { "speaker": "aether:josediya#default", "text": "josediya.greet.home" } - ], - "end_actions": [ - { "type": "back" } - ] - }, - { - "name": "walk_home", - "lines": [ - { "speaker": "aether:josediya#default", "text": "josediya.greet.walk_home" } - ], - "end_actions": [ - { "type": "back" } - ] - } - ] -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/dialog/mysterious_figure/start.json b/src/main/resources/assets/aether/dialog/mysterious_figure/start.json deleted file mode 100644 index 81e30438bb..0000000000 --- a/src/main/resources/assets/aether/dialog/mysterious_figure/start.json +++ /dev/null @@ -1,37 +0,0 @@ -{ - "nodes": [ - { - "name": "start", - "lines": [ - { "speaker": "aether:mysterious_figure", "text": "mysterious_figure.greet.start" } - ], - "buttons": [ - { "label": "mysterious_figure.greet.option.who_are_you", "actions": [ { "type": "navigate", "target": "who_are_you" } ] }, - { "label": "mysterious_figure.greet.option.why_plumproots", "actions": [ { "type": "navigate", "target": "why_plumproots" } ] }, - { "label": "mysterious_figure.greet.option.sale", "actions": [ { "type": "navigate", "target": "sale" } ] }, - { "label": "generic.goodbye", "actions": [ { "type": "exit" } ] } - ] - }, - { - "name": "who_are_you", - "lines": [ - { "speaker": "aether:mysterious_figure", "text": "mysterious_figure.greet.who_are_you" } - ] - }, - { - "name": "why_plumproots", - "lines": [ - { "speaker": "aether:mysterious_figure", "text": "mysterious_figure.greet.why_plumproots" } - ] - }, - { - "name": "sale", - "lines": [ - { "speaker": "aether:mysterious_figure", "text": "mysterious_figure.greet.sale" } - ], - "end_actions": [ - { "type": "openShop", "shopIndex": 0 } - ] - } - ] -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/dialog/necromancer/start.json b/src/main/resources/assets/aether/dialog/necromancer/start.json deleted file mode 100644 index 257a940000..0000000000 --- a/src/main/resources/assets/aether/dialog/necromancer/start.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "nodes": [ - { - "name": "#start", - "lines": [ - { "speaker": "aether:necromancer", "text": "necromancer.them.start1" }, - { "speaker": "aether:necromancer", "text": "necromancer.them.start2" }, - { "speaker": "aether:necromancer", "text": "necromancer.them.start3" }, - { "speaker": "aether:necromancer", "text": "necromancer.them.start4" }, - { "speaker": "aether:necromancer", "text": "necromancer.them.start5" } - ], - "buttons": [ - { - "label": "necromancer.us.leadtheway", "actions": [ - { "type": "exit" } - ] - } - ] - } - ] -} diff --git a/src/main/resources/assets/aether/dialog/speakers/edison.json b/src/main/resources/assets/aether/dialog/speakers/edison.json deleted file mode 100644 index 7ba65db1bd..0000000000 --- a/src/main/resources/assets/aether/dialog/speakers/edison.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "name": "entity.aether.edison.name", - "slides": { - "default": { - "render": "static", - "data": { "resource": "aether:textures/dialog/edison/edison_neutral.png", "scale": "1.6", "width": "110", "height": "98" } - }, - "idle": { - "render": "static", - "data": { "resource": "aether:textures/dialog/edison/edison_neutral.png", "scale": "1.6", "width": "110", "height": "98" } - }, - "displeased": { - "render": "static", - "data": { "resource": "aether:textures/dialog/edison/edison_displeased.png", "scale": "1.6", "width": "110", "height": "98" } - }, - "grin": { "render": "static", "data": { "resource": "aether:textures/dialog/edison/edison_grin.png", "scale": "1.6", "width": "110", "height": "98" } }, - "sigh": { "render": "static", "data": { "resource": "aether:textures/dialog/edison/edison_sigh.png", "scale": "1.6", "width": "110", "height": "98" } }, - "thought": { - "render": "static", - "data": { "resource": "aether:textures/dialog/edison/edison_thought.png", "scale": "1.6", "width": "110", "height": "98" } - } - } -} diff --git a/src/main/resources/assets/aether/dialog/speakers/josediya.json b/src/main/resources/assets/aether/dialog/speakers/josediya.json deleted file mode 100644 index 75a506b0d8..0000000000 --- a/src/main/resources/assets/aether/dialog/speakers/josediya.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "name": "entity.aether.josediya.name", - "slides": { - "default": { - "render": "static", - "data": { "resource": "aether:textures/dialog/josediya/josediya_neutral.png", "scale": "1.6", "width": "82", "height": "96" } - }, - "idle": { - "render": "static", - "data": { "resource": "aether:textures/dialog/josediya/josediya_neutral.png", "scale": "1.6", "width": "82", "height": "96" } - }, - "displeased": { - "render": "static", - "data": { "resource": "aether:textures/dialog/josediya/josediya_displeased.png", "scale": "1.6", "width": "82", "height": "96" } - }, - "grin": { - "render": "static", - "data": { "resource": "aether:textures/dialog/josediya/josediya_grin.png", "scale": "1.6", "width": "82", "height": "96" } - }, - "sigh": { - "render": "static", - "data": { "resource": "aether:textures/dialog/josediya/josediya_sigh.png", "scale": "1.6", "width": "82", "height": "96" } - }, - "thought": { - "render": "static", - "data": { "resource": "aether:textures/dialog/josediya/josediya_thought.png", "scale": "1.6", "width": "82", "height": "96" } - } - } -} diff --git a/src/main/resources/assets/aether/dialog/speakers/mysterious_figure.json b/src/main/resources/assets/aether/dialog/speakers/mysterious_figure.json deleted file mode 100644 index c8358bde7b..0000000000 --- a/src/main/resources/assets/aether/dialog/speakers/mysterious_figure.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "name": "entity.aether.mysterious_figure.name", - "slides": { - "default": { - "render": "static", - "data": { "resource": "aether:textures/dialog/mysterious_figure/mysterious_figure_neutral.png", "scale": "1.6", "width": "110", "height": "98" } - } - } -} diff --git a/src/main/resources/assets/aether/dialog/speakers/necromancer.json b/src/main/resources/assets/aether/dialog/speakers/necromancer.json deleted file mode 100644 index 8761d26ff4..0000000000 --- a/src/main/resources/assets/aether/dialog/speakers/necromancer.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "name": "entity.aether.necromancer.name", - "slides": { - "default": { - "render": "static", - "data": { "resource": "aether:textures/dialog/necromancer/necromancer_neutral.png", "scale": "1.6", "width": "137", "height": "114" } - } - } -} diff --git a/src/main/resources/assets/aether/full-logo.png b/src/main/resources/assets/aether/full-logo.png deleted file mode 100644 index 0b89264ed8..0000000000 Binary files a/src/main/resources/assets/aether/full-logo.png and /dev/null differ diff --git a/src/main/resources/assets/aether/lang/en_US.lang b/src/main/resources/assets/aether/lang/en_US.lang deleted file mode 100644 index 7a0c10e994..0000000000 --- a/src/main/resources/assets/aether/lang/en_US.lang +++ /dev/null @@ -1,1402 +0,0 @@ -# Aether Blocks -tile.aether.aether_dirt.dirt.name=Aether Dirt -tile.aether.aether_dirt.coarse_dirt.name=Coarse Aether Dirt -tile.aether.aether_grass.normal.name=Highlands Grass -tile.aether.aether_grass.enchanted.name=Enchanted Grass -tile.aether.aether_grass.arctic.name=Arctic Grass -tile.aether.aether_grass.magnetic.name=Magnetic Grass -tile.aether.aether_grass.irradiated.name=Irradiated Grass -tile.aether.holystone.normal.name=Holystone -tile.aether.holystone.mossy.name=Mossy Holystone -tile.aether.holystone.blood_moss.name=Blood Moss Holystone -tile.aether.holystone.irradiated.name=Irradiated Holystone -tile.aether.aercloud.cold.name=Cold Aercloud -tile.aether.aercloud.blue.name=Blue Aercloud -tile.aether.aercloud.green.name=Green Aercloud -tile.aether.aercloud.golden.name=Golden Aercloud -tile.aether.aercloud.storm.name=Storm Aercloud -tile.aether.aercloud.purple.name=Purple Aercloud -tile.aether.skyroot_log.name=Skyroot Wood -tile.aether.dark_skyroot_log.name=Greatroot Wood -tile.aether.light_skyroot_log.name=Wisproot Wood -tile.aether.golden_oak_log.name=Amberoot Wood -tile.aether.ambrosium_ore.name=Ambrosium Ore -tile.aether.zanite_ore.name=Zanite Ore -tile.aether.gravitite_ore.name=Gravitite Ore -tile.aether.arkenium_ore.name=Arkenium Ore -tile.aether.continuum_ore.name=Continuum Ore -tile.aether.blue_skyroot_leaves.name=Blue Skyroot Leaves -tile.aether.green_skyroot_leaves.name=Green Skyroot Leaves -tile.aether.dark_blue_skyroot_leaves.name=Dark Blue Skyroot Leaves -tile.aether.blue_dark_skyroot_leaves.name=Blue Greatroot Leaves -tile.aether.green_dark_skyroot_leaves.name=Green Greatroot Leaves -tile.aether.dark_blue_dark_skyroot_leaves.name=Dark Blue Greatroot Leaves -tile.aether.blue_light_skyroot_leaves.name=Blue Wisproot Leaves -tile.aether.green_light_skyroot_leaves.name=Green Wisproot Leaves -tile.aether.dark_blue_light_skyroot_leaves.name=Dark Blue Wisproot Leaves -tile.aether.amberoot_leaves.name=Amberoot Leaves -tile.aether.mutant_leaves.name=Mutated Leaves -tile.aether.mutant_leaves_decorated.name=Decorated Mutated Leaves -tile.aether.tall_aether_grass.short.name=Short Highlands Grass -tile.aether.tall_aether_grass.normal.name=Highlands Grass -tile.aether.tall_aether_grass.long.name=Long Highlands Grass -tile.aether.quicksoil.name=Quicksoil -tile.aether.ferrosite_sand.name=Ferrosite Sand -tile.aether.aether_crafting_table.name=Skyroot Crafting Table -tile.aether.skyroot_trapdoor.name=Skyroot Trapdoor -tile.aether.secret_skyroot_trapdoor.name=Secret Skyroot Trapdoor -tile.aether.skyroot_ladder.name=Skyroot Ladder -tile.aether.skyroot_pressure_plate.name=Skyroot Pressure Plate -tile.aether.wisproot_pressure_plate.name=Wisproot Pressure Plate -tile.aether.greatroot_pressure_plate.name=Greatroot Pressure Plate -tile.aether.skyroot_button.name=Skyroot Button -tile.aether.wisproot_button.name=Wisproot Button -tile.aether.greatroot_button.name=Greatroot Button -tile.aether.holystone_pressure_plate.name=Holystone Pressure Plate -tile.aether.holystone_button.name=Holystone Button -tile.aether.blueberry_bush.ripe.name=Blueberry Bush -tile.aether.blueberry_bush.stem.name=Blueberry Bush Stem -tile.aether.enchanted_blueberry_bush.ripe.name=Enchanted Blueberry Bush -tile.aether.enchanted_blueberry_bush.stem.name=Enchanted Blueberry Bush Stem -tile.aether.orange_tree.name=Orange Tree -tile.aether.aether_flower.purple_flower.name=Purple Flower -tile.aether.aether_flower.white_rose.name=White Rose -tile.aether.aether_flower.burstblossom.name=Burstblossom -tile.aether.aether_flower.aechor_sprout.name=Aechor Sprout -tile.aether.altar.name=Altar -tile.aether.icestone_ore.name=Icestone Ore -tile.aether.holystone_quartz_ore.name=Holystone Quartz Ore -tile.aether.icestone_bricks.name=Icestone Bricks -tile.aether.icestone_bricks_decorative.name=Decorative Icestone Bricks -tile.aether.icestone_bricks_decorative.base_bricks.name=Base -tile.aether.icestone_bricks_decorative.base_pillar.name=Base Pillar -tile.aether.icestone_bricks_decorative.keystone.name=Keystone -tile.aether.icestone_bricks_decorative.capstone_bricks.name=Capstone -tile.aether.icestone_bricks_decorative.capstone_pillar.name=Capstone Pillar -tile.aether.icestone_bricks_decorative.flagstones.name=Flagstones -tile.aether.icestone_bricks_decorative.headstone.name=Headstone -tile.aether.icestone_pillar.name=Icestone Brick Pillar -tile.aether.crude_scatterglass.name=Crude Scatterglass -tile.aether.crude_scatterglass_decorative.name=Decorative Crude Scatterglass -tile.aether.crude_scatterglass_decorative.skyroot_frame.name=Skyroot Frame -tile.aether.crude_scatterglass_decorative.arkenium_frame.name=Arkenium Frame -tile.aether.scatterglass.name=Scatterglass -tile.aether.scatterglass_decorative.name=Decorative Scatterglass -tile.aether.scatterglass_decorative.arkenium_frame.name=Arkenium Frame -tile.aether.scatterglass_decorative.skyroot_frame.name=Skyroot Frame -tile.aether.quicksoil_glass.name=Quicksoil Glass -tile.aether.quicksoil_glass_decorative.name=Decorative Quicksoil Glass -tile.aether.quicksoil_glass_decorative.arkenium_frame.name=Arkenium Frame -tile.aether.quicksoil_glass_decorative.skyroot_frame.name=Skyroot Frame -tile.aether.zanite_block.name=Block of Zanite -tile.aether.skyroot_sapling.blue_skyroot.name=Blue Skyroot Sapling -tile.aether.skyroot_sapling.green_skyroot.name=Green Skyroot Sapling -tile.aether.skyroot_sapling.dark_blue_skyroot.name=Dark Blue Skyroot Sapling -tile.aether.unique_sapling.amberoot.name=Amberoot Sapling -tile.aether.unique_sapling.mutant_tree.name=Eddy's Crazy Mutant Tree Sapling -tile.aether.wisproot_sapling.wisproot_green.name=Green Wisproot Sapling -tile.aether.wisproot_sapling.wisproot_blue.name=Blue Wisproot Sapling -tile.aether.wisproot_sapling.wisproot_dark_blue.name=Dark Blue Wisproot Sapling -tile.aether.greatroot_sapling.green_greatroot.name=Green Greatroot Sapling -tile.aether.greatroot_sapling.blue_greatroot.name=Blue Greatroot Sapling -tile.aether.greatroot_sapling.dark_blue_greatroot.name=Dark Blue Greatroot Sapling -tile.aether.carved_stone.normal.name=Carved Stone -tile.aether.carved_stone.divine.name=Divine Carved Stone -tile.aether.sentry_stone.normal.name=Sentry Stone -tile.aether.sentry_stone.divine.name=Divine Sentry Stone -tile.aether.gravitite_block.name=Block of Gravitite -tile.aether.holystone_furnace.name=Holystone Furnace -tile.aether.skyroot_chest.name=Skyroot Chest -tile.aether.ambrosium_torch.name=Ambrosium Torch -tile.aether.skyroot_fence.name=Skyroot Fence -tile.aether.skyroot_fence_gate.name=Skyroot Fence Gate -tile.aether.wisproot_fence.name=Wisproot Fence -tile.aether.wisproot_fence_gate.name=Wisproot Fence Gate -tile.aether.greatroot_fence.name=Greatroot Fence -tile.aether.greatroot_fence_gate.name=Greatroot Fence Gate -tile.aether.therawood_fence.name=Therawood Fence -tile.aether.therawood_fence_gate.name=Therawood Fence Gate -tile.aether.holystone_wall.name=Holystone Wall -tile.aether.mossy_holystone_wall.name=Mossy Holystone Wall -tile.aether.carved_stone_wall.name=Carved Stone Wall -tile.aether.icestone_wall.name=Icestone Brick Wall -tile.aether.skyroot_log_wall.name=Skyroot Wood Wall -tile.aether.scatterglass_wall.name=Scatterglass Wall -tile.aether.holystone_brick_wall.name=Holystone Brick Wall -tile.aether.sentry_stone_wall.name=Sentry Stone Wall -tile.aether.divine_sentry_wall.name=Divine Sentry Stone Wall -tile.aether.divine_stone_wall.name=Divine Stone Wall -tile.aether.wisproot_log_wall.name=Wisproot Wood Wall -tile.aether.greatroot_log_wall.name=Greatroot Wood Wall -tile.aether.therawood_log_wall.name=Therawood Log Wall -tile.aether.agiosite_wall.name=Agiosite Wall -tile.aether.agiosite_brick_wall.name=Agiosite Brick Wall -tile.aether.faded_holystone_brick_wall.name=Faded Holystone Brick Wall -tile.aether.sentrystone_brick_wall.name=Sentrystone Brick Wall -tile.aether.hellfirestone_brick_wall.name=Hellfirestone Brick Wall -tile.aether.therastone_brick_wall.name=Therastone Brick Wall -tile.aether.labyrinth_totem.name=Labyrinth Totem -tile.aether.labyrinth_capstone.name=Labyrinth Capstone -tile.aether.labyrinth_glowing_pillar.name=Glowing Labyrinth Pillar -tile.aether.labyrinth_pillar.name=Labyrinth Pillar -tile.aether.labyrinth_wall.name=Labyrinth Wall -tile.aether.labyrinth_lightstone.name=Labyrinth Lightstone -tile.aether.labyrinth_base.name=Labyrinth Base -tile.aether.labyrinth_headstone.name=Labyrinth Headstone -tile.aether.labyrinth_eye.name=Labyrinth Eye -tile.aether.labyrinth_chest.name=Labyrinth Chest -tile.aether.skyroot_slab.name=Skyroot Slab -tile.aether.wisproot_slab.name=Wisproot Slab -tile.aether.greatroot_slab.name=Greatroot Slab -tile.aether.therawood_slab.name=Therawood Slab -tile.aether.holystone_slab.name=Holystone Slab -tile.aether.holystone_brick_slab.name=Holystone Brick Slab -tile.aether.therastone_brick_slab.name=Therastone Brick Slab -tile.aether.carved_stone_slab.name=Carved Stone Slab -tile.aether.divine_carved_stone_slab.name=Divine Carved Stone Slab -tile.aether.sentry_stone_slab.name=Sentry Stone Slab -tile.aether.divine_sentry_stone_slab.name=Divine Sentry Stone Slab -tile.aether.icestone_slab.name=Icestone Brick Slab -tile.aether.mossy_holystone_slab.name=Mossy Holystone Slab -tile.aether.faded_holystone_brick_slab.name=Faded Holystone Brick Slab -tile.aether.agiosite_slab.name=Agiosite Slab -tile.aether.agiosite_brick_slab.name=Agiosite Brick Slab -tile.aether.scatterglass_slab.name=Scatterglass Slab -tile.aether.sentrystone_brick_slab.name=Sentrystone Brick Slab -tile.aether.hellfirestone_brick_slab.name=Hellfirestone Brick Slab -tile.aether.labyrinth_capstone_slab.name=Labyrinth Capstone Slab -tile.aether.labyrinth_wall_slab.name=Labyrinth Wall Slab -tile.aether.labyrinth_strongblock.name=Labyrinth Strongblock -tile.aether.skyroot_stairs.name=Skyroot Stairs -tile.aether.wisproot_stairs.name=Wisproot Stairs -tile.aether.greatroot_stairs.name=Greatroot Stairs -tile.aether.therawood_stairs.name=Therawood Stairs -tile.aether.holystone_stairs.name=Holystone Stairs -tile.aether.mossy_holystone_stairs.name=Mossy Holystone Stairs -tile.aether.holystone_brick_stairs.name=Holystone Brick Stairs -tile.aether.therastone_brick_stairs.name=Therastone Brick Stairs -tile.aether.sentry_stone_stairs.name=Sentry Stone Stairs -tile.aether.divine_sentry_stone_stairs.name=Divine Sentry Stone Stairs -tile.aether.carved_stone_stairs.name=Carved Stone Stairs -tile.aether.divine_carved_stone_stairs.name=Divine Carved Stone Stairs -tile.aether.cloudwool_block.name=Cloudwool -tile.aether.woven_sticks.skyroot.name=Woven Skyroot Sticks -tile.aether.moa_egg.name=Moa Egg -tile.aether.icestone_brick_stairs.name=Icestone Brick Stairs -tile.aether.scatterglass_stairs.name=Scatterglass Stairs -tile.aether.faded_holystone_brick_stairs.name=Faded Holystone Brick Stairs -tile.aether.agiosite_stairs.name=Agiosite Stairs -tile.aether.agiosite_brick_stairs.name=Agiosite Brick Stairs -tile.aether.sentrystone_brick_stairs.name=Sentrystone Brick Stairs -tile.aether.hellfirestone_brick_stairs.name=Hellfirestone Brick Stairs -tile.aether.burstblossom.name=Burstblossom -tile.aether.moonlit_bloom.name=Moonlit Bloom -tile.aether.icestone_cooler.name=Icestone Cooler -tile.aether.incubator.name=Incubator -tile.aether.present.name=Present -tile.aether.labyrinth_container.small.name=Small Labyrinth Container -tile.aether.labyrinth_container.large.name=Large Labyrinth Container -tile.aether.unstable_labyrinth_capstone.name=Unstable Labyrinth Capstone -tile.aether.wildcard.name=Wildcard -tile.aether.masonry_bench.name=Masonry Bench -tile.aether.holystone_brick.name=Holystone Bricks -tile.aether.holystone_brick_decorative.name=Decorative Holystone Bricks -tile.aether.holystone_brick_decorative.base_bricks.name=Base Bricks -tile.aether.holystone_brick_decorative.base_pillar.name=Base Pillar -tile.aether.holystone_brick_decorative.keystone.name=Keystone -tile.aether.holystone_brick_decorative.capstone_bricks.name=Capstone Bricks -tile.aether.holystone_brick_decorative.capstone_pillar.name=Capstone Pillar -tile.aether.holystone_brick_decorative.flagstones.name=Flagstones -tile.aether.holystone_brick_decorative.headstone.name=Headstone -tile.aether.holystone_pillar.name=Holystone Brick Pillar -tile.aether.sentrystone_brick.name=Sentrystone Bricks -tile.aether.sentrystone_brick_decorative.name=Decorative Sentrystone Bricks -tile.aether.sentrystone_brick_decorative.base_bricks.name=Base Bricks -tile.aether.sentrystone_brick_decorative.base_pillar.name=Base Pillar -tile.aether.sentrystone_brick_decorative.keystone.name=Keystone -tile.aether.sentrystone_brick_decorative.capstone_bricks.name=Capstone Bricks -tile.aether.sentrystone_brick_decorative.capstone_pillar.name=Capstone Pillar -tile.aether.sentrystone_brick_decorative.flagstones.name=Flagstones -tile.aether.sentrystone_brick_decorative.lightstone.name=Lightstone -tile.aether.sentrystone_pillar.name=Sentrystone Brick Pillar -tile.aether.sentrystone_brick_decorative_lit.name=Decorative Sentrystone Bricks Lit -tile.aether.sentrystone_brick_decorative_lit.base_bricks.name=Base Bricks Lit -tile.aether.sentrystone_brick_decorative_lit.base_pillar.name=Base Pillar Lit -tile.aether.sentrystone_brick_decorative_lit.keystone.name=Keystone Lit -tile.aether.sentrystone_brick_decorative_lit.capstone_bricks.name=Capstone Bricks Lit -tile.aether.sentrystone_brick_decorative_lit.capstone_pillar.name=Capstone Pillar Lit -tile.aether.sentrystone_brick_decorative_lit.lightstone.name=Lightstone Lit -tile.aether.sentrystone_pillar_lit.name=Sentrystone Brick Pillar Lit -tile.aether.hellfirestone_brick.name=Hellfirestone Bricks -tile.aether.hellfirestone_brick_decorative.name=Decorative Hellfirestone Bricks -tile.aether.hellfirestone_brick_decorative.base_bricks.name=Base Bricks -tile.aether.hellfirestone_brick_decorative.base_pillar.name=Base Pillar -tile.aether.hellfirestone_brick_decorative.keystone.name=Keystone -tile.aether.hellfirestone_brick_decorative.capstone_bricks.name=Capstone Bricks -tile.aether.hellfirestone_brick_decorative.capstone_pillar.name=Capstone Pillar -tile.aether.hellfirestone_brick_decorative.flagstones.name=Flagstones -tile.aether.hellfirestone_lantern.name=Hellfirestone Lantern -tile.aether.hellfirestone_pillar.name=Hellfirestone Brick Pillar -tile.aether.faded_holystone_brick.name=Faded Holystone Bricks -tile.aether.faded_holystone_brick_decorative.name=Decorative Faded Holystone Bricks -tile.aether.faded_holystone_brick_decorative.base_bricks.name=Base Bricks -tile.aether.faded_holystone_brick_decorative.base_pillar.name=Base Pillar -tile.aether.faded_holystone_brick_decorative.keystone.name=Keystone -tile.aether.faded_holystone_brick_decorative.capstone_bricks.name=Capstone Bricks -tile.aether.faded_holystone_brick_decorative.capstone_pillar.name=Capstone Pillar -tile.aether.faded_holystone_brick_decorative.flagstones.name=Flagstones -tile.aether.faded_holystone_brick_decorative.headstone.name=Headstone -tile.aether.faded_holystone_pillar.name=Faded Holystone Brick Pillar -tile.aether.therastone_brick.name=Therastone Bricks -tile.aether.therastone_brick_decorative.name=Decorative Therastone Bricks -tile.aether.therastone_brick_decorative.base_bricks.name=Base Bricks -tile.aether.therastone_brick_decorative.base_pillar.name=Base Pillar -tile.aether.therastone_brick_decorative.keystone.name=Keystone -tile.aether.therastone_brick_decorative.capstone_bricks.name=Capstone Bricks -tile.aether.therastone_brick_decorative.capstone_pillar.name=Capstone Pillar -tile.aether.therastone_brick_decorative.flagstones.name=Flagstones -tile.aether.therastone_brick_decorative.headstone.name=Headstone -tile.aether.therastone_pillar.name=Therastone Pillar -tile.aether.agiosite.name=Agiosite -tile.aether.agiosite_brick.name=Agiosite Bricks -tile.aether.agiosite_brick_decorative.name=Decorative Agiosite Bricks -tile.aether.agiosite_brick_decorative.base_bricks.name=Base Bricks -tile.aether.agiosite_brick_decorative.base_pillar.name=Base Pillar -tile.aether.agiosite_brick_decorative.keystone.name=Keystone -tile.aether.agiosite_brick_decorative.capstone_bricks.name=Capstone Bricks -tile.aether.agiosite_brick_decorative.capstone_pillar.name=Capstone Pillar -tile.aether.agiosite_brick_decorative.flagstones.name=Flagstones -tile.aether.agiosite_pillar.name=Agiosite Brick Pillar -tile.aether.therawood_planks.name=Therawood Planks -tile.aether.therawood_decorative.name=Decorative Therawood -tile.aether.therawood_decorative.base_planks.name=Base Planks -tile.aether.therawood_decorative.base_beam.name=Base Beam -tile.aether.therawood_decorative.highlight.name=Highlight -tile.aether.therawood_decorative.top_planks.name=Top Planks -tile.aether.therawood_decorative.top_beam.name=Top Beam -tile.aether.therawood_decorative.floorboards.name=Floorboards -tile.aether.therawood_beam.name=Therawood Beam -tile.aether.therawood_log.name=Therawood Log -tile.aether.therawood_leaves.name=Therawood Leaves -tile.aether.skyroot_planks.name=Skyroot Planks -tile.aether.skyroot_decorative.name=Decorative Skyroot Planks -tile.aether.skyroot_decorative.base_planks.name=Base Planks -tile.aether.skyroot_decorative.base_beam.name=Base Beam -tile.aether.skyroot_decorative.highlight.name=Highlight -tile.aether.skyroot_decorative.top_planks.name=Top Planks -tile.aether.skyroot_decorative.top_beam.name=Top Beam -tile.aether.skyroot_decorative.floorboards.name=Floorboards -tile.aether.skyroot_decorative.tiles.name=Tiles -tile.aether.skyroot_decorative.tiles_small.name=Small Tiles -tile.aether.skyroot_beam.name=Skyroot Beam -tile.aether.dark_skyroot_planks.name=Greatroot Planks -tile.aether.dark_skyroot_decorative.name=Decorative Greatroot Planks -tile.aether.dark_skyroot_decorative.base_planks.name=Base Planks -tile.aether.dark_skyroot_decorative.base_beam.name=Base Beam -tile.aether.dark_skyroot_decorative.highlight.name=Highlight -tile.aether.dark_skyroot_decorative.top_planks.name=Top Planks -tile.aether.dark_skyroot_decorative.top_beam.name=Top Beam -tile.aether.dark_skyroot_decorative.floorboards.name=Floorboards -tile.aether.dark_skyroot_decorative.tiles.name=Tiles -tile.aether.dark_skyroot_decorative.tiles_small.name=Small Tiles -tile.aether.dark_skyroot_beam.name=Greatroot Beam -tile.aether.light_skyroot_planks.name=Wisproot Planks -tile.aether.light_skyroot_decorative.name=Decorative Wisproot Planks -tile.aether.light_skyroot_decorative.base_planks.name=Base Planks -tile.aether.light_skyroot_decorative.base_beam.name=Base Beam -tile.aether.light_skyroot_decorative.highlight.name=Highlight -tile.aether.light_skyroot_decorative.top_planks.name=Top Planks -tile.aether.light_skyroot_decorative.top_beam.name=Top Beam -tile.aether.light_skyroot_decorative.floorboards.name=Floorboards -tile.aether.light_skyroot_decorative.tiles.name=Tiles -tile.aether.light_skyroot_decorative.tiles_small.name=Small Tiles -tile.aether.light_skyroot_beam.name=Wisproot Beam -tile.aether.quicksoil_glass_pane.name=Quicksoil Glass Pane -tile.aether.quicksoil_glass_pane_decorative.name=Decorative Quicksoil Glass Pane -tile.aether.quicksoil_glass_pane_decorative.arkenium_frame.name=Arkenium Frame -tile.aether.quicksoil_glass_pane_decorative.skyroot_frame.name=Skyroot Frame -tile.aether.arkenium_frame.name=Arkenium Frame -tile.aether.skyroot_frame.name=Skyroot Frame -tile.aether.scatterglass_pane.name=Scatterglass Pane -tile.aether.scatterglass_pane_decorative.name=Decorative Scatterglass Pane -tile.aether.scatterglass_pane_decorative.arkenium_frame.name=Arkenium Frame -tile.aether.scatterglass_pane_decorative.skyroot_frame.name=Skyroot Frame -tile.aether.skyroot_twigs.name=Skyroot Twigs -tile.aether.holystone_rock.name=Holystone Rock -tile.aether.crude_scatterglass_pane.name=Crude Scatterglass Pane -tile.aether.crude_scatterglass_pane_decorative.name=Decorative Crude Scatterglass Pane -tile.aether.crude_scatterglass_pane_decorative.arkenium_frame.name=Arkenium Frame -tile.aether.crude_scatterglass_pane_decorative.skyroot_frame.name=Skyroot Frame -tile.aether.cloudwool_carpet.name=Cloudwool Carpet -tile.aether.skyroot_bookshelf.name=Skyroot Bookshelf -tile.aether.holystone_bookshelf.name=Holystone Bookshelf -tile.aether.outpost_campfire.name=Outpost Campfire -tile.aether.valkyrie_grass.sprout.name=Valkyrie Grass Sprout -tile.aether.valkyrie_grass.full.name=Valkyrie Grass -tile.aether.aether_teleporter.name=Aether Portal -tile.aether.thera_dirt.dirt.name=Thera Dirt -tile.aether.thera_grass.normal.name=Thera Grass -tile.aether.ferrosite.name=Ferrosite -tile.aether.rusted_ferrosite.name=Rusted Ferrosite -tile.aether.highlands_snow.name=Highlands Snow -tile.aether.highlands_snow_layer.name=Highlands Snow -tile.aether.highlands_ice.name=Highlands Ice -tile.aether.highlands_packed_ice.name=Highlands Packed Ice -tile.aether.plumproot.name=Plumproot -tile.aether.highlands_ice_crystal.stalagmite.name=Ice Crystal -tile.aether.candy_cane_block.name=Candy Cane Block -tile.aether.candy_cane_wall.name=Candy Cane Wall -tile.aether.arctic_spikespring.name=Arctic Spikespring -tile.aether.barkshroom.name=Barkshroom -tile.aether.blue_swingtip.name=Blue Swingtip -tile.aether.forgotten_rose.name=Forgotten Rose -tile.aether.green_swingtip.name=Green Swingtip -tile.aether.highlands_bush.name=Highlands Bush -tile.aether.highlands_tulips.name=Highlands Tulips -tile.aether.irradiated_flower.name=Irradiated Flower -tile.aether.magnetic_shroom.name=Magnetic Shroom -tile.aether.neverbloom.name=Neverbloom -tile.aether.pink_swingtip.name=Pink Swingtip -tile.aether.quickshoot.name=Quickshoot -tile.aether.stoneshroom.name=Stoneshroom -tile.aether.irradiated_dust_block.name=Irradiated Dust Block -tile.aether.therawood_button.name=Therawood Button -tile.aether.therawood_pressure_plate.name=Therawood Pressure Plate - -# Aether Items -item.aether.skyroot_stick.name=Skyroot Stick -item.aether.cloudtwine.name=Cloudtwine -item.aether.moa_feather.name=Moa Feather -item.aether.cockatrice_feather.name=Cockatrice Feather -item.aether.ambrosium_shard.name=Ambrosium Shard -item.aether.ambrosium_chunk.name=Ambrosium Chunk -item.aether.zanite_gemstone.name=Zanite Gemstone -item.aether.continuum_orb.name=Continuum Orb -item.aether.arkenium.name=Arkenium Plate -item.aether.arkenium_strip.name=Arkenium Strip -item.aether.skyroot_pickaxe.name=Skyroot Pickaxe -item.aether.skyroot_axe.name=Skyroot Axe -item.aether.skyroot_shovel.name=Skyroot Shovel -item.aether.skyroot_sword.name=Skyroot Sword -item.aether.holystone_pickaxe.name=Holystone Pickaxe -item.aether.holystone_axe.name=Holystone Axe -item.aether.holystone_shovel.name=Holystone Shovel -item.aether.holystone_sword.name=Holystone Sword -item.aether.zanite_pickaxe.name=Zanite Pickaxe -item.aether.zanite_axe.name=Zanite Axe -item.aether.zanite_shovel.name=Zanite Shovel -item.aether.zanite_sword.name=Zanite Sword -item.aether.gravitite_pickaxe.name=Gravitite Pickaxe -item.aether.gravitite_axe.name=Gravitite Axe -item.aether.gravitite_sword.name=Gravitite Sword -item.aether.gravitite_shovel.name=Gravitite Shovel -item.aether.arkenium_pickaxe.name=Arkenium Pickaxe -item.aether.arkenium_axe.name=Arkenium Axe -item.aether.arkenium_shovel.name=Arkenium Shovel -item.aether.arkenium_sword.name=Arkenium Sword -item.aether.arkenium_shears.name=Arkenium Shears -item.aether.taegore_hide_helmet.name=Taegore Hide Hood -item.aether.taegore_hide_chestplate.name=Taegore Hide Jacket -item.aether.taegore_hide_leggings.name=Taegore Hide Leggings -item.aether.taegore_hide_boots.name=Taegore Hide Boots -item.aether.burrukai_pelt_helmet.name=Burrukai Pelt Hood -item.aether.burrukai_pelt_chestplate.name=Burrukai Pelt Jacket -item.aether.burrukai_pelt_leggings.name=Burrukai Pelt Leggings -item.aether.burrukai_pelt_boots.name=Burrukai Pelt Boots -item.aether.zanite_helmet.name=Zanite Helmet -item.aether.zanite_chestplate.name=Zanite Chestplate -item.aether.zanite_leggings.name=Zanite Leggings -item.aether.zanite_boots.name=Zanite Boots -item.aether.arkenium_helmet.name=Arkenium Helmet -item.aether.arkenium_chestplate.name=Arkenium Chestplate -item.aether.arkenium_leggings.name=Arkenium Leggings -item.aether.arkenium_boots.name=Arkenium Boots -item.aether.gravitite_helmet.name=Gravitite Helmet -item.aether.gravitite_chestplate.name=Gravitite Chestplate -item.aether.gravitite_leggings.name=Gravitite Leggings -item.aether.gravitite_boots.name=Gravitite Boots -item.aether.golden_amber.name=Golden Amber -item.aether.aechor_petal.name=Aechor Petal -item.aether.blueberries.name=Blueberries -item.aether.enchanted_blueberry.name=Enchanted Blueberry -item.aether.orange.name=Orange -item.aether.wyndberry.name=Wyndberry -item.aether.candy_corn.name=Candy Corn -item.aether.cocoatrice.name=Cocoatrice -item.aether.jelly_plumproot.name=Jelly Plumproot -item.aether.stomper_pop.name=Stomper Pop -item.aether.blueberry_lollipop.name=Blueberry Lollipop -item.aether.orange_lollipop.name=Orange Lollipop -item.aether.icestone_poprocks.name=Icestone Poprocks -item.aether.ginger_bread_man.name=Gingerbread Man -item.aether.candy_cane.name=Candy Cane -item.aether.yule_log.name=Yule Log -item.aether.wrapped_chocolates.name=Wrapped Chocolates -item.aether.enchanted_wyndberry.name=Enchanted Wyndberry -item.aether.swet_jelly.blue.name=Blue Swet Jelly -item.aether.swet_jelly.green.name=Green Swet Jelly -item.aether.swet_jelly.purple.name=Purple Swet Jelly -item.aether.swet_gel.blue.name=Blue Swet Gel -item.aether.swet_gel.green.name=Green Swet Gel -item.aether.swet_gel.purple.name=Purple Swet Gel -item.aether.swet_sugar.name=Swet Sugar -item.aether.skyroot_bucket.name=Skyroot Bucket -item.aether.skyroot_water_bucket.name=Skyroot Water Bucket -item.aether.skyroot_milk_bucket.name=Skyroot Milk Bucket -item.aether.skyroot_poison_bucket.name=Skyroot Poison Bucket -item.aether.valkyrie_music_disc.name=Valkyrie Music Disc -item.aether.labyrinth_music_disc.name=Labyrinth Music Disc -item.aether.moa_music_disc.name=Moa Music Disc -item.aether.aerwhale_music_disc.name=Aerwhale Music Disc -item.aether.recording_892.name=Recording #892 -item.aether.healing_stone.name=Healing Stone -item.aether.healing_stone_depleted.name=Depleted Healing Stone -item.aether.dart_shooter.golden.name=Golden Dart Shooter -item.aether.dart_shooter.enchanted.name=Enchanted Dart Shooter -item.aether.dart_shooter.poison.name=Poison Dart Shooter -item.aether.dart.golden.name=Golden Dart -item.aether.dart.enchanted.name=Enchanted Dart -item.aether.dart.poison.name=Poison Dart -item.aether.cloud_parachute.cold.name=Cold Cloud Parachute -item.aether.cloud_parachute.blue.name=Blue Cloud Parachute -item.aether.cloud_parachute.purple.name=Purple Cloud Parachute -item.aether.aether_saddle.name=Moa Saddle -item.aether.skyroot_door_item.name=Skyroot Door -item.aether.secret_skyroot_door_item.name=Secret Skyroot Door -item.aether.arkenium_door_item.name=Arkenium Door -item.aether.taegore_hide_gloves.name=Taegore Hide Gloves -item.aether.burrukai_pelt_gloves.name=Burrukai Pelt Gloves -item.aether.icestone.name=Icestone -item.aether.skyroot_sign.name=Skyroot Sign -item.aether.zanite_gloves.name=Zanite Arm Guards -item.aether.arkenium_gloves.name=Arkenium Gauntlets -item.aether.gravitite_gloves.name=Gravitite Gauntlets -item.aether.shard_of_life.name=Shard of Life -item.aether.skyroot_shield.name=Skyroot Shield -item.aether.holystone_shield.name=Holystone Shield -item.aether.zanite_shield.name=Zanite Shield -item.aether.arkenium_shield.name=Arkenium Shield -item.aether.gravitite_shield.name=Gravitite Shield -item.aether.plumproot_mash.name=Plumproot Mash -item.aether.plumproot_pie.name=Plumproot Pie -item.aether.winter_hat.name=Winter Hat -item.aether.eggnog.name=Eggnog -item.aether.scatterglass_vial.name=Scatterglass Vial -item.aether.water_vial.name=Water Vial -item.aether.antivenom_vial.name=Antivenom Vial -item.aether.antitoxin_vial.name=Antidote Vial -item.aether.bandage.name=Bandage -item.aether.splint.name=Splint -item.aether.crude_scatterglass_shard.name=Scatterglass Shard -item.aether.valkyrie_tea.name=Valkyrie Tea -item.aether.skyroot_pinecone.name=Skyroot Pinecone -item.aether.moa_feed.name=Moa Feed -item.aether.moa_feed_blueberries.name=Blueberry Moa Feed -item.aether.moa_feed_enchanted_blueberries.name=Enchanted Moa Feed -item.aether.brettl_rope.name=Brettl Rope - -item.aether.skyroot_bed_item.name=Skyroot Bed -item.aether.moa_egg_item.name=Moa Egg -item.aether.rainbow_moa_egg.name=Rainbow Moa Egg - -item.aether.cold_cloud_parachute.name=Cold Cloud Parachute -item.aether.purple_cloud_parachute.name=Purple Cloud Parachute -item.aether.blue_cloud_parachute.name=Blue Cloud Parachute - -item.aether.irradiated_chunk.name=Irradiated Chunk -item.aether.irradiated_sword.name=Irradiated Sword -item.aether.irradiated_armor.name=Irradiated Armor -item.aether.irradiated_tool.name=Irradiated Tool -item.aether.irradiated_ring.name=Irradiated Ring -item.aether.irradiated_neckwear.name=Irradiated Neckwear -item.aether.irradiated_charm.name=Irradiated Charm -item.aether.irradiated_dust.name=Irradiated Dust - -item.aether.skyroot_crossbow.name=Skyroot Crossbow -item.aether.holystone_crossbow.name=Holystone Crossbow -item.aether.zanite_crossbow.name=Zanite Crossbow -item.aether.arkenium_crossbow.name=Arkenium Crossbow -item.aether.gravitite_crossbow.name=Gravitite Crossbow -item.aether.bolt.name=Scatterglass Bolt -item.aether.wrapping_paper.name=Wrapping Paper -item.aether.fried_moa_egg.name=Fried Moa Egg -item.aether.aether_spawn_egg.name=Spawn -item.aether.arkenium_ore_item.name=Arkenium Ore -item.aether.gravitite_ore_item.name=Gravitite Ore -item.aether.gravitite_plate.name=Gravitite Plate -item.aether.raw_taegore_meat.name=Taegore Leg -item.aether.taegore_steak.name=Roast Taegore -item.aether.skyroot_lizard_stick.name=Skyroot Lizard on a Stick -item.aether.skyroot_lizard_stick_roasted.name=Roasted Skyroot Lizard on a Stick -item.aether.taegore_hide.name=Taegore Hide -item.aether.burrukai_rib_cut.name=Burrukai Rib Joint -item.aether.burrukai_ribs.name=Burrukai Ribs -item.aether.burrukai_pelt.name=Burrukai Pelt -item.aether.kirrid_loin.name=Kirrid Loin -item.aether.kirrid_cutlet.name=Kirrid Cutlet -item.aether.valkyrie_wings.name=Valkyrie Wings -item.aether.brettl_cane.name=Brettl Cane -item.aether.brettl_grass.name=Brettl Grass -item.aether.wrapping_paper.bow.black.name=Black Bow -item.aether.wrapping_paper.bow.red.name=Red Bow -item.aether.wrapping_paper.bow.green.name=Green Bow -item.aether.wrapping_paper.bow.brown.name=Brown Bow -item.aether.wrapping_paper.bow.blue.name=Blue Bow -item.aether.wrapping_paper.bow.purple.name=Purple Bow -item.aether.wrapping_paper.bow.cyan.name=Cyan Bow -item.aether.wrapping_paper.bow.pink.name=Pink Bow -item.aether.wrapping_paper.bow.lime.name=Lime Bow -item.aether.wrapping_paper.bow.yellow.name=Yellow Bow -item.aether.wrapping_paper.bow.light_blue.name=Light Blue Bow -item.aether.wrapping_paper.bow.magenta.name=Magenta Bow -item.aether.wrapping_paper.bow.orange.name=Orange Bow -item.aether.wrapping_paper.bow.white.name=White Bow -item.aether.wrapping_paper.box.black.name=Black Box -item.aether.wrapping_paper.box.red.name=Red Box -item.aether.wrapping_paper.box.green.name=Green Box -item.aether.wrapping_paper.box.brown.name=Brown Box -item.aether.wrapping_paper.box.blue.name=Blue Box -item.aether.wrapping_paper.box.purple.name=Purple Box -item.aether.wrapping_paper.box.cyan.name=Cyan Box -item.aether.wrapping_paper.box.pink.name=Pink Box -item.aether.wrapping_paper.box.lime.name=Lime Box -item.aether.wrapping_paper.box.yellow.name=Yellow Box -item.aether.wrapping_paper.box.light_blue.name=Light Blue Box -item.aether.wrapping_paper.box.magenta.name=Magenta Box -item.aether.wrapping_paper.box.orange.name=Orange Box -item.aether.wrapping_paper.box.white.name=White Box -item.aether.wrapping_paper.tooltip.craft=Craft with items! -item.aether.present.tooltip.empty=Empty -item.aether.present.tooltip.hasitem=Contains an item inside! - -item.aether.charm_arm_01.name=Armor Charm -item.aether.charm_arm_02.name=Greater Armor Charm -item.aether.charm_arm_tgh_01.name=Toughness Charm -item.aether.charm_arm_tgh_02.name=Greater Toughness Charm -item.aether.charm_imp_dmg_01.name=Impact Charm -item.aether.charm_imp_dmg_02.name=Greater Impact Charm -item.aether.charm_atk_spd_01.name=Attack Speed Charm -item.aether.charm_atk_spd_02.name=Greater Attack Speed Charm -item.aether.charm_kbk_res_01.name=Knockback Resist Charm -item.aether.charm_kbk_res_02.name=Greater Knockback Resist Charm -item.aether.charm_lck_01.name=Luck Charm -item.aether.charm_lck_02.name=Greater Luck Charm -item.aether.charm_max_hlt_01.name=Health Charm -item.aether.charm_max_hlt_02.name=Greater Health Charm -item.aether.charm_mve_spd_01.name=Speed Charm -item.aether.charm_mve_spd_02.name=Greater Speed Charm -item.aether.charm_prc_dmg_01.name=Pierce Charm -item.aether.charm_prc_dmg_02.name=Greater Pierce Charm -item.aether.charm_slsh_dmg_01.name=Slash Charm -item.aether.charm_slsh_dmg_02.name=Greater Slash Charm -item.aether.charm_res_amb_01.name=Ambrosium Poison Resist Charm -item.aether.charm_res_amb_02.name=Greater Ambrosium Poison Resist Charm -item.aether.charm_res_bld_01.name=Bleed Resist Charm -item.aether.charm_res_bld_02.name=Greater Bleed Resist Charm -item.aether.charm_res_fra_01.name=Fracture Resist Charm -item.aether.charm_res_fra_02.name=Greater Fracture Resist Charm -item.aether.charm_res_frz_01.name=Freeze Resist Charm -item.aether.charm_res_frz_02.name=Greater Freeze Resist Charm -item.aether.charm_res_grd_brk_01.name=Guard Break Resist Charm -item.aether.charm_res_grd_brk_02.name=Greater Guard Break Resist Charm -item.aether.charm_res_irr_01.name=Irradiation Resist Charm -item.aether.charm_res_irr_02.name=Greater Irradiation Resist Charm -item.aether.charm_res_stn_01.name=Stun Resist Charm -item.aether.charm_res_stn_02.name=Greater Stun Resist Charm -item.aether.charm_res_tox_01.name=Toxin Resist Charm -item.aether.charm_res_tox_02.name=Greater Toxin Resist Charm -item.aether.charm_res_ven_01.name=Cockatrice Venom Resist Charm -item.aether.charm_res_ven_02.name=Greater Cockatrice Venom Resist Charm -item.aether.charm_res_web_01.name=Webbing Resist Charm -item.aether.charm_res_web_02.name=Greater Webbing Resist Charm - - -tile.aether.aether_portal.name=Aether Portal -tile.aether.campfire.mobNotification=You can't bring mobs with you outside of the Aether. - -cloudParachute.ability.rightClick=§3Use:§r Right-Click -cloudParachute.ability=§9Ability: -cloudParachute.ability.cold=Slow Descent -cloudParachute.ability.purple=Directional Descent -cloudParachute.ability.blue=Fast Elevation - -moa.feathers=Feathers: %s -moa.keratin=Keratin: %s -moa.eyes=Eyes: %s -moa.feather_type=Feather Shape: %s -moa.wing_strength=Wing Strength: %s - -moa.keratin.sky_blue=Sky Blue -moa.keratin.deep_sky=Deep Sky -moa.keratin.sand=Sand -moa.keratin.midnight_sky=Midnight Sky -moa.keratin.swamp=Swamp -moa.keratin.royal=Royal -moa.keratin.tempest=Tempest - -moa.eyes.alto=Alto -moa.eyes.straw=Straw -moa.eyes.winter_hazel=Winter Hazel -moa.eyes.gossip=Gossip -moa.eyes.mint=Mint -moa.eyes.ice=Ice -moa.eyes.perano=Perano -moa.eyes.portage=Portage -moa.eyes.perfume=Perfume -moa.eyes.illusion=Illusion -moa.eyes.wewak=Wewak - -moa.feathers.black=Black -moa.feathers.grey=Grey -moa.feathers.white=White -moa.feathers.iroko=Iroko -moa.feathers.orange=Orange -moa.feathers.lisbon_brown=Lisbon Brown -moa.feathers.yellow=Yellow -moa.feathers.mallard=Mallard -moa.feathers.lime_green=Lime Green -moa.feathers.everglade=Everglade -moa.feathers.green=Green -moa.feathers.plantation=Plantation -moa.feathers.sky_blue=Sky Blue -moa.feathers.cloud_burst=Cloud Burst -moa.feathers.blue=Blue -moa.feathers.port_gore=Port Gore -moa.feathers.purple=Purple -moa.feathers.bossanova=Bossanova -moa.feathers.pink=Pink -moa.feathers.livid_brown=Livid Brown -moa.feathers.puse=Puse -moa.feathers.deep_red=Deep Red -moa.feathers.red=Red - -moa.marks.pointed=Pointed -moa.marks.flat=Flat -moa.marks.curved=Curved - -moa.wing_strength.weak=Weak -moa.wing_strength.normal=Normal -moa.wing_strength.strong=Strong -moa.wing_strength.excellent=Excellent - -# Item Rarities -item.rarity.none.name=§7§oBasic -item.rarity.common.name=§7§oCommon -item.rarity.rare.name=§b§oRare -item.rarity.epic.name=§5§oEpic -item.rarity.mythic.name=§6§oMythic -item.rarity.godly.name=§o§aG§bo§6d§dl§ey - -# Weapon Tooltips -item.aether.skyroot_sword.ability.desc=Doubles drops -item.aether.holystone_sword.ability.desc=Drops Ambrosium -item.aether.zanite_sword.ability.desc=Stronger with more use -item.aether.arkenium_sword.ability.desc=Durable but heavy -item.aether.gravitite_sword.ability.desc=Shifts gravity -item.aether.gravitite_sword.use.desc=Sneak & Attack -item.aether.holy_sword.ability.desc=Obliterates Undead -item.aether.lightning_sword.ability.desc=Smites With Lightning -item.aether.flaming_sword.ability.desc=Ignites Mobs -item.aether.vampire_blade.ability.desc=Leeches Life -item.aether.candy_cane_sword.ability.desc=Drops Candy Canes -item.aether.valkyrie_lance.ability.desc=Extended Reach -item.aether.sentry_vaultbox.ability.desc1=§dOutputs: §rRandom Items -item.aether.sentry_vaultbox.ability.desc2=§3Throw: §rRight-Click -item.aether.crossbow.desc1= Reload Speed -item.aether.crossbow.desc2=Seconds -item.aether.crossbow.desc3=Second -item.aether.crossbow.desc4=Ability -item.aether.crossbow.use.desc=Sneak & Reload -item.aether.skyroot_crossbow.ability=Double shot -item.aether.holystone_crossbow.ability=Spread shot -item.aether.zanite_crossbow.ability=Stronger with more use -item.aether.arkenium_crossbow.ability=Long shot -item.aether.gravitite_crossbow.ability=Straight shot -item.aether.bolt.desc=Crossbow Ammo -item.aether.dart.desc=Dart Shooter Ammo - -# Tool tooltips -item.aether.tool.skyroot.ability.desc=Doubles block drops -item.aether.tool.holystone.ability.desc=Drops Ambrosium -item.aether.tool.zanite.ability.desc=Faster with more use -item.aether.tool.arkenium.ability.desc=Durable but heavy -item.aether.tool.gravitite.ability.desc=Shifts block gravity -item.aether.tool.gravitite.use.desc=Sneak & Use -item.aether.tool.valkyrie.ability.desc=Extended Reach - -# Tooltips -item.aether.tooltip.modifiers.gloves=When on hands: -item.aether.tooltip.ability=Ability -item.aether.tooltip.use=Use -item.aether.tooltip.cures=Cures -item.aether.tooltip.heals=Heals - -# Armor Tooltips -item.aether.armor.zanite.ability.desc=Becomes Stronger with Wear - -# Curative Tooltips -item.aether.curative.desc1=Cures effect -item.aether.curative.fracture.desc1=Reduces healing time -item.aether.curative.desc2=Reduces buildup - -# Tea Tooltips -item.aether.tea.applied.desc=When Used: -item.aether.valkyrie_tea.desc=Double Saturation - -# Records -item.aether.moa_music_disc.desc=Emile van Krieken - Approaches -item.aether.aerwhale_music_disc.desc=AetherAudio - Aerwhale -item.aether.labyrinth_music_disc.desc=Moorziey - Demise -item.aether.valkyrie_music_disc.desc=Emile van Krieken - Ascending Dawn -item.aether.recording_892.desc=Emile van Krieken - ??? - -# Entities -entity.aether.aechor_plant.name=Aechor Plant -entity.aether.aerbunny.name=Aerbunny -entity.aether.carrion_sprout.name=Carrion Sprout -entity.aether.cockatrice.name=Cockatrice -entity.aether.kirrid.name=Kirrid -entity.aether.moa.name=Moa -entity.aether.aerwhale.name=Aerwhale -entity.aether.zephyr.name=Zephyr -entity.aether.tempest.name=Tempest -entity.aether.taegore.name=Taegore -entity.aether.detonation_sentry.name=Detonation Sentry -entity.aether.battle_sentry.name=Battle Sentry -entity.aether.tracking_sentry.name=Tracking Sentry -entity.aether.chest_mimic.name=Chest Mimic -entity.aether.battle_golem.name=Battle Golem -entity.aether.swet.name=Swet -entity.aether.generator.name=Entity Generator -entity.aether.sentry_guardian.name=Sentry Guardian -entity.aether.production_line.name=Production Line -entity.aether.repair_sentry.name=Repair Sentry -entity.aether.slider.name=Slider -entity.aether.frostpine_totem.name=Frostpine Totem -entity.aether.kraisith.name=Kraisith -entity.aether.shade_of_arkenzus.name=Shade of Arkenzus -entity.aether.ethereal_wisp.name=Ethereal Wisp -entity.aether.fleeting_wisp.name=Fleeting Wisp -entity.aether.soaring_wisp=Soaring Wisp -entity.aether.fangrin.name=Fangrin -entity.aether.nex_spirit.name=Nex Spirit -entity.aether.pink_baby_swet.name=Pink Baby Swet -entity.aether.glitterwing.name=Glitterwing -entity.aether.edison.name=Eddy -entity.aether.burrukai.name=Burrukai -entity.aether.necromancer.name=Necromancer -entity.aether.josediya.name=Josediya -entity.aether.tivalier.name=Tivalier -entity.aether.icehog.name=Icehog -entity.aether.mysterious_figure.name=Mysterious Figure -entity.aether.varanys.name=Varanys -entity.aether.skyroot_lizard.name=Skyroot Lizard -entity.aether.glactrix.name=Glactrix -entity.aether.sheepuff.name=Sheepuff -entity.aether.arkenium_golem.name=Arkenium Golem - -# Creative Tabs -itemGroup.aether.blocks=Aether II Blocks -itemGroup.aether.materials=Aether II Materials -itemGroup.aether.tools=Aether II Tools -itemGroup.aether.weapons=Aether II Weapons -itemGroup.aether.armor=Aether II Armor -itemGroup.aether.food=Aether II Food -itemGroup.aether.consumables=Aether II Consumables -itemGroup.aether.companions=Aether II Companions -itemGroup.aether.miscellaneous=Aether II Miscellaneous -itemGroup.aether.rings=Aether II Rings -itemGroup.aether.neckwear=Aether II Neckwear -itemGroup.aether.relics=Aether II Relics -itemGroup.aether.charms=Aether II Charms -itemGroup.aether.artifacts=Aether II Artifacts -itemGroup.aether.visual_variants=Aether II Decorative Blocks -itemGroup.aether.natural_blocks=Aether II Natural Blocks -itemGroup.aether.construction=Aether II Construction Blocks -itemGroup.aether.utility_blocks=Aether II Utility Blocks -itemGroup.aether.dungeon_blocks=Aether II Dungeon Blocks -itemGroup.aether.thera=Aether II Theran Blocks - -# Containers -# TODO: Prefix with aether. -container.holystone_furnace=Holystone Furnace -container.skyroot_chest=Skyroot Chest -container.skyroot_double_chest=Large Skyroot Chest -container.labyrinth_chest=Labyrinth Chest -container.icestone_cooler=Icestone Cooler -container.incubator=Incubator -container.masonry_bench=Masonry Bench -container.aether_workbench.recipes=Recipes (%s/%s) - -# Sounds -subtitles.aether.portal.glowstone.hum=Portal hums -subtitles.aether.portal.glowstone.trigger=Portal activates -subtitles.aether.portal.glowstone.travel=Portal teleports -subtitles.aether.portal.labyrinth_totem.drone=Totem drones -subtitles.aether.portal.labyrinth_totem.woosh=Totem wooshes -subtitles.aether.block.aercloud.bounce=Aercloud recoils -subtitles.aether.mob.aerbunny.ambient=Aerbunny squeaks -subtitles.aether.mob.aerbunny.hurt=Aerbunny hurts -subtitles.aether.mob.aerbunny.death=Aerbunny dies -subtitles.aether.mob.aerbunny.lift=Aerbunny lifted -subtitles.aether.mob.aerwhale.ambient=Aerwhale whistles -subtitles.aether.mob.aerwhale.death=Aerwhale dies -subtitles.aether.mob.cockatrice.ambient=Cockatrice hisses -subtitles.aether.mob.cockatrice.hurt=Cockatrice hurts -subtitles.aether.mob.cockatrice.death=Cockatrice dies -subtitles.aether.mob.tempest.ambient=Tempest drones -subtitles.aether.mob.tempest.hurt=Tempest hurts -subtitles.aether.mob.tempest.death=Tempest dies -subtitles.aether.mob.tempest.angry=Tempest charges -subtitles.aether.mob.tempest.electric_shock=Tempest fires shock -subtitles.aether.mob.zephyr.ambient=Zephyr wooshes -subtitles.aether.mob.zephyr.puff=Zephyr puffs -subtitles.aether.mob.tracking_sentry.alarm=Tracking Sentry alert -subtitles.aether.mob.sentry.ambient=Sentry growls -subtitles.aether.mob.sentry.hurt=Sentry hurts -subtitles.aether.mob.sentry.death=Sentry dies -subtitles.aether.mob.battle_sentry.pounce=Battle Sentry pounces -subtitles.aether.random.stone.thud=Stone thud -subtitles.aether.random.detonating=Explosive detonating -subtitles.aether.random.detonate=Explosive detonated -subtitles.aether.random.dart_shooter.fire=Dart Shooter fired -subtitles.aether.mob.moa.ambient=Moa calls -subtitles.aether.mob.moa.hurt=Moa hurts -subtitles.aether.mob.kirrid.ambient=Kirrid baahs -subtitles.aether.mob.kirrid.hurt=Kirrid hurts -subtitles.aether.mob.kirrid.death=Kirrid dies -subtitles.aether.mob.taegore.ambient=Taegore snorts -subtitles.aether.mob.taegore.hurt=Taegore hurts -subtitles.aether.mob.taegore.death=Taegore dies -subtitles.aether.mob.taegore.attack=Taegore attacks -subtitles.aether.mob.chest_mimic.awake=Chest Mimic awakens -subtitles.aether.random.present_unwrap=Present rips -subtitles.aether.random.dungeon.container.smash=Container smashed -subtitles.aether.mob.slider.awake=Slider awakens -subtitles.aether.mob.slider.collide=Slider collides -subtitles.aether.mob.slider.die=Slider cracks -subtitles.aether.mob.slider.move=Slider moves -subtitles.aether.mob.slider.signal=Slider signals -subtitles.aether.mob.generic.wings.flap=Wings flap -subtitles.aether.mob.burrukai.ambient=Burrukai huffs -subtitles.aether.mob.burrukai.hurt=Burrukai hurts -subtitles.aether.mob.burrukai.death=Burrukai dies -subtitles.aether.mob.burrukai.attack=Burrukai attacks -subtitles.aether.environment.rain.light=Rain drizzles -subtitles.aether.environment.rain.heavy=Rain pours -subtitles.aether.environment.snow.wind=Wind blows - -# Accessory slot names -gui.aether.slot.none=Not Equippable -gui.aether.slot.neckwear=Neckwear -gui.aether.slot.companion=Companion -gui.aether.slot.shield=Shield -gui.aether.slot.relic=Relic -gui.aether.slot.ring=Ring -gui.aether.slot.handwear=Handwear -gui.aether.slot.charm=Charm -gui.aether.slot.artifact=Artifact -gui.aether.slot.helmet=Helmet -gui.aether.slot.chestplate=Chestplate -gui.aether.slot.leggings=Leggings -gui.aether.slot.boots=Boots -gui.aether.slot.offhand=Off-Hand -gui.aether.coolant=Coolant -gui.aether.cools_into=Cools Into: -gui.aether.random_item=Random Item -gui.aether.random_armor=Random Armor -gui.aether.random_sword=Random Sword -gui.aether.random_tool=Random Tool -gui.aether.random_ring=Random Ring -gui.aether.random_neckwear=Random Neckwear -gui.aether.random_charm=Random Charm -gui.aether.incubator_fuel=Incubator Fuel -gui.aether.baby_moa=Baby Moa -gui.aether.respawn.bed=Respawn in Bed -gui.aether.campfire.bed=Respawn at Outpost -gui.aether.loading.indeterminate=Loading... -gui.aether.loading.progress=Loading... %s%% -gui.aether.patreon.rewards.button.use=Use -gui.aether.patreon.rewards.button.locked=Locked -gui.aether.incubator.label.incubation=Incubation -gui.aether.incubator.label.heating=Heating -gui.aether.incubator.label.more_heat=More Heat! -gui.aether.incubator.label.ready=Ready! -gui.aether.incubator.label.max=MAX -gui.aether.incubator.label.fail=FAILING! -gui.aether.masonry.label.recipes=Recipes - -gui.aether.hover.npc=Talk to %s -gui.aether.hover.campfire=Return to Overworld -gui.aether.hover.teleporter=Enter the Aether - -gui.guidebook.discovery.stats=Stats -gui.guidebook.discovery.curatives=Curatives -gui.guidebook.status.effects=Active Effects -gui.guidebook.status.res=RES -gui.guidebook.status.weak=WEAK -gui.guidebook.status.full=FULL - -# Death messages - -death.attack.aether.effect.bleed=%1$s bled to death -death.attack.aether.effect.fungalRot=%1$s succumbed to fungal rot -death.attack.aether.effect.fracture=Oof owie %1$s's bones -death.attack.aether.effect.irradiation=%1$s became irradiated - -# Status Effects - -effect.aether.ambrosium_poisoning=Ambrosium Poisoning -effect.aether.bleed=Bleed -effect.aether.cockatrice_venom=Cockatrice Venom -effect.aether.fracture=Fracture -effect.aether.freeze=Freeze -effect.aether.fungal_rot=Fungal Rot -effect.aether.stun=Stun -effect.aether.toxin=Toxin -effect.aether.webbing=Webbing -effect.aether.irradiation=Irradiation - -effect.aether.saturation_boost=Saturation Boost - -effect.aether.guard_break=Guard Break - -# Damage Attributes - -attribute.name.aether.slash=Slash -attribute.name.aether.pierce=Pierce -attribute.name.aether.impact=Impact - -attribute.name.aether.damageLevel=Damage - -attribute.name.aether.weakness=Weakness -attribute.name.aether.resistance=Resistance -attribute.name.aether.complete_resistance=Immune To - -# Introsat - -intro.prologue=200 years after a lone adventurer defeated the tyrannical Sun Spirit, Karthuul, a new traveller is about to enter the Aether... -intro.tip1=DISCLAIMER:\n\nThis indev build is an UNFINISHED, BUGGY,\n\nPOOR PERFORMANCE iteration of the official Highlands release (date not decided yet).\n\nIF YOU DO NOT WANT TO SPOIL YOUR EXPERIENCE, we HIGHLY RECOMMEND you DO NOT PLAY THIS until the official release.\n\nMany features are missing, some are experimental, etc. We have released these indev builds for those who want to help test and who cannot wait to get their Aether fix. -intro.tip2=DUNGEONS ARE NOT IN THE MOD YET. We're still designing and developing the technology for them through our other tech/tool mod called Orbis. It will take some time for this content to get into the mod. The prime experience you can mess around with right now is exploring the new biomes and terrain generation, as well as the new art assets and models we've developed. -intro.tip3=The world you're about to enter is completely separate from Minecraft, in both lore, time and space... -intro.tip4=Begin your journey? -intro.holdToSkip=Hold To Skip -intro.proudlyPresents=Proudly Presents... -intro.yes=Yes -intro.no=No - -# Teleporter Notice - -notice.body=You must be a returning player.\n\nIn Aether II, travelling to the Aether is no longer done with a Glowstone Portal.\n\nInstead, craft an Aether Portal block. -notice.gotcha=Gotcha! -notice.holdUp=Woah! Hold up - -#Ability Tooltips -ability.breatheUnderwater.name=Underwater Breathing -ability.daggerfrost.name=Daggerfrost -ability.doubleDrops.name=Double Drops -ability.extraDamage.name=Increased Damage -ability.punchingDamage.name=Increased Punch -ability.freezeBlocks.name=Freezing Aura -ability.pauseHunger.name=Food Heaven -ability.reduceHunger.name=Well Fed -ability.regenerateHealth.name=Health Regeneration -ability.maxHealthMod.name=Max Health Modifier -ability.movementSpeedMod.name=Movement Speed Modifier -ability.modifyXPCollection.name=XP Collection Modifier -ability.modifyDefense.name=Defense Modifier -ability.weightTolerance.name=Weight Tolerance -ability.invisibility.name=Invisibility -ability.changeAttackElement.name=Change Attack Element -ability.setEnemiesOnFire.name=Sparking Touch -ability.fireImmunity.name=Fire Immunity -ability.companionMaxHealthMod.name=Companion Max Health Modifier -ability.slowfall.name=Slowfall -ability.attackSpeedMod.name=Attack Speed Modifier - -elementalState.biological=Biological -elementalState.frost=Frost -elementalState.fire=Fire -elementalState.water=Water -elementalState.earth=Earth -elementalState.air=Air -elementalState.blight=Blight -elementalState.lightning=Lightning - -ability.extraDamage.attack=Attack -ability.extraDamage.desc=%s %s Damage -ability.active=§5Only Active: -ability.cosmetic=§eCosmetic -ability.breatheUnderwater.desc=§9Water Breathing -ability.daggerfrost.desc=§9Snowballs Cause Damage -ability.doubleDrops.desc1=§9Double Mob Drops -ability.doubleDrops.desc2=%s%% Chance -ability.punchingDamage.desc1=%s Punching Damage -ability.punchingDamage.desc2=%s %s Punching -ability.freezeBlocks.desc=§9Freezes Nearby Blocks -ability.pauseHunger.desc=§9Stops Hunger -ability.reduceHunger.desc=§9Reduces Hunger -ability.regenerateHealth.desc=§9Regenerates Health -ability.maxHealthMod.desc=%s Max Health -ability.movementSpeedMod.desc=%s Movement Speed -ability.modifyXPCollection.desc=%s XP Collected -ability.defenseMod.desc=%s %s -ability.defenseMod.desc1=Defense -ability.defenseMod.desc2=Resistance -ability.invisibility.desc=§9Invisibility -ability.changeAttackElement.desc=§9All Attacks Become: -ability.setEnemiesOnFire.desc=§9Sets Enemies On Fire -ability.fireImmunity.desc=§9Fire Immunity -ability.doubleJump.desc=§9Double Jump -ability.companion.desc=For Companion -ability.leechLife.desc1=§9Life Leech -ability.leechLife.desc2=%s%% Chance -ability.slowfall.desc=§9Slowfall -ability.weight.desc1=%skg Weight -ability.weight.desc2=%skg Weight Tolerance -ability.levitateAttackers.desc1=§9Levitate Attackers -ability.levitateAttackers.desc2=%s%% Chance -ability.setAttackersOnFire.desc1=§9Burns Attackers -ability.setAttackersOnFire.desc2=%s%% Chance -ability.attackSpeedMod.desc=%s Attack Speed - -# Tabs -tab.guidebook=Aether II -tab.guidebook.equipment=Equipment -tab.guidebook.status=Status -tab.guidebook.mount=Mount -tab.guidebook.loretome=Lore Tome -tab.guidebook.discovery=Discovery -tab.guidebook.discovery.bestiary=Bestiary -tab.guidebook.discovery.landmarks=Landmarks -tab.guidebook.discovery.characters=Characters -tab.guidebook.discovery.effects=Effects -tab.bug_report=Report Bugs -tab.backpack.name=Backpack -tab.patron_rewards=Patron Rewards - -# Chat Messages -chat.aether.resurrected=%s was resurrected by their Nex Spirit - -# In Development Menu -indev.button=Bring it on! -indev.line1=Hello, eager player! -indev.line2=Thank you for your interest in the mod! Before we proceed, we'd like to clarify a few things. The version of the Aether you're playing is an in-development preview. This means you may encounter serious problems, such as: -indev.line3=World corruption and crashes -indev.line4=Mobs without models or textures -indev.line5=Broken game mechanics -indev.line6=And most importantly, lots of bugs! -indev.line7=We're very happy to let you play an early glimpse of the Aether, but we ask kindly for your patience and support in return as we continue development. -indev.line8=By pressing the button below, you're acknowledging that you understand the terms above, and that you will not hold us responsible if your game grows legs and runs off with your coffee. - -# Bug Report Menu -bug_report.button=Open Issue Tracker -bug_report.line1=Hello, again! -bug_report.line2=Did you run into an issue? If you'd like, you can help contribute to the Aether by visiting our issue tracker. -bug_report.line3=Issues are an easy way to report bugs and other problems with the mod, giving you direct access to developer help and our amazing community of volunteers. -bug_report.line4=Clicking the button below will take you to an external website in your browser where our issue tracker is located. Register an account today, and help us squash bugs faster than ever! - -aether.warning.deprecated_item=§cDeprecated! Will be removed! -aether.warning.operator_item=Requires Operator privileges - -# Rewards -aether.reward.sun_spirit.name=Sun Spirit -aether.reward.slider.name=Slider -aether.reward.valkyrie_queen.name=Valkyrie Queen -aether.reward.none.name=None - -# Trade -aether.trade.gui.thirdtrade=%s's Trade -aether.trade.gui.firsttrade=Your Trade -aether.trade.gui.lock=Lock-in Trade -aether.trade.gui.unlock=Unlock Trade -aether.trade.gui.confirm=Confirm Trade -aether.trade.chat.success=Your trade with %s has been completed! -aether.trade.chat.cancel=Your trade with %s has been canceled! -aether.trade.chat.request=%s wants to trade with you! Interact with them to begin trading! -aether.trade.chat.failexpired=Your trade request for %s has expired! -aether.trade.chat.failtrade=%s is currently trading. -aether.trade.chat.failsent=You have already sent a trade invitation to %s. -aether.trade.status.waitingboth=Waiting on both parties to lock-in -aether.trade.status.waitingyou=Waiting on you to lock-in -aether.trade.status.waitingthem=Waiting on other party to lock-in -aether.trade.status.confirmboth=Waiting on both parties to confirm -aether.trade.status.confirmyou=Waiting on you to confirm -aether.trade.status.confirmthem=Waiting on other party to confirm -aether.trade.status.sizeerror=Trade cannot safely be made -aether.trade.message.targetlock=%s locked in their trade! -aether.trade.message.targetconfirm=%s confirmed their trade! -aether.trade.message.unlockwarn=%s unlocked their trade! Check their trade before locking in again! -aether.trade.message.unlocksafe=%s unlocked their trade! -aether.trade.message.inventorywarn=You do not have enough space in your inventory to accept this trade! -aether.trade.message.tradewarn=They do not have enough space in their inventory to accept your trade! - - -# Shop -aether.shop.sell=Sell -aether.shop.buy=Buy %s -aether.shop.back=Back -aether.shop.lockTooltip=If unlocked, each time you click on a new stock item, the amount you're trying to buy will reset to 1. - -##=======================## -########################### -# # -# CHARACTER NAMES # -# # -########################### -##=======================## - -edison.name=Eddy -necromancer.name=Necromancer -josediya.name=Josediya - -##=======================## -########################### -# # -# GENERIC DIALOG # -# # -########################### -##=======================## - -generic.back=Back -generic.okay=Okay -generic.goodbye=Goodbye - -##=======================## -########################### -# # -# NECROMANCER DIALOGUE # -# # -########################### -##=======================## - -necromancer.them.start1=I'm glad to see you here safe, traveller. I'm sure you have many questions but time is of the essence. -necromancer.them.start2=Through this Rift in space you will find a man with a scar over his eye, his name is Eddy. He is a friend of sorts. -necromancer.them.start3=He will answer any questions you have, he has been contracted to assist you in your quest. He may seem strange but... well... -necromancer.them.start4=We're in the company of strangers here, aren't we? -necromancer.them.start5=Safe travels, a new world awaits you. - -necromancer.us.leadtheway=Thank you. Goodbye. - -##=======================## -########################### -# # -# EDISON GREET DIALOGUE # -# # -########################### -##=======================## - -edison.greet.start_not_introduced=You’re late, newby. Been waiting here for a couple hours now. - -edison.greet.option.expecting=You were expecting me? -edison.greet.option.who=Who are you? -edison.greet.option.map=I didn't exactly have a map. - -edison.greet.respawn_not_introduced=You should really take better care of yourself, friend. You’re lucky you were found in one piece. -edison.greet.respawn=You okay? You were found pretty beat up back there. - -edison.greet.option.what=What is this place? -edison.greet.option.died=I thought I was done for... - -edison.greet.option.fine=I'm fine. -edison.greet.option.thanks=Thanks, Eddy. -edison.greet.option.okay_sale=I'll be okay, you got anything for sale? -edison.greet.option.okay_holiday_sale=I'm good. Do you have a special stock for this holiday season? - -edison.greet.start=Hey there friend, how's it going? You need anything? - -edison.greet.option.sale=You got anything for sale? -edison.greet.option.holiday_sale=Do you have special stock for this holiday season? - -edison.greet.option.okay_goodbye=I think I'm okay. Goodbye. -edison.greet.option.ready_goodbye=I think I'm ready. Bye, Eddy. -edison.greet.option.mind_goodbye=I'll keep that in mind. Goodbye. - -edison.greet.expecting1=Of course! I’m being paid good money by our "mutual friend” to watch your back. -edison.greet.expecting2=Wait, did he not explain our little arrangement? Typical... -edison.greet.expecting3=Well then... What do I need to explain to you? - -edison.greet.option.no_we_talked=No we talked. You’re... Eddy, right? - -edison.greet.who1=I’m Eddy! International entrepreneur, salesman and master of persuasion! -edison.greet.who2=But to you, due to our little agreement with "you know who”, I am also your contact in these strange lands. -edison.greet.who3=Basically, that means I’ve got to look after you. -edison.greet.who4=Now I’m a strong believer in knowledge being the best tool in this world. So in the interest of keeping you from, well, dying... -edison.greet.who5=Do you have any more questions? - -edison.greet.option.you_know_who="You know who?" - -edison.greet.map1=Haha! Snarky one aren’t ya? Maybe I should’ve expected a bit of a wait. -edison.greet.map2=Not exactly hard to find these places though. Would’ve thought you’d be dropped off nearby anyway. - -edison.greet.what1="This place?" King of vague questions aren’t you? -edison.greet.what2=I would assume you knew at least a little about what you were getting into coming here, but I’ll need you to be a bit more specific than that. -edison.greet.what3=Do you mean this building we’re standing in? Or the actual world around us? - -edison.greet.option.building=This building. -edison.greet.option.world=This world. - -edison.greet.died1=So did I! When my employee dragged you in here I wasn’t sure you were gonna wake up. - -edison.greet.fine1=Well that was passive aggressive considering me and my men just saved your skin. -edison.greet.fine2=You need anything before you head off? - -edison.greet.thanks1=Don’t mention it. We’ve all got a role to play here, mine’s to keep you safe. -edison.greet.thanks2=You need anything or are you good to set off? - -edison.greet.sale=Sure thing, let’s take a look at my stock. -edison.greet.holiday_sale=Hope you're feeling festive, friend! Take a peek at our exclusive stock for this holiday season. - -edison.greet.no_we_talked1=That’s right! International entrepreneur, salesman and master of persuasion! -edison.greet.no_we_talked2=But to you, due to our little agreement with The Necromancer, I am also your contact in these strange lands. -edison.greet.no_we_talked3=Basically that means I’ve got to look after you. -edison.greet.no_we_talked4=Now I’m a strong believer in knowledge being the best tool in this world. So in the interest of keeping you from, well, dying... -edison.greet.no_we_talked5=Do you have any more questions? - -edison.greet.you_know_who1=The Necromancer. You know - Mr. Tall, Dark and Creepy? -edison.greet.you_know_who2=Him and I have been in contact quite regularly, and he’s paying me quite a lot of coin to ensure if you’re ever in a pinch you’ll be taken to a safe place. -edison.greet.you_know_who3=Thinking about it though, he usually leaves a note in with his little "gifts” he hands out. Maybe take a look through your Guidebook for one. - -edison.greet.building1=Ah well this here is an old traveller's outpost! One built many years ago by the Valkyries as a burial ground. -edison.greet.building2=Since then many people have taken it upon themselves to maintain these areas, making them a truly safe place for anyone wandering the Aether's landscape to rest. - -edison.greet.option.valkyries=Valkyries? -edison.greet.option.what_world=What about this world? -edison.greet.option.what_building=What about this building? - -edison.greet.world1=Okay then, not been told much? This here is The Aether! It's a world that exists high above our own, so high it has its own flora and fauna. -edison.greet.world2=What you stand in now is one of many ancient Valkyrie outposts, they were set up originally as sacred burial grounds if I recall correctly, but since have served as a place of resting for many travellers. - -edison.greet.valkyries1=They're kinda like the city guards of this world but err... Heh... Much more powerful. A solo legionnaire could rip you to shreds if you gave it reason to. -edison.greet.valkyries2=Luckily they're rather friendly, not big talkers though. You should find them wandering around most towns and villages. They have some sort of holy pact to protect people or something. -edison.greet.valkyries3=Honestly I'm not entirely sure what they are, you're better off asking one of the natives. Or a Valkyrie in person! They're kinda hard to miss. -edison.greet.valkyries4=Have anything else you want to know? - -##=======================## -########################### -# # -# EDISON SHOP DIALOGUE # -# # -########################### -##=======================## - -edison.shop.greetings1=Here we are, great stock today. Got some real unique treasures mixed in, take a look. -edison.shop.greetings2=Fair prices I assure you, but err... no refunds. Company policy. - -edison.shop.enchanted_wyndberry=I have a guy who picks these from the Carrion plants, dangerous little things they are. He also enriches them with Ambrosium for an extra kick! -edison.shop.enchanted_blueberry=Blueberries are pretty easily found but these ones are enchanted with Ambrosium, good stuff if you're feeling a little under the weather. -edison.shop.ambrosium_shard=Now this stuff is truly special, truly multipurpose material. It can repair equipment, enhance food, fuel fire. It's even known to treat diseases with the right application. -edison.shop.skyroot_stick=I'm going to be straight with you, these aren't really part of my stock. But you're free to buy them if you like. -edison.shop.skyroot_pickaxe=Great for whacking away at some stone, locals revere Skyroot as a material for its supposed "unparalleled accuracy". Load of bunk if you ask me but it's a good starter if you plan on mining. -edison.shop.skyroot_axe=Feels a bit wrong, chopping down trees with trees. Ah well. It's a good axe to get you off your feet with woodwork. -edison.shop.skyroot_sword=Looking to protect yourself? Wildlife around these parts can be a bit feisty. Carrying a sword would be a smart investment. -edison.shop.skyroot_shovel=If the offensive route fails, why not dig yourself a little hidey-hole! Shovel will come in handy for sure. -edison.shop.therawood_leaves=I actually had a fella make these from Brettl cane, painted them up nicely to resemble the leaves from Grinstol's forests. -edison.shop.therawood_log=Our friend let me take a few saplings with me for growing trees, little experiment of his. The leaves came out bleached from the gasses in the air but the logs are just fine. -edison.shop.thera_dirt=My little pet project, I wanted to see how the geology of this world is compared to back home so I cultivated some dirt of similar composition to Thera's. Utter waste of time but it looks nostalgic! -edison.shop.thera_grass=Managed to grow something resembling Thera's grass. Always did think the grass was greener down there. -edison.shop.therastone_brick=Now these I made to replicate old tall dark and scary's Tower. They're just simple Agretite but with enough wear and tear I got them looking just about right. - -edison.shop.holiday_notice=50%% Off Stock!\nHoliday Special - -edison.shop.greetings_holiday=Welcome to my holiday wares! This stock is only here for a limited time, so catch it while you can. Don't be the fool who didn't take the chance! - -edison.shop.candy_cane=Festive treats, those ones. Not to be confused with actual canes, people from far and wide tend to decorate them on my Mutant Trees - and lucky for you, those saplings are on sale! -edison.shop.candy_cane_block=Have you ever just thought "Wow, I really need to crush up a bunch of candy and make a monstrous slab out of it"? Me neither. Regardless, it's on sale - why not give it a shot while stocks last? -edison.shop.candy_cane_wall=I guess you could... fend off the non-sweet-tooths of the world? I'm stumped, but these things are all the rage these days. I don't get it, and frankly I don't want to because they sell like crazy. -edison.shop.mutant_sapling=This brings back memories. Too bad I can't tell you how these wonderous trees were made. Let's just say they're a holiday treat, ones which have a tendency to grow "lightbulbs". -edison.shop.winter_hat=Townsfolk downstairs love these. Come to think of it, there's not been a festive night where I haven't seen at least one person wearing it. It doesn't do much, but I've heard it's a stylish addition to your wardrobe. -edison.shop.eggnog=Here's the thing: I like Eggnog, it tastes great - but once I've had a few, those Aerbunnies simply refuse to leave me alone! It's crazy. Am I the only one? -edison.shop.yule_log=Ever wanted to eat a log? Well you're in luck. This is your one chance to eat a log and not feel bad about it! - -##=======================## -########################### -# # -# JOSEDIYA DIALOGUE # -# # -########################### -##=======================## - -josediya.greet.start_not_introduced=So you’re finally here. I don’t see what’s so important about you, let’s get this over with. -josediya.greet.start=Is there anything else you need? - -josediya.greet.option.what=What are you? -josediya.greet.option.where=Where do you come from? -josediya.greet.option.take_me=Can you take me there? - -josediya.greet.option.winged_beast=What is that winged beast? -josediya.greet.option.fly=You fly on him? -josediya.greet.option.moa=Can I get a Moa? - -josediya.greet.option.who=Who are you? -josediya.greet.option.friends=Are you not friends with "Baldy"? -josediya.greet.option.paying=Is he paying you to help me? -josediya.greet.option.white_gold=I don't have any Gilt. What now? - -josediya.greet.option.services=What services do you provide? -josediya.greet.option.home=How do you know where my home is? -josediya.greet.option.walk_home=Why can't I just walk home? - -josediya.greet.what=Wow not very smart are you? I’m a person, like you or that bald idiot over there. Never seen an Angel before? Valkyries save us all. -josediya.greet.where=I come from a nation far south from here called Veradex. It’s where I get most of my work from. -josediya.greet.take_me=I don’t think you have the coin, human. Veradex is about 3 weeks of swift travel away from here, dangerous route too. I can’t take you there. -josediya.greet.winged_beast=That is my friend Tivalier, actually. He’s a Moa, a strong one too; he could fly both of us on his back and not break a sweat. -josediya.greet.fly=Of course! That’s what he’s been trained for. I raise Moas as part of my work. They’re very friendly creatures if you treat them right. -josediya.greet.moa=You’d need to raise one yourself for it to trust you enough to ride it, getting an egg isn’t an easy task though; Moas are very defensive of their nests. -josediya.greet.who=The girl who’s going to be taking you places. My name is Josediya, I run a carriage business and baldy over there has brought me in to help you. -josediya.greet.friends=Eddy and I get along fine, he’s proved helpful over the years I’ve known him, but I still don’t trust him much. It’s just mutually beneficial for us to work together. -josediya.greet.paying=No this is me repaying a favour. You’re the one who’s gonna pay me. And I don’t take coin from your world, Gilt only. -josediya.greet.white_gold=That’s your problem. I don’t care how you get it, but I need to be paid for my work. Go help some farmers or something. -josediya.greet.services=If you ever find yourself setting up shop somewhere, I can take you back to your home from any outpost. I will expect payment though. -josediya.greet.home=I’m not taking you back to Thera, if that’s what you mean. You’ll have to find a new place to rest here in the Aether first. -josediya.greet.walk_home=I won’t stop you but the Aether’s islands can be pretty far apart. Travelling in my carriage is going to be a lot faster and a lot smoother for you. The cloud bed is sturdy enough to walk between islands on foot, but it can be pretty dangerous without proper protection. - -josediya.greet.travel=Okay. Where to? -josediya.greet.option.travel_to=Travel To Bed -josediya.greet.option.travel_from=Travel Back To Last Outpost -josediya.greet.option.travel=Travel - -##================================## -#################################### -# # -# MYSTERIOUS FIGURE DIALOGUE # -# # -#################################### -##================================## - -mysterious_figure.greet.start=A new traveller I see! Welcome, welcome... Behold my wondrous wares from a realm beyond - an assortment of sweets shall correspond! -mysterious_figure.greet.option.who_are_you=Who are you? -mysterious_figure.greet.option.why_plumproots=Why are you holding a plumproot over your shoulder? -mysterious_figure.greet.option.sale=Can I take a look at your wares? -mysterious_figure.greet.who_are_you=You want a name, ‘tis but a mystery! All forgotten, even through history! -mysterious_figure.greet.why_plumproots=Do you not know the marvelous things you can do with such beautiful plumproots? You can broth it, you can stew it, for my wares you must pursue it! Has your mouth graced the taste of plumproot pie? It’s something you must have before you die! -mysterious_figure.greet.sale=Good, good! Plumproots you shall give, candies I shall weave. -mysterious_figure.shop.greetings=Plumproots, plumproots, plumproots! My candies I will trade for plumproots - anything else as good as gumboots! -mysterious_figure.shop.candy_corn=You know what goes good with corn? Plumproots! ...and candy too, I guess. -mysterious_figure.shop.cocoatrice=No Cockatrices were harmed in the making of this product. -mysterious_figure.shop.wrapped_chocolates=I hand wrap these chocolates myself! Don’t be surprised if you find trace amounts of bones. -mysterious_figure.shop.jelly_plumproot=I’m not sure if you could tell, but these are by far my favourite supplies. -mysterious_figure.shop.blueberry_lollipop=Children from far and wide love these little suckers. May or may not turn you into a giant blueberry. -mysterious_figure.shop.orange_lollipop=Tastes like oranges! P.S: This candy contains zero traces of oranges. -mysterious_figure.shop.icestone_poprocks=Not actually made with Icestone. -mysterious_figure.shop.ginger_bread_man=I once heard a story of a man made gingerbread. Legend says, on the eve of this sacred month, they ate gingerbread in the shape of a man and turned into the very thing they consumed. Feeling lucky? -mysterious_figure.shop.candy_cane=Try using this as walking cane. Go on, I dare you. - -# Discovery descriptions: - -aether.placeholder.discovery.description=??? -aether.taegore.discovery.description=The Highlands Taegore are very sociable creatures, they roam in small packs usually lead by the eldest parents.\n\nWhile the Taegore can be friendly, they're equipped with robust armor and sharp tusks which can make them difficult to overpower in a fight.\n\nTheir fur is a sturdy material used in clothing - -# Config - -config.aether.skip_intro.name=Skip Intro -config.aether.enable_skybox.name=Display Aether Skybox -config.aether.display_inventory_pattern.name=Display Inventory Pattern -config.aether.cutout_helmets.name=Transparent Helmets -config.aether.helmet_shadow.name=Transparent Helmet Shadows -config.aether.aether_dimension_id.name=Aether Dimension ID -config.aether.necromancer_dimension_id.name=Necromancer's Tower Dimension ID -config.aether.display_performance_indicator.name=Display Performance Indicator -config.aether.analytics_enabled.name=Enable Analytics (client-side only) -config.aether.fingerprint_violation.name=Acknowledge Fingerprint Violation -config.aether.aerwhale_riding.name=Rideable Aerwhales \ No newline at end of file diff --git a/src/main/resources/assets/aether/lang/es_ES.lang b/src/main/resources/assets/aether/lang/es_ES.lang deleted file mode 100644 index 2045240dff..0000000000 --- a/src/main/resources/assets/aether/lang/es_ES.lang +++ /dev/null @@ -1,812 +0,0 @@ -# -# Aether Blocks -# -tile.aether.aether_dirt.dirt.name=Tierra de Aether -tile.aether.aether_dirt.coarse_dirt.name=Tierra de Aether gruesa -tile.aether.aether_grass.normal.name=Hierba de tierras altas -tile.aether.aether_grass.enchanted.name=Hierba encantada -tile.aether.aether_grass.arctic.name=Hierba ártica -tile.aether.aether_grass.magnetic.name=Hierba magnética -tile.aether.aether_grass.irradiated.name=Hierba irradiada -tile.aether.holystone.normal.name=Piedra sagrada -tile.aether.holystone.mossy.name=Piedra sagrada musgosa -tile.aether.holystone.blood_moss.name=Blood Moss Holystone -tile.aether.aercloud.cold.name=Nube -tile.aether.aercloud.blue.name=Nube azul -tile.aether.aercloud.green.name=Nube verde -tile.aether.aercloud.golden.name=Nube dorada -tile.aether.aercloud.storm.name=Nube de tormenta -tile.aether.aercloud.purple.name=Nube morada -tile.aether.skyroot_log.name=Madera de Skyroot -tile.aether.dark_skyroot_log.name=Madera de Greatroot -tile.aether.light_skyroot_log.name=Madera de Wisproot -tile.aether.golden_oak_log.name=Madera de Amberoot -tile.aether.ambrosium_ore.name=Mena de Ambrosium -tile.aether.zanite_ore.name=Mena de Zanite -tile.aether.gravitite_ore.name=Mena de Gravitite -tile.aether.arkenium_ore.name=Mena de Arkenium -tile.aether.continuum_ore.name=Mena de Continuum -tile.aether.blue_skyroot_leaves.name=Hojas de Skyroot azules -tile.aether.green_skyroot_leaves.name=Hojas de Skyroot verdes -tile.aether.dark_blue_skyroot_leaves.name=Hojas de Skyroot azul oscuro -tile.aether.blue_dark_skyroot_leaves.name=Hojas de Greatroot azules -tile.aether.green_dark_skyroot_leaves.name=Hojas de Greatroot verdes -tile.aether.dark_blue_dark_skyroot_leaves.name=Hojas de Greatroot azul oscuro -tile.aether.blue_light_skyroot_leaves.name=Hojas de Wisproot azules -tile.aether.green_light_skyroot_leaves.name=Hojas de Wisproot verdes -tile.aether.dark_blue_light_skyroot_leaves.name=Hojas de Wisproot azul oscuro -tile.aether.golden_oak_leaves.name=Hojas de Amberoot -tile.aether.tall_aether_grass.short.name=Hierba corta de tierras altas -tile.aether.tall_aether_grass.normal.name=Hierba de tierras altas -tile.aether.tall_aether_grass.long.name=Hierba alta de tierras altas -tile.aether.quicksoil.name=Tierra rápida -tile.aether.ferrosite_sand.name=Arena ferrosa -tile.aether.aether_crafting_table.name=Mesa de trabajo de Skyroot -tile.aether.skyroot_trapdoor.name=Trampilla de Skyroot -tile.aether.secret_skyroot_trapdoor.name=Trampilla secreta de Skyroot -tile.aether.skyroot_ladder.name=Escalera de mano Skyroot -tile.aether.skyroot_pressure_plate.name=Placa de presión de Skyroot -tile.aether.skyroot_button.name=Botón de Skyroot -tile.aether.holystone_pressure_plate.name=Placa de presión de piedra sagrada -tile.aether.holystone_button.name=Botón de piedra sagrada -tile.aether.blueberry_bush.ripe.name=Arbusto de arándanos -tile.aether.blueberry_bush.stem.name=Tallo de arbusto de arándanos -tile.aether.enchanted_blueberry_bush.ripe.name=Arbusto de arándanos encantado -tile.aether.enchanted_blueberry_bush.stem.name=Tallo de arbusto de arándanos encantado -tile.aether.orange_tree.name=Naranjo -tile.aether.aether_flower.purple_flower.name=Flor morada -tile.aether.aether_flower.white_rose.name=Rosa blanca -tile.aether.aether_flower.burstblossom.name=Burstblossom -tile.aether.aether_flower.moonlit_bloom.name=Flor iluminada por la luna -tile.aether.altar.name=Altar -tile.aether.icestone_ore.name=Mineral de piedra de hielo -tile.aether.icestone_bricks.name=Ladrillos de piedra de hielo -tile.aether.icestone_bricks.base_bricks.name=Base -tile.aether.icestone_bricks.base_pillar.name=Base de pilar -tile.aether.icestone_bricks.keystone.name=Piedra central -tile.aether.icestone_bricks.capstone_bricks.name=Piedra superior -tile.aether.icestone_bricks.capstone_pillar.name=Piedra superior de pilar -tile.aether.icestone_bricks.flagstones.name=Adoquín -tile.aether.icestone_bricks.headstone.name=Piedra superior -tile.aether.icestone_bricks.pillar.name=Pilar -tile.aether.crude_scatterglass.name=Cristal de dispersión crudo -tile.aether.crude_scatterglass.skyroot_frame.name=Marco de Skyroot -tile.aether.crude_scatterglass.arkenium_frame.name=Marco de Arkenium -tile.aether.scatterglass.name=Cristal de dispersión -tile.aether.scatterglass.arkenium_frame.name=Marco de Arkenium -tile.aether.scatterglass.skyroot_frame.name=Marco de Skyroot -tile.aether.quicksoil_glass.name=Cristal de tierra rápida -tile.aether.quicksoil_glass.arkenium_frame.name=Marco de Arkenium -tile.aether.quicksoil_glass.skyroot_frame.name=Marco de Skyroot -tile.aether.zanite_block.name=Bloque de Zanite -tile.aether.aether_sapling.blue_skyroot.name=Brote de Skyroot azul -tile.aether.aether_sapling.green_skyroot.name=Brote de Skyroot verde -tile.aether.aether_sapling.dark_blue_skyroot.name=Brote de Skyroot azul oscuro -tile.aether.aether_sapling.golden_oak.name=Brote de Amberoot -tile.aether.carved_stone.normal.name=Piedra tallada -tile.aether.carved_stone.divine.name=Piedra tallada divina -tile.aether.sentry_stone.normal.name=Piedra centinela -tile.aether.sentry_stone.divine.name=Piedra centinela divina -tile.aether.gravitite_block.name=Bloque de Gravitite -tile.aether.holystone_furnace.name=Horno de piedra sagrada -tile.aether.skyroot_chest.name=Cofre de Skyroot -tile.aether.ambrosium_torch.name=Antorcha de Ambrosium -tile.aether.skyroot_fence.name=Valla de Skyroot -tile.aether.skyroot_fence_gate.name=Puerta de valla de Skyroot -tile.aether.holystone_wall.name=Muro de piedra sagrada -tile.aether.mossy_holystone_wall.name=Muro de piedra sagrada musgosa -tile.aether.carved_stone_wall.name=Muro de mierda tallada -tile.aether.icestone_wall.name=Muro de ladrillos de piedra de hielo -tile.aether.skyroot_log_wall.name=Muro de madera de Skyroot -tile.aether.scatterglass_wall.name=Muro de cristal de dispersión -tile.aether.holystone_brick_wall.name=Muro de ladrillos de piedra sagrada -tile.aether.sentry_stone_wall.name=Muro de piedra centinela -tile.aether.divine_sentry_wall.name=Muro de piedra divina centinela -tile.aether.divine_stone_wall.name=Muro de piedra divina -tile.aether.labyrinth_totem.name=Tótem de laberinto -tile.aether.labyrinth_capstone.name=Piedra superior de laberinto -tile.aether.labyrinth_glowing_pillar.name=Pilar brillante de laberinto -tile.aether.labyrinth_pillar.name=Pilar de laberinto -tile.aether.labyrinth_wall.name=Muro de laberinto -tile.aether.labyrinth_lightstone.name=Piedra ligera de laberinto -tile.aether.labyrinth_base.name=Base de laberinto -tile.aether.labyrinth_headstone.name=Piedra superior de laberinto -tile.aether.labyrinth_eye.name=Ojo de laberinto -tile.aether.labyrinth_chest.name=Cofre de laberinto -tile.aether.skyroot_slab.name=Losa de Skyroot -tile.aether.holystone_slab.name=Losa de piedra sagrada -tile.aether.holystone_brick_slab.name=Losa de ladrillos de piedra sagrada -tile.aether.carved_stone_slab.name=Losa de piedra tallada -tile.aether.divine_carved_stone_slab.name=Losa de piedra divina tallada -tile.aether.sentry_stone_slab.name=Losa de piedra centinela -tile.aether.divine_sentry_stone_slab.name=Losa de piedra divina centinela -tile.aether.icestone_slab.name=Losa de ladrillos de piedra de hielo -tile.aether.mossy_holystone_slab.name=LOsa de piedra sagrada musgosa -tile.aether.faded_holystone_brick_slab.name=Losa de ladrillos de piedra sagrada descolorida -tile.aether.agiosite_slab.name=Losa de Agiosite -tile.aether.agiosite_brick_slab.name=Losa de ladrillos de Agiosite -tile.aether.scatterglass_slab.name=Losa de cristal de dispersión -tile.aether.labyrinth_capstone_slab.name=Losa de piedra superior de laberinto -tile.aether.labyrinth_wall_slab.name=Losa de muro de laberinto -tile.aether.labyrinth_strongblock.name=Labyrinth Strongblock -tile.aether.skyroot_stairs.name=Escaleras de Skyroot -tile.aether.holystone_stairs.name=Escaleras de piedra sagrada -tile.aether.mossy_holystone_stairs.name=Escaleras de piedra sagrada musgosa -tile.aether.holystone_brick_stairs.name=Escaleras de ladrillos de piedra sagrada -tile.aether.sentry_stone_stairs.name=Sentry Stone Stairs -tile.aether.divine_sentry_stone_stairs.name=Divine Sentry Stone Stairs -tile.aether.carved_stone_stairs.name=Carved Stone Stairs -tile.aether.divine_carved_stone_stairs.name=Divine Carved Stone Stairs -tile.aether.cloudwool_block.name=Lana de nubes -tile.aether.woven_sticks.skyroot.name=Palos entrelazados de Skyroot -tile.aether.moa_egg.name=Huevo de Moa -tile.aether.icestone_brick_stairs.name=Escaleras de ladrillos de piedra de hielo -tile.aether.scatterglass_stairs.name=Escaleras de cristal de dispersión -tile.aether.faded_holystone_brick_stairs.name=Escaleras de ladrillos de piedra sagrada descolorida -tile.aether.agiosite_stairs.name=Escaleras de Agiosite -tile.aether.agiosite_brick_stairs.name=Escaleras de ladrillos de Agiosite -tile.aether.burstblossom.name=Burstblossom -tile.aether.moonlit_bloom.name=Moonlit Bloom -tile.aether.icestone_cooler.name=Refrigerante de piedra de hielo -tile.aether.incubator.name=Incubadora -tile.aether.present.name=Regalo -tile.aether.labyrinth_container.small.name=Small Labyrinth Container -tile.aether.labyrinth_container.large.name=Large Labyrinth Container -tile.aether.unstable_labyrinth_capstone.name=Unstable Labyrinth Capstone -tile.aether.wildcard.name=Carta salvaje -tile.aether.masonry_bench.name=Banco de mampostería -tile.aether.holystone_brick.name=Ladrillos de piedra sagrada -tile.aether.holystone_brick.base_bricks.name=Ladrillo base -tile.aether.holystone_brick.base_pillar.name=Base de pilar -tile.aether.holystone_brick.keystone.name=Piedra central -tile.aether.holystone_brick.capstone_bricks.name=Ladrillos superiores -tile.aether.holystone_brick.capstone_pillar.name=Pilar superior -tile.aether.holystone_brick.flagstones.name=Adoquines -tile.aether.holystone_brick.headstone.name=Piedra superior -tile.aether.holystone_brick.pillar.name=Pilar -tile.aether.faded_holystone_brick.name=Ladrillo de piedra sagrada descolorida -tile.aether.faded_holystone_brick.base_bricks.name=Ladrillos base -tile.aether.faded_holystone_brick.base_pillar.name=Base de pilar -tile.aether.faded_holystone_brick.keystone.name=Piedra central -tile.aether.faded_holystone_brick.capstone_bricks.name=Ladrillos superiores -tile.aether.faded_holystone_brick.capstone_pillar.name=Pilar superior -tile.aether.faded_holystone_brick.flagstones.name=Adoquines -tile.aether.faded_holystone_brick.headstone.name=Piedra superior -tile.aether.faded_holystone_brick.pillar.name=Pilar -tile.aether.therastone_brick.name=Ladrillo de Therastone -tile.aether.therastone_brick.base_bricks.name=Ladrillos base -tile.aether.therastone_brick.base_pillar.name=Base de pilar -tile.aether.therastone_brick.keystone.name=Piedra central -tile.aether.therastone_brick.capstone_bricks.name=Ladrillos superiores -tile.aether.therastone_brick.capstone_pillar.name=Pilar superior -tile.aether.therastone_brick.flagstones.name=Adoquines -tile.aether.therastone_brick.headstone.name=Piedra superior -tile.aether.therastone_brick.pillar.name=Pilar -tile.aether.agiosite.name=Agiosite -tile.aether.agiosite_brick.name=Ladrillos de Agiosite -tile.aether.agiosite_brick.base_bricks.name=Ladrillos base -tile.aether.agiosite_brick.base_pillar.name=Base de pilar -tile.aether.agiosite_brick.keystone.name=Piedra central -tile.aether.agiosite_brick.capstone_bricks.name=Ladrillos superiores -tile.aether.agiosite_brick.capstone_pillar.name=Pilar superior -tile.aether.agiosite_brick.flagstones.name=Adoquines -tile.aether.agiosite_brick.pillar.name=Pilar -tile.aether.therawood_planks.name=Tablones de Therawood -tile.aether.therawood_planks.base_planks.name=Tablones base -tile.aether.therawood_planks.base_beam.name=Base de la viga -tile.aether.therawood_planks.highlight.name=Realce -tile.aether.therawood_planks.top_planks.name=Tablones superiores -tile.aether.therawood_planks.top_beam.name=Viga superior -tile.aether.therawood_planks.floorboards.name=Tarima -tile.aether.therawood_planks.beam.name=Viga -tile.aether.therawood_log.name=Tronco de Therawood -tile.aether.therawood_leaves.name=Hojas de Therawood -tile.aether.skyroot_planks.name=Tablones de Skyroot -tile.aether.skyroot_planks.base_planks.name=Tablones base -tile.aether.skyroot_planks.base_beam.name=Base de la viga -tile.aether.skyroot_planks.highlight.name=Realce -tile.aether.skyroot_planks.top_planks.name=Tablones superiores -tile.aether.skyroot_planks.top_beam.name=Viga superior -tile.aether.skyroot_planks.floorboards.name=Tarima -tile.aether.skyroot_planks.tiles.name=Tejas -tile.aether.skyroot_planks.tiles_small.name=Tejas pequeñas -tile.aether.skyroot_planks.beam.name=Viga -tile.aether.dark_skyroot_planks.name=Tablones de Greatroot -tile.aether.light_skyroot_planks.name=Tablones de Wisproot -tile.aether.light_skyroot_planks.base_planks.name=Tablones base -tile.aether.light_skyroot_planks.base_beam.name=Base de la viga -tile.aether.light_skyroot_planks.highlight.name=Realce -tile.aether.light_skyroot_planks.top_planks.name=Tablones superiores -tile.aether.light_skyroot_planks.top_beam.name=Viga superior -tile.aether.light_skyroot_planks.floorboards.name=Tarima -tile.aether.light_skyroot_planks.tiles.name=Tejas -tile.aether.light_skyroot_planks.tiles_small.name=Tejas pequeñas -tile.aether.light_skyroot_planks.beam.name=Viga -tile.aether.quicksoil_glass_pane.name=Panel de cristal de tierra rápida -tile.aether.arkenium_frame.name=Marco de Arkenium -tile.aether.skyroot_frame.name=Marco de Skyroot -tile.aether.scatterglass_pane.name=Panel de cristal de dispersión -tile.aether.skyroot_twigs.name=Leña de Skyroot -tile.aether.holystone_rock.name=Roca de piedra sagrada -tile.aether.crude_scatterglass_pane.name=Panel de cistal de dispersión crudo -tile.aether.cloudwool_carpet.name=Alfombra de lana de nubes -tile.aether.skyroot_bookshelf.name=Librería de Skyroot -tile.aether.holystone_bookshelf.name=Librería de piedra sagrada -tile.aether.outpost_campfire.name=Hoguera -tile.aether.valkyrie_grass.sprout.name=Brote de hierba de Valkiria -tile.aether.valkyrie_grass.full.name=Hierba de Valkiria -tile.aether.aether_teleporter.name=Teletransporte de Aether -tile.aether.thera_dirt.dirt.name=Arena de Thera -tile.aether.thera_grass.normal.name=Hierba de Thera -tile.aether.ferrosite.name=Ferrosite -tile.aether.rusted_ferrosite.name=Ferrosite Oxidada -# -# Aether Items -# -item.aether.skyroot_stick.name=Palo de Skyroot -item.aether.cloudtwine.name=Nube enrollada -item.aether.moa_feather.name=Pluma de Moa -item.aether.cockatrice_feather.name=Pluma de Cockatrice -item.aether.ambrosium_shard.name=Fragmento de Ambrosium -item.aether.ambrosium_chunk.name=Pedazo de Ambrosium -item.aether.zanite_gemstone.name=Gema de Zanite -item.aether.continuum_orb.name=Orbe Continuo -item.aether.arkenium.name=Placa de Arkenium -item.aether.arkenium_strip.name=Tira de Arkenium -item.aether.skyroot_pickaxe.name=Pico de Skyroot -item.aether.skyroot_axe.name=Hacha de Skyroot -item.aether.skyroot_shovel.name=Pala de Skyroot -item.aether.skyroot_sword.name=Espada de Skyroot -item.aether.holystone_pickaxe.name=Pico de piedra sagrada -item.aether.holystone_axe.name=Hacha de piedra sagrada -item.aether.holystone_shovel.name=Pala de piedra sagrada -item.aether.holystone_sword.name=Espada de piedra sagrada -item.aether.zanite_pickaxe.name=Pico de Zanite -item.aether.zanite_axe.name=Hacha de Zanite -item.aether.zanite_shovel.name=Pala de Zanite -item.aether.zanite_sword.name=Espada de Zanite -item.aether.gravitite_pickaxe.name=Pico de Gravitite -item.aether.gravitite_axe.name=Hacha de Gravitite -item.aether.gravitite_sword.name=Espada de Gravitite -item.aether.gravitite_shovel.name=Pala de Gravitite -item.aether.arkenium_pickaxe.name=Pico de Arkenium -item.aether.arkenium_axe.name=Hacha de Arkenium -item.aether.arkenium_shovel.name=Pala de Arkenium -item.aether.arkenium_sword.name=Espada de Arkenium -item.aether.arkenium_shears.name=Tijeras de Arkenium -item.aether.taegore_hide_helmet.name=Sombrero de cuero de Taegore -item.aether.taegore_hide_chestplate.name=Chaqueta de cuero de Taegore -item.aether.taegore_hide_leggings.name=Pantalones de cuero de Taegore -item.aether.taegore_hide_boots.name=Bonas de cuero de Taegore -item.aether.zanite_helmet.name=Casco de Zanite -item.aether.zanite_chestplate.name=Pechera de Zanite -item.aether.zanite_leggings.name=Pantalones de Zanite -item.aether.zanite_boots.name=Botas de Zanite -item.aether.arkenium_helmet.name=Casco de Arkenium -item.aether.arkenium_chestplate.name=Pechera de Arkenium -item.aether.arkenium_leggings.name=Pantalones de Arkenium -item.aether.arkenium_boots.name=Botas de Arkenium -item.aether.gravitite_helmet.name=Casco de Gravitite -item.aether.gravitite_chestplate.name=Pechera de Gravitite -item.aether.gravitite_leggings.name=Pantalones de Gravitite -item.aether.gravitite_boots.name=Botas de Gravitite -item.aether.golden_amber.name=Ámbar dorado -item.aether.aechor_petal.name=Pétalo de Aechor -item.aether.blueberries.name=Arándanos -item.aether.enchanted_blueberry.name=Arándanos encantados -item.aether.orange.name=Naranja -item.aether.wyndberry.name=Wyndberry -item.aether.candy_corn.name=Maíz dulce -item.aether.cocoatrice.name=Cocoatrice -item.aether.jelly_pumpkin.name=Calabaza gelatinosa -item.aether.stomper_pop.name=Caramelo aplastado -item.aether.blueberry_lollipop.name=Piruleta de arándanos -item.aether.orange_lollipop.name=Piruleta de naranja -item.aether.icestone_poprocks.name=Polvos de piedra de hielo -item.aether.ginger_bread_man.name=Galleta de gengibre -item.aether.candy_cane.name=Bastón de caramelo -item.aether.wrapped_chocolates.name=Chocolates envueltos -item.aether.enchanted_wyndberry.name=Wyndberry encantada -item.aether.swet_jelly.blue.name=Mermelada azul de Swet -item.aether.swet_jelly.green.name=Mermelada verde de Swet -item.aether.swet_jelly.purple.name=Mermelada morada de Swet -item.aether.swet_gel.blue.name=Gelatina azul de Swet -item.aether.swet_gel.green.name=Gelatina verde de Swet -item.aether.swet_gel.purple.name=Gelatina morada de Swet -item.aether.swet_sugar.name=Azúcar de Swet -item.aether.skyroot_bucket.name=Cubo de Skyroot -item.aether.skyroot_water_bucket.name=Cubo de Skyroot de agua -item.aether.skyroot_milk_bucket.name=Cubo de Skyroot de leche -item.aether.skyroot_poison_bucket.name=Cubo de Skyroot de veneno -item.aether.valkyrie_music_disc.name=Disco de música de Valkiria -item.aether.labyrinth_music_disc.name=Disco de música de laberinto -item.aether.moa_music_disc.name=Disco de música de Moa -item.aether.aerwhale_music_disc.name=Disco de música de Aerwhale -item.aether.recording_892.name=Grabación #892 -item.aether.healing_stone.name=Piedra curativa -item.aether.healing_stone_depleted.name=Piedra curativa agotada -item.aether.dart_shooter.golden.name=Cerbatana dorada -item.aether.dart_shooter.enchanted.name=Cerbatana encantada -item.aether.dart_shooter.poison.name=Cerbatana venenosa -item.aether.dart.golden.name=Dardo dorado -item.aether.dart.enchanted.name=Dardo encantado -item.aether.dart.poison.name=Dardo venenoso -item.aether.cloud_parachute.cold.name=Paracaídas -item.aether.cloud_parachute.blue.name=Paracaídas azul -item.aether.cloud_parachute.golden.name=Paracaídas amarillo -item.aether.cloud_parachute.green.name=Paracaídas verde -item.aether.cloud_parachute.purple.name=Paracaídas morado -item.aether.aether_saddle.name=Montura de Moa -item.aether.skyroot_door_item.name=Puerta de Skyroot -item.aether.secret_skyroot_door_item.name=Puerta secreta de Skyroot -item.aether.arkenium_door_item.name=Puerta de Arkenium -item.aether.taegore_hide_gloves.name=Taegore Hide Gloves -item.aether.icestone.name=Piedra de hielo -item.aether.skyroot_sign.name=Cartel de Skyroot -item.aether.zanite_gloves.name=Guanteletes de Zanite -item.aether.arkenium_gloves.name=Guanteletes de Arkenium -item.aether.gravitite_gloves.name=Guanteletes de Gravitite -item.aether.shard_of_life.name=Fragmento de vida -item.aether.skyroot_shield.name=Escudo de Skyroot -item.aether.holystone_shield.name=Escudo de piedra sagrada -item.aether.zanite_shield.name=Escudo de Zanite -item.aether.arkenium_shield.name=Escudo de Arkenium -item.aether.gravitite_shield.name=Escudo de Gravitite - -item.aether.skyroot_bed_item.name=Cama de Skyroot -item.aether.moa_egg_item.name=Huevo de Moa -item.aether.rainbow_moa_egg.name=Huevo de Moa arcoiris - -item.aether.cold_cloud_parachute.name=Paracaídas -item.aether.golden_cloud_parachute.name=Paracaídas dorado -item.aether.purple_cloud_parachute.name=Paracaídas morado -item.aether.green_cloud_parachute.name=Paracaídas verde -item.aether.blue_cloud_parachute.name=Paracaídas azul - -item.aether.irradiated_chunk.name=Pedazo irradiado -item.aether.irradiated_sword.name=Espada irradiada -item.aether.irradiated_armor.name=Armadura irradiada -item.aether.irradiated_tool.name=Herramienta irradiada -item.aether.irradiated_ring.name=Anillo irradiado -item.aether.irradiated_neckwear.name=Colgante irradiado -item.aether.irradiated_charm.name=Talismán irradiado -item.aether.irradiated_dust.name=Polvo irradiado - -item.aether.skyroot_crossbow.name=Ballesta de Skyroot -item.aether.holystone_crossbow.name=Ballesta de piedra sagrada -item.aether.zanite_crossbow.name=Ballesta de Zanite -item.aether.arkenium_crossbow.name=Ballesta de Arkenium -item.aether.gravitite_crossbow.name=Ballesta de Gravitite -item.aether.bolt.skyroot.name=Flecha de Skyroot -item.aether.bolt.holystone.name=Flecha de piedra sagrada -item.aether.bolt.scatterglass.name=Flecha de cristal de dispersión -item.aether.bolt.boneshard.name=Flecha de fragmento de hueso -item.aether.bolt.zanite.name=Flecha de Zanite -item.aether.bolt.gravitite.name=Flecha de Gravitite -item.aether.bolt.arkenium.name=Flecha de Arkenium -item.aether.wrapping_paper.name=Papel de embalaje -item.aether.fried_moa_egg.name=Huevo de Moa frito -item.aether.aether_spawn_egg.name=Spawn -item.aether.arkenium_ore_item.name=Mineral de Arkenium -item.aether.gravitite_ore_item.name=Mineral de Gravitite -item.aether.gravitite_plate.name=Placa de Gravitite -item.aether.raw_taegore_meat.name=Pierna de Taegore -item.aether.taegore_steak.name=Carne de Taegore asada -item.aether.taegore_hide.name=Cuero de Taegore -item.aether.burrukai_rib_cut.name=Articulación de la costilla de Burrukai -item.aether.burrukai_ribs.name=Costillas de Burrukai -item.aether.burrukai_pelt.name=Piel de Burrukai -item.aether.kirrid_loin.name=Lomo de Kirrid -item.aether.kirrid_cutlet.name=Chuleta de Kirrid -item.aether.valkyrie_wings.name=Alas de valkiria -item.aether.brettl_cane.name=Bastón de Brettl -item.aether.brettl_grass.name=Hierba de Brettl -tile.aether.aether_portal.name=Portal a Aether -# -#Parachute Abilities -# -cloudParachute.ability.rightClick=§3Uso:§r Click derecho -cloudParachute.ability=§9Abilidad: -cloudParachute.ability.cold=Descenso lento -cloudParachute.ability.golden=Descenso rápido -cloudParachute.ability.purple=Descenso direccional -cloudParachute.ability.green=Descento lento -cloudParachute.ability.blue=Elevación rápida -# -#Moa Propierties -# -moa.feathers=Plumas -moa.keratin=Queratina -moa.eyes=Ojos -moa.jumps=Saltos a media altura - -moa.keratin.sky_blue=Azul cielo -moa.keratin.deep_sky=Cielo oscuro -moa.keratin.sand=Arena -moa.keratin.midnight_sky=Media noche -moa.keratin.swamp=Pantano -moa.keratin.royal=Real -moa.keratin.tempest=Tempestad - -moa.eyes.enchanted=Encantados -moa.eyes.navy=Azul marino -moa.eyes.crimson=Carmesí -moa.eyes.cream=Crema -moa.eyes.emerald=Esmeralda - -moa.feathers.cream=Crema -moa.feathers.midnight_sky=Medianoche -moa.feathers.dawn=Amanecer -moa.feathers.nights_peak=Noche cubierta -moa.feathers.sakura=Sakura -moa.feathers.mud=Barro -moa.feathers.enchanted=Encantada - -moa.marks.spots=Lunares -moa.marks.circles=Radial -moa.marks.curves=Branched -moa.marks.ladder=Zipline -moa.marks.lines=Rayas -# -# Item Rarities -# -item.rarity.none.name=§7§oBásico -item.rarity.common.name=§7§oComún -item.rarity.rare.name=§b§oRaro -item.rarity.epic.name=§5§oÉpico -item.rarity.mythic.name=§6§oMítico -item.rarity.godly.name=§o§aD§bi§6v§di§en§ao -# -# Weapon Tooltips -# -item.aether.skyroot_sword.ability.desc=Doble botín -item.aether.holystone_sword.ability.desc=Suelta Ambrosium -item.aether.zanite_sword.ability.desc=Más fuerte con el uso -item.aether.gravitite_sword.ability.desc=Cambia la gravedad -item.aether.gravitite_sword.use.desc=Shift + Ataque -item.aether.arkenium_sword.ability.desc=Durable y fuerte -item.aether.holy_sword.ability.desc=Destruye a los no-muertos -item.aether.lightning_sword.ability.desc=Golpea con un rayo -item.aether.flaming_sword.ability.desc=Quema a los enemigos -item.aether.vampire_blade.ability.desc=Absorción de vida -item.aether.candy_cane_sword.ability.desc=Suelta bastones de caramelo -item.aether.valkyrie_lance.ability.desc=Alcande aumentado -item.aether.sentry_vaultbox.ability.desc1=§dOutputs: §rÍtems aleatorios -item.aether.sentry_vaultbox.ability.desc2=§3Lanzar: §rClick derecho -item.aether.crossbow.desc1=Velocidad de recarga -item.aether.crossbow.desc2=Segundos -item.aether.crossbow.desc3=Segundo -item.aether.bolt.desc1=Daño de ataque -# -# Tool tooltips -# -item.aether.tool.skyroot.ability.desc=Doble botín de los bloques -item.aether.tool.holystone.ability.desc=Posibilidad de soltar fragmentos de Ambrosium al minar -item.aether.tool.zanite.ability.desc=Minas más rápido a medida que disminuye la durabilidad -item.aether.tool.gravitite.ability.desc=Cambia la gravedad en bloques -item.aether.tool.gravitite.use.desc=Bloque de clic derecho -item.aether.tool.arkenium.ability.desc=Extremadamente durable, pero pesado -item.aether.tool.valkyrie.ability.desc=Alcance extendido -# -# Tooltips -# -item.aether.tooltip.ability=Abilidad -item.aether.tooltip.use=Uso -# -# Armor Tooltips -# -item.aether.armor.zanite.ability.desc=Se vuelve más fuerte con el desgaste -# -# Records -# -item.aether.moa_music_disc.desc=Emile van Krieken - Approaches -item.aether.aerwhale_music_disc.desc=AetherAudio - Aerwhale -item.aether.labyrinth_music_disc.desc=Moorziey - Demise -item.aether.valkyrie_music_disc.desc=Emile van Krieken - Ascending Dawn -item.aether.recording_892.desc=Emile van Krieken - ??? -# -# Entities -# -entity.aether.aechor_plant.name=Aechor Plant -entity.aether.aerbunny.name=Aerbunny -entity.aether.carrion_sprout.name=Carrion Sprout -entity.aether.cockatrice.name=Cockatrice -entity.aether.kirrid.name=Kirrid -entity.aether.moa.name=Moa -entity.aether.aerwhale.name=Aerwhale -entity.aether.zephyr.name=Zephyr -entity.aether.tempest.name=Tempest -entity.aether.taegore.name=Taegore -entity.aether.detonation_sentry.name=Detonation Sentry -entity.aether.battle_sentry.name=Battle Sentry -entity.aether.tracking_sentry.name=Tracking Sentry -entity.aether.chest_mimic.name=Chest Mimic -entity.aether.battle_golem.name=Battle Golem -entity.aether.swet.name=Swet -entity.aether.generator.name=Entity Generator -entity.aether.sentry_guardian.name=Sentry Guardian -entity.aether.production_line.name=Production Line -entity.aether.repair_sentry.name=Repair Sentry -entity.aether.slider.name=Slider -entity.aether.frostpine_totem.name=Frostpine Totem -entity.aether.kraisith.name=Kraisith -entity.aether.shade_of_arkenzus.name=Sombra de Arkenzus -entity.aether.ethereal_wisp.name=Ethereal Wisp -entity.aether.fleeting_wisp.name=Fleeting Wisp -entity.aether.soaring_wisp=Soaring Wisp -entity.aether.fangrin.name=Fangrin -entity.aether.nex_spirit.name=Espíritu Nex -entity.aether.pink_baby_swet.name=Pink Baby Swet -entity.aether.glitterwing.name=Glitterwing -entity.aether.edison.name=Edison -entity.aether.burrukai.name=Burrukai -entity.aether.necromancer.name=Nigromante -# -# Creative Tabs -# -itemGroup.aether.blocks=Aether II (Bloques) -itemGroup.aether.materials=Aether II (Materiales) -itemGroup.aether.tools=Aether II (Herramientas) -itemGroup.aether.weapons=Aether II (Armas) -itemGroup.aether.armor=Aether II (Armaduras) -itemGroup.aether.consumables=Aether II (Consumibles) -itemGroup.aether.companions=Aether II (Compañeros) -itemGroup.aether.miscellaneous=Aether II (Misceláneo) -itemGroup.aether.rings=Aether II (Anillos) -itemGroup.aether.neckwear=Aether II (Collares) -itemGroup.aether.relics=Aether II (Reliquias) -itemGroup.aether.charms=Aether II (Talismanes) -itemGroup.aether.artifacts=Aether II (Artefactos) -itemGroup.aether.visual_variants=Aether II (Bloques Decorativos) -itemGroup.aether.natural_blocks=Aether II (Bloques Naturales) -itemGroup.aether.construction=Aether II (Bloques de Construcción) -itemGroup.aether.utility_blocks=Aether II (Bloques de Utilidades) -itemGroup.aether.dungeon_blocks=Aether II (Bloques de Dungeon) -itemGroup.aether.thera=Aether II (Bloques Theran) -# -# Containers -# TODO: Prefix with aether. -# -container.holystone_furnace=Horno de piedra sagrada -container.skyroot_chest=Cofre de Skyroot -container.skyroot_double_chest=Cofre grande de Skyroot -container.labyrinth_chest=Cofre de laberinto -container.icestone_cooler=Refrigerador de hielo -container.incubator=Incubadora -container.masonry_bench=Banco de mampostería -container.aether_workbench.recipes=Recetas (%s/%s) -# -# Sounds -# -subtitles.aether.portal.glowstone.hum=Zumbido del portal -subtitles.aether.portal.glowstone.trigger=Portal activado -subtitles.aether.portal.glowstone.travel=Teletransporte del portal -subtitles.aether.portal.labyrinth_totem.drone=Zumbido de tótem -subtitles.aether.portal.labyrinth_totem.woosh=Silbido de tótem -subtitles.aether.block.aercloud.bounce=Aercloud recoils -subtitles.aether.mob.aerbunny.ambient=Aerbunny squeaks -subtitles.aether.mob.aerbunny.hurt=Aerbunny hurts -subtitles.aether.mob.aerbunny.death=Aerbunny dies -subtitles.aether.mob.aerbunny.lift=Aerbunny lifted -subtitles.aether.mob.aerwhale.ambient=Aerwhale whistles -subtitles.aether.mob.aerwhale.death=Aerwhale dies -subtitles.aether.mob.cockatrice.ambient=Cockatrice hisses -subtitles.aether.mob.cockatrice.hurt=Cockatrice hurts -subtitles.aether.mob.cockatrice.death=Cockatrice dies -subtitles.aether.mob.tempest.ambient=Tempest drones -subtitles.aether.mob.tempest.hurt=Tempest hurts -subtitles.aether.mob.tempest.death=Tempest dies -subtitles.aether.mob.tempest.angry=Tempest charges -subtitles.aether.mob.tempest.electric_shock=Tempest fires shock -subtitles.aether.mob.zephyr.ambient=Zephyr wooshes -subtitles.aether.mob.zephyr.puff=Zephyr puffs -subtitles.aether.mob.tracking_sentry.alarm=Tracking Sentry alert -subtitles.aether.mob.sentry.ambient=Sentry growls -subtitles.aether.mob.sentry.hurt=Sentry hurts -subtitles.aether.mob.sentry.death=Sentry dies -subtitles.aether.mob.battle_sentry.pounce=Battle Sentry pounces -subtitles.aether.random.stone.thud=Stone thud -subtitles.aether.random.detonating=Explosive detonating -subtitles.aether.random.detonate=Explosive detonated -subtitles.aether.random.dart_shooter.fire=Dart Shooter fired -subtitles.aether.mob.moa.ambient=Moa calls -subtitles.aether.mob.moa.hurt=Moa hurts -subtitles.aether.mob.kirrid.ambient=Kirrid baahs -subtitles.aether.mob.kirrid.hurt=Kirrid hurts -subtitles.aether.mob.kirrid.death=Kirrid dies -subtitles.aether.mob.taegore.ambient=Taegore snorts -subtitles.aether.mob.taegore.hurt=Taegore hurts -subtitles.aether.mob.taegore.death=Taegore dies -subtitles.aether.mob.taegore.attack=Taegore attacks -subtitles.aether.mob.chest_mimic.awake=Chest Mimic awakens -subtitles.aether.random.present_unwrap=Present rips -subtitles.aether.random.dungeon.container.smash=Container smashed -subtitles.aether.mob.slider.awake=Slider awakens -subtitles.aether.mob.slider.collide=Slider collides -subtitles.aether.mob.slider.die=Slider cracks -subtitles.aether.mob.slider.move=Slider moves -subtitles.aether.mob.slider.signal=Slider signals -subtitles.aether.mob.generic.wings.flap=Wings flap -subtitles.aether.mob.burrukai.ambient=Burrukai huffs -subtitles.aether.mob.burrukai.hurt=Burrukai hurts -subtitles.aether.mob.burrukai.death=Burrukai dies -subtitles.aether.mob.burrukai.attack=Burrukai attacks -# -# Accessory slot names -# -gui.aether.slot.none=No equipable -gui.aether.slot.neckwear=Collar -gui.aether.slot.companion=Compañero -gui.aether.slot.shield=Escudo -gui.aether.slot.relic=Reliquia -gui.aether.slot.ring=Anillo -gui.aether.slot.handwear=Guantes -gui.aether.slot.charm=Talismán -gui.aether.slot.artifact=Artefacto -gui.aether.slot.helmet=Casco -gui.aether.slot.chestplate=Pechera -gui.aether.slot.leggings=Pantalones -gui.aether.slot.boots=Botas -gui.aether.slot.offhand=Segunda mano -gui.aether.coolant=Refrigerante -gui.aether.cools_into=Se enfría en: -gui.aether.random_item=Objeto aleatorio -gui.aether.random_armor=Armadura aleatoria -gui.aether.random_sword=Espada aleatoria -gui.aether.random_tool=Herramienta aleatoria -gui.aether.random_ring=Anillo aleatorio -gui.aether.random_neckwear=Collar aleatorio -gui.aether.random_charm=Talismán aleatorio -gui.aether.incubator_fuel=Combustible de la incubadora -gui.aether.baby_moa=Bebé Moa -# -#Ability Tooltips -# -ability.breatheUnderwater.name=Respiración acuática -ability.daggerfrost.name=Daggerfrost -ability.doubleDrops.name=Doble Loot -ability.extraDamage.name=Incremento del daño -ability.punchingDamage.name=Incremento del golpe -ability.freezeBlocks.name=Aura congelante -ability.pauseHunger.name=Comida del cielo -ability.reduceHunger.name=Bien alimentado -ability.regenerateHealth.name=Regeneración de salud -ability.maxHealthMod.name=Modificador de salud máxima -ability.movementSpeedMod.name=Modificador de velocidad de movimiento -ability.modifyXPCollection.name=Modificador de recolección de EXP. -ability.modifyDefense.name=Modificador de defensa -ability.weightTolerance.name=Tolerancia al peso -ability.invisibility.name=Invisibilidad -ability.changeAttackElement.name=Cambiar elemento de ataque -ability.setEnemiesOnFire.name=Toque ardiente -ability.fireImmunity.name=Inmunidad al fuego -ability.companionMaxHealthMod.name=Modificador de salud máxima del compañero -ability.slowfall.name=Caída de pluma -ability.attackSpeedMod.name=Modificador de velocidad de ataque - -elementalState.biological=Biológico -elementalState.frost=Hielo -elementalState.fire=Fuego -elementalState.water=Agua -elementalState.earth=Tierra -elementalState.air=Aire -elementalState.blight=Plaga -elementalState.lightning=Iluminación - -ability.extraDamage.attack=Ataque -ability.extraDamage.desc=%s %s Daño -ability.active=§5Solo Activo: -ability.cosmetic=§eCosmético -ability.breatheUnderwater.desc=§9Respiración acuática -ability.daggerfrost.desc=§9Las bolas de nieve causan daño -ability.doubleDrops.desc1=§9Doble botín de Mobs -ability.doubleDrops.desc2=%s%% Oportunidad -ability.punchingDamage.desc1=%s Daño de puñetazo -ability.punchingDamage.desc2=%s %s Puñetazos -ability.freezeBlocks.desc=§9Congela bloques cercanos -ability.pauseHunger.desc=§9Detiene el hambre -ability.reduceHunger.desc=§9Reduce el hambre -ability.regenerateHealth.desc=§9Regenera salud -ability.maxHealthMod.desc=%s Salud máxima -ability.movementSpeedMod.desc=%s Velocidad de movimiento -ability.modifyXPCollection.desc=%s Experiencia recolectada -ability.defenseMod.desc=%s %s -ability.defenseMod.desc1=Defensa -ability.defenseMod.desc2=Resistencia -ability.invisibility.desc=§9Invisibilidad -ability.changeAttackElement.desc=§9Todos los ataques se vuelven: -ability.setEnemiesOnFire.desc=§9Quema a los enemigos -ability.fireImmunity.desc=§9Inmunidad al fuego -ability.doubleJump.desc=§9Doble salto -ability.companion.desc=Para compañero -ability.leechLife.desc1=§9Absorción de vida -ability.leechLife.desc2=%s%% Oportunidad -ability.slowfall.desc=§9Caída de pluma -ability.weight.desc1=%skg Peso -ability.weight.desc2=%skg Tolerancia al peso -ability.levitateAttackers.desc1=§9Levitar a los atacantes -ability.levitateAttackers.desc2=%s%% Oportunidad -ability.setAttackersOnFire.desc1=§9Quema a los atacantes -ability.setAttackersOnFire.desc2=%s%% Oportunidad -ability.attackSpeedMod.desc=%s Velocidad de Ataque -# -# Tabs -# -tab.equipment=Equipamiento -tab.bug_report=Reportar Errores -tab.backpack.name=Mochila -# -# Chat Messages -# -chat.aether.resurrected=%s fue resucitado por su Espíritu Nex -# -# In Development Menu -# -indev.button=¡Dale! -indev.line1=¡Hola, jugador ansioso! -indev.line2=¡Gracias por tu interés en el mod! Antes de continuar, nos gustaría aclarar algunas cosas. La versión de Aether II que está reproduciendo es una versión Alpha en desarrollo. Esto significa que puede encontrar problemas serios, como: -indev.line3=Corrupción del mundo y cierres -indev.line4=Mobs sin modelos o texturas -indev.line5=Mecánicas del juego rotas -indev.line6=Y lo más importante, ¡muchos bugs! -indev.line7=Estamos muy contentos de que pueda echar un vistazo a Aether II, pero le pedimos amablemente su paciencia y apoyo a cambio a medida que avancemos en el desarrollo. -indev.line8=Al presionar el botón de abajo, reconoces que entiendes los términos anteriores y que no nos harás responsables si a tu juego le crecen piernas y se escapa con tu café. -# -# Bug Report Menu -# -bug_report.button=Abrir el Rastreador de Problemas -bug_report.line1=¡Hola de nuevo! -bug_report.line2=¿Te encontraste con un problema? Si lo desea, puede ayudar a contribuir con Aether II visitando nuestro Rastreador de Problemas. -bug_report.line3=El Rastreador de Problemas es una manera fácil de informar de errores y otros problemas con el mod, dándole acceso directo a la ayuda del desarrollador y nuestra increíble comunidad de voluntarios. -bug_report.line4=Al hacer clic en el siguiente botón, accederá a un sitio web externo en su navegador donde se encuentra nuestro Rastreador de Problemas. ¡Registre una cuenta hoy y ayúdenos a aplastar los errores más rápido que nunca! - -dialog.back=Atrás - -generic.us.okay=Okay - -edison.name=Edison - -edison.us.goodbye=Adiós - -edison.them.outpost_start=Realmente deberías cuidarte mejor, no puedo permitir que la gente salve su pellejo donde quiera que vayas. - -edison.us.who_are_you=¿Quién eres tú? -edison.them.who_are_you=Oh, ¿no nos han presentado? Soy Edison, Edison Wrenk. Comerciante de oficio, pero nuestro "amigo común" me ha pedido que actúe como su contacto en estas regiones. - -edison.us.can_i_buy_something=¿Puedo comprar algo? -edison.them.can_i_buy_something.1=Lo siento amigo, todavía estoy trabajando para ordenar mis existencias. -edison.them.can_i_buy_something.2=Tal vez si regresas más tarde tendré más para ofrecer. - -edison.us.what_is_this_place=¿Qué es este lugar? -edison.them.what_is_this_place=Nuestro amigo no me informó sobre lo que te dijeron, así que me pregunto si te refieres a esta estructura que nos rodea o al mundo en el que nos encontramos. - -edison.us.the_world_were_in=El mundo en el que estamos -edison.them.the_world_were_in.1=Bien entonces, ¿no te han dicho mucho? ¡Esto es Aether! Es un mundo que existe muy por encima del nuestro, tan alto que tiene su propia flora y fauna. -edison.them.the_world_were_in.2=En lo que estás parado ahora es uno de los muchos puestos avanzados de las Valkirias, que originalmente se establecieron como cementerios sagrados si mal no recuerdo, pero que han servido como lugar de descanso para muchos viajeros. - -edison.us.this_outpost=Este puesto avanzado -edison.them.this_outpost.1=¡Ah, esto es un puesto de avanzada de un viejo viajero! Uno construido hace muchos años por las Valkirias como cementerio. -edison.them.this_outpost.2=Desde entonces, muchas personas se han comprometido a mantener estas áreas, convirtiéndolas en un lugar verdaderamente seguro para que cualquier persona que pasee por el paisaje de Aether pueda descansar. - -edison.us.valkyries=¿Valkirias? -edison.them.valkyries.1=Son un poco como los guardias de la ciudad de este mundo, pero err ... Heh ... Mucho más poderosas. Una legionaria en solitario podría destrozarte si le diste razones para hacerlo. -edison.them.valkyries.2=Afortunadamente, son bastante amigables, aunque no son grandes conversadores. Deberías encontrarlos deambulando por la mayoría de las ciudades y pueblos. Tienen algún tipo de pacto sagrado para proteger a las personas o algo así. -edison.them.valkyries.3=Honestamente, no estoy del todo seguro de lo que son, es mejor que le preguntes a uno de los nativos. ¡O a una Valkaria en persona! Son difíciles de perder. - -edison.us.why_am_i_here=¿Por qué estoy aquí? -edison.them.why_am_i_here.1=Bueno, ya ves, parte de mi pequeño acuerdo con nuestro buen amigo es que necesito asegurarme de que no mueras en tu pequeña "misión" o lo que sea que estés haciendo. -edison.them.why_am_i_here.2=Así que he tenido algunos de mis empleados y conocidos que se han familiarizado con su aspecto, por lo que si alguna vez lo encuentran en problemas, lo llevarán de vuelta a uno de estos puestos avanzados y lo curarán. -edison.them.why_am_i_here.3=También se pondrán en contacto conmigo y vendré corriendo a ver cómo está, recibo un pago considerable por este contrato, así que no quiero que parezca que no me importa ... -edison.them.why_am_i_here.4=Dicho esto, no puedo garantizarle a los muchachos que lo encuentren que no tratarán de forrarse los bolsillos. No es que no se lo merezcan, pero quizás decidan que vale la pena que no te cuenten nada, es todo. - -edison.them.busy=Estoy trabajando en algo en este momento, amigo. Vuelve dentro de un poco. - -necromancer.name=Nigromante - -necromancer.them.start1=Veo que llegaste aquí de manera segura. Aprecio que tenga muchas preguntas, pero me temo que tenemos poco tiempo. -necromancer.them.start2=Si me sigues, responderé todas las preguntas a su debido tiempo. - -necromancer.us.leadtheway=Indica el camino. - -aether.warning.deprecated_item=§c¡Obsoleto! ¡Será eliminado! -aether.warning.operator_item=Requiere privilegios de Operador \ No newline at end of file diff --git a/src/main/resources/assets/aether/lang/ru_RU.lang b/src/main/resources/assets/aether/lang/ru_RU.lang deleted file mode 100644 index 24bc86c906..0000000000 --- a/src/main/resources/assets/aether/lang/ru_RU.lang +++ /dev/null @@ -1,1300 +0,0 @@ -# Эфирные блоки -tile.aether.aether_dirt.dirt.name=Эфирная земля -tile.aether.aether_dirt.coarse_dirt.name=Грубая эфирная земля -tile.aether.aether_grass.normal.name=Высокогорная трава -tile.aether.aether_grass.enchanted.name=Зачарованная трава -tile.aether.aether_grass.arctic.name=Арктическая трава -tile.aether.aether_grass.magnetic.name=Магнетическая трава -tile.aether.aether_grass.irradiated.name=Облучённая трава -tile.aether.holystone.normal.name=Святой камень -tile.aether.holystone.mossy.name=Болотный святой камень -tile.aether.holystone.blood_moss.name=Кроваво-мшистый святой камень -tile.aether.aercloud.cold.name=Холодное эфирное облако -tile.aether.aercloud.blue.name=Синее эфирное облако -tile.aether.aercloud.green.name=Зелёное эфирное облако -tile.aether.aercloud.golden.name=Золотое эфирное облако -tile.aether.aercloud.storm.name=Грозовое эфирное облако -tile.aether.aercloud.purple.name=Фиолетовое эфирное облако -tile.aether.skyroot_log.name=Древесина из небесного корня -tile.aether.dark_skyroot_log.name=Древесина из великого корня -tile.aether.light_skyroot_log.name=Древесина из мерцающего корня -tile.aether.golden_oak_log.name=Древесина из янтарного корня -tile.aether.ambrosium_ore.name=Амброзиумная руда -tile.aether.zanite_ore.name=Занитная руда -tile.aether.gravitite_ore.name=Гравититная руда -tile.aether.arkenium_ore.name=Аркениумная руда -tile.aether.continuum_ore.name=Континумная руда -tile.aether.blue_skyroot_leaves.name=Синие листья из небесного корня -tile.aether.green_skyroot_leaves.name=Зелёные листья из небесного корня -tile.aether.dark_blue_skyroot_leaves.name=Тёмно-синие листья из небесного корня -tile.aether.blue_dark_skyroot_leaves.name=Синие листья из великого корня -tile.aether.green_dark_skyroot_leaves.name=Зелёные листья из великого корня -tile.aether.dark_blue_dark_skyroot_leaves.name=Тёмно-синие листья из великого корня -tile.aether.blue_light_skyroot_leaves.name=Синие листья из мерцающего корня -tile.aether.green_light_skyroot_leaves.name=Зелёные листья из мерцающего корня -tile.aether.dark_blue_light_skyroot_leaves.name=Тёмно-синие листья из мерцающего корня -tile.aether.amberoot_leaves.name=Листья из янтарного корня -tile.aether.mutant_leaves.name=Мутировавшие листья -tile.aether.mutant_leaves_decorated.name=Украшенные мутировавшие листья -tile.aether.tall_aether_grass.short.name=Короткая трава от высокогорья -tile.aether.tall_aether_grass.normal.name=Трава от высокогорья -tile.aether.tall_aether_grass.long.name=Длинная трава от высокогорья -tile.aether.quicksoil.name=Быстрая почва -tile.aether.ferrosite_sand.name=Ферросайтовый песок -tile.aether.aether_crafting_table.name=Верстак из небесного корня -tile.aether.skyroot_trapdoor.name=Люк из небесного корня -tile.aether.secret_skyroot_trapdoor.name=Тайный люк из небесного корня -tile.aether.skyroot_ladder.name=Лестница из небесного корня -tile.aether.skyroot_pressure_plate.name=Нажимная пластина из небесного корня -tile.aether.wisproot_pressure_plate.name=Нажимная пластина из мерцающего корня -tile.aether.greatroot_pressure_plate.name=Нажимная пластина из великого корня -tile.aether.skyroot_button.name=Кнопка из небесного корня -tile.aether.wisproot_button.name=Кнопка из мерцающего корня -tile.aether.greatroot_button.name=Кнопка из великого корня -tile.aether.holystone_pressure_plate.name=Нажимная пластина из святого камня -tile.aether.holystone_button.name=Кнопка из святого камня -tile.aether.blueberry_bush.ripe.name=Черничный куст -tile.aether.blueberry_bush.stem.name=Стебель из черничного куста -tile.aether.enchanted_blueberry_bush.ripe.name=Зачарованный черничный куст -tile.aether.enchanted_blueberry_bush.stem.name=Зачарованный стебель из черничного куста -tile.aether.orange_tree.name=Апельсиновое дерево -tile.aether.aether_flower.purple_flower.name=Фиолетовый цветок -tile.aether.aether_flower.white_rose.name=Белая роза -tile.aether.aether_flower.burstblossom.name=Лопнувший цветок -tile.aether.aether_flower.aechor_sprout.name=Эчор росток -tile.aether.altar.name=Алтарь -tile.aether.icestone_ore.name=Руда из ледяного камня -tile.aether.icestone_bricks.name=Кирпичи из ледяного камня -tile.aether.icestone_bricks_decorative.name=Украшенные кирпичи из ледяного камня -tile.aether.icestone_bricks_decorative.base_bricks.name=Основа кирпича -tile.aether.icestone_bricks_decorative.base_pillar.name=Основа колонны -tile.aether.icestone_bricks_decorative.keystone.name=Краеугольный камень -tile.aether.icestone_bricks_decorative.capstone_bricks.name=Облицовочный камень -tile.aether.icestone_bricks_decorative.capstone_pillar.name=Колонна из облицовочного камня -tile.aether.icestone_bricks_decorative.flagstones.name=Каменные плиты -tile.aether.icestone_bricks_decorative.headstone.name=Надгробный камень -tile.aether.icestone_pillar.name=Кирпичная колонна из ледяного камня -tile.aether.crude_scatterglass.name=Сырое развеянного стекло -tile.aether.crude_scatterglass_decorative.name=Украшенное сырое развеянного стекло -tile.aether.crude_scatterglass_decorative.skyroot_frame.name=Каркас из небесного корня -tile.aether.crude_scatterglass_decorative.arkenium_frame.name=Каркас из аркения -tile.aether.scatterglass.name=Развеянное стекло -tile.aether.scatterglass_decorative.name=Украшенное развеянного стекло -tile.aether.scatterglass_decorative.arkenium_frame.name=Украшенный каркас из аркения -tile.aether.scatterglass_decorative.skyroot_frame.name=Украшенный каркас из небесного корня -tile.aether.quicksoil_glass.name=Травяная быстрая почва -tile.aether.quicksoil_glass_decorative.name=Украшенная травяная быстрая почва -tile.aether.quicksoil_glass_decorative.arkenium_frame.name=Каркас из аркения -tile.aether.quicksoil_glass_decorative.skyroot_frame.name=Каркас из небесного корня -tile.aether.zanite_block.name=Блок занита -tile.aether.skyroot_sapling.blue_skyroot.name=Синий саженец из небесного корня -tile.aether.skyroot_sapling.green_skyroot.name=Зелёный саженец из небесного корня -tile.aether.skyroot_sapling.dark_blue_skyroot.name=Тёмно-синий саженец из небесного корня -tile.aether.unique_sapling.amberoot.name=Саженец из янтарного корня -tile.aether.unique_sapling.mutant_tree.name=Саженец дерева сумасшедшего мутанта Эдисона -tile.aether.wisproot_sapling.wisproot_green.name=Зелёный саженец из мерцающего корня -tile.aether.wisproot_sapling.wisproot_blue.name=Синий саженец из мерцающего корня -tile.aether.wisproot_sapling.wisproot_dark_blue.name=Тёмно-синий саженец из мерцающего корня -tile.aether.greatroot_sapling.green_greatroot.name=Зелёный саженец из великого корня -tile.aether.greatroot_sapling.blue_greatroot.name=Синий саженец из великого корня -tile.aether.greatroot_sapling.dark_blue_greatroot.name=Тёмно-синий саженец из великого корня -tile.aether.carved_stone.normal.name=Резной камень -tile.aether.carved_stone.divine.name=Божественный резной камень -tile.aether.sentry_stone.normal.name=Патрульный камень -tile.aether.sentry_stone.divine.name=Божественный патрульный камень -tile.aether.gravitite_block.name=Блок гравитита -tile.aether.holystone_furnace.name=Печь из святого камня -tile.aether.skyroot_chest.name=Сундук из небесного корня -tile.aether.ambrosium_torch.name=Факел из амброзия -tile.aether.skyroot_fence.name=Забор из небесного корня -tile.aether.skyroot_fence_gate.name=Ворота из небесного корня -tile.aether.wisproot_fence.name=Забор из мерцающего корня -tile.aether.wisproot_fence_gate.name=Ворота из мерцающего корня -tile.aether.greatroot_fence.name=Забор из великого корня -tile.aether.greatroot_fence_gate.name=Ворота из великого корня -tile.aether.therawood_fence.name=Забор из тера дерева -tile.aether.therawood_fence_gate.name=Ворота из тера дерева -tile.aether.holystone_wall.name=Стена из святого камня -tile.aether.mossy_holystone_wall.name=Стена из болотного святого камня -tile.aether.carved_stone_wall.name=Стена из резного камня -tile.aether.icestone_wall.name=Кирпичная стена из ледяного камня -tile.aether.skyroot_log_wall.name=Стена из древесины небесного корня -tile.aether.scatterglass_wall.name=Стена из развеянного стекла -tile.aether.holystone_brick_wall.name=Кирпичная стена из святого камня -tile.aether.sentry_stone_wall.name=Стена из патрульного камня -tile.aether.divine_sentry_wall.name=Стена из божественного патрульного камня -tile.aether.divine_stone_wall.name=Стена из божественного камня -tile.aether.wisproot_log_wall.name=Стена из древесины мерцающего корня -tile.aether.greatroot_log_wall.name=Стена из древесины великого корня -tile.aether.therawood_log_wall.name=Стена из древесины тера дерева -tile.aether.agiosite_wall.name=Стена из агиосайта -tile.aether.agiosite_brick_wall.name=Кирпичная стена из агиосайта -tile.aether.faded_holystone_brick_wall.name=Кирпичная стена из увядшего святого камня -tile.aether.sentrystone_brick_wall.name=Кирпичная стена из патрульного камня -tile.aether.hellfirestone_brick_wall.name=Кирпичная стена из камня адского пламени -tile.aether.therastone_brick_wall.name=Кирпичная стена из тера камня -tile.aether.labyrinth_totem.name=Лабиринтный тотем -tile.aether.labyrinth_capstone.name=Лабиринтный облицовочный камень -tile.aether.labyrinth_glowing_pillar.name=Светящаяся лабиринтная колонна -tile.aether.labyrinth_pillar.name=Лабиринтная колонна -tile.aether.labyrinth_wall.name=Лабиринтная стена -tile.aether.labyrinth_lightstone.name=Лабиринтный светлый камень -tile.aether.labyrinth_base.name=Лабиринтная основа -tile.aether.labyrinth_headstone.name=Лабиринтный надгробный камень -tile.aether.labyrinth_eye.name=Лабиринтный глаз -tile.aether.labyrinth_chest.name=Лабиринтный сундук -tile.aether.skyroot_slab.name=Плита из небесного корня -tile.aether.wisproot_slab.name=Плита из мерцающего корня -tile.aether.greatroot_slab.name=Плита из великого корня -tile.aether.therawood_slab.name=Плита из тера дерева -tile.aether.holystone_slab.name=Плита из святого камня -tile.aether.holystone_brick_slab.name=Кирпичная плита из святого камня -tile.aether.therastone_brick_slab.name=Кирпичная плита из тера камня -tile.aether.carved_stone_slab.name=Плита из резного камня -tile.aether.divine_carved_stone_slab.name=Плита из божественного резного камня -tile.aether.sentry_stone_slab.name=Плита из патрульного камня -tile.aether.divine_sentry_stone_slab.name=Плита из божественного патрульного камня -tile.aether.icestone_slab.name=Кирпичная плита из ледяного камня -tile.aether.mossy_holystone_slab.name=Плита из болотного святого камня -tile.aether.faded_holystone_brick_slab.name=Кирпичная плита из увядшего святого камня -tile.aether.agiosite_slab.name=Агиосайтовая плита -tile.aether.agiosite_brick_slab.name=Агиосайтовая кирпичная плита -tile.aether.scatterglass_slab.name=Плита из развеянного стекла -tile.aether.sentrystone_brick_slab.name=Кирпичная плита из патрульного камня -tile.aether.hellfirestone_brick_slab.name=Кирпичная плита из камня адского пламени -tile.aether.labyrinth_capstone_slab.name=Лабиринтная плита из облицовочного камня -tile.aether.labyrinth_wall_slab.name=Лабиринтная плита перекрытия -tile.aether.labyrinth_strongblock.name=Лабиринтный прочный камень -tile.aether.skyroot_stairs.name=Ступени из небесного корня -tile.aether.wisproot_stairs.name=Ступени из мерцающего корня -tile.aether.greatroot_stairs.name=Ступени из великого корня -tile.aether.therawood_stairs.name=Ступени из тера дерева -tile.aether.holystone_stairs.name=Ступени из святого камня -tile.aether.mossy_holystone_stairs.name=Ступени из болотного святого камня -tile.aether.holystone_brick_stairs.name=Кирпичные ступени из святого камня -tile.aether.therastone_brick_stairs.name=Кирпичные ступени из тера камня -tile.aether.sentry_stone_stairs.name=Ступени из патрульного камня -tile.aether.divine_sentry_stone_stairs.name=Ступени из божественного патрульного камня -tile.aether.carved_stone_stairs.name=Ступени из резного камня -tile.aether.divine_carved_stone_stairs.name=Ступени из божественного резного камня -tile.aether.cloudwool_block.name=Облачная шерсть -tile.aether.woven_sticks.skyroot.name=Тканные палки из небесного корня -tile.aether.moa_egg.name=Яйцо моа -tile.aether.icestone_brick_stairs.name=Кирпичные ступени из ледяного камня -tile.aether.scatterglass_stairs.name=Ступени из развеянного стекла -tile.aether.faded_holystone_brick_stairs.name=Кирпичные ступени из увядшего святого камня -tile.aether.agiosite_stairs.name=Агиосайтовые ступени -tile.aether.agiosite_brick_stairs.name=Агиосайтовые кирпичные ступени -tile.aether.sentrystone_brick_stairs.name=Кирпичные ступени из патрульного камня -tile.aether.hellfirestone_brick_stairs.name=Кирпичные ступени из камня адского пламени -tile.aether.burstblossom.name=Лопнувший цветок -tile.aether.moonlit_bloom.name=Лунный цветок -tile.aether.icestone_cooler.name=Холодильник из ледяного камня -tile.aether.incubator.name=Инкубатор -tile.aether.present.name=Подарок -tile.aether.labyrinth_container.small.name=Маленький лабиринтный контейнер -tile.aether.labyrinth_container.large.name=Большой лабиринтный контейнер -tile.aether.unstable_labyrinth_capstone.name=Нестабильный лабиринтный облицовочный камень -tile.aether.wildcard.name=Шаблон -tile.aether.masonry_bench.name=Верстак каменщика -tile.aether.holystone_brick.name=Кирпичи из святого камня -tile.aether.holystone_brick_decorative.name=Украшенные кирпичи из святого камня -tile.aether.holystone_brick_decorative.base_bricks.name=Основа кирпичей -tile.aether.holystone_brick_decorative.base_pillar.name=Основа колонны -tile.aether.holystone_brick_decorative.keystone.name=Краеугольный камень -tile.aether.holystone_brick_decorative.capstone_bricks.name=Кирпичи из облицовочного камня -tile.aether.holystone_brick_decorative.capstone_pillar.name=Колонна из облицовочного камня -tile.aether.holystone_brick_decorative.flagstones.name=Каменные плиты -tile.aether.holystone_brick_decorative.headstone.name=Надгробный камень -tile.aether.holystone_pillar.name=Кирпичная колонна из святого камня -tile.aether.sentrystone_brick.name=Кирпичи из патрульного камня -tile.aether.sentrystone_brick_decorative.name=Украшенные кирпичи из патрульного камня -tile.aether.sentrystone_brick_decorative.base_bricks.name=Основа кирпичей -tile.aether.sentrystone_brick_decorative.base_pillar.name=Основа колонны -tile.aether.sentrystone_brick_decorative.keystone.name=Краеугольный камень -tile.aether.sentrystone_brick_decorative.capstone_bricks.name=Кирпичи из облицовочного камня -tile.aether.sentrystone_brick_decorative.capstone_pillar.name=Колонна из облицовочного камня -tile.aether.sentrystone_brick_decorative.flagstones.name=Каменные плиты -tile.aether.sentrystone_brick_decorative.lightstone.name=Лёгкий камень -tile.aether.sentrystone_pillar.name=Кирпичная колонна из патрульного камня -tile.aether.sentrystone_brick_decorative_lit.name=Украшенные зажжённые кирпичи из патрульного камня -tile.aether.sentrystone_brick_decorative_lit.base_bricks.name=Зажжённая основа кирпича -tile.aether.sentrystone_brick_decorative_lit.base_pillar.name=Зажжённая основа колонны -tile.aether.sentrystone_brick_decorative_lit.keystone.name=Зажжённый краеугольный камень -tile.aether.sentrystone_brick_decorative_lit.capstone_bricks.name=Зажжённые облицовочные кирпичи -tile.aether.sentrystone_brick_decorative_lit.capstone_pillar.name=Зажжённая облицовочная колонна -tile.aether.sentrystone_brick_decorative_lit.lightstone.name=Зажжённый лёгкий камень -tile.aether.sentrystone_pillar_lit.name=Зажжённая кирпичная колонна из патрульного камня -tile.aether.hellfirestone_brick.name=Кирпичи из камня адского пламени -tile.aether.hellfirestone_brick_decorative.name=Украшенные кирпичи из камня адского пламени -tile.aether.hellfirestone_brick_decorative.base_bricks.name=Основа кирпича -tile.aether.hellfirestone_brick_decorative.base_pillar.name=Основа колонны -tile.aether.hellfirestone_brick_decorative.keystone.name=Краеугольный камень -tile.aether.hellfirestone_brick_decorative.capstone_bricks.name=Кирпичи из облицовочного камня -tile.aether.hellfirestone_brick_decorative.capstone_pillar.name=Колонна из облицовочного камня -tile.aether.hellfirestone_brick_decorative.flagstones.name=Каменные плиты -tile.aether.hellfirestone_lantern.name=Фонарь из камня адского пламени -tile.aether.hellfirestone_pillar.name=Кирпичная колонна из камня адского пламени -tile.aether.faded_holystone_brick.name=Кирпичи из увядшего святого камня -tile.aether.faded_holystone_brick_decorative.name=Украшенные кирпичи из увядшего святого камня -tile.aether.faded_holystone_brick_decorative.base_bricks.name=Основа кирпича -tile.aether.faded_holystone_brick_decorative.base_pillar.name=Основа колонны -tile.aether.faded_holystone_brick_decorative.keystone.name=Краеугольный камень -tile.aether.faded_holystone_brick_decorative.capstone_bricks.name=Кирпичи из облицовочного камня -tile.aether.faded_holystone_brick_decorative.capstone_pillar.name=Колонна из облицовочного камня -tile.aether.faded_holystone_brick_decorative.flagstones.name=Каменные плиты -tile.aether.faded_holystone_brick_decorative.headstone.name=Надгробный камень -tile.aether.faded_holystone_pillar.name=Кирпичная колонна из увядшего святого камня -tile.aether.therastone_brick.name=Кирпичи из тера камня -tile.aether.therastone_brick_decorative.name=Украшенные кирпичи из тера камня -tile.aether.therastone_brick_decorative.base_bricks.name=Основа кирпича -tile.aether.therastone_brick_decorative.base_pillar.name=Основа колонны -tile.aether.therastone_brick_decorative.keystone.name=Краеугольный камень -tile.aether.therastone_brick_decorative.capstone_bricks.name=Кирпичи из облицовочного камня -tile.aether.therastone_brick_decorative.capstone_pillar.name=Колонна из облицовочного камня -tile.aether.therastone_brick_decorative.flagstones.name=Каменные плиты -tile.aether.therastone_brick_decorative.headstone.name=Надгробный камень -tile.aether.therastone_pillar.name=Колонна из тера камня -tile.aether.agiosite.name=Агиосайт -tile.aether.agiosite_brick.name=Агиосайтовые кирпичи -tile.aether.agiosite_brick_decorative.name=Украшенные агиосайтовые кирпичи -tile.aether.agiosite_brick_decorative.base_bricks.name=Основа кирпичей -tile.aether.agiosite_brick_decorative.base_pillar.name=Основа колонны -tile.aether.agiosite_brick_decorative.keystone.name=Краеугольный камень -tile.aether.agiosite_brick_decorative.capstone_bricks.name=Кирпичи из облицовочного камня -tile.aether.agiosite_brick_decorative.capstone_pillar.name=Колонна из облицовочного камня -tile.aether.agiosite_brick_decorative.flagstones.name=Каменные плиты -tile.aether.agiosite_pillar.name=Агиосайтовая кирпичная колонна -tile.aether.therawood_planks.name=Доски из тера древесины -tile.aether.therawood_decorative.name=Украшенная тера древесина -tile.aether.therawood_decorative.base_planks.name=Основа досок -tile.aether.therawood_decorative.base_beam.name=Основа балки -tile.aether.therawood_decorative.highlight.name=Подчёркнутый -tile.aether.therawood_decorative.top_planks.name=Вершина досок -tile.aether.therawood_decorative.top_beam.name=Вершина балки -tile.aether.therawood_decorative.floorboards.name=Паркет -tile.aether.therawood_beam.name=Балка из тера древесины -tile.aether.therawood_log.name=Бревно из тера древесины -tile.aether.therawood_leaves.name=Листья из тера древесины -tile.aether.skyroot_planks.name=Доски из небесного корня -tile.aether.skyroot_decorative.name=Украшенные доски из небесного корня -tile.aether.skyroot_decorative.base_planks.name=Основа досок -tile.aether.skyroot_decorative.base_beam.name=Основа балки -tile.aether.skyroot_decorative.highlight.name=Подчёркнутый -tile.aether.skyroot_decorative.top_planks.name=Вершина досок -tile.aether.skyroot_decorative.top_beam.name=Вершина балки -tile.aether.skyroot_decorative.floorboards.name=Паркет -tile.aether.skyroot_decorative.tiles.name=Черепица -tile.aether.skyroot_decorative.tiles_small.name=Малая черепица -tile.aether.skyroot_beam.name=Балка из небесного корня -tile.aether.dark_skyroot_planks.name=Доски из великого корня -tile.aether.dark_skyroot_decorative.name=Украшенные доски из великого корня -tile.aether.dark_skyroot_decorative.base_planks.name=Основа досок -tile.aether.dark_skyroot_decorative.base_beam.name=Основа балки -tile.aether.dark_skyroot_decorative.highlight.name=Подчёркнутый -tile.aether.dark_skyroot_decorative.top_planks.name=Верхушка досок -tile.aether.dark_skyroot_decorative.top_beam.name=Верхушка балки -tile.aether.dark_skyroot_decorative.floorboards.name=Паркет -tile.aether.dark_skyroot_decorative.tiles.name=Черепица -tile.aether.dark_skyroot_decorative.tiles_small.name=Малая черепица -tile.aether.dark_skyroot_beam.name=Балка из великого корня -tile.aether.light_skyroot_planks.name=Доски из мерцающего корня -tile.aether.light_skyroot_decorative.name=Украшенные доски из мерцающего корня -tile.aether.light_skyroot_decorative.base_planks.name=Основа досок -tile.aether.light_skyroot_decorative.base_beam.name=Основа балки -tile.aether.light_skyroot_decorative.highlight.name=Подчёркнутый -tile.aether.light_skyroot_decorative.top_planks.name=Верхушка досок -tile.aether.light_skyroot_decorative.top_beam.name=Верхушка балки -tile.aether.light_skyroot_decorative.floorboards.name=Паркет -tile.aether.light_skyroot_decorative.tiles.name=Черепица -tile.aether.light_skyroot_decorative.tiles_small.name=Малая черепица -tile.aether.light_skyroot_beam.name=Балка из мерцающего корня -tile.aether.quicksoil_glass_pane.name=Стеклянная панель из быстрой почвой -tile.aether.quicksoil_glass_pane_decorative.name=Украшенная стеклянная панель из быстрой почвой -tile.aether.quicksoil_glass_pane_decorative.arkenium_frame.name=Каркас из аркения -tile.aether.quicksoil_glass_pane_decorative.skyroot_frame.name=Каркас из небесного корня -tile.aether.arkenium_frame.name=Каркас из аркения -tile.aether.skyroot_frame.name=Каркас из небесного корня -tile.aether.scatterglass_pane.name=Панель из развеянного стекла -tile.aether.scatterglass_pane_decorative.name=Украшенная панель из развеянного стекла -tile.aether.scatterglass_pane_decorative.arkenium_frame.name=Каркас из аркения -tile.aether.scatterglass_pane_decorative.skyroot_frame.name=Каркас из небесного корня -tile.aether.skyroot_twigs.name=Ветка небесного корня -tile.aether.holystone_rock.name=Камешек святого камня -tile.aether.crude_scatterglass_pane.name=Сырая панель из развеянного стекла -tile.aether.crude_scatterglass_pane_decorative.name=Украшенная сырая панель из развеянного стекла -tile.aether.crude_scatterglass_pane_decorative.arkenium_frame.name=Каркас из аркения -tile.aether.crude_scatterglass_pane_decorative.skyroot_frame.name=Каркас из небесного корня -tile.aether.cloudwool_carpet.name=Ковёр из облачной шерсти -tile.aether.skyroot_bookshelf.name=Книжная полка из небесного корня -tile.aether.holystone_bookshelf.name=Книжная полка из святого камня -tile.aether.outpost_campfire.name=Костёр аванпоста -tile.aether.valkyrie_grass.sprout.name=Травяной росток валькирии -tile.aether.valkyrie_grass.full.name=Трава валькирии -tile.aether.aether_teleporter.name=Портал в Эфир -tile.aether.thera_dirt.dirt.name=Тера земля -tile.aether.thera_grass.normal.name=Тера трава -tile.aether.ferrosite.name=Ферросайт -tile.aether.rusted_ferrosite.name=Ржавый ферросайт -tile.aether.highlands_snow.name=Снег высокогорья -tile.aether.highlands_snow_layer.name=Снег высокогорья -tile.aether.highlands_ice.name=Лёд высокогорья -tile.aether.highlands_packed_ice.name=Упакованный лёд высокогорья -tile.aether.plumproot.name=Толстый корень -tile.aether.highlands_ice_crystal.stalagmite.name=Ледяной кристалл -tile.aether.candy_cane_block.name=Карамель -tile.aether.candy_cane_wall.name=Карамельная стена -tile.aether.arctic_spikespring.name=Арктический весенний шип -tile.aether.barkshroom.name=Гриб коры -tile.aether.blue_swingtip.name=Синий поворотный кончик -tile.aether.forgotten_rose.name=Забытая роза -tile.aether.green_swingtip.name=Зелёный поворотный кончик -tile.aether.highlands_bush.name=Куст высокогорья -tile.aether.highlands_tulips.name=Тюльпаны высокогорья -tile.aether.irradiated_flower.name=Облучённый цветок -tile.aether.magnetic_shroom.name=Магнетический гриб -tile.aether.neverbloom.name=Всегдацветок -tile.aether.pink_swingtip.name=Розовый поворотный кончик -tile.aether.quickshoot.name=Быстрый выстрел -tile.aether.stoneshroom.name=Каменный гриб - -# Aether предметы -item.aether.skyroot_stick.name=Палка из небесного корня -item.aether.cloudtwine.name=Облачная верёвка -item.aether.moa_feather.name=Перо моа -item.aether.cockatrice_feather.name=Перо василиска -item.aether.ambrosium_shard.name=Осколок амброзия -item.aether.ambrosium_chunk.name=Кусочек амброзия -item.aether.zanite_gemstone.name=Занитовый самоцвет -item.aether.continuum_orb.name=Непрерывная сфера -item.aether.arkenium.name=Пластина из аркения -item.aether.arkenium_strip.name=Полоска из аркения -item.aether.skyroot_pickaxe.name=Кирка из небесного корня -item.aether.skyroot_axe.name=Топор из небесного корня -item.aether.skyroot_shovel.name=Лопата из небесного корня -item.aether.skyroot_sword.name=Меч из небесного корня -item.aether.holystone_pickaxe.name=Кирка из святого камня -item.aether.holystone_axe.name=Топор из святого камня -item.aether.holystone_shovel.name=Лопата из святого камня -item.aether.holystone_sword.name=Меч из святого камня -item.aether.zanite_pickaxe.name=Занитовая кирка -item.aether.zanite_axe.name=Занитовый топор -item.aether.zanite_shovel.name=Занитовая лопата -item.aether.zanite_sword.name=Занитовый меч -item.aether.gravitite_pickaxe.name=Гравититовая кирка -item.aether.gravitite_axe.name=Гравититовый топор -item.aether.gravitite_sword.name=Гравититовый меч -item.aether.gravitite_shovel.name=Гравититовая лопата -item.aether.arkenium_pickaxe.name=Кирка из аркения -item.aether.arkenium_axe.name=Топор из аркения -item.aether.arkenium_shovel.name=Лопата из аркения -item.aether.arkenium_sword.name=Меч из аркения -item.aether.arkenium_shears.name=Ножницы из аркения -item.aether.taegore_hide_helmet.name=Капюшон из шкуры Таегора -item.aether.taegore_hide_chestplate.name=Куртка из шкуры Таегора -item.aether.taegore_hide_leggings.name=Поножи из шкуры Таегора -item.aether.taegore_hide_boots.name=Ботинки из шкуры Таегора -item.aether.burrukai_pelt_helmet.name=Меховой капюшон Буррукайя -item.aether.burrukai_pelt_chestplate.name=Меховая куртка Буррукайя -item.aether.burrukai_pelt_leggings.name=Меховые поножи Буррукайя -item.aether.burrukai_pelt_boots.name=Меховые ботинки Буррукайя -item.aether.zanite_helmet.name=Занитовый шлем -item.aether.zanite_chestplate.name=Занитовый нагрудник -item.aether.zanite_leggings.name=Занитовые поножи -item.aether.zanite_boots.name=Занитовые ботинки -item.aether.arkenium_helmet.name=Шлем из аркения -item.aether.arkenium_chestplate.name=Нагрудник из аркения -item.aether.arkenium_leggings.name=Поножи из аркения -item.aether.arkenium_boots.name=Ботинки из аркения -item.aether.gravitite_helmet.name=Гравититовый шлем -item.aether.gravitite_chestplate.name=Гравититовый нагрудник -item.aether.gravitite_leggings.name=Гравититовые поножи -item.aether.gravitite_boots.name=Гравититовые ботинки -item.aether.golden_amber.name=Золотой янтарь -item.aether.aechor_petal.name=Эчор лепесток -item.aether.blueberries.name=Черника -item.aether.enchanted_blueberry.name=Зачарованная черника -item.aether.orange.name=Апельсин -item.aether.wyndberry.name=Переулочная ягода -item.aether.candy_corn.name=Попкорн -item.aether.cocoatrice.name=Мгновенная шоколадная -item.aether.jelly_plumproot.name=Желейный толстый корень -item.aether.stomper_pop.name=Хлопковый топтун -item.aether.blueberry_lollipop.name=Черничный леденец на палочке -item.aether.orange_lollipop.name=Апельсиновый леденец на палочке -item.aether.icestone_poprocks.name=Шипучка из ледяного камня -item.aether.ginger_bread_man.name=Пряничный человечек -item.aether.candy_cane.name=Леденец -item.aether.yule_log.name=Рождественское полено -item.aether.wrapped_chocolates.name=Завёрнутый шоколад -item.aether.enchanted_wyndberry.name=Зачарованная переулочная ягода -item.aether.swet_jelly.blue.name=Синий сладкий мармелад -item.aether.swet_jelly.green.name=Зелёный сладкий мармелад -item.aether.swet_jelly.purple.name=Розовый сладкий мармелад -item.aether.swet_gel.blue.name=Синий сладкий гель -item.aether.swet_gel.green.name=Зелёный сладкий гель -item.aether.swet_gel.purple.name=Розовый сладкий гель -item.aether.swet_sugar.name=Сладкий сахар -item.aether.skyroot_bucket.name=Ведро из небесного корня -item.aether.skyroot_water_bucket.name=Ведро воды из небесного корня -item.aether.skyroot_milk_bucket.name=Ведро молока из небесного корня -item.aether.skyroot_poison_bucket.name=Ведро с ядом из небесного корня -item.aether.valkyrie_music_disc.name=Музыкальный диск Валькирии -item.aether.labyrinth_music_disc.name=Лабиринтный музыкальный диск -item.aether.moa_music_disc.name=Музыкальный диск Моа -item.aether.aerwhale_music_disc.name=Музыкальный диск Эфирного кита -item.aether.recording_892.name=Запись #892 -item.aether.healing_stone.name=Исцеляющий камень -item.aether.healing_stone_depleted.name=Истощённый исцеляющий камень -item.aether.dart_shooter.golden.name=Золотой дротикомёт -item.aether.dart_shooter.enchanted.name=Зачарованный дротикомёт -item.aether.dart_shooter.poison.name=Отравленный дротикомёт -item.aether.dart.golden.name=Золотой дротик -item.aether.dart.enchanted.name=Зачарованный дротик -item.aether.dart.poison.name=Отравленный дротик -item.aether.cloud_parachute.cold.name=Парашют из холодного облака -item.aether.cloud_parachute.blue.name=Парашют из синего облака -item.aether.cloud_parachute.purple.name=Парашют из фиолетового облака -item.aether.aether_saddle.name=Седло моа -item.aether.skyroot_door_item.name=Дверь из небесного корня -item.aether.secret_skyroot_door_item.name=Тайная дверь из небесного корня -item.aether.arkenium_door_item.name=Дверь из аркения -item.aether.taegore_hide_gloves.name=Укрывающие перчатки Таегора -item.aether.burrukai_pelt_gloves.name=Меховой перчатки Буррикайя -item.aether.icestone.name=Ледяной камень -item.aether.skyroot_sign.name=Табличка из небесного корня -item.aether.zanite_gloves.name=Занитные рукава стражей -item.aether.arkenium_gloves.name=Нарукавники из аркения -item.aether.gravitite_gloves.name=Гравитные нарукавники -item.aether.shard_of_life.name=Осколок жизни -item.aether.skyroot_shield.name=Щит из небесного корня -item.aether.holystone_shield.name=Щит из святого камня -item.aether.zanite_shield.name=Занитовый щит -item.aether.arkenium_shield.name=Щит из аркения -item.aether.gravitite_shield.name=Гравитный щит -item.aether.plumproot_mash.name=Пюре из толстого корня -item.aether.plumproot_pie.name=Пирог из толстого корня -item.aether.winter_hat.name=Зимняя шапка -item.aether.eggnog.name=Эгг-ног -item.aether.scatterglass_vial.name=Флакон из развеянного стекло -item.aether.water_vial.name=Флакон с водой -item.aether.antivenom_vial.name=Флакон с противоядием -item.aether.antitoxin_vial.name=Флакон с антидотом -item.aether.bandage.name=Бинт -item.aether.splint.name=Шина -item.aether.crude_scatterglass_shard.name=Осколок развеянного стекла -item.aether.valkyrie_tea.name=Чай валькирии -item.aether.skyroot_pinecone.name=Шишка из небесного корня -item.aether.moa_feed.name=Корм моа -item.aether.moa_feed_blueberries.name=Черничный корм для Моа -item.aether.moa_feed_enchanted_blueberries.name=Зачарованный корм моа -item.aether.brettl_rope.name=Brettl верёвка - -item.aether.skyroot_bed_item.name=Кровать из небесного корня -item.aether.moa_egg_item.name=Яйцо Моа -item.aether.rainbow_moa_egg.name=Радужное яйцо Моа - -item.aether.cold_cloud_parachute.name=Парашют из холодного облака -item.aether.purple_cloud_parachute.name=Парашют из холодного фиолетового облака -item.aether.blue_cloud_parachute.name=Парашют из холодного синего облака - -item.aether.irradiated_chunk.name=Облучённый кусок -item.aether.irradiated_sword.name=Облучённый меч -item.aether.irradiated_armor.name=Облучённая броня -item.aether.irradiated_tool.name=Облучённый инструмент -item.aether.irradiated_ring.name=Облучённый кольцо -item.aether.irradiated_neckwear.name=Облучённый галстук -item.aether.irradiated_charm.name=Облучённый амулет -item.aether.irradiated_dust.name=Облучённая пыль - -item.aether.skyroot_crossbow.name=Арбалет из небесного корня -item.aether.holystone_crossbow.name=Арбалет из святого камня -item.aether.zanite_crossbow.name=Занитовый арбалет -item.aether.arkenium_crossbow.name=Арбалет из аркения -item.aether.gravitite_crossbow.name=Гравититовый арбалет -item.aether.bolt.name=Болт из развеянного стекла -item.aether.wrapping_paper.name=Упаковочная бумага -item.aether.fried_moa_egg.name=Жаренное яйцо Моа -item.aether.aether_spawn_egg.name=Потомство -item.aether.arkenium_ore_item.name=Аркениумная руда -item.aether.gravitite_ore_item.name=Гравититовая руда -item.aether.gravitite_plate.name=Гравититовая пластина -item.aether.raw_taegore_meat.name=Сырая ножка таегора -item.aether.taegore_steak.name=Жаренный таегор -item.aether.skyroot_lizard_stick.name=Ящерица на палочке из небесного корня -item.aether.skyroot_lizard_stick_roasted.name=Жаренная ящерица на палочке из небесного корня -item.aether.taegore_hide.name=Шкура таегора -item.aether.burrukai_rib_cut.name=Соединение ребра буррукайя -item.aether.burrukai_ribs.name=Рёбра буррукайя -item.aether.burrukai_pelt.name=Мех буррукайи -item.aether.kirrid_loin.name=Филей из Киррида -item.aether.kirrid_cutlet.name=Котлета из Киррида -item.aether.valkyrie_wings.name=Крылья валькирии -item.aether.brettl_cane.name=Brettl тростник -item.aether.brettl_grass.name=Brettl трава -item.aether.wrapping_paper.bow.black.name=Чёрный лук -item.aether.wrapping_paper.bow.red.name=Красный лук -item.aether.wrapping_paper.bow.green.name=Зелёный лук -item.aether.wrapping_paper.bow.brown.name=Коричневый лук -item.aether.wrapping_paper.bow.blue.name=Синий лук -item.aether.wrapping_paper.bow.purple.name=Фиолетовый лук -item.aether.wrapping_paper.bow.cyan.name=Голубой лук -item.aether.wrapping_paper.bow.pink.name=Розовый лук -item.aether.wrapping_paper.bow.lime.name=Лаймовый лук -item.aether.wrapping_paper.bow.yellow.name=Жёлтый лук -item.aether.wrapping_paper.bow.light_blue.name=Светло-синий лук -item.aether.wrapping_paper.bow.magenta.name=Пурпурный лук -item.aether.wrapping_paper.bow.orange.name=Оранжевый лук -item.aether.wrapping_paper.bow.white.name=Белый лук -item.aether.wrapping_paper.box.black.name=Чёрная коробка -item.aether.wrapping_paper.box.red.name=Красная коробка -item.aether.wrapping_paper.box.green.name=Зелёная коробка -item.aether.wrapping_paper.box.brown.name=Коричневая коробка -item.aether.wrapping_paper.box.blue.name=Синяя коробка -item.aether.wrapping_paper.box.purple.name=Фиолетовая коробка -item.aether.wrapping_paper.box.cyan.name=Голубая коробка -item.aether.wrapping_paper.box.pink.name=Розовая коробка -item.aether.wrapping_paper.box.lime.name=Лаймовая коробка -item.aether.wrapping_paper.box.yellow.name=Жёлтая коробка -item.aether.wrapping_paper.box.light_blue.name=Светло-синяя коробка -item.aether.wrapping_paper.box.magenta.name=Пурпурная коробка -item.aether.wrapping_paper.box.orange.name=Оранжевая коробка -item.aether.wrapping_paper.box.white.name=Белая коробка -item.aether.wrapping_paper.tooltip.craft=Создаёт в предметы! -item.aether.present.tooltip.empty=Пустая -item.aether.present.tooltip.hasitem=Внутри содержится предмет - - -tile.aether.aether_portal.name=Портал в Эфир -tile.aether.campfire.mobNotification=Вы не можете пронести с собой мобов за пределы Эфира. - -cloudParachute.ability.rightClick=§3Используйте:§r Пкм -cloudParachute.ability=§9Способность: -cloudParachute.ability.cold=Медленное снижение -cloudParachute.ability.purple=Направленное снижение -cloudParachute.ability.blue=Быстрое возвышение - -moa.feathers=Перья: %s -moa.keratin=Кератин: %s -moa.eyes=Глаза: %s -moa.feather_type=Форма пера: %s -moa.wing_strength=Сила крыла: %s - -moa.keratin.sky_blue=Синее небо -moa.keratin.deep_sky=Глубокое небо -moa.keratin.sand=Песок -moa.keratin.midnight_sky=Полуночное небо -moa.keratin.swamp=Болотный -moa.keratin.royal=Королевский -moa.keratin.tempest=Ураганный - -moa.eyes.alto=Альто -moa.eyes.straw=Солома -moa.eyes.winter_hazel=Зимняя газель -moa.eyes.gossip=Сплетня -moa.eyes.mint=Мята -moa.eyes.ice=Лёд -moa.eyes.perano=Перано -moa.eyes.portage=Портеж -moa.eyes.perfume=Парфюм -moa.eyes.illusion=Иллюзия -moa.eyes.wewak=Вевак - -moa.feathers.black=Чёрный -moa.feathers.grey=Серый -moa.feathers.white=Белый -moa.feathers.iroko=Айроко -moa.feathers.orange=Оранжевый -moa.feathers.lisbon_brown=Лисбон коричневый -moa.feathers.yellow=Жёлтый -moa.feathers.mallard=Селезень -moa.feathers.lime_green=Лаймово-зелёный -moa.feathers.everglade=Эверглэйд -moa.feathers.green=Зелёный -moa.feathers.plantation=Плантация -moa.feathers.sky_blue=Небо синее -moa.feathers.cloud_burst=Сильный ливень -moa.feathers.blue=Синий -moa.feathers.port_gore=Портовый клин -moa.feathers.purple=Фиолетовый -moa.feathers.bossanova=Босанова -moa.feathers.pink=Розовый -moa.feathers.livid_brown=Злой коричневый -moa.feathers.puse=Пюс -moa.feathers.deep_red=Глубокий красный -moa.feathers.red=Красный - -moa.marks.pointed=Направленное -moa.marks.flat=Плоское -moa.marks.curved=Изогнутый - -moa.wing_strength.weak=Слабая -moa.wing_strength.normal=Нормальная -moa.wing_strength.strong=Мощная -moa.wing_strength.excellent=Превосходная - -# Редкость предметов -item.rarity.none.name=§7§Базовый -item.rarity.common.name=§7§oОбщий -item.rarity.rare.name=§b§oРедкий -item.rarity.epic.name=§5§oЭпичный -item.rarity.mythic.name=§6§oМистический -item.rarity.godly.name=§o§aБ§bо§6жест§веl§eный - -# Подсказки для оружия -item.aether.skyroot_sword.ability.desc=Двойное выпадение -item.aether.holystone_sword.ability.desc=Сбрасывает амброзий -item.aether.zanite_sword.ability.desc=Сильнее с множественным использованием -item.aether.arkenium_sword.ability.desc=Прочный, но тяжёлый -item.aether.gravitite_sword.ability.desc=С приседанием притягивает -item.aether.gravitite_sword.use.desc=Присядьте и нападайте -item.aether.holy_sword.ability.desc=Стирает нежить -item.aether.lightning_sword.ability.desc=Поражает молнией -item.aether.flaming_sword.ability.desc=Поджигает монстров -item.aether.vampire_blade.ability.desc=Крадёт жизнь -item.aether.candy_cane_sword.ability.desc=Сбрасывает леденцы -item.aether.valkyrie_lance.ability.desc=Расширенный охват -item.aether.sentry_vaultbox.ability.desc1=§dРезультат: §rСлучайные предметы -item.aether.sentry_vaultbox.ability.desc2=§3Бросить: §rПкм -item.aether.crossbow.desc1=Скорость перезарядки -item.aether.crossbow.desc2=Секунды -item.aether.crossbow.desc3=Второй -item.aether.crossbow.desc4=Способность -item.aether.crossbow.use.desc=Присядьте и перезаряжайтесь -item.aether.skyroot_crossbow.ability=Двойной выстрел -item.aether.holystone_crossbow.ability=Разброс выстрела -item.aether.zanite_crossbow.ability=Сильнее с множественным использованием -item.aether.arkenium_crossbow.ability=Долгий выстрел -item.aether.gravitite_crossbow.ability=Прямое попадание -item.aether.bolt.desc=Боеприпасы арбалета -item.aether.dart.desc=Боеприпасы дротикомёта - -# Подсказки для инструментов -item.aether.tool.skyroot.ability.desc=Двойное выпадения блока -item.aether.tool.holystone.ability.desc=Сбрасывает амброзий -item.aether.tool.zanite.ability.desc=Быстрее при большем использовании -item.aether.tool.arkenium.ability.desc=Прочный, но тяжёлый -item.aether.tool.gravitite.ability.desc=С приседанием блок притягивается -item.aether.tool.gravitite.use.desc=Присядьте и Используйте -item.aether.tool.valkyrie.ability.desc=Расширенный охват - -# Подсказки -item.aether.tooltip.modifiers.gloves=Когда в руках: -item.aether.tooltip.ability=Способность -item.aether.tooltip.use=Использовать -item.aether.tooltip.cures=Лечит -item.aether.tooltip.heals=Исцеляет - -# Подсказки для брони -item.aether.armor.zanite.ability.desc=Становится сильнее с износом - -# Лечебные подсказки -item.aether.curative.desc1=Лечебный эффект -item.aether.curative.fracture.desc1=Сокращает время лечения -item.aether.curative.desc2=Уменьшает нарастание - -# Чайные подсказки -item.aether.tea.applied.desc=Когда использован: -item.aether.valkyrie_tea.desc=Двойное насыщение - -# Записи -item.aether.moa_music_disc.desc=Эмиль ван Крикен - Методы -item.aether.aerwhale_music_disc.desc=Аудиоэфир - Эфирный кит -item.aether.labyrinth_music_disc.desc=Moorziey - Кончина -item.aether.valkyrie_music_disc.desc=Эмиль ван Крикен - Восходящий рассвет -item.aether.recording_892.desc=Эмиль ван Крикен - ??? - -# Существа -entity.aether.aechor_plant.name=Эчор растение -entity.aether.aerbunny.name=Эфирный кролик -entity.aether.carrion_sprout.name=Росток падали -entity.aether.cockatrice.name=Василиск -entity.aether.kirrid.name=Киррид -entity.aether.moa.name=Моа -entity.aether.aerwhale.name=Эфирный кит -entity.aether.zephyr.name=Зефир -entity.aether.tempest.name=Ураган -entity.aether.taegore.name=Таегор -entity.aether.detonation_sentry.name=Часовая детонация -entity.aether.battle_sentry.name=Боевой патрульный блок -entity.aether.tracking_sentry.name=Контрольный патрульный блок -entity.aether.chest_mimic.name=Сундук мимик -entity.aether.battle_golem.name=Боевой голем -entity.aether.swet.name=Свит -entity.aether.generator.name=Генератор существа -entity.aether.sentry_guardian.name=Патрульный страж -entity.aether.production_line.name=Конвейер -entity.aether.repair_sentry.name=Ремонтный часовой -entity.aether.slider.name=Слайдер -entity.aether.frostpine_totem.name=Тотем морозной сосны -entity.aether.kraisith.name=Крайсит -entity.aether.shade_of_arkenzus.name=Оттенок аркензуса -entity.aether.ethereal_wisp.name=Эфирный огонёк -entity.aether.fleeting_wisp.name=Мимолётный огонёк -entity.aether.soaring_wisp=Парящий огонёк -entity.aether.fangrin.name=Фанат ухмылки -entity.aether.nex_spirit.name=Нэкс дух -entity.aether.pink_baby_swet.name=Розовый малыш свит -entity.aether.glitterwing.name=Блестящее крыло -entity.aether.edison.name=Эдисон -entity.aether.burrukai.name=Буррукайа -entity.aether.necromancer.name=Некромант -entity.aether.josediya.name=Джоседия -entity.aether.tivalier.name=Тивалиер -entity.aether.icehog.name=Ледяной кабан -entity.aether.mysterious_figure.name=Загадочная фигура -entity.aether.varanys.name=Варанус -entity.aether.skyroot_lizard.name=Ящерица из небесного корня -entity.aether.glactrix.name=Глактрикс -entity.aether.sheepuff.name=Овцауфф - -# Творческие вкладки -itemGroup.aether.blocks=Aether II блоки -itemGroup.aether.materials=Aether II материалы -itemGroup.aether.tools=Aether II инструменты -itemGroup.aether.weapons=Aether II оружия -itemGroup.aether.armor=Aether II броня -itemGroup.aether.food=Aether II еда -itemGroup.aether.consumables=Aether II расходные материалы -itemGroup.aether.companions=Aether II товарищи -itemGroup.aether.miscellaneous=Aether II различные -itemGroup.aether.rings=Aether II кольца -itemGroup.aether.neckwear=Aether II платочно-шарфовые изделия -itemGroup.aether.relics=Aether II реликвии -itemGroup.aether.charms=Aether II амулеты -itemGroup.aether.artifacts=Aether II артефакты -itemGroup.aether.visual_variants=Aether II блоки для украшения -itemGroup.aether.natural_blocks=Aether II естественные блоки -itemGroup.aether.construction=Aether II строительные блоки -itemGroup.aether.utility_blocks=Aether II полезные блоки -itemGroup.aether.dungeon_blocks=Aether II подземельные блоки -itemGroup.aether.thera=Aether II теран блоки - -# Контейнеры -# СДЕЛАТЬ: Префикс с эфиром -container.holystone_furnace=Печь из святого камня -container.skyroot_chest=Сундук из небесного корня -container.skyroot_double_chest=Большой сундук из небесного корня -container.labyrinth_chest=Лабиринтный сундук -container.icestone_cooler=Холодильник из ледяного камня -container.incubator=Инкубатор -container.masonry_bench=Верстак каменщика -container.aether_workbench.recipes=Рецепты (%s / %s) - -# Звуки -subtitles.aether.portal.glowstone.hum=Портал напевает -subtitles.aether.portal.glowstone.trigger=Портал активируется -subtitles.aether.portal.glowstone.travel=Портал телепортирует -subtitles.aether.portal.labyrinth_totem.drone=Тотем наносит удар -subtitles.aether.portal.labyrinth_totem.woosh=Тотем оживает -subtitles.aether.block.aercloud.bounce=Эфирное облако попятно движется -subtitles.aether.mob.aerbunny.ambient=Эфирный кролик пищит -subtitles.aether.mob.aerbunny.hurt=Эфирный кролик ранен -subtitles.aether.mob.aerbunny.death=Эфирный кролик умирает -subtitles.aether.mob.aerbunny.lift=Эфирный кролик снят -subtitles.aether.mob.aerwhale.ambient=Эфирный кит свистит -subtitles.aether.mob.aerwhale.death=Эфирный кит умирает -subtitles.aether.mob.cockatrice.ambient=Василиск шипит -subtitles.aether.mob.cockatrice.hurt=Василиск ранен -subtitles.aether.mob.cockatrice.death=Василиск умирает -subtitles.aether.mob.tempest.ambient=Ураган наносит удар -subtitles.aether.mob.tempest.hurt=Ураган ранен -subtitles.aether.mob.tempest.death=Ураган умирает -subtitles.aether.mob.tempest.angry=Ураган заряжается -subtitles.aether.mob.tempest.electric_shock=Ураган стреляет шоком -subtitles.aether.mob.zephyr.ambient=Зефир оживает -subtitles.aether.mob.zephyr.puff=Зефир пыхтит -subtitles.aether.mob.tracking_sentry.alarm=Контрольный патрульный блок встревожился -subtitles.aether.mob.sentry.ambient=Патрульный блок рычит -subtitles.aether.mob.sentry.hurt=Патрульный блок ранен -subtitles.aether.mob.sentry.death=Патрульный блок умирает -subtitles.aether.mob.battle_sentry.pounce=Боевой патрульный блок набрасывается -subtitles.aether.random.stone.thud=Камень грохочет -subtitles.aether.random.detonating=Взрывчатка детонируется -subtitles.aether.random.detonate=Взрывчатка взорвался -subtitles.aether.random.dart_shooter.fire=Дротикомёт стрельнул -subtitles.aether.mob.moa.ambient=Моа зовёт -subtitles.aether.mob.moa.hurt=Моа ранена -subtitles.aether.mob.kirrid.ambient=Киррид бахает -subtitles.aether.mob.kirrid.hurt=Киррид ранен -subtitles.aether.mob.kirrid.death=Киррид умирает -subtitles.aether.mob.taegore.ambient=Таегор фыркает -subtitles.aether.mob.taegore.hurt=Таегор ранен -subtitles.aether.mob.taegore.death=Таегор умирает -subtitles.aether.mob.taegore.attack=Таегор атакует -subtitles.aether.mob.chest_mimic.awake=Сундук-мимик пробуждается -subtitles.aether.random.present_unwrap=Подарок разрывается -subtitles.aether.random.dungeon.container.smash=Контейнер разбился -subtitles.aether.mob.slider.awake=Слайдер пробуждается -subtitles.aether.mob.slider.collide=Слайдер врезается -subtitles.aether.mob.slider.die=Слайдер раскалывается -subtitles.aether.mob.slider.move=Слайдер движется -subtitles.aether.mob.slider.signal=Слайдер сигналит -subtitles.aether.mob.generic.wings.flap=Крылья махают -subtitles.aether.mob.burrukai.ambient=Буррукайя раздражается -subtitles.aether.mob.burrukai.hurt=Буррукайя ранен -subtitles.aether.mob.burrukai.death=Буррукайя умирает -subtitles.aether.mob.burrukai.attack=Буррукайя атакует -subtitles.aether.environment.rain.light=Дождь моросит -subtitles.aether.environment.rain.heavy=Дождь льётся -subtitles.aether.environment.snow.wind=Ветер сдувает - -# Названия доп. слотов -gui.aether.slot.none=Не экипировано -gui.aether.slot.neckwear=Платочно-шарфовые изделия -gui.aether.slot.companion=Товарищ -gui.aether.slot.shield=Щит -gui.aether.slot.relic=Реликвия -gui.aether.slot.ring=Кольцо -gui.aether.slot.handwear=Одежда для рук -gui.aether.slot.charm=Амулет -gui.aether.slot.artifact=Артефакт -gui.aether.slot.helmet=Шлем -gui.aether.slot.chestplate=Нагрудник -gui.aether.slot.leggings=Поножи -gui.aether.slot.boots=Ботинки -gui.aether.slot.offhand=Левая рука -gui.aether.coolant=Охладитель -gui.aether.cools_into=Остывает в: -gui.aether.random_item=Случайный предмет -gui.aether.random_armor=Случайная броня -gui.aether.random_sword=Случайный меч -gui.aether.random_tool=Случайный инструмент -gui.aether.random_ring=Случайное кольцо -gui.aether.random_neckwear=Случайное платочно-шарфовое изделие -gui.aether.random_charm=Случайный амулет -gui.aether.incubator_fuel=Топливо инкубатора -gui.aether.baby_moa=Малышка Moa -gui.aether.respawn.bed=Переродиться в кровати -gui.aether.campfire.bed=Переродиться на Аванпосте -gui.aether.loading.indeterminate=Загрузка... -gui.aether.loading.progress=Загрузка... %s%% -gui.aether.patreon.rewards.button.use=Использовать -gui.aether.patreon.rewards.button.locked=Заблокировать -gui.aether.incubator.label.incubation=Инкубация -gui.aether.incubator.label.heating=Нагревание -gui.aether.incubator.label.more_heat=Больше тепла! -gui.aether.incubator.label.ready=Готово! -gui.aether.incubator.label.max=МАКС. -gui.aether.incubator.label.fail=ПРОВАЛЕНО! -gui.aether.masonry.label.recipes=Рецепты - -gui.aether.hover.npc=Говорит в %s -gui.aether.hover.campfire=Вернуться в Верхний мир -gui.aether.hover.teleporter=Войти в ЭФир - -gui.guidebook.discovery.stats=Статистика: -gui.guidebook.discovery.moves=Передвижения: - -# Сообщение при смерти - -death.attack.aether.effect.bleed=%1$s истёк кровью -death.attack.aether.effect.fungalRot=%1$s скончался от грибковой гнили -death.attack.aether.effect.fracture=Ууф овие кости %1$s - -# Статус эффектов - -effect.aether.ambrosium_poisoning=Отравление амброзием -effect.aether.bleed=Кровотечение -effect.aether.cockatrice_venom=Яд василиска -effect.aether.fracture=Перелом -effect.aether.freeze=Заморозка -effect.aether.fungal_rot=Грибковая гниль -effect.aether.stun=Оглушение -effect.aether.toxin=Токсичность -effect.aether.webbing=Спутанность - -effect.aether.saturation_boost=Ускоренное насыщение -effect.aether.guard_break=Ломание стража - -# Атрибуты к урону - -attribute.name.aether.slash=Сократить -attribute.name.aether.pierce=Пронзить -attribute.name.aether.impact=Воздействие -attribute.name.aether.damageLevel=Урон - -# Introsat - -intro.prologue=200 лет спустя после того, как одинокий путешественник победил тиранического Солнечного духа, Картхуула, новый путешественник собирается войти в Эфир... -intro.tip1=ДИСКЛЕЙМЕР:\n\nЭта сборка indev является незавершённой, ПУПСИК,\n\nПЛОХАЯ РАБОТА итерации официального выпуска Нагорья (Дата пока не решена).\n\nЕСЛИ ВЫ НЕ ХОТИТЕ ИСПОРТИТЬ СВОЙ ОПЫТ, мы НАСТОЯТЕЛЬНО РЕКОМЕНДУЕМ Вам, НЕ ИГРАТЬ В ЭТО, ДО ОФИЦИАЛЬНОГО ВЫПУСКА.\n\nМногие возможности отсутствуют, некоторые экспериментальные и т.д. Мы выпустили эти сборки indev для тех, кто хочет помочь протестировать и кто не может ждать, чтобы получить исправление Эфира. -intro.tip2=ПОДЗЕМЕЛИЙ, ПОКА ЧТО В МОДЕ НЕТ. Мы все ещё проектируем и разрабатываем технологию для них с помощью нашего другого технического/инструментального мода под названием Orbis. Понадобится некое время, чтобы эти материалы попали в мод. Самое интересное, с чем Вы можете сейчас иметь дело, это исследовать новые биомы и ландшафтные генерации, а также новые художественные активы и модели, которые мы разработали. -intro.tip3=Мир, в который вы собираетесь войти, полностью отделён от Minecraft, как в знаниях, так и во времени и пространстве... -intro.tip4=Начнёте своё путешествие? -intro.holdToSkip=Удерживайте, чтобы пропустить -intro.proudlyPresents=С гордостью представляет... -intro.yes=Да -intro.no=Нет - -# Примечание к телепортации - -notice.body=Вы, должно быть, возвращаетесь.\n\nВ Aether II, Путешествие в Эфир больше не связано с Порталом из Светокамня\n\nВзамен этого, создайте блок Портала в Эфир -notice.gotcha=Попался! -notice.holdUp=Ух!Постойте - -#Подсказки к возможностям -ability.breatheUnderwater.name=Подводное дыхание -ability.daggerfrost.name=Морозный кинжал -ability.doubleDrops.name=Двойное выпадение -ability.extraDamage.name=Увеличенный урон -ability.punchingDamage.name=Увеличенный удар -ability.freezeBlocks.name=Замораживающая аура -ability.pauseHunger.name=Еда рая -ability.reduceHunger.name=Сыты -ability.regenerateHealth.name=Регенерация здоровья -ability.maxHealthMod.name=Модификатор: Максимум здоровья -ability.movementSpeedMod.name=Модификатор: Скорость передвижения -ability.modifyXPCollection.name=Модификатор: Сборщик опыта -ability.modifyDefense.name=Модификатор: Оборона -ability.weightTolerance.name=Допуск к весу -ability.invisibility.name=Незаметность -ability.changeAttackElement.name=Фактор шанса нападения -ability.setEnemiesOnFire.name=Зажжённое прикосновение -ability.fireImmunity.name=Иммунитет к огню -ability.companionMaxHealthMod.name=Модификатор: Максимальное здоровье товарища -ability.slowfall.name=Медленное падение -ability.attackSpeedMod.name=Модификатор: Скорость атаки - -elementalState.biological=Родной -elementalState.frost=Мороз -elementalState.fire=Огонь -elementalState.water=Вода -elementalState.earth=Земля -elementalState.air=Воздух -elementalState.blight=Вред -elementalState.lightning=Молния - -ability.extraDamage.attack=Атака -ability.extraDamage.desc=%s %s урон -ability.active=§5Только активна: -ability.cosmetic=§eКосметический -ability.breatheUnderwater.desc=§9Водное дыхание -ability.daggerfrost.desc=§9Снежки причиняют урон -ability.doubleDrops.desc1=§9Двойное выпадение из мобов -ability.doubleDrops.desc2=%s%% шанс -ability.punchingDamage.desc1=%s Урон от удара -ability.punchingDamage.desc2=%s %s Удар -ability.freezeBlocks.desc=§9Замораживает блоки по близости -ability.pauseHunger.desc=§9Останавливает голод -ability.reduceHunger.desc=§9Уменьшает голод -ability.regenerateHealth.desc=§9Регенерирует здоровье -ability.maxHealthMod.desc=%s Максимального здоровья -ability.movementSpeedMod.desc=%s Скорость движения -ability.modifyXPCollection.desc=%s Опыта собрано -ability.defenseMod.desc=%s %s -ability.defenseMod.desc1=Оборона -ability.defenseMod.desc2=Сопротивление -ability.invisibility.desc=§9Незаметность -ability.changeAttackElement.desc=§9Все атаки станут: -ability.setEnemiesOnFire.desc=§9Поджигает врагов -ability.fireImmunity.desc=§9Иммунитет к огню -ability.doubleJump.desc=§9Двойной прыжок -ability.companion.desc=Для товарища -ability.leechLife.desc1=§9Красть жизнь -ability.leechLife.desc2=%s%% шанс -ability.slowfall.desc=§9Медленное падение -ability.weight.desc1=%sкг Веса -ability.weight.desc2=%sкг Допустимо к весу -ability.levitateAttackers.desc1=§9Поднимает в воздух нападающих -ability.levitateAttackers.desc2=%s%% шанс -ability.setAttackersOnFire.desc1=§9Поджигает нападающих -ability.setAttackersOnFire.desc2=%s%% шанс -ability.attackSpeedMod.desc=%s Скорость атаки - -# Вкладки -tab.guidebook=Aether II -tab.guidebook.equipment=Снаряжение -tab.guidebook.status=Статус -tab.guidebook.loretome=Том: Легенда -tab.guidebook.discovery=Находка -tab.guidebook.discovery.bestiary=Бестиарий -tab.guidebook.discovery.landmarks=Достопримечательности -tab.guidebook.discovery.characters=Персонажи -tab.guidebook.discovery.effects=Эффекты -tab.bug_report=Сообщить об ошибках -tab.backpack.name=Рюкзак -tab.patron_rewards=Покровители - -# Сообщения чата -chat.aether.resurrected=%s был воскрешён Некс духом - -# Меню в разработке -indev.button=Принести его! -indev.line1=Здравствуй, стремительный игрок! -indev.line2=Спасибо Вам за интерес к моду! Прежде чем мы продолжим, мы хотели бы прояснить несколько моментов. Версия Эфира, в которую Вы играете, это предварительный просмотр. Это означает, что Вы можете столкнуться с серьёзными проблемами, такими как: -indev.line3=Повреждения мира и вылеты -indev.line4=Мобы без моделей или текстур -indev.line5=Сломаны игровые механики -indev.line6=И самое главное, много ошибок! -indev.line7=Мы очень рады, что Вы смогли увидеть Эфир на ранней стадии, но мы просим Вас проявить терпение и оказать нам поддержку в процессе развития. -indev.line8=Нажав на кнопку ниже, Вы признаёте, что понимаете условия, изложенные выше, и что Вы не будете считать нас ответственными, если Ваша игра вырастит ноги и сбежит с вашим кофе. - -# Меню: Сообщить об ошибке -bug_report.button=Открыть систему отслеживания проблем -bug_report.line1=Здравствуйте, снова! -bug_report.line2=Вы столкнулись с проблемой? Если хотите, вы можете помочь Эфиру, посетив нашу Систему отслеживания проблем -bug_report.line3=Проблемы - это простой способ сообщать об ошибках и других проблемах с модом, предоставляя прямой доступ к помощи разработчика и нашему удивительному сообществу добровольцев. -bug_report.line4=Нажав на кнопку ниже, Вы попадёте на внешний веб-сайт в Вашем браузере, где находится наша Система отслеживания проблем. Зарегистрируйте аккаунт и помогите нам раздавить ошибки быстрее, чем когда-либо! - -aether.warning.deprecated_item=§cУстаревший! Будет удалён! -aether.warning.operator_item=Требуются привилегии Оператора - -# Rewards -aether.reward.sun_spirit.name=Солнечный дух -aether.reward.slider.name=Слайдер -aether.reward.valkyrie_queen.name=Короле валькирий -aether.reward.none.name=Отсутствует - -# Обмен -aether.trade.gui.thirdtrade=Обмен с %s -aether.trade.gui.firsttrade=Ваш обмен -aether.trade.gui.lock=Закрепить обмен -aether.trade.gui.unlock=Разблокировать обмен -aether.trade.gui.confirm=Утвердить обмен -aether.trade.chat.success=Ваш обмен с %s был завершён! -aether.trade.chat.cancel=Ваш обмен с %s был отменён! -aether.trade.chat.request=%s хочет торговать с Вами! Взаимодействуйте с ним, чтобы начать торговаться! -aether.trade.chat.failexpired=Ваш запрос на обмен %s истёк! -aether.trade.chat.failtrade=%s текущее обменивание -aether.trade.chat.failsent=У Вас уже отправлен приглашение на обмен к %s. -aether.trade.status.waitingboth=Ждём, пока обе стороны приостановятся -aether.trade.status.waitingyou=Жду, когда Вы приостановитесь. -aether.trade.status.waitingthem=Ждём, когда другая сторона заявится -aether.trade.status.confirmboth=Ждём подтверждения от обеих сторон -aether.trade.status.confirmyou=Жду от Вас подтверждения -aether.trade.status.confirmthem=Ждём подтверждения от другой стороны -aether.trade.status.sizeerror=Безопасная торговля невозможна -aether.trade.message.targetlock=%s заблокирован в своём обмене! -aether.trade.message.targetconfirm=%s утвердил свой обмен -aether.trade.message.unlockwarn=%s разблокировал свой обмен! Проверьте их обмен, прежде чем блокировать снова! -aether.trade.message.unlocksafe=%s разблокировал свой обмен! -aether.trade.message.inventorywarn=У вас недостаточно места в Вашем инвентаре, чтобы принять этот обмен! -aether.trade.message.tradewarn=Они не имеют достаточно места в инвентаре, чтобы принять Ваш обмен! - - -# Магазин -aether.shop.sell=Выкинуть -aether.shop.buy=Купить: %s -aether.shop.back=Назад -aether.shop.lockTooltip=При разблокировании каждый раз, когда Вы нажимаете на новый товар, сумма, которую Вы пытаетесь купить, сбрасывается на 1. - -# ИМЕНА ПЕРСОНАЖЕЙ - -edison.name=Эдисон -necromancer.name=Некромант -josediya.name=Джоседия - -# ОБЩИЙ ДИАЛОГ - -generic.back=Назад -generic.okay=Ладно -generic.goodbye=Пока - -# ДИАЛОГ НЕКРОМАНТА - -necromancer.them.start1=Я рад видеть Вас здесь в безопасности, Путешественник. Уверен, у тебя много вопросов, но время имеет значение. -necromancer.them.start2=Через этот разлом в космосе, Вы найдёте человека со шрамом на глазу, его зовут Эдисон. Он своего рода друг. -necromancer.them.start3=Он ответит на любые Ваши вопросы, он был нанят, чтобы помочь Вам в Вашем поиске. Он может показаться странным, но... ну... -necromancer.them.start4=Мы здесь в компании незнакомцев, не так ли? -necromancer.them.start5=Безопасные путешествия, новый мир ждёт Вас. - -necromancer.us.leadtheway=Спасибо. Пока. - -# ПРИВЕТСТВЕННЫЙ ДИАЛОГ ЭДИСОНА - -edison.greet.start_not_introduced=Вы опоздали. Уже несколько часов жду. - -edison.greet.option.expecting=Вы ждали меня? -edison.greet.option.who=Кто вы? -edison.greet.option.map=У меня не было точной карты. - -edison.greet.respawn_not_introduced=Вам следует лучше о себе заботиться, друг. Вам повезло, что Вас нашли целым. -edison.greet.respawn=Вы в порядке? Вас там сильно избили. - -edison.greet.option.what=Что это за место? -edison.greet.option.died=Я думаю, я закончил... - -edison.greet.option.fine=Я в норме. -edison.greet.option.thanks=Спасибо, Эдисон. -edison.greet.option.okay_sale=Со мной всё будет в порядке, у Вас есть что-нибудь на продажу? -edison.greet.option.okay_holiday_sale=Я в порядке. У вас есть специальный запас на этот праздничный сезон? - -edison.greet.start=Привет, друг, как дела? Вам что-нибудь нужно? - -edison.greet.option.sale=У Вас есть что-нибудь на продажу? -edison.greet.option.holiday_sale=У вас есть специальный запас на этот праздничный сезон? - -edison.greet.option.okay_goodbye=Я думаю, что я в порядке. Пока -edison.greet.option.ready_goodbye=Я думаю, что я готов. Пока, Эдисон. -edison.greet.option.mind_goodbye=Буду иметь в виду. Пока. - -edison.greet.expecting1=Конечно! Мой "общий друг" заплатил мне хорошие деньги, чтобы прикрыть Вас. -edison.greet.expecting2=Погоди, он не объяснил нашу маленькую договорённость? Типично... -edison.greet.expecting3=Тогда... что мне нужно Вам объяснить? - -edison.greet.option.no_we_talked=Нет, мы разговаривали. Вы... Эдисон, верно? - -edison.greet.who1=Я Эдисон! Международный предприниматель, продавец и мастер убеждения! -edison.greet.who2=Но для вас, благодаря нашему маленькому соглашению с "Вы знаете, с кем", я также ваша связь в этих странных землях. -edison.greet.who3=В общем, это значит, что я должен заботиться о Вас. -edison.greet.who4=Я твёрдо верю в то, что знание - лучший инструмент в этом мире. так что в моих интересах удержать Вас от смерти... -edison.greet.who5=У Вас есть какие-либо вопросы? - -edison.greet.option.you_know_who="Вы знаете кто?" - -edison.greet.map1=Ха-ха! Не правда ли? Может, стоило немного подождать. -edison.greet.map2=Не так уж и сложно найти эти места. В любом случае, я бы подумал, что Вас высадят неподалёку. - -edison.greet.what1="Это место?" Король расплывчатых вопросов, не так ли? -edison.greet.what2=Я бы предположил, что Вы хотя бы немного знали о том, во что ввязываетесь, придя сюда, но мне нужно, чтобы Вы были более конкретны, чем это. -edison.greet.what3=Вы имеете в виду это здание, в котором мы стоим? Или реальный мир вокруг нас? - -edison.greet.option.building=Это здание. -edison.greet.option.world=Этот мир. - -edison.greet.died1=Как и я! Когда мой сотрудник притащил Вас сюда, я не был уверен, что Вы очнётесь. - -edison.greet.fine1=Это было пассивно-агрессивно, учитывая, что я и мои люди только что спасли Вашу шкуру. -edison.greet.fine2=Вам что-нибудь нужно, прежде чем Вы уйдёте? - -edison.greet.thanks1=Не говоря уже об этом. У нас у всех есть своя роль, Моя - чтобы защитить Вас. -edison.greet.thanks2=Тебе что-нибудь нужно или Вы готовы отправиться? - -edison.greet.sale=Конечно, давай взглянем на мои запасы. -edison.greet.holiday_sale=Надеюсь, Вы чувствуете себя празднично, друг! Загляните в наши эксклюзивные запасы на этот праздничный сезон. - -edison.greet.no_we_talked1=Верно! Международный предприниматель, продавец и мастер убеждения! -edison.greet.no_we_talked2=Но для вас, благодаря нашему небольшому соглашению с Некромантом, я также Ваша связь в этих странных землях. -edison.greet.no_we_talked3=Это значит, что я должен заботиться о Вас. -edison.greet.no_we_talked4=Я твёрдо верю в то, что знание - лучший инструмент в этом мире. Поэтому, в интересах сохранения Вас от смерти... -edison.greet.no_we_talked5=У Вас есть какие-либо вопросы? - -edison.greet.you_know_who1=Некромант. Вы знаете - Мистер. Высокий, Тёмный и Жуткий? -edison.greet.you_know_who2=Мы с ним общались довольно регулярно, и он платит мне довольно много денег, чтобы убедиться, что если Вы когда-нибудь окажетесь в затруднительном положении, то Вас отвезут в безопасное место. -edison.greet.you_know_who3=Хотя, думая об этом, он обычно оставляет записку со своими маленькими "Подарками", которые он раздаёт. Может, посмотрите ваш Справочник. - -edison.greet.building1=Вот это - старый путник! Построенный много лет назад Валькириями, в качестве захоронения. -edison.greet.building2=С тех пор, многие люди взяли на себя ответственность за поддержание этих местностей, сделав их действительно безопасным местом для всех, кто бродит по Эфиру, чтобы отдохнуть. - -edison.greet.option.valkyries=Валькирии? -edison.greet.option.what_world=Что об этом мире? -edison.greet.option.what_building=Что об этой постройке? - -edison.greet.world1=Хорошо, мало что было сказано? Это Эфир! Это мир, который существует высоко над нашим, настолько высоко, что имеет свою собственную Флору и Фауну. -edison.greet.world2=Сейчас Вы стоите на одном из многих древних аванпостов Валькирии, они были первоначально созданы как Священные захоронения, если я правильно помню, но поскольку они служили местом отдыха для многих Путешественников. - -edison.greet.valkyries1=Они похожи на городских охранников этого мира, но эээээ... ээээ... намного сильнее. Один легионер может разорвать Вас на куски, если Вы дадите ему повод. -edison.greet.valkyries2=К счастью, они довольно дружелюбные, не большие болтуны. Их можно найти бродящими по большинству городов и деревень. У них есть какой-то священный соглашение для защиты людей или что-то в этом роде. -edison.greet.valkyries3=Честно говоря, я не совсем уверен, что это такое, Вам лучше спросить одного из местных. Или лично Валькирию! Их трудно не заметить. -edison.greet.valkyries4=Есть что-нибудь ещё, что Вы хотите знать? - -# МАГАЗИН ЭДИСОНА ДИАЛОГ - -edison.shop.greetings1=Вот мы и на месте, сегодня отличные запасы. Смешали уникальные сокровища, взгляните. -edison.shop.greetings2=Справедливые цены, уверяю Вас, но... никаких возвратов. Политика компании. - -edison.shop.enchanted_wyndberry=У меня есть парень, который подбирает это из растений Падали, они опасные маленькие штуки. Он также обогащает их амброзием для дополнительного удара! -edison.shop.enchanted_blueberry=Чернику довольно легко найти, но эти зачарованные Амброзием, хороший материал, если Вы немного не в настроении. -edison.shop.ambrosium_shard=Это действительно особенный, по-настоящему многофункциональный материал. Он может ремонтировать оборудование, улучшать питание, разжигать огонь. Он даже лечит болезни с правильным применением. -edison.shop.skyroot_stick=Я буду честен с Вами, это не совсем часть моих запасов. Но Вы можете купить их, если хотите. -edison.shop.skyroot_pickaxe=Местные жители ценят Небесный корень как материал для его предполагаемой "Беспрецедентной точности". Лишь болтовня! Если Вы спросите меня, но это хорошее начало, если Вы планируете добычу. -edison.shop.skyroot_axe=Как-то неправильно рубить деревья деревьями. Ну. Хороший топор, чтобы сбить тебя с ног деревом. -edison.shop.skyroot_sword=Хотите защитить себя? Дикая природа в этих местах может быть немного агрессивной. Ношение меча было бы умной инвестицией. -edison.shop.skyroot_shovel=Если атакующий маршрут провалится, почему бы не выкопать себе небольшое укрытие! Лопата точно пригодится. -edison.shop.therawood_leaves=У меня был парень, который делал их из тростника Бреттла, красил их красиво, чтобы напоминать листья из лесов Гринстоля. -edison.shop.therawood_log=Наш друг позволил мне взять с собой несколько саженцев для выращивания деревьев, его маленький эксперимент. Листья были отбелены из газов в воздухе, но брёвна в полном порядке. -edison.shop.thera_dirt=Мой любимый маленький проект, я хотел посмотреть, как геология этого мира сравнима с домом, поэтому я обработал несколько земли похожую на Теру. Пустая трата времени, но выглядит ностальгически! -edison.shop.thera_grass=Удалось вырастить что-то похожее на траву Теры. Всегда думал, что трава там зеленее. -edison.shop.therastone_brick=Эти я сделал, чтобы воссоздать старую высокую тёмную и страшную башню. Они простые Агретиты, но с приличным износом они выглядят примерно так. - -edison.shop.holiday_notice=50%% скидка!\nРождественский выпуск - -edison.shop.greetings_holiday=Добро пожаловать в мои праздничные изделия! Эти акции здесь только на определённое время, так что берите их, пока можете. Не будьте дураком, который не воспользовался шансом! - -edison.shop.candy_cane=Эти - праздничные угощения. Не путать с настоящими тростниками, люди с дальних и широких склонов, как правило, украшают их на моих Мутантских деревьях - и к счастью для Вас, эти саженцы продаются! -edison.shop.candy_cane_block=Вы когда-нибудь думали: "Вау, мне действительно нужно разломать кучу конфет и сделать из них чудовищную плиту"? Мне тоже. В любом случае, она продаётся - почему бы не попробовать, пока запасы не закончатся? -edison.shop.candy_cane_wall=Я думаю, Вы могли бы... отгородиться от несвязанных зубов мира? Я озадачен, но эти вещи в наши дни все ещё в моде. Я не понимаю, и честно говоря, я не хочу, потому что они продаются как сумасшедшие. -edison.shop.mutant_sapling=Это навевает воспоминания. Жаль, что я не могу рассказать вам, как были сделаны эти чудесные деревья. Скажем так, это праздничное угощение, которое имеет тенденцию выращивать "Лампочки". -edison.shop.winter_hat=Горожане снизу любят это. Если подумать, не было ни одной праздничной ночи, где я не видел ни одного человека, носящего это. Я слышал, что это стильное дополнение к твоему гардеробу. -edison.shop.eggnog=Вот в чём дело: мне нравится Эггногг, он вкусный - но как только я попробую несколько, этих Эфирных кроликов просто отказываются оставить меня в покое! Это безумие. Я что, один такой? -edison.shop.yule_log=Когда-нибудь хотели съесть бревно? Ну, Вам повезло. Это Ваш единственный шанс съесть бревно и не чувствовать себя виноватым! - -# Джоседия диалог - -josediya.greet.start_not_introduced=Итак, Вы наконец-то здесь. Давайте покончим с этим. -josediya.greet.start=Вам больше ничего не нужно? - -josediya.greet.option.what=Кто Вы такой? -josediya.greet.option.where=Откуда Вы родом? -josediya.greet.option.take_me=Вы можете меня туда отвести? - -josediya.greet.option.winged_beast=Что это за крылатый зверь? -josediya.greet.option.fly=Вы летаете на нём -josediya.greet.option.moa=Могу ли я получить Моа? - -josediya.greet.option.who=Кто Вы? -josediya.greet.option.friends=Вы не друзья с "Лысым"? -josediya.greet.option.paying=Он заплатил Вам, чтобы помочь мне? -josediya.greet.option.white_gold=У меня нет никаких подарков. Что теперь? - -josediya.greet.option.services=Какие услуги Вы оказываете? -josediya.greet.option.home=Откуда Вы знаете, где мой дом? -josediya.greet.option.walk_home=Почему я не могу просто пойти домой пешком? - -josediya.greet.what=Вау, не очень умный Вы? Я человек, как Вы или тот лысый идиот вон там. Никогда не видела раньше Ангела? Валькирии спасают нас всех. -josediya.greet.where=Я родом из страны, расположенной далеко к югу отсюда под названием Верадекс. Там я получаю большую часть своей работы. -josediya.greet.take_me=Я не думаю, что у Вас есть монета, человек. Верадекс это примерно З недели быстрого путешествия, опасный маршрут тоже. Я не могу Вас туда отвезти. -josediya.greet.winged_beast=Это мой друг Тивальер, вообще-то. Он Моа, тоже сильный; Он может летать на нас обоих на спине и не вспотеть. -josediya.greet.fly=Конечно! Это то, для чего его тренировали. я воспитываю Моаса как часть моей работы. Они очень дружелюбные существа, если обращаться с ними правильно. -josediya.greet.moa=Вы должны вырастить его сами, чтобы он доверял вам достаточно, чтобы ездить на нём, получить яйцо это не простая задача, хотя Моа очень защищает свои гнёзда. -josediya.greet.who=Девушка, которая будет водить Вас по местам. Я Джоседия, я управляю бизнесом по перевозке пассажиров и Лысый привёз меня, чтобы помочь Вам. -josediya.greet.friends=Мы с Эдисоном хорошо ладим, он доказал свою полезность за все годы, что я его знаю, но я все ещё не доверяю ему. Для нас просто взаимовыгодно работать вместе. -josediya.greet.paying=Нет, это я должна отплатить за услугу. Вы единственный, кто заплатит мне. И я не беру монеты из Вашего мира, только позолота. -josediya.greet.white_gold=Это Ваша проблема. Мне всё равно, как Вы её получите, но мне нужно платить за мою работу. Идите помогите фермерам или что-то в этом роде. -josediya.greet.services=Если Вы когда-нибудь обнаружите, что где-то открываете магазин, я могу отвезти Вас домой из любого Аванпоста. Я буду ожидать оплаты. -josediya.greet.home=Я не отвезу тебя обратно в Теру, если Вы это имеете в виду. Сначала Вам нужно найти новое место, чтобы здесь отдохнуть, в Эфире. -josediya.greet.walk_home=Я не буду Вас останавливать, но острова Эфира могут быть довольно далеко друг от друга. Путешествие в моей карете будет намного быстрее и намного спокойнее для Вас. Облако достаточно прочное, чтобы ходить между островами пешком, но оно может быть довольно опасным без надлежащей защиты. - -josediya.greet.travel=Ладно. Куда теперь? -josediya.greet.option.travel_to=Переместить к кровати -josediya.greet.option.travel_from=Переместить обратно в последний аванпост -josediya.greet.option.travel=Переместить - -# ДИАЛОГ МИСТИЧЕСКОЙ ФИГУРЫ - -mysterious_figure.greet.start=Новый путешественник, которого я вижу! Добро пожаловать, добро пожаловать... узрите мои удивительные изделия из загробного царства - будет соответствовать ассортимент сладостей! -mysterious_figure.greet.option.who_are_you=Кто Вы? -mysterious_figure.greet.option.why_plumproots=Почему Вы держите толстый корень над плечом? -mysterious_figure.greet.option.sale=Могу я взглянуть на Ваши товары? -mysterious_figure.greet.who_are_you=Вы хотите моё имя, это просто тайна! Всё забыто, даже в истории! -mysterious_figure.greet.why_plumproots=Разве Вы не знаете, какие удивительные вещи Вы можешь творить с такими красивыми толстыми корнями? Вы можете их зажарить, Вы можете их приготовить, для моих изделий Вы должны их использовать! Ваш рот задел вкус пирога с пухлым корнем? Это то, что Вы должны иметь перед смертью! -mysterious_figure.greet.sale=Хорошо, хорошо! Толстые корни, которые Вы дадите, конфеты, которые я сотру. -mysterious_figure.shop.greetings=Толстые корни, толстые корни, толстые корни! Мои конфеты я обменяю на толстые корни - всё, что угодно, кроме резиновых сапогов! -mysterious_figure.shop.candy_corn=Знаете, что хорошо сочетается с кукурузой? Толстые корни! ... И конфеты тоже, видимо. -mysterious_figure.shop.cocoatrice=Василиски не пострадали при изготовлении этого продукта. -mysterious_figure.shop.wrapped_chocolates=Я сам заворачиваю эти конфеты! Не удивляйтесь, если найдёте следы костей. -mysterious_figure.shop.jelly_plumproot=Не уверен, что Вы могли бы сказать, но это мои любимые продукты. -mysterious_figure.shop.blueberry_lollipop=Дети издалека любят этих маленьких сосунков. Может, а может и не превратить Вас в гигантскую чернику. -mysterious_figure.shop.orange_lollipop=На вкус, как апельсины! P.S: Эти конфеты не содержат никаких следов апельсинов. -mysterious_figure.shop.icestone_poprocks=На самом деле не из ледяного камня. -mysterious_figure.shop.ginger_bread_man=Однажды я слышал историю о человеке, который сделал пряник. Легенда гласит, что накануне этого священного месяца они ели пряник в форме человека и превратились в то, что они потребляли. Чувствуя себя счастливыми? -mysterious_figure.shop.candy_cane=Попробуй использовать это, как трость. Давай, я осмелюсь. - -# Описание открытий: - -aether.placeholder.discovery.description=??? -aether.taegore.discovery.description=Таегор высокогорья очень общительные существа, они бродят небольшими стаями, обычно возглавляемыми старшими родителями.\n\nПока Таегор может быть дружелюбным, они оснащены прочной бронёй и острыми бивнями, которые могут затруднить им борьбу.\n\nИх мех - прочный материал, используемый в одежде. - -# Config - -config.aether.skip_intro.name=Пропустить вступление -config.aether.enable_skybox.name=Отобразить Skybox Эфира -config.aether.display_inventory_pattern.name=Отобразить шаблон инвентаря -config.aether.cutout_helmets.name=Прозрачные шлема -config.aether.helmet_shadow.name=Прозрачные тени шлема -config.aether.aether_dimension_id.name=ID Измерения эфира -config.aether.necromancer_dimension_id.name=ID измерение башни некроманта -config.aether.display_performance_indicator.name=Отобразить показатель производительности -config.aether.analytics_enabled.name=Вкл аналитику (только на стороне клиента) -config.aether.fingerprint_violation.name=Отметить нарушение отпечатка пальца -config.aether.aerwhale_riding.name=Можно ездить на Эфирном ките \ No newline at end of file diff --git a/src/main/resources/assets/aether/lang/zh_CN.lang b/src/main/resources/assets/aether/lang/zh_CN.lang deleted file mode 100644 index db485260fd..0000000000 --- a/src/main/resources/assets/aether/lang/zh_CN.lang +++ /dev/null @@ -1,1286 +0,0 @@ -# Aether Blocks -tile.aether.aether_dirt.dirt.name=天壤 -tile.aether.aether_dirt.coarse_dirt.name=砂质天壤 -tile.aether.aether_grass.normal.name=空叶草方块 -tile.aether.aether_grass.enchanted.name=神沃空叶草方块 -tile.aether.aether_grass.arctic.name=极寒草方块 -tile.aether.aether_grass.magnetic.name=磁化草方块 -tile.aether.aether_grass.irradiated.name=辐光草方块 -tile.aether.holystone.normal.name=圣石 -tile.aether.holystone.mossy.name=圣苔石 -tile.aether.holystone.blood_moss.name=血苔圣石 -tile.aether.aercloud.cold.name=寒风境云 -tile.aether.aercloud.blue.name=天蓝境云 -tile.aether.aercloud.green.name=草绿境云 -tile.aether.aercloud.golden.name=金黄境云 -tile.aether.aercloud.storm.name=风暴境云 -tile.aether.aercloud.purple.name=幻紫境云 -tile.aether.skyroot_log.name=天根木 -tile.aether.dark_skyroot_log.name=天硕木 -tile.aether.light_skyroot_log.name=天纤木 -tile.aether.golden_oak_log.name=金琥珀木 -tile.aether.ambrosium_ore.name=神能矿石 -tile.aether.zanite_ore.name=紫晶矿石 -tile.aether.gravitite_ore.name=重力矿石 -tile.aether.arkenium_ore.name=阿肯钢矿石 -tile.aether.continuum_ore.name=嬗变矿石 -tile.aether.blue_skyroot_leaves.name=蓝天根树叶 -tile.aether.green_skyroot_leaves.name=绿天根树叶 -tile.aether.dark_blue_skyroot_leaves.name=深蓝天根树叶 -tile.aether.blue_dark_skyroot_leaves.name=蓝天硕树叶 -tile.aether.green_dark_skyroot_leaves.name=绿天硕树叶 -tile.aether.dark_blue_dark_skyroot_leaves.name=深蓝天硕树叶 -tile.aether.blue_light_skyroot_leaves.name=蓝天纤树叶 -tile.aether.green_light_skyroot_leaves.name=绿天纤树叶 -tile.aether.dark_blue_light_skyroot_leaves.name=深蓝天硕树叶 -tile.aether.amberoot_leaves.name=金琥珀树叶 -tile.aether.mutant_leaves.name=变种树叶 -tile.aether.mutant_leaves_decorated.name=挂饰变种树叶 -tile.aether.tall_aether_grass.short.name=矮空叶草 -tile.aether.tall_aether_grass.normal.name=空叶草丛 -tile.aether.tall_aether_grass.long.name=高空叶草 -tile.aether.quicksoil.name=速沙 -tile.aether.ferrosite_sand.name=磁沙 -tile.aether.aether_crafting_table.name=天根木工作台 -tile.aether.skyroot_trapdoor.name=天根木活板门 -tile.aether.secret_skyroot_trapdoor.name=伪装天根木活板门 -tile.aether.skyroot_ladder.name=天根木梯 -tile.aether.skyroot_pressure_plate.name=天根木压力板 -tile.aether.wisproot_pressure_plate.name=天纤木压力板 -tile.aether.greatroot_pressure_plate.name=天硕木压力板 -tile.aether.skyroot_button.name=天根木按钮 -tile.aether.wisproot_button.name=天纤木按钮 -tile.aether.greatroot_button.name=天硕木按钮 -tile.aether.holystone_pressure_plate.name=圣石压力板 -tile.aether.holystone_button.name=圣石按钮 -tile.aether.blueberry_bush.ripe.name=蓝莓灌木 -tile.aether.blueberry_bush.stem.name=蓝莓灌木丛 -tile.aether.enchanted_blueberry_bush.ripe.name=神沃蓝莓灌木丛 -tile.aether.enchanted_blueberry_bush.stem.name=神沃蓝莓灌木 -tile.aether.orange_tree.name=橙子树 -tile.aether.aether_flower.purple_flower.name=幻紫花 -tile.aether.aether_flower.white_rose.name=白玫瑰 -tile.aether.aether_flower.burstblossom.name=爆簇花 -tile.aether.aether_flower.aechor_sprout.name=箭毒花苗 -tile.aether.altar.name=祭坛 -tile.aether.icestone_ore.name=冰原石 -tile.aether.icestone_bricks.name=冰砖 -tile.aether.icestone_bricks_decorative.name=饰纹冰砖 -tile.aether.icestone_bricks_decorative.base_bricks.name=砖石 -tile.aether.icestone_bricks_decorative.base_pillar.name=柱石 -tile.aether.icestone_bricks_decorative.keystone.name=拱顶石 -tile.aether.icestone_bricks_decorative.capstone_bricks.name=拱石 -tile.aether.icestone_bricks_decorative.capstone_pillar.name=拱石柱 -tile.aether.icestone_bricks_decorative.flagstones.name=板石 -tile.aether.icestone_bricks_decorative.headstone.name=碑石 -tile.aether.icestone_pillar.name=冰砖柱 -tile.aether.crude_scatterglass.name=粗雾面玻璃 -tile.aether.crude_scatterglass_decorative.name=镶框粗雾面玻璃 -tile.aether.crude_scatterglass_decorative.skyroot_frame.name=天根木边框 -tile.aether.crude_scatterglass_decorative.arkenium_frame.name=阿肯钢边框 -tile.aether.scatterglass.name=雾面玻璃 -tile.aether.scatterglass_decorative.name=镶框雾面玻璃 -tile.aether.scatterglass_decorative.arkenium_frame.name=阿肯钢边框 -tile.aether.scatterglass_decorative.skyroot_frame.name=天根木边框 -tile.aether.quicksoil_glass.name=速沙玻璃 -tile.aether.quicksoil_glass_decorative.name=镶框速沙玻璃 -tile.aether.quicksoil_glass_decorative.arkenium_frame.name=阿肯钢边框 -tile.aether.quicksoil_glass_decorative.skyroot_frame.name=天根木边框 -tile.aether.zanite_block.name=紫晶块 -tile.aether.skyroot_sapling.blue_skyroot.name=蓝叶天根树苗 -tile.aether.skyroot_sapling.green_skyroot.name=绿叶天根树苗 -tile.aether.skyroot_sapling.dark_blue_skyroot.name=深蓝天根树苗 -tile.aether.unique_sapling.amberoot.name=金琥珀树苗 -tile.aether.unique_sapling.mutant_tree.name=爱迪生热情洋溢的节日变种树苗 -tile.aether.wisproot_sapling.wisproot_green.name=绿叶天纤树苗 -tile.aether.wisproot_sapling.wisproot_blue.name=蓝叶天纤树苗 -tile.aether.wisproot_sapling.wisproot_dark_blue.name=深蓝天纤树苗 -tile.aether.greatroot_sapling.green_greatroot.name=绿叶天硕树苗 -tile.aether.greatroot_sapling.blue_greatroot.name=蓝叶天硕树苗 -tile.aether.greatroot_sapling.dark_blue_greatroot.name=暗蓝天硕树苗 -tile.aether.carved_stone.normal.name=雕纹石 -tile.aether.carved_stone.divine.name=神佑雕纹石 -tile.aether.sentry_stone.normal.name=岗哨石 -tile.aether.sentry_stone.divine.name=神佑岗哨石 -tile.aether.gravitite_block.name=重力晶块 -tile.aether.holystone_furnace.name=圣石炉 -tile.aether.skyroot_chest.name=天根木箱 -tile.aether.ambrosium_torch.name=神能火把 -tile.aether.skyroot_fence.name=天根木栅栏 -tile.aether.skyroot_fence_gate.name=天根木栅栏门 -tile.aether.wisproot_fence.name=天纤木栅栏 -tile.aether.wisproot_fence_gate.name=天纤木栅栏门 -tile.aether.greatroot_fence.name=天硕木栅栏 -tile.aether.greatroot_fence_gate.name=天硕木栅栏门 -tile.aether.therawood_fence.name=坻星木栅栏 -tile.aether.therawood_fence_gate.name=坻星木栅栏门 -tile.aether.holystone_wall.name=圣石墙 -tile.aether.mossy_holystone_wall.name=圣苔石墙 -tile.aether.carved_stone_wall.name=雕纹石墙 -tile.aether.icestone_wall.name=冰砖墙 -tile.aether.skyroot_log_wall.name=天根木墙 -tile.aether.scatterglass_wall.name=雾面玻璃墙 -tile.aether.holystone_brick_wall.name=圣石砖墙 -tile.aether.sentry_stone_wall.name=岗哨石墙 -tile.aether.divine_sentry_wall.name=神佑岗哨石墙 -tile.aether.divine_stone_wall.name=神佑石墙 -tile.aether.wisproot_log_wall.name=天纤木墙 -tile.aether.greatroot_log_wall.name=天硕木墙 -tile.aether.therawood_log_wall.name=坻星木墙 -tile.aether.agiosite_wall.name=天冶石墙 -tile.aether.agiosite_brick_wall.name=天冶砖墙 -tile.aether.faded_holystone_brick_wall.name=风化圣石砖墙 -tile.aether.sentrystone_brick_wall.name=岗哨石砖墙 -tile.aether.hellfirestone_brick_wall.name=狱炎石砖墙 -tile.aether.therastone_brick_wall.name=坻星石砖墙 -tile.aether.labyrinth_totem.name=迷宫图腾 -tile.aether.labyrinth_capstone.name=迷宫拱顶石 -tile.aether.labyrinth_glowing_pillar.name=微光迷宫石柱 -tile.aether.labyrinth_pillar.name=迷宫石柱 -tile.aether.labyrinth_wall.name=迷宫石墙 -tile.aether.labyrinth_lightstone.name=轻迷宫石 -tile.aether.labyrinth_base.name=迷宫基石 -tile.aether.labyrinth_headstone.name=迷宫石碑 -tile.aether.labyrinth_eye.name=迷宫之眼 -tile.aether.labyrinth_chest.name=迷宫宝箱 -tile.aether.skyroot_slab.name=天根木台阶 -tile.aether.wisproot_slab.name=天纤木台阶 -tile.aether.greatroot_slab.name=天硕木台阶 -tile.aether.therawood_slab.name=坻星木台阶 -tile.aether.holystone_slab.name=圣石台阶 -tile.aether.holystone_brick_slab.name=圣石砖台阶 -tile.aether.therastone_brick_slab.name=坻星石砖台阶 -tile.aether.carved_stone_slab.name=雕纹石台阶 -tile.aether.divine_carved_stone_slab.name=神佑雕纹石台阶 -tile.aether.sentry_stone_slab.name=岗哨石台阶 -tile.aether.divine_sentry_stone_slab.name=神佑岗哨石台阶 -tile.aether.icestone_slab.name=冰砖台阶 -tile.aether.mossy_holystone_slab.name=圣苔石台阶 -tile.aether.faded_holystone_brick_slab.name=风化圣石砖台阶 -tile.aether.agiosite_slab.name=天冶石台阶 -tile.aether.agiosite_brick_slab.name=天冶砖台阶 -tile.aether.scatterglass_slab.name=雾面玻璃台阶 -tile.aether.sentrystone_brick_slab.name=岗哨石砖台阶 -tile.aether.hellfirestone_brick_slab.name=狱炎石砖台阶 -tile.aether.labyrinth_capstone_slab.name=迷宫拱顶石台阶 -tile.aether.labyrinth_wall_slab.name=迷宫墙砖台阶 -tile.aether.labyrinth_strongblock.name=迷宫强化石 -tile.aether.skyroot_stairs.name=天根木楼梯 -tile.aether.wisproot_stairs.name=天纤木楼梯 -tile.aether.greatroot_stairs.name=天硕木楼梯 -tile.aether.therawood_stairs.name=坻星木楼梯 -tile.aether.holystone_stairs.name=圣石楼梯 -tile.aether.mossy_holystone_stairs.name=圣苔石楼梯 -tile.aether.holystone_brick_stairs.name=圣石砖楼梯 -tile.aether.therastone_brick_stairs.name=坻星石砖楼梯 -tile.aether.sentry_stone_stairs.name=岗哨石楼梯 -tile.aether.divine_sentry_stone_stairs.name=神佑岗哨石楼梯 -tile.aether.carved_stone_stairs.name=雕纹石楼梯 -tile.aether.divine_carved_stone_stairs.name=神佑雕纹石楼梯 -tile.aether.cloudwool_block.name=卷云羊毛 -tile.aether.woven_sticks.skyroot.name=天根木枝条块 -tile.aether.moa_egg.name=恐鸟蛋 -tile.aether.icestone_brick_stairs.name=冰砖楼梯 -tile.aether.scatterglass_stairs.name=雾面玻璃楼楼梯 -tile.aether.faded_holystone_brick_stairs.name=风化圣石砖楼梯 -tile.aether.agiosite_stairs.name=天冶石楼梯 -tile.aether.agiosite_brick_stairs.name=天冶砖楼梯 -tile.aether.sentrystone_brick_stairs.name=岗哨石砖楼梯 -tile.aether.hellfirestone_brick_stairs.name=狱炎石砖楼梯 -tile.aether.burstblossom.name=爆簇花 -tile.aether.moonlit_bloom.name=月华花 -tile.aether.icestone_cooler.name=冰石冷却器 -tile.aether.incubator.name=孵化器 -tile.aether.present.name=礼物 -tile.aether.labyrinth_container.small.name=小型迷宫容器 -tile.aether.labyrinth_container.large.name=大型迷宫容器 -tile.aether.unstable_labyrinth_capstone.name=松动迷宫拱顶石 -tile.aether.wildcard.name=未知物品 -tile.aether.masonry_bench.name=石工台 -tile.aether.holystone_brick.name=圣石砖 -tile.aether.holystone_brick_decorative.name=饰纹圣石砖 -tile.aether.holystone_brick_decorative.base_bricks.name=砖石 -tile.aether.holystone_brick_decorative.base_pillar.name=柱石 -tile.aether.holystone_brick_decorative.keystone.name=拱顶石 -tile.aether.holystone_brick_decorative.capstone_bricks.name=拱石 -tile.aether.holystone_brick_decorative.capstone_pillar.name=拱石柱 -tile.aether.holystone_brick_decorative.flagstones.name=板石 -tile.aether.holystone_brick_decorative.headstone.name=碑石 -tile.aether.holystone_pillar.name=圣石砖柱 -tile.aether.sentrystone_brick.name=岗哨石砖 -tile.aether.sentrystone_brick_decorative.name=饰纹岗哨石砖 -tile.aether.sentrystone_brick_decorative.base_bricks.name=砖石 -tile.aether.sentrystone_brick_decorative.base_pillar.name=柱石 -tile.aether.sentrystone_brick_decorative.keystone.name=拱顶石 -tile.aether.sentrystone_brick_decorative.capstone_bricks.name=拱石 -tile.aether.sentrystone_brick_decorative.capstone_pillar.name=拱石柱 -tile.aether.sentrystone_brick_decorative.flagstones.name=板石 -tile.aether.sentrystone_brick_decorative.lightstone.name=轻石 -tile.aether.sentrystone_pillar.name=岗哨石柱 -tile.aether.sentrystone_brick_decorative_lit.name=饰纹亮岗哨石砖 -tile.aether.sentrystone_brick_decorative_lit.base_bricks.name=亮砖石 -tile.aether.sentrystone_brick_decorative_lit.base_pillar.name=亮柱石 -tile.aether.sentrystone_brick_decorative_lit.keystone.name=亮拱顶石 -tile.aether.sentrystone_brick_decorative_lit.capstone_bricks.name=亮拱石 -tile.aether.sentrystone_brick_decorative_lit.capstone_pillar.name=亮拱石柱 -tile.aether.sentrystone_brick_decorative_lit.lightstone.name=亮轻石 -tile.aether.sentrystone_pillar_lit.name=亮岗哨石砖柱 -tile.aether.hellfirestone_brick.name=狱炎石砖 -tile.aether.hellfirestone_brick_decorative.name=饰纹狱炎石砖 -tile.aether.hellfirestone_brick_decorative.base_bricks.name=砖石 -tile.aether.hellfirestone_brick_decorative.base_pillar.name=柱石 -tile.aether.hellfirestone_brick_decorative.keystone.name=拱顶石 -tile.aether.hellfirestone_brick_decorative.capstone_bricks.name=拱石 -tile.aether.hellfirestone_brick_decorative.capstone_pillar.name=拱石柱 -tile.aether.hellfirestone_brick_decorative.flagstones.name=板石 -tile.aether.hellfirestone_lantern.name=狱炎石灯 -tile.aether.hellfirestone_pillar.name=狱炎石柱 -tile.aether.faded_holystone_brick.name=风化圣石砖 -tile.aether.faded_holystone_brick_decorative.name=饰纹风化圣石砖 -tile.aether.faded_holystone_brick_decorative.base_bricks.name=砖石 -tile.aether.faded_holystone_brick_decorative.base_pillar.name=柱石 -tile.aether.faded_holystone_brick_decorative.keystone.name=拱顶石 -tile.aether.faded_holystone_brick_decorative.capstone_bricks.name=拱石 -tile.aether.faded_holystone_brick_decorative.capstone_pillar.name=拱石柱 -tile.aether.faded_holystone_brick_decorative.flagstones.name=板石 -tile.aether.faded_holystone_brick_decorative.headstone.name=碑石 -tile.aether.faded_holystone_pillar.name=风化圣石砖柱 -tile.aether.therastone_brick.name=坻星石砖 -tile.aether.therastone_brick_decorative.name=饰纹坻星石砖 -tile.aether.therastone_brick_decorative.base_bricks.name=砖石 -tile.aether.therastone_brick_decorative.base_pillar.name=柱石 -tile.aether.therastone_brick_decorative.keystone.name=拱顶石 -tile.aether.therastone_brick_decorative.capstone_bricks.name=拱石 -tile.aether.therastone_brick_decorative.capstone_pillar.name=拱石柱 -tile.aether.therastone_brick_decorative.flagstones.name=板石 -tile.aether.therastone_brick_decorative.headstone.name=碑石 -tile.aether.therastone_pillar.name=坻星石砖柱 -tile.aether.agiosite.name=天冶石 -tile.aether.agiosite_brick.name=天冶砖 -tile.aether.agiosite_brick_decorative.name=饰纹天冶砖 -tile.aether.agiosite_brick_decorative.base_bricks.name=砖石 -tile.aether.agiosite_brick_decorative.base_pillar.name=柱石 -tile.aether.agiosite_brick_decorative.keystone.name=拱顶石 -tile.aether.agiosite_brick_decorative.capstone_bricks.name=拱石 -tile.aether.agiosite_brick_decorative.capstone_pillar.name=拱石柱 -tile.aether.agiosite_brick_decorative.flagstones.name=板石 -tile.aether.agiosite_pillar.name=天冶砖柱 -tile.aether.therawood_planks.name=坻星木板 -tile.aether.therawood_decorative.name=饰纹坻星木 -tile.aether.therawood_decorative.base_planks.name=木板 -tile.aether.therawood_decorative.base_beam.name=梁木 -tile.aether.therawood_decorative.highlight.name=细纹 -tile.aether.therawood_decorative.top_planks.name=顶板 -tile.aether.therawood_decorative.top_beam.name=顶梁 -tile.aether.therawood_decorative.floorboards.name=地板 -tile.aether.therawood_beam.name=坻星木梁 -tile.aether.therawood_log.name=坻星原木 -tile.aether.therawood_leaves.name=坻星树叶 -tile.aether.skyroot_planks.name=天根木板 -tile.aether.skyroot_decorative.name=饰纹天根木板 -tile.aether.skyroot_decorative.base_planks.name=木板 -tile.aether.skyroot_decorative.base_beam.name=梁木 -tile.aether.skyroot_decorative.highlight.name=细纹 -tile.aether.skyroot_decorative.top_planks.name=顶板 -tile.aether.skyroot_decorative.top_beam.name=顶梁 -tile.aether.skyroot_decorative.floorboards.name=地板 -tile.aether.skyroot_decorative.tiles.name=木瓦 -tile.aether.skyroot_decorative.tiles_small.name=细木瓦 -tile.aether.skyroot_beam.name=天根木梁 -tile.aether.dark_skyroot_planks.name=天硕木板 -tile.aether.dark_skyroot_decorative.name=饰纹天硕木板 -tile.aether.dark_skyroot_decorative.base_planks.name=木板 -tile.aether.dark_skyroot_decorative.base_beam.name=梁木 -tile.aether.dark_skyroot_decorative.highlight.name=细纹 -tile.aether.dark_skyroot_decorative.top_planks.name=顶板 -tile.aether.dark_skyroot_decorative.top_beam.name=顶梁 -tile.aether.dark_skyroot_decorative.floorboards.name=木地板 -tile.aether.dark_skyroot_decorative.tiles.name=木瓦 -tile.aether.dark_skyroot_decorative.tiles_small.name=细木瓦 -tile.aether.dark_skyroot_beam.name=天硕木梁 -tile.aether.light_skyroot_planks.name=天纤木板 -tile.aether.light_skyroot_decorative.name=饰纹天纤木板 -tile.aether.light_skyroot_decorative.base_planks.name=木板 -tile.aether.light_skyroot_decorative.base_beam.name=梁木 -tile.aether.light_skyroot_decorative.highlight.name=细纹 -tile.aether.light_skyroot_decorative.top_planks.name=顶板 -tile.aether.light_skyroot_decorative.top_beam.name=顶梁 -tile.aether.light_skyroot_decorative.floorboards.name=木地板 -tile.aether.light_skyroot_decorative.tiles.name=木瓦 -tile.aether.light_skyroot_decorative.tiles_small.name=细木瓦 -tile.aether.light_skyroot_beam.name=天纤木梁 -tile.aether.quicksoil_glass_pane.name=速沙玻璃板 -tile.aether.quicksoil_glass_pane_decorative.name=镶框速沙玻璃板 -tile.aether.quicksoil_glass_pane_decorative.arkenium_frame.name=阿肯钢边框 -tile.aether.quicksoil_glass_pane_decorative.skyroot_frame.name=天根木边框 -tile.aether.arkenium_frame.name=阿肯钢窗框 -tile.aether.skyroot_frame.name=天根木窗框 -tile.aether.scatterglass_pane.name=雾面玻璃板 -tile.aether.scatterglass_pane_decorative.name=镶框雾面玻璃板 -tile.aether.scatterglass_pane_decorative.arkenium_frame.name=阿肯钢边框 -tile.aether.scatterglass_pane_decorative.skyroot_frame.name=天根木边框 -tile.aether.skyroot_twigs.name=天根树枝 -tile.aether.holystone_rock.name=圣岩 -tile.aether.crude_scatterglass_pane.name=粗雾面玻璃板 -tile.aether.crude_scatterglass_pane_decorative.name=镶框粗雾面玻璃板 -tile.aether.crude_scatterglass_pane_decorative.arkenium_frame.name=阿肯钢边框 -tile.aether.crude_scatterglass_pane_decorative.skyroot_frame.name=天根木边框 -tile.aether.cloudwool_carpet.name=卷云地毯 -tile.aether.skyroot_bookshelf.name=天根木书架 -tile.aether.holystone_bookshelf.name=圣石书架 -tile.aether.outpost_campfire.name=哨营篝火 -tile.aether.valkyrie_grass.sprout.name=武神草丛 -tile.aether.valkyrie_grass.full.name=武神草穗 -tile.aether.aether_teleporter.name=天境之门 -tile.aether.thera_dirt.dirt.name=坻星泥土 -tile.aether.thera_grass.normal.name=坻星草方块 -tile.aether.ferrosite.name=磁岩 -tile.aether.rusted_ferrosite.name=锈磁岩 -tile.aether.highlands_snow.name=霏雪 -tile.aether.highlands_snow_layer.name=霏雪 -tile.aether.highlands_ice.name=穹冰 -tile.aether.highlands_packed_ice.name=松浮穹冰 -tile.aether.plumproot.name=腴根 -tile.aether.highlands_ice_crystal.stalagmite.name=凝冰结晶 -tile.aether.candy_cane_block.name=拐杖糖块 -tile.aether.candy_cane_wall.name=拐杖糖墙 -tile.aether.arctic_spikespring.name=极寒花穗 -tile.aether.barkshroom.name=树皮菇 -tile.aether.blue_swingtip.name=蓝尖儿花 -tile.aether.forgotten_rose.name=遗忘玫瑰 -tile.aether.green_swingtip.name=绿尖儿花 -tile.aether.highlands_bush.name=空原灌木 -tile.aether.highlands_tulips.name=空原郁金香 -tile.aether.irradiated_flower.name=辐光花 -tile.aether.magnetic_shroom.name=磁地蘑菇 -tile.aether.neverbloom.name=永苞花 -tile.aether.pink_swingtip.name=粉尖儿花 -tile.aether.quickshoot.name=速绽花 -tile.aether.stoneshroom.name=顽石菇 - -# Aether Items -item.aether.skyroot_stick.name=天根木棍 -item.aether.cloudtwine.name=卷云绳 -item.aether.moa_feather.name=恐鸟羽毛 -item.aether.cockatrice_feather.name=鸡蛇翎羽 -item.aether.ambrosium_shard.name=神能晶片 -item.aether.ambrosium_chunk.name=神能晶块 -item.aether.zanite_gemstone.name=紫晶石 -item.aether.continuum_orb.name=嬗变宝珠 -item.aether.arkenium.name=阿肯钢材 -item.aether.arkenium_strip.name=阿肯钢条 -item.aether.skyroot_pickaxe.name=天根木镐 -item.aether.skyroot_axe.name=天根木斧 -item.aether.skyroot_shovel.name=天根木锹 -item.aether.skyroot_sword.name=天根木剑 -item.aether.holystone_pickaxe.name=圣石镐 -item.aether.holystone_axe.name=圣石斧 -item.aether.holystone_shovel.name=圣石锹 -item.aether.holystone_sword.name=圣石剑 -item.aether.zanite_pickaxe.name=紫晶镐 -item.aether.zanite_axe.name=紫晶斧 -item.aether.zanite_shovel.name=紫晶锹 -item.aether.zanite_sword.name=紫晶剑 -item.aether.gravitite_pickaxe.name=重力晶镐 -item.aether.gravitite_axe.name=重力晶斧 -item.aether.gravitite_sword.name=重力晶剑 -item.aether.gravitite_shovel.name=重力晶锹 -item.aether.arkenium_pickaxe.name=阿肯钢镐 -item.aether.arkenium_axe.name=阿肯钢斧 -item.aether.arkenium_shovel.name=阿肯钢锹 -item.aether.arkenium_sword.name=阿肯钢剑 -item.aether.arkenium_shears.name=阿肯钢剪刀 -item.aether.taegore_hide_helmet.name=探戈皮帽 -item.aether.taegore_hide_chestplate.name=探戈皮袄 -item.aether.taegore_hide_leggings.name=探戈皮裤 -item.aether.taegore_hide_boots.name=探戈皮靴 -item.aether.zanite_helmet.name=紫晶头盔 -item.aether.zanite_chestplate.name=紫晶胸甲 -item.aether.zanite_leggings.name=紫晶护腿 -item.aether.zanite_boots.name=紫晶战靴 -item.aether.arkenium_helmet.name=阿肯钢盔 -item.aether.arkenium_chestplate.name=阿肯钢胸甲 -item.aether.arkenium_leggings.name=阿肯钢护腿 -item.aether.arkenium_boots.name=阿肯钢靴 -item.aether.gravitite_helmet.name=重力晶盔 -item.aether.gravitite_chestplate.name=重力晶胸甲 -item.aether.gravitite_leggings.name=重力晶护腿 -item.aether.gravitite_boots.name=重力晶靴 -item.aether.golden_amber.name=金琥珀 -item.aether.aechor_petal.name=箭毒花瓣 -item.aether.blueberries.name=蓝莓 -item.aether.enchanted_blueberry.name=神饯蓝莓 -item.aether.orange.name=橙子 -item.aether.wyndberry.name=风莓 -item.aether.candy_corn.name=玉米糖 -item.aether.cocoatrice.name=可可鸡蛇 -item.aether.jelly_plumproot.name=腴根软糖 -item.aether.stomper_pop.name=粉红史维特棒棒糖 -item.aether.blueberry_lollipop.name=蓝莓棒棒糖 -item.aether.orange_lollipop.name=橙子棒棒糖 -item.aether.icestone_poprocks.name=冰石跳跳糖 -item.aether.ginger_bread_man.name=姜饼人 -item.aether.candy_cane.name=拐杖糖 -item.aether.yule_log.name=圣诞节原木蛋糕 -item.aether.wrapped_chocolates.name=精装巧克力 -item.aether.enchanted_wyndberry.name=神饯风莓 -item.aether.swet_jelly.blue.name=天蓝史维特果冻 -item.aether.swet_jelly.green.name=鲜绿史维特果冻 -item.aether.swet_jelly.purple.name=幻紫史维特果冻 -item.aether.swet_gel.blue.name=天蓝史维特凝胶 -item.aether.swet_gel.green.name=鲜绿史维特凝胶 -item.aether.swet_gel.purple.name=幻紫史维特凝胶 -item.aether.swet_sugar.name=史维特糖 -item.aether.skyroot_bucket.name=天根木桶 -item.aether.skyroot_water_bucket.name=天根水桶 -item.aether.skyroot_milk_bucket.name=天根牛奶桶 -item.aether.skyroot_poison_bucket.name=天根毒液桶 -item.aether.valkyrie_music_disc.name=武神唱片 -item.aether.labyrinth_music_disc.name=迷宫唱片 -item.aether.moa_music_disc.name=恐鸟唱片 -item.aether.aerwhale_music_disc.name=云鲸唱片 -item.aether.recording_892.name=录音#892 -item.aether.healing_stone.name=治愈灵石 -item.aether.healing_stone_depleted.name=空治愈灵石 -item.aether.dart_shooter.golden.name=金琥珀吹箭筒 -item.aether.dart_shooter.enchanted.name=神能吹箭筒 -item.aether.dart_shooter.poison.name=剧毒吹箭筒 -item.aether.dart.golden.name=金琥珀镖箭 -item.aether.dart.enchanted.name=神能镖箭 -item.aether.dart.poison.name=剧毒镖箭 -item.aether.cloud_parachute.cold.name=寒风云落伞 -item.aether.cloud_parachute.blue.name=天蓝云落伞 -item.aether.cloud_parachute.purple.name=幻紫云落伞 -item.aether.aether_saddle.name=恐鸟鞍鞯 -item.aether.skyroot_door_item.name=天根木门 -item.aether.secret_skyroot_door_item.name=伪装天根木门 -item.aether.arkenium_door_item.name=阿肯钢门 -item.aether.taegore_hide_gloves.name=探戈皮手套 -item.aether.icestone.name=冰石 -item.aether.skyroot_sign.name=天根告示牌 -item.aether.zanite_gloves.name=紫晶护手 -item.aether.arkenium_gloves.name=阿肯钢手套 -item.aether.gravitite_gloves.name=重力晶拳甲 -item.aether.shard_of_life.name=生命补片 -item.aether.skyroot_shield.name=天根木盾 -item.aether.holystone_shield.name=圣石重盾 -item.aether.zanite_shield.name=紫晶战盾 -item.aether.arkenium_shield.name=阿肯钢盾 -item.aether.gravitite_shield.name=重力晶盾 -item.aether.plumproot_mash.name=腴根羹 -item.aether.plumproot_pie.name=腴根派 -item.aether.winter_hat.name=圣诞帽 -item.aether.eggnog.name=蛋奶酒 - -item.aether.skyroot_bed_item.name=天根床 -item.aether.moa_egg_item.name=恐鸟蛋 -item.aether.rainbow_moa_egg.name=彩虹恐鸟蛋 - -item.aether.cold_cloud_parachute.name=寒风云落伞 -item.aether.purple_cloud_parachute.name=幻紫云落伞 -item.aether.blue_cloud_parachute.name=天蓝云落伞 - -item.aether.irradiated_chunk.name=辐化原料 -item.aether.irradiated_sword.name=辐化宝剑 -item.aether.irradiated_armor.name=辐化装甲 -item.aether.irradiated_tool.name=辐化工具 -item.aether.irradiated_ring.name=辐化戒指 -item.aether.irradiated_neckwear.name=辐化项链 -item.aether.irradiated_charm.name=辐化符文 -item.aether.irradiated_dust.name=辐化粉尘 - -item.aether.skyroot_crossbow.name=天根木弩 -item.aether.holystone_crossbow.name=圣石重弩 -item.aether.zanite_crossbow.name=紫晶劲弩 -item.aether.arkenium_crossbow.name=阿肯钢弩 -item.aether.gravitite_crossbow.name=重力晶弩 -item.aether.bolt.skyroot.name=天根弩箭 -item.aether.bolt.holystone.name=圣石弩箭 -item.aether.bolt.scatterglass.name=雾面玻璃弩箭 -item.aether.bolt.boneshard.name=利骨弩箭 -item.aether.bolt.zanite.name=紫晶弩箭 -item.aether.bolt.gravitite.name=重力晶箭 -item.aether.bolt.arkenium.name=阿肯钢箭 -item.aether.wrapping_paper.name=包装纸 -item.aether.fried_moa_egg.name=煎恐鸟蛋 -item.aether.aether_spawn_egg.name=生蛋 -item.aether.arkenium_ore_item.name=阿肯钢矿 -item.aether.gravitite_ore_item.name=重力晶矿 -item.aether.gravitite_plate.name=重力晶板 -item.aether.raw_taegore_meat.name=探戈猪腿 -item.aether.taegore_steak.name=探戈猪排 -item.aether.skyroot_lizard_stick.name=生天根树蜥串 -item.aether.skyroot_lizard_stick_roasted.name=烤天根树蜥串 -item.aether.taegore_hide.name=探戈毛皮 -item.aether.burrukai_rib_cut.name=布鲁牛肋 -item.aether.burrukai_ribs.name=布鲁烤肋 -item.aether.burrukai_pelt.name=布鲁牛皮 -item.aether.kirrid_loin.name=科里后腰 -item.aether.kirrid_cutlet.name=科里羊排 -item.aether.valkyrie_wings.name=武神草穗 -item.aether.brettl_cane.name=布雷特蔗 -item.aether.brettl_grass.name=布雷特干草 -item.aether.wrapping_paper.bow.black.name=黑色蝴蝶结 -item.aether.wrapping_paper.bow.red.name=红色蝴蝶结 -item.aether.wrapping_paper.bow.green.name=绿色蝴蝶结 -item.aether.wrapping_paper.bow.brown.name=棕色蝴蝶结 -item.aether.wrapping_paper.bow.blue.name=蓝色蝴蝶结 -item.aether.wrapping_paper.bow.purple.name=紫色蝴蝶结 -item.aether.wrapping_paper.bow.cyan.name=青色蝴蝶结 -item.aether.wrapping_paper.bow.pink.name=粉色蝴蝶结 -item.aether.wrapping_paper.bow.lime.name=黄绿蝴蝶结 -item.aether.wrapping_paper.bow.yellow.name=黄色蝴蝶结 -item.aether.wrapping_paper.bow.light_blue.name=浅蓝蝴蝶结 -item.aether.wrapping_paper.bow.magenta.name=品红蝴蝶结 -item.aether.wrapping_paper.bow.orange.name=橙色蝴蝶结 -item.aether.wrapping_paper.bow.white.name=白色蝴蝶结 -item.aether.wrapping_paper.box.black.name=黑色礼物盒 -item.aether.wrapping_paper.box.red.name=红色礼物盒 -item.aether.wrapping_paper.box.green.name=绿色礼物盒 -item.aether.wrapping_paper.box.brown.name=棕色礼物盒 -item.aether.wrapping_paper.box.blue.name=蓝色礼物盒 -item.aether.wrapping_paper.box.purple.name=紫色礼物盒 -item.aether.wrapping_paper.box.cyan.name=青色礼物盒 -item.aether.wrapping_paper.box.pink.name=粉色礼物盒 -item.aether.wrapping_paper.box.lime.name=柠檬礼物盒 -item.aether.wrapping_paper.box.yellow.name=黄色礼物盒 -item.aether.wrapping_paper.box.light_blue.name=浅蓝礼物盒 -item.aether.wrapping_paper.box.magenta.name=品红礼物盒 -item.aether.wrapping_paper.box.orange.name=橙色礼物盒 -item.aether.wrapping_paper.box.white.name=白色礼物盒 -item.aether.wrapping_paper.tooltip.craft=在工作台上把物品包装起来! -item.aether.present.tooltip.empty=空 -item.aether.present.tooltip.hasitem=里面有神秘的小惊喜哦! - - -tile.aether.aether_portal.name=天境传送门 -tile.aether.campfire.mobNotification=你不能带着别的生物离开天境。 - -cloudParachute.ability.rightClick=§3使用:§r右击 -cloudParachute.ability=§9功能: -cloudParachute.ability.cold=缓速下降 -cloudParachute.ability.purple=定位降落 -cloudParachute.ability.blue=高速飞升 - -moa.feathers=羽色:%s -moa.keratin=肤色:%s -moa.eyes=眸色:%s -moa.wing_strength=翼强:%s - -moa.keratin.sky_blue=天蓝 -moa.keratin.deep_sky=天青 -moa.keratin.sand=沙黄 -moa.keratin.midnight_sky=夜蓝 -moa.keratin.swamp=沼绿 -moa.keratin.royal=皇家蓝 -moa.keratin.tempest=风暴红 - -moa.eyes.alto=沉暗 -moa.eyes.straw=稻黄 -moa.eyes.winter_hazel=冬榛 -moa.eyes.gossip=闲语 -moa.eyes.mint=薄荷 -moa.eyes.ice=冰寒 -moa.eyes.perano=佩拉诺 -moa.eyes.portage=水运 -moa.eyes.perfume=香氛 -moa.eyes.illusion=幻想 -moa.eyes.wewak=委瓦克 - -moa.feathers.black=黑色 -moa.feathers.grey=灰色 -moa.feathers.white=白色 -moa.feathers.iroko=伊罗科木 -moa.feathers.orange=橙色 -moa.feathers.lisbon_brown=里斯本棕 -moa.feathers.yellow=黄色 -moa.feathers.mallard=鸭绿 -moa.feathers.lime_green=柠绿 -moa.feathers.everglad=沼绿 -moa.feathers.green=绿色 -moa.feathers.plantation=林绿 -moa.feathers.sky_blue=天蓝 -moa.feathers.cloud_burst=豪雨 -moa.feathers.blue=蓝色 -moa.feathers.port_gore=血泊 -moa.feathers.purple=紫色 -moa.feathers.bossanova=波萨诺瓦 -moa.feathers.pink=粉色 -moa.feathers.livid_brown=铁棕 -moa.feathers.puse=磷色 -moa.feathers.deep_red=深红 -moa.feathers.red=红色 - -mmoa.marks.spots=斑点 -moa.marks.circles=放射 -moa.marks.curves=树状 -moa.marks.ladder=链状 -moa.marks.lines=线状 - -moa.wing_strength.weak=孱弱 -moa.wing_strength.normal=庸常 -moa.wing_strength.strong=强壮 -moa.wing_strength.excellent=健硕 - -# Item Rarities -item.rarity.none.name=§7§o基础 -item.rarity.common.name=§7§o常见 -item.rarity.rare.name=§b§o稀有 -item.rarity.epic.name=§5§o史诗 -item.rarity.mythic.name=§6§o神秘 -item.rarity.godly.name=§o§a神§b灵§6之§d应§e许 - -# Weapon Tooltips -item.aether.skyroot_sword.ability.desc=双倍掉落 -item.aether.holystone_sword.ability.desc=神能生晶 -item.aether.zanite_sword.ability.desc=愈战愈勇 -item.aether.gravitite_sword.ability.desc=反重升腾 -item.aether.gravitite_sword.use.desc=潜行进攻 -item.aether.arkenium_sword.ability.desc=沉重耐用 -item.aether.holy_sword.ability.desc=亡灵专杀 -item.aether.lightning_sword.ability.desc=雷霆一击 -item.aether.flaming_sword.ability.desc=烈火焚身 -item.aether.vampire_blade.ability.desc=生命吸取 -item.aether.candy_cane_sword.ability.desc=天赐糖果 -item.aether.valkyrie_lance.ability.desc=破空远击 -item.aether.sentry_vaultbox.ability.desc1=§d输出:§r随机物品 -item.aether.sentry_vaultbox.ability.desc2=§3投掷:§r右键 -item.aether.crossbow.desc1=装填速度 -item.aether.crossbow.desc2=秒 -item.aether.crossbow.desc3=秒 -item.aether.crossbow.desc4=功能 -item.aether.crossbow.use.desc=潜行&装填 -item.aether.skyroot_crossbow.ability=双发 -item.aether.holystone_crossbow.ability=散射 -item.aether.zanite_crossbow.ability=愈战愈勇 -item.aether.arkenium_crossbow.ability=远射 -item.aether.gravitite_crossbow.ability=直射 -item.aether.bolt.slash=斩击伤害等级 -item.aether.bolt.pierce=刺击伤害等级 -item.aether.bolt.impact=冲击伤害等级 - -# Tool tooltips -item.aether.tool.skyroot.ability.desc=双倍方块掉落 -item.aether.tool.holystone.ability.desc=采掘时几率产生神能结晶 -item.aether.tool.zanite.ability.desc=随耐久降低提升效率 -item.aether.tool.gravitite.ability.desc=无视重力升腾方块 -item.aether.tool.gravitite.use.desc=右击方块 -item.aether.tool.arkenium.ability.desc=沉重却极其耐用 -item.aether.tool.valkyrie.ability.desc=能用于操作距玩家较远的目标 - -# Tooltips -item.aether.tooltip.ability=能力 -item.aether.tooltip.use=使用 - -# Armor Tooltips -item.aether.armor.zanite.ability.desc=愈穿愈强 - -# Records -item.aether.moa_music_disc.desc=Emile van Krieken - Approaches -item.aether.aerwhale_music_disc.desc=AetherAudio - Aerwhale -item.aether.labyrinth_music_disc.desc=Moorziey - Demise -item.aether.valkyrie_music_disc.desc=Emile van Krieken - Ascending Dawn -item.aether.recording_892.desc=Emile van Krieken - ??? - -# Entities -entity.aether.aechor_plant.name=箭毒花 -entity.aether.aerbunny.name=天跃兔 -entity.aether.carrion_sprout.name=食腐苗 -entity.aether.cockatrice.name=鸡蛇 -entity.aether.kirrid.name=科里云羊 -entity.aether.moa.name=恐鸟 -entity.aether.aerwhale.name=云鲸 -entity.aether.zephyr.name=西风啸云 -entity.aether.tempest.name=风暴怒云 -entity.aether.taegore.name=探戈野猪 -entity.aether.detonation_sentry.name=爆破哨石 -entity.aether.battle_sentry.name=战斗哨石 -entity.aether.tracking_sentry.name=追踪哨石 -entity.aether.chest_mimic.name=拟箱怪 -entity.aether.battle_golem.name=战争魔像 -entity.aether.swet.name=史维特 -entity.aether.generator.name=实体生成器 -entity.aether.sentry_guardian.name=哨石卫兵 -entity.aether.production_line.name=生产线 -entity.aether.repair_sentry.name=修复哨石 -entity.aether.slider.name=滑行魔石 -entity.aether.frostpine_totem.name=寒松图腾 -entity.aether.kraisith.name=克雷斯 -entity.aether.shade_of_arkenzus.name=阿肯祖斯之影 -entity.aether.ethereal_wisp.name=飘逸幻影 -entity.aether.fleeting_wisp.name=闪现幻影 -entity.aether.soaring_wisp=升腾幻影 -entity.aether.fangrin.name=法格林 -entity.aether.nex_spirit.name=不死英灵 -entity.aether.pink_baby_swet.name=粉史维特宝宝 -entity.aether.glitterwing.name=闪光翼蝶 -entity.aether.edison.name=爱迪生 -entity.aether.burrukai.name=布鲁牦牛 -entity.aether.necromancer.name=巫魂 -entity.aether.josediya.name=乔瑟迪娅 -entity.aether.tivalier.name=泰瓦尔 -entity.aether.icehog.name=冰川刺猬 -entity.aether.mysterious_figure.name=神秘人 -entity.aether.varanys.name=冰穴巨蜥 -entity.aether.skyroot_lizard.name=天根树蜥 -entity.aether.glactrix.name=冰川刺猬 -entity.aether.sheepuff.name=云跳羊 - -# Creative Tabs -itemGroup.aether.blocks=天境二 方块 -itemGroup.aether.materials=天境二 材料 -itemGroup.aether.tools=天境二 工具 -itemGroup.aether.weapons=天境二 武器 -itemGroup.aether.armor=天境二 护甲 -itemGroup.aether.consumables=天境二 消耗品 -itemGroup.aether.companions=天境二 伙伴 -itemGroup.aether.miscellaneous=天境二 杂项 -itemGroup.aether.rings=天境二 戒指 -itemGroup.aether.neckwear=天境二 项链 -itemGroup.aether.relics=天境二 遗物 -itemGroup.aether.charms=天境二 饰品 -itemGroup.aether.artifacts=天境二 工艺品 -itemGroup.aether.visual_variants=天境二 装饰性方块 -itemGroup.aether.natural_blocks=天境二 天然方块 -itemGroup.aether.construction=天境二 建材 -itemGroup.aether.utility_blocks=天境二 效用型方块 -itemGroup.aether.dungeon_blocks=天境二 地下城方块 -itemGroup.aether.thera=天境二 坻星方块 - -# Containers -# TODO: Prefix with aether. -container.holystone_furnace=圣石炉 -container.skyroot_chest=天根木箱 -container.skyroot_double_chest=大天根木箱 -container.labyrinth_chest=迷宫宝箱 -container.icestone_cooler=冰石冷却器 -container.incubator=孵化器 -container.masonry_bench=石工台 -container.aether_workbench.recipes=修复(%s/%s) - -# Sounds -subtitles.aether.portal.glowstone.hum=传送门:嗡鸣 -subtitles.aether.portal.glowstone.trigger=传送门:活动 -subtitles.aether.portal.glowstone.travel=传送门:传送 -subtitles.aether.portal.labyrinth_totem.drone=图腾:嗡鸣 -subtitles.aether.portal.labyrinth_totem.woosh=图腾:呼啸 -subtitles.aether.block.aercloud.bounce=境云:反冲 -subtitles.aether.mob.aerbunny.ambient=天跃兔:吱吱 -subtitles.aether.mob.aerbunny.hurt=天跃兔:受伤 -subtitles.aether.mob.aerbunny.death=天跃兔:死亡 -subtitles.aether.mob.aerbunny.lift=天跃兔:跃起 -subtitles.aether.mob.aerwhale.ambient=云鲸:啸鸣 -subtitles.aether.mob.aerwhale.death=云鲸:死亡 -subtitles.aether.mob.cockatrice.ambient=鸡蛇:嘶鸣 -subtitles.aether.mob.cockatrice.hurt=鸡蛇:受伤 -subtitles.aether.mob.cockatrice.death=鸡蛇:死亡 -subtitles.aether.mob.tempest.ambient=风暴怒云:嗡鸣 -subtitles.aether.mob.tempest.hurt=风暴怒云:受伤 -subtitles.aether.mob.tempest.death=风暴怒云:死亡 -subtitles.aether.mob.tempest.angry=风暴怒云:聚能 -subtitles.aether.mob.tempest.electric_shock=风暴怒云:雷击 -subtitles.aether.mob.zephyr.ambient=西风啸云:呼啸 -subtitles.aether.mob.zephyr.puff=西风啸云:吐气 -subtitles.aether.mob.tracking_sentry.alarm=跟踪哨石:警报 -subtitles.aether.mob.sentry.ambient=哨石:低吼 -subtitles.aether.mob.sentry.hurt=哨石:受伤 -subtitles.aether.mob.sentry.death=哨石:死亡 -subtitles.aether.mob.battle_sentry.pounce=战斗哨石:突袭 -subtitles.aether.random.stone.thud=石头:落地 -subtitles.aether.random.detonating=炸药:起爆 -subtitles.aether.random.detonate=炸药:爆炸 -subtitles.aether.random.dart_shooter.fire=吹箭筒:射击 -subtitles.aether.mob.moa.ambient=恐鸟:鸣叫 -subtitles.aether.mob.moa.hurt=恐鸟:受伤 -subtitles.aether.mob.kirrid.ambient=科里云羊:咩咩 -subtitles.aether.mob.kirrid.hurt=科里云羊:受伤 -subtitles.aether.mob.kirrid.death=科里云羊:死亡 -subtitles.aether.mob.taegore.ambient=探戈野猪:响鼻 -subtitles.aether.mob.taegore.hurt=探戈野猪:受伤 -subtitles.aether.mob.taegore.death=探戈野猪:死亡 -subtitles.aether.mob.taegore.attack=探戈野猪:攻击 -subtitles.aether.mob.chest_mimic.awake=拟箱怪:起身 -subtitles.aether.random.present_unwrap=礼物:打开 -subtitles.aether.random.dungeon.container.smash=容器:破碎 -subtitles.aether.mob.slider.awake=滑行魔石:苏醒 -subtitles.aether.mob.slider.collide=滑行魔石:撞击 -subtitles.aether.mob.slider.die=滑行魔石:破碎 -subtitles.aether.mob.slider.move=滑行魔石:滑行 -subtitles.aether.mob.slider.signal=滑行魔石:发信 -subtitles.aether.mob.generic.wings.flap=振翅声 -subtitles.aether.mob.burrukai.ambient=布鲁牦牛:喘气 -subtitles.aether.mob.burrukai.hurt=布鲁牦牛:受伤 -subtitles.aether.mob.burrukai.death=布鲁牦牛:死亡 -subtitles.aether.mob.burrukai.attack=布鲁牦牛:攻击 - -# Accessory slot names -gui.aether.slot.none=不可装备 -gui.aether.slot.neckwear=项链 -gui.aether.slot.companion=伙伴 -gui.aether.slot.shield=盾牌 -gui.aether.slot.relic=遗物 -gui.aether.slot.ring=戒指 -gui.aether.slot.handwear=护手 -gui.aether.slot.charm=饰品 -gui.aether.slot.artifact=工艺品 -gui.aether.slot.helmet=头盔 -gui.aether.slot.chestplate=胸甲 -gui.aether.slot.leggings=护腿 -gui.aether.slot.boots=靴子 -gui.aether.slot.offhand=副手 -gui.aether.coolant=冷却剂 -gui.aether.cools_into=冷却成: -gui.aether.random_item=随机物品 -gui.aether.random_armor=随机护甲 -gui.aether.random_sword=随机武器 -gui.aether.random_tool=随机工具 -gui.aether.random_ring=随机戒指 -gui.aether.random_neckwear=随机项链 -gui.aether.random_charm=随机饰品 -gui.aether.incubator_fuel=孵化器燃料 -gui.aether.baby_moa=恐鸟宝宝 -gui.aether.respawn.bed=回到床铺 -gui.aether.campfire.bed=回到上个前哨营地 -gui.aether.loading.indeterminate=加载中······ -gui.aether.loading.progress=加载中···%s%% -gui.aether.patreon.rewards.button.use=使用 -gui.aether.patreon.rewards.button.locked=已锁定 -gui.aether.incubator.label.incubation=孵化 -gui.aether.incubator.label.heating=加热中 -gui.aether.incubator.label.more_heat=需要更多热量! -gui.aether.incubator.label.ready=就绪! -gui.aether.incubator.label.max=满 -gui.aether.incubator.label.fail=失败! -gui.aether.masonry.label.recipes=合成 - -gui.aether.hover.npc=与%s对话 -gui.aether.hover.campfire=返回主世界 -gui.aether.hover.teleporter=前往天境 - -gui.guidebook.discovery.stats=属性: -gui.guidebook.discovery.moves=移动: - -# Death messages - -death.attack.aether.effect.bleed=失血 -death.attack.aether.effect.toxin=毒素 -death.attack.aether.effect.cockatriceVenom=鸡蛇毒液 -death.attack.aether.effect.fungalRot=真菌感染 - -# Status Effects - -statusEffect.aether.ambroPoison=神能中毒 -statusEffect.aether.bleed=失血 -statusEffect.aether.cockatriceVenom=鸡蛇毒液 -statusEffect.aether.fracture=骨折 -statusEffect.aether.fungalRot=真菌感染 -statusEffect.aether.stun=眩晕 -statusEffect.aether.toxin=毒素 - -# Intro - -intro.prologue=在那位孤独的勇士击败残暴的烈阳巨灵卡尔图尔的二百年后,一位新的旅行者来到了天境······ -intro.tip1=免责声明:\n\n此版本仍未完成,BUG贼多\n\n空原的正式版本发布日期未定。\n\n若不希望获得较差的游戏体验,我们强烈建议您等待官方正式版。\n\n很多生物——包括试验性的——都暂未添加。我们以测试和尝鲜为目的发布这一开发中版本。 -intro.tip2=本模组仍未加入地下城。我们仍在设计开发相关的技术工具,这一技术工具模组被命名为Orbis。将相关内容加入模组是需要花费时间的。现阶段你可以体验到的内容以探索新的生物群系和地形为主,还可以欣赏我们的艺术作品和新近构建的模型。 -intro.tip3=你将前往的世界将从背景、时间和空间三个方面与主世界完全分开······ -intro.tip4=开始旅程? -intro.holdToSkip=点击跳过 -intro.proudlyPresents=荣誉出品 -intro.yes=是 -intro.no=否 - -# Teleporter Notice - -notice.body=曾探索天境的勇士,欢迎归来!\n\n在天境二中,简陋的萤石门已无法连接天境了。\n\n试着打造一台天境之门吧! -notice.gotcha=明白了! -notice.holdUp=喔哦?请等一下! - -#Ability Tooltips -ability.breatheUnderwater.name=水下呼吸 -ability.daggerfrost.name=寒霜匕首 -ability.doubleDrops.name=双倍掉落 -ability.extraDamage.name=伤害提升 -ability.punchingDamage.name=徒手伤害 -ability.freezeBlocks.name=冰结光环 -ability.pauseHunger.name=食物天堂 -ability.reduceHunger.name=有助消化 -ability.regenerateHealth.name=生命恢复 -ability.maxHealthMod.name=提升生命上限 -ability.movementSpeedMod.name=提升移速 -ability.modifyXPCollection.name=提升经验 -ability.modifyDefense.name=提升防御 -ability.weightTolerance.name=质量抗性 -ability.invisibility.name=隐形 -ability.changeAttackElement.name=元素攻击 -ability.setEnemiesOnFire.name=点亮火把 -ability.fireImmunity.name=火焰保护 -ability.companionMaxHealthMod.name=伙伴生命上限提升 -ability.slowfall.name=缓速着陆 -ability.attackSpeedMod.name=攻速提升 - -elementalState.biological=生命 -elementalState.frost=冰霜 -elementalState.fire=火焰 -elementalState.water=水 -elementalState.earth=大地 -elementalState.air=空气 -elementalState.blight=破击 -elementalState.lightning=闪电 - -ability.extraDamage.attack=攻击 -ability.extraDamage.desc=%s %s 伤害 -ability.active=§5生效条件: -ability.cosmetic=§e装饰 -ability.breatheUnderwater.desc=§9水下呼吸 -ability.daggerfrost.desc=§9雪球攻击 -ability.doubleDrops.desc1=§9双倍猎获 -ability.doubleDrops.desc2=%s%%几率 -ability.punchingDamage.desc1=%s拳击伤害 -ability.punchingDamage.desc2=%s%s拳击 -ability.freezeBlocks.desc=§9冻结周围方块 -ability.pauseHunger.desc=§9不再饥饿 -ability.reduceHunger.desc=§9减少饥饿 -ability.regenerateHealth.desc=§9生命恢复 -ability.maxHealthMod.desc=%s生命上限 -ability.movementSpeedMod.desc=%s移动速度 -ability.modifyXPCollection.desc=%s经验收集 -ability.defenseMod.desc=%s %s -ability.defenseMod.desc1=防御 -ability.defenseMod.desc2=抗性 -ability.invisibility.desc=§9隐身 -ability.changeAttackElement.desc=§9全部攻击变为: -ability.setEnemiesOnFire.desc=§9点燃敌人 -ability.fireImmunity.desc=§9抗火 -ability.doubleJump.desc=§9双倍高跳 -ability.companion.desc=伙伴用 -ability.leechLife.desc1=§9生命吸取 -ability.leechLife.desc2=%s%%几率 -ability.slowfall.desc=§9缓慢下落 -ability.weight.desc1=%skg重 -ability.weight.desc2=%skg容量 -ability.levitateAttackers.desc1=§9浮空敌手 -ability.levitateAttackers.desc2=%s%%几率 -ability.setAttackersOnFire.desc1=§9引燃敌手 -ability.setAttackersOnFire.desc2=%s%%几率 -ability.attackSpeedMod.desc=%s攻击速度 - -# Tabs -tab.guidebook=旅者指引之书 -tab.guidebook.equipment=装备 -tab.guidebook.status=身份 -tab.guidebook.loretome=天境传说 -tab.guidebook.discovery=发现 -tab.bug_report=漏洞反馈 -tab.backpack.name=背包 -tab.patron_rewards=赞助奖励 - -# Chat Messages -chat.aether.resurrected=不死英灵让它的主人%s起死回生了! - -# In Development Menu -indev.button=来吧! -indev.line1=心急如焚的玩家,你好! -indev.line2=感谢您对本模组的关注!在继续游戏之前,我们先讲清楚一点事情。你正游玩的天境版本是个开发中的预览版。也就是说你可能遇见某些严重的问题,比如: -indev.line3=世界错误与崩溃 -indev.line4=生物丢失材质和模型 -indev.line5=游戏损坏 -indev.line6=最重要的,成吨的Bug! -indev.line7=欢迎试玩天境二的预览版,而我们诚挚地希望您在我们开发的过程中给予我们耐心和支持。 -indev.line8=点击下方的按钮,也就表明您了解了以上事项,要是您的游戏长出腿带着您的咖啡跑了,可不要怪在我们的头上哦。 - -# Bug Report Menu -bug_report.button=打开Issue追踪器 -bug_report.line1=你好,又见面了! -bug_report.line2=遇到什么问题了吗?如果是的,请使用Issue追踪器帮助我们优化天境二! -bug_report.line3=想要反馈Bug或是其它问题,Issue无疑是最合适的手段,它架起了普通用户和开发者或志愿者之间的桥梁。 -bug_report.line4=点击下方按钮即可打开我们的Issue追踪网址。马上注册,一起清理天境二的Bug吧! - -aether.warning.deprecated_item=§c千万别!这东西等着被删除呢! -aether.warning.operator_item=需要管理员权限 - -# Rewards -aether.reward.sun_spirit.name=烈阳巨灵 -aether.reward.slider.name=滑行魔石 -aether.reward.valkyrie_queen.name=武神女王 -aether.reward.none.name=无 - -# Trade -aether.trade.gui.thirdtrade=%s的交易 -aether.trade.gui.firsttrade=你的交易 -aether.trade.gui.lock=锁定交易 -aether.trade.gui.unlock=解锁交易 -aether.trade.gui.confirm=确认交易 -aether.trade.chat.success=您与%s的交易已完成! -aether.trade.chat.cancel=您与%s的交易已取消! -aether.trade.chat.request=%s想与您交易!和他们交互以开始交易! -aether.trade.chat.failexpired=您向%s的交易请求已失效! -aether.trade.chat.failtrade=%s正在交易。 -aether.trade.chat.failsent=您已经向%s发出交易邀请。 -aether.trade.status.waitingboth=等待双方锁定内容 -aether.trade.status.waitingyou=等待您锁定内容 -aether.trade.status.waitingthem=等待对方锁定内容 -aether.trade.status.confirmboth=等待双方确认 -aether.trade.status.confirmyou=等待您确认 -aether.trade.status.confirmthem=等待对方确认 -aether.trade.status.sizeerror=交易不能安全执行 -aether.trade.message.targetlock=%s锁定了他们的交易内容! -aether.trade.message.targetconfirm=%s确认了他们的交易! -aether.trade.message.unlockwarn=%s解锁了他们的交易!在重新锁定内容前请检查他们的交易内容! -aether.trade.message.unlocksafe=%s解锁了他们的交易! -aether.trade.message.inventorywarn=您的空余物品栏不足以接受本次交易! -aether.trade.message.tradewarn=他们的空余物品栏不足以接受您的交易! - - -# Shop -aether.shop.sell=出售 -aether.shop.buy=购买%s -aether.shop.back=返回 -aether.shop.lockTooltip=如果解除锁定,你每次更换想买的物品时,购买数都会重置为1。 - -##=======================## -########################### -# # -# CHARACTER NAMES # -# # -########################### -##=======================## - -edison.name=爱迪生 -necromancer.name=巫魂 -entity.aether.josediya.name=乔瑟迪娅 - -##=======================## -########################### -# # -# GENERIC DIALOG # -# # -########################### -##=======================## - -generic.back=返回 -generic.okay=好的 -generic.goodbye=再见 - -##=======================## -########################### -# # -# NECROMANCER DIALOGUE # -# # -########################### -##=======================## - -necromancer.them.start1=真高兴你能平安抵达这里,旅行者。我想你此刻一定是满腹狐疑吧,但现在时间紧迫。 -necromancer.them.start2=穿过这条空间裂缝,在对面你会见到一个眼睛上有道疤的男人,他叫爱迪生,某种意义上算是的朋友。 -necromancer.them.start3=他会解答你的问题的,毕竟他的职责就是为你的冒险之旅提供帮助。他看起来可能有点奇怪······但是······呃······ -necromancer.them.start4=在这里,我们都是奇怪的异乡人,不是吗? -necromancer.them.start5=崭新的世界就在你的面前,祝你一路顺风。 - -necromancer.us.leadtheway=感谢指点,后会有期。 - -##=======================## -########################### -# # -# EDISON GREET DIALOGUE # -# # -########################### -##=======================## - -edison.greet.start_not_introduced=新来的,你迟到了。我在这儿等了你好几个小时了。 - -edison.greet.option.expecting=你在等我吗? -edison.greet.option.who=请问你是? -edison.greet.option.map=我可没地图。 - -edison.greet.respawn_not_introduced=老哥,你可对你自己上点心吧。你能完好无损地出现在这里真是谢天谢地。 -edison.greet.respawn=你还好吗?我找见你的时候你刚被暴揍一顿吧。 - -edison.greet.option.what=这是哪? -edison.greet.option.died=我还以为我死定了······ - -edison.greet.option.fine=我很好。 -edison.greet.option.thanks=爱迪生,谢谢你。 -edison.greet.option.okay_sale=我会没事的。你这有啥好货吗? -edison.greet.option.okay_holiday_sale=我很好。已经节日假期了,有没有特供的商品啊? - -edison.greet.start=嘿,朋友,最近过得还顺利吗?要不要买点什么? - -edison.greet.option.sale=你有啥好货吗? -edison.greet.option.holiday_sale=这个节日假期有没有特供商品? - -edison.greet.option.okay_goodbye=我觉得我过得不错。再见。 -edison.greet.option.ready_goodbye=我想我已经准备好了。爱迪生,再见。 -edison.greet.option.mind_goodbye=我会牢记的。再见。 - -edison.greet.expecting1=当然了!我们“共同的朋友”让我照顾你,并付给我一大笔钱呢! -edison.greet.expecting2=等等,他没给你解释我们的小安排?果不其然······ -edison.greet.expecting3=嗯,那···需要我向你解释什么呢? - -edison.greet.option.no_we_talked=不,我们还是谈过的。你是···爱迪生,对吧? - -edison.greet.who1=我是爱迪生!国际企业家、推销员以及顶级说客! -edison.greet.who2=但由于我们和那个人——你知道是谁——的小小约定,对你而言,我更是架起你与这些奇异群岛之间联系的枢纽和向导。 -edison.greet.who3=总地来说,这基本上意味着我必须好好照顾你。 -edison.greet.who4=如今,我坚信知识就是世界上最强的力量。所以为了让你远离,呃,死亡······ -edison.greet.who5=你还有什么要问的吗? - -edison.greet.option.you_know_who=那个···“你知道是谁”的···人? - -edison.greet.map1=哈哈!你可真算不上讨人喜欢不是吗?没准我真该多袖手旁观一会。 -edison.greet.map2=找到你没费多大工夫,虽说我们还以为你掉下去了。 - -edison.greet.what1=“这个地方”? 你还真善于提出模棱两可的问题啊! -edison.greet.what2=我猜你对你刚抵达的这个地方多少知道点,但你得问得更具体点,我才能回答啊。 -edison.greet.what3=你是指我们所在的这座建筑物呢,还是这个真真切切的异世界? - -edison.greet.option.building=这座建筑物。 -edison.greet.option.world=这个世界。 - -edison.greet.died1=我也是!我的雇员把你弄进来的时候,我都不知道你还能不能醒来! - -edison.greet.fine1=啊,我们只能被动地保护你不死,可免不了你的皮肉之苦。 -edison.greet.fine2=在你出发前,还需要点什么吗? - -edison.greet.thanks1=别客气。每个人都有自己的职责,我就是保护你安全的。 -edison.greet.thanks2=还需要些什么?还是说你已经准备好出发了? - -edison.greet.sale=当然啦,来看看我的货物吧。 -edison.greet.holiday_sale=希望你感受到节日的气息,朋友!来看看我们假期特卖的商品吧。 - -edison.greet.no_we_talked1=没错,正是本人!国际企业家、推销员以及顶级说客! -edison.greet.no_we_talked2=但由于我们和巫魂先生的小小约定,对你而言,我更是架起你与这些奇异群岛之间联系的枢纽和向导。 -edison.greet.no_we_talked3=这基本上意味着我必须好好照顾你。 -edison.greet.no_we_talked4=如今,我坚信知识就是世界上最强的力量。所以为了让你远离,额,死亡······ -edison.greet.no_we_talked5=你还有什么要问的吗? - -edison.greet.you_know_who1=当然是巫魂了。你知道“又高又黑又吓人”先生吗? -edison.greet.you_know_who2=我们时不时地会互相联系,他还让我在必要时把你带回安全的地方,并且付给我一大笔钱。 -edison.greet.you_know_who3=话是这么说,但他经常在送出一些带着便条的小礼品。翻翻你的旅行指南没准就能找到一份呢。 - -edison.greet.building1=啊,这是个有些年头的旅者前哨营地了!在很久以前是女武神族修建的神圣墓地。 -edison.greet.building2=自从人们开始攀登这里的山脉,这里就成了观赏天境风景的人们真正意义上的庇护所。 - -edison.greet.option.valkyries=女武神族? -edison.greet.option.what_world=那这个世界又是什么地方呢? -edison.greet.option.what_building=那这座建筑物呢? - -edison.greet.world1=好的好的,看来你了解得不多啊。这里是天境!远高于我们世界的存在,且衍生出了自己的动植物种群。 -edison.greet.world2=你所处的就是古代女武神族的哨营之一,如果我没猜错的话这里原本是作为神圣墓地的,但后来却成为冒险家们驻足小憩的好去处。 - -edison.greet.valkyries1=她们有点像这里的城管,但是···呃···嗯···特别强大。要是你让她抓着把柄,一名武神士兵就能把你撕成碎片。 -edison.greet.valkyries2=还好,虽说她们不太健谈,但一般还算友好。你会发现她们在大部分的城镇和乡村周边巡逻。某种神圣契约驱使他们保护人们和别的什么东西。 -edison.greet.valkyries3=实际上我也不能搞清楚她们到底是啥······你最好问问本地人,或者直接私下里找位女武神问问!想见不到她们还真的有点难呢。 -edison.greet.valkyries4=你还想问点什么? - -##=======================## -########################### -# # -# EDISON SHOP DIALOGUE # -# # -########################### -##=======================## - -edison.shop.greetings1=欢迎光临!今天我这里可都是好货。新到了一些真正独一无二的宝贝,来看看吧。 -edison.shop.greetings2=我向你保证,这儿商品的价格绝对公道,但是······嗯,按照我们公司的条款,恕不退换! - -edison.shop.enchanted_wyndberry=食腐苗是种有点危险的植物,但我有个伙计负责采集这种小家伙们的果实并添加神能晶体,让它们更有料。 -edison.shop.enchanted_blueberry=蓝莓是种很容易弄到的食物,但我这儿的都经过神能晶体滋养提味,是你身体不适时的好选择。 -edison.shop.ambrosium_shard=如今,神能晶体已经成为了一种真真正正用途广泛的特殊材料:修理工具装备,为食物提味,抑或是当作燃料。要是使用得当,它甚至能入药治病,神能晶体也因此为人们所熟知。 -edison.shop.skyroot_stick=我直说了吧,这些木棍实际上算不得我们的商品。但如果你想要的话,当然可以买走了。 -edison.shop.skyroot_pickaxe=原住民认为天根木是一种具备“特别的精确性”的材料并加以尊敬,用它做的镐子敲石头的确挺不错。要我说,用这玩意挺累人的,但如果你要开始挖矿事业的话,它会是很不错的入门工具。 -edison.shop.skyroot_axe=拿起木头来砍树,好像有点不大对劲。啊,好吧,这把做工不错的斧子能让你无需赤手空拳对付木头。 -edison.shop.skyroot_sword=考虑防身问题?这片土地上的野生动物倒真有那么点血性。随身带把剑吧,为人身安全投资永远是聪明的选择。 -edison.shop.skyroot_shovel=要是进攻这条路走不通,那何不给自己挖个小型藏身洞呢!一把锹自然能让你的挖掘事半功倍。 -edison.shop.therawood_leaves=实际上这是我的一位伙计用布雷特蔗制作的,通过恰当的上色处理,让它们看起来就如同坻星森林的树叶一样。 -edison.shop.therawood_log=我们的朋友根据他的经验,让我带上点树苗栽下。结果呢,树叶因为空气的原因变得苍白,不过木材的品质还是不错的。 -edison.shop.thera_dirt=我自己很喜欢一项小研究,那就是看看这里的地质情况与家乡有什么不同,为此我专门配制出了成分和坻星一致的泥土。完全是浪费时间,不过让人思乡。 -edison.shop.thera_grass=折腾了好久才种出来和坻星草相仿的植物,我总觉得还是故土的草地更绿。 -edison.shop.therastone_brick=呃,这些是我仿制的又老又高又黑又吓人的那位的塔楼的建材,就是普通的天冶石而已,不过,我弄出来的磨损和裂纹让它们基本一模一样。 - -edison.shop.holiday_notice=半价甩卖!\n节日特供 - -edison.shop.greetings_holiday=欢迎光临我的假日商店!这些商品都是限时出售,抓紧时间买点什么吧,可别错过了后悔哟。 - -edison.shop.candy_cane=这些甜食可是假日的一大享受啊。别把它们和真的拐杖搞混了,那些来自远方的广袤空域的人们常用它来装饰我的变异树种——而且你正巧赶上了树苗优惠出售! -edison.shop.candy_cane_block=你有没有想过“哇,要是能把一大堆糖果做成超级大的一块该多棒啊”?我也没想过。不过嘛,现在这玩意减价了——为什么不趁机买下这最后一批货尝个鲜呢? -edison.shop.candy_cane_wall=我猜你大概能能用这个······挡住世界上所有不爱甜食的人?我都弄糊涂了,但是这些东西这两天卖得特别好。坦率地说我也不想搞明白为什么,卖得好就得了呗。 -edison.shop.mutant_sapling=它们让我回忆起了一些事情。不好意思,我可不能告诉你这些奇妙的树苗是怎么做出来的。我们只是说它是节日中的又一种好东西,是会长出灯泡的哦。 -edison.shop.winter_hat=下面世界的市民们就喜欢这个,就没有哪怕一个节日的夜晚不会有人戴着它到处乱窜。没什么实用价值,不过人们说衣柜里当然得有这么件赶时髦的东西。 -edison.shop.eggnog=事情是这样的:我喜欢蛋奶酒,喝起来味道真不错——可我要是喝上那么几杯,就老是有一群小兔子缠着我!只有我这样吗? -edison.shop.yule_log=有没有想过尝尝原木的味道?那你运气真不错,这可是仅有的一次啃木头还不觉得难吃的机会! - -##=======================## -########################### -# # -# JOSEDIYA DIALOGUE # -# # -########################### -##=======================## - -josediya.greet.start_not_introduced=你还是来了。我看不出来你有什么重要的,那就让我来看看吧。 -josediya.greet.start=你需要什么? - -josediya.greet.option.what=你是什么人? -josediya.greet.option.where=你从哪里来? -josediya.greet.option.take_me=你能带我去吗? - -josediya.greet.option.winged_beast=这只有翼的奇兽是······? -josediya.greet.option.fly=你骑他飞翔? -josediya.greet.option.moa=我也能养只恐鸟吗? - -josediya.greet.option.who=请问你是···? -josediya.greet.option.friends=你是那光头汉子的朋友? -josediya.greet.option.paying=是他付钱请你来帮我忙的吗? -josediya.greet.option.white_gold=你看我这样子,哪像是有···呃,空镀币呢。那怎么办? - -josediya.greet.option.services=你能提供什么呢? -josediya.greet.option.home=你是怎么知道我家在哪里的? -josediya.greet.option.walk_home=我为什么不能靠我的双腿回家? - -josediya.greet.what=哇,你也没那么聪明嘛。和你或者那个秃驴一样,我也是个人。之前没见过天灵族是吧?是女武神让我们一族得以延续。 -josediya.greet.where=我来自遥远南方的维拉德克斯王国,我主要在那里做活维持生计。 -josediya.greet.take_me=人类,我不觉着你付得起旅费。维拉德克斯离这里有三星期的航程,而且路线十分危险。我带不了你。 -josediya.greet.winged_beast=泰瓦尔,我真正的伙伴,一只强健的恐鸟,就算驮着你我两人飞翔,也不会流哪怕一滴汗。 -josediya.greet.fly=当然啦!我正是为了这个才驯养他的。驯养恐鸟是我工作的一部分。好好对待它们,它们就会和你很亲近。 -josediya.greet.moa=想骑恐鸟,你得让它信任你。恐鸟蛋可不好弄,野生恐鸟非常注重保护自己的巢窠。 -josediya.greet.who=能带你翱翔天境的女孩。我叫乔瑟迪娅,航运从业者,那边的那个秃子叫我来帮你。 -josediya.greet.friends=爱迪生和我相处得很好,我们结识的这几年来,他一直是个很有帮助的伙伴,但我还是觉得他不太可信,只是共同的利益让我们共事而已。 -josediya.greet.paying=不,我只是还欠别人的一个情而已,你才是那个该付钱的。对了,我不收你们那里的钱,只收空镀币。 -josediya.greet.white_gold=问题出在你身上。我也得挣钱糊口,所以呢不关心你怎么挣钱。去农民们那边打打工或者找点别的什么活吧。 -josediya.greet.services=你要是已经安好家的话,到随便哪个哨营来找我,我能把你带回家。当然,得付够钱。 -josediya.greet.home=如果你指的是坻星的话,我可不是带你回那的。先在天境定居下来吧。 -josediya.greet.walk_home=想试就试,我不拦着。提醒一句,天境空岛间的距离可是很远的,让我带你的话可就又快又省事儿了。是,岛间的云床是挺结实的,够你在上面蹦哒了,但你不会觉得没保护措施就在云彩上走很安全吧。 - -josediya.greet.travel=好的,想去哪? -josediya.greet.option.travel_to=返回住处 -josediya.greet.option.travel_from=返回前哨营地 -josediya.greet.option.travel=出发 - -##================================## -#################################### -# # -# MYSTERIOUS FIGURE DIALOGUE # -# # -#################################### -##================================## - -mysterious_figure.greet.start=我看见了一位新来的旅行家!欢迎,欢迎······看看我从遥远国度进口的稀罕玩意吧————各式各样值得一尝的甜点! -mysterious_figure.greet.option.who_are_you=你是谁? -mysterious_figure.greet.option.why_plumproots=你为什么要在肩膀上扛个腴根? -mysterious_figure.greet.option.sale=我能看看你都卖点什么吗? -mysterious_figure.greet.who_are_you=你想知道我的名字?但这可是个秘密!所有人都忘记了,甚至连历史都忘记了它! -mysterious_figure.greet.why_plumproots=你知道这些漂漂亮亮的腴根都能派上多棒的用场吗?煮着吃,炖着吃,多采点来跟我换糖吃!你的口腔感受过腴根派的绝顶滋味吗?人生一世,一定要试! -mysterious_figure.greet.sale=多好啊,多好啊,你出腴根我做糖! -mysterious_figure.shop.greetings=腴根,腴根,腴根!腴根才能换我糖,除非货比长靴棒! -mysterious_figure.shop.candy_corn=猜猜什么和玉米最配?腴根!······当然还有糖,我猜的。 -mysterious_figure.shop.cocoatrice=制作时未曾残害哪怕一只鸡蛇! -mysterious_figure.shop.wrapped_chocolates=这些巧克力是我亲手包装的!如含微量骨骼,无需惊讶,请放心食用。 -mysterious_figure.shop.jelly_plumproot=我不知道你分不分得清楚,但它们可和我最爱的口粮差远了。 -mysterious_figure.shop.blueberry_lollipop=许多小孩都很喜欢这种小零食,吃了以后没准会把你变成一颗大蓝莓。 -mysterious_figure.shop.orange_lollipop=味道和橙子一模一样!P.S:不含任何橙子成分。 -mysterious_figure.shop.icestone_poprocks=不是拿冰石做成的糖,放心啦。 -mysterious_figure.shop.ginger_bread_man=我曾听说过一位姜饼糕点师的故事。据传说,在那个恐怖月份的前夜,他们吃下人形的姜饼后,就变成了他们刚吃下的东西。觉不觉得自己运气真好? -mysterious_figure.shop.candy_cane=试着把这个当手杖用用,来呀,谅你也不敢。 - -# Discovery descriptions: - -aether.taegore.discovery.description=生活在空原地区的探戈野猪是一种非常爱好社交的野生动物,它们常常在一位老“家长”的带领下聚群行动。\n\n它们虽天性温驯,但也长着用于自卫强韧的皮肤和尖利的獠牙,并不是任人宰割的弱势物种。\n\n它们的毛皮可用于制作衣物,是一种十分坚韧的材料。 \ No newline at end of file diff --git a/src/main/resources/assets/aether/lang/zh_TW.lang b/src/main/resources/assets/aether/lang/zh_TW.lang deleted file mode 100644 index ff0174e90e..0000000000 --- a/src/main/resources/assets/aether/lang/zh_TW.lang +++ /dev/null @@ -1,1188 +0,0 @@ -# Aether Blocks -tile.aether.aether_dirt.dirt.name=天壤 -tile.aether.aether_dirt.coarse_dirt.name=粗天壤 -tile.aether.aether_grass.normal.name=空原草方塊 -tile.aether.aether_grass.enchanted.name=魔沃空葉草方塊 -tile.aether.aether_grass.arctic.name=極寒草方塊 -tile.aether.aether_grass.magnetic.name=磁地草方塊 -tile.aether.aether_grass.irradiated.name=輻光草方塊 -tile.aether.holystone.normal.name=聖石 -tile.aether.holystone.mossy.name=聖苔石 -tile.aether.holystone.blood_moss.name=血苔聖石 -tile.aether.aercloud.cold.name=寒風境雲 -tile.aether.aercloud.blue.name=天藍境雲 -tile.aether.aercloud.green.name=鮮綠境雲 -tile.aether.aercloud.golden.name=金黃境雲 -tile.aether.aercloud.storm.name=風暴境雲 -tile.aether.aercloud.purple.name=幻紫境雲 -tile.aether.skyroot_log.name=天根原木 -tile.aether.dark_skyroot_log.name=天碩原木 -tile.aether.light_skyroot_log.name=天纖原木 -tile.aether.golden_oak_log.name=金琥珀原木 -tile.aether.ambrosium_ore.name=神能晶礦石 -tile.aether.zanite_ore.name=紫晶礦石 -tile.aether.gravitite_ore.name=重力礦石 -tile.aether.arkenium_ore.name=阿肯鋼礦石 -tile.aether.continuum_ore.name=命運礦石 -tile.aether.blue_skyroot_leaves.name=藍天根樹葉 -tile.aether.green_skyroot_leaves.name=綠天根樹葉 -tile.aether.dark_blue_skyroot_leaves.name=暗藍天根樹葉 -tile.aether.blue_dark_skyroot_leaves.name=藍天碩樹葉 -tile.aether.green_dark_skyroot_leaves.name=綠天碩樹葉 -tile.aether.dark_blue_dark_skyroot_leaves.name=暗藍天碩樹葉 -tile.aether.blue_light_skyroot_leaves.name=藍天纖樹葉 -tile.aether.green_light_skyroot_leaves.name=綠天纖樹葉 -tile.aether.dark_blue_light_skyroot_leaves.name=暗藍天纖樹葉 -tile.aether.golden_oak_leaves.name=金琥珀樹葉 -tile.aether.mutant_leaves.name=突變樹葉 -tile.aether.mutant_leaves_decorated.name=掛飾突變樹葉 -tile.aether.tall_aether_grass.short.name=矮空葉草 -tile.aether.tall_aether_grass.normal.name=空葉草叢 -tile.aether.tall_aether_grass.long.name=高空葉草 -tile.aether.quicksoil.name=速沙 -tile.aether.ferrosite_sand.name=鐵磁沙 -tile.aether.aether_crafting_table.name=天根工作台 -tile.aether.skyroot_trapdoor.name=天根活板門 -tile.aether.secret_skyroot_trapdoor.name=隱形天根活板門 -tile.aether.skyroot_ladder.name=天根木梯 -tile.aether.skyroot_pressure_plate.name=天根木壓力板 -tile.aether.wisproot_pressure_plate.name=天纖木壓力板 -tile.aether.greatroot_pressure_plate.name=天碩木壓力板 -tile.aether.skyroot_button.name=天根木按鈕 -tile.aether.wisproot_button.name=天纖木按鈕 -tile.aether.greatroot_button.name=天碩木按鈕 -tile.aether.holystone_pressure_plate.name=聖石壓力板 -tile.aether.holystone_button.name=聖石按鈕 -tile.aether.blueberry_bush.ripe.name=成熟藍莓灌木 -tile.aether.blueberry_bush.stem.name=藍莓灌木 -tile.aether.enchanted_blueberry_bush.ripe.name=成熟魔沃藍莓灌木 -tile.aether.enchanted_blueberry_bush.stem.name=魔沃藍莓灌木 -tile.aether.orange_tree.name=橙子樹 -tile.aether.aether_flower.purple_flower.name=幻紫花 -tile.aether.aether_flower.white_rose.name=白玫瑰 -tile.aether.aether_flower.burstblossom.name=爆裂花 -tile.aether.aether_flower.aechor_sprout.name=箭毒花苗 -tile.aether.altar.name=祭壇 -tile.aether.icestone_ore.name=冰原石 -tile.aether.icestone_bricks.name=冰石磚 -tile.aether.icestone_bricks_decorative.name=飾紋冰石磚 -tile.aether.icestone_bricks_decorative.base_bricks.name=磚石 -tile.aether.icestone_bricks_decorative.base_pillar.name=柱石 -tile.aether.icestone_bricks_decorative.keystone.name=拱頂石 -tile.aether.icestone_bricks_decorative.capstone_bricks.name=拱石 -tile.aether.icestone_bricks_decorative.capstone_pillar.name=拱石柱 -tile.aether.icestone_bricks_decorative.flagstones.name=石板 -tile.aether.icestone_bricks_decorative.headstone.name=碑石 -tile.aether.icestone_pillar.name=冰石磚柱 -tile.aether.crude_scatterglass.name=粗霧面玻璃 -tile.aether.crude_scatterglass_decorative.name=鑲框粗霧面玻璃 -tile.aether.crude_scatterglass_decorative.skyroot_frame.name=天根木邊框 -tile.aether.crude_scatterglass_decorative.arkenium_frame.name=阿肯鋼邊框 -tile.aether.scatterglass.name=霧面玻璃 -tile.aether.scatterglass_decorative.name=鑲框霧面玻璃 -tile.aether.scatterglass_decorative.arkenium_frame.name=阿肯鋼邊框 -tile.aether.scatterglass_decorative.skyroot_frame.name=天根木邊框 -tile.aether.quicksoil_glass.name=速沙玻璃 -tile.aether.quicksoil_glass_decorative.name=鑲框速沙玻璃 -tile.aether.quicksoil_glass_decorative.arkenium_frame.name=阿肯鋼邊框 -tile.aether.quicksoil_glass_decorative.skyroot_frame.name=天根木邊框 -tile.aether.zanite_block.name=紫晶塊 -tile.aether.aether_sapling.blue_skyroot.name=藍天根樹苗 -tile.aether.aether_sapling.green_skyroot.name=綠天根樹苗 -tile.aether.aether_sapling.dark_blue_skyroot.name=暗藍天根樹苗 -tile.aether.aether_sapling.golden_oak.name=金琥珀樹苗 -tile.aether.aether_sapling.mutant_tree.name=愛迪生的狂熱突變樹苗 -tile.aether.carved_stone.normal.name=雕紋石 -tile.aether.carved_stone.divine.name=神佑雕紋石 -tile.aether.sentry_stone.normal.name=崗哨石 -tile.aether.sentry_stone.divine.name=神佑崗哨石 -tile.aether.gravitite_block.name=重力晶塊 -tile.aether.holystone_furnace.name=聖石爐 -tile.aether.skyroot_chest.name=天根木箱 -tile.aether.ambrosium_torch.name=神能火把 -tile.aether.skyroot_fence.name=天根木柵欄 -tile.aether.skyroot_fence_gate.name=天根木柵欄門 -tile.aether.wisproot_fence.name=天纖木柵欄 -tile.aether.wisproot_fence_gate.name=天纖木柵欄門 -tile.aether.greatroot_fence.name=天碩木柵欄 -tile.aether.greatroot_fence_gate.name=天碩木柵欄門 -tile.aether.holystone_wall.name=聖石牆 -tile.aether.mossy_holystone_wall.name=聖苔石牆 -tile.aether.carved_stone_wall.name=雕紋石牆 -tile.aether.icestone_wall.name=冰石磚牆 -tile.aether.skyroot_log_wall.name=天根木牆 -tile.aether.scatterglass_wall.name=霧面玻璃牆 -tile.aether.holystone_brick_wall.name=聖石磚牆 -tile.aether.sentry_stone_wall.name=崗哨石牆 -tile.aether.divine_sentry_wall.name=神佑崗哨石牆 -tile.aether.divine_stone_wall.name=神佑石牆 -tile.aether.labyrinth_totem.name=迷宮圖騰 -tile.aether.labyrinth_capstone.name=迷宮拱頂石 -tile.aether.labyrinth_glowing_pillar.name=微光迷宮石柱 -tile.aether.labyrinth_pillar.name=迷宮石柱 -tile.aether.labyrinth_wall.name=迷宮石牆 -tile.aether.labyrinth_lightstone.name=迷宮閃石 -tile.aether.labyrinth_base.name=迷宮基石 -tile.aether.labyrinth_headstone.name=迷宮石碑 -tile.aether.labyrinth_eye.name=迷宮之眼 -tile.aether.labyrinth_chest.name=迷宮寶箱 -tile.aether.skyroot_slab.name=天根木台階 -tile.aether.wisproot_slab.name=天纖木台階 -tile.aether.greatroot_slab.name=天碩木台階 -tile.aether.therawood_slab.name=介元木台階 -tile.aether.holystone_slab.name=聖石台階 -tile.aether.holystone_brick_slab.name=聖石磚台階 -tile.aether.therastone_brick_slab.name=介元石磚台階 -tile.aether.carved_stone_slab.name=雕紋石台階 -tile.aether.divine_carved_stone_slab.name=神佑雕紋石台階 -tile.aether.sentry_stone_slab.name=崗哨石台階 -tile.aether.divine_sentry_stone_slab.name=神佑崗哨石台階 -tile.aether.icestone_slab.name=冰石磚台階 -tile.aether.mossy_holystone_slab.name=聖苔石台階 -tile.aether.faded_holystone_brick_slab.name=褪色聖石石磚台階 -tile.aether.agiosite_slab.name=天冶石台階 -tile.aether.agiosite_brick_slab.name=天冶磚台階 -tile.aether.scatterglass_slab.name=霧面玻璃台階 -tile.aether.labyrinth_capstone_slab.name=迷宮拱頂石台階 -tile.aether.labyrinth_wall_slab.name=迷宮牆石台階 -tile.aether.labyrinth_strongblock.name=迷宮強化石 -tile.aether.skyroot_stairs.name=天根木樓梯 -tile.aether.wisproot_stairs.name=天纖木樓梯 -tile.aether.greatroot_stairs.name=天碩木樓梯 -tile.aether.therawood_stairs.name=介元木樓梯 -tile.aether.holystone_stairs.name=聖石樓梯 -tile.aether.mossy_holystone_stairs.name=聖苔石樓梯 -tile.aether.holystone_brick_stairs.name=聖石磚樓梯 -tile.aether.therastone_brick_stairs.name=介元石磚樓梯 -tile.aether.sentry_stone_stairs.name=崗哨石樓梯 -tile.aether.divine_sentry_stone_stairs.name=神佑崗哨石樓梯 -tile.aether.carved_stone_stairs.name=雕紋石樓梯 -tile.aether.divine_carved_stone_stairs.name=神佑雕紋石樓梯 -tile.aether.cloudwool_block.name=卷雲羊毛 -tile.aether.woven_sticks.skyroot.name=天根木枝材 -tile.aether.moa_egg.name=恐鳥蛋 -tile.aether.icestone_brick_stairs.name=冰石磚樓梯 -tile.aether.scatterglass_stairs.name=霧面玻璃樓梯 -tile.aether.faded_holystone_brick_stairs.name=褪色聖石磚樓梯 -tile.aether.agiosite_stairs.name=天冶石樓梯 -tile.aether.agiosite_brick_stairs.name=天冶磚樓梯 -tile.aether.burstblossom.name=爆裂花 -tile.aether.moonlit_bloom.name=月光花 -tile.aether.icestone_cooler.name=冰石冷卻器 -tile.aether.incubator.name=孵化器 -tile.aether.present.name=禮物 -tile.aether.labyrinth_container.small.name=小型迷宮容器 -tile.aether.labyrinth_container.large.name=大型迷宮容器 -tile.aether.unstable_labyrinth_capstone.name=鬆動迷宮拱頂石 -tile.aether.wildcard.name=Wildcard -tile.aether.masonry_bench.name=石工台 -tile.aether.holystone_brick.name=聖石磚 -tile.aether.holystone_brick_decorative.name=飾紋聖石磚 -tile.aether.holystone_brick_decorative.base_bricks.name=磚石 -tile.aether.holystone_brick_decorative.base_pillar.name=柱石 -tile.aether.holystone_brick_decorative.keystone.name=拱頂石 -tile.aether.holystone_brick_decorative.capstone_bricks.name=拱石 -tile.aether.holystone_brick_decorative.capstone_pillar.name=拱石柱 -tile.aether.holystone_brick_decorative.flagstones.name=石板 -tile.aether.holystone_brick_decorative.headstone.name=碑石 -tile.aether.holystone_pillar.name=聖石磚柱 -tile.aether.sentrystone_brick.name=崗哨石磚 -tile.aether.sentrystone_brick_decorative.name=飾紋崗哨石磚 -tile.aether.sentrystone_brick_decorative.base_bricks.name=磚石 -tile.aether.sentrystone_brick_decorative.base_pillar.name=柱石 -tile.aether.sentrystone_brick_decorative.keystone.name=拱頂石 -tile.aether.sentrystone_brick_decorative.capstone_bricks.name=拱石 -tile.aether.sentrystone_brick_decorative.capstone_pillar.name=拱石柱 -tile.aether.sentrystone_brick_decorative.flagstones.name=石板 -tile.aether.sentrystone_brick_decorative.lightstone.name=亮石 -tile.aether.sentrystone_pillar.name=崗哨石柱 -tile.aether.sentrystone_brick_decorative_lit.name=飾紋發光崗哨石磚 -tile.aether.sentrystone_brick_decorative_lit.base_bricks.name=發光拱石 -tile.aether.sentrystone_brick_decorative_lit.base_pillar.name=發光拱石柱 -tile.aether.sentrystone_brick_decorative_lit.keystone.name=發光拱頂石 -tile.aether.sentrystone_brick_decorative_lit.capstone_bricks.name=發光拱石柱 -tile.aether.sentrystone_brick_decorative_lit.capstone_pillar.name=發光石板 -tile.aether.sentrystone_brick_decorative_lit.lightstone.name=發光亮石 -tile.aether.sentrystone_pillar_lit.name=流光崗哨石柱 -tile.aether.hellfirestone_brick.name=獄炎石磚 -tile.aether.hellfirestone_brick_decorative.name=飾紋獄炎石磚 -tile.aether.hellfirestone_brick_decorative.base_bricks.name=磚石 -tile.aether.hellfirestone_brick_decorative.base_pillar.name=柱石 -tile.aether.hellfirestone_brick_decorative.keystone.name=拱頂石 -tile.aether.hellfirestone_brick_decorative.capstone_bricks.name=拱石 -tile.aether.hellfirestone_brick_decorative.capstone_pillar.name=拱石柱 -tile.aether.hellfirestone_brick_decorative.flagstones.name=石板 -tile.aether.hellfirestone_lantern.name=獄炎石燈 -tile.aether.hellfirestone_pillar.name=獄炎石柱 -tile.aether.faded_holystone_brick.name=風化聖石磚 -tile.aether.faded_holystone_brick_decorative.name=飾紋風化聖石磚 -tile.aether.faded_holystone_brick_decorative.base_bricks.name=磚石 -tile.aether.faded_holystone_brick_decorative.base_pillar.name=柱石 -tile.aether.faded_holystone_brick_decorative.keystone.name=拱頂石 -tile.aether.faded_holystone_brick_decorative.capstone_bricks.name=拱石 -tile.aether.faded_holystone_brick_decorative.capstone_pillar.name=拱石柱 -tile.aether.faded_holystone_brick_decorative.flagstones.name=石板 -tile.aether.faded_holystone_brick_decorative.headstone.name=碑石 -tile.aether.faded_holystone_pillar.name=風化聖石磚柱 -tile.aether.therastone_brick.name=介元石磚 -tile.aether.therastone_brick_decorative.name=飾文介元石磚 -tile.aether.therastone_brick_decorative.base_bricks.name=磚石 -tile.aether.therastone_brick_decorative.base_pillar.name=柱石 -tile.aether.therastone_brick_decorative.keystone.name=拱頂石 -tile.aether.therastone_brick_decorative.capstone_bricks.name=拱石 -tile.aether.therastone_brick_decorative.capstone_pillar.name=拱石柱 -tile.aether.therastone_brick_decorative.flagstones.name=石板 -tile.aether.therastone_brick_decorative.headstone.name=碑石 -tile.aether.therastone_pillar.name=介元石磚柱 -tile.aether.agiosite.name=天冶石 -tile.aether.agiosite_brick.name=天冶磚 -tile.aether.agiosite_brick_decorative.name=飾紋天冶磚 -tile.aether.agiosite_brick_decorative.base_bricks.name=磚石 -tile.aether.agiosite_brick_decorative.base_pillar.name=柱石 -tile.aether.agiosite_brick_decorative.keystone.name=拱頂石 -tile.aether.agiosite_brick_decorative.capstone_bricks.name=拱石 -tile.aether.agiosite_brick_decorative.capstone_pillar.name=拱石柱 -tile.aether.agiosite_brick_decorative.flagstones.name=石板 -tile.aether.agiosite_pillar.name=天冶磚柱 -tile.aether.therawood_planks.name=介元木板 -tile.aether.therawood_decorative.name=飾紋介元木板 -tile.aether.therawood_decorative.base_planks.name=木板 -tile.aether.therawood_decorative.base_beam.name=樑木 -tile.aether.therawood_decorative.highlight.name=細紋 -tile.aether.therawood_decorative.top_planks.name=頂板 -tile.aether.therawood_decorative.top_beam.name=頂梁 -tile.aether.therawood_decorative.floorboards.name=木地板 -tile.aether.therawood_beam.name=介元木樑 -tile.aether.therawood_log.name=介元木 -tile.aether.therawood_leaves.name=介元樹葉 -tile.aether.skyroot_planks.name=天根木板 -tile.aether.skyroot_decorative.name=飾紋天根木板 -tile.aether.skyroot_decorative.base_planks.name=木板 -tile.aether.skyroot_decorative.base_beam.name=樑木 -tile.aether.skyroot_decorative.highlight.name=細紋 -tile.aether.skyroot_decorative.top_planks.name=頂板 -tile.aether.skyroot_decorative.top_beam.name=頂梁 -tile.aether.skyroot_decorative.floorboards.name=木地板 -tile.aether.skyroot_decorative.tiles.name=木瓦 -tile.aether.skyroot_decorative.tiles_small.name=細木瓦 -tile.aether.skyroot_beam.name=天根木樑 -tile.aether.dark_skyroot_planks.name=天碩木板 -tile.aether.dark_skyroot_decorative.name=飾紋天碩木板 -tile.aether.dark_skyroot_decorative.base_planks.name=木板 -tile.aether.dark_skyroot_decorative.base_beam.name=樑木 -tile.aether.dark_skyroot_decorative.highlight.name=細紋 -tile.aether.dark_skyroot_decorative.top_planks.name=頂板 -tile.aether.dark_skyroot_decorative.top_beam.name=頂梁 -tile.aether.dark_skyroot_decorative.floorboards.name=木地板 -tile.aether.dark_skyroot_decorative.tiles.name=木瓦 -tile.aether.dark_skyroot_decorative.tiles_small.name=細木瓦 -tile.aether.dark_skyroot_beam.name=天根木樑 -tile.aether.light_skyroot_planks.name=天纖木板 -tile.aether.light_skyroot_decorative.name=飾紋天纖木板 -tile.aether.light_skyroot_decorative.base_planks.name=木板 -tile.aether.light_skyroot_decorative.base_beam.name=樑木 -tile.aether.light_skyroot_decorative.highlight.name=細紋 -tile.aether.light_skyroot_decorative.top_planks.name=頂板 -tile.aether.light_skyroot_decorative.top_beam.name=頂梁 -tile.aether.light_skyroot_decorative.floorboards.name=木地板 -tile.aether.light_skyroot_decorative.tiles.name=木瓦 -tile.aether.light_skyroot_decorative.tiles_small.name=細木瓦 -tile.aether.light_skyroot_beam.name=天纖木樑 -tile.aether.quicksoil_glass_pane.name=速沙玻璃板 -tile.aether.quicksoil_glass_pane_decorative.name=鑲框速沙玻璃板 -tile.aether.quicksoil_glass_pane_decorative.arkenium_frame.name=阿肯鋼邊框 -tile.aether.quicksoil_glass_pane_decorative.skyroot_frame.name=天根木邊框 -tile.aether.arkenium_frame.name=阿肯鋼窗框 -tile.aether.skyroot_frame.name=天根木窗框 -tile.aether.scatterglass_pane.name=霧面玻璃板 -tile.aether.scatterglass_pane_decorative.name=鑲框霧面玻璃板 -tile.aether.scatterglass_pane_decorative.arkenium_frame.name=阿肯鋼邊框 -tile.aether.scatterglass_pane_decorative.skyroot_frame.name=天根木邊框 -tile.aether.skyroot_twigs.name=天根樹枝 -tile.aether.holystone_rock.name=聖岩 -tile.aether.crude_scatterglass_pane.name=粗霧面玻璃板 -tile.aether.crude_scatterglass_pane_decorative.name=鑲框粗霧面玻璃板 -tile.aether.crude_scatterglass_pane_decorative.arkenium_frame.name=阿肯鋼邊框 -tile.aether.crude_scatterglass_pane_decorative.skyroot_frame.name=天根木邊框 -tile.aether.cloudwool_carpet.name=卷雲地毯 -tile.aether.skyroot_bookshelf.name=天根木書架 -tile.aether.holystone_bookshelf.name=聖石書架 -tile.aether.outpost_campfire.name=哨營篝火 -tile.aether.valkyrie_grass.sprout.name=武神草 -tile.aether.valkyrie_grass.full.name=武神草叢 -tile.aether.aether_teleporter.name=天境之門 -tile.aether.thera_dirt.dirt.name=介元泥土 -tile.aether.thera_grass.normal.name=介元草方塊 -tile.aether.ferrosite.name=鐵磁石 -tile.aether.rusted_ferrosite.name=鏽鐵磁石 -tile.aether.highlands_snow.name=空原雪 -tile.aether.highlands_snow_layer.name=空原雪 -tile.aether.highlands_ice.name=空原冰 -tile.aether.highlands_packed_ice.name=空原浮冰 -tile.aether.plumproot.name=腴根 -tile.aether.highlands_ice_crystal.stalagmite.name=凝冰結晶 -tile.aether.candy_cane_block.name=拐杖糖塊 -tile.aether.candy_cane_wall.name=拐杖糖牆 - -# Aether Items -item.aether.skyroot_stick.name=天根木棍 -item.aether.cloudtwine.name=卷雲繩 -item.aether.moa_feather.name=恐鳥羽毛 -item.aether.cockatrice_feather.name=雞蛇翎羽 -item.aether.ambrosium_shard.name=神能晶片 -item.aether.ambrosium_chunk.name=神能晶塊 -item.aether.zanite_gemstone.name=紫晶石 -item.aether.continuum_orb.name=機遇珠玉 -item.aether.arkenium.name=阿肯鋼材 -item.aether.arkenium_strip.name=阿肯鋼條 -item.aether.skyroot_pickaxe.name=天根木鎬 -item.aether.skyroot_axe.name=天根木斧 -item.aether.skyroot_shovel.name=天根木鍬 -item.aether.skyroot_sword.name=天根木劍 -item.aether.holystone_pickaxe.name=聖石鎬 -item.aether.holystone_axe.name=聖石斧 -item.aether.holystone_shovel.name=聖石鍬 -item.aether.holystone_sword.name=聖石劍 -item.aether.zanite_pickaxe.name=紫晶鎬 -item.aether.zanite_axe.name=紫晶斧 -item.aether.zanite_shovel.name=紫晶鍬 -item.aether.zanite_sword.name=紫晶劍 -item.aether.gravitite_pickaxe.name=重力晶鎬 -item.aether.gravitite_axe.name=重力晶斧 -item.aether.gravitite_sword.name=重力晶劍 -item.aether.gravitite_shovel.name=重力晶鍬 -item.aether.arkenium_pickaxe.name=阿肯鋼鎬 -item.aether.arkenium_axe.name=阿肯鋼斧 -item.aether.arkenium_shovel.name=阿肯鋼鍬 -item.aether.arkenium_sword.name=阿肯鋼劍 -item.aether.arkenium_shears.name=阿肯鋼剪刀 -item.aether.taegore_hide_helmet.name=探戈皮帽 -item.aether.taegore_hide_chestplate.name=探戈夾克 -item.aether.taegore_hide_leggings.name=探戈皮褲 -item.aether.taegore_hide_boots.name=探戈皮靴 -item.aether.zanite_helmet.name=紫晶頭盔 -item.aether.zanite_chestplate.name=紫晶胸甲 -item.aether.zanite_leggings.name=紫晶護腿 -item.aether.zanite_boots.name=紫晶戰靴 -item.aether.arkenium_helmet.name=阿肯鋼盔 -item.aether.arkenium_chestplate.name=阿肯鋼甲 -item.aether.arkenium_leggings.name=阿肯鋼護腿 -item.aether.arkenium_boots.name=阿肯鋼靴 -item.aether.gravitite_helmet.name=重力晶盔 -item.aether.gravitite_chestplate.name=重力晶甲 -item.aether.gravitite_leggings.name=重力晶護腿 -item.aether.gravitite_boots.name=重力晶靴 -item.aether.golden_amber.name=金琥珀 -item.aether.aechor_petal.name=箭毒花瓣 -item.aether.blueberries.name=藍莓 -item.aether.enchanted_blueberry.name=魔莓 -item.aether.orange.name=橙子 -item.aether.wyndberry.name=風莓 -item.aether.candy_corn.name=玉米糖 -item.aether.cocoatrice.name=可可雞蛇 -item.aether.jelly_plumproot.name=腴根軟糖 -item.aether.stomper_pop.name=粉紅史維特棒棒糖 -item.aether.blueberry_lollipop.name=藍莓棒棒糖 -item.aether.orange_lollipop.name=橙子棒棒糖 -item.aether.icestone_poprocks.name=冰爽跳跳糖 -item.aether.ginger_bread_man.name=薑餅人 -item.aether.candy_cane.name=拐杖糖 -item.aether.yule_log.name=聖誕樹原木 -item.aether.wrapped_chocolates.name=精裝巧克力 -item.aether.enchanted_wyndberry.name=魔風莓 -item.aether.swet_jelly.blue.name=天藍史維特果凍 -item.aether.swet_jelly.green.name=鮮綠史維特果凍 -item.aether.swet_jelly.purple.name=幻紫史維特果凍 -item.aether.swet_gel.blue.name=天藍史維特凝膠 -item.aether.swet_gel.green.name=鮮綠史維特凝膠 -item.aether.swet_gel.purple.name=幻紫史維特凝膠 -item.aether.swet_sugar.name=史維特糖 -item.aether.skyroot_bucket.name=天根木桶 -item.aether.skyroot_water_bucket.name=天根水桶 -item.aether.skyroot_milk_bucket.name=天根牛奶桶 -item.aether.skyroot_poison_bucket.name=天根毒液桶 -item.aether.valkyrie_music_disc.name=瓦爾基里唱片 -item.aether.labyrinth_music_disc.name=迷宮唱片 -item.aether.moa_music_disc.name=恐鳥唱片 -item.aether.aerwhale_music_disc.name=雲鯨唱片 -item.aether.recording_892.name=錄音#892 -item.aether.healing_stone.name=治愈靈石 -item.aether.healing_stone_depleted.name=空治愈靈石 -item.aether.dart_shooter.golden.name=金琥珀吹箭筒 -item.aether.dart_shooter.enchanted.name=魔能吹箭筒 -item.aether.dart_shooter.poison.name=劇毒吹箭筒 -item.aether.dart.golden.name=金琥珀鏢箭 -item.aether.dart.enchanted.name=魔能鏢箭 -item.aether.dart.poison.name=劇毒鏢箭 -item.aether.cloud_parachute.cold.name=寒風雲落傘 -item.aether.cloud_parachute.blue.name=天藍雲落傘 -item.aether.cloud_parachute.golden.name=金黃雲落傘 -item.aether.cloud_parachute.green.name=鮮綠雲落傘 -item.aether.cloud_parachute.purple.name=幻紫雲落傘 -item.aether.aether_saddle.name=恐鳥鞍韉 -item.aether.skyroot_door_item.name=天根門 -item.aether.secret_skyroot_door_item.name=隱形天根門 -item.aether.arkenium_door_item.name=阿肯鋼門 -item.aether.taegore_hide_gloves.name=探戈皮手套 -item.aether.icestone.name=冰石 -item.aether.skyroot_sign.name=天根告示牌 -item.aether.zanite_gloves.name=紫晶護手 -item.aether.arkenium_gloves.name=阿肯鋼手套 -item.aether.gravitite_gloves.name=重力晶拳甲 -item.aether.shard_of_life.name=生命幻片 -item.aether.skyroot_shield.name=天根木盾 -item.aether.holystone_shield.name=聖石重盾 -item.aether.zanite_shield.name=紫晶戰盾 -item.aether.arkenium_shield.name=阿肯鋼盾 -item.aether.gravitite_shield.name=重力晶盾 -item.aether.plumproot_mash.name=腴根羹 -item.aether.plumproot_pie.name=腴根派 -item.aether.winter_hat.name=冬帽 -item.aether.eggnog.name=蛋奶酒 - -item.aether.skyroot_bed_item.name=天根床 -item.aether.moa_egg_item.name=恐鳥蛋 -item.aether.rainbow_moa_egg.name=彩虹恐鳥蛋 - -item.aether.cold_cloud_parachute.name=寒風雲落傘 -item.aether.golden_cloud_parachute.name=金黃雲落傘 -item.aether.purple_cloud_parachute.name=幻紫雲落傘 -item.aether.green_cloud_parachute.name=鮮綠雲落傘 -item.aether.blue_cloud_parachute.name=天藍雲落傘 - -item.aether.irradiated_chunk.name=輻照原料 -item.aether.irradiated_sword.name=輻照寶劍 -item.aether.irradiated_armor.name=輻照裝甲 -item.aether.irradiated_tool.name=輻照工具 -item.aether.irradiated_ring.name=輻照戒指 -item.aether.irradiated_neckwear.name=輻照領帶 -item.aether.irradiated_charm.name=輻照飾物 -item.aether.irradiated_dust.name=輻照粉塵 - -item.aether.skyroot_crossbow.name=天根木弩 -item.aether.holystone_crossbow.name=聖石重弩 -item.aether.zanite_crossbow.name=紫晶勁弩 -item.aether.arkenium_crossbow.name=阿肯鋼弩 -item.aether.gravitite_crossbow.name=重力晶弩 -item.aether.bolt.skyroot.name=天根弩箭 -item.aether.bolt.holystone.name=聖石弩箭 -item.aether.bolt.scatterglass.name=霧面玻璃弩箭 -item.aether.bolt.boneshard.name=利骨弩箭 -item.aether.bolt.zanite.name=紫晶弩箭 -item.aether.bolt.gravitite.name=重力晶箭 -item.aether.bolt.arkenium.name=阿肯鋼箭 -item.aether.wrapping_paper.name=包裝紙 -item.aether.fried_moa_egg.name=煎恐鳥蛋 -item.aether.aether_spawn_egg.name=生成 -item.aether.arkenium_ore_item.name=阿肯鋼礦 -item.aether.gravitite_ore_item.name=重力晶礦 -item.aether.gravitite_plate.name=重力晶板 -item.aether.raw_taegore_meat.name=探戈豬腿 -item.aether.taegore_steak.name=探戈豬排 -item.aether.taegore_hide.name=探戈毛皮 -item.aether.burrukai_rib_cut.name=布魯牛肋 -item.aether.burrukai_ribs.name=布魯烤肋 -item.aether.burrukai_pelt.name=布魯牛皮 -item.aether.kirrid_loin.name=科里后腰 -item.aether.kirrid_cutlet.name=科里羊排 -item.aether.valkyrie_wings.name=武神草穗 -item.aether.brettl_cane.name=布雷特爾莖 -item.aether.brettl_grass.name=布雷特爾乾草 -item.aether.wrapping_paper.bow.black.name=黑色蝴蝶結 -item.aether.wrapping_paper.bow.red.name=紅色蝴蝶結 -item.aether.wrapping_paper.bow.green.name=綠色蝴蝶結 -item.aether.wrapping_paper.bow.brown.name=棕色蝴蝶結 -item.aether.wrapping_paper.bow.blue.name=藍色蝴蝶結 -item.aether.wrapping_paper.bow.purple.name=紫色蝴蝶結 -item.aether.wrapping_paper.bow.cyan.name=青色蝴蝶結 -item.aether.wrapping_paper.bow.pink.name=粉色蝴蝶結 -item.aether.wrapping_paper.bow.lime.name=黃綠蝴蝶結 -item.aether.wrapping_paper.bow.yellow.name=黃色蝴蝶結 -item.aether.wrapping_paper.bow.light_blue.name=淺藍蝴蝶結 -item.aether.wrapping_paper.bow.magenta.name=品紅蝴蝶結 -item.aether.wrapping_paper.bow.orange.name=橙色蝴蝶結 -item.aether.wrapping_paper.bow.white.name=白色蝴蝶結 -item.aether.wrapping_paper.box.black.name=黑色禮物盒 -item.aether.wrapping_paper.box.red.name=紅色禮物盒 -item.aether.wrapping_paper.box.green.name=綠色禮物盒 -item.aether.wrapping_paper.box.brown.name=棕色禮物盒 -item.aether.wrapping_paper.box.blue.name=藍色禮物盒 -item.aether.wrapping_paper.box.purple.name=紫色禮物盒 -item.aether.wrapping_paper.box.cyan.name=青色禮物盒 -item.aether.wrapping_paper.box.pink.name=粉色禮物盒 -item.aether.wrapping_paper.box.lime.name=黃綠禮物盒 -item.aether.wrapping_paper.box.yellow.name=黃色禮物盒 -item.aether.wrapping_paper.box.light_blue.name=淺藍禮物盒 -item.aether.wrapping_paper.box.magenta.name=品紅禮物盒 -item.aether.wrapping_paper.box.orange.name=橙色禮物盒 -item.aether.wrapping_paper.box.white.name=白色禮物盒 -item.aether.wrapping_paper.tooltip.craft=在工作台上把物品包裝起來! -item.aether.present.tooltip.empty=空 -item.aether.present.tooltip.hasitem=裡面有神秘的小驚喜哦! - - -tile.aether.aether_portal.name=天境傳送門 - -cloudParachute.ability.rightClick=§3使用:§r右擊 -cloudParachute.ability=§9能力: -cloudParachute.ability.cold=緩速下降 -cloudParachute.ability.golden=迅速下降 -cloudParachute.ability.purple=定位降落 -cloudParachute.ability.green=緩速下降 -cloudParachute.ability.blue=高速飛升 - -moa.feathers=羽色: %s -moa.keratin=膚色: %s -moa.eyes=眸色: %s -moa.wing_strength=翼強: %s - -moa.keratin.sky_blue=天藍 -moa.keratin.deep_sky=天青 -moa.keratin.sand=沙黃 -moa.keratin.midnight_sky=夜藍 -moa.keratin.swamp=沼綠 -moa.keratin.royal=皇家藍 -moa.keratin.tempest=風暴紅 - -moa.eyes.alto=沉暗 -moa.eyes.straw=稻黃 -moa.eyes.winter_hazel=冬榛 -moa.eyes.gossip=閒語 -moa.eyes.mint=薄荷 -moa.eyes.ice=冰寒 -moa.eyes.perano=佩拉諾 -moa.eyes.portage=水運 -moa.eyes.perfume=香氛 -moa.eyes.illusion=幻想 -moa.eyes.wewak=委瓦克 - -moa.feathers.black=黑色 -moa.feathers.grey=灰色 -moa.feathers.white=白色 -moa.feathers.iroko=伊羅科木 -moa.feathers.orange=橙色 -moa.feathers.lisbon_brown=里斯本棕 -moa.feathers.yellow=黃色 -moa.feathers.mallard=鴨綠 -moa.feathers.lime_green=檸綠 -moa.feathers.everglade=沼綠 -moa.feathers.green=綠色 -moa.feathers.plantation=林綠 -moa.feathers.sky_blue=天藍 -moa.feathers.cloud_burst=豪雨 -moa.feathers.blue=藍色 -moa.feathers.port_gore=血泊 -moa.feathers.purple=紫色 -moa.feathers.bossanova=波薩諾瓦 -moa.feathers.pink=粉色 -moa.feathers.livid_brown=鐵棕 -moa.feathers.puse=磷色 -moa.feathers.deep_red=深紅 -moa.feathers.red=紅色 - -moa.marks.spots=斑點 -moa.marks.circles=放射 -moa.marks.curves=樹狀 -moa.marks.ladder=鏈狀 -moa.marks.lines=線狀 - -moa.wing_strength.weak=孱弱 -moa.wing_strength.normal=庸常 -moa.wing_strength.strong=強壯 -moa.wing_strength.excellent=健碩 - -# Item Rarities -item.rarity.none.name=§7§o基礎 -item.rarity.common.name=§7§o常見 -item.rarity.rare.name=§b§o稀有 -item.rarity.epic.name=§5§o史詩 -item.rarity.mythic.name=§6§o神秘 -item.rarity.godly.name=§o§a神§b靈§6之§d應§e許 - -# Weapon Tooltips -item.aether.skyroot_sword.ability.desc=雙倍掉落 -item.aether.holystone_sword.ability.desc=神能生晶 -item.aether.zanite_sword.ability.desc=愈戰愈勇item.aether.gravitite_sword.ability.desc=反重升騰 -item.aether.gravitite_sword.use.desc=潛行進攻 -item.aether.arkenium_sword.ability.desc=沉重耐用 -item.aether.holy_sword.ability.desc=亡靈專殺 -item.aether.lightning_sword.ability.desc=雷霆一擊 -item.aether.flaming_sword.ability.desc=烈火焚身 -item.aether.vampire_blade.ability.desc=生命吸取 -item.aether.candy_cane_sword.ability.desc=天降糖果 -item.aether.valkyrie_lance.ability.desc=破空遠擊 -item.aether.sentry_vaultbox.ability.desc1=§d輸出:§r隨機物品 -item.aether.sentry_vaultbox.ability.desc2=§3投擲:§r右鍵 -item.aether.crossbow.desc1=裝填速度 -item.aether.crossbow.desc2=秒 -item.aether.crossbow.desc3=秒 -item.aether.crossbow.desc4=功能 -item.aether.skyroot_crossbow.ability=潛行裝彈:雙發 -item.aether.holystone_crossbow.ability=潛行裝彈:散射 -item.aether.zanite_crossbow.ability=無特技 -item.aether.arkenium_crossbow.ability=潛行裝彈:遠射 -item.aether.gravitite_crossbow.ability=無特技 -item.aether.bolt.desc1=攻擊傷害 - -# Tool tooltips -item.aether.tool.skyroot.ability.desc=雙倍方塊掉落 -item.aether.tool.holystone.ability.desc=採掘時機率產生神能結晶 -item.aether.tool.zanite.ability.desc=隨耐久降低提升效率 -item.aether.tool.gravitite.ability.desc=無視重力升騰方塊 -item.aether.tool.gravitite.use.desc=右擊方塊 -item.aether.tool.arkenium.ability.desc=沉重卻極其耐用 -item.aether.tool.valkyrie.ability.desc=能用於操作距玩家有一定距離的目標 - -# Tooltips -item.aether.tooltip.ability=能力 -item.aether.tooltip.use=使用 - -# Armor Tooltips -item.aether.armor.zanite.ability.desc=久穿合身 - -# Records -item.aether.moa_music_disc.desc=Emile van Krieken - Approaches -item.aether.aerwhale_music_disc.desc=AetherAudio - Aerwhale -item.aether.labyrinth_music_disc.desc=Moorziey - Demise -item.aether.valkyrie_music_disc.desc=Emile van Krieken - Ascending Dawn -item.aether.recording_892.desc=Emile van Krieken - ??? - -# Entities -entity.aether.aechor_plant.name=箭毒花 -entity.aether.aerbunny.name=天躍兔 -entity.aether.carrion_sprout.name=食腐苗 -entity.aether.cockatrice.name=雞蛇 -entity.aether.kirrid.name=科里雲羊 -entity.aether.moa.name=恐鳥 -entity.aether.aerwhale.name=雲鯨 -entity.aether.zephyr.name=西風嘯雲 -entity.aether.tempest.name=風暴怒雲 -entity.aether.taegore.name=探戈野豬 -entity.aether.detonation_sentry.name=爆破哨石 -entity.aether.battle_sentry.name=戰鬥哨石 -entity.aether.tracking_sentry.name=追踪哨石 -entity.aether.chest_mimic.name=擬箱怪 -entity.aether.battle_golem.name=戰爭魔像 -entity.aether.swet.name=史維特 -entity.aether.generator.name=實體生成器 -entity.aether.sentry_guardian.name=哨石衛兵 -entity.aether.production_line.name=生產線 -entity.aether.repair_sentry.name=修復哨石 -entity.aether.slider.name=滑行魔石 -entity.aether.frostpine_totem.name=寒松圖騰 -entity.aether.kraisith.name=克雷斯 -entity.aether.shade_of_arkenzus.name=阿肯祖斯之影 -entity.aether.ethereal_wisp.name=飄逸幻影 -entity.aether.fleeting_wisp.name=閃現幻影 -entity.aether.soaring_wisp=升騰幻影 -entity.aether.fangrin.name=法格林 -entity.aether.nex_spirit.name=不死英靈 -entity.aether.pink_baby_swet.name=粉史維特寶寶 -entity.aether.glitterwing.name=閃光翼蝶 -entity.aether.edison.name=愛迪生 -entity.aether.burrukai.name=布魯犛牛 -entity.aether.necromancer.name=巫魂 -entity.aether.josediya.name=喬瑟迪婭 -entity.aether.tivalier.name=泰瓦爾 -entity.aether.icehog.name=冰川刺猬 -entity.aether.mysterious_figure.name=神秘人 -entity.aether.varanys.name=冰穴巨蜥 - -# Creative Tabs -itemGroup.aether.blocks=天境二 方塊 -itemGroup.aether.materials=天境二 材料 -itemGroup.aether.tools=天境二 工具 -itemGroup.aether.weapons=天境二 武器 -itemGroup.aether.armor=天境二 護甲 -itemGroup.aether.consumables=天境二 消耗品 -itemGroup.aether.companions=天境二 夥伴 -itemGroup.aether.miscellaneous=天境二 雜項 -itemGroup.aether.rings=天境二 戒指 -itemGroup.aether.neckwear=天境二 護頸 -itemGroup.aether.relics=天境二 遺物 -itemGroup.aether.charms=天境二 飾品 -itemGroup.aether.artifacts=天境二 工藝品 -itemGroup.aether.visual_variants=天境二 裝飾性方塊 -itemGroup.aether.natural_blocks=天境二 天然方塊 -itemGroup.aether.construction=天境二 建材 -itemGroup.aether.utility_blocks=天境二 效用型方塊 -itemGroup.aether.dungeon_blocks=天境二 地下城方塊 -itemGroup.aether.thera=天境二 介元方塊 - -# Containers -# TODO: Prefix with aether. -container.holystone_furnace=聖石爐 -container.skyroot_chest=天根木箱 -container.skyroot_double_chest=大天根木箱 -container.labyrinth_chest=迷宮寶箱 -container.icestone_cooler=冰石冷卻器 -container.incubator=孵化器 -container.masonry_bench=石工台 -container.aether_workbench.recipes=修復(%s/%s) - -# Sounds -subtitles.aether.portal.glowstone.hum=傳送門:嗡鳴 -subtitles.aether.portal.glowstone.trigger=傳送門:活動 -subtitles.aether.portal.glowstone.travel=傳送門:傳送 -subtitles.aether.portal.labyrinth_totem.drone=圖騰:嗡鳴 -subtitles.aether.portal.labyrinth_totem.woosh=圖騰:呼嘯 -subtitles.aether.block.aercloud.bounce=境雲:反沖 -subtitles.aether.mob.aerbunny.ambient=天躍兔:吱吱 -subtitles.aether.mob.aerbunny.hurt=天躍兔:受傷 -subtitles.aether.mob.aerbunny.death=天躍兔:死亡 -subtitles.aether.mob.aerbunny.lift=天躍兔:躍起 -subtitles.aether.mob.aerwhale.ambient=雲鯨:嘯鳴 -subtitles.aether.mob.aerwhale.death=雲鯨:死亡 -subtitles.aether.mob.cockatrice.ambient=雞蛇:嘶鳴 -subtitles.aether.mob.cockatrice.hurt=雞蛇:受傷 -subtitles.aether.mob.cockatrice.death=雞蛇:死亡 -subtitles.aether.mob.tempest.ambient=風暴怒雲:嗡鳴 -subtitles.aether.mob.tempest.hurt=風暴怒雲:受傷 -subtitles.aether.mob.tempest.death=風暴怒雲:死亡 -subtitles.aether.mob.tempest.angry=風暴怒雲:聚能 -subtitles.aether.mob.tempest.electric_shock=風暴怒雲:雷擊 -subtitles.aether.mob.zephyr.ambient=西風嘯雲:呼嘯 -subtitles.aether.mob.zephyr.puff=西風嘯雲:呼氣 -subtitles.aether.mob.tracking_sentry.alarm=跟踪哨石:警報 -subtitles.aether.mob.sentry.ambient=哨石:低吼 -subtitles.aether.mob.sentry.hurt=哨石:受傷 -subtitles.aether.mob.sentry.death=哨石:死亡 -subtitles.aether.mob.battle_sentry.pounce=戰鬥哨石:突襲 -subtitles.aether.random.stone.thud=石頭:落地 -subtitles.aether.random.detonating=炸藥:起爆 -subtitles.aether.random.detonate=炸藥:爆炸 -subtitles.aether.random.dart_shooter.fire=吹箭筒:發射 -subtitles.aether.mob.moa.ambient=恐鳥:鳴叫 -subtitles.aether.mob.moa.hurt=恐鳥:受傷 -subtitles.aether.mob.kirrid.ambient=科里雲羊:咩咩 -subtitles.aether.mob.kirrid.hurt=科里雲羊:受傷 -subtitles.aether.mob.kirrid.death=科里雲羊:死亡 -subtitles.aether.mob.taegore.ambient=探戈野豬:響鼻 -subtitles.aether.mob.taegore.hurt=探戈野豬:受傷 -subtitles.aether.mob.taegore.death=探戈野豬:死亡 -subtitles.aether.mob.taegore.attack=探戈野豬:攻擊 -subtitles.aether.mob.chest_mimic.awake=擬箱怪:起身 -subtitles.aether.random.present_unwrap=禮物:打開 -subtitles.aether.random.dungeon.container.smash=容器:打碎 -subtitles.aether.mob.slider.awake=滑行魔石:甦醒 -subtitles.aether.mob.slider.collide=滑行魔石:撞擊 -subtitles.aether.mob.slider.die=滑行魔石:破碎 -subtitles.aether.mob.slider.move=滑行魔石:滑行 -subtitles.aether.mob.slider.signal=滑行魔石:發信 -subtitles.aether.mob.generic.wings.flap=振翅聲 -subtitles.aether.mob.burrukai.ambient=布魯犛牛:喘氣 -subtitles.aether.mob.burrukai.hurt=布魯犛牛:受傷 -subtitles.aether.mob.burrukai.death=布魯犛牛:死亡 -subtitles.aether.mob.burrukai.attack=布魯犛牛:攻擊 - -# Accessory slot names -gui.aether.slot.none=不可裝備 -gui.aether.slot.neckwear=護頸 -gui.aether.slot.companion=夥伴 -gui.aether.slot.shield=盾牌 -gui.aether.slot.relic=遺物 -gui.aether.slot.ring=戒指 -gui.aether.slot.handwear=護手 -gui.aether.slot.charm=飾品 -gui.aether.slot.artifact=工藝品 -gui.aether.slot.helmet=頭盔 -gui.aether.slot.chestplate=胸甲 -gui.aether.slot.leggings=護腿 -gui.aether.slot.boots=靴子 -gui.aether.slot.offhand=副手 -gui.aether.coolant=冷卻劑 -gui.aether.cools_into=冷卻: -gui.aether.random_item=隨機物品 -gui.aether.random_armor=隨機護甲 -gui.aether.random_sword=隨機武器 -gui.aether.random_tool=隨機工具 -gui.aether.random_ring=隨機戒指 -gui.aether.random_neckwear=隨機護喉 -gui.aether.random_charm=隨機飾品 -gui.aether.incubator_fuel=孵化器燃料 -gui.aether.baby_moa=恐鳥寶寶 -gui.aether.respawn.bed=床鋪重生 -gui.aether.campfire.bed=前哨營地重生 -gui.aether.loading.indeterminate=加載中··· -gui.aether.loading.progress=加載中%s%% -gui.aether.patreon.rewards.button.use=使用 -gui.aether.patreon.rewards.button.locked=已鎖定 -gui.aether.incubator.label.incubation=孵化 -gui.aether.incubator.label.heating加熱中 -gui.aether.incubator.label.more_heat=需要更多熱量! -gui.aether.incubator.label.ready=就緒! -gui.aether.incubator.label.max=滿 -gui.aether.incubator.label.fail=失敗! -gui.aether.masonry.label.recipes=合成 - -# Intro - -intro.prologue=在那位孤獨的勇士擊敗殘暴的烈陽巨靈卡爾圖爾的二百年後,一位新的旅行者來到了天境······ -intro.tip1=免責聲明:\n\n此版本仍未完成,BUG賊多\n\n空原的正式版本發布日期未定。 \n\n若不希望獲得較差的遊戲體驗,我們強烈建議您等待官方正式版。 \n\n很多生物——包括試驗性的——都暫未添加。我們以測試和嚐鮮為目的發布這一開發中版本。 -intro.tip2=本模組仍未加入地下城。我們仍在設計開發相關的技術工具,這一技術工具模組被命名為Orbis。將相關內容加入模組是需要花費時間的。現階段你可以體驗到的內容以探索新的生物群系和地形為主,還可以欣賞我們的藝術作品和新近構建的模型。 -intro.tip3=你將前往的世界將從背景、時間和空間三個方面與主世界完全分開······ -intro.tip4=開始旅程? -intro.holdToSkip=點擊跳過 -intro.proudlyPresents=榮譽出品 -intro.yes=是 -intro.no=否 - -# Teleporter Notice - -notice.body=曾探索天境的勇士,歡迎歸來! \n\n在天境二中,簡陋的螢石門已無法連接天境了。 \n\n試著打造一台天境之門吧! -notice.gotcha=明白了! -notice.holdUp=喔哦?請等一下! - -#Ability Tooltips -ability.breatheUnderwater.name=水下呼吸 -ability.daggerfrost.name=寒霜匕首 -ability.doubleDrops.name=雙倍掉落 -ability.extraDamage.name=傷害提升 -ability.punchingDamage.name=徒手傷害 -ability.freezeBlocks.name=冰結光環 -ability.pauseHunger.name=食物天堂 -ability.reduceHunger.name=有助消化 -ability.regenerateHealth.name=生命恢復 -ability.maxHealthMod.name=提升生命上限 -ability.movementSpeedMod.name=提升移速 -ability.modifyXPCollection.name=提升經驗 -ability.modifyDefense.name=提升防禦 -ability.weightTolerance.name=質量抗性 -ability.invisibility.name=隱形 -ability.changeAttackElement.name=元素攻擊 -ability.setEnemiesOnFire.name=點亮火把 -ability.fireImmunity.name=火焰保護 -ability.companionMaxHealthMod.name=夥伴生命上限提升 -ability.slowfall.name=緩速著陸 -ability.attackSpeedMod.name=攻速提升 - -elementalState.biological=生命 -elementalState.frost=冰霜 -elementalState.fire=火焰 -elementalState.water=水 -elementalState.earth=大地 -elementalState.air=空氣 -elementalState.blight=破擊 -elementalState.lightning=閃電 - -ability.extraDamage.attack=攻擊 -ability.extraDamage.desc=%s %s 傷害 -ability.active=§5生效條件: -ability.cosmetic=§e裝飾 -ability.breatheUnderwater.desc=§9水下呼吸 -ability.daggerfrost.desc=§9雪球攻擊 -ability.doubleDrops.desc1=§9雙倍獵獲 -ability.doubleDrops.desc2=%s%%機率 -ability.punchingDamage.desc1=%s拳擊傷害 -ability.punchingDamage.desc2=%s%s拳擊 -ability.freezeBlocks.desc=§9凍結周圍方塊 -ability.pauseHunger.desc=§9不再飢餓 -ability.reduceHunger.desc=§9減少飢餓 -ability.regenerateHealth.desc=§9生命恢復 -ability.maxHealthMod.desc=%s生命上限 -ability.movementSpeedMod.desc=%s移動速度 -ability.modifyXPCollection.desc=%s經驗收集 -ability.defenseMod.desc=%s %s -ability.defenseMod.desc1=防禦 -ability.defenseMod.desc2=抗性 -ability.invisibility.desc=§9隱身 -ability.changeAttackElement.desc=§9全部攻擊變為: -ability.setEnemiesOnFire.desc=§9點燃敵人 -ability.fireImmunity.desc=§9抗火 -ability.doubleJump.desc=§9雙倍高跳 -ability.companion.desc=夥伴用 -ability.leechLife.desc1=§9生命吸取 -ability.leechLife.desc2=%s%%機率 -ability.slowfall.desc=§9緩慢下落 -ability.weight.desc1=%skg重 -ability.weight.desc2=%skg容量 -ability.levitateAttackers.desc1=§9浮空敵手 -ability.levitateAttackers.desc2=%s%%機率 -ability.setAttackersOnFire.desc1=§9引燃敵手 -ability.setAttackersOnFire.desc2=%s%%機率 -ability.attackSpeedMod.desc=%s攻擊速度 - -# Tabs -tab.equipment=裝備 -tab.bug_report=反饋Bug -tab.backpack.name=背包 -tab.patron_rewards=贊助獎勵 - -# Chat Messages -chat.aether.resurrected=不死英靈讓它的主人%s起死回生了! - -# In Development Menu -indev.button=來吧! -indev.line1=心急如焚的玩家,你好! -indev.line2=感謝您對本模組的關注!在繼續遊戲之前,我們先講清楚一點事情。你正游玩的天境版本是個開發中的預覽版。也就是說你可能遇見某些嚴重的問題,比如: -indev.line3=世界錯誤與崩潰 -indev.line4=生物丟失材質和模型 -indev.line5=遊戲損壞 -indev.line6=最重要的,成噸的Bug! -indev.line7=歡迎試玩天境二的預覽版,而我們誠摯地希望您在我們開發的過程中給予我們耐心和支持。 -indev.line8=點擊下方的按鈕,也就表明您了解了以上事項,要是您的遊戲長出腿帶著您的咖啡跑了,可不要怪在我們的頭上哦。 - -# Bug Report Menu -bug_report.button=打開Issue追踪器 -bug_report.line1=你好,又見面了! -bug_report.line2=遇到什麼問題了嗎?如果是的,請使用Issue追踪器幫助我們優化天境二! -bug_report.line3=想要反饋Bug或是其它問題,Issue無疑是最合適的手段,它架起了普通用戶和開發者或志願者之間的橋樑。 -bug_report.line4=點擊下方按鈕即可打開我們的Issue追踪網址。馬上註冊,一起清理天境二的Bug吧! - -aether.warning.deprecated_item=§c千萬別!這東西等著被刪除呢! -aether.warning.operator_item=需要管理員權限 - -# Rewards -aether.reward.sun_spirit.name=烈陽巨靈 -aether.reward.slider.name=滑行魔石 -aether.reward.valkyrie_queen.name=武神女王 -aether.reward.none.name=無 - -# Shop -aether.shop.sell=出售 -aether.shop.buy=購買 %s -aether.shop.back=返回 -aether.shop.lockTooltip=如果解除鎖定,你每次更換想買的物品時,購買數都會重置為1。 - -##=======================## -########################### -# # -# CHARACTER NAMES # -# # -########################### -##=======================## - -edison.name=愛迪生 -necromancer.name=巫魂 -entity.aether.josediya.name=喬瑟迪婭 - -##=======================## -########################### -# # -# GENERIC DIALOG # -# # -########################### -##=======================## - -generic.back=返回 -generic.okay=好的 -generic.goodbye=再見 - -##=======================## -########################### -# # -# NECROMANCER DIALOGUE # -# # -########################### -##=======================## - -necromancer.them.start1=真高興你能平安抵達這裡,旅行者。我想你此刻一定是滿腹狐疑吧,但現在時間緊迫。 -necromancer.them.start2=穿過這條空間裂縫,在對面你會見到一個眼睛上有道疤的男人,他叫愛迪生,某種意義上算是的朋友。 -necromancer.them.start3=他會解答你的問題的,畢竟他的職責就是為你的冒險之旅提供幫助。他看起來可能有點奇怪······但是······呃······ -necromancer.them.start4=在這裡,我們都是奇怪的異鄉人,不是嗎? -necromancer.them.start5=嶄新的世界就在你的面前,祝你一路順風。 - -necromancer.us.leadtheway=感謝指點,後會有期。 - -##=======================## -########################### -# # -# EDISON GREET DIALOGUE # -# # -########################### -##=======================## - -edison.greet.start_not_introduced=新來的,你遲到了。我在這兒等了你好幾個小時了。 - -edison.greet.option.expecting=你在等我嗎? -edison.greet.option.who=請問你是? -edison.greet.option.map=我可沒地圖。 - -edison.greet.respawn_not_introduced=老哥,你可對你自己上點心吧。你能完好無損地出現在這裡真是謝天謝地。 -edison.greet.respawn=你還好嗎?我找見你的時候你剛被暴揍一頓吧。 - -edison.greet.option.what=這是哪? -edison.greet.option.died=我還以為我死定了······ - -edison.greet.option.fine=我很好。 -edison.greet.option.thanks=愛迪生,謝謝你。 -edison.greet.option.okay_sale=我會沒事的。你這有啥好貨嗎? -edison.greet.option.okay_holiday_sale=我很好。已經節日假期了,有沒有特供的商品啊? - -edison.greet.start=嘿,朋友,最近過得還順利嗎?要不要買點什麼? - -edison.greet.option.sale=你有啥好貨嗎? -edison.greet.option.holiday_sale=這個節日假期有沒有特供商品? - -edison.greet.option.okay_goodbye=我覺得我過得不錯。再見。 -edison.greet.option.ready_goodbye=我想我已經準備好了。愛迪生,再見。 -edison.greet.option.mind_goodbye=我會牢記的。再見。 - -edison.greet.expecting1=當然了!我們“共同的朋友”讓我照顧你,並付給我一大筆錢呢! -edison.greet.expecting2=等等,他沒給你解釋我們的小安排?果不其然······ -edison.greet.expecting3=嗯,那···需要我向你解釋什麼呢? - -edison.greet.option.no_we_talked=不,我們還是談過的。你是···愛迪生,對吧? - -edison.greet.who1=我是愛迪生!國際企業家、推銷員以及頂級說客! -edison.greet.who2=但由於我們和那個人——你知道是誰——的小小約定,對你而言,我更是架起你與這些奇異群島之間聯繫的樞紐和嚮導。 -edison.greet.who3=總地來說,這基本上意味著我必須好好照顧你。 -edison.greet.who4=如今,我堅信知識就是世界上最強的力量。所以為了讓你遠離,呃,死亡······ -edison.greet.who5=你還有什麼要問的嗎? - -edison.greet.option.you_know_who=那個···“你知道是誰”的···人? - -edison.greet.map1=哈哈!你可真算不上討人喜歡不是嗎?沒准我真該多袖手旁觀一會。 -edison.greet.map2=找到你沒費多大工夫,雖說我們還以為你掉下去了。 - -edison.greet.what1=“這個地方”?你還真善於提出模棱兩可的問題啊! -edison.greet.what2=我猜你對你剛抵達的這個地方多少知道點,但你得問得更具體點,我才能回答啊。 -edison.greet.what3=你是指我們所在的這座建築物呢,還是這個真真切切的異世界? - -edison.greet.option.building=這座建築物。 -edison.greet.option.world=這個世界。 - -edison.greet.died1=我也是!我的僱員把你弄進來的時候,我都不知道你還能不能醒來! - -edison.greet.fine1=啊,我們只能被動地保護你不死,可免不了你的皮肉之苦。 -edison.greet.fine2=在你出發前,還需要點什麼嗎? - -edison.greet.thanks1=別客氣。每個人都有自己的職責,我就是保護你安全的。 -edison.greet.thanks2=還需要些什麼?還是說你已經準備好出發了? - -edison.greet.sale=當然啦,來看看我的貨物吧。 -edison.greet.holiday_sale=希望你感受到節日的氣息,朋友!來看看我們假期特賣的商品吧。 - -edison.greet.no_we_talked1=沒錯,正是本人!國際企業家、推銷員以及頂級說客! -edison.greet.no_we_talked2=但由於我們和巫魂先生的小小約定,對你而言,我更是架起你與這些奇異群島之間聯繫的樞紐和嚮導。 -edison.greet.no_we_talked3=這基本上意味著我必須好好照顧你。 -edison.greet.no_we_talked4=如今,我堅信知識就是世界上最強的力量。所以為了讓你遠離,額,死亡······ -edison.greet.no_we_talked5=你還有什麼要問的嗎? - -edison.greet.you_know_who1=當然是巫魂了。你知道“又高又黑又嚇人”先生嗎? -edison.greet.you_know_who2=我們時不時地會互相聯繫,他還讓我在必要時把你帶回安全的地方,並且付給我一大筆錢。 -edison.greet.you_know_who3=話是這麼說,但他經常在送出一些帶著便條的小禮品。翻翻你的旅行指南沒準就能找到一份呢。 - -edison.greet.building1=啊,這是個有些年頭的旅者前哨營地了!在很久以前是女武神族修建的神聖墓地。 -edison.greet.building2=自從人們開始攀登這裡的山脈,這裡就成了觀賞天境風景的人們真正意義上的庇護所。 - -edison.greet.option.valkyries=女武神族? -edison.greet.option.what_world=那這個世界又是什麼地方呢? -edison.greet.option.what_building=那這座建築物呢? - -edison.greet.world1=好的好的,看來你了解得不多啊。這裡是天境!遠高於我們世界的存在,且衍生出了自己的動植物種群。 -edison.greet.world2=你所處的就是古代女武神族的哨營之一,如果我沒猜錯的話這裡原本是作為神聖墓地的,但後來卻成為冒險家們駐足小憩的好去處。 - -edison.greet.valkyries1=她們有點像這裡的城管,但是···呃···嗯···特別強大。要是你讓她抓著把柄,一名武神士兵就能把你撕成碎片。 -edison.greet.valkyries2=還好,雖說她們不太健談,但一般還算友好。你會發現她們在大部分的城鎮和鄉村周邊巡邏。某種神聖契約驅使他們保護人們和別的什麼東西。 -edison.greet.valkyries3=實際上我也不能搞清楚她們到底是啥······你最好問問本地人,或者直接私下里找位女武神問問!想見不到她們還真的有點難呢。 -edison.greet.valkyries4=你還想問點什麼? - -##=======================## -########################### -# # -# EDISON SHOP DIALOGUE # -# # -########################### -##=======================## - -edison.shop.greetings1=歡迎光臨!今天我這裡可都是好貨。新到了一些真正獨一無二的寶貝,來看看吧。 -edison.shop.greetings2=我向你保證,這兒商品的價格絕對公道,但是······嗯,按照我們公司的條款,恕不退換! - -edison.shop.enchanted_wyndberry=食腐苗是種有點危險的植物,但我有個伙計負責採集這種小傢伙們的果實並添加神能晶體,讓它們更有料。 -edison.shop.enchanted_blueberry=藍莓是種很容易弄到的食物,但我這兒的都經過神能晶體滋養提味,是你身體不適時的好選擇。 -edison.shop.ambrosium_shard=如今,神能晶體已經成為了一種真真正正用途廣泛的特殊材料:修理工具裝備,為食物提味,抑或是當作燃料。要是使用得當,它甚至能入藥治病,神能晶體也因此為人們所熟知。 -edison.shop.skyroot_stick=我直說了吧,這些木棍實際上算不得我們的商品。但如果你想要的話,當然可以買走了。 -edison.shop.skyroot_pickaxe=原住民認為天根木是一種具備“獨有精確性”的材料並加以尊敬,用它做的鎬子敲石頭的確挺不錯。要我說,用這玩意挺累人的,但如果你要開始挖礦事業的話,它會是很不錯的入門工具。 -edison.shop.skyroot_axe=拿起木頭來砍樹,好像有點不大對勁。啊,好吧,這把做工不錯的斧子能讓你無需赤手空拳對付木頭。 -edison.shop.skyroot_sword=考慮防身問題?這片土地上的野生動物倒真有那麼點血性。隨身帶把劍吧,為人身安全投資永遠是聰明的選擇。 -edison.shop.skyroot_shovel=要是進攻這條路走不通,那何不給自己挖個小型藏身洞呢!一把鍬自然能讓你的挖掘事半功倍。 -edison.shop.therawood_leaves=實際上這是我的一位伙計用布雷特爾莖製作的,通過恰當的上色處理,讓它們看起來就如同介元森林的樹葉一樣。 -edison.shop.therawood_log=我們的朋友根據他的經驗,讓我帶上點幼樹栽下。結果呢,樹葉因為空氣的原因變得蒼白,不過木材的品質還是不錯的。 -edison.shop.thera_dirt=我自己很喜歡一項小研究,那就是看看這裡的地質情況與家鄉有什麼不同,為此我專門配製出了成分和介元一致的泥土。完全是浪費時間,不過讓人思鄉。 -edison.shop.thera_grass=折騰了好久才種出來和介元草相仿的植物,我總覺得還是故土的草地更綠。 -edison.shop.therastone_brick=呃,這些是我彷制的又老又高又黑又嚇人的那位的塔樓的建材,就是普通的天冶石而已,不過,我弄出來的磨損和裂紋讓它們基本一模一樣。 - -edison.shop.holiday_notice=半價甩賣! \n節日特供 - -edison.shop.greetings_holiday=歡迎光臨我的假日商店!這些商品都是限時出售,抓緊時間買點什麼吧,可別錯過了後悔喲。 - -edison.shop.candy_cane=這些甜食可是假日的一大享受啊。別把它們和真的拐杖搞混了,那些來自遠方的廣袤空域的人們常用它來裝飾我的變異樹種——而且你正巧趕上了樹苗優惠出售! -edison.shop.candy_cane_block=你有沒有想過“哇,要是能把一大堆糖果做成超級大的一塊該多棒啊”?我也沒想過。不過嘛,現在這玩意減價了——為什麼不趁機買下這最後一批貨嘗個鮮呢? -edison.shop.candy_cane_wall=我猜你大概能能用這個······擋住世界上所有不愛甜食的人?我都弄糊塗了,但是這些東西這兩天賣得特別好。坦率地說我也不想搞明白為什麼,賣得好就得了唄。 -edison.shop.mutant_sapling=它們讓我回憶起了一些事情。不好意思,我可不能告訴你這些奇妙的樹苗是怎麼做出來的。我們只是說它是節日中的又一種好東西,是會長出燈泡的哦。 -edison.shop.winter_hat=下面世界的市民們就喜歡這個,就沒有哪怕一個節日的夜晚不會有人戴著它到處亂竄。沒什麼實用價值,不過人們說衣櫃里當然得有這麼件趕時髦的東西。 -edison.shop.eggnog=事情是這樣的:我喜歡蛋奶酒,喝起來味道真不錯——可我要是喝上那麼幾杯,就老是有一群小兔子纏著我!只有我這樣嗎? -edison.shop.yule_log=有沒有​​想過嚐嚐原木的味道?那你運氣真不錯,這可是僅有的一次啃木頭還不覺得難吃的機會! - -##=======================## -########################### -# # -# JOSEDIYA DIALOGUE # -# # -########################### -##=======================## - -josediya.greet.start_not_introduced=你還是來了。我看不出來你有什麼重要的,那就讓我來看看吧。 -josediya.greet.start=你需要什麼? - -josediya.greet.option.what=你是什麼人? -josediya.greet.option.where=你從哪裡來? -josediya.greet.option.take_me=你能帶我去嗎? - -josediya.greet.option.winged_beast=這只有翼的奇獸是······? -josediya.greet.option.fly=你騎他飛翔? -josediya.greet.option.moa=我也能養只恐鳥嗎? - -josediya.greet.option.who=請問你是···? -josediya.greet.option.friends=你是那光頭漢子的朋友? -josediya.greet.option.paying=是他付錢請你來幫我忙的嗎? -josediya.greet.option.white_gold=你看我這樣子,哪像是有···呃,空鍍幣呢。那怎麼辦? - -josediya.greet.option.services=你能提供什麼呢? -josediya.greet.option.home=你是怎麼知道我家在哪裡的? -josediya.greet.option.walk_home=我為什麼不能靠我的雙腿回家? - -josediya.greet.what=哇,你也沒那麼聰明嘛。和你或者那個禿驢一樣,我也是個人。之前沒見過天靈族是吧?是女武神讓我們一族得以延續。 -josediya.greet.where=我來自遙遠南方的維拉德克斯王國,我主要在那裡做活維持生計。 -josediya.greet.take_me=人類,我不覺著你付得起旅費。維拉德克斯離這裡有三星期的航程,而且路線十分危險。我帶不了你。 -josediya.greet.winged_beast=泰瓦爾,我真正的伙伴,一隻強健的恐鳥,就算馱著你我兩人飛翔,也不會流哪怕一滴汗。 -josediya.greet.fly=當然啦!我正是為了這個才馴養他的。馴養恐鳥是我工作的一部分。好好對待它們,它們就會和你很親近。 -josediya.greet.moa=想騎恐鳥,你得讓它信任你。恐鳥蛋可不好弄,野生恐鳥非常注重保護自己的巢窠。 -josediya.greet.who=能帶你翱翔天境的女孩。我叫喬瑟迪婭,航運從業者,那邊的那個禿子叫我來幫你。 -josediya.greet.friends=愛迪生和我相處得很好,我們結識的這幾年來,他一直是個很有幫助的伙伴,但我還是覺得他不太可信,只是共同的利益讓我們共事而已。 -josediya.greet.paying=不,我只是還欠別人的一個情而已,你才是那個該付錢的。對了,我不收你們那裡的錢,只收空鍍幣。 -josediya.greet.white_gold=問題出在你身上。我也得掙錢糊口,所以呢不關心你怎麼掙錢。去農民們那邊打打工或者找點別的什麼活吧。 -josediya.greet.services=你要是已經安好家的話,到隨便哪個哨營來找我,我能把你帶回家。當然,得付夠錢。 -josediya.greet.home=如果你指的是介元的話,我可不是帶你回那的。先在天境定居下來吧。 -josediya.greet.walk_home=想試就試,我不攔著。提醒一句,天境空島間的距離可是很遠的,讓我帶你的話可就又快又省事兒了。是,島間的雲床是挺結實的,夠你在上面蹦噠了,但你不會覺得沒保護措施就在雲彩上走很安全吧。 - -josediya.greet.travel=好的,想去哪? -josediya.greet.option.travel_to=返回住處 -josediya.greet.option.travel_from=返回前哨營地 -josediya.greet.option.travel=出發 -##================================## -#################################### -# # -# MYSTERIOUS FIGURE DIALOGUE # -# # -#################################### -##================================## - -mysterious_figure.greet.start=我看見了一位新來的旅行家!歡迎,歡迎······看看我從遙遠國度進口的稀罕玩意吧————各式各樣值得一嚐的甜點! -mysterious_figure.greet.option.who_are_you=你是誰? -mysterious_figure.greet.option.why_plumproots=你為什麼要在肩膀上扛個腴根? -mysterious_figure.greet.option.sale=我能看看你都賣點什麼嗎? -mysterious_figure.greet.who_are_you=你想知道我的名字?但這是個秘密!所有人都忘記了,甚至連歷史都忘記了它! -mysterious_figure.greet.why_plumproots=你知道這些漂漂亮亮的腴根都能派上多棒的用場嗎?煮著吃,燉著吃,多采點來跟我換糖吃!你的口腔感受過腴根派的絕頂滋味嗎?人生一世,一定要試! -mysterious_figure.greet.sale=多好啊,多好啊,你出腴根我做糖! -mysterious_figure.shop.greetings=腴根,腴根,腴根!腴根才能換我糖,除非貨比長靴棒! -mysterious_figure.shop.candy_corn=猜猜什麼和玉米最配?腴根! ······當然還有糖,我猜的。 -mysterious_figure.shop.cocoatrice=製作時未曾殘害哪怕一隻雞蛇! -mysterious_figure.shop.wrapped_chocolates=這些巧克力是我親手包裝的!如含微量骨骼,無需驚訝,請放心食用。 -mysterious_figure.shop.jelly_plumproot=我不知道你分不分得清楚,但它們可和我最愛的口糧差遠了。 -mysterious_figure.shop.blueberry_lollipop=許多小孩都很喜歡這種小零食,吃了以後沒準會把你變成一顆大藍莓。 -mysterious_figure.shop.orange_lollipop=味道和橙子一模一樣! P.S.:不含任何橙子成分。 -mysterious_figure.shop.icestone_poprocks=並不真的是用冰石做的。 -mysterious_figure.shop.ginger_bread_man=我曾聽說過一位薑餅糕點師的故事。據傳說,在那個恐怖月份的前夜,他們吃下人形的薑餅後,就變成了他們剛吃下的東西。覺不覺得自己運氣真好? -mysterious_figure.shop.candy_cane=試著把這個當手杖用用,來呀,諒你也不敢。 \ No newline at end of file diff --git a/src/main/resources/assets/aether/loot_tables/entities/aechor_plant.json b/src/main/resources/assets/aether/loot_tables/entities/aechor_plant.json deleted file mode 100644 index 27520fe2ec..0000000000 --- a/src/main/resources/assets/aether/loot_tables/entities/aechor_plant.json +++ /dev/null @@ -1,48 +0,0 @@ -{ - "pools": [ - { - "rolls": 1, - "name": "sprout", - "entries": [ - { - "type": "item", - "name": "aether:aether_flower", - "weight": 1, - "functions": [ - { - "function": "minecraft:set_data", - "data": 3 - }, - { - "function": "set_count", - "count": { - "min": 1, - "max": 2 - } - } - ] - } - ] - }, - { - "rolls": 1, - "name": "petal", - "entries": [ - { - "type": "item", - "name": "aether:aechor_petal", - "weight": 1, - "functions": [ - { - "function": "set_count", - "count": { - "min": 3, - "max": 5 - } - } - ] - } - ] - } - ] -} diff --git a/src/main/resources/assets/aether/loot_tables/entities/aerbunny.json b/src/main/resources/assets/aether/loot_tables/entities/aerbunny.json deleted file mode 100644 index 346b910f87..0000000000 --- a/src/main/resources/assets/aether/loot_tables/entities/aerbunny.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "pools": [ - { - "rolls": 1, - "name": "string", - "entries": [ - { - "type": "item", - "name": "aether:cloudtwine", - "weight": 1, - "functions": [ - { - "function": "set_count", - "count": { - "min": 1, - "max": 3 - } - } - ] - } - ] - } - ] -} diff --git a/src/main/resources/assets/aether/loot_tables/entities/burrukai.json b/src/main/resources/assets/aether/loot_tables/entities/burrukai.json deleted file mode 100644 index 2475ec409d..0000000000 --- a/src/main/resources/assets/aether/loot_tables/entities/burrukai.json +++ /dev/null @@ -1,63 +0,0 @@ -{ - "pools": [ - { - "rolls": 1, - "name": "meat", - "entries": [ - { - "type": "item", - "name": "aether:burrukai_rib_cut", - "weight": 1, - "functions": [ - { - "function": "set_count", - "count": { - "min": 1, - "max": 2 - } - }, - { - "function": "furnace_smelt", - "conditions": [ - { - "condition": "entity_properties", - "entity": "this", - "properties": { - "on_fire": true - } - } - ] - }, - { - "function": "looting_enchant", - "count": { - "min": 0, - "max": 1 - } - } - ] - } - ] - }, - { - "rolls": 1, - "name": "hide", - "entries": [ - { - "type": "item", - "name": "aether:burrukai_pelt", - "weight": 1, - "functions": [ - { - "function": "set_count", - "count": { - "min": 1, - "max": 2 - } - } - ] - } - ] - } - ] -} diff --git a/src/main/resources/assets/aether/loot_tables/entities/carrion_sprout.json b/src/main/resources/assets/aether/loot_tables/entities/carrion_sprout.json deleted file mode 100644 index ea02da9e25..0000000000 --- a/src/main/resources/assets/aether/loot_tables/entities/carrion_sprout.json +++ /dev/null @@ -1,31 +0,0 @@ -{ - "pools": [ - { - "rolls": 1, - "name": "berries", - "entries": [ - { - "type": "item", - "name": "aether:wyndberry", - "weight": 1, - "functions": [ - { - "function": "set_count", - "count": { - "min": 1, - "max": 3 - } - }, - { - "function": "looting_enchant", - "count": { - "min": 0, - "max": 1 - } - } - ] - } - ] - } - ] -} diff --git a/src/main/resources/assets/aether/loot_tables/entities/cockatrice.json b/src/main/resources/assets/aether/loot_tables/entities/cockatrice.json deleted file mode 100644 index 30e54230f7..0000000000 --- a/src/main/resources/assets/aether/loot_tables/entities/cockatrice.json +++ /dev/null @@ -1,31 +0,0 @@ -{ - "pools": [ - { - "rolls": 1, - "name": "feathers", - "entries": [ - { - "type": "item", - "name": "aether:cockatrice_feather", - "weight": 1, - "functions": [ - { - "function": "set_count", - "count": { - "min": 0, - "max": 2 - } - }, - { - "function": "looting_enchant", - "count": { - "min": 0, - "max": 1 - } - } - ] - } - ] - } - ] -} diff --git a/src/main/resources/assets/aether/loot_tables/entities/glactrix.json b/src/main/resources/assets/aether/loot_tables/entities/glactrix.json deleted file mode 100644 index 7c9be4ae2c..0000000000 --- a/src/main/resources/assets/aether/loot_tables/entities/glactrix.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "pools": [ - { - "rolls": 1, - "name": "hardened_ice", - "entries": [ - { - "type": "item", - "name": "aether:icestone", - "weight": 1, - "functions": [ - { - "function": "set_count", - "count": { - "min": 1, - "max": 2 - } - } - ] - } - ] - } - ] -} diff --git a/src/main/resources/assets/aether/loot_tables/entities/kirrid/kirrid.json b/src/main/resources/assets/aether/loot_tables/entities/kirrid/kirrid.json deleted file mode 100644 index 67447c821b..0000000000 --- a/src/main/resources/assets/aether/loot_tables/entities/kirrid/kirrid.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "pools": [ - { - "rolls": 1, - "name": "wool", - "entries": [ - { - "type": "item", - "name": "aether:cloudwool_block", - "weight": 1 - } - ] - }, - { - "rolls": 1, - "name": "parent", - "entries": [ - { - "type": "loot_table", - "name": "aether:entities/kirrid/kirrid_sheared", - "weight": 1 - } - ] - } - ] -} diff --git a/src/main/resources/assets/aether/loot_tables/entities/kirrid/kirrid_sheared.json b/src/main/resources/assets/aether/loot_tables/entities/kirrid/kirrid_sheared.json deleted file mode 100644 index e4882934b4..0000000000 --- a/src/main/resources/assets/aether/loot_tables/entities/kirrid/kirrid_sheared.json +++ /dev/null @@ -1,43 +0,0 @@ -{ - "pools": [ - { - "rolls": 1, - "name": "meat", - "entries": [ - { - "type": "item", - "name": "aether:kirrid_loin", - "weight": 1, - "functions": [ - { - "function": "set_count", - "count": { - "min": 1, - "max": 2 - } - }, - { - "function": "furnace_smelt", - "conditions": [ - { - "condition": "entity_properties", - "entity": "this", - "properties": { - "on_fire": true - } - } - ] - }, - { - "function": "looting_enchant", - "count": { - "min": 0, - "max": 1 - } - } - ] - } - ] - } - ] -} diff --git a/src/main/resources/assets/aether/loot_tables/entities/swet/swet.json b/src/main/resources/assets/aether/loot_tables/entities/swet/swet.json deleted file mode 100644 index cd1acd8291..0000000000 --- a/src/main/resources/assets/aether/loot_tables/entities/swet/swet.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "pools": [ - { - "rolls": 1, - "name": "sugar", - "entries": [ - { - "type": "item", - "name": "aether:swet_sugar", - "weight": 1, - "functions": [ - { - "function": "set_count", - "count": { - "min": 0, - "max": 1 - } - } - ] - - } - ] - } - ] -} diff --git a/src/main/resources/assets/aether/loot_tables/entities/swet/swet_blue.json b/src/main/resources/assets/aether/loot_tables/entities/swet/swet_blue.json deleted file mode 100644 index 18ae6429d9..0000000000 --- a/src/main/resources/assets/aether/loot_tables/entities/swet/swet_blue.json +++ /dev/null @@ -1,39 +0,0 @@ -{ - "pools": [ - { - "rolls": 1, - "name": "jelly", - "entries": [ - { - "type": "item", - "name": "aether:swet_gel", - "weight": 1, - "functions": [ - { - "function": "minecraft:set_data", - "data": 0 - }, - { - "function": "set_count", - "count": { - "min": 1, - "max": 2 - } - } - ] - } - ] - }, - { - "rolls": 1, - "name": "parent", - "entries": [ - { - "type": "loot_table", - "name": "aether:entities/swet/swet", - "weight": 1 - } - ] - } - ] -} diff --git a/src/main/resources/assets/aether/loot_tables/entities/swet/swet_green.json b/src/main/resources/assets/aether/loot_tables/entities/swet/swet_green.json deleted file mode 100644 index 19aa7085ea..0000000000 --- a/src/main/resources/assets/aether/loot_tables/entities/swet/swet_green.json +++ /dev/null @@ -1,39 +0,0 @@ -{ - "pools": [ - { - "rolls": 1, - "name": "jelly", - "entries": [ - { - "type": "item", - "name": "aether:swet_gel", - "weight": 1, - "functions": [ - { - "function": "minecraft:set_data", - "data": 1 - }, - { - "function": "set_count", - "count": { - "min": 1, - "max": 2 - } - } - ] - } - ] - }, - { - "rolls": 1, - "name": "parent", - "entries": [ - { - "type": "loot_table", - "name": "aether:entities/swet/swet", - "weight": 1 - } - ] - } - ] -} diff --git a/src/main/resources/assets/aether/loot_tables/entities/swet/swet_purple.json b/src/main/resources/assets/aether/loot_tables/entities/swet/swet_purple.json deleted file mode 100644 index 35c54186db..0000000000 --- a/src/main/resources/assets/aether/loot_tables/entities/swet/swet_purple.json +++ /dev/null @@ -1,39 +0,0 @@ -{ - "pools": [ - { - "rolls": 1, - "name": "jelly", - "entries": [ - { - "type": "item", - "name": "aether:swet_gel", - "weight": 1, - "functions": [ - { - "function": "minecraft:set_data", - "data": 2 - }, - { - "function": "set_count", - "count": { - "min": 1, - "max": 2 - } - } - ] - } - ] - }, - { - "rolls": 1, - "name": "parent", - "entries": [ - { - "type": "loot_table", - "name": "aether:entities/swet/swet", - "weight": 1 - } - ] - } - ] -} diff --git a/src/main/resources/assets/aether/loot_tables/entities/taegore.json b/src/main/resources/assets/aether/loot_tables/entities/taegore.json deleted file mode 100644 index 98bb0ed55d..0000000000 --- a/src/main/resources/assets/aether/loot_tables/entities/taegore.json +++ /dev/null @@ -1,63 +0,0 @@ -{ - "pools": [ - { - "rolls": 1, - "name": "raw_taegore_meat", - "entries": [ - { - "type": "item", - "name": "aether:raw_taegore_meat", - "weight": 1, - "functions": [ - { - "function": "set_count", - "count": { - "min": 1, - "max": 2 - } - }, - { - "function": "furnace_smelt", - "conditions": [ - { - "condition": "entity_properties", - "entity": "this", - "properties": { - "on_fire": true - } - } - ] - }, - { - "function": "looting_enchant", - "count": { - "min": 0, - "max": 1 - } - } - ] - } - ] - }, - { - "rolls": 1, - "name": "hide", - "entries": [ - { - "type": "item", - "name": "aether:taegore_hide", - "weight": 1, - "functions": [ - { - "function": "set_count", - "count": { - "min": 1, - "max": 2 - } - } - ] - } - ] - } - ] -} diff --git a/src/main/resources/assets/aether/loot_tables/entities/zephyr.json b/src/main/resources/assets/aether/loot_tables/entities/zephyr.json deleted file mode 100644 index 346b910f87..0000000000 --- a/src/main/resources/assets/aether/loot_tables/entities/zephyr.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "pools": [ - { - "rolls": 1, - "name": "string", - "entries": [ - { - "type": "item", - "name": "aether:cloudtwine", - "weight": 1, - "functions": [ - { - "function": "set_count", - "count": { - "min": 1, - "max": 3 - } - } - ] - } - ] - } - ] -} diff --git a/src/main/resources/assets/aether/models/block/aercloud/blue_aercloud.json b/src/main/resources/assets/aether/models/block/aercloud/blue_aercloud.json deleted file mode 100644 index 4ad3098c02..0000000000 --- a/src/main/resources/assets/aether/models/block/aercloud/blue_aercloud.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/cube_all", - "textures": { - "all": "aether:blocks/aercloud/blue_aercloud" - } -} diff --git a/src/main/resources/assets/aether/models/block/aercloud/cold_aercloud.json b/src/main/resources/assets/aether/models/block/aercloud/cold_aercloud.json deleted file mode 100644 index 3e7df7f6ef..0000000000 --- a/src/main/resources/assets/aether/models/block/aercloud/cold_aercloud.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/cube_all", - "textures": { - "all": "aether:blocks/aercloud/cold_aercloud" - } -} diff --git a/src/main/resources/assets/aether/models/block/aercloud/golden_aercloud.json b/src/main/resources/assets/aether/models/block/aercloud/golden_aercloud.json deleted file mode 100644 index 98a9e05cb9..0000000000 --- a/src/main/resources/assets/aether/models/block/aercloud/golden_aercloud.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/cube_all", - "textures": { - "all": "aether:blocks/aercloud/golden_aercloud" - } -} diff --git a/src/main/resources/assets/aether/models/block/aercloud/green_aercloud.json b/src/main/resources/assets/aether/models/block/aercloud/green_aercloud.json deleted file mode 100644 index fb54e43f40..0000000000 --- a/src/main/resources/assets/aether/models/block/aercloud/green_aercloud.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/cube_all", - "textures": { - "all": "aether:blocks/aercloud/green_aercloud" - } -} diff --git a/src/main/resources/assets/aether/models/block/aercloud/purple_aercloud.json b/src/main/resources/assets/aether/models/block/aercloud/purple_aercloud.json deleted file mode 100644 index 7b8c31ddc4..0000000000 --- a/src/main/resources/assets/aether/models/block/aercloud/purple_aercloud.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "parent": "block/cube", - "textures": { - "down": "aether:blocks/aercloud/purple_aercloud_down", - "up": "aether:blocks/aercloud/purple_aercloud_up", - "north": "aether:blocks/aercloud/purple_aercloud_front", - "east": "aether:blocks/aercloud/purple_aercloud_right", - "south": "aether:blocks/aercloud/purple_aercloud_back", - "west": "aether:blocks/aercloud/purple_aercloud_left", - "particle": "aether:blocks/aercloud/purple_aercloud_down" - } -} diff --git a/src/main/resources/assets/aether/models/block/aercloud/storm_aercloud.json b/src/main/resources/assets/aether/models/block/aercloud/storm_aercloud.json deleted file mode 100644 index 3b33ebf94b..0000000000 --- a/src/main/resources/assets/aether/models/block/aercloud/storm_aercloud.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/cube_all", - "textures": { - "all": "aether:blocks/aercloud/storm_aercloud" - } -} diff --git a/src/main/resources/assets/aether/models/block/aether_dirt/coarse_dirt.json b/src/main/resources/assets/aether/models/block/aether_dirt/coarse_dirt.json deleted file mode 100644 index 662a828059..0000000000 --- a/src/main/resources/assets/aether/models/block/aether_dirt/coarse_dirt.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/cube_all", - "textures": { - "all": "aether:blocks/coarse_aether_dirt" - } -} diff --git a/src/main/resources/assets/aether/models/block/aether_dirt/dirt.json b/src/main/resources/assets/aether/models/block/aether_dirt/dirt.json deleted file mode 100644 index f827bd44f7..0000000000 --- a/src/main/resources/assets/aether/models/block/aether_dirt/dirt.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/cube_all", - "textures": { - "all": "aether:blocks/aether_dirt" - } -} diff --git a/src/main/resources/assets/aether/models/block/aether_portal/aether_portal_ew.json b/src/main/resources/assets/aether/models/block/aether_portal/aether_portal_ew.json deleted file mode 100644 index 2ccd9311e6..0000000000 --- a/src/main/resources/assets/aether/models/block/aether_portal/aether_portal_ew.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "parent": "block/cube_all", - "textures": { - "particle": "aether:blocks/aether_portal", - "portal": "aether:blocks/aether_portal" - }, - "elements": [ - { - "from": [ 6, 0, 0 ], - "to": [ 10, 16, 16 ], - "faces": { - "east": { "uv": [ 0, 0, 16, 16 ], "texture": "#portal" }, - "west": { "uv": [ 0, 0, 16, 16 ], "texture": "#portal" } - } - } - ] -} diff --git a/src/main/resources/assets/aether/models/block/aether_portal/aether_portal_ns.json b/src/main/resources/assets/aether/models/block/aether_portal/aether_portal_ns.json deleted file mode 100644 index ca6912fe10..0000000000 --- a/src/main/resources/assets/aether/models/block/aether_portal/aether_portal_ns.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "parent": "block/cube_all", - "textures": { - "particle": "aether:blocks/aether_portal", - "portal": "aether:blocks/aether_portal" - }, - "elements": [ - { - "from": [ 0, 0, 6 ], - "to": [ 16, 16, 10 ], - "faces": { - "north": { "uv": [ 0, 0, 16, 16 ], "texture": "#portal" }, - "south": { "uv": [ 0, 0, 16, 16 ], "texture": "#portal" } - } - } - ] -} diff --git a/src/main/resources/assets/aether/models/block/aether_teleporter.json b/src/main/resources/assets/aether/models/block/aether_teleporter.json deleted file mode 100644 index 958f55c626..0000000000 --- a/src/main/resources/assets/aether/models/block/aether_teleporter.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "aether:block/tesr", - "textures": { - "particle": "aether:blocks/holystone/holystone" - } -} diff --git a/src/main/resources/assets/aether/models/block/aether_wall/agiosite_brick_wall_post.json b/src/main/resources/assets/aether/models/block/aether_wall/agiosite_brick_wall_post.json deleted file mode 100644 index 87d2e62296..0000000000 --- a/src/main/resources/assets/aether/models/block/aether_wall/agiosite_brick_wall_post.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/wall_post", - "textures": { - "wall": "aether:blocks/agiosite_brick" - } -} diff --git a/src/main/resources/assets/aether/models/block/aether_wall/agiosite_brick_wall_side.json b/src/main/resources/assets/aether/models/block/aether_wall/agiosite_brick_wall_side.json deleted file mode 100644 index 2ee4781f3b..0000000000 --- a/src/main/resources/assets/aether/models/block/aether_wall/agiosite_brick_wall_side.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/wall_side", - "textures": { - "wall": "aether:blocks/agiosite_brick" - } -} diff --git a/src/main/resources/assets/aether/models/block/aether_wall/agiosite_wall_post.json b/src/main/resources/assets/aether/models/block/aether_wall/agiosite_wall_post.json deleted file mode 100644 index 58653abc3d..0000000000 --- a/src/main/resources/assets/aether/models/block/aether_wall/agiosite_wall_post.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/wall_post", - "textures": { - "wall": "aether:blocks/agiosite" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/block/aether_wall/agiosite_wall_side.json b/src/main/resources/assets/aether/models/block/aether_wall/agiosite_wall_side.json deleted file mode 100644 index a22e8f0c53..0000000000 --- a/src/main/resources/assets/aether/models/block/aether_wall/agiosite_wall_side.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/wall_side", - "textures": { - "wall": "aether:blocks/agiosite" - } -} diff --git a/src/main/resources/assets/aether/models/block/aether_wall/candy_cane_wall_post.json b/src/main/resources/assets/aether/models/block/aether_wall/candy_cane_wall_post.json deleted file mode 100644 index dabf6de5c4..0000000000 --- a/src/main/resources/assets/aether/models/block/aether_wall/candy_cane_wall_post.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "aether:block/aether_wall/special_models/wall_special_post", - "textures": { - "wall": "aether:blocks/candy_cane_side", - "bottom": "aether:blocks/candy_cane_side", - "top": "aether:blocks/candy_cane_top" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/block/aether_wall/candy_cane_wall_side.json b/src/main/resources/assets/aether/models/block/aether_wall/candy_cane_wall_side.json deleted file mode 100644 index 0e9d09cb8a..0000000000 --- a/src/main/resources/assets/aether/models/block/aether_wall/candy_cane_wall_side.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/wall_side", - "textures": { - "wall": "aether:blocks/candy_cane_side" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/block/aether_wall/faded_holystone_brick_wall_post.json b/src/main/resources/assets/aether/models/block/aether_wall/faded_holystone_brick_wall_post.json deleted file mode 100644 index ad945eeeff..0000000000 --- a/src/main/resources/assets/aether/models/block/aether_wall/faded_holystone_brick_wall_post.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/wall_post", - "textures": { - "wall": "aether:blocks/faded_holystone_brick" - } -} diff --git a/src/main/resources/assets/aether/models/block/aether_wall/faded_holystone_brick_wall_side.json b/src/main/resources/assets/aether/models/block/aether_wall/faded_holystone_brick_wall_side.json deleted file mode 100644 index c7293a9ad1..0000000000 --- a/src/main/resources/assets/aether/models/block/aether_wall/faded_holystone_brick_wall_side.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/wall_side", - "textures": { - "wall": "aether:blocks/faded_holystone_brick" - } -} diff --git a/src/main/resources/assets/aether/models/block/aether_wall/greatroot_log_wall_post.json b/src/main/resources/assets/aether/models/block/aether_wall/greatroot_log_wall_post.json deleted file mode 100644 index 1f62a2b085..0000000000 --- a/src/main/resources/assets/aether/models/block/aether_wall/greatroot_log_wall_post.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "aether:block/aether_wall/special_models/wall_special_post", - "textures": { - "wall": "aether:blocks/logs/greatroot_log_side", - "bottom": "aether:blocks/logs/greatroot_log_side", - "top": "aether:blocks/logs/greatroot_log_top" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/block/aether_wall/greatroot_log_wall_side.json b/src/main/resources/assets/aether/models/block/aether_wall/greatroot_log_wall_side.json deleted file mode 100644 index 8831df54de..0000000000 --- a/src/main/resources/assets/aether/models/block/aether_wall/greatroot_log_wall_side.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/wall_side", - "textures": { - "wall": "aether:blocks/logs/greatroot_log_side" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/block/aether_wall/hellfirestone_brick_wall_post.json b/src/main/resources/assets/aether/models/block/aether_wall/hellfirestone_brick_wall_post.json deleted file mode 100644 index 8d4793f9ab..0000000000 --- a/src/main/resources/assets/aether/models/block/aether_wall/hellfirestone_brick_wall_post.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/wall_post", - "textures": { - "wall": "aether:blocks/hellfirestone_bricks/hellfirestone_brick" - } -} diff --git a/src/main/resources/assets/aether/models/block/aether_wall/hellfirestone_brick_wall_side.json b/src/main/resources/assets/aether/models/block/aether_wall/hellfirestone_brick_wall_side.json deleted file mode 100644 index ab4df4bf38..0000000000 --- a/src/main/resources/assets/aether/models/block/aether_wall/hellfirestone_brick_wall_side.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/wall_side", - "textures": { - "wall": "aether:blocks/hellfirestone_bricks/hellfirestone_brick" - } -} diff --git a/src/main/resources/assets/aether/models/block/aether_wall/holystone_brick_wall_post.json b/src/main/resources/assets/aether/models/block/aether_wall/holystone_brick_wall_post.json deleted file mode 100644 index 41a89dfcd4..0000000000 --- a/src/main/resources/assets/aether/models/block/aether_wall/holystone_brick_wall_post.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/wall_post", - "textures": { - "wall": "aether:blocks/holystone_brick" - } -} diff --git a/src/main/resources/assets/aether/models/block/aether_wall/holystone_brick_wall_side.json b/src/main/resources/assets/aether/models/block/aether_wall/holystone_brick_wall_side.json deleted file mode 100644 index dcaa0a8cdd..0000000000 --- a/src/main/resources/assets/aether/models/block/aether_wall/holystone_brick_wall_side.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/wall_side", - "textures": { - "wall": "aether:blocks/holystone_brick" - } -} diff --git a/src/main/resources/assets/aether/models/block/aether_wall/holystone_wall_post.json b/src/main/resources/assets/aether/models/block/aether_wall/holystone_wall_post.json deleted file mode 100644 index e53562b1d6..0000000000 --- a/src/main/resources/assets/aether/models/block/aether_wall/holystone_wall_post.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/wall_post", - "textures": { - "wall": "aether:blocks/holystone/holystone" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/block/aether_wall/holystone_wall_side.json b/src/main/resources/assets/aether/models/block/aether_wall/holystone_wall_side.json deleted file mode 100644 index bcf417b0eb..0000000000 --- a/src/main/resources/assets/aether/models/block/aether_wall/holystone_wall_side.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/wall_side", - "textures": { - "wall": "aether:blocks/holystone/holystone" - } -} diff --git a/src/main/resources/assets/aether/models/block/aether_wall/icestone_wall_post.json b/src/main/resources/assets/aether/models/block/aether_wall/icestone_wall_post.json deleted file mode 100644 index 35d8477ca6..0000000000 --- a/src/main/resources/assets/aether/models/block/aether_wall/icestone_wall_post.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/wall_post", - "textures": { - "wall": "aether:blocks/icestone_bricks" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/block/aether_wall/icestone_wall_side.json b/src/main/resources/assets/aether/models/block/aether_wall/icestone_wall_side.json deleted file mode 100644 index 1387cecb3a..0000000000 --- a/src/main/resources/assets/aether/models/block/aether_wall/icestone_wall_side.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/wall_side", - "textures": { - "wall": "aether:blocks/icestone_bricks" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/block/aether_wall/mossy_holystone_wall_post.json b/src/main/resources/assets/aether/models/block/aether_wall/mossy_holystone_wall_post.json deleted file mode 100644 index a56bba5296..0000000000 --- a/src/main/resources/assets/aether/models/block/aether_wall/mossy_holystone_wall_post.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/wall_post", - "textures": { - "wall": "aether:blocks/holystone/mossy_holystone" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/block/aether_wall/mossy_holystone_wall_side.json b/src/main/resources/assets/aether/models/block/aether_wall/mossy_holystone_wall_side.json deleted file mode 100644 index 7112e560ec..0000000000 --- a/src/main/resources/assets/aether/models/block/aether_wall/mossy_holystone_wall_side.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/wall_side", - "textures": { - "wall": "aether:blocks/holystone/mossy_holystone" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/block/aether_wall/scatterglass_wall_post.json b/src/main/resources/assets/aether/models/block/aether_wall/scatterglass_wall_post.json deleted file mode 100644 index 74fb020ff2..0000000000 --- a/src/main/resources/assets/aether/models/block/aether_wall/scatterglass_wall_post.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/wall_post", - "textures": { - "wall": "aether:blocks/scatterglass" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/block/aether_wall/scatterglass_wall_side.json b/src/main/resources/assets/aether/models/block/aether_wall/scatterglass_wall_side.json deleted file mode 100644 index 5af2832511..0000000000 --- a/src/main/resources/assets/aether/models/block/aether_wall/scatterglass_wall_side.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/wall_side", - "textures": { - "wall": "aether:blocks/scatterglass" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/block/aether_wall/sentrystone_brick_wall_post.json b/src/main/resources/assets/aether/models/block/aether_wall/sentrystone_brick_wall_post.json deleted file mode 100644 index bf589ca8ff..0000000000 --- a/src/main/resources/assets/aether/models/block/aether_wall/sentrystone_brick_wall_post.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/wall_post", - "textures": { - "wall": "aether:blocks/sentrystone_bricks/sentrystone_brick" - } -} diff --git a/src/main/resources/assets/aether/models/block/aether_wall/sentrystone_brick_wall_side.json b/src/main/resources/assets/aether/models/block/aether_wall/sentrystone_brick_wall_side.json deleted file mode 100644 index 1cb30fc9f1..0000000000 --- a/src/main/resources/assets/aether/models/block/aether_wall/sentrystone_brick_wall_side.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/wall_side", - "textures": { - "wall": "aether:blocks/sentrystone_bricks/sentrystone_brick" - } -} diff --git a/src/main/resources/assets/aether/models/block/aether_wall/skyroot_log_wall_post.json b/src/main/resources/assets/aether/models/block/aether_wall/skyroot_log_wall_post.json deleted file mode 100644 index 135d6ac60e..0000000000 --- a/src/main/resources/assets/aether/models/block/aether_wall/skyroot_log_wall_post.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "aether:block/aether_wall/special_models/wall_special_post", - "textures": { - "wall": "aether:blocks/logs/skyroot_log_side", - "bottom": "aether:blocks/logs/skyroot_log_side", - "top": "aether:blocks/logs/skyroot_log_top" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/block/aether_wall/skyroot_log_wall_side.json b/src/main/resources/assets/aether/models/block/aether_wall/skyroot_log_wall_side.json deleted file mode 100644 index 80847ace38..0000000000 --- a/src/main/resources/assets/aether/models/block/aether_wall/skyroot_log_wall_side.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/wall_side", - "textures": { - "wall": "aether:blocks/logs/skyroot_log_side" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/block/aether_wall/special_models/wall_inventory_special_top.json b/src/main/resources/assets/aether/models/block/aether_wall/special_models/wall_inventory_special_top.json deleted file mode 100644 index c02c50ace6..0000000000 --- a/src/main/resources/assets/aether/models/block/aether_wall/special_models/wall_inventory_special_top.json +++ /dev/null @@ -1,48 +0,0 @@ -{ - "parent": "block/block", - "display": { - "gui": { - "rotation": [ 30, 135, 0 ], - "translation": [ 0, 0, 0 ], - "scale": [ 0.625, 0.625, 0.625 ] - }, - "fixed": { - "rotation": [ 0, 90, 0 ], - "translation": [ 0, 0, 0 ], - "scale": [ 0.5, 0.5, 0.5 ] - } - }, - "ambientocclusion": false, - "textures": { - "particle": "#wall", - "top": "#top" - }, - "elements": [ - { - "from": [ 4, 0, 4 ], - "to": [ 12, 16, 12 ], - "faces": { - "down": { "uv": [ 4, 4, 12, 12 ], "texture": "#top", "cullface": "down" }, - "up": { "uv": [ 4, 4, 12, 12 ], "texture": "#top" }, - "north": { "uv": [ 4, 0, 12, 16 ], "texture": "#wall" }, - "south": { "uv": [ 4, 0, 12, 16 ], "texture": "#wall" }, - "west": { "uv": [ 4, 0, 12, 16 ], "texture": "#wall" }, - "east": { "uv": [ 4, 0, 12, 16 ], "texture": "#wall" } - }, - "__comment": "Center post" - }, - { - "from": [ 5, 0, 0 ], - "to": [ 11, 13, 16 ], - "faces": { - "down": { "uv": [ 5, 0, 11, 16 ], "texture": "#wall", "cullface": "down" }, - "up": { "uv": [ 5, 0, 11, 16 ], "texture": "#wall" }, - "north": { "uv": [ 5, 3, 11, 16 ], "texture": "#wall", "cullface": "north" }, - "south": { "uv": [ 5, 3, 11, 16 ], "texture": "#wall", "cullface": "south" }, - "west": { "uv": [ 0, 3, 16, 16 ], "texture": "#wall" }, - "east": { "uv": [ 0, 3, 16, 16 ], "texture": "#wall" } - }, - "__comment": "Full wall" - } - ] -} diff --git a/src/main/resources/assets/aether/models/block/aether_wall/special_models/wall_special_post.json b/src/main/resources/assets/aether/models/block/aether_wall/special_models/wall_special_post.json deleted file mode 100644 index b2ff2b741a..0000000000 --- a/src/main/resources/assets/aether/models/block/aether_wall/special_models/wall_special_post.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "textures": { - "particle": "#wall", - "top": "#top", - "bottom": "#bottom" - }, - "elements": [ - { - "from": [ 4, 0, 4 ], - "to": [ 12, 16, 12 ], - "faces": { - "down": { "uv": [ 4, 4, 12, 12 ], "texture": "#bottom", "cullface": "down" }, - "up": { "uv": [ 4, 4, 12, 12 ], "texture": "#top", "cullface": "up" }, - "north": { "uv": [ 4, 0, 12, 16 ], "texture": "#wall" }, - "south": { "uv": [ 4, 0, 12, 16 ], "texture": "#wall" }, - "west": { "uv": [ 4, 0, 12, 16 ], "texture": "#wall" }, - "east": { "uv": [ 4, 0, 12, 16 ], "texture": "#wall" } - }, - "__comment": "Center post" - } - ] -} diff --git a/src/main/resources/assets/aether/models/block/aether_wall/therastone_brick_wall_post.json b/src/main/resources/assets/aether/models/block/aether_wall/therastone_brick_wall_post.json deleted file mode 100644 index 2d0522c156..0000000000 --- a/src/main/resources/assets/aether/models/block/aether_wall/therastone_brick_wall_post.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/wall_post", - "textures": { - "wall": "aether:blocks/therastone_bricks/therastone_bricks" - } -} diff --git a/src/main/resources/assets/aether/models/block/aether_wall/therastone_brick_wall_side.json b/src/main/resources/assets/aether/models/block/aether_wall/therastone_brick_wall_side.json deleted file mode 100644 index f6d2c7a4be..0000000000 --- a/src/main/resources/assets/aether/models/block/aether_wall/therastone_brick_wall_side.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/wall_side", - "textures": { - "wall": "aether:blocks/therastone_bricks/therastone_bricks" - } -} diff --git a/src/main/resources/assets/aether/models/block/aether_wall/therawood_log_wall_post.json b/src/main/resources/assets/aether/models/block/aether_wall/therawood_log_wall_post.json deleted file mode 100644 index 99f916f642..0000000000 --- a/src/main/resources/assets/aether/models/block/aether_wall/therawood_log_wall_post.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "aether:block/aether_wall/special_models/wall_special_post", - "textures": { - "wall": "aether:blocks/logs/therawood_log_side", - "bottom": "aether:blocks/logs/therawood_log_side", - "top": "aether:blocks/logs/therawood_log_top" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/block/aether_wall/therawood_log_wall_side.json b/src/main/resources/assets/aether/models/block/aether_wall/therawood_log_wall_side.json deleted file mode 100644 index c68984781d..0000000000 --- a/src/main/resources/assets/aether/models/block/aether_wall/therawood_log_wall_side.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/wall_side", - "textures": { - "wall": "aether:blocks/logs/therawood_log_side" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/block/aether_wall/wisproot_log_wall_post.json b/src/main/resources/assets/aether/models/block/aether_wall/wisproot_log_wall_post.json deleted file mode 100644 index 38e7a6573c..0000000000 --- a/src/main/resources/assets/aether/models/block/aether_wall/wisproot_log_wall_post.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "aether:block/aether_wall/special_models/wall_special_post", - "textures": { - "wall": "aether:blocks/logs/wisproot_log_side", - "bottom": "aether:blocks/logs/wisproot_log_side", - "top": "aether:blocks/logs/wisproot_log_top" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/block/aether_wall/wisproot_log_wall_side.json b/src/main/resources/assets/aether/models/block/aether_wall/wisproot_log_wall_side.json deleted file mode 100644 index adea3fd393..0000000000 --- a/src/main/resources/assets/aether/models/block/aether_wall/wisproot_log_wall_side.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/wall_side", - "textures": { - "wall": "aether:blocks/logs/wisproot_log_side" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/block/agiosite.json b/src/main/resources/assets/aether/models/block/agiosite.json deleted file mode 100644 index 8180036599..0000000000 --- a/src/main/resources/assets/aether/models/block/agiosite.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/cube_all", - "textures": { - "all": "aether:blocks/agiosite" - } -} diff --git a/src/main/resources/assets/aether/models/block/agiosite_bricks/base_bricks.json b/src/main/resources/assets/aether/models/block/agiosite_bricks/base_bricks.json deleted file mode 100644 index bd7fdf2f59..0000000000 --- a/src/main/resources/assets/aether/models/block/agiosite_bricks/base_bricks.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "parent": "block/cube_column", - "textures": { - "end": "aether:blocks/agiosite_bricks/agiosite_base_top", - "side": "aether:blocks/agiosite_bricks/agiosite_base_bricks" - } -} diff --git a/src/main/resources/assets/aether/models/block/agiosite_bricks/base_pillar.json b/src/main/resources/assets/aether/models/block/agiosite_bricks/base_pillar.json deleted file mode 100644 index e92c404ec9..0000000000 --- a/src/main/resources/assets/aether/models/block/agiosite_bricks/base_pillar.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "parent": "block/cube_column", - "textures": { - "end": "aether:blocks/agiosite_bricks/agiosite_base_top", - "side": "aether:blocks/agiosite_bricks/agiosite_base_pillar" - } -} diff --git a/src/main/resources/assets/aether/models/block/agiosite_bricks/capstone_bricks.json b/src/main/resources/assets/aether/models/block/agiosite_bricks/capstone_bricks.json deleted file mode 100644 index ae9398828b..0000000000 --- a/src/main/resources/assets/aether/models/block/agiosite_bricks/capstone_bricks.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "parent": "block/cube_column", - "textures": { - "end": "aether:blocks/agiosite_bricks/agiosite_base_top", - "side": "aether:blocks/agiosite_bricks/agiosite_capstone_bricks" - } -} diff --git a/src/main/resources/assets/aether/models/block/agiosite_bricks/capstone_pillar.json b/src/main/resources/assets/aether/models/block/agiosite_bricks/capstone_pillar.json deleted file mode 100644 index 52bec520f0..0000000000 --- a/src/main/resources/assets/aether/models/block/agiosite_bricks/capstone_pillar.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "parent": "block/cube_column", - "textures": { - "end": "aether:blocks/agiosite_bricks/agiosite_base_top", - "side": "aether:blocks/agiosite_bricks/agiosite_capstone_pillar" - } -} diff --git a/src/main/resources/assets/aether/models/block/agiosite_bricks/flagstones.json b/src/main/resources/assets/aether/models/block/agiosite_bricks/flagstones.json deleted file mode 100644 index 839e7defe4..0000000000 --- a/src/main/resources/assets/aether/models/block/agiosite_bricks/flagstones.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "parent": "block/cube_column", - "textures": { - "end": "aether:blocks/agiosite_bricks/agiosite_flagstones", - "side": "aether:blocks/agiosite_bricks/agiosite_flagstones" - } -} diff --git a/src/main/resources/assets/aether/models/block/agiosite_bricks/keystone.json b/src/main/resources/assets/aether/models/block/agiosite_bricks/keystone.json deleted file mode 100644 index 6d17f6690f..0000000000 --- a/src/main/resources/assets/aether/models/block/agiosite_bricks/keystone.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "parent": "block/cube_column", - "textures": { - "end": "aether:blocks/agiosite_bricks/agiosite_base_top", - "side": "aether:blocks/agiosite_bricks/agiosite_base_top" - } -} diff --git a/src/main/resources/assets/aether/models/block/agiosite_bricks/normal.json b/src/main/resources/assets/aether/models/block/agiosite_bricks/normal.json deleted file mode 100644 index 8d785cd3f5..0000000000 --- a/src/main/resources/assets/aether/models/block/agiosite_bricks/normal.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/cube_all", - "textures": { - "all": "aether:blocks/agiosite_brick" - } -} diff --git a/src/main/resources/assets/aether/models/block/agiosite_bricks/pillar.json b/src/main/resources/assets/aether/models/block/agiosite_bricks/pillar.json deleted file mode 100644 index b9315432fb..0000000000 --- a/src/main/resources/assets/aether/models/block/agiosite_bricks/pillar.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "parent": "block/cube_column", - "textures": { - "end": "aether:blocks/agiosite_bricks/agiosite_base_top", - "side": "aether:blocks/agiosite_bricks/agiosite_pillar" - } -} diff --git a/src/main/resources/assets/aether/models/block/altar.json b/src/main/resources/assets/aether/models/block/altar.json deleted file mode 100644 index 958f55c626..0000000000 --- a/src/main/resources/assets/aether/models/block/altar.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "aether:block/tesr", - "textures": { - "particle": "aether:blocks/holystone/holystone" - } -} diff --git a/src/main/resources/assets/aether/models/block/ambrosium_torch/ambrosium_torch.json b/src/main/resources/assets/aether/models/block/ambrosium_torch/ambrosium_torch.json deleted file mode 100644 index eaffd6fe7b..0000000000 --- a/src/main/resources/assets/aether/models/block/ambrosium_torch/ambrosium_torch.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/torch", - "textures": { - "torch": "aether:blocks/ambrosium_torch" - } -} diff --git a/src/main/resources/assets/aether/models/block/ambrosium_torch/ambrosium_torch_wall.json b/src/main/resources/assets/aether/models/block/ambrosium_torch/ambrosium_torch_wall.json deleted file mode 100644 index d2101401f2..0000000000 --- a/src/main/resources/assets/aether/models/block/ambrosium_torch/ambrosium_torch_wall.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/torch_wall", - "textures": { - "torch": "aether:blocks/ambrosium_torch" - } -} diff --git a/src/main/resources/assets/aether/models/block/brettl_plant/brettl_plant_base.json b/src/main/resources/assets/aether/models/block/brettl_plant/brettl_plant_base.json deleted file mode 100644 index 587b87efb2..0000000000 --- a/src/main/resources/assets/aether/models/block/brettl_plant/brettl_plant_base.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/tinted_cross", - "textures": { - "cross": "aether:blocks/brettl_plant/brettl_plant_base" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/block/brettl_plant/brettl_plant_base_g.json b/src/main/resources/assets/aether/models/block/brettl_plant/brettl_plant_base_g.json deleted file mode 100644 index dea29c9247..0000000000 --- a/src/main/resources/assets/aether/models/block/brettl_plant/brettl_plant_base_g.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/tinted_cross", - "textures": { - "cross": "aether:blocks/brettl_plant/brettl_plant_base_g" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/block/brettl_plant/brettl_plant_mid.json b/src/main/resources/assets/aether/models/block/brettl_plant/brettl_plant_mid.json deleted file mode 100644 index c6f9d96dab..0000000000 --- a/src/main/resources/assets/aether/models/block/brettl_plant/brettl_plant_mid.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/tinted_cross", - "textures": { - "cross": "aether:blocks/brettl_plant/brettl_plant_mid" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/block/brettl_plant/brettl_plant_mid_g.json b/src/main/resources/assets/aether/models/block/brettl_plant/brettl_plant_mid_g.json deleted file mode 100644 index 1a50e6cb3c..0000000000 --- a/src/main/resources/assets/aether/models/block/brettl_plant/brettl_plant_mid_g.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/tinted_cross", - "textures": { - "cross": "aether:blocks/brettl_plant/brettl_plant_mid_g" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/block/brettl_plant/brettl_plant_top.json b/src/main/resources/assets/aether/models/block/brettl_plant/brettl_plant_top.json deleted file mode 100644 index 554cf59689..0000000000 --- a/src/main/resources/assets/aether/models/block/brettl_plant/brettl_plant_top.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/tinted_cross", - "textures": { - "cross": "aether:blocks/brettl_plant/brettl_plant_top" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/block/brettl_plant/brettl_plant_top_g.json b/src/main/resources/assets/aether/models/block/brettl_plant/brettl_plant_top_g.json deleted file mode 100644 index 362e97370e..0000000000 --- a/src/main/resources/assets/aether/models/block/brettl_plant/brettl_plant_top_g.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/tinted_cross", - "textures": { - "cross": "aether:blocks/brettl_plant/brettl_plant_top_g" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/block/bushes/blueberry_bush_ripe.json b/src/main/resources/assets/aether/models/block/bushes/blueberry_bush_ripe.json deleted file mode 100644 index 3d3c4b8c19..0000000000 --- a/src/main/resources/assets/aether/models/block/bushes/blueberry_bush_ripe.json +++ /dev/null @@ -1,42 +0,0 @@ -{ - "parent": "block/block", - "textures": { - "outer": "aether:blocks/bushes/blueberry_bush_outer", - "inner": "aether:blocks/bushes/blueberry_bush_stem", - "particle": "aether:blocks/bushes/blueberry_bush_outer" - }, - "elements": [ - { - "from": [ 0, 0, 0 ], - "to": [ 16, 16, 16 ], - "faces": { - "down": { "texture": "#outer", "cullface": "down" }, - "up": { "texture": "#outer", "cullface": "up" }, - "north": { "texture": "#outer", "cullface": "north" }, - "south": { "texture": "#outer", "cullface": "south" }, - "west": { "texture": "#outer", "cullface": "west" }, - "east": { "texture": "#outer", "cullface": "east" } - } - }, - { - "from": [ 0.8, 0, 8 ], - "to": [ 15.2, 16, 8 ], - "rotation": { "origin": [ 8, 8, 8 ], "axis": "y", "angle": 45, "rescale": true }, - "shade": false, - "faces": { - "north": { "uv": [ 0, 0, 16, 16 ], "texture": "#inner" }, - "south": { "uv": [ 0, 0, 16, 16 ], "texture": "#inner" } - } - }, - { - "from": [ 8, 0, 0.8 ], - "to": [ 8, 16, 15.2 ], - "rotation": { "origin": [ 8, 8, 8 ], "axis": "y", "angle": 45, "rescale": true }, - "shade": false, - "faces": { - "west": { "uv": [ 0, 0, 16, 16 ], "texture": "#inner" }, - "east": { "uv": [ 0, 0, 16, 16 ], "texture": "#inner" } - } - } - ] -} diff --git a/src/main/resources/assets/aether/models/block/bushes/blueberry_bush_stem.json b/src/main/resources/assets/aether/models/block/bushes/blueberry_bush_stem.json deleted file mode 100644 index 4b78748dd3..0000000000 --- a/src/main/resources/assets/aether/models/block/bushes/blueberry_bush_stem.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "parent": "block/block", - "ambientocclusion": false, - "textures": { - "inner": "aether:blocks/bushes/blueberry_bush_stem", - "particle": "aether:blocks/bushes/blueberry_bush_stem" - }, - "elements": [ - { - "from": [ 0.8, 0, 8 ], - "to": [ 15.2, 16, 8 ], - "rotation": { "origin": [ 8, 8, 8 ], "axis": "y", "angle": 45, "rescale": true }, - "shade": false, - "faces": { - "north": { "uv": [ 0, 0, 16, 16 ], "texture": "#inner" }, - "south": { "uv": [ 0, 0, 16, 16 ], "texture": "#inner" } - } - }, - { - "from": [ 8, 0, 0.8 ], - "to": [ 8, 16, 15.2 ], - "rotation": { "origin": [ 8, 8, 8 ], "axis": "y", "angle": 45, "rescale": true }, - "shade": false, - "faces": { - "west": { "uv": [ 0, 0, 16, 16 ], "texture": "#inner" }, - "east": { "uv": [ 0, 0, 16, 16 ], "texture": "#inner" } - } - } - ] -} diff --git a/src/main/resources/assets/aether/models/block/bushes/highlands_bush.json b/src/main/resources/assets/aether/models/block/bushes/highlands_bush.json deleted file mode 100644 index 89f4f2b548..0000000000 --- a/src/main/resources/assets/aether/models/block/bushes/highlands_bush.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/cube_all", - "textures": { - "all": "aether:blocks/bushes/highlands_bush_outer" - } -} diff --git a/src/main/resources/assets/aether/models/block/candy_cane_block.json b/src/main/resources/assets/aether/models/block/candy_cane_block.json deleted file mode 100644 index d165394bfc..0000000000 --- a/src/main/resources/assets/aether/models/block/candy_cane_block.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "parent": "block/cube_column", - "textures": { - "end": "aether:blocks/candy_cane_top", - "side": "aether:blocks/candy_cane_side" - } -} diff --git a/src/main/resources/assets/aether/models/block/candy_cane_block_full.json b/src/main/resources/assets/aether/models/block/candy_cane_block_full.json deleted file mode 100644 index 38873bc8e5..0000000000 --- a/src/main/resources/assets/aether/models/block/candy_cane_block_full.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/cube_all", - "textures": { - "all": "aether:blocks/candy_cane_side" - } -} diff --git a/src/main/resources/assets/aether/models/block/cloudwool_block.json b/src/main/resources/assets/aether/models/block/cloudwool_block.json deleted file mode 100644 index 3f72908e66..0000000000 --- a/src/main/resources/assets/aether/models/block/cloudwool_block.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/cube_all", - "textures": { - "all": "aether:blocks/cloudwool_block" - } -} diff --git a/src/main/resources/assets/aether/models/block/cloudwool_carpet.json b/src/main/resources/assets/aether/models/block/cloudwool_carpet.json deleted file mode 100644 index b2ad249185..0000000000 --- a/src/main/resources/assets/aether/models/block/cloudwool_carpet.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "parent": "block/carpet", - "textures": { - "particle": "aether:blocks/cloudwool_block", - "wool": "aether:blocks/cloudwool_block" - } -} diff --git a/src/main/resources/assets/aether/models/block/crafting_tables/skyroot_crafting_table.json b/src/main/resources/assets/aether/models/block/crafting_tables/skyroot_crafting_table.json deleted file mode 100644 index fd1deadb75..0000000000 --- a/src/main/resources/assets/aether/models/block/crafting_tables/skyroot_crafting_table.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "parent": "block/cube", - "textures": { - "particle": "aether:blocks/crafting_tables/skyroot_crafting_table_front", - "down": "aether:blocks/skyroot_planks/skyroot_planks", - "up": "aether:blocks/crafting_tables/skyroot_crafting_table_top", - "north": "aether:blocks/crafting_tables/skyroot_crafting_table_front", - "east": "aether:blocks/crafting_tables/skyroot_crafting_table_side", - "south": "aether:blocks/crafting_tables/skyroot_crafting_table_front", - "west": "aether:blocks/crafting_tables/skyroot_crafting_table_side" - } -} diff --git a/src/main/resources/assets/aether/models/block/crossbase.json b/src/main/resources/assets/aether/models/block/crossbase.json deleted file mode 100644 index 1d2bb8403c..0000000000 --- a/src/main/resources/assets/aether/models/block/crossbase.json +++ /dev/null @@ -1,40 +0,0 @@ -{ - "parent": "block/thin_block", - "textures": { - "particle": "#cross" - }, - "elements": [ - { - "from": [ 0.8, 0, 8 ], - "to": [ 15.2, 16, 8 ], - "rotation": { "origin": [ 8, 8, 8 ], "axis": "y", "angle": 45, "rescale": true }, - "shade": false, - "faces": { - "north": { "uv": [ 0, 0, 16, 16 ], "texture": "#cross" }, - "south": { "uv": [ 0, 0, 16, 16 ], "texture": "#cross" } - } - }, - { - "from": [ 8, 0, 0.8 ], - "to": [ 8, 16, 15.2 ], - "rotation": { "origin": [ 8, 8, 8 ], "axis": "y", "angle": 45, "rescale": true }, - "shade": false, - "faces": { - "west": { "uv": [ 0, 0, 16, 16 ], "texture": "#cross" }, - "east": { "uv": [ 0, 0, 16, 16 ], "texture": "#cross" } - } - }, - { - "from": [ 0, 0, 0 ], - "to": [ 16, 2, 16 ], - "faces": { - "down": { "uv": [ 0, 0, 16, 16 ], "texture": "#texture", "cullface": "down" }, - "up": { "uv": [ 0, 0, 16, 16 ], "texture": "#texture" }, - "north": { "uv": [ 0, 14, 16, 16 ], "texture": "#texture", "cullface": "north" }, - "south": { "uv": [ 0, 14, 16, 16 ], "texture": "#texture", "cullface": "south" }, - "west": { "uv": [ 0, 14, 16, 16 ], "texture": "#texture", "cullface": "west" }, - "east": { "uv": [ 0, 14, 16, 16 ], "texture": "#texture", "cullface": "east" } - } - } - ] -} diff --git a/src/main/resources/assets/aether/models/block/crude_scatterglass/arkenium_frame.json b/src/main/resources/assets/aether/models/block/crude_scatterglass/arkenium_frame.json deleted file mode 100644 index 325dfed548..0000000000 --- a/src/main/resources/assets/aether/models/block/crude_scatterglass/arkenium_frame.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/cube_all", - "textures": { - "all": "aether:blocks/arkenium_frame_crude_scatterglass" - } -} diff --git a/src/main/resources/assets/aether/models/block/crude_scatterglass/normal.json b/src/main/resources/assets/aether/models/block/crude_scatterglass/normal.json deleted file mode 100644 index 70a88fb82e..0000000000 --- a/src/main/resources/assets/aether/models/block/crude_scatterglass/normal.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/cube_all", - "textures": { - "all": "aether:blocks/crude_scatterglass" - } -} diff --git a/src/main/resources/assets/aether/models/block/crude_scatterglass/skyroot_frame.json b/src/main/resources/assets/aether/models/block/crude_scatterglass/skyroot_frame.json deleted file mode 100644 index 490f5495a2..0000000000 --- a/src/main/resources/assets/aether/models/block/crude_scatterglass/skyroot_frame.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/cube_all", - "textures": { - "all": "aether:blocks/skyroot_frame_crude_scatterglass" - } -} diff --git a/src/main/resources/assets/aether/models/block/crystals/highlands_ice_crystal.json b/src/main/resources/assets/aether/models/block/crystals/highlands_ice_crystal.json deleted file mode 100644 index 4e7686ac67..0000000000 --- a/src/main/resources/assets/aether/models/block/crystals/highlands_ice_crystal.json +++ /dev/null @@ -1,88 +0,0 @@ -{ - "credit": "Made with Blockbench", - "textures": { - "0": "aether:blocks/highlands_ice", - "particle": "aether:blocks/highlands_ice" - }, - "display": { - "gui": { - "rotation": [ 30, -45, 0 ], - "translation": [ 0, 1.5, 0 ], - "scale": [ 0.825, 0.825, 0.825 ] - }, - "ground": { - "rotation": [ 0, 0, 0 ], - "translation": [ 0, 3, 0], - "scale":[ 0.5, 0.5, 0.5 ] - }, - "fixed": { - "rotation": [ 0, 90, 0 ], - "translation": [ 0, 0.5, 0 ], - "scale": [ 0.5, 0.5, 0.5 ] - }, - "firstperson_righthand": { - "rotation": [ 30, 45, 0 ], - "translation": [ 3.0, 1.5, 0 ], - "scale": [ 0.40, 0.40, 0.40 ] - }, - "thirdperson_righthand": { - "rotation": [ 75, -135, 0 ], - "translation": [ 0, 3.5, 0 ], - "scale": [ 0.375, 0.375, 0.375 ] - } - }, - "elements": [ - { - "from": [6, 0, 6], - "to": [10, 13, 10], - "rotation": {"angle": 45, "axis": "y", "origin": [8, 8, 8]}, - "faces": { - "north": {"uv": [12, 0, 16, 13], "texture": "#0"}, - "east": {"uv": [0, 0, 4, 13], "texture": "#0"}, - "south": {"uv": [8, 0, 12, 13], "texture": "#0"}, - "west": {"uv": [4, 0, 8, 13], "texture": "#0"}, - "up": {"uv": [4, 4, 8, 8], "texture": "#0"}, - "down": {"uv": [0, 0, 4, 4], "texture": "#0"} - } - }, - { - "from": [8.5, -0.5, 4.5], - "to": [10.5, 5.5, 6.5], - "rotation": {"angle": -22.5, "axis": "x", "origin": [10, 0, 5.5]}, - "faces": { - "north": {"uv": [0, 0, 2, 5], "texture": "#0"}, - "east": {"uv": [4, 2, 6, 7], "texture": "#0"}, - "south": {"uv": [8, 1, 10, 6], "texture": "#0"}, - "west": {"uv": [1, 5, 3, 10], "texture": "#0"}, - "up": {"uv": [3, 4, 5, 6], "texture": "#0"}, - "down": {"uv": [0, 0, 2, 2], "texture": "#0"} - } - }, - { - "from": [4, -0.5, 7.5], - "to": [7, 4.5, 10.5], - "rotation": {"angle": 22.5, "axis": "z", "origin": [5.5, 0, 9]}, - "faces": { - "north": {"uv": [0, 0, 2, 4], "texture": "#0"}, - "east": {"uv": [0, 0, 2, 4], "texture": "#0"}, - "south": {"uv": [0, 0, 2, 4], "texture": "#0"}, - "west": {"uv": [0, 0, 2, 4], "texture": "#0"}, - "up": {"uv": [5, 11, 7, 13], "texture": "#0"}, - "down": {"uv": [0, 0, 2, 2], "texture": "#0"} - } - }, - { - "from": [9.5, -0.5, 9], - "to": [11.5, 3.5, 11], - "rotation": {"angle": 22.5, "axis": "x", "origin": [10, 0, 10]}, - "faces": { - "north": {"uv": [0, 0, 2, 3], "texture": "#0"}, - "east": {"uv": [0, 0, 2, 3], "texture": "#0"}, - "south": {"uv": [0, 0, 2, 3], "texture": "#0"}, - "west": {"uv": [0, 0, 2, 3], "texture": "#0"}, - "up": {"uv": [12, 11, 14, 13], "texture": "#0"}, - "down": {"uv": [0, 0, 2, 2], "texture": "#0"} - } - } - ] -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/block/crystals/highlands_ice_crystal_a.json b/src/main/resources/assets/aether/models/block/crystals/highlands_ice_crystal_a.json deleted file mode 100644 index 0191c22082..0000000000 --- a/src/main/resources/assets/aether/models/block/crystals/highlands_ice_crystal_a.json +++ /dev/null @@ -1,88 +0,0 @@ -{ - "credit": "Made with Blockbench", - "textures": { - "0": "aether:blocks/highlands_ice", - "particle": "aether:blocks/highlands_ice" - }, - "display": { - "gui": { - "rotation": [ 30, -45, 0 ], - "translation": [ 0, 1.5, 0 ], - "scale": [ 0.825, 0.825, 0.825 ] - }, - "ground": { - "rotation": [ 0, 0, 0 ], - "translation": [ 0, 3, 0], - "scale":[ 0.5, 0.5, 0.5 ] - }, - "fixed": { - "rotation": [ 0, 90, 0 ], - "translation": [ 0, 0.5, 0 ], - "scale": [ 0.5, 0.5, 0.5 ] - }, - "firstperson_righthand": { - "rotation": [ 30, 45, 0 ], - "translation": [ 3.0, 1.5, 0 ], - "scale": [ 0.40, 0.40, 0.40 ] - }, - "thirdperson_righthand": { - "rotation": [ 75, -135, 0 ], - "translation": [ 0, 3.5, 0 ], - "scale": [ 0.375, 0.375, 0.375 ] - } - }, - "elements": [ - { - "from": [3, 0, 7], - "to": [6, 9, 10], - "rotation": {"angle": 45, "axis": "y", "origin": [8, 8, 8]}, - "faces": { - "north": {"uv": [0, 0, 3, 10], "texture": "#0"}, - "east": {"uv": [0, 0, 3, 10], "texture": "#0"}, - "south": {"uv": [0, 0, 3, 10], "texture": "#0"}, - "west": {"uv": [0, 0, 3, 10], "texture": "#0"}, - "up": {"uv": [0, 0, 3, 3], "texture": "#0"}, - "down": {"uv": [0, 0, 3, 3], "texture": "#0"} - } - }, - { - "from": [9.5, -0.5, 4.5], - "to": [12.5, 6.5, 7.5], - "rotation": {"angle": -22.5, "axis": "z", "origin": [10, 0, 5.5]}, - "faces": { - "north": {"uv": [0, 0, 3, 7], "texture": "#0"}, - "east": {"uv": [0, 0, 3, 7], "texture": "#0"}, - "south": {"uv": [0, 0, 3, 7], "texture": "#0"}, - "west": {"uv": [0, 0, 3, 7], "texture": "#0"}, - "up": {"uv": [0, 0, 3, 3], "texture": "#0"}, - "down": {"uv": [0, 0, 3, 3], "texture": "#0"} - } - }, - { - "from": [3.5, -0.5, 8], - "to": [5.5, 4.5, 10], - "rotation": {"angle": 22.5, "axis": "z", "origin": [4.5, 0, 9]}, - "faces": { - "north": {"uv": [0, 0, 2, 5], "texture": "#0"}, - "east": {"uv": [0, 0, 2, 5], "texture": "#0"}, - "south": {"uv": [0, 0, 2, 5], "texture": "#0"}, - "west": {"uv": [0, 0, 2, 5], "texture": "#0"}, - "up": {"uv": [0, 0, 2, 2], "texture": "#0"}, - "down": {"uv": [0, 0, 2, 2], "texture": "#0"} - } - }, - { - "from": [10.5, -0.5, 7], - "to": [12.5, 3.5, 9], - "rotation": {"angle": 45, "axis": "x", "origin": [10.5, 0, 8]}, - "faces": { - "north": {"uv": [0, 0, 2, 3], "texture": "#0"}, - "east": {"uv": [0, 0, 2, 3], "texture": "#0"}, - "south": {"uv": [0, 0, 2, 3], "texture": "#0"}, - "west": {"uv": [0, 0, 2, 3], "texture": "#0"}, - "up": {"uv": [12, 11, 14, 13], "texture": "#0"}, - "down": {"uv": [0, 0, 2, 2], "texture": "#0"} - } - } - ] -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/block/crystals/highlands_ice_crystal_b.json b/src/main/resources/assets/aether/models/block/crystals/highlands_ice_crystal_b.json deleted file mode 100644 index 60f3e360cd..0000000000 --- a/src/main/resources/assets/aether/models/block/crystals/highlands_ice_crystal_b.json +++ /dev/null @@ -1,124 +0,0 @@ -{ - "credit": "Made with Blockbench", - "textures": { - "0": "aether:blocks/highlands_ice", - "particle": "aether:blocks/highlands_ice" - }, - "display": { - "gui": { - "rotation": [ 30, -45, 0 ], - "translation": [ 0, 1.5, 0 ], - "scale": [ 0.825, 0.825, 0.825 ] - }, - "ground": { - "rotation": [ 0, 0, 0 ], - "translation": [ 0, 3, 0], - "scale":[ 0.5, 0.5, 0.5 ] - }, - "fixed": { - "rotation": [ 0, 90, 0 ], - "translation": [ 0, 0.5, 0 ], - "scale": [ 0.5, 0.5, 0.5 ] - }, - "firstperson_righthand": { - "rotation": [ 30, 45, 0 ], - "translation": [ 3.0, 1.5, 0 ], - "scale": [ 0.40, 0.40, 0.40 ] - }, - "thirdperson_righthand": { - "rotation": [ 75, -135, 0 ], - "translation": [ 0, 3.5, 0 ], - "scale": [ 0.375, 0.375, 0.375 ] - } - }, - "elements": [ - { - "from": [4, 0, 4], - "to": [5, 3, 5], - "faces": { - "north": {"uv": [0, 0, 2, 3], "texture": "#0"}, - "east": {"uv": [0, 0, 2, 3], "rotation": 180, "texture": "#0"}, - "south": {"uv": [0, 0, 2, 3], "texture": "#0"}, - "west": {"uv": [0, 0, 2, 3], "rotation": 180, "texture": "#0"}, - "up": {"uv": [0, 0, 2, 2], "rotation": 180, "texture": "#0"}, - "down": {"uv": [0, 0, 2, 2], "rotation": 180, "texture": "#0"} - } - }, - { - "from": [9.5, -0.5, 4.5], - "to": [11.5, 3.5, 6.5], - "rotation": {"angle": -22.5, "axis": "x", "origin": [10, 0, 5.5]}, - "faces": { - "north": {"uv": [0, 0, 2, 4], "texture": "#0"}, - "east": {"uv": [0, 0, 2, 4], "texture": "#0"}, - "south": {"uv": [0, 0, 2, 4], "texture": "#0"}, - "west": {"uv": [0, 0, 2, 4], "texture": "#0"}, - "up": {"uv": [0, 0, 2, 2], "texture": "#0"}, - "down": {"uv": [0, 0, 2, 2], "texture": "#0"} - } - }, - { - "from": [2.5, 0, 10], - "to": [4.5, 3, 12], - "rotation": {"angle": 22.5, "axis": "y", "origin": [4.5, 0, 9]}, - "faces": { - "north": {"uv": [0, 0, 2, 5], "texture": "#0"}, - "east": {"uv": [0, 0, 2, 5], "texture": "#0"}, - "south": {"uv": [0, 0, 2, 5], "texture": "#0"}, - "west": {"uv": [0, 0, 2, 5], "texture": "#0"}, - "up": {"uv": [0, 0, 2, 2], "texture": "#0"}, - "down": {"uv": [0, 0, 2, 2], "texture": "#0"} - } - }, - { - "from": [12, -1, 11.5], - "to": [13, 1, 12.5], - "rotation": {"angle": 22.5, "axis": "x", "origin": [10.5, 0, 14]}, - "faces": { - "north": {"uv": [0, 0, 1, 3], "texture": "#0"}, - "east": {"uv": [0, 0, 1, 3], "texture": "#0"}, - "south": {"uv": [0, 0, 1, 3], "texture": "#0"}, - "west": {"uv": [0, 0, 1, 3], "texture": "#0"}, - "up": {"uv": [0, 0, 1, 1], "texture": "#0"}, - "down": {"uv": [0, 0, 1, 1], "texture": "#0"} - } - }, - { - "from": [11.5, 0, 11], - "to": [12.5, 3, 12], - "faces": { - "north": {"uv": [0, 0, 1, 3], "texture": "#0"}, - "east": {"uv": [0, 0, 1, 3], "texture": "#0"}, - "south": {"uv": [0, 0, 1, 3], "texture": "#0"}, - "west": {"uv": [0, 0, 1, 3], "texture": "#0"}, - "up": {"uv": [0, 0, 1, 1], "texture": "#0"}, - "down": {"uv": [0, 0, 1, 1], "texture": "#0"} - } - }, - { - "from": [3, 0, 2.75], - "to": [4, 1, 3.75], - "faces": { - "north": {"uv": [0, 0, 2, 3], "texture": "#0"}, - "east": {"uv": [0, 0, 2, 3], "rotation": 180, "texture": "#0"}, - "south": {"uv": [0, 0, 2, 3], "texture": "#0"}, - "west": {"uv": [0, 0, 2, 3], "rotation": 180, "texture": "#0"}, - "up": {"uv": [0, 0, 2, 2], "rotation": 180, "texture": "#0"}, - "down": {"uv": [0, 0, 2, 2], "rotation": 180, "texture": "#0"} - } - }, - { - "from": [11.5, 0.25, 5], - "to": [12.5, 3.25, 6], - "rotation": {"angle": -22.5, "axis": "z", "origin": [10.5, 0, 14]}, - "faces": { - "north": {"uv": [0, 0, 1, 3], "texture": "#0"}, - "east": {"uv": [0, 0, 1, 3], "texture": "#0"}, - "south": {"uv": [0, 0, 1, 3], "texture": "#0"}, - "west": {"uv": [0, 0, 1, 3], "texture": "#0"}, - "up": {"uv": [0, 0, 1, 1], "texture": "#0"}, - "down": {"uv": [0, 0, 1, 1], "texture": "#0"} - } - } - ] -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/block/dark_skyroot_planks/base_beam.json b/src/main/resources/assets/aether/models/block/dark_skyroot_planks/base_beam.json deleted file mode 100644 index 02ac898600..0000000000 --- a/src/main/resources/assets/aether/models/block/dark_skyroot_planks/base_beam.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "parent": "block/cube_column", - "textures": { - "end": "aether:blocks/dark_skyroot_planks/greatroot_base_top", - "side": "aether:blocks/dark_skyroot_planks/greatroot_base_beam" - } -} diff --git a/src/main/resources/assets/aether/models/block/dark_skyroot_planks/base_planks.json b/src/main/resources/assets/aether/models/block/dark_skyroot_planks/base_planks.json deleted file mode 100644 index dd02158813..0000000000 --- a/src/main/resources/assets/aether/models/block/dark_skyroot_planks/base_planks.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "parent": "block/cube_column", - "textures": { - "end": "aether:blocks/dark_skyroot_planks/greatroot_base_top", - "side": "aether:blocks/dark_skyroot_planks/greatroot_base_planks" - } -} diff --git a/src/main/resources/assets/aether/models/block/dark_skyroot_planks/beam.json b/src/main/resources/assets/aether/models/block/dark_skyroot_planks/beam.json deleted file mode 100644 index 955bc1fbce..0000000000 --- a/src/main/resources/assets/aether/models/block/dark_skyroot_planks/beam.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "parent": "block/cube_column", - "textures": { - "end": "aether:blocks/dark_skyroot_planks/greatroot_base_top", - "side": "aether:blocks/dark_skyroot_planks/greatroot_beam" - } -} diff --git a/src/main/resources/assets/aether/models/block/dark_skyroot_planks/beam_side.json b/src/main/resources/assets/aether/models/block/dark_skyroot_planks/beam_side.json deleted file mode 100644 index 955bc1fbce..0000000000 --- a/src/main/resources/assets/aether/models/block/dark_skyroot_planks/beam_side.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "parent": "block/cube_column", - "textures": { - "end": "aether:blocks/dark_skyroot_planks/greatroot_base_top", - "side": "aether:blocks/dark_skyroot_planks/greatroot_beam" - } -} diff --git a/src/main/resources/assets/aether/models/block/dark_skyroot_planks/floorboards.json b/src/main/resources/assets/aether/models/block/dark_skyroot_planks/floorboards.json deleted file mode 100644 index 08a642e284..0000000000 --- a/src/main/resources/assets/aether/models/block/dark_skyroot_planks/floorboards.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/cube_all", - "textures": { - "all": "aether:blocks/dark_skyroot_planks/greatroot_floorboards" - } -} diff --git a/src/main/resources/assets/aether/models/block/dark_skyroot_planks/highlight.json b/src/main/resources/assets/aether/models/block/dark_skyroot_planks/highlight.json deleted file mode 100644 index d27c7f2ad3..0000000000 --- a/src/main/resources/assets/aether/models/block/dark_skyroot_planks/highlight.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/cube_all", - "textures": { - "all": "aether:blocks/dark_skyroot_planks/greatroot_base_top" - } -} diff --git a/src/main/resources/assets/aether/models/block/dark_skyroot_planks/normal.json b/src/main/resources/assets/aether/models/block/dark_skyroot_planks/normal.json deleted file mode 100644 index ab259d4026..0000000000 --- a/src/main/resources/assets/aether/models/block/dark_skyroot_planks/normal.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/cube_all", - "textures": { - "all": "aether:blocks/dark_skyroot_planks/greatroot_planks" - } -} diff --git a/src/main/resources/assets/aether/models/block/dark_skyroot_planks/tiles.json b/src/main/resources/assets/aether/models/block/dark_skyroot_planks/tiles.json deleted file mode 100644 index 35cb559e5c..0000000000 --- a/src/main/resources/assets/aether/models/block/dark_skyroot_planks/tiles.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/cube_all", - "textures": { - "all": "aether:blocks/dark_skyroot_planks/greatroot_tiles" - } -} diff --git a/src/main/resources/assets/aether/models/block/dark_skyroot_planks/tiles_small.json b/src/main/resources/assets/aether/models/block/dark_skyroot_planks/tiles_small.json deleted file mode 100644 index 0dea20b8ce..0000000000 --- a/src/main/resources/assets/aether/models/block/dark_skyroot_planks/tiles_small.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/cube_all", - "textures": { - "all": "aether:blocks/dark_skyroot_planks/greatroot_tiles_small" - } -} diff --git a/src/main/resources/assets/aether/models/block/dark_skyroot_planks/top_beam.json b/src/main/resources/assets/aether/models/block/dark_skyroot_planks/top_beam.json deleted file mode 100644 index 346fd083cc..0000000000 --- a/src/main/resources/assets/aether/models/block/dark_skyroot_planks/top_beam.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "parent": "block/cube_column", - "textures": { - "end": "aether:blocks/dark_skyroot_planks/greatroot_base_top", - "side": "aether:blocks/dark_skyroot_planks/greatroot_top_beam" - } -} diff --git a/src/main/resources/assets/aether/models/block/dark_skyroot_planks/top_planks.json b/src/main/resources/assets/aether/models/block/dark_skyroot_planks/top_planks.json deleted file mode 100644 index f070b60e2c..0000000000 --- a/src/main/resources/assets/aether/models/block/dark_skyroot_planks/top_planks.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "parent": "block/cube_column", - "textures": { - "end": "aether:blocks/dark_skyroot_planks/greatroot_base_top", - "side": "aether:blocks/dark_skyroot_planks/greatroot_top_planks" - } -} diff --git a/src/main/resources/assets/aether/models/block/doors/arkenium_door_bottom_left.json b/src/main/resources/assets/aether/models/block/doors/arkenium_door_bottom_left.json deleted file mode 100644 index 007ad63cb3..0000000000 --- a/src/main/resources/assets/aether/models/block/doors/arkenium_door_bottom_left.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "parent": "block/door_bottom", - "textures": { - "bottom": "aether:blocks/doors/arkenium_door_lower", - "top": "aether:blocks/doors/arkenium_door_upper" - } -} diff --git a/src/main/resources/assets/aether/models/block/doors/arkenium_door_bottom_right.json b/src/main/resources/assets/aether/models/block/doors/arkenium_door_bottom_right.json deleted file mode 100644 index 151ce7c885..0000000000 --- a/src/main/resources/assets/aether/models/block/doors/arkenium_door_bottom_right.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "parent": "block/door_bottom_rh", - "textures": { - "bottom": "aether:blocks/doors/arkenium_door_lower", - "top": "aether:blocks/doors/arkenium_door_upper" - } -} diff --git a/src/main/resources/assets/aether/models/block/doors/arkenium_door_top_left.json b/src/main/resources/assets/aether/models/block/doors/arkenium_door_top_left.json deleted file mode 100644 index 35cef0b647..0000000000 --- a/src/main/resources/assets/aether/models/block/doors/arkenium_door_top_left.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "parent": "block/door_top", - "textures": { - "bottom": "aether:blocks/doors/arkenium_door_lower", - "top": "aether:blocks/doors/arkenium_door_upper" - } -} diff --git a/src/main/resources/assets/aether/models/block/doors/arkenium_door_top_right.json b/src/main/resources/assets/aether/models/block/doors/arkenium_door_top_right.json deleted file mode 100644 index c6ff4a2c2d..0000000000 --- a/src/main/resources/assets/aether/models/block/doors/arkenium_door_top_right.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "parent": "block/door_top_rh", - "textures": { - "bottom": "aether:blocks/doors/arkenium_door_lower", - "top": "aether:blocks/doors/arkenium_door_upper" - } -} diff --git a/src/main/resources/assets/aether/models/block/doors/secret_skyroot_door_bottom_left.json b/src/main/resources/assets/aether/models/block/doors/secret_skyroot_door_bottom_left.json deleted file mode 100644 index f9583f72c9..0000000000 --- a/src/main/resources/assets/aether/models/block/doors/secret_skyroot_door_bottom_left.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "parent": "block/door_bottom", - "textures": { - "bottom": "aether:blocks/skyroot_planks/skyroot_planks", - "top": "aether:blocks/skyroot_planks/skyroot_planks" - } -} diff --git a/src/main/resources/assets/aether/models/block/doors/secret_skyroot_door_bottom_right.json b/src/main/resources/assets/aether/models/block/doors/secret_skyroot_door_bottom_right.json deleted file mode 100644 index 41efc049d9..0000000000 --- a/src/main/resources/assets/aether/models/block/doors/secret_skyroot_door_bottom_right.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "parent": "block/door_bottom_rh", - "textures": { - "bottom": "aether:blocks/skyroot_planks/skyroot_planks", - "top": "aether:blocks/skyroot_planks/skyroot_planks" - } -} diff --git a/src/main/resources/assets/aether/models/block/doors/secret_skyroot_door_top_left.json b/src/main/resources/assets/aether/models/block/doors/secret_skyroot_door_top_left.json deleted file mode 100644 index b336edf9d8..0000000000 --- a/src/main/resources/assets/aether/models/block/doors/secret_skyroot_door_top_left.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "parent": "block/door_top", - "textures": { - "bottom": "aether:blocks/skyroot_planks/skyroot_planks", - "top": "aether:blocks/skyroot_planks/skyroot_planks" - } -} diff --git a/src/main/resources/assets/aether/models/block/doors/secret_skyroot_door_top_right.json b/src/main/resources/assets/aether/models/block/doors/secret_skyroot_door_top_right.json deleted file mode 100644 index eda0f538ea..0000000000 --- a/src/main/resources/assets/aether/models/block/doors/secret_skyroot_door_top_right.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "parent": "block/door_top_rh", - "textures": { - "bottom": "aether:blocks/skyroot_planks/skyroot_planks", - "top": "aether:blocks/skyroot_planks/skyroot_planks" - } -} diff --git a/src/main/resources/assets/aether/models/block/doors/skyroot_door_bottom_left.json b/src/main/resources/assets/aether/models/block/doors/skyroot_door_bottom_left.json deleted file mode 100644 index 88736a1eff..0000000000 --- a/src/main/resources/assets/aether/models/block/doors/skyroot_door_bottom_left.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "parent": "block/door_bottom", - "textures": { - "bottom": "aether:blocks/doors/skyroot_door_lower", - "top": "aether:blocks/doors/skyroot_door_upper" - } -} diff --git a/src/main/resources/assets/aether/models/block/doors/skyroot_door_bottom_right.json b/src/main/resources/assets/aether/models/block/doors/skyroot_door_bottom_right.json deleted file mode 100644 index 41b1383046..0000000000 --- a/src/main/resources/assets/aether/models/block/doors/skyroot_door_bottom_right.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "parent": "block/door_bottom_rh", - "textures": { - "bottom": "aether:blocks/doors/skyroot_door_lower", - "top": "aether:blocks/doors/skyroot_door_upper" - } -} diff --git a/src/main/resources/assets/aether/models/block/doors/skyroot_door_top_left.json b/src/main/resources/assets/aether/models/block/doors/skyroot_door_top_left.json deleted file mode 100644 index 8c2cd588e4..0000000000 --- a/src/main/resources/assets/aether/models/block/doors/skyroot_door_top_left.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "parent": "block/door_top", - "textures": { - "bottom": "aether:blocks/doors/skyroot_door_lower", - "top": "aether:blocks/doors/skyroot_door_upper" - } -} diff --git a/src/main/resources/assets/aether/models/block/doors/skyroot_door_top_right.json b/src/main/resources/assets/aether/models/block/doors/skyroot_door_top_right.json deleted file mode 100644 index 8d136d1b53..0000000000 --- a/src/main/resources/assets/aether/models/block/doors/skyroot_door_top_right.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "parent": "block/door_top_rh", - "textures": { - "bottom": "aether:blocks/doors/skyroot_door_lower", - "top": "aether:blocks/doors/skyroot_door_upper" - } -} diff --git a/src/main/resources/assets/aether/models/block/faded_holystone_bricks/base_bricks.json b/src/main/resources/assets/aether/models/block/faded_holystone_bricks/base_bricks.json deleted file mode 100644 index e3919687ec..0000000000 --- a/src/main/resources/assets/aether/models/block/faded_holystone_bricks/base_bricks.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "parent": "block/cube_column", - "textures": { - "end": "aether:blocks/faded_holystone_bricks/faded_holystone_base_top", - "side": "aether:blocks/faded_holystone_bricks/faded_holystone_base_bricks" - } -} diff --git a/src/main/resources/assets/aether/models/block/faded_holystone_bricks/base_pillar.json b/src/main/resources/assets/aether/models/block/faded_holystone_bricks/base_pillar.json deleted file mode 100644 index d5ab168df5..0000000000 --- a/src/main/resources/assets/aether/models/block/faded_holystone_bricks/base_pillar.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "parent": "block/cube_column", - "textures": { - "end": "aether:blocks/faded_holystone_bricks/faded_holystone_base_top", - "side": "aether:blocks/faded_holystone_bricks/faded_holystone_base_pillar" - } -} diff --git a/src/main/resources/assets/aether/models/block/faded_holystone_bricks/capstone_bricks.json b/src/main/resources/assets/aether/models/block/faded_holystone_bricks/capstone_bricks.json deleted file mode 100644 index 12e6ec95c5..0000000000 --- a/src/main/resources/assets/aether/models/block/faded_holystone_bricks/capstone_bricks.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "parent": "block/cube_column", - "textures": { - "end": "aether:blocks/faded_holystone_bricks/faded_holystone_base_top", - "side": "aether:blocks/faded_holystone_bricks/faded_holystone_capstone_bricks" - } -} diff --git a/src/main/resources/assets/aether/models/block/faded_holystone_bricks/capstone_pillar.json b/src/main/resources/assets/aether/models/block/faded_holystone_bricks/capstone_pillar.json deleted file mode 100644 index 3bc9e89d18..0000000000 --- a/src/main/resources/assets/aether/models/block/faded_holystone_bricks/capstone_pillar.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "parent": "block/cube_column", - "textures": { - "end": "aether:blocks/faded_holystone_bricks/faded_holystone_base_top", - "side": "aether:blocks/faded_holystone_bricks/faded_holystone_capstone_pillar" - } -} diff --git a/src/main/resources/assets/aether/models/block/faded_holystone_bricks/flagstones.json b/src/main/resources/assets/aether/models/block/faded_holystone_bricks/flagstones.json deleted file mode 100644 index 6f286e6c52..0000000000 --- a/src/main/resources/assets/aether/models/block/faded_holystone_bricks/flagstones.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "parent": "block/cube_column", - "textures": { - "end": "aether:blocks/faded_holystone_bricks/faded_holystone_flagstones", - "side": "aether:blocks/faded_holystone_bricks/faded_holystone_flagstones" - } -} diff --git a/src/main/resources/assets/aether/models/block/faded_holystone_bricks/headstone.json b/src/main/resources/assets/aether/models/block/faded_holystone_bricks/headstone.json deleted file mode 100644 index ad816aa17b..0000000000 --- a/src/main/resources/assets/aether/models/block/faded_holystone_bricks/headstone.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "parent": "block/cube_column", - "textures": { - "end": "aether:blocks/faded_holystone_bricks/faded_holystone_headstone", - "side": "aether:blocks/faded_holystone_bricks/faded_holystone_headstone" - } -} diff --git a/src/main/resources/assets/aether/models/block/faded_holystone_bricks/keystone.json b/src/main/resources/assets/aether/models/block/faded_holystone_bricks/keystone.json deleted file mode 100644 index 88f091354c..0000000000 --- a/src/main/resources/assets/aether/models/block/faded_holystone_bricks/keystone.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "parent": "block/cube_column", - "textures": { - "end": "aether:blocks/faded_holystone_bricks/faded_holystone_base_top", - "side": "aether:blocks/faded_holystone_bricks/faded_holystone_base_top" - } -} diff --git a/src/main/resources/assets/aether/models/block/faded_holystone_bricks/normal.json b/src/main/resources/assets/aether/models/block/faded_holystone_bricks/normal.json deleted file mode 100644 index b1d45a36d8..0000000000 --- a/src/main/resources/assets/aether/models/block/faded_holystone_bricks/normal.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/cube_all", - "textures": { - "all": "aether:blocks/faded_holystone_brick" - } -} diff --git a/src/main/resources/assets/aether/models/block/faded_holystone_bricks/pillar.json b/src/main/resources/assets/aether/models/block/faded_holystone_bricks/pillar.json deleted file mode 100644 index b7811a8356..0000000000 --- a/src/main/resources/assets/aether/models/block/faded_holystone_bricks/pillar.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "parent": "block/cube_column", - "textures": { - "end": "aether:blocks/faded_holystone_bricks/faded_holystone_base_top", - "side": "aether:blocks/faded_holystone_bricks/faded_holystone_pillar" - } -} diff --git a/src/main/resources/assets/aether/models/block/ferrosite.json b/src/main/resources/assets/aether/models/block/ferrosite.json deleted file mode 100644 index ab1746f137..0000000000 --- a/src/main/resources/assets/aether/models/block/ferrosite.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/cube_all", - "textures": { - "all": "aether:blocks/ferrosite" - } -} diff --git a/src/main/resources/assets/aether/models/block/ferrosite_sand.json b/src/main/resources/assets/aether/models/block/ferrosite_sand.json deleted file mode 100644 index a0168e67e7..0000000000 --- a/src/main/resources/assets/aether/models/block/ferrosite_sand.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/cube_all", - "textures": { - "all": "aether:blocks/ferrosite_sand" - } -} diff --git a/src/main/resources/assets/aether/models/block/flowers/aechor_sprout.json b/src/main/resources/assets/aether/models/block/flowers/aechor_sprout.json deleted file mode 100644 index 170508771e..0000000000 --- a/src/main/resources/assets/aether/models/block/flowers/aechor_sprout.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/cross", - "textures": { - "cross": "aether:blocks/flowers/aechor_sprout" - } -} diff --git a/src/main/resources/assets/aether/models/block/flowers/aechor_sprout_snowy.json b/src/main/resources/assets/aether/models/block/flowers/aechor_sprout_snowy.json deleted file mode 100644 index 67c9e5d979..0000000000 --- a/src/main/resources/assets/aether/models/block/flowers/aechor_sprout_snowy.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "parent": "aether:block/crossbase", - "textures": { - "cross": "aether:blocks/flowers/aechor_sprout", - "texture": "aether:blocks/highlands_snow" - } -} diff --git a/src/main/resources/assets/aether/models/block/flowers/arctic_spikespring.json b/src/main/resources/assets/aether/models/block/flowers/arctic_spikespring.json deleted file mode 100644 index df0b470b17..0000000000 --- a/src/main/resources/assets/aether/models/block/flowers/arctic_spikespring.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/cross", - "textures": { - "cross": "aether:blocks/flowers/arctic_spikespring" - } -} diff --git a/src/main/resources/assets/aether/models/block/flowers/arctic_spikespring_snowy.json b/src/main/resources/assets/aether/models/block/flowers/arctic_spikespring_snowy.json deleted file mode 100644 index 4dd462d072..0000000000 --- a/src/main/resources/assets/aether/models/block/flowers/arctic_spikespring_snowy.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "parent": "aether:block/crossbase", - "textures": { - "cross": "aether:blocks/flowers/arctic_spikespring", - "texture": "aether:blocks/highlands_snow" - } -} diff --git a/src/main/resources/assets/aether/models/block/flowers/barkshroom.json b/src/main/resources/assets/aether/models/block/flowers/barkshroom.json deleted file mode 100644 index 8a82d4aa22..0000000000 --- a/src/main/resources/assets/aether/models/block/flowers/barkshroom.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/cross", - "textures": { - "cross": "aether:blocks/flowers/barkshroom" - } -} diff --git a/src/main/resources/assets/aether/models/block/flowers/barkshroom_snowy.json b/src/main/resources/assets/aether/models/block/flowers/barkshroom_snowy.json deleted file mode 100644 index a83a3fc07d..0000000000 --- a/src/main/resources/assets/aether/models/block/flowers/barkshroom_snowy.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "parent": "aether:block/crossbase", - "textures": { - "cross": "aether:blocks/flowers/barkshroom", - "texture": "aether:blocks/highlands_snow" - } -} diff --git a/src/main/resources/assets/aether/models/block/flowers/blue_swingtip.json b/src/main/resources/assets/aether/models/block/flowers/blue_swingtip.json deleted file mode 100644 index 0e08734e07..0000000000 --- a/src/main/resources/assets/aether/models/block/flowers/blue_swingtip.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/cross", - "textures": { - "cross": "aether:blocks/flowers/blue_swingtip" - } -} diff --git a/src/main/resources/assets/aether/models/block/flowers/blue_swingtip_snowy.json b/src/main/resources/assets/aether/models/block/flowers/blue_swingtip_snowy.json deleted file mode 100644 index b894bfe771..0000000000 --- a/src/main/resources/assets/aether/models/block/flowers/blue_swingtip_snowy.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "parent": "aether:block/crossbase", - "textures": { - "cross": "aether:blocks/flowers/blue_swingtip", - "texture": "aether:blocks/highlands_snow" - } -} diff --git a/src/main/resources/assets/aether/models/block/flowers/burstblossom.json b/src/main/resources/assets/aether/models/block/flowers/burstblossom.json deleted file mode 100644 index ae28bae339..0000000000 --- a/src/main/resources/assets/aether/models/block/flowers/burstblossom.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/cross", - "textures": { - "cross": "aether:blocks/flowers/burstblossom" - } -} diff --git a/src/main/resources/assets/aether/models/block/flowers/burstblossom_snowy.json b/src/main/resources/assets/aether/models/block/flowers/burstblossom_snowy.json deleted file mode 100644 index c3eec4da8a..0000000000 --- a/src/main/resources/assets/aether/models/block/flowers/burstblossom_snowy.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "parent": "aether:block/crossbase", - "textures": { - "cross": "aether:blocks/flowers/burstblossom", - "texture": "aether:blocks/highlands_snow" - } -} diff --git a/src/main/resources/assets/aether/models/block/flowers/forgotten_rose.json b/src/main/resources/assets/aether/models/block/flowers/forgotten_rose.json deleted file mode 100644 index c8125d0fd0..0000000000 --- a/src/main/resources/assets/aether/models/block/flowers/forgotten_rose.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/cross", - "textures": { - "cross": "aether:blocks/flowers/forgotten_rose" - } -} diff --git a/src/main/resources/assets/aether/models/block/flowers/forgotten_rose_snowy.json b/src/main/resources/assets/aether/models/block/flowers/forgotten_rose_snowy.json deleted file mode 100644 index 85f7bf06c6..0000000000 --- a/src/main/resources/assets/aether/models/block/flowers/forgotten_rose_snowy.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "parent": "aether:block/crossbase", - "textures": { - "cross": "aether:blocks/flowers/forgotten_rose", - "texture": "aether:blocks/highlands_snow" - } -} diff --git a/src/main/resources/assets/aether/models/block/flowers/green_swingtip.json b/src/main/resources/assets/aether/models/block/flowers/green_swingtip.json deleted file mode 100644 index cc19762442..0000000000 --- a/src/main/resources/assets/aether/models/block/flowers/green_swingtip.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/cross", - "textures": { - "cross": "aether:blocks/flowers/green_swingtip" - } -} diff --git a/src/main/resources/assets/aether/models/block/flowers/green_swingtip_snowy.json b/src/main/resources/assets/aether/models/block/flowers/green_swingtip_snowy.json deleted file mode 100644 index d47e671e30..0000000000 --- a/src/main/resources/assets/aether/models/block/flowers/green_swingtip_snowy.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "parent": "aether:block/crossbase", - "textures": { - "cross": "aether:blocks/flowers/green_swingtip", - "texture": "aether:blocks/highlands_snow" - } -} diff --git a/src/main/resources/assets/aether/models/block/flowers/highlands_tulips.json b/src/main/resources/assets/aether/models/block/flowers/highlands_tulips.json deleted file mode 100644 index 43bc0fd199..0000000000 --- a/src/main/resources/assets/aether/models/block/flowers/highlands_tulips.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/cross", - "textures": { - "cross": "aether:blocks/flowers/highlands_tulips" - } -} diff --git a/src/main/resources/assets/aether/models/block/flowers/highlands_tulips_snowy.json b/src/main/resources/assets/aether/models/block/flowers/highlands_tulips_snowy.json deleted file mode 100644 index 9ee568702c..0000000000 --- a/src/main/resources/assets/aether/models/block/flowers/highlands_tulips_snowy.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "parent": "aether:block/crossbase", - "textures": { - "cross": "aether:blocks/flowers/highlands_tulips", - "texture": "aether:blocks/highlands_snow" - } -} diff --git a/src/main/resources/assets/aether/models/block/flowers/irradiated_flower.json b/src/main/resources/assets/aether/models/block/flowers/irradiated_flower.json deleted file mode 100644 index 2a4bae57a4..0000000000 --- a/src/main/resources/assets/aether/models/block/flowers/irradiated_flower.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/cross", - "textures": { - "cross": "aether:blocks/flowers/irradiated_flower" - } -} diff --git a/src/main/resources/assets/aether/models/block/flowers/irradiated_flower_snowy.json b/src/main/resources/assets/aether/models/block/flowers/irradiated_flower_snowy.json deleted file mode 100644 index c93e73bfdf..0000000000 --- a/src/main/resources/assets/aether/models/block/flowers/irradiated_flower_snowy.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "parent": "aether:block/crossbase", - "textures": { - "cross": "aether:blocks/flowers/irradiated_flower", - "texture": "aether:blocks/highlands_snow" - } -} diff --git a/src/main/resources/assets/aether/models/block/flowers/magnetic_shroom.json b/src/main/resources/assets/aether/models/block/flowers/magnetic_shroom.json deleted file mode 100644 index 1d09ff5910..0000000000 --- a/src/main/resources/assets/aether/models/block/flowers/magnetic_shroom.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/cross", - "textures": { - "cross": "aether:blocks/flowers/magnetic_shroom" - } -} diff --git a/src/main/resources/assets/aether/models/block/flowers/magnetic_shroom_snowy.json b/src/main/resources/assets/aether/models/block/flowers/magnetic_shroom_snowy.json deleted file mode 100644 index 9f5c023bf2..0000000000 --- a/src/main/resources/assets/aether/models/block/flowers/magnetic_shroom_snowy.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "parent": "aether:block/crossbase", - "textures": { - "cross": "aether:blocks/flowers/magnetic_shroom", - "texture": "aether:blocks/highlands_snow" - } -} diff --git a/src/main/resources/assets/aether/models/block/flowers/neverbloom.json b/src/main/resources/assets/aether/models/block/flowers/neverbloom.json deleted file mode 100644 index a8846b4da5..0000000000 --- a/src/main/resources/assets/aether/models/block/flowers/neverbloom.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/cross", - "textures": { - "cross": "aether:blocks/flowers/neverbloom" - } -} diff --git a/src/main/resources/assets/aether/models/block/flowers/neverbloom_snowy.json b/src/main/resources/assets/aether/models/block/flowers/neverbloom_snowy.json deleted file mode 100644 index 5b6d391db6..0000000000 --- a/src/main/resources/assets/aether/models/block/flowers/neverbloom_snowy.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "parent": "aether:block/crossbase", - "textures": { - "cross": "aether:blocks/flowers/neverbloom", - "texture": "aether:blocks/highlands_snow" - } -} diff --git a/src/main/resources/assets/aether/models/block/flowers/pink_swingtip.json b/src/main/resources/assets/aether/models/block/flowers/pink_swingtip.json deleted file mode 100644 index 9890bd7428..0000000000 --- a/src/main/resources/assets/aether/models/block/flowers/pink_swingtip.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/cross", - "textures": { - "cross": "aether:blocks/flowers/pink_swingtip" - } -} diff --git a/src/main/resources/assets/aether/models/block/flowers/pink_swingtip_snowy.json b/src/main/resources/assets/aether/models/block/flowers/pink_swingtip_snowy.json deleted file mode 100644 index ca9c253336..0000000000 --- a/src/main/resources/assets/aether/models/block/flowers/pink_swingtip_snowy.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "parent": "aether:block/crossbase", - "textures": { - "cross": "aether:blocks/flowers/pink_swingtip", - "texture": "aether:blocks/highlands_snow" - } -} diff --git a/src/main/resources/assets/aether/models/block/flowers/purple_flower.json b/src/main/resources/assets/aether/models/block/flowers/purple_flower.json deleted file mode 100644 index 943c9f97ee..0000000000 --- a/src/main/resources/assets/aether/models/block/flowers/purple_flower.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/cross", - "textures": { - "cross": "aether:blocks/flowers/purple_flower" - } -} diff --git a/src/main/resources/assets/aether/models/block/flowers/purple_flower_snowy.json b/src/main/resources/assets/aether/models/block/flowers/purple_flower_snowy.json deleted file mode 100644 index 2b91407beb..0000000000 --- a/src/main/resources/assets/aether/models/block/flowers/purple_flower_snowy.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "parent": "aether:block/crossbase", - "textures": { - "cross": "aether:blocks/flowers/purple_flower", - "texture": "aether:blocks/highlands_snow" - } -} diff --git a/src/main/resources/assets/aether/models/block/flowers/quickshoot.json b/src/main/resources/assets/aether/models/block/flowers/quickshoot.json deleted file mode 100644 index ce59f42a43..0000000000 --- a/src/main/resources/assets/aether/models/block/flowers/quickshoot.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/cross", - "textures": { - "cross": "aether:blocks/flowers/quickshoot" - } -} diff --git a/src/main/resources/assets/aether/models/block/flowers/quickshoot_snowy.json b/src/main/resources/assets/aether/models/block/flowers/quickshoot_snowy.json deleted file mode 100644 index 1c140a7b8a..0000000000 --- a/src/main/resources/assets/aether/models/block/flowers/quickshoot_snowy.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "parent": "aether:block/crossbase", - "textures": { - "cross": "aether:blocks/flowers/quickshoot", - "texture": "aether:blocks/highlands_snow" - } -} diff --git a/src/main/resources/assets/aether/models/block/flowers/stoneshroom.json b/src/main/resources/assets/aether/models/block/flowers/stoneshroom.json deleted file mode 100644 index c30c7b058c..0000000000 --- a/src/main/resources/assets/aether/models/block/flowers/stoneshroom.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/cross", - "textures": { - "cross": "aether:blocks/flowers/stoneshroom" - } -} diff --git a/src/main/resources/assets/aether/models/block/flowers/stoneshroom_snowy.json b/src/main/resources/assets/aether/models/block/flowers/stoneshroom_snowy.json deleted file mode 100644 index 572af2d5e6..0000000000 --- a/src/main/resources/assets/aether/models/block/flowers/stoneshroom_snowy.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "parent": "aether:block/crossbase", - "textures": { - "cross": "aether:blocks/flowers/stoneshroom", - "texture": "aether:blocks/highlands_snow" - } -} diff --git a/src/main/resources/assets/aether/models/block/flowers/white_rose.json b/src/main/resources/assets/aether/models/block/flowers/white_rose.json deleted file mode 100644 index 0abd11c253..0000000000 --- a/src/main/resources/assets/aether/models/block/flowers/white_rose.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/cross", - "textures": { - "cross": "aether:blocks/flowers/white_rose" - } -} diff --git a/src/main/resources/assets/aether/models/block/flowers/white_rose_snowy.json b/src/main/resources/assets/aether/models/block/flowers/white_rose_snowy.json deleted file mode 100644 index 95e6ba4fd1..0000000000 --- a/src/main/resources/assets/aether/models/block/flowers/white_rose_snowy.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "parent": "aether:block/crossbase", - "textures": { - "cross": "aether:blocks/flowers/white_rose", - "texture": "aether:blocks/highlands_snow" - } -} diff --git a/src/main/resources/assets/aether/models/block/glass_pane/crude_scatterglass/noside.json b/src/main/resources/assets/aether/models/block/glass_pane/crude_scatterglass/noside.json deleted file mode 100644 index f3eb1f1d2c..0000000000 --- a/src/main/resources/assets/aether/models/block/glass_pane/crude_scatterglass/noside.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/glass_pane_noside", - "textures": { - "pane": "aether:blocks/crude_scatterglass" - } -} diff --git a/src/main/resources/assets/aether/models/block/glass_pane/crude_scatterglass/noside_alt.json b/src/main/resources/assets/aether/models/block/glass_pane/crude_scatterglass/noside_alt.json deleted file mode 100644 index 0131b1e938..0000000000 --- a/src/main/resources/assets/aether/models/block/glass_pane/crude_scatterglass/noside_alt.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/glass_pane_noside_alt", - "textures": { - "pane": "aether:blocks/crude_scatterglass" - } -} diff --git a/src/main/resources/assets/aether/models/block/glass_pane/crude_scatterglass/post.json b/src/main/resources/assets/aether/models/block/glass_pane/crude_scatterglass/post.json deleted file mode 100644 index 74246438ac..0000000000 --- a/src/main/resources/assets/aether/models/block/glass_pane/crude_scatterglass/post.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "parent": "block/glass_pane_post", - "textures": { - "edge": "aether:blocks/crude_scatterglass_pane_top", - "pane": "aether:blocks/crude_scatterglass" - } -} diff --git a/src/main/resources/assets/aether/models/block/glass_pane/crude_scatterglass/side.json b/src/main/resources/assets/aether/models/block/glass_pane/crude_scatterglass/side.json deleted file mode 100644 index 3542a65b2a..0000000000 --- a/src/main/resources/assets/aether/models/block/glass_pane/crude_scatterglass/side.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "parent": "block/glass_pane_side", - "textures": { - "edge": "aether:blocks/crude_scatterglass_pane_top", - "pane": "aether:blocks/crude_scatterglass" - } -} diff --git a/src/main/resources/assets/aether/models/block/glass_pane/crude_scatterglass/side_alt.json b/src/main/resources/assets/aether/models/block/glass_pane/crude_scatterglass/side_alt.json deleted file mode 100644 index cb361f387c..0000000000 --- a/src/main/resources/assets/aether/models/block/glass_pane/crude_scatterglass/side_alt.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "parent": "block/glass_pane_side_alt", - "textures": { - "edge": "aether:blocks/crude_scatterglass_pane_top", - "pane": "aether:blocks/crude_scatterglass" - } -} diff --git a/src/main/resources/assets/aether/models/block/glass_pane/crude_scatterglass_arkenium/noside.json b/src/main/resources/assets/aether/models/block/glass_pane/crude_scatterglass_arkenium/noside.json deleted file mode 100644 index dde775b010..0000000000 --- a/src/main/resources/assets/aether/models/block/glass_pane/crude_scatterglass_arkenium/noside.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/glass_pane_noside", - "textures": { - "pane": "aether:blocks/arkenium_frame_crude_scatterglass" - } -} diff --git a/src/main/resources/assets/aether/models/block/glass_pane/crude_scatterglass_arkenium/noside_alt.json b/src/main/resources/assets/aether/models/block/glass_pane/crude_scatterglass_arkenium/noside_alt.json deleted file mode 100644 index d4fa416b8f..0000000000 --- a/src/main/resources/assets/aether/models/block/glass_pane/crude_scatterglass_arkenium/noside_alt.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/glass_pane_noside_alt", - "textures": { - "pane": "aether:blocks/arkenium_frame_crude_scatterglass" - } -} diff --git a/src/main/resources/assets/aether/models/block/glass_pane/crude_scatterglass_arkenium/post.json b/src/main/resources/assets/aether/models/block/glass_pane/crude_scatterglass_arkenium/post.json deleted file mode 100644 index e2643c46a5..0000000000 --- a/src/main/resources/assets/aether/models/block/glass_pane/crude_scatterglass_arkenium/post.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "parent": "block/glass_pane_post", - "textures": { - "edge": "aether:blocks/arkenium_frame_crude_scatterglass_pane_top", - "pane": "aether:blocks/arkenium_frame_crude_scatterglass" - } -} diff --git a/src/main/resources/assets/aether/models/block/glass_pane/crude_scatterglass_arkenium/side.json b/src/main/resources/assets/aether/models/block/glass_pane/crude_scatterglass_arkenium/side.json deleted file mode 100644 index 293e2ac3e1..0000000000 --- a/src/main/resources/assets/aether/models/block/glass_pane/crude_scatterglass_arkenium/side.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "parent": "block/glass_pane_side", - "textures": { - "edge": "aether:blocks/arkenium_frame_crude_scatterglass_pane_top", - "pane": "aether:blocks/arkenium_frame_crude_scatterglass" - } -} diff --git a/src/main/resources/assets/aether/models/block/glass_pane/crude_scatterglass_arkenium/side_alt.json b/src/main/resources/assets/aether/models/block/glass_pane/crude_scatterglass_arkenium/side_alt.json deleted file mode 100644 index 94a88a1500..0000000000 --- a/src/main/resources/assets/aether/models/block/glass_pane/crude_scatterglass_arkenium/side_alt.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "parent": "block/glass_pane_side_alt", - "textures": { - "edge": "aether:blocks/arkenium_frame_crude_scatterglass_pane_top", - "pane": "aether:blocks/arkenium_frame_crude_scatterglass" - } -} diff --git a/src/main/resources/assets/aether/models/block/glass_pane/crude_scatterglass_skyroot/noside.json b/src/main/resources/assets/aether/models/block/glass_pane/crude_scatterglass_skyroot/noside.json deleted file mode 100644 index c88f306c7f..0000000000 --- a/src/main/resources/assets/aether/models/block/glass_pane/crude_scatterglass_skyroot/noside.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/glass_pane_noside", - "textures": { - "pane": "aether:blocks/skyroot_frame_crude_scatterglass" - } -} diff --git a/src/main/resources/assets/aether/models/block/glass_pane/crude_scatterglass_skyroot/noside_alt.json b/src/main/resources/assets/aether/models/block/glass_pane/crude_scatterglass_skyroot/noside_alt.json deleted file mode 100644 index 007639cce3..0000000000 --- a/src/main/resources/assets/aether/models/block/glass_pane/crude_scatterglass_skyroot/noside_alt.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/glass_pane_noside_alt", - "textures": { - "pane": "aether:blocks/skyroot_frame_crude_scatterglass" - } -} diff --git a/src/main/resources/assets/aether/models/block/glass_pane/crude_scatterglass_skyroot/post.json b/src/main/resources/assets/aether/models/block/glass_pane/crude_scatterglass_skyroot/post.json deleted file mode 100644 index 3ca3b9dc89..0000000000 --- a/src/main/resources/assets/aether/models/block/glass_pane/crude_scatterglass_skyroot/post.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "parent": "block/glass_pane_post", - "textures": { - "edge": "aether:blocks/skyroot_frame_crude_scatterglass_pane_top", - "pane": "aether:blocks/skyroot_frame_crude_scatterglass" - } -} diff --git a/src/main/resources/assets/aether/models/block/glass_pane/crude_scatterglass_skyroot/side.json b/src/main/resources/assets/aether/models/block/glass_pane/crude_scatterglass_skyroot/side.json deleted file mode 100644 index d8309f1020..0000000000 --- a/src/main/resources/assets/aether/models/block/glass_pane/crude_scatterglass_skyroot/side.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "parent": "block/glass_pane_side", - "textures": { - "edge": "aether:blocks/skyroot_frame_crude_scatterglass_pane_top", - "pane": "aether:blocks/skyroot_frame_crude_scatterglass" - } -} diff --git a/src/main/resources/assets/aether/models/block/glass_pane/crude_scatterglass_skyroot/side_alt.json b/src/main/resources/assets/aether/models/block/glass_pane/crude_scatterglass_skyroot/side_alt.json deleted file mode 100644 index 17abbf3485..0000000000 --- a/src/main/resources/assets/aether/models/block/glass_pane/crude_scatterglass_skyroot/side_alt.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "parent": "block/glass_pane_side_alt", - "textures": { - "edge": "aether:blocks/skyroot_frame_crude_scatterglass_pane_top", - "pane": "aether:blocks/skyroot_frame_crude_scatterglass" - } -} diff --git a/src/main/resources/assets/aether/models/block/glass_pane/quicksoil_glass/noside.json b/src/main/resources/assets/aether/models/block/glass_pane/quicksoil_glass/noside.json deleted file mode 100644 index a36f939634..0000000000 --- a/src/main/resources/assets/aether/models/block/glass_pane/quicksoil_glass/noside.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/glass_pane_noside", - "textures": { - "pane": "aether:blocks/quicksoil_glass" - } -} diff --git a/src/main/resources/assets/aether/models/block/glass_pane/quicksoil_glass/noside_alt.json b/src/main/resources/assets/aether/models/block/glass_pane/quicksoil_glass/noside_alt.json deleted file mode 100644 index 056149f107..0000000000 --- a/src/main/resources/assets/aether/models/block/glass_pane/quicksoil_glass/noside_alt.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/glass_pane_noside_alt", - "textures": { - "pane": "aether:blocks/quicksoil_glass" - } -} diff --git a/src/main/resources/assets/aether/models/block/glass_pane/quicksoil_glass/post.json b/src/main/resources/assets/aether/models/block/glass_pane/quicksoil_glass/post.json deleted file mode 100644 index 87d8464ad8..0000000000 --- a/src/main/resources/assets/aether/models/block/glass_pane/quicksoil_glass/post.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "parent": "block/glass_pane_post", - "textures": { - "edge": "aether:blocks/quicksoil_glass_pane_top", - "pane": "aether:blocks/quicksoil_glass" - } -} diff --git a/src/main/resources/assets/aether/models/block/glass_pane/quicksoil_glass/side.json b/src/main/resources/assets/aether/models/block/glass_pane/quicksoil_glass/side.json deleted file mode 100644 index 8264bbffc7..0000000000 --- a/src/main/resources/assets/aether/models/block/glass_pane/quicksoil_glass/side.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "parent": "block/glass_pane_side", - "textures": { - "edge": "aether:blocks/quicksoil_glass_pane_top", - "pane": "aether:blocks/quicksoil_glass" - } -} diff --git a/src/main/resources/assets/aether/models/block/glass_pane/quicksoil_glass/side_alt.json b/src/main/resources/assets/aether/models/block/glass_pane/quicksoil_glass/side_alt.json deleted file mode 100644 index a87f4cf42d..0000000000 --- a/src/main/resources/assets/aether/models/block/glass_pane/quicksoil_glass/side_alt.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "parent": "block/glass_pane_side_alt", - "textures": { - "edge": "aether:blocks/quicksoil_glass_pane_top", - "pane": "aether:blocks/quicksoil_glass" - } -} diff --git a/src/main/resources/assets/aether/models/block/glass_pane/quicksoil_glass_arkenium/noside.json b/src/main/resources/assets/aether/models/block/glass_pane/quicksoil_glass_arkenium/noside.json deleted file mode 100644 index 011baa86c1..0000000000 --- a/src/main/resources/assets/aether/models/block/glass_pane/quicksoil_glass_arkenium/noside.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/glass_pane_noside", - "textures": { - "pane": "aether:blocks/arkenium_frame_quicksoil_glass" - } -} diff --git a/src/main/resources/assets/aether/models/block/glass_pane/quicksoil_glass_arkenium/noside_alt.json b/src/main/resources/assets/aether/models/block/glass_pane/quicksoil_glass_arkenium/noside_alt.json deleted file mode 100644 index a7b7f45791..0000000000 --- a/src/main/resources/assets/aether/models/block/glass_pane/quicksoil_glass_arkenium/noside_alt.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/glass_pane_noside_alt", - "textures": { - "pane": "aether:blocks/arkenium_frame_quicksoil_glass" - } -} diff --git a/src/main/resources/assets/aether/models/block/glass_pane/quicksoil_glass_arkenium/post.json b/src/main/resources/assets/aether/models/block/glass_pane/quicksoil_glass_arkenium/post.json deleted file mode 100644 index d9ad326a7e..0000000000 --- a/src/main/resources/assets/aether/models/block/glass_pane/quicksoil_glass_arkenium/post.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "parent": "block/glass_pane_post", - "textures": { - "edge": "aether:blocks/arkenium_frame_quicksoil_glass_pane_top", - "pane": "aether:blocks/arkenium_frame_quicksoil_glass" - } -} diff --git a/src/main/resources/assets/aether/models/block/glass_pane/quicksoil_glass_arkenium/side.json b/src/main/resources/assets/aether/models/block/glass_pane/quicksoil_glass_arkenium/side.json deleted file mode 100644 index 486f4f690b..0000000000 --- a/src/main/resources/assets/aether/models/block/glass_pane/quicksoil_glass_arkenium/side.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "parent": "block/glass_pane_side", - "textures": { - "edge": "aether:blocks/arkenium_frame_quicksoil_glass_pane_top", - "pane": "aether:blocks/arkenium_frame_quicksoil_glass" - } -} diff --git a/src/main/resources/assets/aether/models/block/glass_pane/quicksoil_glass_arkenium/side_alt.json b/src/main/resources/assets/aether/models/block/glass_pane/quicksoil_glass_arkenium/side_alt.json deleted file mode 100644 index 8bb5611cdb..0000000000 --- a/src/main/resources/assets/aether/models/block/glass_pane/quicksoil_glass_arkenium/side_alt.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "parent": "block/glass_pane_side_alt", - "textures": { - "edge": "aether:blocks/arkenium_frame_quicksoil_glass_pane_top", - "pane": "aether:blocks/arkenium_frame_quicksoil_glass" - } -} diff --git a/src/main/resources/assets/aether/models/block/glass_pane/quicksoil_glass_skyroot/noside.json b/src/main/resources/assets/aether/models/block/glass_pane/quicksoil_glass_skyroot/noside.json deleted file mode 100644 index 2c6588ae2e..0000000000 --- a/src/main/resources/assets/aether/models/block/glass_pane/quicksoil_glass_skyroot/noside.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/glass_pane_noside", - "textures": { - "pane": "aether:blocks/skyroot_frame_quicksoil_glass" - } -} diff --git a/src/main/resources/assets/aether/models/block/glass_pane/quicksoil_glass_skyroot/noside_alt.json b/src/main/resources/assets/aether/models/block/glass_pane/quicksoil_glass_skyroot/noside_alt.json deleted file mode 100644 index b71bdd7075..0000000000 --- a/src/main/resources/assets/aether/models/block/glass_pane/quicksoil_glass_skyroot/noside_alt.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/glass_pane_noside_alt", - "textures": { - "pane": "aether:blocks/skyroot_frame_quicksoil_glass" - } -} diff --git a/src/main/resources/assets/aether/models/block/glass_pane/quicksoil_glass_skyroot/post.json b/src/main/resources/assets/aether/models/block/glass_pane/quicksoil_glass_skyroot/post.json deleted file mode 100644 index 7c5ae08899..0000000000 --- a/src/main/resources/assets/aether/models/block/glass_pane/quicksoil_glass_skyroot/post.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "parent": "block/glass_pane_post", - "textures": { - "edge": "aether:blocks/skyroot_frame_quicksoil_glass_pane_top", - "pane": "aether:blocks/skyroot_frame_quicksoil_glass" - } -} diff --git a/src/main/resources/assets/aether/models/block/glass_pane/quicksoil_glass_skyroot/side.json b/src/main/resources/assets/aether/models/block/glass_pane/quicksoil_glass_skyroot/side.json deleted file mode 100644 index b36c727ab4..0000000000 --- a/src/main/resources/assets/aether/models/block/glass_pane/quicksoil_glass_skyroot/side.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "parent": "block/glass_pane_side", - "textures": { - "edge": "aether:blocks/skyroot_frame_quicksoil_glass_pane_top", - "pane": "aether:blocks/skyroot_frame_quicksoil_glass" - } -} diff --git a/src/main/resources/assets/aether/models/block/glass_pane/quicksoil_glass_skyroot/side_alt.json b/src/main/resources/assets/aether/models/block/glass_pane/quicksoil_glass_skyroot/side_alt.json deleted file mode 100644 index ac75af42ad..0000000000 --- a/src/main/resources/assets/aether/models/block/glass_pane/quicksoil_glass_skyroot/side_alt.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "parent": "block/glass_pane_side_alt", - "textures": { - "edge": "aether:blocks/skyroot_frame_quicksoil_glass_pane_top", - "pane": "aether:blocks/skyroot_frame_quicksoil_glass" - } -} diff --git a/src/main/resources/assets/aether/models/block/glass_pane/scatterglass/noside.json b/src/main/resources/assets/aether/models/block/glass_pane/scatterglass/noside.json deleted file mode 100644 index e20e762552..0000000000 --- a/src/main/resources/assets/aether/models/block/glass_pane/scatterglass/noside.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/glass_pane_noside", - "textures": { - "pane": "aether:blocks/scatterglass" - } -} diff --git a/src/main/resources/assets/aether/models/block/glass_pane/scatterglass/noside_alt.json b/src/main/resources/assets/aether/models/block/glass_pane/scatterglass/noside_alt.json deleted file mode 100644 index ed3e028842..0000000000 --- a/src/main/resources/assets/aether/models/block/glass_pane/scatterglass/noside_alt.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/glass_pane_noside_alt", - "textures": { - "pane": "aether:blocks/scatterglass" - } -} diff --git a/src/main/resources/assets/aether/models/block/glass_pane/scatterglass/post.json b/src/main/resources/assets/aether/models/block/glass_pane/scatterglass/post.json deleted file mode 100644 index b45d0754dc..0000000000 --- a/src/main/resources/assets/aether/models/block/glass_pane/scatterglass/post.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "parent": "block/glass_pane_post", - "textures": { - "edge": "aether:blocks/scatterglass_pane_top", - "pane": "aether:blocks/scatterglass" - } -} diff --git a/src/main/resources/assets/aether/models/block/glass_pane/scatterglass/side.json b/src/main/resources/assets/aether/models/block/glass_pane/scatterglass/side.json deleted file mode 100644 index 13fe92088f..0000000000 --- a/src/main/resources/assets/aether/models/block/glass_pane/scatterglass/side.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "parent": "block/glass_pane_side", - "textures": { - "edge": "aether:blocks/scatterglass_pane_top", - "pane": "aether:blocks/scatterglass" - } -} diff --git a/src/main/resources/assets/aether/models/block/glass_pane/scatterglass/side_alt.json b/src/main/resources/assets/aether/models/block/glass_pane/scatterglass/side_alt.json deleted file mode 100644 index 645343dd2b..0000000000 --- a/src/main/resources/assets/aether/models/block/glass_pane/scatterglass/side_alt.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "parent": "block/glass_pane_side_alt", - "textures": { - "edge": "aether:blocks/scatterglass_pane_top", - "pane": "aether:blocks/scatterglass" - } -} diff --git a/src/main/resources/assets/aether/models/block/glass_pane/scatterglass_arkenium/noside.json b/src/main/resources/assets/aether/models/block/glass_pane/scatterglass_arkenium/noside.json deleted file mode 100644 index 844ccf87c3..0000000000 --- a/src/main/resources/assets/aether/models/block/glass_pane/scatterglass_arkenium/noside.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/glass_pane_noside", - "textures": { - "pane": "aether:blocks/arkenium_frame_scatterglass" - } -} diff --git a/src/main/resources/assets/aether/models/block/glass_pane/scatterglass_arkenium/noside_alt.json b/src/main/resources/assets/aether/models/block/glass_pane/scatterglass_arkenium/noside_alt.json deleted file mode 100644 index 5da7c42e55..0000000000 --- a/src/main/resources/assets/aether/models/block/glass_pane/scatterglass_arkenium/noside_alt.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/glass_pane_noside_alt", - "textures": { - "pane": "aether:blocks/arkenium_frame_scatterglass" - } -} diff --git a/src/main/resources/assets/aether/models/block/glass_pane/scatterglass_arkenium/post.json b/src/main/resources/assets/aether/models/block/glass_pane/scatterglass_arkenium/post.json deleted file mode 100644 index 6819d40c86..0000000000 --- a/src/main/resources/assets/aether/models/block/glass_pane/scatterglass_arkenium/post.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "parent": "block/glass_pane_post", - "textures": { - "edge": "aether:blocks/arkenium_frame_scatterglass_pane_top", - "pane": "aether:blocks/arkenium_frame_scatterglass" - } -} diff --git a/src/main/resources/assets/aether/models/block/glass_pane/scatterglass_arkenium/side.json b/src/main/resources/assets/aether/models/block/glass_pane/scatterglass_arkenium/side.json deleted file mode 100644 index 85920b3332..0000000000 --- a/src/main/resources/assets/aether/models/block/glass_pane/scatterglass_arkenium/side.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "parent": "block/glass_pane_side", - "textures": { - "edge": "aether:blocks/arkenium_frame_scatterglass_pane_top", - "pane": "aether:blocks/arkenium_frame_scatterglass" - } -} diff --git a/src/main/resources/assets/aether/models/block/glass_pane/scatterglass_arkenium/side_alt.json b/src/main/resources/assets/aether/models/block/glass_pane/scatterglass_arkenium/side_alt.json deleted file mode 100644 index 2eef083ee1..0000000000 --- a/src/main/resources/assets/aether/models/block/glass_pane/scatterglass_arkenium/side_alt.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "parent": "block/glass_pane_side_alt", - "textures": { - "edge": "aether:blocks/arkenium_frame_scatterglass_pane_top", - "pane": "aether:blocks/arkenium_frame_scatterglass" - } -} diff --git a/src/main/resources/assets/aether/models/block/glass_pane/scatterglass_skyroot/noside.json b/src/main/resources/assets/aether/models/block/glass_pane/scatterglass_skyroot/noside.json deleted file mode 100644 index 2592d48e2a..0000000000 --- a/src/main/resources/assets/aether/models/block/glass_pane/scatterglass_skyroot/noside.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/glass_pane_noside", - "textures": { - "pane": "aether:blocks/skyroot_frame_scatterglass" - } -} diff --git a/src/main/resources/assets/aether/models/block/glass_pane/scatterglass_skyroot/noside_alt.json b/src/main/resources/assets/aether/models/block/glass_pane/scatterglass_skyroot/noside_alt.json deleted file mode 100644 index 52856701cd..0000000000 --- a/src/main/resources/assets/aether/models/block/glass_pane/scatterglass_skyroot/noside_alt.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/glass_pane_noside_alt", - "textures": { - "pane": "aether:blocks/skyroot_frame_scatterglass" - } -} diff --git a/src/main/resources/assets/aether/models/block/glass_pane/scatterglass_skyroot/post.json b/src/main/resources/assets/aether/models/block/glass_pane/scatterglass_skyroot/post.json deleted file mode 100644 index 1296b76871..0000000000 --- a/src/main/resources/assets/aether/models/block/glass_pane/scatterglass_skyroot/post.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "parent": "block/glass_pane_post", - "textures": { - "edge": "aether:blocks/skyroot_frame_scatterglass_pane_top", - "pane": "aether:blocks/skyroot_frame_scatterglass" - } -} diff --git a/src/main/resources/assets/aether/models/block/glass_pane/scatterglass_skyroot/side.json b/src/main/resources/assets/aether/models/block/glass_pane/scatterglass_skyroot/side.json deleted file mode 100644 index 21c83b53b7..0000000000 --- a/src/main/resources/assets/aether/models/block/glass_pane/scatterglass_skyroot/side.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "parent": "block/glass_pane_side", - "textures": { - "edge": "aether:blocks/skyroot_frame_scatterglass_pane_top", - "pane": "aether:blocks/skyroot_frame_scatterglass" - } -} diff --git a/src/main/resources/assets/aether/models/block/glass_pane/scatterglass_skyroot/side_alt.json b/src/main/resources/assets/aether/models/block/glass_pane/scatterglass_skyroot/side_alt.json deleted file mode 100644 index 94d3b5dbcc..0000000000 --- a/src/main/resources/assets/aether/models/block/glass_pane/scatterglass_skyroot/side_alt.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "parent": "block/glass_pane_side_alt", - "textures": { - "edge": "aether:blocks/skyroot_frame_scatterglass_pane_top", - "pane": "aether:blocks/skyroot_frame_scatterglass" - } -} diff --git a/src/main/resources/assets/aether/models/block/grass/aether_grass.json b/src/main/resources/assets/aether/models/block/grass/aether_grass.json deleted file mode 100644 index ee454bb962..0000000000 --- a/src/main/resources/assets/aether/models/block/grass/aether_grass.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "block/cube_bottom_top", - "textures": { - "bottom": "aether:blocks/aether_dirt", - "top": "aether:blocks/grass/aether_grass_top", - "side": "aether:blocks/grass/aether_grass_side" - } -} diff --git a/src/main/resources/assets/aether/models/block/grass/aether_grass_snowed.json b/src/main/resources/assets/aether/models/block/grass/aether_grass_snowed.json deleted file mode 100644 index fcd492b1f1..0000000000 --- a/src/main/resources/assets/aether/models/block/grass/aether_grass_snowed.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "block/cube_bottom_top", - "textures": { - "bottom": "aether:blocks/aether_dirt", - "top": "aether:blocks/highlands_snow", - "side": "aether:blocks/grass/aether_grass_side_snowed" - } -} diff --git a/src/main/resources/assets/aether/models/block/grass/arctic_grass.json b/src/main/resources/assets/aether/models/block/grass/arctic_grass.json deleted file mode 100644 index 7fcf05655b..0000000000 --- a/src/main/resources/assets/aether/models/block/grass/arctic_grass.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "block/cube_bottom_top", - "textures": { - "bottom": "aether:blocks/aether_dirt", - "top": "aether:blocks/grass/arctic_grass_top", - "side": "aether:blocks/grass/arctic_grass_side" - } -} diff --git a/src/main/resources/assets/aether/models/block/grass/enchanted_grass.json b/src/main/resources/assets/aether/models/block/grass/enchanted_grass.json deleted file mode 100644 index f0d881dc95..0000000000 --- a/src/main/resources/assets/aether/models/block/grass/enchanted_grass.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "block/cube_bottom_top", - "textures": { - "bottom": "aether:blocks/aether_dirt", - "top": "aether:blocks/grass/enchanted_grass_top", - "side": "aether:blocks/grass/enchanted_grass_side" - } -} diff --git a/src/main/resources/assets/aether/models/block/grass/irradiated_grass.json b/src/main/resources/assets/aether/models/block/grass/irradiated_grass.json deleted file mode 100644 index 2b3322051c..0000000000 --- a/src/main/resources/assets/aether/models/block/grass/irradiated_grass.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "block/cube_bottom_top", - "textures": { - "bottom": "aether:blocks/aether_dirt", - "top": "aether:blocks/grass/irradiated_grass_top", - "side": "aether:blocks/grass/irradiated_grass_side" - } -} diff --git a/src/main/resources/assets/aether/models/block/grass/magnetic_grass.json b/src/main/resources/assets/aether/models/block/grass/magnetic_grass.json deleted file mode 100644 index fd389cba71..0000000000 --- a/src/main/resources/assets/aether/models/block/grass/magnetic_grass.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "block/cube_bottom_top", - "textures": { - "bottom": "aether:blocks/aether_dirt", - "top": "aether:blocks/grass/magnetic_grass_top", - "side": "aether:blocks/grass/magnetic_grass_side" - } -} diff --git a/src/main/resources/assets/aether/models/block/gravitite_block.json b/src/main/resources/assets/aether/models/block/gravitite_block.json deleted file mode 100644 index 25dad2998c..0000000000 --- a/src/main/resources/assets/aether/models/block/gravitite_block.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/cube_all", - "textures": { - "all": "aether:blocks/gravitite_block" - } -} diff --git a/src/main/resources/assets/aether/models/block/greatroot_button/greatroot_button.json b/src/main/resources/assets/aether/models/block/greatroot_button/greatroot_button.json deleted file mode 100644 index c87f630d9c..0000000000 --- a/src/main/resources/assets/aether/models/block/greatroot_button/greatroot_button.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/button", - "textures": { - "texture": "aether:blocks/dark_skyroot_planks/greatroot_planks" - } -} diff --git a/src/main/resources/assets/aether/models/block/greatroot_button/greatroot_button_inventory.json b/src/main/resources/assets/aether/models/block/greatroot_button/greatroot_button_inventory.json deleted file mode 100644 index 24ebd639f8..0000000000 --- a/src/main/resources/assets/aether/models/block/greatroot_button/greatroot_button_inventory.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/button_inventory", - "textures": { - "texture": "aether:blocks/dark_skyroot_planks/greatroot_planks" - } -} diff --git a/src/main/resources/assets/aether/models/block/greatroot_button/greatroot_button_pressed.json b/src/main/resources/assets/aether/models/block/greatroot_button/greatroot_button_pressed.json deleted file mode 100644 index e2b957360e..0000000000 --- a/src/main/resources/assets/aether/models/block/greatroot_button/greatroot_button_pressed.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/button_pressed", - "textures": { - "texture": "aether:blocks/dark_skyroot_planks/greatroot_planks" - } -} diff --git a/src/main/resources/assets/aether/models/block/greatroot_fence/greatroot_fence_post.json b/src/main/resources/assets/aether/models/block/greatroot_fence/greatroot_fence_post.json deleted file mode 100644 index f26683821b..0000000000 --- a/src/main/resources/assets/aether/models/block/greatroot_fence/greatroot_fence_post.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/fence_post", - "textures": { - "texture": "aether:blocks/dark_skyroot_planks/greatroot_planks" - } -} diff --git a/src/main/resources/assets/aether/models/block/greatroot_fence/greatroot_fence_side.json b/src/main/resources/assets/aether/models/block/greatroot_fence/greatroot_fence_side.json deleted file mode 100644 index 8d2bf23f00..0000000000 --- a/src/main/resources/assets/aether/models/block/greatroot_fence/greatroot_fence_side.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/fence_side", - "textures": { - "texture": "aether:blocks/dark_skyroot_planks/greatroot_planks" - } -} diff --git a/src/main/resources/assets/aether/models/block/greatroot_fence_gate/greatroot_fence_gate_closed.json b/src/main/resources/assets/aether/models/block/greatroot_fence_gate/greatroot_fence_gate_closed.json deleted file mode 100644 index c64246029c..0000000000 --- a/src/main/resources/assets/aether/models/block/greatroot_fence_gate/greatroot_fence_gate_closed.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/fence_gate_closed", - "textures": { - "texture": "aether:blocks/dark_skyroot_planks/greatroot_planks" - } -} diff --git a/src/main/resources/assets/aether/models/block/greatroot_fence_gate/greatroot_fence_gate_open.json b/src/main/resources/assets/aether/models/block/greatroot_fence_gate/greatroot_fence_gate_open.json deleted file mode 100644 index ca93e95045..0000000000 --- a/src/main/resources/assets/aether/models/block/greatroot_fence_gate/greatroot_fence_gate_open.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/fence_gate_open", - "textures": { - "texture": "aether:blocks/dark_skyroot_planks/greatroot_planks" - } -} diff --git a/src/main/resources/assets/aether/models/block/greatroot_fence_gate/greatroot_wall_gate_closed.json b/src/main/resources/assets/aether/models/block/greatroot_fence_gate/greatroot_wall_gate_closed.json deleted file mode 100644 index 4ba940f0eb..0000000000 --- a/src/main/resources/assets/aether/models/block/greatroot_fence_gate/greatroot_wall_gate_closed.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/wall_gate_closed", - "textures": { - "texture": "aether:blocks/dark_skyroot_planks/greatroot_planks" - } -} diff --git a/src/main/resources/assets/aether/models/block/greatroot_fence_gate/greatroot_wall_gate_open.json b/src/main/resources/assets/aether/models/block/greatroot_fence_gate/greatroot_wall_gate_open.json deleted file mode 100644 index eea21ff54e..0000000000 --- a/src/main/resources/assets/aether/models/block/greatroot_fence_gate/greatroot_wall_gate_open.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/wall_gate_open", - "textures": { - "texture": "aether:blocks/dark_skyroot_planks/greatroot_planks" - } -} diff --git a/src/main/resources/assets/aether/models/block/greatroot_pressure_plate/greatroot_pressure_plate_down.json b/src/main/resources/assets/aether/models/block/greatroot_pressure_plate/greatroot_pressure_plate_down.json deleted file mode 100644 index 1435d2b5e0..0000000000 --- a/src/main/resources/assets/aether/models/block/greatroot_pressure_plate/greatroot_pressure_plate_down.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/pressure_plate_down", - "textures": { - "texture": "aether:blocks/dark_skyroot_planks/greatroot_planks" - } -} diff --git a/src/main/resources/assets/aether/models/block/greatroot_pressure_plate/greatroot_pressure_plate_up.json b/src/main/resources/assets/aether/models/block/greatroot_pressure_plate/greatroot_pressure_plate_up.json deleted file mode 100644 index f9f6e13dc7..0000000000 --- a/src/main/resources/assets/aether/models/block/greatroot_pressure_plate/greatroot_pressure_plate_up.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/pressure_plate_up", - "textures": { - "texture": "aether:blocks/dark_skyroot_planks/greatroot_planks" - } -} diff --git a/src/main/resources/assets/aether/models/block/hellfirestone_bricks/base_bricks.json b/src/main/resources/assets/aether/models/block/hellfirestone_bricks/base_bricks.json deleted file mode 100644 index 8fa8c75884..0000000000 --- a/src/main/resources/assets/aether/models/block/hellfirestone_bricks/base_bricks.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "parent": "block/cube_column", - "textures": { - "end": "aether:blocks/hellfirestone_bricks/hellfirestone_base_top", - "side": "aether:blocks/hellfirestone_bricks/hellfirestone_base_bricks" - } -} diff --git a/src/main/resources/assets/aether/models/block/hellfirestone_bricks/base_pillar.json b/src/main/resources/assets/aether/models/block/hellfirestone_bricks/base_pillar.json deleted file mode 100644 index 62627738cf..0000000000 --- a/src/main/resources/assets/aether/models/block/hellfirestone_bricks/base_pillar.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "parent": "block/cube_column", - "textures": { - "end": "aether:blocks/hellfirestone_bricks/hellfirestone_base_top", - "side": "aether:blocks/hellfirestone_bricks/hellfirestone_base_pillar" - } -} diff --git a/src/main/resources/assets/aether/models/block/hellfirestone_bricks/capstone_bricks.json b/src/main/resources/assets/aether/models/block/hellfirestone_bricks/capstone_bricks.json deleted file mode 100644 index 6ea6592e55..0000000000 --- a/src/main/resources/assets/aether/models/block/hellfirestone_bricks/capstone_bricks.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "parent": "block/cube_column", - "textures": { - "end": "aether:blocks/hellfirestone_bricks/hellfirestone_base_top", - "side": "aether:blocks/hellfirestone_bricks/hellfirestone_capstone_bricks" - } -} diff --git a/src/main/resources/assets/aether/models/block/hellfirestone_bricks/capstone_pillar.json b/src/main/resources/assets/aether/models/block/hellfirestone_bricks/capstone_pillar.json deleted file mode 100644 index 3fd327d302..0000000000 --- a/src/main/resources/assets/aether/models/block/hellfirestone_bricks/capstone_pillar.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "parent": "block/cube_column", - "textures": { - "end": "aether:blocks/hellfirestone_bricks/hellfirestone_base_top", - "side": "aether:blocks/hellfirestone_bricks/hellfirestone_capstone_pillar" - } -} diff --git a/src/main/resources/assets/aether/models/block/hellfirestone_bricks/flagstones.json b/src/main/resources/assets/aether/models/block/hellfirestone_bricks/flagstones.json deleted file mode 100644 index b5dfb272ad..0000000000 --- a/src/main/resources/assets/aether/models/block/hellfirestone_bricks/flagstones.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "parent": "block/cube_column", - "textures": { - "end": "aether:blocks/hellfirestone_bricks/hellfirestone_flagstones", - "side": "aether:blocks/hellfirestone_bricks/hellfirestone_flagstones" - } -} diff --git a/src/main/resources/assets/aether/models/block/hellfirestone_bricks/keystone.json b/src/main/resources/assets/aether/models/block/hellfirestone_bricks/keystone.json deleted file mode 100644 index 09208f1803..0000000000 --- a/src/main/resources/assets/aether/models/block/hellfirestone_bricks/keystone.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "parent": "block/cube_column", - "textures": { - "end": "aether:blocks/hellfirestone_bricks/hellfirestone_base_top", - "side": "aether:blocks/hellfirestone_bricks/hellfirestone_base_top" - } -} diff --git a/src/main/resources/assets/aether/models/block/hellfirestone_bricks/lantern.json b/src/main/resources/assets/aether/models/block/hellfirestone_bricks/lantern.json deleted file mode 100644 index 3ee65700f7..0000000000 --- a/src/main/resources/assets/aether/models/block/hellfirestone_bricks/lantern.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "parent": "block/cube_column", - "textures": { - "end": "aether:blocks/hellfirestone_bricks/hellfirestone_lantern", - "side": "aether:blocks/hellfirestone_bricks/hellfirestone_lantern" - } -} diff --git a/src/main/resources/assets/aether/models/block/hellfirestone_bricks/normal.json b/src/main/resources/assets/aether/models/block/hellfirestone_bricks/normal.json deleted file mode 100644 index 3e707fd5dd..0000000000 --- a/src/main/resources/assets/aether/models/block/hellfirestone_bricks/normal.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/cube_all", - "textures": { - "all": "aether:blocks/hellfirestone_bricks/hellfirestone_brick" - } -} diff --git a/src/main/resources/assets/aether/models/block/hellfirestone_bricks/pillar.json b/src/main/resources/assets/aether/models/block/hellfirestone_bricks/pillar.json deleted file mode 100644 index d33f8b9e1e..0000000000 --- a/src/main/resources/assets/aether/models/block/hellfirestone_bricks/pillar.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "parent": "block/cube_column", - "textures": { - "end": "aether:blocks/hellfirestone_bricks/hellfirestone_base_top", - "side": "aether:blocks/hellfirestone_bricks/hellfirestone_pillar" - } -} diff --git a/src/main/resources/assets/aether/models/block/highlands_ice.json b/src/main/resources/assets/aether/models/block/highlands_ice.json deleted file mode 100644 index 50a6b00f3c..0000000000 --- a/src/main/resources/assets/aether/models/block/highlands_ice.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/cube_all", - "textures": { - "all": "aether:blocks/highlands_ice" - } -} diff --git a/src/main/resources/assets/aether/models/block/highlands_packed_ice.json b/src/main/resources/assets/aether/models/block/highlands_packed_ice.json deleted file mode 100644 index 40e3a1eec2..0000000000 --- a/src/main/resources/assets/aether/models/block/highlands_packed_ice.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/cube_all", - "textures": { - "all": "aether:blocks/highlands_packed_ice" - } -} diff --git a/src/main/resources/assets/aether/models/block/highlands_snow.json b/src/main/resources/assets/aether/models/block/highlands_snow.json deleted file mode 100644 index 933b412848..0000000000 --- a/src/main/resources/assets/aether/models/block/highlands_snow.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/cube_all", - "textures": { - "all": "aether:blocks/highlands_snow" - } -} diff --git a/src/main/resources/assets/aether/models/block/highlands_snow_height10.json b/src/main/resources/assets/aether/models/block/highlands_snow_height10.json deleted file mode 100644 index d677fb24b8..0000000000 --- a/src/main/resources/assets/aether/models/block/highlands_snow_height10.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "textures": { - "particle": "aether:blocks/highlands_snow", - "texture": "aether:blocks/highlands_snow" - }, - "elements": [ - { - "from": [ 0, 0, 0 ], - "to": [ 16, 10, 16 ], - "faces": { - "down": { "uv": [ 0, 0, 16, 16 ], "texture": "#texture", "cullface": "down" }, - "up": { "uv": [ 0, 0, 16, 16 ], "texture": "#texture" }, - "north": { "uv": [ 0, 6, 16, 16 ], "texture": "#texture", "cullface": "north" }, - "south": { "uv": [ 0, 6, 16, 16 ], "texture": "#texture", "cullface": "south" }, - "west": { "uv": [ 0, 6, 16, 16 ], "texture": "#texture", "cullface": "west" }, - "east": { "uv": [ 0, 6, 16, 16 ], "texture": "#texture", "cullface": "east" } - } - } - ] -} diff --git a/src/main/resources/assets/aether/models/block/highlands_snow_height12.json b/src/main/resources/assets/aether/models/block/highlands_snow_height12.json deleted file mode 100644 index aad45eef41..0000000000 --- a/src/main/resources/assets/aether/models/block/highlands_snow_height12.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "textures": { - "particle": "aether:blocks/highlands_snow", - "texture": "aether:blocks/highlands_snow" - }, - "elements": [ - { - "from": [ 0, 0, 0 ], - "to": [ 16, 12, 16 ], - "faces": { - "down": { "uv": [ 0, 0, 16, 16 ], "texture": "#texture", "cullface": "down" }, - "up": { "uv": [ 0, 0, 16, 16 ], "texture": "#texture" }, - "north": { "uv": [ 0, 4, 16, 16 ], "texture": "#texture", "cullface": "north" }, - "south": { "uv": [ 0, 4, 16, 16 ], "texture": "#texture", "cullface": "south" }, - "west": { "uv": [ 0, 4, 16, 16 ], "texture": "#texture", "cullface": "west" }, - "east": { "uv": [ 0, 4, 16, 16 ], "texture": "#texture", "cullface": "east" } - } - } - ] -} diff --git a/src/main/resources/assets/aether/models/block/highlands_snow_height14.json b/src/main/resources/assets/aether/models/block/highlands_snow_height14.json deleted file mode 100644 index bfaedf6a60..0000000000 --- a/src/main/resources/assets/aether/models/block/highlands_snow_height14.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "textures": { - "particle": "aether:blocks/highlands_snow", - "texture": "aether:blocks/highlands_snow" - }, - "elements": [ - { - "from": [ 0, 0, 0 ], - "to": [ 16, 14, 16 ], - "faces": { - "down": { "uv": [ 0, 0, 16, 16 ], "texture": "#texture", "cullface": "down" }, - "up": { "uv": [ 0, 0, 16, 16 ], "texture": "#texture" }, - "north": { "uv": [ 0, 2, 16, 16 ], "texture": "#texture" }, - "south": { "uv": [ 0, 2, 16, 16 ], "texture": "#texture" }, - "west": { "uv": [ 0, 2, 16, 16 ], "texture": "#texture" }, - "east": { "uv": [ 0, 2, 16, 16 ], "texture": "#texture" } - } - } - ] -} diff --git a/src/main/resources/assets/aether/models/block/highlands_snow_height2.json b/src/main/resources/assets/aether/models/block/highlands_snow_height2.json deleted file mode 100644 index 8d5465f221..0000000000 --- a/src/main/resources/assets/aether/models/block/highlands_snow_height2.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "parent": "block/thin_block", - "textures": { - "particle": "aether:blocks/highlands_snow", - "texture": "aether:blocks/highlands_snow" - }, - "elements": [ - { - "from": [ 0, 0, 0 ], - "to": [ 16, 2, 16 ], - "faces": { - "down": { "uv": [ 0, 0, 16, 16 ], "texture": "#texture", "cullface": "down" }, - "up": { "uv": [ 0, 0, 16, 16 ], "texture": "#texture" }, - "north": { "uv": [ 0, 14, 16, 16 ], "texture": "#texture", "cullface": "north" }, - "south": { "uv": [ 0, 14, 16, 16 ], "texture": "#texture", "cullface": "south" }, - "west": { "uv": [ 0, 14, 16, 16 ], "texture": "#texture", "cullface": "west" }, - "east": { "uv": [ 0, 14, 16, 16 ], "texture": "#texture", "cullface": "east" } - } - } - ] -} diff --git a/src/main/resources/assets/aether/models/block/highlands_snow_height4.json b/src/main/resources/assets/aether/models/block/highlands_snow_height4.json deleted file mode 100644 index c42f5dfdbc..0000000000 --- a/src/main/resources/assets/aether/models/block/highlands_snow_height4.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "textures": { - "particle": "aether:blocks/highlands_snow", - "texture": "aether:blocks/highlands_snow" - }, - "elements": [ - { - "from": [ 0, 0, 0 ], - "to": [ 16, 4, 16 ], - "faces": { - "down": { "uv": [ 0, 0, 16, 16 ], "texture": "#texture", "cullface": "down" }, - "up": { "uv": [ 0, 0, 16, 16 ], "texture": "#texture" }, - "north": { "uv": [ 0, 12, 16, 16 ], "texture": "#texture", "cullface": "north" }, - "south": { "uv": [ 0, 12, 16, 16 ], "texture": "#texture", "cullface": "south" }, - "west": { "uv": [ 0, 12, 16, 16 ], "texture": "#texture", "cullface": "west" }, - "east": { "uv": [ 0, 12, 16, 16 ], "texture": "#texture", "cullface": "east" } - } - } - ] -} diff --git a/src/main/resources/assets/aether/models/block/highlands_snow_height6.json b/src/main/resources/assets/aether/models/block/highlands_snow_height6.json deleted file mode 100644 index d76faad822..0000000000 --- a/src/main/resources/assets/aether/models/block/highlands_snow_height6.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "textures": { - "particle": "aether:blocks/highlands_snow", - "texture": "aether:blocks/highlands_snow" - }, - "elements": [ - { - "from": [ 0, 0, 0 ], - "to": [ 16, 6, 16 ], - "faces": { - "down": { "uv": [ 0, 0, 16, 16 ], "texture": "#texture", "cullface": "down" }, - "up": { "uv": [ 0, 0, 16, 16 ], "texture": "#texture" }, - "north": { "uv": [ 0, 10, 16, 16 ], "texture": "#texture", "cullface": "north" }, - "south": { "uv": [ 0, 10, 16, 16 ], "texture": "#texture", "cullface": "south" }, - "west": { "uv": [ 0, 10, 16, 16 ], "texture": "#texture", "cullface": "west" }, - "east": { "uv": [ 0, 10, 16, 16 ], "texture": "#texture", "cullface": "east" } - } - } - ] -} diff --git a/src/main/resources/assets/aether/models/block/highlands_snow_height8.json b/src/main/resources/assets/aether/models/block/highlands_snow_height8.json deleted file mode 100644 index 2ddaca0a72..0000000000 --- a/src/main/resources/assets/aether/models/block/highlands_snow_height8.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "textures": { - "particle": "aether:blocks/highlands_snow", - "texture": "aether:blocks/highlands_snow" - }, - "elements": [ - { - "from": [ 0, 0, 0 ], - "to": [ 16, 8, 16 ], - "faces": { - "down": { "uv": [ 0, 0, 16, 16 ], "texture": "#texture", "cullface": "down" }, - "up": { "uv": [ 0, 0, 16, 16 ], "texture": "#texture" }, - "north": { "uv": [ 0, 8, 16, 16 ], "texture": "#texture", "cullface": "north" }, - "south": { "uv": [ 0, 8, 16, 16 ], "texture": "#texture", "cullface": "south" }, - "west": { "uv": [ 0, 8, 16, 16 ], "texture": "#texture", "cullface": "west" }, - "east": { "uv": [ 0, 8, 16, 16 ], "texture": "#texture", "cullface": "east" } - } - } - ] -} diff --git a/src/main/resources/assets/aether/models/block/holystone/blood_moss_holystone.json b/src/main/resources/assets/aether/models/block/holystone/blood_moss_holystone.json deleted file mode 100644 index b34e02fc91..0000000000 --- a/src/main/resources/assets/aether/models/block/holystone/blood_moss_holystone.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/cube_all", - "textures": { - "all": "aether:blocks/holystone/blood_moss_holystone" - } -} diff --git a/src/main/resources/assets/aether/models/block/holystone/holystone.json b/src/main/resources/assets/aether/models/block/holystone/holystone.json deleted file mode 100644 index 4dce3f3c17..0000000000 --- a/src/main/resources/assets/aether/models/block/holystone/holystone.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/cube_all", - "textures": { - "all": "aether:blocks/holystone/holystone" - } -} diff --git a/src/main/resources/assets/aether/models/block/holystone/irradiated_holystone.json b/src/main/resources/assets/aether/models/block/holystone/irradiated_holystone.json deleted file mode 100644 index a5a2aaabea..0000000000 --- a/src/main/resources/assets/aether/models/block/holystone/irradiated_holystone.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/cube_all", - "textures": { - "all": "aether:blocks/holystone/irradiated_holystone" - } -} diff --git a/src/main/resources/assets/aether/models/block/holystone/mossy_holystone.json b/src/main/resources/assets/aether/models/block/holystone/mossy_holystone.json deleted file mode 100644 index 9a4be73597..0000000000 --- a/src/main/resources/assets/aether/models/block/holystone/mossy_holystone.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/cube_all", - "textures": { - "all": "aether:blocks/holystone/mossy_holystone" - } -} diff --git a/src/main/resources/assets/aether/models/block/holystone_bookshelf.json b/src/main/resources/assets/aether/models/block/holystone_bookshelf.json deleted file mode 100644 index e1d8d4024a..0000000000 --- a/src/main/resources/assets/aether/models/block/holystone_bookshelf.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "parent": "block/cube_column", - "textures": { - "end": "aether:blocks/holystone_brick", - "side": "aether:blocks/holystone_bookshelf" - } -} diff --git a/src/main/resources/assets/aether/models/block/holystone_bricks/base_bricks.json b/src/main/resources/assets/aether/models/block/holystone_bricks/base_bricks.json deleted file mode 100644 index 0e280f77d3..0000000000 --- a/src/main/resources/assets/aether/models/block/holystone_bricks/base_bricks.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "parent": "block/cube_column", - "textures": { - "end": "aether:blocks/holystone_bricks/holystone_base_top", - "side": "aether:blocks/holystone_bricks/holystone_base_bricks" - } -} diff --git a/src/main/resources/assets/aether/models/block/holystone_bricks/base_pillar.json b/src/main/resources/assets/aether/models/block/holystone_bricks/base_pillar.json deleted file mode 100644 index d20a7ec47c..0000000000 --- a/src/main/resources/assets/aether/models/block/holystone_bricks/base_pillar.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "parent": "block/cube_column", - "textures": { - "end": "aether:blocks/holystone_bricks/holystone_base_top", - "side": "aether:blocks/holystone_bricks/holystone_base_pillar" - } -} diff --git a/src/main/resources/assets/aether/models/block/holystone_bricks/capstone_bricks.json b/src/main/resources/assets/aether/models/block/holystone_bricks/capstone_bricks.json deleted file mode 100644 index 5f6376128a..0000000000 --- a/src/main/resources/assets/aether/models/block/holystone_bricks/capstone_bricks.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "parent": "block/cube_column", - "textures": { - "end": "aether:blocks/holystone_bricks/holystone_base_top", - "side": "aether:blocks/holystone_bricks/holystone_capstone_bricks" - } -} diff --git a/src/main/resources/assets/aether/models/block/holystone_bricks/capstone_pillar.json b/src/main/resources/assets/aether/models/block/holystone_bricks/capstone_pillar.json deleted file mode 100644 index 3b2206c00e..0000000000 --- a/src/main/resources/assets/aether/models/block/holystone_bricks/capstone_pillar.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "parent": "block/cube_column", - "textures": { - "end": "aether:blocks/holystone_bricks/holystone_base_top", - "side": "aether:blocks/holystone_bricks/holystone_capstone_pillar" - } -} diff --git a/src/main/resources/assets/aether/models/block/holystone_bricks/flagstones.json b/src/main/resources/assets/aether/models/block/holystone_bricks/flagstones.json deleted file mode 100644 index 42f7b86373..0000000000 --- a/src/main/resources/assets/aether/models/block/holystone_bricks/flagstones.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "parent": "block/cube_column", - "textures": { - "end": "aether:blocks/holystone_bricks/holystone_flagstones", - "side": "aether:blocks/holystone_bricks/holystone_flagstones" - } -} diff --git a/src/main/resources/assets/aether/models/block/holystone_bricks/headstone.json b/src/main/resources/assets/aether/models/block/holystone_bricks/headstone.json deleted file mode 100644 index c78bc57cd5..0000000000 --- a/src/main/resources/assets/aether/models/block/holystone_bricks/headstone.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "parent": "block/cube_column", - "textures": { - "end": "aether:blocks/holystone_bricks/holystone_headstone", - "side": "aether:blocks/holystone_bricks/holystone_headstone" - } -} diff --git a/src/main/resources/assets/aether/models/block/holystone_bricks/keystone.json b/src/main/resources/assets/aether/models/block/holystone_bricks/keystone.json deleted file mode 100644 index 6b7e6d6b61..0000000000 --- a/src/main/resources/assets/aether/models/block/holystone_bricks/keystone.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "parent": "block/cube_column", - "textures": { - "end": "aether:blocks/holystone_bricks/holystone_base_top", - "side": "aether:blocks/holystone_bricks/holystone_base_top" - } -} diff --git a/src/main/resources/assets/aether/models/block/holystone_bricks/normal.json b/src/main/resources/assets/aether/models/block/holystone_bricks/normal.json deleted file mode 100644 index ccc2bd9540..0000000000 --- a/src/main/resources/assets/aether/models/block/holystone_bricks/normal.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/cube_all", - "textures": { - "all": "aether:blocks/holystone_brick" - } -} diff --git a/src/main/resources/assets/aether/models/block/holystone_bricks/pillar.json b/src/main/resources/assets/aether/models/block/holystone_bricks/pillar.json deleted file mode 100644 index b93c7419c1..0000000000 --- a/src/main/resources/assets/aether/models/block/holystone_bricks/pillar.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "parent": "block/cube_column", - "textures": { - "end": "aether:blocks/holystone_bricks/holystone_base_top", - "side": "aether:blocks/holystone_bricks/holystone_pillar" - } -} diff --git a/src/main/resources/assets/aether/models/block/holystone_button/holystone_button.json b/src/main/resources/assets/aether/models/block/holystone_button/holystone_button.json deleted file mode 100644 index e9ddf6edd4..0000000000 --- a/src/main/resources/assets/aether/models/block/holystone_button/holystone_button.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/button", - "textures": { - "texture": "aether:blocks/holystone/holystone" - } -} diff --git a/src/main/resources/assets/aether/models/block/holystone_button/holystone_button_inventory.json b/src/main/resources/assets/aether/models/block/holystone_button/holystone_button_inventory.json deleted file mode 100644 index 97f89972b2..0000000000 --- a/src/main/resources/assets/aether/models/block/holystone_button/holystone_button_inventory.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/button_inventory", - "textures": { - "texture": "aether:blocks/holystone/holystone" - } -} diff --git a/src/main/resources/assets/aether/models/block/holystone_button/holystone_button_pressed.json b/src/main/resources/assets/aether/models/block/holystone_button/holystone_button_pressed.json deleted file mode 100644 index 3d8a6bd123..0000000000 --- a/src/main/resources/assets/aether/models/block/holystone_button/holystone_button_pressed.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/button_pressed", - "textures": { - "texture": "aether:blocks/holystone/holystone" - } -} diff --git a/src/main/resources/assets/aether/models/block/holystone_furnace/holystone_furnace_lit.json b/src/main/resources/assets/aether/models/block/holystone_furnace/holystone_furnace_lit.json deleted file mode 100644 index b558b7e68a..0000000000 --- a/src/main/resources/assets/aether/models/block/holystone_furnace/holystone_furnace_lit.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "parent": "block/furnace", - "textures": { - "top": "aether:blocks/holystone_furnace/holystone_furnace_top", - "front": "aether:blocks/holystone_furnace/holystone_furnace_front_on", - "side": "aether:blocks/holystone_furnace/holystone_furnace_side", - "particle": "aether:blocks/holystone/holystone" - } -} diff --git a/src/main/resources/assets/aether/models/block/holystone_furnace/holystone_furnace_unlit.json b/src/main/resources/assets/aether/models/block/holystone_furnace/holystone_furnace_unlit.json deleted file mode 100644 index 563ef78917..0000000000 --- a/src/main/resources/assets/aether/models/block/holystone_furnace/holystone_furnace_unlit.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "parent": "block/furnace", - "textures": { - "top": "aether:blocks/holystone_furnace/holystone_furnace_top", - "front": "aether:blocks/holystone_furnace/holystone_furnace_front_off", - "side": "aether:blocks/holystone_furnace/holystone_furnace_side", - "particle": "aether:blocks/holystone/holystone" - } -} diff --git a/src/main/resources/assets/aether/models/block/holystone_pressure_plate/holystone_pressure_plate_down.json b/src/main/resources/assets/aether/models/block/holystone_pressure_plate/holystone_pressure_plate_down.json deleted file mode 100644 index 72e8ae46b5..0000000000 --- a/src/main/resources/assets/aether/models/block/holystone_pressure_plate/holystone_pressure_plate_down.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/pressure_plate_down", - "textures": { - "texture": "aether:blocks/holystone/holystone" - } -} diff --git a/src/main/resources/assets/aether/models/block/holystone_pressure_plate/holystone_pressure_plate_up.json b/src/main/resources/assets/aether/models/block/holystone_pressure_plate/holystone_pressure_plate_up.json deleted file mode 100644 index a355e4d896..0000000000 --- a/src/main/resources/assets/aether/models/block/holystone_pressure_plate/holystone_pressure_plate_up.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/pressure_plate_up", - "textures": { - "texture": "aether:blocks/holystone/holystone" - } -} diff --git a/src/main/resources/assets/aether/models/block/holystone_pressure_plate_down.json b/src/main/resources/assets/aether/models/block/holystone_pressure_plate_down.json deleted file mode 100644 index 72e8ae46b5..0000000000 --- a/src/main/resources/assets/aether/models/block/holystone_pressure_plate_down.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/pressure_plate_down", - "textures": { - "texture": "aether:blocks/holystone/holystone" - } -} diff --git a/src/main/resources/assets/aether/models/block/holystone_pressure_plate_up.json b/src/main/resources/assets/aether/models/block/holystone_pressure_plate_up.json deleted file mode 100644 index a355e4d896..0000000000 --- a/src/main/resources/assets/aether/models/block/holystone_pressure_plate_up.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/pressure_plate_up", - "textures": { - "texture": "aether:blocks/holystone/holystone" - } -} diff --git a/src/main/resources/assets/aether/models/block/holystone_quartz_ore.json b/src/main/resources/assets/aether/models/block/holystone_quartz_ore.json deleted file mode 100644 index c1924fa87e..0000000000 --- a/src/main/resources/assets/aether/models/block/holystone_quartz_ore.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/cube_all", - "textures": { - "all": "aether:blocks/ores/holystone_quartz_ore" - } -} diff --git a/src/main/resources/assets/aether/models/block/holystone_rock/holystone_rock.json b/src/main/resources/assets/aether/models/block/holystone_rock/holystone_rock.json deleted file mode 100644 index b4ff42ef19..0000000000 --- a/src/main/resources/assets/aether/models/block/holystone_rock/holystone_rock.json +++ /dev/null @@ -1,133 +0,0 @@ -{ - "textures": { - "particle": "aether:blocks/holystone/holystone", - "0": "aether:blocks/holystone/holystone" - }, - "display": { - "gui": { - "rotation": [ 30, -45, 0 ], - "translation": [ 0, 2.5, 0 ], - "scale": [ 0.825, 0.825, 0.825 ] - }, - "ground": { - "rotation": [ 0, 0, 0 ], - "translation": [ 0, 3, 0], - "scale":[ 0.5, 0.5, 0.5 ] - }, - "fixed": { - "rotation": [ 0, 90, 0 ], - "translation": [ 0, 0.5, 0 ], - "scale": [ 0.5, 0.5, 0.5 ] - }, - "firstperson_righthand": { - "rotation": [ 30, -45, 0 ], - "translation": [ 3.0, 1.5, 0 ], - "scale": [ 0.40, 0.40, 0.40 ] - }, - "thirdperson_righthand": { - "rotation": [ 75, -135, 0 ], - "translation": [ 0, 3.5, 0 ], - "scale": [ 0.375, 0.375, 0.375 ] - } - }, - "elements": [ - { - "name": "Cube", - "from": [ 6.0, 0.0, 6.0 ], - "to": [ 10.0, 4.0, 10.0 ], - "rotation": { "origin": [ 8.0, 8.0, 8.0 ], "axis": "y", "angle": 22.5 }, - "faces": { - "north": { "texture": "#0", "uv": [ 8.0, 5.0, 12.0, 9.0 ] }, - "east": { "texture": "#0", "uv": [ 1.0, 8.0, 5.0, 12.0 ] }, - "south": { "texture": "#0", "uv": [ 11.0, 3.0, 7.0, 7.0 ] }, - "west": { "texture": "#0", "uv": [ 14.0, 4.0, 10.0, 8.0 ] }, - "up": { "texture": "#0", "uv": [ 8.0, 8.0, 12.0, 12.0 ] }, - "down": { "texture": "#0", "uv": [ 3.0, 6.0, 7.0, 10.0 ] } - } - }, - { - "name": "Cube", - "from": [ 5.0, 0.0, 7.0 ], - "to": [ 6.0, 3.0, 10.0 ], - "rotation": { "origin": [ 8.0, 8.0, 8.0 ], "axis": "y", "angle": 22.5 }, - "faces": { - "north": { "texture": "#0", "uv": [ 4.0, 6.0, 5.0, 9.0 ] }, - "east": { "texture": "#0", "uv": [ 6.0, 4.0, 9.0, 7.0 ] }, - "south": { "texture": "#0", "uv": [ 11.0, 3.0, 10.0, 6.0 ] }, - "west": { "texture": "#0", "uv": [ 3.0, 0.0, 6.0, 3.0 ] }, - "up": { "texture": "#0", "uv": [ 2.0, 0.0, 3.0, 3.0 ] }, - "down": { "texture": "#0", "uv": [ 2.0, 1.0, 3.0, 4.0 ] } - } - }, - { - "name": "Cube", - "from": [ 6.0, 0.0, 5.0 ], - "to": [ 11.0, 2.0, 6.0 ], - "rotation": { "origin": [ 8.0, 8.0, 8.0 ], "axis": "y", "angle": 22.5 }, - "faces": { - "north": { "texture": "#0", "uv": [ 4.0, 6.0, 9.0, 8.0 ] }, - "east": { "texture": "#0", "uv": [ 6.0, 5.0, 7.0, 7.0 ] }, - "south": { "texture": "#0", "uv": [ 8.0, 8.0, 13.0, 10.0 ] }, - "west": { "texture": "#0", "uv": [ 3.0, 3.0, 4.0, 5.0 ] }, - "up": { "texture": "#0", "uv": [ 2.0, 1.0, 7.0, 2.0 ] }, - "down": { "texture": "#0", "uv": [ 4.0, 3.0, 9.0, 4.0 ] } - } - }, - { - "name": "Cube", - "from": [ 5.0, 0.0, 6.0 ], - "to": [ 6.0, 2.0, 7.0 ], - "rotation": { "origin": [ 8.0, 8.0, 8.0 ], "axis": "y", "angle": 22.5 }, - "faces": { - "north": { "texture": "#0", "uv": [ 4.0, 7.0, 5.0, 9.0 ] }, - "east": { "texture": "#0", "uv": [ 3.0, 3.0, 4.0, 5.0 ] }, - "south": { "texture": "#0", "uv": [ 4.0, 6.0, 5.0, 8.0 ] }, - "west": { "texture": "#0", "uv": [ 3.0, 3.0, 4.0, 5.0 ] }, - "up": { "texture": "#0", "uv": [ 7.0, 1.0, 8.0, 2.0 ] }, - "down": { "texture": "#0", "uv": [ 0.0, 2.0, 1.0, 3.0 ] } - } - }, - { - "name": "Cube", - "from": [ 7.0, 2.0, 5.0 ], - "to": [ 10.0, 3.0, 6.0 ], - "rotation": { "origin": [ 8.0, 8.0, 8.0 ], "axis": "y", "angle": 22.5 }, - "faces": { - "north": { "texture": "#0", "uv": [ 2.0, 7.0, 5.0, 8.0 ] }, - "east": { "texture": "#0", "uv": [ 5.0, 6.0, 6.0, 7.0 ] }, - "south": { "texture": "#0", "uv": [ 4.0, 1.0, 7.0, 2.0 ] }, - "west": { "texture": "#0", "uv": [ 5.0, 2.0, 6.0, 3.0 ] }, - "up": { "texture": "#0", "uv": [ 2.0, 1.0, 5.0, 2.0 ] }, - "down": { "texture": "#0", "uv": [ 3.0, 4.0, 6.0, 5.0 ] } - } - }, - { - "name": "Cube", - "from": [ 10.0, 0.0, 6.0 ], - "to": [ 11.0, 3.0, 10.0 ], - "rotation": { "origin": [ 8.0, 8.0, 8.0 ], "axis": "y", "angle": 22.5 }, - "faces": { - "north": { "texture": "#0", "uv": [ 0.0, 0.0, 1.0, 3.0 ] }, - "east": { "texture": "#0", "uv": [ 2.0, 2.0, 6.0, 5.0 ] }, - "south": { "texture": "#0", "uv": [ 7.0, 4.0, 8.0, 7.0 ] }, - "west": { "texture": "#0", "uv": [ 0.0, 0.0, 4.0, 3.0 ] }, - "up": { "texture": "#0", "uv": [ 5.0, 0.0, 6.0, 4.0 ] }, - "down": { "texture": "#0", "uv": [ 3.0, 3.0, 4.0, 7.0 ] } - } - }, - { - "name": "Cube", - "from": [ 6.0, 0.0, 10.0 ], - "to": [ 10.0, 3.0, 11.0 ], - "rotation": { "origin": [ 8.0, 8.0, 8.0 ], "axis": "y", "angle": 22.5 }, - "faces": { - "north": { "texture": "#0", "uv": [ 0.0, 0.0, 4.0, 3.0 ] }, - "east": { "texture": "#0", "uv": [ 1.0, 3.0, 2.0, 6.0 ] }, - "south": { "texture": "#0", "uv": [ 4.0, 1.0, 8.0, 4.0 ] }, - "west": { "texture": "#0", "uv": [ 4.0, 0.0, 5.0, 3.0 ] }, - "up": { "texture": "#0", "uv": [ 2.0, 1.0, 6.0, 2.0 ] }, - "down": { "texture": "#0", "uv": [ 3.0, 3.0, 7.0, 4.0 ] } - } - } - ] -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/block/holystone_rock/holystone_rock_2.json b/src/main/resources/assets/aether/models/block/holystone_rock/holystone_rock_2.json deleted file mode 100644 index ca31b6f5d0..0000000000 --- a/src/main/resources/assets/aether/models/block/holystone_rock/holystone_rock_2.json +++ /dev/null @@ -1,106 +0,0 @@ -{ - "textures": { - "particle": "aether:blocks/holystone/holystone", - "0": "aether:blocks/holystone/holystone" - }, - "elements": [ - { - "name": "Cube", - "from": [ 6.0, 0.0, 6.0 ], - "to": [ 10.0, 2.0, 8.0 ], - "rotation": { "origin": [ 8.0, 8.0, 8.0 ], "axis": "y", "angle": 22.5 }, - "faces": { - "north": { "texture": "#0", "uv": [ 8.0, 7.0, 12.0, 9.0 ] }, - "east": { "texture": "#0", "uv": [ 1.0, 10.0, 5.0, 12.0 ] }, - "south": { "texture": "#0", "uv": [ 11.0, 5.0, 7.0, 7.0 ] }, - "west": { "texture": "#0", "uv": [ 14.0, 6.0, 10.0, 8.0 ] }, - "up": { "texture": "#0", "uv": [ 8.0, 10.0, 12.0, 12.0 ] }, - "down": { "texture": "#0", "uv": [ 3.0, 8.0, 7.0, 10.0 ] } - } - }, - { - "name": "Cube", - "from": [ 5.0, 0.0, 7.0 ], - "to": [ 6.0, 1.0, 8.0 ], - "rotation": { "origin": [ 8.0, 8.0, 8.0 ], "axis": "y", "angle": 22.5 }, - "faces": { - "north": { "texture": "#0", "uv": [ 4.0, 6.0, 5.0, 7.0 ] }, - "east": { "texture": "#0", "uv": [ 6.0, 4.0, 7.0, 5.0 ] }, - "south": { "texture": "#0", "uv": [ 11.0, 3.0, 10.0, 6.0 ] }, - "west": { "texture": "#0", "uv": [ 3.0, 0.0, 4.0, 1.0 ] }, - "up": { "texture": "#0", "uv": [ 2.0, 0.0, 3.0, 1.0 ] }, - "down": { "texture": "#0", "uv": [ 2.0, 1.0, 3.0, 2.0 ] } - } - }, - { - "name": "Cube", - "from": [ 6.0, 0.0, 5.0 ], - "to": [ 8.0, 2.0, 6.0 ], - "rotation": { "origin": [ 8.0, 8.0, 8.0 ], "axis": "y", "angle": 22.5 }, - "faces": { - "north": { "texture": "#0", "uv": [ 4.0, 6.0, 6.0, 8.0 ] }, - "east": { "texture": "#0", "uv": [ 6.0, 5.0, 7.0, 7.0 ] }, - "south": { "texture": "#0", "uv": [ 8.0, 8.0, 10.0, 10.0 ] }, - "west": { "texture": "#0", "uv": [ 3.0, 3.0, 4.0, 5.0 ] }, - "up": { "texture": "#0", "uv": [ 2.0, 1.0, 4.0, 2.0 ] }, - "down": { "texture": "#0", "uv": [ 4.0, 3.0, 6.0, 4.0 ] } - } - }, - { - "name": "Cube", - "from": [ 5.0, 0.0, 6.0 ], - "to": [ 6.0, 1.0, 7.0 ], - "rotation": { "origin": [ 8.0, 8.0, 8.0 ], "axis": "y", "angle": 22.5 }, - "faces": { - "north": { "texture": "#0", "uv": [ 4.0, 7.0, 5.0, 8.0 ] }, - "east": { "texture": "#0", "uv": [ 3.0, 3.0, 4.0, 4.0 ] }, - "south": { "texture": "#0", "uv": [ 4.0, 6.0, 5.0, 7.0 ] }, - "west": { "texture": "#0", "uv": [ 3.0, 3.0, 4.0, 4.0 ] }, - "up": { "texture": "#0", "uv": [ 7.0, 1.0, 8.0, 2.0 ] }, - "down": { "texture": "#0", "uv": [ 0.0, 2.0, 1.0, 3.0 ] } - } - }, - { - "name": "Cube", - "from": [ 10.0, 0.0, 6.0 ], - "to": [ 11.0, 1.0, 8.0 ], - "rotation": { "origin": [ 8.0, 8.0, 8.0 ], "axis": "y", "angle": 22.5 }, - "faces": { - "north": { "texture": "#0", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, - "east": { "texture": "#0", "uv": [ 2.0, 2.0, 4.0, 3.0 ] }, - "south": { "texture": "#0", "uv": [ 7.0, 4.0, 8.0, 5.0 ] }, - "west": { "texture": "#0", "uv": [ 0.0, 0.0, 2.0, 1.0 ] }, - "up": { "texture": "#0", "uv": [ 5.0, 0.0, 6.0, 2.0 ] }, - "down": { "texture": "#0", "uv": [ 3.0, 3.0, 4.0, 5.0 ] } - } - }, - { - "name": "Cube", - "from": [ 6.0, 0.0, 8.0 ], - "to": [ 10.0, 1.0, 9.0 ], - "rotation": { "origin": [ 8.0, 8.0, 8.0 ], "axis": "y", "angle": 22.5 }, - "faces": { - "north": { "texture": "#0", "uv": [ 0.0, 0.0, 4.0, 1.0 ] }, - "east": { "texture": "#0", "uv": [ 1.0, 3.0, 2.0, 4.0 ] }, - "south": { "texture": "#0", "uv": [ 4.0, 1.0, 8.0, 2.0 ] }, - "west": { "texture": "#0", "uv": [ 4.0, 0.0, 5.0, 1.0 ] }, - "up": { "texture": "#0", "uv": [ 2.0, 1.0, 6.0, 2.0 ] }, - "down": { "texture": "#0", "uv": [ 3.0, 3.0, 7.0, 4.0 ] } - } - }, - { - "name": "Cube", - "from": [ 8.0, 0.0, 5.0 ], - "to": [ 10.0, 1.0, 6.0 ], - "rotation": { "origin": [ 8.0, 8.0, 8.0 ], "axis": "y", "angle": 22.5 }, - "faces": { - "north": { "texture": "#0", "uv": [ 4.0, 6.0, 6.0, 7.0 ] }, - "east": { "texture": "#0", "uv": [ 6.0, 5.0, 7.0, 6.0 ] }, - "south": { "texture": "#0", "uv": [ 8.0, 8.0, 10.0, 9.0 ] }, - "west": { "texture": "#0", "uv": [ 3.0, 3.0, 4.0, 4.0 ] }, - "up": { "texture": "#0", "uv": [ 2.0, 1.0, 4.0, 2.0 ] }, - "down": { "texture": "#0", "uv": [ 4.0, 3.0, 6.0, 4.0 ] } - } - } - ] -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/block/holystone_rock/holystone_rock_3.json b/src/main/resources/assets/aether/models/block/holystone_rock/holystone_rock_3.json deleted file mode 100644 index 66956e3024..0000000000 --- a/src/main/resources/assets/aether/models/block/holystone_rock/holystone_rock_3.json +++ /dev/null @@ -1,36 +0,0 @@ -{ - "textures": { - "particle": "aether:blocks/holystone/holystone", - "0": "aether:blocks/holystone/holystone" - }, - "elements": [ - { - "name": "Cube", - "from": [ 6.0, 0.0, 8.0 ], - "to": [ 9.0, 1.0, 10.0 ], - "rotation": { "origin": [ 8.0, 8.0, 8.0 ], "axis": "y", "angle": 22.5 }, - "faces": { - "north": { "texture": "#0", "uv": [ 0.0, 0.0, 3.0, 1.0 ] }, - "east": { "texture": "#0", "uv": [ 1.0, 3.0, 3.0, 4.0 ] }, - "south": { "texture": "#0", "uv": [ 4.0, 1.0, 7.0, 2.0 ] }, - "west": { "texture": "#0", "uv": [ 4.0, 0.0, 6.0, 1.0 ] }, - "up": { "texture": "#0", "uv": [ 2.0, 1.0, 5.0, 3.0 ] }, - "down": { "texture": "#0", "uv": [ 3.0, 3.0, 6.0, 5.0 ] } - } - }, - { - "name": "Cube", - "from": [ 8.0, 0.0, 5.0 ], - "to": [ 10.0, 1.0, 7.0 ], - "rotation": { "origin": [ 8.0, 8.0, 8.0 ], "axis": "y", "angle": 45.0 }, - "faces": { - "north": { "texture": "#0", "uv": [ 4.0, 6.0, 6.0, 7.0 ] }, - "east": { "texture": "#0", "uv": [ 6.0, 5.0, 8.0, 6.0 ] }, - "south": { "texture": "#0", "uv": [ 8.0, 8.0, 10.0, 9.0 ] }, - "west": { "texture": "#0", "uv": [ 3.0, 3.0, 5.0, 4.0 ] }, - "up": { "texture": "#0", "uv": [ 2.0, 1.0, 4.0, 3.0 ] }, - "down": { "texture": "#0", "uv": [ 4.0, 3.0, 6.0, 5.0 ] } - } - } - ] -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/block/holystone_rock/holystone_rock_4.json b/src/main/resources/assets/aether/models/block/holystone_rock/holystone_rock_4.json deleted file mode 100644 index e17b2b754a..0000000000 --- a/src/main/resources/assets/aether/models/block/holystone_rock/holystone_rock_4.json +++ /dev/null @@ -1,36 +0,0 @@ -{ - "textures": { - "particle": "aether:blocks/holystone/holystone", - "0": "aether:blocks/holystone/holystone" - }, - "elements": [ - { - "name": "Cube", - "from": [ 2.0, 0.0, 8.0 ], - "to": [ 5.0, 1.0, 10.0 ], - "rotation": { "origin": [ 8.0, 8.0, 8.0 ], "axis": "y", "angle": 22.5 }, - "faces": { - "north": { "texture": "#0", "uv": [ 0.0, 0.0, 3.0, 1.0 ] }, - "east": { "texture": "#0", "uv": [ 1.0, 3.0, 3.0, 4.0 ] }, - "south": { "texture": "#0", "uv": [ 4.0, 1.0, 7.0, 2.0 ] }, - "west": { "texture": "#0", "uv": [ 4.0, 0.0, 6.0, 1.0 ] }, - "up": { "texture": "#0", "uv": [ 2.0, 1.0, 5.0, 3.0 ] }, - "down": { "texture": "#0", "uv": [ 3.0, 3.0, 6.0, 5.0 ] } - } - }, - { - "name": "Cube", - "from": [ 10.0, 0.0, 5.0 ], - "to": [ 12.0, 1.0, 7.0 ], - "rotation": { "origin": [ 8.0, 8.0, 8.0 ], "axis": "y", "angle": 45.0 }, - "faces": { - "north": { "texture": "#0", "uv": [ 4.0, 6.0, 6.0, 7.0 ] }, - "east": { "texture": "#0", "uv": [ 6.0, 5.0, 8.0, 6.0 ] }, - "south": { "texture": "#0", "uv": [ 8.0, 8.0, 10.0, 9.0 ] }, - "west": { "texture": "#0", "uv": [ 3.0, 3.0, 5.0, 4.0 ] }, - "up": { "texture": "#0", "uv": [ 2.0, 1.0, 4.0, 3.0 ] }, - "down": { "texture": "#0", "uv": [ 4.0, 3.0, 6.0, 5.0 ] } - } - } - ] -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/block/holystone_rock/holystone_rock_5.json b/src/main/resources/assets/aether/models/block/holystone_rock/holystone_rock_5.json deleted file mode 100644 index f1150cf5b9..0000000000 --- a/src/main/resources/assets/aether/models/block/holystone_rock/holystone_rock_5.json +++ /dev/null @@ -1,50 +0,0 @@ -{ - "textures": { - "particle": "aether:blocks/holystone/holystone", - "0": "aether:blocks/holystone/holystone" - }, - "elements": [ - { - "name": "Cube", - "from": [ 6.0, 0.0, 6.0 ], - "to": [ 7.0, 1.0, 7.0 ], - "rotation": { "origin": [ 8.0, 8.0, 8.0 ], "axis": "y", "angle": 22.5 }, - "faces": { - "north": { "texture": "#0", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, - "east": { "texture": "#0", "uv": [ 1.0, 3.0, 2.0, 4.0 ] }, - "south": { "texture": "#0", "uv": [ 4.0, 1.0, 5.0, 2.0 ] }, - "west": { "texture": "#0", "uv": [ 4.0, 0.0, 5.0, 1.0 ] }, - "up": { "texture": "#0", "uv": [ 2.0, 1.0, 3.0, 2.0 ] }, - "down": { "texture": "#0", "uv": [ 3.0, 3.0, 4.0, 4.0 ] } - } - }, - { - "name": "Cube", - "from": [ 10.0, 0.0, 5.0 ], - "to": [ 12.0, 2.0, 7.0 ], - "rotation": { "origin": [ 8.0, 8.0, 8.0 ], "axis": "y", "angle": 45.0 }, - "faces": { - "north": { "texture": "#0", "uv": [ 4.0, 6.0, 6.0, 8.0 ] }, - "east": { "texture": "#0", "uv": [ 6.0, 5.0, 8.0, 7.0 ] }, - "south": { "texture": "#0", "uv": [ 8.0, 8.0, 10.0, 10.0 ] }, - "west": { "texture": "#0", "uv": [ 3.0, 3.0, 5.0, 5.0 ] }, - "up": { "texture": "#0", "uv": [ 2.0, 1.0, 4.0, 3.0 ] }, - "down": { "texture": "#0", "uv": [ 4.0, 3.0, 6.0, 5.0 ] } - } - }, - { - "name": "Cube", - "from": [ 7.0, 0.0, 9.0 ], - "to": [ 8.0, 1.0, 10.0 ], - "rotation": { "origin": [ 8.0, 8.0, 8.0 ], "axis": "y", "angle": 45.0 }, - "faces": { - "north": { "texture": "#0", "uv": [ 7.0, 10.0, 8.0, 11.0 ] }, - "east": { "texture": "#0", "uv": [ 1.0, 3.0, 2.0, 4.0 ] }, - "south": { "texture": "#0", "uv": [ 1.0, 5.0, 2.0, 6.0 ] }, - "west": { "texture": "#0", "uv": [ 2.0, 2.0, 3.0, 3.0 ] }, - "up": { "texture": "#0", "uv": [ 2.0, 1.0, 3.0, 2.0 ] }, - "down": { "texture": "#0", "uv": [ 3.0, 3.0, 4.0, 4.0 ] } - } - } - ] -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/block/icestone_bricks.json b/src/main/resources/assets/aether/models/block/icestone_bricks.json deleted file mode 100644 index 619d9a469c..0000000000 --- a/src/main/resources/assets/aether/models/block/icestone_bricks.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/cube_all", - "textures": { - "all": "aether:blocks/icestone_bricks" - } -} diff --git a/src/main/resources/assets/aether/models/block/icestone_bricks/base_bricks.json b/src/main/resources/assets/aether/models/block/icestone_bricks/base_bricks.json deleted file mode 100644 index 440a8eb283..0000000000 --- a/src/main/resources/assets/aether/models/block/icestone_bricks/base_bricks.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "parent": "block/cube_column", - "textures": { - "end": "aether:blocks/icestone_bricks/icestone_keystone", - "side": "aether:blocks/icestone_bricks/icestone_base_bricks" - } -} diff --git a/src/main/resources/assets/aether/models/block/icestone_bricks/base_pillar.json b/src/main/resources/assets/aether/models/block/icestone_bricks/base_pillar.json deleted file mode 100644 index 161daea4e2..0000000000 --- a/src/main/resources/assets/aether/models/block/icestone_bricks/base_pillar.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "parent": "block/cube_column", - "textures": { - "end": "aether:blocks/icestone_bricks/icestone_keystone", - "side": "aether:blocks/icestone_bricks/icestone_base_pillar" - } -} diff --git a/src/main/resources/assets/aether/models/block/icestone_bricks/capstone_bricks.json b/src/main/resources/assets/aether/models/block/icestone_bricks/capstone_bricks.json deleted file mode 100644 index 8b16f1d69f..0000000000 --- a/src/main/resources/assets/aether/models/block/icestone_bricks/capstone_bricks.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "parent": "block/cube_column", - "textures": { - "end": "aether:blocks/icestone_bricks/icestone_keystone", - "side": "aether:blocks/icestone_bricks/icestone_capstone_bricks" - } -} diff --git a/src/main/resources/assets/aether/models/block/icestone_bricks/capstone_pillar.json b/src/main/resources/assets/aether/models/block/icestone_bricks/capstone_pillar.json deleted file mode 100644 index 96b7b76096..0000000000 --- a/src/main/resources/assets/aether/models/block/icestone_bricks/capstone_pillar.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "parent": "block/cube_column", - "textures": { - "end": "aether:blocks/icestone_bricks/icestone_keystone", - "side": "aether:blocks/icestone_bricks/icestone_capstone_pillar" - } -} diff --git a/src/main/resources/assets/aether/models/block/icestone_bricks/flagstones.json b/src/main/resources/assets/aether/models/block/icestone_bricks/flagstones.json deleted file mode 100644 index 3eeb199f69..0000000000 --- a/src/main/resources/assets/aether/models/block/icestone_bricks/flagstones.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "parent": "block/cube_column", - "textures": { - "end": "aether:blocks/icestone_bricks/icestone_flagstones", - "side": "aether:blocks/icestone_bricks/icestone_flagstones" - } -} diff --git a/src/main/resources/assets/aether/models/block/icestone_bricks/keystone.json b/src/main/resources/assets/aether/models/block/icestone_bricks/keystone.json deleted file mode 100644 index 1014edea67..0000000000 --- a/src/main/resources/assets/aether/models/block/icestone_bricks/keystone.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "parent": "block/cube_column", - "textures": { - "end": "aether:blocks/icestone_bricks/icestone_keystone", - "side": "aether:blocks/icestone_bricks/icestone_keystone" - } -} diff --git a/src/main/resources/assets/aether/models/block/icestone_bricks/normal.json b/src/main/resources/assets/aether/models/block/icestone_bricks/normal.json deleted file mode 100644 index 619d9a469c..0000000000 --- a/src/main/resources/assets/aether/models/block/icestone_bricks/normal.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/cube_all", - "textures": { - "all": "aether:blocks/icestone_bricks" - } -} diff --git a/src/main/resources/assets/aether/models/block/icestone_bricks/pillar.json b/src/main/resources/assets/aether/models/block/icestone_bricks/pillar.json deleted file mode 100644 index b4a4ce4ba5..0000000000 --- a/src/main/resources/assets/aether/models/block/icestone_bricks/pillar.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "parent": "block/cube_column", - "textures": { - "end": "aether:blocks/icestone_bricks/icestone_keystone", - "side": "aether:blocks/icestone_bricks/icestone_pillar" - } -} diff --git a/src/main/resources/assets/aether/models/block/icestone_cooler.json b/src/main/resources/assets/aether/models/block/icestone_cooler.json deleted file mode 100644 index 958f55c626..0000000000 --- a/src/main/resources/assets/aether/models/block/icestone_cooler.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "aether:block/tesr", - "textures": { - "particle": "aether:blocks/holystone/holystone" - } -} diff --git a/src/main/resources/assets/aether/models/block/icestone_ore.json b/src/main/resources/assets/aether/models/block/icestone_ore.json deleted file mode 100644 index f5f6f64bd4..0000000000 --- a/src/main/resources/assets/aether/models/block/icestone_ore.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/cube_all", - "textures": { - "all": "aether:blocks/ores/icestone_ore" - } -} diff --git a/src/main/resources/assets/aether/models/block/incubator/incubator_off.json b/src/main/resources/assets/aether/models/block/incubator/incubator_off.json deleted file mode 100644 index 58f89900c6..0000000000 --- a/src/main/resources/assets/aether/models/block/incubator/incubator_off.json +++ /dev/null @@ -1,151 +0,0 @@ -{ - "parent": "block/block", - "textures": { - "particle": "aether:blocks/holystone/holystone", - "0": "aether:blocks/incubator/incubator_chamber_inside", - "1": "aether:blocks/incubator/incubator_chamber_side", - "2": "aether:blocks/incubator/incubator_chamber_outside", - "3": "aether:blocks/incubator/incubator_chamber_top", - "4": "aether:blocks/incubator/incubator_base_side", - "5": "aether:blocks/incubator/incubator_base_top", - "6": "aether:blocks/incubator/incubator_base_bottom", - "7": "aether:blocks/incubator/incubator_heater_side", - "8": "aether:blocks/incubator/incubator_heater_top" - }, - "elements": [ - { - "name": "Chamber Front", - "from": [ 5, 2, 11.2 ], - "to": [ 11, 13, 15.2 ], - "faces": { - "north": { "texture": "#0", "uv": [ 0, 0, 6, 11 ] }, - "east": { "texture": "#1", "uv": [ 0, 0, 6, 11 ] }, - "south": { "texture": "#2", "uv": [ 0, 0, 6, 11 ] }, - "west": { "texture": "#1", "uv": [ 0, 0, 6, 11 ] }, - "up": { "texture": "#3", "uv": [ 0, 0, 6, 4 ] }, - "down": { "texture": "#3", "uv": [ 0, 0, 6, 4 ] } - } - }, - { - "name": "Chamber Back Right", - "from": [ 5, 1.9, 1 ], - "to": [ 11, 12.9, 5 ], - "rotation": { "origin": [ 8, 8, 8 ], "axis": "y", "angle": 45 }, - "faces": { - "north": { "texture": "#1", "uv": [ 0, 0, 6, 11 ] }, - "east": { "texture": "#1", "uv": [ 0, 0, 6, 11 ] }, - "south": { "texture": "#0", "uv": [ 0, 0, 6, 11 ] }, - "west": { "texture": "#1", "uv": [ 0, 0, 6, 11 ] }, - "up": { "texture": "#3", "uv": [ 0, 4, 6, 0 ] }, - "down": { "texture": "#3", "uv": [ 0, 0, 6, 4 ] } - } - }, - { - "name": "Chamber Right", - "from": [ 0.9, 2, 5 ], - "to": [ 4.9, 13, 11 ], - "faces": { - "north": { "texture": "#1", "uv": [ 0, 0, 6, 11 ] }, - "east": { "texture": "#0", "uv": [ 0, 0, 6, 11 ] }, - "south": { "texture": "#1", "uv": [ 0, 0, 6, 11 ] }, - "west": { "texture": "#2", "uv": [ 0, 0, 6, 11 ] }, - "up": { "texture": "#3", "uv": [ 0, 4, 6, 0 ], "rotation": 270 }, - "down": { "texture": "#3", "uv": [ 1, 0, 6, 16 ] } - } - }, - { - "name": "Chamber Back Left", - "from": [ 5, 1.9, 1 ], - "to": [ 11, 12.9, 5 ], - "rotation": { "origin": [ 8, 8, 8 ], "axis": "y", "angle": -45 }, - "faces": { - "north": { "texture": "#1", "uv": [ 0, 0, 6, 11 ] }, - "east": { "texture": "#1", "uv": [ 0, 0, 6, 11 ] }, - "south": { "texture": "#0", "uv": [ 0, 0, 6, 11 ] }, - "west": { "texture": "#1", "uv": [ 0, 0, 6, 11 ] }, - "up": { "texture": "#3", "uv": [ 0, 4, 6, 0 ] }, - "down": { "texture": "#3", "uv": [ 0, 0, 6, 4 ] } - } - }, - { - "name": "Chamber Back", - "from": [ 5, 2, 0.9 ], - "to": [ 11, 13, 4.9 ], - "faces": { - "north": { "texture": "#2", "uv": [ 0, 0, 6, 11 ] }, - "east": { "texture": "#1", "uv": [ 0, 0, 6, 11 ] }, - "south": { "texture": "#0", "uv": [ 0, 0, 6, 11 ] }, - "west": { "texture": "#1", "uv": [ 0, 0, 6, 11 ] }, - "up": { "texture": "#3", "uv": [ 0, 4, 6, 0 ] }, - "down": { "texture": "#3", "uv": [ 0, 0, 6, 4 ] } - } - }, - { - "name": "Chamber Left", - "from": [ 11.1, 2, 5 ], - "to": [ 15.1, 13, 11 ], - "faces": { - "north": { "texture": "#1", "uv": [ 0, 0, 6, 11 ] }, - "east": { "texture": "#2", "uv": [ 0, 0, 6, 11 ] }, - "south": { "texture": "#1", "uv": [ 0, 0, 6, 11 ] }, - "west": { "texture": "#0", "uv": [ 0, 0, 6, 11 ] }, - "up": { "texture": "#3", "uv": [ 0, 0, 6, 4 ], "rotation": 270 }, - "down": { "texture": "#3", "uv": [ 0, 0, 6, 4 ] } - } - }, - { - "name": "Chamber Front Left", - "from": [ 5, 1.9, 11 ], - "to": [ 11, 12.9, 15 ], - "rotation": { "origin": [ 8, 8, 8 ], "axis": "y", "angle": 45 }, - "faces": { - "north": { "texture": "#0", "uv": [ 0, 0, 6, 11 ] }, - "east": { "texture": "#1", "uv": [ 0, 0, 6, 11 ] }, - "south": { "texture": "#1", "uv": [ 0, 0, 6, 11 ] }, - "west": { "texture": "#1", "uv": [ 0, 0, 6, 11 ] }, - "up": { "texture": "#3", "uv": [ 0, 0, 6, 4 ] }, - "down": { "texture": "#3", "uv": [ 0, 0, 6, 4 ] } - } - }, - { - "name": "Chamber Front Right", - "from": [ 5, 1.9, 11 ], - "to": [ 11, 12.9, 15 ], - "rotation": { "origin": [ 8, 8, 8 ], "axis": "y", "angle": -45 }, - "faces": { - "north": { "texture": "#0", "uv": [ 0, 0, 6, 11 ] }, - "east": { "texture": "#1", "uv": [ 0, 0, 6, 11 ] }, - "south": { "texture": "#1", "uv": [ 0, 0, 6, 11 ] }, - "west": { "texture": "#1", "uv": [ 0, 0, 2, 10 ] }, - "up": { "texture": "#3", "uv": [ 0, 0, 6, 4 ] }, - "down": { "texture": "#3", "uv": [ 0, 0, 6, 4 ] } - } - }, - { - "name": "Base", - "from": [ 0, 0, 0 ], - "to": [ 16, 2, 16 ], - "faces": { - "north": { "texture": "#4", "uv": [ 0, 0, 16, 2 ] }, - "east": { "texture": "#4", "uv": [ 0, 0, 16, 2 ] }, - "south": { "texture": "#4", "uv": [ 0, 0, 16, 2 ] }, - "west": { "texture": "#4", "uv": [ 0, 0, 16, 2 ] }, - "up": { "texture": "#5", "uv": [ 0, 0, 16, 16 ] }, - "down": { "texture": "#6", "uv": [ 0, 0, 16, 16 ] } - } - }, - { - "name": "Heater", - "from": [ 1.5, 2, 1.5 ], - "to": [ 14.5, 9, 14.5 ], - "faces": { - "north": { "texture": "#7", "uv": [ 0, 0, 13, 7 ] }, - "east": { "texture": "#7", "uv": [ 0, 0, 13, 7 ] }, - "south": { "texture": "#7", "uv": [ 0, 0, 13, 7 ] }, - "west": { "texture": "#7", "uv": [ 0, 0, 13, 7 ] }, - "up": { "texture": "#8", "uv": [ 0, 0, 13, 13 ] }, - "down": { "texture": "#8", "uv": [ 0, 0, 13, 13 ] } - } - } - ] -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/block/incubator/incubator_on.json b/src/main/resources/assets/aether/models/block/incubator/incubator_on.json deleted file mode 100644 index 5f2cca73cd..0000000000 --- a/src/main/resources/assets/aether/models/block/incubator/incubator_on.json +++ /dev/null @@ -1,151 +0,0 @@ -{ - "parent": "block/block", - "textures": { - "particle": "aether:blocks/holystone/holystone", - "0": "aether:blocks/incubator/incubator_chamber_inside_on", - "1": "aether:blocks/incubator/incubator_chamber_side", - "2": "aether:blocks/incubator/incubator_chamber_outside_on", - "3": "aether:blocks/incubator/incubator_chamber_top", - "4": "aether:blocks/incubator/incubator_base_side", - "5": "aether:blocks/incubator/incubator_base_top", - "6": "aether:blocks/incubator/incubator_base_bottom", - "7": "aether:blocks/incubator/incubator_heater_side", - "8": "aether:blocks/incubator/incubator_heater_top_on" - }, - "elements": [ - { - "name": "Chamber Front", - "from": [ 5, 2, 11.2 ], - "to": [ 11, 13, 15.2 ], - "faces": { - "north": { "texture": "#0", "uv": [ 0, 0, 6, 11 ] }, - "east": { "texture": "#1", "uv": [ 0, 0, 6, 11 ] }, - "south": { "texture": "#2", "uv": [ 0, 0, 6, 11 ] }, - "west": { "texture": "#1", "uv": [ 0, 0, 6, 11 ] }, - "up": { "texture": "#3", "uv": [ 0, 0, 6, 4 ] }, - "down": { "texture": "#3", "uv": [ 0, 0, 6, 4 ] } - } - }, - { - "name": "Chamber Back Right", - "from": [ 5, 1.9, 1 ], - "to": [ 11, 12.9, 5 ], - "rotation": { "origin": [ 8, 8, 8 ], "axis": "y", "angle": 45 }, - "faces": { - "north": { "texture": "#1", "uv": [ 0, 0, 6, 11 ] }, - "east": { "texture": "#1", "uv": [ 0, 0, 6, 11 ] }, - "south": { "texture": "#0", "uv": [ 0, 0, 6, 11 ] }, - "west": { "texture": "#1", "uv": [ 0, 0, 6, 11 ] }, - "up": { "texture": "#3", "uv": [ 0, 4, 6, 0 ] }, - "down": { "texture": "#3", "uv": [ 0, 0, 6, 4 ] } - } - }, - { - "name": "Chamber Right", - "from": [ 0.9, 2, 5 ], - "to": [ 4.9, 13, 11 ], - "faces": { - "north": { "texture": "#1", "uv": [ 0, 0, 6, 11 ] }, - "east": { "texture": "#0", "uv": [ 0, 0, 6, 11 ] }, - "south": { "texture": "#1", "uv": [ 0, 0, 6, 11 ] }, - "west": { "texture": "#2", "uv": [ 0, 0, 6, 11 ] }, - "up": { "texture": "#3", "uv": [ 0, 4, 6, 0 ], "rotation": 270 }, - "down": { "texture": "#3", "uv": [ 1, 0, 6, 16 ] } - } - }, - { - "name": "Chamber Back Left", - "from": [ 5, 1.9, 1 ], - "to": [ 11, 12.9, 5 ], - "rotation": { "origin": [ 8, 8, 8 ], "axis": "y", "angle": -45 }, - "faces": { - "north": { "texture": "#1", "uv": [ 0, 0, 6, 11 ] }, - "east": { "texture": "#1", "uv": [ 0, 0, 6, 11 ] }, - "south": { "texture": "#0", "uv": [ 0, 0, 6, 11 ] }, - "west": { "texture": "#1", "uv": [ 0, 0, 6, 11 ] }, - "up": { "texture": "#3", "uv": [ 0, 4, 6, 0 ] }, - "down": { "texture": "#3", "uv": [ 0, 0, 6, 4 ] } - } - }, - { - "name": "Chamber Back", - "from": [ 5, 2, 0.9 ], - "to": [ 11, 13, 4.9 ], - "faces": { - "north": { "texture": "#2", "uv": [ 0, 0, 6, 11 ] }, - "east": { "texture": "#1", "uv": [ 0, 0, 6, 11 ] }, - "south": { "texture": "#0", "uv": [ 0, 0, 6, 11 ] }, - "west": { "texture": "#1", "uv": [ 0, 0, 6, 11 ] }, - "up": { "texture": "#3", "uv": [ 0, 4, 6, 0 ] }, - "down": { "texture": "#3", "uv": [ 0, 0, 6, 4 ] } - } - }, - { - "name": "Chamber Left", - "from": [ 11.1, 2, 5 ], - "to": [ 15.1, 13, 11 ], - "faces": { - "north": { "texture": "#1", "uv": [ 0, 0, 6, 11 ] }, - "east": { "texture": "#2", "uv": [ 0, 0, 6, 11 ] }, - "south": { "texture": "#1", "uv": [ 0, 0, 6, 11 ] }, - "west": { "texture": "#0", "uv": [ 0, 0, 6, 11 ] }, - "up": { "texture": "#3", "uv": [ 0, 0, 6, 4 ], "rotation": 270 }, - "down": { "texture": "#3", "uv": [ 0, 0, 6, 4 ] } - } - }, - { - "name": "Chamber Front Left", - "from": [ 5, 1.9, 11 ], - "to": [ 11, 12.9, 15 ], - "rotation": { "origin": [ 8, 8, 8 ], "axis": "y", "angle": 45 }, - "faces": { - "north": { "texture": "#0", "uv": [ 0, 0, 6, 11 ] }, - "east": { "texture": "#1", "uv": [ 0, 0, 6, 11 ] }, - "south": { "texture": "#1", "uv": [ 0, 0, 6, 11 ] }, - "west": { "texture": "#1", "uv": [ 0, 0, 6, 11 ] }, - "up": { "texture": "#3", "uv": [ 0, 0, 6, 4 ] }, - "down": { "texture": "#3", "uv": [ 0, 0, 6, 4 ] } - } - }, - { - "name": "Chamber Front Right", - "from": [ 5, 1.9, 11 ], - "to": [ 11, 12.9, 15 ], - "rotation": { "origin": [ 8, 8, 8 ], "axis": "y", "angle": -45 }, - "faces": { - "north": { "texture": "#0", "uv": [ 0, 0, 6, 11 ] }, - "east": { "texture": "#1", "uv": [ 0, 0, 6, 11 ] }, - "south": { "texture": "#1", "uv": [ 0, 0, 6, 11 ] }, - "west": { "texture": "#1", "uv": [ 0, 0, 2, 10 ] }, - "up": { "texture": "#3", "uv": [ 0, 0, 6, 4 ] }, - "down": { "texture": "#3", "uv": [ 0, 0, 6, 4 ] } - } - }, - { - "name": "Base", - "from": [ 0, 0, 0 ], - "to": [ 16, 2, 16 ], - "faces": { - "north": { "texture": "#4", "uv": [ 0, 0, 16, 2 ] }, - "east": { "texture": "#4", "uv": [ 0, 0, 16, 2 ] }, - "south": { "texture": "#4", "uv": [ 0, 0, 16, 2 ] }, - "west": { "texture": "#4", "uv": [ 0, 0, 16, 2 ] }, - "up": { "texture": "#5", "uv": [ 0, 0, 16, 16 ] }, - "down": { "texture": "#6", "uv": [ 0, 0, 16, 16 ] } - } - }, - { - "name": "Heater", - "from": [ 1.5, 2, 1.5 ], - "to": [ 14.5, 9, 14.5 ], - "faces": { - "north": { "texture": "#7", "uv": [ 0, 0, 13, 7 ] }, - "east": { "texture": "#7", "uv": [ 0, 0, 13, 7 ] }, - "south": { "texture": "#7", "uv": [ 0, 0, 13, 7 ] }, - "west": { "texture": "#7", "uv": [ 0, 0, 13, 7 ] }, - "up": { "texture": "#8", "uv": [ 0, 0, 13, 13 ] }, - "down": { "texture": "#8", "uv": [ 0, 0, 13, 13 ] } - } - } - ] -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/block/irradiated_dust_block.json b/src/main/resources/assets/aether/models/block/irradiated_dust_block.json deleted file mode 100644 index 777ed110c8..0000000000 --- a/src/main/resources/assets/aether/models/block/irradiated_dust_block.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/cube_all", - "textures": { - "all": "aether:blocks/irradiated_dust_block" - } -} diff --git a/src/main/resources/assets/aether/models/block/ladders/skyroot_ladder.json b/src/main/resources/assets/aether/models/block/ladders/skyroot_ladder.json deleted file mode 100644 index 275b044a7a..0000000000 --- a/src/main/resources/assets/aether/models/block/ladders/skyroot_ladder.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "parent": "block/ladder", - "textures": { - "texture": "aether:blocks/ladders/skyroot_ladder", - "particle": "aether:blocks/skyroot_planks/skyroot_planks" - } -} diff --git a/src/main/resources/assets/aether/models/block/leaves/amberoot_leaves.json b/src/main/resources/assets/aether/models/block/leaves/amberoot_leaves.json deleted file mode 100644 index 2fdb052c9c..0000000000 --- a/src/main/resources/assets/aether/models/block/leaves/amberoot_leaves.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/cube_all", - "textures": { - "all": "aether:blocks/leaves/amberoot_leaves" - } -} diff --git a/src/main/resources/assets/aether/models/block/leaves/amberoot_leaves_opaque.json b/src/main/resources/assets/aether/models/block/leaves/amberoot_leaves_opaque.json deleted file mode 100644 index f651374280..0000000000 --- a/src/main/resources/assets/aether/models/block/leaves/amberoot_leaves_opaque.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/cube_all", - "textures": { - "all": "aether:blocks/leaves/amberoot_leaves_opaque" - } -} diff --git a/src/main/resources/assets/aether/models/block/leaves/blue_dark_skyroot_leaves.json b/src/main/resources/assets/aether/models/block/leaves/blue_dark_skyroot_leaves.json deleted file mode 100644 index 68d149e814..0000000000 --- a/src/main/resources/assets/aether/models/block/leaves/blue_dark_skyroot_leaves.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/cube_all", - "textures": { - "all": "aether:blocks/leaves/blue_dark_skyroot_leaves" - } -} diff --git a/src/main/resources/assets/aether/models/block/leaves/blue_dark_skyroot_leaves_opaque.json b/src/main/resources/assets/aether/models/block/leaves/blue_dark_skyroot_leaves_opaque.json deleted file mode 100644 index d572029e66..0000000000 --- a/src/main/resources/assets/aether/models/block/leaves/blue_dark_skyroot_leaves_opaque.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/cube_all", - "textures": { - "all": "aether:blocks/leaves/blue_dark_skyroot_leaves_opaque" - } -} diff --git a/src/main/resources/assets/aether/models/block/leaves/blue_light_skyroot_leaves.json b/src/main/resources/assets/aether/models/block/leaves/blue_light_skyroot_leaves.json deleted file mode 100644 index e3580babf3..0000000000 --- a/src/main/resources/assets/aether/models/block/leaves/blue_light_skyroot_leaves.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/cube_all", - "textures": { - "all": "aether:blocks/leaves/blue_light_skyroot_leaves" - } -} diff --git a/src/main/resources/assets/aether/models/block/leaves/blue_light_skyroot_leaves_opaque.json b/src/main/resources/assets/aether/models/block/leaves/blue_light_skyroot_leaves_opaque.json deleted file mode 100644 index 35ac1fbd3e..0000000000 --- a/src/main/resources/assets/aether/models/block/leaves/blue_light_skyroot_leaves_opaque.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/cube_all", - "textures": { - "all": "aether:blocks/leaves/blue_light_skyroot_leaves_opaque" - } -} diff --git a/src/main/resources/assets/aether/models/block/leaves/blue_skyroot_leaves.json b/src/main/resources/assets/aether/models/block/leaves/blue_skyroot_leaves.json deleted file mode 100644 index 65a938249d..0000000000 --- a/src/main/resources/assets/aether/models/block/leaves/blue_skyroot_leaves.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/cube_all", - "textures": { - "all": "aether:blocks/leaves/blue_skyroot_leaves" - } -} diff --git a/src/main/resources/assets/aether/models/block/leaves/blue_skyroot_leaves_opaque.json b/src/main/resources/assets/aether/models/block/leaves/blue_skyroot_leaves_opaque.json deleted file mode 100644 index 0ba598c6cc..0000000000 --- a/src/main/resources/assets/aether/models/block/leaves/blue_skyroot_leaves_opaque.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/cube_all", - "textures": { - "all": "aether:blocks/leaves/blue_skyroot_leaves_opaque" - } -} diff --git a/src/main/resources/assets/aether/models/block/leaves/dark_blue_dark_skyroot_leaves.json b/src/main/resources/assets/aether/models/block/leaves/dark_blue_dark_skyroot_leaves.json deleted file mode 100644 index 8eacfb13c5..0000000000 --- a/src/main/resources/assets/aether/models/block/leaves/dark_blue_dark_skyroot_leaves.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/cube_all", - "textures": { - "all": "aether:blocks/leaves/dark_blue_dark_skyroot_leaves" - } -} diff --git a/src/main/resources/assets/aether/models/block/leaves/dark_blue_dark_skyroot_leaves_opaque.json b/src/main/resources/assets/aether/models/block/leaves/dark_blue_dark_skyroot_leaves_opaque.json deleted file mode 100644 index 03cbf30803..0000000000 --- a/src/main/resources/assets/aether/models/block/leaves/dark_blue_dark_skyroot_leaves_opaque.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/cube_all", - "textures": { - "all": "aether:blocks/leaves/dark_blue_dark_skyroot_leaves_opaque" - } -} diff --git a/src/main/resources/assets/aether/models/block/leaves/dark_blue_light_skyroot_leaves.json b/src/main/resources/assets/aether/models/block/leaves/dark_blue_light_skyroot_leaves.json deleted file mode 100644 index 369b0e6d42..0000000000 --- a/src/main/resources/assets/aether/models/block/leaves/dark_blue_light_skyroot_leaves.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/cube_all", - "textures": { - "all": "aether:blocks/leaves/dark_blue_light_skyroot_leaves" - } -} diff --git a/src/main/resources/assets/aether/models/block/leaves/dark_blue_light_skyroot_leaves_opaque.json b/src/main/resources/assets/aether/models/block/leaves/dark_blue_light_skyroot_leaves_opaque.json deleted file mode 100644 index 11912b5a78..0000000000 --- a/src/main/resources/assets/aether/models/block/leaves/dark_blue_light_skyroot_leaves_opaque.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/cube_all", - "textures": { - "all": "aether:blocks/leaves/dark_blue_light_skyroot_leaves_opaque" - } -} diff --git a/src/main/resources/assets/aether/models/block/leaves/dark_blue_skyroot_leaves.json b/src/main/resources/assets/aether/models/block/leaves/dark_blue_skyroot_leaves.json deleted file mode 100644 index bfa6843736..0000000000 --- a/src/main/resources/assets/aether/models/block/leaves/dark_blue_skyroot_leaves.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/cube_all", - "textures": { - "all": "aether:blocks/leaves/dark_blue_skyroot_leaves" - } -} diff --git a/src/main/resources/assets/aether/models/block/leaves/dark_blue_skyroot_leaves_opaque.json b/src/main/resources/assets/aether/models/block/leaves/dark_blue_skyroot_leaves_opaque.json deleted file mode 100644 index f21016f81e..0000000000 --- a/src/main/resources/assets/aether/models/block/leaves/dark_blue_skyroot_leaves_opaque.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/cube_all", - "textures": { - "all": "aether:blocks/leaves/dark_blue_skyroot_leaves_opaque" - } -} diff --git a/src/main/resources/assets/aether/models/block/leaves/green_dark_skyroot_leaves.json b/src/main/resources/assets/aether/models/block/leaves/green_dark_skyroot_leaves.json deleted file mode 100644 index 82a865c74a..0000000000 --- a/src/main/resources/assets/aether/models/block/leaves/green_dark_skyroot_leaves.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/cube_all", - "textures": { - "all": "aether:blocks/leaves/green_dark_skyroot_leaves" - } -} diff --git a/src/main/resources/assets/aether/models/block/leaves/green_dark_skyroot_leaves_opaque.json b/src/main/resources/assets/aether/models/block/leaves/green_dark_skyroot_leaves_opaque.json deleted file mode 100644 index 471ad7d60d..0000000000 --- a/src/main/resources/assets/aether/models/block/leaves/green_dark_skyroot_leaves_opaque.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/cube_all", - "textures": { - "all": "aether:blocks/leaves/green_dark_skyroot_leaves_opaque" - } -} diff --git a/src/main/resources/assets/aether/models/block/leaves/green_light_skyroot_leaves.json b/src/main/resources/assets/aether/models/block/leaves/green_light_skyroot_leaves.json deleted file mode 100644 index 7c632dd302..0000000000 --- a/src/main/resources/assets/aether/models/block/leaves/green_light_skyroot_leaves.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/cube_all", - "textures": { - "all": "aether:blocks/leaves/green_light_skyroot_leaves" - } -} diff --git a/src/main/resources/assets/aether/models/block/leaves/green_light_skyroot_leaves_opaque.json b/src/main/resources/assets/aether/models/block/leaves/green_light_skyroot_leaves_opaque.json deleted file mode 100644 index 9d1cba1a2f..0000000000 --- a/src/main/resources/assets/aether/models/block/leaves/green_light_skyroot_leaves_opaque.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/cube_all", - "textures": { - "all": "aether:blocks/leaves/green_light_skyroot_leaves_opaque" - } -} diff --git a/src/main/resources/assets/aether/models/block/leaves/green_skyroot_leaves.json b/src/main/resources/assets/aether/models/block/leaves/green_skyroot_leaves.json deleted file mode 100644 index d6f6f2f7b1..0000000000 --- a/src/main/resources/assets/aether/models/block/leaves/green_skyroot_leaves.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/cube_all", - "textures": { - "all": "aether:blocks/leaves/green_skyroot_leaves" - } -} diff --git a/src/main/resources/assets/aether/models/block/leaves/green_skyroot_leaves_opaque.json b/src/main/resources/assets/aether/models/block/leaves/green_skyroot_leaves_opaque.json deleted file mode 100644 index d26384f33a..0000000000 --- a/src/main/resources/assets/aether/models/block/leaves/green_skyroot_leaves_opaque.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/cube_all", - "textures": { - "all": "aether:blocks/leaves/green_skyroot_leaves_opaque" - } -} diff --git a/src/main/resources/assets/aether/models/block/leaves/mutant_leaves.json b/src/main/resources/assets/aether/models/block/leaves/mutant_leaves.json deleted file mode 100644 index 34d4b8f1ba..0000000000 --- a/src/main/resources/assets/aether/models/block/leaves/mutant_leaves.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/cube_all", - "textures": { - "all": "aether:blocks/leaves/holiday_leaves" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/block/leaves/mutant_leaves_decorated.json b/src/main/resources/assets/aether/models/block/leaves/mutant_leaves_decorated.json deleted file mode 100644 index 37172220f9..0000000000 --- a/src/main/resources/assets/aether/models/block/leaves/mutant_leaves_decorated.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/cube_all", - "textures": { - "all": "aether:blocks/leaves/holiday_bauble_leaves" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/block/leaves/mutant_leaves_decorated_opaque.json b/src/main/resources/assets/aether/models/block/leaves/mutant_leaves_decorated_opaque.json deleted file mode 100644 index 98e9b52124..0000000000 --- a/src/main/resources/assets/aether/models/block/leaves/mutant_leaves_decorated_opaque.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/cube_all", - "textures": { - "all": "aether:blocks/leaves/holiday_bauble_leaves_opaque" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/block/leaves/mutant_leaves_opaque.json b/src/main/resources/assets/aether/models/block/leaves/mutant_leaves_opaque.json deleted file mode 100644 index 43992168ed..0000000000 --- a/src/main/resources/assets/aether/models/block/leaves/mutant_leaves_opaque.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/cube_all", - "textures": { - "all": "aether:blocks/leaves/holiday_leaves_opaque" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/block/leaves/therawood_leaves.json b/src/main/resources/assets/aether/models/block/leaves/therawood_leaves.json deleted file mode 100644 index 4fbe20cb10..0000000000 --- a/src/main/resources/assets/aether/models/block/leaves/therawood_leaves.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/cube_all", - "textures": { - "all": "aether:blocks/leaves/therawood_leaves" - } -} diff --git a/src/main/resources/assets/aether/models/block/leaves/therawood_leaves_opaque.json b/src/main/resources/assets/aether/models/block/leaves/therawood_leaves_opaque.json deleted file mode 100644 index 4fbe20cb10..0000000000 --- a/src/main/resources/assets/aether/models/block/leaves/therawood_leaves_opaque.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/cube_all", - "textures": { - "all": "aether:blocks/leaves/therawood_leaves" - } -} diff --git a/src/main/resources/assets/aether/models/block/light_skyroot_planks/base_beam.json b/src/main/resources/assets/aether/models/block/light_skyroot_planks/base_beam.json deleted file mode 100644 index a915522b49..0000000000 --- a/src/main/resources/assets/aether/models/block/light_skyroot_planks/base_beam.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "parent": "block/cube_column", - "textures": { - "end": "aether:blocks/light_skyroot_planks/wisproot_base_top", - "side": "aether:blocks/light_skyroot_planks/wisproot_base_beam" - } -} diff --git a/src/main/resources/assets/aether/models/block/light_skyroot_planks/base_planks.json b/src/main/resources/assets/aether/models/block/light_skyroot_planks/base_planks.json deleted file mode 100644 index c228982e1f..0000000000 --- a/src/main/resources/assets/aether/models/block/light_skyroot_planks/base_planks.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "parent": "block/cube_column", - "textures": { - "end": "aether:blocks/light_skyroot_planks/wisproot_base_top", - "side": "aether:blocks/light_skyroot_planks/wisproot_base_planks" - } -} diff --git a/src/main/resources/assets/aether/models/block/light_skyroot_planks/beam.json b/src/main/resources/assets/aether/models/block/light_skyroot_planks/beam.json deleted file mode 100644 index 59266cd9be..0000000000 --- a/src/main/resources/assets/aether/models/block/light_skyroot_planks/beam.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "parent": "block/cube_column", - "textures": { - "end": "aether:blocks/light_skyroot_planks/wisproot_base_top", - "side": "aether:blocks/light_skyroot_planks/wisproot_beam" - } -} diff --git a/src/main/resources/assets/aether/models/block/light_skyroot_planks/floorboards.json b/src/main/resources/assets/aether/models/block/light_skyroot_planks/floorboards.json deleted file mode 100644 index 1b62d72641..0000000000 --- a/src/main/resources/assets/aether/models/block/light_skyroot_planks/floorboards.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/cube_all", - "textures": { - "all": "aether:blocks/light_skyroot_planks/wisproot_floorboards" - } -} diff --git a/src/main/resources/assets/aether/models/block/light_skyroot_planks/highlight.json b/src/main/resources/assets/aether/models/block/light_skyroot_planks/highlight.json deleted file mode 100644 index 4effe8d384..0000000000 --- a/src/main/resources/assets/aether/models/block/light_skyroot_planks/highlight.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/cube_all", - "textures": { - "all": "aether:blocks/light_skyroot_planks/wisproot_base_top" - } -} diff --git a/src/main/resources/assets/aether/models/block/light_skyroot_planks/normal.json b/src/main/resources/assets/aether/models/block/light_skyroot_planks/normal.json deleted file mode 100644 index 3d9059b543..0000000000 --- a/src/main/resources/assets/aether/models/block/light_skyroot_planks/normal.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/cube_all", - "textures": { - "all": "aether:blocks/light_skyroot_planks/wisproot_planks" - } -} diff --git a/src/main/resources/assets/aether/models/block/light_skyroot_planks/tiles.json b/src/main/resources/assets/aether/models/block/light_skyroot_planks/tiles.json deleted file mode 100644 index bf906b79ba..0000000000 --- a/src/main/resources/assets/aether/models/block/light_skyroot_planks/tiles.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/cube_all", - "textures": { - "all": "aether:blocks/light_skyroot_planks/wisproot_tiles" - } -} diff --git a/src/main/resources/assets/aether/models/block/light_skyroot_planks/tiles_small.json b/src/main/resources/assets/aether/models/block/light_skyroot_planks/tiles_small.json deleted file mode 100644 index 383d4f7c39..0000000000 --- a/src/main/resources/assets/aether/models/block/light_skyroot_planks/tiles_small.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/cube_all", - "textures": { - "all": "aether:blocks/light_skyroot_planks/wisproot_tiles_small" - } -} diff --git a/src/main/resources/assets/aether/models/block/light_skyroot_planks/top_beam.json b/src/main/resources/assets/aether/models/block/light_skyroot_planks/top_beam.json deleted file mode 100644 index 061189bdaa..0000000000 --- a/src/main/resources/assets/aether/models/block/light_skyroot_planks/top_beam.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "parent": "block/cube_column", - "textures": { - "end": "aether:blocks/light_skyroot_planks/wisproot_base_top", - "side": "aether:blocks/light_skyroot_planks/wisproot_top_beam" - } -} diff --git a/src/main/resources/assets/aether/models/block/light_skyroot_planks/top_planks.json b/src/main/resources/assets/aether/models/block/light_skyroot_planks/top_planks.json deleted file mode 100644 index 0f695bfd43..0000000000 --- a/src/main/resources/assets/aether/models/block/light_skyroot_planks/top_planks.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "parent": "block/cube_column", - "textures": { - "end": "aether:blocks/light_skyroot_planks/wisproot_base_top", - "side": "aether:blocks/light_skyroot_planks/wisproot_top_planks" - } -} diff --git a/src/main/resources/assets/aether/models/block/logs/dark_skyroot_log.json b/src/main/resources/assets/aether/models/block/logs/dark_skyroot_log.json deleted file mode 100644 index 5162bcc2e8..0000000000 --- a/src/main/resources/assets/aether/models/block/logs/dark_skyroot_log.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "parent": "block/cube_column", - "textures": { - "end": "aether:blocks/logs/greatroot_log_top", - "side": "aether:blocks/logs/greatroot_log_side" - } -} diff --git a/src/main/resources/assets/aether/models/block/logs/dark_skyroot_log_bark.json b/src/main/resources/assets/aether/models/block/logs/dark_skyroot_log_bark.json deleted file mode 100644 index e345142baa..0000000000 --- a/src/main/resources/assets/aether/models/block/logs/dark_skyroot_log_bark.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/cube_all", - "textures": { - "all": "aether:blocks/logs/greatroot_log_side" - } -} diff --git a/src/main/resources/assets/aether/models/block/logs/golden_oak_log.json b/src/main/resources/assets/aether/models/block/logs/golden_oak_log.json deleted file mode 100644 index eddc2d4ab9..0000000000 --- a/src/main/resources/assets/aether/models/block/logs/golden_oak_log.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "parent": "block/cube_column", - "textures": { - "end": "aether:blocks/logs/amberoot_log_top", - "side": "aether:blocks/logs/amberoot_log_side" - } -} diff --git a/src/main/resources/assets/aether/models/block/logs/golden_oak_log_bark.json b/src/main/resources/assets/aether/models/block/logs/golden_oak_log_bark.json deleted file mode 100644 index e8268e8192..0000000000 --- a/src/main/resources/assets/aether/models/block/logs/golden_oak_log_bark.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/cube_all", - "textures": { - "all": "aether:blocks/logs/amberoot_log_side" - } -} diff --git a/src/main/resources/assets/aether/models/block/logs/light_skyroot_log.json b/src/main/resources/assets/aether/models/block/logs/light_skyroot_log.json deleted file mode 100644 index 16dcf2d752..0000000000 --- a/src/main/resources/assets/aether/models/block/logs/light_skyroot_log.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "parent": "block/cube_column", - "textures": { - "end": "aether:blocks/logs/wisproot_log_top", - "side": "aether:blocks/logs/wisproot_log_side" - } -} diff --git a/src/main/resources/assets/aether/models/block/logs/light_skyroot_log_bark.json b/src/main/resources/assets/aether/models/block/logs/light_skyroot_log_bark.json deleted file mode 100644 index 7c5b45538c..0000000000 --- a/src/main/resources/assets/aether/models/block/logs/light_skyroot_log_bark.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/cube_all", - "textures": { - "all": "aether:blocks/logs/wisproot_log_side" - } -} diff --git a/src/main/resources/assets/aether/models/block/logs/skyroot_log.json b/src/main/resources/assets/aether/models/block/logs/skyroot_log.json deleted file mode 100644 index 3cb3929987..0000000000 --- a/src/main/resources/assets/aether/models/block/logs/skyroot_log.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "parent": "block/cube_column", - "textures": { - "end": "aether:blocks/logs/skyroot_log_top", - "side": "aether:blocks/logs/skyroot_log_side" - } -} diff --git a/src/main/resources/assets/aether/models/block/logs/skyroot_log_bark.json b/src/main/resources/assets/aether/models/block/logs/skyroot_log_bark.json deleted file mode 100644 index 71c80cc0ac..0000000000 --- a/src/main/resources/assets/aether/models/block/logs/skyroot_log_bark.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/cube_all", - "textures": { - "all": "aether:blocks/logs/skyroot_log_side" - } -} diff --git a/src/main/resources/assets/aether/models/block/logs/therawood_log.json b/src/main/resources/assets/aether/models/block/logs/therawood_log.json deleted file mode 100644 index 19a9f91324..0000000000 --- a/src/main/resources/assets/aether/models/block/logs/therawood_log.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "parent": "block/cube_column", - "textures": { - "end": "aether:blocks/logs/therawood_log_top", - "side": "aether:blocks/logs/therawood_log_side" - } -} diff --git a/src/main/resources/assets/aether/models/block/logs/therawood_log_bark.json b/src/main/resources/assets/aether/models/block/logs/therawood_log_bark.json deleted file mode 100644 index 0f862cbfce..0000000000 --- a/src/main/resources/assets/aether/models/block/logs/therawood_log_bark.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/cube_all", - "textures": { - "all": "aether:blocks/logs/therawood_log_side" - } -} diff --git a/src/main/resources/assets/aether/models/block/masonry_bench.json b/src/main/resources/assets/aether/models/block/masonry_bench.json deleted file mode 100644 index 958f55c626..0000000000 --- a/src/main/resources/assets/aether/models/block/masonry_bench.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "aether:block/tesr", - "textures": { - "particle": "aether:blocks/holystone/holystone" - } -} diff --git a/src/main/resources/assets/aether/models/block/moa_egg.json b/src/main/resources/assets/aether/models/block/moa_egg.json deleted file mode 100644 index 676bda6e61..0000000000 --- a/src/main/resources/assets/aether/models/block/moa_egg.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "aether:block/tesr", - "textures": { - "particle": "aether:blocks/woven_sticks/woven_skyroot_sticks" - } -} diff --git a/src/main/resources/assets/aether/models/block/multiblock_dummy.json b/src/main/resources/assets/aether/models/block/multiblock_dummy.json deleted file mode 100644 index 958f55c626..0000000000 --- a/src/main/resources/assets/aether/models/block/multiblock_dummy.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "aether:block/tesr", - "textures": { - "particle": "aether:blocks/holystone/holystone" - } -} diff --git a/src/main/resources/assets/aether/models/block/orange_tree/orange_tree_bottom_ripe.json b/src/main/resources/assets/aether/models/block/orange_tree/orange_tree_bottom_ripe.json deleted file mode 100644 index 4c8c7fbf77..0000000000 --- a/src/main/resources/assets/aether/models/block/orange_tree/orange_tree_bottom_ripe.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/cross", - "textures": { - "cross": "aether:blocks/orange_tree/orange_tree_bottom_ripe" - } -} diff --git a/src/main/resources/assets/aether/models/block/orange_tree/orange_tree_bottom_stage_1.json b/src/main/resources/assets/aether/models/block/orange_tree/orange_tree_bottom_stage_1.json deleted file mode 100644 index b3523b672d..0000000000 --- a/src/main/resources/assets/aether/models/block/orange_tree/orange_tree_bottom_stage_1.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/cross", - "textures": { - "cross": "aether:blocks/orange_tree/orange_tree_bottom_stage_1" - } -} diff --git a/src/main/resources/assets/aether/models/block/orange_tree/orange_tree_bottom_stage_2.json b/src/main/resources/assets/aether/models/block/orange_tree/orange_tree_bottom_stage_2.json deleted file mode 100644 index bdff0e743e..0000000000 --- a/src/main/resources/assets/aether/models/block/orange_tree/orange_tree_bottom_stage_2.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/cross", - "textures": { - "cross": "aether:blocks/orange_tree/orange_tree_bottom_stage_2" - } -} diff --git a/src/main/resources/assets/aether/models/block/orange_tree/orange_tree_bottom_stage_3.json b/src/main/resources/assets/aether/models/block/orange_tree/orange_tree_bottom_stage_3.json deleted file mode 100644 index 73a969bcbf..0000000000 --- a/src/main/resources/assets/aether/models/block/orange_tree/orange_tree_bottom_stage_3.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/cross", - "textures": { - "cross": "aether:blocks/orange_tree/orange_tree_bottom_stage_3" - } -} diff --git a/src/main/resources/assets/aether/models/block/orange_tree/orange_tree_top_ripe.json b/src/main/resources/assets/aether/models/block/orange_tree/orange_tree_top_ripe.json deleted file mode 100644 index 02e78894bf..0000000000 --- a/src/main/resources/assets/aether/models/block/orange_tree/orange_tree_top_ripe.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/cross", - "textures": { - "cross": "aether:blocks/orange_tree/orange_tree_top_ripe" - } -} diff --git a/src/main/resources/assets/aether/models/block/orange_tree/orange_tree_top_stage_3.json b/src/main/resources/assets/aether/models/block/orange_tree/orange_tree_top_stage_3.json deleted file mode 100644 index bf8112de43..0000000000 --- a/src/main/resources/assets/aether/models/block/orange_tree/orange_tree_top_stage_3.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/cross", - "textures": { - "cross": "aether:blocks/orange_tree/orange_tree_top_stage_3" - } -} diff --git a/src/main/resources/assets/aether/models/block/orange_tree/orange_tree_top_stage_4.json b/src/main/resources/assets/aether/models/block/orange_tree/orange_tree_top_stage_4.json deleted file mode 100644 index befce68d7b..0000000000 --- a/src/main/resources/assets/aether/models/block/orange_tree/orange_tree_top_stage_4.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/cross", - "textures": { - "cross": "aether:blocks/orange_tree/orange_tree_top_stage_4" - } -} diff --git a/src/main/resources/assets/aether/models/block/ores/ambrosium_ore.json b/src/main/resources/assets/aether/models/block/ores/ambrosium_ore.json deleted file mode 100644 index 903b7e6beb..0000000000 --- a/src/main/resources/assets/aether/models/block/ores/ambrosium_ore.json +++ /dev/null @@ -1,58 +0,0 @@ -{ - "textures": { - "particle": "aether:blocks/ores/ambrosium_ore", - "texture": "aether:blocks/ores/ambrosium_ore" - }, - "elements": [ - { - "__comment": "Stone", - "from": [ 0, 0, 0 ], - "to": [ 16, 16, 16 ], - "faces": { - "down": { "uv": [ 16, 16, 0, 0 ], "texture": "#texture", "cullface": "down" }, - "up": { "uv": [ 0, 0, 16, 16 ], "texture": "#texture", "cullface": "up" }, - "north": { "uv": [ 0, 0, 16, 16 ], "texture": "#texture", "cullface": "north" }, - "south": { "uv": [ 0, 0, 16, 16 ], "texture": "#texture", "cullface": "south" }, - "west": { "uv": [ 0, 0, 16, 16 ], "texture": "#texture", "cullface": "west" }, - "east": { "uv": [ 0, 0, 16, 16 ], "texture": "#texture", "cullface": "east" } - } - } - ], - "display": { - "thirdperson_righthand": { - "rotation": [ 75, 45, 0 ], - "translation": [ 0, 2.5, 0 ], - "scale": [ 0.375, 0.375, 0.375 ] - }, - "head": { - "rotation": [ 0, 0, 0 ], - "translation": [ 0, 0, 0 ], - "scale": [ 1, 1, 1 ] - }, - "ground": { - "rotation": [ 0, 0, 0 ], - "translation": [ 0, 3, 0 ], - "scale": [ 0.25, 0.25, 0.25 ] - }, - "fixed": { - "rotation": [ 0, 0, 0 ], - "translation": [ 0, 0, 0 ], - "scale": [ 0.5, 0.5, 0.5 ] - }, - "firstperson_righthand": { - "rotation": [ 0, 45, 0 ], - "translation": [ 0, 0, 0 ], - "scale": [ 0.4, 0.4, 0.4 ] - }, - "firstperson_lefthand": { - "rotation": [ 0, 225, 0 ], - "translation": [ 0, 0, 0 ], - "scale": [ 0.4, 0.4, 0.4 ] - }, - "gui": { - "rotation": [ 30, 225, 0 ], - "translation": [ 0, 0, 0 ], - "scale": [ 0.625, 0.625, 0.625 ] - } - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/block/ores/arkenium_ore.json b/src/main/resources/assets/aether/models/block/ores/arkenium_ore.json deleted file mode 100644 index 7e16348027..0000000000 --- a/src/main/resources/assets/aether/models/block/ores/arkenium_ore.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/cube_all", - "textures": { - "all": "aether:blocks/ores/arkenium_ore" - } -} diff --git a/src/main/resources/assets/aether/models/block/ores/continuum_ore.json b/src/main/resources/assets/aether/models/block/ores/continuum_ore.json deleted file mode 100644 index 7423e638fc..0000000000 --- a/src/main/resources/assets/aether/models/block/ores/continuum_ore.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/cube_all", - "textures": { - "all": "aether:blocks/ores/continuum_ore" - } -} diff --git a/src/main/resources/assets/aether/models/block/ores/gravitite_ore.json b/src/main/resources/assets/aether/models/block/ores/gravitite_ore.json deleted file mode 100644 index 7ef06f1093..0000000000 --- a/src/main/resources/assets/aether/models/block/ores/gravitite_ore.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/cube_all", - "textures": { - "all": "aether:blocks/ores/gravitite_ore" - } -} diff --git a/src/main/resources/assets/aether/models/block/ores/zanite_ore.json b/src/main/resources/assets/aether/models/block/ores/zanite_ore.json deleted file mode 100644 index ca57227fdb..0000000000 --- a/src/main/resources/assets/aether/models/block/ores/zanite_ore.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/cube_all", - "textures": { - "all": "aether:blocks/ores/zanite_ore" - } -} diff --git a/src/main/resources/assets/aether/models/block/outpost_campfire.json b/src/main/resources/assets/aether/models/block/outpost_campfire.json deleted file mode 100644 index 958f55c626..0000000000 --- a/src/main/resources/assets/aether/models/block/outpost_campfire.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "aether:block/tesr", - "textures": { - "particle": "aether:blocks/holystone/holystone" - } -} diff --git a/src/main/resources/assets/aether/models/block/plumproot.json b/src/main/resources/assets/aether/models/block/plumproot.json deleted file mode 100644 index be1406e747..0000000000 --- a/src/main/resources/assets/aether/models/block/plumproot.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "block/cube_bottom_top", - "textures": { - "top": "aether:blocks/plumproot_top", - "bottom": "aether:blocks/plumproot_bottom", - "side": "aether:blocks/plumproot_side" - } -} diff --git a/src/main/resources/assets/aether/models/block/present.json b/src/main/resources/assets/aether/models/block/present.json deleted file mode 100644 index 609438578f..0000000000 --- a/src/main/resources/assets/aether/models/block/present.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "aether:block/tesr", - "textures": { - "particle": "minecraft:items/paper" - } -} diff --git a/src/main/resources/assets/aether/models/block/quicksoil.json b/src/main/resources/assets/aether/models/block/quicksoil.json deleted file mode 100644 index 03949201a4..0000000000 --- a/src/main/resources/assets/aether/models/block/quicksoil.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/cube_all", - "textures": { - "all": "aether:blocks/quicksoil" - } -} diff --git a/src/main/resources/assets/aether/models/block/quicksoil_glass/arkenium_frame.json b/src/main/resources/assets/aether/models/block/quicksoil_glass/arkenium_frame.json deleted file mode 100644 index b602677288..0000000000 --- a/src/main/resources/assets/aether/models/block/quicksoil_glass/arkenium_frame.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/cube_all", - "textures": { - "all": "aether:blocks/arkenium_frame_quicksoil_glass" - } -} diff --git a/src/main/resources/assets/aether/models/block/quicksoil_glass/normal.json b/src/main/resources/assets/aether/models/block/quicksoil_glass/normal.json deleted file mode 100644 index 98f1bd6c8e..0000000000 --- a/src/main/resources/assets/aether/models/block/quicksoil_glass/normal.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/cube_all", - "textures": { - "all": "aether:blocks/quicksoil_glass" - } -} diff --git a/src/main/resources/assets/aether/models/block/quicksoil_glass/skyroot_frame.json b/src/main/resources/assets/aether/models/block/quicksoil_glass/skyroot_frame.json deleted file mode 100644 index 319fe632e1..0000000000 --- a/src/main/resources/assets/aether/models/block/quicksoil_glass/skyroot_frame.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/cube_all", - "textures": { - "all": "aether:blocks/skyroot_frame_quicksoil_glass" - } -} diff --git a/src/main/resources/assets/aether/models/block/rusted_ferrosite.json b/src/main/resources/assets/aether/models/block/rusted_ferrosite.json deleted file mode 100644 index b1a4d8e53e..0000000000 --- a/src/main/resources/assets/aether/models/block/rusted_ferrosite.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/cube_all", - "textures": { - "all": "aether:blocks/rusted_ferrosite" - } -} diff --git a/src/main/resources/assets/aether/models/block/saplings/amberoot_sapling.json b/src/main/resources/assets/aether/models/block/saplings/amberoot_sapling.json deleted file mode 100644 index 110ef06404..0000000000 --- a/src/main/resources/assets/aether/models/block/saplings/amberoot_sapling.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/cross", - "textures": { - "cross": "aether:blocks/saplings/amberoot_sapling" - } -} diff --git a/src/main/resources/assets/aether/models/block/saplings/blue_greatroot_sapling.json b/src/main/resources/assets/aether/models/block/saplings/blue_greatroot_sapling.json deleted file mode 100644 index 76645a6fea..0000000000 --- a/src/main/resources/assets/aether/models/block/saplings/blue_greatroot_sapling.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/cross", - "textures": { - "cross": "aether:blocks/saplings/blue_greatroot_sapling" - } -} diff --git a/src/main/resources/assets/aether/models/block/saplings/blue_skyroot_sapling.json b/src/main/resources/assets/aether/models/block/saplings/blue_skyroot_sapling.json deleted file mode 100644 index 5616d4ee5b..0000000000 --- a/src/main/resources/assets/aether/models/block/saplings/blue_skyroot_sapling.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/cross", - "textures": { - "cross": "aether:blocks/saplings/blue_skyroot_sapling" - } -} diff --git a/src/main/resources/assets/aether/models/block/saplings/blue_wisproot_sapling.json b/src/main/resources/assets/aether/models/block/saplings/blue_wisproot_sapling.json deleted file mode 100644 index b627ea94fd..0000000000 --- a/src/main/resources/assets/aether/models/block/saplings/blue_wisproot_sapling.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/cross", - "textures": { - "cross": "aether:blocks/saplings/blue_wisproot_sapling" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/block/saplings/dark_blue_greatroot_sapling.json b/src/main/resources/assets/aether/models/block/saplings/dark_blue_greatroot_sapling.json deleted file mode 100644 index e3f5303ff3..0000000000 --- a/src/main/resources/assets/aether/models/block/saplings/dark_blue_greatroot_sapling.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/cross", - "textures": { - "cross": "aether:blocks/saplings/dark_blue_greatroot_sapling" - } -} diff --git a/src/main/resources/assets/aether/models/block/saplings/dark_blue_skyroot_sapling.json b/src/main/resources/assets/aether/models/block/saplings/dark_blue_skyroot_sapling.json deleted file mode 100644 index b0ad0421ec..0000000000 --- a/src/main/resources/assets/aether/models/block/saplings/dark_blue_skyroot_sapling.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/cross", - "textures": { - "cross": "aether:blocks/saplings/dark_blue_skyroot_sapling" - } -} diff --git a/src/main/resources/assets/aether/models/block/saplings/dark_blue_wisproot_sapling.json b/src/main/resources/assets/aether/models/block/saplings/dark_blue_wisproot_sapling.json deleted file mode 100644 index 104bc2604e..0000000000 --- a/src/main/resources/assets/aether/models/block/saplings/dark_blue_wisproot_sapling.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/cross", - "textures": { - "cross": "aether:blocks/saplings/dark_blue_wisproot_sapling" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/block/saplings/green_greatroot_sapling.json b/src/main/resources/assets/aether/models/block/saplings/green_greatroot_sapling.json deleted file mode 100644 index 612d1c25bb..0000000000 --- a/src/main/resources/assets/aether/models/block/saplings/green_greatroot_sapling.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/cross", - "textures": { - "cross": "aether:blocks/saplings/green_greatroot_sapling" - } -} diff --git a/src/main/resources/assets/aether/models/block/saplings/green_skyroot_sapling.json b/src/main/resources/assets/aether/models/block/saplings/green_skyroot_sapling.json deleted file mode 100644 index d42b259c50..0000000000 --- a/src/main/resources/assets/aether/models/block/saplings/green_skyroot_sapling.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/cross", - "textures": { - "cross": "aether:blocks/saplings/green_skyroot_sapling" - } -} diff --git a/src/main/resources/assets/aether/models/block/saplings/green_wisproot_sapling.json b/src/main/resources/assets/aether/models/block/saplings/green_wisproot_sapling.json deleted file mode 100644 index 2565bed1df..0000000000 --- a/src/main/resources/assets/aether/models/block/saplings/green_wisproot_sapling.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/cross", - "textures": { - "cross": "aether:blocks/saplings/green_wisproot_sapling" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/block/saplings/mutant_tree_sapling.json b/src/main/resources/assets/aether/models/block/saplings/mutant_tree_sapling.json deleted file mode 100644 index ad071e2f86..0000000000 --- a/src/main/resources/assets/aether/models/block/saplings/mutant_tree_sapling.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/cross", - "textures": { - "cross": "aether:blocks/saplings/holiday_sapling" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/block/scatterglass/arkenium_frame.json b/src/main/resources/assets/aether/models/block/scatterglass/arkenium_frame.json deleted file mode 100644 index 485e985492..0000000000 --- a/src/main/resources/assets/aether/models/block/scatterglass/arkenium_frame.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/cube_all", - "textures": { - "all": "aether:blocks/arkenium_frame_scatterglass" - } -} diff --git a/src/main/resources/assets/aether/models/block/scatterglass/normal.json b/src/main/resources/assets/aether/models/block/scatterglass/normal.json deleted file mode 100644 index 07f6853aa0..0000000000 --- a/src/main/resources/assets/aether/models/block/scatterglass/normal.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/cube_all", - "textures": { - "all": "aether:blocks/scatterglass" - } -} diff --git a/src/main/resources/assets/aether/models/block/scatterglass/skyroot_frame.json b/src/main/resources/assets/aether/models/block/scatterglass/skyroot_frame.json deleted file mode 100644 index 832476db94..0000000000 --- a/src/main/resources/assets/aether/models/block/scatterglass/skyroot_frame.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/cube_all", - "textures": { - "all": "aether:blocks/skyroot_frame_scatterglass" - } -} diff --git a/src/main/resources/assets/aether/models/block/secret_skyroot_trapdoor/secret_skyroot_trapdoor_bottom.json b/src/main/resources/assets/aether/models/block/secret_skyroot_trapdoor/secret_skyroot_trapdoor_bottom.json deleted file mode 100644 index 79cc5643b5..0000000000 --- a/src/main/resources/assets/aether/models/block/secret_skyroot_trapdoor/secret_skyroot_trapdoor_bottom.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/trapdoor_bottom", - "textures": { - "texture": "aether:blocks/skyroot_planks/skyroot_floorboards" - } -} diff --git a/src/main/resources/assets/aether/models/block/secret_skyroot_trapdoor/secret_skyroot_trapdoor_open.json b/src/main/resources/assets/aether/models/block/secret_skyroot_trapdoor/secret_skyroot_trapdoor_open.json deleted file mode 100644 index e4b4e23dc6..0000000000 --- a/src/main/resources/assets/aether/models/block/secret_skyroot_trapdoor/secret_skyroot_trapdoor_open.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/trapdoor_open", - "textures": { - "texture": "aether:blocks/skyroot_planks/skyroot_floorboards" - } -} diff --git a/src/main/resources/assets/aether/models/block/secret_skyroot_trapdoor/secret_skyroot_trapdoor_top.json b/src/main/resources/assets/aether/models/block/secret_skyroot_trapdoor/secret_skyroot_trapdoor_top.json deleted file mode 100644 index a314b369d8..0000000000 --- a/src/main/resources/assets/aether/models/block/secret_skyroot_trapdoor/secret_skyroot_trapdoor_top.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/trapdoor_top", - "textures": { - "texture": "aether:blocks/skyroot_planks/skyroot_floorboards" - } -} diff --git a/src/main/resources/assets/aether/models/block/sentrystone_bricks/base_bricks.json b/src/main/resources/assets/aether/models/block/sentrystone_bricks/base_bricks.json deleted file mode 100644 index 6b0f31293f..0000000000 --- a/src/main/resources/assets/aether/models/block/sentrystone_bricks/base_bricks.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "parent": "block/cube_column", - "textures": { - "end": "aether:blocks/sentrystone_bricks/sentrystone_base_top", - "side": "aether:blocks/sentrystone_bricks/sentrystone_base_bricks" - } -} diff --git a/src/main/resources/assets/aether/models/block/sentrystone_bricks/base_bricks_lit.json b/src/main/resources/assets/aether/models/block/sentrystone_bricks/base_bricks_lit.json deleted file mode 100644 index 7b29130b65..0000000000 --- a/src/main/resources/assets/aether/models/block/sentrystone_bricks/base_bricks_lit.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "parent": "block/cube_column", - "textures": { - "end": "aether:blocks/sentrystone_bricks/sentrystone_base_top_lit", - "side": "aether:blocks/sentrystone_bricks/sentrystone_base_bricks_lit" - } -} diff --git a/src/main/resources/assets/aether/models/block/sentrystone_bricks/base_pillar.json b/src/main/resources/assets/aether/models/block/sentrystone_bricks/base_pillar.json deleted file mode 100644 index 340205d95c..0000000000 --- a/src/main/resources/assets/aether/models/block/sentrystone_bricks/base_pillar.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "parent": "block/cube_column", - "textures": { - "end": "aether:blocks/sentrystone_bricks/sentrystone_base_top", - "side": "aether:blocks/sentrystone_bricks/sentrystone_base_pillar" - } -} diff --git a/src/main/resources/assets/aether/models/block/sentrystone_bricks/base_pillar_lit.json b/src/main/resources/assets/aether/models/block/sentrystone_bricks/base_pillar_lit.json deleted file mode 100644 index 7aa7f81c3a..0000000000 --- a/src/main/resources/assets/aether/models/block/sentrystone_bricks/base_pillar_lit.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "parent": "block/cube_column", - "textures": { - "end": "aether:blocks/sentrystone_bricks/sentrystone_base_top_lit", - "side": "aether:blocks/sentrystone_bricks/sentrystone_base_pillar_lit" - } -} diff --git a/src/main/resources/assets/aether/models/block/sentrystone_bricks/capstone_bricks.json b/src/main/resources/assets/aether/models/block/sentrystone_bricks/capstone_bricks.json deleted file mode 100644 index 9dc5107ddc..0000000000 --- a/src/main/resources/assets/aether/models/block/sentrystone_bricks/capstone_bricks.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "parent": "block/cube_column", - "textures": { - "end": "aether:blocks/sentrystone_bricks/sentrystone_base_top", - "side": "aether:blocks/sentrystone_bricks/sentrystone_capstone_bricks" - } -} diff --git a/src/main/resources/assets/aether/models/block/sentrystone_bricks/capstone_bricks_lit.json b/src/main/resources/assets/aether/models/block/sentrystone_bricks/capstone_bricks_lit.json deleted file mode 100644 index 0f85bbc1f8..0000000000 --- a/src/main/resources/assets/aether/models/block/sentrystone_bricks/capstone_bricks_lit.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "parent": "block/cube_column", - "textures": { - "end": "aether:blocks/sentrystone_bricks/sentrystone_base_top_lit", - "side": "aether:blocks/sentrystone_bricks/sentrystone_capstone_bricks_lit" - } -} diff --git a/src/main/resources/assets/aether/models/block/sentrystone_bricks/capstone_pillar.json b/src/main/resources/assets/aether/models/block/sentrystone_bricks/capstone_pillar.json deleted file mode 100644 index 9b6799eff9..0000000000 --- a/src/main/resources/assets/aether/models/block/sentrystone_bricks/capstone_pillar.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "parent": "block/cube_column", - "textures": { - "end": "aether:blocks/sentrystone_bricks/sentrystone_base_top", - "side": "aether:blocks/sentrystone_bricks/sentrystone_capstone_pillar" - } -} diff --git a/src/main/resources/assets/aether/models/block/sentrystone_bricks/capstone_pillar_lit.json b/src/main/resources/assets/aether/models/block/sentrystone_bricks/capstone_pillar_lit.json deleted file mode 100644 index 1ebdf26484..0000000000 --- a/src/main/resources/assets/aether/models/block/sentrystone_bricks/capstone_pillar_lit.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "parent": "block/cube_column", - "textures": { - "end": "aether:blocks/sentrystone_bricks/sentrystone_base_top_lit", - "side": "aether:blocks/sentrystone_bricks/sentrystone_capstone_pillar_lit" - } -} diff --git a/src/main/resources/assets/aether/models/block/sentrystone_bricks/flagstones.json b/src/main/resources/assets/aether/models/block/sentrystone_bricks/flagstones.json deleted file mode 100644 index 5fd9557934..0000000000 --- a/src/main/resources/assets/aether/models/block/sentrystone_bricks/flagstones.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "parent": "block/cube_column", - "textures": { - "end": "aether:blocks/sentrystone_bricks/sentrystone_flagstones", - "side": "aether:blocks/sentrystone_bricks/sentrystone_flagstones" - } -} diff --git a/src/main/resources/assets/aether/models/block/sentrystone_bricks/keystone.json b/src/main/resources/assets/aether/models/block/sentrystone_bricks/keystone.json deleted file mode 100644 index 6928a85e8b..0000000000 --- a/src/main/resources/assets/aether/models/block/sentrystone_bricks/keystone.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "parent": "block/cube_column", - "textures": { - "end": "aether:blocks/sentrystone_bricks/sentrystone_base_top", - "side": "aether:blocks/sentrystone_bricks/sentrystone_base_top" - } -} diff --git a/src/main/resources/assets/aether/models/block/sentrystone_bricks/keystone_lit.json b/src/main/resources/assets/aether/models/block/sentrystone_bricks/keystone_lit.json deleted file mode 100644 index f834f49831..0000000000 --- a/src/main/resources/assets/aether/models/block/sentrystone_bricks/keystone_lit.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "parent": "block/cube_column", - "textures": { - "end": "aether:blocks/sentrystone_bricks/sentrystone_base_top_lit", - "side": "aether:blocks/sentrystone_bricks/sentrystone_base_top_lit" - } -} diff --git a/src/main/resources/assets/aether/models/block/sentrystone_bricks/lightstone.json b/src/main/resources/assets/aether/models/block/sentrystone_bricks/lightstone.json deleted file mode 100644 index 571ba0ca31..0000000000 --- a/src/main/resources/assets/aether/models/block/sentrystone_bricks/lightstone.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "parent": "block/cube_column", - "textures": { - "end": "aether:blocks/sentrystone_bricks/sentrystone_lightstone", - "side": "aether:blocks/sentrystone_bricks/sentrystone_lightstone" - } -} diff --git a/src/main/resources/assets/aether/models/block/sentrystone_bricks/lightstone_lit.json b/src/main/resources/assets/aether/models/block/sentrystone_bricks/lightstone_lit.json deleted file mode 100644 index dd2232538d..0000000000 --- a/src/main/resources/assets/aether/models/block/sentrystone_bricks/lightstone_lit.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "parent": "block/cube_column", - "textures": { - "end": "aether:blocks/sentrystone_bricks/sentrystone_lightstone_lit", - "side": "aether:blocks/sentrystone_bricks/sentrystone_lightstone_lit" - } -} diff --git a/src/main/resources/assets/aether/models/block/sentrystone_bricks/normal.json b/src/main/resources/assets/aether/models/block/sentrystone_bricks/normal.json deleted file mode 100644 index 94a3c68d7f..0000000000 --- a/src/main/resources/assets/aether/models/block/sentrystone_bricks/normal.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/cube_all", - "textures": { - "all": "aether:blocks/sentrystone_bricks/sentrystone_brick" - } -} diff --git a/src/main/resources/assets/aether/models/block/sentrystone_bricks/pillar.json b/src/main/resources/assets/aether/models/block/sentrystone_bricks/pillar.json deleted file mode 100644 index adda3f13a1..0000000000 --- a/src/main/resources/assets/aether/models/block/sentrystone_bricks/pillar.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "parent": "block/cube_column", - "textures": { - "end": "aether:blocks/sentrystone_bricks/sentrystone_base_top", - "side": "aether:blocks/sentrystone_bricks/sentrystone_pillar" - } -} diff --git a/src/main/resources/assets/aether/models/block/sentrystone_bricks/pillar_lit.json b/src/main/resources/assets/aether/models/block/sentrystone_bricks/pillar_lit.json deleted file mode 100644 index e61e2bc25b..0000000000 --- a/src/main/resources/assets/aether/models/block/sentrystone_bricks/pillar_lit.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "parent": "block/cube_column", - "textures": { - "end": "aether:blocks/sentrystone_bricks/sentrystone_base_top_lit", - "side": "aether:blocks/sentrystone_bricks/sentrystone_pillar_lit" - } -} diff --git a/src/main/resources/assets/aether/models/block/skyroot_bed/skyroot_bed_foot.json b/src/main/resources/assets/aether/models/block/skyroot_bed/skyroot_bed_foot.json deleted file mode 100644 index 7e38418cbb..0000000000 --- a/src/main/resources/assets/aether/models/block/skyroot_bed/skyroot_bed_foot.json +++ /dev/null @@ -1,92 +0,0 @@ -{ - "textures": { - "0": "aether:blocks/skyroot_bed/skyroot_bed_base_w_s_e_n", - "1": "aether:blocks/skyroot_bed/skyroot_bed_base_d", - "2": "aether:blocks/skyroot_bed/skyroot_bed_foot_cover_s_w_e", - "3": "aether:blocks/skyroot_bed/skyroot_bed_foot_cover_u", - "4": "aether:blocks/skyroot_bed/skyroot_bed_legs_w_e", - "5": "aether:blocks/skyroot_bed/skyroot_bed_legs_d_s_n", - "6": "aether:blocks/skyroot_planks/skyroot_planks", - "particle": "aether:blocks/skyroot_planks/skyroot_planks" - }, - "elements": [ - { - "name": "BaseFront", - "from": [ 0, 3, 0 ], - "to": [ 16, 6, 16 ], - "faces": { - "north": { "texture": "#6", "uv": [ 0, 12, 16, 15 ] }, - "east": { "texture": "#0", "uv": [ 0, 8, 16, 11 ] }, - "south": { "texture": "#0", "uv": [ 0, 4, 16, 7 ] }, - "west": { "texture": "#0", "uv": [ 0, 0.3, 16, 3 ] }, - "up": { "texture": "#0", "uv": [ 0, 0, 16, 16 ], "cullface": "up" }, - "down": { "texture": "#1", "uv": [ 0, 0, 16, 16 ] } - } - }, - { - "name": "Cover", - "from": [ 0, 6, 0 ], - "to": [ 16, 9, 16 ], - "faces": { - "north": { "texture": "#6", "uv": [ 0, 12, 16, 15 ] }, - "east": { "texture": "#2", "uv": [ 0.3, 4, 16, 7 ] }, - "south": { "texture": "#2", "uv": [ 0, 0, 16, 3 ] }, - "west": { "texture": "#2", "uv": [ 0, 8, 16, 11 ] }, - "up": { "texture": "#3", "uv": [ 0, 0, 16, 16 ] }, - "down": { "texture": "#3", "uv": [ 11, 0, 13, 6 ], "cullface": "down" } - } - }, - { - "name": "LegTopFrontRight", - "from": [ 0, 2, 0 ], - "to": [ 2, 3, 16 ], - "faces": { - "north": { "texture": "#6", "uv": [ 5, 0, 5, 1 ] }, - "east": { "texture": "#4", "uv": [ 0, 3, 16, 4 ] }, - "south": { "texture": "#5", "uv": [ 3, 0, 5, 1 ] }, - "west": { "texture": "#4", "uv": [ 0, 1, 16, 2 ] }, - "up": { "texture": "#5", "uv": [ 0, 0, 2, 16 ], "cullface": "up" }, - "down": { "texture": "#5", "uv": [ 0, 0, 2, 16 ] } - } - }, - { - "name": "LegBottomFrontRight", - "from": [ 0, 0, 0 ], - "to": [ 1, 2, 16 ], - "faces": { - "north": { "texture": "#6", "uv": [ 12, 0, 13, 2 ] }, - "east": { "texture": "#4", "uv": [ 0, 12, 16, 14 ] }, - "south": { "texture": "#5", "uv": [ 11, 0, 12, 2 ] }, - "west": { "texture": "#4", "uv": [ 0, 9, 16, 11 ] }, - "up": { "texture": "#-1", "uv": [ 0, 0, 1, 16 ], "cullface": "up" }, - "down": { "texture": "#5", "uv": [ 9, 0, 10, 16 ] } - } - }, - { - "name": "LegTopFrontLeft", - "from": [ 14, 2, 0 ], - "to": [ 16, 3, 16 ], - "faces": { - "north": { "texture": "#6", "uv": [ 5, 0, 5, 1 ] }, - "east": { "texture": "#4", "uv": [ 0, 3, 16, 4 ] }, - "south": { "texture": "#5", "uv": [ 3, 0, 5, 1 ] }, - "west": { "texture": "#4", "uv": [ 0, 1, 16, 2 ] }, - "up": { "texture": "#-1", "uv": [ 0, 0, 2, 16 ], "cullface": "up" }, - "down": { "texture": "#5", "uv": [ 0, 0, 2, 16 ] } - } - }, - { - "name": "LegBottomFrontLeft", - "from": [ 15, 0, 0 ], - "to": [ 16, 2, 16 ], - "faces": { - "north": { "texture": "#6", "uv": [ 12, 0, 13, 2 ] }, - "east": { "texture": "#4", "uv": [ 0, 12, 16, 14 ] }, - "south": { "texture": "#5", "uv": [ 11, 0, 12, 2 ] }, - "west": { "texture": "#4", "uv": [ 0, 9, 16, 11 ] }, - "up": { "texture": "#-1", "uv": [ 0, 0, 1, 16 ], "cullface": "up" }, - "down": { "texture": "#5", "uv": [ 9, 0, 10, 16 ] } - } - } - ] -} diff --git a/src/main/resources/assets/aether/models/block/skyroot_bed/skyroot_bed_head.json b/src/main/resources/assets/aether/models/block/skyroot_bed/skyroot_bed_head.json deleted file mode 100644 index c4f83017a7..0000000000 --- a/src/main/resources/assets/aether/models/block/skyroot_bed/skyroot_bed_head.json +++ /dev/null @@ -1,151 +0,0 @@ -{ - "__comment": "Model generated using MrCrayfish's Model Creator (http://mrcrayfish.com/modelcreator/)", - "textures": { - "0": "aether:blocks/skyroot_bed/skyroot_bed_base_w_s_e_n", - "1": "aether:blocks/skyroot_bed/skyroot_bed_base_u", - "2": "aether:blocks/skyroot_bed/skyroot_bed_base_d", - "3": "aether:blocks/skyroot_bed/skyroot_bed_mattress", - "4": "aether:blocks/skyroot_bed/skyroot_bed_headboard", - "5": "aether:blocks/skyroot_bed/skyroot_bed_pillow_d_n_e", - "6": "aether:blocks/skyroot_bed/skyroot_bed_pillow_u_s_w", - "7": "aether:blocks/skyroot_bed/skyroot_bed_head_cover_u_n_w_e", - "8": "aether:blocks/skyroot_bed/skyroot_bed_headboard_2", - "9": "aether:blocks/skyroot_bed/skyroot_bed_legs_d_s_n", - "10": "aether:blocks/skyroot_bed/skyroot_bed_legs_w_e", - "11": "aether:blocks/skyroot_planks/skyroot_planks", - "particle": "aether:blocks/skyroot_planks/skyroot_planks" - }, - "elements": [ - { - "name": "BaseBack", - "from": [ 0, 3, 0 ], - "to": [ 16, 6, 16 ], - "faces": { - "north": { "texture": "#0", "uv": [ 0, 12, 16, 15 ] }, - "east": { "texture": "#0", "uv": [ 0, 8, 16, 11 ] }, - "south": { "texture": "#11", "uv": [ 0, 4, 16, 7 ] }, - "west": { "texture": "#0", "uv": [ 0, 0, 16, 3 ] }, - "up": { "texture": "#1", "uv": [ 0, 0, 16, 16 ] }, - "down": { "texture": "#2", "uv": [ 0, 16, 16, 0 ] } - } - }, - { - "name": "Mattress", - "from": [ 0.5, 6, 1 ], - "to": [ 15.5, 8, 9 ], - "faces": { - "north": { "texture": "#-1", "uv": [ 1, 8, 4, 10 ], "cullface": "north" }, - "east": { "texture": "#3", "uv": [ 0, 9, 8, 11 ] }, - "south": { "texture": "#11", "uv": [ 1, 8, 4, 10 ] }, - "west": { "texture": "#3", "uv": [ 8, 9, 16, 11 ] }, - "up": { "texture": "#3", "uv": [ 0, 0, 15, 8 ] }, - "down": { "texture": "#-1", "uv": [ 1, 8, 4, 10 ], "cullface": "down" } - } - }, - { - "name": "Headboard", - "from": [ 0, 6, 0 ], - "to": [ 16, 12, 1 ], - "faces": { - "north": { "texture": "#4", "uv": [ 0, 10, 16, 16 ] }, - "east": { "texture": "#4", "uv": [ 15, 3, 16, 9 ] }, - "south": { "texture": "#4", "uv": [ 0, 10, 16, 16 ] }, - "west": { "texture": "#4", "uv": [ 0, 3, 1, 9 ] }, - "up": { "texture": "#4", "uv": [ 0, 9, 16, 10 ] }, - "down": { "texture": "#-1", "uv": [ 2, 12, 4, 13 ], "cullface": "down" } - } - }, - { - "name": "Pillow", - "from": [ 1.5, 7.5, 0.5 ], - "to": [ 14.5, 10.5, 8.5 ], - "rotation": { "origin": [ 8, 8, 3 ], "axis": "x", "angle": 22.5 }, - "faces": { - "north": { "texture": "#5", "uv": [ 3, 8, 16, 11 ] }, - "east": { "texture": "#5", "uv": [ 3, 8, 16, 11 ] }, - "south": { "texture": "#6", "uv": [ 0, 8, 12, 11 ] }, - "west": { "texture": "#6", "uv": [ 0, 12, 7, 15 ] }, - "up": { "texture": "#6", "uv": [ 0, 0, 12, 8 ] }, - "down": { "texture": "#5", "uv": [ 3, 0, 16, 8 ] } - } - }, - { - "name": "Cover", - "from": [ 0, 6, 9 ], - "to": [ 16, 9, 16 ], - "faces": { - "north": { "texture": "#7", "uv": [ 0, 8, 16, 11 ] }, - "east": { "texture": "#7", "uv": [ 9, 12, 16, 15 ] }, - "south": { "texture": "#11", "uv": [ 9.1, 5.8, 11.1, 6.5 ] }, - "west": { "texture": "#7", "uv": [ 0, 12, 7, 15 ] }, - "up": { "texture": "#7", "uv": [ 0, 0, 16, 6 ] }, - "down": { "texture": "#-1", "uv": [ 11, 0, 13, 3 ], "cullface": "down" } - } - }, - { - "name": "Headboard2", - "from": [ 1, 12, 0 ], - "to": [ 15, 13, 1 ], - "faces": { - "north": { "texture": "#8", "uv": [ 1, 3, 15, 4 ] }, - "east": { "texture": "#8", "uv": [ 15, 1, 16, 2 ] }, - "south": { "texture": "#8", "uv": [ 1, 1, 15, 2 ] }, - "west": { "texture": "#8", "uv": [ 15, 1, 16, 2 ] }, - "up": { "texture": "#8", "uv": [ 1, 0, 15, 1 ] }, - "down": { "texture": "#-1", "uv": [ 0, 0, 14, 1 ], "cullface": "down" } - } - }, - { - "name": "LegTopBackRight", - "from": [ 0, 2, 0 ], - "to": [ 2, 3, 16 ], - "faces": { - "north": { "texture": "#9", "uv": [ 5, 0, 7, 1 ] }, - "east": { "texture": "#10", "uv": [ 0, 3, 16, 4 ] }, - "south": { "texture": "#11", "uv": [ 3, 0, 5, 1 ] }, - "west": { "texture": "#10", "uv": [ 0, 1, 16, 2 ] }, - "up": { "texture": "#-1", "uv": [ 0, 0, 2, 16 ], "cullface": "up" }, - "down": { "texture": "#9", "uv": [ 0, 0, 2, 16 ] } - } - }, - { - "name": "LegBottomBackRight", - "from": [ 0, 0, 0 ], - "to": [ 1, 2, 16 ], - "faces": { - "north": { "texture": "#9", "uv": [ 12, 0, 13, 2 ] }, - "east": { "texture": "#10", "uv": [ 0, 12, 16, 14 ] }, - "south": { "texture": "#11", "uv": [ 7.9, 14, 8, 14.5 ] }, - "west": { "texture": "#10", "uv": [ 0, 9, 16, 11 ] }, - "up": { "texture": "#-1", "uv": [ 0, 0, 1, 16 ], "cullface": "up" }, - "down": { "texture": "#9", "uv": [ 9, 0, 10, 16 ] } - } - }, - { - "name": "LegTopBackLeft", - "from": [ 14, 2, 0 ], - "to": [ 16, 3, 16 ], - "faces": { - "north": { "texture": "#9", "uv": [ 5, 0, 7, 1 ] }, - "east": { "texture": "#10", "uv": [ 0, 3, 16, 4 ] }, - "south": { "texture": "#11", "uv": [ 3, 0, 5, 1 ] }, - "west": { "texture": "#10", "uv": [ 0, 1, 16, 2 ] }, - "up": { "texture": "#-1", "uv": [ 0, 0, 2, 16 ], "cullface": "up" }, - "down": { "texture": "#9", "uv": [ 0, 0, 2, 16 ] } - } - }, - { - "name": "LegTopBackLeft", - "from": [ 15, 0, 0 ], - "to": [ 16, 2, 16 ], - "faces": { - "north": { "texture": "#9", "uv": [ 12, 0, 13, 2 ] }, - "east": { "texture": "#10", "uv": [ 0, 12, 16, 14 ] }, - "south": { "texture": "#11", "uv": [ 7.9, 14, 8, 14.5 ] }, - "west": { "texture": "#10", "uv": [ 0, 9, 16, 11 ] }, - "up": { "texture": "#-1", "uv": [ 0, 0, 1, 16 ], "cullface": "up" }, - "down": { "texture": "#9", "uv": [ 9, 0, 10, 16 ] } - } - } - ] -} diff --git a/src/main/resources/assets/aether/models/block/skyroot_bookshelf.json b/src/main/resources/assets/aether/models/block/skyroot_bookshelf.json deleted file mode 100644 index c7a440fd6b..0000000000 --- a/src/main/resources/assets/aether/models/block/skyroot_bookshelf.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "parent": "block/cube_column", - "textures": { - "end": "aether:blocks/skyroot_planks/skyroot_planks", - "side": "aether:blocks/skyroot_bookshelf" - } -} diff --git a/src/main/resources/assets/aether/models/block/skyroot_button/skyroot_button.json b/src/main/resources/assets/aether/models/block/skyroot_button/skyroot_button.json deleted file mode 100644 index 1c06e45e60..0000000000 --- a/src/main/resources/assets/aether/models/block/skyroot_button/skyroot_button.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/button", - "textures": { - "texture": "aether:blocks/skyroot_planks/skyroot_planks" - } -} diff --git a/src/main/resources/assets/aether/models/block/skyroot_button/skyroot_button_inventory.json b/src/main/resources/assets/aether/models/block/skyroot_button/skyroot_button_inventory.json deleted file mode 100644 index 4950616acc..0000000000 --- a/src/main/resources/assets/aether/models/block/skyroot_button/skyroot_button_inventory.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/button_inventory", - "textures": { - "texture": "aether:blocks/skyroot_planks/skyroot_planks" - } -} diff --git a/src/main/resources/assets/aether/models/block/skyroot_button/skyroot_button_pressed.json b/src/main/resources/assets/aether/models/block/skyroot_button/skyroot_button_pressed.json deleted file mode 100644 index 51242cf355..0000000000 --- a/src/main/resources/assets/aether/models/block/skyroot_button/skyroot_button_pressed.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/button_pressed", - "textures": { - "texture": "aether:blocks/skyroot_planks/skyroot_planks" - } -} diff --git a/src/main/resources/assets/aether/models/block/skyroot_chest.json b/src/main/resources/assets/aether/models/block/skyroot_chest.json deleted file mode 100644 index 97cd43248e..0000000000 --- a/src/main/resources/assets/aether/models/block/skyroot_chest.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "aether:block/skyroot_planks/normal" -} diff --git a/src/main/resources/assets/aether/models/block/skyroot_fence/skyroot_fence_post.json b/src/main/resources/assets/aether/models/block/skyroot_fence/skyroot_fence_post.json deleted file mode 100644 index aca1abb93f..0000000000 --- a/src/main/resources/assets/aether/models/block/skyroot_fence/skyroot_fence_post.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/fence_post", - "textures": { - "texture": "aether:blocks/skyroot_planks/skyroot_planks" - } -} diff --git a/src/main/resources/assets/aether/models/block/skyroot_fence/skyroot_fence_side.json b/src/main/resources/assets/aether/models/block/skyroot_fence/skyroot_fence_side.json deleted file mode 100644 index 714e7d1bf4..0000000000 --- a/src/main/resources/assets/aether/models/block/skyroot_fence/skyroot_fence_side.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/fence_side", - "textures": { - "texture": "aether:blocks/skyroot_planks/skyroot_planks" - } -} diff --git a/src/main/resources/assets/aether/models/block/skyroot_fence_gate/skyroot_fence_gate_closed.json b/src/main/resources/assets/aether/models/block/skyroot_fence_gate/skyroot_fence_gate_closed.json deleted file mode 100644 index 6da8331896..0000000000 --- a/src/main/resources/assets/aether/models/block/skyroot_fence_gate/skyroot_fence_gate_closed.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/fence_gate_closed", - "textures": { - "texture": "aether:blocks/skyroot_planks/skyroot_planks" - } -} diff --git a/src/main/resources/assets/aether/models/block/skyroot_fence_gate/skyroot_fence_gate_open.json b/src/main/resources/assets/aether/models/block/skyroot_fence_gate/skyroot_fence_gate_open.json deleted file mode 100644 index e64672483d..0000000000 --- a/src/main/resources/assets/aether/models/block/skyroot_fence_gate/skyroot_fence_gate_open.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/fence_gate_open", - "textures": { - "texture": "aether:blocks/skyroot_planks/skyroot_planks" - } -} diff --git a/src/main/resources/assets/aether/models/block/skyroot_fence_gate/skyroot_wall_gate_closed.json b/src/main/resources/assets/aether/models/block/skyroot_fence_gate/skyroot_wall_gate_closed.json deleted file mode 100644 index fa1d424f41..0000000000 --- a/src/main/resources/assets/aether/models/block/skyroot_fence_gate/skyroot_wall_gate_closed.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/wall_gate_closed", - "textures": { - "texture": "aether:blocks/skyroot_planks/skyroot_planks" - } -} diff --git a/src/main/resources/assets/aether/models/block/skyroot_fence_gate/skyroot_wall_gate_open.json b/src/main/resources/assets/aether/models/block/skyroot_fence_gate/skyroot_wall_gate_open.json deleted file mode 100644 index ac1c69f991..0000000000 --- a/src/main/resources/assets/aether/models/block/skyroot_fence_gate/skyroot_wall_gate_open.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/wall_gate_open", - "textures": { - "texture": "aether:blocks/skyroot_planks/skyroot_planks" - } -} diff --git a/src/main/resources/assets/aether/models/block/skyroot_planks/base_beam.json b/src/main/resources/assets/aether/models/block/skyroot_planks/base_beam.json deleted file mode 100644 index 18c1f98689..0000000000 --- a/src/main/resources/assets/aether/models/block/skyroot_planks/base_beam.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "parent": "block/cube_column", - "textures": { - "end": "aether:blocks/skyroot_planks/skyroot_base_top", - "side": "aether:blocks/skyroot_planks/skyroot_base_beam" - } -} diff --git a/src/main/resources/assets/aether/models/block/skyroot_planks/base_planks.json b/src/main/resources/assets/aether/models/block/skyroot_planks/base_planks.json deleted file mode 100644 index 01b17ccd38..0000000000 --- a/src/main/resources/assets/aether/models/block/skyroot_planks/base_planks.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "parent": "block/cube_column", - "textures": { - "end": "aether:blocks/skyroot_planks/skyroot_base_top", - "side": "aether:blocks/skyroot_planks/skyroot_base_planks" - } -} diff --git a/src/main/resources/assets/aether/models/block/skyroot_planks/beam.json b/src/main/resources/assets/aether/models/block/skyroot_planks/beam.json deleted file mode 100644 index 06451a3b4c..0000000000 --- a/src/main/resources/assets/aether/models/block/skyroot_planks/beam.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "parent": "block/cube_column", - "textures": { - "end": "aether:blocks/skyroot_planks/skyroot_base_top", - "side": "aether:blocks/skyroot_planks/skyroot_beam" - } -} diff --git a/src/main/resources/assets/aether/models/block/skyroot_planks/floorboards.json b/src/main/resources/assets/aether/models/block/skyroot_planks/floorboards.json deleted file mode 100644 index 655ef4494e..0000000000 --- a/src/main/resources/assets/aether/models/block/skyroot_planks/floorboards.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/cube_all", - "textures": { - "all": "aether:blocks/skyroot_planks/skyroot_floorboards" - } -} diff --git a/src/main/resources/assets/aether/models/block/skyroot_planks/highlight.json b/src/main/resources/assets/aether/models/block/skyroot_planks/highlight.json deleted file mode 100644 index 6f5d26a52d..0000000000 --- a/src/main/resources/assets/aether/models/block/skyroot_planks/highlight.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/cube_all", - "textures": { - "all": "aether:blocks/skyroot_planks/skyroot_base_top" - } -} diff --git a/src/main/resources/assets/aether/models/block/skyroot_planks/normal.json b/src/main/resources/assets/aether/models/block/skyroot_planks/normal.json deleted file mode 100644 index 5795cd72e1..0000000000 --- a/src/main/resources/assets/aether/models/block/skyroot_planks/normal.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/cube_all", - "textures": { - "all": "aether:blocks/skyroot_planks/skyroot_planks" - } -} diff --git a/src/main/resources/assets/aether/models/block/skyroot_planks/tiles.json b/src/main/resources/assets/aether/models/block/skyroot_planks/tiles.json deleted file mode 100644 index 1e45f64714..0000000000 --- a/src/main/resources/assets/aether/models/block/skyroot_planks/tiles.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/cube_all", - "textures": { - "all": "aether:blocks/skyroot_planks/skyroot_tiles" - } -} diff --git a/src/main/resources/assets/aether/models/block/skyroot_planks/tiles_small.json b/src/main/resources/assets/aether/models/block/skyroot_planks/tiles_small.json deleted file mode 100644 index 5e15c1e03d..0000000000 --- a/src/main/resources/assets/aether/models/block/skyroot_planks/tiles_small.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/cube_all", - "textures": { - "all": "aether:blocks/skyroot_planks/skyroot_tiles_small" - } -} diff --git a/src/main/resources/assets/aether/models/block/skyroot_planks/top_beam.json b/src/main/resources/assets/aether/models/block/skyroot_planks/top_beam.json deleted file mode 100644 index e34dcdc6a2..0000000000 --- a/src/main/resources/assets/aether/models/block/skyroot_planks/top_beam.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "parent": "block/cube_column", - "textures": { - "end": "aether:blocks/skyroot_planks/skyroot_base_top", - "side": "aether:blocks/skyroot_planks/skyroot_top_beam" - } -} diff --git a/src/main/resources/assets/aether/models/block/skyroot_planks/top_planks.json b/src/main/resources/assets/aether/models/block/skyroot_planks/top_planks.json deleted file mode 100644 index 6d752b1b48..0000000000 --- a/src/main/resources/assets/aether/models/block/skyroot_planks/top_planks.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "parent": "block/cube_column", - "textures": { - "end": "aether:blocks/skyroot_planks/skyroot_base_top", - "side": "aether:blocks/skyroot_planks/skyroot_top_planks" - } -} diff --git a/src/main/resources/assets/aether/models/block/skyroot_pressure_plate/skyroot_pressure_plate_down.json b/src/main/resources/assets/aether/models/block/skyroot_pressure_plate/skyroot_pressure_plate_down.json deleted file mode 100644 index e0c8c114f2..0000000000 --- a/src/main/resources/assets/aether/models/block/skyroot_pressure_plate/skyroot_pressure_plate_down.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/pressure_plate_down", - "textures": { - "texture": "aether:blocks/skyroot_planks/skyroot_planks" - } -} diff --git a/src/main/resources/assets/aether/models/block/skyroot_pressure_plate/skyroot_pressure_plate_up.json b/src/main/resources/assets/aether/models/block/skyroot_pressure_plate/skyroot_pressure_plate_up.json deleted file mode 100644 index 7c89c86c69..0000000000 --- a/src/main/resources/assets/aether/models/block/skyroot_pressure_plate/skyroot_pressure_plate_up.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/pressure_plate_up", - "textures": { - "texture": "aether:blocks/skyroot_planks/skyroot_planks" - } -} diff --git a/src/main/resources/assets/aether/models/block/skyroot_pressure_plate_down.json b/src/main/resources/assets/aether/models/block/skyroot_pressure_plate_down.json deleted file mode 100644 index e0c8c114f2..0000000000 --- a/src/main/resources/assets/aether/models/block/skyroot_pressure_plate_down.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/pressure_plate_down", - "textures": { - "texture": "aether:blocks/skyroot_planks/skyroot_planks" - } -} diff --git a/src/main/resources/assets/aether/models/block/skyroot_pressure_plate_up.json b/src/main/resources/assets/aether/models/block/skyroot_pressure_plate_up.json deleted file mode 100644 index 7c89c86c69..0000000000 --- a/src/main/resources/assets/aether/models/block/skyroot_pressure_plate_up.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/pressure_plate_up", - "textures": { - "texture": "aether:blocks/skyroot_planks/skyroot_planks" - } -} diff --git a/src/main/resources/assets/aether/models/block/skyroot_sign.json b/src/main/resources/assets/aether/models/block/skyroot_sign.json deleted file mode 100644 index b0bda04872..0000000000 --- a/src/main/resources/assets/aether/models/block/skyroot_sign.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "aether:block/tesr", - "textures": { - "particle": "aether:blocks/skyroot_planks/skyroot_planks" - } -} diff --git a/src/main/resources/assets/aether/models/block/skyroot_trapdoor/skyroot_trapdoor_bottom.json b/src/main/resources/assets/aether/models/block/skyroot_trapdoor/skyroot_trapdoor_bottom.json deleted file mode 100644 index 1c01421b89..0000000000 --- a/src/main/resources/assets/aether/models/block/skyroot_trapdoor/skyroot_trapdoor_bottom.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/trapdoor_bottom", - "textures": { - "texture": "aether:blocks/skyroot_trapdoor" - } -} diff --git a/src/main/resources/assets/aether/models/block/skyroot_trapdoor/skyroot_trapdoor_open.json b/src/main/resources/assets/aether/models/block/skyroot_trapdoor/skyroot_trapdoor_open.json deleted file mode 100644 index ad5f032c77..0000000000 --- a/src/main/resources/assets/aether/models/block/skyroot_trapdoor/skyroot_trapdoor_open.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/trapdoor_open", - "textures": { - "texture": "aether:blocks/skyroot_trapdoor" - } -} diff --git a/src/main/resources/assets/aether/models/block/skyroot_trapdoor/skyroot_trapdoor_top.json b/src/main/resources/assets/aether/models/block/skyroot_trapdoor/skyroot_trapdoor_top.json deleted file mode 100644 index 59606db758..0000000000 --- a/src/main/resources/assets/aether/models/block/skyroot_trapdoor/skyroot_trapdoor_top.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/trapdoor_top", - "textures": { - "texture": "aether:blocks/skyroot_trapdoor" - } -} diff --git a/src/main/resources/assets/aether/models/block/skyroot_twigs/skyroot_twigs.json b/src/main/resources/assets/aether/models/block/skyroot_twigs/skyroot_twigs.json deleted file mode 100644 index ba20221c14..0000000000 --- a/src/main/resources/assets/aether/models/block/skyroot_twigs/skyroot_twigs.json +++ /dev/null @@ -1,64 +0,0 @@ -{ - "__comment": "Model generated using MrCrayfish's Model Creator (http://mrcrayfish.com/modelcreator/)", - "textures": { - "particle": "aether:blocks/skyroot_twigs", - "1": "aether:blocks/skyroot_twigs" - }, - "display": { - "gui": { - "rotation": [ -30, -45, 0 ], - "translation": [ 0, 2.5, 0 ], - "scale": [ 0.825, 0.825, 0.825 ] - }, - "ground": { - "rotation": [ 0, 0, 0 ], - "translation": [ 0, 3, 0], - "scale":[ 0.5, 0.5, 0.5 ] - }, - "fixed": { - "rotation": [ 0, 90, 0 ], - "translation": [ 0, 0.5, 0 ], - "scale": [ 0.5, 0.5, 0.5 ] - }, - "firstperson_righthand": { - "rotation": [ 30, -45, 0 ], - "translation": [ 3.0, 1.5, 0 ], - "scale": [ 0.40, 0.40, 0.40 ] - }, - "thirdperson_righthand": { - "rotation": [ 75, -135, 0 ], - "translation": [ 0, 3.5, 0 ], - "scale": [ 0.375, 0.375, 0.375 ] - } - }, - "elements": [ - { - "name": "stick_1", - "from": [ 2.0, 0.0, 7.0 ], - "to": [ 14.0, 1.0, 8.0 ], - "rotation": { "origin": [ 8.0, 8.0, 8.0 ], "axis": "y", "angle": 45.0 }, - "faces": { - "north": { "texture": "#1", "uv": [ 0.0, 0.0, 12.0, 1.0 ] }, - "east": { "texture": "#1", "uv": [ 12.0, 0.0, 13.0, 1.0 ] }, - "south": { "texture": "#1", "uv": [ 0.0, 0.0, 12.0, 1.0 ] }, - "west": { "texture": "#1", "uv": [ 12.0, 0.0, 13.0, 1.0 ] }, - "up": { "texture": "#1", "uv": [ 0.0, 0.0, 12.0, 1.0 ] }, - "down": { "texture": "#1", "uv": [ 0.0, 0.0, 12.0, 1.0 ] } - } - }, - { - "name": "stick_2", - "from": [ 1.0, 1.0, 7.0 ], - "to": [ 7.0, 2.0, 8.0 ], - "rotation": { "origin": [ 8.0, 8.0, 8.0 ], "axis": "z", "angle": 22.5 }, - "faces": { - "north": { "texture": "#1", "uv": [ 0.0, 0.0, 9.0, 1.0 ] }, - "east": { "texture": "#1", "uv": [ 12.0, 0.0, 13.0, 1.0 ] }, - "south": { "texture": "#1", "uv": [ 0.0, 0.0, 9.0, 1.0 ] }, - "west": { "texture": "#1", "uv": [ 12.0, 0.0, 13.0, 1.0 ] }, - "up": { "texture": "#1", "uv": [ 0.0, 0.0, 9.0, 1.0 ] }, - "down": { "texture": "#1", "uv": [ 0.0, 0.0, 9.0, 1.0 ] } - } - } - ] -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/block/skyroot_twigs/skyroot_twigs_2.json b/src/main/resources/assets/aether/models/block/skyroot_twigs/skyroot_twigs_2.json deleted file mode 100644 index 81814b3632..0000000000 --- a/src/main/resources/assets/aether/models/block/skyroot_twigs/skyroot_twigs_2.json +++ /dev/null @@ -1,37 +0,0 @@ -{ - "__comment": "Model generated using MrCrayfish's Model Creator (http://mrcrayfish.com/modelcreator/)", - "textures": { - "particle": "aether:blocks/skyroot_twigs", - "0": "aether:blocks/skyroot_twigs" - }, - "elements": [ - { - "name": "stick_1", - "from": [ 2.0, 0.0, 7.0 ], - "to": [ 14.0, 1.0, 8.0 ], - "rotation": { "origin": [ 8.0, 8.0, 8.0 ], "axis": "y", "angle": 45.0 }, - "faces": { - "north": { "texture": "#0", "uv": [ 0.0, 0.0, 12.0, 1.0 ] }, - "east": { "texture": "#0", "uv": [ 12.0, 0.0, 13.0, 1.0 ] }, - "south": { "texture": "#0", "uv": [ 0.0, 0.0, 12.0, 1.0 ] }, - "west": { "texture": "#0", "uv": [ 12.0, 0.0, 13.0, 1.0 ] }, - "up": { "texture": "#0", "uv": [ 0.0, 0.0, 12.0, 1.0 ] }, - "down": { "texture": "#0", "uv": [ 0.0, 0.0, 12.0, 1.0 ] } - } - }, - { - "name": "stick_2", - "from": [ 2.0, 0.0, 8.0 ], - "to": [ 11.0, 1.0, 9.0 ], - "rotation": { "origin": [ 8.0, 8.0, 8.0 ], "axis": "y", "angle": -22.5 }, - "faces": { - "north": { "texture": "#0", "uv": [ 0.0, 0.0, 9.0, 1.0 ] }, - "east": { "texture": "#0", "uv": [ 12.0, 0.0, 13.0, 1.0 ] }, - "south": { "texture": "#0", "uv": [ 0.0, 0.0, 9.0, 1.0 ] }, - "west": { "texture": "#0", "uv": [ 12.0, 0.0, 13.0, 1.0 ] }, - "up": { "texture": "#0", "uv": [ 0.0, 0.0, 9.0, 1.0 ] }, - "down": { "texture": "#0", "uv": [ 0.0, 0.0, 9.0, 1.0 ] } - } - } - ] -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/block/skyroot_twigs/skyroot_twigs_3.json b/src/main/resources/assets/aether/models/block/skyroot_twigs/skyroot_twigs_3.json deleted file mode 100644 index bf6c790db4..0000000000 --- a/src/main/resources/assets/aether/models/block/skyroot_twigs/skyroot_twigs_3.json +++ /dev/null @@ -1,37 +0,0 @@ -{ - "__comment": "Model generated using MrCrayfish's Model Creator (http://mrcrayfish.com/modelcreator/)", - "textures": { - "particle": "aether:blocks/skyroot_twigs", - "0": "aether:blocks/skyroot_twigs" - }, - "elements": [ - { - "name": "stick_1", - "from": [ 8.0, 0.0, 8.0 ], - "to": [ 17.0, 1.0, 9.0 ], - "rotation": { "origin": [ 8.0, 8.0, 8.0 ], "axis": "y", "angle": 45.0 }, - "faces": { - "north": { "texture": "#0", "uv": [ 0.0, 0.0, 9.0, 1.0 ] }, - "east": { "texture": "#0", "uv": [ 12.0, 0.0, 13.0, 1.0 ] }, - "south": { "texture": "#0", "uv": [ 0.0, 0.0, 9.0, 1.0 ] }, - "west": { "texture": "#0", "uv": [ 12.0, 0.0, 13.0, 1.0 ] }, - "up": { "texture": "#0", "uv": [ 0.0, 0.0, 9.0, 1.0 ] }, - "down": { "texture": "#0", "uv": [ 0.0, 0.0, 9.0, 1.0 ] } - } - }, - { - "name": "stick_2", - "from": [ 2.0, 0.0, 10.0 ], - "to": [ 11.0, 1.0, 11.0 ], - "rotation": { "origin": [ 8.0, 8.0, 8.0 ], "axis": "y", "angle": -22.5 }, - "faces": { - "north": { "texture": "#0", "uv": [ 0.0, 0.0, 9.0, 1.0 ] }, - "east": { "texture": "#0", "uv": [ 12.0, 0.0, 13.0, 1.0 ] }, - "south": { "texture": "#0", "uv": [ 0.0, 0.0, 9.0, 1.0 ] }, - "west": { "texture": "#0", "uv": [ 12.0, 0.0, 13.0, 1.0 ] }, - "up": { "texture": "#0", "uv": [ 0.0, 0.0, 9.0, 1.0 ] }, - "down": { "texture": "#0", "uv": [ 0.0, 0.0, 9.0, 1.0 ] } - } - } - ] -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/block/skyroot_twigs/skyroot_twigs_4.json b/src/main/resources/assets/aether/models/block/skyroot_twigs/skyroot_twigs_4.json deleted file mode 100644 index 68fbfea3ff..0000000000 --- a/src/main/resources/assets/aether/models/block/skyroot_twigs/skyroot_twigs_4.json +++ /dev/null @@ -1,37 +0,0 @@ -{ - "__comment": "Model generated using MrCrayfish's Model Creator (http://mrcrayfish.com/modelcreator/)", - "textures": { - "particle": "aether:blocks/skyroot_twigs", - "0": "aether:blocks/skyroot_twigs" - }, - "elements": [ - { - "name": "stick_1", - "from": [ 8.0, 0.0, 8.0 ], - "to": [ 17.0, 1.0, 9.0 ], - "rotation": { "origin": [ 8.0, 8.0, 8.0 ], "axis": "y", "angle": 45.0 }, - "faces": { - "north": { "texture": "#0", "uv": [ 0.0, 0.0, 9.0, 1.0 ] }, - "east": { "texture": "#0", "uv": [ 12.0, 0.0, 13.0, 1.0 ] }, - "south": { "texture": "#0", "uv": [ 0.0, 0.0, 9.0, 1.0 ] }, - "west": { "texture": "#0", "uv": [ 12.0, 0.0, 13.0, 1.0 ] }, - "up": { "texture": "#0", "uv": [ 0.0, 0.0, 9.0, 1.0 ] }, - "down": { "texture": "#0", "uv": [ 0.0, 0.0, 9.0, 1.0 ] } - } - }, - { - "name": "stick_2", - "from": [ 2.0, 0.0, 10.0 ], - "to": [ 5.0, 1.0, 11.0 ], - "rotation": { "origin": [ 8.0, 8.0, 8.0 ], "axis": "y", "angle": -22.5 }, - "faces": { - "north": { "texture": "#0", "uv": [ 0.0, 0.0, 3.0, 1.0 ] }, - "east": { "texture": "#0", "uv": [ 12.0, 0.0, 13.0, 1.0 ] }, - "south": { "texture": "#0", "uv": [ 0.0, 0.0, 3.0, 1.0 ] }, - "west": { "texture": "#0", "uv": [ 12.0, 0.0, 13.0, 1.0 ] }, - "up": { "texture": "#0", "uv": [ 0.0, 0.0, 3.0, 1.0 ] }, - "down": { "texture": "#0", "uv": [ 0.0, 0.0, 3.0, 1.0 ] } - } - } - ] -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/block/skyroot_twigs/skyroot_twigs_5.json b/src/main/resources/assets/aether/models/block/skyroot_twigs/skyroot_twigs_5.json deleted file mode 100644 index 10efaf2705..0000000000 --- a/src/main/resources/assets/aether/models/block/skyroot_twigs/skyroot_twigs_5.json +++ /dev/null @@ -1,37 +0,0 @@ -{ - "__comment": "Model generated using MrCrayfish's Model Creator (http://mrcrayfish.com/modelcreator/)", - "textures": { - "particle": "aether:blocks/skyroot_twigs", - "0": "aether:blocks/skyroot_twigs" - }, - "elements": [ - { - "name": "stick_1", - "from": [ 8.0, 0.0, 8.0 ], - "to": [ 9.0, 1.0, 9.0 ], - "rotation": { "origin": [ 8.0, 8.0, 8.0 ], "axis": "y", "angle": 45.0 }, - "faces": { - "north": { "texture": "#0", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, - "east": { "texture": "#0", "uv": [ 12.0, 0.0, 13.0, 1.0 ] }, - "south": { "texture": "#0", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, - "west": { "texture": "#0", "uv": [ 12.0, 0.0, 13.0, 1.0 ] }, - "up": { "texture": "#0", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, - "down": { "texture": "#0", "uv": [ 0.0, 0.0, 1.0, 1.0 ] } - } - }, - { - "name": "stick_2", - "from": [ 2.0, 0.0, 10.0 ], - "to": [ 5.0, 1.0, 11.0 ], - "rotation": { "origin": [ 8.0, 8.0, 8.0 ], "axis": "y", "angle": -22.5 }, - "faces": { - "north": { "texture": "#0", "uv": [ 0.0, 0.0, 3.0, 1.0 ] }, - "east": { "texture": "#0", "uv": [ 12.0, 0.0, 13.0, 1.0 ] }, - "south": { "texture": "#0", "uv": [ 0.0, 0.0, 3.0, 1.0 ] }, - "west": { "texture": "#0", "uv": [ 12.0, 0.0, 13.0, 1.0 ] }, - "up": { "texture": "#0", "uv": [ 0.0, 0.0, 3.0, 1.0 ] }, - "down": { "texture": "#0", "uv": [ 0.0, 0.0, 3.0, 1.0 ] } - } - } - ] -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/block/skyroot_twigs/skyroot_twigs_6.json b/src/main/resources/assets/aether/models/block/skyroot_twigs/skyroot_twigs_6.json deleted file mode 100644 index b03e0511ce..0000000000 --- a/src/main/resources/assets/aether/models/block/skyroot_twigs/skyroot_twigs_6.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "__comment": "Model generated using MrCrayfish's Model Creator (http://mrcrayfish.com/modelcreator/)", - "textures": { - "particle": "aether:blocks/skyroot_twigs", - "0": "aether:blocks/skyroot_twigs" - }, - "elements": [ - { - "name": "stick_1", - "from": [ 2.0, 0.0, 8.0 ], - "to": [ 14.0, 1.0, 9.0 ], - "rotation": { "origin": [ 8.0, 8.0, 8.0 ], "axis": "y", "angle": 45.0 }, - "faces": { - "north": { "texture": "#0", "uv": [ 0.0, 0.0, 12.0, 1.0 ] }, - "east": { "texture": "#0", "uv": [ 12.0, 0.0, 13.0, 1.0 ] }, - "south": { "texture": "#0", "uv": [ 0.0, 0.0, 12.0, 1.0 ] }, - "west": { "texture": "#0", "uv": [ 12.0, 0.0, 13.0, 1.0 ] }, - "up": { "texture": "#0", "uv": [ 0.0, 0.0, 12.0, 1.0 ] }, - "down": { "texture": "#0", "uv": [ 0.0, 0.0, 12.0, 1.0 ] } - } - } - ] -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/block/tall_grass/long_aether.json b/src/main/resources/assets/aether/models/block/tall_grass/long_aether.json deleted file mode 100644 index 2c47aecaa2..0000000000 --- a/src/main/resources/assets/aether/models/block/tall_grass/long_aether.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/tinted_cross", - "textures": { - "cross": "aether:blocks/tall_grass/long_highlands" - } -} diff --git a/src/main/resources/assets/aether/models/block/tall_grass/long_arctic.json b/src/main/resources/assets/aether/models/block/tall_grass/long_arctic.json deleted file mode 100644 index 815e845340..0000000000 --- a/src/main/resources/assets/aether/models/block/tall_grass/long_arctic.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/tinted_cross", - "textures": { - "cross": "aether:blocks/tall_grass/long_arctic" - } -} diff --git a/src/main/resources/assets/aether/models/block/tall_grass/long_enchanted.json b/src/main/resources/assets/aether/models/block/tall_grass/long_enchanted.json deleted file mode 100644 index 8d31d42f34..0000000000 --- a/src/main/resources/assets/aether/models/block/tall_grass/long_enchanted.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/tinted_cross", - "textures": { - "cross": "aether:blocks/tall_grass/long_enchanted" - } -} diff --git a/src/main/resources/assets/aether/models/block/tall_grass/long_irradiated.json b/src/main/resources/assets/aether/models/block/tall_grass/long_irradiated.json deleted file mode 100644 index 961279b062..0000000000 --- a/src/main/resources/assets/aether/models/block/tall_grass/long_irradiated.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/tinted_cross", - "textures": { - "cross": "aether:blocks/tall_grass/long_irradiated" - } -} diff --git a/src/main/resources/assets/aether/models/block/tall_grass/long_magnetic.json b/src/main/resources/assets/aether/models/block/tall_grass/long_magnetic.json deleted file mode 100644 index e75545f83f..0000000000 --- a/src/main/resources/assets/aether/models/block/tall_grass/long_magnetic.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/tinted_cross", - "textures": { - "cross": "aether:blocks/tall_grass/long_magnetic" - } -} diff --git a/src/main/resources/assets/aether/models/block/tall_grass/long_snowy.json b/src/main/resources/assets/aether/models/block/tall_grass/long_snowy.json deleted file mode 100644 index a4391ad853..0000000000 --- a/src/main/resources/assets/aether/models/block/tall_grass/long_snowy.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "parent": "aether:block/tinted_crossbase", - "textures": { - "cross": "aether:blocks/tall_grass/long_snowy", - "texture": "aether:blocks/highlands_snow" - } -} diff --git a/src/main/resources/assets/aether/models/block/tall_grass/normal_aether.json b/src/main/resources/assets/aether/models/block/tall_grass/normal_aether.json deleted file mode 100644 index 3f5b4ed5ae..0000000000 --- a/src/main/resources/assets/aether/models/block/tall_grass/normal_aether.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/tinted_cross", - "textures": { - "cross": "aether:blocks/tall_grass/normal_highlands" - } -} diff --git a/src/main/resources/assets/aether/models/block/tall_grass/normal_arctic.json b/src/main/resources/assets/aether/models/block/tall_grass/normal_arctic.json deleted file mode 100644 index ba7b353127..0000000000 --- a/src/main/resources/assets/aether/models/block/tall_grass/normal_arctic.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/tinted_cross", - "textures": { - "cross": "aether:blocks/tall_grass/normal_arctic" - } -} diff --git a/src/main/resources/assets/aether/models/block/tall_grass/normal_enchanted.json b/src/main/resources/assets/aether/models/block/tall_grass/normal_enchanted.json deleted file mode 100644 index 663a40571e..0000000000 --- a/src/main/resources/assets/aether/models/block/tall_grass/normal_enchanted.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/tinted_cross", - "textures": { - "cross": "aether:blocks/tall_grass/normal_irradiated" - } -} diff --git a/src/main/resources/assets/aether/models/block/tall_grass/normal_irradiated.json b/src/main/resources/assets/aether/models/block/tall_grass/normal_irradiated.json deleted file mode 100644 index 97d5d097a5..0000000000 --- a/src/main/resources/assets/aether/models/block/tall_grass/normal_irradiated.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/tinted_cross", - "textures": { - "cross": "aether:blocks/tall_grass/normal_enchanted" - } -} diff --git a/src/main/resources/assets/aether/models/block/tall_grass/normal_magnetic.json b/src/main/resources/assets/aether/models/block/tall_grass/normal_magnetic.json deleted file mode 100644 index abf66ea560..0000000000 --- a/src/main/resources/assets/aether/models/block/tall_grass/normal_magnetic.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/tinted_cross", - "textures": { - "cross": "aether:blocks/tall_grass/normal_magnetic" - } -} diff --git a/src/main/resources/assets/aether/models/block/tall_grass/normal_snowy.json b/src/main/resources/assets/aether/models/block/tall_grass/normal_snowy.json deleted file mode 100644 index 3b2ca001da..0000000000 --- a/src/main/resources/assets/aether/models/block/tall_grass/normal_snowy.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "parent": "aether:block/tinted_crossbase", - "textures": { - "cross": "aether:blocks/tall_grass/normal_snowy", - "texture": "aether:blocks/highlands_snow" - } -} diff --git a/src/main/resources/assets/aether/models/block/tall_grass/short_aether.json b/src/main/resources/assets/aether/models/block/tall_grass/short_aether.json deleted file mode 100644 index 4129e3f34a..0000000000 --- a/src/main/resources/assets/aether/models/block/tall_grass/short_aether.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/tinted_cross", - "textures": { - "cross": "aether:blocks/tall_grass/short_highlands" - } -} diff --git a/src/main/resources/assets/aether/models/block/tall_grass/short_arctic.json b/src/main/resources/assets/aether/models/block/tall_grass/short_arctic.json deleted file mode 100644 index 531b084e23..0000000000 --- a/src/main/resources/assets/aether/models/block/tall_grass/short_arctic.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/tinted_cross", - "textures": { - "cross": "aether:blocks/tall_grass/short_arctic" - } -} diff --git a/src/main/resources/assets/aether/models/block/tall_grass/short_enchanted.json b/src/main/resources/assets/aether/models/block/tall_grass/short_enchanted.json deleted file mode 100644 index 71cefe5fd4..0000000000 --- a/src/main/resources/assets/aether/models/block/tall_grass/short_enchanted.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/tinted_cross", - "textures": { - "cross": "aether:blocks/tall_grass/short_enchanted" - } -} diff --git a/src/main/resources/assets/aether/models/block/tall_grass/short_irradiated.json b/src/main/resources/assets/aether/models/block/tall_grass/short_irradiated.json deleted file mode 100644 index 62887bc852..0000000000 --- a/src/main/resources/assets/aether/models/block/tall_grass/short_irradiated.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/tinted_cross", - "textures": { - "cross": "aether:blocks/tall_grass/short_irradiated" - } -} diff --git a/src/main/resources/assets/aether/models/block/tall_grass/short_magnetic.json b/src/main/resources/assets/aether/models/block/tall_grass/short_magnetic.json deleted file mode 100644 index 4ea980b94a..0000000000 --- a/src/main/resources/assets/aether/models/block/tall_grass/short_magnetic.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/tinted_cross", - "textures": { - "cross": "aether:blocks/tall_grass/short_magnetic" - } -} diff --git a/src/main/resources/assets/aether/models/block/tall_grass/short_snowy.json b/src/main/resources/assets/aether/models/block/tall_grass/short_snowy.json deleted file mode 100644 index eaa655a1aa..0000000000 --- a/src/main/resources/assets/aether/models/block/tall_grass/short_snowy.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "parent": "aether:block/tinted_crossbase", - "textures": { - "cross": "aether:blocks/tall_grass/short_snowy", - "texture": "aether:blocks/highlands_snow" - } -} diff --git a/src/main/resources/assets/aether/models/block/tesr.json b/src/main/resources/assets/aether/models/block/tesr.json deleted file mode 100644 index f424da2b8f..0000000000 --- a/src/main/resources/assets/aether/models/block/tesr.json +++ /dev/null @@ -1,47 +0,0 @@ -{ - "parent": "block/block", - "elements": [ - { - "from": [ 0, 0, 0 ], - "to": [ 0, 0, 0 ], - "faces": { - "up": { - "uv": [ 0, 0, 0, 0 ], - "texture": "missingno" - } - } - } - ], - "display": { - "gui": { - "rotation": [ 30, 225, 0 ], - "translation": [ 0, 0, 0 ], - "scale": [ 0.625, 0.625, 0.625 ] - }, - "ground": { - "rotation": [ 0, 0, 0 ], - "translation": [ 0, 3, 0 ], - "scale": [ 0.25, 0.25, 0.25 ] - }, - "fixed": { - "rotation": [ 0, 0, 0 ], - "translation": [ 0, 0, 0 ], - "scale": [ 0.5, 0.5, 0.5 ] - }, - "thirdperson_righthand": { - "rotation": [ 75, 45, 0 ], - "translation": [ 0, 2.5, 0 ], - "scale": [ 0.375, 0.375, 0.375 ] - }, - "firstperson_righthand": { - "rotation": [ 0, 45, 0 ], - "translation": [ 0, 0, 0 ], - "scale": [ 0.40, 0.40, 0.40 ] - }, - "firstperson_lefthand": { - "rotation": [ 0, 225, 0 ], - "translation": [ 0, 0, 0 ], - "scale": [ 0.40, 0.40, 0.40 ] - } - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/block/thera_dirt/thera_dirt.json b/src/main/resources/assets/aether/models/block/thera_dirt/thera_dirt.json deleted file mode 100644 index 39ee5fb990..0000000000 --- a/src/main/resources/assets/aether/models/block/thera_dirt/thera_dirt.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/cube_all", - "textures": { - "all": "aether:blocks/thera_grass/thera_dirt" - } -} diff --git a/src/main/resources/assets/aether/models/block/thera_grass/thera_grass.json b/src/main/resources/assets/aether/models/block/thera_grass/thera_grass.json deleted file mode 100644 index 35d36e480c..0000000000 --- a/src/main/resources/assets/aether/models/block/thera_grass/thera_grass.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "block/cube_bottom_top", - "textures": { - "bottom": "aether:blocks/thera_grass/thera_dirt", - "top": "aether:blocks/thera_grass/thera_grass_top", - "side": "aether:blocks/thera_grass/thera_grass_side" - } -} diff --git a/src/main/resources/assets/aether/models/block/therastone_bricks/base_bricks.json b/src/main/resources/assets/aether/models/block/therastone_bricks/base_bricks.json deleted file mode 100644 index eea102a06c..0000000000 --- a/src/main/resources/assets/aether/models/block/therastone_bricks/base_bricks.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "parent": "block/cube_column", - "textures": { - "end": "aether:blocks/therastone_bricks/therastone_keystone", - "side": "aether:blocks/therastone_bricks/therastone_base_bricks" - } -} diff --git a/src/main/resources/assets/aether/models/block/therastone_bricks/base_pillar.json b/src/main/resources/assets/aether/models/block/therastone_bricks/base_pillar.json deleted file mode 100644 index ae7013ba5c..0000000000 --- a/src/main/resources/assets/aether/models/block/therastone_bricks/base_pillar.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "parent": "block/cube_column", - "textures": { - "end": "aether:blocks/therastone_bricks/therastone_keystone", - "side": "aether:blocks/therastone_bricks/therastone_base_pillar" - } -} diff --git a/src/main/resources/assets/aether/models/block/therastone_bricks/capstone_bricks.json b/src/main/resources/assets/aether/models/block/therastone_bricks/capstone_bricks.json deleted file mode 100644 index 83d0796d9c..0000000000 --- a/src/main/resources/assets/aether/models/block/therastone_bricks/capstone_bricks.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "parent": "block/cube_column", - "textures": { - "end": "aether:blocks/therastone_bricks/therastone_keystone", - "side": "aether:blocks/therastone_bricks/therastone_capstone_bricks" - } -} diff --git a/src/main/resources/assets/aether/models/block/therastone_bricks/capstone_pillar.json b/src/main/resources/assets/aether/models/block/therastone_bricks/capstone_pillar.json deleted file mode 100644 index d70eb64c1c..0000000000 --- a/src/main/resources/assets/aether/models/block/therastone_bricks/capstone_pillar.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "parent": "block/cube_column", - "textures": { - "end": "aether:blocks/therastone_bricks/therastone_keystone", - "side": "aether:blocks/therastone_bricks/therastone_capstone_pillar" - } -} diff --git a/src/main/resources/assets/aether/models/block/therastone_bricks/flagstones.json b/src/main/resources/assets/aether/models/block/therastone_bricks/flagstones.json deleted file mode 100644 index df4a157a0e..0000000000 --- a/src/main/resources/assets/aether/models/block/therastone_bricks/flagstones.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "parent": "block/cube_column", - "textures": { - "end": "aether:blocks/therastone_bricks/therastone_flagstones", - "side": "aether:blocks/therastone_bricks/therastone_flagstones" - } -} diff --git a/src/main/resources/assets/aether/models/block/therastone_bricks/headstone.json b/src/main/resources/assets/aether/models/block/therastone_bricks/headstone.json deleted file mode 100644 index 0965458f20..0000000000 --- a/src/main/resources/assets/aether/models/block/therastone_bricks/headstone.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "parent": "block/cube_column", - "textures": { - "end": "aether:blocks/therastone_bricks/therastone_headstone", - "side": "aether:blocks/therastone_bricks/therastone_headstone" - } -} diff --git a/src/main/resources/assets/aether/models/block/therastone_bricks/keystone.json b/src/main/resources/assets/aether/models/block/therastone_bricks/keystone.json deleted file mode 100644 index 07950fe3f8..0000000000 --- a/src/main/resources/assets/aether/models/block/therastone_bricks/keystone.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "parent": "block/cube_column", - "textures": { - "end": "aether:blocks/therastone_bricks/therastone_keystone", - "side": "aether:blocks/therastone_bricks/therastone_keystone" - } -} diff --git a/src/main/resources/assets/aether/models/block/therastone_bricks/normal.json b/src/main/resources/assets/aether/models/block/therastone_bricks/normal.json deleted file mode 100644 index cc1c9b6e9e..0000000000 --- a/src/main/resources/assets/aether/models/block/therastone_bricks/normal.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/cube_all", - "textures": { - "all": "aether:blocks/therastone_bricks/therastone_bricks" - } -} diff --git a/src/main/resources/assets/aether/models/block/therastone_bricks/pillar.json b/src/main/resources/assets/aether/models/block/therastone_bricks/pillar.json deleted file mode 100644 index e44c19a61b..0000000000 --- a/src/main/resources/assets/aether/models/block/therastone_bricks/pillar.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "parent": "block/cube_column", - "textures": { - "end": "aether:blocks/therastone_bricks/therastone_keystone", - "side": "aether:blocks/therastone_bricks/therastone_pillar" - } -} diff --git a/src/main/resources/assets/aether/models/block/therawood_button/therawood_button.json b/src/main/resources/assets/aether/models/block/therawood_button/therawood_button.json deleted file mode 100644 index cd1dacc5a5..0000000000 --- a/src/main/resources/assets/aether/models/block/therawood_button/therawood_button.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/button", - "textures": { - "texture": "aether:blocks/therawood_planks/therawood_planks" - } -} diff --git a/src/main/resources/assets/aether/models/block/therawood_button/therawood_button_inventory.json b/src/main/resources/assets/aether/models/block/therawood_button/therawood_button_inventory.json deleted file mode 100644 index ffc2ccef39..0000000000 --- a/src/main/resources/assets/aether/models/block/therawood_button/therawood_button_inventory.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/button_inventory", - "textures": { - "texture": "aether:blocks/therawood_planks/therawood_planks" - } -} diff --git a/src/main/resources/assets/aether/models/block/therawood_button/therawood_button_pressed.json b/src/main/resources/assets/aether/models/block/therawood_button/therawood_button_pressed.json deleted file mode 100644 index a5fe1e40a2..0000000000 --- a/src/main/resources/assets/aether/models/block/therawood_button/therawood_button_pressed.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/button_pressed", - "textures": { - "texture": "aether:blocks/therawood_planks/therawood_planks" - } -} diff --git a/src/main/resources/assets/aether/models/block/therawood_fence/therawood_fence_post.json b/src/main/resources/assets/aether/models/block/therawood_fence/therawood_fence_post.json deleted file mode 100644 index 2a0f286280..0000000000 --- a/src/main/resources/assets/aether/models/block/therawood_fence/therawood_fence_post.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/fence_post", - "textures": { - "texture": "aether:blocks/therawood_planks/therawood_planks" - } -} diff --git a/src/main/resources/assets/aether/models/block/therawood_fence/therawood_fence_side.json b/src/main/resources/assets/aether/models/block/therawood_fence/therawood_fence_side.json deleted file mode 100644 index bd78b767e6..0000000000 --- a/src/main/resources/assets/aether/models/block/therawood_fence/therawood_fence_side.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/fence_side", - "textures": { - "texture": "aether:blocks/therawood_planks/therawood_planks" - } -} diff --git a/src/main/resources/assets/aether/models/block/therawood_fence_gate/therawood_fence_gate_closed.json b/src/main/resources/assets/aether/models/block/therawood_fence_gate/therawood_fence_gate_closed.json deleted file mode 100644 index 4cb79f7557..0000000000 --- a/src/main/resources/assets/aether/models/block/therawood_fence_gate/therawood_fence_gate_closed.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/fence_gate_closed", - "textures": { - "texture": "aether:blocks/therawood_planks/therawood_planks" - } -} diff --git a/src/main/resources/assets/aether/models/block/therawood_fence_gate/therawood_fence_gate_open.json b/src/main/resources/assets/aether/models/block/therawood_fence_gate/therawood_fence_gate_open.json deleted file mode 100644 index 1a393056a9..0000000000 --- a/src/main/resources/assets/aether/models/block/therawood_fence_gate/therawood_fence_gate_open.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/fence_gate_open", - "textures": { - "texture": "aether:blocks/therawood_planks/therawood_planks" - } -} diff --git a/src/main/resources/assets/aether/models/block/therawood_fence_gate/therawood_wall_gate_closed.json b/src/main/resources/assets/aether/models/block/therawood_fence_gate/therawood_wall_gate_closed.json deleted file mode 100644 index 11571d196d..0000000000 --- a/src/main/resources/assets/aether/models/block/therawood_fence_gate/therawood_wall_gate_closed.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/wall_gate_closed", - "textures": { - "texture": "aether:blocks/therawood_planks/therawood_planks" - } -} diff --git a/src/main/resources/assets/aether/models/block/therawood_fence_gate/therawood_wall_gate_open.json b/src/main/resources/assets/aether/models/block/therawood_fence_gate/therawood_wall_gate_open.json deleted file mode 100644 index 535f75985d..0000000000 --- a/src/main/resources/assets/aether/models/block/therawood_fence_gate/therawood_wall_gate_open.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/wall_gate_open", - "textures": { - "texture": "aether:blocks/therawood_planks/therawood_planks" - } -} diff --git a/src/main/resources/assets/aether/models/block/therawood_planks/base_beam.json b/src/main/resources/assets/aether/models/block/therawood_planks/base_beam.json deleted file mode 100644 index da61e57a64..0000000000 --- a/src/main/resources/assets/aether/models/block/therawood_planks/base_beam.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "parent": "block/cube_column", - "textures": { - "end": "aether:blocks/therawood_planks/therawood_base_top", - "side": "aether:blocks/therawood_planks/therawood_base_beam" - } -} diff --git a/src/main/resources/assets/aether/models/block/therawood_planks/base_planks.json b/src/main/resources/assets/aether/models/block/therawood_planks/base_planks.json deleted file mode 100644 index b8e1c6da7f..0000000000 --- a/src/main/resources/assets/aether/models/block/therawood_planks/base_planks.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "parent": "block/cube_column", - "textures": { - "end": "aether:blocks/therawood_planks/therawood_base_top", - "side": "aether:blocks/therawood_planks/therawood_base_planks" - } -} diff --git a/src/main/resources/assets/aether/models/block/therawood_planks/beam.json b/src/main/resources/assets/aether/models/block/therawood_planks/beam.json deleted file mode 100644 index 1954754105..0000000000 --- a/src/main/resources/assets/aether/models/block/therawood_planks/beam.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "parent": "block/cube_column", - "textures": { - "end": "aether:blocks/therawood_planks/therawood_base_top", - "side": "aether:blocks/therawood_planks/therawood_beam" - } -} diff --git a/src/main/resources/assets/aether/models/block/therawood_planks/floorboards.json b/src/main/resources/assets/aether/models/block/therawood_planks/floorboards.json deleted file mode 100644 index c0b909ae14..0000000000 --- a/src/main/resources/assets/aether/models/block/therawood_planks/floorboards.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/cube_all", - "textures": { - "all": "aether:blocks/therawood_planks/therawood_floorboards" - } -} diff --git a/src/main/resources/assets/aether/models/block/therawood_planks/highlight.json b/src/main/resources/assets/aether/models/block/therawood_planks/highlight.json deleted file mode 100644 index 27577afb0b..0000000000 --- a/src/main/resources/assets/aether/models/block/therawood_planks/highlight.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/cube_all", - "textures": { - "all": "aether:blocks/therawood_planks/therawood_base_top" - } -} diff --git a/src/main/resources/assets/aether/models/block/therawood_planks/normal.json b/src/main/resources/assets/aether/models/block/therawood_planks/normal.json deleted file mode 100644 index 1b6610bdf9..0000000000 --- a/src/main/resources/assets/aether/models/block/therawood_planks/normal.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/cube_all", - "textures": { - "all": "aether:blocks/therawood_planks/therawood_planks" - } -} diff --git a/src/main/resources/assets/aether/models/block/therawood_planks/top_beam.json b/src/main/resources/assets/aether/models/block/therawood_planks/top_beam.json deleted file mode 100644 index ed05a3ff18..0000000000 --- a/src/main/resources/assets/aether/models/block/therawood_planks/top_beam.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "parent": "block/cube_column", - "textures": { - "end": "aether:blocks/therawood_planks/therawood_base_top", - "side": "aether:blocks/therawood_planks/therawood_top_beam" - } -} diff --git a/src/main/resources/assets/aether/models/block/therawood_planks/top_planks.json b/src/main/resources/assets/aether/models/block/therawood_planks/top_planks.json deleted file mode 100644 index b3f891f94c..0000000000 --- a/src/main/resources/assets/aether/models/block/therawood_planks/top_planks.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "parent": "block/cube_column", - "textures": { - "end": "aether:blocks/therawood_planks/therawood_base_top", - "side": "aether:blocks/therawood_planks/therawood_top_planks" - } -} diff --git a/src/main/resources/assets/aether/models/block/therawood_pressure_plate/therawood_pressure_plate_down.json b/src/main/resources/assets/aether/models/block/therawood_pressure_plate/therawood_pressure_plate_down.json deleted file mode 100644 index 15c0600de1..0000000000 --- a/src/main/resources/assets/aether/models/block/therawood_pressure_plate/therawood_pressure_plate_down.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/pressure_plate_down", - "textures": { - "texture": "aether:blocks/therawood_planks/therawood_planks" - } -} diff --git a/src/main/resources/assets/aether/models/block/therawood_pressure_plate/therawood_pressure_plate_up.json b/src/main/resources/assets/aether/models/block/therawood_pressure_plate/therawood_pressure_plate_up.json deleted file mode 100644 index cf5dd998d9..0000000000 --- a/src/main/resources/assets/aether/models/block/therawood_pressure_plate/therawood_pressure_plate_up.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/pressure_plate_up", - "textures": { - "texture": "aether:blocks/therawood_planks/therawood_planks" - } -} diff --git a/src/main/resources/assets/aether/models/block/tinted_crossbase.json b/src/main/resources/assets/aether/models/block/tinted_crossbase.json deleted file mode 100644 index 70a29d8dbc..0000000000 --- a/src/main/resources/assets/aether/models/block/tinted_crossbase.json +++ /dev/null @@ -1,40 +0,0 @@ -{ - "parent": "block/thin_block", - "textures": { - "particle": "#cross" - }, - "elements": [ - { - "from": [ 0.8, 0, 8 ], - "to": [ 15.2, 16, 8 ], - "rotation": { "origin": [ 8, 8, 8 ], "axis": "y", "angle": 45, "rescale": true }, - "shade": false, - "faces": { - "north": { "uv": [ 0, 0, 16, 16 ], "texture": "#cross", "tintindex": 0 }, - "south": { "uv": [ 0, 0, 16, 16 ], "texture": "#cross", "tintindex": 0 } - } - }, - { - "from": [ 8, 0, 0.8 ], - "to": [ 8, 16, 15.2 ], - "rotation": { "origin": [ 8, 8, 8 ], "axis": "y", "angle": 45, "rescale": true }, - "shade": false, - "faces": { - "west": { "uv": [ 0, 0, 16, 16 ], "texture": "#cross", "tintindex": 0 }, - "east": { "uv": [ 0, 0, 16, 16 ], "texture": "#cross", "tintindex": 0 } - } - }, - { - "from": [ 0, 0, 0 ], - "to": [ 16, 2, 16 ], - "faces": { - "down": { "uv": [ 0, 0, 16, 16 ], "texture": "#texture", "cullface": "down" }, - "up": { "uv": [ 0, 0, 16, 16 ], "texture": "#texture" }, - "north": { "uv": [ 0, 14, 16, 16 ], "texture": "#texture", "cullface": "north" }, - "south": { "uv": [ 0, 14, 16, 16 ], "texture": "#texture", "cullface": "south" }, - "west": { "uv": [ 0, 14, 16, 16 ], "texture": "#texture", "cullface": "west" }, - "east": { "uv": [ 0, 14, 16, 16 ], "texture": "#texture", "cullface": "east" } - } - } - ] -} diff --git a/src/main/resources/assets/aether/models/block/valkyrie_grass/valkyrie_grass_full.json b/src/main/resources/assets/aether/models/block/valkyrie_grass/valkyrie_grass_full.json deleted file mode 100644 index fbe805bf9b..0000000000 --- a/src/main/resources/assets/aether/models/block/valkyrie_grass/valkyrie_grass_full.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/tinted_cross", - "textures": { - "cross": "aether:blocks/valkyrie_grass/valkyrie_grass_2" - } -} diff --git a/src/main/resources/assets/aether/models/block/valkyrie_grass/valkyrie_grass_mid.json b/src/main/resources/assets/aether/models/block/valkyrie_grass/valkyrie_grass_mid.json deleted file mode 100644 index 84bade3701..0000000000 --- a/src/main/resources/assets/aether/models/block/valkyrie_grass/valkyrie_grass_mid.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/tinted_cross", - "textures": { - "cross": "aether:blocks/valkyrie_grass/valkyrie_grass_1" - } -} diff --git a/src/main/resources/assets/aether/models/block/valkyrie_grass/valkyrie_grass_sprout.json b/src/main/resources/assets/aether/models/block/valkyrie_grass/valkyrie_grass_sprout.json deleted file mode 100644 index c5ce3664cb..0000000000 --- a/src/main/resources/assets/aether/models/block/valkyrie_grass/valkyrie_grass_sprout.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/tinted_cross", - "textures": { - "cross": "aether:blocks/valkyrie_grass/valkyrie_grass_0" - } -} diff --git a/src/main/resources/assets/aether/models/block/wildcard.json b/src/main/resources/assets/aether/models/block/wildcard.json deleted file mode 100644 index fde3331e0c..0000000000 --- a/src/main/resources/assets/aether/models/block/wildcard.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/cube_all", - "textures": { - "all": "aether:blocks/wildcard" - } -} diff --git a/src/main/resources/assets/aether/models/block/wisproot_button/wisproot_button.json b/src/main/resources/assets/aether/models/block/wisproot_button/wisproot_button.json deleted file mode 100644 index 88be85b291..0000000000 --- a/src/main/resources/assets/aether/models/block/wisproot_button/wisproot_button.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/button", - "textures": { - "texture": "aether:blocks/light_skyroot_planks/wisproot_planks" - } -} diff --git a/src/main/resources/assets/aether/models/block/wisproot_button/wisproot_button_inventory.json b/src/main/resources/assets/aether/models/block/wisproot_button/wisproot_button_inventory.json deleted file mode 100644 index f8254697d1..0000000000 --- a/src/main/resources/assets/aether/models/block/wisproot_button/wisproot_button_inventory.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/button_inventory", - "textures": { - "texture": "aether:blocks/light_skyroot_planks/wisproot_planks" - } -} diff --git a/src/main/resources/assets/aether/models/block/wisproot_button/wisproot_button_pressed.json b/src/main/resources/assets/aether/models/block/wisproot_button/wisproot_button_pressed.json deleted file mode 100644 index eebb97b4b9..0000000000 --- a/src/main/resources/assets/aether/models/block/wisproot_button/wisproot_button_pressed.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/button_pressed", - "textures": { - "texture": "aether:blocks/light_skyroot_planks/wisproot_planks" - } -} diff --git a/src/main/resources/assets/aether/models/block/wisproot_fence/wisproot_fence_post.json b/src/main/resources/assets/aether/models/block/wisproot_fence/wisproot_fence_post.json deleted file mode 100644 index d105cb5070..0000000000 --- a/src/main/resources/assets/aether/models/block/wisproot_fence/wisproot_fence_post.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/fence_post", - "textures": { - "texture": "aether:blocks/light_skyroot_planks/wisproot_planks" - } -} diff --git a/src/main/resources/assets/aether/models/block/wisproot_fence/wisproot_fence_side.json b/src/main/resources/assets/aether/models/block/wisproot_fence/wisproot_fence_side.json deleted file mode 100644 index 5c22efb3dd..0000000000 --- a/src/main/resources/assets/aether/models/block/wisproot_fence/wisproot_fence_side.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/fence_side", - "textures": { - "texture": "aether:blocks/light_skyroot_planks/wisproot_planks" - } -} diff --git a/src/main/resources/assets/aether/models/block/wisproot_fence_gate/wisproot_fence_gate_closed.json b/src/main/resources/assets/aether/models/block/wisproot_fence_gate/wisproot_fence_gate_closed.json deleted file mode 100644 index 754f9fc379..0000000000 --- a/src/main/resources/assets/aether/models/block/wisproot_fence_gate/wisproot_fence_gate_closed.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/fence_gate_closed", - "textures": { - "texture": "aether:blocks/light_skyroot_planks/wisproot_planks" - } -} diff --git a/src/main/resources/assets/aether/models/block/wisproot_fence_gate/wisproot_fence_gate_open.json b/src/main/resources/assets/aether/models/block/wisproot_fence_gate/wisproot_fence_gate_open.json deleted file mode 100644 index dd91bc3ef1..0000000000 --- a/src/main/resources/assets/aether/models/block/wisproot_fence_gate/wisproot_fence_gate_open.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/fence_gate_open", - "textures": { - "texture": "aether:blocks/light_skyroot_planks/wisproot_planks" - } -} diff --git a/src/main/resources/assets/aether/models/block/wisproot_fence_gate/wisproot_wall_gate_closed.json b/src/main/resources/assets/aether/models/block/wisproot_fence_gate/wisproot_wall_gate_closed.json deleted file mode 100644 index ab7c06c42b..0000000000 --- a/src/main/resources/assets/aether/models/block/wisproot_fence_gate/wisproot_wall_gate_closed.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/wall_gate_closed", - "textures": { - "texture": "aether:blocks/light_skyroot_planks/wisproot_planks" - } -} diff --git a/src/main/resources/assets/aether/models/block/wisproot_fence_gate/wisproot_wall_gate_open.json b/src/main/resources/assets/aether/models/block/wisproot_fence_gate/wisproot_wall_gate_open.json deleted file mode 100644 index 8c064aa8f7..0000000000 --- a/src/main/resources/assets/aether/models/block/wisproot_fence_gate/wisproot_wall_gate_open.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/wall_gate_open", - "textures": { - "texture": "aether:blocks/light_skyroot_planks/wisproot_planks" - } -} diff --git a/src/main/resources/assets/aether/models/block/wisproot_pressure_plate/wisproot_pressure_plate_down.json b/src/main/resources/assets/aether/models/block/wisproot_pressure_plate/wisproot_pressure_plate_down.json deleted file mode 100644 index ca6a72aa38..0000000000 --- a/src/main/resources/assets/aether/models/block/wisproot_pressure_plate/wisproot_pressure_plate_down.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/pressure_plate_down", - "textures": { - "texture": "aether:blocks/light_skyroot_planks/wisproot_planks" - } -} diff --git a/src/main/resources/assets/aether/models/block/wisproot_pressure_plate/wisproot_pressure_plate_up.json b/src/main/resources/assets/aether/models/block/wisproot_pressure_plate/wisproot_pressure_plate_up.json deleted file mode 100644 index 67b78bce72..0000000000 --- a/src/main/resources/assets/aether/models/block/wisproot_pressure_plate/wisproot_pressure_plate_up.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/pressure_plate_up", - "textures": { - "texture": "aether:blocks/light_skyroot_planks/wisproot_planks" - } -} diff --git a/src/main/resources/assets/aether/models/block/woven_sticks/woven_skyroot_sticks.json b/src/main/resources/assets/aether/models/block/woven_sticks/woven_skyroot_sticks.json deleted file mode 100644 index cfc8e161b8..0000000000 --- a/src/main/resources/assets/aether/models/block/woven_sticks/woven_skyroot_sticks.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/cube_all", - "textures": { - "all": "aether:blocks/woven_sticks/woven_skyroot_sticks" - } -} diff --git a/src/main/resources/assets/aether/models/block/zanite_block.json b/src/main/resources/assets/aether/models/block/zanite_block.json deleted file mode 100644 index e4e4bf329c..0000000000 --- a/src/main/resources/assets/aether/models/block/zanite_block.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/cube_all", - "textures": { - "all": "aether:blocks/zanite_block" - } -} diff --git a/src/main/resources/assets/aether/models/item/accessories/arkenium_gloves.json b/src/main/resources/assets/aether/models/item/accessories/arkenium_gloves.json deleted file mode 100644 index c216c39d16..0000000000 --- a/src/main/resources/assets/aether/models/item/accessories/arkenium_gloves.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "aether:items/armor/arkenium_gloves" - } -} diff --git a/src/main/resources/assets/aether/models/item/accessories/burrukai_pelt_gloves.json b/src/main/resources/assets/aether/models/item/accessories/burrukai_pelt_gloves.json deleted file mode 100644 index 49e0107ff8..0000000000 --- a/src/main/resources/assets/aether/models/item/accessories/burrukai_pelt_gloves.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "aether:items/armor/burrukai_pelt_gloves" - } -} diff --git a/src/main/resources/assets/aether/models/item/accessories/charms/charm_arm_01.json b/src/main/resources/assets/aether/models/item/accessories/charms/charm_arm_01.json deleted file mode 100644 index 680fe04d75..0000000000 --- a/src/main/resources/assets/aether/models/item/accessories/charms/charm_arm_01.json +++ /dev/null @@ -1,6 +0,0 @@ - { - "parent": "item/generated", - "textures": { - "layer0": "aether:items/accessories/charms/charm_arm_01" - } - } \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/accessories/charms/charm_arm_02.json b/src/main/resources/assets/aether/models/item/accessories/charms/charm_arm_02.json deleted file mode 100644 index 855cd5428f..0000000000 --- a/src/main/resources/assets/aether/models/item/accessories/charms/charm_arm_02.json +++ /dev/null @@ -1,6 +0,0 @@ - { - "parent": "item/generated", - "textures": { - "layer0": "aether:items/accessories/charms/charm_arm_02" - } - } \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/accessories/charms/charm_arm_tgh_01.json b/src/main/resources/assets/aether/models/item/accessories/charms/charm_arm_tgh_01.json deleted file mode 100644 index ee4abdf805..0000000000 --- a/src/main/resources/assets/aether/models/item/accessories/charms/charm_arm_tgh_01.json +++ /dev/null @@ -1,6 +0,0 @@ - { - "parent": "item/generated", - "textures": { - "layer0": "aether:items/accessories/charms/charm_arm_tgh_01" - } - } \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/accessories/charms/charm_arm_tgh_02.json b/src/main/resources/assets/aether/models/item/accessories/charms/charm_arm_tgh_02.json deleted file mode 100644 index c0432a6d9a..0000000000 --- a/src/main/resources/assets/aether/models/item/accessories/charms/charm_arm_tgh_02.json +++ /dev/null @@ -1,6 +0,0 @@ - { - "parent": "item/generated", - "textures": { - "layer0": "aether:items/accessories/charms/charm_arm_tgh_02" - } - } \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/accessories/charms/charm_atk_spd_01.json b/src/main/resources/assets/aether/models/item/accessories/charms/charm_atk_spd_01.json deleted file mode 100644 index 4db40fc1a5..0000000000 --- a/src/main/resources/assets/aether/models/item/accessories/charms/charm_atk_spd_01.json +++ /dev/null @@ -1,6 +0,0 @@ - { - "parent": "item/generated", - "textures": { - "layer0": "aether:items/accessories/charms/charm_atk_spd_01" - } - } \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/accessories/charms/charm_atk_spd_02.json b/src/main/resources/assets/aether/models/item/accessories/charms/charm_atk_spd_02.json deleted file mode 100644 index 39e360fe93..0000000000 --- a/src/main/resources/assets/aether/models/item/accessories/charms/charm_atk_spd_02.json +++ /dev/null @@ -1,6 +0,0 @@ - { - "parent": "item/generated", - "textures": { - "layer0": "aether:items/accessories/charms/charm_atk_spd_02" - } - } \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/accessories/charms/charm_imp_dmg_01.json b/src/main/resources/assets/aether/models/item/accessories/charms/charm_imp_dmg_01.json deleted file mode 100644 index 16770eadd4..0000000000 --- a/src/main/resources/assets/aether/models/item/accessories/charms/charm_imp_dmg_01.json +++ /dev/null @@ -1,6 +0,0 @@ - { - "parent": "item/generated", - "textures": { - "layer0": "aether:items/accessories/charms/charm_imp_dmg_01" - } - } \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/accessories/charms/charm_imp_dmg_02.json b/src/main/resources/assets/aether/models/item/accessories/charms/charm_imp_dmg_02.json deleted file mode 100644 index cbda3d96d2..0000000000 --- a/src/main/resources/assets/aether/models/item/accessories/charms/charm_imp_dmg_02.json +++ /dev/null @@ -1,6 +0,0 @@ - { - "parent": "item/generated", - "textures": { - "layer0": "aether:items/accessories/charms/charm_imp_dmg_02" - } - } \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/accessories/charms/charm_kbk_res_01.json b/src/main/resources/assets/aether/models/item/accessories/charms/charm_kbk_res_01.json deleted file mode 100644 index ba01ceeae3..0000000000 --- a/src/main/resources/assets/aether/models/item/accessories/charms/charm_kbk_res_01.json +++ /dev/null @@ -1,6 +0,0 @@ - { - "parent": "item/generated", - "textures": { - "layer0": "aether:items/accessories/charms/charm_kbk_res_01" - } - } \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/accessories/charms/charm_kbk_res_02.json b/src/main/resources/assets/aether/models/item/accessories/charms/charm_kbk_res_02.json deleted file mode 100644 index 4a59eeccf4..0000000000 --- a/src/main/resources/assets/aether/models/item/accessories/charms/charm_kbk_res_02.json +++ /dev/null @@ -1,6 +0,0 @@ - { - "parent": "item/generated", - "textures": { - "layer0": "aether:items/accessories/charms/charm_kbk_res_02" - } - } \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/accessories/charms/charm_lck_01.json b/src/main/resources/assets/aether/models/item/accessories/charms/charm_lck_01.json deleted file mode 100644 index 987486a410..0000000000 --- a/src/main/resources/assets/aether/models/item/accessories/charms/charm_lck_01.json +++ /dev/null @@ -1,6 +0,0 @@ - { - "parent": "item/generated", - "textures": { - "layer0": "aether:items/accessories/charms/charm_lck_01" - } - } \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/accessories/charms/charm_lck_02.json b/src/main/resources/assets/aether/models/item/accessories/charms/charm_lck_02.json deleted file mode 100644 index fcf3ee8b1c..0000000000 --- a/src/main/resources/assets/aether/models/item/accessories/charms/charm_lck_02.json +++ /dev/null @@ -1,6 +0,0 @@ - { - "parent": "item/generated", - "textures": { - "layer0": "aether:items/accessories/charms/charm_lck_02" - } - } \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/accessories/charms/charm_max_hlt_01.json b/src/main/resources/assets/aether/models/item/accessories/charms/charm_max_hlt_01.json deleted file mode 100644 index f9d35495b7..0000000000 --- a/src/main/resources/assets/aether/models/item/accessories/charms/charm_max_hlt_01.json +++ /dev/null @@ -1,6 +0,0 @@ - { - "parent": "item/generated", - "textures": { - "layer0": "aether:items/accessories/charms/charm_max_hlt_01" - } - } \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/accessories/charms/charm_max_hlt_02.json b/src/main/resources/assets/aether/models/item/accessories/charms/charm_max_hlt_02.json deleted file mode 100644 index 725488af67..0000000000 --- a/src/main/resources/assets/aether/models/item/accessories/charms/charm_max_hlt_02.json +++ /dev/null @@ -1,6 +0,0 @@ - { - "parent": "item/generated", - "textures": { - "layer0": "aether:items/accessories/charms/charm_max_hlt_02" - } - } \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/accessories/charms/charm_mve_spd_01.json b/src/main/resources/assets/aether/models/item/accessories/charms/charm_mve_spd_01.json deleted file mode 100644 index 0495e6fa6f..0000000000 --- a/src/main/resources/assets/aether/models/item/accessories/charms/charm_mve_spd_01.json +++ /dev/null @@ -1,6 +0,0 @@ - { - "parent": "item/generated", - "textures": { - "layer0": "aether:items/accessories/charms/charm_mve_spd_01" - } - } \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/accessories/charms/charm_mve_spd_02.json b/src/main/resources/assets/aether/models/item/accessories/charms/charm_mve_spd_02.json deleted file mode 100644 index dde4580e0e..0000000000 --- a/src/main/resources/assets/aether/models/item/accessories/charms/charm_mve_spd_02.json +++ /dev/null @@ -1,6 +0,0 @@ - { - "parent": "item/generated", - "textures": { - "layer0": "aether:items/accessories/charms/charm_mve_spd_02" - } - } \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/accessories/charms/charm_prc_dmg_01.json b/src/main/resources/assets/aether/models/item/accessories/charms/charm_prc_dmg_01.json deleted file mode 100644 index 30922c488d..0000000000 --- a/src/main/resources/assets/aether/models/item/accessories/charms/charm_prc_dmg_01.json +++ /dev/null @@ -1,6 +0,0 @@ - { - "parent": "item/generated", - "textures": { - "layer0": "aether:items/accessories/charms/charm_prc_dmg_01" - } - } \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/accessories/charms/charm_prc_dmg_02.json b/src/main/resources/assets/aether/models/item/accessories/charms/charm_prc_dmg_02.json deleted file mode 100644 index 07ff0af53f..0000000000 --- a/src/main/resources/assets/aether/models/item/accessories/charms/charm_prc_dmg_02.json +++ /dev/null @@ -1,6 +0,0 @@ - { - "parent": "item/generated", - "textures": { - "layer0": "aether:items/accessories/charms/charm_prc_dmg_02" - } - } \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/accessories/charms/charm_res_amb_01.json b/src/main/resources/assets/aether/models/item/accessories/charms/charm_res_amb_01.json deleted file mode 100644 index 8472387edb..0000000000 --- a/src/main/resources/assets/aether/models/item/accessories/charms/charm_res_amb_01.json +++ /dev/null @@ -1,6 +0,0 @@ - { - "parent": "item/generated", - "textures": { - "layer0": "aether:items/accessories/charms/charm_res_amb_01" - } - } \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/accessories/charms/charm_res_amb_02.json b/src/main/resources/assets/aether/models/item/accessories/charms/charm_res_amb_02.json deleted file mode 100644 index bf8e05501f..0000000000 --- a/src/main/resources/assets/aether/models/item/accessories/charms/charm_res_amb_02.json +++ /dev/null @@ -1,6 +0,0 @@ - { - "parent": "item/generated", - "textures": { - "layer0": "aether:items/accessories/charms/charm_res_amb_02" - } - } \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/accessories/charms/charm_res_bld_01.json b/src/main/resources/assets/aether/models/item/accessories/charms/charm_res_bld_01.json deleted file mode 100644 index 0870cbb3d4..0000000000 --- a/src/main/resources/assets/aether/models/item/accessories/charms/charm_res_bld_01.json +++ /dev/null @@ -1,6 +0,0 @@ - { - "parent": "item/generated", - "textures": { - "layer0": "aether:items/accessories/charms/charm_res_bld_01" - } - } \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/accessories/charms/charm_res_bld_02.json b/src/main/resources/assets/aether/models/item/accessories/charms/charm_res_bld_02.json deleted file mode 100644 index 8b13fec56f..0000000000 --- a/src/main/resources/assets/aether/models/item/accessories/charms/charm_res_bld_02.json +++ /dev/null @@ -1,6 +0,0 @@ - { - "parent": "item/generated", - "textures": { - "layer0": "aether:items/accessories/charms/charm_res_bld_02" - } - } \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/accessories/charms/charm_res_fra_01.json b/src/main/resources/assets/aether/models/item/accessories/charms/charm_res_fra_01.json deleted file mode 100644 index 8e8d9350c8..0000000000 --- a/src/main/resources/assets/aether/models/item/accessories/charms/charm_res_fra_01.json +++ /dev/null @@ -1,6 +0,0 @@ - { - "parent": "item/generated", - "textures": { - "layer0": "aether:items/accessories/charms/charm_res_fra_01" - } - } \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/accessories/charms/charm_res_fra_02.json b/src/main/resources/assets/aether/models/item/accessories/charms/charm_res_fra_02.json deleted file mode 100644 index 54aba794c3..0000000000 --- a/src/main/resources/assets/aether/models/item/accessories/charms/charm_res_fra_02.json +++ /dev/null @@ -1,6 +0,0 @@ - { - "parent": "item/generated", - "textures": { - "layer0": "aether:items/accessories/charms/charm_res_fra_02" - } - } \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/accessories/charms/charm_res_frz_01.json b/src/main/resources/assets/aether/models/item/accessories/charms/charm_res_frz_01.json deleted file mode 100644 index 359d2831a3..0000000000 --- a/src/main/resources/assets/aether/models/item/accessories/charms/charm_res_frz_01.json +++ /dev/null @@ -1,6 +0,0 @@ - { - "parent": "item/generated", - "textures": { - "layer0": "aether:items/accessories/charms/charm_res_frz_01" - } - } \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/accessories/charms/charm_res_frz_02.json b/src/main/resources/assets/aether/models/item/accessories/charms/charm_res_frz_02.json deleted file mode 100644 index 91c8cf0981..0000000000 --- a/src/main/resources/assets/aether/models/item/accessories/charms/charm_res_frz_02.json +++ /dev/null @@ -1,6 +0,0 @@ - { - "parent": "item/generated", - "textures": { - "layer0": "aether:items/accessories/charms/charm_res_frz_02" - } - } \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/accessories/charms/charm_res_grd_brk_01.json b/src/main/resources/assets/aether/models/item/accessories/charms/charm_res_grd_brk_01.json deleted file mode 100644 index 97f597a3f0..0000000000 --- a/src/main/resources/assets/aether/models/item/accessories/charms/charm_res_grd_brk_01.json +++ /dev/null @@ -1,6 +0,0 @@ - { - "parent": "item/generated", - "textures": { - "layer0": "aether:items/accessories/charms/charm_res_grd_brk_01" - } - } \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/accessories/charms/charm_res_grd_brk_02.json b/src/main/resources/assets/aether/models/item/accessories/charms/charm_res_grd_brk_02.json deleted file mode 100644 index 17e4feca25..0000000000 --- a/src/main/resources/assets/aether/models/item/accessories/charms/charm_res_grd_brk_02.json +++ /dev/null @@ -1,6 +0,0 @@ - { - "parent": "item/generated", - "textures": { - "layer0": "aether:items/accessories/charms/charm_res_grd_brk_02" - } - } \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/accessories/charms/charm_res_irr_01.json b/src/main/resources/assets/aether/models/item/accessories/charms/charm_res_irr_01.json deleted file mode 100644 index 0a6110d1fb..0000000000 --- a/src/main/resources/assets/aether/models/item/accessories/charms/charm_res_irr_01.json +++ /dev/null @@ -1,6 +0,0 @@ - { - "parent": "item/generated", - "textures": { - "layer0": "aether:items/accessories/charms/charm_res_irr_01" - } - } \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/accessories/charms/charm_res_irr_02.json b/src/main/resources/assets/aether/models/item/accessories/charms/charm_res_irr_02.json deleted file mode 100644 index 5183b8f1a4..0000000000 --- a/src/main/resources/assets/aether/models/item/accessories/charms/charm_res_irr_02.json +++ /dev/null @@ -1,6 +0,0 @@ - { - "parent": "item/generated", - "textures": { - "layer0": "aether:items/accessories/charms/charm_res_irr_02" - } - } \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/accessories/charms/charm_res_stn_01.json b/src/main/resources/assets/aether/models/item/accessories/charms/charm_res_stn_01.json deleted file mode 100644 index 3b98bcc3a4..0000000000 --- a/src/main/resources/assets/aether/models/item/accessories/charms/charm_res_stn_01.json +++ /dev/null @@ -1,6 +0,0 @@ - { - "parent": "item/generated", - "textures": { - "layer0": "aether:items/accessories/charms/charm_res_stn_01" - } - } \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/accessories/charms/charm_res_stn_02.json b/src/main/resources/assets/aether/models/item/accessories/charms/charm_res_stn_02.json deleted file mode 100644 index 98146ca2cf..0000000000 --- a/src/main/resources/assets/aether/models/item/accessories/charms/charm_res_stn_02.json +++ /dev/null @@ -1,6 +0,0 @@ - { - "parent": "item/generated", - "textures": { - "layer0": "aether:items/accessories/charms/charm_res_stn_02" - } - } \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/accessories/charms/charm_res_tox_01.json b/src/main/resources/assets/aether/models/item/accessories/charms/charm_res_tox_01.json deleted file mode 100644 index b54350dc20..0000000000 --- a/src/main/resources/assets/aether/models/item/accessories/charms/charm_res_tox_01.json +++ /dev/null @@ -1,6 +0,0 @@ - { - "parent": "item/generated", - "textures": { - "layer0": "aether:items/accessories/charms/charm_res_tox_01" - } - } \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/accessories/charms/charm_res_tox_02.json b/src/main/resources/assets/aether/models/item/accessories/charms/charm_res_tox_02.json deleted file mode 100644 index 44aafb618f..0000000000 --- a/src/main/resources/assets/aether/models/item/accessories/charms/charm_res_tox_02.json +++ /dev/null @@ -1,6 +0,0 @@ - { - "parent": "item/generated", - "textures": { - "layer0": "aether:items/accessories/charms/charm_res_tox_02" - } - } \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/accessories/charms/charm_res_ven_01.json b/src/main/resources/assets/aether/models/item/accessories/charms/charm_res_ven_01.json deleted file mode 100644 index ad9878ac1c..0000000000 --- a/src/main/resources/assets/aether/models/item/accessories/charms/charm_res_ven_01.json +++ /dev/null @@ -1,6 +0,0 @@ - { - "parent": "item/generated", - "textures": { - "layer0": "aether:items/accessories/charms/charm_res_ven_01" - } - } \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/accessories/charms/charm_res_ven_02.json b/src/main/resources/assets/aether/models/item/accessories/charms/charm_res_ven_02.json deleted file mode 100644 index 516987be69..0000000000 --- a/src/main/resources/assets/aether/models/item/accessories/charms/charm_res_ven_02.json +++ /dev/null @@ -1,6 +0,0 @@ - { - "parent": "item/generated", - "textures": { - "layer0": "aether:items/accessories/charms/charm_res_ven_02" - } - } \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/accessories/charms/charm_res_web_01.json b/src/main/resources/assets/aether/models/item/accessories/charms/charm_res_web_01.json deleted file mode 100644 index 5af67e1486..0000000000 --- a/src/main/resources/assets/aether/models/item/accessories/charms/charm_res_web_01.json +++ /dev/null @@ -1,6 +0,0 @@ - { - "parent": "item/generated", - "textures": { - "layer0": "aether:items/accessories/charms/charm_res_web_01" - } - } \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/accessories/charms/charm_res_web_02.json b/src/main/resources/assets/aether/models/item/accessories/charms/charm_res_web_02.json deleted file mode 100644 index ddfce7e7aa..0000000000 --- a/src/main/resources/assets/aether/models/item/accessories/charms/charm_res_web_02.json +++ /dev/null @@ -1,6 +0,0 @@ - { - "parent": "item/generated", - "textures": { - "layer0": "aether:items/accessories/charms/charm_res_web_02" - } - } \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/accessories/charms/charm_slsh_dmg_01.json b/src/main/resources/assets/aether/models/item/accessories/charms/charm_slsh_dmg_01.json deleted file mode 100644 index ad961bdae6..0000000000 --- a/src/main/resources/assets/aether/models/item/accessories/charms/charm_slsh_dmg_01.json +++ /dev/null @@ -1,6 +0,0 @@ - { - "parent": "item/generated", - "textures": { - "layer0": "aether:items/accessories/charms/charm_slsh_dmg_01" - } - } \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/accessories/charms/charm_slsh_dmg_02.json b/src/main/resources/assets/aether/models/item/accessories/charms/charm_slsh_dmg_02.json deleted file mode 100644 index deb5a9e233..0000000000 --- a/src/main/resources/assets/aether/models/item/accessories/charms/charm_slsh_dmg_02.json +++ /dev/null @@ -1,6 +0,0 @@ - { - "parent": "item/generated", - "textures": { - "layer0": "aether:items/accessories/charms/charm_slsh_dmg_02" - } - } \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/accessories/gravitite_gloves.json b/src/main/resources/assets/aether/models/item/accessories/gravitite_gloves.json deleted file mode 100644 index 3c91dc432f..0000000000 --- a/src/main/resources/assets/aether/models/item/accessories/gravitite_gloves.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "aether:items/armor/gravitite_gloves" - } -} diff --git a/src/main/resources/assets/aether/models/item/accessories/taegore_hide_gloves.json b/src/main/resources/assets/aether/models/item/accessories/taegore_hide_gloves.json deleted file mode 100644 index 02382ea74c..0000000000 --- a/src/main/resources/assets/aether/models/item/accessories/taegore_hide_gloves.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "aether:items/armor/taegore_hide_gloves" - } -} diff --git a/src/main/resources/assets/aether/models/item/accessories/zanite_gloves.json b/src/main/resources/assets/aether/models/item/accessories/zanite_gloves.json deleted file mode 100644 index dbb7335a53..0000000000 --- a/src/main/resources/assets/aether/models/item/accessories/zanite_gloves.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "aether:items/armor/zanite_gloves" - } -} diff --git a/src/main/resources/assets/aether/models/item/aechor_petal.json b/src/main/resources/assets/aether/models/item/aechor_petal.json deleted file mode 100644 index 2b531433f0..0000000000 --- a/src/main/resources/assets/aether/models/item/aechor_petal.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "aether:items/consumables/aechor_petal" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/aercloud/blue_aercloud.json b/src/main/resources/assets/aether/models/item/aercloud/blue_aercloud.json deleted file mode 100644 index d0d09cdcd1..0000000000 --- a/src/main/resources/assets/aether/models/item/aercloud/blue_aercloud.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "aether:block/aercloud/blue_aercloud" -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/aercloud/cold_aercloud.json b/src/main/resources/assets/aether/models/item/aercloud/cold_aercloud.json deleted file mode 100644 index b83a22ba77..0000000000 --- a/src/main/resources/assets/aether/models/item/aercloud/cold_aercloud.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "aether:block/aercloud/cold_aercloud" -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/aercloud/golden_aercloud.json b/src/main/resources/assets/aether/models/item/aercloud/golden_aercloud.json deleted file mode 100644 index d260942674..0000000000 --- a/src/main/resources/assets/aether/models/item/aercloud/golden_aercloud.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "aether:block/aercloud/golden_aercloud" -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/aercloud/green_aercloud.json b/src/main/resources/assets/aether/models/item/aercloud/green_aercloud.json deleted file mode 100644 index 48de54cc3f..0000000000 --- a/src/main/resources/assets/aether/models/item/aercloud/green_aercloud.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "aether:block/aercloud/green_aercloud" -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/aercloud/purple_aercloud.json b/src/main/resources/assets/aether/models/item/aercloud/purple_aercloud.json deleted file mode 100644 index d6fb4a5dd6..0000000000 --- a/src/main/resources/assets/aether/models/item/aercloud/purple_aercloud.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "aether:block/aercloud/purple_aercloud" -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/aercloud/storm_aercloud.json b/src/main/resources/assets/aether/models/item/aercloud/storm_aercloud.json deleted file mode 100644 index 7ce1029d57..0000000000 --- a/src/main/resources/assets/aether/models/item/aercloud/storm_aercloud.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "aether:block/aercloud/storm_aercloud" -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/aether_dirt/coarse_dirt.json b/src/main/resources/assets/aether/models/item/aether_dirt/coarse_dirt.json deleted file mode 100644 index d70a06ac6b..0000000000 --- a/src/main/resources/assets/aether/models/item/aether_dirt/coarse_dirt.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "aether:block/aether_dirt/coarse_dirt" -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/aether_dirt/dirt.json b/src/main/resources/assets/aether/models/item/aether_dirt/dirt.json deleted file mode 100644 index e2152f0fb0..0000000000 --- a/src/main/resources/assets/aether/models/item/aether_dirt/dirt.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "aether:block/aether_dirt/dirt" -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/aether_portal.json b/src/main/resources/assets/aether/models/item/aether_portal.json deleted file mode 100644 index 0294603270..0000000000 --- a/src/main/resources/assets/aether/models/item/aether_portal.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "aether:block/aether_portal/aether_portal_ew" -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/aether_saddle.json b/src/main/resources/assets/aether/models/item/aether_saddle.json deleted file mode 100644 index 01f6807e79..0000000000 --- a/src/main/resources/assets/aether/models/item/aether_saddle.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "aether:items/miscellaneous/aether_saddle" - } -} diff --git a/src/main/resources/assets/aether/models/item/aether_slab/agiosite_brick_slab.json b/src/main/resources/assets/aether/models/item/aether_slab/agiosite_brick_slab.json deleted file mode 100644 index 1c82082fa2..0000000000 --- a/src/main/resources/assets/aether/models/item/aether_slab/agiosite_brick_slab.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "block/half_slab", - "textures": { - "bottom": "aether:blocks/agiosite_brick", - "top": "aether:blocks/agiosite_brick", - "side": "aether:blocks/agiosite_brick" - } -} diff --git a/src/main/resources/assets/aether/models/item/aether_slab/agiosite_slab.json b/src/main/resources/assets/aether/models/item/aether_slab/agiosite_slab.json deleted file mode 100644 index 511be36758..0000000000 --- a/src/main/resources/assets/aether/models/item/aether_slab/agiosite_slab.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "block/half_slab", - "textures": { - "bottom": "aether:blocks/agiosite", - "top": "aether:blocks/agiosite", - "side": "aether:blocks/agiosite" - } -} diff --git a/src/main/resources/assets/aether/models/item/aether_slab/faded_holystone_brick_slab.json b/src/main/resources/assets/aether/models/item/aether_slab/faded_holystone_brick_slab.json deleted file mode 100644 index 4442085c75..0000000000 --- a/src/main/resources/assets/aether/models/item/aether_slab/faded_holystone_brick_slab.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "block/half_slab", - "textures": { - "bottom": "aether:blocks/faded_holystone_brick", - "top": "aether:blocks/faded_holystone_brick", - "side": "aether:blocks/faded_holystone_brick" - } -} diff --git a/src/main/resources/assets/aether/models/item/aether_slab/greatroot_slab.json b/src/main/resources/assets/aether/models/item/aether_slab/greatroot_slab.json deleted file mode 100644 index 86b1421efe..0000000000 --- a/src/main/resources/assets/aether/models/item/aether_slab/greatroot_slab.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "block/half_slab", - "textures": { - "bottom": "aether:blocks/dark_skyroot_planks/greatroot_planks", - "top": "aether:blocks/dark_skyroot_planks/greatroot_planks", - "side": "aether:blocks/dark_skyroot_planks/greatroot_planks" - } -} diff --git a/src/main/resources/assets/aether/models/item/aether_slab/hellfirestone_brick_slab.json b/src/main/resources/assets/aether/models/item/aether_slab/hellfirestone_brick_slab.json deleted file mode 100644 index d4b25ba2e0..0000000000 --- a/src/main/resources/assets/aether/models/item/aether_slab/hellfirestone_brick_slab.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "block/half_slab", - "textures": { - "bottom": "aether:blocks/hellfirestone_bricks/hellfirestone_brick", - "top": "aether:blocks/hellfirestone_bricks/hellfirestone_brick", - "side": "aether:blocks/hellfirestone_bricks/hellfirestone_brick" - } -} diff --git a/src/main/resources/assets/aether/models/item/aether_slab/holystone_brick_slab.json b/src/main/resources/assets/aether/models/item/aether_slab/holystone_brick_slab.json deleted file mode 100644 index 922f70a4d7..0000000000 --- a/src/main/resources/assets/aether/models/item/aether_slab/holystone_brick_slab.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "block/half_slab", - "textures": { - "bottom": "aether:blocks/holystone_brick", - "top": "aether:blocks/holystone_brick", - "side": "aether:blocks/holystone_brick" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/aether_slab/holystone_slab.json b/src/main/resources/assets/aether/models/item/aether_slab/holystone_slab.json deleted file mode 100644 index eb241e0c14..0000000000 --- a/src/main/resources/assets/aether/models/item/aether_slab/holystone_slab.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "block/half_slab", - "textures": { - "bottom": "aether:blocks/holystone/holystone", - "top": "aether:blocks/holystone/holystone", - "side": "aether:blocks/holystone/holystone" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/aether_slab/icestone_slab.json b/src/main/resources/assets/aether/models/item/aether_slab/icestone_slab.json deleted file mode 100644 index d280a59331..0000000000 --- a/src/main/resources/assets/aether/models/item/aether_slab/icestone_slab.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "block/half_slab", - "textures": { - "bottom": "aether:blocks/icestone_bricks", - "top": "aether:blocks/icestone_bricks", - "side": "aether:blocks/icestone_bricks" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/aether_slab/mossy_holystone_slab.json b/src/main/resources/assets/aether/models/item/aether_slab/mossy_holystone_slab.json deleted file mode 100644 index 9295f673df..0000000000 --- a/src/main/resources/assets/aether/models/item/aether_slab/mossy_holystone_slab.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "block/half_slab", - "textures": { - "bottom": "aether:blocks/holystone/mossy_holystone", - "top": "aether:blocks/holystone/mossy_holystone", - "side": "aether:blocks/holystone/mossy_holystone" - } -} diff --git a/src/main/resources/assets/aether/models/item/aether_slab/scatterglass_slab.json b/src/main/resources/assets/aether/models/item/aether_slab/scatterglass_slab.json deleted file mode 100644 index 72f6fecc1f..0000000000 --- a/src/main/resources/assets/aether/models/item/aether_slab/scatterglass_slab.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "block/half_slab", - "textures": { - "bottom": "aether:blocks/scatterglass", - "top": "aether:blocks/scatterglass", - "side": "aether:blocks/scatterglass" - } -} diff --git a/src/main/resources/assets/aether/models/item/aether_slab/sentrystone_brick_slab.json b/src/main/resources/assets/aether/models/item/aether_slab/sentrystone_brick_slab.json deleted file mode 100644 index d4ce69535a..0000000000 --- a/src/main/resources/assets/aether/models/item/aether_slab/sentrystone_brick_slab.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "block/half_slab", - "textures": { - "bottom": "aether:blocks/sentrystone_bricks/sentrystone_brick", - "top": "aether:blocks/sentrystone_bricks/sentrystone_brick", - "side": "aether:blocks/sentrystone_bricks/sentrystone_brick" - } -} diff --git a/src/main/resources/assets/aether/models/item/aether_slab/skyroot_slab.json b/src/main/resources/assets/aether/models/item/aether_slab/skyroot_slab.json deleted file mode 100644 index e6c582074d..0000000000 --- a/src/main/resources/assets/aether/models/item/aether_slab/skyroot_slab.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "block/half_slab", - "textures": { - "bottom": "aether:blocks/skyroot_planks/skyroot_planks", - "top": "aether:blocks/skyroot_planks/skyroot_planks", - "side": "aether:blocks/skyroot_planks/skyroot_planks" - } -} diff --git a/src/main/resources/assets/aether/models/item/aether_slab/therastone_brick_slab.json b/src/main/resources/assets/aether/models/item/aether_slab/therastone_brick_slab.json deleted file mode 100644 index dd70bffdac..0000000000 --- a/src/main/resources/assets/aether/models/item/aether_slab/therastone_brick_slab.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "block/half_slab", - "textures": { - "bottom": "aether:blocks/therastone_bricks/therastone_bricks", - "top": "aether:blocks/therastone_bricks/therastone_bricks", - "side": "aether:blocks/therastone_bricks/therastone_bricks" - } -} diff --git a/src/main/resources/assets/aether/models/item/aether_slab/therawood_slab.json b/src/main/resources/assets/aether/models/item/aether_slab/therawood_slab.json deleted file mode 100644 index 3b8f795ac4..0000000000 --- a/src/main/resources/assets/aether/models/item/aether_slab/therawood_slab.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "block/half_slab", - "textures": { - "bottom": "aether:blocks/therawood_planks/therawood_planks", - "top": "aether:blocks/therawood_planks/therawood_planks", - "side": "aether:blocks/therawood_planks/therawood_planks" - } -} diff --git a/src/main/resources/assets/aether/models/item/aether_slab/wisproot_slab.json b/src/main/resources/assets/aether/models/item/aether_slab/wisproot_slab.json deleted file mode 100644 index 8a5e0ec41e..0000000000 --- a/src/main/resources/assets/aether/models/item/aether_slab/wisproot_slab.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "block/half_slab", - "textures": { - "bottom": "aether:blocks/light_skyroot_planks/wisproot_planks", - "top": "aether:blocks/light_skyroot_planks/wisproot_planks", - "side": "aether:blocks/light_skyroot_planks/wisproot_planks" - } -} diff --git a/src/main/resources/assets/aether/models/item/aether_spawn_egg.json b/src/main/resources/assets/aether/models/item/aether_spawn_egg.json deleted file mode 100644 index 76804323ce..0000000000 --- a/src/main/resources/assets/aether/models/item/aether_spawn_egg.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "items/spawn_egg", - "layer1": "items/spawn_egg_overlay" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/aether_stairs/agiosite_brick_stairs.json b/src/main/resources/assets/aether/models/item/aether_stairs/agiosite_brick_stairs.json deleted file mode 100644 index f3c22733c7..0000000000 --- a/src/main/resources/assets/aether/models/item/aether_stairs/agiosite_brick_stairs.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "block/stairs", - "textures": { - "bottom": "aether:blocks/agiosite_brick", - "side": "aether:blocks/agiosite_brick", - "top": "aether:blocks/agiosite_brick" - } -} diff --git a/src/main/resources/assets/aether/models/item/aether_stairs/agiosite_stairs.json b/src/main/resources/assets/aether/models/item/aether_stairs/agiosite_stairs.json deleted file mode 100644 index eae5304726..0000000000 --- a/src/main/resources/assets/aether/models/item/aether_stairs/agiosite_stairs.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "block/stairs", - "textures": { - "bottom": "aether:blocks/agiosite", - "side": "aether:blocks/agiosite", - "top": "aether:blocks/agiosite" - } -} diff --git a/src/main/resources/assets/aether/models/item/aether_stairs/faded_holystone_brick_stairs.json b/src/main/resources/assets/aether/models/item/aether_stairs/faded_holystone_brick_stairs.json deleted file mode 100644 index 68df55392a..0000000000 --- a/src/main/resources/assets/aether/models/item/aether_stairs/faded_holystone_brick_stairs.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "block/stairs", - "textures": { - "bottom": "aether:blocks/faded_holystone_brick", - "side": "aether:blocks/faded_holystone_brick", - "top": "aether:blocks/faded_holystone_brick" - } -} diff --git a/src/main/resources/assets/aether/models/item/aether_stairs/greatroot_stairs.json b/src/main/resources/assets/aether/models/item/aether_stairs/greatroot_stairs.json deleted file mode 100644 index 26742dfc57..0000000000 --- a/src/main/resources/assets/aether/models/item/aether_stairs/greatroot_stairs.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "block/stairs", - "textures": { - "bottom": "aether:blocks/dark_skyroot_planks/greatroot_planks", - "side": "aether:blocks/dark_skyroot_planks/greatroot_planks", - "top": "aether:blocks/dark_skyroot_planks/greatroot_planks" - } -} diff --git a/src/main/resources/assets/aether/models/item/aether_stairs/hellfirestone_brick_stairs.json b/src/main/resources/assets/aether/models/item/aether_stairs/hellfirestone_brick_stairs.json deleted file mode 100644 index ce83ed444e..0000000000 --- a/src/main/resources/assets/aether/models/item/aether_stairs/hellfirestone_brick_stairs.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "block/stairs", - "textures": { - "bottom": "aether:blocks/hellfirestone_bricks/hellfirestone_brick", - "side": "aether:blocks/hellfirestone_bricks/hellfirestone_brick", - "top": "aether:blocks/hellfirestone_bricks/hellfirestone_brick" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/aether_stairs/holystone_brick_stairs.json b/src/main/resources/assets/aether/models/item/aether_stairs/holystone_brick_stairs.json deleted file mode 100644 index b1e4aeea23..0000000000 --- a/src/main/resources/assets/aether/models/item/aether_stairs/holystone_brick_stairs.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "block/stairs", - "textures": { - "bottom": "aether:blocks/holystone_brick", - "side": "aether:blocks/holystone_brick", - "top": "aether:blocks/holystone_brick" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/aether_stairs/holystone_stairs.json b/src/main/resources/assets/aether/models/item/aether_stairs/holystone_stairs.json deleted file mode 100644 index b62b5352ab..0000000000 --- a/src/main/resources/assets/aether/models/item/aether_stairs/holystone_stairs.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "block/stairs", - "textures": { - "bottom": "aether:blocks/holystone/holystone", - "side": "aether:blocks/holystone/holystone", - "top": "aether:blocks/holystone/holystone" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/aether_stairs/icestone_brick_stairs.json b/src/main/resources/assets/aether/models/item/aether_stairs/icestone_brick_stairs.json deleted file mode 100644 index 88bb3b10ba..0000000000 --- a/src/main/resources/assets/aether/models/item/aether_stairs/icestone_brick_stairs.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "block/stairs", - "textures": { - "bottom": "aether:blocks/icestone_bricks", - "side": "aether:blocks/icestone_bricks", - "top": "aether:blocks/icestone_bricks" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/aether_stairs/mossy_holystone_stairs.json b/src/main/resources/assets/aether/models/item/aether_stairs/mossy_holystone_stairs.json deleted file mode 100644 index e95f451904..0000000000 --- a/src/main/resources/assets/aether/models/item/aether_stairs/mossy_holystone_stairs.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "block/stairs", - "textures": { - "bottom": "aether:blocks/holystone/mossy_holystone", - "side": "aether:blocks/holystone/mossy_holystone", - "top": "aether:blocks/holystone/mossy_holystone" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/aether_stairs/scatterglass_stairs.json b/src/main/resources/assets/aether/models/item/aether_stairs/scatterglass_stairs.json deleted file mode 100644 index 494eaf9570..0000000000 --- a/src/main/resources/assets/aether/models/item/aether_stairs/scatterglass_stairs.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "block/stairs", - "textures": { - "bottom": "aether:blocks/scatterglass", - "side": "aether:blocks/scatterglass", - "top": "aether:blocks/scatterglass" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/aether_stairs/sentrystone_brick_stairs.json b/src/main/resources/assets/aether/models/item/aether_stairs/sentrystone_brick_stairs.json deleted file mode 100644 index dea975abb7..0000000000 --- a/src/main/resources/assets/aether/models/item/aether_stairs/sentrystone_brick_stairs.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "block/stairs", - "textures": { - "bottom": "aether:blocks/sentrystone_bricks/sentrystone_brick", - "side": "aether:blocks/sentrystone_bricks/sentrystone_brick", - "top": "aether:blocks/sentrystone_bricks/sentrystone_brick" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/aether_stairs/skyroot_stairs.json b/src/main/resources/assets/aether/models/item/aether_stairs/skyroot_stairs.json deleted file mode 100644 index 2f7827c54e..0000000000 --- a/src/main/resources/assets/aether/models/item/aether_stairs/skyroot_stairs.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "block/stairs", - "textures": { - "bottom": "aether:blocks/skyroot_planks/skyroot_planks", - "side": "aether:blocks/skyroot_planks/skyroot_planks", - "top": "aether:blocks/skyroot_planks/skyroot_planks" - } -} diff --git a/src/main/resources/assets/aether/models/item/aether_stairs/therastone_brick_stairs.json b/src/main/resources/assets/aether/models/item/aether_stairs/therastone_brick_stairs.json deleted file mode 100644 index 08f49547a8..0000000000 --- a/src/main/resources/assets/aether/models/item/aether_stairs/therastone_brick_stairs.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "block/stairs", - "textures": { - "bottom": "aether:blocks/therastone_bricks/therastone_bricks", - "side": "aether:blocks/therastone_bricks/therastone_bricks", - "top": "aether:blocks/therastone_bricks/therastone_bricks" - } -} diff --git a/src/main/resources/assets/aether/models/item/aether_stairs/therawood_stairs.json b/src/main/resources/assets/aether/models/item/aether_stairs/therawood_stairs.json deleted file mode 100644 index b9605098af..0000000000 --- a/src/main/resources/assets/aether/models/item/aether_stairs/therawood_stairs.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "block/stairs", - "textures": { - "bottom": "aether:blocks/therawood_planks/therawood_planks", - "side": "aether:blocks/therawood_planks/therawood_planks", - "top": "aether:blocks/therawood_planks/therawood_planks" - } -} diff --git a/src/main/resources/assets/aether/models/item/aether_stairs/wisproot_stairs.json b/src/main/resources/assets/aether/models/item/aether_stairs/wisproot_stairs.json deleted file mode 100644 index acc6c1a95e..0000000000 --- a/src/main/resources/assets/aether/models/item/aether_stairs/wisproot_stairs.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "block/stairs", - "textures": { - "bottom": "aether:blocks/light_skyroot_planks/wisproot_planks", - "side": "aether:blocks/light_skyroot_planks/wisproot_planks", - "top": "aether:blocks/light_skyroot_planks/wisproot_planks" - } -} diff --git a/src/main/resources/assets/aether/models/item/aether_teleporter.json b/src/main/resources/assets/aether/models/item/aether_teleporter.json deleted file mode 100644 index 1964aae395..0000000000 --- a/src/main/resources/assets/aether/models/item/aether_teleporter.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "aether:items/aether_teleporter" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/aether_wall/agiosite_brick_wall.json b/src/main/resources/assets/aether/models/item/aether_wall/agiosite_brick_wall.json deleted file mode 100644 index 7a33147533..0000000000 --- a/src/main/resources/assets/aether/models/item/aether_wall/agiosite_brick_wall.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/wall_inventory", - "textures": { - "wall": "aether:blocks/agiosite_brick" - } -} diff --git a/src/main/resources/assets/aether/models/item/aether_wall/agiosite_wall.json b/src/main/resources/assets/aether/models/item/aether_wall/agiosite_wall.json deleted file mode 100644 index 702d5739cd..0000000000 --- a/src/main/resources/assets/aether/models/item/aether_wall/agiosite_wall.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/wall_inventory", - "textures": { - "wall": "aether:blocks/agiosite" - } -} diff --git a/src/main/resources/assets/aether/models/item/aether_wall/candy_cane_wall.json b/src/main/resources/assets/aether/models/item/aether_wall/candy_cane_wall.json deleted file mode 100644 index 44d901273c..0000000000 --- a/src/main/resources/assets/aether/models/item/aether_wall/candy_cane_wall.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "parent": "aether:block/aether_wall/special_models/wall_inventory_special_top", - "textures": { - "wall": "aether:blocks/candy_cane_side", - "top": "aether:blocks/candy_cane_top" - } -} diff --git a/src/main/resources/assets/aether/models/item/aether_wall/faded_holystone_brick_wall.json b/src/main/resources/assets/aether/models/item/aether_wall/faded_holystone_brick_wall.json deleted file mode 100644 index 4a9ffcf29d..0000000000 --- a/src/main/resources/assets/aether/models/item/aether_wall/faded_holystone_brick_wall.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/wall_inventory", - "textures": { - "wall": "aether:blocks/faded_holystone_brick" - } -} diff --git a/src/main/resources/assets/aether/models/item/aether_wall/greatroot_log_wall.json b/src/main/resources/assets/aether/models/item/aether_wall/greatroot_log_wall.json deleted file mode 100644 index c55dc2674e..0000000000 --- a/src/main/resources/assets/aether/models/item/aether_wall/greatroot_log_wall.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "parent": "aether:block/aether_wall/special_models/wall_inventory_special_top", - "textures": { - "wall": "aether:blocks/logs/greatroot_log_side", - "top": "aether:blocks/logs/greatroot_log_top" - } -} diff --git a/src/main/resources/assets/aether/models/item/aether_wall/hellfirestone_brick_wall.json b/src/main/resources/assets/aether/models/item/aether_wall/hellfirestone_brick_wall.json deleted file mode 100644 index 4bde23843d..0000000000 --- a/src/main/resources/assets/aether/models/item/aether_wall/hellfirestone_brick_wall.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/wall_inventory", - "textures": { - "wall": "aether:blocks/hellfirestone_bricks/hellfirestone_brick" - } -} diff --git a/src/main/resources/assets/aether/models/item/aether_wall/holystone_brick_wall.json b/src/main/resources/assets/aether/models/item/aether_wall/holystone_brick_wall.json deleted file mode 100644 index c5336ec5bf..0000000000 --- a/src/main/resources/assets/aether/models/item/aether_wall/holystone_brick_wall.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/wall_inventory", - "textures": { - "wall": "aether:blocks/holystone_brick" - } -} diff --git a/src/main/resources/assets/aether/models/item/aether_wall/holystone_wall.json b/src/main/resources/assets/aether/models/item/aether_wall/holystone_wall.json deleted file mode 100644 index 1a77264409..0000000000 --- a/src/main/resources/assets/aether/models/item/aether_wall/holystone_wall.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/wall_inventory", - "textures": { - "wall": "aether:blocks/holystone/holystone" - } -} diff --git a/src/main/resources/assets/aether/models/item/aether_wall/icestone_wall.json b/src/main/resources/assets/aether/models/item/aether_wall/icestone_wall.json deleted file mode 100644 index f3551ebd31..0000000000 --- a/src/main/resources/assets/aether/models/item/aether_wall/icestone_wall.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/wall_inventory", - "textures": { - "wall": "aether:blocks/icestone_bricks" - } -} diff --git a/src/main/resources/assets/aether/models/item/aether_wall/mossy_holystone_wall.json b/src/main/resources/assets/aether/models/item/aether_wall/mossy_holystone_wall.json deleted file mode 100644 index ce3abefc44..0000000000 --- a/src/main/resources/assets/aether/models/item/aether_wall/mossy_holystone_wall.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/wall_inventory", - "textures": { - "wall": "aether:blocks/holystone/mossy_holystone" - } -} diff --git a/src/main/resources/assets/aether/models/item/aether_wall/scatterglass_wall.json b/src/main/resources/assets/aether/models/item/aether_wall/scatterglass_wall.json deleted file mode 100644 index f4a15575ed..0000000000 --- a/src/main/resources/assets/aether/models/item/aether_wall/scatterglass_wall.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/wall_inventory", - "textures": { - "wall": "aether:blocks/scatterglass" - } -} diff --git a/src/main/resources/assets/aether/models/item/aether_wall/sentrystone_brick_wall.json b/src/main/resources/assets/aether/models/item/aether_wall/sentrystone_brick_wall.json deleted file mode 100644 index db96b33633..0000000000 --- a/src/main/resources/assets/aether/models/item/aether_wall/sentrystone_brick_wall.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/wall_inventory", - "textures": { - "wall": "aether:blocks/sentrystone_bricks/sentrystone_brick" - } -} diff --git a/src/main/resources/assets/aether/models/item/aether_wall/skyroot_log_wall.json b/src/main/resources/assets/aether/models/item/aether_wall/skyroot_log_wall.json deleted file mode 100644 index ed7fd944b9..0000000000 --- a/src/main/resources/assets/aether/models/item/aether_wall/skyroot_log_wall.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "parent": "aether:block/aether_wall/special_models/wall_inventory_special_top", - "textures": { - "wall": "aether:blocks/logs/skyroot_log_side", - "top": "aether:blocks/logs/skyroot_log_top" - } -} diff --git a/src/main/resources/assets/aether/models/item/aether_wall/therastone_brick_wall.json b/src/main/resources/assets/aether/models/item/aether_wall/therastone_brick_wall.json deleted file mode 100644 index 082332acad..0000000000 --- a/src/main/resources/assets/aether/models/item/aether_wall/therastone_brick_wall.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/wall_inventory", - "textures": { - "wall": "aether:blocks/therastone_bricks/therastone_bricks" - } -} diff --git a/src/main/resources/assets/aether/models/item/aether_wall/therawood_log_wall.json b/src/main/resources/assets/aether/models/item/aether_wall/therawood_log_wall.json deleted file mode 100644 index f0a52b95a6..0000000000 --- a/src/main/resources/assets/aether/models/item/aether_wall/therawood_log_wall.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "parent": "aether:block/aether_wall/special_models/wall_inventory_special_top", - "textures": { - "wall": "aether:blocks/logs/therawood_log_side", - "top": "aether:blocks/logs/therawood_log_top" - } -} diff --git a/src/main/resources/assets/aether/models/item/aether_wall/wisproot_log_wall.json b/src/main/resources/assets/aether/models/item/aether_wall/wisproot_log_wall.json deleted file mode 100644 index 1263f4ef5e..0000000000 --- a/src/main/resources/assets/aether/models/item/aether_wall/wisproot_log_wall.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "parent": "aether:block/aether_wall/special_models/wall_inventory_special_top", - "textures": { - "wall": "aether:blocks/logs/wisproot_log_side", - "top": "aether:blocks/logs/wisproot_log_top" - } -} diff --git a/src/main/resources/assets/aether/models/item/agiosite.json b/src/main/resources/assets/aether/models/item/agiosite.json deleted file mode 100644 index 66ed1c27b0..0000000000 --- a/src/main/resources/assets/aether/models/item/agiosite.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "aether:block/agiosite" -} diff --git a/src/main/resources/assets/aether/models/item/agiosite_brick.json b/src/main/resources/assets/aether/models/item/agiosite_brick.json deleted file mode 100644 index 6713b08021..0000000000 --- a/src/main/resources/assets/aether/models/item/agiosite_brick.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "aether:block/agiosite_brick" -} diff --git a/src/main/resources/assets/aether/models/item/agiosite_bricks/base_bricks.json b/src/main/resources/assets/aether/models/item/agiosite_bricks/base_bricks.json deleted file mode 100644 index 8baf0d8bc1..0000000000 --- a/src/main/resources/assets/aether/models/item/agiosite_bricks/base_bricks.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "aether:block/agiosite_bricks/base_bricks" -} diff --git a/src/main/resources/assets/aether/models/item/agiosite_bricks/base_pillar.json b/src/main/resources/assets/aether/models/item/agiosite_bricks/base_pillar.json deleted file mode 100644 index ddc423ae6e..0000000000 --- a/src/main/resources/assets/aether/models/item/agiosite_bricks/base_pillar.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "aether:block/agiosite_bricks/base_pillar" -} diff --git a/src/main/resources/assets/aether/models/item/agiosite_bricks/capstone_bricks.json b/src/main/resources/assets/aether/models/item/agiosite_bricks/capstone_bricks.json deleted file mode 100644 index d3868d3e26..0000000000 --- a/src/main/resources/assets/aether/models/item/agiosite_bricks/capstone_bricks.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "aether:block/agiosite_bricks/capstone_bricks" -} diff --git a/src/main/resources/assets/aether/models/item/agiosite_bricks/capstone_pillar.json b/src/main/resources/assets/aether/models/item/agiosite_bricks/capstone_pillar.json deleted file mode 100644 index fbc11d68ea..0000000000 --- a/src/main/resources/assets/aether/models/item/agiosite_bricks/capstone_pillar.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "aether:block/agiosite_bricks/capstone_pillar" -} diff --git a/src/main/resources/assets/aether/models/item/agiosite_bricks/flagstones.json b/src/main/resources/assets/aether/models/item/agiosite_bricks/flagstones.json deleted file mode 100644 index 68bebd98c8..0000000000 --- a/src/main/resources/assets/aether/models/item/agiosite_bricks/flagstones.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "aether:block/agiosite_bricks/flagstones" -} diff --git a/src/main/resources/assets/aether/models/item/agiosite_bricks/keystone.json b/src/main/resources/assets/aether/models/item/agiosite_bricks/keystone.json deleted file mode 100644 index ab77907f47..0000000000 --- a/src/main/resources/assets/aether/models/item/agiosite_bricks/keystone.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "aether:block/agiosite_bricks/keystone" -} diff --git a/src/main/resources/assets/aether/models/item/agiosite_bricks/normal.json b/src/main/resources/assets/aether/models/item/agiosite_bricks/normal.json deleted file mode 100644 index 5b5a54ec0d..0000000000 --- a/src/main/resources/assets/aether/models/item/agiosite_bricks/normal.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "aether:block/agiosite_bricks/normal" -} diff --git a/src/main/resources/assets/aether/models/item/agiosite_bricks/pillar.json b/src/main/resources/assets/aether/models/item/agiosite_bricks/pillar.json deleted file mode 100644 index b454e02908..0000000000 --- a/src/main/resources/assets/aether/models/item/agiosite_bricks/pillar.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "aether:block/agiosite_bricks/pillar" -} diff --git a/src/main/resources/assets/aether/models/item/ambrosium_chunk.json b/src/main/resources/assets/aether/models/item/ambrosium_chunk.json deleted file mode 100644 index 4b65e50b29..0000000000 --- a/src/main/resources/assets/aether/models/item/ambrosium_chunk.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "aether:items/materials/ambrosium_chunk" - } -} diff --git a/src/main/resources/assets/aether/models/item/ambrosium_shard.json b/src/main/resources/assets/aether/models/item/ambrosium_shard.json deleted file mode 100644 index e5eb9a595f..0000000000 --- a/src/main/resources/assets/aether/models/item/ambrosium_shard.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "aether:items/materials/ambrosium_shard" - } -} diff --git a/src/main/resources/assets/aether/models/item/ambrosium_torch.json b/src/main/resources/assets/aether/models/item/ambrosium_torch.json deleted file mode 100644 index dcca6c6119..0000000000 --- a/src/main/resources/assets/aether/models/item/ambrosium_torch.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "aether:blocks/ambrosium_torch" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/arkenium.json b/src/main/resources/assets/aether/models/item/arkenium.json deleted file mode 100644 index 462d099a4e..0000000000 --- a/src/main/resources/assets/aether/models/item/arkenium.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "aether:items/materials/arkenium_plate" - } -} diff --git a/src/main/resources/assets/aether/models/item/arkenium_door.json b/src/main/resources/assets/aether/models/item/arkenium_door.json deleted file mode 100644 index 12b68d7eec..0000000000 --- a/src/main/resources/assets/aether/models/item/arkenium_door.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "aether:items/doors/arkenium_door" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/arkenium_shield.json b/src/main/resources/assets/aether/models/item/arkenium_shield.json deleted file mode 100644 index 0861e78ef0..0000000000 --- a/src/main/resources/assets/aether/models/item/arkenium_shield.json +++ /dev/null @@ -1,48 +0,0 @@ -{ - "parent": "aether:item/arkenium_shield_base", - "display": { - "thirdperson_righthand": { - "rotation": [ 0, 90, 0 ], - "translation": [ 0, -2, 4 ], - "scale": [ 1, 1, 1 ] - }, - "thirdperson_lefthand": { - "rotation": [ 0, 90, 0 ], - "translation": [ 0, -2, 4 ], - "scale": [ 1, 1, 1 ] - }, - "firstperson_righthand": { - "rotation": [ 0, 180, 5 ], - "translation": [ 2, -10, 2 ], - "scale": [ 1.25, 1.25, 1.25 ] - }, - "firstperson_lefthand": { - "rotation": [ 0, 180, 5 ], - "translation": [ 2, -10, 2 ], - "scale": [ 1.25, 1.25, 1.25 ] - }, - "gui": { - "rotation": [ 15, -25, -5 ], - "translation": [ 0, 0, 0 ], - "scale": [ 0.65, 0.65, 0.65 ] - }, - "fixed": { - "rotation": [ 0, 180, 0 ], - "translation": [ -2, 4, -5 ], - "scale": [ 0.5, 0.5, 0.5 ] - }, - "ground": { - "rotation": [ 0, 0, 0 ], - "translation": [ 0, 0, 2 ], - "scale": [ 0.25, 0.25, 0.25 ] - } - }, - "overrides": [ - { - "predicate": { - "blocking": 1 - }, - "model": "aether:item/arkenium_shield_blocking" - } - ] -} diff --git a/src/main/resources/assets/aether/models/item/arkenium_shield_base.json b/src/main/resources/assets/aether/models/item/arkenium_shield_base.json deleted file mode 100644 index ea40885430..0000000000 --- a/src/main/resources/assets/aether/models/item/arkenium_shield_base.json +++ /dev/null @@ -1,159 +0,0 @@ -{ - "textures": { - "0": "aether:items/shields/arkenium_shield/arkenium_handle", - "1": "aether:items/shields/arkenium_shield/arkenium_base1_n_d", - "2": "aether:items/shields/arkenium_shield/arkenium_base1_w_e", - "3": "aether:items/shields/arkenium_shield/arkenium_base1_s_u", - "4": "aether:items/shields/arkenium_shield/arkenium_base2b", - "5": "aether:items/shields/arkenium_shield/arkenium_base2a", - "6": "aether:items/shields/arkenium_shield/arkenium_center_mid", - "7": "aether:items/shields/arkenium_shield/arkenium_wing_right1", - "8": "aether:items/shields/arkenium_shield/arkenium_wing_right_left2", - "9": "aether:items/shields/arkenium_shield/arkenium_wing_left1" - }, - "elements": [ - { - "name": "Handle", - "from": [ 7, 5, 5 ], - "to": [ 9, 11, 11 ], - "faces": { - "north": { "texture": "#0", "uv": [ 6, 6, 8, 12 ] }, - "east": { "texture": "#0", "uv": [ 0, 6, 6, 12 ] }, - "south": { "texture": "#0", "uv": [ 6, 6, -3, 12 ] }, - "west": { "texture": "#0", "uv": [ 0, 6, 6, 12 ] }, - "up": { "texture": "#0", "uv": [ 6, 6, 8, 12 ] }, - "down": { "texture": "#0", "uv": [ 6, 6, 8, 12 ] } - } - }, - { - "name": "Base1", - "from": [ 0, 3, 11 ], - "to": [ 16, 15, 12 ], - "faces": { - "north": { "texture": "#1", "uv": [ 0, 1, 16, 13 ] }, - "east": { "texture": "#2", "uv": [ 3, 0, 4, 12 ] }, - "south": { "texture": "#3", "uv": [ 0, 1, 16, 13 ] }, - "west": { "texture": "#2", "uv": [ 0, 0, 1, 12 ] }, - "up": { "texture": "#3", "uv": [ 0, 0, 16, 1 ] }, - "down": { "texture": "#1", "uv": [ 0, 0, 16, 1 ] } - } - }, - { - "name": "Base2", - "from": [ 2, -2, 11 ], - "to": [ 14, 3, 12 ], - "faces": { - "north": { "texture": "#4", "uv": [ 4, 1, 16, 6 ] }, - "east": { "texture": "#4", "uv": [ 3, 1, 4, 6 ] }, - "south": { "texture": "#5", "uv": [ 1, 1, 13, 6 ] }, - "west": { "texture": "#5", "uv": [ 0, 1, 1, 6 ] }, - "up": { "texture": "#5", "uv": [ 1, 0, 13, 1 ] }, - "down": { "texture": "#4", "uv": [ 3, 0, 15, 1 ] } - } - }, - { - "name": "Base3", - "from": [ 5, -4, 11 ], - "to": [ 11, -2, 12 ], - "faces": { - "north": { "texture": "#4", "uv": [ 4, 7, 10, 9 ] }, - "east": { "texture": "#4", "uv": [ 3, 7, 4, 9 ] }, - "south": { "texture": "#5", "uv": [ 7, 7, 13, 9 ] }, - "west": { "texture": "#5", "uv": [ 6, 7, 7, 9 ] }, - "up": { "texture": "#5", "uv": [ 7, 6, 13, 7 ] }, - "down": { "texture": "#4", "uv": [ 3, 6, 9, 7 ] } - } - }, - { - "name": "CenterMid", - "from": [ 6, 11, 12 ], - "to": [ 10, 15, 13 ], - "faces": { - "north": { "texture": "#6", "uv": [ 6, 1, 10, 5 ] }, - "east": { "texture": "#6", "uv": [ 5, 1, 6, 5 ] }, - "south": { "texture": "#6", "uv": [ 1, 1, 5, 5 ] }, - "west": { "texture": "#6", "uv": [ 0, 1, 1, 5 ] }, - "up": { "texture": "#6", "uv": [ 1, 0, 5, 1 ] }, - "down": { "texture": "#6", "uv": [ 5, 0, 9, 1 ] } - } - }, - { - "name": "WingRight1", - "from": [ 3, 9, 11.5 ], - "to": [ 6, 19, 12.5 ], - "faces": { - "north": { "texture": "#7", "uv": [ 5, 1, 8, 11 ] }, - "east": { "texture": "#7", "uv": [ 4, 1, 5, 11 ] }, - "south": { "texture": "#7", "uv": [ 1, 1, 4, 11 ] }, - "west": { "texture": "#7", "uv": [ 0, 1, 1, 11 ] }, - "up": { "texture": "#7", "uv": [ 1, 0, 4, 1 ] }, - "down": { "texture": "#7", "uv": [ 4, 0, 7, 1 ] } - } - }, - { - "name": "Wing Right2", - "from": [ 1, 7, 11.5 ], - "to": [ 3, 17, 12.5 ], - "faces": { - "north": { "texture": "#7", "uv": [ 12, 1, 14, 11 ] }, - "east": { "texture": "#7", "uv": [ 11, 1, 12, 11 ] }, - "south": { "texture": "#7", "uv": [ 9, 0, 11, 10 ] }, - "west": { "texture": "#7", "uv": [ 8, 1, 9, 11 ] }, - "up": { "texture": "#7", "uv": [ 9, 0, 11, 1 ] }, - "down": { "texture": "#7", "uv": [ 11, 0, 13, 1 ] } - } - }, - { - "name": "WingRight3", - "from": [ -1, 5, 11.5 ], - "to": [ 1, 15, 12.5 ], - "faces": { - "north": { "texture": "#8", "uv": [ 4, 1, 6, 11 ] }, - "east": { "texture": "#8", "uv": [ 3, 1, 4, 11 ] }, - "south": { "texture": "#8", "uv": [ 1, 1, 3, 11 ] }, - "west": { "texture": "#8", "uv": [ 0, 1, 1, 11 ] }, - "up": { "texture": "#8", "uv": [ 1, 0, 3, 1 ] }, - "down": { "texture": "#8", "uv": [ 3, 0, 5, 1 ] } - } - }, - { - "name": "WingLeft1", - "from": [ 10, 9, 11.5 ], - "to": [ 13, 19, 12.5 ], - "faces": { - "north": { "texture": "#9", "uv": [ 13, 1, 16, 11 ] }, - "east": { "texture": "#9", "uv": [ 12, 1, 13, 11 ] }, - "south": { "texture": "#9", "uv": [ 9, 1, 12, 11 ] }, - "west": { "texture": "#9", "uv": [ 8, 1, 9, 11 ] }, - "up": { "texture": "#9", "uv": [ 9, 0, 12, 1 ] }, - "down": { "texture": "#9", "uv": [ 12, 0, 15, 1 ] } - } - }, - { - "name": "WingLeft2", - "from": [ 13, 7, 11.5 ], - "to": [ 15, 17, 12.5 ], - "faces": { - "north": { "texture": "#9", "uv": [ 6, 1, 8, 11 ] }, - "east": { "texture": "#9", "uv": [ 5, 1, 6, 11 ] }, - "south": { "texture": "#9", "uv": [ 3, 1, 5, 11 ] }, - "west": { "texture": "#9", "uv": [ 2, 1, 3, 11 ] }, - "up": { "texture": "#9", "uv": [ 3, 0, 5, 1 ] }, - "down": { "texture": "#9", "uv": [ 5, 0, 7, 1 ] } - } - }, - { - "name": "WingLeft3", - "from": [ 15, 5, 11.5 ], - "to": [ 17, 15, 12.5 ], - "faces": { - "north": { "texture": "#8", "uv": [ 14, 1, 16, 11 ] }, - "east": { "texture": "#8", "uv": [ 13, 1, 14, 11 ] }, - "south": { "texture": "#8", "uv": [ 11, 1, 13, 11 ] }, - "west": { "texture": "#8", "uv": [ 10, 1, 11, 11 ] }, - "up": { "texture": "#8", "uv": [ 11, 0, 13, 1 ] }, - "down": { "texture": "#8", "uv": [ 13, 0, 15, 1 ] } - } - } - ] -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/arkenium_shield_blocking.json b/src/main/resources/assets/aether/models/item/arkenium_shield_blocking.json deleted file mode 100644 index 3a9beff887..0000000000 --- a/src/main/resources/assets/aether/models/item/arkenium_shield_blocking.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "parent": "aether:item/arkenium_shield_base", - "display": { - "thirdperson_righthand": { - "rotation": [ 45, 135, 0 ], - "translation": [ 2, -4, 3 ], - "scale": [ 1, 1, 1 ] - }, - "thirdperson_lefthand": { - "rotation": [ 45, 135, 0 ], - "translation": [ 2, -4, 3 ], - "scale": [ 1, 1, 1 ] - }, - "firstperson_righthand": { - "rotation": [ 0, 180, -5 ], - "translation": [ -3, -5, 1 ], - "scale": [ 1.25, 1.25, 1.25 ] - }, - "firstperson_lefthand": { - "rotation": [ 0, 180, -5 ], - "translation": [ -3, -5, 1 ], - "scale": [ 1.25, 1.25, 1.25 ] - }, - "gui": { - "rotation": [ 15, -25, -5 ], - "translation": [ 0, 0, 0 ], - "scale": [ 0.65, 0.65, 0.65 ] - } - } -} diff --git a/src/main/resources/assets/aether/models/item/arkenium_strip.json b/src/main/resources/assets/aether/models/item/arkenium_strip.json deleted file mode 100644 index e8f312a267..0000000000 --- a/src/main/resources/assets/aether/models/item/arkenium_strip.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "aether:items/materials/arkenium_strip" - } -} diff --git a/src/main/resources/assets/aether/models/item/armor/arkenium_boots.json b/src/main/resources/assets/aether/models/item/armor/arkenium_boots.json deleted file mode 100644 index 1e107c364c..0000000000 --- a/src/main/resources/assets/aether/models/item/armor/arkenium_boots.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "aether:items/armor/arkenium_boots" - } -} diff --git a/src/main/resources/assets/aether/models/item/armor/arkenium_chestplate.json b/src/main/resources/assets/aether/models/item/armor/arkenium_chestplate.json deleted file mode 100644 index 6f0ae2ce93..0000000000 --- a/src/main/resources/assets/aether/models/item/armor/arkenium_chestplate.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "aether:items/armor/arkenium_chestplate" - } -} diff --git a/src/main/resources/assets/aether/models/item/armor/arkenium_helmet.json b/src/main/resources/assets/aether/models/item/armor/arkenium_helmet.json deleted file mode 100644 index a9b23bc0c8..0000000000 --- a/src/main/resources/assets/aether/models/item/armor/arkenium_helmet.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "aether:items/armor/arkenium_helmet" - } -} diff --git a/src/main/resources/assets/aether/models/item/armor/arkenium_leggings.json b/src/main/resources/assets/aether/models/item/armor/arkenium_leggings.json deleted file mode 100644 index 6d582f5b70..0000000000 --- a/src/main/resources/assets/aether/models/item/armor/arkenium_leggings.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "aether:items/armor/arkenium_leggings" - } -} diff --git a/src/main/resources/assets/aether/models/item/armor/burrukai_pelt_boots.json b/src/main/resources/assets/aether/models/item/armor/burrukai_pelt_boots.json deleted file mode 100644 index 44954237b8..0000000000 --- a/src/main/resources/assets/aether/models/item/armor/burrukai_pelt_boots.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "aether:items/armor/burrukai_pelt_boots" - } -} diff --git a/src/main/resources/assets/aether/models/item/armor/burrukai_pelt_chestplate.json b/src/main/resources/assets/aether/models/item/armor/burrukai_pelt_chestplate.json deleted file mode 100644 index 3cb10a5b3a..0000000000 --- a/src/main/resources/assets/aether/models/item/armor/burrukai_pelt_chestplate.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "aether:items/armor/burrukai_pelt_chestplate" - } -} diff --git a/src/main/resources/assets/aether/models/item/armor/burrukai_pelt_helmet.json b/src/main/resources/assets/aether/models/item/armor/burrukai_pelt_helmet.json deleted file mode 100644 index d3c32fb9ea..0000000000 --- a/src/main/resources/assets/aether/models/item/armor/burrukai_pelt_helmet.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "aether:items/armor/burrukai_pelt_helmet" - } -} diff --git a/src/main/resources/assets/aether/models/item/armor/burrukai_pelt_leggings.json b/src/main/resources/assets/aether/models/item/armor/burrukai_pelt_leggings.json deleted file mode 100644 index 50db458bfa..0000000000 --- a/src/main/resources/assets/aether/models/item/armor/burrukai_pelt_leggings.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "aether:items/armor/burrukai_pelt_leggings" - } -} diff --git a/src/main/resources/assets/aether/models/item/armor/gravitite_boots.json b/src/main/resources/assets/aether/models/item/armor/gravitite_boots.json deleted file mode 100644 index 9153252272..0000000000 --- a/src/main/resources/assets/aether/models/item/armor/gravitite_boots.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "aether:items/armor/gravitite_boots" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/armor/gravitite_chestplate.json b/src/main/resources/assets/aether/models/item/armor/gravitite_chestplate.json deleted file mode 100644 index be1d0636f3..0000000000 --- a/src/main/resources/assets/aether/models/item/armor/gravitite_chestplate.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "aether:items/armor/gravitite_chestplate" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/armor/gravitite_helmet.json b/src/main/resources/assets/aether/models/item/armor/gravitite_helmet.json deleted file mode 100644 index 703a609a83..0000000000 --- a/src/main/resources/assets/aether/models/item/armor/gravitite_helmet.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "aether:items/armor/gravitite_helmet" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/armor/gravitite_leggings.json b/src/main/resources/assets/aether/models/item/armor/gravitite_leggings.json deleted file mode 100644 index e9ce2f6002..0000000000 --- a/src/main/resources/assets/aether/models/item/armor/gravitite_leggings.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "aether:items/armor/gravitite_leggings" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/armor/taegore_hide_boots.json b/src/main/resources/assets/aether/models/item/armor/taegore_hide_boots.json deleted file mode 100644 index 67706fa0b7..0000000000 --- a/src/main/resources/assets/aether/models/item/armor/taegore_hide_boots.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "aether:items/armor/taegore_hide_boots" - } -} diff --git a/src/main/resources/assets/aether/models/item/armor/taegore_hide_chestplate.json b/src/main/resources/assets/aether/models/item/armor/taegore_hide_chestplate.json deleted file mode 100644 index 053cf77a19..0000000000 --- a/src/main/resources/assets/aether/models/item/armor/taegore_hide_chestplate.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "aether:items/armor/taegore_hide_chestplate" - } -} diff --git a/src/main/resources/assets/aether/models/item/armor/taegore_hide_helmet.json b/src/main/resources/assets/aether/models/item/armor/taegore_hide_helmet.json deleted file mode 100644 index 9f6d95c7ed..0000000000 --- a/src/main/resources/assets/aether/models/item/armor/taegore_hide_helmet.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "aether:items/armor/taegore_hide_helmet" - } -} diff --git a/src/main/resources/assets/aether/models/item/armor/taegore_hide_leggings.json b/src/main/resources/assets/aether/models/item/armor/taegore_hide_leggings.json deleted file mode 100644 index 8d6cc1902b..0000000000 --- a/src/main/resources/assets/aether/models/item/armor/taegore_hide_leggings.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "aether:items/armor/taegore_hide_leggings" - } -} diff --git a/src/main/resources/assets/aether/models/item/armor/winter_hat.json b/src/main/resources/assets/aether/models/item/armor/winter_hat.json deleted file mode 100644 index a00e0d586d..0000000000 --- a/src/main/resources/assets/aether/models/item/armor/winter_hat.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "aether:items/armor/winter_hat" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/armor/zanite_boots.json b/src/main/resources/assets/aether/models/item/armor/zanite_boots.json deleted file mode 100644 index bfb1bff970..0000000000 --- a/src/main/resources/assets/aether/models/item/armor/zanite_boots.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "aether:items/armor/zanite_boots" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/armor/zanite_chestplate.json b/src/main/resources/assets/aether/models/item/armor/zanite_chestplate.json deleted file mode 100644 index c5f0c6cefa..0000000000 --- a/src/main/resources/assets/aether/models/item/armor/zanite_chestplate.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "aether:items/armor/zanite_chestplate" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/armor/zanite_helmet.json b/src/main/resources/assets/aether/models/item/armor/zanite_helmet.json deleted file mode 100644 index fa4eea236d..0000000000 --- a/src/main/resources/assets/aether/models/item/armor/zanite_helmet.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "aether:items/armor/zanite_helmet" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/armor/zanite_leggings.json b/src/main/resources/assets/aether/models/item/armor/zanite_leggings.json deleted file mode 100644 index a9eac0e267..0000000000 --- a/src/main/resources/assets/aether/models/item/armor/zanite_leggings.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "aether:items/armor/zanite_leggings" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/bandage.json b/src/main/resources/assets/aether/models/item/bandage.json deleted file mode 100644 index be09ddaad6..0000000000 --- a/src/main/resources/assets/aether/models/item/bandage.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "aether:items/consumables/bandage" - } -} diff --git a/src/main/resources/assets/aether/models/item/blueberries.json b/src/main/resources/assets/aether/models/item/blueberries.json deleted file mode 100644 index a6d2f10cb4..0000000000 --- a/src/main/resources/assets/aether/models/item/blueberries.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "aether:items/consumables/blueberries" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/blueberry_lollipop.json b/src/main/resources/assets/aether/models/item/blueberry_lollipop.json deleted file mode 100644 index 2b62bf66a8..0000000000 --- a/src/main/resources/assets/aether/models/item/blueberry_lollipop.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "aether:items/consumables/blueberry_lollipop" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/bolts/scatterglass_bolt.json b/src/main/resources/assets/aether/models/item/bolts/scatterglass_bolt.json deleted file mode 100644 index a46ff6ce1b..0000000000 --- a/src/main/resources/assets/aether/models/item/bolts/scatterglass_bolt.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "aether:items/weapons/crossbow/bolts/scatterglass_bolt" - }, - "display": { - "thirdperson_righthand": { - "rotation": [ -190, 0, 55 ], - "translation": [ 0, 2, 0 ], - "scale": [ 0.4, 0.4, 0.4 ] - }, - "thirdperson_lefthand": { - "rotation": [ -190, 0, -40 ], - "translation": [ 0, 2, 0 ], - "scale": [ 0.4, 0.4, 0.4 ] - }, - "firstperson_righthand": { - "rotation": [ -230, -125, 45 ], - "translation": [ 0, 2, 4 ], - "scale": [ 0.5, 0.5, 0.5 ] - }, - "firstperson_lefthand": { - "rotation": [ -230, 45, -45 ], - "translation": [ 0, 2, 4 ], - "scale": [ 0.5, 0.5, 0.5 ] - } - } -} diff --git a/src/main/resources/assets/aether/models/item/brettl_plant/brettl_cane.json b/src/main/resources/assets/aether/models/item/brettl_plant/brettl_cane.json deleted file mode 100644 index 3de79e138f..0000000000 --- a/src/main/resources/assets/aether/models/item/brettl_plant/brettl_cane.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "aether:items/materials/brettl_cane" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/brettl_plant/brettl_grass.json b/src/main/resources/assets/aether/models/item/brettl_plant/brettl_grass.json deleted file mode 100644 index 0a59315126..0000000000 --- a/src/main/resources/assets/aether/models/item/brettl_plant/brettl_grass.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "aether:items/materials/brettl_grass" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/brettl_plant/brettl_plant.json b/src/main/resources/assets/aether/models/item/brettl_plant/brettl_plant.json deleted file mode 100644 index 198b3b325e..0000000000 --- a/src/main/resources/assets/aether/models/item/brettl_plant/brettl_plant.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "aether:blocks/brettl_plant/brettl_plant_top_g" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/brettl_rope.json b/src/main/resources/assets/aether/models/item/brettl_rope.json deleted file mode 100644 index a23d79e1ed..0000000000 --- a/src/main/resources/assets/aether/models/item/brettl_rope.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "aether:items/materials/brettl_rope" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/burrukai_pelt.json b/src/main/resources/assets/aether/models/item/burrukai_pelt.json deleted file mode 100644 index fd5b1ca99b..0000000000 --- a/src/main/resources/assets/aether/models/item/burrukai_pelt.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "aether:items/materials/burrukai_pelt" - } -} diff --git a/src/main/resources/assets/aether/models/item/burrukai_rib_cut.json b/src/main/resources/assets/aether/models/item/burrukai_rib_cut.json deleted file mode 100644 index c402936d5f..0000000000 --- a/src/main/resources/assets/aether/models/item/burrukai_rib_cut.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "aether:items/consumables/burrukai_rib_cut" - } -} diff --git a/src/main/resources/assets/aether/models/item/burrukai_ribs.json b/src/main/resources/assets/aether/models/item/burrukai_ribs.json deleted file mode 100644 index 5966557731..0000000000 --- a/src/main/resources/assets/aether/models/item/burrukai_ribs.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "aether:items/consumables/burrukai_ribs" - } -} diff --git a/src/main/resources/assets/aether/models/item/bushes/blueberry_bush_ripe.json b/src/main/resources/assets/aether/models/item/bushes/blueberry_bush_ripe.json deleted file mode 100644 index 57fcb68de7..0000000000 --- a/src/main/resources/assets/aether/models/item/bushes/blueberry_bush_ripe.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "aether:block/bushes/blueberry_bush_ripe" -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/bushes/blueberry_bush_stem.json b/src/main/resources/assets/aether/models/item/bushes/blueberry_bush_stem.json deleted file mode 100644 index 2aacad60a7..0000000000 --- a/src/main/resources/assets/aether/models/item/bushes/blueberry_bush_stem.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "aether:blocks/bushes/blueberry_bush_stem" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/bushes/highlands_bush.json b/src/main/resources/assets/aether/models/item/bushes/highlands_bush.json deleted file mode 100644 index 37402dbe9f..0000000000 --- a/src/main/resources/assets/aether/models/item/bushes/highlands_bush.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "aether:block/bushes/highlands_bush" -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/candy_cane.json b/src/main/resources/assets/aether/models/item/candy_cane.json deleted file mode 100644 index d381a1d6f3..0000000000 --- a/src/main/resources/assets/aether/models/item/candy_cane.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "aether:items/consumables/candy_cane" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/candy_cane_block.json b/src/main/resources/assets/aether/models/item/candy_cane_block.json deleted file mode 100644 index 220f1fe687..0000000000 --- a/src/main/resources/assets/aether/models/item/candy_cane_block.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "aether:block/candy_cane_block" -} diff --git a/src/main/resources/assets/aether/models/item/candy_corn.json b/src/main/resources/assets/aether/models/item/candy_corn.json deleted file mode 100644 index e4f9b33045..0000000000 --- a/src/main/resources/assets/aether/models/item/candy_corn.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "aether:items/consumables/candy_corn" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/charms/charm_arm_01.json b/src/main/resources/assets/aether/models/item/charms/charm_arm_01.json deleted file mode 100644 index 0903dc4421..0000000000 --- a/src/main/resources/assets/aether/models/item/charms/charm_arm_01.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "aether:items/charms/charm_arm_01" - } -} diff --git a/src/main/resources/assets/aether/models/item/charms/charm_arm_02.json b/src/main/resources/assets/aether/models/item/charms/charm_arm_02.json deleted file mode 100644 index f62eb2a530..0000000000 --- a/src/main/resources/assets/aether/models/item/charms/charm_arm_02.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "aether:items/charms/charm_arm_02" - } -} diff --git a/src/main/resources/assets/aether/models/item/charms/charm_arm_03.json b/src/main/resources/assets/aether/models/item/charms/charm_arm_03.json deleted file mode 100644 index 5896befb32..0000000000 --- a/src/main/resources/assets/aether/models/item/charms/charm_arm_03.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "aether:items/charms/charm_arm_03" - } -} diff --git a/src/main/resources/assets/aether/models/item/charms/charm_arm_tgh_01.json b/src/main/resources/assets/aether/models/item/charms/charm_arm_tgh_01.json deleted file mode 100644 index d7616dcd4f..0000000000 --- a/src/main/resources/assets/aether/models/item/charms/charm_arm_tgh_01.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "aether:items/charms/charm_arm_tgh_01" - } -} diff --git a/src/main/resources/assets/aether/models/item/charms/charm_arm_tgh_02.json b/src/main/resources/assets/aether/models/item/charms/charm_arm_tgh_02.json deleted file mode 100644 index f40a411396..0000000000 --- a/src/main/resources/assets/aether/models/item/charms/charm_arm_tgh_02.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "aether:items/charms/charm_arm_tgh_02" - } -} diff --git a/src/main/resources/assets/aether/models/item/charms/charm_arm_tgh_03.json b/src/main/resources/assets/aether/models/item/charms/charm_arm_tgh_03.json deleted file mode 100644 index b591a3859e..0000000000 --- a/src/main/resources/assets/aether/models/item/charms/charm_arm_tgh_03.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "aether:items/charms/charm_arm_tgh_03" - } -} diff --git a/src/main/resources/assets/aether/models/item/charms/charm_atk_dmg_01.json b/src/main/resources/assets/aether/models/item/charms/charm_atk_dmg_01.json deleted file mode 100644 index 15428b1367..0000000000 --- a/src/main/resources/assets/aether/models/item/charms/charm_atk_dmg_01.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "aether:items/charms/charm_atk_dmg_01" - } -} diff --git a/src/main/resources/assets/aether/models/item/charms/charm_atk_dmg_02.json b/src/main/resources/assets/aether/models/item/charms/charm_atk_dmg_02.json deleted file mode 100644 index a8fc728a68..0000000000 --- a/src/main/resources/assets/aether/models/item/charms/charm_atk_dmg_02.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "aether:items/charms/charm_atk_dmg_02" - } -} diff --git a/src/main/resources/assets/aether/models/item/charms/charm_atk_dmg_03.json b/src/main/resources/assets/aether/models/item/charms/charm_atk_dmg_03.json deleted file mode 100644 index 35a06a63b3..0000000000 --- a/src/main/resources/assets/aether/models/item/charms/charm_atk_dmg_03.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "aether:items/charms/charm_atk_dmg_03" - } -} diff --git a/src/main/resources/assets/aether/models/item/charms/charm_atk_spd_01.json b/src/main/resources/assets/aether/models/item/charms/charm_atk_spd_01.json deleted file mode 100644 index 295faac37e..0000000000 --- a/src/main/resources/assets/aether/models/item/charms/charm_atk_spd_01.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "aether:items/charms/charm_atk_spd_01" - } -} diff --git a/src/main/resources/assets/aether/models/item/charms/charm_atk_spd_02.json b/src/main/resources/assets/aether/models/item/charms/charm_atk_spd_02.json deleted file mode 100644 index 201e4ad551..0000000000 --- a/src/main/resources/assets/aether/models/item/charms/charm_atk_spd_02.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "aether:items/charms/charm_atk_spd_02" - } -} diff --git a/src/main/resources/assets/aether/models/item/charms/charm_atk_spd_03.json b/src/main/resources/assets/aether/models/item/charms/charm_atk_spd_03.json deleted file mode 100644 index 1624e17681..0000000000 --- a/src/main/resources/assets/aether/models/item/charms/charm_atk_spd_03.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "aether:items/charms/charm_atk_spd_03" - } -} diff --git a/src/main/resources/assets/aether/models/item/charms/charm_kbk_res_01.json b/src/main/resources/assets/aether/models/item/charms/charm_kbk_res_01.json deleted file mode 100644 index 5ca803a6fe..0000000000 --- a/src/main/resources/assets/aether/models/item/charms/charm_kbk_res_01.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "aether:items/charms/charm_kbk_res_01" - } -} diff --git a/src/main/resources/assets/aether/models/item/charms/charm_kbk_res_02.json b/src/main/resources/assets/aether/models/item/charms/charm_kbk_res_02.json deleted file mode 100644 index 8c25bd9030..0000000000 --- a/src/main/resources/assets/aether/models/item/charms/charm_kbk_res_02.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "aether:items/charms/charm_kbk_res_02" - } -} diff --git a/src/main/resources/assets/aether/models/item/charms/charm_kbk_res_03.json b/src/main/resources/assets/aether/models/item/charms/charm_kbk_res_03.json deleted file mode 100644 index e78289b230..0000000000 --- a/src/main/resources/assets/aether/models/item/charms/charm_kbk_res_03.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "aether:items/charms/charm_kbk_res_03" - } -} diff --git a/src/main/resources/assets/aether/models/item/charms/charm_lck_01.json b/src/main/resources/assets/aether/models/item/charms/charm_lck_01.json deleted file mode 100644 index b04e82354a..0000000000 --- a/src/main/resources/assets/aether/models/item/charms/charm_lck_01.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "aether:items/charms/charm_lck_01" - } -} diff --git a/src/main/resources/assets/aether/models/item/charms/charm_lck_02.json b/src/main/resources/assets/aether/models/item/charms/charm_lck_02.json deleted file mode 100644 index cf6e41b4f5..0000000000 --- a/src/main/resources/assets/aether/models/item/charms/charm_lck_02.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "aether:items/charms/charm_lck_02" - } -} diff --git a/src/main/resources/assets/aether/models/item/charms/charm_lck_03.json b/src/main/resources/assets/aether/models/item/charms/charm_lck_03.json deleted file mode 100644 index 69d3063996..0000000000 --- a/src/main/resources/assets/aether/models/item/charms/charm_lck_03.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "aether:items/charms/charm_lck_03" - } -} diff --git a/src/main/resources/assets/aether/models/item/charms/charm_max_hlt_01.json b/src/main/resources/assets/aether/models/item/charms/charm_max_hlt_01.json deleted file mode 100644 index 91798a2347..0000000000 --- a/src/main/resources/assets/aether/models/item/charms/charm_max_hlt_01.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "aether:items/charms/charm_max_hlt_01" - } -} diff --git a/src/main/resources/assets/aether/models/item/charms/charm_max_hlt_02.json b/src/main/resources/assets/aether/models/item/charms/charm_max_hlt_02.json deleted file mode 100644 index 27bf3cbc79..0000000000 --- a/src/main/resources/assets/aether/models/item/charms/charm_max_hlt_02.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "aether:items/charms/charm_max_hlt_02" - } -} diff --git a/src/main/resources/assets/aether/models/item/charms/charm_max_hlt_03.json b/src/main/resources/assets/aether/models/item/charms/charm_max_hlt_03.json deleted file mode 100644 index a8a7cdc8d7..0000000000 --- a/src/main/resources/assets/aether/models/item/charms/charm_max_hlt_03.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "aether:items/charms/charm_max_hlt_03" - } -} diff --git a/src/main/resources/assets/aether/models/item/charms/charm_mve_spd_01.json b/src/main/resources/assets/aether/models/item/charms/charm_mve_spd_01.json deleted file mode 100644 index d673389f72..0000000000 --- a/src/main/resources/assets/aether/models/item/charms/charm_mve_spd_01.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "aether:items/charms/charm_mve_spd_01" - } -} diff --git a/src/main/resources/assets/aether/models/item/charms/charm_mve_spd_02.json b/src/main/resources/assets/aether/models/item/charms/charm_mve_spd_02.json deleted file mode 100644 index 45d9840fd6..0000000000 --- a/src/main/resources/assets/aether/models/item/charms/charm_mve_spd_02.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "aether:items/charms/charm_mve_spd_02" - } -} diff --git a/src/main/resources/assets/aether/models/item/charms/charm_mve_spd_03.json b/src/main/resources/assets/aether/models/item/charms/charm_mve_spd_03.json deleted file mode 100644 index 5c4e6d0d05..0000000000 --- a/src/main/resources/assets/aether/models/item/charms/charm_mve_spd_03.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "aether:items/charms/charm_mve_spd_03" - } -} diff --git a/src/main/resources/assets/aether/models/item/cloud_parachute/blue_cloud_parachute.json b/src/main/resources/assets/aether/models/item/cloud_parachute/blue_cloud_parachute.json deleted file mode 100644 index 37a0736655..0000000000 --- a/src/main/resources/assets/aether/models/item/cloud_parachute/blue_cloud_parachute.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "aether:items/consumables/blue_cloud_parachute" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/cloud_parachute/cold_cloud_parachute.json b/src/main/resources/assets/aether/models/item/cloud_parachute/cold_cloud_parachute.json deleted file mode 100644 index 64bbbd1d33..0000000000 --- a/src/main/resources/assets/aether/models/item/cloud_parachute/cold_cloud_parachute.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "aether:items/consumables/cold_cloud_parachute" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/cloud_parachute/purple_cloud_parachute.json b/src/main/resources/assets/aether/models/item/cloud_parachute/purple_cloud_parachute.json deleted file mode 100644 index 6e66a66cd2..0000000000 --- a/src/main/resources/assets/aether/models/item/cloud_parachute/purple_cloud_parachute.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "aether:items/consumables/purple_cloud_parachute" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/cloudtwine.json b/src/main/resources/assets/aether/models/item/cloudtwine.json deleted file mode 100644 index ee87bfb49d..0000000000 --- a/src/main/resources/assets/aether/models/item/cloudtwine.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "aether:items/materials/cloudtwine" - } -} diff --git a/src/main/resources/assets/aether/models/item/cloudwool_block.json b/src/main/resources/assets/aether/models/item/cloudwool_block.json deleted file mode 100644 index 9bb48d3c92..0000000000 --- a/src/main/resources/assets/aether/models/item/cloudwool_block.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "aether:block/cloudwool_block" -} diff --git a/src/main/resources/assets/aether/models/item/cloudwool_carpet.json b/src/main/resources/assets/aether/models/item/cloudwool_carpet.json deleted file mode 100644 index c9ceba51a1..0000000000 --- a/src/main/resources/assets/aether/models/item/cloudwool_carpet.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "aether:block/cloudwool_carpet" -} diff --git a/src/main/resources/assets/aether/models/item/cockatrice_feather.json b/src/main/resources/assets/aether/models/item/cockatrice_feather.json deleted file mode 100644 index defbd21608..0000000000 --- a/src/main/resources/assets/aether/models/item/cockatrice_feather.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "aether:items/materials/cockatrice_feather" - } -} diff --git a/src/main/resources/assets/aether/models/item/cockatrice_heart.json b/src/main/resources/assets/aether/models/item/cockatrice_heart.json deleted file mode 100644 index f72c8b7ca3..0000000000 --- a/src/main/resources/assets/aether/models/item/cockatrice_heart.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "aether:items/charms/cockatrice_heart" - } -} diff --git a/src/main/resources/assets/aether/models/item/cockatrice_keratin.json b/src/main/resources/assets/aether/models/item/cockatrice_keratin.json deleted file mode 100644 index a036a75bba..0000000000 --- a/src/main/resources/assets/aether/models/item/cockatrice_keratin.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "aether:items/charms/cockatrice_keratin" - } -} diff --git a/src/main/resources/assets/aether/models/item/cocoatrice.json b/src/main/resources/assets/aether/models/item/cocoatrice.json deleted file mode 100644 index 97fc6f6a92..0000000000 --- a/src/main/resources/assets/aether/models/item/cocoatrice.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "aether:items/consumables/cocoatrice" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/companions/death_seal.json b/src/main/resources/assets/aether/models/item/companions/death_seal.json deleted file mode 100644 index 902755fa04..0000000000 --- a/src/main/resources/assets/aether/models/item/companions/death_seal.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "aether:items/companions/death_seal" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/companions/death_seal_broken.json b/src/main/resources/assets/aether/models/item/companions/death_seal_broken.json deleted file mode 100644 index 83e456b32c..0000000000 --- a/src/main/resources/assets/aether/models/item/companions/death_seal_broken.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "aether:items/companions/death_seal_broken" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/companions/ethereal_stone.json b/src/main/resources/assets/aether/models/item/companions/ethereal_stone.json deleted file mode 100644 index d56ee1dcc9..0000000000 --- a/src/main/resources/assets/aether/models/item/companions/ethereal_stone.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "aether:items/companions/ethereal_stone" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/companions/fangrin_capsule.json b/src/main/resources/assets/aether/models/item/companions/fangrin_capsule.json deleted file mode 100644 index aa7f4ae439..0000000000 --- a/src/main/resources/assets/aether/models/item/companions/fangrin_capsule.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "aether:items/companions/fangrin_capsule" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/companions/fleeting_stone.json b/src/main/resources/assets/aether/models/item/companions/fleeting_stone.json deleted file mode 100644 index 2d2f2a1e01..0000000000 --- a/src/main/resources/assets/aether/models/item/companions/fleeting_stone.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "aether:items/companions/fleeting_stone" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/companions/frostpine_totem.json b/src/main/resources/assets/aether/models/item/companions/frostpine_totem.json deleted file mode 100644 index 0d8d9fb3b2..0000000000 --- a/src/main/resources/assets/aether/models/item/companions/frostpine_totem.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "aether:items/companions/frostpine_totem" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/companions/kraisith_capsule.json b/src/main/resources/assets/aether/models/item/companions/kraisith_capsule.json deleted file mode 100644 index c9556c7c79..0000000000 --- a/src/main/resources/assets/aether/models/item/companions/kraisith_capsule.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "aether:items/companions/kraisith_capsule" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/companions/orb_of_arkenzus.json b/src/main/resources/assets/aether/models/item/companions/orb_of_arkenzus.json deleted file mode 100644 index 57a8af6795..0000000000 --- a/src/main/resources/assets/aether/models/item/companions/orb_of_arkenzus.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "aether:items/companions/orb_of_arkenzus" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/companions/pink_baby_swet.json b/src/main/resources/assets/aether/models/item/companions/pink_baby_swet.json deleted file mode 100644 index b6f337d784..0000000000 --- a/src/main/resources/assets/aether/models/item/companions/pink_baby_swet.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "aether:items/companions/pink_baby_swet" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/companions/soaring_stone.json b/src/main/resources/assets/aether/models/item/companions/soaring_stone.json deleted file mode 100644 index 9bd7e34940..0000000000 --- a/src/main/resources/assets/aether/models/item/companions/soaring_stone.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "aether:items/companions/soaring_stone" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/crafting_tables/skyroot_crafting_table.json b/src/main/resources/assets/aether/models/item/crafting_tables/skyroot_crafting_table.json deleted file mode 100644 index b48c520243..0000000000 --- a/src/main/resources/assets/aether/models/item/crafting_tables/skyroot_crafting_table.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "aether:block/crafting_tables/skyroot_crafting_table" -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/crossbow/arkenium/loaded.json b/src/main/resources/assets/aether/models/item/crossbow/arkenium/loaded.json deleted file mode 100644 index a2d15f9d6a..0000000000 --- a/src/main/resources/assets/aether/models/item/crossbow/arkenium/loaded.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "parent": "aether:item/crossbow/arkenium_crossbow", - "textures": { - "layer0": "aether:items/weapons/crossbow/arkenium/loaded" - }, - "display": { - "thirdperson_righthand": { - "rotation": [ -90, 0, 45 ], - "translation": [ 0, 0.1, -3 ], - "scale": [ 0.9, 0.9, 0.9 ] - }, - "thirdperson_lefthand": { - "rotation": [ -90, 0, -60 ], - "translation": [ 2, 0.1, -3 ], - "scale": [ 0.9, 0.9, 0.9 ] - }, - "firstperson_righthand": { - "rotation": [ -270, 0, 225 ], - "translation": [ -8.75, 3.2, 1.13], - "scale": [ 0.68, 0.68, 0.68 ] - }, - "firstperson_lefthand": { - "rotation": [ -270, 0, 135 ], - "translation": [ -8.75, 3.2, 1.13], - "scale": [ 0.68, 0.68, 0.68 ] - } - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/crossbow/arkenium/loading1.json b/src/main/resources/assets/aether/models/item/crossbow/arkenium/loading1.json deleted file mode 100644 index fc7a355279..0000000000 --- a/src/main/resources/assets/aether/models/item/crossbow/arkenium/loading1.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "parent": "aether:item/crossbow/arkenium_crossbow", - "textures": { - "layer0": "aether:items/weapons/crossbow/arkenium/loading1" - }, - "display": { - "thirdperson_righthand": { - "rotation": [ -90, 0, 45 ], - "translation": [ 0, 0.1, -3 ], - "scale": [ 0.9, 0.9, 0.9 ] - }, - "thirdperson_lefthand": { - "rotation": [ -90, 0, -60 ], - "translation": [ 2, 0.1, -3 ], - "scale": [ 0.9, 0.9, 0.9 ] - }, - "firstperson_righthand": { - "rotation": [ -290, -2, 225 ], - "translation": [ -5.0, 2.0, 1.13], - "scale": [ 0.68, 0.68, 0.68 ] - }, - "firstperson_lefthand": { - "rotation": [ -290, -2, 135 ], - "translation": [ -5.0, 2.0, 1.13], - "scale": [ 0.68, 0.68, 0.68 ] - } - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/crossbow/arkenium/loading2.json b/src/main/resources/assets/aether/models/item/crossbow/arkenium/loading2.json deleted file mode 100644 index 307b596111..0000000000 --- a/src/main/resources/assets/aether/models/item/crossbow/arkenium/loading2.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "parent": "aether:item/crossbow/arkenium_crossbow", - "textures": { - "layer0": "aether:items/weapons/crossbow/arkenium/loading2" - }, - "display": { - "thirdperson_righthand": { - "rotation": [ -90, 0, 45 ], - "translation": [ 0, 0.1, -3 ], - "scale": [ 0.9, 0.9, 0.9 ] - }, - "thirdperson_lefthand": { - "rotation": [ -90, 0, -60 ], - "translation": [ 2, 0.1, -3 ], - "scale": [ 0.9, 0.9, 0.9 ] - }, - "firstperson_righthand": { - "rotation": [ -290, -2, 225 ], - "translation": [ -5.0, 2.0, 1.13], - "scale": [ 0.68, 0.68, 0.68 ] - }, - "firstperson_lefthand": { - "rotation": [ -290, -2, 135 ], - "translation": [ -5.0, 2.0, 1.13], - "scale": [ 0.68, 0.68, 0.68 ] - } - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/crossbow/arkenium/loading3.json b/src/main/resources/assets/aether/models/item/crossbow/arkenium/loading3.json deleted file mode 100644 index 8abb376add..0000000000 --- a/src/main/resources/assets/aether/models/item/crossbow/arkenium/loading3.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "parent": "aether:item/crossbow/arkenium_crossbow", - "textures": { - "layer0": "aether:items/weapons/crossbow/arkenium/loading3" - }, - "display": { - "thirdperson_righthand": { - "rotation": [ -90, 0, 45 ], - "translation": [ 0, 0.1, -3 ], - "scale": [ 0.9, 0.9, 0.9 ] - }, - "thirdperson_lefthand": { - "rotation": [ -90, 0, -60 ], - "translation": [ 2, 0.1, -3 ], - "scale": [ 0.9, 0.9, 0.9 ] - }, - "firstperson_righthand": { - "rotation": [ -290, -2, 225 ], - "translation": [ -5.0, 2.0, 1.13], - "scale": [ 0.68, 0.68, 0.68 ] - }, - "firstperson_lefthand": { - "rotation": [ -290, -2, 135 ], - "translation": [ -5.0, 2.0, 1.13], - "scale": [ 0.68, 0.68, 0.68 ] - } - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/crossbow/arkenium/ready.json b/src/main/resources/assets/aether/models/item/crossbow/arkenium/ready.json deleted file mode 100644 index 49c07a096c..0000000000 --- a/src/main/resources/assets/aether/models/item/crossbow/arkenium/ready.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "aether:item/crossbow/arkenium_crossbow", - "textures": { - "layer0": "aether:items/weapons/crossbow/arkenium/loading3" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/crossbow/arkenium_crossbow.json b/src/main/resources/assets/aether/models/item/crossbow/arkenium_crossbow.json deleted file mode 100644 index 9858ce7cf0..0000000000 --- a/src/main/resources/assets/aether/models/item/crossbow/arkenium_crossbow.json +++ /dev/null @@ -1,69 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "aether:items/weapons/crossbow/arkenium/standby" - }, - "display": { - "thirdperson_righthand": { - "rotation": [ -90, 0, 45 ], - "translation": [ 0, 0.1, -3 ], - "scale": [ 0.9, 0.9, 0.9 ] - }, - "thirdperson_lefthand": { - "rotation": [ -90, 0, -60 ], - "translation": [ 2, 0.1, -3 ], - "scale": [ 0.9, 0.9, 0.9 ] - }, - "firstperson_righthand": { - "rotation": [ -270, 0, 225 ], - "translation": [ 0, 3.2, 1.13], - "scale": [ 0.68, 0.68, 0.68 ] - }, - "firstperson_lefthand": { - "rotation": [ -270, 0, 135 ], - "translation": [ 0, 3.2, 1.13], - "scale": [ 0.68, 0.68, 0.68 ] - } - }, - "overrides": [ - { - "predicate": { - "pulling": 1.0, - "pull": 0.1, - "charged": 0.0 - }, - "model": "aether:item/crossbow/arkenium/loading1" - }, - { - "predicate": { - "pulling": 1.0, - "pull": 0.58, - "charged": 0.0 - }, - "model": "aether:item/crossbow/arkenium/loading2" - }, - { - "predicate": { - "pulling": 1.0, - "pull": 1.0, - "charged": 0.0 - }, - "model": "aether:item/crossbow/arkenium/loading3" - }, - { - "predicate": { - "pulling": 1.0, - "pull": 1.0, - "ready": 1.0, - "charged": 0.0 - }, - "model": "aether:item/crossbow/arkenium/ready" - }, - { - "predicate": { - "charged": 1.0 - }, - "model": "aether:item/crossbow/arkenium/loaded" - } - ] -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/crossbow/gravitite/loaded.json b/src/main/resources/assets/aether/models/item/crossbow/gravitite/loaded.json deleted file mode 100644 index c6c79e5e41..0000000000 --- a/src/main/resources/assets/aether/models/item/crossbow/gravitite/loaded.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "parent": "aether:item/crossbow/gravitite_crossbow", - "textures": { - "layer0": "aether:items/weapons/crossbow/gravitite/loaded" - }, - "display": { - "thirdperson_righthand": { - "rotation": [ -90, 0, 45 ], - "translation": [ 0, 0.1, -3 ], - "scale": [ 0.9, 0.9, 0.9 ] - }, - "thirdperson_lefthand": { - "rotation": [ -90, 0, -60 ], - "translation": [ 2, 0.1, -3 ], - "scale": [ 0.9, 0.9, 0.9 ] - }, - "firstperson_righthand": { - "rotation": [ -270, 0, 225 ], - "translation": [ -8.75, 3.2, 1.13], - "scale": [ 0.68, 0.68, 0.68 ] - }, - "firstperson_lefthand": { - "rotation": [ -270, 0, 135 ], - "translation": [ -8.75, 3.2, 1.13], - "scale": [ 0.68, 0.68, 0.68 ] - } - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/crossbow/gravitite/loading1.json b/src/main/resources/assets/aether/models/item/crossbow/gravitite/loading1.json deleted file mode 100644 index a1c0d40f93..0000000000 --- a/src/main/resources/assets/aether/models/item/crossbow/gravitite/loading1.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "parent": "aether:item/crossbow/gravitite_crossbow", - "textures": { - "layer0": "aether:items/weapons/crossbow/gravitite/loading1" - }, - "display": { - "thirdperson_righthand": { - "rotation": [ -90, 0, 45 ], - "translation": [ 0, 0.1, -3 ], - "scale": [ 0.9, 0.9, 0.9 ] - }, - "thirdperson_lefthand": { - "rotation": [ -90, 0, -60 ], - "translation": [ 2, 0.1, -3 ], - "scale": [ 0.9, 0.9, 0.9 ] - }, - "firstperson_righthand": { - "rotation": [ -290, -2, 225 ], - "translation": [ -5.0, 2.0, 1.13], - "scale": [ 0.68, 0.68, 0.68 ] - }, - "firstperson_lefthand": { - "rotation": [ -290, -2, 135 ], - "translation": [ -5.0, 2.0, 1.13], - "scale": [ 0.68, 0.68, 0.68 ] - } - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/crossbow/gravitite/loading2.json b/src/main/resources/assets/aether/models/item/crossbow/gravitite/loading2.json deleted file mode 100644 index 7eaaea939f..0000000000 --- a/src/main/resources/assets/aether/models/item/crossbow/gravitite/loading2.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "parent": "aether:item/crossbow/gravitite_crossbow", - "textures": { - "layer0": "aether:items/weapons/crossbow/gravitite/loading2" - }, - "display": { - "thirdperson_righthand": { - "rotation": [ -90, 0, 45 ], - "translation": [ 0, 0.1, -3 ], - "scale": [ 0.9, 0.9, 0.9 ] - }, - "thirdperson_lefthand": { - "rotation": [ -90, 0, -60 ], - "translation": [ 2, 0.1, -3 ], - "scale": [ 0.9, 0.9, 0.9 ] - }, - "firstperson_righthand": { - "rotation": [ -290, -2, 225 ], - "translation": [ -5.0, 2.0, 1.13], - "scale": [ 0.68, 0.68, 0.68 ] - }, - "firstperson_lefthand": { - "rotation": [ -290, -2, 135 ], - "translation": [ -5.0, 2.0, 1.13], - "scale": [ 0.68, 0.68, 0.68 ] - } - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/crossbow/gravitite/loading3.json b/src/main/resources/assets/aether/models/item/crossbow/gravitite/loading3.json deleted file mode 100644 index 18f19dfb07..0000000000 --- a/src/main/resources/assets/aether/models/item/crossbow/gravitite/loading3.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "parent": "aether:item/crossbow/gravitite_crossbow", - "textures": { - "layer0": "aether:items/weapons/crossbow/gravitite/loading3" - }, - "display": { - "thirdperson_righthand": { - "rotation": [ -90, 0, 45 ], - "translation": [ 0, 0.1, -3 ], - "scale": [ 0.9, 0.9, 0.9 ] - }, - "thirdperson_lefthand": { - "rotation": [ -90, 0, -60 ], - "translation": [ 2, 0.1, -3 ], - "scale": [ 0.9, 0.9, 0.9 ] - }, - "firstperson_righthand": { - "rotation": [ -290, -2, 225 ], - "translation": [ -5.0, 2.0, 1.13], - "scale": [ 0.68, 0.68, 0.68 ] - }, - "firstperson_lefthand": { - "rotation": [ -290, -2, 135 ], - "translation": [ -5.0, 2.0, 1.13], - "scale": [ 0.68, 0.68, 0.68 ] - } - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/crossbow/gravitite/ready.json b/src/main/resources/assets/aether/models/item/crossbow/gravitite/ready.json deleted file mode 100644 index 396205e5d5..0000000000 --- a/src/main/resources/assets/aether/models/item/crossbow/gravitite/ready.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "aether:item/crossbow/gravitite_crossbow", - "textures": { - "layer0": "aether:items/weapons/crossbow/gravitite/loading3" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/crossbow/gravitite_crossbow.json b/src/main/resources/assets/aether/models/item/crossbow/gravitite_crossbow.json deleted file mode 100644 index c2688ad129..0000000000 --- a/src/main/resources/assets/aether/models/item/crossbow/gravitite_crossbow.json +++ /dev/null @@ -1,69 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "aether:items/weapons/crossbow/gravitite/standby" - }, - "display": { - "thirdperson_righthand": { - "rotation": [ -90, 0, 45 ], - "translation": [ 0, 0.1, -3 ], - "scale": [ 0.9, 0.9, 0.9 ] - }, - "thirdperson_lefthand": { - "rotation": [ -90, 0, -60 ], - "translation": [ 2, 0.1, -3 ], - "scale": [ 0.9, 0.9, 0.9 ] - }, - "firstperson_righthand": { - "rotation": [ -270, 0, 225 ], - "translation": [ 0, 3.2, 1.13], - "scale": [ 0.68, 0.68, 0.68 ] - }, - "firstperson_lefthand": { - "rotation": [ -270, 0, 135 ], - "translation": [ 0, 3.2, 1.13], - "scale": [ 0.68, 0.68, 0.68 ] - } - }, - "overrides": [ - { - "predicate": { - "pulling": 1.0, - "pull": 0.1, - "charged": 0.0 - }, - "model": "aether:item/crossbow/gravitite/loading1" - }, - { - "predicate": { - "pulling": 1.0, - "pull": 0.58, - "charged": 0.0 - }, - "model": "aether:item/crossbow/gravitite/loading2" - }, - { - "predicate": { - "pulling": 1.0, - "pull": 1.0, - "charged": 0.0 - }, - "model": "aether:item/crossbow/gravitite/loading3" - }, - { - "predicate": { - "pulling": 1.0, - "pull": 1.0, - "ready": 1.0, - "charged": 0.0 - }, - "model": "aether:item/crossbow/gravitite/ready" - }, - { - "predicate": { - "charged": 1.0 - }, - "model": "aether:item/crossbow/gravitite/loaded" - } - ] -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/crossbow/holystone/loaded.json b/src/main/resources/assets/aether/models/item/crossbow/holystone/loaded.json deleted file mode 100644 index 95d818bc66..0000000000 --- a/src/main/resources/assets/aether/models/item/crossbow/holystone/loaded.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "parent": "aether:item/crossbow/holystone_crossbow", - "textures": { - "layer0": "aether:items/weapons/crossbow/holystone/loaded" - }, - "display": { - "thirdperson_righthand": { - "rotation": [ -90, 0, 45 ], - "translation": [ 0, 0.1, -3 ], - "scale": [ 0.9, 0.9, 0.9 ] - }, - "thirdperson_lefthand": { - "rotation": [ -90, 0, -60 ], - "translation": [ 2, 0.1, -3 ], - "scale": [ 0.9, 0.9, 0.9 ] - }, - "firstperson_righthand": { - "rotation": [ -270, 0, 225 ], - "translation": [ -8.75, 3.2, 1.13], - "scale": [ 0.68, 0.68, 0.68 ] - }, - "firstperson_lefthand": { - "rotation": [ -270, 0, 135 ], - "translation": [ -8.75, 3.2, 1.13], - "scale": [ 0.68, 0.68, 0.68 ] - } - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/crossbow/holystone/loading1.json b/src/main/resources/assets/aether/models/item/crossbow/holystone/loading1.json deleted file mode 100644 index f8ada8fccd..0000000000 --- a/src/main/resources/assets/aether/models/item/crossbow/holystone/loading1.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "parent": "aether:item/crossbow/holystone_crossbow", - "textures": { - "layer0": "aether:items/weapons/crossbow/holystone/loading1" - }, - "display": { - "thirdperson_righthand": { - "rotation": [ -90, 0, 45 ], - "translation": [ 0, 0.1, -3 ], - "scale": [ 0.9, 0.9, 0.9 ] - }, - "thirdperson_lefthand": { - "rotation": [ -90, 0, -60 ], - "translation": [ 2, 0.1, -3 ], - "scale": [ 0.9, 0.9, 0.9 ] - }, - "firstperson_righthand": { - "rotation": [ -290, -2, 225 ], - "translation": [ -5.0, 2.0, 1.13], - "scale": [ 0.68, 0.68, 0.68 ] - }, - "firstperson_lefthand": { - "rotation": [ -290, -2, 135 ], - "translation": [ -5.0, 2.0, 1.13], - "scale": [ 0.68, 0.68, 0.68 ] - } - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/crossbow/holystone/loading2.json b/src/main/resources/assets/aether/models/item/crossbow/holystone/loading2.json deleted file mode 100644 index 3782fc5560..0000000000 --- a/src/main/resources/assets/aether/models/item/crossbow/holystone/loading2.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "parent": "aether:item/crossbow/holystone_crossbow", - "textures": { - "layer0": "aether:items/weapons/crossbow/holystone/loading2" - }, - "display": { - "thirdperson_righthand": { - "rotation": [ -90, 0, 45 ], - "translation": [ 0, 0.1, -3 ], - "scale": [ 0.9, 0.9, 0.9 ] - }, - "thirdperson_lefthand": { - "rotation": [ -90, 0, -60 ], - "translation": [ 2, 0.1, -3 ], - "scale": [ 0.9, 0.9, 0.9 ] - }, - "firstperson_righthand": { - "rotation": [ -290, -2, 225 ], - "translation": [ -5.0, 2.0, 1.13], - "scale": [ 0.68, 0.68, 0.68 ] - }, - "firstperson_lefthand": { - "rotation": [ -290, -2, 135 ], - "translation": [ -5.0, 2.0, 1.13], - "scale": [ 0.68, 0.68, 0.68 ] - } - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/crossbow/holystone/loading3.json b/src/main/resources/assets/aether/models/item/crossbow/holystone/loading3.json deleted file mode 100644 index 0571fb39f8..0000000000 --- a/src/main/resources/assets/aether/models/item/crossbow/holystone/loading3.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "parent": "aether:item/crossbow/holystone_crossbow", - "textures": { - "layer0": "aether:items/weapons/crossbow/holystone/loading3" - }, - "display": { - "thirdperson_righthand": { - "rotation": [ -90, 0, 45 ], - "translation": [ 0, 0.1, -3 ], - "scale": [ 0.9, 0.9, 0.9 ] - }, - "thirdperson_lefthand": { - "rotation": [ -90, 0, -60 ], - "translation": [ 2, 0.1, -3 ], - "scale": [ 0.9, 0.9, 0.9 ] - }, - "firstperson_righthand": { - "rotation": [ -290, -2, 225 ], - "translation": [ -5.0, 2.0, 1.13], - "scale": [ 0.68, 0.68, 0.68 ] - }, - "firstperson_lefthand": { - "rotation": [ -290, -2, 135 ], - "translation": [ -5.0, 2.0, 1.13], - "scale": [ 0.68, 0.68, 0.68 ] - } - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/crossbow/holystone/ready.json b/src/main/resources/assets/aether/models/item/crossbow/holystone/ready.json deleted file mode 100644 index 5ed76b9599..0000000000 --- a/src/main/resources/assets/aether/models/item/crossbow/holystone/ready.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "aether:item/crossbow/holystone_crossbow", - "textures": { - "layer0": "aether:items/weapons/crossbow/holystone/loading3" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/crossbow/holystone_crossbow.json b/src/main/resources/assets/aether/models/item/crossbow/holystone_crossbow.json deleted file mode 100644 index f1508ae3fb..0000000000 --- a/src/main/resources/assets/aether/models/item/crossbow/holystone_crossbow.json +++ /dev/null @@ -1,69 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "aether:items/weapons/crossbow/holystone/standby" - }, - "display": { - "thirdperson_righthand": { - "rotation": [ -90, 0, 45 ], - "translation": [ 0, 0.1, -3 ], - "scale": [ 0.9, 0.9, 0.9 ] - }, - "thirdperson_lefthand": { - "rotation": [ -90, 0, -60 ], - "translation": [ 2, 0.1, -3 ], - "scale": [ 0.9, 0.9, 0.9 ] - }, - "firstperson_righthand": { - "rotation": [ -270, 0, 225 ], - "translation": [ 0, 3.2, 1.13], - "scale": [ 0.68, 0.68, 0.68 ] - }, - "firstperson_lefthand": { - "rotation": [ -270, 0, 135 ], - "translation": [ 0, 3.2, 1.13], - "scale": [ 0.68, 0.68, 0.68 ] - } - }, - "overrides": [ - { - "predicate": { - "pulling": 1.0, - "pull": 0.1, - "charged": 0.0 - }, - "model": "aether:item/crossbow/holystone/loading1" - }, - { - "predicate": { - "pulling": 1.0, - "pull": 0.58, - "charged": 0.0 - }, - "model": "aether:item/crossbow/holystone/loading2" - }, - { - "predicate": { - "pulling": 1.0, - "pull": 1.0, - "charged": 0.0 - }, - "model": "aether:item/crossbow/holystone/loading3" - }, - { - "predicate": { - "pulling": 1.0, - "pull": 1.0, - "ready": 1.0, - "charged": 0.0 - }, - "model": "aether:item/crossbow/holystone/ready" - }, - { - "predicate": { - "charged": 1.0 - }, - "model": "aether:item/crossbow/holystone/loaded" - } - ] -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/crossbow/skyroot/loaded.json b/src/main/resources/assets/aether/models/item/crossbow/skyroot/loaded.json deleted file mode 100644 index d419d5744e..0000000000 --- a/src/main/resources/assets/aether/models/item/crossbow/skyroot/loaded.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "parent": "aether:item/crossbow/skyroot_crossbow", - "textures": { - "layer0": "aether:items/weapons/crossbow/skyroot/loaded" - }, - "display": { - "thirdperson_righthand": { - "rotation": [ -90, 0, 45 ], - "translation": [ 0, 0.1, -3 ], - "scale": [ 0.9, 0.9, 0.9 ] - }, - "thirdperson_lefthand": { - "rotation": [ -90, 0, -60 ], - "translation": [ 2, 0.1, -3 ], - "scale": [ 0.9, 0.9, 0.9 ] - }, - "firstperson_righthand": { - "rotation": [ -270, 0, 225 ], - "translation": [ -8.75, 3.2, 1.13], - "scale": [ 0.68, 0.68, 0.68 ] - }, - "firstperson_lefthand": { - "rotation": [ -270, 0, 135 ], - "translation": [ -8.75, 3.2, 1.13], - "scale": [ 0.68, 0.68, 0.68 ] - } - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/crossbow/skyroot/loading1.json b/src/main/resources/assets/aether/models/item/crossbow/skyroot/loading1.json deleted file mode 100644 index 3c9ae79bcc..0000000000 --- a/src/main/resources/assets/aether/models/item/crossbow/skyroot/loading1.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "parent": "aether:item/crossbow/skyroot_crossbow", - "textures": { - "layer0": "aether:items/weapons/crossbow/skyroot/loading1" - }, - "display": { - "thirdperson_righthand": { - "rotation": [ -90, 0, 45 ], - "translation": [ 0, 0.1, -3 ], - "scale": [ 0.9, 0.9, 0.9 ] - }, - "thirdperson_lefthand": { - "rotation": [ -90, 0, -60 ], - "translation": [ 2, 0.1, -3 ], - "scale": [ 0.9, 0.9, 0.9 ] - }, - "firstperson_righthand": { - "rotation": [ -290, -2, 225 ], - "translation": [ -5.0, 2.0, 1.13], - "scale": [ 0.68, 0.68, 0.68 ] - }, - "firstperson_lefthand": { - "rotation": [ -290, -2, 135 ], - "translation": [ -5.0, 2.0, 1.13], - "scale": [ 0.68, 0.68, 0.68 ] - } - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/crossbow/skyroot/loading2.json b/src/main/resources/assets/aether/models/item/crossbow/skyroot/loading2.json deleted file mode 100644 index 2b91ecdaac..0000000000 --- a/src/main/resources/assets/aether/models/item/crossbow/skyroot/loading2.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "parent": "aether:item/crossbow/skyroot_crossbow", - "textures": { - "layer0": "aether:items/weapons/crossbow/skyroot/loading2" - }, - "display": { - "thirdperson_righthand": { - "rotation": [ -90, 0, 45 ], - "translation": [ 0, 0.1, -3 ], - "scale": [ 0.9, 0.9, 0.9 ] - }, - "thirdperson_lefthand": { - "rotation": [ -90, 0, -60 ], - "translation": [ 2, 0.1, -3 ], - "scale": [ 0.9, 0.9, 0.9 ] - }, - "firstperson_righthand": { - "rotation": [ -290, -2, 225 ], - "translation": [ -5.0, 2.0, 1.13], - "scale": [ 0.68, 0.68, 0.68 ] - }, - "firstperson_lefthand": { - "rotation": [ -290, -2, 135 ], - "translation": [ -5.0, 2.0, 1.13], - "scale": [ 0.68, 0.68, 0.68 ] - } - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/crossbow/skyroot/loading3.json b/src/main/resources/assets/aether/models/item/crossbow/skyroot/loading3.json deleted file mode 100644 index a829868f87..0000000000 --- a/src/main/resources/assets/aether/models/item/crossbow/skyroot/loading3.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "parent": "aether:item/crossbow/skyroot_crossbow", - "textures": { - "layer0": "aether:items/weapons/crossbow/skyroot/loading3" - }, - "display": { - "thirdperson_righthand": { - "rotation": [ -90, 0, 45 ], - "translation": [ 0, 0.1, -3 ], - "scale": [ 0.9, 0.9, 0.9 ] - }, - "thirdperson_lefthand": { - "rotation": [ -90, 0, -60 ], - "translation": [ 2, 0.1, -3 ], - "scale": [ 0.9, 0.9, 0.9 ] - }, - "firstperson_righthand": { - "rotation": [ -290, -2, 225 ], - "translation": [ -5.0, 2.0, 1.13], - "scale": [ 0.68, 0.68, 0.68 ] - }, - "firstperson_lefthand": { - "rotation": [ -290, -2, 135 ], - "translation": [ -5.0, 2.0, 1.13], - "scale": [ 0.68, 0.68, 0.68 ] - } - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/crossbow/skyroot/ready.json b/src/main/resources/assets/aether/models/item/crossbow/skyroot/ready.json deleted file mode 100644 index 2e4be71d42..0000000000 --- a/src/main/resources/assets/aether/models/item/crossbow/skyroot/ready.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "aether:item/crossbow/skyroot_crossbow", - "textures": { - "layer0": "aether:items/weapons/crossbow/skyroot/loading3" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/crossbow/skyroot_crossbow.json b/src/main/resources/assets/aether/models/item/crossbow/skyroot_crossbow.json deleted file mode 100644 index 759d54801c..0000000000 --- a/src/main/resources/assets/aether/models/item/crossbow/skyroot_crossbow.json +++ /dev/null @@ -1,69 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "aether:items/weapons/crossbow/skyroot/standby" - }, - "display": { - "thirdperson_righthand": { - "rotation": [ -90, 0, 45 ], - "translation": [ 0, 0.1, -3 ], - "scale": [ 0.9, 0.9, 0.9 ] - }, - "thirdperson_lefthand": { - "rotation": [ -90, 0, -60 ], - "translation": [ 2, 0.1, -3 ], - "scale": [ 0.9, 0.9, 0.9 ] - }, - "firstperson_righthand": { - "rotation": [ -270, 0, 225 ], - "translation": [ 0, 3.2, 1.13], - "scale": [ 0.68, 0.68, 0.68 ] - }, - "firstperson_lefthand": { - "rotation": [ -270, 0, 135 ], - "translation": [ 0, 3.2, 1.13], - "scale": [ 0.68, 0.68, 0.68 ] - } - }, - "overrides": [ - { - "predicate": { - "pulling": 1.0, - "pull": 0.1, - "charged": 0.0 - }, - "model": "aether:item/crossbow/skyroot/loading1" - }, - { - "predicate": { - "pulling": 1.0, - "pull": 0.58, - "charged": 0.0 - }, - "model": "aether:item/crossbow/skyroot/loading2" - }, - { - "predicate": { - "pulling": 1.0, - "pull": 1.0, - "charged": 0.0 - }, - "model": "aether:item/crossbow/skyroot/loading3" - }, - { - "predicate": { - "pulling": 1.0, - "pull": 1.0, - "ready": 1.0, - "charged": 0.0 - }, - "model": "aether:item/crossbow/skyroot/ready" - }, - { - "predicate": { - "charged": 1.0 - }, - "model": "aether:item/crossbow/skyroot/loaded" - } - ] -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/crossbow/zanite/loaded.json b/src/main/resources/assets/aether/models/item/crossbow/zanite/loaded.json deleted file mode 100644 index 660cb48d93..0000000000 --- a/src/main/resources/assets/aether/models/item/crossbow/zanite/loaded.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "parent": "aether:item/crossbow/zanite_crossbow", - "textures": { - "layer0": "aether:items/weapons/crossbow/zanite/loaded" - }, - "display": { - "thirdperson_righthand": { - "rotation": [ -90, 0, 45 ], - "translation": [ 0, 0.1, -3 ], - "scale": [ 0.9, 0.9, 0.9 ] - }, - "thirdperson_lefthand": { - "rotation": [ -90, 0, -60 ], - "translation": [ 2, 0.1, -3 ], - "scale": [ 0.9, 0.9, 0.9 ] - }, - "firstperson_righthand": { - "rotation": [ -270, 0, 225 ], - "translation": [ -8.75, 3.2, 1.13], - "scale": [ 0.68, 0.68, 0.68 ] - }, - "firstperson_lefthand": { - "rotation": [ -270, 0, 135 ], - "translation": [ -8.75, 3.2, 1.13], - "scale": [ 0.68, 0.68, 0.68 ] - } - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/crossbow/zanite/loading1.json b/src/main/resources/assets/aether/models/item/crossbow/zanite/loading1.json deleted file mode 100644 index 7d00814c21..0000000000 --- a/src/main/resources/assets/aether/models/item/crossbow/zanite/loading1.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "parent": "aether:item/crossbow/zanite_crossbow", - "textures": { - "layer0": "aether:items/weapons/crossbow/zanite/loading1" - }, - "display": { - "thirdperson_righthand": { - "rotation": [ -90, 0, 45 ], - "translation": [ 0, 0.1, -3 ], - "scale": [ 0.9, 0.9, 0.9 ] - }, - "thirdperson_lefthand": { - "rotation": [ -90, 0, -60 ], - "translation": [ 2, 0.1, -3 ], - "scale": [ 0.9, 0.9, 0.9 ] - }, - "firstperson_righthand": { - "rotation": [ -290, -2, 225 ], - "translation": [ -5.0, 2.0, 1.13], - "scale": [ 0.68, 0.68, 0.68 ] - }, - "firstperson_lefthand": { - "rotation": [ -290, -2, 135 ], - "translation": [ -5.0, 2.0, 1.13], - "scale": [ 0.68, 0.68, 0.68 ] - } - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/crossbow/zanite/loading2.json b/src/main/resources/assets/aether/models/item/crossbow/zanite/loading2.json deleted file mode 100644 index 8644a4a2f2..0000000000 --- a/src/main/resources/assets/aether/models/item/crossbow/zanite/loading2.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "parent": "aether:item/crossbow/zanite_crossbow", - "textures": { - "layer0": "aether:items/weapons/crossbow/zanite/loading2" - }, - "display": { - "thirdperson_righthand": { - "rotation": [ -90, 0, 45 ], - "translation": [ 0, 0.1, -3 ], - "scale": [ 0.9, 0.9, 0.9 ] - }, - "thirdperson_lefthand": { - "rotation": [ -90, 0, -60 ], - "translation": [ 2, 0.1, -3 ], - "scale": [ 0.9, 0.9, 0.9 ] - }, - "firstperson_righthand": { - "rotation": [ -290, -2, 225 ], - "translation": [ -5.0, 2.0, 1.13], - "scale": [ 0.68, 0.68, 0.68 ] - }, - "firstperson_lefthand": { - "rotation": [ -290, -2, 135 ], - "translation": [ -5.0, 2.0, 1.13], - "scale": [ 0.68, 0.68, 0.68 ] - } - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/crossbow/zanite/loading3.json b/src/main/resources/assets/aether/models/item/crossbow/zanite/loading3.json deleted file mode 100644 index 6822aef37d..0000000000 --- a/src/main/resources/assets/aether/models/item/crossbow/zanite/loading3.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "parent": "aether:item/crossbow/zanite_crossbow", - "textures": { - "layer0": "aether:items/weapons/crossbow/zanite/loading3" - }, - "display": { - "thirdperson_righthand": { - "rotation": [ -90, 0, 45 ], - "translation": [ 0, 0.1, -3 ], - "scale": [ 0.9, 0.9, 0.9 ] - }, - "thirdperson_lefthand": { - "rotation": [ -90, 0, -60 ], - "translation": [ 2, 0.1, -3 ], - "scale": [ 0.9, 0.9, 0.9 ] - }, - "firstperson_righthand": { - "rotation": [ -290, -2, 225 ], - "translation": [ -5.0, 2.0, 1.13], - "scale": [ 0.68, 0.68, 0.68 ] - }, - "firstperson_lefthand": { - "rotation": [ -290, -2, 135 ], - "translation": [ -5.0, 2.0, 1.13], - "scale": [ 0.68, 0.68, 0.68 ] - } - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/crossbow/zanite/ready.json b/src/main/resources/assets/aether/models/item/crossbow/zanite/ready.json deleted file mode 100644 index 9897471b96..0000000000 --- a/src/main/resources/assets/aether/models/item/crossbow/zanite/ready.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "aether:item/crossbow/zanite_crossbow", - "textures": { - "layer0": "aether:items/weapons/crossbow/zanite/loading3" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/crossbow/zanite_crossbow.json b/src/main/resources/assets/aether/models/item/crossbow/zanite_crossbow.json deleted file mode 100644 index b6f3aff226..0000000000 --- a/src/main/resources/assets/aether/models/item/crossbow/zanite_crossbow.json +++ /dev/null @@ -1,69 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "aether:items/weapons/crossbow/zanite/standby" - }, - "display": { - "thirdperson_righthand": { - "rotation": [ -90, 0, 45 ], - "translation": [ 0, 0.1, -3 ], - "scale": [ 0.9, 0.9, 0.9 ] - }, - "thirdperson_lefthand": { - "rotation": [ -90, 0, -60 ], - "translation": [ 2, 0.1, -3 ], - "scale": [ 0.9, 0.9, 0.9 ] - }, - "firstperson_righthand": { - "rotation": [ -270, 0, 225 ], - "translation": [ 0, 3.2, 1.13], - "scale": [ 0.68, 0.68, 0.68 ] - }, - "firstperson_lefthand": { - "rotation": [ -270, 0, 135 ], - "translation": [ 0, 3.2, 1.13], - "scale": [ 0.68, 0.68, 0.68 ] - } - }, - "overrides": [ - { - "predicate": { - "pulling": 1.0, - "pull": 0.1, - "charged": 0.0 - }, - "model": "aether:item/crossbow/zanite/loading1" - }, - { - "predicate": { - "pulling": 1.0, - "pull": 0.58, - "charged": 0.0 - }, - "model": "aether:item/crossbow/zanite/loading2" - }, - { - "predicate": { - "pulling": 1.0, - "pull": 1.0, - "charged": 0.0 - }, - "model": "aether:item/crossbow/zanite/loading3" - }, - { - "predicate": { - "pulling": 1.0, - "pull": 1.0, - "ready": 1.0, - "charged": 0.0 - }, - "model": "aether:item/crossbow/zanite/ready" - }, - { - "predicate": { - "charged": 1.0 - }, - "model": "aether:item/crossbow/zanite/loaded" - } - ] -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/crude_scatterglass/arkenium_frame.json b/src/main/resources/assets/aether/models/item/crude_scatterglass/arkenium_frame.json deleted file mode 100644 index cea1f09683..0000000000 --- a/src/main/resources/assets/aether/models/item/crude_scatterglass/arkenium_frame.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "aether:block/crude_scatterglass/arkenium_frame" -} diff --git a/src/main/resources/assets/aether/models/item/crude_scatterglass/normal.json b/src/main/resources/assets/aether/models/item/crude_scatterglass/normal.json deleted file mode 100644 index b663474fab..0000000000 --- a/src/main/resources/assets/aether/models/item/crude_scatterglass/normal.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "aether:block/crude_scatterglass/normal" -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/crude_scatterglass/skyroot_frame.json b/src/main/resources/assets/aether/models/item/crude_scatterglass/skyroot_frame.json deleted file mode 100644 index e812a0b480..0000000000 --- a/src/main/resources/assets/aether/models/item/crude_scatterglass/skyroot_frame.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "aether:block/crude_scatterglass/skyroot_frame" -} diff --git a/src/main/resources/assets/aether/models/item/crude_scatterglass_shard.json b/src/main/resources/assets/aether/models/item/crude_scatterglass_shard.json deleted file mode 100644 index 33eb4d0563..0000000000 --- a/src/main/resources/assets/aether/models/item/crude_scatterglass_shard.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "aether:items/materials/crude_scatterglass_shard" - } -} diff --git a/src/main/resources/assets/aether/models/item/crystals/highlands_ice_crystal.json b/src/main/resources/assets/aether/models/item/crystals/highlands_ice_crystal.json deleted file mode 100644 index a6ebcf23d8..0000000000 --- a/src/main/resources/assets/aether/models/item/crystals/highlands_ice_crystal.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "aether:block/crystals/highlands_ice_crystal" -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/crystals/highlands_ice_crystal_a.json b/src/main/resources/assets/aether/models/item/crystals/highlands_ice_crystal_a.json deleted file mode 100644 index d53d8e50d6..0000000000 --- a/src/main/resources/assets/aether/models/item/crystals/highlands_ice_crystal_a.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "aether:block/crystals/highlands_ice_crystal_a" -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/crystals/highlands_ice_crystal_b.json b/src/main/resources/assets/aether/models/item/crystals/highlands_ice_crystal_b.json deleted file mode 100644 index b2d729ec22..0000000000 --- a/src/main/resources/assets/aether/models/item/crystals/highlands_ice_crystal_b.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "aether:block/crystals/highlands_ice_crystal_b" -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/dark_skyroot_planks/base_beam.json b/src/main/resources/assets/aether/models/item/dark_skyroot_planks/base_beam.json deleted file mode 100644 index 84b0dbda28..0000000000 --- a/src/main/resources/assets/aether/models/item/dark_skyroot_planks/base_beam.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "aether:block/dark_skyroot_planks/base_beam" -} diff --git a/src/main/resources/assets/aether/models/item/dark_skyroot_planks/base_planks.json b/src/main/resources/assets/aether/models/item/dark_skyroot_planks/base_planks.json deleted file mode 100644 index c297c4e2e0..0000000000 --- a/src/main/resources/assets/aether/models/item/dark_skyroot_planks/base_planks.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "aether:block/dark_skyroot_planks/base_planks" -} diff --git a/src/main/resources/assets/aether/models/item/dark_skyroot_planks/beam.json b/src/main/resources/assets/aether/models/item/dark_skyroot_planks/beam.json deleted file mode 100644 index 43d3d34b47..0000000000 --- a/src/main/resources/assets/aether/models/item/dark_skyroot_planks/beam.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "aether:block/dark_skyroot_planks/beam" -} diff --git a/src/main/resources/assets/aether/models/item/dark_skyroot_planks/floorboards.json b/src/main/resources/assets/aether/models/item/dark_skyroot_planks/floorboards.json deleted file mode 100644 index be01667426..0000000000 --- a/src/main/resources/assets/aether/models/item/dark_skyroot_planks/floorboards.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "aether:block/dark_skyroot_planks/floorboards" -} diff --git a/src/main/resources/assets/aether/models/item/dark_skyroot_planks/highlight.json b/src/main/resources/assets/aether/models/item/dark_skyroot_planks/highlight.json deleted file mode 100644 index 761320a754..0000000000 --- a/src/main/resources/assets/aether/models/item/dark_skyroot_planks/highlight.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "aether:block/dark_skyroot_planks/highlight" -} diff --git a/src/main/resources/assets/aether/models/item/dark_skyroot_planks/normal.json b/src/main/resources/assets/aether/models/item/dark_skyroot_planks/normal.json deleted file mode 100644 index 5c5698a0e6..0000000000 --- a/src/main/resources/assets/aether/models/item/dark_skyroot_planks/normal.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "aether:block/dark_skyroot_planks/normal" -} diff --git a/src/main/resources/assets/aether/models/item/dark_skyroot_planks/tiles.json b/src/main/resources/assets/aether/models/item/dark_skyroot_planks/tiles.json deleted file mode 100644 index ba14260010..0000000000 --- a/src/main/resources/assets/aether/models/item/dark_skyroot_planks/tiles.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "aether:block/dark_skyroot_planks/tiles" -} diff --git a/src/main/resources/assets/aether/models/item/dark_skyroot_planks/tiles_small.json b/src/main/resources/assets/aether/models/item/dark_skyroot_planks/tiles_small.json deleted file mode 100644 index 5f8f2ee5a3..0000000000 --- a/src/main/resources/assets/aether/models/item/dark_skyroot_planks/tiles_small.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "aether:block/dark_skyroot_planks/tiles_small" -} diff --git a/src/main/resources/assets/aether/models/item/dark_skyroot_planks/top_beam.json b/src/main/resources/assets/aether/models/item/dark_skyroot_planks/top_beam.json deleted file mode 100644 index c6cc7c9a4b..0000000000 --- a/src/main/resources/assets/aether/models/item/dark_skyroot_planks/top_beam.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "aether:block/dark_skyroot_planks/top_beam" -} diff --git a/src/main/resources/assets/aether/models/item/dark_skyroot_planks/top_planks.json b/src/main/resources/assets/aether/models/item/dark_skyroot_planks/top_planks.json deleted file mode 100644 index 7205b19c64..0000000000 --- a/src/main/resources/assets/aether/models/item/dark_skyroot_planks/top_planks.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "aether:block/dark_skyroot_planks/top_planks" -} diff --git a/src/main/resources/assets/aether/models/item/dart/enchanted_dart.json b/src/main/resources/assets/aether/models/item/dart/enchanted_dart.json deleted file mode 100644 index 95c2306aab..0000000000 --- a/src/main/resources/assets/aether/models/item/dart/enchanted_dart.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "aether:items/weapons/enchanted_dart" - } -} diff --git a/src/main/resources/assets/aether/models/item/dart/golden_dart.json b/src/main/resources/assets/aether/models/item/dart/golden_dart.json deleted file mode 100644 index aa5bb9aecd..0000000000 --- a/src/main/resources/assets/aether/models/item/dart/golden_dart.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "aether:items/weapons/golden_dart" - } -} diff --git a/src/main/resources/assets/aether/models/item/dart/poison_dart.json b/src/main/resources/assets/aether/models/item/dart/poison_dart.json deleted file mode 100644 index 7f0198bd2b..0000000000 --- a/src/main/resources/assets/aether/models/item/dart/poison_dart.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "aether:items/weapons/poison_dart" - } -} diff --git a/src/main/resources/assets/aether/models/item/dart_shooter/enchanted_dart_shooter.json b/src/main/resources/assets/aether/models/item/dart_shooter/enchanted_dart_shooter.json deleted file mode 100644 index 655eedb008..0000000000 --- a/src/main/resources/assets/aether/models/item/dart_shooter/enchanted_dart_shooter.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "aether:items/weapons/enchanted_dart_shooter" - }, - "display": { - "thirdperson_righthand": { - "rotation": [ -80, 0, -40 ], - "translation": [ -2, 0, 2.5 ], - "scale": [ 0.5, 0.5, 0.5 ] - }, - "thirdperson_lefthand": { - "rotation": [ -80, 0, 40 ], - "translation": [ -1, 0, 2.5 ], - "scale": [ 0.5, 0.5, 0.5 ] - }, - "firstperson_righthand": { - "rotation": [ 0, -90, 25 ], - "translation": [ -1.5, 3.2, 1.13 ], - "scale": [ 0.68, 0.68, 0.68 ] - }, - "firstperson_lefthand": { - "rotation": [ 0, 90, -25 ], - "translation": [ -1.5, 3.2, 1.13 ], - "scale": [ 0.68, 0.68, 0.68 ] - } - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/dart_shooter/golden_dart_shooter.json b/src/main/resources/assets/aether/models/item/dart_shooter/golden_dart_shooter.json deleted file mode 100644 index 350074b2a2..0000000000 --- a/src/main/resources/assets/aether/models/item/dart_shooter/golden_dart_shooter.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "aether:items/weapons/golden_dart_shooter" - }, - "display": { - "thirdperson_righthand": { - "rotation": [ -80, 0, -40 ], - "translation": [ -2, 0, 2.5 ], - "scale": [ 0.5, 0.5, 0.5 ] - }, - "thirdperson_lefthand": { - "rotation": [ -80, 0, 40 ], - "translation": [ -1, 0, 2.5 ], - "scale": [ 0.5, 0.5, 0.5 ] - }, - "firstperson_righthand": { - "rotation": [ 0, -90, 25 ], - "translation": [ -1.5, 3.2, 1.13 ], - "scale": [ 0.68, 0.68, 0.68 ] - }, - "firstperson_lefthand": { - "rotation": [ 0, 90, -25 ], - "translation": [ -1.5, 3.2, 1.13 ], - "scale": [ 0.68, 0.68, 0.68 ] - } - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/dart_shooter/poison_dart_shooter.json b/src/main/resources/assets/aether/models/item/dart_shooter/poison_dart_shooter.json deleted file mode 100644 index dc83936bc1..0000000000 --- a/src/main/resources/assets/aether/models/item/dart_shooter/poison_dart_shooter.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "aether:items/weapons/poison_dart_shooter" - }, - "display": { - "thirdperson_righthand": { - "rotation": [ -80, 0, -40 ], - "translation": [ -2, 0, 2.5 ], - "scale": [ 0.5, 0.5, 0.5 ] - }, - "thirdperson_lefthand": { - "rotation": [ -80, 0, 40 ], - "translation": [ -1, 0, 2.5 ], - "scale": [ 0.5, 0.5, 0.5 ] - }, - "firstperson_righthand": { - "rotation": [ 0, -90, 25 ], - "translation": [ -1.5, 3.2, 1.13 ], - "scale": [ 0.68, 0.68, 0.68 ] - }, - "firstperson_lefthand": { - "rotation": [ 0, 90, -25 ], - "translation": [ -1.5, 3.2, 1.13 ], - "scale": [ 0.68, 0.68, 0.68 ] - } - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/eggnog.json b/src/main/resources/assets/aether/models/item/eggnog.json deleted file mode 100644 index 4abe83ddb9..0000000000 --- a/src/main/resources/assets/aether/models/item/eggnog.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "aether:items/consumables/eggnog" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/enchanted_blueberry.json b/src/main/resources/assets/aether/models/item/enchanted_blueberry.json deleted file mode 100644 index ec784077fe..0000000000 --- a/src/main/resources/assets/aether/models/item/enchanted_blueberry.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "aether:items/consumables/enchanted_blueberry" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/enchanted_wyndberry.json b/src/main/resources/assets/aether/models/item/enchanted_wyndberry.json deleted file mode 100644 index a048296606..0000000000 --- a/src/main/resources/assets/aether/models/item/enchanted_wyndberry.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "aether:items/consumables/enchanted_wyndberry" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/end_portal_frame.json b/src/main/resources/assets/aether/models/item/end_portal_frame.json deleted file mode 100644 index a6c5c478ab..0000000000 --- a/src/main/resources/assets/aether/models/item/end_portal_frame.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "aether:items/end_portal_frame" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/faded_holystone_bricks/base_bricks.json b/src/main/resources/assets/aether/models/item/faded_holystone_bricks/base_bricks.json deleted file mode 100644 index 2509c568fc..0000000000 --- a/src/main/resources/assets/aether/models/item/faded_holystone_bricks/base_bricks.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "aether:block/faded_holystone_bricks/base_bricks" -} diff --git a/src/main/resources/assets/aether/models/item/faded_holystone_bricks/base_pillar.json b/src/main/resources/assets/aether/models/item/faded_holystone_bricks/base_pillar.json deleted file mode 100644 index 24d8c9b191..0000000000 --- a/src/main/resources/assets/aether/models/item/faded_holystone_bricks/base_pillar.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "aether:block/faded_holystone_bricks/base_pillar" -} diff --git a/src/main/resources/assets/aether/models/item/faded_holystone_bricks/capstone_bricks.json b/src/main/resources/assets/aether/models/item/faded_holystone_bricks/capstone_bricks.json deleted file mode 100644 index 3a6dbb4b68..0000000000 --- a/src/main/resources/assets/aether/models/item/faded_holystone_bricks/capstone_bricks.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "aether:block/faded_holystone_bricks/capstone_bricks" -} diff --git a/src/main/resources/assets/aether/models/item/faded_holystone_bricks/capstone_pillar.json b/src/main/resources/assets/aether/models/item/faded_holystone_bricks/capstone_pillar.json deleted file mode 100644 index ba741a7a2f..0000000000 --- a/src/main/resources/assets/aether/models/item/faded_holystone_bricks/capstone_pillar.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "aether:block/faded_holystone_bricks/capstone_pillar" -} diff --git a/src/main/resources/assets/aether/models/item/faded_holystone_bricks/flagstones.json b/src/main/resources/assets/aether/models/item/faded_holystone_bricks/flagstones.json deleted file mode 100644 index 9cf8f3430f..0000000000 --- a/src/main/resources/assets/aether/models/item/faded_holystone_bricks/flagstones.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "aether:block/faded_holystone_bricks/flagstones" -} diff --git a/src/main/resources/assets/aether/models/item/faded_holystone_bricks/headstone.json b/src/main/resources/assets/aether/models/item/faded_holystone_bricks/headstone.json deleted file mode 100644 index eb226c073f..0000000000 --- a/src/main/resources/assets/aether/models/item/faded_holystone_bricks/headstone.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "aether:block/faded_holystone_bricks/headstone" -} diff --git a/src/main/resources/assets/aether/models/item/faded_holystone_bricks/keystone.json b/src/main/resources/assets/aether/models/item/faded_holystone_bricks/keystone.json deleted file mode 100644 index ec87f9e549..0000000000 --- a/src/main/resources/assets/aether/models/item/faded_holystone_bricks/keystone.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "aether:block/faded_holystone_bricks/keystone" -} diff --git a/src/main/resources/assets/aether/models/item/faded_holystone_bricks/normal.json b/src/main/resources/assets/aether/models/item/faded_holystone_bricks/normal.json deleted file mode 100644 index 1229518700..0000000000 --- a/src/main/resources/assets/aether/models/item/faded_holystone_bricks/normal.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "aether:block/faded_holystone_bricks/normal" -} diff --git a/src/main/resources/assets/aether/models/item/faded_holystone_bricks/pillar.json b/src/main/resources/assets/aether/models/item/faded_holystone_bricks/pillar.json deleted file mode 100644 index d5e198a22e..0000000000 --- a/src/main/resources/assets/aether/models/item/faded_holystone_bricks/pillar.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "aether:block/faded_holystone_bricks/pillar" -} diff --git a/src/main/resources/assets/aether/models/item/feed/moa_feed.json b/src/main/resources/assets/aether/models/item/feed/moa_feed.json deleted file mode 100644 index 7e23c514a5..0000000000 --- a/src/main/resources/assets/aether/models/item/feed/moa_feed.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "aether:items/consumables/moa_feed/moa_feed" - } -} diff --git a/src/main/resources/assets/aether/models/item/feed/moa_feed_blueberries.json b/src/main/resources/assets/aether/models/item/feed/moa_feed_blueberries.json deleted file mode 100644 index 1f8953789c..0000000000 --- a/src/main/resources/assets/aether/models/item/feed/moa_feed_blueberries.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "aether:items/consumables/moa_feed/moa_feed_blueberries" - } -} diff --git a/src/main/resources/assets/aether/models/item/feed/moa_feed_enchanted_blueberries.json b/src/main/resources/assets/aether/models/item/feed/moa_feed_enchanted_blueberries.json deleted file mode 100644 index e44bb3c68f..0000000000 --- a/src/main/resources/assets/aether/models/item/feed/moa_feed_enchanted_blueberries.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "aether:items/consumables/moa_feed/moa_feed_enchanted_blueberries" - } -} diff --git a/src/main/resources/assets/aether/models/item/ferrosite.json b/src/main/resources/assets/aether/models/item/ferrosite.json deleted file mode 100644 index ea67a17c05..0000000000 --- a/src/main/resources/assets/aether/models/item/ferrosite.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "aether:block/ferrosite" -} diff --git a/src/main/resources/assets/aether/models/item/ferrosite_sand.json b/src/main/resources/assets/aether/models/item/ferrosite_sand.json deleted file mode 100644 index 5182a08ef7..0000000000 --- a/src/main/resources/assets/aether/models/item/ferrosite_sand.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "aether:block/ferrosite_sand" -} diff --git a/src/main/resources/assets/aether/models/item/flowers/aechor_sprout.json b/src/main/resources/assets/aether/models/item/flowers/aechor_sprout.json deleted file mode 100644 index 776b292cb2..0000000000 --- a/src/main/resources/assets/aether/models/item/flowers/aechor_sprout.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "aether:blocks/flowers/aechor_sprout" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/flowers/aechor_sprout_snowy.json b/src/main/resources/assets/aether/models/item/flowers/aechor_sprout_snowy.json deleted file mode 100644 index dff36eaf14..0000000000 --- a/src/main/resources/assets/aether/models/item/flowers/aechor_sprout_snowy.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "aether:block/flowers/aechor_sprout_snowy" -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/flowers/arctic_spikespring.json b/src/main/resources/assets/aether/models/item/flowers/arctic_spikespring.json deleted file mode 100644 index 3a82e679f4..0000000000 --- a/src/main/resources/assets/aether/models/item/flowers/arctic_spikespring.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "aether:blocks/flowers/arctic_spikespring" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/flowers/arctic_spikespring_snowy.json b/src/main/resources/assets/aether/models/item/flowers/arctic_spikespring_snowy.json deleted file mode 100644 index d3cce4e56c..0000000000 --- a/src/main/resources/assets/aether/models/item/flowers/arctic_spikespring_snowy.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "aether:block/flowers/arctic_spikespring" -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/flowers/barkshroom.json b/src/main/resources/assets/aether/models/item/flowers/barkshroom.json deleted file mode 100644 index d54f36e581..0000000000 --- a/src/main/resources/assets/aether/models/item/flowers/barkshroom.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "aether:blocks/flowers/barkshroom" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/flowers/barkshroom_snowy.json b/src/main/resources/assets/aether/models/item/flowers/barkshroom_snowy.json deleted file mode 100644 index c8a80c252a..0000000000 --- a/src/main/resources/assets/aether/models/item/flowers/barkshroom_snowy.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "aether:block/flowers/barkshroom_snowy" -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/flowers/blue_swingtip.json b/src/main/resources/assets/aether/models/item/flowers/blue_swingtip.json deleted file mode 100644 index 42535adf57..0000000000 --- a/src/main/resources/assets/aether/models/item/flowers/blue_swingtip.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "aether:blocks/flowers/blue_swingtip" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/flowers/blue_swingtip_snowy.json b/src/main/resources/assets/aether/models/item/flowers/blue_swingtip_snowy.json deleted file mode 100644 index 6897c9137f..0000000000 --- a/src/main/resources/assets/aether/models/item/flowers/blue_swingtip_snowy.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "aether:block/flowers/blue_swingtip_snowy" -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/flowers/burstblossom.json b/src/main/resources/assets/aether/models/item/flowers/burstblossom.json deleted file mode 100644 index c6f82a913a..0000000000 --- a/src/main/resources/assets/aether/models/item/flowers/burstblossom.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "aether:blocks/flowers/burstblossom" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/flowers/burstblossom_snowy.json b/src/main/resources/assets/aether/models/item/flowers/burstblossom_snowy.json deleted file mode 100644 index f2366659dc..0000000000 --- a/src/main/resources/assets/aether/models/item/flowers/burstblossom_snowy.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "aether:block/flowers/burstblossom_snowy" -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/flowers/forgotten_rose.json b/src/main/resources/assets/aether/models/item/flowers/forgotten_rose.json deleted file mode 100644 index c2f44ce9f5..0000000000 --- a/src/main/resources/assets/aether/models/item/flowers/forgotten_rose.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "aether:blocks/flowers/forgotten_rose" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/flowers/forgotten_rose_snowy.json b/src/main/resources/assets/aether/models/item/flowers/forgotten_rose_snowy.json deleted file mode 100644 index 72159b7d6d..0000000000 --- a/src/main/resources/assets/aether/models/item/flowers/forgotten_rose_snowy.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "aether:block/flowers/forgotten_rose_snowy" -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/flowers/green_swingtip.json b/src/main/resources/assets/aether/models/item/flowers/green_swingtip.json deleted file mode 100644 index 96976f5138..0000000000 --- a/src/main/resources/assets/aether/models/item/flowers/green_swingtip.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "aether:blocks/flowers/green_swingtip" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/flowers/green_swingtip_snowy.json b/src/main/resources/assets/aether/models/item/flowers/green_swingtip_snowy.json deleted file mode 100644 index ca68f371d9..0000000000 --- a/src/main/resources/assets/aether/models/item/flowers/green_swingtip_snowy.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "aether:block/flowers/green_swingtip_snowy" -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/flowers/highlands_tulips.json b/src/main/resources/assets/aether/models/item/flowers/highlands_tulips.json deleted file mode 100644 index 8ab96118f6..0000000000 --- a/src/main/resources/assets/aether/models/item/flowers/highlands_tulips.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "aether:blocks/flowers/highlands_tulips" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/flowers/highlands_tulips_snowy.json b/src/main/resources/assets/aether/models/item/flowers/highlands_tulips_snowy.json deleted file mode 100644 index 2d0e5cade5..0000000000 --- a/src/main/resources/assets/aether/models/item/flowers/highlands_tulips_snowy.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "aether:block/flowers/highlands_tulips_snowy" -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/flowers/irradiated_flower.json b/src/main/resources/assets/aether/models/item/flowers/irradiated_flower.json deleted file mode 100644 index 70e2abf28c..0000000000 --- a/src/main/resources/assets/aether/models/item/flowers/irradiated_flower.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "aether:blocks/flowers/irradiated_flower" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/flowers/irradiated_flower_snowy.json b/src/main/resources/assets/aether/models/item/flowers/irradiated_flower_snowy.json deleted file mode 100644 index d6f7943ebb..0000000000 --- a/src/main/resources/assets/aether/models/item/flowers/irradiated_flower_snowy.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "aether:block/flowers/irradiated_flower_snowy" -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/flowers/magnetic_shroom.json b/src/main/resources/assets/aether/models/item/flowers/magnetic_shroom.json deleted file mode 100644 index 66ae5aba5b..0000000000 --- a/src/main/resources/assets/aether/models/item/flowers/magnetic_shroom.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "aether:blocks/flowers/magnetic_shroom" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/flowers/magnetic_shroom_snowy.json b/src/main/resources/assets/aether/models/item/flowers/magnetic_shroom_snowy.json deleted file mode 100644 index 717cd4d547..0000000000 --- a/src/main/resources/assets/aether/models/item/flowers/magnetic_shroom_snowy.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "aether:block/flowers/magnetic_shroom_snowy" -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/flowers/neverbloom.json b/src/main/resources/assets/aether/models/item/flowers/neverbloom.json deleted file mode 100644 index ef20c71f03..0000000000 --- a/src/main/resources/assets/aether/models/item/flowers/neverbloom.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "aether:blocks/flowers/neverbloom" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/flowers/neverbloom_snowy.json b/src/main/resources/assets/aether/models/item/flowers/neverbloom_snowy.json deleted file mode 100644 index be77b2cb90..0000000000 --- a/src/main/resources/assets/aether/models/item/flowers/neverbloom_snowy.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "aether:block/flowers/neverbloom_snowy" -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/flowers/pink_swingtip.json b/src/main/resources/assets/aether/models/item/flowers/pink_swingtip.json deleted file mode 100644 index 7d4c660d89..0000000000 --- a/src/main/resources/assets/aether/models/item/flowers/pink_swingtip.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "aether:blocks/flowers/pink_swingtip" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/flowers/pink_swingtip_snowy.json b/src/main/resources/assets/aether/models/item/flowers/pink_swingtip_snowy.json deleted file mode 100644 index 5cf362c846..0000000000 --- a/src/main/resources/assets/aether/models/item/flowers/pink_swingtip_snowy.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "aether:block/flowers/pink_swingtip_snowy" -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/flowers/purple_flower.json b/src/main/resources/assets/aether/models/item/flowers/purple_flower.json deleted file mode 100644 index 722225d863..0000000000 --- a/src/main/resources/assets/aether/models/item/flowers/purple_flower.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "aether:blocks/flowers/purple_flower" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/flowers/purple_flower_snowy.json b/src/main/resources/assets/aether/models/item/flowers/purple_flower_snowy.json deleted file mode 100644 index 1c47bbcf27..0000000000 --- a/src/main/resources/assets/aether/models/item/flowers/purple_flower_snowy.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "aether:block/flowers/purple_flower_snowy" -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/flowers/quickshoot.json b/src/main/resources/assets/aether/models/item/flowers/quickshoot.json deleted file mode 100644 index d2bbbec81d..0000000000 --- a/src/main/resources/assets/aether/models/item/flowers/quickshoot.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "aether:blocks/flowers/quickshoot" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/flowers/quickshoot_snowy.json b/src/main/resources/assets/aether/models/item/flowers/quickshoot_snowy.json deleted file mode 100644 index eede789710..0000000000 --- a/src/main/resources/assets/aether/models/item/flowers/quickshoot_snowy.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "aether:block/flowers/quickshoot_snowy" -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/flowers/stoneshroom.json b/src/main/resources/assets/aether/models/item/flowers/stoneshroom.json deleted file mode 100644 index d910eafcac..0000000000 --- a/src/main/resources/assets/aether/models/item/flowers/stoneshroom.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "aether:blocks/flowers/stoneshroom" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/flowers/stoneshroom_snowy.json b/src/main/resources/assets/aether/models/item/flowers/stoneshroom_snowy.json deleted file mode 100644 index cf551f10ff..0000000000 --- a/src/main/resources/assets/aether/models/item/flowers/stoneshroom_snowy.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "aether:block/flowers/stoneshroom_snowy" -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/flowers/white_rose.json b/src/main/resources/assets/aether/models/item/flowers/white_rose.json deleted file mode 100644 index bc55cdbcc9..0000000000 --- a/src/main/resources/assets/aether/models/item/flowers/white_rose.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "aether:blocks/flowers/white_rose" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/flowers/white_rose_snowy.json b/src/main/resources/assets/aether/models/item/flowers/white_rose_snowy.json deleted file mode 100644 index 9e6f0d1a84..0000000000 --- a/src/main/resources/assets/aether/models/item/flowers/white_rose_snowy.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "aether:block/flowers/white_rose_snowy" -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/fried_moa_egg.json b/src/main/resources/assets/aether/models/item/fried_moa_egg.json deleted file mode 100644 index a1ab9abc46..0000000000 --- a/src/main/resources/assets/aether/models/item/fried_moa_egg.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "aether:items/consumables/fried_moa_egg" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/ginger_bread_man.json b/src/main/resources/assets/aether/models/item/ginger_bread_man.json deleted file mode 100644 index ddd1df1647..0000000000 --- a/src/main/resources/assets/aether/models/item/ginger_bread_man.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "aether:items/consumables/ginger_bread_man" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/glass_pane/crude_scatterglass.json b/src/main/resources/assets/aether/models/item/glass_pane/crude_scatterglass.json deleted file mode 100644 index bf8177d7bb..0000000000 --- a/src/main/resources/assets/aether/models/item/glass_pane/crude_scatterglass.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "aether:blocks/crude_scatterglass" - } -} diff --git a/src/main/resources/assets/aether/models/item/glass_pane/crude_scatterglass_arkenium.json b/src/main/resources/assets/aether/models/item/glass_pane/crude_scatterglass_arkenium.json deleted file mode 100644 index e011c19e1e..0000000000 --- a/src/main/resources/assets/aether/models/item/glass_pane/crude_scatterglass_arkenium.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "aether:blocks/arkenium_frame_crude_scatterglass" - } -} diff --git a/src/main/resources/assets/aether/models/item/glass_pane/crude_scatterglass_skyroot.json b/src/main/resources/assets/aether/models/item/glass_pane/crude_scatterglass_skyroot.json deleted file mode 100644 index 654deb5efb..0000000000 --- a/src/main/resources/assets/aether/models/item/glass_pane/crude_scatterglass_skyroot.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "aether:blocks/skyroot_frame_crude_scatterglass" - } -} diff --git a/src/main/resources/assets/aether/models/item/glass_pane/quicksoil_glass.json b/src/main/resources/assets/aether/models/item/glass_pane/quicksoil_glass.json deleted file mode 100644 index f3ffbe37b4..0000000000 --- a/src/main/resources/assets/aether/models/item/glass_pane/quicksoil_glass.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "aether:blocks/quicksoil_glass" - } -} diff --git a/src/main/resources/assets/aether/models/item/glass_pane/quicksoil_glass_arkenium.json b/src/main/resources/assets/aether/models/item/glass_pane/quicksoil_glass_arkenium.json deleted file mode 100644 index ac09d3b0fc..0000000000 --- a/src/main/resources/assets/aether/models/item/glass_pane/quicksoil_glass_arkenium.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "aether:blocks/arkenium_frame_quicksoil_glass" - } -} diff --git a/src/main/resources/assets/aether/models/item/glass_pane/quicksoil_glass_skyroot.json b/src/main/resources/assets/aether/models/item/glass_pane/quicksoil_glass_skyroot.json deleted file mode 100644 index 410c2f3089..0000000000 --- a/src/main/resources/assets/aether/models/item/glass_pane/quicksoil_glass_skyroot.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "aether:blocks/skyroot_frame_quicksoil_glass" - } -} diff --git a/src/main/resources/assets/aether/models/item/glass_pane/scatterglass.json b/src/main/resources/assets/aether/models/item/glass_pane/scatterglass.json deleted file mode 100644 index 21b0a567c3..0000000000 --- a/src/main/resources/assets/aether/models/item/glass_pane/scatterglass.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "aether:blocks/scatterglass" - } -} diff --git a/src/main/resources/assets/aether/models/item/glass_pane/scatterglass_arkenium.json b/src/main/resources/assets/aether/models/item/glass_pane/scatterglass_arkenium.json deleted file mode 100644 index bc7f744164..0000000000 --- a/src/main/resources/assets/aether/models/item/glass_pane/scatterglass_arkenium.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "aether:blocks/arkenium_frame_scatterglass" - } -} diff --git a/src/main/resources/assets/aether/models/item/glass_pane/scatterglass_skyroot.json b/src/main/resources/assets/aether/models/item/glass_pane/scatterglass_skyroot.json deleted file mode 100644 index 4bc47bf966..0000000000 --- a/src/main/resources/assets/aether/models/item/glass_pane/scatterglass_skyroot.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "aether:blocks/skyroot_frame_scatterglass" - } -} diff --git a/src/main/resources/assets/aether/models/item/gold_screw.json b/src/main/resources/assets/aether/models/item/gold_screw.json deleted file mode 100644 index 7cf06351a3..0000000000 --- a/src/main/resources/assets/aether/models/item/gold_screw.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "aether:items/charms/gold_screw" - } -} diff --git a/src/main/resources/assets/aether/models/item/golden_amber.json b/src/main/resources/assets/aether/models/item/golden_amber.json deleted file mode 100644 index f519672ed5..0000000000 --- a/src/main/resources/assets/aether/models/item/golden_amber.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "aether:items/materials/golden_amber" - } -} diff --git a/src/main/resources/assets/aether/models/item/grass/aether_grass.json b/src/main/resources/assets/aether/models/item/grass/aether_grass.json deleted file mode 100644 index 7e68dcd6a7..0000000000 --- a/src/main/resources/assets/aether/models/item/grass/aether_grass.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "aether:block/grass/aether_grass" -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/grass/arctic_grass.json b/src/main/resources/assets/aether/models/item/grass/arctic_grass.json deleted file mode 100644 index d108bc9ed8..0000000000 --- a/src/main/resources/assets/aether/models/item/grass/arctic_grass.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "aether:block/grass/arctic_grass" -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/grass/enchanted_grass.json b/src/main/resources/assets/aether/models/item/grass/enchanted_grass.json deleted file mode 100644 index cb0d540e95..0000000000 --- a/src/main/resources/assets/aether/models/item/grass/enchanted_grass.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "aether:block/grass/enchanted_grass" -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/grass/irradiated_grass.json b/src/main/resources/assets/aether/models/item/grass/irradiated_grass.json deleted file mode 100644 index 5c38cfd83b..0000000000 --- a/src/main/resources/assets/aether/models/item/grass/irradiated_grass.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "aether:block/grass/irradiated_grass" -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/grass/magnetic_grass.json b/src/main/resources/assets/aether/models/item/grass/magnetic_grass.json deleted file mode 100644 index b2ff642fc1..0000000000 --- a/src/main/resources/assets/aether/models/item/grass/magnetic_grass.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "aether:block/grass/magnetic_grass" -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/gravitite_block.json b/src/main/resources/assets/aether/models/item/gravitite_block.json deleted file mode 100644 index e9bd3c3fa2..0000000000 --- a/src/main/resources/assets/aether/models/item/gravitite_block.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "aether:block/gravitite_block" -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/gravitite_plate.json b/src/main/resources/assets/aether/models/item/gravitite_plate.json deleted file mode 100644 index 739074149c..0000000000 --- a/src/main/resources/assets/aether/models/item/gravitite_plate.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "aether:items/materials/gravitite_plate" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/gravitite_shield.json b/src/main/resources/assets/aether/models/item/gravitite_shield.json deleted file mode 100644 index c3f9521e36..0000000000 --- a/src/main/resources/assets/aether/models/item/gravitite_shield.json +++ /dev/null @@ -1,48 +0,0 @@ -{ - "parent": "aether:item/gravitite_shield_base", - "display": { - "thirdperson_righthand": { - "rotation": [ 0, 90, 0 ], - "translation": [ 0, -2, 4 ], - "scale": [ 1, 1, 1 ] - }, - "thirdperson_lefthand": { - "rotation": [ 0, 90, 0 ], - "translation": [ 0, -2, 4 ], - "scale": [ 1, 1, 1 ] - }, - "firstperson_righthand": { - "rotation": [ 0, 180, 5 ], - "translation": [ 2, -10, 2 ], - "scale": [ 1.25, 1.25, 1.25 ] - }, - "firstperson_lefthand": { - "rotation": [ 0, 180, 5 ], - "translation": [ 2, -10, 2 ], - "scale": [ 1.25, 1.25, 1.25 ] - }, - "gui": { - "rotation": [ 15, -25, -5 ], - "translation": [ 0, 0, 0 ], - "scale": [ 0.65, 0.65, 0.65 ] - }, - "fixed": { - "rotation": [ 0, 180, 0 ], - "translation": [ -2, 4, -5 ], - "scale": [ 0.5, 0.5, 0.5 ] - }, - "ground": { - "rotation": [ 0, 0, 0 ], - "translation": [ 0, 0, 2 ], - "scale": [ 0.25, 0.25, 0.25 ] - } - }, - "overrides": [ - { - "predicate": { - "blocking": 1 - }, - "model": "aether:item/gravitite_shield_blocking" - } - ] -} diff --git a/src/main/resources/assets/aether/models/item/gravitite_shield_base.json b/src/main/resources/assets/aether/models/item/gravitite_shield_base.json deleted file mode 100644 index dbe8e9354a..0000000000 --- a/src/main/resources/assets/aether/models/item/gravitite_shield_base.json +++ /dev/null @@ -1,187 +0,0 @@ -{ - "textures": { - "0": "aether:items/shields/gravitite_shield/gravitite_handle", - "1": "aether:items/shields/gravitite_shield/gravitite_base1_n_d", - "2": "aether:items/shields/gravitite_shield/gravitite_base1_w_e", - "3": "aether:items/shields/gravitite_shield/gravitite_base1_s_u", - "4": "aether:items/shields/gravitite_shield/gravitite_base2", - "5": "aether:items/shields/gravitite_shield/gravitite_wing_righta", - "6": "aether:items/shields/gravitite_shield/gravitite_wing_rightb", - "7": "aether:items/shields/gravitite_shield/gravitite_wing_rightc", - "8": "aether:items/shields/gravitite_shield/gravitite_wing_lefta", - "9": "aether:items/shields/gravitite_shield/gravitite_wing_leftb", - "10": "aether:items/shields/gravitite_shield/gravitite_wing_leftc", - "11": "aether:items/shields/gravitite_shield/gravitite_center_mid" - }, - "elements": [ - { - "name": "Handle", - "from": [ 7, 5, 5 ], - "to": [ 9, 11, 11 ], - "faces": { - "north": { "texture": "#0", "uv": [ 6, 6, 8, 12 ] }, - "east": { "texture": "#0", "uv": [ 0, 6, 6, 12 ] }, - "south": { "texture": "#0", "uv": [ 6, 6, 8, 12 ] }, - "west": { "texture": "#0", "uv": [ 0, 6, 6, 12 ] }, - "up": { "texture": "#0", "uv": [ 6, 6, 8, 12 ] }, - "down": { "texture": "#0", "uv": [ 6, 6, 8, 12 ] } - } - }, - { - "name": "Base1", - "from": [ 0, 3, 11 ], - "to": [ 16, 15, 12 ], - "faces": { - "north": { "texture": "#1", "uv": [ 0, 1, 16, 13 ] }, - "east": { "texture": "#2", "uv": [ 3, 0, 4, 12 ] }, - "south": { "texture": "#3", "uv": [ 0, 1, 16, 13 ] }, - "west": { "texture": "#2", "uv": [ 0, 0, 1, 12 ] }, - "up": { "texture": "#3", "uv": [ 0, 0, 16, 1 ] }, - "down": { "texture": "#1", "uv": [ 0, 0, 16, 1 ] } - } - }, - { - "name": "Base2", - "from": [ 1, -1, 11 ], - "to": [ 7, 3, 12 ], - "faces": { - "north": { "texture": "#4", "uv": [ 8, 1, 14, 5 ] }, - "east": { "texture": "#4", "uv": [ 7, 1, 8, 5 ] }, - "south": { "texture": "#4", "uv": [ 1, 1, 7, 5 ] }, - "west": { "texture": "#4", "uv": [ 0, 1, 1, 5 ] }, - "up": { "texture": "#4", "uv": [ 1, 0, 7, 1 ] }, - "down": { "texture": "#4", "uv": [ 7, 0, 13, 1 ] } - } - }, - { - "name": "WingRight1", - "from": [ 0, 8, 12 ], - "to": [ 6, 19, 13 ], - "faces": { - "north": { "texture": "#5", "uv": [ 8, 1, 14, 12 ] }, - "east": { "texture": "#5", "uv": [ 7, 1, 8, 12 ] }, - "south": { "texture": "#5", "uv": [ 1, 1, 7, 12 ] }, - "west": { "texture": "#5", "uv": [ 0, 1, 1, 12 ] }, - "up": { "texture": "#5", "uv": [ 1, 0, 7, 1 ] }, - "down": { "texture": "#5", "uv": [ 7, 0, 13, 1 ] } - } - }, - { - "name": "WingRight2", - "from": [ 0, -3, 12 ], - "to": [ 6, 8, 13 ], - "faces": { - "north": { "texture": "#6", "uv": [ 8, 1, 14, 12 ] }, - "east": { "texture": "#6", "uv": [ 7, 1, 8, 12 ] }, - "south": { "texture": "#6", "uv": [ 1, 1, 7, 12 ] }, - "west": { "texture": "#6", "uv": [ 0, 1, 1, 12 ] }, - "up": { "texture": "#6", "uv": [ 1, 0, 7, 1 ] }, - "down": { "texture": "#6", "uv": [ 7, 0, 13, 1 ] } - } - }, - { - "name": "WingRight3", - "from": [ -1, 13, 12 ], - "to": [ 0, 19, 13 ], - "faces": { - "north": { "texture": "#7", "uv": [ 3, 1, 4, 7 ] }, - "east": { "texture": "#7", "uv": [ 2, 1, 3, 7 ] }, - "south": { "texture": "#7", "uv": [ 1, 1, 2, 7 ] }, - "west": { "texture": "#7", "uv": [ 0, 1, 1, 7 ] }, - "up": { "texture": "#7", "uv": [ 1, 0, 2, 1 ] }, - "down": { "texture": "#7", "uv": [ 2, 0, 3, 1 ] } - } - }, - { - "name": "WingRight4", - "from": [ -1, -3, 12 ], - "to": [ 0, 3, 13 ], - "faces": { - "north": { "texture": "#7", "uv": [ 3, 10, 4, 16 ] }, - "east": { "texture": "#7", "uv": [ 2, 10, 3, 16 ] }, - "south": { "texture": "#7", "uv": [ 1, 10, 2, 16 ] }, - "west": { "texture": "#7", "uv": [ 0, 10, 1, 16 ] }, - "up": { "texture": "#7", "uv": [ 1, 9, 2, 10 ] }, - "down": { "texture": "#7", "uv": [ 2, 9, 3, 10 ] } - } - }, - { - "name": "WingLeft1", - "from": [ 10, 8, 12 ], - "to": [ 16, 19, 13 ], - "faces": { - "north": { "texture": "#8", "uv": [ 10, 1, 16, 12 ] }, - "east": { "texture": "#8", "uv": [ 9, 1, 10, 12 ] }, - "south": { "texture": "#8", "uv": [ 3, 1, 9, 12 ] }, - "west": { "texture": "#8", "uv": [ 2, 1, 3, 12 ] }, - "up": { "texture": "#8", "uv": [ 3, 0, 9, 1 ] }, - "down": { "texture": "#8", "uv": [ 9, 0, 15, 1 ] } - } - }, - { - "name": "WingLeft2", - "from": [ 10, -3, 12 ], - "to": [ 16, 8, 13 ], - "faces": { - "north": { "texture": "#9", "uv": [ 10, 5, 16, 16 ] }, - "east": { "texture": "#9", "uv": [ 9, 5, 10, 16 ] }, - "south": { "texture": "#9", "uv": [ 3, 5, 9, 16 ] }, - "west": { "texture": "#9", "uv": [ 2, 5, 3, 16 ] }, - "up": { "texture": "#9", "uv": [ 3, 4, 9, 5 ] }, - "down": { "texture": "#9", "uv": [ 9, 4, 15, 5 ] } - } - }, - { - "name": "WingLeft3", - "from": [ 16, 13, 12 ], - "to": [ 17, 19, 13 ], - "faces": { - "north": { "texture": "#10", "uv": [ 15, 1, 16, 7 ] }, - "east": { "texture": "#10", "uv": [ 14, 1, 15, 7 ] }, - "south": { "texture": "#10", "uv": [ 13, 1, 14, 7 ] }, - "west": { "texture": "#10", "uv": [ 12, 1, 13, 7 ] }, - "up": { "texture": "#10", "uv": [ 13, 0, 14, 1 ] }, - "down": { "texture": "#10", "uv": [ 14, 0, 15, 1 ] } - } - }, - { - "name": "WingLeft4", - "from": [ 16, -3, 12 ], - "to": [ 17, 3, 13 ], - "faces": { - "north": { "texture": "#10", "uv": [ 15, 10, 16, 16 ] }, - "east": { "texture": "#10", "uv": [ 14, 10, 15, 16 ] }, - "south": { "texture": "#10", "uv": [ 13, 10, 14, 16 ] }, - "west": { "texture": "#10", "uv": [ 12, 10, 13, 16 ] }, - "up": { "texture": "#10", "uv": [ 13, 9, 14, 10 ] }, - "down": { "texture": "#10", "uv": [ 14, 9, 15, 10 ] } - } - }, - { - "name": "Base3", - "from": [ 9, -1, 11 ], - "to": [ 15, 3, 12 ], - "faces": { - "north": { "texture": "#4", "uv": [ 10, 6, 16, 10 ] }, - "east": { "texture": "#4", "uv": [ 9, 6, 10, 10 ] }, - "south": { "texture": "#4", "uv": [ 3, 6, 9, 10 ] }, - "west": { "texture": "#4", "uv": [ 2, 6, 3, 10 ] }, - "up": { "texture": "#4", "uv": [ 3, 5, 9, 6 ] }, - "down": { "texture": "#4", "uv": [ 9, 5, 15, 6 ] } - } - }, - { - "name": "CenterMid", - "from": [ 6, 5, 11.5 ], - "to": [ 10, 13, 12.5 ], - "faces": { - "north": { "texture": "#11", "uv": [ 6, 1, 10, 9 ] }, - "east": { "texture": "#11", "uv": [ 5, 1, 6, 9 ] }, - "south": { "texture": "#11", "uv": [ 1, 1, 5, 9 ] }, - "west": { "texture": "#11", "uv": [ 0, 1, 1, 9 ] }, - "up": { "texture": "#11", "uv": [ 1, 0, 5, 1 ] }, - "down": { "texture": "#11", "uv": [ 5, 0, 9, 1 ] } - } - } - ] -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/gravitite_shield_blocking.json b/src/main/resources/assets/aether/models/item/gravitite_shield_blocking.json deleted file mode 100644 index 6e5aec4b6c..0000000000 --- a/src/main/resources/assets/aether/models/item/gravitite_shield_blocking.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "parent": "aether:item/gravitite_shield_base", - "display": { - "thirdperson_righthand": { - "rotation": [ 45, 135, 0 ], - "translation": [ 2, -4, 3 ], - "scale": [ 1, 1, 1 ] - }, - "thirdperson_lefthand": { - "rotation": [ 45, 135, 0 ], - "translation": [ 2, -4, 3 ], - "scale": [ 1, 1, 1 ] - }, - "firstperson_righthand": { - "rotation": [ 0, 180, -5 ], - "translation": [ -3, -5, 1 ], - "scale": [ 1.25, 1.25, 1.25 ] - }, - "firstperson_lefthand": { - "rotation": [ 0, 180, -5 ], - "translation": [ -3, -5, 1 ], - "scale": [ 1.25, 1.25, 1.25 ] - }, - "gui": { - "rotation": [ 15, -25, -5 ], - "translation": [ 0, 0, 0 ], - "scale": [ 0.65, 0.65, 0.65 ] - } - } -} diff --git a/src/main/resources/assets/aether/models/item/greatroot_button.json b/src/main/resources/assets/aether/models/item/greatroot_button.json deleted file mode 100644 index efdd1841a9..0000000000 --- a/src/main/resources/assets/aether/models/item/greatroot_button.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "aether:block/greatroot_button/greatroot_button_inventory" -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/greatroot_fence.json b/src/main/resources/assets/aether/models/item/greatroot_fence.json deleted file mode 100644 index 3b08a2cb10..0000000000 --- a/src/main/resources/assets/aether/models/item/greatroot_fence.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/fence_inventory", - "textures": { - "texture": "aether:blocks/dark_skyroot_planks/greatroot_planks" - } -} diff --git a/src/main/resources/assets/aether/models/item/greatroot_fence_gate.json b/src/main/resources/assets/aether/models/item/greatroot_fence_gate.json deleted file mode 100644 index 8c0e8bd385..0000000000 --- a/src/main/resources/assets/aether/models/item/greatroot_fence_gate.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "aether:block/greatroot_fence_gate/greatroot_fence_gate_closed", - "textures": { - "texture": "aether:blocks/dark_skyroot_planks/greatroot_planks" - } -} diff --git a/src/main/resources/assets/aether/models/item/greatroot_pressure_plate.json b/src/main/resources/assets/aether/models/item/greatroot_pressure_plate.json deleted file mode 100644 index ffbb083214..0000000000 --- a/src/main/resources/assets/aether/models/item/greatroot_pressure_plate.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "aether:block/greatroot_pressure_plate/greatroot_pressure_plate_up" -} diff --git a/src/main/resources/assets/aether/models/item/healing_stone/healing_stone.json b/src/main/resources/assets/aether/models/item/healing_stone/healing_stone.json deleted file mode 100644 index ea8f7ac577..0000000000 --- a/src/main/resources/assets/aether/models/item/healing_stone/healing_stone.json +++ /dev/null @@ -1,38 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "aether:items/consumables/healing_stone/healing_stone" - }, - "overrides": [ - { - "predicate": { - "uses": 0.2 - }, - "model": "aether:item/healing_stone/stages/stage5" - }, - { - "predicate": { - "uses": 0.4 - }, - "model": "aether:item/healing_stone/stages/stage4" - }, - { - "predicate": { - "uses": 0.6 - }, - "model": "aether:item/healing_stone/stages/stage3" - }, - { - "predicate": { - "uses": 0.8 - }, - "model": "aether:item/healing_stone/stages/stage2" - }, - { - "predicate": { - "uses": 1.0 - }, - "model": "aether:item/healing_stone/stages/stage1" - } - ] -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/healing_stone/healing_stone_depleted.json b/src/main/resources/assets/aether/models/item/healing_stone/healing_stone_depleted.json deleted file mode 100644 index 6d905d3abc..0000000000 --- a/src/main/resources/assets/aether/models/item/healing_stone/healing_stone_depleted.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "aether:items/consumables/healing_stone/healing_stone_depleted" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/healing_stone/stages/stage1.json b/src/main/resources/assets/aether/models/item/healing_stone/stages/stage1.json deleted file mode 100644 index cfafcf26fc..0000000000 --- a/src/main/resources/assets/aether/models/item/healing_stone/stages/stage1.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "aether:items/consumables/healing_stone/healing_stone" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/healing_stone/stages/stage2.json b/src/main/resources/assets/aether/models/item/healing_stone/stages/stage2.json deleted file mode 100644 index 3e95c32e2a..0000000000 --- a/src/main/resources/assets/aether/models/item/healing_stone/stages/stage2.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "aether:items/consumables/healing_stone/healing_stone_2" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/healing_stone/stages/stage3.json b/src/main/resources/assets/aether/models/item/healing_stone/stages/stage3.json deleted file mode 100644 index 03fdace792..0000000000 --- a/src/main/resources/assets/aether/models/item/healing_stone/stages/stage3.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "aether:items/consumables/healing_stone/healing_stone_3" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/healing_stone/stages/stage4.json b/src/main/resources/assets/aether/models/item/healing_stone/stages/stage4.json deleted file mode 100644 index 52710b880f..0000000000 --- a/src/main/resources/assets/aether/models/item/healing_stone/stages/stage4.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "aether:items/consumables/healing_stone/healing_stone_4" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/healing_stone/stages/stage5.json b/src/main/resources/assets/aether/models/item/healing_stone/stages/stage5.json deleted file mode 100644 index 26366960fd..0000000000 --- a/src/main/resources/assets/aether/models/item/healing_stone/stages/stage5.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "aether:items/consumables/healing_stone/healing_stone_5" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/hellfirestone_bricks/base_bricks.json b/src/main/resources/assets/aether/models/item/hellfirestone_bricks/base_bricks.json deleted file mode 100644 index ba3ea617da..0000000000 --- a/src/main/resources/assets/aether/models/item/hellfirestone_bricks/base_bricks.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "aether:block/hellfirestone_bricks/base_bricks" -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/hellfirestone_bricks/base_pillar.json b/src/main/resources/assets/aether/models/item/hellfirestone_bricks/base_pillar.json deleted file mode 100644 index 29475bd5d6..0000000000 --- a/src/main/resources/assets/aether/models/item/hellfirestone_bricks/base_pillar.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "aether:block/hellfirestone_bricks/base_pillar" -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/hellfirestone_bricks/capstone_bricks.json b/src/main/resources/assets/aether/models/item/hellfirestone_bricks/capstone_bricks.json deleted file mode 100644 index e8eeaa925f..0000000000 --- a/src/main/resources/assets/aether/models/item/hellfirestone_bricks/capstone_bricks.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "aether:block/hellfirestone_bricks/capstone_bricks" -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/hellfirestone_bricks/capstone_pillar.json b/src/main/resources/assets/aether/models/item/hellfirestone_bricks/capstone_pillar.json deleted file mode 100644 index 1145d4f04e..0000000000 --- a/src/main/resources/assets/aether/models/item/hellfirestone_bricks/capstone_pillar.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "aether:block/hellfirestone_bricks/capstone_pillar" -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/hellfirestone_bricks/flagstones.json b/src/main/resources/assets/aether/models/item/hellfirestone_bricks/flagstones.json deleted file mode 100644 index 3f956cd720..0000000000 --- a/src/main/resources/assets/aether/models/item/hellfirestone_bricks/flagstones.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "aether:block/hellfirestone_bricks/flagstones" -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/hellfirestone_bricks/keystone.json b/src/main/resources/assets/aether/models/item/hellfirestone_bricks/keystone.json deleted file mode 100644 index 21fd98f812..0000000000 --- a/src/main/resources/assets/aether/models/item/hellfirestone_bricks/keystone.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "aether:block/hellfirestone_bricks/keystone" -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/hellfirestone_bricks/lantern.json b/src/main/resources/assets/aether/models/item/hellfirestone_bricks/lantern.json deleted file mode 100644 index a021bc35d0..0000000000 --- a/src/main/resources/assets/aether/models/item/hellfirestone_bricks/lantern.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "aether:block/hellfirestone_bricks/lantern" -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/hellfirestone_bricks/normal.json b/src/main/resources/assets/aether/models/item/hellfirestone_bricks/normal.json deleted file mode 100644 index 5559b86552..0000000000 --- a/src/main/resources/assets/aether/models/item/hellfirestone_bricks/normal.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "aether:block/hellfirestone_bricks/normal" -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/hellfirestone_bricks/pillar.json b/src/main/resources/assets/aether/models/item/hellfirestone_bricks/pillar.json deleted file mode 100644 index 74bf41e5e5..0000000000 --- a/src/main/resources/assets/aether/models/item/hellfirestone_bricks/pillar.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "aether:block/hellfirestone_bricks/pillar" -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/highlands_ice.json b/src/main/resources/assets/aether/models/item/highlands_ice.json deleted file mode 100644 index 465caa8689..0000000000 --- a/src/main/resources/assets/aether/models/item/highlands_ice.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "aether:block/highlands_ice" -} diff --git a/src/main/resources/assets/aether/models/item/highlands_packed_ice.json b/src/main/resources/assets/aether/models/item/highlands_packed_ice.json deleted file mode 100644 index f23fdf427d..0000000000 --- a/src/main/resources/assets/aether/models/item/highlands_packed_ice.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "aether:block/highlands_packed_ice" -} diff --git a/src/main/resources/assets/aether/models/item/highlands_snow.json b/src/main/resources/assets/aether/models/item/highlands_snow.json deleted file mode 100644 index e93650c1b9..0000000000 --- a/src/main/resources/assets/aether/models/item/highlands_snow.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "aether:block/highlands_snow" -} diff --git a/src/main/resources/assets/aether/models/item/highlands_snow_height2.json b/src/main/resources/assets/aether/models/item/highlands_snow_height2.json deleted file mode 100644 index 57007d9941..0000000000 --- a/src/main/resources/assets/aether/models/item/highlands_snow_height2.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "aether:block/highlands_snow_height2" -} diff --git a/src/main/resources/assets/aether/models/item/holystone/blood_moss_holystone.json b/src/main/resources/assets/aether/models/item/holystone/blood_moss_holystone.json deleted file mode 100644 index 9da017057a..0000000000 --- a/src/main/resources/assets/aether/models/item/holystone/blood_moss_holystone.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "aether:block/holystone/blood_holystone" -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/holystone/holystone.json b/src/main/resources/assets/aether/models/item/holystone/holystone.json deleted file mode 100644 index ffeb9aff36..0000000000 --- a/src/main/resources/assets/aether/models/item/holystone/holystone.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "aether:block/holystone/holystone" -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/holystone/irradiated_holystone.json b/src/main/resources/assets/aether/models/item/holystone/irradiated_holystone.json deleted file mode 100644 index 2fce802ef8..0000000000 --- a/src/main/resources/assets/aether/models/item/holystone/irradiated_holystone.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "aether:block/holystone/irradiated_holystone" -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/holystone/mossy_holystone.json b/src/main/resources/assets/aether/models/item/holystone/mossy_holystone.json deleted file mode 100644 index 75aaa7ed96..0000000000 --- a/src/main/resources/assets/aether/models/item/holystone/mossy_holystone.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "aether:block/holystone/mossy_holystone" -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/holystone_bookshelf.json b/src/main/resources/assets/aether/models/item/holystone_bookshelf.json deleted file mode 100644 index 7a7ae442ef..0000000000 --- a/src/main/resources/assets/aether/models/item/holystone_bookshelf.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "aether:block/holystone_bookshelf" -} diff --git a/src/main/resources/assets/aether/models/item/holystone_brick.json b/src/main/resources/assets/aether/models/item/holystone_brick.json deleted file mode 100644 index a56a84ddc9..0000000000 --- a/src/main/resources/assets/aether/models/item/holystone_brick.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "aether:block/holystone_brick" -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/holystone_bricks/base_bricks.json b/src/main/resources/assets/aether/models/item/holystone_bricks/base_bricks.json deleted file mode 100644 index b50d877d0f..0000000000 --- a/src/main/resources/assets/aether/models/item/holystone_bricks/base_bricks.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "aether:block/holystone_bricks/base_bricks" -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/holystone_bricks/base_pillar.json b/src/main/resources/assets/aether/models/item/holystone_bricks/base_pillar.json deleted file mode 100644 index 0d1ab17fc7..0000000000 --- a/src/main/resources/assets/aether/models/item/holystone_bricks/base_pillar.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "aether:block/holystone_bricks/base_pillar" -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/holystone_bricks/capstone_bricks.json b/src/main/resources/assets/aether/models/item/holystone_bricks/capstone_bricks.json deleted file mode 100644 index 3dfd7db10e..0000000000 --- a/src/main/resources/assets/aether/models/item/holystone_bricks/capstone_bricks.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "aether:block/holystone_bricks/capstone_bricks" -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/holystone_bricks/capstone_pillar.json b/src/main/resources/assets/aether/models/item/holystone_bricks/capstone_pillar.json deleted file mode 100644 index f7f11170de..0000000000 --- a/src/main/resources/assets/aether/models/item/holystone_bricks/capstone_pillar.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "aether:block/holystone_bricks/capstone_pillar" -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/holystone_bricks/flagstones.json b/src/main/resources/assets/aether/models/item/holystone_bricks/flagstones.json deleted file mode 100644 index 9485d12666..0000000000 --- a/src/main/resources/assets/aether/models/item/holystone_bricks/flagstones.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "aether:block/holystone_bricks/flagstones" -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/holystone_bricks/headstone.json b/src/main/resources/assets/aether/models/item/holystone_bricks/headstone.json deleted file mode 100644 index 8080de0062..0000000000 --- a/src/main/resources/assets/aether/models/item/holystone_bricks/headstone.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "aether:block/holystone_bricks/headstone" -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/holystone_bricks/keystone.json b/src/main/resources/assets/aether/models/item/holystone_bricks/keystone.json deleted file mode 100644 index 41fd8ff1cc..0000000000 --- a/src/main/resources/assets/aether/models/item/holystone_bricks/keystone.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "aether:block/holystone_bricks/keystone" -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/holystone_bricks/normal.json b/src/main/resources/assets/aether/models/item/holystone_bricks/normal.json deleted file mode 100644 index 17786c3ab4..0000000000 --- a/src/main/resources/assets/aether/models/item/holystone_bricks/normal.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "aether:block/holystone_bricks/normal" -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/holystone_bricks/pillar.json b/src/main/resources/assets/aether/models/item/holystone_bricks/pillar.json deleted file mode 100644 index 7621536cc0..0000000000 --- a/src/main/resources/assets/aether/models/item/holystone_bricks/pillar.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "aether:block/holystone_bricks/pillar" -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/holystone_button.json b/src/main/resources/assets/aether/models/item/holystone_button.json deleted file mode 100644 index 8b3728745c..0000000000 --- a/src/main/resources/assets/aether/models/item/holystone_button.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "aether:block/holystone_button/holystone_button_inventory" -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/holystone_furnace/holystone_furnace_lit.json b/src/main/resources/assets/aether/models/item/holystone_furnace/holystone_furnace_lit.json deleted file mode 100644 index 4bfef7ff9b..0000000000 --- a/src/main/resources/assets/aether/models/item/holystone_furnace/holystone_furnace_lit.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "aether:block/holystone_furnace/holystone_furnace_lit" -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/holystone_furnace/holystone_furnace_unlit.json b/src/main/resources/assets/aether/models/item/holystone_furnace/holystone_furnace_unlit.json deleted file mode 100644 index 4117f4bb39..0000000000 --- a/src/main/resources/assets/aether/models/item/holystone_furnace/holystone_furnace_unlit.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "aether:block/holystone_furnace/holystone_furnace_unlit" -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/holystone_pressure_plate.json b/src/main/resources/assets/aether/models/item/holystone_pressure_plate.json deleted file mode 100644 index 25b2d42e59..0000000000 --- a/src/main/resources/assets/aether/models/item/holystone_pressure_plate.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "aether:block/holystone_pressure_plate/holystone_pressure_plate_up" -} diff --git a/src/main/resources/assets/aether/models/item/holystone_quartz_ore.json b/src/main/resources/assets/aether/models/item/holystone_quartz_ore.json deleted file mode 100644 index 818d61b400..0000000000 --- a/src/main/resources/assets/aether/models/item/holystone_quartz_ore.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "aether:block/holystone_quartz_ore" -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/holystone_rock.json b/src/main/resources/assets/aether/models/item/holystone_rock.json deleted file mode 100644 index 3d270800c6..0000000000 --- a/src/main/resources/assets/aether/models/item/holystone_rock.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "aether:block/holystone_rock/holystone_rock" -} diff --git a/src/main/resources/assets/aether/models/item/holystone_shield.json b/src/main/resources/assets/aether/models/item/holystone_shield.json deleted file mode 100644 index e66bbf3446..0000000000 --- a/src/main/resources/assets/aether/models/item/holystone_shield.json +++ /dev/null @@ -1,48 +0,0 @@ -{ - "parent": "aether:item/holystone_shield_base", - "display": { - "thirdperson_righthand": { - "rotation": [ 0, 90, 0 ], - "translation": [ 0, -2, 4 ], - "scale": [ 1, 1, 1 ] - }, - "thirdperson_lefthand": { - "rotation": [ 0, 90, 0 ], - "translation": [ 0, -2, 4 ], - "scale": [ 1, 1, 1 ] - }, - "firstperson_righthand": { - "rotation": [ 0, 180, 5 ], - "translation": [ 2, -10, 2 ], - "scale": [ 1.25, 1.25, 1.25 ] - }, - "firstperson_lefthand": { - "rotation": [ 0, 180, 5 ], - "translation": [ 2, -10, 2 ], - "scale": [ 1.25, 1.25, 1.25 ] - }, - "gui": { - "rotation": [ 15, -25, -5 ], - "translation": [ 0, 0, 0 ], - "scale": [ 0.65, 0.65, 0.65 ] - }, - "fixed": { - "rotation": [ 0, 180, 0 ], - "translation": [ -2, 4, -5 ], - "scale": [ 0.5, 0.5, 0.5 ] - }, - "ground": { - "rotation": [ 0, 0, 0 ], - "translation": [ 0, 0, 2 ], - "scale": [ 0.25, 0.25, 0.25 ] - } - }, - "overrides": [ - { - "predicate": { - "blocking": 1 - }, - "model": "aether:item/holystone_shield_blocking" - } - ] -} diff --git a/src/main/resources/assets/aether/models/item/holystone_shield_base.json b/src/main/resources/assets/aether/models/item/holystone_shield_base.json deleted file mode 100644 index 6069d12f33..0000000000 --- a/src/main/resources/assets/aether/models/item/holystone_shield_base.json +++ /dev/null @@ -1,251 +0,0 @@ -{ - "textures": { - "0": "aether:items/shields/holystone_shield/holystone_handle", - "1": "aether:items/shields/holystone_shield/holystone_base1_n_d", - "2": "aether:items/shields/holystone_shield/holystone_base1_w_e", - "3": "aether:items/shields/holystone_shield/holystone_base1_s_u", - "4": "aether:items/shields/holystone_shield/holystone_base2", - "5": "aether:items/shields/holystone_shield/holystone_center_mid", - "6": "aether:items/shields/holystone_shield/holystone_wing_right1", - "7": "aether:items/shields/holystone_shield/holystone_wing_right2", - "8": "aether:items/shields/holystone_shield/holystone_wing_left1", - "9": "aether:items/shields/holystone_shield/holystone_wing_left2", - "10": "aether:items/shields/holystone_shield/holystone_center_left_right" - }, - "elements": [ - { - "name": "Handle", - "from": [ 7, 5, 5 ], - "to": [ 9, 11, 11 ], - "faces": { - "north": { "texture": "#0", "uv": [ 5, 6, 7, 12 ] }, - "east": { "texture": "#0", "uv": [ 7, 6, 13, 12 ] }, - "south": { "texture": "#0", "uv": [ 5, 6, 7, 12 ] }, - "west": { "texture": "#0", "uv": [ 7, 6, 13, 12 ] }, - "up": { "texture": "#0", "uv": [ 5, 6, 7, 12 ] }, - "down": { "texture": "#0", "uv": [ 5, 6, 7, 12 ] } - } - }, - { - "name": "Base1", - "from": [ 0, 3, 11 ], - "to": [ 16, 15, 12 ], - "faces": { - "north": { "texture": "#1", "uv": [ 0, 1, 16, 13 ] }, - "east": { "texture": "#2", "uv": [ 3, 0, 4, 12 ] }, - "south": { "texture": "#3", "uv": [ 0, 1, 16, 13 ] }, - "west": { "texture": "#2", "uv": [ 0, 0, 1, 12 ] }, - "up": { "texture": "#3", "uv": [ 0, 0, 16, 1 ] }, - "down": { "texture": "#1", "uv": [ 0, 0, 16, 1 ] } - } - }, - { - "name": "Base2", - "from": [ 2, 1, 11 ], - "to": [ 14, 3, 12 ], - "faces": { - "north": { "texture": "#4", "uv": [ 4, 5, 16, 7 ] }, - "east": { "texture": "#4", "uv": [ 3, 5, 4, 7 ] }, - "south": { "texture": "#4", "uv": [ 1, 2, 13, 4 ] }, - "west": { "texture": "#4", "uv": [ 0, 2, 1, 4 ] }, - "up": { "texture": "#4", "uv": [ 1, 1, 13, 2 ] }, - "down": { "texture": "#4", "uv": [ 3, 4, 15, 5 ] } - } - }, - { - "name": "Base3", - "from": [ 4, -1, 11 ], - "to": [ 12, 1, 12 ], - "faces": { - "north": { "texture": "#4", "uv": [ 8, 11, 16, 13 ] }, - "east": { "texture": "#4", "uv": [ 7, 11, 8, 13 ] }, - "south": { "texture": "#4", "uv": [ 1, 8, 9, 10 ] }, - "west": { "texture": "#4", "uv": [ 0, 8, 1, 10 ] }, - "up": { "texture": "#4", "uv": [ 1, 7, 9, 8 ] }, - "down": { "texture": "#4", "uv": [ 7, 10, 15, 11 ] } - } - }, - { - "name": "Base4", - "from": [ 6, -3, 11 ], - "to": [ 10, -1, 12 ], - "faces": { - "north": { "texture": "#4", "uv": [ 9, 14, 13, 16 ] }, - "east": { "texture": "#4", "uv": [ 8, 14, 9, 16 ] }, - "south": { "texture": "#4", "uv": [ 4, 14, 8, 16 ] }, - "west": { "texture": "#4", "uv": [ 3, 14, 4, 16 ] }, - "up": { "texture": "#4", "uv": [ 4, 13, 8, 14 ] }, - "down": { "texture": "#4", "uv": [ 8, 13, 12, 14 ] } - } - }, - { - "name": "CenterMid", - "from": [ 6, 5, 12 ], - "to": [ 10, 15, 13 ], - "faces": { - "north": { "texture": "#5", "uv": [ 6, 1, 10, 11 ] }, - "east": { "texture": "#5", "uv": [ 5, 1, 6, 11 ] }, - "south": { "texture": "#5", "uv": [ 1, 1, 5, 11 ] }, - "west": { "texture": "#5", "uv": [ 0, 1, 1, 11 ] }, - "up": { "texture": "#5", "uv": [ 1, 0, 5, 1 ] }, - "down": { "texture": "#5", "uv": [ 5, 0, 9, 1 ] } - } - }, - { - "name": "WingRight1", - "from": [ 3, 3, 11.5 ], - "to": [ 6, 19, 12.5 ], - "faces": { - "north": { "texture": "#6", "uv": [ 5, 0, 8, 16 ] }, - "east": { "texture": "#6", "uv": [ 4, 0, 5, 16 ] }, - "south": { "texture": "#6", "uv": [ 1, 0, 4, 16 ] }, - "west": { "texture": "#6", "uv": [ 0, 0, 1, 16 ] }, - "up": { "texture": "#6", "uv": [ 9, 0, 12, 1 ] }, - "down": { "texture": "#6", "uv": [ 12, 0, 15, 1 ] } - } - }, - { - "name": "Wing Right2", - "from": [ 2, 17, 11.5 ], - "to": [ 3, 19, 12.5 ], - "faces": { - "north": { "texture": "#7", "uv": [ 3, 1, 4, 3 ] }, - "east": { "texture": "#7", "uv": [ 2, 1, 3, 3 ] }, - "south": { "texture": "#7", "uv": [ 1, 1, 2, 3 ] }, - "west": { "texture": "#7", "uv": [ 0, 1, 1, 3 ] }, - "up": { "texture": "#7", "uv": [ 1, 0, 2, 1 ] }, - "down": { "texture": "#7", "uv": [ 2, 0, 3, 1 ] } - } - }, - { - "name": "WingRight3", - "from": [ 0, 7, 11.5 ], - "to": [ 3, 17, 12.5 ], - "faces": { - "north": { "texture": "#7", "uv": [ 5, 4, 8, 14 ] }, - "east": { "texture": "#7", "uv": [ 4, 4, 5, 14 ] }, - "south": { "texture": "#7", "uv": [ 1, 4, 4, 14 ] }, - "west": { "texture": "#7", "uv": [ 0, 4, 1, 14 ] }, - "up": { "texture": "#7", "uv": [ 1, 3, 4, 4 ] }, - "down": { "texture": "#7", "uv": [ 4, 3, 7, 4 ] } - } - }, - { - "name": "WingRight4", - "from": [ -1, 7, 11.5 ], - "to": [ 0, 15, 12.5 ], - "faces": { - "north": { "texture": "#7", "uv": [ 11, 1, 12, 9 ] }, - "east": { "texture": "#7", "uv": [ 10, 1, 11, 9 ] }, - "south": { "texture": "#7", "uv": [ 9, 1, 10, 9 ] }, - "west": { "texture": "#7", "uv": [ 8, 1, 9, 9 ] }, - "up": { "texture": "#7", "uv": [ 9, 0, 10, 1 ] }, - "down": { "texture": "#7", "uv": [ 10, 0, 11, 1 ] } - } - }, - { - "name": "WingRight5", - "from": [ 1, 5, 11.5 ], - "to": [ 3, 7, 12.5 ], - "faces": { - "north": { "texture": "#7", "uv": [ 12, 10, 14, 12 ] }, - "east": { "texture": "#7", "uv": [ 11, 10, 12, 12 ] }, - "south": { "texture": "#7", "uv": [ 12, 10, 14, 12 ] }, - "west": { "texture": "#7", "uv": [ 8, 10, 9, 12 ] }, - "up": { "texture": "#7", "uv": [ 9, 9, 11, 10 ] }, - "down": { "texture": "#7", "uv": [ 11, 9, 13, 10 ] } - } - }, - { - "name": "WingLeft1", - "from": [ 10, 3, 11.5 ], - "to": [ 13, 19, 12.5 ], - "faces": { - "north": { "texture": "#8", "uv": [ 13, 0, 16, 16 ] }, - "east": { "texture": "#8", "uv": [ 12, 0, 13, 16 ] }, - "south": { "texture": "#8", "uv": [ 9, 0, 12, 16 ] }, - "west": { "texture": "#8", "uv": [ 8, 0, 9, 16 ] }, - "up": { "texture": "#8", "uv": [ 1, 0, 4, 1 ] }, - "down": { "texture": "#8", "uv": [ 4, 0, 7, 1 ] } - } - }, - { - "name": "WingLeft2", - "from": [ 13, 17, 11.5 ], - "to": [ 14, 19, 12.5 ], - "faces": { - "north": { "texture": "#9", "uv": [ 15, 1, 16, 3 ] }, - "east": { "texture": "#9", "uv": [ 14, 1, 15, 3 ] }, - "south": { "texture": "#9", "uv": [ 13, 1, 14, 3 ] }, - "west": { "texture": "#9", "uv": [ 12, 1, 13, 3 ] }, - "up": { "texture": "#9", "uv": [ 13, 0, 14, 1 ] }, - "down": { "texture": "#9", "uv": [ 14, 0, 15, 1 ] } - } - }, - { - "name": "WingLeft3", - "from": [ 13, 7, 11.5 ], - "to": [ 16, 17, 12.5 ], - "faces": { - "north": { "texture": "#9", "uv": [ 13, 4, 16, 14 ] }, - "east": { "texture": "#9", "uv": [ 12, 4, 13, 14 ] }, - "south": { "texture": "#9", "uv": [ 9, 4, 12, 14 ] }, - "west": { "texture": "#9", "uv": [ 8, 4, 9, 14 ] }, - "up": { "texture": "#9", "uv": [ 9, 3, 12, 4 ] }, - "down": { "texture": "#9", "uv": [ 12, 3, 15, 4 ] } - } - }, - { - "name": "WingLeft4", - "from": [ 16, 7, 11.5 ], - "to": [ 17, 15, 12.5 ], - "faces": { - "north": { "texture": "#9", "uv": [ 7, 1, 8, 9 ] }, - "east": { "texture": "#9", "uv": [ 6, 1, 7, 9 ] }, - "south": { "texture": "#9", "uv": [ 5, 1, 6, 9 ] }, - "west": { "texture": "#9", "uv": [ 4, 1, 5, 9 ] }, - "up": { "texture": "#9", "uv": [ 5, 0, 6, 1 ] }, - "down": { "texture": "#9", "uv": [ 6, 0, 7, 1 ] } - } - }, - { - "name": "WingLeft5", - "from": [ 13, 5, 11.5 ], - "to": [ 15, 7, 12.5 ], - "faces": { - "north": { "texture": "#9", "uv": [ 6, 10, 8, 12 ] }, - "east": { "texture": "#9", "uv": [ 5, 10, 6, 12 ] }, - "south": { "texture": "#9", "uv": [ 3, 10, 5, 12 ] }, - "west": { "texture": "#9", "uv": [ 2, 10, 3, 12 ] }, - "up": { "texture": "#9", "uv": [ 3, 9, 5, 10 ] }, - "down": { "texture": "#9", "uv": [ 5, 9, 7, 10 ] } - } - }, - { - "name": "Center Left", - "from": [ 10, 6, 12 ], - "to": [ 11, 14, 13 ], - "faces": { - "north": { "texture": "#10", "uv": [ 15, 2, 16, 10 ] }, - "east": { "texture": "#10", "uv": [ 13, 2, 15, 10 ] }, - "south": { "texture": "#10", "uv": [ 12, 2, 13, 10 ] }, - "west": { "texture": "#10", "uv": [ 10, 2, 12, 10 ] }, - "up": { "texture": "#10", "uv": [ 12, 0, 13, 2 ] }, - "down": { "texture": "#10", "uv": [ 13, 0, 14, 2 ] } - } - }, - { - "name": "CenterRight", - "from": [ 5, 6, 12 ], - "to": [ 6, 14, 13 ], - "faces": { - "north": { "texture": "#10", "uv": [ 5, 2, 6, 10 ] }, - "east": { "texture": "#10", "uv": [ 3, 2, 5, 10 ] }, - "south": { "texture": "#10", "uv": [ 2, 2, 3, 10 ] }, - "west": { "texture": "#10", "uv": [ 0, 2, 2, 10 ] }, - "up": { "texture": "#10", "uv": [ 2, 0, 3, 2 ] }, - "down": { "texture": "#10", "uv": [ 3, 0, 4, 2 ] } - } - } - ] -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/holystone_shield_blocking.json b/src/main/resources/assets/aether/models/item/holystone_shield_blocking.json deleted file mode 100644 index b8427e198d..0000000000 --- a/src/main/resources/assets/aether/models/item/holystone_shield_blocking.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "parent": "aether:item/holystone_shield_base", - "display": { - "thirdperson_righthand": { - "rotation": [ 45, 135, 0 ], - "translation": [ 2, -4, 3 ], - "scale": [ 1, 1, 1 ] - }, - "thirdperson_lefthand": { - "rotation": [ 45, 135, 0 ], - "translation": [ 2, -4, 3 ], - "scale": [ 1, 1, 1 ] - }, - "firstperson_righthand": { - "rotation": [ 0, 180, -5 ], - "translation": [ -3, -5, 1 ], - "scale": [ 1.25, 1.25, 1.25 ] - }, - "firstperson_lefthand": { - "rotation": [ 0, 180, -5 ], - "translation": [ -3, -5, 1 ], - "scale": [ 1.25, 1.25, 1.25 ] - }, - "gui": { - "rotation": [ 15, -25, -5 ], - "translation": [ 0, 0, 0 ], - "scale": [ 0.65, 0.65, 0.65 ] - } - } -} diff --git a/src/main/resources/assets/aether/models/item/ice_shard.json b/src/main/resources/assets/aether/models/item/ice_shard.json deleted file mode 100644 index 6bbde7f096..0000000000 --- a/src/main/resources/assets/aether/models/item/ice_shard.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "aether:items/charms/ice_shard" - } -} diff --git a/src/main/resources/assets/aether/models/item/icestone.json b/src/main/resources/assets/aether/models/item/icestone.json deleted file mode 100644 index 034fd76530..0000000000 --- a/src/main/resources/assets/aether/models/item/icestone.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "aether:items/materials/icestone" - } -} diff --git a/src/main/resources/assets/aether/models/item/icestone_bricks.json b/src/main/resources/assets/aether/models/item/icestone_bricks.json deleted file mode 100644 index 3b49fb050e..0000000000 --- a/src/main/resources/assets/aether/models/item/icestone_bricks.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "aether:block/icestone_bricks" -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/icestone_bricks/base_bricks.json b/src/main/resources/assets/aether/models/item/icestone_bricks/base_bricks.json deleted file mode 100644 index e770817d2a..0000000000 --- a/src/main/resources/assets/aether/models/item/icestone_bricks/base_bricks.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "aether:block/icestone_bricks/base_bricks" -} diff --git a/src/main/resources/assets/aether/models/item/icestone_bricks/base_pillar.json b/src/main/resources/assets/aether/models/item/icestone_bricks/base_pillar.json deleted file mode 100644 index 607dce0bfa..0000000000 --- a/src/main/resources/assets/aether/models/item/icestone_bricks/base_pillar.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "aether:block/icestone_bricks/base_pillar" -} diff --git a/src/main/resources/assets/aether/models/item/icestone_bricks/capstone_bricks.json b/src/main/resources/assets/aether/models/item/icestone_bricks/capstone_bricks.json deleted file mode 100644 index 7036c99873..0000000000 --- a/src/main/resources/assets/aether/models/item/icestone_bricks/capstone_bricks.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "aether:block/icestone_bricks/capstone_bricks" -} diff --git a/src/main/resources/assets/aether/models/item/icestone_bricks/capstone_pillar.json b/src/main/resources/assets/aether/models/item/icestone_bricks/capstone_pillar.json deleted file mode 100644 index fd5c16a029..0000000000 --- a/src/main/resources/assets/aether/models/item/icestone_bricks/capstone_pillar.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "aether:block/icestone_bricks/capstone_pillar" -} diff --git a/src/main/resources/assets/aether/models/item/icestone_bricks/flagstones.json b/src/main/resources/assets/aether/models/item/icestone_bricks/flagstones.json deleted file mode 100644 index 5a307be046..0000000000 --- a/src/main/resources/assets/aether/models/item/icestone_bricks/flagstones.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "aether:block/icestone_bricks/flagstones" -} diff --git a/src/main/resources/assets/aether/models/item/icestone_bricks/keystone.json b/src/main/resources/assets/aether/models/item/icestone_bricks/keystone.json deleted file mode 100644 index ad6932e7ed..0000000000 --- a/src/main/resources/assets/aether/models/item/icestone_bricks/keystone.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "aether:block/icestone_bricks/keystone" -} diff --git a/src/main/resources/assets/aether/models/item/icestone_bricks/normal.json b/src/main/resources/assets/aether/models/item/icestone_bricks/normal.json deleted file mode 100644 index aef8d6dca9..0000000000 --- a/src/main/resources/assets/aether/models/item/icestone_bricks/normal.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "aether:block/icestone_bricks/normal" -} diff --git a/src/main/resources/assets/aether/models/item/icestone_bricks/pillar.json b/src/main/resources/assets/aether/models/item/icestone_bricks/pillar.json deleted file mode 100644 index 076004a0e8..0000000000 --- a/src/main/resources/assets/aether/models/item/icestone_bricks/pillar.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "aether:block/icestone_bricks/pillar" -} diff --git a/src/main/resources/assets/aether/models/item/icestone_ore.json b/src/main/resources/assets/aether/models/item/icestone_ore.json deleted file mode 100644 index c453b568bf..0000000000 --- a/src/main/resources/assets/aether/models/item/icestone_ore.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "aether:block/icestone_ore" -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/icestone_poprocks.json b/src/main/resources/assets/aether/models/item/icestone_poprocks.json deleted file mode 100644 index 69e0a5d4ea..0000000000 --- a/src/main/resources/assets/aether/models/item/icestone_poprocks.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "aether:items/consumables/icestone_poprocks" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/incubator/lit.json b/src/main/resources/assets/aether/models/item/incubator/lit.json deleted file mode 100644 index 2c6d2c1c41..0000000000 --- a/src/main/resources/assets/aether/models/item/incubator/lit.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "aether:block/incubator/incubator_on" -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/incubator/unlit.json b/src/main/resources/assets/aether/models/item/incubator/unlit.json deleted file mode 100644 index b738c136d0..0000000000 --- a/src/main/resources/assets/aether/models/item/incubator/unlit.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "aether:block/incubator/incubator_off" -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/iron_screw.json b/src/main/resources/assets/aether/models/item/iron_screw.json deleted file mode 100644 index 3f671f5402..0000000000 --- a/src/main/resources/assets/aether/models/item/iron_screw.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "aether:items/charms/iron_screw" - } -} diff --git a/src/main/resources/assets/aether/models/item/irradiated_armor.json b/src/main/resources/assets/aether/models/item/irradiated_armor.json deleted file mode 100644 index 655d4edb3b..0000000000 --- a/src/main/resources/assets/aether/models/item/irradiated_armor.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "aether:items/materials/irradiated_armor" - } -} diff --git a/src/main/resources/assets/aether/models/item/irradiated_charm.json b/src/main/resources/assets/aether/models/item/irradiated_charm.json deleted file mode 100644 index 9f413c03ab..0000000000 --- a/src/main/resources/assets/aether/models/item/irradiated_charm.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "aether:items/materials/irradiated_charm" - } -} diff --git a/src/main/resources/assets/aether/models/item/irradiated_chunk.json b/src/main/resources/assets/aether/models/item/irradiated_chunk.json deleted file mode 100644 index 1a9fa8dfae..0000000000 --- a/src/main/resources/assets/aether/models/item/irradiated_chunk.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "aether:items/materials/irradiated_chunk" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/irradiated_dust.json b/src/main/resources/assets/aether/models/item/irradiated_dust.json deleted file mode 100644 index 08794f3c8a..0000000000 --- a/src/main/resources/assets/aether/models/item/irradiated_dust.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "aether:items/materials/irradiated_dust" - } -} diff --git a/src/main/resources/assets/aether/models/item/irradiated_dust_block.json b/src/main/resources/assets/aether/models/item/irradiated_dust_block.json deleted file mode 100644 index b3665bd7d6..0000000000 --- a/src/main/resources/assets/aether/models/item/irradiated_dust_block.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "aether:block/irradiated_dust_block" -} diff --git a/src/main/resources/assets/aether/models/item/irradiated_neckwear.json b/src/main/resources/assets/aether/models/item/irradiated_neckwear.json deleted file mode 100644 index c77486a841..0000000000 --- a/src/main/resources/assets/aether/models/item/irradiated_neckwear.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "aether:items/materials/irradiated_neckwear" - } -} diff --git a/src/main/resources/assets/aether/models/item/irradiated_ring.json b/src/main/resources/assets/aether/models/item/irradiated_ring.json deleted file mode 100644 index 0299bcf922..0000000000 --- a/src/main/resources/assets/aether/models/item/irradiated_ring.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "aether:items/materials/irradiated_ring" - } -} diff --git a/src/main/resources/assets/aether/models/item/irradiated_sword.json b/src/main/resources/assets/aether/models/item/irradiated_sword.json deleted file mode 100644 index 99c389e9b7..0000000000 --- a/src/main/resources/assets/aether/models/item/irradiated_sword.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "aether:items/materials/irradiated_sword" - } -} diff --git a/src/main/resources/assets/aether/models/item/irradiated_tool.json b/src/main/resources/assets/aether/models/item/irradiated_tool.json deleted file mode 100644 index ba417e1445..0000000000 --- a/src/main/resources/assets/aether/models/item/irradiated_tool.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "aether:items/materials/irradiated_tool" - } -} diff --git a/src/main/resources/assets/aether/models/item/jelly_plumproot.json b/src/main/resources/assets/aether/models/item/jelly_plumproot.json deleted file mode 100644 index 771201dbb7..0000000000 --- a/src/main/resources/assets/aether/models/item/jelly_plumproot.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "aether:items/consumables/jelly_plumproot" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/kirrid_cutlet.json b/src/main/resources/assets/aether/models/item/kirrid_cutlet.json deleted file mode 100644 index e972a50a24..0000000000 --- a/src/main/resources/assets/aether/models/item/kirrid_cutlet.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "aether:items/consumables/kirrid_cutlet" - } -} diff --git a/src/main/resources/assets/aether/models/item/kirrid_loin.json b/src/main/resources/assets/aether/models/item/kirrid_loin.json deleted file mode 100644 index 6fd7491e4a..0000000000 --- a/src/main/resources/assets/aether/models/item/kirrid_loin.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "aether:items/consumables/kirrid_loin" - } -} diff --git a/src/main/resources/assets/aether/models/item/ladders/skyroot_ladder.json b/src/main/resources/assets/aether/models/item/ladders/skyroot_ladder.json deleted file mode 100644 index c7c43e31ef..0000000000 --- a/src/main/resources/assets/aether/models/item/ladders/skyroot_ladder.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "aether:blocks/ladders/skyroot_ladder" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/leaves/amberoot_leaves.json b/src/main/resources/assets/aether/models/item/leaves/amberoot_leaves.json deleted file mode 100644 index f9458ec671..0000000000 --- a/src/main/resources/assets/aether/models/item/leaves/amberoot_leaves.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "aether:block/leaves/amberoot_leaves" -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/leaves/blue_dark_skyroot_leaves.json b/src/main/resources/assets/aether/models/item/leaves/blue_dark_skyroot_leaves.json deleted file mode 100644 index ea5402f82f..0000000000 --- a/src/main/resources/assets/aether/models/item/leaves/blue_dark_skyroot_leaves.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "aether:block/leaves/blue_dark_skyroot_leaves" -} diff --git a/src/main/resources/assets/aether/models/item/leaves/blue_light_skyroot_leaves.json b/src/main/resources/assets/aether/models/item/leaves/blue_light_skyroot_leaves.json deleted file mode 100644 index 7e899aa1f2..0000000000 --- a/src/main/resources/assets/aether/models/item/leaves/blue_light_skyroot_leaves.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "aether:block/leaves/blue_light_skyroot_leaves" -} diff --git a/src/main/resources/assets/aether/models/item/leaves/blue_skyroot_leaves.json b/src/main/resources/assets/aether/models/item/leaves/blue_skyroot_leaves.json deleted file mode 100644 index e320580935..0000000000 --- a/src/main/resources/assets/aether/models/item/leaves/blue_skyroot_leaves.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "aether:block/leaves/blue_skyroot_leaves" -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/leaves/dark_blue_dark_skyroot_leaves.json b/src/main/resources/assets/aether/models/item/leaves/dark_blue_dark_skyroot_leaves.json deleted file mode 100644 index 28f410e9f3..0000000000 --- a/src/main/resources/assets/aether/models/item/leaves/dark_blue_dark_skyroot_leaves.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "aether:block/leaves/dark_blue_dark_skyroot_leaves" -} diff --git a/src/main/resources/assets/aether/models/item/leaves/dark_blue_light_skyroot_leaves.json b/src/main/resources/assets/aether/models/item/leaves/dark_blue_light_skyroot_leaves.json deleted file mode 100644 index 3bc008215e..0000000000 --- a/src/main/resources/assets/aether/models/item/leaves/dark_blue_light_skyroot_leaves.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "aether:block/leaves/dark_blue_light_skyroot_leaves" -} diff --git a/src/main/resources/assets/aether/models/item/leaves/dark_blue_skyroot_leaves.json b/src/main/resources/assets/aether/models/item/leaves/dark_blue_skyroot_leaves.json deleted file mode 100644 index 5541021b68..0000000000 --- a/src/main/resources/assets/aether/models/item/leaves/dark_blue_skyroot_leaves.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "aether:block/leaves/dark_blue_skyroot_leaves" -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/leaves/green_dark_skyroot_leaves.json b/src/main/resources/assets/aether/models/item/leaves/green_dark_skyroot_leaves.json deleted file mode 100644 index 08bbff14c3..0000000000 --- a/src/main/resources/assets/aether/models/item/leaves/green_dark_skyroot_leaves.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "aether:block/leaves/green_dark_skyroot_leaves" -} diff --git a/src/main/resources/assets/aether/models/item/leaves/green_light_skyroot_leaves.json b/src/main/resources/assets/aether/models/item/leaves/green_light_skyroot_leaves.json deleted file mode 100644 index 65e2ef0311..0000000000 --- a/src/main/resources/assets/aether/models/item/leaves/green_light_skyroot_leaves.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "aether:block/leaves/green_light_skyroot_leaves" -} diff --git a/src/main/resources/assets/aether/models/item/leaves/green_skyroot_leaves.json b/src/main/resources/assets/aether/models/item/leaves/green_skyroot_leaves.json deleted file mode 100644 index 446ffcc00a..0000000000 --- a/src/main/resources/assets/aether/models/item/leaves/green_skyroot_leaves.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "aether:block/leaves/green_skyroot_leaves" -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/leaves/mutant_leaves.json b/src/main/resources/assets/aether/models/item/leaves/mutant_leaves.json deleted file mode 100644 index dbad5de57c..0000000000 --- a/src/main/resources/assets/aether/models/item/leaves/mutant_leaves.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "aether:block/leaves/mutant_leaves" -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/leaves/mutant_leaves_decorated.json b/src/main/resources/assets/aether/models/item/leaves/mutant_leaves_decorated.json deleted file mode 100644 index 649f18c543..0000000000 --- a/src/main/resources/assets/aether/models/item/leaves/mutant_leaves_decorated.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "aether:block/leaves/mutant_leaves_decorated" -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/leaves/therawood_leaves.json b/src/main/resources/assets/aether/models/item/leaves/therawood_leaves.json deleted file mode 100644 index 753376a56d..0000000000 --- a/src/main/resources/assets/aether/models/item/leaves/therawood_leaves.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "aether:block/leaves/therawood_leaves" -} diff --git a/src/main/resources/assets/aether/models/item/light_skyroot_planks/base_beam.json b/src/main/resources/assets/aether/models/item/light_skyroot_planks/base_beam.json deleted file mode 100644 index 56cf40d269..0000000000 --- a/src/main/resources/assets/aether/models/item/light_skyroot_planks/base_beam.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "aether:block/light_skyroot_planks/base_beam" -} diff --git a/src/main/resources/assets/aether/models/item/light_skyroot_planks/base_planks.json b/src/main/resources/assets/aether/models/item/light_skyroot_planks/base_planks.json deleted file mode 100644 index 60332cdd14..0000000000 --- a/src/main/resources/assets/aether/models/item/light_skyroot_planks/base_planks.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "aether:block/light_skyroot_planks/base_planks" -} diff --git a/src/main/resources/assets/aether/models/item/light_skyroot_planks/beam.json b/src/main/resources/assets/aether/models/item/light_skyroot_planks/beam.json deleted file mode 100644 index 21c17de886..0000000000 --- a/src/main/resources/assets/aether/models/item/light_skyroot_planks/beam.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "aether:block/light_skyroot_planks/beam" -} diff --git a/src/main/resources/assets/aether/models/item/light_skyroot_planks/floorboards.json b/src/main/resources/assets/aether/models/item/light_skyroot_planks/floorboards.json deleted file mode 100644 index 173063e03a..0000000000 --- a/src/main/resources/assets/aether/models/item/light_skyroot_planks/floorboards.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "aether:block/light_skyroot_planks/floorboards" -} diff --git a/src/main/resources/assets/aether/models/item/light_skyroot_planks/highlight.json b/src/main/resources/assets/aether/models/item/light_skyroot_planks/highlight.json deleted file mode 100644 index 988e54bcc5..0000000000 --- a/src/main/resources/assets/aether/models/item/light_skyroot_planks/highlight.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "aether:block/light_skyroot_planks/highlight" -} diff --git a/src/main/resources/assets/aether/models/item/light_skyroot_planks/normal.json b/src/main/resources/assets/aether/models/item/light_skyroot_planks/normal.json deleted file mode 100644 index f293b7c987..0000000000 --- a/src/main/resources/assets/aether/models/item/light_skyroot_planks/normal.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "aether:block/light_skyroot_planks/normal" -} diff --git a/src/main/resources/assets/aether/models/item/light_skyroot_planks/tiles.json b/src/main/resources/assets/aether/models/item/light_skyroot_planks/tiles.json deleted file mode 100644 index e111074659..0000000000 --- a/src/main/resources/assets/aether/models/item/light_skyroot_planks/tiles.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "aether:block/light_skyroot_planks/tiles" -} diff --git a/src/main/resources/assets/aether/models/item/light_skyroot_planks/tiles_small.json b/src/main/resources/assets/aether/models/item/light_skyroot_planks/tiles_small.json deleted file mode 100644 index cb76159c2f..0000000000 --- a/src/main/resources/assets/aether/models/item/light_skyroot_planks/tiles_small.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "aether:block/light_skyroot_planks/tiles_small" -} diff --git a/src/main/resources/assets/aether/models/item/light_skyroot_planks/top_beam.json b/src/main/resources/assets/aether/models/item/light_skyroot_planks/top_beam.json deleted file mode 100644 index 8e24c85252..0000000000 --- a/src/main/resources/assets/aether/models/item/light_skyroot_planks/top_beam.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "aether:block/light_skyroot_planks/top_beam" -} diff --git a/src/main/resources/assets/aether/models/item/light_skyroot_planks/top_planks.json b/src/main/resources/assets/aether/models/item/light_skyroot_planks/top_planks.json deleted file mode 100644 index 07457a219a..0000000000 --- a/src/main/resources/assets/aether/models/item/light_skyroot_planks/top_planks.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "aether:block/light_skyroot_planks/top_planks" -} diff --git a/src/main/resources/assets/aether/models/item/logs/dark_skyroot_log.json b/src/main/resources/assets/aether/models/item/logs/dark_skyroot_log.json deleted file mode 100644 index 16d9339276..0000000000 --- a/src/main/resources/assets/aether/models/item/logs/dark_skyroot_log.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "aether:block/logs/dark_skyroot_log" -} diff --git a/src/main/resources/assets/aether/models/item/logs/golden_oak_log.json b/src/main/resources/assets/aether/models/item/logs/golden_oak_log.json deleted file mode 100644 index d4f33e09bc..0000000000 --- a/src/main/resources/assets/aether/models/item/logs/golden_oak_log.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "aether:block/logs/golden_oak_log" -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/logs/light_skyroot_log.json b/src/main/resources/assets/aether/models/item/logs/light_skyroot_log.json deleted file mode 100644 index 86ed0a845f..0000000000 --- a/src/main/resources/assets/aether/models/item/logs/light_skyroot_log.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "aether:block/logs/light_skyroot_log" -} diff --git a/src/main/resources/assets/aether/models/item/logs/skyroot_log.json b/src/main/resources/assets/aether/models/item/logs/skyroot_log.json deleted file mode 100644 index 4ef8ad95c6..0000000000 --- a/src/main/resources/assets/aether/models/item/logs/skyroot_log.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "aether:block/logs/skyroot_log" -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/logs/therawood_log.json b/src/main/resources/assets/aether/models/item/logs/therawood_log.json deleted file mode 100644 index 897155c218..0000000000 --- a/src/main/resources/assets/aether/models/item/logs/therawood_log.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "aether:block/logs/therawood_log" -} diff --git a/src/main/resources/assets/aether/models/item/miscellaneous/shard_of_life.json b/src/main/resources/assets/aether/models/item/miscellaneous/shard_of_life.json deleted file mode 100644 index 991c057000..0000000000 --- a/src/main/resources/assets/aether/models/item/miscellaneous/shard_of_life.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "aether:items/miscellaneous/shard_of_life" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/miscellaneous/winter_hat.json b/src/main/resources/assets/aether/models/item/miscellaneous/winter_hat.json deleted file mode 100644 index 0eb10b04ac..0000000000 --- a/src/main/resources/assets/aether/models/item/miscellaneous/winter_hat.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "aether:items/miscellaneous/winter_hat" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/moa_egg/moa_egg.json b/src/main/resources/assets/aether/models/item/moa_egg/moa_egg.json deleted file mode 100644 index 492dc896de..0000000000 --- a/src/main/resources/assets/aether/models/item/moa_egg/moa_egg.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "aether:items/moa_egg/base" - }, - "overrides": [ - { - "predicate": { - "curved": 1 - }, - "model": "aether:item/moa_egg/moa_egg_curved" - }, - { - "predicate": { - "flat": 1 - }, - "model": "aether:item/moa_egg/moa_egg_flat" - }, - { - "predicate": { - "pointed": 1 - }, - "model": "aether:item/moa_egg/moa_egg_pointed" - } - ] -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/moa_egg/moa_egg_curved.json b/src/main/resources/assets/aether/models/item/moa_egg/moa_egg_curved.json deleted file mode 100644 index 7ac7c1d5b5..0000000000 --- a/src/main/resources/assets/aether/models/item/moa_egg/moa_egg_curved.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "aether:items/moa_egg/curved_base", - "layer1": "aether:items/moa_egg/keratin", - "layer2": "aether:items/moa_egg/eyes", - "layer3": "aether:items/moa_egg/curved_highlight" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/moa_egg/moa_egg_flat.json b/src/main/resources/assets/aether/models/item/moa_egg/moa_egg_flat.json deleted file mode 100644 index 046c9f9fd0..0000000000 --- a/src/main/resources/assets/aether/models/item/moa_egg/moa_egg_flat.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "aether:items/moa_egg/flat_base", - "layer1": "aether:items/moa_egg/keratin", - "layer2": "aether:items/moa_egg/eyes", - "layer3": "aether:items/moa_egg/flat_highlight" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/moa_egg/moa_egg_pointed.json b/src/main/resources/assets/aether/models/item/moa_egg/moa_egg_pointed.json deleted file mode 100644 index 2a1488b30f..0000000000 --- a/src/main/resources/assets/aether/models/item/moa_egg/moa_egg_pointed.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "aether:items/moa_egg/pointed_base", - "layer1": "aether:items/moa_egg/keratin", - "layer2": "aether:items/moa_egg/eyes", - "layer3": "aether:items/moa_egg/pointed_highlight" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/moa_feather.json b/src/main/resources/assets/aether/models/item/moa_feather.json deleted file mode 100644 index e70f5807dd..0000000000 --- a/src/main/resources/assets/aether/models/item/moa_feather.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "aether:items/materials/moa_feather_base", - "layer1": "aether:items/materials/moa_feather_top" - } -} diff --git a/src/main/resources/assets/aether/models/item/nether_portal_frame.json b/src/main/resources/assets/aether/models/item/nether_portal_frame.json deleted file mode 100644 index 6dfcde6ea8..0000000000 --- a/src/main/resources/assets/aether/models/item/nether_portal_frame.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "aether:items/nether_portal_frame" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/orange.json b/src/main/resources/assets/aether/models/item/orange.json deleted file mode 100644 index 902ba5377c..0000000000 --- a/src/main/resources/assets/aether/models/item/orange.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "aether:items/consumables/orange" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/orange_lollipop.json b/src/main/resources/assets/aether/models/item/orange_lollipop.json deleted file mode 100644 index c219d669cc..0000000000 --- a/src/main/resources/assets/aether/models/item/orange_lollipop.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "aether:items/consumables/orange_lollipop" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/orange_tree.json b/src/main/resources/assets/aether/models/item/orange_tree.json deleted file mode 100644 index 799467897f..0000000000 --- a/src/main/resources/assets/aether/models/item/orange_tree.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "aether:blocks/orange_tree/orange_tree_bottom_stage_1" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/orbis/block_chunk.json b/src/main/resources/assets/aether/models/item/orbis/block_chunk.json deleted file mode 100644 index 4f329523c2..0000000000 --- a/src/main/resources/assets/aether/models/item/orbis/block_chunk.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "item/generated" -} diff --git a/src/main/resources/assets/aether/models/item/orbis/block_palette.json b/src/main/resources/assets/aether/models/item/orbis/block_palette.json deleted file mode 100644 index e38fc7c6de..0000000000 --- a/src/main/resources/assets/aether/models/item/orbis/block_palette.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "item/generated" -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/orbis/blueprint.json b/src/main/resources/assets/aether/models/item/orbis/blueprint.json deleted file mode 100644 index 4f329523c2..0000000000 --- a/src/main/resources/assets/aether/models/item/orbis/blueprint.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "item/generated" -} diff --git a/src/main/resources/assets/aether/models/item/orbis/blueprint_palette.json b/src/main/resources/assets/aether/models/item/orbis/blueprint_palette.json deleted file mode 100644 index 4f329523c2..0000000000 --- a/src/main/resources/assets/aether/models/item/orbis/blueprint_palette.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "item/generated" -} diff --git a/src/main/resources/assets/aether/models/item/ores/ambrosium_ore.json b/src/main/resources/assets/aether/models/item/ores/ambrosium_ore.json deleted file mode 100644 index 1c4c89657a..0000000000 --- a/src/main/resources/assets/aether/models/item/ores/ambrosium_ore.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "aether:block/ores/ambrosium_ore" -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/ores/arkenium_ore.json b/src/main/resources/assets/aether/models/item/ores/arkenium_ore.json deleted file mode 100644 index ae1d0d70e0..0000000000 --- a/src/main/resources/assets/aether/models/item/ores/arkenium_ore.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "aether:block/ores/arkenium_ore" -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/ores/continuum_ore.json b/src/main/resources/assets/aether/models/item/ores/continuum_ore.json deleted file mode 100644 index dc9c052aaa..0000000000 --- a/src/main/resources/assets/aether/models/item/ores/continuum_ore.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "aether:block/ores/continuum_ore" -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/ores/gravitite_ore.json b/src/main/resources/assets/aether/models/item/ores/gravitite_ore.json deleted file mode 100644 index 2776774782..0000000000 --- a/src/main/resources/assets/aether/models/item/ores/gravitite_ore.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "aether:block/ores/gravitite_ore" -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/ores/zanite_ore.json b/src/main/resources/assets/aether/models/item/ores/zanite_ore.json deleted file mode 100644 index 2cadbdb56b..0000000000 --- a/src/main/resources/assets/aether/models/item/ores/zanite_ore.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "aether:block/ores/zanite_ore" -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/plumproot.json b/src/main/resources/assets/aether/models/item/plumproot.json deleted file mode 100644 index a9dfcd95d8..0000000000 --- a/src/main/resources/assets/aether/models/item/plumproot.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "aether:block/plumproot" -} diff --git a/src/main/resources/assets/aether/models/item/plumproot_mash.json b/src/main/resources/assets/aether/models/item/plumproot_mash.json deleted file mode 100644 index 0f0c11d93b..0000000000 --- a/src/main/resources/assets/aether/models/item/plumproot_mash.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "aether:items/consumables/plumproot_mash" - } -} diff --git a/src/main/resources/assets/aether/models/item/plumproot_pie.json b/src/main/resources/assets/aether/models/item/plumproot_pie.json deleted file mode 100644 index 6cbf31973f..0000000000 --- a/src/main/resources/assets/aether/models/item/plumproot_pie.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "aether:items/consumables/plumproot_pie" - } -} diff --git a/src/main/resources/assets/aether/models/item/quicksoil.json b/src/main/resources/assets/aether/models/item/quicksoil.json deleted file mode 100644 index 522b3103ac..0000000000 --- a/src/main/resources/assets/aether/models/item/quicksoil.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "aether:block/quicksoil" -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/quicksoil_glass/arkenium_frame.json b/src/main/resources/assets/aether/models/item/quicksoil_glass/arkenium_frame.json deleted file mode 100644 index 44fb5a618c..0000000000 --- a/src/main/resources/assets/aether/models/item/quicksoil_glass/arkenium_frame.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "aether:block/quicksoil_glass/arkenium_frame" -} diff --git a/src/main/resources/assets/aether/models/item/quicksoil_glass/normal.json b/src/main/resources/assets/aether/models/item/quicksoil_glass/normal.json deleted file mode 100644 index fb195d6ab7..0000000000 --- a/src/main/resources/assets/aether/models/item/quicksoil_glass/normal.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "aether:block/quicksoil_glass/normal" -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/quicksoil_glass/skyroot_frame.json b/src/main/resources/assets/aether/models/item/quicksoil_glass/skyroot_frame.json deleted file mode 100644 index 9e909608ce..0000000000 --- a/src/main/resources/assets/aether/models/item/quicksoil_glass/skyroot_frame.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "aether:block/quicksoil_glass/skyroot_frame" -} diff --git a/src/main/resources/assets/aether/models/item/rainbow_moa_egg.json b/src/main/resources/assets/aether/models/item/rainbow_moa_egg.json deleted file mode 100644 index d03c536695..0000000000 --- a/src/main/resources/assets/aether/models/item/rainbow_moa_egg.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "aether:items/miscellaneous/rainbow_moa_egg" - } -} diff --git a/src/main/resources/assets/aether/models/item/raw_taegore_meat.json b/src/main/resources/assets/aether/models/item/raw_taegore_meat.json deleted file mode 100644 index 3cf429371d..0000000000 --- a/src/main/resources/assets/aether/models/item/raw_taegore_meat.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "aether:items/consumables/raw_taegore_meat" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/records/aerwhale_music_disc.json b/src/main/resources/assets/aether/models/item/records/aerwhale_music_disc.json deleted file mode 100644 index 36a01b0d22..0000000000 --- a/src/main/resources/assets/aether/models/item/records/aerwhale_music_disc.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "aether:items/records/aerwhale_music_disc" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/records/labyrinth_music_disc.json b/src/main/resources/assets/aether/models/item/records/labyrinth_music_disc.json deleted file mode 100644 index 4a03a00853..0000000000 --- a/src/main/resources/assets/aether/models/item/records/labyrinth_music_disc.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "aether:items/records/labyrinth_music_disc" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/records/moa_music_disc.json b/src/main/resources/assets/aether/models/item/records/moa_music_disc.json deleted file mode 100644 index 039009461d..0000000000 --- a/src/main/resources/assets/aether/models/item/records/moa_music_disc.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "aether:items/records/moa_music_disc" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/records/recording_892.json b/src/main/resources/assets/aether/models/item/records/recording_892.json deleted file mode 100644 index 134795b140..0000000000 --- a/src/main/resources/assets/aether/models/item/records/recording_892.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "aether:items/records/recording_892" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/records/valkyrie_music_disc.json b/src/main/resources/assets/aether/models/item/records/valkyrie_music_disc.json deleted file mode 100644 index 2c1897b866..0000000000 --- a/src/main/resources/assets/aether/models/item/records/valkyrie_music_disc.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "aether:items/records/valkyrie_music_disc" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/rusted_ferrosite.json b/src/main/resources/assets/aether/models/item/rusted_ferrosite.json deleted file mode 100644 index 148d2d848d..0000000000 --- a/src/main/resources/assets/aether/models/item/rusted_ferrosite.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "aether:block/rusted_ferrosite" -} diff --git a/src/main/resources/assets/aether/models/item/saplings/amberoot_sapling.json b/src/main/resources/assets/aether/models/item/saplings/amberoot_sapling.json deleted file mode 100644 index c03be30e3e..0000000000 --- a/src/main/resources/assets/aether/models/item/saplings/amberoot_sapling.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "aether:blocks/saplings/amberoot_sapling" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/saplings/blue_greatroot_sapling.json b/src/main/resources/assets/aether/models/item/saplings/blue_greatroot_sapling.json deleted file mode 100644 index f415a55cd1..0000000000 --- a/src/main/resources/assets/aether/models/item/saplings/blue_greatroot_sapling.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "aether:blocks/saplings/blue_greatroot_sapling" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/saplings/blue_skyroot_sapling.json b/src/main/resources/assets/aether/models/item/saplings/blue_skyroot_sapling.json deleted file mode 100644 index 501922163d..0000000000 --- a/src/main/resources/assets/aether/models/item/saplings/blue_skyroot_sapling.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "aether:blocks/saplings/blue_skyroot_sapling" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/saplings/blue_wisproot_sapling.json b/src/main/resources/assets/aether/models/item/saplings/blue_wisproot_sapling.json deleted file mode 100644 index 9898971b0f..0000000000 --- a/src/main/resources/assets/aether/models/item/saplings/blue_wisproot_sapling.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "aether:blocks/saplings/blue_wisproot_sapling" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/saplings/dark_blue_greatroot_sapling.json b/src/main/resources/assets/aether/models/item/saplings/dark_blue_greatroot_sapling.json deleted file mode 100644 index 10085f4f7c..0000000000 --- a/src/main/resources/assets/aether/models/item/saplings/dark_blue_greatroot_sapling.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "aether:blocks/saplings/dark_blue_greatroot_sapling" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/saplings/dark_blue_skyroot_sapling.json b/src/main/resources/assets/aether/models/item/saplings/dark_blue_skyroot_sapling.json deleted file mode 100644 index f76352f886..0000000000 --- a/src/main/resources/assets/aether/models/item/saplings/dark_blue_skyroot_sapling.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "aether:blocks/saplings/dark_blue_skyroot_sapling" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/saplings/dark_blue_wisproot_sapling.json b/src/main/resources/assets/aether/models/item/saplings/dark_blue_wisproot_sapling.json deleted file mode 100644 index 34ad44b3ca..0000000000 --- a/src/main/resources/assets/aether/models/item/saplings/dark_blue_wisproot_sapling.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "aether:blocks/saplings/dark_blue_wisproot_sapling" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/saplings/green_greatroot_sapling.json b/src/main/resources/assets/aether/models/item/saplings/green_greatroot_sapling.json deleted file mode 100644 index d82de9fab3..0000000000 --- a/src/main/resources/assets/aether/models/item/saplings/green_greatroot_sapling.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "aether:blocks/saplings/green_greatroot_sapling" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/saplings/green_skyroot_sapling.json b/src/main/resources/assets/aether/models/item/saplings/green_skyroot_sapling.json deleted file mode 100644 index ba4c69ff57..0000000000 --- a/src/main/resources/assets/aether/models/item/saplings/green_skyroot_sapling.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "aether:blocks/saplings/green_skyroot_sapling" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/saplings/green_wisproot_sapling.json b/src/main/resources/assets/aether/models/item/saplings/green_wisproot_sapling.json deleted file mode 100644 index 3796efabf9..0000000000 --- a/src/main/resources/assets/aether/models/item/saplings/green_wisproot_sapling.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "aether:blocks/saplings/green_wisproot_sapling" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/saplings/mutant_tree_sapling.json b/src/main/resources/assets/aether/models/item/saplings/mutant_tree_sapling.json deleted file mode 100644 index 4df55d6419..0000000000 --- a/src/main/resources/assets/aether/models/item/saplings/mutant_tree_sapling.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "aether:blocks/saplings/holiday_sapling" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/scatterglass/arkenium_frame.json b/src/main/resources/assets/aether/models/item/scatterglass/arkenium_frame.json deleted file mode 100644 index 672f629cba..0000000000 --- a/src/main/resources/assets/aether/models/item/scatterglass/arkenium_frame.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "aether:block/scatterglass/arkenium_frame" -} diff --git a/src/main/resources/assets/aether/models/item/scatterglass/normal.json b/src/main/resources/assets/aether/models/item/scatterglass/normal.json deleted file mode 100644 index ab527786ee..0000000000 --- a/src/main/resources/assets/aether/models/item/scatterglass/normal.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "aether:block/scatterglass/normal" -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/scatterglass/skyroot_frame.json b/src/main/resources/assets/aether/models/item/scatterglass/skyroot_frame.json deleted file mode 100644 index 045f4b8fad..0000000000 --- a/src/main/resources/assets/aether/models/item/scatterglass/skyroot_frame.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "aether:block/scatterglass/skyroot_frame" -} diff --git a/src/main/resources/assets/aether/models/item/scatterglass_antitoxin_vial.json b/src/main/resources/assets/aether/models/item/scatterglass_antitoxin_vial.json deleted file mode 100644 index f705cb5def..0000000000 --- a/src/main/resources/assets/aether/models/item/scatterglass_antitoxin_vial.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "aether:items/consumables/scatterglass_antitoxin_vial" - } -} diff --git a/src/main/resources/assets/aether/models/item/scatterglass_antivenom_vial.json b/src/main/resources/assets/aether/models/item/scatterglass_antivenom_vial.json deleted file mode 100644 index c4cc8a4f49..0000000000 --- a/src/main/resources/assets/aether/models/item/scatterglass_antivenom_vial.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "aether:items/consumables/scatterglass_antivenom_vial" - } -} diff --git a/src/main/resources/assets/aether/models/item/scatterglass_vial.json b/src/main/resources/assets/aether/models/item/scatterglass_vial.json deleted file mode 100644 index 6a7c5234d3..0000000000 --- a/src/main/resources/assets/aether/models/item/scatterglass_vial.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "aether:items/materials/scatterglass_vial" - } -} diff --git a/src/main/resources/assets/aether/models/item/scatterglass_water_vial.json b/src/main/resources/assets/aether/models/item/scatterglass_water_vial.json deleted file mode 100644 index a2083c118c..0000000000 --- a/src/main/resources/assets/aether/models/item/scatterglass_water_vial.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "aether:items/consumables/scatterglass_water_vial" - } -} diff --git a/src/main/resources/assets/aether/models/item/secret_skyroot_door.json b/src/main/resources/assets/aether/models/item/secret_skyroot_door.json deleted file mode 100644 index 8888b7852f..0000000000 --- a/src/main/resources/assets/aether/models/item/secret_skyroot_door.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "aether:items/doors/secret_skyroot_door" - } -} diff --git a/src/main/resources/assets/aether/models/item/secret_skyroot_trapdoor.json b/src/main/resources/assets/aether/models/item/secret_skyroot_trapdoor.json deleted file mode 100644 index 79cc5643b5..0000000000 --- a/src/main/resources/assets/aether/models/item/secret_skyroot_trapdoor.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/trapdoor_bottom", - "textures": { - "texture": "aether:blocks/skyroot_planks/skyroot_floorboards" - } -} diff --git a/src/main/resources/assets/aether/models/item/sentry_vaultbox.json b/src/main/resources/assets/aether/models/item/sentry_vaultbox.json deleted file mode 100644 index dcae977d5e..0000000000 --- a/src/main/resources/assets/aether/models/item/sentry_vaultbox.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "aether:items/miscellaneous/sentry_vaultbox" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/sentrystone_bricks/base_bricks.json b/src/main/resources/assets/aether/models/item/sentrystone_bricks/base_bricks.json deleted file mode 100644 index 7f9dea83f0..0000000000 --- a/src/main/resources/assets/aether/models/item/sentrystone_bricks/base_bricks.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "aether:block/sentrystone_bricks/base_bricks" -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/sentrystone_bricks/base_bricks_lit.json b/src/main/resources/assets/aether/models/item/sentrystone_bricks/base_bricks_lit.json deleted file mode 100644 index 13463e71aa..0000000000 --- a/src/main/resources/assets/aether/models/item/sentrystone_bricks/base_bricks_lit.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "aether:block/sentrystone_bricks/base_bricks_lit" -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/sentrystone_bricks/base_pillar.json b/src/main/resources/assets/aether/models/item/sentrystone_bricks/base_pillar.json deleted file mode 100644 index 10705a5d6c..0000000000 --- a/src/main/resources/assets/aether/models/item/sentrystone_bricks/base_pillar.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "aether:block/sentrystone_bricks/base_pillar" -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/sentrystone_bricks/base_pillar_lit.json b/src/main/resources/assets/aether/models/item/sentrystone_bricks/base_pillar_lit.json deleted file mode 100644 index db9105dac4..0000000000 --- a/src/main/resources/assets/aether/models/item/sentrystone_bricks/base_pillar_lit.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "aether:block/sentrystone_bricks/base_pillar_lit" -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/sentrystone_bricks/capstone_bricks.json b/src/main/resources/assets/aether/models/item/sentrystone_bricks/capstone_bricks.json deleted file mode 100644 index c598442fff..0000000000 --- a/src/main/resources/assets/aether/models/item/sentrystone_bricks/capstone_bricks.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "aether:block/sentrystone_bricks/capstone_bricks" -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/sentrystone_bricks/capstone_bricks_lit.json b/src/main/resources/assets/aether/models/item/sentrystone_bricks/capstone_bricks_lit.json deleted file mode 100644 index 610f40c8f3..0000000000 --- a/src/main/resources/assets/aether/models/item/sentrystone_bricks/capstone_bricks_lit.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "aether:block/sentrystone_bricks/capstone_bricks_lit" -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/sentrystone_bricks/capstone_pillar.json b/src/main/resources/assets/aether/models/item/sentrystone_bricks/capstone_pillar.json deleted file mode 100644 index a9a33fca93..0000000000 --- a/src/main/resources/assets/aether/models/item/sentrystone_bricks/capstone_pillar.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "aether:block/sentrystone_bricks/capstone_pillar" -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/sentrystone_bricks/capstone_pillar_lit.json b/src/main/resources/assets/aether/models/item/sentrystone_bricks/capstone_pillar_lit.json deleted file mode 100644 index 0e65e26505..0000000000 --- a/src/main/resources/assets/aether/models/item/sentrystone_bricks/capstone_pillar_lit.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "aether:block/sentrystone_bricks/capstone_pillar_lit" -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/sentrystone_bricks/flagstones.json b/src/main/resources/assets/aether/models/item/sentrystone_bricks/flagstones.json deleted file mode 100644 index e2e54c08ec..0000000000 --- a/src/main/resources/assets/aether/models/item/sentrystone_bricks/flagstones.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "aether:block/sentrystone_bricks/flagstones" -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/sentrystone_bricks/keystone.json b/src/main/resources/assets/aether/models/item/sentrystone_bricks/keystone.json deleted file mode 100644 index d852fc27f6..0000000000 --- a/src/main/resources/assets/aether/models/item/sentrystone_bricks/keystone.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "aether:block/sentrystone_bricks/keystone" -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/sentrystone_bricks/keystone_lit.json b/src/main/resources/assets/aether/models/item/sentrystone_bricks/keystone_lit.json deleted file mode 100644 index 09f654957e..0000000000 --- a/src/main/resources/assets/aether/models/item/sentrystone_bricks/keystone_lit.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "aether:block/sentrystone_bricks/keystone_lit" -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/sentrystone_bricks/lightstone.json b/src/main/resources/assets/aether/models/item/sentrystone_bricks/lightstone.json deleted file mode 100644 index f188ace5f0..0000000000 --- a/src/main/resources/assets/aether/models/item/sentrystone_bricks/lightstone.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "aether:block/sentrystone_bricks/lightstone" -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/sentrystone_bricks/lightstone_lit.json b/src/main/resources/assets/aether/models/item/sentrystone_bricks/lightstone_lit.json deleted file mode 100644 index ed2c85bcf2..0000000000 --- a/src/main/resources/assets/aether/models/item/sentrystone_bricks/lightstone_lit.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "aether:block/sentrystone_bricks/lightstone_lit" -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/sentrystone_bricks/normal.json b/src/main/resources/assets/aether/models/item/sentrystone_bricks/normal.json deleted file mode 100644 index 90bc2543e3..0000000000 --- a/src/main/resources/assets/aether/models/item/sentrystone_bricks/normal.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "aether:block/sentrystone_bricks/normal" -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/sentrystone_bricks/pillar.json b/src/main/resources/assets/aether/models/item/sentrystone_bricks/pillar.json deleted file mode 100644 index ca37b27e38..0000000000 --- a/src/main/resources/assets/aether/models/item/sentrystone_bricks/pillar.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "aether:block/sentrystone_bricks/pillar" -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/sentrystone_bricks/pillar_lit.json b/src/main/resources/assets/aether/models/item/sentrystone_bricks/pillar_lit.json deleted file mode 100644 index 5044824e39..0000000000 --- a/src/main/resources/assets/aether/models/item/sentrystone_bricks/pillar_lit.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "aether:block/sentrystone_bricks/pillar_lit" -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/skyroot_bed.json b/src/main/resources/assets/aether/models/item/skyroot_bed.json deleted file mode 100644 index 11c24d5754..0000000000 --- a/src/main/resources/assets/aether/models/item/skyroot_bed.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "aether:items/skyroot_bed" - } -} diff --git a/src/main/resources/assets/aether/models/item/skyroot_bookshelf.json b/src/main/resources/assets/aether/models/item/skyroot_bookshelf.json deleted file mode 100644 index 8722b76166..0000000000 --- a/src/main/resources/assets/aether/models/item/skyroot_bookshelf.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "aether:block/skyroot_bookshelf" -} diff --git a/src/main/resources/assets/aether/models/item/skyroot_bucket/skyroot_bucket.json b/src/main/resources/assets/aether/models/item/skyroot_bucket/skyroot_bucket.json deleted file mode 100644 index dfcdfce0c8..0000000000 --- a/src/main/resources/assets/aether/models/item/skyroot_bucket/skyroot_bucket.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "aether:items/miscellaneous/skyroot_bucket" - } -} diff --git a/src/main/resources/assets/aether/models/item/skyroot_bucket/skyroot_milk_bucket.json b/src/main/resources/assets/aether/models/item/skyroot_bucket/skyroot_milk_bucket.json deleted file mode 100644 index f0a8e644bb..0000000000 --- a/src/main/resources/assets/aether/models/item/skyroot_bucket/skyroot_milk_bucket.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "aether:items/miscellaneous/skyroot_milk_bucket" - } -} diff --git a/src/main/resources/assets/aether/models/item/skyroot_bucket/skyroot_poison_bucket.json b/src/main/resources/assets/aether/models/item/skyroot_bucket/skyroot_poison_bucket.json deleted file mode 100644 index 6c082066f0..0000000000 --- a/src/main/resources/assets/aether/models/item/skyroot_bucket/skyroot_poison_bucket.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "aether:items/miscellaneous/skyroot_poison_bucket" - } -} diff --git a/src/main/resources/assets/aether/models/item/skyroot_bucket/skyroot_water_bucket.json b/src/main/resources/assets/aether/models/item/skyroot_bucket/skyroot_water_bucket.json deleted file mode 100644 index de16349aa1..0000000000 --- a/src/main/resources/assets/aether/models/item/skyroot_bucket/skyroot_water_bucket.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "aether:items/miscellaneous/skyroot_water_bucket" - } -} diff --git a/src/main/resources/assets/aether/models/item/skyroot_button.json b/src/main/resources/assets/aether/models/item/skyroot_button.json deleted file mode 100644 index d21b2b314e..0000000000 --- a/src/main/resources/assets/aether/models/item/skyroot_button.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "aether:block/skyroot_button/skyroot_button_inventory" -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/skyroot_chest.json b/src/main/resources/assets/aether/models/item/skyroot_chest.json deleted file mode 100644 index 55ea79c9d6..0000000000 --- a/src/main/resources/assets/aether/models/item/skyroot_chest.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "parent": "builtin/entity", - "display": { - "gui": { - "rotation": [ 30, 45, 0 ], - "translation": [ 0, 0, 0 ], - "scale": [ 0.625, 0.625, 0.625 ] - }, - "ground": { - "rotation": [ 0, 0, 0 ], - "translation": [ 0, 3, 0 ], - "scale": [ 0.25, 0.25, 0.25 ] - }, - "head": { - "rotation": [ 0, 180, 0 ], - "translation": [ 0, 0, 0 ], - "scale": [ 1, 1, 1 ] - }, - "fixed": { - "rotation": [ 0, 180, 0 ], - "translation": [ 0, 0, 0 ], - "scale": [ 0.5, 0.5, 0.5 ] - }, - "thirdperson_righthand": { - "rotation": [ 75, 315, 0 ], - "translation": [ 0, 2.5, 0 ], - "scale": [ 0.375, 0.375, 0.375 ] - }, - "firstperson_righthand": { - "rotation": [ 0, 315, 0 ], - "translation": [ 0, 0, 0 ], - "scale": [ 0.4, 0.4, 0.4 ] - } - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/skyroot_door.json b/src/main/resources/assets/aether/models/item/skyroot_door.json deleted file mode 100644 index edaa2871b0..0000000000 --- a/src/main/resources/assets/aether/models/item/skyroot_door.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "aether:items/doors/skyroot_door" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/skyroot_fence.json b/src/main/resources/assets/aether/models/item/skyroot_fence.json deleted file mode 100644 index 6fe2fcc974..0000000000 --- a/src/main/resources/assets/aether/models/item/skyroot_fence.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/fence_inventory", - "textures": { - "texture": "aether:blocks/skyroot_planks/skyroot_planks" - } -} diff --git a/src/main/resources/assets/aether/models/item/skyroot_fence_gate.json b/src/main/resources/assets/aether/models/item/skyroot_fence_gate.json deleted file mode 100644 index 00fe8c6a68..0000000000 --- a/src/main/resources/assets/aether/models/item/skyroot_fence_gate.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "aether:block/skyroot_fence_gate/skyroot_fence_gate_closed", - "textures": { - "texture": "aether:blocks/skyroot_planks/skyroot_planks" - } -} diff --git a/src/main/resources/assets/aether/models/item/skyroot_lizard_stick.json b/src/main/resources/assets/aether/models/item/skyroot_lizard_stick.json deleted file mode 100644 index fc0c09e4c6..0000000000 --- a/src/main/resources/assets/aether/models/item/skyroot_lizard_stick.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "aether:items/consumables/skyroot_lizard_stick" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/skyroot_lizard_stick_roasted.json b/src/main/resources/assets/aether/models/item/skyroot_lizard_stick_roasted.json deleted file mode 100644 index 6b283f910b..0000000000 --- a/src/main/resources/assets/aether/models/item/skyroot_lizard_stick_roasted.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "aether:items/consumables/roasted_skyroot_lizard_stick" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/skyroot_pinecone.json b/src/main/resources/assets/aether/models/item/skyroot_pinecone.json deleted file mode 100644 index 9491db017c..0000000000 --- a/src/main/resources/assets/aether/models/item/skyroot_pinecone.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "aether:items/materials/skyroot_pinecone" - } -} diff --git a/src/main/resources/assets/aether/models/item/skyroot_planks/base_beam.json b/src/main/resources/assets/aether/models/item/skyroot_planks/base_beam.json deleted file mode 100644 index 8d16f65b52..0000000000 --- a/src/main/resources/assets/aether/models/item/skyroot_planks/base_beam.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "aether:block/skyroot_planks/base_beam" -} diff --git a/src/main/resources/assets/aether/models/item/skyroot_planks/base_planks.json b/src/main/resources/assets/aether/models/item/skyroot_planks/base_planks.json deleted file mode 100644 index 78e66ccee8..0000000000 --- a/src/main/resources/assets/aether/models/item/skyroot_planks/base_planks.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "aether:block/skyroot_planks/base_planks" -} diff --git a/src/main/resources/assets/aether/models/item/skyroot_planks/beam.json b/src/main/resources/assets/aether/models/item/skyroot_planks/beam.json deleted file mode 100644 index 01f11b81f4..0000000000 --- a/src/main/resources/assets/aether/models/item/skyroot_planks/beam.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "aether:block/skyroot_planks/beam" -} diff --git a/src/main/resources/assets/aether/models/item/skyroot_planks/floorboards.json b/src/main/resources/assets/aether/models/item/skyroot_planks/floorboards.json deleted file mode 100644 index a387688180..0000000000 --- a/src/main/resources/assets/aether/models/item/skyroot_planks/floorboards.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "aether:block/skyroot_planks/floorboards" -} diff --git a/src/main/resources/assets/aether/models/item/skyroot_planks/highlight.json b/src/main/resources/assets/aether/models/item/skyroot_planks/highlight.json deleted file mode 100644 index a73eb99483..0000000000 --- a/src/main/resources/assets/aether/models/item/skyroot_planks/highlight.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "aether:block/skyroot_planks/highlight" -} diff --git a/src/main/resources/assets/aether/models/item/skyroot_planks/normal.json b/src/main/resources/assets/aether/models/item/skyroot_planks/normal.json deleted file mode 100644 index 97cd43248e..0000000000 --- a/src/main/resources/assets/aether/models/item/skyroot_planks/normal.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "aether:block/skyroot_planks/normal" -} diff --git a/src/main/resources/assets/aether/models/item/skyroot_planks/tiles.json b/src/main/resources/assets/aether/models/item/skyroot_planks/tiles.json deleted file mode 100644 index f76e0a8f9f..0000000000 --- a/src/main/resources/assets/aether/models/item/skyroot_planks/tiles.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "aether:block/skyroot_planks/tiles" -} diff --git a/src/main/resources/assets/aether/models/item/skyroot_planks/tiles_small.json b/src/main/resources/assets/aether/models/item/skyroot_planks/tiles_small.json deleted file mode 100644 index 0dc6e26441..0000000000 --- a/src/main/resources/assets/aether/models/item/skyroot_planks/tiles_small.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "aether:block/skyroot_planks/tiles_small" -} diff --git a/src/main/resources/assets/aether/models/item/skyroot_planks/top_beam.json b/src/main/resources/assets/aether/models/item/skyroot_planks/top_beam.json deleted file mode 100644 index 888ea5b854..0000000000 --- a/src/main/resources/assets/aether/models/item/skyroot_planks/top_beam.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "aether:block/skyroot_planks/top_beam" -} diff --git a/src/main/resources/assets/aether/models/item/skyroot_planks/top_planks.json b/src/main/resources/assets/aether/models/item/skyroot_planks/top_planks.json deleted file mode 100644 index 40f7bf6444..0000000000 --- a/src/main/resources/assets/aether/models/item/skyroot_planks/top_planks.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "aether:block/skyroot_planks/top_planks" -} diff --git a/src/main/resources/assets/aether/models/item/skyroot_pressure_plate.json b/src/main/resources/assets/aether/models/item/skyroot_pressure_plate.json deleted file mode 100644 index 092db6da1a..0000000000 --- a/src/main/resources/assets/aether/models/item/skyroot_pressure_plate.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "aether:block/skyroot_pressure_plate/skyroot_pressure_plate_up" -} diff --git a/src/main/resources/assets/aether/models/item/skyroot_shield.json b/src/main/resources/assets/aether/models/item/skyroot_shield.json deleted file mode 100644 index 51c6a1f8c8..0000000000 --- a/src/main/resources/assets/aether/models/item/skyroot_shield.json +++ /dev/null @@ -1,48 +0,0 @@ -{ - "parent": "aether:item/skyroot_shield_base", - "display": { - "thirdperson_righthand": { - "rotation": [ 0, 90, 0 ], - "translation": [ 0, -2, 4 ], - "scale": [ 1, 1, 1 ] - }, - "thirdperson_lefthand": { - "rotation": [ 0, 90, 0 ], - "translation": [ 0, -2, 4 ], - "scale": [ 1, 1, 1 ] - }, - "firstperson_righthand": { - "rotation": [ 0, 180, 5 ], - "translation": [ 2, -10, 2 ], - "scale": [ 1.25, 1.25, 1.25 ] - }, - "firstperson_lefthand": { - "rotation": [ 0, 180, 5 ], - "translation": [ 2, -10, 2 ], - "scale": [ 1.25, 1.25, 1.25 ] - }, - "gui": { - "rotation": [ 15, -25, -5 ], - "translation": [ 0, 0, 0 ], - "scale": [ 0.65, 0.65, 0.65 ] - }, - "fixed": { - "rotation": [ 0, 180, 0 ], - "translation": [ -2, 4, -5 ], - "scale": [ 0.5, 0.5, 0.5 ] - }, - "ground": { - "rotation": [ 0, 0, 0 ], - "translation": [ 0, 0, 2 ], - "scale": [ 0.25, 0.25, 0.25 ] - } - }, - "overrides": [ - { - "predicate": { - "blocking": 1 - }, - "model": "aether:item/skyroot_shield_blocking" - } - ] -} diff --git a/src/main/resources/assets/aether/models/item/skyroot_shield_base.json b/src/main/resources/assets/aether/models/item/skyroot_shield_base.json deleted file mode 100644 index 364383ea50..0000000000 --- a/src/main/resources/assets/aether/models/item/skyroot_shield_base.json +++ /dev/null @@ -1,224 +0,0 @@ -{ - "textures": { - "0": "aether:items/shields/skyroot_shield/skyroot_handle", - "1": "aether:items/shields/skyroot_shield/skyroot_base1_n_d", - "2": "aether:items/shields/skyroot_shield/skyroot_base1_w_e", - "3": "aether:items/shields/skyroot_shield/skyroot_base1_s_u", - "4": "aether:items/shields/skyroot_shield/skyroot_base2", - "5": "aether:items/shields/skyroot_shield/skyroot_center_mid", - "6": "aether:items/shields/skyroot_shield/skyroot_wing_right1", - "7": "aether:items/shields/skyroot_shield/skyroot_wing_right3", - "8": "aether:items/shields/skyroot_shield/skyroot_wing_left1", - "9": "aether:items/shields/skyroot_shield/skyroot_wing_left3" - }, - "elements": [ - { - "name": "Handle", - "from": [ 7, 5, 5 ], - "to": [ 9, 11, 11 ], - "faces": { - "north": { "texture": "#0", "uv": [ 6, 1, 8, 7 ] }, - "east": { "texture": "#0", "uv": [ 0, 7, 6, 13 ] }, - "south": { "texture": "#0", "uv": [ 6, 7, 8, 13 ] }, - "west": { "texture": "#0", "uv": [ 0, 7, 6, 13 ] }, - "up": { "texture": "#0", "uv": [ 6, 7, 8, 13 ] }, - "down": { "texture": "#0", "uv": [ 6, 7, 8, 13 ] } - } - }, - { - "name": "Base1", - "from": [ 0, 3, 11 ], - "to": [ 16, 15, 12 ], - "faces": { - "north": { "texture": "#1", "uv": [ 0, 1, 16, 13 ] }, - "east": { "texture": "#2", "uv": [ 3, 0, 4, 12 ] }, - "south": { "texture": "#3", "uv": [ 0, 1, 16, 13 ] }, - "west": { "texture": "#2", "uv": [ 0, 0, 1, 12 ] }, - "up": { "texture": "#3", "uv": [ 0, 0, 16, 1 ] }, - "down": { "texture": "#1", "uv": [ 0, 0, 16, 1 ] } - } - }, - { - "name": "Base2", - "from": [ 2, 1, 11 ], - "to": [ 14, 3, 12 ], - "faces": { - "north": { "texture": "#4", "uv": [ 4, 4, 16, 6 ] }, - "east": { "texture": "#4", "uv": [ 3, 4, 4, 6 ] }, - "south": { "texture": "#4", "uv": [ 1, 1, 13, 3 ] }, - "west": { "texture": "#4", "uv": [ 0, 1, 1, 3 ] }, - "up": { "texture": "#4", "uv": [ 1, 0, 13, 1 ] }, - "down": { "texture": "#4", "uv": [ 3, 3, 15, 4 ] } - } - }, - { - "name": "Base3", - "from": [ 4, -1, 11 ], - "to": [ 12, 1, 12 ], - "faces": { - "north": { "texture": "#4", "uv": [ 8, 10, 16, 12 ] }, - "east": { "texture": "#4", "uv": [ 7, 10, 8, 12 ] }, - "south": { "texture": "#4", "uv": [ 1, 7, 9, 9 ] }, - "west": { "texture": "#4", "uv": [ 0, 1, 1, 3 ] }, - "up": { "texture": "#4", "uv": [ 1, 6, 9, 7 ] }, - "down": { "texture": "#4", "uv": [ 7, 9, 15, 10 ] } - } - }, - { - "name": "Base4", - "from": [ 6, -3, 11 ], - "to": [ 10, -1, 12 ], - "faces": { - "north": { "texture": "#4", "uv": [ 9, 13, 13, 15 ] }, - "east": { "texture": "#4", "uv": [ 9, 13, 8, 15 ] }, - "south": { "texture": "#4", "uv": [ 4, 13, 8, 15 ] }, - "west": { "texture": "#4", "uv": [ 3, 13, 4, 15 ] }, - "up": { "texture": "#4", "uv": [ 4, 12, 8, 13 ] }, - "down": { "texture": "#4", "uv": [ 8, 12, 12, 13 ] } - } - }, - { - "name": "CenterMid", - "from": [ 6, 5, 12 ], - "to": [ 10, 15, 13 ], - "faces": { - "north": { "texture": "#5", "uv": [ 8, 2, 12, 12 ] }, - "east": { "texture": "#5", "uv": [ 6, 2, 8, 12 ] }, - "south": { "texture": "#5", "uv": [ 2, 2, 6, 12 ] }, - "west": { "texture": "#5", "uv": [ 0, 2, 2, 12 ] }, - "up": { "texture": "#5", "uv": [ 2, 0, 6, 2 ] }, - "down": { "texture": "#5", "uv": [ 6, 0, 10, 2 ] } - } - }, - { - "name": "WingRight1", - "from": [ 4, 7, 11.5 ], - "to": [ 6, 19, 12.5 ], - "faces": { - "north": { "texture": "#6", "uv": [ 4, 1, 6, 13 ] }, - "east": { "texture": "#6", "uv": [ 3, 1, 4, 13 ] }, - "south": { "texture": "#6", "uv": [ 1, 1, 3, 13 ] }, - "west": { "texture": "#6", "uv": [ 0, 1, 1, 13 ] }, - "up": { "texture": "#6", "uv": [ 1, 0, 3, 1 ] }, - "down": { "texture": "#6", "uv": [ 3, 0, 5, 1 ] } - } - }, - { - "name": "Wing Right2", - "from": [ 2, 9, 11.5 ], - "to": [ 4, 19, 12.5 ], - "faces": { - "north": { "texture": "#6", "uv": [ 12, 3, 14, 13 ] }, - "east": { "texture": "#6", "uv": [ 11, 3, 12, 13 ] }, - "south": { "texture": "#6", "uv": [ 9, 3, 11, 13 ] }, - "west": { "texture": "#6", "uv": [ 8, 3, 9, 13 ] }, - "up": { "texture": "#6", "uv": [ 9, 2, 11, 3 ] }, - "down": { "texture": "#6", "uv": [ 11, 2, 13, 3 ] } - } - }, - { - "name": "WingRight3", - "from": [ 0, 9, 11.5 ], - "to": [ 2, 17, 12.5 ], - "faces": { - "north": { "texture": "#7", "uv": [ 4, 1, 6, 9 ] }, - "east": { "texture": "#7", "uv": [ 3, 1, 4, 9 ] }, - "south": { "texture": "#7", "uv": [ 1, 1, 3, 9 ] }, - "west": { "texture": "#7", "uv": [ 0, 1, 1, 9 ] }, - "up": { "texture": "#7", "uv": [ 1, 0, 3, 1 ] }, - "down": { "texture": "#7", "uv": [ 3, 0, 5, 1 ] } - } - }, - { - "name": "WingRight4", - "from": [ -1, 9, 11.5 ], - "to": [ 0, 15, 12.5 ], - "faces": { - "north": { "texture": "#7", "uv": [ 9, 3, 10, 9 ] }, - "east": { "texture": "#7", "uv": [ 8, 3, 9, 9 ] }, - "south": { "texture": "#7", "uv": [ 7, 3, 8, 9 ] }, - "west": { "texture": "#7", "uv": [ 6, 3, 7, 9 ] }, - "up": { "texture": "#7", "uv": [ 7, 2, 8, 3 ] }, - "down": { "texture": "#7", "uv": [ 8, 2, 9, 3 ] } - } - }, - { - "name": "WingRight5", - "from": [ -1, 7, 11.5 ], - "to": [ 1, 9, 12.5 ], - "faces": { - "north": { "texture": "#7", "uv": [ 14, 7, 16, 9 ] }, - "east": { "texture": "#7", "uv": [ 13, 7, 14, 9 ] }, - "south": { "texture": "#7", "uv": [ 11, 7, 13, 9 ] }, - "west": { "texture": "#7", "uv": [ 10, 7, 11, 9 ] }, - "up": { "texture": "#7", "uv": [ 11, 6, 13, 7 ] }, - "down": { "texture": "#7", "uv": [ 13, 6, 15, 7 ] } - } - }, - { - "name": "WingLeft1", - "from": [ 10, 7, 11.5 ], - "to": [ 12, 19, 12.5 ], - "faces": { - "north": { "texture": "#8", "uv": [ 14, 1, 16, 13 ] }, - "east": { "texture": "#8", "uv": [ 13, 1, 14, 13 ] }, - "south": { "texture": "#8", "uv": [ 11, 1, 13, 13 ] }, - "west": { "texture": "#8", "uv": [ 10, 1, 11, 13 ] }, - "up": { "texture": "#8", "uv": [ 11, 0, 13, 1 ] }, - "down": { "texture": "#8", "uv": [ 13, 0, 15, 1 ] } - } - }, - { - "name": "WingLeft2", - "from": [ 12, 9, 11.5 ], - "to": [ 14, 19, 12.5 ], - "faces": { - "north": { "texture": "#8", "uv": [ 6, 3, 8, 13 ] }, - "east": { "texture": "#8", "uv": [ 5, 3, 6, 13 ] }, - "south": { "texture": "#8", "uv": [ 3, 3, 5, 13 ] }, - "west": { "texture": "#8", "uv": [ 2, 3, 3, 13 ] }, - "up": { "texture": "#8", "uv": [ 3, 2, 5, 3 ] }, - "down": { "texture": "#8", "uv": [ 5, 2, 7, 3 ] } - } - }, - { - "name": "WingLeft3", - "from": [ 14, 9, 11.5 ], - "to": [ 16, 17, 12.5 ], - "faces": { - "north": { "texture": "#9", "uv": [ 14, 1, 16, 9 ] }, - "east": { "texture": "#9", "uv": [ 13, 1, 14, 9 ] }, - "south": { "texture": "#9", "uv": [ 11, 1, 13, 9 ] }, - "west": { "texture": "#9", "uv": [ 10, 1, 11, 9 ] }, - "up": { "texture": "#9", "uv": [ 11, 0, 13, 1 ] }, - "down": { "texture": "#9", "uv": [ 13, 0, 15, 1 ] } - } - }, - { - "name": "WingLeft4", - "from": [ 16, 9, 11.5 ], - "to": [ 17, 15, 12.5 ], - "faces": { - "north": { "texture": "#9", "uv": [ 9, 3, 10, 9 ] }, - "east": { "texture": "#9", "uv": [ 8, 3, 9, 9 ] }, - "south": { "texture": "#9", "uv": [ 7, 3, 8, 9 ] }, - "west": { "texture": "#9", "uv": [ 6, 3, 7, 9 ] }, - "up": { "texture": "#9", "uv": [ 7, 2, 8, 3 ] }, - "down": { "texture": "#9", "uv": [ 8, 2, 9, 3 ] } - } - }, - { - "name": "WingLeft5", - "from": [ 15, 7, 11.5 ], - "to": [ 17, 9, 12.5 ], - "faces": { - "north": { "texture": "#9", "uv": [ 4, 7, 6, 9 ] }, - "east": { "texture": "#9", "uv": [ 3, 7, 4, 9 ] }, - "south": { "texture": "#9", "uv": [ 1, 7, 3, 9 ] }, - "west": { "texture": "#9", "uv": [ 0, 7, 1, 9 ] }, - "up": { "texture": "#9", "uv": [ 1, 6, 3, 7 ] }, - "down": { "texture": "#9", "uv": [ 3, 6, 5, 7 ] } - } - } - ] -} diff --git a/src/main/resources/assets/aether/models/item/skyroot_shield_blocking.json b/src/main/resources/assets/aether/models/item/skyroot_shield_blocking.json deleted file mode 100644 index 1b899c80c4..0000000000 --- a/src/main/resources/assets/aether/models/item/skyroot_shield_blocking.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "parent": "aether:item/skyroot_shield_base", - "display": { - "thirdperson_righthand": { - "rotation": [ 45, 135, 0 ], - "translation": [ 2, -4, 3 ], - "scale": [ 1, 1, 1 ] - }, - "thirdperson_lefthand": { - "rotation": [ 45, 135, 0 ], - "translation": [ 2, -4, 3 ], - "scale": [ 1, 1, 1 ] - }, - "firstperson_righthand": { - "rotation": [ 0, 180, -5 ], - "translation": [ -3, -5, 1 ], - "scale": [ 1.25, 1.25, 1.25 ] - }, - "firstperson_lefthand": { - "rotation": [ 0, 180, -5 ], - "translation": [ -3, -5, 1 ], - "scale": [ 1.25, 1.25, 1.25 ] - }, - "gui": { - "rotation": [ 15, -25, -5 ], - "translation": [ 0, 0, 0 ], - "scale": [ 0.65, 0.65, 0.65 ] - } - } -} diff --git a/src/main/resources/assets/aether/models/item/skyroot_sign.json b/src/main/resources/assets/aether/models/item/skyroot_sign.json deleted file mode 100644 index dacc2b3ace..0000000000 --- a/src/main/resources/assets/aether/models/item/skyroot_sign.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "aether:items/skyroot_sign" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/skyroot_stick.json b/src/main/resources/assets/aether/models/item/skyroot_stick.json deleted file mode 100644 index 574310347e..0000000000 --- a/src/main/resources/assets/aether/models/item/skyroot_stick.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/handheld", - "textures": { - "layer0": "aether:items/materials/skyroot_stick" - } -} diff --git a/src/main/resources/assets/aether/models/item/skyroot_trapdoor.json b/src/main/resources/assets/aether/models/item/skyroot_trapdoor.json deleted file mode 100644 index 86145fdb4d..0000000000 --- a/src/main/resources/assets/aether/models/item/skyroot_trapdoor.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/trapdoor_bottom", - "textures": { - "texture": "aether:blocks/skyroot_trapdoor" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/skyroot_twigs.json b/src/main/resources/assets/aether/models/item/skyroot_twigs.json deleted file mode 100644 index 7fbf7a5203..0000000000 --- a/src/main/resources/assets/aether/models/item/skyroot_twigs.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "aether:block/skyroot_twigs/skyroot_twigs" -} diff --git a/src/main/resources/assets/aether/models/item/splint.json b/src/main/resources/assets/aether/models/item/splint.json deleted file mode 100644 index a743b41ec8..0000000000 --- a/src/main/resources/assets/aether/models/item/splint.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "aether:items/consumables/splint" - } -} diff --git a/src/main/resources/assets/aether/models/item/stomper_pop.json b/src/main/resources/assets/aether/models/item/stomper_pop.json deleted file mode 100644 index 0e513054f5..0000000000 --- a/src/main/resources/assets/aether/models/item/stomper_pop.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "aether:items/consumables/stomper_pop" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/swet_gel/blue_swet_gel.json b/src/main/resources/assets/aether/models/item/swet_gel/blue_swet_gel.json deleted file mode 100644 index 615cec6835..0000000000 --- a/src/main/resources/assets/aether/models/item/swet_gel/blue_swet_gel.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "aether:items/materials/blue_swet_gel" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/swet_gel/green_swet_gel.json b/src/main/resources/assets/aether/models/item/swet_gel/green_swet_gel.json deleted file mode 100644 index 7535d60752..0000000000 --- a/src/main/resources/assets/aether/models/item/swet_gel/green_swet_gel.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "aether:items/materials/green_swet_gel" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/swet_gel/purple_swet_gel.json b/src/main/resources/assets/aether/models/item/swet_gel/purple_swet_gel.json deleted file mode 100644 index 3cb68b1410..0000000000 --- a/src/main/resources/assets/aether/models/item/swet_gel/purple_swet_gel.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "aether:items/materials/purple_swet_gel" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/swet_jelly/blue_swet_jelly.json b/src/main/resources/assets/aether/models/item/swet_jelly/blue_swet_jelly.json deleted file mode 100644 index 19e79a0f80..0000000000 --- a/src/main/resources/assets/aether/models/item/swet_jelly/blue_swet_jelly.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "aether:items/consumables/blue_swet_jelly" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/swet_jelly/green_swet_jelly.json b/src/main/resources/assets/aether/models/item/swet_jelly/green_swet_jelly.json deleted file mode 100644 index 9ff791a379..0000000000 --- a/src/main/resources/assets/aether/models/item/swet_jelly/green_swet_jelly.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "aether:items/consumables/green_swet_jelly" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/swet_jelly/purple_swet_jelly.json b/src/main/resources/assets/aether/models/item/swet_jelly/purple_swet_jelly.json deleted file mode 100644 index e5182b3ad5..0000000000 --- a/src/main/resources/assets/aether/models/item/swet_jelly/purple_swet_jelly.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "aether:items/consumables/purple_swet_jelly" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/swet_sugar.json b/src/main/resources/assets/aether/models/item/swet_sugar.json deleted file mode 100644 index 6b98a22d24..0000000000 --- a/src/main/resources/assets/aether/models/item/swet_sugar.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "aether:items/materials/swet_sugar" - } -} diff --git a/src/main/resources/assets/aether/models/item/taegore_hide.json b/src/main/resources/assets/aether/models/item/taegore_hide.json deleted file mode 100644 index 8400b96170..0000000000 --- a/src/main/resources/assets/aether/models/item/taegore_hide.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "aether:items/materials/taegore_hide" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/taegore_steak.json b/src/main/resources/assets/aether/models/item/taegore_steak.json deleted file mode 100644 index 160a5474d2..0000000000 --- a/src/main/resources/assets/aether/models/item/taegore_steak.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "aether:items/consumables/taegore_steak" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/taegore_tusk.json b/src/main/resources/assets/aether/models/item/taegore_tusk.json deleted file mode 100644 index 19b8fad5f9..0000000000 --- a/src/main/resources/assets/aether/models/item/taegore_tusk.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "aether:items/charms/taegore_tusk" - } -} diff --git a/src/main/resources/assets/aether/models/item/tall_grass/long_aether.json b/src/main/resources/assets/aether/models/item/tall_grass/long_aether.json deleted file mode 100644 index 0ad12f3f33..0000000000 --- a/src/main/resources/assets/aether/models/item/tall_grass/long_aether.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "aether:blocks/tall_grass/long_highlands" - } -} diff --git a/src/main/resources/assets/aether/models/item/tall_grass/normal_aether.json b/src/main/resources/assets/aether/models/item/tall_grass/normal_aether.json deleted file mode 100644 index 2bde90a34d..0000000000 --- a/src/main/resources/assets/aether/models/item/tall_grass/normal_aether.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "aether:blocks/tall_grass/normal_highlands" - } -} diff --git a/src/main/resources/assets/aether/models/item/tall_grass/short_aether.json b/src/main/resources/assets/aether/models/item/tall_grass/short_aether.json deleted file mode 100644 index 0c11b8eb6f..0000000000 --- a/src/main/resources/assets/aether/models/item/tall_grass/short_aether.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "aether:blocks/tall_grass/short_highlands" - } -} diff --git a/src/main/resources/assets/aether/models/item/tea/valkyrie_tea.json b/src/main/resources/assets/aether/models/item/tea/valkyrie_tea.json deleted file mode 100644 index dfab6eb4f6..0000000000 --- a/src/main/resources/assets/aether/models/item/tea/valkyrie_tea.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "aether:items/consumables/tea/valkyrie_tea" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/tesr.json b/src/main/resources/assets/aether/models/item/tesr.json deleted file mode 100644 index 018aa26268..0000000000 --- a/src/main/resources/assets/aether/models/item/tesr.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "parent": "builtin/entity", - "display": { - "gui": { - "rotation": [ 30, 225, 0 ], - "translation": [ 0, 0, 0 ], - "scale": [ 0.625, 0.625, 0.625 ] - }, - "ground": { - "rotation": [ 0, 0, 0 ], - "translation": [ 0, 3, 0 ], - "scale": [ 0.25, 0.25, 0.25 ] - }, - "fixed": { - "rotation": [ 0, 0, 0 ], - "translation": [ 0, 0, 0 ], - "scale": [ 0.5, 0.5, 0.5 ] - }, - "thirdperson_righthand": { - "rotation": [ 75, 45, 0 ], - "translation": [ 0, 2.5, 0 ], - "scale": [ 0.375, 0.375, 0.375 ] - }, - "firstperson_righthand": { - "rotation": [ 0, 45, 0 ], - "translation": [ 0, 0, 0 ], - "scale": [ 0.40, 0.40, 0.40 ] - }, - "firstperson_lefthand": { - "rotation": [ 0, 225, 0 ], - "translation": [ 0, 0, 0 ], - "scale": [ 0.40, 0.40, 0.40 ] - } - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/thera_dirt/thera_dirt.json b/src/main/resources/assets/aether/models/item/thera_dirt/thera_dirt.json deleted file mode 100644 index d50621c3c8..0000000000 --- a/src/main/resources/assets/aether/models/item/thera_dirt/thera_dirt.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "aether:block/thera_dirt/thera_dirt" -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/thera_grass/thera_grass.json b/src/main/resources/assets/aether/models/item/thera_grass/thera_grass.json deleted file mode 100644 index 0131ebf270..0000000000 --- a/src/main/resources/assets/aether/models/item/thera_grass/thera_grass.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "aether:block/thera_grass/thera_grass" -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/therastone_bricks/base_bricks.json b/src/main/resources/assets/aether/models/item/therastone_bricks/base_bricks.json deleted file mode 100644 index ac17faf75d..0000000000 --- a/src/main/resources/assets/aether/models/item/therastone_bricks/base_bricks.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "aether:block/therastone_bricks/base_bricks" -} diff --git a/src/main/resources/assets/aether/models/item/therastone_bricks/base_pillar.json b/src/main/resources/assets/aether/models/item/therastone_bricks/base_pillar.json deleted file mode 100644 index 0bab05d37e..0000000000 --- a/src/main/resources/assets/aether/models/item/therastone_bricks/base_pillar.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "aether:block/therastone_bricks/base_pillar" -} diff --git a/src/main/resources/assets/aether/models/item/therastone_bricks/capstone_bricks.json b/src/main/resources/assets/aether/models/item/therastone_bricks/capstone_bricks.json deleted file mode 100644 index b80dd9af9c..0000000000 --- a/src/main/resources/assets/aether/models/item/therastone_bricks/capstone_bricks.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "aether:block/therastone_bricks/capstone_bricks" -} diff --git a/src/main/resources/assets/aether/models/item/therastone_bricks/capstone_pillar.json b/src/main/resources/assets/aether/models/item/therastone_bricks/capstone_pillar.json deleted file mode 100644 index 0fc325d75c..0000000000 --- a/src/main/resources/assets/aether/models/item/therastone_bricks/capstone_pillar.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "aether:block/therastone_bricks/capstone_pillar" -} diff --git a/src/main/resources/assets/aether/models/item/therastone_bricks/flagstones.json b/src/main/resources/assets/aether/models/item/therastone_bricks/flagstones.json deleted file mode 100644 index 6b31f36176..0000000000 --- a/src/main/resources/assets/aether/models/item/therastone_bricks/flagstones.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "aether:block/therastone_bricks/flagstones" -} diff --git a/src/main/resources/assets/aether/models/item/therastone_bricks/headstone.json b/src/main/resources/assets/aether/models/item/therastone_bricks/headstone.json deleted file mode 100644 index e888aa8224..0000000000 --- a/src/main/resources/assets/aether/models/item/therastone_bricks/headstone.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "aether:block/therastone_bricks/headstone" -} diff --git a/src/main/resources/assets/aether/models/item/therastone_bricks/keystone.json b/src/main/resources/assets/aether/models/item/therastone_bricks/keystone.json deleted file mode 100644 index 35750eccab..0000000000 --- a/src/main/resources/assets/aether/models/item/therastone_bricks/keystone.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "aether:block/therastone_bricks/keystone" -} diff --git a/src/main/resources/assets/aether/models/item/therastone_bricks/normal.json b/src/main/resources/assets/aether/models/item/therastone_bricks/normal.json deleted file mode 100644 index c6c2a7438c..0000000000 --- a/src/main/resources/assets/aether/models/item/therastone_bricks/normal.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "aether:block/therastone_bricks/normal" -} diff --git a/src/main/resources/assets/aether/models/item/therastone_bricks/pillar.json b/src/main/resources/assets/aether/models/item/therastone_bricks/pillar.json deleted file mode 100644 index ae960dcfc4..0000000000 --- a/src/main/resources/assets/aether/models/item/therastone_bricks/pillar.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "aether:block/therastone_bricks/pillar" -} diff --git a/src/main/resources/assets/aether/models/item/therawood_button.json b/src/main/resources/assets/aether/models/item/therawood_button.json deleted file mode 100644 index 306eb14302..0000000000 --- a/src/main/resources/assets/aether/models/item/therawood_button.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "aether:block/therawood_button/therawood_button_inventory" -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/therawood_fence.json b/src/main/resources/assets/aether/models/item/therawood_fence.json deleted file mode 100644 index 525cd7541c..0000000000 --- a/src/main/resources/assets/aether/models/item/therawood_fence.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/fence_inventory", - "textures": { - "texture": "aether:blocks/therawood_planks/therawood_planks" - } -} diff --git a/src/main/resources/assets/aether/models/item/therawood_fence_gate.json b/src/main/resources/assets/aether/models/item/therawood_fence_gate.json deleted file mode 100644 index 98288805b6..0000000000 --- a/src/main/resources/assets/aether/models/item/therawood_fence_gate.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "aether:block/therawood_fence_gate/therawood_fence_gate_closed", - "textures": { - "texture": "aether:blocks/therawood_planks/therawood_planks" - } -} diff --git a/src/main/resources/assets/aether/models/item/therawood_planks/base_beam.json b/src/main/resources/assets/aether/models/item/therawood_planks/base_beam.json deleted file mode 100644 index fdccb9d7f3..0000000000 --- a/src/main/resources/assets/aether/models/item/therawood_planks/base_beam.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "aether:block/therawood_planks/base_beam" -} diff --git a/src/main/resources/assets/aether/models/item/therawood_planks/base_planks.json b/src/main/resources/assets/aether/models/item/therawood_planks/base_planks.json deleted file mode 100644 index 9e8001a3be..0000000000 --- a/src/main/resources/assets/aether/models/item/therawood_planks/base_planks.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "aether:block/therawood_planks/base_planks" -} diff --git a/src/main/resources/assets/aether/models/item/therawood_planks/beam.json b/src/main/resources/assets/aether/models/item/therawood_planks/beam.json deleted file mode 100644 index 9a8fdcc6a6..0000000000 --- a/src/main/resources/assets/aether/models/item/therawood_planks/beam.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "aether:block/therawood_planks/beam" -} diff --git a/src/main/resources/assets/aether/models/item/therawood_planks/floorboards.json b/src/main/resources/assets/aether/models/item/therawood_planks/floorboards.json deleted file mode 100644 index 89e0507df8..0000000000 --- a/src/main/resources/assets/aether/models/item/therawood_planks/floorboards.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "aether:block/therawood_planks/floorboards" -} diff --git a/src/main/resources/assets/aether/models/item/therawood_planks/highlight.json b/src/main/resources/assets/aether/models/item/therawood_planks/highlight.json deleted file mode 100644 index e51e859d5b..0000000000 --- a/src/main/resources/assets/aether/models/item/therawood_planks/highlight.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "aether:block/therawood_planks/highlight" -} diff --git a/src/main/resources/assets/aether/models/item/therawood_planks/normal.json b/src/main/resources/assets/aether/models/item/therawood_planks/normal.json deleted file mode 100644 index d66d5fa2d0..0000000000 --- a/src/main/resources/assets/aether/models/item/therawood_planks/normal.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "aether:block/therawood_planks/normal" -} diff --git a/src/main/resources/assets/aether/models/item/therawood_planks/top_beam.json b/src/main/resources/assets/aether/models/item/therawood_planks/top_beam.json deleted file mode 100644 index 1aa6592879..0000000000 --- a/src/main/resources/assets/aether/models/item/therawood_planks/top_beam.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "aether:block/therawood_planks/top_beam" -} diff --git a/src/main/resources/assets/aether/models/item/therawood_planks/top_planks.json b/src/main/resources/assets/aether/models/item/therawood_planks/top_planks.json deleted file mode 100644 index d35dbd1478..0000000000 --- a/src/main/resources/assets/aether/models/item/therawood_planks/top_planks.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "aether:block/therawood_planks/top_planks" -} diff --git a/src/main/resources/assets/aether/models/item/therawood_pressure_plate.json b/src/main/resources/assets/aether/models/item/therawood_pressure_plate.json deleted file mode 100644 index 8e3364666b..0000000000 --- a/src/main/resources/assets/aether/models/item/therawood_pressure_plate.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "aether:block/therawood_pressure_plate/therawood_pressure_plate_up" -} diff --git a/src/main/resources/assets/aether/models/item/tools/arkenium_axe.json b/src/main/resources/assets/aether/models/item/tools/arkenium_axe.json deleted file mode 100644 index 5363fb9992..0000000000 --- a/src/main/resources/assets/aether/models/item/tools/arkenium_axe.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/handheld", - "textures": { - "layer0": "aether:items/tools/arkenium_axe" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/tools/arkenium_pickaxe.json b/src/main/resources/assets/aether/models/item/tools/arkenium_pickaxe.json deleted file mode 100644 index a21ca448f5..0000000000 --- a/src/main/resources/assets/aether/models/item/tools/arkenium_pickaxe.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/handheld", - "textures": { - "layer0": "aether:items/tools/arkenium_pickaxe" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/tools/arkenium_shears.json b/src/main/resources/assets/aether/models/item/tools/arkenium_shears.json deleted file mode 100644 index f53211e0a0..0000000000 --- a/src/main/resources/assets/aether/models/item/tools/arkenium_shears.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/handheld", - "textures": { - "layer0": "aether:items/tools/arkenium_shears" - } -} diff --git a/src/main/resources/assets/aether/models/item/tools/arkenium_shovel.json b/src/main/resources/assets/aether/models/item/tools/arkenium_shovel.json deleted file mode 100644 index 456ca0cb1b..0000000000 --- a/src/main/resources/assets/aether/models/item/tools/arkenium_shovel.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/handheld", - "textures": { - "layer0": "aether:items/tools/arkenium_shovel" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/tools/gravitite_axe.json b/src/main/resources/assets/aether/models/item/tools/gravitite_axe.json deleted file mode 100644 index 2a2b49881b..0000000000 --- a/src/main/resources/assets/aether/models/item/tools/gravitite_axe.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/handheld", - "textures": { - "layer0": "aether:items/tools/gravitite_axe" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/tools/gravitite_pickaxe.json b/src/main/resources/assets/aether/models/item/tools/gravitite_pickaxe.json deleted file mode 100644 index 985ab6f723..0000000000 --- a/src/main/resources/assets/aether/models/item/tools/gravitite_pickaxe.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/handheld", - "textures": { - "layer0": "aether:items/tools/gravitite_pickaxe" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/tools/gravitite_shovel.json b/src/main/resources/assets/aether/models/item/tools/gravitite_shovel.json deleted file mode 100644 index b52968fbff..0000000000 --- a/src/main/resources/assets/aether/models/item/tools/gravitite_shovel.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/handheld", - "textures": { - "layer0": "aether:items/tools/gravitite_shovel" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/tools/holystone_axe.json b/src/main/resources/assets/aether/models/item/tools/holystone_axe.json deleted file mode 100644 index acf6a390a7..0000000000 --- a/src/main/resources/assets/aether/models/item/tools/holystone_axe.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/handheld", - "textures": { - "layer0": "aether:items/tools/holystone_axe" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/tools/holystone_pickaxe.json b/src/main/resources/assets/aether/models/item/tools/holystone_pickaxe.json deleted file mode 100644 index 3acffb8ff7..0000000000 --- a/src/main/resources/assets/aether/models/item/tools/holystone_pickaxe.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/handheld", - "textures": { - "layer0": "aether:items/tools/holystone_pickaxe" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/tools/holystone_shovel.json b/src/main/resources/assets/aether/models/item/tools/holystone_shovel.json deleted file mode 100644 index c3ab635b78..0000000000 --- a/src/main/resources/assets/aether/models/item/tools/holystone_shovel.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/handheld", - "textures": { - "layer0": "aether:items/tools/holystone_shovel" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/tools/skyroot_axe.json b/src/main/resources/assets/aether/models/item/tools/skyroot_axe.json deleted file mode 100644 index 84e64e2b9d..0000000000 --- a/src/main/resources/assets/aether/models/item/tools/skyroot_axe.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/handheld", - "textures": { - "layer0": "aether:items/tools/skyroot_axe" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/tools/skyroot_pickaxe.json b/src/main/resources/assets/aether/models/item/tools/skyroot_pickaxe.json deleted file mode 100644 index bb0c0d2135..0000000000 --- a/src/main/resources/assets/aether/models/item/tools/skyroot_pickaxe.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/handheld", - "textures": { - "layer0": "aether:items/tools/skyroot_pickaxe" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/tools/skyroot_shovel.json b/src/main/resources/assets/aether/models/item/tools/skyroot_shovel.json deleted file mode 100644 index c651d52e61..0000000000 --- a/src/main/resources/assets/aether/models/item/tools/skyroot_shovel.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/handheld", - "textures": { - "layer0": "aether:items/tools/skyroot_shovel" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/tools/zanite_axe.json b/src/main/resources/assets/aether/models/item/tools/zanite_axe.json deleted file mode 100644 index e92a25f2ab..0000000000 --- a/src/main/resources/assets/aether/models/item/tools/zanite_axe.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/handheld", - "textures": { - "layer0": "aether:items/tools/zanite_axe" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/tools/zanite_pickaxe.json b/src/main/resources/assets/aether/models/item/tools/zanite_pickaxe.json deleted file mode 100644 index 7bf56ada26..0000000000 --- a/src/main/resources/assets/aether/models/item/tools/zanite_pickaxe.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/handheld", - "textures": { - "layer0": "aether:items/tools/zanite_pickaxe" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/tools/zanite_shovel.json b/src/main/resources/assets/aether/models/item/tools/zanite_shovel.json deleted file mode 100644 index bd677f33aa..0000000000 --- a/src/main/resources/assets/aether/models/item/tools/zanite_shovel.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/handheld", - "textures": { - "layer0": "aether:items/tools/zanite_shovel" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/valkyrie_grass/valkyrie_grass_full.json b/src/main/resources/assets/aether/models/item/valkyrie_grass/valkyrie_grass_full.json deleted file mode 100644 index 3c2ebd3cd0..0000000000 --- a/src/main/resources/assets/aether/models/item/valkyrie_grass/valkyrie_grass_full.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "aether:blocks/valkyrie_grass/valkyrie_grass_2" - } -} diff --git a/src/main/resources/assets/aether/models/item/valkyrie_grass/valkyrie_grass_sprout.json b/src/main/resources/assets/aether/models/item/valkyrie_grass/valkyrie_grass_sprout.json deleted file mode 100644 index 92ad1a9a67..0000000000 --- a/src/main/resources/assets/aether/models/item/valkyrie_grass/valkyrie_grass_sprout.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "aether:blocks/valkyrie_grass/valkyrie_grass_0" - } -} diff --git a/src/main/resources/assets/aether/models/item/valkyrie_wings.json b/src/main/resources/assets/aether/models/item/valkyrie_wings.json deleted file mode 100644 index 903238c79c..0000000000 --- a/src/main/resources/assets/aether/models/item/valkyrie_wings.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "aether:items/materials/valkyrie_wings" - } -} diff --git a/src/main/resources/assets/aether/models/item/weapons/arkenium_sword.json b/src/main/resources/assets/aether/models/item/weapons/arkenium_sword.json deleted file mode 100644 index 9fc3eb65de..0000000000 --- a/src/main/resources/assets/aether/models/item/weapons/arkenium_sword.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/handheld", - "textures": { - "layer0": "aether:items/weapons/arkenium_sword" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/weapons/gravitite_sword.json b/src/main/resources/assets/aether/models/item/weapons/gravitite_sword.json deleted file mode 100644 index e130141a6f..0000000000 --- a/src/main/resources/assets/aether/models/item/weapons/gravitite_sword.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/handheld", - "textures": { - "layer0": "aether:items/weapons/gravitite_sword" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/weapons/holystone_sword.json b/src/main/resources/assets/aether/models/item/weapons/holystone_sword.json deleted file mode 100644 index 979762aff8..0000000000 --- a/src/main/resources/assets/aether/models/item/weapons/holystone_sword.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/handheld", - "textures": { - "layer0": "aether:items/weapons/holystone_sword" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/weapons/skyroot_sword.json b/src/main/resources/assets/aether/models/item/weapons/skyroot_sword.json deleted file mode 100644 index 48b5b39596..0000000000 --- a/src/main/resources/assets/aether/models/item/weapons/skyroot_sword.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/handheld", - "textures": { - "layer0": "aether:items/weapons/skyroot_sword" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/weapons/zanite_sword.json b/src/main/resources/assets/aether/models/item/weapons/zanite_sword.json deleted file mode 100644 index 68b0d312dc..0000000000 --- a/src/main/resources/assets/aether/models/item/weapons/zanite_sword.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/handheld", - "textures": { - "layer0": "aether:items/weapons/zanite_sword" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/wildcard.json b/src/main/resources/assets/aether/models/item/wildcard.json deleted file mode 100644 index 55de7123d9..0000000000 --- a/src/main/resources/assets/aether/models/item/wildcard.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "aether:block/wildcard" -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/wisproot_button.json b/src/main/resources/assets/aether/models/item/wisproot_button.json deleted file mode 100644 index 067359baad..0000000000 --- a/src/main/resources/assets/aether/models/item/wisproot_button.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "aether:block/wisproot_button/wisproot_button_inventory" -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/wisproot_fence.json b/src/main/resources/assets/aether/models/item/wisproot_fence.json deleted file mode 100644 index a6cbc5ed26..0000000000 --- a/src/main/resources/assets/aether/models/item/wisproot_fence.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/fence_inventory", - "textures": { - "texture": "aether:blocks/light_skyroot_planks/wisproot_planks" - } -} diff --git a/src/main/resources/assets/aether/models/item/wisproot_fence_gate.json b/src/main/resources/assets/aether/models/item/wisproot_fence_gate.json deleted file mode 100644 index 9b825c447a..0000000000 --- a/src/main/resources/assets/aether/models/item/wisproot_fence_gate.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "aether:block/wisproot_fence_gate/wisproot_fence_gate_closed", - "textures": { - "texture": "aether:blocks/light_skyroot_planks/wisproot_planks" - } -} diff --git a/src/main/resources/assets/aether/models/item/wisproot_pressure_plate.json b/src/main/resources/assets/aether/models/item/wisproot_pressure_plate.json deleted file mode 100644 index 62dc9f7f80..0000000000 --- a/src/main/resources/assets/aether/models/item/wisproot_pressure_plate.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "aether:block/wisproot_pressure_plate/wisproot_pressure_plate_up" -} diff --git a/src/main/resources/assets/aether/models/item/woven_sticks/woven_skyroot_sticks.json b/src/main/resources/assets/aether/models/item/woven_sticks/woven_skyroot_sticks.json deleted file mode 100644 index 0e1e354e4a..0000000000 --- a/src/main/resources/assets/aether/models/item/woven_sticks/woven_skyroot_sticks.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "aether:block/woven_sticks/woven_skyroot_sticks" -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/wrapped_chocolates.json b/src/main/resources/assets/aether/models/item/wrapped_chocolates.json deleted file mode 100644 index d720123e60..0000000000 --- a/src/main/resources/assets/aether/models/item/wrapped_chocolates.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "aether:items/consumables/wrapped_chocolates" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/wrapping_paper.json b/src/main/resources/assets/aether/models/item/wrapping_paper.json deleted file mode 100644 index 8bed7422e0..0000000000 --- a/src/main/resources/assets/aether/models/item/wrapping_paper.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "aether:items/wrapping_paper/base", - "layer1": "aether:items/wrapping_paper/overlay", - "layer2": "aether:items/wrapping_paper/ribbon" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/wyndberry.json b/src/main/resources/assets/aether/models/item/wyndberry.json deleted file mode 100644 index 9898cf8a89..0000000000 --- a/src/main/resources/assets/aether/models/item/wyndberry.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "aether:items/consumables/wyndberry" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/yule_log.json b/src/main/resources/assets/aether/models/item/yule_log.json deleted file mode 100644 index 11a53157cf..0000000000 --- a/src/main/resources/assets/aether/models/item/yule_log.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "aether:items/consumables/yule_log" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/zanite_block.json b/src/main/resources/assets/aether/models/item/zanite_block.json deleted file mode 100644 index 89efdf38d0..0000000000 --- a/src/main/resources/assets/aether/models/item/zanite_block.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "aether:block/zanite_block" -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/zanite_gemstone.json b/src/main/resources/assets/aether/models/item/zanite_gemstone.json deleted file mode 100644 index 022bfe3763..0000000000 --- a/src/main/resources/assets/aether/models/item/zanite_gemstone.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "aether:items/materials/zanite_gemstone" - } -} diff --git a/src/main/resources/assets/aether/models/item/zanite_shield.json b/src/main/resources/assets/aether/models/item/zanite_shield.json deleted file mode 100644 index 363ebb2ed0..0000000000 --- a/src/main/resources/assets/aether/models/item/zanite_shield.json +++ /dev/null @@ -1,48 +0,0 @@ -{ - "parent": "aether:item/zanite_shield_base", - "display": { - "thirdperson_righthand": { - "rotation": [ 0, 90, 0 ], - "translation": [ 0, -2, 4 ], - "scale": [ 1, 1, 1 ] - }, - "thirdperson_lefthand": { - "rotation": [ 0, 90, 0 ], - "translation": [ 0, -2, 4 ], - "scale": [ 1, 1, 1 ] - }, - "firstperson_righthand": { - "rotation": [ 0, 180, 5 ], - "translation": [ 2, -10, 2 ], - "scale": [ 1.25, 1.25, 1.25 ] - }, - "firstperson_lefthand": { - "rotation": [ 0, 180, 5 ], - "translation": [ 2, -10, 2 ], - "scale": [ 1.25, 1.25, 1.25 ] - }, - "gui": { - "rotation": [ 15, -25, -5 ], - "translation": [ 0, 0, 0 ], - "scale": [ 0.65, 0.65, 0.65 ] - }, - "fixed": { - "rotation": [ 0, 180, 0 ], - "translation": [ -2, 4, -5 ], - "scale": [ 0.5, 0.5, 0.5 ] - }, - "ground": { - "rotation": [ 0, 0, 0 ], - "translation": [ 0, 0, 2 ], - "scale": [ 0.25, 0.25, 0.25 ] - } - }, - "overrides": [ - { - "predicate": { - "blocking": 1 - }, - "model": "aether:item/zanite_shield_blocking" - } - ] -} diff --git a/src/main/resources/assets/aether/models/item/zanite_shield_base.json b/src/main/resources/assets/aether/models/item/zanite_shield_base.json deleted file mode 100644 index 92a36b0370..0000000000 --- a/src/main/resources/assets/aether/models/item/zanite_shield_base.json +++ /dev/null @@ -1,198 +0,0 @@ -{ - "textures": { - "0": "aether:items/shields/zanite_shield/zanite_handle", - "1": "aether:items/shields/zanite_shield/zanite_base1_n_d", - "2": "aether:items/shields/zanite_shield/zanite_base1_w_e", - "3": "aether:items/shields/zanite_shield/zanite_base1_s_u", - "4": "aether:items/shields/zanite_shield/zanite_base2", - "5": "aether:items/shields/zanite_shield/zanite_center_mid", - "6": "aether:items/shields/zanite_shield/zanite_wing_righta", - "7": "aether:items/shields/zanite_shield/zanite_wing_rightb", - "8": "aether:items/shields/zanite_shield/zanite_wing_lefta", - "9": "aether:items/shields/zanite_shield/zanite_wing_leftb" - }, - "elements": [ - { - "name": "Handle", - "from": [ 7, 5, 5 ], - "to": [ 9, 11, 11 ], - "faces": { - "north": { "texture": "#0", "uv": [ 6, 6, 8, 12 ] }, - "east": { "texture": "#0", "uv": [ 0, 6, 6, 12 ] }, - "south": { "texture": "#0", "uv": [ 6, 6, 8, 12 ] }, - "west": { "texture": "#0", "uv": [ 0, 6, 6, 12 ] }, - "up": { "texture": "#0", "uv": [ 6, 6, 8, 12 ] }, - "down": { "texture": "#0", "uv": [ 6, 6, 8, 12 ] } - } - }, - { - "name": "Base1", - "from": [ 0, 3, 11 ], - "to": [ 16, 15, 12 ], - "faces": { - "north": { "texture": "#1", "uv": [ 0, 1, 16, 13 ] }, - "east": { "texture": "#2", "uv": [ 3, 0, 4, 12 ] }, - "south": { "texture": "#3", "uv": [ 0, 1, 16, 13 ] }, - "west": { "texture": "#2", "uv": [ 0, 0, 1, 12 ] }, - "up": { "texture": "#3", "uv": [ 0, 0, 16, 1 ] }, - "down": { "texture": "#1", "uv": [ 0, 0, 16, 1 ] } - } - }, - { - "name": "Base2", - "from": [ 2, 1, 11 ], - "to": [ 14, 3, 12 ], - "faces": { - "north": { "texture": "#4", "uv": [ 4, 4, 16, 6 ] }, - "east": { "texture": "#4", "uv": [ 3, 4, 4, 6 ] }, - "south": { "texture": "#4", "uv": [ 1, 1, 13, 3 ] }, - "west": { "texture": "#4", "uv": [ 0, 1, 1, 3 ] }, - "up": { "texture": "#4", "uv": [ 1, 0, 13, 1 ] }, - "down": { "texture": "#4", "uv": [ 3, 3, 15, 4 ] } - } - }, - { - "name": "Base3", - "from": [ 4, -1, 11 ], - "to": [ 12, 1, 12 ], - "faces": { - "north": { "texture": "#4", "uv": [ 8, 10, 16, 12 ] }, - "east": { "texture": "#4", "uv": [ 7, 10, 8, 12 ] }, - "south": { "texture": "#4", "uv": [ 1, 7, 9, 9 ] }, - "west": { "texture": "#4", "uv": [ 0, 7, 1, 9 ] }, - "up": { "texture": "#4", "uv": [ 1, 6, 9, 7 ] }, - "down": { "texture": "#4", "uv": [ 7, 9, 15, 10 ] } - } - }, - { - "name": "Base4", - "from": [ 6, -3, 11 ], - "to": [ 10, -1, 12 ], - "faces": { - "north": { "texture": "#4", "uv": [ 9, 13, 13, 15 ] }, - "east": { "texture": "#4", "uv": [ 8, 13, 9, 15 ] }, - "south": { "texture": "#4", "uv": [ 4, 13, 8, 15 ] }, - "west": { "texture": "#4", "uv": [ 3, 13, 4, 15 ] }, - "up": { "texture": "#4", "uv": [ 4, 12, 8, 13 ] }, - "down": { "texture": "#4", "uv": [ 8, 12, 12, 13 ] } - } - }, - { - "name": "CenterMid", - "from": [ 6, 0, 12 ], - "to": [ 10, 16, 13 ], - "faces": { - "north": { "texture": "#5", "uv": [ 6, 0, 10, 16 ] }, - "east": { "texture": "#5", "uv": [ 5, 0, 6, 16 ] }, - "south": { "texture": "#5", "uv": [ 1, 0, 5, 16 ] }, - "west": { "texture": "#5", "uv": [ 0, 0, 1, 16 ] }, - "up": { "texture": "#5", "uv": [ 11, 1, 15, 2 ] }, - "down": { "texture": "#5", "uv": [ 11, 3, 15, 4 ] } - } - }, - { - "name": "WingRight1", - "from": [ 3, 3, 11.5 ], - "to": [ 5, 19, 12.5 ], - "faces": { - "north": { "texture": "#6", "uv": [ 4, 0, 6, 16 ] }, - "east": { "texture": "#6", "uv": [ 3, 0, 4, 16 ] }, - "south": { "texture": "#6", "uv": [ 1, 0, 3, 16 ] }, - "west": { "texture": "#6", "uv": [ 0, 0, 1, 16 ] }, - "up": { "texture": "#6", "uv": [ 6, 0, 8, 1 ] }, - "down": { "texture": "#6", "uv": [ 8, 0, 10, 1 ] } - } - }, - { - "name": "Wing Right2", - "from": [ 1, 5, 11.5 ], - "to": [ 3, 19, 12.5 ], - "faces": { - "north": { "texture": "#6", "uv": [ 14, 2, 16, 16 ] }, - "east": { "texture": "#6", "uv": [ 13, 2, 14, 16 ] }, - "south": { "texture": "#6", "uv": [ 11, 2, 13, 16 ] }, - "west": { "texture": "#6", "uv": [ 10, 2, 11, 16 ] }, - "up": { "texture": "#6", "uv": [ 11, 1, 13, 2 ] }, - "down": { "texture": "#6", "uv": [ 13, 1, 15, 2 ] } - } - }, - { - "name": "WingRight3", - "from": [ -1, 7, 11.5 ], - "to": [ 1, 17, 12.5 ], - "faces": { - "north": { "texture": "#7", "uv": [ 4, 6, 6, 16 ] }, - "east": { "texture": "#7", "uv": [ 3, 6, 4, 16 ] }, - "south": { "texture": "#7", "uv": [ 1, 6, 3, 16 ] }, - "west": { "texture": "#7", "uv": [ 0, 6, 1, 16 ] }, - "up": { "texture": "#7", "uv": [ 1, 5, 3, 6 ] }, - "down": { "texture": "#7", "uv": [ 3, 5, 5, 6 ] } - } - }, - { - "name": "WingRight4", - "from": [ -2, 7, 11.5 ], - "to": [ -1, 15, 12.5 ], - "faces": { - "north": { "texture": "#7", "uv": [ 10, 8, 11, 16 ] }, - "east": { "texture": "#7", "uv": [ 9, 8, 10, 16 ] }, - "south": { "texture": "#7", "uv": [ 8, 8, 9, 16 ] }, - "west": { "texture": "#7", "uv": [ 7, 8, 8, 16 ] }, - "up": { "texture": "#7", "uv": [ 8, 7, 9, 8 ] }, - "down": { "texture": "#7", "uv": [ 9, 7, 10, 8 ] } - } - }, - { - "name": "WingLeft1", - "from": [ 11, 3, 11.5 ], - "to": [ 13, 19, 12.5 ], - "faces": { - "north": { "texture": "#8", "uv": [ 14, 0, 16, 16 ] }, - "east": { "texture": "#8", "uv": [ 13, 0, 14, 16 ] }, - "south": { "texture": "#8", "uv": [ 11, 0, 13, 16 ] }, - "west": { "texture": "#8", "uv": [ 10, 0, 11, 16 ] }, - "up": { "texture": "#8", "uv": [ 6, 0, 8, 1 ] }, - "down": { "texture": "#8", "uv": [ 8, 0, 10, 1 ] } - } - }, - { - "name": "WingLeft2", - "from": [ 13, 5, 11.5 ], - "to": [ 15, 19, 12.5 ], - "faces": { - "north": { "texture": "#8", "uv": [ 4, 2, 6, 16 ] }, - "east": { "texture": "#8", "uv": [ 3, 2, 4, 16 ] }, - "south": { "texture": "#8", "uv": [ 1, 2, 3, 16 ] }, - "west": { "texture": "#8", "uv": [ 0, 2, 1, 16 ] }, - "up": { "texture": "#8", "uv": [ 1, 1, 3, 2 ] }, - "down": { "texture": "#8", "uv": [ 3, 1, 5, 2 ] } - } - }, - { - "name": "WingLeft3", - "from": [ 15, 7, 11.5 ], - "to": [ 17, 17, 12.5 ], - "faces": { - "north": { "texture": "#9", "uv": [ 14, 6, 16, 16 ] }, - "east": { "texture": "#9", "uv": [ 13, 6, 14, 16 ] }, - "south": { "texture": "#9", "uv": [ 11, 6, 13, 16 ] }, - "west": { "texture": "#9", "uv": [ 10, 6, 11, 16 ] }, - "up": { "texture": "#9", "uv": [ 11, 5, 13, 6 ] }, - "down": { "texture": "#9", "uv": [ 13, 5, 15, 6 ] } - } - }, - { - "name": "WingLeft4", - "from": [ 17, 7, 11.5 ], - "to": [ 18, 15, 12.5 ], - "faces": { - "north": { "texture": "#9", "uv": [ 8, 8, 9, 16 ] }, - "east": { "texture": "#9", "uv": [ 7, 8, 8, 16 ] }, - "south": { "texture": "#9", "uv": [ 6, 8, 7, 16 ] }, - "west": { "texture": "#9", "uv": [ 5, 8, 6, 14 ] }, - "up": { "texture": "#9", "uv": [ 6, 7, 7, 8 ] }, - "down": { "texture": "#9", "uv": [ 7, 7, 8, 8 ] } - } - } - ] -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/models/item/zanite_shield_blocking.json b/src/main/resources/assets/aether/models/item/zanite_shield_blocking.json deleted file mode 100644 index fdf722b5be..0000000000 --- a/src/main/resources/assets/aether/models/item/zanite_shield_blocking.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "parent": "aether:item/zanite_shield_base", - "display": { - "thirdperson_righthand": { - "rotation": [ 45, 135, 0 ], - "translation": [ 2, -4, 3 ], - "scale": [ 1, 1, 1 ] - }, - "thirdperson_lefthand": { - "rotation": [ 45, 135, 0 ], - "translation": [ 2, -4, 3 ], - "scale": [ 1, 1, 1 ] - }, - "firstperson_righthand": { - "rotation": [ 0, 180, -5 ], - "translation": [ -3, -5, 1 ], - "scale": [ 1.25, 1.25, 1.25 ] - }, - "firstperson_lefthand": { - "rotation": [ 0, 180, -5 ], - "translation": [ -3, -5, 1 ], - "scale": [ 1.25, 1.25, 1.25 ] - }, - "gui": { - "rotation": [ 15, -25, -5 ], - "translation": [ 0, 0, 0 ], - "scale": [ 0.65, 0.65, 0.65 ] - } - } -} diff --git a/src/main/resources/assets/aether/orbis/aetherii/aband_angel_storeroom_1a.blueprint b/src/main/resources/assets/aether/orbis/aetherii/aband_angel_storeroom_1a.blueprint deleted file mode 100644 index 23c6a86dea..0000000000 Binary files a/src/main/resources/assets/aether/orbis/aetherii/aband_angel_storeroom_1a.blueprint and /dev/null differ diff --git a/src/main/resources/assets/aether/orbis/aetherii/aband_angel_storeroom_1a.metadata b/src/main/resources/assets/aether/orbis/aetherii/aband_angel_storeroom_1a.metadata deleted file mode 100644 index 789045a691..0000000000 --- a/src/main/resources/assets/aether/orbis/aetherii/aband_angel_storeroom_1a.metadata +++ /dev/null @@ -1 +0,0 @@ -{"name":"aband_angel_storeroom_1a","display":[],"identifier":{"dataId":"533e1ea5-3020-4e44-955d-06513f3d26f0","projectIdentifier":{"projectId":"31dae1da-5d8a-4a6c-833d-0296367f5326","originalCreator":"Player155"}},"dependencies":[]} \ No newline at end of file diff --git a/src/main/resources/assets/aether/orbis/aetherii/aband_angel_watchtower_1a.blueprint b/src/main/resources/assets/aether/orbis/aetherii/aband_angel_watchtower_1a.blueprint deleted file mode 100644 index c2f92be9a1..0000000000 Binary files a/src/main/resources/assets/aether/orbis/aetherii/aband_angel_watchtower_1a.blueprint and /dev/null differ diff --git a/src/main/resources/assets/aether/orbis/aetherii/aband_angel_watchtower_1a.metadata b/src/main/resources/assets/aether/orbis/aetherii/aband_angel_watchtower_1a.metadata deleted file mode 100644 index 017fff5c1f..0000000000 --- a/src/main/resources/assets/aether/orbis/aetherii/aband_angel_watchtower_1a.metadata +++ /dev/null @@ -1 +0,0 @@ -{"name":"aband_angel_watchtower_1a","display":[],"identifier":{"dataId":"103604b3-faa4-4608-8fab-424170ca80b5","projectIdentifier":{"projectId":"31dae1da-5d8a-4a6c-833d-0296367f5326","originalCreator":"Player155"}},"dependencies":[]} \ No newline at end of file diff --git a/src/main/resources/assets/aether/orbis/aetherii/aband_campsite_1a.blueprint b/src/main/resources/assets/aether/orbis/aetherii/aband_campsite_1a.blueprint deleted file mode 100644 index 870ea0f2fe..0000000000 Binary files a/src/main/resources/assets/aether/orbis/aetherii/aband_campsite_1a.blueprint and /dev/null differ diff --git a/src/main/resources/assets/aether/orbis/aetherii/aband_campsite_1a.metadata b/src/main/resources/assets/aether/orbis/aetherii/aband_campsite_1a.metadata deleted file mode 100644 index 049287538a..0000000000 --- a/src/main/resources/assets/aether/orbis/aetherii/aband_campsite_1a.metadata +++ /dev/null @@ -1 +0,0 @@ -{"name":"aband_campsite_1a","display":[],"identifier":{"dataId":"8182932f-b015-4ddf-a2dd-ae3a6a685840","projectIdentifier":{"projectId":"31dae1da-5d8a-4a6c-833d-0296367f5326","originalCreator":"Player155"}},"dependencies":[]} \ No newline at end of file diff --git a/src/main/resources/assets/aether/orbis/aetherii/aband_human_house_1a.blueprint b/src/main/resources/assets/aether/orbis/aetherii/aband_human_house_1a.blueprint deleted file mode 100644 index c9cfba475b..0000000000 Binary files a/src/main/resources/assets/aether/orbis/aetherii/aband_human_house_1a.blueprint and /dev/null differ diff --git a/src/main/resources/assets/aether/orbis/aetherii/aband_human_house_1a.metadata b/src/main/resources/assets/aether/orbis/aetherii/aband_human_house_1a.metadata deleted file mode 100644 index b1075f94e7..0000000000 --- a/src/main/resources/assets/aether/orbis/aetherii/aband_human_house_1a.metadata +++ /dev/null @@ -1 +0,0 @@ -{"name":"aband_human_house_1a","display":[],"identifier":{"dataId":"b093f86a-3d0e-45af-b016-d5c106cff840","projectIdentifier":{"projectId":"31dae1da-5d8a-4a6c-833d-0296367f5326","originalCreator":"Player155"}},"dependencies":[]} \ No newline at end of file diff --git a/src/main/resources/assets/aether/orbis/aetherii/aband_human_house_1b.blueprint b/src/main/resources/assets/aether/orbis/aetherii/aband_human_house_1b.blueprint deleted file mode 100644 index 89ef6bed46..0000000000 Binary files a/src/main/resources/assets/aether/orbis/aetherii/aband_human_house_1b.blueprint and /dev/null differ diff --git a/src/main/resources/assets/aether/orbis/aetherii/aband_human_house_1b.metadata b/src/main/resources/assets/aether/orbis/aetherii/aband_human_house_1b.metadata deleted file mode 100644 index cfeb908898..0000000000 --- a/src/main/resources/assets/aether/orbis/aetherii/aband_human_house_1b.metadata +++ /dev/null @@ -1 +0,0 @@ -{"name":"aband_human_house_1b","display":[],"identifier":{"dataId":"b967ff0e-e160-4c26-a7be-a62d5e779c6d","projectIdentifier":{"projectId":"31dae1da-5d8a-4a6c-833d-0296367f5326","originalCreator":"Player155"}},"dependencies":[]} \ No newline at end of file diff --git a/src/main/resources/assets/aether/orbis/aetherii/greatroot_1.blueprint b/src/main/resources/assets/aether/orbis/aetherii/greatroot_1.blueprint deleted file mode 100644 index 7317f532ea..0000000000 Binary files a/src/main/resources/assets/aether/orbis/aetherii/greatroot_1.blueprint and /dev/null differ diff --git a/src/main/resources/assets/aether/orbis/aetherii/greatroot_1.metadata b/src/main/resources/assets/aether/orbis/aetherii/greatroot_1.metadata deleted file mode 100644 index 3c69606aa2..0000000000 --- a/src/main/resources/assets/aether/orbis/aetherii/greatroot_1.metadata +++ /dev/null @@ -1 +0,0 @@ -{"name":"greatroot_1","display":[],"identifier":{"dataId":"0ac52094-dc79-4b9d-b46e-c8f5f8e245df","projectIdentifier":{"projectId":"31dae1da-5d8a-4a6c-833d-0296367f5326","originalCreator":"Player155"}},"dependencies":[]} \ No newline at end of file diff --git a/src/main/resources/assets/aether/orbis/aetherii/necromancer_tower.blueprint b/src/main/resources/assets/aether/orbis/aetherii/necromancer_tower.blueprint deleted file mode 100644 index 665858369e..0000000000 Binary files a/src/main/resources/assets/aether/orbis/aetherii/necromancer_tower.blueprint and /dev/null differ diff --git a/src/main/resources/assets/aether/orbis/aetherii/necromancer_tower.metadata b/src/main/resources/assets/aether/orbis/aetherii/necromancer_tower.metadata deleted file mode 100644 index ebd39ccdeb..0000000000 --- a/src/main/resources/assets/aether/orbis/aetherii/necromancer_tower.metadata +++ /dev/null @@ -1 +0,0 @@ -{"name":"necromancer_tower","display":[],"identifier":{"dataId":"2e5d0f31-f284-490f-bf78-3f6acc87053b","projectIdentifier":{"projectId":"31dae1da-5d8a-4a6c-833d-0296367f5326","originalCreator":"Player155"}},"dependencies":[]} \ No newline at end of file diff --git a/src/main/resources/assets/aether/orbis/aetherii/outpost.blueprint b/src/main/resources/assets/aether/orbis/aetherii/outpost.blueprint deleted file mode 100644 index 04adaf79ba..0000000000 Binary files a/src/main/resources/assets/aether/orbis/aetherii/outpost.blueprint and /dev/null differ diff --git a/src/main/resources/assets/aether/orbis/aetherii/outpost.metadata b/src/main/resources/assets/aether/orbis/aetherii/outpost.metadata deleted file mode 100644 index 4a813ed294..0000000000 --- a/src/main/resources/assets/aether/orbis/aetherii/outpost.metadata +++ /dev/null @@ -1 +0,0 @@ -{"name":"outpost","display":[],"identifier":{"dataId":"d839c346-6234-4150-bbbb-28c41f8cc90b","projectIdentifier":{"projectId":"31dae1da-5d8a-4a6c-833d-0296367f5326","originalCreator":"Player155"}},"dependencies":[]} \ No newline at end of file diff --git a/src/main/resources/assets/aether/orbis/aetherii/outpost_a.blueprint b/src/main/resources/assets/aether/orbis/aetherii/outpost_a.blueprint deleted file mode 100644 index 428d88c9f4..0000000000 Binary files a/src/main/resources/assets/aether/orbis/aetherii/outpost_a.blueprint and /dev/null differ diff --git a/src/main/resources/assets/aether/orbis/aetherii/outpost_a.metadata b/src/main/resources/assets/aether/orbis/aetherii/outpost_a.metadata deleted file mode 100644 index b5efe68d9a..0000000000 --- a/src/main/resources/assets/aether/orbis/aetherii/outpost_a.metadata +++ /dev/null @@ -1 +0,0 @@ -{"name":"outpost_a","display":[],"identifier":{"dataId":"7890c5f5-2ef2-428e-a3b8-1456954fabc4","projectIdentifier":{"projectId":"31dae1da-5d8a-4a6c-833d-0296367f5326","originalCreator":"Player155"}},"dependencies":[]} \ No newline at end of file diff --git a/src/main/resources/assets/aether/orbis/aetherii/outpost_b.blueprint b/src/main/resources/assets/aether/orbis/aetherii/outpost_b.blueprint deleted file mode 100644 index 6f996cfd8d..0000000000 Binary files a/src/main/resources/assets/aether/orbis/aetherii/outpost_b.blueprint and /dev/null differ diff --git a/src/main/resources/assets/aether/orbis/aetherii/outpost_b.metadata b/src/main/resources/assets/aether/orbis/aetherii/outpost_b.metadata deleted file mode 100644 index 721e6497b2..0000000000 --- a/src/main/resources/assets/aether/orbis/aetherii/outpost_b.metadata +++ /dev/null @@ -1 +0,0 @@ -{"name":"outpost_b","display":[],"identifier":{"dataId":"88fe7ce8-f2de-4007-bc54-fb7002ad1168","projectIdentifier":{"projectId":"31dae1da-5d8a-4a6c-833d-0296367f5326","originalCreator":"Player155"}},"dependencies":[]} \ No newline at end of file diff --git a/src/main/resources/assets/aether/orbis/aetherii/project_data.json b/src/main/resources/assets/aether/orbis/aetherii/project_data.json deleted file mode 100644 index a6f64e43cd..0000000000 --- a/src/main/resources/assets/aether/orbis/aetherii/project_data.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "metadata": { - "lastChanged": { "date": { "year": 2018, "month": 10, "day": 21 }, "time": { "hour": 8, "minute": 7, "second": 29, "nano": 643000000 } }, - "display": [ ], - "downloaded": false, - "downloading": false - }, - "identifier": { "projectId": "31dae1da-5d8a-4a6c-833d-0296367f5326", "originalCreator": "Player155" } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/orbis/aetherii/project_index.txt b/src/main/resources/assets/aether/orbis/aetherii/project_index.txt deleted file mode 100644 index 4ab79dc7ac..0000000000 --- a/src/main/resources/assets/aether/orbis/aetherii/project_index.txt +++ /dev/null @@ -1,26 +0,0 @@ -aband_angel_storeroom_1a.blueprint -aband_angel_watchtower_1a.blueprint -aband_campsite_1a.blueprint -aband_human_house_1a.blueprint -aband_human_house_1b.blueprint -greatroot_1.blueprint -necromancer_tower.blueprint -outpost.blueprint -outpost_a.blueprint -outpost_b.blueprint -skyroot_watchtower_1a.blueprint -skyroot_watchtower_1b.blueprint -skyroot_watchtower_2a.blueprint -skyroot_watchtower_2b.blueprint -skyroot_watchtower_3a.blueprint -skyroot_watchtower_3b.blueprint -trees/amberoot/amberoot_tree.blueprint -trees/skyroot/skyroot_oak_blue.blueprint -trees/skyroot/skyroot_oak_dark_blue.blueprint -trees/skyroot/skyroot_oak_green.blueprint -trees/skyroot/mutated_tree.blueprint -trees/wisproot/wisproot_blue.blueprint -trees/wisproot/wisproot_dark_blue.blueprint -trees/wisproot/wisproot_green.blueprint -well_1a.blueprint -well_1b.blueprint diff --git a/src/main/resources/assets/aether/orbis/aetherii/skyroot_watchtower_1a.blueprint b/src/main/resources/assets/aether/orbis/aetherii/skyroot_watchtower_1a.blueprint deleted file mode 100644 index d1332f9b50..0000000000 Binary files a/src/main/resources/assets/aether/orbis/aetherii/skyroot_watchtower_1a.blueprint and /dev/null differ diff --git a/src/main/resources/assets/aether/orbis/aetherii/skyroot_watchtower_1a.metadata b/src/main/resources/assets/aether/orbis/aetherii/skyroot_watchtower_1a.metadata deleted file mode 100644 index caf127861d..0000000000 --- a/src/main/resources/assets/aether/orbis/aetherii/skyroot_watchtower_1a.metadata +++ /dev/null @@ -1 +0,0 @@ -{"name":"skyroot_watchtower_1a","display":[],"identifier":{"dataId":"457e287c-e482-4b29-bfa7-1051c949e35a","projectIdentifier":{"projectId":"31dae1da-5d8a-4a6c-833d-0296367f5326","originalCreator":"Player155"}},"dependencies":[]} \ No newline at end of file diff --git a/src/main/resources/assets/aether/orbis/aetherii/skyroot_watchtower_1b.blueprint b/src/main/resources/assets/aether/orbis/aetherii/skyroot_watchtower_1b.blueprint deleted file mode 100644 index 742ca6eec4..0000000000 Binary files a/src/main/resources/assets/aether/orbis/aetherii/skyroot_watchtower_1b.blueprint and /dev/null differ diff --git a/src/main/resources/assets/aether/orbis/aetherii/skyroot_watchtower_1b.metadata b/src/main/resources/assets/aether/orbis/aetherii/skyroot_watchtower_1b.metadata deleted file mode 100644 index 3e2106ef9e..0000000000 --- a/src/main/resources/assets/aether/orbis/aetherii/skyroot_watchtower_1b.metadata +++ /dev/null @@ -1 +0,0 @@ -{"name":"skyroot_watchtower_1b","display":[],"identifier":{"dataId":"84937b3e-792e-4b95-9be8-5d1b13086f22","projectIdentifier":{"projectId":"31dae1da-5d8a-4a6c-833d-0296367f5326","originalCreator":"Player155"}},"dependencies":[]} \ No newline at end of file diff --git a/src/main/resources/assets/aether/orbis/aetherii/skyroot_watchtower_2a.blueprint b/src/main/resources/assets/aether/orbis/aetherii/skyroot_watchtower_2a.blueprint deleted file mode 100644 index fac402b61a..0000000000 Binary files a/src/main/resources/assets/aether/orbis/aetherii/skyroot_watchtower_2a.blueprint and /dev/null differ diff --git a/src/main/resources/assets/aether/orbis/aetherii/skyroot_watchtower_2a.metadata b/src/main/resources/assets/aether/orbis/aetherii/skyroot_watchtower_2a.metadata deleted file mode 100644 index 7856a78ef5..0000000000 --- a/src/main/resources/assets/aether/orbis/aetherii/skyroot_watchtower_2a.metadata +++ /dev/null @@ -1 +0,0 @@ -{"name":"skyroot_watchtower_2a","display":[],"identifier":{"dataId":"34228e92-c882-4f2d-9005-e5c9e7bfc81f","projectIdentifier":{"projectId":"31dae1da-5d8a-4a6c-833d-0296367f5326","originalCreator":"Player155"}},"dependencies":[]} \ No newline at end of file diff --git a/src/main/resources/assets/aether/orbis/aetherii/skyroot_watchtower_2b.blueprint b/src/main/resources/assets/aether/orbis/aetherii/skyroot_watchtower_2b.blueprint deleted file mode 100644 index 2ceae73e69..0000000000 Binary files a/src/main/resources/assets/aether/orbis/aetherii/skyroot_watchtower_2b.blueprint and /dev/null differ diff --git a/src/main/resources/assets/aether/orbis/aetherii/skyroot_watchtower_2b.metadata b/src/main/resources/assets/aether/orbis/aetherii/skyroot_watchtower_2b.metadata deleted file mode 100644 index 9793e15d03..0000000000 --- a/src/main/resources/assets/aether/orbis/aetherii/skyroot_watchtower_2b.metadata +++ /dev/null @@ -1 +0,0 @@ -{"name":"skyroot_watchtower_2b","display":[],"identifier":{"dataId":"311dc3b5-d844-40d7-88c7-6ff08fa9cb4d","projectIdentifier":{"projectId":"31dae1da-5d8a-4a6c-833d-0296367f5326","originalCreator":"Player155"}},"dependencies":[]} \ No newline at end of file diff --git a/src/main/resources/assets/aether/orbis/aetherii/skyroot_watchtower_3a.blueprint b/src/main/resources/assets/aether/orbis/aetherii/skyroot_watchtower_3a.blueprint deleted file mode 100644 index 4372295f7d..0000000000 Binary files a/src/main/resources/assets/aether/orbis/aetherii/skyroot_watchtower_3a.blueprint and /dev/null differ diff --git a/src/main/resources/assets/aether/orbis/aetherii/skyroot_watchtower_3a.metadata b/src/main/resources/assets/aether/orbis/aetherii/skyroot_watchtower_3a.metadata deleted file mode 100644 index 3e92773e81..0000000000 --- a/src/main/resources/assets/aether/orbis/aetherii/skyroot_watchtower_3a.metadata +++ /dev/null @@ -1 +0,0 @@ -{"name":"skyroot_watchtower_3a","display":[],"identifier":{"dataId":"b14918af-1941-440f-8f8a-a96ffec6deec","projectIdentifier":{"projectId":"31dae1da-5d8a-4a6c-833d-0296367f5326","originalCreator":"Player155"}},"dependencies":[]} \ No newline at end of file diff --git a/src/main/resources/assets/aether/orbis/aetherii/skyroot_watchtower_3b.blueprint b/src/main/resources/assets/aether/orbis/aetherii/skyroot_watchtower_3b.blueprint deleted file mode 100644 index d75a9b11a7..0000000000 Binary files a/src/main/resources/assets/aether/orbis/aetherii/skyroot_watchtower_3b.blueprint and /dev/null differ diff --git a/src/main/resources/assets/aether/orbis/aetherii/skyroot_watchtower_3b.metadata b/src/main/resources/assets/aether/orbis/aetherii/skyroot_watchtower_3b.metadata deleted file mode 100644 index b469b0fafe..0000000000 --- a/src/main/resources/assets/aether/orbis/aetherii/skyroot_watchtower_3b.metadata +++ /dev/null @@ -1 +0,0 @@ -{"name":"skyroot_watchtower_3b","display":[],"identifier":{"dataId":"8d8892fe-2508-428f-b327-b37bcc27d7bb","projectIdentifier":{"projectId":"31dae1da-5d8a-4a6c-833d-0296367f5326","originalCreator":"Player155"}},"dependencies":[]} \ No newline at end of file diff --git a/src/main/resources/assets/aether/orbis/aetherii/trees/amberoot/amberoot_tree.blueprint b/src/main/resources/assets/aether/orbis/aetherii/trees/amberoot/amberoot_tree.blueprint deleted file mode 100644 index aaf54b0534..0000000000 Binary files a/src/main/resources/assets/aether/orbis/aetherii/trees/amberoot/amberoot_tree.blueprint and /dev/null differ diff --git a/src/main/resources/assets/aether/orbis/aetherii/trees/amberoot/amberoot_tree.metadata b/src/main/resources/assets/aether/orbis/aetherii/trees/amberoot/amberoot_tree.metadata deleted file mode 100644 index 04506afb3d..0000000000 --- a/src/main/resources/assets/aether/orbis/aetherii/trees/amberoot/amberoot_tree.metadata +++ /dev/null @@ -1 +0,0 @@ -{"name":"amberoot_tree","display":[],"identifier":{"dataId":"fccca448-466f-4b27-b72c-b61ab71b696f","projectIdentifier":{"projectId":"31dae1da-5d8a-4a6c-833d-0296367f5326","originalCreator":"Player155"}},"dependencies":[]} \ No newline at end of file diff --git a/src/main/resources/assets/aether/orbis/aetherii/trees/skyroot/mutated_tree.blueprint b/src/main/resources/assets/aether/orbis/aetherii/trees/skyroot/mutated_tree.blueprint deleted file mode 100644 index c2b6833911..0000000000 Binary files a/src/main/resources/assets/aether/orbis/aetherii/trees/skyroot/mutated_tree.blueprint and /dev/null differ diff --git a/src/main/resources/assets/aether/orbis/aetherii/trees/skyroot/mutated_tree.metadata b/src/main/resources/assets/aether/orbis/aetherii/trees/skyroot/mutated_tree.metadata deleted file mode 100644 index 140e269b58..0000000000 --- a/src/main/resources/assets/aether/orbis/aetherii/trees/skyroot/mutated_tree.metadata +++ /dev/null @@ -1 +0,0 @@ -{"name":"mutated_tree","display":[],"identifier":{"dataId":"02afc608-3e90-4589-8fe6-ce03a0e68b0e","projectIdentifier":{"projectId":"8e954611-5766-484a-8ca1-a17ad4861184","originalCreator":"OscarPayn"}},"dependencies":[]} \ No newline at end of file diff --git a/src/main/resources/assets/aether/orbis/aetherii/trees/skyroot/skyroot_oak_blue.blueprint b/src/main/resources/assets/aether/orbis/aetherii/trees/skyroot/skyroot_oak_blue.blueprint deleted file mode 100644 index dd6e893923..0000000000 Binary files a/src/main/resources/assets/aether/orbis/aetherii/trees/skyroot/skyroot_oak_blue.blueprint and /dev/null differ diff --git a/src/main/resources/assets/aether/orbis/aetherii/trees/skyroot/skyroot_oak_blue.metadata b/src/main/resources/assets/aether/orbis/aetherii/trees/skyroot/skyroot_oak_blue.metadata deleted file mode 100644 index 0970a753dc..0000000000 --- a/src/main/resources/assets/aether/orbis/aetherii/trees/skyroot/skyroot_oak_blue.metadata +++ /dev/null @@ -1 +0,0 @@ -{"name":"skyroot_oak_blue","display":[],"identifier":{"dataId":"a075f63f-184e-4572-a953-d1b5bbe9630f","projectIdentifier":{"projectId":"31dae1da-5d8a-4a6c-833d-0296367f5326","originalCreator":"Player155"}},"dependencies":[]} \ No newline at end of file diff --git a/src/main/resources/assets/aether/orbis/aetherii/trees/skyroot/skyroot_oak_dark_blue.blueprint b/src/main/resources/assets/aether/orbis/aetherii/trees/skyroot/skyroot_oak_dark_blue.blueprint deleted file mode 100644 index a4b04c16c9..0000000000 Binary files a/src/main/resources/assets/aether/orbis/aetherii/trees/skyroot/skyroot_oak_dark_blue.blueprint and /dev/null differ diff --git a/src/main/resources/assets/aether/orbis/aetherii/trees/skyroot/skyroot_oak_dark_blue.metadata b/src/main/resources/assets/aether/orbis/aetherii/trees/skyroot/skyroot_oak_dark_blue.metadata deleted file mode 100644 index 6a86311f57..0000000000 --- a/src/main/resources/assets/aether/orbis/aetherii/trees/skyroot/skyroot_oak_dark_blue.metadata +++ /dev/null @@ -1 +0,0 @@ -{"name":"skyroot_oak_dark_blue","display":[],"identifier":{"dataId":"41125142-bdf0-4bf2-83e2-70616983a298","projectIdentifier":{"projectId":"31dae1da-5d8a-4a6c-833d-0296367f5326","originalCreator":"Player155"}},"dependencies":[]} \ No newline at end of file diff --git a/src/main/resources/assets/aether/orbis/aetherii/trees/skyroot/skyroot_oak_green.blueprint b/src/main/resources/assets/aether/orbis/aetherii/trees/skyroot/skyroot_oak_green.blueprint deleted file mode 100644 index 92f1ddd537..0000000000 Binary files a/src/main/resources/assets/aether/orbis/aetherii/trees/skyroot/skyroot_oak_green.blueprint and /dev/null differ diff --git a/src/main/resources/assets/aether/orbis/aetherii/trees/skyroot/skyroot_oak_green.metadata b/src/main/resources/assets/aether/orbis/aetherii/trees/skyroot/skyroot_oak_green.metadata deleted file mode 100644 index 194066d57a..0000000000 --- a/src/main/resources/assets/aether/orbis/aetherii/trees/skyroot/skyroot_oak_green.metadata +++ /dev/null @@ -1 +0,0 @@ -{"name":"skyroot_oak_green","display":[],"identifier":{"dataId":"642ba39a-a33f-468a-8962-080c61b4e1cd","projectIdentifier":{"projectId":"31dae1da-5d8a-4a6c-833d-0296367f5326","originalCreator":"Player155"}},"dependencies":[]} \ No newline at end of file diff --git a/src/main/resources/assets/aether/orbis/aetherii/trees/wisproot/wisproot_blue.blueprint b/src/main/resources/assets/aether/orbis/aetherii/trees/wisproot/wisproot_blue.blueprint deleted file mode 100644 index a2b518bd63..0000000000 Binary files a/src/main/resources/assets/aether/orbis/aetherii/trees/wisproot/wisproot_blue.blueprint and /dev/null differ diff --git a/src/main/resources/assets/aether/orbis/aetherii/trees/wisproot/wisproot_blue.metadata b/src/main/resources/assets/aether/orbis/aetherii/trees/wisproot/wisproot_blue.metadata deleted file mode 100644 index 893457da85..0000000000 --- a/src/main/resources/assets/aether/orbis/aetherii/trees/wisproot/wisproot_blue.metadata +++ /dev/null @@ -1 +0,0 @@ -{"name":"wisproot_blue","display":[],"identifier":{"dataId":"9d277797-da79-47d5-87a8-b4942d1d86ba","projectIdentifier":{"projectId":"31dae1da-5d8a-4a6c-833d-0296367f5326","originalCreator":"Player155"}},"dependencies":[]} \ No newline at end of file diff --git a/src/main/resources/assets/aether/orbis/aetherii/trees/wisproot/wisproot_dark_blue.blueprint b/src/main/resources/assets/aether/orbis/aetherii/trees/wisproot/wisproot_dark_blue.blueprint deleted file mode 100644 index 871be072f0..0000000000 Binary files a/src/main/resources/assets/aether/orbis/aetherii/trees/wisproot/wisproot_dark_blue.blueprint and /dev/null differ diff --git a/src/main/resources/assets/aether/orbis/aetherii/trees/wisproot/wisproot_dark_blue.metadata b/src/main/resources/assets/aether/orbis/aetherii/trees/wisproot/wisproot_dark_blue.metadata deleted file mode 100644 index dce050877b..0000000000 --- a/src/main/resources/assets/aether/orbis/aetherii/trees/wisproot/wisproot_dark_blue.metadata +++ /dev/null @@ -1 +0,0 @@ -{"name":"wisproot_dark_blue","display":[],"identifier":{"dataId":"c8189a46-5d2e-46b3-9ae6-6af94168aceb","projectIdentifier":{"projectId":"31dae1da-5d8a-4a6c-833d-0296367f5326","originalCreator":"Player155"}},"dependencies":[]} \ No newline at end of file diff --git a/src/main/resources/assets/aether/orbis/aetherii/trees/wisproot/wisproot_green.blueprint b/src/main/resources/assets/aether/orbis/aetherii/trees/wisproot/wisproot_green.blueprint deleted file mode 100644 index a34cdf9aef..0000000000 Binary files a/src/main/resources/assets/aether/orbis/aetherii/trees/wisproot/wisproot_green.blueprint and /dev/null differ diff --git a/src/main/resources/assets/aether/orbis/aetherii/trees/wisproot/wisproot_green.metadata b/src/main/resources/assets/aether/orbis/aetherii/trees/wisproot/wisproot_green.metadata deleted file mode 100644 index 9a13a28acf..0000000000 --- a/src/main/resources/assets/aether/orbis/aetherii/trees/wisproot/wisproot_green.metadata +++ /dev/null @@ -1 +0,0 @@ -{"name":"wisproot_green","display":[],"identifier":{"dataId":"54d25689-2635-4bbd-b0ba-d63db33397ef","projectIdentifier":{"projectId":"31dae1da-5d8a-4a6c-833d-0296367f5326","originalCreator":"Player155"}},"dependencies":[]} \ No newline at end of file diff --git a/src/main/resources/assets/aether/orbis/aetherii/well_1a.blueprint b/src/main/resources/assets/aether/orbis/aetherii/well_1a.blueprint deleted file mode 100644 index cba8bd59a5..0000000000 Binary files a/src/main/resources/assets/aether/orbis/aetherii/well_1a.blueprint and /dev/null differ diff --git a/src/main/resources/assets/aether/orbis/aetherii/well_1a.metadata b/src/main/resources/assets/aether/orbis/aetherii/well_1a.metadata deleted file mode 100644 index 9afdc471e0..0000000000 --- a/src/main/resources/assets/aether/orbis/aetherii/well_1a.metadata +++ /dev/null @@ -1 +0,0 @@ -{"name":"well_1a","display":[],"identifier":{"dataId":"327c5b33-c418-4c07-856a-1f9c5ca632b4","projectIdentifier":{"projectId":"31dae1da-5d8a-4a6c-833d-0296367f5326","originalCreator":"Player155"}},"dependencies":[]} \ No newline at end of file diff --git a/src/main/resources/assets/aether/orbis/aetherii/well_1b.blueprint b/src/main/resources/assets/aether/orbis/aetherii/well_1b.blueprint deleted file mode 100644 index 52c281ba6f..0000000000 Binary files a/src/main/resources/assets/aether/orbis/aetherii/well_1b.blueprint and /dev/null differ diff --git a/src/main/resources/assets/aether/orbis/aetherii/well_1b.metadata b/src/main/resources/assets/aether/orbis/aetherii/well_1b.metadata deleted file mode 100644 index 068ded52bc..0000000000 --- a/src/main/resources/assets/aether/orbis/aetherii/well_1b.metadata +++ /dev/null @@ -1 +0,0 @@ -{"name":"well_1b","display":[],"identifier":{"dataId":"6d788501-7414-421d-8af3-050dab763ad5","projectIdentifier":{"projectId":"31dae1da-5d8a-4a6c-833d-0296367f5326","originalCreator":"Player155"}},"dependencies":[]} \ No newline at end of file diff --git a/src/main/resources/assets/aether/recipes/armor/arkenium_boots.json b/src/main/resources/assets/aether/recipes/armor/arkenium_boots.json deleted file mode 100644 index 26513cbad5..0000000000 --- a/src/main/resources/assets/aether/recipes/armor/arkenium_boots.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "pattern": [ - "X X", - "X X" - ], - "key": { - "X": { - "item": "aether:arkenium" - } - }, - "result": { - "item": "aether:arkenium_boots" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/recipes/armor/arkenium_chestplate.json b/src/main/resources/assets/aether/recipes/armor/arkenium_chestplate.json deleted file mode 100644 index 85e5332892..0000000000 --- a/src/main/resources/assets/aether/recipes/armor/arkenium_chestplate.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "pattern": [ - "X X", - "XXX", - "XXX" - ], - "key": { - "X": { - "item": "aether:arkenium" - } - }, - "result": { - "item": "aether:arkenium_chestplate" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/recipes/armor/arkenium_gloves.json b/src/main/resources/assets/aether/recipes/armor/arkenium_gloves.json deleted file mode 100644 index 67b25024e7..0000000000 --- a/src/main/resources/assets/aether/recipes/armor/arkenium_gloves.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "pattern": [ - "X X" - ], - "key": { - "X": { - "item": "aether:arkenium" - } - }, - "result": { - "item": "aether:arkenium_gloves" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/recipes/armor/arkenium_helmet.json b/src/main/resources/assets/aether/recipes/armor/arkenium_helmet.json deleted file mode 100644 index 44f76e1ee9..0000000000 --- a/src/main/resources/assets/aether/recipes/armor/arkenium_helmet.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "pattern": [ - "XXX", - "X X" - ], - "key": { - "X": { - "item": "aether:arkenium" - } - }, - "result": { - "item": "aether:arkenium_helmet" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/recipes/armor/arkenium_leggings.json b/src/main/resources/assets/aether/recipes/armor/arkenium_leggings.json deleted file mode 100644 index b68a570c1c..0000000000 --- a/src/main/resources/assets/aether/recipes/armor/arkenium_leggings.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "pattern": [ - "XXX", - "X X", - "X X" - ], - "key": { - "X": { - "item": "aether:arkenium" - } - }, - "result": { - "item": "aether:arkenium_leggings" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/recipes/armor/arkenium_shield.json b/src/main/resources/assets/aether/recipes/armor/arkenium_shield.json deleted file mode 100644 index f643d35895..0000000000 --- a/src/main/resources/assets/aether/recipes/armor/arkenium_shield.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "pattern": [ - "#J#", - "###", - " # " - ], - "key": { - "#": { - "item": "aether:arkenium" - }, - "J": { - "item": "aether:arkenium_strip" - } - }, - "result": { - "item": "aether:arkenium_shield", - "count": 1 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/recipes/armor/burrukai_pelt_boots.json b/src/main/resources/assets/aether/recipes/armor/burrukai_pelt_boots.json deleted file mode 100644 index f37151e823..0000000000 --- a/src/main/resources/assets/aether/recipes/armor/burrukai_pelt_boots.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "pattern": [ - "X X", - "X X" - ], - "key": { - "X": { - "item": "aether:burrukai_pelt" - } - }, - "result": { - "item": "aether:burrukai_pelt_boots" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/recipes/armor/burrukai_pelt_chestplate.json b/src/main/resources/assets/aether/recipes/armor/burrukai_pelt_chestplate.json deleted file mode 100644 index 2d735a4beb..0000000000 --- a/src/main/resources/assets/aether/recipes/armor/burrukai_pelt_chestplate.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "pattern": [ - "X X", - "XXX", - "XXX" - ], - "key": { - "X": { - "item": "aether:burrukai_pelt" - } - }, - "result": { - "item": "aether:burrukai_pelt_chestplate" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/recipes/armor/burrukai_pelt_gloves.json b/src/main/resources/assets/aether/recipes/armor/burrukai_pelt_gloves.json deleted file mode 100644 index 40ffc43180..0000000000 --- a/src/main/resources/assets/aether/recipes/armor/burrukai_pelt_gloves.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "pattern": [ - "X X" - ], - "key": { - "X": { - "item": "aether:burrukai_pelt" - } - }, - "result": { - "item": "aether:burrukai_pelt_gloves" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/recipes/armor/burrukai_pelt_helmet.json b/src/main/resources/assets/aether/recipes/armor/burrukai_pelt_helmet.json deleted file mode 100644 index 49aab54aa5..0000000000 --- a/src/main/resources/assets/aether/recipes/armor/burrukai_pelt_helmet.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "pattern": [ - "XXX", - "X X" - ], - "key": { - "X": { - "item": "aether:burrukai_pelt" - } - }, - "result": { - "item": "aether:burrukai_pelt_helmet" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/recipes/armor/burrukai_pelt_leggings.json b/src/main/resources/assets/aether/recipes/armor/burrukai_pelt_leggings.json deleted file mode 100644 index 3b01bb2978..0000000000 --- a/src/main/resources/assets/aether/recipes/armor/burrukai_pelt_leggings.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "pattern": [ - "XXX", - "X X", - "X X" - ], - "key": { - "X": { - "item": "aether:burrukai_pelt" - } - }, - "result": { - "item": "aether:burrukai_pelt_leggings" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/recipes/armor/gravitite_boots.json b/src/main/resources/assets/aether/recipes/armor/gravitite_boots.json deleted file mode 100644 index 968fa75328..0000000000 --- a/src/main/resources/assets/aether/recipes/armor/gravitite_boots.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "pattern": [ - "X X", - "X X" - ], - "key": { - "X": { - "item": "aether:gravitite_plate" - } - }, - "result": { - "item": "aether:gravitite_boots" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/recipes/armor/gravitite_chestplate.json b/src/main/resources/assets/aether/recipes/armor/gravitite_chestplate.json deleted file mode 100644 index eef2b44788..0000000000 --- a/src/main/resources/assets/aether/recipes/armor/gravitite_chestplate.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "pattern": [ - "X X", - "XXX", - "XXX" - ], - "key": { - "X": { - "item": "aether:gravitite_plate" - } - }, - "result": { - "item": "aether:gravitite_chestplate" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/recipes/armor/gravitite_gloves.json b/src/main/resources/assets/aether/recipes/armor/gravitite_gloves.json deleted file mode 100644 index ac41f6fc53..0000000000 --- a/src/main/resources/assets/aether/recipes/armor/gravitite_gloves.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "pattern": [ - "X X" - ], - "key": { - "X": { - "item": "aether:gravitite_plate" - } - }, - "result": { - "item": "aether:gravitite_gloves" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/recipes/armor/gravitite_helmet.json b/src/main/resources/assets/aether/recipes/armor/gravitite_helmet.json deleted file mode 100644 index 0742070326..0000000000 --- a/src/main/resources/assets/aether/recipes/armor/gravitite_helmet.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "pattern": [ - "XXX", - "X X" - ], - "key": { - "X": { - "item": "aether:gravitite_plate" - } - }, - "result": { - "item": "aether:gravitite_helmet" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/recipes/armor/gravitite_leggings.json b/src/main/resources/assets/aether/recipes/armor/gravitite_leggings.json deleted file mode 100644 index aadf5c17e6..0000000000 --- a/src/main/resources/assets/aether/recipes/armor/gravitite_leggings.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "pattern": [ - "XXX", - "X X", - "X X" - ], - "key": { - "X": { - "item": "aether:gravitite_plate" - } - }, - "result": { - "item": "aether:gravitite_leggings" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/recipes/armor/gravitite_shield.json b/src/main/resources/assets/aether/recipes/armor/gravitite_shield.json deleted file mode 100644 index f2d2369e50..0000000000 --- a/src/main/resources/assets/aether/recipes/armor/gravitite_shield.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "pattern": [ - "#J#", - "###", - " # " - ], - "key": { - "#": { - "item": "aether:gravitite_plate" - }, - "J": { - "item": "aether:arkenium_strip" - } - }, - "result": { - "item": "aether:gravitite_shield", - "count": 1 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/recipes/armor/holystone_shield.json b/src/main/resources/assets/aether/recipes/armor/holystone_shield.json deleted file mode 100644 index 2528e5ec20..0000000000 --- a/src/main/resources/assets/aether/recipes/armor/holystone_shield.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "forge:ore_shaped", - "pattern": [ - "#J#", - "###", - " # " - ], - "key": { - "#": { - "type": "forge:ore_dict", - "ore": "holystone" - }, - "J": { - "item": "aether:skyroot_stick" - } - }, - "result": { - "item": "aether:holystone_shield", - "count": 1 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/recipes/armor/skyroot_shield.json b/src/main/resources/assets/aether/recipes/armor/skyroot_shield.json deleted file mode 100644 index 3bfa0fcc44..0000000000 --- a/src/main/resources/assets/aether/recipes/armor/skyroot_shield.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "pattern": [ - "#J#", - "###", - " # " - ], - "key": { - "#": { - "item": "aether:skyroot_planks" - }, - "J": { - "item": "aether:skyroot_stick" - } - }, - "result": { - "item": "aether:skyroot_shield", - "count": 1 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/recipes/armor/taegore_hide_boots.json b/src/main/resources/assets/aether/recipes/armor/taegore_hide_boots.json deleted file mode 100644 index 4ba9ea5701..0000000000 --- a/src/main/resources/assets/aether/recipes/armor/taegore_hide_boots.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "pattern": [ - "X X", - "X X" - ], - "key": { - "X": { - "item": "aether:taegore_hide" - } - }, - "result": { - "item": "aether:taegore_hide_boots" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/recipes/armor/taegore_hide_chestplate.json b/src/main/resources/assets/aether/recipes/armor/taegore_hide_chestplate.json deleted file mode 100644 index da6d27d1b9..0000000000 --- a/src/main/resources/assets/aether/recipes/armor/taegore_hide_chestplate.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "pattern": [ - "X X", - "XXX", - "XXX" - ], - "key": { - "X": { - "item": "aether:taegore_hide" - } - }, - "result": { - "item": "aether:taegore_hide_chestplate" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/recipes/armor/taegore_hide_gloves.json b/src/main/resources/assets/aether/recipes/armor/taegore_hide_gloves.json deleted file mode 100644 index 6b44391d0a..0000000000 --- a/src/main/resources/assets/aether/recipes/armor/taegore_hide_gloves.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "pattern": [ - "X X" - ], - "key": { - "X": { - "item": "aether:taegore_hide" - } - }, - "result": { - "item": "aether:taegore_hide_gloves" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/recipes/armor/taegore_hide_helmet.json b/src/main/resources/assets/aether/recipes/armor/taegore_hide_helmet.json deleted file mode 100644 index 8048b3ae87..0000000000 --- a/src/main/resources/assets/aether/recipes/armor/taegore_hide_helmet.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "pattern": [ - "XXX", - "X X" - ], - "key": { - "X": { - "item": "aether:taegore_hide" - } - }, - "result": { - "item": "aether:taegore_hide_helmet" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/recipes/armor/taegore_hide_leggings.json b/src/main/resources/assets/aether/recipes/armor/taegore_hide_leggings.json deleted file mode 100644 index f21bddefef..0000000000 --- a/src/main/resources/assets/aether/recipes/armor/taegore_hide_leggings.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "pattern": [ - "XXX", - "X X", - "X X" - ], - "key": { - "X": { - "item": "aether:taegore_hide" - } - }, - "result": { - "item": "aether:taegore_hide_leggings" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/recipes/armor/zanite_boots.json b/src/main/resources/assets/aether/recipes/armor/zanite_boots.json deleted file mode 100644 index f1ea19fb73..0000000000 --- a/src/main/resources/assets/aether/recipes/armor/zanite_boots.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "pattern": [ - "X X", - "X X" - ], - "key": { - "X": { - "item": "aether:zanite_gemstone" - } - }, - "result": { - "item": "aether:zanite_boots" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/recipes/armor/zanite_chestplate.json b/src/main/resources/assets/aether/recipes/armor/zanite_chestplate.json deleted file mode 100644 index 96a240b83b..0000000000 --- a/src/main/resources/assets/aether/recipes/armor/zanite_chestplate.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "pattern": [ - "X X", - "XXX", - "XXX" - ], - "key": { - "X": { - "item": "aether:zanite_gemstone" - } - }, - "result": { - "item": "aether:zanite_chestplate" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/recipes/armor/zanite_gloves.json b/src/main/resources/assets/aether/recipes/armor/zanite_gloves.json deleted file mode 100644 index db7b498524..0000000000 --- a/src/main/resources/assets/aether/recipes/armor/zanite_gloves.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "pattern": [ - "X X" - ], - "key": { - "X": { - "item": "aether:zanite_gemstone" - } - }, - "result": { - "item": "aether:zanite_gloves" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/recipes/armor/zanite_helmet.json b/src/main/resources/assets/aether/recipes/armor/zanite_helmet.json deleted file mode 100644 index 90862b3144..0000000000 --- a/src/main/resources/assets/aether/recipes/armor/zanite_helmet.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "pattern": [ - "XXX", - "X X" - ], - "key": { - "X": { - "item": "aether:zanite_gemstone" - } - }, - "result": { - "item": "aether:zanite_helmet" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/recipes/armor/zanite_leggings.json b/src/main/resources/assets/aether/recipes/armor/zanite_leggings.json deleted file mode 100644 index d9f3c661d6..0000000000 --- a/src/main/resources/assets/aether/recipes/armor/zanite_leggings.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "pattern": [ - "XXX", - "X X", - "X X" - ], - "key": { - "X": { - "item": "aether:zanite_gemstone" - } - }, - "result": { - "item": "aether:zanite_leggings" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/recipes/armor/zanite_shield.json b/src/main/resources/assets/aether/recipes/armor/zanite_shield.json deleted file mode 100644 index fb3ad58784..0000000000 --- a/src/main/resources/assets/aether/recipes/armor/zanite_shield.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "pattern": [ - "#J#", - "###", - " # " - ], - "key": { - "#": { - "item": "aether:zanite_gemstone" - }, - "J": { - "item": "aether:skyroot_stick" - } - }, - "result": { - "item": "aether:zanite_shield", - "count": 1 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/recipes/construction/agiosite_brick.json b/src/main/resources/assets/aether/recipes/construction/agiosite_brick.json deleted file mode 100644 index da648343e9..0000000000 --- a/src/main/resources/assets/aether/recipes/construction/agiosite_brick.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "pattern": [ - "##", - "##" - ], - "key": { - "#": { - "item": "aether:agiosite" - } - }, - "result": { - "item": "aether:agiosite_brick", - "count": 4 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/recipes/construction/agiosite_brick_from_agiosite_brick_decorative.json b/src/main/resources/assets/aether/recipes/construction/agiosite_brick_from_agiosite_brick_decorative.json deleted file mode 100644 index 512d1356df..0000000000 --- a/src/main/resources/assets/aether/recipes/construction/agiosite_brick_from_agiosite_brick_decorative.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "type": "forge:ore_shaped", - "pattern": [ - "#" - ], - "key": { - "#": { - "type": "forge:ore_dict", - "ore": "agiosite_brick_decorative" - } - }, - "result": { - "item": "aether:agiosite_brick", - "count": 1 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/recipes/construction/agiosite_brick_slab.json b/src/main/resources/assets/aether/recipes/construction/agiosite_brick_slab.json deleted file mode 100644 index 8951375f1f..0000000000 --- a/src/main/resources/assets/aether/recipes/construction/agiosite_brick_slab.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "pattern": [ - "###" - ], - "key": { - "#": { - "item": "aether:agiosite_brick" - } - }, - "result": { - "item": "aether:agiosite_brick_slab", - "data": 0, - "count": 6 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/recipes/construction/agiosite_brick_stairs.json b/src/main/resources/assets/aether/recipes/construction/agiosite_brick_stairs.json deleted file mode 100644 index 9c960dfd0a..0000000000 --- a/src/main/resources/assets/aether/recipes/construction/agiosite_brick_stairs.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "pattern": [ - "# ", - "## ", - "###" - ], - "key": { - "#": { - "item": "aether:agiosite_brick" - } - }, - "result": { - "item": "aether:agiosite_brick_stairs", - "count": 4 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/recipes/construction/agiosite_brick_wall.json b/src/main/resources/assets/aether/recipes/construction/agiosite_brick_wall.json deleted file mode 100644 index 98d55b9b71..0000000000 --- a/src/main/resources/assets/aether/recipes/construction/agiosite_brick_wall.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "pattern": [ - " ", - "###", - "###" - ], - "key": { - "#": { - "item": "aether:agiosite_brick", - "data": 0 - } - }, - "result": { - "item": "aether:agiosite_brick_wall", - "count": 6 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/recipes/construction/agiosite_slab.json b/src/main/resources/assets/aether/recipes/construction/agiosite_slab.json deleted file mode 100644 index ca990289b0..0000000000 --- a/src/main/resources/assets/aether/recipes/construction/agiosite_slab.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "pattern": [ - "###" - ], - "key": { - "#": { - "item": "aether:agiosite" - } - }, - "result": { - "item": "aether:agiosite_slab", - "data": 0, - "count": 6 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/recipes/construction/agiosite_stairs.json b/src/main/resources/assets/aether/recipes/construction/agiosite_stairs.json deleted file mode 100644 index a001239ee4..0000000000 --- a/src/main/resources/assets/aether/recipes/construction/agiosite_stairs.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "pattern": [ - "# ", - "## ", - "###" - ], - "key": { - "#": { - "item": "aether:agiosite" - } - }, - "result": { - "item": "aether:agiosite_stairs", - "count": 4 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/recipes/construction/agiosite_wall.json b/src/main/resources/assets/aether/recipes/construction/agiosite_wall.json deleted file mode 100644 index 1059bda496..0000000000 --- a/src/main/resources/assets/aether/recipes/construction/agiosite_wall.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "pattern": [ - " ", - "###", - "###" - ], - "key": { - "#": { - "item": "aether:agiosite", - "data": 0 - } - }, - "result": { - "item": "aether:agiosite_wall", - "count": 6 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/recipes/construction/ambrosium_torch.json b/src/main/resources/assets/aether/recipes/construction/ambrosium_torch.json deleted file mode 100644 index 171b19a47e..0000000000 --- a/src/main/resources/assets/aether/recipes/construction/ambrosium_torch.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "pattern": [ - "X", - "#" - ], - "key": { - "#": { - "item": "aether:skyroot_stick" - }, - "X": [ - { - "item": "aether:ambrosium_shard" - } - ] - }, - "result": { - "item": "aether:ambrosium_torch", - "count": 8 - } -} diff --git a/src/main/resources/assets/aether/recipes/construction/arkenium_door.json b/src/main/resources/assets/aether/recipes/construction/arkenium_door.json deleted file mode 100644 index b6151f4ce6..0000000000 --- a/src/main/resources/assets/aether/recipes/construction/arkenium_door.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "type": "forge:ore_shaped", - "pattern": [ - "XX", - "XX", - "XX" - ], - "key": { - "X": { - "item": "aether:arkenium" - } - }, - "result": { - "item": "aether:arkenium_door_item", - "count": 3 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/recipes/construction/candy_cane_block.json b/src/main/resources/assets/aether/recipes/construction/candy_cane_block.json deleted file mode 100644 index a722a17ae1..0000000000 --- a/src/main/resources/assets/aether/recipes/construction/candy_cane_block.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "pattern": [ - "##", - "##" - ], - "key": { - "#": { - "item": "aether:candy_cane" - } - }, - "result": { - "item": "aether:candy_cane_block", - "count": 1 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/recipes/construction/candy_cane_wall.json b/src/main/resources/assets/aether/recipes/construction/candy_cane_wall.json deleted file mode 100644 index fd7296644d..0000000000 --- a/src/main/resources/assets/aether/recipes/construction/candy_cane_wall.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "pattern": [ - " ", - "###", - "###" - ], - "key": { - "#": { - "item": "aether:candy_cane_block" - } - }, - "result": { - "item": "aether:candy_cane_wall", - "count": 6 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/recipes/construction/cloudwool_carpet.json b/src/main/resources/assets/aether/recipes/construction/cloudwool_carpet.json deleted file mode 100644 index d7996d7387..0000000000 --- a/src/main/resources/assets/aether/recipes/construction/cloudwool_carpet.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "pattern": [ - "XX" - ], - "key": { - "X": { - "item": "aether:cloudwool_block" - } - }, - "result": { - "item": "aether:cloudwool_carpet", - "count": 3 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/recipes/construction/crude_scatterglass.json b/src/main/resources/assets/aether/recipes/construction/crude_scatterglass.json deleted file mode 100644 index 74a6d49eae..0000000000 --- a/src/main/resources/assets/aether/recipes/construction/crude_scatterglass.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "pattern": [ - "##", - "##" - ], - "key": { - "#": { - "item": "aether:crude_scatterglass_shard" - } - }, - "result": { - "item": "aether:crude_scatterglass", - "count": 1 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/recipes/construction/crude_scatterglass_pane.json b/src/main/resources/assets/aether/recipes/construction/crude_scatterglass_pane.json deleted file mode 100644 index 441b073db9..0000000000 --- a/src/main/resources/assets/aether/recipes/construction/crude_scatterglass_pane.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "pattern": [ - "###", - "###" - ], - "key": { - "#": { - "item": "aether:crude_scatterglass" - } - }, - "result": { - "item": "aether:crude_scatterglass_pane", - "count": 16 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/recipes/construction/crude_scatterglass_pane_arkenium_frame.json b/src/main/resources/assets/aether/recipes/construction/crude_scatterglass_pane_arkenium_frame.json deleted file mode 100644 index 07512cf617..0000000000 --- a/src/main/resources/assets/aether/recipes/construction/crude_scatterglass_pane_arkenium_frame.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "pattern": [ - "###", - "###" - ], - "key": { - "#": { - "item": "aether:crude_scatterglass_decorative", - "data": 1 - } - }, - "result": { - "item": "aether:crude_scatterglass_pane_decorative", - "data": 1, - "count": 16 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/recipes/construction/crude_scatterglass_pane_skyroot_frame.json b/src/main/resources/assets/aether/recipes/construction/crude_scatterglass_pane_skyroot_frame.json deleted file mode 100644 index d46a8a3a30..0000000000 --- a/src/main/resources/assets/aether/recipes/construction/crude_scatterglass_pane_skyroot_frame.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "pattern": [ - "###", - "###" - ], - "key": { - "#": { - "item": "aether:crude_scatterglass_decorative", - "data": 0 - } - }, - "result": { - "item": "aether:crude_scatterglass_pane_decorative", - "data": 0, - "count": 16 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/recipes/construction/dark_skyroot_planks.json b/src/main/resources/assets/aether/recipes/construction/dark_skyroot_planks.json deleted file mode 100644 index fc5d2ec590..0000000000 --- a/src/main/resources/assets/aether/recipes/construction/dark_skyroot_planks.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "group": "aether:planks", - "pattern": [ - "X" - ], - "key": { - "X": { - "item": "aether:dark_skyroot_log" - } - }, - "result": { - "item": "aether:dark_skyroot_planks", - "count": 4 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/recipes/construction/faded_holystone_brick_slab.json b/src/main/resources/assets/aether/recipes/construction/faded_holystone_brick_slab.json deleted file mode 100644 index 028ad334e9..0000000000 --- a/src/main/resources/assets/aether/recipes/construction/faded_holystone_brick_slab.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "pattern": [ - "###" - ], - "key": { - "#": { - "item": "aether:faded_holystone_brick", - "data": 0 - } - }, - "result": { - "item": "aether:faded_holystone_brick_slab", - "data": 0, - "count": 6 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/recipes/construction/faded_holystone_brick_stairs.json b/src/main/resources/assets/aether/recipes/construction/faded_holystone_brick_stairs.json deleted file mode 100644 index c5e7024fa9..0000000000 --- a/src/main/resources/assets/aether/recipes/construction/faded_holystone_brick_stairs.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "pattern": [ - "# ", - "## ", - "###" - ], - "key": { - "#": { - "item": "aether:faded_holystone_brick", - "data": 0 - } - }, - "result": { - "item": "aether:faded_holystone_brick_stairs", - "count": 4 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/recipes/construction/faded_holystone_brick_wall.json b/src/main/resources/assets/aether/recipes/construction/faded_holystone_brick_wall.json deleted file mode 100644 index 4b5e7585a5..0000000000 --- a/src/main/resources/assets/aether/recipes/construction/faded_holystone_brick_wall.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "pattern": [ - " ", - "###", - "###" - ], - "key": { - "#": { - "item": "aether:faded_holystone_brick" - } - }, - "result": { - "item": "aether:faded_holystone_brick_wall", - "count": 6 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/recipes/construction/gravitite_block.json b/src/main/resources/assets/aether/recipes/construction/gravitite_block.json deleted file mode 100644 index 682b7126cd..0000000000 --- a/src/main/resources/assets/aether/recipes/construction/gravitite_block.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "pattern": [ - "###", - "###", - "###" - ], - "key": { - "#": { - "item": "aether:gravitite_plate" - } - }, - "result": { - "item": "aether:gravitite_block" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/recipes/construction/gravitite_from_block.json b/src/main/resources/assets/aether/recipes/construction/gravitite_from_block.json deleted file mode 100644 index 00a101dc7e..0000000000 --- a/src/main/resources/assets/aether/recipes/construction/gravitite_from_block.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "pattern": [ - "#" - ], - "key": { - "#": { - "item": "aether:gravitite_block" - } - }, - "result": { - "item": "aether:gravitite_plate", - "count": 9 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/recipes/construction/greatroot_button.json b/src/main/resources/assets/aether/recipes/construction/greatroot_button.json deleted file mode 100644 index 08ff0c7853..0000000000 --- a/src/main/resources/assets/aether/recipes/construction/greatroot_button.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "type": "forge:ore_shaped", - "group": "aether:wooden_button", - "pattern": [ - "X" - ], - "key": { - "X": { - "item": "aether:dark_skyroot_planks" - } - }, - "result": { - "item": "aether:greatroot_button", - "count": 1 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/recipes/construction/greatroot_fence.json b/src/main/resources/assets/aether/recipes/construction/greatroot_fence.json deleted file mode 100644 index d5714ba46b..0000000000 --- a/src/main/resources/assets/aether/recipes/construction/greatroot_fence.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "type": "forge:ore_shaped", - "group": "aether:wooden_fence", - "pattern": [ - "W#W", - "W#W" - ], - "key": { - "#": { - "item": "aether:skyroot_stick" - }, - "W": { - "item": "aether:dark_skyroot_planks" - } - }, - "result": { - "item": "aether:greatroot_fence", - "count": 3 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/recipes/construction/greatroot_fence_gate.json b/src/main/resources/assets/aether/recipes/construction/greatroot_fence_gate.json deleted file mode 100644 index 7e819ff017..0000000000 --- a/src/main/resources/assets/aether/recipes/construction/greatroot_fence_gate.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "type": "forge:ore_shaped", - "group": "aether:wooden_fence_gate", - "pattern": [ - "#W#", - "#W#" - ], - "key": { - "#": { - "item": "aether:skyroot_stick" - }, - "W": { - "item": "aether:dark_skyroot_planks" - } - }, - "result": { - "item": "aether:greatroot_fence_gate" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/recipes/construction/greatroot_log_wall.json b/src/main/resources/assets/aether/recipes/construction/greatroot_log_wall.json deleted file mode 100644 index 69dc024f4d..0000000000 --- a/src/main/resources/assets/aether/recipes/construction/greatroot_log_wall.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "group": "aether:log_wall", - "pattern": [ - " ", - "###", - "###" - ], - "key": { - "#": { - "item": "aether:dark_skyroot_log" - } - }, - "result": { - "item": "aether:greatroot_log_wall", - "count": 6 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/recipes/construction/greatroot_planks_decorative_revert.json b/src/main/resources/assets/aether/recipes/construction/greatroot_planks_decorative_revert.json deleted file mode 100644 index fa565edb88..0000000000 --- a/src/main/resources/assets/aether/recipes/construction/greatroot_planks_decorative_revert.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "type": "forge:ore_shaped", - "pattern": [ - "X" - ], - "key": { - "X": { - "type": "forge:ore_dict", - "ore": "greatroot_decorative" - } - }, - "result": { - "item": "aether:dark_skyroot_planks", - "count": 1 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/recipes/construction/greatroot_pressure_plate.json b/src/main/resources/assets/aether/recipes/construction/greatroot_pressure_plate.json deleted file mode 100644 index 2d7b3ced62..0000000000 --- a/src/main/resources/assets/aether/recipes/construction/greatroot_pressure_plate.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "type": "forge:ore_shaped", - "group": "aether:wooden_pressure_plate", - "pattern": [ - "XX " - ], - "key": { - "X": { - "item": "aether:dark_skyroot_planks" - } - }, - "result": { - "item": "aether:greatroot_pressure_plate", - "count": 1 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/recipes/construction/greatroot_slab.json b/src/main/resources/assets/aether/recipes/construction/greatroot_slab.json deleted file mode 100644 index be571eb5d5..0000000000 --- a/src/main/resources/assets/aether/recipes/construction/greatroot_slab.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "group": "aether:wooden_slab", - "pattern": [ - "XXX" - ], - "key": { - "X": { - "item": "aether:dark_skyroot_planks" - } - }, - "result": { - "item": "aether:greatroot_slab", - "data": 0, - "count": 6 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/recipes/construction/greatroot_stairs.json b/src/main/resources/assets/aether/recipes/construction/greatroot_stairs.json deleted file mode 100644 index ff1cd70ffa..0000000000 --- a/src/main/resources/assets/aether/recipes/construction/greatroot_stairs.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "group": "aether:wooden_stairs", - "pattern": [ - "X ", - "XX ", - "XXX" - ], - "key": { - "X": { - "item": "aether:dark_skyroot_planks" - } - }, - "result": { - "item": "aether:greatroot_stairs", - "count": 4 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/recipes/construction/hellfirestone_brick_from_hellfirestone_brick_decorative.json b/src/main/resources/assets/aether/recipes/construction/hellfirestone_brick_from_hellfirestone_brick_decorative.json deleted file mode 100644 index 7bfd4d993d..0000000000 --- a/src/main/resources/assets/aether/recipes/construction/hellfirestone_brick_from_hellfirestone_brick_decorative.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "type": "forge:ore_shaped", - "pattern": [ - "#" - ], - "key": { - "#": { - "type": "forge:ore_dict", - "ore": "hellfirestone_brick_decorative" - } - }, - "result": { - "item": "aether:hellfirestone_brick", - "count": 1 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/recipes/construction/hellfirestone_brick_slab.json b/src/main/resources/assets/aether/recipes/construction/hellfirestone_brick_slab.json deleted file mode 100644 index b1ecdaa5fc..0000000000 --- a/src/main/resources/assets/aether/recipes/construction/hellfirestone_brick_slab.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "pattern": [ - "###" - ], - "key": { - "#": { - "item": "aether:hellfirestone_brick" - } - }, - "result": { - "item": "aether:hellfirestone_brick_slab", - "data": 0, - "count": 6 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/recipes/construction/hellfirestone_brick_stairs.json b/src/main/resources/assets/aether/recipes/construction/hellfirestone_brick_stairs.json deleted file mode 100644 index a4674c045a..0000000000 --- a/src/main/resources/assets/aether/recipes/construction/hellfirestone_brick_stairs.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "pattern": [ - "# ", - "## ", - "###" - ], - "key": { - "#": { - "item": "aether:hellfirestone_brick" - } - }, - "result": { - "item": "aether:hellfirestone_brick_stairs", - "count": 4 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/recipes/construction/hellfirestone_brick_wall.json b/src/main/resources/assets/aether/recipes/construction/hellfirestone_brick_wall.json deleted file mode 100644 index ab64cf4374..0000000000 --- a/src/main/resources/assets/aether/recipes/construction/hellfirestone_brick_wall.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "pattern": [ - " ", - "###", - "###" - ], - "key": { - "#": { - "item": "aether:hellfirestone_brick" - } - }, - "result": { - "item": "aether:hellfirestone_brick_wall", - "count": 6 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/recipes/construction/holystone_bookshelf.json b/src/main/resources/assets/aether/recipes/construction/holystone_bookshelf.json deleted file mode 100644 index b424d98311..0000000000 --- a/src/main/resources/assets/aether/recipes/construction/holystone_bookshelf.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "group": "aether:bookshelf", - "pattern": [ - "###", - "XXX", - "###" - ], - "key": { - "#": [ - { - "item": "aether:holystone_brick" - } - ], - "X": { - "item": "minecraft:book" - } - }, - "result": { - "item": "aether:holystone_bookshelf" - } -} diff --git a/src/main/resources/assets/aether/recipes/construction/holystone_brick.json b/src/main/resources/assets/aether/recipes/construction/holystone_brick.json deleted file mode 100644 index 7827e824fb..0000000000 --- a/src/main/resources/assets/aether/recipes/construction/holystone_brick.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "type": "forge:ore_shaped", - "pattern": [ - "##", - "##" - ], - "key": { - "#": { - "type": "forge:ore_dict", - "ore": "holystone" - } - }, - "result": { - "item": "aether:holystone_brick", - "count": 4 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/recipes/construction/holystone_brick_from_faded_holystone_brick.json b/src/main/resources/assets/aether/recipes/construction/holystone_brick_from_faded_holystone_brick.json deleted file mode 100644 index ab431b298c..0000000000 --- a/src/main/resources/assets/aether/recipes/construction/holystone_brick_from_faded_holystone_brick.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "type": "forge:ore_shaped", - "pattern": [ - "#" - ], - "key": { - "#": { - "type": "forge:ore_dict", - "ore": "faded_holystone_brick_decorative" - } - }, - "result": { - "item": "aether:faded_holystone_brick", - "count": 1 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/recipes/construction/holystone_brick_from_holystone_brick_decorative.json b/src/main/resources/assets/aether/recipes/construction/holystone_brick_from_holystone_brick_decorative.json deleted file mode 100644 index 06bf126902..0000000000 --- a/src/main/resources/assets/aether/recipes/construction/holystone_brick_from_holystone_brick_decorative.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "type": "forge:ore_shaped", - "pattern": [ - "#" - ], - "key": { - "#": { - "type": "forge:ore_dict", - "ore": "holystone_brick_decorative" - } - }, - "result": { - "item": "aether:holystone_brick", - "count": 1 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/recipes/construction/holystone_brick_from_nondecorative_faded_holystone_brick.json b/src/main/resources/assets/aether/recipes/construction/holystone_brick_from_nondecorative_faded_holystone_brick.json deleted file mode 100644 index e564acb462..0000000000 --- a/src/main/resources/assets/aether/recipes/construction/holystone_brick_from_nondecorative_faded_holystone_brick.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "type": "forge:ore_shaped", - "pattern": [ - "#" - ], - "key": { - "#": { - "type": "forge:ore_dict", - "ore": "faded_holystone_brick" - } - }, - "result": { - "item": "aether:holystone_brick", - "count": 1 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/recipes/construction/holystone_brick_slab.json b/src/main/resources/assets/aether/recipes/construction/holystone_brick_slab.json deleted file mode 100644 index 1607669b23..0000000000 --- a/src/main/resources/assets/aether/recipes/construction/holystone_brick_slab.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "pattern": [ - "###" - ], - "key": { - "#": { - "item": "aether:holystone_brick" - } - }, - "result": { - "item": "aether:holystone_brick_slab", - "data": 0, - "count": 6 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/recipes/construction/holystone_brick_stairs.json b/src/main/resources/assets/aether/recipes/construction/holystone_brick_stairs.json deleted file mode 100644 index a9698faf52..0000000000 --- a/src/main/resources/assets/aether/recipes/construction/holystone_brick_stairs.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "pattern": [ - "# ", - "## ", - "###" - ], - "key": { - "#": { - "item": "aether:holystone_brick" - } - }, - "result": { - "item": "aether:holystone_brick_stairs", - "count": 4 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/recipes/construction/holystone_brick_wall.json b/src/main/resources/assets/aether/recipes/construction/holystone_brick_wall.json deleted file mode 100644 index 5d37516ba3..0000000000 --- a/src/main/resources/assets/aether/recipes/construction/holystone_brick_wall.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "pattern": [ - " ", - "###", - "###" - ], - "key": { - "#": { - "item": "aether:holystone_brick" - } - }, - "result": { - "item": "aether:holystone_brick_wall", - "count": 6 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/recipes/construction/holystone_button.json b/src/main/resources/assets/aether/recipes/construction/holystone_button.json deleted file mode 100644 index 77680ebef0..0000000000 --- a/src/main/resources/assets/aether/recipes/construction/holystone_button.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "type": "forge:ore_shaped", - "pattern": [ - "X" - ], - "key": { - "X": { - "item": "aether:holystone", - "data": 0 - } - }, - "result": { - "item": "aether:holystone_button", - "count": 1 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/recipes/construction/holystone_pressure_plate.json b/src/main/resources/assets/aether/recipes/construction/holystone_pressure_plate.json deleted file mode 100644 index f477817d53..0000000000 --- a/src/main/resources/assets/aether/recipes/construction/holystone_pressure_plate.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "pattern": [ - "##" - ], - "key": { - "#": { - "item": "aether:holystone", - "data": 0 - } - }, - "result": { - "item": "aether:holystone_pressure_plate", - "count": 1 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/recipes/construction/holystone_slab.json b/src/main/resources/assets/aether/recipes/construction/holystone_slab.json deleted file mode 100644 index 1d406936cc..0000000000 --- a/src/main/resources/assets/aether/recipes/construction/holystone_slab.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "pattern": [ - "###" - ], - "key": { - "#": { - "item": "aether:holystone", - "data": 0 - } - }, - "result": { - "item": "aether:holystone_slab", - "data": 0, - "count": 6 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/recipes/construction/holystone_stairs.json b/src/main/resources/assets/aether/recipes/construction/holystone_stairs.json deleted file mode 100644 index 2abadae72d..0000000000 --- a/src/main/resources/assets/aether/recipes/construction/holystone_stairs.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "pattern": [ - "# ", - "## ", - "###" - ], - "key": { - "#": { - "item": "aether:holystone", - "data": 0 - } - }, - "result": { - "item": "aether:holystone_stairs", - "count": 4 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/recipes/construction/holystone_wall.json b/src/main/resources/assets/aether/recipes/construction/holystone_wall.json deleted file mode 100644 index 2829292c10..0000000000 --- a/src/main/resources/assets/aether/recipes/construction/holystone_wall.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "pattern": [ - " ", - "###", - "###" - ], - "key": { - "#": { - "item": "aether:holystone", - "data": 0 - } - }, - "result": { - "item": "aether:holystone_wall", - "count": 6 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/recipes/construction/icestone_brick_slab.json b/src/main/resources/assets/aether/recipes/construction/icestone_brick_slab.json deleted file mode 100644 index c48525cf1a..0000000000 --- a/src/main/resources/assets/aether/recipes/construction/icestone_brick_slab.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "pattern": [ - "###" - ], - "key": { - "#": { - "item": "aether:icestone_bricks" - } - }, - "result": { - "item": "aether:icestone_slab", - "data": 0, - "count": 6 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/recipes/construction/icestone_brick_stairs.json b/src/main/resources/assets/aether/recipes/construction/icestone_brick_stairs.json deleted file mode 100644 index e99cd68c85..0000000000 --- a/src/main/resources/assets/aether/recipes/construction/icestone_brick_stairs.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "pattern": [ - "# ", - "## ", - "###" - ], - "key": { - "#": { - "item": "aether:icestone_bricks" - } - }, - "result": { - "item": "aether:icestone_brick_stairs", - "count": 4 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/recipes/construction/icestone_brick_wall.json b/src/main/resources/assets/aether/recipes/construction/icestone_brick_wall.json deleted file mode 100644 index 201576ae4a..0000000000 --- a/src/main/resources/assets/aether/recipes/construction/icestone_brick_wall.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "pattern": [ - " ", - "###", - "###" - ], - "key": { - "#": { - "item": "aether:icestone_bricks" - } - }, - "result": { - "item": "aether:icestone_wall", - "count": 6 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/recipes/construction/icestone_bricks.json b/src/main/resources/assets/aether/recipes/construction/icestone_bricks.json deleted file mode 100644 index e174104780..0000000000 --- a/src/main/resources/assets/aether/recipes/construction/icestone_bricks.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "pattern": [ - "##", - "##" - ], - "key": { - "#": { - "item": "aether:icestone" - } - }, - "result": { - "item": "aether:icestone_bricks", - "count": 4 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/recipes/construction/icestone_bricks_from_icestone_bricks_decorative.json b/src/main/resources/assets/aether/recipes/construction/icestone_bricks_from_icestone_bricks_decorative.json deleted file mode 100644 index 40130760b0..0000000000 --- a/src/main/resources/assets/aether/recipes/construction/icestone_bricks_from_icestone_bricks_decorative.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "type": "forge:ore_shaped", - "pattern": [ - "#" - ], - "key": { - "#": { - "type": "forge:ore_dict", - "ore": "icestone_bricks_decorative" - } - }, - "result": { - "item": "aether:icestone_bricks", - "count": 1 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/recipes/construction/light_skyroot_planks.json b/src/main/resources/assets/aether/recipes/construction/light_skyroot_planks.json deleted file mode 100644 index 4ec0bbd8fa..0000000000 --- a/src/main/resources/assets/aether/recipes/construction/light_skyroot_planks.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "group": "aether:planks", - "pattern": [ - "X" - ], - "key": { - "X": { - "item": "aether:light_skyroot_log" - } - }, - "result": { - "item": "aether:light_skyroot_planks", - "count": 4 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/recipes/construction/mossy_holystone_slab.json b/src/main/resources/assets/aether/recipes/construction/mossy_holystone_slab.json deleted file mode 100644 index 626181d52b..0000000000 --- a/src/main/resources/assets/aether/recipes/construction/mossy_holystone_slab.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "pattern": [ - "###" - ], - "key": { - "#": { - "item": "aether:holystone", - "data": 1 - } - }, - "result": { - "item": "aether:mossy_holystone_slab", - "data": 0, - "count": 6 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/recipes/construction/mossy_holystone_stairs.json b/src/main/resources/assets/aether/recipes/construction/mossy_holystone_stairs.json deleted file mode 100644 index c2a8001bd9..0000000000 --- a/src/main/resources/assets/aether/recipes/construction/mossy_holystone_stairs.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "pattern": [ - "# ", - "## ", - "###" - ], - "key": { - "#": { - "item": "aether:holystone", - "data": 1 - } - }, - "result": { - "item": "aether:mossy_holystone_stairs", - "count": 4 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/recipes/construction/mossy_holystone_wall.json b/src/main/resources/assets/aether/recipes/construction/mossy_holystone_wall.json deleted file mode 100644 index 1026eb51f9..0000000000 --- a/src/main/resources/assets/aether/recipes/construction/mossy_holystone_wall.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "pattern": [ - " ", - "###", - "###" - ], - "key": { - "#": { - "item": "aether:holystone", - "data": 1 - } - }, - "result": { - "item": "aether:mossy_holystone_wall", - "count": 6 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/recipes/construction/quicksoil_glass_pane_arkenium_frame.json b/src/main/resources/assets/aether/recipes/construction/quicksoil_glass_pane_arkenium_frame.json deleted file mode 100644 index e045ca5220..0000000000 --- a/src/main/resources/assets/aether/recipes/construction/quicksoil_glass_pane_arkenium_frame.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "pattern": [ - "###", - "###" - ], - "key": { - "#": { - "item": "aether:quicksoil_glass_decorative", - "data": 1 - } - }, - "result": { - "item": "aether:quicksoil_glass_pane_decorative", - "data": 1, - "count": 16 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/recipes/construction/quicksoil_glass_pane_skyroot_frame.json b/src/main/resources/assets/aether/recipes/construction/quicksoil_glass_pane_skyroot_frame.json deleted file mode 100644 index 2026b652a8..0000000000 --- a/src/main/resources/assets/aether/recipes/construction/quicksoil_glass_pane_skyroot_frame.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "pattern": [ - "###", - "###" - ], - "key": { - "#": { - "item": "aether:quicksoil_glass_decorative", - "data": 0 - } - }, - "result": { - "item": "aether:quicksoil_glass_pane_decorative", - "data": 0, - "count": 16 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/recipes/construction/quicksoil_pane.json b/src/main/resources/assets/aether/recipes/construction/quicksoil_pane.json deleted file mode 100644 index 7f760b4766..0000000000 --- a/src/main/resources/assets/aether/recipes/construction/quicksoil_pane.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "pattern": [ - "###", - "###" - ], - "key": { - "#": { - "item": "aether:quicksoil_glass" - } - }, - "result": { - "item": "aether:quicksoil_glass_pane", - "count": 16 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/recipes/construction/scatterglass_pane.json b/src/main/resources/assets/aether/recipes/construction/scatterglass_pane.json deleted file mode 100644 index f1e7d1f3d0..0000000000 --- a/src/main/resources/assets/aether/recipes/construction/scatterglass_pane.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "pattern": [ - "###", - "###" - ], - "key": { - "#": { - "item": "aether:scatterglass" - } - }, - "result": { - "item": "aether:scatterglass_pane", - "count": 16 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/recipes/construction/scatterglass_pane_arkenium_frame.json b/src/main/resources/assets/aether/recipes/construction/scatterglass_pane_arkenium_frame.json deleted file mode 100644 index b09d60aa56..0000000000 --- a/src/main/resources/assets/aether/recipes/construction/scatterglass_pane_arkenium_frame.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "pattern": [ - "###", - "###" - ], - "key": { - "#": { - "item": "aether:scatterglass_decorative", - "data": 1 - } - }, - "result": { - "item": "aether:scatterglass_pane_decorative", - "data": 1, - "count": 16 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/recipes/construction/scatterglass_pane_skyroot_frame.json b/src/main/resources/assets/aether/recipes/construction/scatterglass_pane_skyroot_frame.json deleted file mode 100644 index 29695de7ab..0000000000 --- a/src/main/resources/assets/aether/recipes/construction/scatterglass_pane_skyroot_frame.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "pattern": [ - "###", - "###" - ], - "key": { - "#": { - "item": "aether:scatterglass_decorative", - "data": 0 - } - }, - "result": { - "item": "aether:scatterglass_pane_decorative", - "data": 0, - "count": 16 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/recipes/construction/scatterglass_slab.json b/src/main/resources/assets/aether/recipes/construction/scatterglass_slab.json deleted file mode 100644 index 07d5574d4d..0000000000 --- a/src/main/resources/assets/aether/recipes/construction/scatterglass_slab.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "pattern": [ - "###" - ], - "key": { - "#": { - "item": "aether:scatterglass" - } - }, - "result": { - "item": "aether:scatterglass_slab", - "data": 0, - "count": 6 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/recipes/construction/scatterglass_stairs.json b/src/main/resources/assets/aether/recipes/construction/scatterglass_stairs.json deleted file mode 100644 index a73233cd6a..0000000000 --- a/src/main/resources/assets/aether/recipes/construction/scatterglass_stairs.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "pattern": [ - "# ", - "## ", - "###" - ], - "key": { - "#": { - "item": "aether:scatterglass" - } - }, - "result": { - "item": "aether:scatterglass_stairs", - "count": 4 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/recipes/construction/scatterglass_wall.json b/src/main/resources/assets/aether/recipes/construction/scatterglass_wall.json deleted file mode 100644 index fa87aef979..0000000000 --- a/src/main/resources/assets/aether/recipes/construction/scatterglass_wall.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "pattern": [ - " ", - "###", - "###" - ], - "key": { - "#": { - "item": "aether:scatterglass" - } - }, - "result": { - "item": "aether:scatterglass_wall", - "count": 6 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/recipes/construction/secret_skyroot_door_revert.json b/src/main/resources/assets/aether/recipes/construction/secret_skyroot_door_revert.json deleted file mode 100644 index ae3eb789f8..0000000000 --- a/src/main/resources/assets/aether/recipes/construction/secret_skyroot_door_revert.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "type": "forge:ore_shaped", - "pattern": [ - "X" - ], - "key": { - "X": { - "item": "aether:secret_skyroot_door_item" - } - }, - "result": { - "item": "aether:skyroot_door_item", - "count": 1 - } -} diff --git a/src/main/resources/assets/aether/recipes/construction/secret_skyroot_trapdoor_revert.json b/src/main/resources/assets/aether/recipes/construction/secret_skyroot_trapdoor_revert.json deleted file mode 100644 index c1a0ec6557..0000000000 --- a/src/main/resources/assets/aether/recipes/construction/secret_skyroot_trapdoor_revert.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "type": "forge:ore_shaped", - "pattern": [ - "X" - ], - "key": { - "X": { - "item": "aether:secret_skyroot_trapdoor" - } - }, - "result": { - "item": "aether:skyroot_trapdoor", - "count": 1 - } -} diff --git a/src/main/resources/assets/aether/recipes/construction/sentrystone_brick_from_sentrystone_brick_decorative.json b/src/main/resources/assets/aether/recipes/construction/sentrystone_brick_from_sentrystone_brick_decorative.json deleted file mode 100644 index a59fe09d0f..0000000000 --- a/src/main/resources/assets/aether/recipes/construction/sentrystone_brick_from_sentrystone_brick_decorative.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "type": "forge:ore_shaped", - "pattern": [ - "#" - ], - "key": { - "#": { - "type": "forge:ore_dict", - "ore": "sentrystone_brick_decorative" - } - }, - "result": { - "item": "aether:sentrystone_brick", - "count": 1 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/recipes/construction/sentrystone_brick_slab.json b/src/main/resources/assets/aether/recipes/construction/sentrystone_brick_slab.json deleted file mode 100644 index d9c689d416..0000000000 --- a/src/main/resources/assets/aether/recipes/construction/sentrystone_brick_slab.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "pattern": [ - "###" - ], - "key": { - "#": { - "item": "aether:sentrystone_brick" - } - }, - "result": { - "item": "aether:sentrystone_brick_slab", - "data": 0, - "count": 6 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/recipes/construction/sentrystone_brick_stairs.json b/src/main/resources/assets/aether/recipes/construction/sentrystone_brick_stairs.json deleted file mode 100644 index 2fa8b95bfc..0000000000 --- a/src/main/resources/assets/aether/recipes/construction/sentrystone_brick_stairs.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "pattern": [ - "# ", - "## ", - "###" - ], - "key": { - "#": { - "item": "aether:sentrystone_brick" - } - }, - "result": { - "item": "aether:sentrystone_brick_stairs", - "count": 4 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/recipes/construction/sentrystone_brick_wall.json b/src/main/resources/assets/aether/recipes/construction/sentrystone_brick_wall.json deleted file mode 100644 index 3b81716720..0000000000 --- a/src/main/resources/assets/aether/recipes/construction/sentrystone_brick_wall.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "pattern": [ - " ", - "###", - "###" - ], - "key": { - "#": { - "item": "aether:sentrystone_brick" - } - }, - "result": { - "item": "aether:sentrystone_brick_wall", - "count": 6 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/recipes/construction/skyroot_bookshelf.json b/src/main/resources/assets/aether/recipes/construction/skyroot_bookshelf.json deleted file mode 100644 index 66400c795e..0000000000 --- a/src/main/resources/assets/aether/recipes/construction/skyroot_bookshelf.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "type": "forge:ore_shaped", - "group": "aether:bookshelf", - "pattern": [ - "###", - "XXX", - "###" - ], - "key": { - "#": [ - { - "type": "forge:ore_dict", - "ore": "skyrootplanks" - } - ], - "X": { - "item": "minecraft:book" - } - }, - "result": { - "item": "aether:skyroot_bookshelf" - } -} diff --git a/src/main/resources/assets/aether/recipes/construction/skyroot_button.json b/src/main/resources/assets/aether/recipes/construction/skyroot_button.json deleted file mode 100644 index 969128746f..0000000000 --- a/src/main/resources/assets/aether/recipes/construction/skyroot_button.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "type": "forge:ore_shaped", - "group": "aether:wooden_button", - "pattern": [ - "X" - ], - "key": { - "X": { - "item": "aether:skyroot_planks" - } - }, - "result": { - "item": "aether:skyroot_button", - "count": 1 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/recipes/construction/skyroot_door.json b/src/main/resources/assets/aether/recipes/construction/skyroot_door.json deleted file mode 100644 index 4818a2f784..0000000000 --- a/src/main/resources/assets/aether/recipes/construction/skyroot_door.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "type": "forge:ore_shaped", - "group": "aether:wooden_door", - "pattern": [ - "XX", - "XX", - "XX" - ], - "key": { - "X": { - "type": "forge:ore_dict", - "ore": "skyrootplanks" - } - }, - "result": { - "item": "aether:skyroot_door_item", - "count": 3 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/recipes/construction/skyroot_fence.json b/src/main/resources/assets/aether/recipes/construction/skyroot_fence.json deleted file mode 100644 index 8a82b7c4fc..0000000000 --- a/src/main/resources/assets/aether/recipes/construction/skyroot_fence.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "type": "forge:ore_shaped", - "group": "aether:wooden_fence", - "pattern": [ - "W#W", - "W#W" - ], - "key": { - "#": { - "item": "aether:skyroot_stick" - }, - "W": { - "item": "aether:skyroot_planks" - } - }, - "result": { - "item": "aether:skyroot_fence", - "count": 3 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/recipes/construction/skyroot_fence_gate.json b/src/main/resources/assets/aether/recipes/construction/skyroot_fence_gate.json deleted file mode 100644 index ec290b730d..0000000000 --- a/src/main/resources/assets/aether/recipes/construction/skyroot_fence_gate.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "type": "forge:ore_shaped", - "group": "aether:wooden_fence_gate", - "pattern": [ - "#W#", - "#W#" - ], - "key": { - "#": { - "item": "aether:skyroot_stick" - }, - "W": { - "item": "aether:skyroot_planks" - } - }, - "result": { - "item": "aether:skyroot_fence_gate" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/recipes/construction/skyroot_ladder.json b/src/main/resources/assets/aether/recipes/construction/skyroot_ladder.json deleted file mode 100644 index f4e760597f..0000000000 --- a/src/main/resources/assets/aether/recipes/construction/skyroot_ladder.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "type": "forge:ore_shaped", - "pattern": [ - "X X", - "XXX", - "X X" - ], - "key": { - "X": { - "item": "aether:skyroot_stick" - } - }, - "result": { - "item": "aether:skyroot_ladder", - "count": 3 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/recipes/construction/skyroot_log_wall.json b/src/main/resources/assets/aether/recipes/construction/skyroot_log_wall.json deleted file mode 100644 index 5da33393de..0000000000 --- a/src/main/resources/assets/aether/recipes/construction/skyroot_log_wall.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "group": "aether:log_wall", - "pattern": [ - " ", - "###", - "###" - ], - "key": { - "#": { - "item": "aether:skyroot_log" - } - }, - "result": { - "item": "aether:skyroot_log_wall", - "count": 6 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/recipes/construction/skyroot_planks.json b/src/main/resources/assets/aether/recipes/construction/skyroot_planks.json deleted file mode 100644 index fbdbfb4df9..0000000000 --- a/src/main/resources/assets/aether/recipes/construction/skyroot_planks.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "group": "aether:planks", - "pattern": [ - "X" - ], - "key": { - "X": { - "item": "aether:skyroot_log" - } - }, - "result": { - "item": "aether:skyroot_planks", - "count": 4 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/recipes/construction/skyroot_planks_decorative_revert.json b/src/main/resources/assets/aether/recipes/construction/skyroot_planks_decorative_revert.json deleted file mode 100644 index 5cfbecbccb..0000000000 --- a/src/main/resources/assets/aether/recipes/construction/skyroot_planks_decorative_revert.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "type": "forge:ore_shaped", - "pattern": [ - "X" - ], - "key": { - "X": { - "type": "forge:ore_dict", - "ore": "skyroot_decorative" - } - }, - "result": { - "item": "aether:skyroot_planks", - "count": 1 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/recipes/construction/skyroot_pressure_plate.json b/src/main/resources/assets/aether/recipes/construction/skyroot_pressure_plate.json deleted file mode 100644 index 745e48ee85..0000000000 --- a/src/main/resources/assets/aether/recipes/construction/skyroot_pressure_plate.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "type": "forge:ore_shaped", - "group": "aether:wooden_pressure_plate", - "pattern": [ - "XX " - ], - "key": { - "X": { - "item": "aether:skyroot_planks" - } - }, - "result": { - "item": "aether:skyroot_pressure_plate", - "count": 1 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/recipes/construction/skyroot_sign.json b/src/main/resources/assets/aether/recipes/construction/skyroot_sign.json deleted file mode 100644 index bb22cd1ca9..0000000000 --- a/src/main/resources/assets/aether/recipes/construction/skyroot_sign.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "type": "forge:ore_shaped", - "pattern": [ - "###", - "###", - " X " - ], - "key": { - "#": [ - { - "type": "forge:ore_dict", - "ore": "skyrootplanks" - } - ], - "X": { - "item": "aether:skyroot_stick" - } - }, - "result": { - "item": "aether:skyroot_sign", - "count": 3 - } -} diff --git a/src/main/resources/assets/aether/recipes/construction/skyroot_slab.json b/src/main/resources/assets/aether/recipes/construction/skyroot_slab.json deleted file mode 100644 index 4a45f2f7b3..0000000000 --- a/src/main/resources/assets/aether/recipes/construction/skyroot_slab.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "group": "aether:wooden_slab", - "pattern": [ - "XXX" - ], - "key": { - "X": { - "item": "aether:skyroot_planks" - } - }, - "result": { - "item": "aether:skyroot_slab", - "data": 0, - "count": 6 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/recipes/construction/skyroot_stairs.json b/src/main/resources/assets/aether/recipes/construction/skyroot_stairs.json deleted file mode 100644 index 4f056f0e0b..0000000000 --- a/src/main/resources/assets/aether/recipes/construction/skyroot_stairs.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "group": "aether:wooden_stairs", - "pattern": [ - "X ", - "XX ", - "XXX" - ], - "key": { - "X": { - "item": "aether:skyroot_planks" - } - }, - "result": { - "item": "aether:skyroot_stairs", - "count": 4 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/recipes/construction/skyroot_trapdoor.json b/src/main/resources/assets/aether/recipes/construction/skyroot_trapdoor.json deleted file mode 100644 index 24301ff5d0..0000000000 --- a/src/main/resources/assets/aether/recipes/construction/skyroot_trapdoor.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "type": "forge:ore_shaped", - "group": "aether:wooden_trapdoor", - "pattern": [ - "XXX", - "XXX" - ], - "key": { - "X": { - "type": "forge:ore_dict", - "ore": "skyrootplanks" - } - }, - "result": { - "item": "aether:skyroot_trapdoor", - "count": 2 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/recipes/construction/therastone_brick_from_therastone_brick_decorative.json b/src/main/resources/assets/aether/recipes/construction/therastone_brick_from_therastone_brick_decorative.json deleted file mode 100644 index cf6d8c5960..0000000000 --- a/src/main/resources/assets/aether/recipes/construction/therastone_brick_from_therastone_brick_decorative.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "type": "forge:ore_shaped", - "pattern": [ - "#" - ], - "key": { - "#": { - "type": "forge:ore_dict", - "ore": "therastone_brick_decorative" - } - }, - "result": { - "item": "aether:therastone_brick", - "count": 1 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/recipes/construction/therastone_brick_slab.json b/src/main/resources/assets/aether/recipes/construction/therastone_brick_slab.json deleted file mode 100644 index 222bd1736f..0000000000 --- a/src/main/resources/assets/aether/recipes/construction/therastone_brick_slab.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "pattern": [ - "XXX" - ], - "key": { - "X": { - "item": "aether:therastone_brick" - } - }, - "result": { - "item": "aether:therastone_brick_slab", - "data": 0, - "count": 6 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/recipes/construction/therastone_brick_stairs.json b/src/main/resources/assets/aether/recipes/construction/therastone_brick_stairs.json deleted file mode 100644 index 9cd86f2cd6..0000000000 --- a/src/main/resources/assets/aether/recipes/construction/therastone_brick_stairs.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "pattern": [ - "X ", - "XX ", - "XXX" - ], - "key": { - "X": { - "item": "aether:therastone_brick" - } - }, - "result": { - "item": "aether:therastone_brick_stairs", - "count": 4 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/recipes/construction/therastone_brick_wall.json b/src/main/resources/assets/aether/recipes/construction/therastone_brick_wall.json deleted file mode 100644 index 2313756c96..0000000000 --- a/src/main/resources/assets/aether/recipes/construction/therastone_brick_wall.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "pattern": [ - " ", - "###", - "###" - ], - "key": { - "#": { - "item": "aether:therastone_brick" - } - }, - "result": { - "item": "aether:therastone_brick_wall", - "count": 6 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/recipes/construction/therawood_fence.json b/src/main/resources/assets/aether/recipes/construction/therawood_fence.json deleted file mode 100644 index c8b4027a40..0000000000 --- a/src/main/resources/assets/aether/recipes/construction/therawood_fence.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "type": "forge:ore_shaped", - "group": "aether:wooden_fence", - "pattern": [ - "W#W", - "W#W" - ], - "key": { - "#": { - "item": "aether:skyroot_stick" - }, - "W": { - "item": "aether:therawood_planks" - } - }, - "result": { - "item": "aether:therawood_fence", - "count": 3 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/recipes/construction/therawood_fence_gate.json b/src/main/resources/assets/aether/recipes/construction/therawood_fence_gate.json deleted file mode 100644 index a90be6d5dd..0000000000 --- a/src/main/resources/assets/aether/recipes/construction/therawood_fence_gate.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "type": "forge:ore_shaped", - "group": "aether:wooden_fence_gate", - "pattern": [ - "#W#", - "#W#" - ], - "key": { - "#": { - "item": "aether:skyroot_stick" - }, - "W": { - "item": "aether:therawood_planks" - } - }, - "result": { - "item": "aether:therawood_fence_gate" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/recipes/construction/therawood_log_wall.json b/src/main/resources/assets/aether/recipes/construction/therawood_log_wall.json deleted file mode 100644 index f9ade17dd1..0000000000 --- a/src/main/resources/assets/aether/recipes/construction/therawood_log_wall.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "group": "aether:log_wall", - "pattern": [ - " ", - "###", - "###" - ], - "key": { - "#": { - "item": "aether:therawood_log" - } - }, - "result": { - "item": "aether:therawood_log_wall", - "count": 6 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/recipes/construction/therawood_planks.json b/src/main/resources/assets/aether/recipes/construction/therawood_planks.json deleted file mode 100644 index 64ec5ac320..0000000000 --- a/src/main/resources/assets/aether/recipes/construction/therawood_planks.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "group": "aether:planks", - "pattern": [ - "X" - ], - "key": { - "X": { - "item": "aether:therawood_log" - } - }, - "result": { - "item": "aether:therawood_planks", - "count": 4 - } -} diff --git a/src/main/resources/assets/aether/recipes/construction/therawood_planks_decorative_revert.json b/src/main/resources/assets/aether/recipes/construction/therawood_planks_decorative_revert.json deleted file mode 100644 index c76540d459..0000000000 --- a/src/main/resources/assets/aether/recipes/construction/therawood_planks_decorative_revert.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "type": "forge:ore_shaped", - "pattern": [ - "X" - ], - "key": { - "X": { - "type": "forge:ore_dict", - "ore": "therawood_decorative" - } - }, - "result": { - "item": "aether:therawood_planks", - "count": 1 - } -} diff --git a/src/main/resources/assets/aether/recipes/construction/therawood_slab.json b/src/main/resources/assets/aether/recipes/construction/therawood_slab.json deleted file mode 100644 index 2388fcd34c..0000000000 --- a/src/main/resources/assets/aether/recipes/construction/therawood_slab.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "group": "aether:wooden_slab", - "pattern": [ - "XXX" - ], - "key": { - "X": { - "item": "aether:therawood_planks" - } - }, - "result": { - "item": "aether:therawood_slab", - "data": 0, - "count": 6 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/recipes/construction/therawood_stairs.json b/src/main/resources/assets/aether/recipes/construction/therawood_stairs.json deleted file mode 100644 index 80d8628ab1..0000000000 --- a/src/main/resources/assets/aether/recipes/construction/therawood_stairs.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "group": "aether:wooden_stairs", - "pattern": [ - "X ", - "XX ", - "XXX" - ], - "key": { - "X": { - "item": "aether:therawood_planks" - } - }, - "result": { - "item": "aether:therawood_stairs", - "count": 4 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/recipes/construction/wisproot_button.json b/src/main/resources/assets/aether/recipes/construction/wisproot_button.json deleted file mode 100644 index a7a96e87a6..0000000000 --- a/src/main/resources/assets/aether/recipes/construction/wisproot_button.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "type": "forge:ore_shaped", - "group": "aether:wooden_button", - "pattern": [ - "X" - ], - "key": { - "X": { - "item": "aether:light_skyroot_planks" - } - }, - "result": { - "item": "aether:wisproot_button", - "count": 1 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/recipes/construction/wisproot_fence.json b/src/main/resources/assets/aether/recipes/construction/wisproot_fence.json deleted file mode 100644 index a86be4ec15..0000000000 --- a/src/main/resources/assets/aether/recipes/construction/wisproot_fence.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "type": "forge:ore_shaped", - "group": "aether:wooden_fence", - "pattern": [ - "W#W", - "W#W" - ], - "key": { - "#": { - "item": "aether:skyroot_stick" - }, - "W": { - "item": "aether:light_skyroot_planks" - } - }, - "result": { - "item": "aether:wisproot_fence", - "count": 3 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/recipes/construction/wisproot_fence_gate.json b/src/main/resources/assets/aether/recipes/construction/wisproot_fence_gate.json deleted file mode 100644 index c2a15bbb7b..0000000000 --- a/src/main/resources/assets/aether/recipes/construction/wisproot_fence_gate.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "type": "forge:ore_shaped", - "group": "aether:wooden_fence_gate", - "pattern": [ - "#W#", - "#W#" - ], - "key": { - "#": { - "item": "aether:skyroot_stick" - }, - "W": { - "item": "aether:light_skyroot_planks" - } - }, - "result": { - "item": "aether:wisproot_fence_gate" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/recipes/construction/wisproot_log_wall.json b/src/main/resources/assets/aether/recipes/construction/wisproot_log_wall.json deleted file mode 100644 index 513620719f..0000000000 --- a/src/main/resources/assets/aether/recipes/construction/wisproot_log_wall.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "group": "aether:log_wall", - "pattern": [ - " ", - "###", - "###" - ], - "key": { - "#": { - "item": "aether:light_skyroot_log" - } - }, - "result": { - "item": "aether:wisproot_log_wall", - "count": 6 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/recipes/construction/wisproot_planks_decorative_revert.json b/src/main/resources/assets/aether/recipes/construction/wisproot_planks_decorative_revert.json deleted file mode 100644 index 5d23f87c84..0000000000 --- a/src/main/resources/assets/aether/recipes/construction/wisproot_planks_decorative_revert.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "type": "forge:ore_shaped", - "pattern": [ - "X" - ], - "key": { - "X": { - "type": "forge:ore_dict", - "ore": "wisproot_decorative" - } - }, - "result": { - "item": "aether:light_skyroot_planks", - "count": 1 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/recipes/construction/wisproot_pressure_plate.json b/src/main/resources/assets/aether/recipes/construction/wisproot_pressure_plate.json deleted file mode 100644 index 17c3d0fea4..0000000000 --- a/src/main/resources/assets/aether/recipes/construction/wisproot_pressure_plate.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "type": "forge:ore_shaped", - "group": "aether:wooden_pressure_plate", - "pattern": [ - "XX " - ], - "key": { - "X": { - "item": "aether:light_skyroot_planks" - } - }, - "result": { - "item": "aether:wisproot_pressure_plate", - "count": 1 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/recipes/construction/wisproot_slab.json b/src/main/resources/assets/aether/recipes/construction/wisproot_slab.json deleted file mode 100644 index 102b203302..0000000000 --- a/src/main/resources/assets/aether/recipes/construction/wisproot_slab.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "group": "aether:wooden_slab", - "pattern": [ - "XXX" - ], - "key": { - "X": { - "item": "aether:light_skyroot_planks" - } - }, - "result": { - "item": "aether:wisproot_slab", - "data": 0, - "count": 6 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/recipes/construction/wisproot_stairs.json b/src/main/resources/assets/aether/recipes/construction/wisproot_stairs.json deleted file mode 100644 index 046dc928cc..0000000000 --- a/src/main/resources/assets/aether/recipes/construction/wisproot_stairs.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "group": "aether:wooden_stairs", - "pattern": [ - "X ", - "XX ", - "XXX" - ], - "key": { - "X": { - "item": "aether:light_skyroot_planks" - } - }, - "result": { - "item": "aether:wisproot_stairs", - "count": 4 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/recipes/construction/zanite_block.json b/src/main/resources/assets/aether/recipes/construction/zanite_block.json deleted file mode 100644 index 4af2c626ca..0000000000 --- a/src/main/resources/assets/aether/recipes/construction/zanite_block.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "pattern": [ - "###", - "###", - "###" - ], - "key": { - "#": { - "item": "aether:zanite_gemstone" - } - }, - "result": { - "item": "aether:zanite_block" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/recipes/construction/zanite_from_block.json b/src/main/resources/assets/aether/recipes/construction/zanite_from_block.json deleted file mode 100644 index 899041081b..0000000000 --- a/src/main/resources/assets/aether/recipes/construction/zanite_from_block.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "pattern": [ - "#" - ], - "key": { - "#": { - "item": "aether:zanite_block" - } - }, - "result": { - "item": "aether:zanite_gemstone", - "count": 9 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/recipes/consumables/antitoxin_vial.json b/src/main/resources/assets/aether/recipes/consumables/antitoxin_vial.json deleted file mode 100644 index d71e9e3083..0000000000 --- a/src/main/resources/assets/aether/recipes/consumables/antitoxin_vial.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "type": "forge:ore_shapeless", - "ingredients": [ - { - "item": "aether:aechor_petal" - }, - { - "item": "aether:water_vial" - } - ], - "result": { - "item": "aether:antitoxin_vial" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/recipes/consumables/antivenom_vial.json b/src/main/resources/assets/aether/recipes/consumables/antivenom_vial.json deleted file mode 100644 index 9ce3bc7a42..0000000000 --- a/src/main/resources/assets/aether/recipes/consumables/antivenom_vial.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "type": "forge:ore_shapeless", - "ingredients": [ - { - "item": "aether:cockatrice_feather" - }, - { - "item": "aether:water_vial" - } - ], - "result": { - "item": "aether:antivenom_vial" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/recipes/consumables/bandage.json b/src/main/resources/assets/aether/recipes/consumables/bandage.json deleted file mode 100644 index cf881f411b..0000000000 --- a/src/main/resources/assets/aether/recipes/consumables/bandage.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "type": "forge:ore_shapeless", - "ingredients": [ - { - "item": "aether:cloudtwine" - }, - { - "item": "aether:cloudwool_block" - } - ], - "result": { - "item": "aether:bandage" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/recipes/consumables/blue_swet_jelly.json b/src/main/resources/assets/aether/recipes/consumables/blue_swet_jelly.json deleted file mode 100644 index 02bef81f8a..0000000000 --- a/src/main/resources/assets/aether/recipes/consumables/blue_swet_jelly.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "type": "forge:ore_shapeless", - "group": "aether:swet_jelly", - "ingredients": [ - { - "item": "aether:swet_gel", - "data": 0 - }, - { - "type": "forge:ore_dict", - "ore": "sugar" - } - ], - "result": { - "item": "aether:swet_jelly", - "data": 0 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/recipes/consumables/green_swet_jelly.json b/src/main/resources/assets/aether/recipes/consumables/green_swet_jelly.json deleted file mode 100644 index 79ad8bdcbf..0000000000 --- a/src/main/resources/assets/aether/recipes/consumables/green_swet_jelly.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "type": "forge:ore_shapeless", - "group": "aether:swet_jelly", - "ingredients": [ - { - "item": "aether:swet_gel", - "data": 1 - }, - { - "type": "forge:ore_dict", - "ore": "sugar" - } - ], - "result": { - "item": "aether:swet_jelly", - "data": 1 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/recipes/consumables/healing_stone_depleted.json b/src/main/resources/assets/aether/recipes/consumables/healing_stone_depleted.json deleted file mode 100644 index 02334962d1..0000000000 --- a/src/main/resources/assets/aether/recipes/consumables/healing_stone_depleted.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "type": "forge:ore_shaped", - "pattern": [ - " ZX", - " XZ", - "Y " - ], - "key": { - "X": { - "item": "aether:ambrosium_chunk" - }, - "Z": { - "type": "forge:ore_dict", - "ore": "holystone" - }, - "Y": { - "item": "aether:ambrosium_shard" - } - }, - "result": { - "item": "aether:healing_stone_depleted" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/recipes/consumables/plumproot_mash.json b/src/main/resources/assets/aether/recipes/consumables/plumproot_mash.json deleted file mode 100644 index e5d9cd9cba..0000000000 --- a/src/main/resources/assets/aether/recipes/consumables/plumproot_mash.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "type": "forge:ore_shapeless", - "ingredients": [ - { - "item": "aether:plumproot" - } - ], - "result": { - "item": "aether:plumproot_mash", - "count": 2 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/recipes/consumables/plumproot_pie.json b/src/main/resources/assets/aether/recipes/consumables/plumproot_pie.json deleted file mode 100644 index c6dea9e6e3..0000000000 --- a/src/main/resources/assets/aether/recipes/consumables/plumproot_pie.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "type": "forge:ore_shapeless", - "ingredients": [ - { - "item": "aether:plumproot" - }, - { - "type": "forge:ore_dict", - "ore": "sugar" - } - ], - "result": { - "item": "aether:plumproot_pie" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/recipes/consumables/purple_swet_jelly.json b/src/main/resources/assets/aether/recipes/consumables/purple_swet_jelly.json deleted file mode 100644 index e0f2411a95..0000000000 --- a/src/main/resources/assets/aether/recipes/consumables/purple_swet_jelly.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "type": "forge:ore_shapeless", - "group": "aether:swet_jelly", - "ingredients": [ - { - "item": "aether:swet_gel", - "data": 2 - }, - { - "type": "forge:ore_dict", - "ore": "sugar" - } - ], - "result": { - "item": "aether:swet_jelly", - "data": 2 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/recipes/consumables/splint.json b/src/main/resources/assets/aether/recipes/consumables/splint.json deleted file mode 100644 index f24ef4ddf6..0000000000 --- a/src/main/resources/assets/aether/recipes/consumables/splint.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "type": "forge:ore_shapeless", - "ingredients": [ - { - "item": "aether:skyroot_stick" - }, - { - "item": "aether:cloudwool_block" - } - ], - "result": { - "item": "aether:splint" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/recipes/materials/ambrosium_chunk.json b/src/main/resources/assets/aether/recipes/materials/ambrosium_chunk.json deleted file mode 100644 index 1bd53b41ef..0000000000 --- a/src/main/resources/assets/aether/recipes/materials/ambrosium_chunk.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "type": "forge:ore_shaped", - "pattern": [ - "XX", - "XX" - ], - "key": { - "X": { - "item": "aether:ambrosium_shard" - } - }, - "result": { - "item": "aether:ambrosium_chunk", - "count": 1 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/recipes/materials/ambrosium_chunk_revert.json b/src/main/resources/assets/aether/recipes/materials/ambrosium_chunk_revert.json deleted file mode 100644 index 605ae267f3..0000000000 --- a/src/main/resources/assets/aether/recipes/materials/ambrosium_chunk_revert.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "type": "forge:ore_shaped", - "pattern": [ - "X" - ], - "key": { - "X": { - "item": "aether:ambrosium_chunk" - } - }, - "result": { - "item": "aether:ambrosium_shard", - "count": 4 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/recipes/materials/arkenium_strip.json b/src/main/resources/assets/aether/recipes/materials/arkenium_strip.json deleted file mode 100644 index 191f42206a..0000000000 --- a/src/main/resources/assets/aether/recipes/materials/arkenium_strip.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "type": "forge:ore_shaped", - "pattern": [ - "X" - ], - "key": { - "X": { - "item": "aether:arkenium" - } - }, - "result": { - "item": "aether:arkenium_strip", - "count": 4 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/recipes/materials/brettl_rope.json b/src/main/resources/assets/aether/recipes/materials/brettl_rope.json deleted file mode 100644 index 0c0d1b13f1..0000000000 --- a/src/main/resources/assets/aether/recipes/materials/brettl_rope.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "type": "forge:ore_shaped", - "pattern": [ - " X", - " X ", - "X " - ], - "key": { - "X": { - "item": "aether:brettl_grass" - } - }, - "result": { - "item": "aether:brettl_rope", - "count": 2 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/recipes/materials/scatterglass_vial.json b/src/main/resources/assets/aether/recipes/materials/scatterglass_vial.json deleted file mode 100644 index f40b958c68..0000000000 --- a/src/main/resources/assets/aether/recipes/materials/scatterglass_vial.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "type": "forge:ore_shaped", - "pattern": [ - "X X", - " X " - ], - "key": { - "X": { - "item": "aether:scatterglass" - } - }, - "result": { - "item": "aether:scatterglass_vial", - "count": 4 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/recipes/materials/skyroot_sticks.json b/src/main/resources/assets/aether/recipes/materials/skyroot_sticks.json deleted file mode 100644 index 11e6177503..0000000000 --- a/src/main/resources/assets/aether/recipes/materials/skyroot_sticks.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "type": "forge:ore_shaped", - "pattern": [ - "X", - "X" - ], - "key": { - "X": { - "type": "forge:ore_dict", - "ore": "skyrootplanks" - } - }, - "result": { - "item": "aether:skyroot_stick", - "count": 4 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/recipes/misc/aether_teleporter.json b/src/main/resources/assets/aether/recipes/misc/aether_teleporter.json deleted file mode 100644 index b52d1a3cd5..0000000000 --- a/src/main/resources/assets/aether/recipes/misc/aether_teleporter.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "forge:ore_shaped", - "pattern": [ - "XYX", - "Y Y", - "XYX" - ], - "key": { - "X": { - "item": "minecraft:stone", - "data": 0 - }, - - "Y": { - "item": "minecraft:iron_ingot" - } - }, - "result": { - "item": "aether:aether_teleporter" - } -} diff --git a/src/main/resources/assets/aether/recipes/misc/moa_feed.json b/src/main/resources/assets/aether/recipes/misc/moa_feed.json deleted file mode 100644 index 8401ff97d6..0000000000 --- a/src/main/resources/assets/aether/recipes/misc/moa_feed.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "type": "forge:ore_shapeless", - "ingredients": [ - { - "item": "aether:skyroot_pinecone" - } - ], - "result": { - "item": "aether:moa_feed", - "count": 4 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/recipes/misc/moa_feed_blueberries.json b/src/main/resources/assets/aether/recipes/misc/moa_feed_blueberries.json deleted file mode 100644 index 1e80601ed6..0000000000 --- a/src/main/resources/assets/aether/recipes/misc/moa_feed_blueberries.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "type": "forge:ore_shapeless", - "ingredients": [ - { - "item": "aether:moa_feed" - }, - { - "item": "aether:blueberries" - } - ], - "result": { - "item": "aether:moa_feed_blueberries" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/recipes/misc/moa_feed_enchanted_blueberries.json b/src/main/resources/assets/aether/recipes/misc/moa_feed_enchanted_blueberries.json deleted file mode 100644 index c5eabb501b..0000000000 --- a/src/main/resources/assets/aether/recipes/misc/moa_feed_enchanted_blueberries.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "type": "forge:ore_shapeless", - "ingredients": [ - { - "item": "aether:moa_feed" - }, - { - "item": "aether:enchanted_blueberry" - } - ], - "result": { - "item": "aether:moa_feed_enchanted_blueberries" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/recipes/misc/moa_saddle.json b/src/main/resources/assets/aether/recipes/misc/moa_saddle.json deleted file mode 100644 index 6d771962e9..0000000000 --- a/src/main/resources/assets/aether/recipes/misc/moa_saddle.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "type": "forge:ore_shaped", - "pattern": [ - "XXX", - "XZX" - ], - "key": { - "X": { - "item": "aether:taegore_hide" - }, - "Z": { - "item": "aether:cloudtwine" - } - }, - "result": { - "item": "aether:aether_saddle" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/recipes/misc/skyroot_bucket.json b/src/main/resources/assets/aether/recipes/misc/skyroot_bucket.json deleted file mode 100644 index 630be7e03b..0000000000 --- a/src/main/resources/assets/aether/recipes/misc/skyroot_bucket.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "type": "forge:ore_shaped", - "pattern": [ - "# #", - " # " - ], - "key": { - "#": { - "type": "forge:ore_dict", - "ore": "skyrootplanks" - } - }, - "result": { - "item": "aether:skyroot_bucket", - "data": 0 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/recipes/natural/cloudtwine_to_cloudwool.json b/src/main/resources/assets/aether/recipes/natural/cloudtwine_to_cloudwool.json deleted file mode 100644 index adc885c12b..0000000000 --- a/src/main/resources/assets/aether/recipes/natural/cloudtwine_to_cloudwool.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "pattern": [ - "XX", - "XX" - ], - "key": { - "X": { - "item": "aether:cloudtwine" - } - }, - "result": { - "item": "aether:cloudwool_block", - "count": 1 - } -} diff --git a/src/main/resources/assets/aether/recipes/natural/cloudwool_to_cloudtwine.json b/src/main/resources/assets/aether/recipes/natural/cloudwool_to_cloudtwine.json deleted file mode 100644 index 4a8f791b69..0000000000 --- a/src/main/resources/assets/aether/recipes/natural/cloudwool_to_cloudtwine.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "pattern": [ - "X" - ], - "key": { - "X": { - "item": "aether:cloudwool_block" - } - }, - "result": { - "item": "aether:cloudtwine", - "count": 4 - } -} diff --git a/src/main/resources/assets/aether/recipes/natural/woven_skyroot_sticks.json b/src/main/resources/assets/aether/recipes/natural/woven_skyroot_sticks.json deleted file mode 100644 index e986f1690d..0000000000 --- a/src/main/resources/assets/aether/recipes/natural/woven_skyroot_sticks.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "pattern": [ - "XX", - "XX" - ], - "key": { - "X": { - "item": "aether:skyroot_stick" - } - }, - "result": { - "item": "aether:woven_sticks", - "data": 0, - "count": 1 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/recipes/natural/woven_skyroot_sticks_revert.json b/src/main/resources/assets/aether/recipes/natural/woven_skyroot_sticks_revert.json deleted file mode 100644 index 1431ae64b5..0000000000 --- a/src/main/resources/assets/aether/recipes/natural/woven_skyroot_sticks_revert.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "pattern": [ - "X" - ], - "key": { - "X": { - "item": "aether:woven_sticks", - "data": 0 - } - }, - "result": { - "item": "aether:skyroot_stick", - "count": 4 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/recipes/parachutes/cloud_parachute_blue.json b/src/main/resources/assets/aether/recipes/parachutes/cloud_parachute_blue.json deleted file mode 100644 index 85c2af0225..0000000000 --- a/src/main/resources/assets/aether/recipes/parachutes/cloud_parachute_blue.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "pattern": [ - "XXX", - " S " - ], - "key": { - "X": { - "item": "aether:aercloud", - "data": 1 - }, - "S": { - "item": "aether:cloud_parachute", - "data": 0 - } - }, - "result": { - "item": "aether:cloud_parachute", - "data": 2 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/recipes/parachutes/cloud_parachute_cold.json b/src/main/resources/assets/aether/recipes/parachutes/cloud_parachute_cold.json deleted file mode 100644 index e6dc139b1e..0000000000 --- a/src/main/resources/assets/aether/recipes/parachutes/cloud_parachute_cold.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "pattern": [ - "XXX", - " S " - ], - "key": { - "X": [ - { - "item": "aether:aercloud", - "data": 0 - }, - { - "item": "aether:aercloud", - "data": 4 - } - ], - "S": { - "item": "aether:cloudtwine" - } - }, - "result": { - "item": "aether:cloud_parachute", - "data": 0 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/recipes/parachutes/cloud_parachute_purple.json b/src/main/resources/assets/aether/recipes/parachutes/cloud_parachute_purple.json deleted file mode 100644 index 30357930d9..0000000000 --- a/src/main/resources/assets/aether/recipes/parachutes/cloud_parachute_purple.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "pattern": [ - "XXX", - " S " - ], - "key": { - "X": { - "item": "aether:aercloud", - "data": 5 - }, - "S": { - "item": "aether:cloud_parachute", - "data": 0 - } - }, - "result": { - "item": "aether:cloud_parachute", - "data": 1 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/recipes/tools/arkenium_axe.json b/src/main/resources/assets/aether/recipes/tools/arkenium_axe.json deleted file mode 100644 index d3d0bccb6c..0000000000 --- a/src/main/resources/assets/aether/recipes/tools/arkenium_axe.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "pattern": [ - "XX", - "X#", - " #" - ], - "key": { - "#": { - "item": "aether:skyroot_stick" - }, - "X": { - "item": "aether:arkenium" - } - }, - "result": { - "item": "aether:arkenium_axe" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/recipes/tools/arkenium_pickaxe.json b/src/main/resources/assets/aether/recipes/tools/arkenium_pickaxe.json deleted file mode 100644 index 606e1bc2d9..0000000000 --- a/src/main/resources/assets/aether/recipes/tools/arkenium_pickaxe.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "pattern": [ - "XXX", - " # ", - " # " - ], - "key": { - "#": { - "item": "aether:skyroot_stick" - }, - "X": { - "item": "aether:arkenium" - } - }, - "result": { - "item": "aether:arkenium_pickaxe" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/recipes/tools/arkenium_shears.json b/src/main/resources/assets/aether/recipes/tools/arkenium_shears.json deleted file mode 100644 index 6afba66000..0000000000 --- a/src/main/resources/assets/aether/recipes/tools/arkenium_shears.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "pattern": [ - "X ", - " X" - ], - "key": { - "X": { - "item": "aether:arkenium_strip" - } - }, - "result": { - "item": "aether:arkenium_shears" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/recipes/tools/arkenium_shovel.json b/src/main/resources/assets/aether/recipes/tools/arkenium_shovel.json deleted file mode 100644 index 51769885ea..0000000000 --- a/src/main/resources/assets/aether/recipes/tools/arkenium_shovel.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "pattern": [ - "X", - "#", - "#" - ], - "key": { - "#": { - "item": "aether:skyroot_stick" - }, - "X": { - "item": "aether:arkenium" - } - }, - "result": { - "item": "aether:arkenium_shovel" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/recipes/tools/gravitite_axe.json b/src/main/resources/assets/aether/recipes/tools/gravitite_axe.json deleted file mode 100644 index 4b8b8f7dae..0000000000 --- a/src/main/resources/assets/aether/recipes/tools/gravitite_axe.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "pattern": [ - "XX", - "X#", - " #" - ], - "key": { - "#": { - "item": "aether:skyroot_stick" - }, - "X": { - "item": "aether:gravitite_plate" - } - }, - "result": { - "item": "aether:gravitite_axe" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/recipes/tools/gravitite_pickaxe.json b/src/main/resources/assets/aether/recipes/tools/gravitite_pickaxe.json deleted file mode 100644 index d75df5993a..0000000000 --- a/src/main/resources/assets/aether/recipes/tools/gravitite_pickaxe.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "pattern": [ - "XXX", - " # ", - " # " - ], - "key": { - "#": { - "item": "aether:skyroot_stick" - }, - "X": { - "item": "aether:gravitite_plate" - } - }, - "result": { - "item": "aether:gravitite_pickaxe" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/recipes/tools/gravitite_shovel.json b/src/main/resources/assets/aether/recipes/tools/gravitite_shovel.json deleted file mode 100644 index 241b5c3d24..0000000000 --- a/src/main/resources/assets/aether/recipes/tools/gravitite_shovel.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "pattern": [ - "X", - "#", - "#" - ], - "key": { - "#": { - "item": "aether:skyroot_stick" - }, - "X": { - "item": "aether:gravitite_plate" - } - }, - "result": { - "item": "aether:gravitite_shovel" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/recipes/tools/holystone_axe.json b/src/main/resources/assets/aether/recipes/tools/holystone_axe.json deleted file mode 100644 index 98a196bd75..0000000000 --- a/src/main/resources/assets/aether/recipes/tools/holystone_axe.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "type": "forge:ore_shaped", - "pattern": [ - "XX", - "X#", - " #" - ], - "key": { - "#": { - "item": "aether:skyroot_stick" - }, - "X": { - "type": "forge:ore_dict", - "ore": "holystone" - } - }, - "result": { - "item": "aether:holystone_axe" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/recipes/tools/holystone_pickaxe.json b/src/main/resources/assets/aether/recipes/tools/holystone_pickaxe.json deleted file mode 100644 index 48e345a46d..0000000000 --- a/src/main/resources/assets/aether/recipes/tools/holystone_pickaxe.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "type": "forge:ore_shaped", - "pattern": [ - "XXX", - " # ", - " # " - ], - "key": { - "#": { - "item": "aether:skyroot_stick" - }, - "X": { - "type": "forge:ore_dict", - "ore": "holystone" - } - }, - "result": { - "item": "aether:holystone_pickaxe" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/recipes/tools/holystone_shovel.json b/src/main/resources/assets/aether/recipes/tools/holystone_shovel.json deleted file mode 100644 index a50b38a6e7..0000000000 --- a/src/main/resources/assets/aether/recipes/tools/holystone_shovel.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "type": "forge:ore_shaped", - "pattern": [ - "X", - "#", - "#" - ], - "key": { - "#": { - "item": "aether:skyroot_stick" - }, - "X": { - "type": "forge:ore_dict", - "ore": "holystone" - } - }, - "result": { - "item": "aether:holystone_shovel" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/recipes/tools/skyroot_axe.json b/src/main/resources/assets/aether/recipes/tools/skyroot_axe.json deleted file mode 100644 index 490b53bc35..0000000000 --- a/src/main/resources/assets/aether/recipes/tools/skyroot_axe.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "type": "forge:ore_shaped", - "pattern": [ - "XX", - "X#", - " #" - ], - "key": { - "#": { - "item": "aether:skyroot_stick" - }, - "X": { - "type": "forge:ore_dict", - "ore": "skyrootplanks" - } - }, - "result": { - "item": "aether:skyroot_axe" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/recipes/tools/skyroot_pickaxe.json b/src/main/resources/assets/aether/recipes/tools/skyroot_pickaxe.json deleted file mode 100644 index 6e87c85b52..0000000000 --- a/src/main/resources/assets/aether/recipes/tools/skyroot_pickaxe.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "type": "forge:ore_shaped", - "pattern": [ - "XXX", - " # ", - " # " - ], - "key": { - "#": { - "item": "aether:skyroot_stick" - }, - "X": { - "type": "forge:ore_dict", - "ore": "skyrootplanks" - } - }, - "result": { - "item": "aether:skyroot_pickaxe" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/recipes/tools/skyroot_shovel.json b/src/main/resources/assets/aether/recipes/tools/skyroot_shovel.json deleted file mode 100644 index bc5e66fa4b..0000000000 --- a/src/main/resources/assets/aether/recipes/tools/skyroot_shovel.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "type": "forge:ore_shaped", - "pattern": [ - "X", - "#", - "#" - ], - "key": { - "#": { - "item": "aether:skyroot_stick" - }, - "X": { - "type": "forge:ore_dict", - "ore": "skyrootplanks" - } - }, - "result": { - "item": "aether:skyroot_shovel" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/recipes/tools/zanite_axe.json b/src/main/resources/assets/aether/recipes/tools/zanite_axe.json deleted file mode 100644 index bfa87791c8..0000000000 --- a/src/main/resources/assets/aether/recipes/tools/zanite_axe.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "pattern": [ - "XX", - "X#", - " #" - ], - "key": { - "#": { - "item": "aether:skyroot_stick" - }, - "X": { - "item": "aether:zanite_gemstone" - } - }, - "result": { - "item": "aether:zanite_axe" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/recipes/tools/zanite_pickaxe.json b/src/main/resources/assets/aether/recipes/tools/zanite_pickaxe.json deleted file mode 100644 index 83f4a74f2c..0000000000 --- a/src/main/resources/assets/aether/recipes/tools/zanite_pickaxe.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "pattern": [ - "XXX", - " # ", - " # " - ], - "key": { - "#": { - "item": "aether:skyroot_stick" - }, - "X": { - "item": "aether:zanite_gemstone" - } - }, - "result": { - "item": "aether:zanite_pickaxe" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/recipes/tools/zanite_shovel.json b/src/main/resources/assets/aether/recipes/tools/zanite_shovel.json deleted file mode 100644 index 74c2ade4cd..0000000000 --- a/src/main/resources/assets/aether/recipes/tools/zanite_shovel.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "pattern": [ - "X", - "#", - "#" - ], - "key": { - "#": { - "item": "aether:skyroot_stick" - }, - "X": { - "item": "aether:zanite_gemstone" - } - }, - "result": { - "item": "aether:zanite_shovel" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/recipes/utility/altar.json b/src/main/resources/assets/aether/recipes/utility/altar.json deleted file mode 100644 index f5ea91ba59..0000000000 --- a/src/main/resources/assets/aether/recipes/utility/altar.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "type": "forge:ore_shaped", - "pattern": [ - "XXX", - "XZX", - "XXX" - ], - "key": { - "X": { - "type": "forge:ore_dict", - "ore": "holystone" - }, - "Z": { - "item": "aether:zanite_gemstone" - } - }, - "result": { - "item": "aether:altar" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/recipes/utility/holystone_furnace.json b/src/main/resources/assets/aether/recipes/utility/holystone_furnace.json deleted file mode 100644 index 57ac27a321..0000000000 --- a/src/main/resources/assets/aether/recipes/utility/holystone_furnace.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "type": "forge:ore_shaped", - "pattern": [ - "###", - "# #", - "###" - ], - "key": { - "#": { - "type": "forge:ore_dict", - "ore": "holystone" - } - }, - "result": { - "item": "aether:holystone_furnace", - "count": 1 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/recipes/utility/icestone_cooler.json b/src/main/resources/assets/aether/recipes/utility/icestone_cooler.json deleted file mode 100644 index 570074b1f4..0000000000 --- a/src/main/resources/assets/aether/recipes/utility/icestone_cooler.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "type": "forge:ore_shaped", - "pattern": [ - "AAA", - "HIH", - "SSS" - ], - "key": { - "H": { - "type": "forge:ore_dict", - "ore": "holystone" - }, - "A": { - "item": "aether:arkenium" - }, - "S": { - "type": "forge:ore_dict", - "ore": "skyrootplanks" - }, - "I": { - "item": "aether:icestone" - } - }, - "result": { - "item": "aether:icestone_cooler" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/recipes/utility/incubator.json b/src/main/resources/assets/aether/recipes/utility/incubator.json deleted file mode 100644 index da4c4cf38a..0000000000 --- a/src/main/resources/assets/aether/recipes/utility/incubator.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "type": "forge:ore_shaped", - "pattern": [ - "XXX", - "XYX", - "ZZZ" - ], - "key": { - "Z": { - "type": "forge:ore_dict", - "ore": "skyrootplanks" - }, - "X": { - "type": "forge:ore_dict", - "ore": "holystone" - }, - "Y": { - "item": "aether:ambrosium_chunk" - } - }, - "result": { - "item": "aether:incubator" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/recipes/utility/masonry_bench.json b/src/main/resources/assets/aether/recipes/utility/masonry_bench.json deleted file mode 100644 index 2704dd5283..0000000000 --- a/src/main/resources/assets/aether/recipes/utility/masonry_bench.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "type": "forge:ore_shaped", - "pattern": [ - "AAA", - "SSS", - "HHH" - ], - "key": { - "H": { - "type": "forge:ore_dict", - "ore": "holystone" - }, - "A": { - "item": "aether:arkenium" - }, - "S": { - "type": "forge:ore_dict", - "ore": "skyrootplanks" - } - }, - "result": { - "item": "aether:masonry_bench" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/recipes/utility/skyroot_bed.json b/src/main/resources/assets/aether/recipes/utility/skyroot_bed.json deleted file mode 100644 index b6bdee7584..0000000000 --- a/src/main/resources/assets/aether/recipes/utility/skyroot_bed.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "type": "forge:ore_shaped", - "pattern": [ - "XXX", - "YYY" - ], - "key": { - "X": { - "item": "cloudwool_block" - }, - "Y": { - "type": "forge:ore_dict", - "ore": "skyrootplanks" - } - }, - "result": { - "item": "aether:skyroot_bed_item" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/recipes/utility/skyroot_chest.json b/src/main/resources/assets/aether/recipes/utility/skyroot_chest.json deleted file mode 100644 index 69c27b3946..0000000000 --- a/src/main/resources/assets/aether/recipes/utility/skyroot_chest.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "type": "forge:ore_shaped", - "pattern": [ - "XXX", - "X X", - "XXX" - ], - "key": { - "X": { - "type": "forge:ore_dict", - "ore": "skyrootplanks" - } - }, - "result": { - "item": "aether:skyroot_chest" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/recipes/utility/skyroot_crafting_table.json b/src/main/resources/assets/aether/recipes/utility/skyroot_crafting_table.json deleted file mode 100644 index bfe6bc960f..0000000000 --- a/src/main/resources/assets/aether/recipes/utility/skyroot_crafting_table.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "type": "forge:ore_shaped", - "pattern": [ - "XX", - "XX" - ], - "key": { - "X": { - "type": "forge:ore_dict", - "ore": "skyrootplanks" - } - }, - "result": { - "item": "aether:aether_crafting_table" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/recipes/weapons/arkenium_crossbow.json b/src/main/resources/assets/aether/recipes/weapons/arkenium_crossbow.json deleted file mode 100644 index 990b021cc1..0000000000 --- a/src/main/resources/assets/aether/recipes/weapons/arkenium_crossbow.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "pattern": [ - "PJP", - "DJD", - " S " - ], - "key": { - "J": { - "item": "aether:arkenium" - }, - "D": { - "item": "aether:cloudtwine" - }, - "P": { - "item": "aether:arkenium_strip" - }, - "S": { - "item": "aether:skyroot_stick" - } - }, - "result": { - "item": "aether:arkenium_crossbow", - "count": 1 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/recipes/weapons/arkenium_sword.json b/src/main/resources/assets/aether/recipes/weapons/arkenium_sword.json deleted file mode 100644 index 423214d59f..0000000000 --- a/src/main/resources/assets/aether/recipes/weapons/arkenium_sword.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "pattern": [ - "X", - "X", - "#" - ], - "key": { - "#": { - "item": "aether:skyroot_stick" - }, - "X": { - "item": "aether:arkenium" - } - }, - "result": { - "item": "aether:arkenium_sword" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/recipes/weapons/gravitite_crossbow.json b/src/main/resources/assets/aether/recipes/weapons/gravitite_crossbow.json deleted file mode 100644 index f72167bcf9..0000000000 --- a/src/main/resources/assets/aether/recipes/weapons/gravitite_crossbow.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "pattern": [ - "PJP", - "DJD", - " S " - ], - "key": { - "J": { - "item": "aether:gravitite_plate" - }, - "D": { - "item": "aether:cloudtwine" - }, - "P": { - "item": "aether:arkenium_strip" - }, - "S": { - "item": "aether:skyroot_stick" - } - }, - "result": { - "item": "aether:gravitite_crossbow", - "count": 1 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/recipes/weapons/gravitite_sword.json b/src/main/resources/assets/aether/recipes/weapons/gravitite_sword.json deleted file mode 100644 index 787653fa33..0000000000 --- a/src/main/resources/assets/aether/recipes/weapons/gravitite_sword.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "pattern": [ - "X", - "X", - "#" - ], - "key": { - "#": { - "item": "aether:skyroot_stick" - }, - "X": { - "item": "aether:gravitite_plate" - } - }, - "result": { - "item": "aether:gravitite_sword" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/recipes/weapons/holystone_crossbow.json b/src/main/resources/assets/aether/recipes/weapons/holystone_crossbow.json deleted file mode 100644 index 55b79ff832..0000000000 --- a/src/main/resources/assets/aether/recipes/weapons/holystone_crossbow.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "pattern": [ - "PJP", - "DJD", - " P " - ], - "key": { - "J": { - "type": "forge:ore_dict", - "ore": "holystone" - }, - "D": { - "item": "aether:cloudtwine" - }, - "P": { - "item": "aether:skyroot_stick" - } - }, - "result": { - "item": "aether:holystone_crossbow", - "count": 1 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/recipes/weapons/holystone_sword.json b/src/main/resources/assets/aether/recipes/weapons/holystone_sword.json deleted file mode 100644 index 121af99dfb..0000000000 --- a/src/main/resources/assets/aether/recipes/weapons/holystone_sword.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "pattern": [ - "X", - "X", - "#" - ], - "key": { - "#": { - "item": "aether:skyroot_stick" - }, - "X": { - "type": "forge:ore_dict", - "ore": "holystone" - } - }, - "result": { - "item": "aether:holystone_sword" - } -} diff --git a/src/main/resources/assets/aether/recipes/weapons/scatterglass_bolt.json b/src/main/resources/assets/aether/recipes/weapons/scatterglass_bolt.json deleted file mode 100644 index 01fc07b57e..0000000000 --- a/src/main/resources/assets/aether/recipes/weapons/scatterglass_bolt.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "type": "forge:ore_shaped", - "pattern": [ - " Z", - " X ", - "Y " - ], - "key": { - "X": { - "item": "aether:skyroot_stick" - }, - "Y": { - "item": "aether:crude_scatterglass_shard" - }, - "Z": { - "type": "forge:ore_dict", - "ore": "feather" - } - }, - "result": { - "item": "aether:bolt", - "count": 4 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/recipes/weapons/skyroot_crossbow.json b/src/main/resources/assets/aether/recipes/weapons/skyroot_crossbow.json deleted file mode 100644 index 9661574f75..0000000000 --- a/src/main/resources/assets/aether/recipes/weapons/skyroot_crossbow.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "pattern": [ - "PJP", - "DJD", - " P " - ], - "key": { - "J": { - "item": "aether:skyroot_planks" - }, - "D": { - "item": "aether:cloudtwine" - }, - "P": { - "item": "aether:skyroot_stick" - } - }, - "result": { - "item": "aether:skyroot_crossbow", - "count": 1 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/recipes/weapons/skyroot_sword.json b/src/main/resources/assets/aether/recipes/weapons/skyroot_sword.json deleted file mode 100644 index 0cc7162e15..0000000000 --- a/src/main/resources/assets/aether/recipes/weapons/skyroot_sword.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "type": "forge:ore_shaped", - "pattern": [ - "X", - "X", - "#" - ], - "key": { - "#": { - "item": "aether:skyroot_stick" - }, - "X": { - "type": "forge:ore_dict", - "ore": "skyrootplanks" - } - }, - "result": { - "item": "aether:skyroot_sword" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/recipes/weapons/zanite_crossbow.json b/src/main/resources/assets/aether/recipes/weapons/zanite_crossbow.json deleted file mode 100644 index ad7cf6fb22..0000000000 --- a/src/main/resources/assets/aether/recipes/weapons/zanite_crossbow.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "pattern": [ - "PJP", - "DJD", - " P " - ], - "key": { - "J": { - "item": "aether:zanite_gemstone" - }, - "D": { - "item": "aether:cloudtwine" - }, - "P": { - "item": "aether:skyroot_stick" - } - }, - "result": { - "item": "aether:zanite_crossbow", - "count": 1 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/recipes/weapons/zanite_sword.json b/src/main/resources/assets/aether/recipes/weapons/zanite_sword.json deleted file mode 100644 index d2dd43202a..0000000000 --- a/src/main/resources/assets/aether/recipes/weapons/zanite_sword.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "pattern": [ - "X", - "X", - "#" - ], - "key": { - "#": { - "item": "aether:skyroot_stick" - }, - "X": { - "item": "aether:zanite_gemstone" - } - }, - "result": { - "item": "aether:zanite_sword" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/shop/edison.json b/src/main/resources/assets/aether/shop/edison.json deleted file mode 100644 index 820dae1bd9..0000000000 --- a/src/main/resources/assets/aether/shop/edison.json +++ /dev/null @@ -1,231 +0,0 @@ -{ - "greetings": [ - "edison.shop.greetings1", - "edison.shop.greetings2" - ], - "buy_definitions": [ - { - "stack": { - "item": "aether:enchanted_wyndberry", - "data": "0" - }, - "descriptions": [ - "edison.shop.enchanted_wyndberry" - ], - "min_price": "215", - "max_price": "265", - "min_sell_price": "165", - "max_sell_price": "215", - "min_stock": "10", - "max_stock": "30", - "ticks_until_restock": "1200", - "rarity_weight": "5.0" - }, - { - "stack": { - "item": "aether:enchanted_blueberry", - "data": "0" - }, - "descriptions": [ - "edison.shop.enchanted_blueberry" - ], - "min_price": "132", - "max_price": "182", - "min_sell_price": "102", - "max_sell_price": "132", - "min_stock": "10", - "max_stock": "30", - "ticks_until_restock": "1200", - "rarity_weight": "5.0" - }, - { - "stack": { - "item": "aether:ambrosium_shard", - "data": "0" - }, - "descriptions": [ - "edison.shop.ambrosium_shard" - ], - "min_price": "80", - "max_price": "120", - "min_sell_price": "50", - "max_sell_price": "80", - "min_stock": "5", - "max_stock": "30", - "ticks_until_restock": "1200", - "rarity_weight": "5.0" - }, - { - "stack": { - "item": "aether:skyroot_stick", - "data": "0" - }, - "descriptions": [ - "edison.shop.skyroot_stick" - ], - "min_price": "1", - "max_price": "5", - "min_sell_price": "1", - "max_sell_price": "1", - "min_stock": "30", - "max_stock": "200", - "ticks_until_restock": "1200", - "rarity_weight": "5.0" - }, - { - "stack": { - "item": "aether:skyroot_pickaxe", - "data": "0" - }, - "descriptions": [ - "edison.shop.skyroot_pickaxe" - ], - "min_price": "5", - "max_price": "10", - "min_sell_price": "2", - "max_sell_price": "5", - "min_stock": "1", - "max_stock": "3", - "ticks_until_restock": "1200", - "rarity_weight": "5.0" - }, - { - "stack": { - "item": "aether:skyroot_axe", - "data": "0" - }, - "descriptions": [ - "edison.shop.skyroot_axe" - ], - "min_price": "5", - "max_price": "10", - "min_sell_price": "2", - "max_sell_price": "5", - "min_stock": "1", - "max_stock": "3", - "ticks_until_restock": "1200", - "rarity_weight": "5.0" - }, - { - "stack": { - "item": "aether:skyroot_sword", - "data": "0" - }, - "descriptions": [ - "edison.shop.skyroot_sword" - ], - "min_price": "5", - "max_price": "10", - "min_sell_price": "2", - "max_sell_price": "5", - "min_stock": "1", - "max_stock": "3", - "ticks_until_restock": "1200", - "rarity_weight": "5.0" - }, - { - "stack": { - "item": "aether:skyroot_shovel", - "data": "0" - }, - "descriptions": [ - "edison.shop.skyroot_shovel" - ], - "min_price": "5", - "max_price": "10", - "min_sell_price": "2", - "max_sell_price": "5", - "min_stock": "1", - "max_stock": "3", - "ticks_until_restock": "1200", - "rarity_weight": "5.0" - }, - { - "stack": { - "item": "aether:therawood_leaves", - "data": "0" - }, - "descriptions": [ - "edison.shop.therawood_leaves" - ], - "min_price": "130", - "max_price": "200", - "min_sell_price": "100", - "max_sell_price": "130", - "min_stock": "30", - "max_stock": "100", - "ticks_until_restock": "1200", - "rarity_weight": "5.0" - }, - { - "stack": { - "item": "aether:therawood_log", - "data": "0" - }, - "descriptions": [ - "edison.shop.therawood_log" - ], - "min_price": "130", - "max_price": "200", - "min_sell_price": "100", - "max_sell_price": "130", - "min_stock": "30", - "max_stock": "100", - "ticks_until_restock": "1200", - "rarity_weight": "5.0" - }, - { - "stack": { - "item": "aether:thera_dirt", - "data": "0" - }, - "descriptions": [ - "edison.shop.thera_dirt" - ], - "min_price": "130", - "max_price": "200", - "min_sell_price": "100", - "max_sell_price": "130", - "min_stock": "30", - "max_stock": "100", - "ticks_until_restock": "1200", - "rarity_weight": "5.0" - }, - { - "stack": { - "item": "aether:thera_grass", - "data": "0" - }, - "descriptions": [ - "edison.shop.thera_grass" - ], - "min_price": "130", - "max_price": "200", - "min_sell_price": "100", - "max_sell_price": "130", - "min_stock": "30", - "max_stock": "100", - "ticks_until_restock": "1200", - "rarity_weight": "5.0" - }, - { - "stack": { - "item": "aether:therastone_brick", - "data": "0" - }, - "descriptions": [ - "edison.shop.therastone_brick" - ], - "min_price": "130", - "max_price": "200", - "min_sell_price": "100", - "max_sell_price": "130", - "min_stock": "30", - "max_stock": "100", - "ticks_until_restock": "1200", - "rarity_weight": "5.0" - } - ], - "max_stock": "13", - "min_stock": "8" -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/shop/edison_holiday.json b/src/main/resources/assets/aether/shop/edison_holiday.json deleted file mode 100644 index 6284df4dfc..0000000000 --- a/src/main/resources/assets/aether/shop/edison_holiday.json +++ /dev/null @@ -1,128 +0,0 @@ -{ - "greetings": [ - "edison.shop.greetings_holiday" - ], - "buy_definitions": [ - { - "stack": { - "item": "aether:candy_cane", - "data": "0" - }, - "descriptions": [ - "edison.shop.candy_cane" - ], - "min_price": "80", - "max_price": "100", - "min_sell_price": "60", - "max_sell_price": "80", - "min_stock": "10", - "max_stock": "30", - "ticks_until_restock": "1200", - "rarity_weight": "5.0" - }, - { - "stack": { - "item": "aether:yule_log", - "data": "0" - }, - "descriptions": [ - "edison.shop.yule_log" - ], - "min_price": "100", - "max_price": "150", - "min_sell_price": "80", - "max_sell_price": "100", - "min_stock": "10", - "max_stock": "30", - "ticks_until_restock": "1200", - "rarity_weight": "5.0" - }, - { - "stack": { - "item": "aether:candy_cane_block", - "data": "0" - }, - "descriptions": [ - "edison.shop.candy_cane_block" - ], - "min_price": "320", - "max_price": "400", - "min_sell_price": "220", - "max_sell_price": "320", - "min_stock": "5", - "max_stock": "30", - "ticks_until_restock": "1200", - "rarity_weight": "5.0" - }, - { - "stack": { - "item": "aether:candy_cane_wall", - "data": "0" - }, - "descriptions": [ - "edison.shop.candy_cane_wall" - ], - "min_price": "320", - "max_price": "400", - "min_sell_price": "220", - "max_sell_price": "320", - "min_stock": "30", - "max_stock": "200", - "ticks_until_restock": "1200", - "rarity_weight": "5.0" - }, - { - "stack": { - "item": "aether:unique_sapling", - "data": "1" - }, - "descriptions": [ - "edison.shop.mutant_sapling" - ], - "min_price": "1500", - "max_price": "2000", - "min_sell_price": "1000", - "max_sell_price": "1500", - "min_stock": "1", - "max_stock": "1", - "ticks_until_restock": "1200", - "rarity_weight": "5.0" - }, - { - "stack": { - "item": "aether:winter_hat", - "data": "0" - }, - "descriptions": [ - "edison.shop.winter_hat" - ], - "min_price": "400", - "max_price": "600", - "min_sell_price": "300", - "max_sell_price": "400", - "min_stock": "1", - "max_stock": "4", - "ticks_until_restock": "1200", - "rarity_weight": "5.0" - }, - { - "stack": { - "item": "aether:eggnog", - "data": "0" - }, - "descriptions": [ - "edison.shop.eggnog" - ], - "min_price": "80", - "max_price": "100", - "min_sell_price": "60", - "max_sell_price": "80", - "min_stock": "5", - "max_stock": "15", - "ticks_until_restock": "1200", - "rarity_weight": "5.0" - } - ], - "max_stock": "7", - "min_stock": "7" -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/shop/mysterious_figure.json b/src/main/resources/assets/aether/shop/mysterious_figure.json deleted file mode 100644 index db5404cbcd..0000000000 --- a/src/main/resources/assets/aether/shop/mysterious_figure.json +++ /dev/null @@ -1,146 +0,0 @@ -{ - "greetings": [ - "mysterious_figure.shop.greetings" - ], - "buy_definitions": [ - { - "stack": { - "item": "aether:candy_corn", - "data": "0" - }, - "descriptions": [ - "mysterious_figure.shop.candy_corn" - ], - "min_price": "1", - "max_price": "2", - "min_sell_price": "1", - "max_sell_price": "1", - "min_stock": "10", - "max_stock": "30", - "ticks_until_restock": "1200", - "rarity_weight": "5.0" - }, - { - "stack": { - "item": "aether:cocoatrice", - "data": "0" - }, - "descriptions": [ - "mysterious_figure.shop.cocoatrice" - ], - "min_price": "1", - "max_price": "2", - "min_sell_price": "1", - "max_sell_price": "1", - "min_stock": "10", - "max_stock": "30", - "ticks_until_restock": "1200", - "rarity_weight": "5.0" - }, - { - "stack": { - "item": "aether:wrapped_chocolates", - "data": "0" - }, - "descriptions": [ - "mysterious_figure.shop.wrapped_chocolates" - ], - "min_price": "1", - "max_price": "2", - "min_sell_price": "1", - "max_sell_price": "1", - "min_stock": "10", - "max_stock": "30", - "ticks_until_restock": "1200", - "rarity_weight": "5.0" - }, - { - "stack": { - "item": "aether:jelly_plumproot", - "data": "0" - }, - "descriptions": [ - "mysterious_figure.shop.jelly_plumproot" - ], - "min_price": "1", - "max_price": "2", - "min_sell_price": "1", - "max_sell_price": "1", - "min_stock": "10", - "max_stock": "30", - "ticks_until_restock": "1200", - "rarity_weight": "5.0" - }, - { - "stack": { - "item": "aether:blueberry_lollipop", - "data": "0" - }, - "descriptions": [ - "mysterious_figure.shop.blueberry_lollipop" - ], - "min_price": "1", - "max_price": "2", - "min_sell_price": "1", - "max_sell_price": "1", - "min_stock": "10", - "max_stock": "30", - "ticks_until_restock": "1200", - "rarity_weight": "5.0" - }, - { - "stack": { - "item": "aether:orange_lollipop", - "data": "0" - }, - "descriptions": [ - "mysterious_figure.shop.orange_lollipop" - ], - "min_price": "1", - "max_price": "2", - "min_sell_price": "1", - "max_sell_price": "1", - "min_stock": "10", - "max_stock": "30", - "ticks_until_restock": "1200", - "rarity_weight": "5.0" - }, - { - "stack": { - "item": "aether:icestone_poprocks", - "data": "0" - }, - "descriptions": [ - "mysterious_figure.shop.icestone_poprocks" - ], - "min_price": "1", - "max_price": "2", - "min_sell_price": "1", - "max_sell_price": "1", - "min_stock": "10", - "max_stock": "30", - "ticks_until_restock": "1200", - "rarity_weight": "5.0" - }, - { - "stack": { - "item": "aether:ginger_bread_man", - "data": "0" - }, - "descriptions": [ - "mysterious_figure.shop.ginger_bread_man" - ], - "min_price": "1", - "max_price": "2", - "min_sell_price": "1", - "max_sell_price": "1", - "min_stock": "10", - "max_stock": "30", - "ticks_until_restock": "1200", - "rarity_weight": "5.0" - } - ], - "max_stock": "8", - "min_stock": "4", - "currency_type": "plumproots" -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/sounds.json b/src/main/resources/assets/aether/sounds.json deleted file mode 100644 index feb93418d4..0000000000 --- a/src/main/resources/assets/aether/sounds.json +++ /dev/null @@ -1,434 +0,0 @@ -{ - "portal.glowstone.hum": { - "category": "block", - "sounds": [ - "aether:portal/glowstone/hum" - ], - "subtitle": "subtitles.aether.portal.glowstone.hum" - }, - "portal.glowstone.trigger": { - "category": "block", - "sounds": [ - "aether:portal/glowstone/trigger" - ], - "subtitle": "subtitles.aether.portal.glowstone.trigger" - }, - "portal.glowstone.travel": { - "category": "block", - "sounds": [ - "aether:portal/glowstone/travel" - ], - "subtitle": "subtitles.aether.portal.glowstone.travel" - }, - "portal.labyrinth_totem.drone": { - "category": "neutral", - "sounds": [ - "aether:portal/labyrinth_totem/drone" - ], - "subtitle": "subtitles.aether.portal.labyrinth_totem.drone" - }, - "portal.labyrinth_totem.woosh": { - "category": "neutral", - "sounds": [ - "aether:portal/labyrinth_totem/woosh" - ], - "subtitle": "subtitles.aether.portal.labyrinth_totem.woosh" - }, - "music.intro": { - "category": "music", - "sounds": [ - { - "name": "aether:music/intro", - "stream": true - } - ] - }, - "music.day": { - "category": "music", - "sounds": [ - { - "name": "aether:music/day1", - "stream": true - }, - { - "name": "aether:music/day2", - "stream": true - }, - { - "name": "aether:music/day3", - "stream": true - }, - { - "name": "aether:music/day4", - "stream": true - }, - { - "name": "aether:music/day5", - "stream": true - }, - { - "name": "aether:music/day6", - "stream": true - } - ] - }, - "music.night": { - "category": "music", - "sounds": [ - { - "name": "aether:music/night1", - "stream": true - }, - { - "name": "aether:music/night2", - "stream": true - } - ] - }, - "records.aerwhale": { - "category": "record", - "sounds": [ - { - "name": "aether:record/aerwhale", - "stream": true - } - ] - }, - "records.moa": { - "category": "record", - "sounds": [ - { - "name": "aether:record/approaches", - "stream": true - } - ] - }, - "records.valkyrie": { - "category": "record", - "sounds": [ - { - "name": "aether:record/ascending_dawn", - "stream": true - } - ] - }, - "records.labyrinth": { - "category": "record", - "sounds": [ - { - "name": "aether:record/demise", - "stream": true - } - ] - }, - "records.recording_892": { - "category": "record", - "sounds": [ - { - "name": "aether:record/chase", - "stream": true - } - ] - }, - "random.dart_shooter.fire": { - "category": "neutral", - "sounds": [ - "aether:random/dart_shooter" - ], - "subtitle": "subtitles.aether.random.dart_shooter.fire" - }, - "mob.generic.wings.flap": { - "category": "neutral", - "sounds": [ - "mob/enderdragon/wings1", - "mob/enderdragon/wings2", - "mob/enderdragon/wings3", - "mob/enderdragon/wings4", - "mob/enderdragon/wings5", - "mob/enderdragon/wings6" - ], - "subtitle": "subtitles.aether.mob.generic.wings.flap" - }, - "mob.aerbunny.lift": { - "category": "neutral", - "sounds": [ - "aether:mob/aerbunny/lift" - ], - "subtitle": "subtitles.aether.mob.aerbunny.lift" - }, - "mob.aerbunny.ambient": { - "category": "neutral", - "sounds": [ - "aether:mob/aerbunny/say1", - "aether:mob/aerbunny/say2" - ], - "subtitle": "subtitles.aether.mob.aerbunny.ambient" - }, - "mob.aerbunny.hurt": { - "category": "neutral", - "sounds": [ - "aether:mob/aerbunny/hurt1", - "aether:mob/aerbunny/hurt2" - ], - "subtitle": "subtitles.aether.mob.aerbunny.hurt" - }, - "mob.aerbunny.death": { - "category": "neutral", - "sounds": [ - "aether:mob/aerbunny/death" - ], - "subtitle": "subtitles.aether.mob.aerbunny.death" - }, - "mob.cockatrice.hurt": { - "category": "neutral", - "sounds": [ - "aether:mob/cockatrice/hurt1", - "aether:mob/cockatrice/hurt2" - ], - "subtitle": "subtitles.aether.mob.cockatrice.hurt" - }, - "mob.cockatrice.death": { - "category": "neutral", - "sounds": [ - "aether:mob/cockatrice/hurt1", - "aether:mob/cockatrice/hurt2" - ], - "subtitle": "subtitles.aether.mob.cockatrice.death" - }, - "mob.cockatrice.ambient": { - "category": "neutral", - "sounds": [ - "aether:mob/cockatrice/say1", - "aether:mob/cockatrice/say2" - ], - "subtitle": "subtitles.aether.mob.cockatrice.ambient" - }, - "block.aercloud.bounce": { - "category": "neutral", - "sounds": [ - "aether:block/aercloud/bounce" - ], - "subtitle": "subtitles.aether.block.aercloud.bounce" - }, - "mob.tempest.ambient": { - "category": "neutral", - "sounds": [ - "aether:mob/tempest/say1", - "aether:mob/tempest/say2", - "aether:mob/tempest/say3", - "aether:mob/tempest/say4", - "aether:mob/tempest/say5" - ], - "subtitle": "subtitles.aether.mob.tempest.ambient" - }, - "mob.tempest.death": { - "category": "neutral", - "sounds": [ - "aether:mob/tempest/death1", - "aether:mob/tempest/death2" - ], - "subtitle": "subtitles.aether.mob.tempest.death" - }, - "mob.tempest.hurt": { - "category": "neutral", - "sounds": [ - "aether:mob/tempest/hurt1" - ], - "subtitle": "subtitles.aether.mob.tempest.hurt" - }, - "mob.zephyr.ambient": { - "category": "neutral", - "sounds": [ - "aether:mob/zephyr/say1", - "aether:mob/zephyr/say2" - ], - "subtitle": "subtitles.aether.mob.zephyr.ambient" - }, - "mob.aerwhale.ambient": { - "category": "neutral", - "sounds": [ - "aether:mob/aerwhale/say1", - "aether:mob/aerwhale/say2", - "aether:mob/aerwhale/say3", - "aether:mob/aerwhale/say4", - "aether:mob/aerwhale/say5" - ], - "subtitle": "subtitles.aether.mob.aerwhale.ambient" - }, - "mob.aerwhale.death": { - "category": "neutral", - "sounds": [ - "aether:mob/aerwhale/death" - ], - "subtitle": "subtitles.aether.mob.aerwhale.death" - }, - "mob.tempest.electric_shock": { - "category": "neutral", - "sounds": [ - "aether:mob/tempest/electric_shock" - ], - "subtitle": "subtitles.aether.mob.tempest.electric_shock" - }, - "mob.tempest.angry": { - "category": "neutral", - "sounds": [ - "aether:mob/tempest/angry" - ], - "subtitle": "subtitles.aether.mob.tempest.angry" - }, - "mob.zephyr.puff": { - "category": "neutral", - "sounds": [ - "aether:mob/zephyr/puff" - ], - "subtitle": "subtitles.aether.mob.zephyr.puff" - }, - "mob.moa.ambient": { - "category": "neutral", - "sounds": [ - "aether:mob/moa/say1", - "aether:mob/moa/say2" - ], - "subtitle": "subtitles.aether.mob.moa.ambient" - }, - "mob.moa.hurt": { - "category": "neutral", - "sounds": [ - "aether:mob/moa/hurt1" - ], - "subtitle": "subtitles.aether.mob.moa.hurt" - }, - "mob.kirrid.ambient": { - "category": "neutral", - "sounds": [ - "mob/sheep/say1", - "mob/sheep/say2", - "mob/sheep/say3" - ], - "subtitle": "subtitles.aether.mob.kirrid.ambient" - }, - "mob.kirrid.hurt": { - "category": "neutral", - "sounds": [ - "mob/sheep/say1", - "mob/sheep/say2", - "mob/sheep/say3" - ], - "subtitle": "subtitles.aether.mob.kirrid.hurt" - }, - "mob.kirrid.death": { - "category": "neutral", - "sounds": [ - "mob/sheep/say1", - "mob/sheep/say2", - "mob/sheep/say3" - ], - "subtitle": "subtitles.aether.mob.kirrid.death" - }, - "mob.taegore.ambient": { - "category": "neutral", - "sounds": [ - "aether:mob/taegore/say1", - "aether:mob/taegore/say2", - "aether:mob/taegore/say3", - "aether:mob/taegore/say4" - ], - "subtitle": "subtitles.aether.mob.taegore.ambient" - }, - "mob.taegore.hurt": { - "category": "neutral", - "sounds": [ - "aether:mob/taegore/hurt1", - "aether:mob/taegore/hurt2", - "aether:mob/taegore/hurt3" - ], - "subtitle": "subtitles.aether.mob.taegore.hurt" - }, - "mob.taegore.death": { - "category": "neutral", - "sounds": [ - "aether:mob/taegore/death" - ], - "subtitle": "subtitles.aether.mob.taegore.death" - }, - "mob.taegore.attack": { - "category": "neutral", - "sounds": [ - "aether:mob/taegore/death" - ], - "subtitle": "subtitles.aether.mob.taegore.attack" - }, - "mob.burrukai.ambient": { - "category": "neutral", - "sounds": [ - "aether:mob/burrukai/say1", - "aether:mob/burrukai/say2", - "aether:mob/burrukai/say3" - ], - "subtitle": "subtitles.aether.mob.burrukai.ambient" - }, - "mob.burrukai.hurt": { - "category": "neutral", - "sounds": [ - "aether:mob/burrukai/hurt1", - "aether:mob/burrukai/hurt2" - ], - "subtitle": "subtitles.aether.mob.burrukai.hurt" - }, - "mob.burrukai.death": { - "category": "neutral", - "sounds": [ - "aether:mob/burrukai/death1" - ], - "subtitle": "subtitles.aether.mob.burrukai.death" - }, - "mob.burrukai.attack": { - "category": "neutral", - "sounds": [ - "aether:mob/burrukai/hurt1", - "aether:mob/burrukai/hurt2" - ], - "subtitle": "subtitles.aether.mob.burrukai.attack" - }, - "random.present_unwrap": { - "category": "neutral", - "sounds": [ - "aether:random/present_unwrap" - ], - "subtitle": "subtitles.aether.random.present_unwrap" - }, - "random.dungeon.container.smash": { - "category": "neutral", - "sounds": [ - "aether:random/container_break" - ], - "subtitle": "subtitles.aether.random.dungeon.container.smash" - }, - "environment.rain.light": { - "category": "neutral", - "sounds": [ - "aether:environment/rain1", - "aether:environment/rain2", - "aether:environment/rain3" - ], - "subtitle": "subtitles.aether.environment.rain.light" - }, - "environment.rain.heavy": { - "category": "neutral", - "sounds": [ - "aether:environment/rain_heavy1", - "aether:environment/rain_heavy2", - "aether:environment/rain_heavy3" - ], - "subtitle": "subtitles.aether.environment.rain.heavy" - }, - "environment.snow.wind": { - "category": "neutral", - "sounds": [ - "aether:environment/wind1", - "aether:environment/wind2", - "aether:environment/wind3" - ], - "subtitle": "subtitles.aether.environment.snow.wind" - } -} diff --git a/src/main/resources/assets/aether/sounds/block/aercloud/bounce.ogg b/src/main/resources/assets/aether/sounds/block/aercloud/bounce.ogg deleted file mode 100644 index fe5c5294fe..0000000000 Binary files a/src/main/resources/assets/aether/sounds/block/aercloud/bounce.ogg and /dev/null differ diff --git a/src/main/resources/assets/aether/sounds/environment/rain1.ogg b/src/main/resources/assets/aether/sounds/environment/rain1.ogg deleted file mode 100644 index 05554ffe13..0000000000 Binary files a/src/main/resources/assets/aether/sounds/environment/rain1.ogg and /dev/null differ diff --git a/src/main/resources/assets/aether/sounds/environment/rain2.ogg b/src/main/resources/assets/aether/sounds/environment/rain2.ogg deleted file mode 100644 index 3bcbda3c41..0000000000 Binary files a/src/main/resources/assets/aether/sounds/environment/rain2.ogg and /dev/null differ diff --git a/src/main/resources/assets/aether/sounds/environment/rain3.ogg b/src/main/resources/assets/aether/sounds/environment/rain3.ogg deleted file mode 100644 index da610b2dbb..0000000000 Binary files a/src/main/resources/assets/aether/sounds/environment/rain3.ogg and /dev/null differ diff --git a/src/main/resources/assets/aether/sounds/environment/rain_heavy1.ogg b/src/main/resources/assets/aether/sounds/environment/rain_heavy1.ogg deleted file mode 100644 index e9d9e717d4..0000000000 Binary files a/src/main/resources/assets/aether/sounds/environment/rain_heavy1.ogg and /dev/null differ diff --git a/src/main/resources/assets/aether/sounds/environment/rain_heavy2.ogg b/src/main/resources/assets/aether/sounds/environment/rain_heavy2.ogg deleted file mode 100644 index c4b487f733..0000000000 Binary files a/src/main/resources/assets/aether/sounds/environment/rain_heavy2.ogg and /dev/null differ diff --git a/src/main/resources/assets/aether/sounds/environment/rain_heavy3.ogg b/src/main/resources/assets/aether/sounds/environment/rain_heavy3.ogg deleted file mode 100644 index b9666cee7c..0000000000 Binary files a/src/main/resources/assets/aether/sounds/environment/rain_heavy3.ogg and /dev/null differ diff --git a/src/main/resources/assets/aether/sounds/environment/wind1.ogg b/src/main/resources/assets/aether/sounds/environment/wind1.ogg deleted file mode 100644 index fece9f0be4..0000000000 Binary files a/src/main/resources/assets/aether/sounds/environment/wind1.ogg and /dev/null differ diff --git a/src/main/resources/assets/aether/sounds/environment/wind2.ogg b/src/main/resources/assets/aether/sounds/environment/wind2.ogg deleted file mode 100644 index 52e60c3900..0000000000 Binary files a/src/main/resources/assets/aether/sounds/environment/wind2.ogg and /dev/null differ diff --git a/src/main/resources/assets/aether/sounds/environment/wind3.ogg b/src/main/resources/assets/aether/sounds/environment/wind3.ogg deleted file mode 100644 index 501a0672c6..0000000000 Binary files a/src/main/resources/assets/aether/sounds/environment/wind3.ogg and /dev/null differ diff --git a/src/main/resources/assets/aether/sounds/mob/aerbunny/death.ogg b/src/main/resources/assets/aether/sounds/mob/aerbunny/death.ogg deleted file mode 100644 index 99819e0021..0000000000 Binary files a/src/main/resources/assets/aether/sounds/mob/aerbunny/death.ogg and /dev/null differ diff --git a/src/main/resources/assets/aether/sounds/mob/aerbunny/hop1.ogg b/src/main/resources/assets/aether/sounds/mob/aerbunny/hop1.ogg deleted file mode 100644 index 893a8180a0..0000000000 Binary files a/src/main/resources/assets/aether/sounds/mob/aerbunny/hop1.ogg and /dev/null differ diff --git a/src/main/resources/assets/aether/sounds/mob/aerbunny/hop2.ogg b/src/main/resources/assets/aether/sounds/mob/aerbunny/hop2.ogg deleted file mode 100644 index 41289734d1..0000000000 Binary files a/src/main/resources/assets/aether/sounds/mob/aerbunny/hop2.ogg and /dev/null differ diff --git a/src/main/resources/assets/aether/sounds/mob/aerbunny/hop3.ogg b/src/main/resources/assets/aether/sounds/mob/aerbunny/hop3.ogg deleted file mode 100644 index cb8402a473..0000000000 Binary files a/src/main/resources/assets/aether/sounds/mob/aerbunny/hop3.ogg and /dev/null differ diff --git a/src/main/resources/assets/aether/sounds/mob/aerbunny/hurt1.ogg b/src/main/resources/assets/aether/sounds/mob/aerbunny/hurt1.ogg deleted file mode 100644 index ba7130bae7..0000000000 Binary files a/src/main/resources/assets/aether/sounds/mob/aerbunny/hurt1.ogg and /dev/null differ diff --git a/src/main/resources/assets/aether/sounds/mob/aerbunny/hurt2.ogg b/src/main/resources/assets/aether/sounds/mob/aerbunny/hurt2.ogg deleted file mode 100644 index 7411f1278f..0000000000 Binary files a/src/main/resources/assets/aether/sounds/mob/aerbunny/hurt2.ogg and /dev/null differ diff --git a/src/main/resources/assets/aether/sounds/mob/aerbunny/land.ogg b/src/main/resources/assets/aether/sounds/mob/aerbunny/land.ogg deleted file mode 100644 index 27a2183381..0000000000 Binary files a/src/main/resources/assets/aether/sounds/mob/aerbunny/land.ogg and /dev/null differ diff --git a/src/main/resources/assets/aether/sounds/mob/aerbunny/lift.ogg b/src/main/resources/assets/aether/sounds/mob/aerbunny/lift.ogg deleted file mode 100644 index 910cdaa23d..0000000000 Binary files a/src/main/resources/assets/aether/sounds/mob/aerbunny/lift.ogg and /dev/null differ diff --git a/src/main/resources/assets/aether/sounds/mob/aerbunny/say1.ogg b/src/main/resources/assets/aether/sounds/mob/aerbunny/say1.ogg deleted file mode 100644 index 1ef397c029..0000000000 Binary files a/src/main/resources/assets/aether/sounds/mob/aerbunny/say1.ogg and /dev/null differ diff --git a/src/main/resources/assets/aether/sounds/mob/aerbunny/say2.ogg b/src/main/resources/assets/aether/sounds/mob/aerbunny/say2.ogg deleted file mode 100644 index fba8acdde0..0000000000 Binary files a/src/main/resources/assets/aether/sounds/mob/aerbunny/say2.ogg and /dev/null differ diff --git a/src/main/resources/assets/aether/sounds/mob/aerwhale/death.ogg b/src/main/resources/assets/aether/sounds/mob/aerwhale/death.ogg deleted file mode 100644 index f53144aa7f..0000000000 Binary files a/src/main/resources/assets/aether/sounds/mob/aerwhale/death.ogg and /dev/null differ diff --git a/src/main/resources/assets/aether/sounds/mob/aerwhale/say1.ogg b/src/main/resources/assets/aether/sounds/mob/aerwhale/say1.ogg deleted file mode 100644 index 0cb5af633d..0000000000 Binary files a/src/main/resources/assets/aether/sounds/mob/aerwhale/say1.ogg and /dev/null differ diff --git a/src/main/resources/assets/aether/sounds/mob/aerwhale/say2.ogg b/src/main/resources/assets/aether/sounds/mob/aerwhale/say2.ogg deleted file mode 100644 index affc975614..0000000000 Binary files a/src/main/resources/assets/aether/sounds/mob/aerwhale/say2.ogg and /dev/null differ diff --git a/src/main/resources/assets/aether/sounds/mob/aerwhale/say3.ogg b/src/main/resources/assets/aether/sounds/mob/aerwhale/say3.ogg deleted file mode 100644 index c4260a7d8b..0000000000 Binary files a/src/main/resources/assets/aether/sounds/mob/aerwhale/say3.ogg and /dev/null differ diff --git a/src/main/resources/assets/aether/sounds/mob/aerwhale/say4.ogg b/src/main/resources/assets/aether/sounds/mob/aerwhale/say4.ogg deleted file mode 100644 index 3750638386..0000000000 Binary files a/src/main/resources/assets/aether/sounds/mob/aerwhale/say4.ogg and /dev/null differ diff --git a/src/main/resources/assets/aether/sounds/mob/aerwhale/say5.ogg b/src/main/resources/assets/aether/sounds/mob/aerwhale/say5.ogg deleted file mode 100644 index 24b110a031..0000000000 Binary files a/src/main/resources/assets/aether/sounds/mob/aerwhale/say5.ogg and /dev/null differ diff --git a/src/main/resources/assets/aether/sounds/mob/burrukai/death1.ogg b/src/main/resources/assets/aether/sounds/mob/burrukai/death1.ogg deleted file mode 100644 index ed08ef0e74..0000000000 Binary files a/src/main/resources/assets/aether/sounds/mob/burrukai/death1.ogg and /dev/null differ diff --git a/src/main/resources/assets/aether/sounds/mob/burrukai/hurt1.ogg b/src/main/resources/assets/aether/sounds/mob/burrukai/hurt1.ogg deleted file mode 100644 index ff25498895..0000000000 Binary files a/src/main/resources/assets/aether/sounds/mob/burrukai/hurt1.ogg and /dev/null differ diff --git a/src/main/resources/assets/aether/sounds/mob/burrukai/hurt2.ogg b/src/main/resources/assets/aether/sounds/mob/burrukai/hurt2.ogg deleted file mode 100644 index a19c2a5b97..0000000000 Binary files a/src/main/resources/assets/aether/sounds/mob/burrukai/hurt2.ogg and /dev/null differ diff --git a/src/main/resources/assets/aether/sounds/mob/burrukai/say1.ogg b/src/main/resources/assets/aether/sounds/mob/burrukai/say1.ogg deleted file mode 100644 index ea9fab07b5..0000000000 Binary files a/src/main/resources/assets/aether/sounds/mob/burrukai/say1.ogg and /dev/null differ diff --git a/src/main/resources/assets/aether/sounds/mob/burrukai/say2.ogg b/src/main/resources/assets/aether/sounds/mob/burrukai/say2.ogg deleted file mode 100644 index 97ce2b7c34..0000000000 Binary files a/src/main/resources/assets/aether/sounds/mob/burrukai/say2.ogg and /dev/null differ diff --git a/src/main/resources/assets/aether/sounds/mob/burrukai/say3.ogg b/src/main/resources/assets/aether/sounds/mob/burrukai/say3.ogg deleted file mode 100644 index b10c412d3f..0000000000 Binary files a/src/main/resources/assets/aether/sounds/mob/burrukai/say3.ogg and /dev/null differ diff --git a/src/main/resources/assets/aether/sounds/mob/cockatrice/hurt1.ogg b/src/main/resources/assets/aether/sounds/mob/cockatrice/hurt1.ogg deleted file mode 100644 index cceb7f339e..0000000000 Binary files a/src/main/resources/assets/aether/sounds/mob/cockatrice/hurt1.ogg and /dev/null differ diff --git a/src/main/resources/assets/aether/sounds/mob/cockatrice/hurt2.ogg b/src/main/resources/assets/aether/sounds/mob/cockatrice/hurt2.ogg deleted file mode 100644 index 28bc45735d..0000000000 Binary files a/src/main/resources/assets/aether/sounds/mob/cockatrice/hurt2.ogg and /dev/null differ diff --git a/src/main/resources/assets/aether/sounds/mob/cockatrice/say1.ogg b/src/main/resources/assets/aether/sounds/mob/cockatrice/say1.ogg deleted file mode 100644 index 6a74c3384d..0000000000 Binary files a/src/main/resources/assets/aether/sounds/mob/cockatrice/say1.ogg and /dev/null differ diff --git a/src/main/resources/assets/aether/sounds/mob/cockatrice/say2.ogg b/src/main/resources/assets/aether/sounds/mob/cockatrice/say2.ogg deleted file mode 100644 index 90463bb35d..0000000000 Binary files a/src/main/resources/assets/aether/sounds/mob/cockatrice/say2.ogg and /dev/null differ diff --git a/src/main/resources/assets/aether/sounds/mob/moa/hurt1.ogg b/src/main/resources/assets/aether/sounds/mob/moa/hurt1.ogg deleted file mode 100644 index 391afe366e..0000000000 Binary files a/src/main/resources/assets/aether/sounds/mob/moa/hurt1.ogg and /dev/null differ diff --git a/src/main/resources/assets/aether/sounds/mob/moa/say1.ogg b/src/main/resources/assets/aether/sounds/mob/moa/say1.ogg deleted file mode 100644 index fd4b78620d..0000000000 Binary files a/src/main/resources/assets/aether/sounds/mob/moa/say1.ogg and /dev/null differ diff --git a/src/main/resources/assets/aether/sounds/mob/moa/say2.ogg b/src/main/resources/assets/aether/sounds/mob/moa/say2.ogg deleted file mode 100644 index 27b7b6f481..0000000000 Binary files a/src/main/resources/assets/aether/sounds/mob/moa/say2.ogg and /dev/null differ diff --git a/src/main/resources/assets/aether/sounds/mob/taegore/angry1.ogg b/src/main/resources/assets/aether/sounds/mob/taegore/angry1.ogg deleted file mode 100644 index 33797348b2..0000000000 Binary files a/src/main/resources/assets/aether/sounds/mob/taegore/angry1.ogg and /dev/null differ diff --git a/src/main/resources/assets/aether/sounds/mob/taegore/angry2.ogg b/src/main/resources/assets/aether/sounds/mob/taegore/angry2.ogg deleted file mode 100644 index d806b8db77..0000000000 Binary files a/src/main/resources/assets/aether/sounds/mob/taegore/angry2.ogg and /dev/null differ diff --git a/src/main/resources/assets/aether/sounds/mob/taegore/angry3.ogg b/src/main/resources/assets/aether/sounds/mob/taegore/angry3.ogg deleted file mode 100644 index b49b05c177..0000000000 Binary files a/src/main/resources/assets/aether/sounds/mob/taegore/angry3.ogg and /dev/null differ diff --git a/src/main/resources/assets/aether/sounds/mob/taegore/death.ogg b/src/main/resources/assets/aether/sounds/mob/taegore/death.ogg deleted file mode 100644 index ade650c01a..0000000000 Binary files a/src/main/resources/assets/aether/sounds/mob/taegore/death.ogg and /dev/null differ diff --git a/src/main/resources/assets/aether/sounds/mob/taegore/hurt1.ogg b/src/main/resources/assets/aether/sounds/mob/taegore/hurt1.ogg deleted file mode 100644 index d7738a19aa..0000000000 Binary files a/src/main/resources/assets/aether/sounds/mob/taegore/hurt1.ogg and /dev/null differ diff --git a/src/main/resources/assets/aether/sounds/mob/taegore/hurt2.ogg b/src/main/resources/assets/aether/sounds/mob/taegore/hurt2.ogg deleted file mode 100644 index 1461708df6..0000000000 Binary files a/src/main/resources/assets/aether/sounds/mob/taegore/hurt2.ogg and /dev/null differ diff --git a/src/main/resources/assets/aether/sounds/mob/taegore/hurt3.ogg b/src/main/resources/assets/aether/sounds/mob/taegore/hurt3.ogg deleted file mode 100644 index 4635196599..0000000000 Binary files a/src/main/resources/assets/aether/sounds/mob/taegore/hurt3.ogg and /dev/null differ diff --git a/src/main/resources/assets/aether/sounds/mob/taegore/say1.ogg b/src/main/resources/assets/aether/sounds/mob/taegore/say1.ogg deleted file mode 100644 index ed7e6b90ad..0000000000 Binary files a/src/main/resources/assets/aether/sounds/mob/taegore/say1.ogg and /dev/null differ diff --git a/src/main/resources/assets/aether/sounds/mob/taegore/say2.ogg b/src/main/resources/assets/aether/sounds/mob/taegore/say2.ogg deleted file mode 100644 index 39f7345789..0000000000 Binary files a/src/main/resources/assets/aether/sounds/mob/taegore/say2.ogg and /dev/null differ diff --git a/src/main/resources/assets/aether/sounds/mob/taegore/say3.ogg b/src/main/resources/assets/aether/sounds/mob/taegore/say3.ogg deleted file mode 100644 index 0639ac5a71..0000000000 Binary files a/src/main/resources/assets/aether/sounds/mob/taegore/say3.ogg and /dev/null differ diff --git a/src/main/resources/assets/aether/sounds/mob/taegore/say4.ogg b/src/main/resources/assets/aether/sounds/mob/taegore/say4.ogg deleted file mode 100644 index ab76845638..0000000000 Binary files a/src/main/resources/assets/aether/sounds/mob/taegore/say4.ogg and /dev/null differ diff --git a/src/main/resources/assets/aether/sounds/mob/tempest/angry.ogg b/src/main/resources/assets/aether/sounds/mob/tempest/angry.ogg deleted file mode 100644 index 9cfdcb737c..0000000000 Binary files a/src/main/resources/assets/aether/sounds/mob/tempest/angry.ogg and /dev/null differ diff --git a/src/main/resources/assets/aether/sounds/mob/tempest/death1.ogg b/src/main/resources/assets/aether/sounds/mob/tempest/death1.ogg deleted file mode 100644 index 2e3e2855f4..0000000000 Binary files a/src/main/resources/assets/aether/sounds/mob/tempest/death1.ogg and /dev/null differ diff --git a/src/main/resources/assets/aether/sounds/mob/tempest/death2.ogg b/src/main/resources/assets/aether/sounds/mob/tempest/death2.ogg deleted file mode 100644 index 21a0e79f02..0000000000 Binary files a/src/main/resources/assets/aether/sounds/mob/tempest/death2.ogg and /dev/null differ diff --git a/src/main/resources/assets/aether/sounds/mob/tempest/electric_shock.ogg b/src/main/resources/assets/aether/sounds/mob/tempest/electric_shock.ogg deleted file mode 100644 index 93554885c3..0000000000 Binary files a/src/main/resources/assets/aether/sounds/mob/tempest/electric_shock.ogg and /dev/null differ diff --git a/src/main/resources/assets/aether/sounds/mob/tempest/hurt1.ogg b/src/main/resources/assets/aether/sounds/mob/tempest/hurt1.ogg deleted file mode 100644 index 35be872a7e..0000000000 Binary files a/src/main/resources/assets/aether/sounds/mob/tempest/hurt1.ogg and /dev/null differ diff --git a/src/main/resources/assets/aether/sounds/mob/tempest/say1.ogg b/src/main/resources/assets/aether/sounds/mob/tempest/say1.ogg deleted file mode 100644 index c5f2140812..0000000000 Binary files a/src/main/resources/assets/aether/sounds/mob/tempest/say1.ogg and /dev/null differ diff --git a/src/main/resources/assets/aether/sounds/mob/tempest/say2.ogg b/src/main/resources/assets/aether/sounds/mob/tempest/say2.ogg deleted file mode 100644 index ddcdb13a3a..0000000000 Binary files a/src/main/resources/assets/aether/sounds/mob/tempest/say2.ogg and /dev/null differ diff --git a/src/main/resources/assets/aether/sounds/mob/tempest/say3.ogg b/src/main/resources/assets/aether/sounds/mob/tempest/say3.ogg deleted file mode 100644 index eaf55315a5..0000000000 Binary files a/src/main/resources/assets/aether/sounds/mob/tempest/say3.ogg and /dev/null differ diff --git a/src/main/resources/assets/aether/sounds/mob/tempest/say4.ogg b/src/main/resources/assets/aether/sounds/mob/tempest/say4.ogg deleted file mode 100644 index bb2f66d8b2..0000000000 Binary files a/src/main/resources/assets/aether/sounds/mob/tempest/say4.ogg and /dev/null differ diff --git a/src/main/resources/assets/aether/sounds/mob/tempest/say5.ogg b/src/main/resources/assets/aether/sounds/mob/tempest/say5.ogg deleted file mode 100644 index c4515338b2..0000000000 Binary files a/src/main/resources/assets/aether/sounds/mob/tempest/say5.ogg and /dev/null differ diff --git a/src/main/resources/assets/aether/sounds/mob/zephyr/blow.ogg b/src/main/resources/assets/aether/sounds/mob/zephyr/blow.ogg deleted file mode 100644 index b219d42d2e..0000000000 Binary files a/src/main/resources/assets/aether/sounds/mob/zephyr/blow.ogg and /dev/null differ diff --git a/src/main/resources/assets/aether/sounds/mob/zephyr/puff.ogg b/src/main/resources/assets/aether/sounds/mob/zephyr/puff.ogg deleted file mode 100644 index ff25f5f35a..0000000000 Binary files a/src/main/resources/assets/aether/sounds/mob/zephyr/puff.ogg and /dev/null differ diff --git a/src/main/resources/assets/aether/sounds/mob/zephyr/say1.ogg b/src/main/resources/assets/aether/sounds/mob/zephyr/say1.ogg deleted file mode 100644 index 740a42ca50..0000000000 Binary files a/src/main/resources/assets/aether/sounds/mob/zephyr/say1.ogg and /dev/null differ diff --git a/src/main/resources/assets/aether/sounds/mob/zephyr/say2.ogg b/src/main/resources/assets/aether/sounds/mob/zephyr/say2.ogg deleted file mode 100644 index 54c9860655..0000000000 Binary files a/src/main/resources/assets/aether/sounds/mob/zephyr/say2.ogg and /dev/null differ diff --git a/src/main/resources/assets/aether/sounds/mob/zephyr/shoot.ogg b/src/main/resources/assets/aether/sounds/mob/zephyr/shoot.ogg deleted file mode 100644 index e4710fbf5a..0000000000 Binary files a/src/main/resources/assets/aether/sounds/mob/zephyr/shoot.ogg and /dev/null differ diff --git a/src/main/resources/assets/aether/sounds/music/day1.ogg b/src/main/resources/assets/aether/sounds/music/day1.ogg deleted file mode 100644 index c4a64b3264..0000000000 Binary files a/src/main/resources/assets/aether/sounds/music/day1.ogg and /dev/null differ diff --git a/src/main/resources/assets/aether/sounds/music/day2.ogg b/src/main/resources/assets/aether/sounds/music/day2.ogg deleted file mode 100644 index b87fa18de1..0000000000 Binary files a/src/main/resources/assets/aether/sounds/music/day2.ogg and /dev/null differ diff --git a/src/main/resources/assets/aether/sounds/music/day3.ogg b/src/main/resources/assets/aether/sounds/music/day3.ogg deleted file mode 100644 index aae52ea7ec..0000000000 Binary files a/src/main/resources/assets/aether/sounds/music/day3.ogg and /dev/null differ diff --git a/src/main/resources/assets/aether/sounds/music/day4.ogg b/src/main/resources/assets/aether/sounds/music/day4.ogg deleted file mode 100644 index 42f350000f..0000000000 Binary files a/src/main/resources/assets/aether/sounds/music/day4.ogg and /dev/null differ diff --git a/src/main/resources/assets/aether/sounds/music/day5.ogg b/src/main/resources/assets/aether/sounds/music/day5.ogg deleted file mode 100644 index 76698abd05..0000000000 Binary files a/src/main/resources/assets/aether/sounds/music/day5.ogg and /dev/null differ diff --git a/src/main/resources/assets/aether/sounds/music/day6.ogg b/src/main/resources/assets/aether/sounds/music/day6.ogg deleted file mode 100644 index 212ecfb643..0000000000 Binary files a/src/main/resources/assets/aether/sounds/music/day6.ogg and /dev/null differ diff --git a/src/main/resources/assets/aether/sounds/music/intro.ogg b/src/main/resources/assets/aether/sounds/music/intro.ogg deleted file mode 100644 index ecd43ce1a8..0000000000 Binary files a/src/main/resources/assets/aether/sounds/music/intro.ogg and /dev/null differ diff --git a/src/main/resources/assets/aether/sounds/music/night1.ogg b/src/main/resources/assets/aether/sounds/music/night1.ogg deleted file mode 100644 index 3eae11e4b2..0000000000 Binary files a/src/main/resources/assets/aether/sounds/music/night1.ogg and /dev/null differ diff --git a/src/main/resources/assets/aether/sounds/music/night2.ogg b/src/main/resources/assets/aether/sounds/music/night2.ogg deleted file mode 100644 index fde58a2547..0000000000 Binary files a/src/main/resources/assets/aether/sounds/music/night2.ogg and /dev/null differ diff --git a/src/main/resources/assets/aether/sounds/portal/glowstone/hum.ogg b/src/main/resources/assets/aether/sounds/portal/glowstone/hum.ogg deleted file mode 100644 index 84e3557700..0000000000 Binary files a/src/main/resources/assets/aether/sounds/portal/glowstone/hum.ogg and /dev/null differ diff --git a/src/main/resources/assets/aether/sounds/portal/glowstone/travel.ogg b/src/main/resources/assets/aether/sounds/portal/glowstone/travel.ogg deleted file mode 100644 index 913da065f7..0000000000 Binary files a/src/main/resources/assets/aether/sounds/portal/glowstone/travel.ogg and /dev/null differ diff --git a/src/main/resources/assets/aether/sounds/portal/glowstone/trigger.ogg b/src/main/resources/assets/aether/sounds/portal/glowstone/trigger.ogg deleted file mode 100644 index 859085bc17..0000000000 Binary files a/src/main/resources/assets/aether/sounds/portal/glowstone/trigger.ogg and /dev/null differ diff --git a/src/main/resources/assets/aether/sounds/portal/labyrinth_totem/drone.ogg b/src/main/resources/assets/aether/sounds/portal/labyrinth_totem/drone.ogg deleted file mode 100644 index 4269a1eca0..0000000000 Binary files a/src/main/resources/assets/aether/sounds/portal/labyrinth_totem/drone.ogg and /dev/null differ diff --git a/src/main/resources/assets/aether/sounds/portal/labyrinth_totem/woosh.ogg b/src/main/resources/assets/aether/sounds/portal/labyrinth_totem/woosh.ogg deleted file mode 100644 index 8476c2054a..0000000000 Binary files a/src/main/resources/assets/aether/sounds/portal/labyrinth_totem/woosh.ogg and /dev/null differ diff --git a/src/main/resources/assets/aether/sounds/random/container_break.ogg b/src/main/resources/assets/aether/sounds/random/container_break.ogg deleted file mode 100644 index 38963432f8..0000000000 Binary files a/src/main/resources/assets/aether/sounds/random/container_break.ogg and /dev/null differ diff --git a/src/main/resources/assets/aether/sounds/random/dart_shooter.ogg b/src/main/resources/assets/aether/sounds/random/dart_shooter.ogg deleted file mode 100644 index ed3cc76f41..0000000000 Binary files a/src/main/resources/assets/aether/sounds/random/dart_shooter.ogg and /dev/null differ diff --git a/src/main/resources/assets/aether/sounds/random/present_unwrap.ogg b/src/main/resources/assets/aether/sounds/random/present_unwrap.ogg deleted file mode 100644 index 1ce029b9ae..0000000000 Binary files a/src/main/resources/assets/aether/sounds/random/present_unwrap.ogg and /dev/null differ diff --git a/src/main/resources/assets/aether/sounds/record/aerwhale.ogg b/src/main/resources/assets/aether/sounds/record/aerwhale.ogg deleted file mode 100644 index e865c9f168..0000000000 Binary files a/src/main/resources/assets/aether/sounds/record/aerwhale.ogg and /dev/null differ diff --git a/src/main/resources/assets/aether/sounds/record/approaches.ogg b/src/main/resources/assets/aether/sounds/record/approaches.ogg deleted file mode 100644 index d4f422d52d..0000000000 Binary files a/src/main/resources/assets/aether/sounds/record/approaches.ogg and /dev/null differ diff --git a/src/main/resources/assets/aether/sounds/record/ascending_dawn.ogg b/src/main/resources/assets/aether/sounds/record/ascending_dawn.ogg deleted file mode 100644 index df2764041b..0000000000 Binary files a/src/main/resources/assets/aether/sounds/record/ascending_dawn.ogg and /dev/null differ diff --git a/src/main/resources/assets/aether/sounds/record/chase.ogg b/src/main/resources/assets/aether/sounds/record/chase.ogg deleted file mode 100644 index 8faf352f66..0000000000 Binary files a/src/main/resources/assets/aether/sounds/record/chase.ogg and /dev/null differ diff --git a/src/main/resources/assets/aether/sounds/record/demise.ogg b/src/main/resources/assets/aether/sounds/record/demise.ogg deleted file mode 100644 index cfaf42c7cd..0000000000 Binary files a/src/main/resources/assets/aether/sounds/record/demise.ogg and /dev/null differ diff --git a/src/main/resources/assets/aether/structures/aether_portal.nbt b/src/main/resources/assets/aether/structures/aether_portal.nbt deleted file mode 100644 index 9d9c973f05..0000000000 Binary files a/src/main/resources/assets/aether/structures/aether_portal.nbt and /dev/null differ diff --git a/src/main/resources/assets/aether/structures/frostpine/oak1.nbt b/src/main/resources/assets/aether/structures/frostpine/oak1.nbt deleted file mode 100644 index 71075f4232..0000000000 Binary files a/src/main/resources/assets/aether/structures/frostpine/oak1.nbt and /dev/null differ diff --git a/src/main/resources/assets/aether/structures/frostpine/oak2.nbt b/src/main/resources/assets/aether/structures/frostpine/oak2.nbt deleted file mode 100644 index 78e9db644e..0000000000 Binary files a/src/main/resources/assets/aether/structures/frostpine/oak2.nbt and /dev/null differ diff --git a/src/main/resources/assets/aether/structures/frostpine/oak3.nbt b/src/main/resources/assets/aether/structures/frostpine/oak3.nbt deleted file mode 100644 index 07f06e896b..0000000000 Binary files a/src/main/resources/assets/aether/structures/frostpine/oak3.nbt and /dev/null differ diff --git a/src/main/resources/assets/aether/structures/frostpine/oak4.nbt b/src/main/resources/assets/aether/structures/frostpine/oak4.nbt deleted file mode 100644 index 7f8d23d0a1..0000000000 Binary files a/src/main/resources/assets/aether/structures/frostpine/oak4.nbt and /dev/null differ diff --git a/src/main/resources/assets/aether/structures/frostpine/oak5.nbt b/src/main/resources/assets/aether/structures/frostpine/oak5.nbt deleted file mode 100644 index 1b1d879754..0000000000 Binary files a/src/main/resources/assets/aether/structures/frostpine/oak5.nbt and /dev/null differ diff --git a/src/main/resources/assets/aether/structures/frostpine/oak6.nbt b/src/main/resources/assets/aether/structures/frostpine/oak6.nbt deleted file mode 100644 index 6f28a32b8c..0000000000 Binary files a/src/main/resources/assets/aether/structures/frostpine/oak6.nbt and /dev/null differ diff --git a/src/main/resources/assets/aether/structures/frostpine/pine1.nbt b/src/main/resources/assets/aether/structures/frostpine/pine1.nbt deleted file mode 100644 index 212ee366bb..0000000000 Binary files a/src/main/resources/assets/aether/structures/frostpine/pine1.nbt and /dev/null differ diff --git a/src/main/resources/assets/aether/structures/frostpine/pine2.nbt b/src/main/resources/assets/aether/structures/frostpine/pine2.nbt deleted file mode 100644 index d7c43aeb36..0000000000 Binary files a/src/main/resources/assets/aether/structures/frostpine/pine2.nbt and /dev/null differ diff --git a/src/main/resources/assets/aether/structures/highlands/trees/normal/blue/blue_skyroot_tree_1.nbt b/src/main/resources/assets/aether/structures/highlands/trees/normal/blue/blue_skyroot_tree_1.nbt deleted file mode 100644 index e3e862dec1..0000000000 Binary files a/src/main/resources/assets/aether/structures/highlands/trees/normal/blue/blue_skyroot_tree_1.nbt and /dev/null differ diff --git a/src/main/resources/assets/aether/structures/highlands/trees/normal/blue/blue_skyroot_tree_2.nbt b/src/main/resources/assets/aether/structures/highlands/trees/normal/blue/blue_skyroot_tree_2.nbt deleted file mode 100644 index 6c55cb98c5..0000000000 Binary files a/src/main/resources/assets/aether/structures/highlands/trees/normal/blue/blue_skyroot_tree_2.nbt and /dev/null differ diff --git a/src/main/resources/assets/aether/structures/highlands/trees/normal/blue/blue_skyroot_tree_3.nbt b/src/main/resources/assets/aether/structures/highlands/trees/normal/blue/blue_skyroot_tree_3.nbt deleted file mode 100644 index 484ad852d7..0000000000 Binary files a/src/main/resources/assets/aether/structures/highlands/trees/normal/blue/blue_skyroot_tree_3.nbt and /dev/null differ diff --git a/src/main/resources/assets/aether/structures/highlands/trees/normal/dark_blue/dark_blue_skyroot_tree_1.nbt b/src/main/resources/assets/aether/structures/highlands/trees/normal/dark_blue/dark_blue_skyroot_tree_1.nbt deleted file mode 100644 index 7eea3df93f..0000000000 Binary files a/src/main/resources/assets/aether/structures/highlands/trees/normal/dark_blue/dark_blue_skyroot_tree_1.nbt and /dev/null differ diff --git a/src/main/resources/assets/aether/structures/highlands/trees/normal/dark_blue/dark_blue_skyroot_tree_2.nbt b/src/main/resources/assets/aether/structures/highlands/trees/normal/dark_blue/dark_blue_skyroot_tree_2.nbt deleted file mode 100644 index 5b08a3529d..0000000000 Binary files a/src/main/resources/assets/aether/structures/highlands/trees/normal/dark_blue/dark_blue_skyroot_tree_2.nbt and /dev/null differ diff --git a/src/main/resources/assets/aether/structures/highlands/trees/normal/dark_blue/dark_blue_skyroot_tree_3.nbt b/src/main/resources/assets/aether/structures/highlands/trees/normal/dark_blue/dark_blue_skyroot_tree_3.nbt deleted file mode 100644 index cb22a628ba..0000000000 Binary files a/src/main/resources/assets/aether/structures/highlands/trees/normal/dark_blue/dark_blue_skyroot_tree_3.nbt and /dev/null differ diff --git a/src/main/resources/assets/aether/structures/highlands/trees/normal/green/green_skyroot_tree_1.nbt b/src/main/resources/assets/aether/structures/highlands/trees/normal/green/green_skyroot_tree_1.nbt deleted file mode 100644 index a28e9d4f06..0000000000 Binary files a/src/main/resources/assets/aether/structures/highlands/trees/normal/green/green_skyroot_tree_1.nbt and /dev/null differ diff --git a/src/main/resources/assets/aether/structures/highlands/trees/normal/green/green_skyroot_tree_2.nbt b/src/main/resources/assets/aether/structures/highlands/trees/normal/green/green_skyroot_tree_2.nbt deleted file mode 100644 index 886f4a7cda..0000000000 Binary files a/src/main/resources/assets/aether/structures/highlands/trees/normal/green/green_skyroot_tree_2.nbt and /dev/null differ diff --git a/src/main/resources/assets/aether/structures/highlands/trees/normal/green/green_skyroot_tree_3.nbt b/src/main/resources/assets/aether/structures/highlands/trees/normal/green/green_skyroot_tree_3.nbt deleted file mode 100644 index 10fc8af28b..0000000000 Binary files a/src/main/resources/assets/aether/structures/highlands/trees/normal/green/green_skyroot_tree_3.nbt and /dev/null differ diff --git a/src/main/resources/assets/aether/structures/highlands/trees/oak/dark_blue/dark_blue_skyroot_oak_1.nbt b/src/main/resources/assets/aether/structures/highlands/trees/oak/dark_blue/dark_blue_skyroot_oak_1.nbt deleted file mode 100644 index 75ca66c30d..0000000000 Binary files a/src/main/resources/assets/aether/structures/highlands/trees/oak/dark_blue/dark_blue_skyroot_oak_1.nbt and /dev/null differ diff --git a/src/main/resources/assets/aether/structures/highlands/trees/oak/dark_blue/dark_blue_skyroot_oak_2.nbt b/src/main/resources/assets/aether/structures/highlands/trees/oak/dark_blue/dark_blue_skyroot_oak_2.nbt deleted file mode 100644 index a6bf13fd1f..0000000000 Binary files a/src/main/resources/assets/aether/structures/highlands/trees/oak/dark_blue/dark_blue_skyroot_oak_2.nbt and /dev/null differ diff --git a/src/main/resources/assets/aether/structures/highlands/trees/oak/golden/golden_oak_1.nbt b/src/main/resources/assets/aether/structures/highlands/trees/oak/golden/golden_oak_1.nbt deleted file mode 100644 index 1833aeed02..0000000000 Binary files a/src/main/resources/assets/aether/structures/highlands/trees/oak/golden/golden_oak_1.nbt and /dev/null differ diff --git a/src/main/resources/assets/aether/structures/highlands/trees/oak/golden/golden_oak_2.nbt b/src/main/resources/assets/aether/structures/highlands/trees/oak/golden/golden_oak_2.nbt deleted file mode 100644 index 5abb28b074..0000000000 Binary files a/src/main/resources/assets/aether/structures/highlands/trees/oak/golden/golden_oak_2.nbt and /dev/null differ diff --git a/src/main/resources/assets/aether/structures/highlands/trees/oak/green/green_skyroot_oak_1.nbt b/src/main/resources/assets/aether/structures/highlands/trees/oak/green/green_skyroot_oak_1.nbt deleted file mode 100644 index a309cd7bac..0000000000 Binary files a/src/main/resources/assets/aether/structures/highlands/trees/oak/green/green_skyroot_oak_1.nbt and /dev/null differ diff --git a/src/main/resources/assets/aether/structures/highlands/trees/oak/green/green_skyroot_oak_2.nbt b/src/main/resources/assets/aether/structures/highlands/trees/oak/green/green_skyroot_oak_2.nbt deleted file mode 100644 index 2644cca329..0000000000 Binary files a/src/main/resources/assets/aether/structures/highlands/trees/oak/green/green_skyroot_oak_2.nbt and /dev/null differ diff --git a/src/main/resources/assets/aether/structures/highlands/trees/pine/green/green_skyroot_pine_1.nbt b/src/main/resources/assets/aether/structures/highlands/trees/pine/green/green_skyroot_pine_1.nbt deleted file mode 100644 index 4d8aa776c5..0000000000 Binary files a/src/main/resources/assets/aether/structures/highlands/trees/pine/green/green_skyroot_pine_1.nbt and /dev/null differ diff --git a/src/main/resources/assets/aether/structures/highlands/trees/pine/green/green_skyroot_pine_2.nbt b/src/main/resources/assets/aether/structures/highlands/trees/pine/green/green_skyroot_pine_2.nbt deleted file mode 100644 index 028a901e19..0000000000 Binary files a/src/main/resources/assets/aether/structures/highlands/trees/pine/green/green_skyroot_pine_2.nbt and /dev/null differ diff --git a/src/main/resources/assets/aether/structures/highlands/trees/pine/green/green_skyroot_pine_3.nbt b/src/main/resources/assets/aether/structures/highlands/trees/pine/green/green_skyroot_pine_3.nbt deleted file mode 100644 index 9bd7c6027c..0000000000 Binary files a/src/main/resources/assets/aether/structures/highlands/trees/pine/green/green_skyroot_pine_3.nbt and /dev/null differ diff --git a/src/main/resources/assets/aether/structures/highlands/trees/pine/green/green_skyroot_pine_4.nbt b/src/main/resources/assets/aether/structures/highlands/trees/pine/green/green_skyroot_pine_4.nbt deleted file mode 100644 index 1cd83b70a6..0000000000 Binary files a/src/main/resources/assets/aether/structures/highlands/trees/pine/green/green_skyroot_pine_4.nbt and /dev/null differ diff --git a/src/main/resources/assets/aether/structures/highlands/trees/pine/green/green_skyroot_pine_5.nbt b/src/main/resources/assets/aether/structures/highlands/trees/pine/green/green_skyroot_pine_5.nbt deleted file mode 100644 index a45dabb5be..0000000000 Binary files a/src/main/resources/assets/aether/structures/highlands/trees/pine/green/green_skyroot_pine_5.nbt and /dev/null differ diff --git a/src/main/resources/assets/aether/structures/highlands/trees/pine/green/large_green_skyroot_pine_1.nbt b/src/main/resources/assets/aether/structures/highlands/trees/pine/green/large_green_skyroot_pine_1.nbt deleted file mode 100644 index d085f53072..0000000000 Binary files a/src/main/resources/assets/aether/structures/highlands/trees/pine/green/large_green_skyroot_pine_1.nbt and /dev/null differ diff --git a/src/main/resources/assets/aether/structures/highlands/trees/pine/green/large_green_skyroot_pine_2.nbt b/src/main/resources/assets/aether/structures/highlands/trees/pine/green/large_green_skyroot_pine_2.nbt deleted file mode 100644 index 7ff67b3e8e..0000000000 Binary files a/src/main/resources/assets/aether/structures/highlands/trees/pine/green/large_green_skyroot_pine_2.nbt and /dev/null differ diff --git a/src/main/resources/assets/aether/structures/highlands/trees/windswept/green/green_skyroot_windswept_1.nbt b/src/main/resources/assets/aether/structures/highlands/trees/windswept/green/green_skyroot_windswept_1.nbt deleted file mode 100644 index 2505839b50..0000000000 Binary files a/src/main/resources/assets/aether/structures/highlands/trees/windswept/green/green_skyroot_windswept_1.nbt and /dev/null differ diff --git a/src/main/resources/assets/aether/structures/highlands/trees/windswept/green/green_skyroot_windswept_2.nbt b/src/main/resources/assets/aether/structures/highlands/trees/windswept/green/green_skyroot_windswept_2.nbt deleted file mode 100644 index 72866a607c..0000000000 Binary files a/src/main/resources/assets/aether/structures/highlands/trees/windswept/green/green_skyroot_windswept_2.nbt and /dev/null differ diff --git a/src/main/resources/assets/aether/structures/highlands/trees/windswept/green/green_skyroot_windswept_3.nbt b/src/main/resources/assets/aether/structures/highlands/trees/windswept/green/green_skyroot_windswept_3.nbt deleted file mode 100644 index d8b25a298b..0000000000 Binary files a/src/main/resources/assets/aether/structures/highlands/trees/windswept/green/green_skyroot_windswept_3.nbt and /dev/null differ diff --git a/src/main/resources/assets/aether/structures/highlands/trees/windswept/green/green_skyroot_windswept_4.nbt b/src/main/resources/assets/aether/structures/highlands/trees/windswept/green/green_skyroot_windswept_4.nbt deleted file mode 100644 index 883193d019..0000000000 Binary files a/src/main/resources/assets/aether/structures/highlands/trees/windswept/green/green_skyroot_windswept_4.nbt and /dev/null differ diff --git a/src/main/resources/assets/aether/structures/highlands/trees/windswept/green/green_skyroot_windswept_5.nbt b/src/main/resources/assets/aether/structures/highlands/trees/windswept/green/green_skyroot_windswept_5.nbt deleted file mode 100644 index da0eb59e80..0000000000 Binary files a/src/main/resources/assets/aether/structures/highlands/trees/windswept/green/green_skyroot_windswept_5.nbt and /dev/null differ diff --git a/src/main/resources/assets/aether/structures/highlands/trees/windswept/green/green_skyroot_windswept_6.nbt b/src/main/resources/assets/aether/structures/highlands/trees/windswept/green/green_skyroot_windswept_6.nbt deleted file mode 100644 index f304213014..0000000000 Binary files a/src/main/resources/assets/aether/structures/highlands/trees/windswept/green/green_skyroot_windswept_6.nbt and /dev/null differ diff --git a/src/main/resources/assets/aether/structures/highlands/trees/windswept/green/green_skyroot_windswept_7.nbt b/src/main/resources/assets/aether/structures/highlands/trees/windswept/green/green_skyroot_windswept_7.nbt deleted file mode 100644 index df750e81da..0000000000 Binary files a/src/main/resources/assets/aether/structures/highlands/trees/windswept/green/green_skyroot_windswept_7.nbt and /dev/null differ diff --git a/src/main/resources/assets/aether/structures/moa_nest/skyroot_moa_nest_1.nbt b/src/main/resources/assets/aether/structures/moa_nest/skyroot_moa_nest_1.nbt deleted file mode 100644 index ad0e2d2b37..0000000000 Binary files a/src/main/resources/assets/aether/structures/moa_nest/skyroot_moa_nest_1.nbt and /dev/null differ diff --git a/src/main/resources/assets/aether/structures/moa_nest/skyroot_moa_nest_2.nbt b/src/main/resources/assets/aether/structures/moa_nest/skyroot_moa_nest_2.nbt deleted file mode 100644 index 5fa4523b02..0000000000 Binary files a/src/main/resources/assets/aether/structures/moa_nest/skyroot_moa_nest_2.nbt and /dev/null differ diff --git a/src/main/resources/assets/aether/structures/moa_nest/skyroot_moa_nest_tree_1.nbt b/src/main/resources/assets/aether/structures/moa_nest/skyroot_moa_nest_tree_1.nbt deleted file mode 100644 index bb406c7ea5..0000000000 Binary files a/src/main/resources/assets/aether/structures/moa_nest/skyroot_moa_nest_tree_1.nbt and /dev/null differ diff --git a/src/main/resources/assets/aether/structures/mysterious_henge.nbt b/src/main/resources/assets/aether/structures/mysterious_henge.nbt deleted file mode 100644 index 6ef99a5327..0000000000 Binary files a/src/main/resources/assets/aether/structures/mysterious_henge.nbt and /dev/null differ diff --git a/src/main/resources/assets/aether/structures/outpost.nbt b/src/main/resources/assets/aether/structures/outpost.nbt deleted file mode 100644 index 00a2370223..0000000000 Binary files a/src/main/resources/assets/aether/structures/outpost.nbt and /dev/null differ diff --git a/src/main/resources/assets/aether/structures/outpost_a.nbt b/src/main/resources/assets/aether/structures/outpost_a.nbt deleted file mode 100644 index ef2e25cdc8..0000000000 Binary files a/src/main/resources/assets/aether/structures/outpost_a.nbt and /dev/null differ diff --git a/src/main/resources/assets/aether/structures/outpost_b.nbt b/src/main/resources/assets/aether/structures/outpost_b.nbt deleted file mode 100644 index 44811cdd99..0000000000 Binary files a/src/main/resources/assets/aether/structures/outpost_b.nbt and /dev/null differ diff --git a/src/main/resources/assets/aether/structures/outpost_c.nbt b/src/main/resources/assets/aether/structures/outpost_c.nbt deleted file mode 100644 index f8970188a9..0000000000 Binary files a/src/main/resources/assets/aether/structures/outpost_c.nbt and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/armor/arkenium_gloves.png b/src/main/resources/assets/aether/textures/armor/arkenium_gloves.png deleted file mode 100644 index 49909fb0cc..0000000000 Binary files a/src/main/resources/assets/aether/textures/armor/arkenium_gloves.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/armor/arkenium_gloves_slim.png b/src/main/resources/assets/aether/textures/armor/arkenium_gloves_slim.png deleted file mode 100644 index 7c1c3ce3c1..0000000000 Binary files a/src/main/resources/assets/aether/textures/armor/arkenium_gloves_slim.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/armor/arkenium_layer_1.png b/src/main/resources/assets/aether/textures/armor/arkenium_layer_1.png deleted file mode 100644 index 51a24f4cec..0000000000 Binary files a/src/main/resources/assets/aether/textures/armor/arkenium_layer_1.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/armor/arkenium_layer_1b.png b/src/main/resources/assets/aether/textures/armor/arkenium_layer_1b.png deleted file mode 100644 index 7356130661..0000000000 Binary files a/src/main/resources/assets/aether/textures/armor/arkenium_layer_1b.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/armor/arkenium_layer_2.png b/src/main/resources/assets/aether/textures/armor/arkenium_layer_2.png deleted file mode 100644 index 2578a5b170..0000000000 Binary files a/src/main/resources/assets/aether/textures/armor/arkenium_layer_2.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/armor/burrukai_pelt_gloves.png b/src/main/resources/assets/aether/textures/armor/burrukai_pelt_gloves.png deleted file mode 100644 index 909d338cbe..0000000000 Binary files a/src/main/resources/assets/aether/textures/armor/burrukai_pelt_gloves.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/armor/burrukai_pelt_gloves_slim.png b/src/main/resources/assets/aether/textures/armor/burrukai_pelt_gloves_slim.png deleted file mode 100644 index 77fd8cfd80..0000000000 Binary files a/src/main/resources/assets/aether/textures/armor/burrukai_pelt_gloves_slim.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/armor/burrukai_pelt_layer_1.png b/src/main/resources/assets/aether/textures/armor/burrukai_pelt_layer_1.png deleted file mode 100644 index 25e2047e75..0000000000 Binary files a/src/main/resources/assets/aether/textures/armor/burrukai_pelt_layer_1.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/armor/burrukai_pelt_layer_1b.png b/src/main/resources/assets/aether/textures/armor/burrukai_pelt_layer_1b.png deleted file mode 100644 index faade62d40..0000000000 Binary files a/src/main/resources/assets/aether/textures/armor/burrukai_pelt_layer_1b.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/armor/burrukai_pelt_layer_2.png b/src/main/resources/assets/aether/textures/armor/burrukai_pelt_layer_2.png deleted file mode 100644 index c2016edcfc..0000000000 Binary files a/src/main/resources/assets/aether/textures/armor/burrukai_pelt_layer_2.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/armor/gravitite_gloves.png b/src/main/resources/assets/aether/textures/armor/gravitite_gloves.png deleted file mode 100644 index 3cf0f58d12..0000000000 Binary files a/src/main/resources/assets/aether/textures/armor/gravitite_gloves.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/armor/gravitite_gloves_slim.png b/src/main/resources/assets/aether/textures/armor/gravitite_gloves_slim.png deleted file mode 100644 index 4a44b6e4df..0000000000 Binary files a/src/main/resources/assets/aether/textures/armor/gravitite_gloves_slim.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/armor/gravitite_layer_1.png b/src/main/resources/assets/aether/textures/armor/gravitite_layer_1.png deleted file mode 100644 index f901793524..0000000000 Binary files a/src/main/resources/assets/aether/textures/armor/gravitite_layer_1.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/armor/gravitite_layer_1b.png b/src/main/resources/assets/aether/textures/armor/gravitite_layer_1b.png deleted file mode 100644 index 6009d85d99..0000000000 Binary files a/src/main/resources/assets/aether/textures/armor/gravitite_layer_1b.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/armor/gravitite_layer_2.png b/src/main/resources/assets/aether/textures/armor/gravitite_layer_2.png deleted file mode 100644 index 7db5b1ee97..0000000000 Binary files a/src/main/resources/assets/aether/textures/armor/gravitite_layer_2.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/armor/patron/slider_gloves.png b/src/main/resources/assets/aether/textures/armor/patron/slider_gloves.png deleted file mode 100644 index e9f27e353e..0000000000 Binary files a/src/main/resources/assets/aether/textures/armor/patron/slider_gloves.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/armor/patron/slider_gloves_slim.png b/src/main/resources/assets/aether/textures/armor/patron/slider_gloves_slim.png deleted file mode 100644 index 9916f82342..0000000000 Binary files a/src/main/resources/assets/aether/textures/armor/patron/slider_gloves_slim.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/armor/patron/slider_layer_1.png b/src/main/resources/assets/aether/textures/armor/patron/slider_layer_1.png deleted file mode 100644 index 1b9575667e..0000000000 Binary files a/src/main/resources/assets/aether/textures/armor/patron/slider_layer_1.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/armor/patron/slider_layer_2.png b/src/main/resources/assets/aether/textures/armor/patron/slider_layer_2.png deleted file mode 100644 index c1ac894121..0000000000 Binary files a/src/main/resources/assets/aether/textures/armor/patron/slider_layer_2.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/armor/patron/sun_spirit_gloves.png b/src/main/resources/assets/aether/textures/armor/patron/sun_spirit_gloves.png deleted file mode 100644 index 2f7fedfbbf..0000000000 Binary files a/src/main/resources/assets/aether/textures/armor/patron/sun_spirit_gloves.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/armor/patron/sun_spirit_gloves_slim.png b/src/main/resources/assets/aether/textures/armor/patron/sun_spirit_gloves_slim.png deleted file mode 100644 index ceb25620d7..0000000000 Binary files a/src/main/resources/assets/aether/textures/armor/patron/sun_spirit_gloves_slim.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/armor/patron/sun_spirit_layer_1.png b/src/main/resources/assets/aether/textures/armor/patron/sun_spirit_layer_1.png deleted file mode 100644 index 092c7c5415..0000000000 Binary files a/src/main/resources/assets/aether/textures/armor/patron/sun_spirit_layer_1.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/armor/patron/sun_spirit_layer_2.png b/src/main/resources/assets/aether/textures/armor/patron/sun_spirit_layer_2.png deleted file mode 100644 index ba0c33381c..0000000000 Binary files a/src/main/resources/assets/aether/textures/armor/patron/sun_spirit_layer_2.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/armor/patron/valkyrie_queen_gloves.png b/src/main/resources/assets/aether/textures/armor/patron/valkyrie_queen_gloves.png deleted file mode 100644 index 4deb06ca7f..0000000000 Binary files a/src/main/resources/assets/aether/textures/armor/patron/valkyrie_queen_gloves.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/armor/patron/valkyrie_queen_gloves_slim.png b/src/main/resources/assets/aether/textures/armor/patron/valkyrie_queen_gloves_slim.png deleted file mode 100644 index 7873082934..0000000000 Binary files a/src/main/resources/assets/aether/textures/armor/patron/valkyrie_queen_gloves_slim.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/armor/patron/valkyrie_queen_layer_1.png b/src/main/resources/assets/aether/textures/armor/patron/valkyrie_queen_layer_1.png deleted file mode 100644 index 5fd303133d..0000000000 Binary files a/src/main/resources/assets/aether/textures/armor/patron/valkyrie_queen_layer_1.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/armor/patron/valkyrie_queen_layer_2.png b/src/main/resources/assets/aether/textures/armor/patron/valkyrie_queen_layer_2.png deleted file mode 100644 index 7c348161b9..0000000000 Binary files a/src/main/resources/assets/aether/textures/armor/patron/valkyrie_queen_layer_2.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/armor/taegore_hide_gloves.png b/src/main/resources/assets/aether/textures/armor/taegore_hide_gloves.png deleted file mode 100644 index e39dfc4131..0000000000 Binary files a/src/main/resources/assets/aether/textures/armor/taegore_hide_gloves.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/armor/taegore_hide_gloves_slim.png b/src/main/resources/assets/aether/textures/armor/taegore_hide_gloves_slim.png deleted file mode 100644 index 313d5352cd..0000000000 Binary files a/src/main/resources/assets/aether/textures/armor/taegore_hide_gloves_slim.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/armor/taegore_hide_layer_1.png b/src/main/resources/assets/aether/textures/armor/taegore_hide_layer_1.png deleted file mode 100644 index fb95ae7573..0000000000 Binary files a/src/main/resources/assets/aether/textures/armor/taegore_hide_layer_1.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/armor/taegore_hide_layer_1b.png b/src/main/resources/assets/aether/textures/armor/taegore_hide_layer_1b.png deleted file mode 100644 index 16f9214b2b..0000000000 Binary files a/src/main/resources/assets/aether/textures/armor/taegore_hide_layer_1b.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/armor/taegore_hide_layer_2.png b/src/main/resources/assets/aether/textures/armor/taegore_hide_layer_2.png deleted file mode 100644 index 3e0eda0cd9..0000000000 Binary files a/src/main/resources/assets/aether/textures/armor/taegore_hide_layer_2.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/armor/winter_hat.png b/src/main/resources/assets/aether/textures/armor/winter_hat.png deleted file mode 100644 index 210b3832f9..0000000000 Binary files a/src/main/resources/assets/aether/textures/armor/winter_hat.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/armor/zanite_gloves.png b/src/main/resources/assets/aether/textures/armor/zanite_gloves.png deleted file mode 100644 index 162bb35298..0000000000 Binary files a/src/main/resources/assets/aether/textures/armor/zanite_gloves.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/armor/zanite_gloves_slim.png b/src/main/resources/assets/aether/textures/armor/zanite_gloves_slim.png deleted file mode 100644 index b9558f84a5..0000000000 Binary files a/src/main/resources/assets/aether/textures/armor/zanite_gloves_slim.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/armor/zanite_layer_1.png b/src/main/resources/assets/aether/textures/armor/zanite_layer_1.png deleted file mode 100644 index 0f418ffdb2..0000000000 Binary files a/src/main/resources/assets/aether/textures/armor/zanite_layer_1.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/armor/zanite_layer_1b.png b/src/main/resources/assets/aether/textures/armor/zanite_layer_1b.png deleted file mode 100644 index 139fb34d1b..0000000000 Binary files a/src/main/resources/assets/aether/textures/armor/zanite_layer_1b.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/armor/zanite_layer_2.png b/src/main/resources/assets/aether/textures/armor/zanite_layer_2.png deleted file mode 100644 index 9106714995..0000000000 Binary files a/src/main/resources/assets/aether/textures/armor/zanite_layer_2.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/aercloud/blue_aercloud.png b/src/main/resources/assets/aether/textures/blocks/aercloud/blue_aercloud.png deleted file mode 100644 index b76cf5f76b..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/aercloud/blue_aercloud.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/aercloud/cold_aercloud.png b/src/main/resources/assets/aether/textures/blocks/aercloud/cold_aercloud.png deleted file mode 100644 index 7bdaaf9ff1..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/aercloud/cold_aercloud.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/aercloud/golden_aercloud.png b/src/main/resources/assets/aether/textures/blocks/aercloud/golden_aercloud.png deleted file mode 100644 index e88632abb1..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/aercloud/golden_aercloud.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/aercloud/green_aercloud.png b/src/main/resources/assets/aether/textures/blocks/aercloud/green_aercloud.png deleted file mode 100644 index aeed42bcec..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/aercloud/green_aercloud.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/aercloud/purple_aercloud_back.png b/src/main/resources/assets/aether/textures/blocks/aercloud/purple_aercloud_back.png deleted file mode 100644 index f1457be86a..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/aercloud/purple_aercloud_back.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/aercloud/purple_aercloud_down.png b/src/main/resources/assets/aether/textures/blocks/aercloud/purple_aercloud_down.png deleted file mode 100644 index 31ab3aba94..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/aercloud/purple_aercloud_down.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/aercloud/purple_aercloud_front.png b/src/main/resources/assets/aether/textures/blocks/aercloud/purple_aercloud_front.png deleted file mode 100644 index 0ce72b2740..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/aercloud/purple_aercloud_front.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/aercloud/purple_aercloud_left.png b/src/main/resources/assets/aether/textures/blocks/aercloud/purple_aercloud_left.png deleted file mode 100644 index b2846f8b14..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/aercloud/purple_aercloud_left.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/aercloud/purple_aercloud_right.png b/src/main/resources/assets/aether/textures/blocks/aercloud/purple_aercloud_right.png deleted file mode 100644 index 4b639bc6b0..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/aercloud/purple_aercloud_right.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/aercloud/purple_aercloud_up.png b/src/main/resources/assets/aether/textures/blocks/aercloud/purple_aercloud_up.png deleted file mode 100644 index a2056eeb58..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/aercloud/purple_aercloud_up.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/aercloud/storm_aercloud.png b/src/main/resources/assets/aether/textures/blocks/aercloud/storm_aercloud.png deleted file mode 100644 index d02996a998..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/aercloud/storm_aercloud.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/aether_dirt.png b/src/main/resources/assets/aether/textures/blocks/aether_dirt.png deleted file mode 100644 index 63d9e13f00..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/aether_dirt.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/aether_portal.png b/src/main/resources/assets/aether/textures/blocks/aether_portal.png deleted file mode 100644 index 2cd9d0e682..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/aether_portal.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/aether_portal.png.mcmeta b/src/main/resources/assets/aether/textures/blocks/aether_portal.png.mcmeta deleted file mode 100644 index 3b002c5b87..0000000000 --- a/src/main/resources/assets/aether/textures/blocks/aether_portal.png.mcmeta +++ /dev/null @@ -1,6 +0,0 @@ -{ - "animation": {}, - "aether": { - "glow": 15 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/textures/blocks/agiosite.png b/src/main/resources/assets/aether/textures/blocks/agiosite.png deleted file mode 100644 index 72dbcb1f5a..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/agiosite.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/agiosite_brick.png b/src/main/resources/assets/aether/textures/blocks/agiosite_brick.png deleted file mode 100644 index d9b9bbfbea..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/agiosite_brick.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/agiosite_bricks/agiosite_base_bricks.png b/src/main/resources/assets/aether/textures/blocks/agiosite_bricks/agiosite_base_bricks.png deleted file mode 100644 index 3cea678b75..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/agiosite_bricks/agiosite_base_bricks.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/agiosite_bricks/agiosite_base_pillar.png b/src/main/resources/assets/aether/textures/blocks/agiosite_bricks/agiosite_base_pillar.png deleted file mode 100644 index 23c68e7c06..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/agiosite_bricks/agiosite_base_pillar.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/agiosite_bricks/agiosite_base_top.png b/src/main/resources/assets/aether/textures/blocks/agiosite_bricks/agiosite_base_top.png deleted file mode 100644 index 96e225fb8e..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/agiosite_bricks/agiosite_base_top.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/agiosite_bricks/agiosite_capstone_bricks.png b/src/main/resources/assets/aether/textures/blocks/agiosite_bricks/agiosite_capstone_bricks.png deleted file mode 100644 index 0495691ab7..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/agiosite_bricks/agiosite_capstone_bricks.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/agiosite_bricks/agiosite_capstone_pillar.png b/src/main/resources/assets/aether/textures/blocks/agiosite_bricks/agiosite_capstone_pillar.png deleted file mode 100644 index 2c64df2475..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/agiosite_bricks/agiosite_capstone_pillar.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/agiosite_bricks/agiosite_flagstones.png b/src/main/resources/assets/aether/textures/blocks/agiosite_bricks/agiosite_flagstones.png deleted file mode 100644 index 7df709a4a6..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/agiosite_bricks/agiosite_flagstones.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/agiosite_bricks/agiosite_pillar.png b/src/main/resources/assets/aether/textures/blocks/agiosite_bricks/agiosite_pillar.png deleted file mode 100644 index 8c866e4e5f..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/agiosite_bricks/agiosite_pillar.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/ambrosium_torch.png b/src/main/resources/assets/aether/textures/blocks/ambrosium_torch.png deleted file mode 100644 index a394af5c08..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/ambrosium_torch.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/arkenium_frame_crude_scatterglass.png b/src/main/resources/assets/aether/textures/blocks/arkenium_frame_crude_scatterglass.png deleted file mode 100644 index 1394f61e52..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/arkenium_frame_crude_scatterglass.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/arkenium_frame_crude_scatterglass_pane_top.png b/src/main/resources/assets/aether/textures/blocks/arkenium_frame_crude_scatterglass_pane_top.png deleted file mode 100644 index d4aae782ca..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/arkenium_frame_crude_scatterglass_pane_top.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/arkenium_frame_quicksoil_glass.png b/src/main/resources/assets/aether/textures/blocks/arkenium_frame_quicksoil_glass.png deleted file mode 100644 index 4a136c9f0f..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/arkenium_frame_quicksoil_glass.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/arkenium_frame_quicksoil_glass_pane_top.png b/src/main/resources/assets/aether/textures/blocks/arkenium_frame_quicksoil_glass_pane_top.png deleted file mode 100644 index d4aae782ca..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/arkenium_frame_quicksoil_glass_pane_top.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/arkenium_frame_scatterglass.png b/src/main/resources/assets/aether/textures/blocks/arkenium_frame_scatterglass.png deleted file mode 100644 index a7466abd11..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/arkenium_frame_scatterglass.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/arkenium_frame_scatterglass_pane_top.png b/src/main/resources/assets/aether/textures/blocks/arkenium_frame_scatterglass_pane_top.png deleted file mode 100644 index d4aae782ca..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/arkenium_frame_scatterglass_pane_top.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/brettl_plant/brettl_plant_base.png b/src/main/resources/assets/aether/textures/blocks/brettl_plant/brettl_plant_base.png deleted file mode 100644 index 847f0eb144..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/brettl_plant/brettl_plant_base.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/brettl_plant/brettl_plant_base_g.png b/src/main/resources/assets/aether/textures/blocks/brettl_plant/brettl_plant_base_g.png deleted file mode 100644 index e4c837bf11..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/brettl_plant/brettl_plant_base_g.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/brettl_plant/brettl_plant_mid.png b/src/main/resources/assets/aether/textures/blocks/brettl_plant/brettl_plant_mid.png deleted file mode 100644 index 9bc7cefff7..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/brettl_plant/brettl_plant_mid.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/brettl_plant/brettl_plant_mid_g.png b/src/main/resources/assets/aether/textures/blocks/brettl_plant/brettl_plant_mid_g.png deleted file mode 100644 index d3053d7822..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/brettl_plant/brettl_plant_mid_g.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/brettl_plant/brettl_plant_top.png b/src/main/resources/assets/aether/textures/blocks/brettl_plant/brettl_plant_top.png deleted file mode 100644 index 8d6250f6bb..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/brettl_plant/brettl_plant_top.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/brettl_plant/brettl_plant_top_g.png b/src/main/resources/assets/aether/textures/blocks/brettl_plant/brettl_plant_top_g.png deleted file mode 100644 index 7dc85bcc52..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/brettl_plant/brettl_plant_top_g.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/bushes/blueberry_bush_outer.png b/src/main/resources/assets/aether/textures/blocks/bushes/blueberry_bush_outer.png deleted file mode 100644 index 8583de895b..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/bushes/blueberry_bush_outer.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/bushes/blueberry_bush_stem.png b/src/main/resources/assets/aether/textures/blocks/bushes/blueberry_bush_stem.png deleted file mode 100644 index 6f7dca2cf6..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/bushes/blueberry_bush_stem.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/bushes/enchanted_blueberry_bush_outer.png b/src/main/resources/assets/aether/textures/blocks/bushes/enchanted_blueberry_bush_outer.png deleted file mode 100644 index f54ee47bf3..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/bushes/enchanted_blueberry_bush_outer.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/bushes/enchanted_blueberry_bush_stem.png b/src/main/resources/assets/aether/textures/blocks/bushes/enchanted_blueberry_bush_stem.png deleted file mode 100644 index 4af4e0fc52..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/bushes/enchanted_blueberry_bush_stem.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/bushes/highlands_bush_outer.png b/src/main/resources/assets/aether/textures/blocks/bushes/highlands_bush_outer.png deleted file mode 100644 index dbb65bfd1c..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/bushes/highlands_bush_outer.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/bushes/highlands_bush_stem.png b/src/main/resources/assets/aether/textures/blocks/bushes/highlands_bush_stem.png deleted file mode 100644 index 785285ad95..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/bushes/highlands_bush_stem.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/candy_cane_side.png b/src/main/resources/assets/aether/textures/blocks/candy_cane_side.png deleted file mode 100644 index 9c52804164..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/candy_cane_side.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/candy_cane_top.png b/src/main/resources/assets/aether/textures/blocks/candy_cane_top.png deleted file mode 100644 index d13db386d2..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/candy_cane_top.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/cloudwool_block.png b/src/main/resources/assets/aether/textures/blocks/cloudwool_block.png deleted file mode 100644 index be5b0d82f7..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/cloudwool_block.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/coarse_aether_dirt.png b/src/main/resources/assets/aether/textures/blocks/coarse_aether_dirt.png deleted file mode 100644 index fd120093b0..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/coarse_aether_dirt.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/crafting_tables/skyroot_crafting_table_front.png b/src/main/resources/assets/aether/textures/blocks/crafting_tables/skyroot_crafting_table_front.png deleted file mode 100644 index fa2bd71e19..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/crafting_tables/skyroot_crafting_table_front.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/crafting_tables/skyroot_crafting_table_side.png b/src/main/resources/assets/aether/textures/blocks/crafting_tables/skyroot_crafting_table_side.png deleted file mode 100644 index f9447f3826..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/crafting_tables/skyroot_crafting_table_side.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/crafting_tables/skyroot_crafting_table_top.png b/src/main/resources/assets/aether/textures/blocks/crafting_tables/skyroot_crafting_table_top.png deleted file mode 100644 index 58ecd4d20e..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/crafting_tables/skyroot_crafting_table_top.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/crude_scatterglass.png b/src/main/resources/assets/aether/textures/blocks/crude_scatterglass.png deleted file mode 100644 index b370ece158..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/crude_scatterglass.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/crude_scatterglass_pane_top.png b/src/main/resources/assets/aether/textures/blocks/crude_scatterglass_pane_top.png deleted file mode 100644 index 7f40b0617a..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/crude_scatterglass_pane_top.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/dark_skyroot_planks/greatroot_base_beam.png b/src/main/resources/assets/aether/textures/blocks/dark_skyroot_planks/greatroot_base_beam.png deleted file mode 100644 index 0db8dbc637..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/dark_skyroot_planks/greatroot_base_beam.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/dark_skyroot_planks/greatroot_base_planks.png b/src/main/resources/assets/aether/textures/blocks/dark_skyroot_planks/greatroot_base_planks.png deleted file mode 100644 index 2444155ab3..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/dark_skyroot_planks/greatroot_base_planks.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/dark_skyroot_planks/greatroot_base_top.png b/src/main/resources/assets/aether/textures/blocks/dark_skyroot_planks/greatroot_base_top.png deleted file mode 100644 index 1243d96064..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/dark_skyroot_planks/greatroot_base_top.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/dark_skyroot_planks/greatroot_beam.png b/src/main/resources/assets/aether/textures/blocks/dark_skyroot_planks/greatroot_beam.png deleted file mode 100644 index 335f2712b2..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/dark_skyroot_planks/greatroot_beam.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/dark_skyroot_planks/greatroot_floorboards.png b/src/main/resources/assets/aether/textures/blocks/dark_skyroot_planks/greatroot_floorboards.png deleted file mode 100644 index cead9f297e..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/dark_skyroot_planks/greatroot_floorboards.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/dark_skyroot_planks/greatroot_planks.png b/src/main/resources/assets/aether/textures/blocks/dark_skyroot_planks/greatroot_planks.png deleted file mode 100644 index 410b65d72d..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/dark_skyroot_planks/greatroot_planks.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/dark_skyroot_planks/greatroot_tiles.png b/src/main/resources/assets/aether/textures/blocks/dark_skyroot_planks/greatroot_tiles.png deleted file mode 100644 index 7bc8378a39..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/dark_skyroot_planks/greatroot_tiles.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/dark_skyroot_planks/greatroot_tiles_small.png b/src/main/resources/assets/aether/textures/blocks/dark_skyroot_planks/greatroot_tiles_small.png deleted file mode 100644 index d0d2424bab..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/dark_skyroot_planks/greatroot_tiles_small.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/dark_skyroot_planks/greatroot_top_beam.png b/src/main/resources/assets/aether/textures/blocks/dark_skyroot_planks/greatroot_top_beam.png deleted file mode 100644 index 7bcb88d8f2..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/dark_skyroot_planks/greatroot_top_beam.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/dark_skyroot_planks/greatroot_top_planks.png b/src/main/resources/assets/aether/textures/blocks/dark_skyroot_planks/greatroot_top_planks.png deleted file mode 100644 index 37ec4cc40b..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/dark_skyroot_planks/greatroot_top_planks.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/doors/arkenium_door_lower.png b/src/main/resources/assets/aether/textures/blocks/doors/arkenium_door_lower.png deleted file mode 100644 index 43680f1bf3..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/doors/arkenium_door_lower.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/doors/arkenium_door_upper.png b/src/main/resources/assets/aether/textures/blocks/doors/arkenium_door_upper.png deleted file mode 100644 index 63adb72169..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/doors/arkenium_door_upper.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/doors/skyroot_door_lower.png b/src/main/resources/assets/aether/textures/blocks/doors/skyroot_door_lower.png deleted file mode 100644 index b61f2f8ad7..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/doors/skyroot_door_lower.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/doors/skyroot_door_upper.png b/src/main/resources/assets/aether/textures/blocks/doors/skyroot_door_upper.png deleted file mode 100644 index 3f3544a24f..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/doors/skyroot_door_upper.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/faded_holystone_brick.png b/src/main/resources/assets/aether/textures/blocks/faded_holystone_brick.png deleted file mode 100644 index e1e4198362..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/faded_holystone_brick.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/faded_holystone_bricks/faded_holystone_base_bricks.png b/src/main/resources/assets/aether/textures/blocks/faded_holystone_bricks/faded_holystone_base_bricks.png deleted file mode 100644 index 979ebc2f1c..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/faded_holystone_bricks/faded_holystone_base_bricks.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/faded_holystone_bricks/faded_holystone_base_pillar.png b/src/main/resources/assets/aether/textures/blocks/faded_holystone_bricks/faded_holystone_base_pillar.png deleted file mode 100644 index 3378e5effa..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/faded_holystone_bricks/faded_holystone_base_pillar.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/faded_holystone_bricks/faded_holystone_base_top.png b/src/main/resources/assets/aether/textures/blocks/faded_holystone_bricks/faded_holystone_base_top.png deleted file mode 100644 index be47cf912a..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/faded_holystone_bricks/faded_holystone_base_top.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/faded_holystone_bricks/faded_holystone_capstone_bricks.png b/src/main/resources/assets/aether/textures/blocks/faded_holystone_bricks/faded_holystone_capstone_bricks.png deleted file mode 100644 index d9fcc9fb38..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/faded_holystone_bricks/faded_holystone_capstone_bricks.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/faded_holystone_bricks/faded_holystone_capstone_pillar.png b/src/main/resources/assets/aether/textures/blocks/faded_holystone_bricks/faded_holystone_capstone_pillar.png deleted file mode 100644 index 956f085073..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/faded_holystone_bricks/faded_holystone_capstone_pillar.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/faded_holystone_bricks/faded_holystone_flagstones.png b/src/main/resources/assets/aether/textures/blocks/faded_holystone_bricks/faded_holystone_flagstones.png deleted file mode 100644 index 869308d0c8..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/faded_holystone_bricks/faded_holystone_flagstones.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/faded_holystone_bricks/faded_holystone_headstone.png b/src/main/resources/assets/aether/textures/blocks/faded_holystone_bricks/faded_holystone_headstone.png deleted file mode 100644 index 69557926d1..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/faded_holystone_bricks/faded_holystone_headstone.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/faded_holystone_bricks/faded_holystone_pillar.png b/src/main/resources/assets/aether/textures/blocks/faded_holystone_bricks/faded_holystone_pillar.png deleted file mode 100644 index 68dd2073b5..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/faded_holystone_bricks/faded_holystone_pillar.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/ferrosite.png b/src/main/resources/assets/aether/textures/blocks/ferrosite.png deleted file mode 100644 index f364d91f45..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/ferrosite.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/ferrosite_sand.png b/src/main/resources/assets/aether/textures/blocks/ferrosite_sand.png deleted file mode 100644 index 6047188ee0..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/ferrosite_sand.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/flowers/aechor_sprout.png b/src/main/resources/assets/aether/textures/blocks/flowers/aechor_sprout.png deleted file mode 100644 index 89762d55ab..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/flowers/aechor_sprout.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/flowers/arctic_spikespring.png b/src/main/resources/assets/aether/textures/blocks/flowers/arctic_spikespring.png deleted file mode 100644 index ac50e4537a..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/flowers/arctic_spikespring.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/flowers/barkshroom.png b/src/main/resources/assets/aether/textures/blocks/flowers/barkshroom.png deleted file mode 100644 index 527c190ccc..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/flowers/barkshroom.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/flowers/blue_swingtip.png b/src/main/resources/assets/aether/textures/blocks/flowers/blue_swingtip.png deleted file mode 100644 index c3176fd554..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/flowers/blue_swingtip.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/flowers/burstblossom.png b/src/main/resources/assets/aether/textures/blocks/flowers/burstblossom.png deleted file mode 100644 index d962a0e3d8..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/flowers/burstblossom.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/flowers/forgotten_rose.png b/src/main/resources/assets/aether/textures/blocks/flowers/forgotten_rose.png deleted file mode 100644 index ed90ebd24b..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/flowers/forgotten_rose.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/flowers/green_swingtip.png b/src/main/resources/assets/aether/textures/blocks/flowers/green_swingtip.png deleted file mode 100644 index 35ee59780c..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/flowers/green_swingtip.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/flowers/highlands_tulips.png b/src/main/resources/assets/aether/textures/blocks/flowers/highlands_tulips.png deleted file mode 100644 index 528d81b402..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/flowers/highlands_tulips.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/flowers/irradiated_flower.png b/src/main/resources/assets/aether/textures/blocks/flowers/irradiated_flower.png deleted file mode 100644 index 7e561817d3..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/flowers/irradiated_flower.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/flowers/magnetic_shroom.png b/src/main/resources/assets/aether/textures/blocks/flowers/magnetic_shroom.png deleted file mode 100644 index f8da6d2e5c..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/flowers/magnetic_shroom.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/flowers/neverbloom.png b/src/main/resources/assets/aether/textures/blocks/flowers/neverbloom.png deleted file mode 100644 index 499fe5696f..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/flowers/neverbloom.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/flowers/pink_swingtip.png b/src/main/resources/assets/aether/textures/blocks/flowers/pink_swingtip.png deleted file mode 100644 index edfb435801..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/flowers/pink_swingtip.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/flowers/purple_flower.png b/src/main/resources/assets/aether/textures/blocks/flowers/purple_flower.png deleted file mode 100644 index 1e5e9398d4..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/flowers/purple_flower.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/flowers/quickshoot.png b/src/main/resources/assets/aether/textures/blocks/flowers/quickshoot.png deleted file mode 100644 index 264cbabf84..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/flowers/quickshoot.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/flowers/stoneshroom.png b/src/main/resources/assets/aether/textures/blocks/flowers/stoneshroom.png deleted file mode 100644 index 43d511a568..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/flowers/stoneshroom.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/flowers/white_rose.png b/src/main/resources/assets/aether/textures/blocks/flowers/white_rose.png deleted file mode 100644 index e54e6ccda3..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/flowers/white_rose.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/grass/aether_grass_side.png b/src/main/resources/assets/aether/textures/blocks/grass/aether_grass_side.png deleted file mode 100644 index 91c94b99d9..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/grass/aether_grass_side.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/grass/aether_grass_side_snowed.png b/src/main/resources/assets/aether/textures/blocks/grass/aether_grass_side_snowed.png deleted file mode 100644 index c848e6a8f2..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/grass/aether_grass_side_snowed.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/grass/aether_grass_top.png b/src/main/resources/assets/aether/textures/blocks/grass/aether_grass_top.png deleted file mode 100644 index 6badef449f..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/grass/aether_grass_top.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/grass/arctic_grass_side.png b/src/main/resources/assets/aether/textures/blocks/grass/arctic_grass_side.png deleted file mode 100644 index c73d0f10bb..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/grass/arctic_grass_side.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/grass/arctic_grass_top.png b/src/main/resources/assets/aether/textures/blocks/grass/arctic_grass_top.png deleted file mode 100644 index 2b71bc0f97..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/grass/arctic_grass_top.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/grass/enchanted_grass_side.png b/src/main/resources/assets/aether/textures/blocks/grass/enchanted_grass_side.png deleted file mode 100644 index e72a9c3a22..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/grass/enchanted_grass_side.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/grass/enchanted_grass_top.png b/src/main/resources/assets/aether/textures/blocks/grass/enchanted_grass_top.png deleted file mode 100644 index a4ea12f6cd..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/grass/enchanted_grass_top.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/grass/irradiated_grass_side.png b/src/main/resources/assets/aether/textures/blocks/grass/irradiated_grass_side.png deleted file mode 100644 index 81b56f00ee..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/grass/irradiated_grass_side.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/grass/irradiated_grass_top.png b/src/main/resources/assets/aether/textures/blocks/grass/irradiated_grass_top.png deleted file mode 100644 index dbfc717d58..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/grass/irradiated_grass_top.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/grass/magnetic_grass_side.png b/src/main/resources/assets/aether/textures/blocks/grass/magnetic_grass_side.png deleted file mode 100644 index 3f925a72f2..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/grass/magnetic_grass_side.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/grass/magnetic_grass_top.png b/src/main/resources/assets/aether/textures/blocks/grass/magnetic_grass_top.png deleted file mode 100644 index 37db0da095..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/grass/magnetic_grass_top.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/gravitite_block.png b/src/main/resources/assets/aether/textures/blocks/gravitite_block.png deleted file mode 100644 index fa285678f1..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/gravitite_block.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/hellfirestone_bricks/hellfirestone_base_bricks.png b/src/main/resources/assets/aether/textures/blocks/hellfirestone_bricks/hellfirestone_base_bricks.png deleted file mode 100644 index 78086de273..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/hellfirestone_bricks/hellfirestone_base_bricks.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/hellfirestone_bricks/hellfirestone_base_pillar.png b/src/main/resources/assets/aether/textures/blocks/hellfirestone_bricks/hellfirestone_base_pillar.png deleted file mode 100644 index 3a0c7563d7..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/hellfirestone_bricks/hellfirestone_base_pillar.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/hellfirestone_bricks/hellfirestone_base_top.png b/src/main/resources/assets/aether/textures/blocks/hellfirestone_bricks/hellfirestone_base_top.png deleted file mode 100644 index 8e3ab72aca..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/hellfirestone_bricks/hellfirestone_base_top.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/hellfirestone_bricks/hellfirestone_brick.png b/src/main/resources/assets/aether/textures/blocks/hellfirestone_bricks/hellfirestone_brick.png deleted file mode 100644 index 396d356256..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/hellfirestone_bricks/hellfirestone_brick.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/hellfirestone_bricks/hellfirestone_capstone_bricks.png b/src/main/resources/assets/aether/textures/blocks/hellfirestone_bricks/hellfirestone_capstone_bricks.png deleted file mode 100644 index 8c47361b61..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/hellfirestone_bricks/hellfirestone_capstone_bricks.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/hellfirestone_bricks/hellfirestone_capstone_pillar.png b/src/main/resources/assets/aether/textures/blocks/hellfirestone_bricks/hellfirestone_capstone_pillar.png deleted file mode 100644 index 63f3ee7afa..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/hellfirestone_bricks/hellfirestone_capstone_pillar.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/hellfirestone_bricks/hellfirestone_flagstones.png b/src/main/resources/assets/aether/textures/blocks/hellfirestone_bricks/hellfirestone_flagstones.png deleted file mode 100644 index f1184cedbf..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/hellfirestone_bricks/hellfirestone_flagstones.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/hellfirestone_bricks/hellfirestone_lantern.png b/src/main/resources/assets/aether/textures/blocks/hellfirestone_bricks/hellfirestone_lantern.png deleted file mode 100644 index 36f67e5d59..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/hellfirestone_bricks/hellfirestone_lantern.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/hellfirestone_bricks/hellfirestone_lantern_highlight.png b/src/main/resources/assets/aether/textures/blocks/hellfirestone_bricks/hellfirestone_lantern_highlight.png deleted file mode 100644 index 41701f24ab..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/hellfirestone_bricks/hellfirestone_lantern_highlight.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/hellfirestone_bricks/hellfirestone_pillar.png b/src/main/resources/assets/aether/textures/blocks/hellfirestone_bricks/hellfirestone_pillar.png deleted file mode 100644 index a6a7331b31..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/hellfirestone_bricks/hellfirestone_pillar.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/highlands_ice.png b/src/main/resources/assets/aether/textures/blocks/highlands_ice.png deleted file mode 100644 index 2b491b1007..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/highlands_ice.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/highlands_packed_ice.png b/src/main/resources/assets/aether/textures/blocks/highlands_packed_ice.png deleted file mode 100644 index ccf5844b9f..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/highlands_packed_ice.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/highlands_snow.png b/src/main/resources/assets/aether/textures/blocks/highlands_snow.png deleted file mode 100644 index 2d7d1c5afe..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/highlands_snow.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/holystone/blood_moss_holystone.png b/src/main/resources/assets/aether/textures/blocks/holystone/blood_moss_holystone.png deleted file mode 100644 index dce8ca5328..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/holystone/blood_moss_holystone.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/holystone/holystone.png b/src/main/resources/assets/aether/textures/blocks/holystone/holystone.png deleted file mode 100644 index 5169b225d9..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/holystone/holystone.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/holystone/irradiated_holystone.png b/src/main/resources/assets/aether/textures/blocks/holystone/irradiated_holystone.png deleted file mode 100644 index 990b4e4c6a..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/holystone/irradiated_holystone.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/holystone/mossy_holystone.png b/src/main/resources/assets/aether/textures/blocks/holystone/mossy_holystone.png deleted file mode 100644 index 9d2479a652..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/holystone/mossy_holystone.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/holystone_bookshelf.png b/src/main/resources/assets/aether/textures/blocks/holystone_bookshelf.png deleted file mode 100644 index 965d4384ad..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/holystone_bookshelf.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/holystone_brick.png b/src/main/resources/assets/aether/textures/blocks/holystone_brick.png deleted file mode 100644 index d11ba4a8e8..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/holystone_brick.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/holystone_bricks/holystone_base_bricks.png b/src/main/resources/assets/aether/textures/blocks/holystone_bricks/holystone_base_bricks.png deleted file mode 100644 index 35d893eeed..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/holystone_bricks/holystone_base_bricks.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/holystone_bricks/holystone_base_pillar.png b/src/main/resources/assets/aether/textures/blocks/holystone_bricks/holystone_base_pillar.png deleted file mode 100644 index d5f354ad86..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/holystone_bricks/holystone_base_pillar.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/holystone_bricks/holystone_base_top.png b/src/main/resources/assets/aether/textures/blocks/holystone_bricks/holystone_base_top.png deleted file mode 100644 index c72148dc3c..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/holystone_bricks/holystone_base_top.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/holystone_bricks/holystone_capstone_bricks.png b/src/main/resources/assets/aether/textures/blocks/holystone_bricks/holystone_capstone_bricks.png deleted file mode 100644 index f51a5063db..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/holystone_bricks/holystone_capstone_bricks.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/holystone_bricks/holystone_capstone_pillar.png b/src/main/resources/assets/aether/textures/blocks/holystone_bricks/holystone_capstone_pillar.png deleted file mode 100644 index 1a44fbbfa1..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/holystone_bricks/holystone_capstone_pillar.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/holystone_bricks/holystone_flagstones.png b/src/main/resources/assets/aether/textures/blocks/holystone_bricks/holystone_flagstones.png deleted file mode 100644 index a54d47fb3b..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/holystone_bricks/holystone_flagstones.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/holystone_bricks/holystone_headstone.png b/src/main/resources/assets/aether/textures/blocks/holystone_bricks/holystone_headstone.png deleted file mode 100644 index d09ca7659a..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/holystone_bricks/holystone_headstone.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/holystone_bricks/holystone_pillar.png b/src/main/resources/assets/aether/textures/blocks/holystone_bricks/holystone_pillar.png deleted file mode 100644 index 320796bb48..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/holystone_bricks/holystone_pillar.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/holystone_furnace/holystone_furnace_front_off.png b/src/main/resources/assets/aether/textures/blocks/holystone_furnace/holystone_furnace_front_off.png deleted file mode 100644 index 7308881222..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/holystone_furnace/holystone_furnace_front_off.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/holystone_furnace/holystone_furnace_front_on.png b/src/main/resources/assets/aether/textures/blocks/holystone_furnace/holystone_furnace_front_on.png deleted file mode 100644 index 2b5eab7cca..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/holystone_furnace/holystone_furnace_front_on.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/holystone_furnace/holystone_furnace_side.png b/src/main/resources/assets/aether/textures/blocks/holystone_furnace/holystone_furnace_side.png deleted file mode 100644 index d3c8967fa6..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/holystone_furnace/holystone_furnace_side.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/holystone_furnace/holystone_furnace_top.png b/src/main/resources/assets/aether/textures/blocks/holystone_furnace/holystone_furnace_top.png deleted file mode 100644 index 72d4f03f68..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/holystone_furnace/holystone_furnace_top.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/icestone_bricks.png b/src/main/resources/assets/aether/textures/blocks/icestone_bricks.png deleted file mode 100644 index aad12a43ce..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/icestone_bricks.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/icestone_bricks/icestone_base_bricks.png b/src/main/resources/assets/aether/textures/blocks/icestone_bricks/icestone_base_bricks.png deleted file mode 100644 index 812bb86952..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/icestone_bricks/icestone_base_bricks.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/icestone_bricks/icestone_base_pillar.png b/src/main/resources/assets/aether/textures/blocks/icestone_bricks/icestone_base_pillar.png deleted file mode 100644 index 675463137c..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/icestone_bricks/icestone_base_pillar.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/icestone_bricks/icestone_capstone_bricks.png b/src/main/resources/assets/aether/textures/blocks/icestone_bricks/icestone_capstone_bricks.png deleted file mode 100644 index 87989274f1..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/icestone_bricks/icestone_capstone_bricks.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/icestone_bricks/icestone_capstone_pillar.png b/src/main/resources/assets/aether/textures/blocks/icestone_bricks/icestone_capstone_pillar.png deleted file mode 100644 index 9b81f40923..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/icestone_bricks/icestone_capstone_pillar.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/icestone_bricks/icestone_flagstones.png b/src/main/resources/assets/aether/textures/blocks/icestone_bricks/icestone_flagstones.png deleted file mode 100644 index 6f7daea7ca..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/icestone_bricks/icestone_flagstones.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/icestone_bricks/icestone_keystone.png b/src/main/resources/assets/aether/textures/blocks/icestone_bricks/icestone_keystone.png deleted file mode 100644 index fe937fd52c..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/icestone_bricks/icestone_keystone.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/icestone_bricks/icestone_pillar.png b/src/main/resources/assets/aether/textures/blocks/icestone_bricks/icestone_pillar.png deleted file mode 100644 index 2ddc28516a..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/icestone_bricks/icestone_pillar.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/incubator/incubator_base_bottom.png b/src/main/resources/assets/aether/textures/blocks/incubator/incubator_base_bottom.png deleted file mode 100644 index 551f6535df..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/incubator/incubator_base_bottom.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/incubator/incubator_base_side.png b/src/main/resources/assets/aether/textures/blocks/incubator/incubator_base_side.png deleted file mode 100644 index 75fe577118..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/incubator/incubator_base_side.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/incubator/incubator_base_top.png b/src/main/resources/assets/aether/textures/blocks/incubator/incubator_base_top.png deleted file mode 100644 index 9f8e9f547a..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/incubator/incubator_base_top.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/incubator/incubator_chamber_inside.png b/src/main/resources/assets/aether/textures/blocks/incubator/incubator_chamber_inside.png deleted file mode 100644 index e15f38b50e..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/incubator/incubator_chamber_inside.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/incubator/incubator_chamber_inside_on.png b/src/main/resources/assets/aether/textures/blocks/incubator/incubator_chamber_inside_on.png deleted file mode 100644 index 66d79b4d98..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/incubator/incubator_chamber_inside_on.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/incubator/incubator_chamber_outside.png b/src/main/resources/assets/aether/textures/blocks/incubator/incubator_chamber_outside.png deleted file mode 100644 index 0fdddf5858..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/incubator/incubator_chamber_outside.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/incubator/incubator_chamber_outside_on.png b/src/main/resources/assets/aether/textures/blocks/incubator/incubator_chamber_outside_on.png deleted file mode 100644 index fdbe516a1a..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/incubator/incubator_chamber_outside_on.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/incubator/incubator_chamber_side.png b/src/main/resources/assets/aether/textures/blocks/incubator/incubator_chamber_side.png deleted file mode 100644 index fc54c72c76..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/incubator/incubator_chamber_side.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/incubator/incubator_chamber_top.png b/src/main/resources/assets/aether/textures/blocks/incubator/incubator_chamber_top.png deleted file mode 100644 index ec661cd52f..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/incubator/incubator_chamber_top.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/incubator/incubator_heater_side.png b/src/main/resources/assets/aether/textures/blocks/incubator/incubator_heater_side.png deleted file mode 100644 index 93553f53a5..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/incubator/incubator_heater_side.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/incubator/incubator_heater_top.png b/src/main/resources/assets/aether/textures/blocks/incubator/incubator_heater_top.png deleted file mode 100644 index 580118284b..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/incubator/incubator_heater_top.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/incubator/incubator_heater_top_on.png b/src/main/resources/assets/aether/textures/blocks/incubator/incubator_heater_top_on.png deleted file mode 100644 index e7e6abb569..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/incubator/incubator_heater_top_on.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/irradiated_dust_block.png b/src/main/resources/assets/aether/textures/blocks/irradiated_dust_block.png deleted file mode 100644 index 28710bad2a..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/irradiated_dust_block.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/labyrinth_chest/labyrinth_chest_corners.png b/src/main/resources/assets/aether/textures/blocks/labyrinth_chest/labyrinth_chest_corners.png deleted file mode 100644 index ae0f51bd3e..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/labyrinth_chest/labyrinth_chest_corners.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/labyrinth_chest/labyrinth_chest_main_bottom.png b/src/main/resources/assets/aether/textures/blocks/labyrinth_chest/labyrinth_chest_main_bottom.png deleted file mode 100644 index 156a1b43f7..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/labyrinth_chest/labyrinth_chest_main_bottom.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/labyrinth_chest/labyrinth_chest_main_front.png b/src/main/resources/assets/aether/textures/blocks/labyrinth_chest/labyrinth_chest_main_front.png deleted file mode 100644 index d85d768062..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/labyrinth_chest/labyrinth_chest_main_front.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/labyrinth_chest/labyrinth_chest_main_open_bottom.png b/src/main/resources/assets/aether/textures/blocks/labyrinth_chest/labyrinth_chest_main_open_bottom.png deleted file mode 100644 index 26747f444d..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/labyrinth_chest/labyrinth_chest_main_open_bottom.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/labyrinth_chest/labyrinth_chest_main_open_top.png b/src/main/resources/assets/aether/textures/blocks/labyrinth_chest/labyrinth_chest_main_open_top.png deleted file mode 100644 index 6e6c68f23b..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/labyrinth_chest/labyrinth_chest_main_open_top.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/labyrinth_chest/labyrinth_chest_main_side.png b/src/main/resources/assets/aether/textures/blocks/labyrinth_chest/labyrinth_chest_main_side.png deleted file mode 100644 index f8e2a32239..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/labyrinth_chest/labyrinth_chest_main_side.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/labyrinth_chest/labyrinth_chest_main_top.png b/src/main/resources/assets/aether/textures/blocks/labyrinth_chest/labyrinth_chest_main_top.png deleted file mode 100644 index f12e9975fc..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/labyrinth_chest/labyrinth_chest_main_top.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/labyrinth_container/labyrinth_container_large_bottom.png b/src/main/resources/assets/aether/textures/blocks/labyrinth_container/labyrinth_container_large_bottom.png deleted file mode 100644 index c524ae77b5..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/labyrinth_container/labyrinth_container_large_bottom.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/labyrinth_container/labyrinth_container_large_side.png b/src/main/resources/assets/aether/textures/blocks/labyrinth_container/labyrinth_container_large_side.png deleted file mode 100644 index a4fe55b778..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/labyrinth_container/labyrinth_container_large_side.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/labyrinth_container/labyrinth_container_large_top.png b/src/main/resources/assets/aether/textures/blocks/labyrinth_container/labyrinth_container_large_top.png deleted file mode 100644 index 93abfabbda..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/labyrinth_container/labyrinth_container_large_top.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/labyrinth_container/labyrinth_container_small.png b/src/main/resources/assets/aether/textures/blocks/labyrinth_container/labyrinth_container_small.png deleted file mode 100644 index 4a7beb6c5b..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/labyrinth_container/labyrinth_container_small.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/ladders/skyroot_ladder.png b/src/main/resources/assets/aether/textures/blocks/ladders/skyroot_ladder.png deleted file mode 100644 index 67621d7549..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/ladders/skyroot_ladder.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/leaves/amberoot_leaves.png b/src/main/resources/assets/aether/textures/blocks/leaves/amberoot_leaves.png deleted file mode 100644 index 9c22c93c67..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/leaves/amberoot_leaves.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/leaves/blue_dark_skyroot_leaves.png b/src/main/resources/assets/aether/textures/blocks/leaves/blue_dark_skyroot_leaves.png deleted file mode 100644 index 49ea673f6e..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/leaves/blue_dark_skyroot_leaves.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/leaves/blue_light_skyroot_leaves.png b/src/main/resources/assets/aether/textures/blocks/leaves/blue_light_skyroot_leaves.png deleted file mode 100644 index 5c14468310..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/leaves/blue_light_skyroot_leaves.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/leaves/blue_skyroot_leaves.png b/src/main/resources/assets/aether/textures/blocks/leaves/blue_skyroot_leaves.png deleted file mode 100644 index e321bee5d4..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/leaves/blue_skyroot_leaves.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/leaves/dark_blue_dark_skyroot_leaves.png b/src/main/resources/assets/aether/textures/blocks/leaves/dark_blue_dark_skyroot_leaves.png deleted file mode 100644 index 374c31880b..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/leaves/dark_blue_dark_skyroot_leaves.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/leaves/dark_blue_light_skyroot_leaves.png b/src/main/resources/assets/aether/textures/blocks/leaves/dark_blue_light_skyroot_leaves.png deleted file mode 100644 index 49b7d4298f..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/leaves/dark_blue_light_skyroot_leaves.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/leaves/dark_blue_skyroot_leaves.png b/src/main/resources/assets/aether/textures/blocks/leaves/dark_blue_skyroot_leaves.png deleted file mode 100644 index a600252782..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/leaves/dark_blue_skyroot_leaves.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/leaves/green_dark_skyroot_leaves.png b/src/main/resources/assets/aether/textures/blocks/leaves/green_dark_skyroot_leaves.png deleted file mode 100644 index 9cbef4c604..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/leaves/green_dark_skyroot_leaves.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/leaves/green_light_skyroot_leaves.png b/src/main/resources/assets/aether/textures/blocks/leaves/green_light_skyroot_leaves.png deleted file mode 100644 index 2da640f0ff..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/leaves/green_light_skyroot_leaves.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/leaves/green_skyroot_leaves.png b/src/main/resources/assets/aether/textures/blocks/leaves/green_skyroot_leaves.png deleted file mode 100644 index 4c4e8ba811..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/leaves/green_skyroot_leaves.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/leaves/holiday_bauble_leaves.png b/src/main/resources/assets/aether/textures/blocks/leaves/holiday_bauble_leaves.png deleted file mode 100644 index b279f56e0f..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/leaves/holiday_bauble_leaves.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/leaves/holiday_leaves.png b/src/main/resources/assets/aether/textures/blocks/leaves/holiday_leaves.png deleted file mode 100644 index 86b603a521..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/leaves/holiday_leaves.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/leaves/therawood_leaves.png b/src/main/resources/assets/aether/textures/blocks/leaves/therawood_leaves.png deleted file mode 100644 index 6266e8a19d..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/leaves/therawood_leaves.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/light_skyroot_planks/wisproot_base_beam.png b/src/main/resources/assets/aether/textures/blocks/light_skyroot_planks/wisproot_base_beam.png deleted file mode 100644 index 7138557b7c..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/light_skyroot_planks/wisproot_base_beam.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/light_skyroot_planks/wisproot_base_planks.png b/src/main/resources/assets/aether/textures/blocks/light_skyroot_planks/wisproot_base_planks.png deleted file mode 100644 index cd91b2b719..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/light_skyroot_planks/wisproot_base_planks.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/light_skyroot_planks/wisproot_base_top.png b/src/main/resources/assets/aether/textures/blocks/light_skyroot_planks/wisproot_base_top.png deleted file mode 100644 index 9484d4065d..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/light_skyroot_planks/wisproot_base_top.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/light_skyroot_planks/wisproot_beam.png b/src/main/resources/assets/aether/textures/blocks/light_skyroot_planks/wisproot_beam.png deleted file mode 100644 index 67259d41b5..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/light_skyroot_planks/wisproot_beam.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/light_skyroot_planks/wisproot_floorboards.png b/src/main/resources/assets/aether/textures/blocks/light_skyroot_planks/wisproot_floorboards.png deleted file mode 100644 index 1faa1d4983..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/light_skyroot_planks/wisproot_floorboards.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/light_skyroot_planks/wisproot_planks.png b/src/main/resources/assets/aether/textures/blocks/light_skyroot_planks/wisproot_planks.png deleted file mode 100644 index 4786cf07ce..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/light_skyroot_planks/wisproot_planks.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/light_skyroot_planks/wisproot_tiles.png b/src/main/resources/assets/aether/textures/blocks/light_skyroot_planks/wisproot_tiles.png deleted file mode 100644 index aa50801a54..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/light_skyroot_planks/wisproot_tiles.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/light_skyroot_planks/wisproot_tiles_small.png b/src/main/resources/assets/aether/textures/blocks/light_skyroot_planks/wisproot_tiles_small.png deleted file mode 100644 index b49d4e97c8..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/light_skyroot_planks/wisproot_tiles_small.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/light_skyroot_planks/wisproot_top_beam.png b/src/main/resources/assets/aether/textures/blocks/light_skyroot_planks/wisproot_top_beam.png deleted file mode 100644 index 456210ad16..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/light_skyroot_planks/wisproot_top_beam.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/light_skyroot_planks/wisproot_top_planks.png b/src/main/resources/assets/aether/textures/blocks/light_skyroot_planks/wisproot_top_planks.png deleted file mode 100644 index 2d13eca73f..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/light_skyroot_planks/wisproot_top_planks.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/logs/amberoot_log_side.png b/src/main/resources/assets/aether/textures/blocks/logs/amberoot_log_side.png deleted file mode 100644 index d8867b28b6..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/logs/amberoot_log_side.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/logs/amberoot_log_top.png b/src/main/resources/assets/aether/textures/blocks/logs/amberoot_log_top.png deleted file mode 100644 index fda100abbf..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/logs/amberoot_log_top.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/logs/greatroot_log_side.png b/src/main/resources/assets/aether/textures/blocks/logs/greatroot_log_side.png deleted file mode 100644 index 92998f6808..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/logs/greatroot_log_side.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/logs/greatroot_log_top.png b/src/main/resources/assets/aether/textures/blocks/logs/greatroot_log_top.png deleted file mode 100644 index 34ec96e98d..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/logs/greatroot_log_top.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/logs/skyroot_log_side.png b/src/main/resources/assets/aether/textures/blocks/logs/skyroot_log_side.png deleted file mode 100644 index cad43a489f..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/logs/skyroot_log_side.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/logs/skyroot_log_top.png b/src/main/resources/assets/aether/textures/blocks/logs/skyroot_log_top.png deleted file mode 100644 index fda100abbf..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/logs/skyroot_log_top.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/logs/therawood_log_side.png b/src/main/resources/assets/aether/textures/blocks/logs/therawood_log_side.png deleted file mode 100644 index 3240930b92..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/logs/therawood_log_side.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/logs/therawood_log_top.png b/src/main/resources/assets/aether/textures/blocks/logs/therawood_log_top.png deleted file mode 100644 index 5f72ad59c1..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/logs/therawood_log_top.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/logs/wisproot_log_side.png b/src/main/resources/assets/aether/textures/blocks/logs/wisproot_log_side.png deleted file mode 100644 index 3d8c2e98e0..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/logs/wisproot_log_side.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/logs/wisproot_log_top.png b/src/main/resources/assets/aether/textures/blocks/logs/wisproot_log_top.png deleted file mode 100644 index 6d0de2d048..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/logs/wisproot_log_top.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/orange_tree/orange_tree_bottom_ripe.png b/src/main/resources/assets/aether/textures/blocks/orange_tree/orange_tree_bottom_ripe.png deleted file mode 100644 index 07a31fcc66..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/orange_tree/orange_tree_bottom_ripe.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/orange_tree/orange_tree_bottom_stage_1.png b/src/main/resources/assets/aether/textures/blocks/orange_tree/orange_tree_bottom_stage_1.png deleted file mode 100644 index 0eea8e31ac..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/orange_tree/orange_tree_bottom_stage_1.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/orange_tree/orange_tree_bottom_stage_2.png b/src/main/resources/assets/aether/textures/blocks/orange_tree/orange_tree_bottom_stage_2.png deleted file mode 100644 index d7afd5cbd2..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/orange_tree/orange_tree_bottom_stage_2.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/orange_tree/orange_tree_bottom_stage_3.png b/src/main/resources/assets/aether/textures/blocks/orange_tree/orange_tree_bottom_stage_3.png deleted file mode 100644 index 07a31fcc66..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/orange_tree/orange_tree_bottom_stage_3.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/orange_tree/orange_tree_top_ripe.png b/src/main/resources/assets/aether/textures/blocks/orange_tree/orange_tree_top_ripe.png deleted file mode 100644 index 9654cb954a..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/orange_tree/orange_tree_top_ripe.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/orange_tree/orange_tree_top_stage_3.png b/src/main/resources/assets/aether/textures/blocks/orange_tree/orange_tree_top_stage_3.png deleted file mode 100644 index 618551b163..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/orange_tree/orange_tree_top_stage_3.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/orange_tree/orange_tree_top_stage_4.png b/src/main/resources/assets/aether/textures/blocks/orange_tree/orange_tree_top_stage_4.png deleted file mode 100644 index f415f1999c..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/orange_tree/orange_tree_top_stage_4.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/ores/ambrosium_ore.png b/src/main/resources/assets/aether/textures/blocks/ores/ambrosium_ore.png deleted file mode 100644 index bc3c6eb74c..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/ores/ambrosium_ore.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/ores/ambrosium_ore_overlay.png b/src/main/resources/assets/aether/textures/blocks/ores/ambrosium_ore_overlay.png deleted file mode 100644 index 1ecdd14907..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/ores/ambrosium_ore_overlay.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/ores/ambrosium_ore_overlay.png.mcmeta b/src/main/resources/assets/aether/textures/blocks/ores/ambrosium_ore_overlay.png.mcmeta deleted file mode 100644 index b90775422a..0000000000 --- a/src/main/resources/assets/aether/textures/blocks/ores/ambrosium_ore_overlay.png.mcmeta +++ /dev/null @@ -1,6 +0,0 @@ -{ - "animation": {}, - "aether": { - "glow": 9 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/aether/textures/blocks/ores/arkenium_ore.png b/src/main/resources/assets/aether/textures/blocks/ores/arkenium_ore.png deleted file mode 100644 index af9d182acd..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/ores/arkenium_ore.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/ores/gravitite_ore.png b/src/main/resources/assets/aether/textures/blocks/ores/gravitite_ore.png deleted file mode 100644 index 7e42102ee8..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/ores/gravitite_ore.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/ores/holystone_quartz_ore.png b/src/main/resources/assets/aether/textures/blocks/ores/holystone_quartz_ore.png deleted file mode 100644 index eeaf3afece..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/ores/holystone_quartz_ore.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/ores/icestone_ore.png b/src/main/resources/assets/aether/textures/blocks/ores/icestone_ore.png deleted file mode 100644 index abebd220dd..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/ores/icestone_ore.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/ores/zanite_ore.png b/src/main/resources/assets/aether/textures/blocks/ores/zanite_ore.png deleted file mode 100644 index d4ad8d48a1..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/ores/zanite_ore.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/plumproot_bottom.png b/src/main/resources/assets/aether/textures/blocks/plumproot_bottom.png deleted file mode 100644 index d4c63f9015..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/plumproot_bottom.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/plumproot_side.png b/src/main/resources/assets/aether/textures/blocks/plumproot_side.png deleted file mode 100644 index eddac3e4c3..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/plumproot_side.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/plumproot_top.png b/src/main/resources/assets/aether/textures/blocks/plumproot_top.png deleted file mode 100644 index cfa7fa9cf9..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/plumproot_top.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/quicksoil.png b/src/main/resources/assets/aether/textures/blocks/quicksoil.png deleted file mode 100644 index a58bc439e9..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/quicksoil.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/quicksoil_glass.png b/src/main/resources/assets/aether/textures/blocks/quicksoil_glass.png deleted file mode 100644 index 6278ab6439..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/quicksoil_glass.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/quicksoil_glass_pane_top.png b/src/main/resources/assets/aether/textures/blocks/quicksoil_glass_pane_top.png deleted file mode 100644 index fbc97ee87e..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/quicksoil_glass_pane_top.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/rusted_ferrosite.png b/src/main/resources/assets/aether/textures/blocks/rusted_ferrosite.png deleted file mode 100644 index bb39ec3570..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/rusted_ferrosite.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/saplings/amberoot_sapling.png b/src/main/resources/assets/aether/textures/blocks/saplings/amberoot_sapling.png deleted file mode 100644 index e61d201ee9..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/saplings/amberoot_sapling.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/saplings/blue_greatroot_sapling.png b/src/main/resources/assets/aether/textures/blocks/saplings/blue_greatroot_sapling.png deleted file mode 100644 index c0e66d5bd1..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/saplings/blue_greatroot_sapling.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/saplings/blue_skyroot_sapling.png b/src/main/resources/assets/aether/textures/blocks/saplings/blue_skyroot_sapling.png deleted file mode 100644 index a299abb5ef..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/saplings/blue_skyroot_sapling.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/saplings/blue_wisproot_sapling.png b/src/main/resources/assets/aether/textures/blocks/saplings/blue_wisproot_sapling.png deleted file mode 100644 index 50735c4660..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/saplings/blue_wisproot_sapling.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/saplings/dark_blue_greatroot_sapling.png b/src/main/resources/assets/aether/textures/blocks/saplings/dark_blue_greatroot_sapling.png deleted file mode 100644 index 6774f3f81c..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/saplings/dark_blue_greatroot_sapling.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/saplings/dark_blue_skyroot_sapling.png b/src/main/resources/assets/aether/textures/blocks/saplings/dark_blue_skyroot_sapling.png deleted file mode 100644 index 22425c3ed8..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/saplings/dark_blue_skyroot_sapling.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/saplings/dark_blue_wisproot_sapling.png b/src/main/resources/assets/aether/textures/blocks/saplings/dark_blue_wisproot_sapling.png deleted file mode 100644 index eff658934c..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/saplings/dark_blue_wisproot_sapling.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/saplings/green_greatroot_sapling.png b/src/main/resources/assets/aether/textures/blocks/saplings/green_greatroot_sapling.png deleted file mode 100644 index d40d6cc2fc..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/saplings/green_greatroot_sapling.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/saplings/green_skyroot_sapling.png b/src/main/resources/assets/aether/textures/blocks/saplings/green_skyroot_sapling.png deleted file mode 100644 index 50c48e989a..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/saplings/green_skyroot_sapling.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/saplings/green_wisproot_sapling.png b/src/main/resources/assets/aether/textures/blocks/saplings/green_wisproot_sapling.png deleted file mode 100644 index df98bf5146..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/saplings/green_wisproot_sapling.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/saplings/holiday_sapling.png b/src/main/resources/assets/aether/textures/blocks/saplings/holiday_sapling.png deleted file mode 100644 index cc4954a506..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/saplings/holiday_sapling.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/scatterglass.png b/src/main/resources/assets/aether/textures/blocks/scatterglass.png deleted file mode 100644 index adf16ca019..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/scatterglass.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/scatterglass_pane_top.png b/src/main/resources/assets/aether/textures/blocks/scatterglass_pane_top.png deleted file mode 100644 index e1bd268fdb..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/scatterglass_pane_top.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/sentrystone_bricks/sentrystone_base_bricks.png b/src/main/resources/assets/aether/textures/blocks/sentrystone_bricks/sentrystone_base_bricks.png deleted file mode 100644 index 4730d8a05d..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/sentrystone_bricks/sentrystone_base_bricks.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/sentrystone_bricks/sentrystone_base_bricks_lit.png b/src/main/resources/assets/aether/textures/blocks/sentrystone_bricks/sentrystone_base_bricks_lit.png deleted file mode 100644 index 287a675e32..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/sentrystone_bricks/sentrystone_base_bricks_lit.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/sentrystone_bricks/sentrystone_base_pillar.png b/src/main/resources/assets/aether/textures/blocks/sentrystone_bricks/sentrystone_base_pillar.png deleted file mode 100644 index d9b025d7ae..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/sentrystone_bricks/sentrystone_base_pillar.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/sentrystone_bricks/sentrystone_base_pillar_lit.png b/src/main/resources/assets/aether/textures/blocks/sentrystone_bricks/sentrystone_base_pillar_lit.png deleted file mode 100644 index 9c3e8c34d4..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/sentrystone_bricks/sentrystone_base_pillar_lit.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/sentrystone_bricks/sentrystone_base_top.png b/src/main/resources/assets/aether/textures/blocks/sentrystone_bricks/sentrystone_base_top.png deleted file mode 100644 index e70cb9ff5e..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/sentrystone_bricks/sentrystone_base_top.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/sentrystone_bricks/sentrystone_base_top_lit.png b/src/main/resources/assets/aether/textures/blocks/sentrystone_bricks/sentrystone_base_top_lit.png deleted file mode 100644 index 104cbfa242..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/sentrystone_bricks/sentrystone_base_top_lit.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/sentrystone_bricks/sentrystone_brick.png b/src/main/resources/assets/aether/textures/blocks/sentrystone_bricks/sentrystone_brick.png deleted file mode 100644 index 8e8600d552..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/sentrystone_bricks/sentrystone_brick.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/sentrystone_bricks/sentrystone_capstone_bricks.png b/src/main/resources/assets/aether/textures/blocks/sentrystone_bricks/sentrystone_capstone_bricks.png deleted file mode 100644 index 47c1e4436d..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/sentrystone_bricks/sentrystone_capstone_bricks.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/sentrystone_bricks/sentrystone_capstone_bricks_lit.png b/src/main/resources/assets/aether/textures/blocks/sentrystone_bricks/sentrystone_capstone_bricks_lit.png deleted file mode 100644 index 56dc5c8541..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/sentrystone_bricks/sentrystone_capstone_bricks_lit.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/sentrystone_bricks/sentrystone_capstone_pillar.png b/src/main/resources/assets/aether/textures/blocks/sentrystone_bricks/sentrystone_capstone_pillar.png deleted file mode 100644 index 5efc928714..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/sentrystone_bricks/sentrystone_capstone_pillar.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/sentrystone_bricks/sentrystone_capstone_pillar_lit.png b/src/main/resources/assets/aether/textures/blocks/sentrystone_bricks/sentrystone_capstone_pillar_lit.png deleted file mode 100644 index 2ea04b5f7f..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/sentrystone_bricks/sentrystone_capstone_pillar_lit.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/sentrystone_bricks/sentrystone_flagstones.png b/src/main/resources/assets/aether/textures/blocks/sentrystone_bricks/sentrystone_flagstones.png deleted file mode 100644 index e5c08faa15..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/sentrystone_bricks/sentrystone_flagstones.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/sentrystone_bricks/sentrystone_lightstone.png b/src/main/resources/assets/aether/textures/blocks/sentrystone_bricks/sentrystone_lightstone.png deleted file mode 100644 index 7a99499d68..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/sentrystone_bricks/sentrystone_lightstone.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/sentrystone_bricks/sentrystone_lightstone_lit.png b/src/main/resources/assets/aether/textures/blocks/sentrystone_bricks/sentrystone_lightstone_lit.png deleted file mode 100644 index c024edc182..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/sentrystone_bricks/sentrystone_lightstone_lit.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/sentrystone_bricks/sentrystone_pillar.png b/src/main/resources/assets/aether/textures/blocks/sentrystone_bricks/sentrystone_pillar.png deleted file mode 100644 index 8a8846642f..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/sentrystone_bricks/sentrystone_pillar.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/sentrystone_bricks/sentrystone_pillar_lit.png b/src/main/resources/assets/aether/textures/blocks/sentrystone_bricks/sentrystone_pillar_lit.png deleted file mode 100644 index 50fb45da01..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/sentrystone_bricks/sentrystone_pillar_lit.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/skyroot_bed/skyroot_bed_base_d.png b/src/main/resources/assets/aether/textures/blocks/skyroot_bed/skyroot_bed_base_d.png deleted file mode 100644 index 0ffcc48739..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/skyroot_bed/skyroot_bed_base_d.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/skyroot_bed/skyroot_bed_base_u.png b/src/main/resources/assets/aether/textures/blocks/skyroot_bed/skyroot_bed_base_u.png deleted file mode 100644 index 0aa8de86d1..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/skyroot_bed/skyroot_bed_base_u.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/skyroot_bed/skyroot_bed_base_w_s_e_n.png b/src/main/resources/assets/aether/textures/blocks/skyroot_bed/skyroot_bed_base_w_s_e_n.png deleted file mode 100644 index b94097636a..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/skyroot_bed/skyroot_bed_base_w_s_e_n.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/skyroot_bed/skyroot_bed_foot_cover_s_w_e.png b/src/main/resources/assets/aether/textures/blocks/skyroot_bed/skyroot_bed_foot_cover_s_w_e.png deleted file mode 100644 index ae12e4bacf..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/skyroot_bed/skyroot_bed_foot_cover_s_w_e.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/skyroot_bed/skyroot_bed_foot_cover_u.png b/src/main/resources/assets/aether/textures/blocks/skyroot_bed/skyroot_bed_foot_cover_u.png deleted file mode 100644 index 45a53c2e6a..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/skyroot_bed/skyroot_bed_foot_cover_u.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/skyroot_bed/skyroot_bed_head_cover_u_n_w_e.png b/src/main/resources/assets/aether/textures/blocks/skyroot_bed/skyroot_bed_head_cover_u_n_w_e.png deleted file mode 100644 index 885811d3bf..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/skyroot_bed/skyroot_bed_head_cover_u_n_w_e.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/skyroot_bed/skyroot_bed_headboard.png b/src/main/resources/assets/aether/textures/blocks/skyroot_bed/skyroot_bed_headboard.png deleted file mode 100644 index 4441c6de35..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/skyroot_bed/skyroot_bed_headboard.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/skyroot_bed/skyroot_bed_headboard_2.png b/src/main/resources/assets/aether/textures/blocks/skyroot_bed/skyroot_bed_headboard_2.png deleted file mode 100644 index a0e624b6ec..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/skyroot_bed/skyroot_bed_headboard_2.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/skyroot_bed/skyroot_bed_legs_d_s_n.png b/src/main/resources/assets/aether/textures/blocks/skyroot_bed/skyroot_bed_legs_d_s_n.png deleted file mode 100644 index ddb5230c2d..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/skyroot_bed/skyroot_bed_legs_d_s_n.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/skyroot_bed/skyroot_bed_legs_w_e.png b/src/main/resources/assets/aether/textures/blocks/skyroot_bed/skyroot_bed_legs_w_e.png deleted file mode 100644 index 3d719d5b7b..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/skyroot_bed/skyroot_bed_legs_w_e.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/skyroot_bed/skyroot_bed_mattress.png b/src/main/resources/assets/aether/textures/blocks/skyroot_bed/skyroot_bed_mattress.png deleted file mode 100644 index fbc2f76e8b..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/skyroot_bed/skyroot_bed_mattress.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/skyroot_bed/skyroot_bed_pillow_d_n_e.png b/src/main/resources/assets/aether/textures/blocks/skyroot_bed/skyroot_bed_pillow_d_n_e.png deleted file mode 100644 index b3837a944d..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/skyroot_bed/skyroot_bed_pillow_d_n_e.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/skyroot_bed/skyroot_bed_pillow_u_s_w.png b/src/main/resources/assets/aether/textures/blocks/skyroot_bed/skyroot_bed_pillow_u_s_w.png deleted file mode 100644 index 803eb0a272..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/skyroot_bed/skyroot_bed_pillow_u_s_w.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/skyroot_bookshelf.png b/src/main/resources/assets/aether/textures/blocks/skyroot_bookshelf.png deleted file mode 100644 index 179b4dd31a..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/skyroot_bookshelf.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/skyroot_frame_crude_scatterglass.png b/src/main/resources/assets/aether/textures/blocks/skyroot_frame_crude_scatterglass.png deleted file mode 100644 index 9296a811bd..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/skyroot_frame_crude_scatterglass.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/skyroot_frame_crude_scatterglass_pane_top.png b/src/main/resources/assets/aether/textures/blocks/skyroot_frame_crude_scatterglass_pane_top.png deleted file mode 100644 index 896e8a8447..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/skyroot_frame_crude_scatterglass_pane_top.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/skyroot_frame_quicksoil_glass.png b/src/main/resources/assets/aether/textures/blocks/skyroot_frame_quicksoil_glass.png deleted file mode 100644 index d6ba40259b..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/skyroot_frame_quicksoil_glass.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/skyroot_frame_quicksoil_glass_pane_top.png b/src/main/resources/assets/aether/textures/blocks/skyroot_frame_quicksoil_glass_pane_top.png deleted file mode 100644 index 896e8a8447..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/skyroot_frame_quicksoil_glass_pane_top.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/skyroot_frame_scatterglass.png b/src/main/resources/assets/aether/textures/blocks/skyroot_frame_scatterglass.png deleted file mode 100644 index 2d92f9386e..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/skyroot_frame_scatterglass.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/skyroot_frame_scatterglass_pane_top.png b/src/main/resources/assets/aether/textures/blocks/skyroot_frame_scatterglass_pane_top.png deleted file mode 100644 index 896e8a8447..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/skyroot_frame_scatterglass_pane_top.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/skyroot_planks/skyroot_base_beam.png b/src/main/resources/assets/aether/textures/blocks/skyroot_planks/skyroot_base_beam.png deleted file mode 100644 index 035be6373c..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/skyroot_planks/skyroot_base_beam.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/skyroot_planks/skyroot_base_planks.png b/src/main/resources/assets/aether/textures/blocks/skyroot_planks/skyroot_base_planks.png deleted file mode 100644 index 74d4be78c9..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/skyroot_planks/skyroot_base_planks.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/skyroot_planks/skyroot_base_top.png b/src/main/resources/assets/aether/textures/blocks/skyroot_planks/skyroot_base_top.png deleted file mode 100644 index 758af77988..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/skyroot_planks/skyroot_base_top.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/skyroot_planks/skyroot_beam.png b/src/main/resources/assets/aether/textures/blocks/skyroot_planks/skyroot_beam.png deleted file mode 100644 index 2aa8802f97..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/skyroot_planks/skyroot_beam.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/skyroot_planks/skyroot_floorboards.png b/src/main/resources/assets/aether/textures/blocks/skyroot_planks/skyroot_floorboards.png deleted file mode 100644 index 0664596428..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/skyroot_planks/skyroot_floorboards.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/skyroot_planks/skyroot_planks.png b/src/main/resources/assets/aether/textures/blocks/skyroot_planks/skyroot_planks.png deleted file mode 100644 index 97e773a0d5..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/skyroot_planks/skyroot_planks.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/skyroot_planks/skyroot_tiles.png b/src/main/resources/assets/aether/textures/blocks/skyroot_planks/skyroot_tiles.png deleted file mode 100644 index 2d73abe646..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/skyroot_planks/skyroot_tiles.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/skyroot_planks/skyroot_tiles_small.png b/src/main/resources/assets/aether/textures/blocks/skyroot_planks/skyroot_tiles_small.png deleted file mode 100644 index 9cbdc8ab2a..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/skyroot_planks/skyroot_tiles_small.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/skyroot_planks/skyroot_top_beam.png b/src/main/resources/assets/aether/textures/blocks/skyroot_planks/skyroot_top_beam.png deleted file mode 100644 index ae416f331e..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/skyroot_planks/skyroot_top_beam.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/skyroot_planks/skyroot_top_planks.png b/src/main/resources/assets/aether/textures/blocks/skyroot_planks/skyroot_top_planks.png deleted file mode 100644 index 85ca003bbf..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/skyroot_planks/skyroot_top_planks.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/skyroot_trapdoor.png b/src/main/resources/assets/aether/textures/blocks/skyroot_trapdoor.png deleted file mode 100644 index fa52ba09fa..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/skyroot_trapdoor.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/skyroot_twigs.png b/src/main/resources/assets/aether/textures/blocks/skyroot_twigs.png deleted file mode 100644 index 2cbb543944..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/skyroot_twigs.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/tall_grass/long_arctic.png b/src/main/resources/assets/aether/textures/blocks/tall_grass/long_arctic.png deleted file mode 100644 index e98c204f73..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/tall_grass/long_arctic.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/tall_grass/long_enchanted.png b/src/main/resources/assets/aether/textures/blocks/tall_grass/long_enchanted.png deleted file mode 100644 index d4a0c4e236..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/tall_grass/long_enchanted.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/tall_grass/long_highlands.png b/src/main/resources/assets/aether/textures/blocks/tall_grass/long_highlands.png deleted file mode 100644 index 6f8c7de763..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/tall_grass/long_highlands.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/tall_grass/long_irradiated.png b/src/main/resources/assets/aether/textures/blocks/tall_grass/long_irradiated.png deleted file mode 100644 index bc7c910764..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/tall_grass/long_irradiated.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/tall_grass/long_magnetic.png b/src/main/resources/assets/aether/textures/blocks/tall_grass/long_magnetic.png deleted file mode 100644 index d001fa9f11..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/tall_grass/long_magnetic.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/tall_grass/long_snowy.png b/src/main/resources/assets/aether/textures/blocks/tall_grass/long_snowy.png deleted file mode 100644 index e0f32f82b1..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/tall_grass/long_snowy.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/tall_grass/normal_arctic.png b/src/main/resources/assets/aether/textures/blocks/tall_grass/normal_arctic.png deleted file mode 100644 index 950e5a2476..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/tall_grass/normal_arctic.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/tall_grass/normal_enchanted.png b/src/main/resources/assets/aether/textures/blocks/tall_grass/normal_enchanted.png deleted file mode 100644 index 8b58eb4a44..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/tall_grass/normal_enchanted.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/tall_grass/normal_highlands.png b/src/main/resources/assets/aether/textures/blocks/tall_grass/normal_highlands.png deleted file mode 100644 index 0258f95cfa..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/tall_grass/normal_highlands.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/tall_grass/normal_irradiated.png b/src/main/resources/assets/aether/textures/blocks/tall_grass/normal_irradiated.png deleted file mode 100644 index 7245564d19..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/tall_grass/normal_irradiated.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/tall_grass/normal_magnetic.png b/src/main/resources/assets/aether/textures/blocks/tall_grass/normal_magnetic.png deleted file mode 100644 index 12dd3af69b..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/tall_grass/normal_magnetic.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/tall_grass/normal_snowy.png b/src/main/resources/assets/aether/textures/blocks/tall_grass/normal_snowy.png deleted file mode 100644 index e859a9d4a2..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/tall_grass/normal_snowy.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/tall_grass/short_arctic.png b/src/main/resources/assets/aether/textures/blocks/tall_grass/short_arctic.png deleted file mode 100644 index 572b579d9f..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/tall_grass/short_arctic.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/tall_grass/short_enchanted.png b/src/main/resources/assets/aether/textures/blocks/tall_grass/short_enchanted.png deleted file mode 100644 index e59b9b009e..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/tall_grass/short_enchanted.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/tall_grass/short_highlands.png b/src/main/resources/assets/aether/textures/blocks/tall_grass/short_highlands.png deleted file mode 100644 index d9be27ce68..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/tall_grass/short_highlands.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/tall_grass/short_irradiated.png b/src/main/resources/assets/aether/textures/blocks/tall_grass/short_irradiated.png deleted file mode 100644 index a338beae3d..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/tall_grass/short_irradiated.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/tall_grass/short_magnetic.png b/src/main/resources/assets/aether/textures/blocks/tall_grass/short_magnetic.png deleted file mode 100644 index 49336f2797..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/tall_grass/short_magnetic.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/tall_grass/short_snowy.png b/src/main/resources/assets/aether/textures/blocks/tall_grass/short_snowy.png deleted file mode 100644 index 01c3bdbc03..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/tall_grass/short_snowy.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/thera_grass/thera_dirt.png b/src/main/resources/assets/aether/textures/blocks/thera_grass/thera_dirt.png deleted file mode 100644 index c548bf51e0..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/thera_grass/thera_dirt.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/thera_grass/thera_grass_side.png b/src/main/resources/assets/aether/textures/blocks/thera_grass/thera_grass_side.png deleted file mode 100644 index 9e706f0507..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/thera_grass/thera_grass_side.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/thera_grass/thera_grass_top.png b/src/main/resources/assets/aether/textures/blocks/thera_grass/thera_grass_top.png deleted file mode 100644 index 015fbdadc4..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/thera_grass/thera_grass_top.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/therastone_bricks/therastone_base_bricks.png b/src/main/resources/assets/aether/textures/blocks/therastone_bricks/therastone_base_bricks.png deleted file mode 100644 index e74f4c0ea5..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/therastone_bricks/therastone_base_bricks.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/therastone_bricks/therastone_base_pillar.png b/src/main/resources/assets/aether/textures/blocks/therastone_bricks/therastone_base_pillar.png deleted file mode 100644 index 9792c04d50..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/therastone_bricks/therastone_base_pillar.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/therastone_bricks/therastone_bricks.png b/src/main/resources/assets/aether/textures/blocks/therastone_bricks/therastone_bricks.png deleted file mode 100644 index 575a42fac6..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/therastone_bricks/therastone_bricks.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/therastone_bricks/therastone_capstone_bricks.png b/src/main/resources/assets/aether/textures/blocks/therastone_bricks/therastone_capstone_bricks.png deleted file mode 100644 index 4a701317b4..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/therastone_bricks/therastone_capstone_bricks.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/therastone_bricks/therastone_capstone_pillar.png b/src/main/resources/assets/aether/textures/blocks/therastone_bricks/therastone_capstone_pillar.png deleted file mode 100644 index 5dd24b896d..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/therastone_bricks/therastone_capstone_pillar.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/therastone_bricks/therastone_flagstones.png b/src/main/resources/assets/aether/textures/blocks/therastone_bricks/therastone_flagstones.png deleted file mode 100644 index 1b27ccae44..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/therastone_bricks/therastone_flagstones.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/therastone_bricks/therastone_headstone.png b/src/main/resources/assets/aether/textures/blocks/therastone_bricks/therastone_headstone.png deleted file mode 100644 index 1be3a15606..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/therastone_bricks/therastone_headstone.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/therastone_bricks/therastone_keystone.png b/src/main/resources/assets/aether/textures/blocks/therastone_bricks/therastone_keystone.png deleted file mode 100644 index ff3f417c92..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/therastone_bricks/therastone_keystone.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/therastone_bricks/therastone_pillar.png b/src/main/resources/assets/aether/textures/blocks/therastone_bricks/therastone_pillar.png deleted file mode 100644 index 1887047f15..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/therastone_bricks/therastone_pillar.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/therawood_planks/therawood_base_beam.png b/src/main/resources/assets/aether/textures/blocks/therawood_planks/therawood_base_beam.png deleted file mode 100644 index 77aabdf01c..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/therawood_planks/therawood_base_beam.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/therawood_planks/therawood_base_planks.png b/src/main/resources/assets/aether/textures/blocks/therawood_planks/therawood_base_planks.png deleted file mode 100644 index 08804d18ba..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/therawood_planks/therawood_base_planks.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/therawood_planks/therawood_base_top.png b/src/main/resources/assets/aether/textures/blocks/therawood_planks/therawood_base_top.png deleted file mode 100644 index 9c042c18b5..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/therawood_planks/therawood_base_top.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/therawood_planks/therawood_beam.png b/src/main/resources/assets/aether/textures/blocks/therawood_planks/therawood_beam.png deleted file mode 100644 index d0ddad435d..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/therawood_planks/therawood_beam.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/therawood_planks/therawood_floorboards.png b/src/main/resources/assets/aether/textures/blocks/therawood_planks/therawood_floorboards.png deleted file mode 100644 index ed4c5aedef..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/therawood_planks/therawood_floorboards.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/therawood_planks/therawood_planks.png b/src/main/resources/assets/aether/textures/blocks/therawood_planks/therawood_planks.png deleted file mode 100644 index 59c2e747d3..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/therawood_planks/therawood_planks.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/therawood_planks/therawood_top_beam.png b/src/main/resources/assets/aether/textures/blocks/therawood_planks/therawood_top_beam.png deleted file mode 100644 index d40ee7afc3..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/therawood_planks/therawood_top_beam.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/therawood_planks/therawood_top_planks.png b/src/main/resources/assets/aether/textures/blocks/therawood_planks/therawood_top_planks.png deleted file mode 100644 index 7e6c076c66..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/therawood_planks/therawood_top_planks.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/valkyrie_grass/valkyrie_grass_0.png b/src/main/resources/assets/aether/textures/blocks/valkyrie_grass/valkyrie_grass_0.png deleted file mode 100644 index 4e1a3af443..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/valkyrie_grass/valkyrie_grass_0.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/valkyrie_grass/valkyrie_grass_1.png b/src/main/resources/assets/aether/textures/blocks/valkyrie_grass/valkyrie_grass_1.png deleted file mode 100644 index a5ab6f1982..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/valkyrie_grass/valkyrie_grass_1.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/valkyrie_grass/valkyrie_grass_2.png b/src/main/resources/assets/aether/textures/blocks/valkyrie_grass/valkyrie_grass_2.png deleted file mode 100644 index 028dcdbeb8..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/valkyrie_grass/valkyrie_grass_2.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/wildcard.png b/src/main/resources/assets/aether/textures/blocks/wildcard.png deleted file mode 100644 index 505ecd1620..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/wildcard.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/woven_sticks/woven_skyroot_sticks.png b/src/main/resources/assets/aether/textures/blocks/woven_sticks/woven_skyroot_sticks.png deleted file mode 100644 index a8d12fb7c9..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/woven_sticks/woven_skyroot_sticks.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/blocks/zanite_block.png b/src/main/resources/assets/aether/textures/blocks/zanite_block.png deleted file mode 100644 index b8d4b66631..0000000000 Binary files a/src/main/resources/assets/aether/textures/blocks/zanite_block.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/dialog/edison/edison_displeased.png b/src/main/resources/assets/aether/textures/dialog/edison/edison_displeased.png deleted file mode 100644 index e066eb9f2a..0000000000 Binary files a/src/main/resources/assets/aether/textures/dialog/edison/edison_displeased.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/dialog/edison/edison_grin.png b/src/main/resources/assets/aether/textures/dialog/edison/edison_grin.png deleted file mode 100644 index e066eb9f2a..0000000000 Binary files a/src/main/resources/assets/aether/textures/dialog/edison/edison_grin.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/dialog/edison/edison_neutral.png b/src/main/resources/assets/aether/textures/dialog/edison/edison_neutral.png deleted file mode 100644 index e066eb9f2a..0000000000 Binary files a/src/main/resources/assets/aether/textures/dialog/edison/edison_neutral.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/dialog/edison/edison_sigh.png b/src/main/resources/assets/aether/textures/dialog/edison/edison_sigh.png deleted file mode 100644 index e066eb9f2a..0000000000 Binary files a/src/main/resources/assets/aether/textures/dialog/edison/edison_sigh.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/dialog/edison/edison_thought.png b/src/main/resources/assets/aether/textures/dialog/edison/edison_thought.png deleted file mode 100644 index e066eb9f2a..0000000000 Binary files a/src/main/resources/assets/aether/textures/dialog/edison/edison_thought.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/dialog/josediya/josediya_displeased.png b/src/main/resources/assets/aether/textures/dialog/josediya/josediya_displeased.png deleted file mode 100644 index b7f62095d2..0000000000 Binary files a/src/main/resources/assets/aether/textures/dialog/josediya/josediya_displeased.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/dialog/josediya/josediya_grin.png b/src/main/resources/assets/aether/textures/dialog/josediya/josediya_grin.png deleted file mode 100644 index bd0a46bcc9..0000000000 Binary files a/src/main/resources/assets/aether/textures/dialog/josediya/josediya_grin.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/dialog/josediya/josediya_neutral.png b/src/main/resources/assets/aether/textures/dialog/josediya/josediya_neutral.png deleted file mode 100644 index e94ae3f447..0000000000 Binary files a/src/main/resources/assets/aether/textures/dialog/josediya/josediya_neutral.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/dialog/josediya/josediya_sigh.png b/src/main/resources/assets/aether/textures/dialog/josediya/josediya_sigh.png deleted file mode 100644 index 90a6ef2261..0000000000 Binary files a/src/main/resources/assets/aether/textures/dialog/josediya/josediya_sigh.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/dialog/josediya/josediya_thought.png b/src/main/resources/assets/aether/textures/dialog/josediya/josediya_thought.png deleted file mode 100644 index 28e18bd8f6..0000000000 Binary files a/src/main/resources/assets/aether/textures/dialog/josediya/josediya_thought.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/dialog/mysterious_figure/mysterious_figure_neutral.png b/src/main/resources/assets/aether/textures/dialog/mysterious_figure/mysterious_figure_neutral.png deleted file mode 100644 index 7c88cca1af..0000000000 Binary files a/src/main/resources/assets/aether/textures/dialog/mysterious_figure/mysterious_figure_neutral.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/dialog/necromancer/necromancer_neutral.png b/src/main/resources/assets/aether/textures/dialog/necromancer/necromancer_neutral.png deleted file mode 100644 index 30f341cd54..0000000000 Binary files a/src/main/resources/assets/aether/textures/dialog/necromancer/necromancer_neutral.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/discoveries/bestiary/aechor_plant/discovered.png b/src/main/resources/assets/aether/textures/discoveries/bestiary/aechor_plant/discovered.png deleted file mode 100644 index 9809ee8a7b..0000000000 Binary files a/src/main/resources/assets/aether/textures/discoveries/bestiary/aechor_plant/discovered.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/discoveries/bestiary/aechor_plant/discovered_slot.png b/src/main/resources/assets/aether/textures/discoveries/bestiary/aechor_plant/discovered_slot.png deleted file mode 100644 index 93f1300a59..0000000000 Binary files a/src/main/resources/assets/aether/textures/discoveries/bestiary/aechor_plant/discovered_slot.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/discoveries/bestiary/aechor_plant/silhouette.png b/src/main/resources/assets/aether/textures/discoveries/bestiary/aechor_plant/silhouette.png deleted file mode 100644 index 13e2d34897..0000000000 Binary files a/src/main/resources/assets/aether/textures/discoveries/bestiary/aechor_plant/silhouette.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/discoveries/bestiary/aechor_plant/silhouette_slot.png b/src/main/resources/assets/aether/textures/discoveries/bestiary/aechor_plant/silhouette_slot.png deleted file mode 100644 index 571b4d9cf7..0000000000 Binary files a/src/main/resources/assets/aether/textures/discoveries/bestiary/aechor_plant/silhouette_slot.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/discoveries/bestiary/aerbunny/discovered.png b/src/main/resources/assets/aether/textures/discoveries/bestiary/aerbunny/discovered.png deleted file mode 100644 index db71221386..0000000000 Binary files a/src/main/resources/assets/aether/textures/discoveries/bestiary/aerbunny/discovered.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/discoveries/bestiary/aerbunny/discovered_slot.png b/src/main/resources/assets/aether/textures/discoveries/bestiary/aerbunny/discovered_slot.png deleted file mode 100644 index 7de74a3a0f..0000000000 Binary files a/src/main/resources/assets/aether/textures/discoveries/bestiary/aerbunny/discovered_slot.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/discoveries/bestiary/aerbunny/silhouette.png b/src/main/resources/assets/aether/textures/discoveries/bestiary/aerbunny/silhouette.png deleted file mode 100644 index 002ad85a06..0000000000 Binary files a/src/main/resources/assets/aether/textures/discoveries/bestiary/aerbunny/silhouette.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/discoveries/bestiary/aerbunny/silhouette_slot.png b/src/main/resources/assets/aether/textures/discoveries/bestiary/aerbunny/silhouette_slot.png deleted file mode 100644 index edf82915ed..0000000000 Binary files a/src/main/resources/assets/aether/textures/discoveries/bestiary/aerbunny/silhouette_slot.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/discoveries/bestiary/burrukai/discovered.png b/src/main/resources/assets/aether/textures/discoveries/bestiary/burrukai/discovered.png deleted file mode 100644 index 22d6eb0ea2..0000000000 Binary files a/src/main/resources/assets/aether/textures/discoveries/bestiary/burrukai/discovered.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/discoveries/bestiary/burrukai/discovered_slot.png b/src/main/resources/assets/aether/textures/discoveries/bestiary/burrukai/discovered_slot.png deleted file mode 100644 index eb1a6d4cdb..0000000000 Binary files a/src/main/resources/assets/aether/textures/discoveries/bestiary/burrukai/discovered_slot.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/discoveries/bestiary/burrukai/silhouette.png b/src/main/resources/assets/aether/textures/discoveries/bestiary/burrukai/silhouette.png deleted file mode 100644 index 49e76d707b..0000000000 Binary files a/src/main/resources/assets/aether/textures/discoveries/bestiary/burrukai/silhouette.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/discoveries/bestiary/burrukai/silhouette_slot.png b/src/main/resources/assets/aether/textures/discoveries/bestiary/burrukai/silhouette_slot.png deleted file mode 100644 index 4dbec185a1..0000000000 Binary files a/src/main/resources/assets/aether/textures/discoveries/bestiary/burrukai/silhouette_slot.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/discoveries/bestiary/carrion_sprout/discovered.png b/src/main/resources/assets/aether/textures/discoveries/bestiary/carrion_sprout/discovered.png deleted file mode 100644 index 1bb4dcee35..0000000000 Binary files a/src/main/resources/assets/aether/textures/discoveries/bestiary/carrion_sprout/discovered.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/discoveries/bestiary/carrion_sprout/discovered_slot.png b/src/main/resources/assets/aether/textures/discoveries/bestiary/carrion_sprout/discovered_slot.png deleted file mode 100644 index 97072cc9ee..0000000000 Binary files a/src/main/resources/assets/aether/textures/discoveries/bestiary/carrion_sprout/discovered_slot.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/discoveries/bestiary/carrion_sprout/silhouette.png b/src/main/resources/assets/aether/textures/discoveries/bestiary/carrion_sprout/silhouette.png deleted file mode 100644 index 0d5fc2d23a..0000000000 Binary files a/src/main/resources/assets/aether/textures/discoveries/bestiary/carrion_sprout/silhouette.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/discoveries/bestiary/carrion_sprout/silhouette_slot.png b/src/main/resources/assets/aether/textures/discoveries/bestiary/carrion_sprout/silhouette_slot.png deleted file mode 100644 index 6cc4ec8a0c..0000000000 Binary files a/src/main/resources/assets/aether/textures/discoveries/bestiary/carrion_sprout/silhouette_slot.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/discoveries/bestiary/cockatrice/discovered_slot.png b/src/main/resources/assets/aether/textures/discoveries/bestiary/cockatrice/discovered_slot.png deleted file mode 100644 index 22a37765f0..0000000000 Binary files a/src/main/resources/assets/aether/textures/discoveries/bestiary/cockatrice/discovered_slot.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/discoveries/bestiary/cockatrice/silhouette_slot.png b/src/main/resources/assets/aether/textures/discoveries/bestiary/cockatrice/silhouette_slot.png deleted file mode 100644 index 8df8a316d3..0000000000 Binary files a/src/main/resources/assets/aether/textures/discoveries/bestiary/cockatrice/silhouette_slot.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/discoveries/bestiary/glactrix/discovered_slot.png b/src/main/resources/assets/aether/textures/discoveries/bestiary/glactrix/discovered_slot.png deleted file mode 100644 index ad4b9d17fe..0000000000 Binary files a/src/main/resources/assets/aether/textures/discoveries/bestiary/glactrix/discovered_slot.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/discoveries/bestiary/glactrix/silhouette_slot.png b/src/main/resources/assets/aether/textures/discoveries/bestiary/glactrix/silhouette_slot.png deleted file mode 100644 index f41d19d552..0000000000 Binary files a/src/main/resources/assets/aether/textures/discoveries/bestiary/glactrix/silhouette_slot.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/discoveries/bestiary/kirrid/discovered_slot.png b/src/main/resources/assets/aether/textures/discoveries/bestiary/kirrid/discovered_slot.png deleted file mode 100644 index d766d3f96b..0000000000 Binary files a/src/main/resources/assets/aether/textures/discoveries/bestiary/kirrid/discovered_slot.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/discoveries/bestiary/kirrid/silhouette_slot.png b/src/main/resources/assets/aether/textures/discoveries/bestiary/kirrid/silhouette_slot.png deleted file mode 100644 index 192252aebb..0000000000 Binary files a/src/main/resources/assets/aether/textures/discoveries/bestiary/kirrid/silhouette_slot.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/discoveries/bestiary/moa/discovered_slot.png b/src/main/resources/assets/aether/textures/discoveries/bestiary/moa/discovered_slot.png deleted file mode 100644 index 0597f52cd1..0000000000 Binary files a/src/main/resources/assets/aether/textures/discoveries/bestiary/moa/discovered_slot.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/discoveries/bestiary/moa/silhouette_slot.png b/src/main/resources/assets/aether/textures/discoveries/bestiary/moa/silhouette_slot.png deleted file mode 100644 index 7907c8746f..0000000000 Binary files a/src/main/resources/assets/aether/textures/discoveries/bestiary/moa/silhouette_slot.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/discoveries/bestiary/placeholder/discovered.png b/src/main/resources/assets/aether/textures/discoveries/bestiary/placeholder/discovered.png deleted file mode 100644 index 2c586e2251..0000000000 Binary files a/src/main/resources/assets/aether/textures/discoveries/bestiary/placeholder/discovered.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/discoveries/bestiary/placeholder/discovered_slot.png b/src/main/resources/assets/aether/textures/discoveries/bestiary/placeholder/discovered_slot.png deleted file mode 100644 index 4700ac9de8..0000000000 Binary files a/src/main/resources/assets/aether/textures/discoveries/bestiary/placeholder/discovered_slot.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/discoveries/bestiary/placeholder/silhouette.png b/src/main/resources/assets/aether/textures/discoveries/bestiary/placeholder/silhouette.png deleted file mode 100644 index 39f038fa60..0000000000 Binary files a/src/main/resources/assets/aether/textures/discoveries/bestiary/placeholder/silhouette.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/discoveries/bestiary/placeholder/silhouette_slot.png b/src/main/resources/assets/aether/textures/discoveries/bestiary/placeholder/silhouette_slot.png deleted file mode 100644 index cc300ee23f..0000000000 Binary files a/src/main/resources/assets/aether/textures/discoveries/bestiary/placeholder/silhouette_slot.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/discoveries/bestiary/skyroot_lizard/discovered_slot.png b/src/main/resources/assets/aether/textures/discoveries/bestiary/skyroot_lizard/discovered_slot.png deleted file mode 100644 index e0446cc622..0000000000 Binary files a/src/main/resources/assets/aether/textures/discoveries/bestiary/skyroot_lizard/discovered_slot.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/discoveries/bestiary/skyroot_lizard/silhouette_slot.png b/src/main/resources/assets/aether/textures/discoveries/bestiary/skyroot_lizard/silhouette_slot.png deleted file mode 100644 index b09d333d7b..0000000000 Binary files a/src/main/resources/assets/aether/textures/discoveries/bestiary/skyroot_lizard/silhouette_slot.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/discoveries/bestiary/swet/discovered_slot.png b/src/main/resources/assets/aether/textures/discoveries/bestiary/swet/discovered_slot.png deleted file mode 100644 index 453d22db2e..0000000000 Binary files a/src/main/resources/assets/aether/textures/discoveries/bestiary/swet/discovered_slot.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/discoveries/bestiary/swet/silhouette_slot.png b/src/main/resources/assets/aether/textures/discoveries/bestiary/swet/silhouette_slot.png deleted file mode 100644 index 3b07cfd089..0000000000 Binary files a/src/main/resources/assets/aether/textures/discoveries/bestiary/swet/silhouette_slot.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/discoveries/bestiary/taegore/discovered.png b/src/main/resources/assets/aether/textures/discoveries/bestiary/taegore/discovered.png deleted file mode 100644 index aba3b1977c..0000000000 Binary files a/src/main/resources/assets/aether/textures/discoveries/bestiary/taegore/discovered.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/discoveries/bestiary/taegore/discovered_slot.png b/src/main/resources/assets/aether/textures/discoveries/bestiary/taegore/discovered_slot.png deleted file mode 100644 index 72948f4b72..0000000000 Binary files a/src/main/resources/assets/aether/textures/discoveries/bestiary/taegore/discovered_slot.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/discoveries/bestiary/taegore/silhouette.png b/src/main/resources/assets/aether/textures/discoveries/bestiary/taegore/silhouette.png deleted file mode 100644 index f56b7dd06e..0000000000 Binary files a/src/main/resources/assets/aether/textures/discoveries/bestiary/taegore/silhouette.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/discoveries/bestiary/taegore/silhouette_slot.png b/src/main/resources/assets/aether/textures/discoveries/bestiary/taegore/silhouette_slot.png deleted file mode 100644 index f1997babc3..0000000000 Binary files a/src/main/resources/assets/aether/textures/discoveries/bestiary/taegore/silhouette_slot.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/discoveries/bestiary/tempest/discovered_slot.png b/src/main/resources/assets/aether/textures/discoveries/bestiary/tempest/discovered_slot.png deleted file mode 100644 index 50fa68258a..0000000000 Binary files a/src/main/resources/assets/aether/textures/discoveries/bestiary/tempest/discovered_slot.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/discoveries/bestiary/tempest/silhouette_slot.png b/src/main/resources/assets/aether/textures/discoveries/bestiary/tempest/silhouette_slot.png deleted file mode 100644 index 2bbeceae00..0000000000 Binary files a/src/main/resources/assets/aether/textures/discoveries/bestiary/tempest/silhouette_slot.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/discoveries/bestiary/varanys/discovered_slot.png b/src/main/resources/assets/aether/textures/discoveries/bestiary/varanys/discovered_slot.png deleted file mode 100644 index e366d81200..0000000000 Binary files a/src/main/resources/assets/aether/textures/discoveries/bestiary/varanys/discovered_slot.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/discoveries/bestiary/varanys/silhouette_slot.png b/src/main/resources/assets/aether/textures/discoveries/bestiary/varanys/silhouette_slot.png deleted file mode 100644 index 910b338902..0000000000 Binary files a/src/main/resources/assets/aether/textures/discoveries/bestiary/varanys/silhouette_slot.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/discoveries/bestiary/zephyr/discovered_slot.png b/src/main/resources/assets/aether/textures/discoveries/bestiary/zephyr/discovered_slot.png deleted file mode 100644 index a3cae2a7d1..0000000000 Binary files a/src/main/resources/assets/aether/textures/discoveries/bestiary/zephyr/discovered_slot.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/discoveries/bestiary/zephyr/silhouette_slot.png b/src/main/resources/assets/aether/textures/discoveries/bestiary/zephyr/silhouette_slot.png deleted file mode 100644 index 6ca2370cc5..0000000000 Binary files a/src/main/resources/assets/aether/textures/discoveries/bestiary/zephyr/silhouette_slot.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/entities/aechor_plant/aechor_plant.png b/src/main/resources/assets/aether/textures/entities/aechor_plant/aechor_plant.png deleted file mode 100644 index ed415c4d88..0000000000 Binary files a/src/main/resources/assets/aether/textures/entities/aechor_plant/aechor_plant.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/entities/aerbunny/aerbunny.png b/src/main/resources/assets/aether/textures/entities/aerbunny/aerbunny.png deleted file mode 100644 index d8d1a97ca4..0000000000 Binary files a/src/main/resources/assets/aether/textures/entities/aerbunny/aerbunny.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/entities/aerbunny/aerbunny_collar.png b/src/main/resources/assets/aether/textures/entities/aerbunny/aerbunny_collar.png deleted file mode 100644 index 3b8ec88405..0000000000 Binary files a/src/main/resources/assets/aether/textures/entities/aerbunny/aerbunny_collar.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/entities/aerwhale/aerwhale.png b/src/main/resources/assets/aether/textures/entities/aerwhale/aerwhale.png deleted file mode 100644 index 864fa06b6e..0000000000 Binary files a/src/main/resources/assets/aether/textures/entities/aerwhale/aerwhale.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/entities/arkenium_golem/arkenium_golem.png b/src/main/resources/assets/aether/textures/entities/arkenium_golem/arkenium_golem.png deleted file mode 100644 index d5d6b5956f..0000000000 Binary files a/src/main/resources/assets/aether/textures/entities/arkenium_golem/arkenium_golem.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/entities/arkenium_golem/arkenium_golem_eyes.png b/src/main/resources/assets/aether/textures/entities/arkenium_golem/arkenium_golem_eyes.png deleted file mode 100644 index c60adf954d..0000000000 Binary files a/src/main/resources/assets/aether/textures/entities/arkenium_golem/arkenium_golem_eyes.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/entities/bolts/scatterglass_bolt.png b/src/main/resources/assets/aether/textures/entities/bolts/scatterglass_bolt.png deleted file mode 100644 index afc389210d..0000000000 Binary files a/src/main/resources/assets/aether/textures/entities/bolts/scatterglass_bolt.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/entities/burrukai/babyburrukai.png b/src/main/resources/assets/aether/textures/entities/burrukai/babyburrukai.png deleted file mode 100644 index 1e97ea3022..0000000000 Binary files a/src/main/resources/assets/aether/textures/entities/burrukai/babyburrukai.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/entities/burrukai/babyburrukai_eyes_closed.png b/src/main/resources/assets/aether/textures/entities/burrukai/babyburrukai_eyes_closed.png deleted file mode 100644 index 8ad2f51423..0000000000 Binary files a/src/main/resources/assets/aether/textures/entities/burrukai/babyburrukai_eyes_closed.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/entities/burrukai/burrukai.png b/src/main/resources/assets/aether/textures/entities/burrukai/burrukai.png deleted file mode 100644 index c9aeb7ea1a..0000000000 Binary files a/src/main/resources/assets/aether/textures/entities/burrukai/burrukai.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/entities/burrukai/burrukai_eyes_closed.png b/src/main/resources/assets/aether/textures/entities/burrukai/burrukai_eyes_closed.png deleted file mode 100644 index bedec3fe64..0000000000 Binary files a/src/main/resources/assets/aether/textures/entities/burrukai/burrukai_eyes_closed.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/entities/carrion_sprout/carrion_sprout.png b/src/main/resources/assets/aether/textures/entities/carrion_sprout/carrion_sprout.png deleted file mode 100644 index 52430dc509..0000000000 Binary files a/src/main/resources/assets/aether/textures/entities/carrion_sprout/carrion_sprout.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/entities/cockatrice/cockatrice.png b/src/main/resources/assets/aether/textures/entities/cockatrice/cockatrice.png deleted file mode 100644 index 9e4966a77b..0000000000 Binary files a/src/main/resources/assets/aether/textures/entities/cockatrice/cockatrice.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/entities/cockatrice/cockatrice_glow.png b/src/main/resources/assets/aether/textures/entities/cockatrice/cockatrice_glow.png deleted file mode 100644 index 1576502813..0000000000 Binary files a/src/main/resources/assets/aether/textures/entities/cockatrice/cockatrice_glow.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/entities/companions/ethereal_wisp.png b/src/main/resources/assets/aether/textures/entities/companions/ethereal_wisp.png deleted file mode 100644 index 2ddd5e4bd9..0000000000 Binary files a/src/main/resources/assets/aether/textures/entities/companions/ethereal_wisp.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/entities/companions/fangrin.png b/src/main/resources/assets/aether/textures/entities/companions/fangrin.png deleted file mode 100644 index 87ffdc4c78..0000000000 Binary files a/src/main/resources/assets/aether/textures/entities/companions/fangrin.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/entities/companions/fleeting_wisp.png b/src/main/resources/assets/aether/textures/entities/companions/fleeting_wisp.png deleted file mode 100644 index cd80bba256..0000000000 Binary files a/src/main/resources/assets/aether/textures/entities/companions/fleeting_wisp.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/entities/companions/frostpine_totem.png b/src/main/resources/assets/aether/textures/entities/companions/frostpine_totem.png deleted file mode 100644 index dfddfe9881..0000000000 Binary files a/src/main/resources/assets/aether/textures/entities/companions/frostpine_totem.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/entities/companions/kraisith.png b/src/main/resources/assets/aether/textures/entities/companions/kraisith.png deleted file mode 100644 index 4d41d02a88..0000000000 Binary files a/src/main/resources/assets/aether/textures/entities/companions/kraisith.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/entities/companions/nex_spirit.png b/src/main/resources/assets/aether/textures/entities/companions/nex_spirit.png deleted file mode 100644 index f650a938b2..0000000000 Binary files a/src/main/resources/assets/aether/textures/entities/companions/nex_spirit.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/entities/companions/nex_spirit_broken.png b/src/main/resources/assets/aether/textures/entities/companions/nex_spirit_broken.png deleted file mode 100644 index 19f0242083..0000000000 Binary files a/src/main/resources/assets/aether/textures/entities/companions/nex_spirit_broken.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/entities/companions/pink_baby_swet.png b/src/main/resources/assets/aether/textures/entities/companions/pink_baby_swet.png deleted file mode 100644 index 030cd7a526..0000000000 Binary files a/src/main/resources/assets/aether/textures/entities/companions/pink_baby_swet.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/entities/companions/shade_of_arkenzus.png b/src/main/resources/assets/aether/textures/entities/companions/shade_of_arkenzus.png deleted file mode 100644 index adfbd8b7ab..0000000000 Binary files a/src/main/resources/assets/aether/textures/entities/companions/shade_of_arkenzus.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/entities/companions/soaring_wisp.png b/src/main/resources/assets/aether/textures/entities/companions/soaring_wisp.png deleted file mode 100644 index e460777c31..0000000000 Binary files a/src/main/resources/assets/aether/textures/entities/companions/soaring_wisp.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/entities/darts/enchanted_dart.png b/src/main/resources/assets/aether/textures/entities/darts/enchanted_dart.png deleted file mode 100644 index 1538926a23..0000000000 Binary files a/src/main/resources/assets/aether/textures/entities/darts/enchanted_dart.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/entities/darts/golden_dart.png b/src/main/resources/assets/aether/textures/entities/darts/golden_dart.png deleted file mode 100644 index b898c79703..0000000000 Binary files a/src/main/resources/assets/aether/textures/entities/darts/golden_dart.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/entities/darts/poison_dart.png b/src/main/resources/assets/aether/textures/entities/darts/poison_dart.png deleted file mode 100644 index 918f457416..0000000000 Binary files a/src/main/resources/assets/aether/textures/entities/darts/poison_dart.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/entities/glactrix/glactrix.png b/src/main/resources/assets/aether/textures/entities/glactrix/glactrix.png deleted file mode 100644 index fbd44ca521..0000000000 Binary files a/src/main/resources/assets/aether/textures/entities/glactrix/glactrix.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/entities/glactrix/glactrix_crystals.png b/src/main/resources/assets/aether/textures/entities/glactrix/glactrix_crystals.png deleted file mode 100644 index f3034d2313..0000000000 Binary files a/src/main/resources/assets/aether/textures/entities/glactrix/glactrix_crystals.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/entities/glitterwing/glitterwing.png b/src/main/resources/assets/aether/textures/entities/glitterwing/glitterwing.png deleted file mode 100644 index 10952a0cb7..0000000000 Binary files a/src/main/resources/assets/aether/textures/entities/glitterwing/glitterwing.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/entities/kirrid/babykirrid.png b/src/main/resources/assets/aether/textures/entities/kirrid/babykirrid.png deleted file mode 100644 index fa9804e0b7..0000000000 Binary files a/src/main/resources/assets/aether/textures/entities/kirrid/babykirrid.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/entities/kirrid/babykirrid_eyes_closed.png b/src/main/resources/assets/aether/textures/entities/kirrid/babykirrid_eyes_closed.png deleted file mode 100644 index af7ebe4a2c..0000000000 Binary files a/src/main/resources/assets/aether/textures/entities/kirrid/babykirrid_eyes_closed.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/entities/kirrid/eyes_closed.png b/src/main/resources/assets/aether/textures/entities/kirrid/eyes_closed.png deleted file mode 100644 index 5993bf2bae..0000000000 Binary files a/src/main/resources/assets/aether/textures/entities/kirrid/eyes_closed.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/entities/kirrid/kirrid.png b/src/main/resources/assets/aether/textures/entities/kirrid/kirrid.png deleted file mode 100644 index 3159e08d41..0000000000 Binary files a/src/main/resources/assets/aether/textures/entities/kirrid/kirrid.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/entities/kirrid/kirrid_wool.png b/src/main/resources/assets/aether/textures/entities/kirrid/kirrid_wool.png deleted file mode 100644 index 998aa50a95..0000000000 Binary files a/src/main/resources/assets/aether/textures/entities/kirrid/kirrid_wool.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/entities/moa/baby/baby_curved_highlight.png b/src/main/resources/assets/aether/textures/entities/moa/baby/baby_curved_highlight.png deleted file mode 100644 index 1af6547d5b..0000000000 Binary files a/src/main/resources/assets/aether/textures/entities/moa/baby/baby_curved_highlight.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/entities/moa/baby/baby_curved_main.png b/src/main/resources/assets/aether/textures/entities/moa/baby/baby_curved_main.png deleted file mode 100644 index f7b2dbfe53..0000000000 Binary files a/src/main/resources/assets/aether/textures/entities/moa/baby/baby_curved_main.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/entities/moa/baby/baby_eyes.png b/src/main/resources/assets/aether/textures/entities/moa/baby/baby_eyes.png deleted file mode 100644 index 6d626a8360..0000000000 Binary files a/src/main/resources/assets/aether/textures/entities/moa/baby/baby_eyes.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/entities/moa/baby/baby_eyes_closed.png b/src/main/resources/assets/aether/textures/entities/moa/baby/baby_eyes_closed.png deleted file mode 100644 index d9457c3443..0000000000 Binary files a/src/main/resources/assets/aether/textures/entities/moa/baby/baby_eyes_closed.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/entities/moa/baby/baby_flat_highlight.png b/src/main/resources/assets/aether/textures/entities/moa/baby/baby_flat_highlight.png deleted file mode 100644 index 2e0ed5e2fe..0000000000 Binary files a/src/main/resources/assets/aether/textures/entities/moa/baby/baby_flat_highlight.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/entities/moa/baby/baby_flat_main.png b/src/main/resources/assets/aether/textures/entities/moa/baby/baby_flat_main.png deleted file mode 100644 index 2e628f0718..0000000000 Binary files a/src/main/resources/assets/aether/textures/entities/moa/baby/baby_flat_main.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/entities/moa/baby/baby_keratin.png b/src/main/resources/assets/aether/textures/entities/moa/baby/baby_keratin.png deleted file mode 100644 index b553d64ad9..0000000000 Binary files a/src/main/resources/assets/aether/textures/entities/moa/baby/baby_keratin.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/entities/moa/baby/baby_pointed_highlight.png b/src/main/resources/assets/aether/textures/entities/moa/baby/baby_pointed_highlight.png deleted file mode 100644 index d006ebdbbf..0000000000 Binary files a/src/main/resources/assets/aether/textures/entities/moa/baby/baby_pointed_highlight.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/entities/moa/baby/baby_pointed_main.png b/src/main/resources/assets/aether/textures/entities/moa/baby/baby_pointed_main.png deleted file mode 100644 index 4ae05ed25b..0000000000 Binary files a/src/main/resources/assets/aether/textures/entities/moa/baby/baby_pointed_main.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/entities/moa/baby/baby_pupil_left.png b/src/main/resources/assets/aether/textures/entities/moa/baby/baby_pupil_left.png deleted file mode 100644 index af575c1b9e..0000000000 Binary files a/src/main/resources/assets/aether/textures/entities/moa/baby/baby_pupil_left.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/entities/moa/baby/baby_pupil_right.png b/src/main/resources/assets/aether/textures/entities/moa/baby/baby_pupil_right.png deleted file mode 100644 index 694c3c429a..0000000000 Binary files a/src/main/resources/assets/aether/textures/entities/moa/baby/baby_pupil_right.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/entities/moa/curved_highlight.png b/src/main/resources/assets/aether/textures/entities/moa/curved_highlight.png deleted file mode 100644 index 36508e36ab..0000000000 Binary files a/src/main/resources/assets/aether/textures/entities/moa/curved_highlight.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/entities/moa/curved_main.png b/src/main/resources/assets/aether/textures/entities/moa/curved_main.png deleted file mode 100644 index d2b0dee63a..0000000000 Binary files a/src/main/resources/assets/aether/textures/entities/moa/curved_main.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/entities/moa/eyes.png b/src/main/resources/assets/aether/textures/entities/moa/eyes.png deleted file mode 100644 index 037ea6fa82..0000000000 Binary files a/src/main/resources/assets/aether/textures/entities/moa/eyes.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/entities/moa/eyes_closed.png b/src/main/resources/assets/aether/textures/entities/moa/eyes_closed.png deleted file mode 100644 index 27da6809b4..0000000000 Binary files a/src/main/resources/assets/aether/textures/entities/moa/eyes_closed.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/entities/moa/flat_highlight.png b/src/main/resources/assets/aether/textures/entities/moa/flat_highlight.png deleted file mode 100644 index e2cba6210e..0000000000 Binary files a/src/main/resources/assets/aether/textures/entities/moa/flat_highlight.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/entities/moa/flat_main.png b/src/main/resources/assets/aether/textures/entities/moa/flat_main.png deleted file mode 100644 index eff37ed04b..0000000000 Binary files a/src/main/resources/assets/aether/textures/entities/moa/flat_main.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/entities/moa/keratin.png b/src/main/resources/assets/aether/textures/entities/moa/keratin.png deleted file mode 100644 index 1cc57e6acb..0000000000 Binary files a/src/main/resources/assets/aether/textures/entities/moa/keratin.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/entities/moa/pointed_highlight.png b/src/main/resources/assets/aether/textures/entities/moa/pointed_highlight.png deleted file mode 100644 index 88648c8b4c..0000000000 Binary files a/src/main/resources/assets/aether/textures/entities/moa/pointed_highlight.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/entities/moa/pointed_main.png b/src/main/resources/assets/aether/textures/entities/moa/pointed_main.png deleted file mode 100644 index d848f3b2b1..0000000000 Binary files a/src/main/resources/assets/aether/textures/entities/moa/pointed_main.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/entities/moa/pupil_left.png b/src/main/resources/assets/aether/textures/entities/moa/pupil_left.png deleted file mode 100644 index b05074cd63..0000000000 Binary files a/src/main/resources/assets/aether/textures/entities/moa/pupil_left.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/entities/moa/pupil_right.png b/src/main/resources/assets/aether/textures/entities/moa/pupil_right.png deleted file mode 100644 index 9057782e5d..0000000000 Binary files a/src/main/resources/assets/aether/textures/entities/moa/pupil_right.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/entities/moa/saddle.png b/src/main/resources/assets/aether/textures/entities/moa/saddle.png deleted file mode 100644 index ef867ac9db..0000000000 Binary files a/src/main/resources/assets/aether/textures/entities/moa/saddle.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/entities/moa/tongue.png b/src/main/resources/assets/aether/textures/entities/moa/tongue.png deleted file mode 100644 index 3a7cc89f7c..0000000000 Binary files a/src/main/resources/assets/aether/textures/entities/moa/tongue.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/entities/npcs/edison/eddy.png b/src/main/resources/assets/aether/textures/entities/npcs/edison/eddy.png deleted file mode 100644 index efcef1d05b..0000000000 Binary files a/src/main/resources/assets/aether/textures/entities/npcs/edison/eddy.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/entities/npcs/edison/edison.png b/src/main/resources/assets/aether/textures/entities/npcs/edison/edison.png deleted file mode 100644 index 7fb2bd11a4..0000000000 Binary files a/src/main/resources/assets/aether/textures/entities/npcs/edison/edison.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/entities/npcs/edison/edison_eyes_closed.png b/src/main/resources/assets/aether/textures/entities/npcs/edison/edison_eyes_closed.png deleted file mode 100644 index bde5829548..0000000000 Binary files a/src/main/resources/assets/aether/textures/entities/npcs/edison/edison_eyes_closed.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/entities/npcs/edison/edison_pupil_left.png b/src/main/resources/assets/aether/textures/entities/npcs/edison/edison_pupil_left.png deleted file mode 100644 index 19b0521d30..0000000000 Binary files a/src/main/resources/assets/aether/textures/entities/npcs/edison/edison_pupil_left.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/entities/npcs/edison/edison_pupil_right.png b/src/main/resources/assets/aether/textures/entities/npcs/edison/edison_pupil_right.png deleted file mode 100644 index b80423c743..0000000000 Binary files a/src/main/resources/assets/aether/textures/entities/npcs/edison/edison_pupil_right.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/entities/npcs/josediya/josediya.png b/src/main/resources/assets/aether/textures/entities/npcs/josediya/josediya.png deleted file mode 100644 index 3b717e2536..0000000000 Binary files a/src/main/resources/assets/aether/textures/entities/npcs/josediya/josediya.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/entities/npcs/josediya/josediya_eyes_closed.png b/src/main/resources/assets/aether/textures/entities/npcs/josediya/josediya_eyes_closed.png deleted file mode 100644 index c1b53c2739..0000000000 Binary files a/src/main/resources/assets/aether/textures/entities/npcs/josediya/josediya_eyes_closed.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/entities/npcs/josediya/josediya_pupil_left.png b/src/main/resources/assets/aether/textures/entities/npcs/josediya/josediya_pupil_left.png deleted file mode 100644 index 60d6fecd51..0000000000 Binary files a/src/main/resources/assets/aether/textures/entities/npcs/josediya/josediya_pupil_left.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/entities/npcs/josediya/josediya_pupil_right.png b/src/main/resources/assets/aether/textures/entities/npcs/josediya/josediya_pupil_right.png deleted file mode 100644 index 1a9387046f..0000000000 Binary files a/src/main/resources/assets/aether/textures/entities/npcs/josediya/josediya_pupil_right.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/entities/npcs/mysterious_figure/mysterious_figure.png b/src/main/resources/assets/aether/textures/entities/npcs/mysterious_figure/mysterious_figure.png deleted file mode 100644 index 190f228f28..0000000000 Binary files a/src/main/resources/assets/aether/textures/entities/npcs/mysterious_figure/mysterious_figure.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/entities/npcs/necromancer/necromancer.png b/src/main/resources/assets/aether/textures/entities/npcs/necromancer/necromancer.png deleted file mode 100644 index 81e6104271..0000000000 Binary files a/src/main/resources/assets/aether/textures/entities/npcs/necromancer/necromancer.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/entities/npcs/tivalier/tivalier.png b/src/main/resources/assets/aether/textures/entities/npcs/tivalier/tivalier.png deleted file mode 100644 index 4909c41955..0000000000 Binary files a/src/main/resources/assets/aether/textures/entities/npcs/tivalier/tivalier.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/entities/parachute/parachute_blue.png b/src/main/resources/assets/aether/textures/entities/parachute/parachute_blue.png deleted file mode 100644 index 26a23186cb..0000000000 Binary files a/src/main/resources/assets/aether/textures/entities/parachute/parachute_blue.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/entities/parachute/parachute_cold.png b/src/main/resources/assets/aether/textures/entities/parachute/parachute_cold.png deleted file mode 100644 index f234e83162..0000000000 Binary files a/src/main/resources/assets/aether/textures/entities/parachute/parachute_cold.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/entities/parachute/parachute_purple.png b/src/main/resources/assets/aether/textures/entities/parachute/parachute_purple.png deleted file mode 100644 index 6fc7e5ea68..0000000000 Binary files a/src/main/resources/assets/aether/textures/entities/parachute/parachute_purple.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/entities/phyg/phyg.png b/src/main/resources/assets/aether/textures/entities/phyg/phyg.png deleted file mode 100644 index 960844cb8a..0000000000 Binary files a/src/main/resources/assets/aether/textures/entities/phyg/phyg.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/entities/phyg/phyg_saddled.png b/src/main/resources/assets/aether/textures/entities/phyg/phyg_saddled.png deleted file mode 100644 index ec02f462a1..0000000000 Binary files a/src/main/resources/assets/aether/textures/entities/phyg/phyg_saddled.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/entities/projectiles/daggerfrost_snowball.png b/src/main/resources/assets/aether/textures/entities/projectiles/daggerfrost_snowball.png deleted file mode 100644 index c7a42929e5..0000000000 Binary files a/src/main/resources/assets/aether/textures/entities/projectiles/daggerfrost_snowball.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/entities/sheepuff/sheepuff_base.png b/src/main/resources/assets/aether/textures/entities/sheepuff/sheepuff_base.png deleted file mode 100644 index 2d49730c45..0000000000 Binary files a/src/main/resources/assets/aether/textures/entities/sheepuff/sheepuff_base.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/entities/sheepuff/sheepuff_wool.png b/src/main/resources/assets/aether/textures/entities/sheepuff/sheepuff_wool.png deleted file mode 100644 index dadd57832c..0000000000 Binary files a/src/main/resources/assets/aether/textures/entities/sheepuff/sheepuff_wool.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/entities/skyroot_lizard/skyroot_lizard_amberoot.png b/src/main/resources/assets/aether/textures/entities/skyroot_lizard/skyroot_lizard_amberoot.png deleted file mode 100644 index 8cfb914306..0000000000 Binary files a/src/main/resources/assets/aether/textures/entities/skyroot_lizard/skyroot_lizard_amberoot.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/entities/skyroot_lizard/skyroot_lizard_greatroot.png b/src/main/resources/assets/aether/textures/entities/skyroot_lizard/skyroot_lizard_greatroot.png deleted file mode 100644 index e0ba55960f..0000000000 Binary files a/src/main/resources/assets/aether/textures/entities/skyroot_lizard/skyroot_lizard_greatroot.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/entities/skyroot_lizard/skyroot_lizard_leaf.png b/src/main/resources/assets/aether/textures/entities/skyroot_lizard/skyroot_lizard_leaf.png deleted file mode 100644 index 791edc13ea..0000000000 Binary files a/src/main/resources/assets/aether/textures/entities/skyroot_lizard/skyroot_lizard_leaf.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/entities/skyroot_lizard/skyroot_lizard_skyroot.png b/src/main/resources/assets/aether/textures/entities/skyroot_lizard/skyroot_lizard_skyroot.png deleted file mode 100644 index 6fe28cc882..0000000000 Binary files a/src/main/resources/assets/aether/textures/entities/skyroot_lizard/skyroot_lizard_skyroot.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/entities/skyroot_lizard/skyroot_lizard_wisproot.png b/src/main/resources/assets/aether/textures/entities/skyroot_lizard/skyroot_lizard_wisproot.png deleted file mode 100644 index fc29e0c4cb..0000000000 Binary files a/src/main/resources/assets/aether/textures/entities/skyroot_lizard/skyroot_lizard_wisproot.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/entities/swet/swet_head_blue.png b/src/main/resources/assets/aether/textures/entities/swet/swet_head_blue.png deleted file mode 100644 index e8a5e09b5c..0000000000 Binary files a/src/main/resources/assets/aether/textures/entities/swet/swet_head_blue.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/entities/swet/swet_head_green.png b/src/main/resources/assets/aether/textures/entities/swet/swet_head_green.png deleted file mode 100644 index 7d4f9c1b0c..0000000000 Binary files a/src/main/resources/assets/aether/textures/entities/swet/swet_head_green.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/entities/swet/swet_head_purple.png b/src/main/resources/assets/aether/textures/entities/swet/swet_head_purple.png deleted file mode 100644 index f67e3d67ea..0000000000 Binary files a/src/main/resources/assets/aether/textures/entities/swet/swet_head_purple.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/entities/swet/swet_jelly_blue.png b/src/main/resources/assets/aether/textures/entities/swet/swet_jelly_blue.png deleted file mode 100644 index 5df13e060e..0000000000 Binary files a/src/main/resources/assets/aether/textures/entities/swet/swet_jelly_blue.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/entities/swet/swet_jelly_green.png b/src/main/resources/assets/aether/textures/entities/swet/swet_jelly_green.png deleted file mode 100644 index 1a538ad5de..0000000000 Binary files a/src/main/resources/assets/aether/textures/entities/swet/swet_jelly_green.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/entities/swet/swet_jelly_purple.png b/src/main/resources/assets/aether/textures/entities/swet/swet_jelly_purple.png deleted file mode 100644 index 1386d6dcfd..0000000000 Binary files a/src/main/resources/assets/aether/textures/entities/swet/swet_jelly_purple.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/entities/taegore/babytaegore.png b/src/main/resources/assets/aether/textures/entities/taegore/babytaegore.png deleted file mode 100644 index 55c6238b7a..0000000000 Binary files a/src/main/resources/assets/aether/textures/entities/taegore/babytaegore.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/entities/taegore/babytaegore_eyes_closed.png b/src/main/resources/assets/aether/textures/entities/taegore/babytaegore_eyes_closed.png deleted file mode 100644 index 2d4867228a..0000000000 Binary files a/src/main/resources/assets/aether/textures/entities/taegore/babytaegore_eyes_closed.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/entities/taegore/eyes_closed.png b/src/main/resources/assets/aether/textures/entities/taegore/eyes_closed.png deleted file mode 100644 index 15ed6a3573..0000000000 Binary files a/src/main/resources/assets/aether/textures/entities/taegore/eyes_closed.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/entities/taegore/taegore.png b/src/main/resources/assets/aether/textures/entities/taegore/taegore.png deleted file mode 100644 index 0d327003b4..0000000000 Binary files a/src/main/resources/assets/aether/textures/entities/taegore/taegore.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/entities/tempest/tempest_insect.png b/src/main/resources/assets/aether/textures/entities/tempest/tempest_insect.png deleted file mode 100644 index 8112c0ee98..0000000000 Binary files a/src/main/resources/assets/aether/textures/entities/tempest/tempest_insect.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/entities/tempest/tempest_insect_glow.png b/src/main/resources/assets/aether/textures/entities/tempest/tempest_insect_glow.png deleted file mode 100644 index 1c7c2120c4..0000000000 Binary files a/src/main/resources/assets/aether/textures/entities/tempest/tempest_insect_glow.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/entities/tempest/tempest_shell.png b/src/main/resources/assets/aether/textures/entities/tempest/tempest_shell.png deleted file mode 100644 index 4d36087b08..0000000000 Binary files a/src/main/resources/assets/aether/textures/entities/tempest/tempest_shell.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/entities/tempest/tempest_shell_glow.png b/src/main/resources/assets/aether/textures/entities/tempest/tempest_shell_glow.png deleted file mode 100644 index f5d0804ea1..0000000000 Binary files a/src/main/resources/assets/aether/textures/entities/tempest/tempest_shell_glow.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/entities/varanys/varanys.png b/src/main/resources/assets/aether/textures/entities/varanys/varanys.png deleted file mode 100644 index 8ac308a3bc..0000000000 Binary files a/src/main/resources/assets/aether/textures/entities/varanys/varanys.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/entities/zephyr/zephyr_shell.png b/src/main/resources/assets/aether/textures/entities/zephyr/zephyr_shell.png deleted file mode 100644 index d55266e2ef..0000000000 Binary files a/src/main/resources/assets/aether/textures/entities/zephyr/zephyr_shell.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/environment/skybox/skybox_clouds.png b/src/main/resources/assets/aether/textures/environment/skybox/skybox_clouds.png deleted file mode 100644 index 1e7bb1482f..0000000000 Binary files a/src/main/resources/assets/aether/textures/environment/skybox/skybox_clouds.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/environment/weather/rain_heavy.png b/src/main/resources/assets/aether/textures/environment/weather/rain_heavy.png deleted file mode 100644 index f88052cdc4..0000000000 Binary files a/src/main/resources/assets/aether/textures/environment/weather/rain_heavy.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/environment/weather/rain_light.png b/src/main/resources/assets/aether/textures/environment/weather/rain_light.png deleted file mode 100644 index 4d76e050e2..0000000000 Binary files a/src/main/resources/assets/aether/textures/environment/weather/rain_light.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/environment/weather/rain_storm.png b/src/main/resources/assets/aether/textures/environment/weather/rain_storm.png deleted file mode 100644 index 1868fa65ce..0000000000 Binary files a/src/main/resources/assets/aether/textures/environment/weather/rain_storm.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/environment/weather/snow_heavy.png b/src/main/resources/assets/aether/textures/environment/weather/snow_heavy.png deleted file mode 100644 index 6fb0eed58b..0000000000 Binary files a/src/main/resources/assets/aether/textures/environment/weather/snow_heavy.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/environment/weather/snow_light.png b/src/main/resources/assets/aether/textures/environment/weather/snow_light.png deleted file mode 100644 index b56b8be568..0000000000 Binary files a/src/main/resources/assets/aether/textures/environment/weather/snow_light.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/environment/weather/snow_storm.png b/src/main/resources/assets/aether/textures/environment/weather/snow_storm.png deleted file mode 100644 index ac37981b9f..0000000000 Binary files a/src/main/resources/assets/aether/textures/environment/weather/snow_storm.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/gui/conversation/next_arrow.png b/src/main/resources/assets/aether/textures/gui/conversation/next_arrow.png deleted file mode 100644 index e2c981454d..0000000000 Binary files a/src/main/resources/assets/aether/textures/gui/conversation/next_arrow.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/gui/guidebook/discovery/guidebook_discovery_left.png b/src/main/resources/assets/aether/textures/gui/guidebook/discovery/guidebook_discovery_left.png deleted file mode 100644 index 7bf0ea2a90..0000000000 Binary files a/src/main/resources/assets/aether/textures/gui/guidebook/discovery/guidebook_discovery_left.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/gui/guidebook/discovery/guidebook_discovery_right_effect.png b/src/main/resources/assets/aether/textures/gui/guidebook/discovery/guidebook_discovery_right_effect.png deleted file mode 100644 index 515253bf0b..0000000000 Binary files a/src/main/resources/assets/aether/textures/gui/guidebook/discovery/guidebook_discovery_right_effect.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/gui/guidebook/discovery/guidebook_discovery_right_general.png b/src/main/resources/assets/aether/textures/gui/guidebook/discovery/guidebook_discovery_right_general.png deleted file mode 100644 index 735926b260..0000000000 Binary files a/src/main/resources/assets/aether/textures/gui/guidebook/discovery/guidebook_discovery_right_general.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/gui/guidebook/discovery/guidebook_discovery_right_mob.png b/src/main/resources/assets/aether/textures/gui/guidebook/discovery/guidebook_discovery_right_mob.png deleted file mode 100644 index d2dc2f6cca..0000000000 Binary files a/src/main/resources/assets/aether/textures/gui/guidebook/discovery/guidebook_discovery_right_mob.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/gui/guidebook/discovery/guidebook_discovery_tab.png b/src/main/resources/assets/aether/textures/gui/guidebook/discovery/guidebook_discovery_tab.png deleted file mode 100644 index 9bc8942073..0000000000 Binary files a/src/main/resources/assets/aether/textures/gui/guidebook/discovery/guidebook_discovery_tab.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/gui/guidebook/discovery/guidebook_discovery_tab_pressed.png b/src/main/resources/assets/aether/textures/gui/guidebook/discovery/guidebook_discovery_tab_pressed.png deleted file mode 100644 index 67d88fb245..0000000000 Binary files a/src/main/resources/assets/aether/textures/gui/guidebook/discovery/guidebook_discovery_tab_pressed.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/gui/guidebook/discovery/icon_bestiary.png b/src/main/resources/assets/aether/textures/gui/guidebook/discovery/icon_bestiary.png deleted file mode 100644 index ac53afb7ae..0000000000 Binary files a/src/main/resources/assets/aether/textures/gui/guidebook/discovery/icon_bestiary.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/gui/guidebook/discovery/icon_character.png b/src/main/resources/assets/aether/textures/gui/guidebook/discovery/icon_character.png deleted file mode 100644 index 121e5fe2c2..0000000000 Binary files a/src/main/resources/assets/aether/textures/gui/guidebook/discovery/icon_character.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/gui/guidebook/discovery/icon_effects.png b/src/main/resources/assets/aether/textures/gui/guidebook/discovery/icon_effects.png deleted file mode 100644 index 72ea5354df..0000000000 Binary files a/src/main/resources/assets/aether/textures/gui/guidebook/discovery/icon_effects.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/gui/guidebook/discovery/icon_landmark.png b/src/main/resources/assets/aether/textures/gui/guidebook/discovery/icon_landmark.png deleted file mode 100644 index b256e967a4..0000000000 Binary files a/src/main/resources/assets/aether/textures/gui/guidebook/discovery/icon_landmark.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/gui/guidebook/guidebook_base.png b/src/main/resources/assets/aether/textures/gui/guidebook/guidebook_base.png deleted file mode 100644 index 54a765d839..0000000000 Binary files a/src/main/resources/assets/aether/textures/gui/guidebook/guidebook_base.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/gui/guidebook/guidebook_gui.png b/src/main/resources/assets/aether/textures/gui/guidebook/guidebook_gui.png deleted file mode 100644 index 27195bb1cb..0000000000 Binary files a/src/main/resources/assets/aether/textures/gui/guidebook/guidebook_gui.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/gui/guidebook/guidebook_scroll_bar.png b/src/main/resources/assets/aether/textures/gui/guidebook/guidebook_scroll_bar.png deleted file mode 100644 index 08fb62e110..0000000000 Binary files a/src/main/resources/assets/aether/textures/gui/guidebook/guidebook_scroll_bar.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/gui/guidebook/guidebook_scroll_knob.png b/src/main/resources/assets/aether/textures/gui/guidebook/guidebook_scroll_knob.png deleted file mode 100644 index 463ac2b2d6..0000000000 Binary files a/src/main/resources/assets/aether/textures/gui/guidebook/guidebook_scroll_knob.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/gui/guidebook/guidebook_scroll_knob_disabled.png b/src/main/resources/assets/aether/textures/gui/guidebook/guidebook_scroll_knob_disabled.png deleted file mode 100644 index fe1490ccdc..0000000000 Binary files a/src/main/resources/assets/aether/textures/gui/guidebook/guidebook_scroll_knob_disabled.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/gui/guidebook/icons/armor.png b/src/main/resources/assets/aether/textures/gui/guidebook/icons/armor.png deleted file mode 100644 index 4dd1314154..0000000000 Binary files a/src/main/resources/assets/aether/textures/gui/guidebook/icons/armor.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/gui/guidebook/icons/backing.png b/src/main/resources/assets/aether/textures/gui/guidebook/icons/backing.png deleted file mode 100644 index 854d38ac06..0000000000 Binary files a/src/main/resources/assets/aether/textures/gui/guidebook/icons/backing.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/gui/guidebook/icons/bar_outline.png b/src/main/resources/assets/aether/textures/gui/guidebook/icons/bar_outline.png deleted file mode 100644 index 3e2d0a76ac..0000000000 Binary files a/src/main/resources/assets/aether/textures/gui/guidebook/icons/bar_outline.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/gui/guidebook/icons/buildup_bar.png b/src/main/resources/assets/aether/textures/gui/guidebook/icons/buildup_bar.png deleted file mode 100644 index 693a22792b..0000000000 Binary files a/src/main/resources/assets/aether/textures/gui/guidebook/icons/buildup_bar.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/gui/guidebook/icons/heart.png b/src/main/resources/assets/aether/textures/gui/guidebook/icons/heart.png deleted file mode 100644 index 342ffbdab2..0000000000 Binary files a/src/main/resources/assets/aether/textures/gui/guidebook/icons/heart.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/gui/guidebook/inventory/guidebook_inventory_left.png b/src/main/resources/assets/aether/textures/gui/guidebook/inventory/guidebook_inventory_left.png deleted file mode 100644 index c9debf35e8..0000000000 Binary files a/src/main/resources/assets/aether/textures/gui/guidebook/inventory/guidebook_inventory_left.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/gui/guidebook/inventory/guidebook_inventory_right_creative.png b/src/main/resources/assets/aether/textures/gui/guidebook/inventory/guidebook_inventory_right_creative.png deleted file mode 100644 index c3c1a115c5..0000000000 Binary files a/src/main/resources/assets/aether/textures/gui/guidebook/inventory/guidebook_inventory_right_creative.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/gui/guidebook/inventory/guidebook_inventory_right_survival.png b/src/main/resources/assets/aether/textures/gui/guidebook/inventory/guidebook_inventory_right_survival.png deleted file mode 100644 index f3424c1233..0000000000 Binary files a/src/main/resources/assets/aether/textures/gui/guidebook/inventory/guidebook_inventory_right_survival.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/gui/guidebook/lore_tome/guidebook_loretome_left.png b/src/main/resources/assets/aether/textures/gui/guidebook/lore_tome/guidebook_loretome_left.png deleted file mode 100644 index c21b8d7928..0000000000 Binary files a/src/main/resources/assets/aether/textures/gui/guidebook/lore_tome/guidebook_loretome_left.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/gui/guidebook/lore_tome/guidebook_loretome_right.png b/src/main/resources/assets/aether/textures/gui/guidebook/lore_tome/guidebook_loretome_right.png deleted file mode 100644 index 5ef9159430..0000000000 Binary files a/src/main/resources/assets/aether/textures/gui/guidebook/lore_tome/guidebook_loretome_right.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/gui/guidebook/status/guidebook_status_left.png b/src/main/resources/assets/aether/textures/gui/guidebook/status/guidebook_status_left.png deleted file mode 100644 index 7967f78b78..0000000000 Binary files a/src/main/resources/assets/aether/textures/gui/guidebook/status/guidebook_status_left.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/gui/guidebook/status/guidebook_status_right.png b/src/main/resources/assets/aether/textures/gui/guidebook/status/guidebook_status_right.png deleted file mode 100644 index 82c4c6a9ea..0000000000 Binary files a/src/main/resources/assets/aether/textures/gui/guidebook/status/guidebook_status_right.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/gui/intro/gg_logo.png b/src/main/resources/assets/aether/textures/gui/intro/gg_logo.png deleted file mode 100644 index bf8149d2dd..0000000000 Binary files a/src/main/resources/assets/aether/textures/gui/intro/gg_logo.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/gui/intro/highlands.png b/src/main/resources/assets/aether/textures/gui/intro/highlands.png deleted file mode 100644 index 9b41c29c48..0000000000 Binary files a/src/main/resources/assets/aether/textures/gui/intro/highlands.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/gui/intro/hue_background.png b/src/main/resources/assets/aether/textures/gui/intro/hue_background.png deleted file mode 100644 index 67a02ee03c..0000000000 Binary files a/src/main/resources/assets/aether/textures/gui/intro/hue_background.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/gui/inventory/accessories/backpack.png b/src/main/resources/assets/aether/textures/gui/inventory/accessories/backpack.png deleted file mode 100644 index 2ea8971756..0000000000 Binary files a/src/main/resources/assets/aether/textures/gui/inventory/accessories/backpack.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/gui/inventory/accessories/backpack_creative.png b/src/main/resources/assets/aether/textures/gui/inventory/accessories/backpack_creative.png deleted file mode 100644 index b9cedde2af..0000000000 Binary files a/src/main/resources/assets/aether/textures/gui/inventory/accessories/backpack_creative.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/gui/inventory/accessories/backpack_creative_pattern.png b/src/main/resources/assets/aether/textures/gui/inventory/accessories/backpack_creative_pattern.png deleted file mode 100644 index a14959f3d4..0000000000 Binary files a/src/main/resources/assets/aether/textures/gui/inventory/accessories/backpack_creative_pattern.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/gui/inventory/accessories/backpack_pattern.png b/src/main/resources/assets/aether/textures/gui/inventory/accessories/backpack_pattern.png deleted file mode 100644 index b0681a28f0..0000000000 Binary files a/src/main/resources/assets/aether/textures/gui/inventory/accessories/backpack_pattern.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/gui/inventory/accessories/equipment.png b/src/main/resources/assets/aether/textures/gui/inventory/accessories/equipment.png deleted file mode 100644 index 459d1e74fe..0000000000 Binary files a/src/main/resources/assets/aether/textures/gui/inventory/accessories/equipment.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/gui/inventory/accessories/equipment_pattern.png b/src/main/resources/assets/aether/textures/gui/inventory/accessories/equipment_pattern.png deleted file mode 100644 index 7902a42b23..0000000000 Binary files a/src/main/resources/assets/aether/textures/gui/inventory/accessories/equipment_pattern.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/gui/inventory/book_recipes.png b/src/main/resources/assets/aether/textures/gui/inventory/book_recipes.png deleted file mode 100644 index f482fa9e2f..0000000000 Binary files a/src/main/resources/assets/aether/textures/gui/inventory/book_recipes.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/gui/inventory/book_scroll_bar.png b/src/main/resources/assets/aether/textures/gui/inventory/book_scroll_bar.png deleted file mode 100644 index e5e75d4500..0000000000 Binary files a/src/main/resources/assets/aether/textures/gui/inventory/book_scroll_bar.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/gui/inventory/crafting_option.png b/src/main/resources/assets/aether/textures/gui/inventory/crafting_option.png deleted file mode 100644 index 8f094dd69a..0000000000 Binary files a/src/main/resources/assets/aether/textures/gui/inventory/crafting_option.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/gui/inventory/crafting_option_hover.png b/src/main/resources/assets/aether/textures/gui/inventory/crafting_option_hover.png deleted file mode 100644 index ccac3e76e2..0000000000 Binary files a/src/main/resources/assets/aether/textures/gui/inventory/crafting_option_hover.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/gui/inventory/dark_crafting_overlay.png b/src/main/resources/assets/aether/textures/gui/inventory/dark_crafting_overlay.png deleted file mode 100644 index c10d4c044a..0000000000 Binary files a/src/main/resources/assets/aether/textures/gui/inventory/dark_crafting_overlay.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/gui/inventory/dark_slot_overlay.png b/src/main/resources/assets/aether/textures/gui/inventory/dark_slot_overlay.png deleted file mode 100644 index 9cd2abc591..0000000000 Binary files a/src/main/resources/assets/aether/textures/gui/inventory/dark_slot_overlay.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/gui/inventory/down_arrow.png b/src/main/resources/assets/aether/textures/gui/inventory/down_arrow.png deleted file mode 100644 index 08a06a9ca0..0000000000 Binary files a/src/main/resources/assets/aether/textures/gui/inventory/down_arrow.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/gui/inventory/icestone_cooler.png b/src/main/resources/assets/aether/textures/gui/inventory/icestone_cooler.png deleted file mode 100644 index 1062b80c3a..0000000000 Binary files a/src/main/resources/assets/aether/textures/gui/inventory/icestone_cooler.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/gui/inventory/incubator.png b/src/main/resources/assets/aether/textures/gui/inventory/incubator.png deleted file mode 100644 index 955d7735e8..0000000000 Binary files a/src/main/resources/assets/aether/textures/gui/inventory/incubator.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/gui/inventory/masonry_bench.png b/src/main/resources/assets/aether/textures/gui/inventory/masonry_bench.png deleted file mode 100644 index 0ddc8cd80b..0000000000 Binary files a/src/main/resources/assets/aether/textures/gui/inventory/masonry_bench.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/gui/inventory/scroll_bar.png b/src/main/resources/assets/aether/textures/gui/inventory/scroll_bar.png deleted file mode 100644 index 83ac0163b0..0000000000 Binary files a/src/main/resources/assets/aether/textures/gui/inventory/scroll_bar.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/gui/inventory/slot_no_interaction.png b/src/main/resources/assets/aether/textures/gui/inventory/slot_no_interaction.png deleted file mode 100644 index c73cf7696c..0000000000 Binary files a/src/main/resources/assets/aether/textures/gui/inventory/slot_no_interaction.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/gui/inventory/slot_overlay.png b/src/main/resources/assets/aether/textures/gui/inventory/slot_overlay.png deleted file mode 100644 index a07e138984..0000000000 Binary files a/src/main/resources/assets/aether/textures/gui/inventory/slot_overlay.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/gui/inventory/up_arrow.png b/src/main/resources/assets/aether/textures/gui/inventory/up_arrow.png deleted file mode 100644 index d5b9a82a0c..0000000000 Binary files a/src/main/resources/assets/aether/textures/gui/inventory/up_arrow.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/gui/inventory/x_button.png b/src/main/resources/assets/aether/textures/gui/inventory/x_button.png deleted file mode 100644 index b23bb69fb1..0000000000 Binary files a/src/main/resources/assets/aether/textures/gui/inventory/x_button.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/gui/notice/backdrop.png b/src/main/resources/assets/aether/textures/gui/notice/backdrop.png deleted file mode 100644 index ae8db7e0c4..0000000000 Binary files a/src/main/resources/assets/aether/textures/gui/notice/backdrop.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/gui/notice/matrix.png b/src/main/resources/assets/aether/textures/gui/notice/matrix.png deleted file mode 100644 index 4d56843a4f..0000000000 Binary files a/src/main/resources/assets/aether/textures/gui/notice/matrix.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/gui/overlay/effects/ambrosium_poisoning.png b/src/main/resources/assets/aether/textures/gui/overlay/effects/ambrosium_poisoning.png deleted file mode 100644 index ea47fec814..0000000000 Binary files a/src/main/resources/assets/aether/textures/gui/overlay/effects/ambrosium_poisoning.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/gui/overlay/effects/bar_highlight.png b/src/main/resources/assets/aether/textures/gui/overlay/effects/bar_highlight.png deleted file mode 100644 index 4c96418dae..0000000000 Binary files a/src/main/resources/assets/aether/textures/gui/overlay/effects/bar_highlight.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/gui/overlay/effects/bar_outline.png b/src/main/resources/assets/aether/textures/gui/overlay/effects/bar_outline.png deleted file mode 100644 index 8130c72538..0000000000 Binary files a/src/main/resources/assets/aether/textures/gui/overlay/effects/bar_outline.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/gui/overlay/effects/bleed.png b/src/main/resources/assets/aether/textures/gui/overlay/effects/bleed.png deleted file mode 100644 index bc5531b57c..0000000000 Binary files a/src/main/resources/assets/aether/textures/gui/overlay/effects/bleed.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/gui/overlay/effects/buildup_bar.png b/src/main/resources/assets/aether/textures/gui/overlay/effects/buildup_bar.png deleted file mode 100644 index c75819517a..0000000000 Binary files a/src/main/resources/assets/aether/textures/gui/overlay/effects/buildup_bar.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/gui/overlay/effects/cockatrice_venom.png b/src/main/resources/assets/aether/textures/gui/overlay/effects/cockatrice_venom.png deleted file mode 100644 index 511a95250d..0000000000 Binary files a/src/main/resources/assets/aether/textures/gui/overlay/effects/cockatrice_venom.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/gui/overlay/effects/fracture.png b/src/main/resources/assets/aether/textures/gui/overlay/effects/fracture.png deleted file mode 100644 index cab9540a14..0000000000 Binary files a/src/main/resources/assets/aether/textures/gui/overlay/effects/fracture.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/gui/overlay/effects/freeze.png b/src/main/resources/assets/aether/textures/gui/overlay/effects/freeze.png deleted file mode 100644 index d843a2d9e4..0000000000 Binary files a/src/main/resources/assets/aether/textures/gui/overlay/effects/freeze.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/gui/overlay/effects/fungal_rot.png b/src/main/resources/assets/aether/textures/gui/overlay/effects/fungal_rot.png deleted file mode 100644 index d6996ea333..0000000000 Binary files a/src/main/resources/assets/aether/textures/gui/overlay/effects/fungal_rot.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/gui/overlay/effects/guard_break.png b/src/main/resources/assets/aether/textures/gui/overlay/effects/guard_break.png deleted file mode 100644 index 4e611cb0ff..0000000000 Binary files a/src/main/resources/assets/aether/textures/gui/overlay/effects/guard_break.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/gui/overlay/effects/irradiation.png b/src/main/resources/assets/aether/textures/gui/overlay/effects/irradiation.png deleted file mode 100644 index 7787961ea8..0000000000 Binary files a/src/main/resources/assets/aether/textures/gui/overlay/effects/irradiation.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/gui/overlay/effects/stun.png b/src/main/resources/assets/aether/textures/gui/overlay/effects/stun.png deleted file mode 100644 index e99d876a0c..0000000000 Binary files a/src/main/resources/assets/aether/textures/gui/overlay/effects/stun.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/gui/overlay/effects/teas/saturation_boost.png b/src/main/resources/assets/aether/textures/gui/overlay/effects/teas/saturation_boost.png deleted file mode 100644 index d9366632df..0000000000 Binary files a/src/main/resources/assets/aether/textures/gui/overlay/effects/teas/saturation_boost.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/gui/overlay/effects/toxin.png b/src/main/resources/assets/aether/textures/gui/overlay/effects/toxin.png deleted file mode 100644 index 1e502fad45..0000000000 Binary files a/src/main/resources/assets/aether/textures/gui/overlay/effects/toxin.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/gui/overlay/effects/webbing.png b/src/main/resources/assets/aether/textures/gui/overlay/effects/webbing.png deleted file mode 100644 index c81744b2f3..0000000000 Binary files a/src/main/resources/assets/aether/textures/gui/overlay/effects/webbing.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/gui/overlay/impact_damage.png b/src/main/resources/assets/aether/textures/gui/overlay/impact_damage.png deleted file mode 100644 index 5e3b031ea2..0000000000 Binary files a/src/main/resources/assets/aether/textures/gui/overlay/impact_damage.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/gui/overlay/impact_defense.png b/src/main/resources/assets/aether/textures/gui/overlay/impact_defense.png deleted file mode 100644 index 751760a05d..0000000000 Binary files a/src/main/resources/assets/aether/textures/gui/overlay/impact_defense.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/gui/overlay/pierce_damage.png b/src/main/resources/assets/aether/textures/gui/overlay/pierce_damage.png deleted file mode 100644 index 350e7b8eab..0000000000 Binary files a/src/main/resources/assets/aether/textures/gui/overlay/pierce_damage.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/gui/overlay/pierce_defense.png b/src/main/resources/assets/aether/textures/gui/overlay/pierce_defense.png deleted file mode 100644 index 2eea0aac5b..0000000000 Binary files a/src/main/resources/assets/aether/textures/gui/overlay/pierce_defense.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/gui/overlay/server_stall.png b/src/main/resources/assets/aether/textures/gui/overlay/server_stall.png deleted file mode 100644 index f78395ec3f..0000000000 Binary files a/src/main/resources/assets/aether/textures/gui/overlay/server_stall.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/gui/overlay/slash_damage.png b/src/main/resources/assets/aether/textures/gui/overlay/slash_damage.png deleted file mode 100644 index ed0982189b..0000000000 Binary files a/src/main/resources/assets/aether/textures/gui/overlay/slash_damage.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/gui/overlay/slash_defense.png b/src/main/resources/assets/aether/textures/gui/overlay/slash_defense.png deleted file mode 100644 index 2590196dae..0000000000 Binary files a/src/main/resources/assets/aether/textures/gui/overlay/slash_defense.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/gui/overlay/swet/blue_left_1.png b/src/main/resources/assets/aether/textures/gui/overlay/swet/blue_left_1.png deleted file mode 100644 index 48368f9525..0000000000 Binary files a/src/main/resources/assets/aether/textures/gui/overlay/swet/blue_left_1.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/gui/overlay/swet/blue_left_2.png b/src/main/resources/assets/aether/textures/gui/overlay/swet/blue_left_2.png deleted file mode 100644 index 579dc6f400..0000000000 Binary files a/src/main/resources/assets/aether/textures/gui/overlay/swet/blue_left_2.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/gui/overlay/swet/blue_right_1.png b/src/main/resources/assets/aether/textures/gui/overlay/swet/blue_right_1.png deleted file mode 100644 index 131161a9f9..0000000000 Binary files a/src/main/resources/assets/aether/textures/gui/overlay/swet/blue_right_1.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/gui/overlay/swet/blue_right_2.png b/src/main/resources/assets/aether/textures/gui/overlay/swet/blue_right_2.png deleted file mode 100644 index f41d0c9b95..0000000000 Binary files a/src/main/resources/assets/aether/textures/gui/overlay/swet/blue_right_2.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/gui/overlay/swet/green_left_1.png b/src/main/resources/assets/aether/textures/gui/overlay/swet/green_left_1.png deleted file mode 100644 index ccc7b619c0..0000000000 Binary files a/src/main/resources/assets/aether/textures/gui/overlay/swet/green_left_1.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/gui/overlay/swet/green_left_2.png b/src/main/resources/assets/aether/textures/gui/overlay/swet/green_left_2.png deleted file mode 100644 index 899213c645..0000000000 Binary files a/src/main/resources/assets/aether/textures/gui/overlay/swet/green_left_2.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/gui/overlay/swet/green_right_1.png b/src/main/resources/assets/aether/textures/gui/overlay/swet/green_right_1.png deleted file mode 100644 index 2181177186..0000000000 Binary files a/src/main/resources/assets/aether/textures/gui/overlay/swet/green_right_1.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/gui/overlay/swet/green_right_2.png b/src/main/resources/assets/aether/textures/gui/overlay/swet/green_right_2.png deleted file mode 100644 index d1c8b7ff9a..0000000000 Binary files a/src/main/resources/assets/aether/textures/gui/overlay/swet/green_right_2.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/gui/overlay/swet/purple_left_1.png b/src/main/resources/assets/aether/textures/gui/overlay/swet/purple_left_1.png deleted file mode 100644 index a16fbb4607..0000000000 Binary files a/src/main/resources/assets/aether/textures/gui/overlay/swet/purple_left_1.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/gui/overlay/swet/purple_left_2.png b/src/main/resources/assets/aether/textures/gui/overlay/swet/purple_left_2.png deleted file mode 100644 index 372cbf4d12..0000000000 Binary files a/src/main/resources/assets/aether/textures/gui/overlay/swet/purple_left_2.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/gui/overlay/swet/purple_right_1.png b/src/main/resources/assets/aether/textures/gui/overlay/swet/purple_right_1.png deleted file mode 100644 index 12266173fb..0000000000 Binary files a/src/main/resources/assets/aether/textures/gui/overlay/swet/purple_right_1.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/gui/overlay/swet/purple_right_2.png b/src/main/resources/assets/aether/textures/gui/overlay/swet/purple_right_2.png deleted file mode 100644 index f061fbd599..0000000000 Binary files a/src/main/resources/assets/aether/textures/gui/overlay/swet/purple_right_2.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/gui/patron/backdrop.png b/src/main/resources/assets/aether/textures/gui/patron/backdrop.png deleted file mode 100644 index 61e03e1f08..0000000000 Binary files a/src/main/resources/assets/aether/textures/gui/patron/backdrop.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/gui/patron/reward_button.png b/src/main/resources/assets/aether/textures/gui/patron/reward_button.png deleted file mode 100644 index 75210e43c9..0000000000 Binary files a/src/main/resources/assets/aether/textures/gui/patron/reward_button.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/gui/patron/reward_button_hovered.png b/src/main/resources/assets/aether/textures/gui/patron/reward_button_hovered.png deleted file mode 100644 index b025b16cf0..0000000000 Binary files a/src/main/resources/assets/aether/textures/gui/patron/reward_button_hovered.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/gui/patron/reward_question.png b/src/main/resources/assets/aether/textures/gui/patron/reward_question.png deleted file mode 100644 index 3a0525e06d..0000000000 Binary files a/src/main/resources/assets/aether/textures/gui/patron/reward_question.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/gui/patron/reward_question_hovered.png b/src/main/resources/assets/aether/textures/gui/patron/reward_question_hovered.png deleted file mode 100644 index 4e5a21005b..0000000000 Binary files a/src/main/resources/assets/aether/textures/gui/patron/reward_question_hovered.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/gui/patron/reward_use.png b/src/main/resources/assets/aether/textures/gui/patron/reward_use.png deleted file mode 100644 index 1597c8daea..0000000000 Binary files a/src/main/resources/assets/aether/textures/gui/patron/reward_use.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/gui/patron/reward_use_hovered.png b/src/main/resources/assets/aether/textures/gui/patron/reward_use_hovered.png deleted file mode 100644 index 0c553022de..0000000000 Binary files a/src/main/resources/assets/aether/textures/gui/patron/reward_use_hovered.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/gui/shop/button.png b/src/main/resources/assets/aether/textures/gui/shop/button.png deleted file mode 100644 index e84487187d..0000000000 Binary files a/src/main/resources/assets/aether/textures/gui/shop/button.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/gui/shop/button_pressed.png b/src/main/resources/assets/aether/textures/gui/shop/button_pressed.png deleted file mode 100644 index 8d0988ca4e..0000000000 Binary files a/src/main/resources/assets/aether/textures/gui/shop/button_pressed.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/gui/shop/down_button.png b/src/main/resources/assets/aether/textures/gui/shop/down_button.png deleted file mode 100644 index 17a190b3a7..0000000000 Binary files a/src/main/resources/assets/aether/textures/gui/shop/down_button.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/gui/shop/down_button_hover.png b/src/main/resources/assets/aether/textures/gui/shop/down_button_hover.png deleted file mode 100644 index e921d4103c..0000000000 Binary files a/src/main/resources/assets/aether/textures/gui/shop/down_button_hover.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/gui/shop/gilt.png b/src/main/resources/assets/aether/textures/gui/shop/gilt.png deleted file mode 100644 index 862f5968d4..0000000000 Binary files a/src/main/resources/assets/aether/textures/gui/shop/gilt.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/gui/shop/gilt_bag.png b/src/main/resources/assets/aether/textures/gui/shop/gilt_bag.png deleted file mode 100644 index db9bd3b6ec..0000000000 Binary files a/src/main/resources/assets/aether/textures/gui/shop/gilt_bag.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/gui/shop/giltae.png b/src/main/resources/assets/aether/textures/gui/shop/giltae.png deleted file mode 100644 index d1925bc901..0000000000 Binary files a/src/main/resources/assets/aether/textures/gui/shop/giltae.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/gui/shop/giltaen.png b/src/main/resources/assets/aether/textures/gui/shop/giltaen.png deleted file mode 100644 index 156a478b79..0000000000 Binary files a/src/main/resources/assets/aether/textures/gui/shop/giltaen.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/gui/shop/giltaeni.png b/src/main/resources/assets/aether/textures/gui/shop/giltaeni.png deleted file mode 100644 index 5b352b26e7..0000000000 Binary files a/src/main/resources/assets/aether/textures/gui/shop/giltaeni.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/gui/shop/holiday_icon.png b/src/main/resources/assets/aether/textures/gui/shop/holiday_icon.png deleted file mode 100644 index c4ebeb733c..0000000000 Binary files a/src/main/resources/assets/aether/textures/gui/shop/holiday_icon.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/gui/shop/inventory.png b/src/main/resources/assets/aether/textures/gui/shop/inventory.png deleted file mode 100644 index 7611f0c215..0000000000 Binary files a/src/main/resources/assets/aether/textures/gui/shop/inventory.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/gui/shop/lock.png b/src/main/resources/assets/aether/textures/gui/shop/lock.png deleted file mode 100644 index 0a01601c1b..0000000000 Binary files a/src/main/resources/assets/aether/textures/gui/shop/lock.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/gui/shop/plumproot_coin.png b/src/main/resources/assets/aether/textures/gui/shop/plumproot_coin.png deleted file mode 100644 index 378914bbf1..0000000000 Binary files a/src/main/resources/assets/aether/textures/gui/shop/plumproot_coin.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/gui/shop/price_down.png b/src/main/resources/assets/aether/textures/gui/shop/price_down.png deleted file mode 100644 index 2822715d5a..0000000000 Binary files a/src/main/resources/assets/aether/textures/gui/shop/price_down.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/gui/shop/price_up.png b/src/main/resources/assets/aether/textures/gui/shop/price_up.png deleted file mode 100644 index e3e94c2ec2..0000000000 Binary files a/src/main/resources/assets/aether/textures/gui/shop/price_up.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/gui/shop/sell_bar.png b/src/main/resources/assets/aether/textures/gui/shop/sell_bar.png deleted file mode 100644 index aedafbfc83..0000000000 Binary files a/src/main/resources/assets/aether/textures/gui/shop/sell_bar.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/gui/shop/shop_notice.png b/src/main/resources/assets/aether/textures/gui/shop/shop_notice.png deleted file mode 100644 index f8d1d92efd..0000000000 Binary files a/src/main/resources/assets/aether/textures/gui/shop/shop_notice.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/gui/shop/stock.png b/src/main/resources/assets/aether/textures/gui/shop/stock.png deleted file mode 100644 index 6694696d70..0000000000 Binary files a/src/main/resources/assets/aether/textures/gui/shop/stock.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/gui/shop/tab_pressed.png b/src/main/resources/assets/aether/textures/gui/shop/tab_pressed.png deleted file mode 100644 index ceddf7ec18..0000000000 Binary files a/src/main/resources/assets/aether/textures/gui/shop/tab_pressed.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/gui/shop/tab_unpressed.png b/src/main/resources/assets/aether/textures/gui/shop/tab_unpressed.png deleted file mode 100644 index ea546ba6b2..0000000000 Binary files a/src/main/resources/assets/aether/textures/gui/shop/tab_unpressed.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/gui/shop/unlock.png b/src/main/resources/assets/aether/textures/gui/shop/unlock.png deleted file mode 100644 index 6ddd55f7af..0000000000 Binary files a/src/main/resources/assets/aether/textures/gui/shop/unlock.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/gui/shop/up_button.png b/src/main/resources/assets/aether/textures/gui/shop/up_button.png deleted file mode 100644 index ace5dbab52..0000000000 Binary files a/src/main/resources/assets/aether/textures/gui/shop/up_button.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/gui/shop/up_button_hover.png b/src/main/resources/assets/aether/textures/gui/shop/up_button_hover.png deleted file mode 100644 index 6c6705ab16..0000000000 Binary files a/src/main/resources/assets/aether/textures/gui/shop/up_button_hover.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/gui/slots/slot_ambrosium.png b/src/main/resources/assets/aether/textures/gui/slots/slot_ambrosium.png deleted file mode 100644 index 423efbc04e..0000000000 Binary files a/src/main/resources/assets/aether/textures/gui/slots/slot_ambrosium.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/gui/slots/slot_artifact.png b/src/main/resources/assets/aether/textures/gui/slots/slot_artifact.png deleted file mode 100644 index b3a46f1665..0000000000 Binary files a/src/main/resources/assets/aether/textures/gui/slots/slot_artifact.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/gui/slots/slot_charm.png b/src/main/resources/assets/aether/textures/gui/slots/slot_charm.png deleted file mode 100644 index c8262dd1ca..0000000000 Binary files a/src/main/resources/assets/aether/textures/gui/slots/slot_charm.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/gui/slots/slot_companion.png b/src/main/resources/assets/aether/textures/gui/slots/slot_companion.png deleted file mode 100644 index c6bc14bb2d..0000000000 Binary files a/src/main/resources/assets/aether/textures/gui/slots/slot_companion.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/gui/slots/slot_flint_and_steel.png b/src/main/resources/assets/aether/textures/gui/slots/slot_flint_and_steel.png deleted file mode 100644 index 3fe8edddfb..0000000000 Binary files a/src/main/resources/assets/aether/textures/gui/slots/slot_flint_and_steel.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/gui/slots/slot_handwear.png b/src/main/resources/assets/aether/textures/gui/slots/slot_handwear.png deleted file mode 100644 index 5c159c108d..0000000000 Binary files a/src/main/resources/assets/aether/textures/gui/slots/slot_handwear.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/gui/slots/slot_icestone.png b/src/main/resources/assets/aether/textures/gui/slots/slot_icestone.png deleted file mode 100644 index b20ebf4737..0000000000 Binary files a/src/main/resources/assets/aether/textures/gui/slots/slot_icestone.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/gui/slots/slot_masonry.png b/src/main/resources/assets/aether/textures/gui/slots/slot_masonry.png deleted file mode 100644 index 415a2b4fdb..0000000000 Binary files a/src/main/resources/assets/aether/textures/gui/slots/slot_masonry.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/gui/slots/slot_moa_egg.png b/src/main/resources/assets/aether/textures/gui/slots/slot_moa_egg.png deleted file mode 100644 index bce4a1006d..0000000000 Binary files a/src/main/resources/assets/aether/textures/gui/slots/slot_moa_egg.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/gui/slots/slot_neckwear.png b/src/main/resources/assets/aether/textures/gui/slots/slot_neckwear.png deleted file mode 100644 index 08fd147db3..0000000000 Binary files a/src/main/resources/assets/aether/textures/gui/slots/slot_neckwear.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/gui/slots/slot_relic.png b/src/main/resources/assets/aether/textures/gui/slots/slot_relic.png deleted file mode 100644 index 124662be4a..0000000000 Binary files a/src/main/resources/assets/aether/textures/gui/slots/slot_relic.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/gui/slots/slot_ring.png b/src/main/resources/assets/aether/textures/gui/slots/slot_ring.png deleted file mode 100644 index 41aaaef9b2..0000000000 Binary files a/src/main/resources/assets/aether/textures/gui/slots/slot_ring.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/gui/tabs/backpack.png b/src/main/resources/assets/aether/textures/gui/tabs/backpack.png deleted file mode 100644 index 0d62d8976e..0000000000 Binary files a/src/main/resources/assets/aether/textures/gui/tabs/backpack.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/gui/tabs/bug_report.png b/src/main/resources/assets/aether/textures/gui/tabs/bug_report.png deleted file mode 100644 index aaeb87bf28..0000000000 Binary files a/src/main/resources/assets/aether/textures/gui/tabs/bug_report.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/gui/tabs/chat.png b/src/main/resources/assets/aether/textures/gui/tabs/chat.png deleted file mode 100644 index bb9796594b..0000000000 Binary files a/src/main/resources/assets/aether/textures/gui/tabs/chat.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/gui/tabs/equipment.png b/src/main/resources/assets/aether/textures/gui/tabs/equipment.png deleted file mode 100644 index 67231c4cc8..0000000000 Binary files a/src/main/resources/assets/aether/textures/gui/tabs/equipment.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/gui/tabs/group.png b/src/main/resources/assets/aether/textures/gui/tabs/group.png deleted file mode 100644 index 7518ab736f..0000000000 Binary files a/src/main/resources/assets/aether/textures/gui/tabs/group.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/gui/tabs/notifications.png b/src/main/resources/assets/aether/textures/gui/tabs/notifications.png deleted file mode 100644 index 3514e68458..0000000000 Binary files a/src/main/resources/assets/aether/textures/gui/tabs/notifications.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/gui/tabs/options.png b/src/main/resources/assets/aether/textures/gui/tabs/options.png deleted file mode 100644 index 85f810b469..0000000000 Binary files a/src/main/resources/assets/aether/textures/gui/tabs/options.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/gui/tabs/patron_rewards.png b/src/main/resources/assets/aether/textures/gui/tabs/patron_rewards.png deleted file mode 100644 index 3be4ff0c57..0000000000 Binary files a/src/main/resources/assets/aether/textures/gui/tabs/patron_rewards.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/gui/tabs/playerList.png b/src/main/resources/assets/aether/textures/gui/tabs/playerList.png deleted file mode 100644 index 4c46da4a6f..0000000000 Binary files a/src/main/resources/assets/aether/textures/gui/tabs/playerList.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/gui/trade/gilt_grow.png b/src/main/resources/assets/aether/textures/gui/trade/gilt_grow.png deleted file mode 100644 index 58636fc9bc..0000000000 Binary files a/src/main/resources/assets/aether/textures/gui/trade/gilt_grow.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/gui/trade/gilt_grow_left.png b/src/main/resources/assets/aether/textures/gui/trade/gilt_grow_left.png deleted file mode 100644 index 23e5af7a56..0000000000 Binary files a/src/main/resources/assets/aether/textures/gui/trade/gilt_grow_left.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/gui/trade/gilt_grow_right.png b/src/main/resources/assets/aether/textures/gui/trade/gilt_grow_right.png deleted file mode 100644 index a21ad1c16d..0000000000 Binary files a/src/main/resources/assets/aether/textures/gui/trade/gilt_grow_right.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/gui/trade/inventory.png b/src/main/resources/assets/aether/textures/gui/trade/inventory.png deleted file mode 100644 index 5ea12cf915..0000000000 Binary files a/src/main/resources/assets/aether/textures/gui/trade/inventory.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/gui/trade/left_button.png b/src/main/resources/assets/aether/textures/gui/trade/left_button.png deleted file mode 100644 index e6bb4fc39b..0000000000 Binary files a/src/main/resources/assets/aether/textures/gui/trade/left_button.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/gui/trade/left_button_hover.png b/src/main/resources/assets/aether/textures/gui/trade/left_button_hover.png deleted file mode 100644 index 4121039ee8..0000000000 Binary files a/src/main/resources/assets/aether/textures/gui/trade/left_button_hover.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/gui/trade/prevent_tile.png b/src/main/resources/assets/aether/textures/gui/trade/prevent_tile.png deleted file mode 100644 index 9393057266..0000000000 Binary files a/src/main/resources/assets/aether/textures/gui/trade/prevent_tile.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/gui/trade/right_button.png b/src/main/resources/assets/aether/textures/gui/trade/right_button.png deleted file mode 100644 index cf2469ea88..0000000000 Binary files a/src/main/resources/assets/aether/textures/gui/trade/right_button.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/gui/trade/right_button_hover.png b/src/main/resources/assets/aether/textures/gui/trade/right_button_hover.png deleted file mode 100644 index cb58231220..0000000000 Binary files a/src/main/resources/assets/aether/textures/gui/trade/right_button_hover.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/gui/trade/trade.png b/src/main/resources/assets/aether/textures/gui/trade/trade.png deleted file mode 100644 index 6a85d4495b..0000000000 Binary files a/src/main/resources/assets/aether/textures/gui/trade/trade.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/gui/trade/view.png b/src/main/resources/assets/aether/textures/gui/trade/view.png deleted file mode 100644 index a14365f910..0000000000 Binary files a/src/main/resources/assets/aether/textures/gui/trade/view.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/accessories/charms/charm_arm_01.png b/src/main/resources/assets/aether/textures/items/accessories/charms/charm_arm_01.png deleted file mode 100644 index 6bbbe57163..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/accessories/charms/charm_arm_01.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/accessories/charms/charm_arm_02.png b/src/main/resources/assets/aether/textures/items/accessories/charms/charm_arm_02.png deleted file mode 100644 index 6c7a89fce4..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/accessories/charms/charm_arm_02.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/accessories/charms/charm_arm_tgh_01.png b/src/main/resources/assets/aether/textures/items/accessories/charms/charm_arm_tgh_01.png deleted file mode 100644 index 547f4da6ff..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/accessories/charms/charm_arm_tgh_01.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/accessories/charms/charm_arm_tgh_02.png b/src/main/resources/assets/aether/textures/items/accessories/charms/charm_arm_tgh_02.png deleted file mode 100644 index be4251ab92..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/accessories/charms/charm_arm_tgh_02.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/accessories/charms/charm_atk_spd_01.png b/src/main/resources/assets/aether/textures/items/accessories/charms/charm_atk_spd_01.png deleted file mode 100644 index 59600fe38e..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/accessories/charms/charm_atk_spd_01.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/accessories/charms/charm_atk_spd_02.png b/src/main/resources/assets/aether/textures/items/accessories/charms/charm_atk_spd_02.png deleted file mode 100644 index e8644abcf4..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/accessories/charms/charm_atk_spd_02.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/accessories/charms/charm_imp_dmg_01.png b/src/main/resources/assets/aether/textures/items/accessories/charms/charm_imp_dmg_01.png deleted file mode 100644 index 3f799d646d..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/accessories/charms/charm_imp_dmg_01.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/accessories/charms/charm_imp_dmg_02.png b/src/main/resources/assets/aether/textures/items/accessories/charms/charm_imp_dmg_02.png deleted file mode 100644 index f61d249013..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/accessories/charms/charm_imp_dmg_02.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/accessories/charms/charm_kbk_res_01.png b/src/main/resources/assets/aether/textures/items/accessories/charms/charm_kbk_res_01.png deleted file mode 100644 index 60e3d3e207..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/accessories/charms/charm_kbk_res_01.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/accessories/charms/charm_kbk_res_02.png b/src/main/resources/assets/aether/textures/items/accessories/charms/charm_kbk_res_02.png deleted file mode 100644 index c56ef66b5d..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/accessories/charms/charm_kbk_res_02.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/accessories/charms/charm_lck_01.png b/src/main/resources/assets/aether/textures/items/accessories/charms/charm_lck_01.png deleted file mode 100644 index 278f48dbcf..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/accessories/charms/charm_lck_01.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/accessories/charms/charm_lck_02.png b/src/main/resources/assets/aether/textures/items/accessories/charms/charm_lck_02.png deleted file mode 100644 index cbd3c21ec4..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/accessories/charms/charm_lck_02.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/accessories/charms/charm_max_hlt_01.png b/src/main/resources/assets/aether/textures/items/accessories/charms/charm_max_hlt_01.png deleted file mode 100644 index b9f90d9304..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/accessories/charms/charm_max_hlt_01.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/accessories/charms/charm_max_hlt_02.png b/src/main/resources/assets/aether/textures/items/accessories/charms/charm_max_hlt_02.png deleted file mode 100644 index bf63fca26a..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/accessories/charms/charm_max_hlt_02.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/accessories/charms/charm_mve_spd_01.png b/src/main/resources/assets/aether/textures/items/accessories/charms/charm_mve_spd_01.png deleted file mode 100644 index 79495fb2df..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/accessories/charms/charm_mve_spd_01.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/accessories/charms/charm_mve_spd_02.png b/src/main/resources/assets/aether/textures/items/accessories/charms/charm_mve_spd_02.png deleted file mode 100644 index 173fb96bef..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/accessories/charms/charm_mve_spd_02.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/accessories/charms/charm_prc_dmg_01.png b/src/main/resources/assets/aether/textures/items/accessories/charms/charm_prc_dmg_01.png deleted file mode 100644 index 12ad4a407d..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/accessories/charms/charm_prc_dmg_01.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/accessories/charms/charm_prc_dmg_02.png b/src/main/resources/assets/aether/textures/items/accessories/charms/charm_prc_dmg_02.png deleted file mode 100644 index 9a2f21d566..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/accessories/charms/charm_prc_dmg_02.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/accessories/charms/charm_res_amb_01.png b/src/main/resources/assets/aether/textures/items/accessories/charms/charm_res_amb_01.png deleted file mode 100644 index 1ea64274cb..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/accessories/charms/charm_res_amb_01.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/accessories/charms/charm_res_amb_02.png b/src/main/resources/assets/aether/textures/items/accessories/charms/charm_res_amb_02.png deleted file mode 100644 index 775ea17666..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/accessories/charms/charm_res_amb_02.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/accessories/charms/charm_res_bld_01.png b/src/main/resources/assets/aether/textures/items/accessories/charms/charm_res_bld_01.png deleted file mode 100644 index aa85d7e32e..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/accessories/charms/charm_res_bld_01.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/accessories/charms/charm_res_bld_02.png b/src/main/resources/assets/aether/textures/items/accessories/charms/charm_res_bld_02.png deleted file mode 100644 index 53c156a6bc..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/accessories/charms/charm_res_bld_02.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/accessories/charms/charm_res_fra_01.png b/src/main/resources/assets/aether/textures/items/accessories/charms/charm_res_fra_01.png deleted file mode 100644 index e5733c388e..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/accessories/charms/charm_res_fra_01.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/accessories/charms/charm_res_fra_02.png b/src/main/resources/assets/aether/textures/items/accessories/charms/charm_res_fra_02.png deleted file mode 100644 index 6f5e6ef9df..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/accessories/charms/charm_res_fra_02.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/accessories/charms/charm_res_frz_01.png b/src/main/resources/assets/aether/textures/items/accessories/charms/charm_res_frz_01.png deleted file mode 100644 index e961f586e9..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/accessories/charms/charm_res_frz_01.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/accessories/charms/charm_res_frz_02.png b/src/main/resources/assets/aether/textures/items/accessories/charms/charm_res_frz_02.png deleted file mode 100644 index 638b8a69a3..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/accessories/charms/charm_res_frz_02.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/accessories/charms/charm_res_grd_brk_01.png b/src/main/resources/assets/aether/textures/items/accessories/charms/charm_res_grd_brk_01.png deleted file mode 100644 index ab2e66d199..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/accessories/charms/charm_res_grd_brk_01.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/accessories/charms/charm_res_grd_brk_02.png b/src/main/resources/assets/aether/textures/items/accessories/charms/charm_res_grd_brk_02.png deleted file mode 100644 index e642dd0591..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/accessories/charms/charm_res_grd_brk_02.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/accessories/charms/charm_res_irr_01.png b/src/main/resources/assets/aether/textures/items/accessories/charms/charm_res_irr_01.png deleted file mode 100644 index e473e70e4a..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/accessories/charms/charm_res_irr_01.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/accessories/charms/charm_res_irr_02.png b/src/main/resources/assets/aether/textures/items/accessories/charms/charm_res_irr_02.png deleted file mode 100644 index c2bf74b77f..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/accessories/charms/charm_res_irr_02.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/accessories/charms/charm_res_stn_01.png b/src/main/resources/assets/aether/textures/items/accessories/charms/charm_res_stn_01.png deleted file mode 100644 index 3aed4e84d5..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/accessories/charms/charm_res_stn_01.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/accessories/charms/charm_res_stn_02.png b/src/main/resources/assets/aether/textures/items/accessories/charms/charm_res_stn_02.png deleted file mode 100644 index 5fc669dcfe..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/accessories/charms/charm_res_stn_02.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/accessories/charms/charm_res_tox_01.png b/src/main/resources/assets/aether/textures/items/accessories/charms/charm_res_tox_01.png deleted file mode 100644 index 0db572d1f3..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/accessories/charms/charm_res_tox_01.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/accessories/charms/charm_res_tox_02.png b/src/main/resources/assets/aether/textures/items/accessories/charms/charm_res_tox_02.png deleted file mode 100644 index fc270da87c..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/accessories/charms/charm_res_tox_02.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/accessories/charms/charm_res_ven_01.png b/src/main/resources/assets/aether/textures/items/accessories/charms/charm_res_ven_01.png deleted file mode 100644 index 7e1747367c..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/accessories/charms/charm_res_ven_01.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/accessories/charms/charm_res_ven_02.png b/src/main/resources/assets/aether/textures/items/accessories/charms/charm_res_ven_02.png deleted file mode 100644 index 87113cc89d..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/accessories/charms/charm_res_ven_02.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/accessories/charms/charm_res_web_01.png b/src/main/resources/assets/aether/textures/items/accessories/charms/charm_res_web_01.png deleted file mode 100644 index 83e0aa0551..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/accessories/charms/charm_res_web_01.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/accessories/charms/charm_res_web_02.png b/src/main/resources/assets/aether/textures/items/accessories/charms/charm_res_web_02.png deleted file mode 100644 index dce09c1844..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/accessories/charms/charm_res_web_02.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/accessories/charms/charm_slsh_dmg_01.png b/src/main/resources/assets/aether/textures/items/accessories/charms/charm_slsh_dmg_01.png deleted file mode 100644 index 8e5ff97ecb..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/accessories/charms/charm_slsh_dmg_01.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/accessories/charms/charm_slsh_dmg_02.png b/src/main/resources/assets/aether/textures/items/accessories/charms/charm_slsh_dmg_02.png deleted file mode 100644 index d7c169e6e6..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/accessories/charms/charm_slsh_dmg_02.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/aether_teleporter.png b/src/main/resources/assets/aether/textures/items/aether_teleporter.png deleted file mode 100644 index 9c8869f4bf..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/aether_teleporter.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/armor/arkenium_boots.png b/src/main/resources/assets/aether/textures/items/armor/arkenium_boots.png deleted file mode 100644 index 046d08fc87..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/armor/arkenium_boots.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/armor/arkenium_chestplate.png b/src/main/resources/assets/aether/textures/items/armor/arkenium_chestplate.png deleted file mode 100644 index f09758644d..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/armor/arkenium_chestplate.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/armor/arkenium_gloves.png b/src/main/resources/assets/aether/textures/items/armor/arkenium_gloves.png deleted file mode 100644 index 24d4f95118..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/armor/arkenium_gloves.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/armor/arkenium_helmet.png b/src/main/resources/assets/aether/textures/items/armor/arkenium_helmet.png deleted file mode 100644 index e49941cdd0..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/armor/arkenium_helmet.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/armor/arkenium_leggings.png b/src/main/resources/assets/aether/textures/items/armor/arkenium_leggings.png deleted file mode 100644 index 8af15396ab..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/armor/arkenium_leggings.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/armor/burrukai_pelt_boots.png b/src/main/resources/assets/aether/textures/items/armor/burrukai_pelt_boots.png deleted file mode 100644 index 94e3dd5a90..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/armor/burrukai_pelt_boots.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/armor/burrukai_pelt_chestplate.png b/src/main/resources/assets/aether/textures/items/armor/burrukai_pelt_chestplate.png deleted file mode 100644 index d70e3a6e9b..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/armor/burrukai_pelt_chestplate.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/armor/burrukai_pelt_gloves.png b/src/main/resources/assets/aether/textures/items/armor/burrukai_pelt_gloves.png deleted file mode 100644 index 4293779200..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/armor/burrukai_pelt_gloves.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/armor/burrukai_pelt_helmet.png b/src/main/resources/assets/aether/textures/items/armor/burrukai_pelt_helmet.png deleted file mode 100644 index 85d1efcff3..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/armor/burrukai_pelt_helmet.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/armor/burrukai_pelt_leggings.png b/src/main/resources/assets/aether/textures/items/armor/burrukai_pelt_leggings.png deleted file mode 100644 index 7339b474f8..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/armor/burrukai_pelt_leggings.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/armor/gravitite_boots.png b/src/main/resources/assets/aether/textures/items/armor/gravitite_boots.png deleted file mode 100644 index f767f96014..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/armor/gravitite_boots.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/armor/gravitite_chestplate.png b/src/main/resources/assets/aether/textures/items/armor/gravitite_chestplate.png deleted file mode 100644 index a9a417727a..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/armor/gravitite_chestplate.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/armor/gravitite_gloves.png b/src/main/resources/assets/aether/textures/items/armor/gravitite_gloves.png deleted file mode 100644 index 8b3b2ccfb3..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/armor/gravitite_gloves.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/armor/gravitite_helmet.png b/src/main/resources/assets/aether/textures/items/armor/gravitite_helmet.png deleted file mode 100644 index b06a078363..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/armor/gravitite_helmet.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/armor/gravitite_leggings.png b/src/main/resources/assets/aether/textures/items/armor/gravitite_leggings.png deleted file mode 100644 index c6057a623f..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/armor/gravitite_leggings.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/armor/taegore_hide_boots.png b/src/main/resources/assets/aether/textures/items/armor/taegore_hide_boots.png deleted file mode 100644 index 8c5125fae1..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/armor/taegore_hide_boots.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/armor/taegore_hide_chestplate.png b/src/main/resources/assets/aether/textures/items/armor/taegore_hide_chestplate.png deleted file mode 100644 index 22a2fcb861..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/armor/taegore_hide_chestplate.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/armor/taegore_hide_gloves.png b/src/main/resources/assets/aether/textures/items/armor/taegore_hide_gloves.png deleted file mode 100644 index adb96e0a89..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/armor/taegore_hide_gloves.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/armor/taegore_hide_helmet.png b/src/main/resources/assets/aether/textures/items/armor/taegore_hide_helmet.png deleted file mode 100644 index b44c145d05..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/armor/taegore_hide_helmet.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/armor/taegore_hide_leggings.png b/src/main/resources/assets/aether/textures/items/armor/taegore_hide_leggings.png deleted file mode 100644 index 780a18b9f4..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/armor/taegore_hide_leggings.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/armor/zanite_boots.png b/src/main/resources/assets/aether/textures/items/armor/zanite_boots.png deleted file mode 100644 index a840e2f735..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/armor/zanite_boots.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/armor/zanite_chestplate.png b/src/main/resources/assets/aether/textures/items/armor/zanite_chestplate.png deleted file mode 100644 index 89a48d7296..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/armor/zanite_chestplate.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/armor/zanite_gloves.png b/src/main/resources/assets/aether/textures/items/armor/zanite_gloves.png deleted file mode 100644 index bf41d291e6..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/armor/zanite_gloves.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/armor/zanite_helmet.png b/src/main/resources/assets/aether/textures/items/armor/zanite_helmet.png deleted file mode 100644 index 983bc430a1..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/armor/zanite_helmet.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/armor/zanite_leggings.png b/src/main/resources/assets/aether/textures/items/armor/zanite_leggings.png deleted file mode 100644 index e9ffc4cb8c..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/armor/zanite_leggings.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/consumables/aechor_petal.png b/src/main/resources/assets/aether/textures/items/consumables/aechor_petal.png deleted file mode 100644 index a254884657..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/consumables/aechor_petal.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/consumables/bandage.png b/src/main/resources/assets/aether/textures/items/consumables/bandage.png deleted file mode 100644 index c8e733d1e8..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/consumables/bandage.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/consumables/blue_cloud_parachute.png b/src/main/resources/assets/aether/textures/items/consumables/blue_cloud_parachute.png deleted file mode 100644 index 5dcb7de0ee..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/consumables/blue_cloud_parachute.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/consumables/blue_swet_jelly.png b/src/main/resources/assets/aether/textures/items/consumables/blue_swet_jelly.png deleted file mode 100644 index 6c5c8f422f..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/consumables/blue_swet_jelly.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/consumables/blueberries.png b/src/main/resources/assets/aether/textures/items/consumables/blueberries.png deleted file mode 100644 index db992dee9a..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/consumables/blueberries.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/consumables/blueberry_lollipop.png b/src/main/resources/assets/aether/textures/items/consumables/blueberry_lollipop.png deleted file mode 100644 index 1d37c64731..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/consumables/blueberry_lollipop.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/consumables/burrukai_rib_cut.png b/src/main/resources/assets/aether/textures/items/consumables/burrukai_rib_cut.png deleted file mode 100644 index 8ec05569fe..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/consumables/burrukai_rib_cut.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/consumables/burrukai_ribs.png b/src/main/resources/assets/aether/textures/items/consumables/burrukai_ribs.png deleted file mode 100644 index 294416b9aa..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/consumables/burrukai_ribs.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/consumables/candy_cane.png b/src/main/resources/assets/aether/textures/items/consumables/candy_cane.png deleted file mode 100644 index c5f0a01e20..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/consumables/candy_cane.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/consumables/candy_corn.png b/src/main/resources/assets/aether/textures/items/consumables/candy_corn.png deleted file mode 100644 index 16d29870b9..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/consumables/candy_corn.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/consumables/cocoatrice.png b/src/main/resources/assets/aether/textures/items/consumables/cocoatrice.png deleted file mode 100644 index b2ca2a4e3a..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/consumables/cocoatrice.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/consumables/cold_cloud_parachute.png b/src/main/resources/assets/aether/textures/items/consumables/cold_cloud_parachute.png deleted file mode 100644 index eee3476fe8..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/consumables/cold_cloud_parachute.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/consumables/eggnog.png b/src/main/resources/assets/aether/textures/items/consumables/eggnog.png deleted file mode 100644 index 8f058fae76..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/consumables/eggnog.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/consumables/enchanted_blueberry.png b/src/main/resources/assets/aether/textures/items/consumables/enchanted_blueberry.png deleted file mode 100644 index b4335a7594..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/consumables/enchanted_blueberry.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/consumables/enchanted_wyndberry.png b/src/main/resources/assets/aether/textures/items/consumables/enchanted_wyndberry.png deleted file mode 100644 index 618b063870..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/consumables/enchanted_wyndberry.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/consumables/fried_moa_egg.png b/src/main/resources/assets/aether/textures/items/consumables/fried_moa_egg.png deleted file mode 100644 index fc71416f76..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/consumables/fried_moa_egg.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/consumables/ginger_bread_man.png b/src/main/resources/assets/aether/textures/items/consumables/ginger_bread_man.png deleted file mode 100644 index 2af55ae816..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/consumables/ginger_bread_man.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/consumables/green_swet_jelly.png b/src/main/resources/assets/aether/textures/items/consumables/green_swet_jelly.png deleted file mode 100644 index 63330b6253..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/consumables/green_swet_jelly.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/consumables/healing_stone/healing_stone.png b/src/main/resources/assets/aether/textures/items/consumables/healing_stone/healing_stone.png deleted file mode 100644 index 4099792cb5..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/consumables/healing_stone/healing_stone.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/consumables/healing_stone/healing_stone_2.png b/src/main/resources/assets/aether/textures/items/consumables/healing_stone/healing_stone_2.png deleted file mode 100644 index 124c873030..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/consumables/healing_stone/healing_stone_2.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/consumables/healing_stone/healing_stone_3.png b/src/main/resources/assets/aether/textures/items/consumables/healing_stone/healing_stone_3.png deleted file mode 100644 index 48f581e5ca..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/consumables/healing_stone/healing_stone_3.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/consumables/healing_stone/healing_stone_4.png b/src/main/resources/assets/aether/textures/items/consumables/healing_stone/healing_stone_4.png deleted file mode 100644 index 90b2e5d97b..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/consumables/healing_stone/healing_stone_4.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/consumables/healing_stone/healing_stone_5.png b/src/main/resources/assets/aether/textures/items/consumables/healing_stone/healing_stone_5.png deleted file mode 100644 index 81f1a52c06..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/consumables/healing_stone/healing_stone_5.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/consumables/healing_stone/healing_stone_depleted.png b/src/main/resources/assets/aether/textures/items/consumables/healing_stone/healing_stone_depleted.png deleted file mode 100644 index 4c8199ba7f..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/consumables/healing_stone/healing_stone_depleted.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/consumables/icestone_poprocks.png b/src/main/resources/assets/aether/textures/items/consumables/icestone_poprocks.png deleted file mode 100644 index ae0bd0351e..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/consumables/icestone_poprocks.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/consumables/jelly_plumproot.png b/src/main/resources/assets/aether/textures/items/consumables/jelly_plumproot.png deleted file mode 100644 index b4ac3545f8..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/consumables/jelly_plumproot.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/consumables/kirrid_cutlet.png b/src/main/resources/assets/aether/textures/items/consumables/kirrid_cutlet.png deleted file mode 100644 index 5635b9ee78..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/consumables/kirrid_cutlet.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/consumables/kirrid_loin.png b/src/main/resources/assets/aether/textures/items/consumables/kirrid_loin.png deleted file mode 100644 index fa182dc501..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/consumables/kirrid_loin.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/consumables/moa_feed/moa_feed.png b/src/main/resources/assets/aether/textures/items/consumables/moa_feed/moa_feed.png deleted file mode 100644 index 3eb93e452d..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/consumables/moa_feed/moa_feed.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/consumables/moa_feed/moa_feed_blueberries.png b/src/main/resources/assets/aether/textures/items/consumables/moa_feed/moa_feed_blueberries.png deleted file mode 100644 index 05faedd329..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/consumables/moa_feed/moa_feed_blueberries.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/consumables/moa_feed/moa_feed_enchanted_blueberries.png b/src/main/resources/assets/aether/textures/items/consumables/moa_feed/moa_feed_enchanted_blueberries.png deleted file mode 100644 index f6839b618c..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/consumables/moa_feed/moa_feed_enchanted_blueberries.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/consumables/orange.png b/src/main/resources/assets/aether/textures/items/consumables/orange.png deleted file mode 100644 index 2eee1d5ad8..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/consumables/orange.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/consumables/orange_lollipop.png b/src/main/resources/assets/aether/textures/items/consumables/orange_lollipop.png deleted file mode 100644 index 14b26177da..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/consumables/orange_lollipop.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/consumables/plumproot_mash.png b/src/main/resources/assets/aether/textures/items/consumables/plumproot_mash.png deleted file mode 100644 index 541d03fadb..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/consumables/plumproot_mash.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/consumables/plumproot_pie.png b/src/main/resources/assets/aether/textures/items/consumables/plumproot_pie.png deleted file mode 100644 index 7d4c08f557..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/consumables/plumproot_pie.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/consumables/purple_cloud_parachute.png b/src/main/resources/assets/aether/textures/items/consumables/purple_cloud_parachute.png deleted file mode 100644 index a44775e71e..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/consumables/purple_cloud_parachute.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/consumables/purple_swet_jelly.png b/src/main/resources/assets/aether/textures/items/consumables/purple_swet_jelly.png deleted file mode 100644 index e117075eec..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/consumables/purple_swet_jelly.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/consumables/raw_taegore_meat.png b/src/main/resources/assets/aether/textures/items/consumables/raw_taegore_meat.png deleted file mode 100644 index f6673fb573..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/consumables/raw_taegore_meat.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/consumables/roasted_skyroot_lizard_stick.png b/src/main/resources/assets/aether/textures/items/consumables/roasted_skyroot_lizard_stick.png deleted file mode 100644 index 16ffbff29d..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/consumables/roasted_skyroot_lizard_stick.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/consumables/scatterglass_antitoxin_vial.png b/src/main/resources/assets/aether/textures/items/consumables/scatterglass_antitoxin_vial.png deleted file mode 100644 index 10436d9ae4..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/consumables/scatterglass_antitoxin_vial.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/consumables/scatterglass_antivenom_vial.png b/src/main/resources/assets/aether/textures/items/consumables/scatterglass_antivenom_vial.png deleted file mode 100644 index 33380aee37..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/consumables/scatterglass_antivenom_vial.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/consumables/scatterglass_water_vial.png b/src/main/resources/assets/aether/textures/items/consumables/scatterglass_water_vial.png deleted file mode 100644 index 90ab408057..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/consumables/scatterglass_water_vial.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/consumables/shard_of_life.png b/src/main/resources/assets/aether/textures/items/consumables/shard_of_life.png deleted file mode 100644 index 2d7c5975ac..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/consumables/shard_of_life.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/consumables/skyroot_lizard_stick.png b/src/main/resources/assets/aether/textures/items/consumables/skyroot_lizard_stick.png deleted file mode 100644 index 3c32ff4aaa..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/consumables/skyroot_lizard_stick.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/consumables/splint.png b/src/main/resources/assets/aether/textures/items/consumables/splint.png deleted file mode 100644 index 46f102a8ac..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/consumables/splint.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/consumables/stomper_pop.png b/src/main/resources/assets/aether/textures/items/consumables/stomper_pop.png deleted file mode 100644 index 7f142d8161..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/consumables/stomper_pop.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/consumables/taegore_steak.png b/src/main/resources/assets/aether/textures/items/consumables/taegore_steak.png deleted file mode 100644 index 0969a62d4d..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/consumables/taegore_steak.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/consumables/tea/valkyrie_tea.png b/src/main/resources/assets/aether/textures/items/consumables/tea/valkyrie_tea.png deleted file mode 100644 index e6fe52a6f9..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/consumables/tea/valkyrie_tea.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/consumables/wrapped_chocolates.png b/src/main/resources/assets/aether/textures/items/consumables/wrapped_chocolates.png deleted file mode 100644 index ae115f7db8..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/consumables/wrapped_chocolates.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/consumables/wyndberry.png b/src/main/resources/assets/aether/textures/items/consumables/wyndberry.png deleted file mode 100644 index 03ba1d8488..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/consumables/wyndberry.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/consumables/yule_log.png b/src/main/resources/assets/aether/textures/items/consumables/yule_log.png deleted file mode 100644 index 5000a16f76..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/consumables/yule_log.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/doors/arkenium_door.png b/src/main/resources/assets/aether/textures/items/doors/arkenium_door.png deleted file mode 100644 index c03d9ec354..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/doors/arkenium_door.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/doors/secret_skyroot_door.png b/src/main/resources/assets/aether/textures/items/doors/secret_skyroot_door.png deleted file mode 100644 index 332a6f0fa8..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/doors/secret_skyroot_door.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/doors/skyroot_door.png b/src/main/resources/assets/aether/textures/items/doors/skyroot_door.png deleted file mode 100644 index e61111bac4..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/doors/skyroot_door.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/materials/ambrosium_chunk.png b/src/main/resources/assets/aether/textures/items/materials/ambrosium_chunk.png deleted file mode 100644 index 9fcd2bac2c..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/materials/ambrosium_chunk.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/materials/ambrosium_shard.png b/src/main/resources/assets/aether/textures/items/materials/ambrosium_shard.png deleted file mode 100644 index 12dbd808a6..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/materials/ambrosium_shard.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/materials/arkenium_plate.png b/src/main/resources/assets/aether/textures/items/materials/arkenium_plate.png deleted file mode 100644 index 0db3912a67..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/materials/arkenium_plate.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/materials/arkenium_strip.png b/src/main/resources/assets/aether/textures/items/materials/arkenium_strip.png deleted file mode 100644 index 8e68aa863c..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/materials/arkenium_strip.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/materials/blue_swet_gel.png b/src/main/resources/assets/aether/textures/items/materials/blue_swet_gel.png deleted file mode 100644 index 4e4324ec2b..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/materials/blue_swet_gel.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/materials/brettl_cane.png b/src/main/resources/assets/aether/textures/items/materials/brettl_cane.png deleted file mode 100644 index 8b0b2b81db..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/materials/brettl_cane.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/materials/brettl_grass.png b/src/main/resources/assets/aether/textures/items/materials/brettl_grass.png deleted file mode 100644 index 5caed2093b..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/materials/brettl_grass.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/materials/brettl_rope.png b/src/main/resources/assets/aether/textures/items/materials/brettl_rope.png deleted file mode 100644 index e3987b9644..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/materials/brettl_rope.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/materials/burrukai_pelt.png b/src/main/resources/assets/aether/textures/items/materials/burrukai_pelt.png deleted file mode 100644 index 211c29ab8d..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/materials/burrukai_pelt.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/materials/cloudtwine.png b/src/main/resources/assets/aether/textures/items/materials/cloudtwine.png deleted file mode 100644 index 2d43067fa9..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/materials/cloudtwine.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/materials/cockatrice_feather.png b/src/main/resources/assets/aether/textures/items/materials/cockatrice_feather.png deleted file mode 100644 index 0234311b3a..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/materials/cockatrice_feather.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/materials/crude_scatterglass_shard.png b/src/main/resources/assets/aether/textures/items/materials/crude_scatterglass_shard.png deleted file mode 100644 index 2df6093e12..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/materials/crude_scatterglass_shard.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/materials/golden_amber.png b/src/main/resources/assets/aether/textures/items/materials/golden_amber.png deleted file mode 100644 index 669add3690..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/materials/golden_amber.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/materials/gravitite_plate.png b/src/main/resources/assets/aether/textures/items/materials/gravitite_plate.png deleted file mode 100644 index b944afcbed..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/materials/gravitite_plate.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/materials/green_swet_gel.png b/src/main/resources/assets/aether/textures/items/materials/green_swet_gel.png deleted file mode 100644 index 8eed5318cc..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/materials/green_swet_gel.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/materials/icestone.png b/src/main/resources/assets/aether/textures/items/materials/icestone.png deleted file mode 100644 index 1f516fcfc5..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/materials/icestone.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/materials/irradiated_armor.png b/src/main/resources/assets/aether/textures/items/materials/irradiated_armor.png deleted file mode 100644 index 8e7eb44d14..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/materials/irradiated_armor.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/materials/irradiated_charm.png b/src/main/resources/assets/aether/textures/items/materials/irradiated_charm.png deleted file mode 100644 index d0a9e0e6b5..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/materials/irradiated_charm.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/materials/irradiated_chunk.png b/src/main/resources/assets/aether/textures/items/materials/irradiated_chunk.png deleted file mode 100644 index 31c8fbf81f..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/materials/irradiated_chunk.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/materials/irradiated_dust.png b/src/main/resources/assets/aether/textures/items/materials/irradiated_dust.png deleted file mode 100644 index dc17d548af..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/materials/irradiated_dust.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/materials/irradiated_neckwear.png b/src/main/resources/assets/aether/textures/items/materials/irradiated_neckwear.png deleted file mode 100644 index 464349dac9..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/materials/irradiated_neckwear.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/materials/irradiated_ring.png b/src/main/resources/assets/aether/textures/items/materials/irradiated_ring.png deleted file mode 100644 index 25fbfd0011..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/materials/irradiated_ring.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/materials/irradiated_sword.png b/src/main/resources/assets/aether/textures/items/materials/irradiated_sword.png deleted file mode 100644 index 0e5c01ffe3..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/materials/irradiated_sword.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/materials/irradiated_tool.png b/src/main/resources/assets/aether/textures/items/materials/irradiated_tool.png deleted file mode 100644 index 494d8b8bd7..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/materials/irradiated_tool.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/materials/moa_feather_base.png b/src/main/resources/assets/aether/textures/items/materials/moa_feather_base.png deleted file mode 100644 index f7db602892..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/materials/moa_feather_base.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/materials/moa_feather_top.png b/src/main/resources/assets/aether/textures/items/materials/moa_feather_top.png deleted file mode 100644 index c3fc400fb3..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/materials/moa_feather_top.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/materials/purple_swet_gel.png b/src/main/resources/assets/aether/textures/items/materials/purple_swet_gel.png deleted file mode 100644 index d279a275f6..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/materials/purple_swet_gel.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/materials/scatterglass_vial.png b/src/main/resources/assets/aether/textures/items/materials/scatterglass_vial.png deleted file mode 100644 index 80279779a2..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/materials/scatterglass_vial.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/materials/skyroot_pinecone.png b/src/main/resources/assets/aether/textures/items/materials/skyroot_pinecone.png deleted file mode 100644 index 46c33b5126..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/materials/skyroot_pinecone.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/materials/skyroot_stick.png b/src/main/resources/assets/aether/textures/items/materials/skyroot_stick.png deleted file mode 100644 index 338318e1cc..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/materials/skyroot_stick.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/materials/swet_sugar.png b/src/main/resources/assets/aether/textures/items/materials/swet_sugar.png deleted file mode 100644 index aa0a10e53c..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/materials/swet_sugar.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/materials/taegore_hide.png b/src/main/resources/assets/aether/textures/items/materials/taegore_hide.png deleted file mode 100644 index eb7db2d4b3..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/materials/taegore_hide.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/materials/valkyrie_wings.png b/src/main/resources/assets/aether/textures/items/materials/valkyrie_wings.png deleted file mode 100644 index b5d884d0ee..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/materials/valkyrie_wings.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/materials/zanite_gemstone.png b/src/main/resources/assets/aether/textures/items/materials/zanite_gemstone.png deleted file mode 100644 index de9342fc70..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/materials/zanite_gemstone.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/miscellaneous/aether_saddle.png b/src/main/resources/assets/aether/textures/items/miscellaneous/aether_saddle.png deleted file mode 100644 index c39b7f8e30..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/miscellaneous/aether_saddle.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/miscellaneous/kirrid_flower.png b/src/main/resources/assets/aether/textures/items/miscellaneous/kirrid_flower.png deleted file mode 100644 index b5d884d0ee..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/miscellaneous/kirrid_flower.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/miscellaneous/rainbow_moa_egg.png b/src/main/resources/assets/aether/textures/items/miscellaneous/rainbow_moa_egg.png deleted file mode 100644 index 676b121015..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/miscellaneous/rainbow_moa_egg.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/miscellaneous/sentry_vaultbox.png b/src/main/resources/assets/aether/textures/items/miscellaneous/sentry_vaultbox.png deleted file mode 100644 index 4ef4718a6d..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/miscellaneous/sentry_vaultbox.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/miscellaneous/shard_of_life.png b/src/main/resources/assets/aether/textures/items/miscellaneous/shard_of_life.png deleted file mode 100644 index 2d7c5975ac..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/miscellaneous/shard_of_life.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/miscellaneous/skyroot_bucket.png b/src/main/resources/assets/aether/textures/items/miscellaneous/skyroot_bucket.png deleted file mode 100644 index a560c7255c..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/miscellaneous/skyroot_bucket.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/miscellaneous/skyroot_milk_bucket.png b/src/main/resources/assets/aether/textures/items/miscellaneous/skyroot_milk_bucket.png deleted file mode 100644 index 4814706336..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/miscellaneous/skyroot_milk_bucket.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/miscellaneous/skyroot_poison_bucket.png b/src/main/resources/assets/aether/textures/items/miscellaneous/skyroot_poison_bucket.png deleted file mode 100644 index c7f80b043c..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/miscellaneous/skyroot_poison_bucket.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/miscellaneous/skyroot_water_bucket.png b/src/main/resources/assets/aether/textures/items/miscellaneous/skyroot_water_bucket.png deleted file mode 100644 index 67b6d84eaf..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/miscellaneous/skyroot_water_bucket.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/miscellaneous/winter_hat.png b/src/main/resources/assets/aether/textures/items/miscellaneous/winter_hat.png deleted file mode 100644 index e60ef3a2f2..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/miscellaneous/winter_hat.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/moa_egg/base.png b/src/main/resources/assets/aether/textures/items/moa_egg/base.png deleted file mode 100644 index 3a11c91da3..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/moa_egg/base.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/moa_egg/curved_base.png b/src/main/resources/assets/aether/textures/items/moa_egg/curved_base.png deleted file mode 100644 index 30d20537a6..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/moa_egg/curved_base.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/moa_egg/curved_highlight.png b/src/main/resources/assets/aether/textures/items/moa_egg/curved_highlight.png deleted file mode 100644 index af2e9bf700..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/moa_egg/curved_highlight.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/moa_egg/eyes.png b/src/main/resources/assets/aether/textures/items/moa_egg/eyes.png deleted file mode 100644 index 8776f2a8f0..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/moa_egg/eyes.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/moa_egg/flat_base.png b/src/main/resources/assets/aether/textures/items/moa_egg/flat_base.png deleted file mode 100644 index 2fc0fa98fe..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/moa_egg/flat_base.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/moa_egg/flat_highlight.png b/src/main/resources/assets/aether/textures/items/moa_egg/flat_highlight.png deleted file mode 100644 index ca43c5bcbb..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/moa_egg/flat_highlight.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/moa_egg/keratin.png b/src/main/resources/assets/aether/textures/items/moa_egg/keratin.png deleted file mode 100644 index ef297e0fba..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/moa_egg/keratin.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/moa_egg/pointed_base.png b/src/main/resources/assets/aether/textures/items/moa_egg/pointed_base.png deleted file mode 100644 index afc194943d..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/moa_egg/pointed_base.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/moa_egg/pointed_highlight.png b/src/main/resources/assets/aether/textures/items/moa_egg/pointed_highlight.png deleted file mode 100644 index 2a708c904e..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/moa_egg/pointed_highlight.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/records/aerwhale_music_disc.png b/src/main/resources/assets/aether/textures/items/records/aerwhale_music_disc.png deleted file mode 100644 index 724a19f1b5..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/records/aerwhale_music_disc.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/records/labyrinth_music_disc.png b/src/main/resources/assets/aether/textures/items/records/labyrinth_music_disc.png deleted file mode 100644 index 8b34afc708..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/records/labyrinth_music_disc.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/records/moa_music_disc.png b/src/main/resources/assets/aether/textures/items/records/moa_music_disc.png deleted file mode 100644 index ba7ba6dc9c..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/records/moa_music_disc.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/records/recording_892.png b/src/main/resources/assets/aether/textures/items/records/recording_892.png deleted file mode 100644 index 475776b5dd..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/records/recording_892.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/records/valkyrie_music_disc.png b/src/main/resources/assets/aether/textures/items/records/valkyrie_music_disc.png deleted file mode 100644 index 717a75ef4e..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/records/valkyrie_music_disc.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/shields/arkenium_shield/arkenium_base1_n_d.png b/src/main/resources/assets/aether/textures/items/shields/arkenium_shield/arkenium_base1_n_d.png deleted file mode 100644 index 866ce1ce70..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/shields/arkenium_shield/arkenium_base1_n_d.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/shields/arkenium_shield/arkenium_base1_s_u.png b/src/main/resources/assets/aether/textures/items/shields/arkenium_shield/arkenium_base1_s_u.png deleted file mode 100644 index 122dc50285..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/shields/arkenium_shield/arkenium_base1_s_u.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/shields/arkenium_shield/arkenium_base1_w_e.png b/src/main/resources/assets/aether/textures/items/shields/arkenium_shield/arkenium_base1_w_e.png deleted file mode 100644 index 12b18a207e..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/shields/arkenium_shield/arkenium_base1_w_e.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/shields/arkenium_shield/arkenium_base2a.png b/src/main/resources/assets/aether/textures/items/shields/arkenium_shield/arkenium_base2a.png deleted file mode 100644 index 0c410b42f1..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/shields/arkenium_shield/arkenium_base2a.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/shields/arkenium_shield/arkenium_base2b.png b/src/main/resources/assets/aether/textures/items/shields/arkenium_shield/arkenium_base2b.png deleted file mode 100644 index 9963450ec0..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/shields/arkenium_shield/arkenium_base2b.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/shields/arkenium_shield/arkenium_center_mid.png b/src/main/resources/assets/aether/textures/items/shields/arkenium_shield/arkenium_center_mid.png deleted file mode 100644 index 5ab862f488..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/shields/arkenium_shield/arkenium_center_mid.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/shields/arkenium_shield/arkenium_handle.png b/src/main/resources/assets/aether/textures/items/shields/arkenium_shield/arkenium_handle.png deleted file mode 100644 index aae4525fb0..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/shields/arkenium_shield/arkenium_handle.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/shields/arkenium_shield/arkenium_wing_left1.png b/src/main/resources/assets/aether/textures/items/shields/arkenium_shield/arkenium_wing_left1.png deleted file mode 100644 index 9d9338eff9..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/shields/arkenium_shield/arkenium_wing_left1.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/shields/arkenium_shield/arkenium_wing_right1.png b/src/main/resources/assets/aether/textures/items/shields/arkenium_shield/arkenium_wing_right1.png deleted file mode 100644 index 702cde4326..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/shields/arkenium_shield/arkenium_wing_right1.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/shields/arkenium_shield/arkenium_wing_right_left2.png b/src/main/resources/assets/aether/textures/items/shields/arkenium_shield/arkenium_wing_right_left2.png deleted file mode 100644 index 26f7b365b5..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/shields/arkenium_shield/arkenium_wing_right_left2.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/shields/gravitite_shield/gravitite_base1_n_d.png b/src/main/resources/assets/aether/textures/items/shields/gravitite_shield/gravitite_base1_n_d.png deleted file mode 100644 index 01df6aaa80..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/shields/gravitite_shield/gravitite_base1_n_d.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/shields/gravitite_shield/gravitite_base1_s_u.png b/src/main/resources/assets/aether/textures/items/shields/gravitite_shield/gravitite_base1_s_u.png deleted file mode 100644 index cb08277e1d..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/shields/gravitite_shield/gravitite_base1_s_u.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/shields/gravitite_shield/gravitite_base1_w_e.png b/src/main/resources/assets/aether/textures/items/shields/gravitite_shield/gravitite_base1_w_e.png deleted file mode 100644 index 324a8477e8..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/shields/gravitite_shield/gravitite_base1_w_e.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/shields/gravitite_shield/gravitite_base2.png b/src/main/resources/assets/aether/textures/items/shields/gravitite_shield/gravitite_base2.png deleted file mode 100644 index 824f308621..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/shields/gravitite_shield/gravitite_base2.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/shields/gravitite_shield/gravitite_center_mid.png b/src/main/resources/assets/aether/textures/items/shields/gravitite_shield/gravitite_center_mid.png deleted file mode 100644 index 95bd09a3c9..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/shields/gravitite_shield/gravitite_center_mid.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/shields/gravitite_shield/gravitite_handle.png b/src/main/resources/assets/aether/textures/items/shields/gravitite_shield/gravitite_handle.png deleted file mode 100644 index c7d88fbac6..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/shields/gravitite_shield/gravitite_handle.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/shields/gravitite_shield/gravitite_wing_lefta.png b/src/main/resources/assets/aether/textures/items/shields/gravitite_shield/gravitite_wing_lefta.png deleted file mode 100644 index a9700f977c..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/shields/gravitite_shield/gravitite_wing_lefta.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/shields/gravitite_shield/gravitite_wing_leftb.png b/src/main/resources/assets/aether/textures/items/shields/gravitite_shield/gravitite_wing_leftb.png deleted file mode 100644 index faea9135da..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/shields/gravitite_shield/gravitite_wing_leftb.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/shields/gravitite_shield/gravitite_wing_leftc.png b/src/main/resources/assets/aether/textures/items/shields/gravitite_shield/gravitite_wing_leftc.png deleted file mode 100644 index 97ac02aa4c..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/shields/gravitite_shield/gravitite_wing_leftc.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/shields/gravitite_shield/gravitite_wing_righta.png b/src/main/resources/assets/aether/textures/items/shields/gravitite_shield/gravitite_wing_righta.png deleted file mode 100644 index 8a25a914ea..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/shields/gravitite_shield/gravitite_wing_righta.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/shields/gravitite_shield/gravitite_wing_rightb.png b/src/main/resources/assets/aether/textures/items/shields/gravitite_shield/gravitite_wing_rightb.png deleted file mode 100644 index 90e0e77e3f..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/shields/gravitite_shield/gravitite_wing_rightb.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/shields/gravitite_shield/gravitite_wing_rightc.png b/src/main/resources/assets/aether/textures/items/shields/gravitite_shield/gravitite_wing_rightc.png deleted file mode 100644 index 023dabc0f5..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/shields/gravitite_shield/gravitite_wing_rightc.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/shields/holystone_shield/holystone_base1_n_d.png b/src/main/resources/assets/aether/textures/items/shields/holystone_shield/holystone_base1_n_d.png deleted file mode 100644 index 9119000be2..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/shields/holystone_shield/holystone_base1_n_d.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/shields/holystone_shield/holystone_base1_s_u.png b/src/main/resources/assets/aether/textures/items/shields/holystone_shield/holystone_base1_s_u.png deleted file mode 100644 index e51df2f6c4..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/shields/holystone_shield/holystone_base1_s_u.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/shields/holystone_shield/holystone_base1_w_e.png b/src/main/resources/assets/aether/textures/items/shields/holystone_shield/holystone_base1_w_e.png deleted file mode 100644 index d954281396..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/shields/holystone_shield/holystone_base1_w_e.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/shields/holystone_shield/holystone_base2.png b/src/main/resources/assets/aether/textures/items/shields/holystone_shield/holystone_base2.png deleted file mode 100644 index 75984de618..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/shields/holystone_shield/holystone_base2.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/shields/holystone_shield/holystone_center_left_right.png b/src/main/resources/assets/aether/textures/items/shields/holystone_shield/holystone_center_left_right.png deleted file mode 100644 index e93f51708e..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/shields/holystone_shield/holystone_center_left_right.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/shields/holystone_shield/holystone_center_mid.png b/src/main/resources/assets/aether/textures/items/shields/holystone_shield/holystone_center_mid.png deleted file mode 100644 index 1c2d7af616..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/shields/holystone_shield/holystone_center_mid.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/shields/holystone_shield/holystone_handle.png b/src/main/resources/assets/aether/textures/items/shields/holystone_shield/holystone_handle.png deleted file mode 100644 index 078cc6b2e2..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/shields/holystone_shield/holystone_handle.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/shields/holystone_shield/holystone_wing_left1.png b/src/main/resources/assets/aether/textures/items/shields/holystone_shield/holystone_wing_left1.png deleted file mode 100644 index 2b4bf57be1..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/shields/holystone_shield/holystone_wing_left1.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/shields/holystone_shield/holystone_wing_left2.png b/src/main/resources/assets/aether/textures/items/shields/holystone_shield/holystone_wing_left2.png deleted file mode 100644 index e112740cc9..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/shields/holystone_shield/holystone_wing_left2.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/shields/holystone_shield/holystone_wing_right1.png b/src/main/resources/assets/aether/textures/items/shields/holystone_shield/holystone_wing_right1.png deleted file mode 100644 index 08978a3efb..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/shields/holystone_shield/holystone_wing_right1.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/shields/holystone_shield/holystone_wing_right2.png b/src/main/resources/assets/aether/textures/items/shields/holystone_shield/holystone_wing_right2.png deleted file mode 100644 index 261fd8543e..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/shields/holystone_shield/holystone_wing_right2.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/shields/skyroot_shield/skyroot_base1_n_d.png b/src/main/resources/assets/aether/textures/items/shields/skyroot_shield/skyroot_base1_n_d.png deleted file mode 100644 index 3d5ba2b8ce..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/shields/skyroot_shield/skyroot_base1_n_d.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/shields/skyroot_shield/skyroot_base1_s_u.png b/src/main/resources/assets/aether/textures/items/shields/skyroot_shield/skyroot_base1_s_u.png deleted file mode 100644 index 67c268b7bd..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/shields/skyroot_shield/skyroot_base1_s_u.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/shields/skyroot_shield/skyroot_base1_w_e.png b/src/main/resources/assets/aether/textures/items/shields/skyroot_shield/skyroot_base1_w_e.png deleted file mode 100644 index a375c909af..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/shields/skyroot_shield/skyroot_base1_w_e.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/shields/skyroot_shield/skyroot_base2.png b/src/main/resources/assets/aether/textures/items/shields/skyroot_shield/skyroot_base2.png deleted file mode 100644 index 0884e91d3e..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/shields/skyroot_shield/skyroot_base2.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/shields/skyroot_shield/skyroot_center_mid.png b/src/main/resources/assets/aether/textures/items/shields/skyroot_shield/skyroot_center_mid.png deleted file mode 100644 index 68dec37d83..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/shields/skyroot_shield/skyroot_center_mid.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/shields/skyroot_shield/skyroot_handle.png b/src/main/resources/assets/aether/textures/items/shields/skyroot_shield/skyroot_handle.png deleted file mode 100644 index 8148ed2719..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/shields/skyroot_shield/skyroot_handle.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/shields/skyroot_shield/skyroot_wing_left1.png b/src/main/resources/assets/aether/textures/items/shields/skyroot_shield/skyroot_wing_left1.png deleted file mode 100644 index 96955a9232..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/shields/skyroot_shield/skyroot_wing_left1.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/shields/skyroot_shield/skyroot_wing_left3.png b/src/main/resources/assets/aether/textures/items/shields/skyroot_shield/skyroot_wing_left3.png deleted file mode 100644 index cad75a4ff8..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/shields/skyroot_shield/skyroot_wing_left3.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/shields/skyroot_shield/skyroot_wing_right1.png b/src/main/resources/assets/aether/textures/items/shields/skyroot_shield/skyroot_wing_right1.png deleted file mode 100644 index 9aea6fa2c0..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/shields/skyroot_shield/skyroot_wing_right1.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/shields/skyroot_shield/skyroot_wing_right3.png b/src/main/resources/assets/aether/textures/items/shields/skyroot_shield/skyroot_wing_right3.png deleted file mode 100644 index 5bb4087394..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/shields/skyroot_shield/skyroot_wing_right3.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/shields/zanite_shield/zanite_base1_n_d.png b/src/main/resources/assets/aether/textures/items/shields/zanite_shield/zanite_base1_n_d.png deleted file mode 100644 index 07b564e98b..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/shields/zanite_shield/zanite_base1_n_d.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/shields/zanite_shield/zanite_base1_s_u.png b/src/main/resources/assets/aether/textures/items/shields/zanite_shield/zanite_base1_s_u.png deleted file mode 100644 index 4959252084..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/shields/zanite_shield/zanite_base1_s_u.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/shields/zanite_shield/zanite_base1_w_e.png b/src/main/resources/assets/aether/textures/items/shields/zanite_shield/zanite_base1_w_e.png deleted file mode 100644 index 2d1647b5d8..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/shields/zanite_shield/zanite_base1_w_e.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/shields/zanite_shield/zanite_base2.png b/src/main/resources/assets/aether/textures/items/shields/zanite_shield/zanite_base2.png deleted file mode 100644 index 811b4b913a..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/shields/zanite_shield/zanite_base2.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/shields/zanite_shield/zanite_center_mid.png b/src/main/resources/assets/aether/textures/items/shields/zanite_shield/zanite_center_mid.png deleted file mode 100644 index c36cac2664..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/shields/zanite_shield/zanite_center_mid.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/shields/zanite_shield/zanite_handle.png b/src/main/resources/assets/aether/textures/items/shields/zanite_shield/zanite_handle.png deleted file mode 100644 index 078cc6b2e2..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/shields/zanite_shield/zanite_handle.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/shields/zanite_shield/zanite_wing_lefta.png b/src/main/resources/assets/aether/textures/items/shields/zanite_shield/zanite_wing_lefta.png deleted file mode 100644 index 1343f55cee..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/shields/zanite_shield/zanite_wing_lefta.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/shields/zanite_shield/zanite_wing_leftb.png b/src/main/resources/assets/aether/textures/items/shields/zanite_shield/zanite_wing_leftb.png deleted file mode 100644 index bc6872cca4..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/shields/zanite_shield/zanite_wing_leftb.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/shields/zanite_shield/zanite_wing_righta.png b/src/main/resources/assets/aether/textures/items/shields/zanite_shield/zanite_wing_righta.png deleted file mode 100644 index ac561e2829..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/shields/zanite_shield/zanite_wing_righta.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/shields/zanite_shield/zanite_wing_rightb.png b/src/main/resources/assets/aether/textures/items/shields/zanite_shield/zanite_wing_rightb.png deleted file mode 100644 index 11e5b3cfae..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/shields/zanite_shield/zanite_wing_rightb.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/skyroot_bed.png b/src/main/resources/assets/aether/textures/items/skyroot_bed.png deleted file mode 100644 index 6591089099..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/skyroot_bed.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/skyroot_sign.png b/src/main/resources/assets/aether/textures/items/skyroot_sign.png deleted file mode 100644 index 06a1a555e9..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/skyroot_sign.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/tools/arkenium_axe.png b/src/main/resources/assets/aether/textures/items/tools/arkenium_axe.png deleted file mode 100644 index b925f233a3..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/tools/arkenium_axe.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/tools/arkenium_pickaxe.png b/src/main/resources/assets/aether/textures/items/tools/arkenium_pickaxe.png deleted file mode 100644 index 00a2a83467..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/tools/arkenium_pickaxe.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/tools/arkenium_shears.png b/src/main/resources/assets/aether/textures/items/tools/arkenium_shears.png deleted file mode 100644 index aae5368c95..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/tools/arkenium_shears.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/tools/arkenium_shovel.png b/src/main/resources/assets/aether/textures/items/tools/arkenium_shovel.png deleted file mode 100644 index 7e16732071..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/tools/arkenium_shovel.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/tools/gravitite_axe.png b/src/main/resources/assets/aether/textures/items/tools/gravitite_axe.png deleted file mode 100644 index d8519bf473..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/tools/gravitite_axe.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/tools/gravitite_pickaxe.png b/src/main/resources/assets/aether/textures/items/tools/gravitite_pickaxe.png deleted file mode 100644 index 853d6f7ab2..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/tools/gravitite_pickaxe.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/tools/gravitite_shovel.png b/src/main/resources/assets/aether/textures/items/tools/gravitite_shovel.png deleted file mode 100644 index f9ae19d474..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/tools/gravitite_shovel.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/tools/holystone_axe.png b/src/main/resources/assets/aether/textures/items/tools/holystone_axe.png deleted file mode 100644 index 18526284b0..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/tools/holystone_axe.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/tools/holystone_pickaxe.png b/src/main/resources/assets/aether/textures/items/tools/holystone_pickaxe.png deleted file mode 100644 index afb60ca131..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/tools/holystone_pickaxe.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/tools/holystone_shovel.png b/src/main/resources/assets/aether/textures/items/tools/holystone_shovel.png deleted file mode 100644 index ff845144b2..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/tools/holystone_shovel.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/tools/skyroot_axe.png b/src/main/resources/assets/aether/textures/items/tools/skyroot_axe.png deleted file mode 100644 index 2a61550566..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/tools/skyroot_axe.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/tools/skyroot_pickaxe.png b/src/main/resources/assets/aether/textures/items/tools/skyroot_pickaxe.png deleted file mode 100644 index 8261b385fb..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/tools/skyroot_pickaxe.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/tools/skyroot_shovel.png b/src/main/resources/assets/aether/textures/items/tools/skyroot_shovel.png deleted file mode 100644 index 9830119508..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/tools/skyroot_shovel.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/tools/zanite_axe.png b/src/main/resources/assets/aether/textures/items/tools/zanite_axe.png deleted file mode 100644 index 840831bc6a..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/tools/zanite_axe.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/tools/zanite_pickaxe.png b/src/main/resources/assets/aether/textures/items/tools/zanite_pickaxe.png deleted file mode 100644 index b4f94439f7..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/tools/zanite_pickaxe.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/tools/zanite_shovel.png b/src/main/resources/assets/aether/textures/items/tools/zanite_shovel.png deleted file mode 100644 index 8cdbb7d461..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/tools/zanite_shovel.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/weapons/arkenium_sword.png b/src/main/resources/assets/aether/textures/items/weapons/arkenium_sword.png deleted file mode 100644 index e18917a2ab..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/weapons/arkenium_sword.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/weapons/crossbow/arkenium/loaded.png b/src/main/resources/assets/aether/textures/items/weapons/crossbow/arkenium/loaded.png deleted file mode 100644 index 12062d56eb..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/weapons/crossbow/arkenium/loaded.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/weapons/crossbow/arkenium/loading1.png b/src/main/resources/assets/aether/textures/items/weapons/crossbow/arkenium/loading1.png deleted file mode 100644 index f3a3f33fd8..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/weapons/crossbow/arkenium/loading1.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/weapons/crossbow/arkenium/loading2.png b/src/main/resources/assets/aether/textures/items/weapons/crossbow/arkenium/loading2.png deleted file mode 100644 index f034f0a611..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/weapons/crossbow/arkenium/loading2.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/weapons/crossbow/arkenium/loading3.png b/src/main/resources/assets/aether/textures/items/weapons/crossbow/arkenium/loading3.png deleted file mode 100644 index 46989ac229..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/weapons/crossbow/arkenium/loading3.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/weapons/crossbow/arkenium/standby.png b/src/main/resources/assets/aether/textures/items/weapons/crossbow/arkenium/standby.png deleted file mode 100644 index 0bbcba45f1..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/weapons/crossbow/arkenium/standby.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/weapons/crossbow/bolts/scatterglass_bolt.png b/src/main/resources/assets/aether/textures/items/weapons/crossbow/bolts/scatterglass_bolt.png deleted file mode 100644 index bf18647722..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/weapons/crossbow/bolts/scatterglass_bolt.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/weapons/crossbow/gravitite/loaded.png b/src/main/resources/assets/aether/textures/items/weapons/crossbow/gravitite/loaded.png deleted file mode 100644 index 544c6ae461..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/weapons/crossbow/gravitite/loaded.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/weapons/crossbow/gravitite/loading1.png b/src/main/resources/assets/aether/textures/items/weapons/crossbow/gravitite/loading1.png deleted file mode 100644 index c22d097c3b..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/weapons/crossbow/gravitite/loading1.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/weapons/crossbow/gravitite/loading2.png b/src/main/resources/assets/aether/textures/items/weapons/crossbow/gravitite/loading2.png deleted file mode 100644 index 1893f4bed5..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/weapons/crossbow/gravitite/loading2.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/weapons/crossbow/gravitite/loading3.png b/src/main/resources/assets/aether/textures/items/weapons/crossbow/gravitite/loading3.png deleted file mode 100644 index 5d2c566419..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/weapons/crossbow/gravitite/loading3.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/weapons/crossbow/gravitite/standby.png b/src/main/resources/assets/aether/textures/items/weapons/crossbow/gravitite/standby.png deleted file mode 100644 index 048e208f94..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/weapons/crossbow/gravitite/standby.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/weapons/crossbow/holystone/loaded.png b/src/main/resources/assets/aether/textures/items/weapons/crossbow/holystone/loaded.png deleted file mode 100644 index bacb04545d..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/weapons/crossbow/holystone/loaded.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/weapons/crossbow/holystone/loading1.png b/src/main/resources/assets/aether/textures/items/weapons/crossbow/holystone/loading1.png deleted file mode 100644 index 9a0afe6976..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/weapons/crossbow/holystone/loading1.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/weapons/crossbow/holystone/loading2.png b/src/main/resources/assets/aether/textures/items/weapons/crossbow/holystone/loading2.png deleted file mode 100644 index ebef422722..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/weapons/crossbow/holystone/loading2.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/weapons/crossbow/holystone/loading3.png b/src/main/resources/assets/aether/textures/items/weapons/crossbow/holystone/loading3.png deleted file mode 100644 index be2e7f34b9..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/weapons/crossbow/holystone/loading3.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/weapons/crossbow/holystone/standby.png b/src/main/resources/assets/aether/textures/items/weapons/crossbow/holystone/standby.png deleted file mode 100644 index ba9d56dc5c..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/weapons/crossbow/holystone/standby.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/weapons/crossbow/skyroot/loaded.png b/src/main/resources/assets/aether/textures/items/weapons/crossbow/skyroot/loaded.png deleted file mode 100644 index ec860c1322..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/weapons/crossbow/skyroot/loaded.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/weapons/crossbow/skyroot/loading1.png b/src/main/resources/assets/aether/textures/items/weapons/crossbow/skyroot/loading1.png deleted file mode 100644 index d577ffac7c..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/weapons/crossbow/skyroot/loading1.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/weapons/crossbow/skyroot/loading2.png b/src/main/resources/assets/aether/textures/items/weapons/crossbow/skyroot/loading2.png deleted file mode 100644 index 0b922650e7..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/weapons/crossbow/skyroot/loading2.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/weapons/crossbow/skyroot/loading3.png b/src/main/resources/assets/aether/textures/items/weapons/crossbow/skyroot/loading3.png deleted file mode 100644 index f293c4d551..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/weapons/crossbow/skyroot/loading3.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/weapons/crossbow/skyroot/standby.png b/src/main/resources/assets/aether/textures/items/weapons/crossbow/skyroot/standby.png deleted file mode 100644 index a714381150..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/weapons/crossbow/skyroot/standby.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/weapons/crossbow/zanite/loaded.png b/src/main/resources/assets/aether/textures/items/weapons/crossbow/zanite/loaded.png deleted file mode 100644 index dd981c8a3d..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/weapons/crossbow/zanite/loaded.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/weapons/crossbow/zanite/loading1.png b/src/main/resources/assets/aether/textures/items/weapons/crossbow/zanite/loading1.png deleted file mode 100644 index a470fde74e..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/weapons/crossbow/zanite/loading1.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/weapons/crossbow/zanite/loading2.png b/src/main/resources/assets/aether/textures/items/weapons/crossbow/zanite/loading2.png deleted file mode 100644 index 698c929477..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/weapons/crossbow/zanite/loading2.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/weapons/crossbow/zanite/loading3.png b/src/main/resources/assets/aether/textures/items/weapons/crossbow/zanite/loading3.png deleted file mode 100644 index 5396b7289a..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/weapons/crossbow/zanite/loading3.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/weapons/crossbow/zanite/standby.png b/src/main/resources/assets/aether/textures/items/weapons/crossbow/zanite/standby.png deleted file mode 100644 index 74c0933620..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/weapons/crossbow/zanite/standby.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/weapons/enchanted_dart.png b/src/main/resources/assets/aether/textures/items/weapons/enchanted_dart.png deleted file mode 100644 index 45b5c084d8..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/weapons/enchanted_dart.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/weapons/enchanted_dart_shooter.png b/src/main/resources/assets/aether/textures/items/weapons/enchanted_dart_shooter.png deleted file mode 100644 index 6dd73981d6..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/weapons/enchanted_dart_shooter.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/weapons/golden_dart.png b/src/main/resources/assets/aether/textures/items/weapons/golden_dart.png deleted file mode 100644 index ddb63b7c6a..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/weapons/golden_dart.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/weapons/golden_dart_shooter.png b/src/main/resources/assets/aether/textures/items/weapons/golden_dart_shooter.png deleted file mode 100644 index 4326c5b48a..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/weapons/golden_dart_shooter.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/weapons/gravitite_sword.png b/src/main/resources/assets/aether/textures/items/weapons/gravitite_sword.png deleted file mode 100644 index 1789f57664..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/weapons/gravitite_sword.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/weapons/holystone_sword.png b/src/main/resources/assets/aether/textures/items/weapons/holystone_sword.png deleted file mode 100644 index f2b64f4604..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/weapons/holystone_sword.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/weapons/poison_dart.png b/src/main/resources/assets/aether/textures/items/weapons/poison_dart.png deleted file mode 100644 index 7b579e7549..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/weapons/poison_dart.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/weapons/poison_dart_shooter.png b/src/main/resources/assets/aether/textures/items/weapons/poison_dart_shooter.png deleted file mode 100644 index 99c365ae6d..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/weapons/poison_dart_shooter.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/weapons/skyroot_sword.png b/src/main/resources/assets/aether/textures/items/weapons/skyroot_sword.png deleted file mode 100644 index e62a3c6a91..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/weapons/skyroot_sword.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/weapons/zanite_sword.png b/src/main/resources/assets/aether/textures/items/weapons/zanite_sword.png deleted file mode 100644 index 9d9c5285f0..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/weapons/zanite_sword.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/wrapping_paper/base.png b/src/main/resources/assets/aether/textures/items/wrapping_paper/base.png deleted file mode 100644 index 05029a8f44..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/wrapping_paper/base.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/wrapping_paper/overlay.png b/src/main/resources/assets/aether/textures/items/wrapping_paper/overlay.png deleted file mode 100644 index 11dfe61fd2..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/wrapping_paper/overlay.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/items/wrapping_paper/ribbon.png b/src/main/resources/assets/aether/textures/items/wrapping_paper/ribbon.png deleted file mode 100644 index af8a0ff55b..0000000000 Binary files a/src/main/resources/assets/aether/textures/items/wrapping_paper/ribbon.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/orbis/items/blueprint.png b/src/main/resources/assets/aether/textures/orbis/items/blueprint.png deleted file mode 100644 index dda9fe1bb2..0000000000 Binary files a/src/main/resources/assets/aether/textures/orbis/items/blueprint.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/particles/impact.png b/src/main/resources/assets/aether/textures/particles/impact.png deleted file mode 100644 index 3e93e72540..0000000000 Binary files a/src/main/resources/assets/aether/textures/particles/impact.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/particles/pierce.png b/src/main/resources/assets/aether/textures/particles/pierce.png deleted file mode 100644 index 6c37c9e00b..0000000000 Binary files a/src/main/resources/assets/aether/textures/particles/pierce.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/particles/skyroot_leaf_particle.png b/src/main/resources/assets/aether/textures/particles/skyroot_leaf_particle.png deleted file mode 100644 index 09d2a6f2a3..0000000000 Binary files a/src/main/resources/assets/aether/textures/particles/skyroot_leaf_particle.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/particles/slash.png b/src/main/resources/assets/aether/textures/particles/slash.png deleted file mode 100644 index 70dec21282..0000000000 Binary files a/src/main/resources/assets/aether/textures/particles/slash.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/patron/armor/none.png b/src/main/resources/assets/aether/textures/patron/armor/none.png deleted file mode 100644 index 89bac34357..0000000000 Binary files a/src/main/resources/assets/aether/textures/patron/armor/none.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/patron/armor/slider.png b/src/main/resources/assets/aether/textures/patron/armor/slider.png deleted file mode 100644 index 7f0a6cbefd..0000000000 Binary files a/src/main/resources/assets/aether/textures/patron/armor/slider.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/patron/armor/sun_spirit.png b/src/main/resources/assets/aether/textures/patron/armor/sun_spirit.png deleted file mode 100644 index 095956f5c2..0000000000 Binary files a/src/main/resources/assets/aether/textures/patron/armor/sun_spirit.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/patron/armor/valkyrie_queen.png b/src/main/resources/assets/aether/textures/patron/armor/valkyrie_queen.png deleted file mode 100644 index 93709d850e..0000000000 Binary files a/src/main/resources/assets/aether/textures/patron/armor/valkyrie_queen.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/tile_entities/altar.png b/src/main/resources/assets/aether/textures/tile_entities/altar.png deleted file mode 100644 index 4ddede7977..0000000000 Binary files a/src/main/resources/assets/aether/textures/tile_entities/altar.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/tile_entities/icestone_cooler.png b/src/main/resources/assets/aether/textures/tile_entities/icestone_cooler.png deleted file mode 100644 index 96f283c84c..0000000000 Binary files a/src/main/resources/assets/aether/textures/tile_entities/icestone_cooler.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/tile_entities/labyrinth_chest.png b/src/main/resources/assets/aether/textures/tile_entities/labyrinth_chest.png deleted file mode 100644 index 5fb91a577b..0000000000 Binary files a/src/main/resources/assets/aether/textures/tile_entities/labyrinth_chest.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/tile_entities/labyrinth_door.png b/src/main/resources/assets/aether/textures/tile_entities/labyrinth_door.png deleted file mode 100644 index 6ecb95b088..0000000000 Binary files a/src/main/resources/assets/aether/textures/tile_entities/labyrinth_door.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/tile_entities/labyrinth_door_glow.png b/src/main/resources/assets/aether/textures/tile_entities/labyrinth_door_glow.png deleted file mode 100644 index 3c38bb9f3b..0000000000 Binary files a/src/main/resources/assets/aether/textures/tile_entities/labyrinth_door_glow.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/tile_entities/labyrinth_totem.png b/src/main/resources/assets/aether/textures/tile_entities/labyrinth_totem.png deleted file mode 100644 index 4becd1f013..0000000000 Binary files a/src/main/resources/assets/aether/textures/tile_entities/labyrinth_totem.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/tile_entities/labyrinth_totem_glow.png b/src/main/resources/assets/aether/textures/tile_entities/labyrinth_totem_glow.png deleted file mode 100644 index 4cf111b2bb..0000000000 Binary files a/src/main/resources/assets/aether/textures/tile_entities/labyrinth_totem_glow.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/tile_entities/masonry_bench.png b/src/main/resources/assets/aether/textures/tile_entities/masonry_bench.png deleted file mode 100644 index 38555553bc..0000000000 Binary files a/src/main/resources/assets/aether/textures/tile_entities/masonry_bench.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/tile_entities/moa_egg/back/curved.png b/src/main/resources/assets/aether/textures/tile_entities/moa_egg/back/curved.png deleted file mode 100644 index d40aedbdfc..0000000000 Binary files a/src/main/resources/assets/aether/textures/tile_entities/moa_egg/back/curved.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/tile_entities/moa_egg/back/flat.png b/src/main/resources/assets/aether/textures/tile_entities/moa_egg/back/flat.png deleted file mode 100644 index 5b0981bf39..0000000000 Binary files a/src/main/resources/assets/aether/textures/tile_entities/moa_egg/back/flat.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/tile_entities/moa_egg/back/pointed.png b/src/main/resources/assets/aether/textures/tile_entities/moa_egg/back/pointed.png deleted file mode 100644 index b97407c1a9..0000000000 Binary files a/src/main/resources/assets/aether/textures/tile_entities/moa_egg/back/pointed.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/tile_entities/moa_egg/base.png b/src/main/resources/assets/aether/textures/tile_entities/moa_egg/base.png deleted file mode 100644 index 9364a8e612..0000000000 Binary files a/src/main/resources/assets/aether/textures/tile_entities/moa_egg/base.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/tile_entities/moa_egg/beak.png b/src/main/resources/assets/aether/textures/tile_entities/moa_egg/beak.png deleted file mode 100644 index d2465d0b17..0000000000 Binary files a/src/main/resources/assets/aether/textures/tile_entities/moa_egg/beak.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/tile_entities/moa_egg/head/eyes.png b/src/main/resources/assets/aether/textures/tile_entities/moa_egg/head/eyes.png deleted file mode 100644 index f9a20e7a52..0000000000 Binary files a/src/main/resources/assets/aether/textures/tile_entities/moa_egg/head/eyes.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/tile_entities/outpost_campfire.png b/src/main/resources/assets/aether/textures/tile_entities/outpost_campfire.png deleted file mode 100644 index f39af93c2b..0000000000 Binary files a/src/main/resources/assets/aether/textures/tile_entities/outpost_campfire.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/tile_entities/outpost_campfire_on.png b/src/main/resources/assets/aether/textures/tile_entities/outpost_campfire_on.png deleted file mode 100644 index 214c6f67a0..0000000000 Binary files a/src/main/resources/assets/aether/textures/tile_entities/outpost_campfire_on.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/tile_entities/present/present_box_black.png b/src/main/resources/assets/aether/textures/tile_entities/present/present_box_black.png deleted file mode 100644 index e1cdee2575..0000000000 Binary files a/src/main/resources/assets/aether/textures/tile_entities/present/present_box_black.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/tile_entities/present/present_box_blue.png b/src/main/resources/assets/aether/textures/tile_entities/present/present_box_blue.png deleted file mode 100644 index 04773171fa..0000000000 Binary files a/src/main/resources/assets/aether/textures/tile_entities/present/present_box_blue.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/tile_entities/present/present_box_brown.png b/src/main/resources/assets/aether/textures/tile_entities/present/present_box_brown.png deleted file mode 100644 index 42bab82653..0000000000 Binary files a/src/main/resources/assets/aether/textures/tile_entities/present/present_box_brown.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/tile_entities/present/present_box_cyan.png b/src/main/resources/assets/aether/textures/tile_entities/present/present_box_cyan.png deleted file mode 100644 index 2b1ab851b9..0000000000 Binary files a/src/main/resources/assets/aether/textures/tile_entities/present/present_box_cyan.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/tile_entities/present/present_box_gray.png b/src/main/resources/assets/aether/textures/tile_entities/present/present_box_gray.png deleted file mode 100644 index e7f8eb1b67..0000000000 Binary files a/src/main/resources/assets/aether/textures/tile_entities/present/present_box_gray.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/tile_entities/present/present_box_green.png b/src/main/resources/assets/aether/textures/tile_entities/present/present_box_green.png deleted file mode 100644 index 5eaaf96715..0000000000 Binary files a/src/main/resources/assets/aether/textures/tile_entities/present/present_box_green.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/tile_entities/present/present_box_light_blue.png b/src/main/resources/assets/aether/textures/tile_entities/present/present_box_light_blue.png deleted file mode 100644 index ab7f8f5d88..0000000000 Binary files a/src/main/resources/assets/aether/textures/tile_entities/present/present_box_light_blue.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/tile_entities/present/present_box_lime.png b/src/main/resources/assets/aether/textures/tile_entities/present/present_box_lime.png deleted file mode 100644 index db482251c7..0000000000 Binary files a/src/main/resources/assets/aether/textures/tile_entities/present/present_box_lime.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/tile_entities/present/present_box_magenta.png b/src/main/resources/assets/aether/textures/tile_entities/present/present_box_magenta.png deleted file mode 100644 index 3723b31462..0000000000 Binary files a/src/main/resources/assets/aether/textures/tile_entities/present/present_box_magenta.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/tile_entities/present/present_box_orange.png b/src/main/resources/assets/aether/textures/tile_entities/present/present_box_orange.png deleted file mode 100644 index 09db349a50..0000000000 Binary files a/src/main/resources/assets/aether/textures/tile_entities/present/present_box_orange.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/tile_entities/present/present_box_pink.png b/src/main/resources/assets/aether/textures/tile_entities/present/present_box_pink.png deleted file mode 100644 index e630db7c62..0000000000 Binary files a/src/main/resources/assets/aether/textures/tile_entities/present/present_box_pink.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/tile_entities/present/present_box_purple.png b/src/main/resources/assets/aether/textures/tile_entities/present/present_box_purple.png deleted file mode 100644 index 47675cba5b..0000000000 Binary files a/src/main/resources/assets/aether/textures/tile_entities/present/present_box_purple.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/tile_entities/present/present_box_red.png b/src/main/resources/assets/aether/textures/tile_entities/present/present_box_red.png deleted file mode 100644 index b146fe894e..0000000000 Binary files a/src/main/resources/assets/aether/textures/tile_entities/present/present_box_red.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/tile_entities/present/present_box_silver.png b/src/main/resources/assets/aether/textures/tile_entities/present/present_box_silver.png deleted file mode 100644 index c9a70cebe7..0000000000 Binary files a/src/main/resources/assets/aether/textures/tile_entities/present/present_box_silver.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/tile_entities/present/present_box_white.png b/src/main/resources/assets/aether/textures/tile_entities/present/present_box_white.png deleted file mode 100644 index cbd145596c..0000000000 Binary files a/src/main/resources/assets/aether/textures/tile_entities/present/present_box_white.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/tile_entities/present/present_box_yellow.png b/src/main/resources/assets/aether/textures/tile_entities/present/present_box_yellow.png deleted file mode 100644 index 9e9233fb9a..0000000000 Binary files a/src/main/resources/assets/aether/textures/tile_entities/present/present_box_yellow.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/tile_entities/present/present_ribbon_black.png b/src/main/resources/assets/aether/textures/tile_entities/present/present_ribbon_black.png deleted file mode 100644 index fc5e37ec99..0000000000 Binary files a/src/main/resources/assets/aether/textures/tile_entities/present/present_ribbon_black.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/tile_entities/present/present_ribbon_blue.png b/src/main/resources/assets/aether/textures/tile_entities/present/present_ribbon_blue.png deleted file mode 100644 index edf341ec3d..0000000000 Binary files a/src/main/resources/assets/aether/textures/tile_entities/present/present_ribbon_blue.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/tile_entities/present/present_ribbon_brown.png b/src/main/resources/assets/aether/textures/tile_entities/present/present_ribbon_brown.png deleted file mode 100644 index 9ac9a85e70..0000000000 Binary files a/src/main/resources/assets/aether/textures/tile_entities/present/present_ribbon_brown.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/tile_entities/present/present_ribbon_cyan.png b/src/main/resources/assets/aether/textures/tile_entities/present/present_ribbon_cyan.png deleted file mode 100644 index 9a38de3b94..0000000000 Binary files a/src/main/resources/assets/aether/textures/tile_entities/present/present_ribbon_cyan.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/tile_entities/present/present_ribbon_gray.png b/src/main/resources/assets/aether/textures/tile_entities/present/present_ribbon_gray.png deleted file mode 100644 index 680e550ae1..0000000000 Binary files a/src/main/resources/assets/aether/textures/tile_entities/present/present_ribbon_gray.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/tile_entities/present/present_ribbon_green.png b/src/main/resources/assets/aether/textures/tile_entities/present/present_ribbon_green.png deleted file mode 100644 index 35e7b4b04e..0000000000 Binary files a/src/main/resources/assets/aether/textures/tile_entities/present/present_ribbon_green.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/tile_entities/present/present_ribbon_light_blue.png b/src/main/resources/assets/aether/textures/tile_entities/present/present_ribbon_light_blue.png deleted file mode 100644 index fb3125638a..0000000000 Binary files a/src/main/resources/assets/aether/textures/tile_entities/present/present_ribbon_light_blue.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/tile_entities/present/present_ribbon_lime.png b/src/main/resources/assets/aether/textures/tile_entities/present/present_ribbon_lime.png deleted file mode 100644 index 0df2159e94..0000000000 Binary files a/src/main/resources/assets/aether/textures/tile_entities/present/present_ribbon_lime.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/tile_entities/present/present_ribbon_magenta.png b/src/main/resources/assets/aether/textures/tile_entities/present/present_ribbon_magenta.png deleted file mode 100644 index ee75b3be61..0000000000 Binary files a/src/main/resources/assets/aether/textures/tile_entities/present/present_ribbon_magenta.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/tile_entities/present/present_ribbon_orange.png b/src/main/resources/assets/aether/textures/tile_entities/present/present_ribbon_orange.png deleted file mode 100644 index d78d9623d9..0000000000 Binary files a/src/main/resources/assets/aether/textures/tile_entities/present/present_ribbon_orange.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/tile_entities/present/present_ribbon_pink.png b/src/main/resources/assets/aether/textures/tile_entities/present/present_ribbon_pink.png deleted file mode 100644 index 09d8c0e903..0000000000 Binary files a/src/main/resources/assets/aether/textures/tile_entities/present/present_ribbon_pink.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/tile_entities/present/present_ribbon_purple.png b/src/main/resources/assets/aether/textures/tile_entities/present/present_ribbon_purple.png deleted file mode 100644 index ac80ce696e..0000000000 Binary files a/src/main/resources/assets/aether/textures/tile_entities/present/present_ribbon_purple.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/tile_entities/present/present_ribbon_red.png b/src/main/resources/assets/aether/textures/tile_entities/present/present_ribbon_red.png deleted file mode 100644 index 54cbd93b72..0000000000 Binary files a/src/main/resources/assets/aether/textures/tile_entities/present/present_ribbon_red.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/tile_entities/present/present_ribbon_silver.png b/src/main/resources/assets/aether/textures/tile_entities/present/present_ribbon_silver.png deleted file mode 100644 index 6c2f1c62d1..0000000000 Binary files a/src/main/resources/assets/aether/textures/tile_entities/present/present_ribbon_silver.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/tile_entities/present/present_ribbon_white.png b/src/main/resources/assets/aether/textures/tile_entities/present/present_ribbon_white.png deleted file mode 100644 index 62e676fffc..0000000000 Binary files a/src/main/resources/assets/aether/textures/tile_entities/present/present_ribbon_white.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/tile_entities/present/present_ribbon_yellow.png b/src/main/resources/assets/aether/textures/tile_entities/present/present_ribbon_yellow.png deleted file mode 100644 index f79522406c..0000000000 Binary files a/src/main/resources/assets/aether/textures/tile_entities/present/present_ribbon_yellow.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/tile_entities/skyroot_chest.png b/src/main/resources/assets/aether/textures/tile_entities/skyroot_chest.png deleted file mode 100644 index 5375f4052c..0000000000 Binary files a/src/main/resources/assets/aether/textures/tile_entities/skyroot_chest.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/tile_entities/skyroot_chest_large.png b/src/main/resources/assets/aether/textures/tile_entities/skyroot_chest_large.png deleted file mode 100644 index 886bc2edd3..0000000000 Binary files a/src/main/resources/assets/aether/textures/tile_entities/skyroot_chest_large.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/tile_entities/skyroot_sign.png b/src/main/resources/assets/aether/textures/tile_entities/skyroot_sign.png deleted file mode 100644 index b86eafe350..0000000000 Binary files a/src/main/resources/assets/aether/textures/tile_entities/skyroot_sign.png and /dev/null differ diff --git a/src/main/resources/assets/aether/textures/tile_entities/teleporter/pedestal.png b/src/main/resources/assets/aether/textures/tile_entities/teleporter/pedestal.png deleted file mode 100644 index cfa4ecb250..0000000000 Binary files a/src/main/resources/assets/aether/textures/tile_entities/teleporter/pedestal.png and /dev/null differ diff --git a/src/main/resources/assets/aether/travellers_guidebook/definitions/aechor_plant.json b/src/main/resources/assets/aether/travellers_guidebook/definitions/aechor_plant.json deleted file mode 100644 index 905ae54adc..0000000000 --- a/src/main/resources/assets/aether/travellers_guidebook/definitions/aechor_plant.json +++ /dev/null @@ -1,23 +0,0 @@ -[ - { - "conditions": [ - { - "type": "aether:seeEntity", - "entityId": "aether:aechor_plant" - } - ], - "resolution": "requireAll", - "entries": { - "aether.aechor_plant.discovery": { - "tag": "bestiary", - "type": "bestiary_page", - "entityId": "aether:aechor_plant", - "silhouetteTexture": "aether:textures/discoveries/bestiary/aechor_plant/silhouette.png", - "discoveredTexture": "aether:textures/discoveries/bestiary/aechor_plant/discovered.png", - "silhouetteSlotTexture": "aether:textures/discoveries/bestiary/aechor_plant/silhouette_slot.png", - "discoveredSlotTexture": "aether:textures/discoveries/bestiary/aechor_plant/discovered_slot.png", - "description": "aether.placeholder.discovery.description" - } - } - } -] \ No newline at end of file diff --git a/src/main/resources/assets/aether/travellers_guidebook/definitions/aerbunny.json b/src/main/resources/assets/aether/travellers_guidebook/definitions/aerbunny.json deleted file mode 100644 index 17dc7c54bb..0000000000 --- a/src/main/resources/assets/aether/travellers_guidebook/definitions/aerbunny.json +++ /dev/null @@ -1,23 +0,0 @@ -[ - { - "conditions": [ - { - "type": "aether:seeEntity", - "entityId": "aether:aerbunny" - } - ], - "resolution": "requireAll", - "entries": { - "aether.aerbunny.discovery": { - "tag": "bestiary", - "type": "bestiary_page", - "entityId": "aether:aerbunny", - "silhouetteTexture": "aether:textures/discoveries/bestiary/aerbunny/silhouette.png", - "discoveredTexture": "aether:textures/discoveries/bestiary/aerbunny/discovered.png", - "silhouetteSlotTexture": "aether:textures/discoveries/bestiary/aerbunny/silhouette_slot.png", - "discoveredSlotTexture": "aether:textures/discoveries/bestiary/aerbunny/discovered_slot.png", - "description": "aether.placeholder.discovery.description" - } - } - } -] \ No newline at end of file diff --git a/src/main/resources/assets/aether/travellers_guidebook/definitions/ambrosium_poisoning.json b/src/main/resources/assets/aether/travellers_guidebook/definitions/ambrosium_poisoning.json deleted file mode 100644 index 40245b1cdf..0000000000 --- a/src/main/resources/assets/aether/travellers_guidebook/definitions/ambrosium_poisoning.json +++ /dev/null @@ -1,21 +0,0 @@ -[ - { - "conditions": [ - { - "type": "aether:none" - } - ], - "resolution": "requireAny", - "entries": { - "aether.ambrosium_poisoning.discovery": { - "tag": "effects", - "type": "effects_page", - "effectName": "ambrosium_poisoning", - "displayTexture": "aether:textures/gui/overlay/effects/ambrosium_poisoning.png", - "slotTexture": "aether:textures/gui/overlay/effects/ambrosium_poisoning.png", - "description": "aether.placeholder.discovery.description", - "curativeItems" : [ ] - } - } - } -] \ No newline at end of file diff --git a/src/main/resources/assets/aether/travellers_guidebook/definitions/bleed.json b/src/main/resources/assets/aether/travellers_guidebook/definitions/bleed.json deleted file mode 100644 index f1e170e28d..0000000000 --- a/src/main/resources/assets/aether/travellers_guidebook/definitions/bleed.json +++ /dev/null @@ -1,21 +0,0 @@ -[ - { - "conditions": [ - { - "type": "aether:none" - } - ], - "resolution": "requireAny", - "entries": { - "aether.bleed.discovery": { - "tag": "effects", - "type": "effects_page", - "effectName": "bleed", - "displayTexture": "aether:textures/gui/overlay/effects/bleed.png", - "slotTexture": "aether:textures/gui/overlay/effects/bleed.png", - "description": "aether.placeholder.discovery.description", - "curativeItems" : [ ] - } - } - } -] \ No newline at end of file diff --git a/src/main/resources/assets/aether/travellers_guidebook/definitions/burrukai.json b/src/main/resources/assets/aether/travellers_guidebook/definitions/burrukai.json deleted file mode 100644 index 39db156e5a..0000000000 --- a/src/main/resources/assets/aether/travellers_guidebook/definitions/burrukai.json +++ /dev/null @@ -1,23 +0,0 @@ -[ - { - "conditions": [ - { - "type": "aether:seeEntity", - "entityId": "aether:burrukai" - } - ], - "resolution": "requireAll", - "entries": { - "aether.burrukai.discovery": { - "tag": "bestiary", - "type": "bestiary_page", - "entityId": "aether:burrukai", - "silhouetteTexture": "aether:textures/discoveries/bestiary/burrukai/silhouette.png", - "discoveredTexture": "aether:textures/discoveries/bestiary/burrukai/discovered.png", - "silhouetteSlotTexture": "aether:textures/discoveries/bestiary/burrukai/silhouette_slot.png", - "discoveredSlotTexture": "aether:textures/discoveries/bestiary/burrukai/discovered_slot.png", - "description": "aether.placeholder.discovery.description" - } - } - } -] \ No newline at end of file diff --git a/src/main/resources/assets/aether/travellers_guidebook/definitions/carrion_sprout.json b/src/main/resources/assets/aether/travellers_guidebook/definitions/carrion_sprout.json deleted file mode 100644 index afc2ee8482..0000000000 --- a/src/main/resources/assets/aether/travellers_guidebook/definitions/carrion_sprout.json +++ /dev/null @@ -1,23 +0,0 @@ -[ - { - "conditions": [ - { - "type": "aether:seeEntity", - "entityId": "aether:carrion_sprout" - } - ], - "resolution": "requireAll", - "entries": { - "aether.carrion_sprout.discovery": { - "tag": "bestiary", - "type": "bestiary_page", - "entityId": "aether:carrion_sprout", - "silhouetteTexture": "aether:textures/discoveries/bestiary/carrion_sprout/silhouette.png", - "discoveredTexture": "aether:textures/discoveries/bestiary/carrion_sprout/discovered.png", - "silhouetteSlotTexture": "aether:textures/discoveries/bestiary/carrion_sprout/silhouette_slot.png", - "discoveredSlotTexture": "aether:textures/discoveries/bestiary/carrion_sprout/discovered_slot.png", - "description": "aether.placeholder.discovery.description" - } - } - } -] \ No newline at end of file diff --git a/src/main/resources/assets/aether/travellers_guidebook/definitions/cockatrice.json b/src/main/resources/assets/aether/travellers_guidebook/definitions/cockatrice.json deleted file mode 100644 index ddc1137489..0000000000 --- a/src/main/resources/assets/aether/travellers_guidebook/definitions/cockatrice.json +++ /dev/null @@ -1,23 +0,0 @@ -[ - { - "conditions": [ - { - "type": "aether:seeEntity", - "entityId": "aether:cockatrice" - } - ], - "resolution": "requireAll", - "entries": { - "aether.cockatrice.discovery": { - "tag": "bestiary", - "type": "bestiary_page", - "entityId": "aether:cockatrice", - "silhouetteTexture": "aether:textures/discoveries/bestiary/placeholder/silhouette.png", - "discoveredTexture": "aether:textures/discoveries/bestiary/placeholder/discovered.png", - "silhouetteSlotTexture": "aether:textures/discoveries/bestiary/cockatrice/silhouette_slot.png", - "discoveredSlotTexture": "aether:textures/discoveries/bestiary/cockatrice/discovered_slot.png", - "description": "aether.placeholder.discovery.description" - } - } - } -] \ No newline at end of file diff --git a/src/main/resources/assets/aether/travellers_guidebook/definitions/cockatrice_venom.json b/src/main/resources/assets/aether/travellers_guidebook/definitions/cockatrice_venom.json deleted file mode 100644 index 7c98ba8cf9..0000000000 --- a/src/main/resources/assets/aether/travellers_guidebook/definitions/cockatrice_venom.json +++ /dev/null @@ -1,21 +0,0 @@ -[ - { - "conditions": [ - { - "type": "aether:none" - } - ], - "resolution": "requireAny", - "entries": { - "aether.cockatrice_venom.discovery": { - "tag": "effects", - "type": "effects_page", - "effectName": "cockatrice_venom", - "displayTexture": "aether:textures/gui/overlay/effects/cockatrice_venom.png", - "slotTexture": "aether:textures/gui/overlay/effects/cockatrice_venom.png", - "description": "aether.placeholder.discovery.description", - "curativeItems" : [ "aether:antivenom_vial" ] - } - } - } -] \ No newline at end of file diff --git a/src/main/resources/assets/aether/travellers_guidebook/definitions/fracture.json b/src/main/resources/assets/aether/travellers_guidebook/definitions/fracture.json deleted file mode 100644 index bb423ad035..0000000000 --- a/src/main/resources/assets/aether/travellers_guidebook/definitions/fracture.json +++ /dev/null @@ -1,21 +0,0 @@ -[ - { - "conditions": [ - { - "type": "aether:none" - } - ], - "resolution": "requireAny", - "entries": { - "aether.fracture.discovery": { - "tag": "effects", - "type": "effects_page", - "effectName": "fracture", - "displayTexture": "aether:textures/gui/overlay/effects/fracture.png", - "slotTexture": "aether:textures/gui/overlay/effects/fracture.png", - "description": "aether.placeholder.discovery.description", - "curativeItems" : [ ] - } - } - } -] \ No newline at end of file diff --git a/src/main/resources/assets/aether/travellers_guidebook/definitions/freeze.json b/src/main/resources/assets/aether/travellers_guidebook/definitions/freeze.json deleted file mode 100644 index d44fbd1568..0000000000 --- a/src/main/resources/assets/aether/travellers_guidebook/definitions/freeze.json +++ /dev/null @@ -1,21 +0,0 @@ -[ - { - "conditions": [ - { - "type": "aether:none" - } - ], - "resolution": "requireAny", - "entries": { - "aether.freeze.discovery": { - "tag": "effects", - "type": "effects_page", - "effectName": "freeze", - "displayTexture": "aether:textures/gui/overlay/effects/freeze.png", - "slotTexture": "aether:textures/gui/overlay/effects/freeze.png", - "description": "aether.placeholder.discovery.description", - "curativeItems" : [ ] - } - } - } -] \ No newline at end of file diff --git a/src/main/resources/assets/aether/travellers_guidebook/definitions/glactrix.json b/src/main/resources/assets/aether/travellers_guidebook/definitions/glactrix.json deleted file mode 100644 index f13a9720dd..0000000000 --- a/src/main/resources/assets/aether/travellers_guidebook/definitions/glactrix.json +++ /dev/null @@ -1,23 +0,0 @@ -[ - { - "conditions": [ - { - "type": "aether:seeEntity", - "entityId": "aether:glactrix" - } - ], - "resolution": "requireAll", - "entries": { - "aether.glactrix.discovery": { - "tag": "bestiary", - "type": "bestiary_page", - "entityId": "aether:glactrix", - "silhouetteTexture": "aether:textures/discoveries/bestiary/placeholder/silhouette.png", - "discoveredTexture": "aether:textures/discoveries/bestiary/placeholder/discovered.png", - "silhouetteSlotTexture": "aether:textures/discoveries/bestiary/glactrix/silhouette_slot.png", - "discoveredSlotTexture": "aether:textures/discoveries/bestiary/glactrix/discovered_slot.png", - "description": "aether.placeholder.discovery.description" - } - } - } -] \ No newline at end of file diff --git a/src/main/resources/assets/aether/travellers_guidebook/definitions/glitterwing.json b/src/main/resources/assets/aether/travellers_guidebook/definitions/glitterwing.json deleted file mode 100644 index 3923615e03..0000000000 --- a/src/main/resources/assets/aether/travellers_guidebook/definitions/glitterwing.json +++ /dev/null @@ -1,23 +0,0 @@ -[ - { - "conditions": [ - { - "type": "aether:seeEntity", - "entityId": "aether:glitterwing" - } - ], - "resolution": "requireAll", - "entries": { - "aether.glitterwing.discovery": { - "tag": "bestiary", - "type": "bestiary_page", - "entityId": "aether:glitterwing", - "silhouetteTexture": "aether:textures/discoveries/bestiary/placeholder/silhouette.png", - "discoveredTexture": "aether:textures/discoveries/bestiary/placeholder/discovered.png", - "silhouetteSlotTexture": "aether:textures/discoveries/bestiary/placeholder/silhouette_slot.png", - "discoveredSlotTexture": "aether:textures/discoveries/bestiary/placeholder/discovered_slot.png", - "description": "aether.placeholder.discovery.description" - } - } - } -] \ No newline at end of file diff --git a/src/main/resources/assets/aether/travellers_guidebook/definitions/guard_break.json b/src/main/resources/assets/aether/travellers_guidebook/definitions/guard_break.json deleted file mode 100644 index cdcf1e9e7d..0000000000 --- a/src/main/resources/assets/aether/travellers_guidebook/definitions/guard_break.json +++ /dev/null @@ -1,21 +0,0 @@ -[ - { - "conditions": [ - { - "type": "aether:none" - } - ], - "resolution": "requireAny", - "entries": { - "aether.guard_break.discovery": { - "tag": "effects", - "type": "effects_page", - "effectName": "guard_break", - "displayTexture": "aether:textures/gui/overlay/effects/guard_break.png", - "slotTexture": "aether:textures/gui/overlay/effects/guard_break.png", - "description": "aether.placeholder.discovery.description", - "curativeItems" : [ ] - } - } - } -] \ No newline at end of file diff --git a/src/main/resources/assets/aether/travellers_guidebook/definitions/irradiation.json b/src/main/resources/assets/aether/travellers_guidebook/definitions/irradiation.json deleted file mode 100644 index ad02aa76d0..0000000000 --- a/src/main/resources/assets/aether/travellers_guidebook/definitions/irradiation.json +++ /dev/null @@ -1,21 +0,0 @@ -[ - { - "conditions": [ - { - "type": "aether:none" - } - ], - "resolution": "requireAny", - "entries": { - "aether.irradiation.discovery": { - "tag": "effects", - "type": "effects_page", - "effectName": "irradiation", - "displayTexture": "aether:textures/gui/overlay/effects/irradiation.png", - "slotTexture": "aether:textures/gui/overlay/effects/irradiation.png", - "description": "aether.placeholder.discovery.description", - "curativeItems" : [ ] - } - } - } -] \ No newline at end of file diff --git a/src/main/resources/assets/aether/travellers_guidebook/definitions/kirrid.json b/src/main/resources/assets/aether/travellers_guidebook/definitions/kirrid.json deleted file mode 100644 index 5cc6fd8eeb..0000000000 --- a/src/main/resources/assets/aether/travellers_guidebook/definitions/kirrid.json +++ /dev/null @@ -1,23 +0,0 @@ -[ - { - "conditions": [ - { - "type": "aether:seeEntity", - "entityId": "aether:kirrid" - } - ], - "resolution": "requireAll", - "entries": { - "aether.kirrid.discovery": { - "tag": "bestiary", - "type": "bestiary_page", - "entityId": "aether:kirrid", - "silhouetteTexture": "aether:textures/discoveries/bestiary/placeholder/silhouette.png", - "discoveredTexture": "aether:textures/discoveries/bestiary/placeholder/discovered.png", - "silhouetteSlotTexture": "aether:textures/discoveries/bestiary/kirrid/silhouette_slot.png", - "discoveredSlotTexture": "aether:textures/discoveries/bestiary/kirrid/discovered_slot.png", - "description": "aether.placeholder.discovery.description" - } - } - } -] \ No newline at end of file diff --git a/src/main/resources/assets/aether/travellers_guidebook/definitions/moa.json b/src/main/resources/assets/aether/travellers_guidebook/definitions/moa.json deleted file mode 100644 index 4482275d65..0000000000 --- a/src/main/resources/assets/aether/travellers_guidebook/definitions/moa.json +++ /dev/null @@ -1,23 +0,0 @@ -[ - { - "conditions": [ - { - "type": "aether:seeEntity", - "entityId": "aether:moa" - } - ], - "resolution": "requireAll", - "entries": { - "aether.moa.discovery": { - "tag": "bestiary", - "type": "bestiary_page", - "entityId": "aether:moa", - "silhouetteTexture": "aether:textures/discoveries/bestiary/placeholder/silhouette.png", - "discoveredTexture": "aether:textures/discoveries/bestiary/placeholder/discovered.png", - "silhouetteSlotTexture": "aether:textures/discoveries/bestiary/moa/silhouette_slot.png", - "discoveredSlotTexture": "aether:textures/discoveries/bestiary/moa/discovered_slot.png", - "description": "aether.placeholder.discovery.description" - } - } - } -] \ No newline at end of file diff --git a/src/main/resources/assets/aether/travellers_guidebook/definitions/saturation_boost.json b/src/main/resources/assets/aether/travellers_guidebook/definitions/saturation_boost.json deleted file mode 100644 index 4fe4109b6a..0000000000 --- a/src/main/resources/assets/aether/travellers_guidebook/definitions/saturation_boost.json +++ /dev/null @@ -1,21 +0,0 @@ -[ - { - "conditions": [ - { - "type": "aether:none" - } - ], - "resolution": "requireAny", - "entries": { - "aether.saturation_boost.discovery": { - "tag": "effects", - "type": "effects_page", - "effectName": "saturation_boost", - "displayTexture": "aether:textures/gui/overlay/effects/teas/saturation_boost.png", - "slotTexture": "aether:textures/gui/overlay/effects/teas/saturation_boost.png", - "description": "aether.placeholder.discovery.description", - "curativeItems" : [ ] - } - } - } -] \ No newline at end of file diff --git a/src/main/resources/assets/aether/travellers_guidebook/definitions/sheepuff.json b/src/main/resources/assets/aether/travellers_guidebook/definitions/sheepuff.json deleted file mode 100644 index 0beb5f4ed3..0000000000 --- a/src/main/resources/assets/aether/travellers_guidebook/definitions/sheepuff.json +++ /dev/null @@ -1,23 +0,0 @@ -[ - { - "conditions": [ - { - "type": "aether:seeEntity", - "entityId": "aether:sheepuff" - } - ], - "resolution": "requireAll", - "entries": { - "aether.sheepuff.discovery": { - "tag": "bestiary", - "type": "bestiary_page", - "entityId": "aether:sheepuff", - "silhouetteTexture": "aether:textures/discoveries/bestiary/placeholder/silhouette.png", - "discoveredTexture": "aether:textures/discoveries/bestiary/placeholder/discovered.png", - "silhouetteSlotTexture": "aether:textures/discoveries/bestiary/placeholder/silhouette_slot.png", - "discoveredSlotTexture": "aether:textures/discoveries/bestiary/placeholder/discovered_slot.png", - "description": "aether.placeholder.discovery.description" - } - } - } -] \ No newline at end of file diff --git a/src/main/resources/assets/aether/travellers_guidebook/definitions/skyroot_lizard.json b/src/main/resources/assets/aether/travellers_guidebook/definitions/skyroot_lizard.json deleted file mode 100644 index a92cd2e65b..0000000000 --- a/src/main/resources/assets/aether/travellers_guidebook/definitions/skyroot_lizard.json +++ /dev/null @@ -1,23 +0,0 @@ -[ - { - "conditions": [ - { - "type": "aether:seeEntity", - "entityId": "aether:skyroot_lizard" - } - ], - "resolution": "requireAll", - "entries": { - "aether.skyroot_lizard.discovery": { - "tag": "bestiary", - "type": "bestiary_page", - "entityId": "aether:skyroot_lizard", - "silhouetteTexture": "aether:textures/discoveries/bestiary/placeholder/silhouette.png", - "discoveredTexture": "aether:textures/discoveries/bestiary/placeholder/discovered.png", - "silhouetteSlotTexture": "aether:textures/discoveries/bestiary/skyroot_lizard/silhouette_slot.png", - "discoveredSlotTexture": "aether:textures/discoveries/bestiary/skyroot_lizard/discovered_slot.png", - "description": "aether.placeholder.discovery.description" - } - } - } -] \ No newline at end of file diff --git a/src/main/resources/assets/aether/travellers_guidebook/definitions/stun.json b/src/main/resources/assets/aether/travellers_guidebook/definitions/stun.json deleted file mode 100644 index 13ffa6a075..0000000000 --- a/src/main/resources/assets/aether/travellers_guidebook/definitions/stun.json +++ /dev/null @@ -1,21 +0,0 @@ -[ - { - "conditions": [ - { - "type": "aether:none" - } - ], - "resolution": "requireAny", - "entries": { - "aether.stun.discovery": { - "tag": "effects", - "type": "effects_page", - "effectName": "stun", - "displayTexture": "aether:textures/gui/overlay/effects/stun.png", - "slotTexture": "aether:textures/gui/overlay/effects/stun.png", - "description": "aether.placeholder.discovery.description", - "curativeItems" : [ ] - } - } - } -] \ No newline at end of file diff --git a/src/main/resources/assets/aether/travellers_guidebook/definitions/swet.json b/src/main/resources/assets/aether/travellers_guidebook/definitions/swet.json deleted file mode 100644 index efb0df6c97..0000000000 --- a/src/main/resources/assets/aether/travellers_guidebook/definitions/swet.json +++ /dev/null @@ -1,23 +0,0 @@ -[ - { - "conditions": [ - { - "type": "aether:seeEntity", - "entityId": "aether:swet" - } - ], - "resolution": "requireAll", - "entries": { - "aether.swet.discovery": { - "tag": "bestiary", - "type": "bestiary_page", - "entityId": "aether:swet", - "silhouetteTexture": "aether:textures/discoveries/bestiary/placeholder/silhouette.png", - "discoveredTexture": "aether:textures/discoveries/bestiary/placeholder/discovered.png", - "silhouetteSlotTexture": "aether:textures/discoveries/bestiary/swet/silhouette_slot.png", - "discoveredSlotTexture": "aether:textures/discoveries/bestiary/swet/discovered_slot.png", - "description": "aether.placeholder.discovery.description" - } - } - } -] \ No newline at end of file diff --git a/src/main/resources/assets/aether/travellers_guidebook/definitions/taegore.json b/src/main/resources/assets/aether/travellers_guidebook/definitions/taegore.json deleted file mode 100644 index b2b3ce9b17..0000000000 --- a/src/main/resources/assets/aether/travellers_guidebook/definitions/taegore.json +++ /dev/null @@ -1,23 +0,0 @@ -[ - { - "conditions": [ - { - "type": "aether:seeEntity", - "entityId": "aether:taegore" - } - ], - "resolution": "requireAll", - "entries": { - "aether.taegore.discovery": { - "tag": "bestiary", - "type": "bestiary_page", - "entityId": "aether:taegore", - "silhouetteTexture": "aether:textures/discoveries/bestiary/taegore/silhouette.png", - "discoveredTexture": "aether:textures/discoveries/bestiary/taegore/discovered.png", - "silhouetteSlotTexture": "aether:textures/discoveries/bestiary/taegore/silhouette_slot.png", - "discoveredSlotTexture": "aether:textures/discoveries/bestiary/taegore/discovered_slot.png", - "description": "aether.taegore.discovery.description" - } - } - } -] \ No newline at end of file diff --git a/src/main/resources/assets/aether/travellers_guidebook/definitions/tempest.json b/src/main/resources/assets/aether/travellers_guidebook/definitions/tempest.json deleted file mode 100644 index ae5a46f23b..0000000000 --- a/src/main/resources/assets/aether/travellers_guidebook/definitions/tempest.json +++ /dev/null @@ -1,23 +0,0 @@ -[ - { - "conditions": [ - { - "type": "aether:seeEntity", - "entityId": "aether:tempest" - } - ], - "resolution": "requireAll", - "entries": { - "aether.tempest.discovery": { - "tag": "bestiary", - "type": "bestiary_page", - "entityId": "aether:tempest", - "silhouetteTexture": "aether:textures/discoveries/bestiary/placeholder/silhouette.png", - "discoveredTexture": "aether:textures/discoveries/bestiary/placeholder/discovered.png", - "silhouetteSlotTexture": "aether:textures/discoveries/bestiary/tempest/silhouette_slot.png", - "discoveredSlotTexture": "aether:textures/discoveries/bestiary/tempest/discovered_slot.png", - "description": "aether.placeholder.discovery.description" - } - } - } -] \ No newline at end of file diff --git a/src/main/resources/assets/aether/travellers_guidebook/definitions/toxin.json b/src/main/resources/assets/aether/travellers_guidebook/definitions/toxin.json deleted file mode 100644 index e30dffb376..0000000000 --- a/src/main/resources/assets/aether/travellers_guidebook/definitions/toxin.json +++ /dev/null @@ -1,21 +0,0 @@ -[ - { - "conditions": [ - { - "type": "aether:none" - } - ], - "resolution": "requireAny", - "entries": { - "aether.toxin.discovery": { - "tag": "effects", - "type": "effects_page", - "effectName": "toxin", - "displayTexture": "aether:textures/gui/overlay/effects/toxin.png", - "slotTexture": "aether:textures/gui/overlay/effects/toxin.png", - "description": "aether.placeholder.discovery.description", - "curativeItems" : [ "aether:antitoxin_vial" ] - } - } - } -] \ No newline at end of file diff --git a/src/main/resources/assets/aether/travellers_guidebook/definitions/varanys.json b/src/main/resources/assets/aether/travellers_guidebook/definitions/varanys.json deleted file mode 100644 index 43a187407a..0000000000 --- a/src/main/resources/assets/aether/travellers_guidebook/definitions/varanys.json +++ /dev/null @@ -1,23 +0,0 @@ -[ - { - "conditions": [ - { - "type": "aether:seeEntity", - "entityId": "aether:varanys" - } - ], - "resolution": "requireAll", - "entries": { - "aether.varanys.discovery": { - "tag": "bestiary", - "type": "bestiary_page", - "entityId": "aether:varanys", - "silhouetteTexture": "aether:textures/discoveries/bestiary/placeholder/silhouette.png", - "discoveredTexture": "aether:textures/discoveries/bestiary/placeholder/discovered.png", - "silhouetteSlotTexture": "aether:textures/discoveries/bestiary/varanys/silhouette_slot.png", - "discoveredSlotTexture": "aether:textures/discoveries/bestiary/varanys/discovered_slot.png", - "description": "aether.placeholder.discovery.description" - } - } - } -] \ No newline at end of file diff --git a/src/main/resources/assets/aether/travellers_guidebook/definitions/webbing.json b/src/main/resources/assets/aether/travellers_guidebook/definitions/webbing.json deleted file mode 100644 index 2477268ce1..0000000000 --- a/src/main/resources/assets/aether/travellers_guidebook/definitions/webbing.json +++ /dev/null @@ -1,21 +0,0 @@ -[ - { - "conditions": [ - { - "type": "aether:none" - } - ], - "resolution": "requireAny", - "entries": { - "aether.webbing.discovery": { - "tag": "effects", - "type": "effects_page", - "effectName": "webbing", - "displayTexture": "aether:textures/gui/overlay/effects/webbing.png", - "slotTexture": "aether:textures/gui/overlay/effects/webbing.png", - "description": "aether.placeholder.discovery.description", - "curativeItems" : [ ] - } - } - } -] \ No newline at end of file diff --git a/src/main/resources/assets/aether/travellers_guidebook/definitions/zephyr.json b/src/main/resources/assets/aether/travellers_guidebook/definitions/zephyr.json deleted file mode 100644 index 31d30b2e7e..0000000000 --- a/src/main/resources/assets/aether/travellers_guidebook/definitions/zephyr.json +++ /dev/null @@ -1,23 +0,0 @@ -[ - { - "conditions": [ - { - "type": "aether:seeEntity", - "entityId": "aether:zephyr" - } - ], - "resolution": "requireAll", - "entries": { - "aether.zephyr.discovery": { - "tag": "bestiary", - "type": "bestiary_page", - "entityId": "aether:zephyr", - "silhouetteTexture": "aether:textures/discoveries/bestiary/placeholder/silhouette.png", - "discoveredTexture": "aether:textures/discoveries/bestiary/placeholder/discovered.png", - "silhouetteSlotTexture": "aether:textures/discoveries/bestiary/zephyr/silhouette_slot.png", - "discoveredSlotTexture": "aether:textures/discoveries/bestiary/zephyr/discovered_slot.png", - "description": "aether.placeholder.discovery.description" - } - } - } -] \ No newline at end of file diff --git a/src/main/resources/mcmod.info b/src/main/resources/mcmod.info deleted file mode 100644 index 20dc32f230..0000000000 --- a/src/main/resources/mcmod.info +++ /dev/null @@ -1,13 +0,0 @@ -[ - { - "modid": "aether", - "name": "Aether II", - "description": "In development by Gilded Games, the Aether II is an extensive mod for Minecraft which implements a remarkable world in the skies. Adventure, danger, and mystery awaits in the depths of the Aether.\n\nThe Aether wouldn't be possible without our supporters on Patreon! Consider supporting development at: https://patreon.com/GildedGames\n\nView the source code and contribute to the Aether project on our official GitLab here: https://git.gildedgames.com/GildedGames/Aether-II\n\nWe also have an official Discord server! https://aether.gildedgames.com/discord\n\nRunning into issues or have a question? Check out our support page here: https://aether.gildedgames.com/support", - "version": "0.3.0", - "credits": "Designed and developed by Gilded Games with <3. Made possible thanks to our supporters on Patreon, and with special thanks to our project reporters, contributors, and moderation team.\nContributors: JellySquid, Emile van Krieken, Bluexin, Jonathan Lachney, ETStarLight", - "logoFile": "/assets/aether/full-logo.png", - "mcversion": "1.12.2", - "url": "https://aether.gildedgames.com", - "authorList": [ "Oscar Payn", "Brandon James Pearce", "Hugo Payn", "Jaryt Bustard", "Christian Peterson", "Angeline", "bconlon" ] - } -] diff --git a/src/main/resources/pack.mcmeta b/src/main/resources/pack.mcmeta new file mode 100644 index 0000000000..b643e13f88 --- /dev/null +++ b/src/main/resources/pack.mcmeta @@ -0,0 +1,8 @@ +{ + "pack": { + "description": "examplemod resources", + "pack_format": 9, + "forge:resource_pack_format": 9, + "forge:data_pack_format": 10 + } +}