diff --git a/.gitattributes b/.gitattributes index 84a0494..0457356 100644 --- a/.gitattributes +++ b/.gitattributes @@ -1,7 +1,6 @@ -* text=auto +* text=auto eol=lf *.bat text eol=crlf -#*.bat text eol=lf *.gradle text diff=java mcmod.info text *.java text @@ -16,60 +15,13 @@ gradlew text eol=lf *.xml text *.yml text *.yaml text -*.toml text -# Documents -*.pdf binary - -# Graphics -*.eps binary -*.gif binary -*.ico binary -*.jpg binary -*.jpeg binary -*.png binary -*.psd binary -# SVG treated as an asset (binary) by default. If you want to treat it as text, -# comment-out the following line and uncomment the line after. -*.svg binary -#*.svg text -*.tif binary -*.tiff binary -*.webp binary -*.xcf binary - -# Other -*.exe binary -*.jar binary - -############################### -# Git Large File System (LFS) # -############################### - -# Archives -#*.7z filter=lfs diff=lfs merge=lfs -text -#*.br filter=lfs diff=lfs merge=lfs -text -#*.bz2 filter=lfs diff=lfs merge=lfs -text -#*.gz filter=lfs diff=lfs merge=lfs -text -#*.tar filter=lfs diff=lfs merge=lfs -text -#*.zip filter=lfs diff=lfs merge=lfs -text - -# Documents -#*.pdf filter=lfs diff=lfs merge=lfs -text - -# Graphics -#*.eps filter=lfs diff=lfs merge=lfs -text -#*.gif filter=lfs diff=lfs merge=lfs -text -#*.ico filter=lfs diff=lfs merge=lfs -text -#*.jpg filter=lfs diff=lfs merge=lfs -text -#*.jpeg filter=lfs diff=lfs merge=lfs -text -#*.png filter=lfs diff=lfs merge=lfs -text -#*.psd filter=lfs diff=lfs merge=lfs -text -#*.tif filter=lfs diff=lfs merge=lfs -text -#*.tiff filter=lfs diff=lfs merge=lfs -text -#*.webp filter=lfs diff=lfs merge=lfs -text -#*.xcf filter=lfs diff=lfs merge=lfs -text - -# Other -#*.exe filter=lfs diff=lfs merge=lfs -text -#*.jar filter=lfs diff=lfs merge=lfs -text +*.gif binary +*.ico binary +*.jpg binary +*.jpeg binary +*.png binary +*.psd binary +*.svg binary +*.jar binary +*.zip binary diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..1d99a4c --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,210 @@ +name: MMDLib 1.12 CI + +on: + push: + branches: + - master-1.12 + - 'feature/**' + pull_request: + branches: + - master-1.12 + +permissions: + contents: read + +concurrency: + group: mmdlib-1.12-${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + +jobs: + cold-forge-bootstrap: + name: Cold Forge bootstrap + runs-on: ubuntu-latest + timeout-minutes: 75 + + steps: + - name: Check out source + uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7 + + - name: Install pinned Java 25 ForgeGradle Mavenizer runtime + uses: actions/setup-java@b6effb05e454b25005698d916606bdc6ffcbf961 # v5 + with: + distribution: temurin + java-version: '25.0.3+9.0.LTS' + + - name: Install pinned Java 8 compilation toolchain + uses: actions/setup-java@b6effb05e454b25005698d916606bdc6ffcbf961 # v5 + with: + distribution: temurin + java-version: '8.0.502+7' + + - name: Install pinned Java 17 Gradle runtime + uses: actions/setup-java@b6effb05e454b25005698d916606bdc6ffcbf961 # v5 + with: + distribution: temurin + java-version: '17.0.1+12' + + - name: Stage checksum-verified legacy dependencies + id: dependencies + shell: bash + run: | + set -euo pipefail + mirror="$RUNNER_TEMP/legacy-dependency-mirror" + bash gradle/stage-legacy-dependencies.sh "$mirror" + echo "repository=$mirror" >> "$GITHUB_OUTPUT" + + - name: Bootstrap Forge from an empty cache + shell: bash + env: + GRADLE_USER_HOME: ${{ runner.temp }}/mmdlib-cold-gradle + run: | + set -euo pipefail + test ! -e .gradle + test ! -e "$GRADLE_USER_HOME" + mkdir -p "$GRADLE_USER_HOME" + chmod +x ./gradlew + gradle_args=( + classes verifyReleaseDependencies + -PlegacyDependencyVerificationRepository="${{ steps.dependencies.outputs.repository }}" + --no-daemon --no-build-cache --stacktrace --max-workers=2 + -Dorg.gradle.java.installations.paths="$JAVA_HOME,$JAVA_HOME_8_X64,$JAVA_HOME_25_X64" + -Dorg.gradle.java.installations.auto-detect=false + -Dorg.gradle.java.installations.auto-download=false + ) + ./gradlew "${gradle_args[@]}" + + - name: Verify same-cache bootstrap offline + shell: bash + env: + GRADLE_USER_HOME: ${{ runner.temp }}/mmdlib-cold-gradle + run: | + set -euo pipefail + gradle_args=( + classes verifyReleaseDependencies + -PlegacyDependencyVerificationRepository="${{ steps.dependencies.outputs.repository }}" + --rerun-tasks --offline --no-daemon --no-build-cache --stacktrace --max-workers=2 + -Dorg.gradle.java.installations.paths="$JAVA_HOME,$JAVA_HOME_8_X64,$JAVA_HOME_25_X64" + -Dorg.gradle.java.installations.auto-detect=false + -Dorg.gradle.java.installations.auto-download=false + ) + ./gradlew "${gradle_args[@]}" + + build: + name: Build, test, and audit + runs-on: ubuntu-latest + timeout-minutes: 90 + + steps: + - name: Check out source + uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7 + + - name: Install pinned Java 25 ForgeGradle Mavenizer runtime + uses: actions/setup-java@b6effb05e454b25005698d916606bdc6ffcbf961 # v5 + with: + distribution: temurin + java-version: '25.0.3+9.0.LTS' + + - name: Install pinned Java 8 compilation and runtime toolchain + uses: actions/setup-java@b6effb05e454b25005698d916606bdc6ffcbf961 # v5 + with: + distribution: temurin + java-version: '8.0.502+7' + + - name: Install pinned Java 17 Gradle runtime + uses: actions/setup-java@b6effb05e454b25005698d916606bdc6ffcbf961 # v5 + with: + distribution: temurin + java-version: '17.0.1+12' + + - name: Set up Gradle + uses: gradle/actions/setup-gradle@9c971963bec38e04b3d30dcc455b5382be2fdbfb # v6 + + - name: Stage checksum-verified dependencies + id: dependencies + shell: bash + run: | + set -euo pipefail + mirror="$RUNNER_TEMP/legacy-dependency-mirror" + bash gradle/stage-legacy-dependencies.sh "$mirror" + echo "repository=$mirror" >> "$GITHUB_OUTPUT" + + - name: Prepare clean packaged Forge runtime + id: forge + shell: bash + run: | + set -euo pipefail + runtime="$RUNNER_TEMP/forge-1.12.2-2847-runtime" + bash gradle/prepare-packaged-forge-runtime.sh "$runtime" "$JAVA_HOME_8_X64/bin/java" + echo "runtime=$runtime" >> "$GITHUB_OUTPUT" + + - name: Prepare Forge 2859 compatibility runtime + id: compat + shell: bash + run: | + set -euo pipefail + runtime="$RUNNER_TEMP/forge-1.12.2-2859-runtime" + bash gradle/prepare-packaged-forge-runtime.sh "$runtime" "$JAVA_HOME_8_X64/bin/java" compat + echo "runtime=$runtime" >> "$GITHUB_OUTPUT" + + - name: Build, test, audit, qualify runtimes, and generate Eclipse launches + shell: bash + run: | + set -euo pipefail + chmod +x ./gradlew + gradle_args=( + clean check build javadoc verifyReleaseDependencies verifyReleaseArtifacts + writeReleaseChecksums prepareEclipse packagedForgeRuntimeTest + -PlegacyDependencyVerificationRepository="${{ steps.dependencies.outputs.repository }}" + -PpackagedForgeRuntimeRoot="${{ steps.forge.outputs.runtime }}" + -PpackagedForgeCompatRuntimeRoot="${{ steps.compat.outputs.runtime }}" + --no-daemon --stacktrace --max-workers=2 + -Dorg.gradle.java.installations.paths="$JAVA_HOME,$JAVA_HOME_8_X64,$JAVA_HOME_25_X64" + -Dorg.gradle.java.installations.auto-detect=false + -Dorg.gradle.java.installations.auto-download=false + ) + ./gradlew "${gradle_args[@]}" + cp build/release/SHA256SUMS "$RUNNER_TEMP/first-SHA256SUMS" + + - name: Verify reproducible release archives + shell: bash + run: | + set -euo pipefail + gradle_args=( + clean build javadoc verifyReleaseArtifacts writeReleaseChecksums + -PlegacyDependencyVerificationRepository="${{ steps.dependencies.outputs.repository }}" + --offline --no-daemon --no-build-cache --stacktrace --max-workers=2 + -Dorg.gradle.java.installations.paths="$JAVA_HOME,$JAVA_HOME_8_X64,$JAVA_HOME_25_X64" + -Dorg.gradle.java.installations.auto-detect=false + -Dorg.gradle.java.installations.auto-download=false + ) + ./gradlew "${gradle_args[@]}" + cmp "$RUNNER_TEMP/first-SHA256SUMS" build/release/SHA256SUMS + + - name: Upload audited release candidate + uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7 + with: + name: MMDLib-1.12.2-${{ github.sha }} + if-no-files-found: error + retention-days: 30 + path: | + build/libs/MMDLib-1.0.0.112021.jar + build/libs/MMDLib-1.0.0.112021-sources.jar + build/libs/MMDLib-1.0.0.112021-javadoc.jar + build/libs/MMDLib-1.0.0.112021-deobf.jar + build/release/SHA256SUMS + CHANGELOG.txt + + - name: Upload bounded diagnostics on failure + if: failure() + uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7 + with: + name: MMDLib-1.12.2-diagnostics-${{ github.sha }} + if-no-files-found: ignore + retention-days: 14 + path: | + build/test-results/** + build/reports/** + build/packaged-forge-*-run/logs/** + build/packaged-forge-*-run/*-console.txt + build/packaged-forge-*-run/crash-reports/** + build/problems/** diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml new file mode 100644 index 0000000..3541471 --- /dev/null +++ b/.github/workflows/codeql-analysis.yml @@ -0,0 +1,80 @@ +name: CodeQL + +on: + push: + branches: + - master-1.12 + - 'feature/**' + pull_request: + branches: + - master-1.12 + schedule: + - cron: '47 7 * * 4' + +permissions: + actions: read + contents: read + security-events: write + +jobs: + analyze: + name: Analyze Java + runs-on: ubuntu-latest + timeout-minutes: 60 + + steps: + - name: Check out source + uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7 + + - name: Install pinned Java 25 ForgeGradle Mavenizer runtime + uses: actions/setup-java@b6effb05e454b25005698d916606bdc6ffcbf961 # v5 + with: + distribution: temurin + java-version: '25.0.3+9.0.LTS' + + - name: Install pinned Java 8 compilation toolchain + uses: actions/setup-java@b6effb05e454b25005698d916606bdc6ffcbf961 # v5 + with: + distribution: temurin + java-version: '8.0.502+7' + + - name: Install pinned Java 17 Gradle runtime + uses: actions/setup-java@b6effb05e454b25005698d916606bdc6ffcbf961 # v5 + with: + distribution: temurin + java-version: '17.0.1+12' + + - name: Set up Gradle + uses: gradle/actions/setup-gradle@9c971963bec38e04b3d30dcc455b5382be2fdbfb # v6 + + - name: Initialize CodeQL + uses: github/codeql-action/init@db488ddef3bf6cb639b32c2e9a7c0a7ea8271d28 # v4 + with: + languages: java-kotlin + + - name: Stage checksum-verified dependencies + id: dependencies + shell: bash + run: | + set -euo pipefail + mirror="$RUNNER_TEMP/legacy-dependency-mirror" + bash gradle/stage-legacy-dependencies.sh "$mirror" + echo "repository=$mirror" >> "$GITHUB_OUTPUT" + + - name: Compile production code + shell: bash + run: | + set -euo pipefail + chmod +x ./gradlew + gradle_args=( + clean classes + -PlegacyDependencyVerificationRepository="${{ steps.dependencies.outputs.repository }}" + --no-daemon --no-build-cache --stacktrace --max-workers=2 + -Dorg.gradle.java.installations.paths="$JAVA_HOME,$JAVA_HOME_8_X64,$JAVA_HOME_25_X64" + -Dorg.gradle.java.installations.auto-detect=false + -Dorg.gradle.java.installations.auto-download=false + ) + ./gradlew "${gradle_args[@]}" + + - name: Analyze + uses: github/codeql-action/analyze@db488ddef3bf6cb639b32c2e9a7c0a7ea8271d28 # v4 diff --git a/.github/workflows/deploy-release.yml b/.github/workflows/deploy-release.yml new file mode 100644 index 0000000..7834e3b --- /dev/null +++ b/.github/workflows/deploy-release.yml @@ -0,0 +1,240 @@ +name: Release MMDLib + +on: + workflow_dispatch: + inputs: + release_version: + description: Four-part version matching master-1.12 + required: true + type: string + curseforge_release_level: + description: CurseForge release level + required: true + default: beta + type: choice + options: [release, beta, alpha] + confirm_live_publication: + description: Publish the audited candidate to Maven, CurseForge and GitHub + required: true + default: false + type: boolean + +permissions: + contents: read + actions: read + +concurrency: + group: mmdlib-release-${{ inputs.release_version }} + cancel-in-progress: false + +jobs: + prepare: + name: Prepare immutable release candidate + if: github.repository == 'MinecraftModDevelopmentMods/MMDLib' + runs-on: ubuntu-latest + timeout-minutes: 90 + outputs: + sha: ${{ steps.validate.outputs.sha }} + artifact: ${{ steps.bundle.outputs.artifact }} + steps: + - name: Check out release branch + uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7 + with: + ref: master-1.12 + fetch-depth: 0 + + - name: Validate target, version, tag and exact-commit checks + id: validate + shell: bash + env: + GH_TOKEN: ${{ github.token }} + RELEASE_VERSION: ${{ inputs.release_version }} + run: | + set -euo pipefail + value() { sed -n "s/^$1=//p" gradle.properties | tr -d '\r'; } + [[ "$RELEASE_VERSION" =~ ^[0-9]+\.[0-9]+\.[0-9]+\.112021$ ]] + [[ "$(value mod_version)" == "$RELEASE_VERSION" ]] + [[ "$(value minecraft_version):$(value loader_name):$(value loader_code)" == '1.12.2:forge:1' ]] + [[ "$(value mod_group)" == 'zone.moddev.mc.mmdlib' ]] + [[ "$(value curseforge_project_id)" == '261744' ]] + sha="$(git rev-parse HEAD)" + checks="$(gh api "repos/$GITHUB_REPOSITORY/commits/$sha/check-runs?per_page=100")" + for name in 'Cold Forge bootstrap' 'Build, test, and audit' 'Analyze Java' 'Validation'; do + jq -e --arg name "$name" '[.check_runs[] | select(.name == $name and .conclusion == "success")] | length > 0' <<<"$checks" >/dev/null + done + if git rev-parse --verify "refs/tags/$RELEASE_VERSION" >/dev/null 2>&1; then + [[ "$(git rev-parse "refs/tags/$RELEASE_VERSION^{commit}")" == "$sha" ]] + fi + echo "sha=$sha" >> "$GITHUB_OUTPUT" + + - name: Install pinned Java 25 Mavenizer runtime + uses: actions/setup-java@b6effb05e454b25005698d916606bdc6ffcbf961 # v5 + with: + distribution: temurin + java-version: '25.0.3+9.0.LTS' + - name: Install pinned Java 8 toolchain + uses: actions/setup-java@b6effb05e454b25005698d916606bdc6ffcbf961 # v5 + with: + distribution: temurin + java-version: '8.0.502+7' + - name: Install pinned Java 17 Gradle runtime + uses: actions/setup-java@b6effb05e454b25005698d916606bdc6ffcbf961 # v5 + with: + distribution: temurin + java-version: '17.0.1+12' + - name: Set up Gradle + uses: gradle/actions/setup-gradle@9c971963bec38e04b3d30dcc455b5382be2fdbfb # v6 + - name: Build and audit candidate + shell: bash + run: | + set -euo pipefail + mirror="$RUNNER_TEMP/legacy-dependency-mirror" + bash gradle/stage-legacy-dependencies.sh "$mirror" + chmod +x ./gradlew + ./gradlew clean check build javadoc verifyReleaseArtifacts writeReleaseChecksums \ + -PlegacyDependencyVerificationRepository="$mirror" \ + --no-daemon --stacktrace --max-workers=2 \ + -Dorg.gradle.java.installations.paths="$JAVA_HOME,$JAVA_HOME_8_X64,$JAVA_HOME_25_X64" \ + -Dorg.gradle.java.installations.auto-detect=false \ + -Dorg.gradle.java.installations.auto-download=false + - name: Stage candidate bundle + id: bundle + shell: bash + run: | + set -euo pipefail + mkdir -p "$RUNNER_TEMP/release-bundle" + cp build/libs/*.jar build/release/SHA256SUMS CHANGELOG.txt "$RUNNER_TEMP/release-bundle/" + echo "artifact=MMDLib-${{ steps.validate.outputs.sha }}-${GITHUB_RUN_ID}-${GITHUB_RUN_ATTEMPT}" >> "$GITHUB_OUTPUT" + - name: Upload immutable candidate + uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7 + with: + name: ${{ steps.bundle.outputs.artifact }} + if-no-files-found: error + path: ${{ runner.temp }}/release-bundle/* + - name: Summarize candidate + shell: bash + run: | + { + echo "Prepared MMDLib ${{ inputs.release_version }} from ${{ steps.validate.outputs.sha }}." + echo "Live publication requested: ${{ inputs.confirm_live_publication }}" + echo 'Publication requires explicit confirmation and all release credentials.' + cat build/release/SHA256SUMS + } >> "$GITHUB_STEP_SUMMARY" + + publish: + name: Publish confirmed immutable candidate + needs: prepare + if: inputs.confirm_live_publication && github.repository == 'MinecraftModDevelopmentMods/MMDLib' + runs-on: ubuntu-latest + timeout-minutes: 45 + permissions: + contents: write + actions: read + steps: + - name: Validate release credentials + shell: bash + env: + CURSEFORGE_TOKEN: ${{ secrets.CURSEFORGE_TOKEN }} + MAVEN_UPLOAD_URL: ${{ secrets.MAVEN_UPLOAD_URL }} + MAVEN_UPLOAD_USERNAME: ${{ secrets.MAVEN_UPLOAD_USERNAME }} + MAVEN_UPLOAD_PASSWORD: ${{ secrets.MAVEN_UPLOAD_PASSWORD }} + run: | + set -euo pipefail + for name in CURSEFORGE_TOKEN MAVEN_UPLOAD_URL MAVEN_UPLOAD_USERNAME MAVEN_UPLOAD_PASSWORD; do + [[ -n "${!name}" ]] || { echo "Missing release secret: $name" >&2; exit 1; } + done + [[ "$MAVEN_UPLOAD_URL" == https://* ]] + - name: Check out exact candidate SHA + uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7 + with: + ref: ${{ needs.prepare.outputs.sha }} + fetch-depth: 0 + - name: Install pinned Java 25 Mavenizer runtime + uses: actions/setup-java@b6effb05e454b25005698d916606bdc6ffcbf961 # v5 + with: + distribution: temurin + java-version: '25.0.3+9.0.LTS' + - name: Install pinned Java 8 toolchain + uses: actions/setup-java@b6effb05e454b25005698d916606bdc6ffcbf961 # v5 + with: + distribution: temurin + java-version: '8.0.502+7' + - name: Install pinned Java 17 Gradle runtime + uses: actions/setup-java@b6effb05e454b25005698d916606bdc6ffcbf961 # v5 + with: + distribution: temurin + java-version: '17.0.1+12' + - name: Set up Gradle + uses: gradle/actions/setup-gradle@9c971963bec38e04b3d30dcc455b5382be2fdbfb # v6 + - name: Download audited candidate + uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8 + with: + name: ${{ needs.prepare.outputs.artifact }} + path: ${{ runner.temp }}/release-input + - name: Verify candidate and publish prepared Maven artifacts + shell: bash + env: + MAVEN_UPLOAD_URL: ${{ secrets.MAVEN_UPLOAD_URL }} + MAVEN_UPLOAD_USERNAME: ${{ secrets.MAVEN_UPLOAD_USERNAME }} + MAVEN_UPLOAD_PASSWORD: ${{ secrets.MAVEN_UPLOAD_PASSWORD }} + run: | + set -euo pipefail + (cd "$RUNNER_TEMP/release-input" && sha256sum --check SHA256SUMS) + mirror="$RUNNER_TEMP/legacy-dependency-mirror" + bash gradle/stage-legacy-dependencies.sh "$mirror" + chmod +x ./gradlew + ./gradlew publishMavenJavaPublicationToReleaseRepository \ + -PpreparedReleaseDir="$RUNNER_TEMP/release-input" \ + -PlegacyDependencyVerificationRepository="$mirror" \ + --no-daemon --stacktrace --max-workers=2 \ + -Dorg.gradle.java.installations.paths="$JAVA_HOME,$JAVA_HOME_8_X64,$JAVA_HOME_25_X64" \ + -Dorg.gradle.java.installations.auto-detect=false \ + -Dorg.gradle.java.installations.auto-download=false + - name: Create exact candidate tag + shell: bash + env: + GH_TOKEN: ${{ github.token }} + RELEASE_VERSION: ${{ inputs.release_version }} + RELEASE_SHA: ${{ needs.prepare.outputs.sha }} + run: | + set -euo pipefail + if git rev-parse --verify "refs/tags/$RELEASE_VERSION" >/dev/null 2>&1; then + [[ "$(git rev-parse "refs/tags/$RELEASE_VERSION^{commit}")" == "$RELEASE_SHA" ]] + else + gh api "repos/$GITHUB_REPOSITORY/git/refs" -f "ref=refs/tags/$RELEASE_VERSION" -f "sha=$RELEASE_SHA" + fi + - name: Publish CurseForge candidate + uses: Kira-NT/mc-publish@52307b03863581dec6b652b83e597aec02ebb075 # v3.3.1 + with: + curseforge-token: ${{ secrets.CURSEFORGE_TOKEN }} + curseforge-id: 261744 + name: MMDLib ${{ inputs.release_version }} for Minecraft 1.12.2 (Forge) + version: ${{ inputs.release_version }} + version-type: ${{ inputs.curseforge_release_level }} + changelog-file: ${{ runner.temp }}/release-input/CHANGELOG.txt + loaders: forge + game-versions: 1.12.2 + game-version-filter: none + environment: client | server + java: Java 8 + curseforge-dependencies: | + 245586(optional) + 243157(optional) + fail-mode: fail + files: | + ${{ runner.temp }}/release-input/MMDLib-${{ inputs.release_version }}.jar + ${{ runner.temp }}/release-input/MMDLib-${{ inputs.release_version }}-sources.jar + ${{ runner.temp }}/release-input/MMDLib-${{ inputs.release_version }}-javadoc.jar + ${{ runner.temp }}/release-input/MMDLib-${{ inputs.release_version }}-deobf.jar + - name: Publish GitHub Release last + shell: bash + env: + GH_TOKEN: ${{ github.token }} + RELEASE_VERSION: ${{ inputs.release_version }} + RELEASE_SHA: ${{ needs.prepare.outputs.sha }} + run: | + set -euo pipefail + gh release create "$RELEASE_VERSION" --target "$RELEASE_SHA" \ + --title "MMDLib $RELEASE_VERSION for Minecraft 1.12.2 (Forge)" \ + --notes-file "$RUNNER_TEMP/release-input/CHANGELOG.txt" \ + "$RUNNER_TEMP/release-input/"*.jar "$RUNNER_TEMP/release-input/SHA256SUMS" diff --git a/.github/workflows/release-on-tag.yml b/.github/workflows/release-on-tag.yml new file mode 100644 index 0000000..b4dcaea --- /dev/null +++ b/.github/workflows/release-on-tag.yml @@ -0,0 +1,87 @@ +name: Start MMDLib release from tag + +on: + push: + tags: + - '*.*.*.*' + +permissions: + actions: read + contents: read + +concurrency: + group: mmdlib-release-starter-${{ github.ref_name }} + cancel-in-progress: false + +jobs: + validate-release-tag: + name: Validate tag for manual release confirmation + if: github.repository == 'MinecraftModDevelopmentMods/MMDLib' + runs-on: ubuntu-latest + timeout-minutes: 10 + + steps: + - name: Check out tagged source + uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7 + with: + fetch-depth: 0 + + - name: Validate release tag, target metadata, and prior CI + env: + GH_TOKEN: ${{ github.token }} + shell: bash + run: | + set -euo pipefail + + value() { sed -n "s/^$1=//p" gradle.properties; } + release_version="$(value mod_version)" + minecraft_version="$(value minecraft_version)" + loader_name="$(value loader_name)" + loader_code="$(value loader_code)" + + IFS=. read -r mc_major mc_minor mc_patch extra <<<"$minecraft_version" + mc_patch="${mc_patch:-0}" + if [[ -n "${extra:-}" || ! "$mc_major" =~ ^[0-9]+$ || ! "$mc_minor" =~ ^[0-9]+$ \ + || ! "$mc_patch" =~ ^[0-9]+$ || "$loader_name:$loader_code" != 'forge:1' ]]; then + echo "Invalid target metadata $minecraft_version/$loader_name/$loader_code" >&2 + exit 1 + fi + printf -v minor_padded '%02d' "$((10#$mc_minor))" + printf -v patch_padded '%02d' "$((10#$mc_patch))" + target_suffix="${mc_major}${minor_padded}${patch_padded}${loader_code}" + + if [[ ! "$release_version" =~ ^[0-9]+\.[0-9]+\.[0-9]+\.${target_suffix}$ ]]; then + echo "mod_version $release_version does not match target $target_suffix" >&2 + exit 1 + fi + if [[ "$GITHUB_REF_NAME" != "$release_version" ]]; then + echo "Release tag must equal mod_version $release_version; found $GITHUB_REF_NAME" >&2 + exit 1 + fi + + successful_ci="$(gh api \ + "repos/$GITHUB_REPOSITORY/commits/$GITHUB_SHA/check-runs?per_page=100" \ + --jq '[.check_runs[] | select(.name == "Build, test, and audit" and .conclusion == "success")] | length')" + if [[ "$successful_ci" -lt 1 ]]; then + echo "The tagged commit has no successful Build, test, and audit check" >&2 + exit 1 + fi + + - name: Record the required manual publication step + env: + RELEASE_WORKFLOW_URL: https://github.com/${{ github.repository }}/actions/workflows/deploy-release.yml + shell: bash + run: | + { + echo "## Release candidate validated" + echo + echo "Tag \`$GITHUB_REF_NAME\` matches the selected target and has a successful Build, test, and audit check." + echo + echo "**Nothing has been published.**" + echo + echo "To continue, open [Release MMDLib]($RELEASE_WORKFLOW_URL), select **Run workflow**, and enter:" + echo + echo "- release_version: \`$GITHUB_REF_NAME\`" + echo "- curseforge_release_level: \`release\`, \`beta\`, or \`alpha\`" + echo "- confirm_live_publication: \`true\`" + } >> "$GITHUB_STEP_SUMMARY" diff --git a/.github/workflows/validate-gradle-build.yml b/.github/workflows/validate-gradle-build.yml new file mode 100644 index 0000000..cc6223d --- /dev/null +++ b/.github/workflows/validate-gradle-build.yml @@ -0,0 +1,23 @@ +name: Validate Gradle Wrapper + +on: + push: + branches: + - master-1.12 + - 'feature/**' + pull_request: + branches: + - master-1.12 + +permissions: + contents: read + +jobs: + validation: + name: Validation + runs-on: ubuntu-latest + steps: + - name: Check out source + uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7 + - name: Validate wrapper integrity + uses: gradle/actions/wrapper-validation@9c971963bec38e04b3d30dcc455b5382be2fdbfb # v6 diff --git a/.gitignore b/.gitignore index 0204d02..c54f320 100644 --- a/.gitignore +++ b/.gitignore @@ -15,7 +15,7 @@ out .idea # gradle -build +/build/ .gradle # other @@ -34,3 +34,32 @@ secret.json # bits from local use that should never be sync'd holding holding/* + +# Local assistant notes and settings +AGENTS.md +AGENT.md +CLAUDE.md +GEMINI.md +agent-notes/ +agent_notes/ +.agent-notes/ +.agents/ +.agent/ +.codex/ +.claude/ +.github/agents/ +.github/copilot-instructions.md + +# Generated verification and Minecraft output +*.class +/test-results/ +/test-output/ +/reports/ +/coverage/ +/logs/ +/crash-reports/ +/saves/ +/screenshots/ +/runtime-evidence/ +/release-candidates/ +/release-verification/ diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index 9a59366..0000000 --- a/.travis.yml +++ /dev/null @@ -1,14 +0,0 @@ -language: java -dist: trusty -sudo: false -cache: - directories: - - $HOME/.gradle -notifications: - email: false -jdk: - - oraclejdk8 -before_install: - - chmod a+x gradlew -install: ./gradlew setupCIWorkspace -S -script: ./gradlew clean build -S diff --git a/CHANGELOG.txt b/CHANGELOG.txt index 7ac1333..0a5a814 100644 --- a/CHANGELOG.txt +++ b/CHANGELOG.txt @@ -1,2 +1,12 @@ +1.0.0.112021 (unreleased) +- Updated the Minecraft 1.12.2 build to match Base Metals: ForgeGradle 7.0.34, Renamer 1.1.5 and Gradle 9.6.1, with pinned Java 17/25/8 toolchains. +- Moved the implementation and Maven coordinate to zone.moddev.mc.mmdlib. A Forge adapter and generated compiler exports keep existing com.mcmoddev.lib consumers compatible. +- Recovered and checksum-pinned optional integration dependencies without bundling them or making them required. +- Added reproducible production, development, sources and Javadoc jars, plus GitHub Actions checks and manually confirmed release workflows for Maven and CurseForge. +- Added tests for the 500-class legacy API and packaged client/server compatibility, including Base Metals and optional integrations. +- Updated build and compatibility documentation, corrected stale comments, and ignored local notes and generated output. +- Kept mod, registry, configuration and resource identities, integration behavior and the dormant historical gameplay transformers unchanged. + +Previous upstream changes 1) (@dshadowwolf) Various bugfixes 2) (@dshadowwolf) Undo move of vanilla extensions - this lib should provide some base definitions, but no items or blocks on its own diff --git a/README.md b/README.md index 4ac8852..05a847b 100644 --- a/README.md +++ b/README.md @@ -1 +1,103 @@ # MMDLib + +MMDLib provides the shared Java APIs and helpers used by the Metals family of +Minecraft mods. This branch targets Minecraft 1.12.2 and Forge 14.23.5.2847. +The implementation uses `zone.moddev.mc.mmdlib`. A Forge compatibility adapter +supports existing mods compiled against `com.mcmoddev.lib`; the mod ID remains +`mmdlib`. + +## Building + +Use the checked-in Gradle wrapper. Gradle runs on Temurin 17.0.1+12, +ForgeGradle's Mavenizer uses Temurin 25.0.3+9, and production compilation and +Minecraft use Temurin 8.0.502+7. ForgeGradle is pinned to 7.0.34, Renamer to +1.1.5, and Gradle to 9.6.1. Mappings remain `stable_39`. + +Set `JAVA_HOME` to the Java 17 installation. Install the three toolchains and +use one Gradle cache consistently in both the command line and Eclipse. +For explicit installations, pass +`-Dorg.gradle.java.installations.paths=,,`. + +Recover the pinned legacy artifacts into an isolated mirror first. Python 3 +downloads only the URLs recorded in the dependency manifest and verifies each +artifact's SHA-256 before staging it: + +```text +python3 gradle/stage-legacy-dependencies.py /absolute/path/to/dependency-mirror +./gradlew check build javadoc verifyReleaseArtifacts writeReleaseChecksums -PlegacyDependencyVerificationRepository=/absolute/path/to/dependency-mirror +./gradlew prepareEclipse -PlegacyDependencyVerificationRepository=/absolute/path/to/dependency-mirror +``` + +On Windows, use `gradlew.bat` and the installed Python executable. Normal +builds require no release credentials and do not publish artifacts. + +`build/libs/` contains the SRG-remapped main jar, a mapped `deobf` +development jar, sources, and Javadocs. `build/release/SHA256SUMS` records their +checksums. Archives use stable ordering, timestamps, and text line endings. + +## Library compatibility + +The build migration uses version `1.0.0.112021` and Maven coordinates +`zone.moddev.mc.mmdlib:MMDLib:1.0.0.112021`. The final component identifies +Minecraft 1.12.2 on Forge. Consumers using the former `com.mcmoddev` Maven +group must update their dependency coordinate when adopting this artifact; +new Java code should import `zone.moddev.mc.mmdlib`. Existing source can keep +its `com.mcmoddev.lib` imports through generated compiler API exports. At +runtime, the Forge adapter relinks old API references to the canonical classes, +preserving shared enums, events, integration singletons and registry state. +Saved mod, registry and configuration identities remain unchanged. + +The compatibility inventory freezes all 500 legacy classes and their +public/protected signatures. `check` compiles a legacy consumer both against +the historical published library and against the new API exports; packaged +acceptance then runs that consumer alongside the modern implementation. +See [namespace compatibility](docs/NAMESPACE-COMPATIBILITY.md) for the adapter +contract and extension guidance. + +Optional integration APIs remain compile-only. The build does not bundle +those mods or require them during normal MMDLib launches. Unused historical +dependency declarations and retired Maven/JCenter endpoints were removed; +the integration implementations themselves were preserved. + +`gradle/legacy-dependencies.json` records exact dependency versions, original +download URLs, file IDs where applicable, and checksums. Base Metals and +OreSpawn entries are acceptance fixtures, not MMDLib runtime requirements. +The existing VeinMiner API source is retained as shipped by upstream. + +The manifest installs only the namespace compatibility bootstrap. Historical +gameplay coremod transformers stay dormant. Release candidates are unsigned; +the upstream fingerprint warning can still appear and is not a loading failure. + +## Verification and releases + +GitHub Actions validates the wrapper, an empty-cache Forge bootstrap followed +by an offline rebuild, existing tests, release audits, deterministic rebuilds, +Eclipse launches, and packaged-server acceptance. CodeQL explicitly compiles +the production sources with build caching disabled. + +Packaged server checks create and reload disposable worlds for MMDLib alone +on Forge 2847, and Base Metals plus optional integration profiles on Forge +2859. Client probes create a disposable integrated world and exit; their jars +are excluded from published artifacts. See the [build guide](gradle/README.md) +for the commands and the [migration receipt](docs/FG7-MIGRATION.md) for evidence +and known compatibility limits. + +Local verification covers 39 tests, all 500 historical class APIs, Eclipse +setup, clean reproducible builds, and packaged client/server profiles. Hosted +CI and CodeQL results are reported separately by GitHub after the branch is +pushed. IC2 is tested separately from the full machine integration stack +because their existing bronze-recipe conflict also occurs with published +MMDLib. + +Local assistant notes, IDE settings, generated reports, runtime worlds and +release output are ignored. Build helpers, automated test sources and frozen +compatibility inventories are part of the project. + +The manual `Release MMDLib` workflow prepares an immutable candidate from +`master-1.12` after verifying successful checks on that exact commit. Live +publication requires `confirm_live_publication=true`, runs only in the upstream +repository, and requires `CURSEFORGE_TOKEN`, `MAVEN_UPLOAD_URL`, +`MAVEN_UPLOAD_USERNAME`, and `MAVEN_UPLOAD_PASSWORD`. The audited bundle is +published to Maven and CurseForge project 261744 before the GitHub Release. +Pushing a version tag only validates the candidate and records the manual +publication step. diff --git a/build.gradle b/build.gradle index b8fea5d..1c4d189 100644 --- a/build.gradle +++ b/build.gradle @@ -1,1103 +1,332 @@ -buildscript { - repositories { - mavenLocal() - jcenter() - mavenCentral() -// maven { -// url 'http://maven.aliyun.com/nexus/content/groups/public/' -// } -// -// maven { -// url 'http://maven.aliyun.com/nexus/content/repositories/jcenter' -// } - removeIf { it instanceof MavenArtifactRepository && it.url.host == 'files.minecraftforge.net' } - maven { - name = 'forge' - url = 'https://maven.minecraftforge.net/' - } - maven { - name = 'gradle' - url 'https://plugins.gradle.org/m2/' - } - maven { - name = 'sonatype' - url = 'https://oss.sonatype.org/content/groups/public' - } - } - dependencies { - classpath group: 'net.minecraftforge.gradle', name: 'ForgeGradle', version: project.fg_version - //classpath group: 'com.jaredsburrows', name: 'gradle-checker-framework-plugin', version: '0.2.2' - } -} +import org.apache.tools.ant.filters.FixCrLfFilter plugins { - id 'com.github.spotbugs' version '1.6.9' // 4.0 or later - id 'com.matthewprenger.cursegradle' version '1.4.0' - id 'org.sonarqube' version '2.8' - id 'se.bjurr.gitchangelog.git-changelog-gradle-plugin' version '1.60' -//id 'org.junit.platform.gradle.plugin' version '1.2.0' - id 'maven-publish' - id 'jacoco' - id 'checkstyle' // 2.7 or later -} - -apply plugin: 'net.minecraftforge.gradle.forge' // FG2.x -//apply plugin: 'forge' // FG1.x -//apply plugin: 'com.jaredsburrows.checkerframework' -apply plugin: 'eclipse' -apply plugin: 'idea' -apply plugin: 'maven-publish' -apply plugin: 'pmd' -import org.gradle.util.GradleVersion -if (GradleVersion.current() < GradleVersion.version('4.0')) { - apply plugin: 'findbugs' -} - -project.afterEvaluate { - //final def junitPlatformTestTask = project.tasks.getByName('junitPlatformTest') - - // configure jacoco to analyze the junitPlatformTest task - jacoco { - // this tool version is compatible with - toolVersion = '0.8.3' - // Not needed with new way - //if (GradleVersion.current() < GradleVersion.version('4.6')) { - //applyTo junitPlatformTestTask - //}} - } - - // create junit platform jacoco task - project.task(type: JacocoReport, 'junitPlatformJacocoReport', - { - if (GradleVersion.current() >= GradleVersion.version('5.0')) { - getSourceDirectories().from(files('./src/main')) - getClassDirectories().from(files("${project.buildDir}/classes/main")) - } else { - sourceDirectories = files('./src/main') - classDirectories = files("${project.buildDir}/classes/main") + id 'java' + id 'eclipse' + id 'idea' + id 'maven-publish' + id 'net.minecraftforge.renamer' version '1.1.5' + id 'net.minecraftforge.gradle' version '7.0.34' +} + +group = project.mod_group +version = project.mod_version +base.archivesName = 'MMDLib' + +def versionParts = project.mod_version.toString().tokenize('.') +if (versionParts.size() != 4 || !versionParts.every { it ==~ /\d+/ }) { + throw new GradleException("mod_version must use Major.Minor.Bug.Target numeric form: ${project.mod_version}") +} + +def minecraftVersionParts = project.minecraft_version.toString().tokenize('.') +if (minecraftVersionParts.size() < 2 || minecraftVersionParts.size() > 3 + || !minecraftVersionParts.every { it ==~ /\d+/ }) { + throw new GradleException("minecraft_version must use major.minor or major.minor.patch numeric form: " + + project.minecraft_version) +} +def minecraftPatch = minecraftVersionParts.size() == 3 ? minecraftVersionParts[2] : '0' +def expectedTargetVersion = "${minecraftVersionParts[0]}" \ + + "${minecraftVersionParts[1].padLeft(2, '0')}" \ + + "${minecraftPatch.padLeft(2, '0')}" \ + + project.loader_code +if (versionParts[3] != expectedTargetVersion) { + throw new GradleException("mod_version target ${versionParts[3]} does not match " + + "Minecraft ${project.minecraft_version} ${project.loader_name} target ${expectedTargetVersion}") +} + +ext.functional_version = versionParts[0..2].join('.') +ext.display_version = project.mod_version +ext.release_tag = project.mod_version + +def expectedMavenGroup = 'zone.moddev.mc.mmdlib' +def expectedMavenArtifact = 'MMDLib' +def expectedMavenCoordinate = "${expectedMavenGroup}:${expectedMavenArtifact}:${project.version}" + +java { + toolchain { + languageVersion = JavaLanguageVersion.of(8) + vendor = JvmVendorSpec.ADOPTIUM } - // Not needed with new way - //if (GradleVersion.current() < GradleVersion.version('4.6')) { - // executionData junitPlatformTestTask - //} - }) -} - -// Only works with JUnit Platform Launcher 1.2.0 and earlier -/* -if (GradleVersion.current() < GradleVersion.version('4.6')) { - junitPlatform { - // platformVersion '1.2.0' - // logManager 'org.apache.logging.log4j.jul.LogManager' - reportsDir file("${project.buildDir}/test-results/junit-platform") - // enableStandardTestTask true - // selectors (optional) - // filters (optional) - } + withSourcesJar() + withJavadocJar() } -*/ -if (GradleVersion.current() >= GradleVersion.version('4.0')) { - spotbugs { - ignoreFailures = true - toolVersion = '3.1.6' - effort = 'max' - reportLevel = 'low' - //includeFilter = file("$rootProject.projectDir/config/spotbugs-filter.xml") - } - - tasks.withType(com.github.spotbugs.SpotBugsTask) { - reports { - xml.enabled = false - html.enabled = true +tasks.withType(JavaCompile).configureEach { + javaCompiler = javaToolchains.compilerFor { + languageVersion = JavaLanguageVersion.of(8) + vendor = JvmVendorSpec.ADOPTIUM } - } -} - -if (GradleVersion.current() >= GradleVersion.version('2.7')) { - checkstyle { - ignoreFailures = true - toolVersion = '8.20' // 5.7 is default - showViolations = false - } -} - -pmd { - consoleOutput = false - ignoreFailures = true - sourceSets = [sourceSets.main] - reportsDir = file("$project.buildDir/reports/pmd") - rulePriority = 5 - ruleSets = [ - 'java-android', - 'java-basic', - 'java-braces', - 'java-clone', - 'java-codesize', - 'java-comments', - 'java-controversial', - 'java-coupling', - 'java-design', - 'java-empty', - 'java-finalizers', - 'java-imports', - 'java-j2ee', - 'java-javabeans', - 'java-junit', - 'java-logging-jakarta-commons', - 'java-logging-java', -// 'java-metrics', // Upsets 5.8.1 - 'java-migrating', - 'java-migrating_to_junit4', - 'java-naming', - 'java-optimizations', -// 'java-quickstart', // 6.x - 'java-strictexception', - 'java-strings', - 'java-sunsecure', - 'java-typeresolution', - 'java-unnecessary', - 'java-unusedcode' - ] - toolVersion = '5.8.1'; // 6.19.0 - if (GradleVersion.current() >= GradleVersion.version('5.6')) { -// incrementalAnalysis = true // Requires PMD 6.0.0 or newer - } + sourceCompatibility = JavaVersion.VERSION_1_8 + targetCompatibility = JavaVersion.VERSION_1_8 + options.encoding = 'UTF-8' + options.compilerArgs.addAll(['-proc:none', '-Xlint:deprecation', '-Xmaxerrs', '1000']) } -tasks.withType(JavaCompile) { - options.encoding = 'UTF-8' - options.compilerArgs = [ - '-Xlint:deprecation', // deprecation, rawtypes, cast, unchecked, all - //'-Xdiags:verbose', - //'-Werror' - ] - compileJava.options.compilerArgs += '-proc:none' +tasks.named('compileTestJava', JavaCompile) { + options.compilerArgs.add('-proc:none') } -tasks.withType(Test) { - compileTestJava.options.compilerArgs += '-proc:none' -} - -javadoc { - failOnError = false -} - -test { - if (GradleVersion.current() >= GradleVersion.version('4.6')) { +tasks.withType(Test).configureEach { useJUnitPlatform() - /* - useJUnitPlatform { - includeTags 'fast', 'smoke & feature-a' - //excludeTags 'slow', 'ci' - includeEngines 'junit-jupiter' - //excludeEngines 'junit-vintage' - } - */ - } + workingDir = project.projectDir } -//project.ext.short_version = '1.0.0' -//ext.short_version = getModVersion('VERSION', + details.filter(FixCrLfFilter, + eol: FixCrLfFilter.CrLf.newInstance('lf'), + eof: FixCrLfFilter.AddAsisRemove.newInstance('asis')) } -idea.module { - downloadJavadoc = true - //inheritOutputDirs = true -} - -class Secrets { - Map m_data = null - - final String getProperty(final String key) { - return (m_data && (m_data[key] != null)) ? m_data[key] : '' - } -} - -final def secretFile -if (System.getenv('SECRET_FILE')) { - secretFile = file System.getenv().SECRET_FILE -} else { - secretFile = file 'secret.json' -} - -import groovy.json.JsonSlurper -project.ext.secret = new Secrets() -if (secretFile.exists()) { - secretFile.withReader { - project.secret.m_data = new JsonSlurper().parse it - } -} else { - project.secret.m_data = new JsonSlurper().parseText( - '{ "username" : "' + (System.getenv('userMaven') ?: '') + '",' - + '"password" : "' + (System.getenv('authMaven') ?: '') + '",' - + '"url" : "' + (System.getenv('urlMaven') ?: '') + '",' - + '"curseforgeAPIKey" : "' + (System.getenv('curse_auth') ?: '00000000-0000-0000-0000-000000000000') + '",' - + '"sonarHost" : "' + (System.getenv('SONAR_HOST_URL') ?: 'https://sonarcloud.io') + '",' - + '"sonarOrganization" : "' + (System.getenv('SONAR_ORGANIZATION') ?: '') + '",' - + '"sonarToken" : "' + (System.getenv('SONAR_AUTH_TOKEN') ?: 0) + '"}' - ) +def developmentModOutput = layout.buildDirectory.dir('forge12-development/main') +def prepareDevelopmentMod = tasks.register('prepareDevelopmentMod', Sync) { + group = 'ide' + description = 'Merges production classes and resources for Forge 1.12 development discovery.' + dependsOn tasks.named('classes') + from(tasks.named('compileJava', JavaCompile).flatMap { it.destinationDirectory }) + from(layout.buildDirectory.dir('generated/legacy-api/classes')) + from(sourceSets.main.output.resourcesDir) + into(developmentModOutput) } minecraft { - version = project.forge_mc_version + '-' + project.forge_version - mappings = project.mcp_mappings_version - - if (project.hasProperty('runDir')) { - runDir = project.runDir - } else if (file('../run').exists()) { - runDir = '../run' - } else { - runDir = 'run' - } - - replace '@MOD_VERSION@', project.short_version - - if (project.hasProperty('signSHA1') && getBooleanProperty('do_sign_jar')) { - replace '@FINGERPRINT@', project.findProperty('signSHA1') - } else { - replace '@FINGERPRINT@', '' - } - - if (project.hasProperty('core_plugin')) { - clientJvmArgs += "-Dfml.coreMods.load=${project.core_plugin}" - serverJvmArgs += "-Dfml.coreMods.load=${project.core_plugin}" - } - - if (project.hasProperty('mc_username')) { - clientRunArgs += ['--username', project.mc_username] - if (project.hasProperty('mc_password')) { - clientRunArgs += ['--password', project.mc_password] + mappings channel: project.mappings_channel, version: project.mappings_version + // ForgeGradle launches Mavenizer as a child process, so Gradle's offline + // flag must be forwarded explicitly to prevent network access there too. + if (gradle.startParameter.offline) { + mavenizerArguments.add('--offline') } - } - if (project.hasProperty('mc_uuid')) { - clientRunArgs += ['--uuid', project.mc_uuid] - } - - if (getBooleanProperty('mc_server_nogui')) { - serverRunArgs += 'nogui' - } - - if (getBooleanProperty('forge_do_not_backup')) { - serverJvmArgs += '-Dfml.doNotBackup=true' - clientJvmArgs += '-Dfml.doNotBackup=true' - } - - if (getBooleanProperty('forge_query_result_confirm')) { - serverJvmArgs += '-Dfml.queryResult=confirm' - } - - if (getBooleanProperty('log4j_skip_jansi')) { - serverJvmArgs += '-Dlog4j.skipJansi=true' - clientJvmArgs += '-Dlog4j.skipJansi=true' - } - - if (project.hasProperty('mc_resolution')) { - final def res = [ - '480p': [640, 480], - '576p': [640, 576], - '720p': [1280, 720], - '1080p': [1920, 1080], - 'custom': [project.findProperty('mc_custom_resolution_width'), project.findProperty('mc_custom_resolution_height')]] - final def choice = res?.get(project.mc_resolution) - if (choice != null) { - clientRunArgs += ['--width', choice[0]] - clientRunArgs += ['--height', choice[1]] + String configuredRunDirectory = providers.gradleProperty('mmdLibRunDirectory').getOrElse('run') + + runs { + configureEach { + workingDir.convention layout.projectDirectory.dir(configuredRunDirectory) + systemProperty 'forge.logging.console.level', 'debug' + systemProperty 'fml.doNotBackup', 'true' + systemProperty 'fml.queryResult', 'confirm' + systemProperty 'log4j.skipJansi', 'true' + if (!providers.gradleProperty('mmdLibClientSmoke').isPresent()) { + systemProperty 'fml.coreMods.load', 'zone.moddev.mc.mmdlib.compat.LegacyNamespaceBootstrap' + } + environment 'MC_VERSION', project.minecraft_version + environment 'MOD_CLASSES', developmentModOutput.get().asFile.absolutePath + mods { + mmdlib { + source sourceSets.main + } + } + } + register('client') { + if (project.hasProperty('mc_username')) { + args '--username', project.mc_username + } + if (project.hasProperty('mc_uuid')) { + args '--uuid', project.mc_uuid + } + } + register('server') { + args '--nogui' + } } - } - - if (project.hasProperty('client_jvm_args')) { - clientJvmArgs += project.client_jvm_args - } - if (project.hasProperty('server_jvm_args')) { - serverJvmArgs += project.server_jvm_args - } - - if (project.hasProperty('client_game_args')) { - clientRunArgs += project.client_game_args - } - if (project.hasProperty('server_game_args')) { - serverRunArgs += project.server_game_args - } - - makeObfSourceJar = getBooleanProperty('create_source_jar') - - useDepAts = getBooleanProperty('dep_has_ats') } -repositories { - mavenLocal() - jcenter() - mavenCentral() - - removeIf { it instanceof MavenArtifactRepository && it.url.host == 'files.minecraftforge.net' } - maven { - url "https://maven.minecraftforge.net/" - } - maven { // Mantle, TCon, JEI - name 'DVS1 Maven FS' - url 'http://dvs1.progwml6.com/files/maven/' - } - maven { // CCL, CCC, NEI - name 'Chickenbones Repo' - url 'http://chickenbones.net/maven/' - } - maven { // The One Probe, EnderIO, EnderCore - name 'tterrag' - url 'http://maven.tterrag.com/' - } - maven { // Tesla - name 'MMD' - url 'https://maven.mcmoddev.com/' - } - maven { // MCMultipart - name 'amadornes' - url 'http://maven.amadornes.com/' - } - maven { // CraftTweaker, ZenScript - name 'blamejared' - url 'http://maven.blamejared.com/' - } - maven { // IC2 - name 'industrialcraft' - url 'http://maven.ic2.player.to/' - } -/* maven { // HWYLA - name 'tehnut' - url 'http://tehnut.info/maven/' - }*/ - maven { // CoFH - name 'Covers Maven' - url 'http://maven.covers1624.net/' - } - maven { - name = 'CurseForge' - url = 'https://minecraft.curseforge.com/api/maven/' - } - maven { - name 'opencomputers' - url 'http://maven.cil.li/' - } - maven { // Mekanism, TAIGA - name 'jitpack' - url 'https://jitpack.io/' - } - maven { // Buildcraft - name 'buildcraft' - url 'https://mod-buildcraft.com/maven/' - } - maven { // Storage Drawers - name 'thiakil' - url 'http://maven.thiakil.com/' - } - /* - ivy { - url 'http://ae-mod.info/builds' - layout "pattern", { - artifact "[module]-[revision](-[classifier])(.[ext])" +tasks.matching { it.name == 'runClient' || it.name == 'runServer' }.configureEach { + if (!providers.gradleProperty('mmdLibClientSmoke').isPresent()) { + dependsOn prepareDevelopmentMod + doFirst { + Set splitProductionOutputs = sourceSets.main.output.files.collect { + it.canonicalFile + } as Set + File mergedOutput = developmentModOutput.get().asFile + setClasspath(project.files( + mergedOutput, + classpath.files.findAll { !splitProductionOutputs.contains(it.canonicalFile) })) + environment 'MC_VERSION', project.minecraft_version + environment 'MOD_CLASSES', mergedOutput.absolutePath + } } - } - */ } -dependencies { - testCompile('org.junit.platform:junit-platform-launcher:1.5.+') - testCompile('org.junit.jupiter:junit-jupiter-api:5.5.+') // testImplementation - testRuntime('org.junit.jupiter:junit-jupiter-engine:5.5.+') //testRuntimeOnly - if (GradleVersion.current() >= GradleVersion.version('2.13')) { - testCompileOnly 'junit:junit:4.12' - } - testRuntime 'org.junit.vintage:junit-vintage-engine:5.5.+' //testRuntimeOnly - testCompile('org.mockito:mockito-core:2.+') - testCompile('org.mockito:mockito-junit-jupiter:2.+') { - exclude group: 'org.junit.jupiter', module: 'junit-jupiter-engine' - } - if (GradleVersion.current() >= GradleVersion.version('4.6')) { - annotationProcessor group: 'org.apache.logging.log4j', name: 'log4j-core', version: '2.11.0' - } - - deobfProvided "com.mcmoddev:AdditionalLootTables:${mc_version}-${alt_version}" - //runtime "com.mcmoddev:AdditionalLootTables:${mc_version}-${alt_version}" - deobfProvided "com.mcmoddev:OreSpawn:${mc_version}-${orespawn_version}" - //runtime "com.mcmoddev:OreSpawn:${mc_version}-${orespawn_version}" - - // TODO: We don't use this - deobfProvided "net.darkhax.tesla:Tesla-${mc_version}.2:${tesla_version}" -//runtime "net.darkhax.tesla:Tesla-${mc_version}.2:${tesla_version}" - - deobfProvided ("com.github.aidancbrady:Mekanism:${mekanism_version}") { - exclude group: 'com.mod-buildcraft' - exclude group: 'CraftTweaker2' - exclude group: 'MCMultiPart2' - exclude group: 'cofh' - exclude group: 'com.blamejared' - exclude group: 'mezz.jei' - exclude group: 'net.darkhax.tesla' - exclude module: 'CTM' - exclude module: 'Hwyla' - exclude module: 'InventoryTweaks' - exclude module: 'industrialcraft-2' - exclude module: 'OpenComputers' - } - /* - runtime ("com.github.aidancbrady:Mekanism:${mekanism_version}") { - exclude group: 'com.mod-buildcraft' - exclude group: 'CraftTweaker2' - exclude group: 'MCMultiPart2' - exclude group: 'cofh' - exclude group: 'com.blamejared' - exclude group: 'mezz.jei' - exclude group: 'net.darkhax.tesla' - exclude module: 'CTM' - exclude module: 'Hwyla' - exclude module: 'InventoryTweaks' - exclude module: 'industrialcraft-2' - exclude module: 'OpenComputers' - } - */ - - // TODO: We don't use this - deobfProvided ("slimeknights.mantle:Mantle:${mc_version}-${mantle_version}") { - exclude group: 'mezz.jei' - } - -// runtime ("slimeknights.mantle:Mantle:${mc_version}-${mantle_version}") { -// exclude group: 'mezz.jei' -// } - - - deobfProvided ("slimeknights:TConstruct:${mc_version}.2-${tconstruct_version}") { - exclude group: 'mezz.jei' - } - -// runtime ("slimeknights:TConstruct:${mc_version}-${tconstruct_version}") { -// exclude group: 'mezz.jei' -// } - - deobfProvided ("constructs-armory:conarm:${mc_version}.2:${conarm_version}") { - exclude group: 'mezz.jei' - } - -// runtime ("constructs-armory:conarm:${mc_version}.2:${conarm_version}") { -// exclude group: 'mezz.jei' -// } - - deobfProvided "mezz.jei:jei_${mc_version}.2:${jei_version}" -// runtime "mezz.jei:jei_${mc_version}:${jei_version}" - - // TODO: We don't use this - deobfProvided "codechicken:CodeChickenLib:${mc_version}.2-${ccl_version}:universal" -//runtime "codechicken:CodeChickenLib:${mc_version}-${ccl_version}:universal" - - deobfProvided ("codechicken:NotEnoughItems:${mc_version}.2-${nei_version}:universal") { - exclude group: 'codechicken' - exclude group: 'mezz.jei' - } - /* - runtime ("codechicken:NotEnoughItems:${mc_version}-${nei_version}:universal") { - exclude group: 'codechicken' - exclude group: 'mezz.jei' - } - */ - - // TODO: We don't use this - deobfProvided "MCMultiPart2:MCMultiPart:${mcmp_version}" -//runtime "MCMultiPart2:MCMultiPart:${mcmp_version}" -//deobfProvided "MCMultiPart2:MCMultiPart-exp:${mcmp_experimental_version}" -//runtime "MCMultiPart2:MCMultiPart-exp:${mcmp_experimental_version}" - - deobfProvided ("mcjty.theoneprobe:TheOneProbe-${mc_version}:${mc_version}-${top_version}:api") { - exclude group: 'cofh' - } - /* - runtime ("mcjty.theoneprobe:TheOneProbe-${mc_version}:${mc_version}-${top_version}") { - exclude group: 'cofh' - } - */ - - deobfProvided "portablejim:VeinMiner:${veinminer_version}" -//runtime "portablejim:VeinMiner:${veinminer_version}" - - deobfProvided ("net.industrial-craft:industrialcraft-2:${ic2_version}:api") { - exclude group: 'mezz.jei' - } -//runtime "net.industrial-craft:industrialcraft-2:${ic2_version}" - - // TODO: We don't use this -//deobfProvided "com.googlecode.efficient-java-matrix-library:ejml:0.23" -//runtime "com.googlecode.efficient-java-matrix-library:ejml:0.23" - - deobfProvided "CraftTweaker2:CraftTweaker2-API:${ct_api_version}" - deobfProvided "CraftTweaker2:CraftTweaker2-MC1120-Main:${mc_version}-${ct_version}" - - // TODO: We don't use this - /* - deobfCompile ("MineTweaker3:MineTweaker3-API:${minetweaker_version}") { - exclude group: 'mezz.jei' - exclude group: 'org.ow2.asm' - } - runtime "MineTweaker3:MineTweaker3-API:${minetweaker_version}" - */ - - deobfProvided ("mcp.mobius.waila:Hwyla:${hwyla_version}") { - exclude group: 'mezz.jei' - } -// runtime "mcp.mobius.waila:Hwyla:${hwyla_version}" - - deobfProvided ("cofh:CoFHCore:${mc_version}-${cofhcore_version}:universal") { - exclude group: 'mezz.jei' - } - /* - runtime ("cofh:CoFHCore:${mc_version}-${cofhcore_version}:universal") { - exclude group: 'mezz.jei' - } - */ - - /* - runtime ("cofh:CoFHWorld:${mc_version}-${cofhworld_version}:universal") { - exclude group: 'mezz.jei' - } - - runtime ("cofh:ThermalFoundation:${mc_version}-${thermal_foundation_version}:universal") { - exclude group: 'cofh' - exclude group: 'mezz.jei' - } - runtime ("cofh:ThermalExpansion:${mc_version}-${thermal_expansion_version}:universal") { - exclude group: 'codechicken' - exclude group: 'cofh' - exclude group: 'mezz.jei' - } - */ - - deobfProvided ("com.blamejared:MTLib:${mtlib_version}") { - exclude group: 'mezz.jei' - } - /* - runtime ("com.blamejared:MTLib:${mtlib_version}") { - exclude group: 'mezz.jei' - } - */ - - deobfProvided ("thaumcraft:Thaumcraft:${mc_version}.2:6.1.BETA26") { - exclude group: 'mezz.jei' - } - - deobfProvided ("baubles:Baubles:${mc_version}:1.5.2"){ - exclude group: 'mezz.jei' - } -} - -processResources { - inputs.property 'version', project.short_version - inputs.property 'mcversion', project.minecraft.version - - from (sourceSets.main.resources.srcDirs) { - include 'mcmod.info' - expand 'version': project.short_version, 'mcversion': project.minecraft.version - } - - from (sourceSets.main.resources.srcDirs) { - exclude 'mcmod.info' - } - - rename '(.+_at.cfg)', 'META-INF/$1' -} - -jar { - //from sourceSets.api.output - //from sourceSets.main.output - - manifest { - mainAttributes( - 'Maven-Artifact': "${project.group}:${project.archivesBaseName}:${project.version}", - 'Timestamp': System.currentTimeMillis(), - 'Specification-Title': 'examplemod', - 'Specification-Vendor': 'mcmoddev', - 'Specification-Version': '1', - 'Implementation-Title': project.archivesBaseName, - 'Implementation-Version': project.version, - 'Implementation-Vendor' :'mcmoddev', - 'Implementation-Timestamp': new Date().format("yyyy-MM-dd'T'HH:mm:ssZ"), - 'Built-On-Java': "${System.getProperty('java.vm.version')} (${System.getProperty('java.vm.vendor')})", - 'Built-On': "${project.forge_mc_version}-${project.forge_version}" - ) - if (project.hasProperty('core_plugin')) { - attributes 'FMLCorePluginContainsFMLMod': 'true' - attributes 'FMLCorePlugin': project.core_plugin - } - if (project.hasProperty('mod_at_file')) { - attributes 'FMLAT': project.mod_at_file +repositories { + exclusiveContent { + forRepository { + maven { + name = 'IndustrialCraft' + url = providers.gradleProperty('legacyDependencyVerificationRepository') + .map { uri(it) }.getOrElse(uri('https://maven.ic2.player.to/')) + metadataSources { artifact() } + } + } + filter { includeGroup('net.industrial-craft') } } - if (project.hasProperty('mod_contained_deps')) { - attributes 'ContainedDeps': project.mod_contained_deps + minecraft.mavenizer(it) + maven fg.forgeMaven + maven fg.minecraftLibsMaven + + exclusiveContent { + forRepository { + maven { + name = 'BaseMetalsAcceptanceFixture' + url = providers.gradleProperty('legacyDependencyVerificationRepository') + .map { uri(it) }.getOrElse(uri(layout.buildDirectory.dir('legacy-dependency-mirror').get().asFile)) + metadataSources { artifact() } + } + } + filter { includeGroup('zone.moddev.mc.basemetals') } } - } -} - -task apiJar(type: Jar) { - onlyIf { - getBooleanProperty('create_api_jar') - } - - description = 'Creates a JAR containing the API Classes.' - classifier = 'api' - from apiClasses - // from sourceSets.api.output - manifest { - mainAttributes( - 'Maven-Artifact': "${project.group}:${project.archivesBaseName}:${project.version}:api", - 'Timestamp': System.currentTimeMillis(), - 'Specification-Title': 'examplemod', - 'Specification-Vendor': 'mcmoddev', - 'Specification-Version': '1', - 'Implementation-Title': project.name + '-api', - 'Implementation-Version': project.version, - 'Implementation-Vendor' :'mcmoddev', - 'Implementation-Timestamp': new Date().format("yyyy-MM-dd'T'HH:mm:ssZ"), - 'Built-On-Java': "${System.getProperty('java.vm.version')} (${System.getProperty('java.vm.vendor')})", - 'Built-On': "${project.forge_mc_version}-${project.forge_version}" - ) - } -} - -task deobfJar(type: Jar) { - onlyIf { - getBooleanProperty('create_deobf_jar') - } - description = 'Creates a JAR containing the non-obfuscated compiled code.' - classifier = 'deobf' - from sourceSets.main.output - manifest { - mainAttributes( - 'Maven-Artifact': "${project.group}:${project.archivesBaseName}:${project.version}:deobf", - 'Timestamp': System.currentTimeMillis(), - 'Specification-Title': 'examplemod', - 'Specification-Vendor': 'mcmoddev', - 'Specification-Version': '1', - 'Implementation-Title': project.name + '-deobf', - 'Implementation-Version': project.version, - 'Implementation-Vendor' :'mcmoddev', - 'Implementation-Timestamp': new Date().format("yyyy-MM-dd'T'HH:mm:ssZ"), - 'Built-On-Java': "${System.getProperty('java.vm.version')} (${System.getProperty('java.vm.vendor')})", - 'Built-On': "${project.forge_mc_version}-${project.forge_version}" - ) - if (project.hasProperty('mod_at_file')) { - attributes 'FMLAT': project.mod_at_file - } - if (project.hasProperty('core_plugin')) { - attributes 'FMLCorePlugin': project.core_plugin + // CurseForge files belong only in the verified CI mirror or CurseMaven. + exclusiveContent { + forRepository { + maven { + def verificationRepository = providers.gradleProperty('legacyDependencyVerificationRepository') + name = verificationRepository.isPresent() ? 'LegacyDependencyVerificationMirror' : 'CurseMaven' + url = verificationRepository.isPresent() + ? uri(verificationRepository.get()) : uri('https://www.cursemaven.com') + metadataSources { artifact() } + } + } + filter { includeGroup('curse.maven') } } - } -} - -task javadocJar(type: Jar, dependsOn: javadoc) { - onlyIf { - getBooleanProperty('create_javadoc_jar') - } - - description = 'Creates a JAR containing the JavaDocs.' - classifier = 'javadoc' - from javadoc.getDestinationDir() - manifest.mainAttributes( - 'Maven-Artifact': "${project.group}:${project.archivesBaseName}:${project.version}:javadoc", - 'Timestamp': System.currentTimeMillis(), - 'Implementation-Title': project.name + '-javadoc', - 'Implementation-Version': project.version, - 'Built-On-Java': "${System.getProperty('java.vm.version')} + (${System.getProperty('java.vm.vendor')})", - 'Built-On': "${project.forge_mc_version}-${project.forge_version}" - ) -} - -task signJar(type: SignJar, dependsOn: reobfJar) { - onlyIf { - getBooleanProperty('do_sign_jar') && - project.hasProperty('keyStore') - } - - description = 'Sign the Main JAR' - inputFile = jar.archivePath - outputFile = jar.archivePath - - keyStore = project.findProperty('keyStore') - alias = project.findProperty('keyStoreAlias') - storePass = project.findProperty('keyStorePass') - keyPass = project.findProperty('keyStoreKeyPass') -} - -task signApiJar(type: SignJar) { - onlyIf { - getBooleanProperty('create_api_jar') && - getBooleanProperty('do_sign_jar') && - project.hasProperty('keyStore') - } - - description = 'Sign the API JAR' - keyStore = project.findProperty('keyStore') - alias = project.findProperty('keyStoreAlias') - storePass = project.findProperty('keyStorePass') - keyPass = project.findProperty('keyStoreKeyPass') - - inputFile = apiJar.archivePath - outputFile = apiJar.archivePath -} - -task signDeobfJar(type: SignJar) { - onlyIf { - getBooleanProperty('create_deobf_jar') && - getBooleanProperty('do_sign_jar') && - project.hasProperty('keyStore') - } - - description = 'Sign the deobf JAR' - keyStore = project.findProperty('keyStore') - alias = project.findProperty('keyStoreAlias') - storePass = project.findProperty('keyStorePass') - keyPass = project.findProperty('keyStoreKeyPass') - - inputFile = deobfJar.archivePath - outputFile = deobfJar.archivePath -} - -task signSourceJar(type: SignJar) { - onlyIf { - getBooleanProperty('create_source_jar') && - getBooleanProperty('do_sign_jar') && - project.hasProperty('keyStore') - } - - description = 'Sign the Sources JAR' - keyStore = project.findProperty('keyStore') - alias = project.findProperty('keyStoreAlias') - storePass = project.findProperty('keyStorePass') - keyPass = project.findProperty('keyStoreKeyPass') - - inputFile = sourceJar.archivePath - outputFile = sourceJar.archivePath -} - -task signJavadocJar(type: SignJar) { - onlyIf { - getBooleanProperty('create_javadoc_jar') && - getBooleanProperty('do_sign_jar') && - project.hasProperty('keyStore') - } - keyStore = project.findProperty('keyStore') - alias = project.findProperty('keyStoreAlias') - storePass = project.findProperty('keyStorePass') - keyPass = project.findProperty('keyStoreKeyPass') + exclusiveContent { + forRepository { + maven { + name = 'Sponge' + url = 'https://repo.spongepowered.org/repository/maven-public' + } + } + filter { includeGroupAndSubgroups('org.spongepowered') } + } - inputFile = javadocJar.archivePath - outputFile = javadocJar.archivePath + mavenCentral() + maven { + name = 'MinecraftLibraries' + url = 'https://libraries.minecraft.net/' + } } -if (getBooleanProperty('do_sign_jar')) { - build.dependsOn signJar - if (getBooleanProperty('create_api_jar')) { - build.dependsOn signApiJar - } - if (getBooleanProperty('create_deobf_jar')) { - build.dependsOn signDeobfJar - } - if (getBooleanProperty('create_source_jar')) { - build.dependsOn signSourceJar - } - if (getBooleanProperty('create_javadoc_jar')) { - build.dependsOn signJavadocJar - } -} +apply from: 'gradle/dependencies.gradle' +apply from: 'gradle/compatibility.gradle' -tasks.publish.dependsOn build -tasks.curseforge.dependsOn publish +// Use readable stable_39 names in development. Reobfuscate the release jar +// back to SRG names so it works in a normal Forge installation. +renamer.mappings.from minecraft.dependency.toSrgFile -artifacts { - if (getBooleanProperty('create_api_jar')) { - archives apiJar - } - if (getBooleanProperty('create_deobf_jar')) { - archives deobfJar - } - if (getBooleanProperty('create_source_jar')) { - archives sourceJar - } - if (getBooleanProperty('create_javadoc_jar')) { - archives javadocJar - } -} +tasks.named('processResources', ProcessResources) { + filteringCharset = 'UTF-8' + inputs.property('version', project.mod_version) + inputs.property('mcversion', project.minecraft_version) -publishing { - publications { - mavenJava(MavenPublication) { - groupId project.group - artifactId project.archivesBaseName - version project.version - from components.java - if (getBooleanProperty('create_source_jar')) { - artifact sourceJar { - classifier 'sources' - } - } - if (getBooleanProperty('create_api_jar')) { - artifact apiJar { - classifier 'api' - } - } - if (getBooleanProperty('create_deobf_jar')) { - artifact deobfJar { - classifier 'deobf' - } - } - if (getBooleanProperty('create_javadoc_jar')) { - artifact javadocJar { - classifier 'javadoc' - } - } - /* - pom { - name = 'Example' - description = 'An Example' - url = 'https://github.com/Examples/Example' - packaging = 'jar' - //inceptionYear = '' - licenses { - license { - name = 'GNU Lesser General Public License, Version 2.1' - url = 'https://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt' - } - } - scm { - connection = 'scm:git:git://github.com/Examples/Example.git' - developerConnection = 'scm:git:git@github.com:Examples/Example.git' - url = 'https://github.com/Examples/Example' - } - issueManagement { - system = 'github' - url = 'https://github.com/Examples/Example.git/issues' - } - ciManagement { - system = 'jenkins' - url = 'https://ci.mcmoddev.com/' - } - organization { - name = 'Minecraft Mod Development' - url = 'https://mcmoddev.com/' - } - } - */ + filesMatching('mcmod.info') { + expand version: project.mod_version, mcversion: project.minecraft_version } - } - repositories { - maven { - if ((secret.username != '') && (secret.password != '')) { - credentials { - username secret.username - password secret.password - } - } - if (secret.url != '') { - url secret.url - } else { - url "file:///${project.buildDir}/repo" - } + rename '(.+_at.cfg)', 'META-INF/$1' + filesMatching(archiveTextPatterns, normalizeArchiveLineEndings) +} + +tasks.named('jar', Jar) { + archiveClassifier = 'deobf' + destinationDirectory = layout.buildDirectory.dir('libs-dev') + includeEmptyDirs = false + manifest { + attributes([ + 'Maven-Artifact' : expectedMavenCoordinate, + 'Implementation-Title' : base.archivesName.get(), + 'Implementation-Version': project.version, + 'Built-On-Java' : '8', + 'Built-On' : "${project.minecraft_version}-${project.forge_version}", + 'FMLCorePlugin' : 'zone.moddev.mc.mmdlib.compat.LegacyNamespaceBootstrap', + 'FMLCorePluginContainsFMLMod': 'true' + ]) } - } } -curseforge { - if (project.hasProperty('curseforge_project_id')) { - apiKey = secret.curseforgeAPIKey - project { - id = project.curseforge_project_id - if (project.hasProperty('curseforge_changelog_filename')) { - changelog = file(project.curseforge_changelog_filename) - } else { - changelog = '' - } - if (project.hasProperty('curseforge_changelog_type')) { - changelogType = project.curseforge_changelog_type - } - if ((project.hasProperty('curseforge_release_type')) && ((project.curseforge_release_type == 'alpha') || (project.curseforge_release_type == 'beta') || (project.curseforge_release_type == 'release'))) { - releaseType = project.curseforge_release_type - } else { - releaseType = 'alpha' - } - if (project.hasProperty('curseforge_versions')) { - final def versions = "${project.curseforge_versions}".split(', ') - versions.each { - addGameVersion "${it}" - } - } - mainArtifact(jar) { - if (getBooleanProperty('curseforge_use_custom_display_name')) { - displayName = "${project.name} ${project.display_version}" - } - if (project.hasProperty('curseforge_requirements') || project.hasProperty('curseforge_optionals') || project.hasProperty('curseforge_embeddeds') || project.hasProperty('curseforge_tools') || project.hasProperty('curseforge_incompatibles') || project.hasProperty('curseforge_includes')) { - relations { - if (project.hasProperty('curseforge_requirements')) { - final def requirements = "${project.curseforge_requirements}".split(', ') - requirements.each { - requiredDependency "${it}" - } - } - if (project.hasProperty('curseforge_optionals')) { - final def optionals = "${project.curseforge_optionals}".split(', ') - optionals.each { - optionalDependency "${it}" - } - } - if (project.hasProperty('curseforge_embeddeds')) { - final def embeddeds = "${project.curseforge_embeddeds}".split(', ') - embeddeds.each { - embeddedLibrary "${it}" - } - } - if (project.hasProperty('curseforge_tools')) { - final def tools = "${project.curseforge_tools}".split(', ') - tools.each { - tool "${it}" - } - } - if (project.hasProperty('curseforge_incompatibles')) { - final def incompatibles = "${project.curseforge_incompatibles}".split(', ') - incompatibles.each { - incompatible "${it}" - } - } - if (project.hasProperty('curseforge_includes')) { - final def includes = "${project.curseforge_includes}".split(', ') - includes.each { - include "${it}" - } - } - } - } - } - if (getBooleanProperty('create_api_jar')) { - addArtifact(apiJar) { - if (getBooleanProperty('curseforge_use_custom_display_name')) { - displayName = "${project.name} ${project.display_version} API" - } - } - } - if (getBooleanProperty('create_source_jar')) { - addArtifact(sourceJar) { - if (getBooleanProperty('curseforge_use_custom_display_name')) { - displayName = "${project.name} ${project.display_version} Sources" - } - } - } - if (getBooleanProperty('create_deobf_jar')) { - addArtifact(deobfJar) { - if (getBooleanProperty('curseforge_use_custom_display_name')) { - displayName = "${project.name} ${project.display_version} Development" - } - } - } - if (getBooleanProperty('create_javadoc_jar')) { - addArtifact(javadocJar) { - if (getBooleanProperty('curseforge_use_custom_display_name')) { - displayName = "${project.name} ${project.display_version} Javadoc" - } - } - } - } - } +def releaseJar = renamer.classes(tasks.named('jar', Jar)) { + map.from minecraft.dependency.toSrgFile + archiveClassifier = null } -sonarqube { - properties { - if (project.hasProperty('sonar_host_url')) { - property 'sonar.host.url', project.sonar_host_url - } else if (secret.sonarHost != '') { - property 'sonar.host.url', secret.sonarHost - } - property 'sonar.login', secret.sonarToken - if (project.hasProperty('sonar_organisation')) { - property 'sonar.organization', project.sonar_organisation - } else if (secret.sonarOrganisation != '') { - property 'sonar.organization', secret.sonarOrganization +tasks.named('sourcesJar', Jar) { + filteringCharset = 'UTF-8' + includeEmptyDirs = false + archiveClassifier = 'sources' + filesMatching(archiveTextPatterns, normalizeArchiveLineEndings) + manifest { + attributes([ + 'Maven-Artifact' : "${expectedMavenCoordinate}:sources", + 'Implementation-Title' : "${base.archivesName.get()}-sources", + 'Implementation-Version': project.version + ]) } - //property 'sonar.projectName', project.archivesBaseName - //property 'sonar.projectKey', "${project.group}:${project.archivesBaseName}" - //property 'sonar.branch.name', 'master-1.12.2' - //property 'sonar.branch.target', '' - property 'sonar.junit.reportPaths', "${project.buildDir}/test-results/junit-platform/*.xml" - property 'sonar.jacoco.reportPaths', "${project.buildDir}/jacoco/junitPlatformTest.exec" - } } -String getModFile() { - String path = '' - final FileTree tree = fileTree(dir: 'src/main/java') - tree.include '**/*.java' - tree.visit { final element -> - if (element.file.isFile()) { - element.file.eachLine { final String s -> - final String sTrim = s.trim() - if (sTrim.startsWith('@Mod(')) { - path = "src/main/java/${element.relativePath}" - } - } +tasks.named('javadocJar', Jar) { + filteringCharset = 'UTF-8' + archiveClassifier = 'javadoc' + filesMatching('**/*.html') { + filter { line -> line.replaceFirst(/^ +(?=[^<].* .*(?:,|\)<\/pre>)$)/, ' ') } + } + filesMatching(archiveTextPatterns, normalizeArchiveLineEndings) + manifest { + attributes([ + 'Maven-Artifact' : "${expectedMavenCoordinate}:javadoc", + 'Implementation-Title' : "${base.archivesName.get()}-javadoc", + 'Implementation-Version': project.version + ]) } - } - return path -} - -String getModVersion(final String type) { - return getModVersion(type, modFile) } -import java.util.regex.Matcher -String getModVersion(final String type, final String modFile) { - if ((modFile != null) && (modFile != '')) { - final File file = file(modFile) - final def prefix = ~/^(?:\s*)(?:(?public|protected|private) )?(?:(?static) )?(?:(?final) )?String $type = "(?:(?\d*)\.)?(?:(?\d*)\.)?(?:(?[^."]*)\.?)(?[^"]*)";$/ - for (final String s in file.readLines()) { - final Matcher matcher = (s.trim() =~ prefix) - if (matcher.matches()) { - return "${matcher.group('major') ?: '0'}.${matcher.group('minor') ?: '0'}.${matcher.group('patch')}" - } +['apiElements', 'runtimeElements'].each { configurationName -> + configurations.named(configurationName) { + artifacts.clear() + } + artifacts { + add(configurationName, releaseJar) } - } - return '0.0.0' } -boolean getBooleanProperty(final String property) { - if (project.hasProperty(property)) { - return ((String) project.findProperty(property)).toBoolean() - } else { - return false - } +def stageDevelopmentJar = tasks.register('stageDevelopmentJar', Copy) { + dependsOn tasks.named('jar') + from tasks.named('jar', Jar).flatMap { it.archiveFile } + into layout.buildDirectory.dir('libs') } -task gitChangelog(type: se.bjurr.gitchangelog.plugin.gradle.GitChangelogTask) { - file = new File('CHANGELOG.md') - gitHubIssuePattern = "nonada123" - templateContent = file('changelog.mustache').getText('UTF-8') +tasks.named('assemble') { + dependsOn releaseJar, stageDevelopmentJar + dependsOn tasks.named('sourcesJar') + dependsOn tasks.named('javadocJar') } -Object findProperty(final String propertyName) { - return hasProperty(propertyName) ? property(propertyName) : null; -} +ext.mmdLibBuild = [ + mavenGroup : expectedMavenGroup, + mavenArtifact : expectedMavenArtifact, + mavenCoordinate : expectedMavenCoordinate, + archiveTextSuffixes: archiveTextSuffixes, + releaseJar : releaseJar +].asImmutable() + +// Build details are split by purpose: data, release checks, runtime tests, and Eclipse. +apply from: 'gradle/verification/support.gradle' +apply from: 'gradle/release/artifacts.gradle' +apply from: 'gradle/verification/runtime.gradle' +apply from: 'gradle/release/publishing.gradle' +apply from: 'gradle/ide/eclipse.gradle' +apply from: 'gradle/verification/workflows.gradle' diff --git a/docs/FG7-MIGRATION.md b/docs/FG7-MIGRATION.md new file mode 100644 index 0000000..4f63081 --- /dev/null +++ b/docs/FG7-MIGRATION.md @@ -0,0 +1,185 @@ +# MMDLib 1.12 ForgeGradle 7 migration + +This build migration starts at upstream `master-1.12` commit +`30b73053366f8bd1ba6599c35081f4aa26afc06e`. It follows the current Base Metals +1.12 build structure while preserving MMDLib's production logic and saved +identities. The implementation Java packages move to `zone.moddev.mc.mmdlib` +with compatibility for the old API. + +## Identity and toolchains + +The release coordinate is `zone.moddev.mc.mmdlib:MMDLib:1.0.0.112021`. +The old Maven group was `com.mcmoddev`; consumers adopting this candidate must +change their Maven coordinate. New Java consumers use `zone.moddev.mc.mmdlib`. +Generated compiler exports and a narrow Forge loading adapter preserve +`com.mcmoddev.lib` API consumers. The `mmdlib` mod ID, configuration and registry +names remain unchanged. A normalized inventory of 431 upstream production +files guards the relocation, version metadata and dual-namespace plugin +discovery scope in `verifySourceCompatibility`. It also includes the reviewed +comment and Javadoc corrections, verified to leave executable Java tokens +unchanged. A separate frozen inventory +guards all 500 old class APIs and public/protected signatures. + +See [namespace compatibility](NAMESPACE-COMPATIBILITY.md) for the relinking +contract, compiler exports, reflective crafting factory bridges and acceptance +consumer compiled against the original published library. + +| Component | Pinned version | +| --- | --- | +| Minecraft / compile Forge | 1.12.2 / 14.23.5.2847 | +| Compatibility runtime Forge | 14.23.5.2859 | +| Mappings | stable_39 for 1.12 | +| ForgeGradle / Renamer | 7.0.34 / 1.1.5 | +| Gradle wrapper | 9.6.1, distribution SHA-256 pinned | +| Gradle JVM | Temurin 17.0.1+12 | +| Mavenizer JVM | Temurin 25.0.3+9 | +| Compiler, Javadoc, tests and Minecraft JVM | Temurin 8.0.502+7 | + +The historical gameplay coremod classes remain dormant. The release manifest's +`FMLCorePlugin` points only to +`zone.moddev.mc.mmdlib.compat.LegacyNamespaceBootstrap`; it installs the API +namespace translator before dependent mods link. Optional integrations remain +compile-only and are not embedded or required in a standalone runtime. The +VeinMiner API source already owned by this upstream tree is retained. + +## Dependency recovery + +`gradle/legacy-dependencies.json` records the 13 optional compile APIs and four +acceptance fixtures with exact versions, download URLs and SHA-256 checksums. +The staging helper verifies original bytes before placing them in an isolated +Maven mirror. Renamer maps those original jars for compilation; runtime tests +use the originals. Dependency declarations do not resolve transitive artifacts +from retired repositories. + +The IC2 compile fixture is the original full `2.8.73-ex112` jar from the official +IC2 Maven repository. It replaces the missing historical API-only download +without enabling IC2 at runtime. Base Metals `2.6.0.112021`, OreSpawn +`4.1.0.112021`, published MMDLib `1.0.0-rc2.36`, and CoFHWorld `1.4.0.1` are +qualification fixtures only. No Base Metals checkout or dependency declaration +is changed by this migration. + +## Release artifacts and gates + +The build emits four deterministic artifacts: + +- `MMDLib-1.0.0.112021.jar`: production classes remapped to SRG names. +- `MMDLib-1.0.0.112021-deobf.jar`: mapped development classes. +- `MMDLib-1.0.0.112021-sources.jar`: library source. +- `MMDLib-1.0.0.112021-javadoc.jar`: Java 8 Javadoc. + +Main and development jars include old compiler API exports and the exact alias +inventory. Sources and Javadocs describe the canonical implementation. +`build/release/SHA256SUMS` covers all four. Audits require Java 8 bytecode, +consistent manifests and `mcmod.info`, the chosen Maven coordinate, the Forge +2847 compile target, no optional dependency or probe classes, and no local paths +or volatile timestamps in archive text. Archive entry order and line endings +are normalized. API documentation was reviewed alongside the comments, including +parameter names, implementation notes and references to moved classes. + +CI validates wrapper integrity, a cold Forge bootstrap and offline rebuild, +existing tests, dependency/resource/source/artifact audits, reproducibility, +Eclipse launches and packaged-server profiles. CodeQL uses explicit uncached +compilation. Action references are pinned to complete commit hashes. + +The manual release workflow checks the exact branch commit's required checks, +validates the version and any existing tag, then prepares an immutable audited +bundle. Publication needs explicit manual confirmation in the upstream +repository, Maven credentials and a CurseForge token. It uploads that bundle +to Maven and CurseForge project `261744`, then creates the GitHub Release. +A pushed tag does not publish by itself. This local receipt does not establish +hosted CI, CodeQL analysis or publication results; GitHub reports those for the +commit checked by each workflow. + +## Runtime qualification + +Packaged server probes create and reload disposable worlds with a 240-second +bound per phase. The library is checked on both Forge 2847 and 2859; integration profiles +use Forge 2859. Client probes use the production Forge 2859 launcher and the +audited SRG candidate, create an integrated world, verify loaded mod IDs and +the library version, save the world and exit within four minutes. Every profile +also runs a consumer compiled independently against old published MMDLib and +requires a passing legacy API marker. Shared enums and singletons, subclassing, +interfaces, lambdas, old plugin annotations, event callbacks and reflection-based +condition factory construction are exercised. + +| Profile | Composition | +| --- | --- | +| Library | MMDLib alone | +| Base Metals | MMDLib, Base Metals and OreSpawn | +| Tinkers | Base Metals profile, Mantle, Tinkers' Construct, Construct's Armory | +| Machines | Base Metals profile, Mekanism, Tesla, Redstone Flux, CoFHCore, CoFHWorld, CraftTweaker | +| IC2 | Standalone library with IC2; client also has JEI and Hwyla | +| Thaumcraft | Base Metals profile, Thaumcraft and Baubles | +| Combined client integrations | All recovered APIs except IC2, plus Base Metals/OreSpawn/CoFHWorld | + +IC2 `2.8.73-ex112` combined with the full Machines stack fails during +initialization with a bronze-recipe conflict involving `OreDict:ingotBronze` +and `ic2:dust#bronze`. The identical full stack fails with the original published +MMDLib `1.0.0-rc2.36`, establishing that this predates the build migration. +IC2 is qualified separately. This migration intentionally preserves the +existing integration behavior. + +The production client launcher also avoids the MCP development environment's +access-transformer seam with the packaged OreSpawn fixture. See +[`gradle/README.md`](../gradle/README.md) for repeatable commands and required +runtime, client assets and toolchain inputs. + +## Local qualification receipt + +Qualified locally on Windows on 2 October 2026 with the pinned toolchains. + +| Gate | Result | +| --- | --- | +| JSON parsing, `processResources`, `compileJava` | Pass | +| Existing and namespace tests, `check`, `build`, Javadoc | Pass; 39 tests, zero failures, errors or skips | +| Dependency, source compatibility, 500-class legacy ABI and release artifact audits | Pass | +| Old source/compiler compatibility | Pass against both the historical published library and new compiler exports | +| Eclipse generation and production classpath isolation | Pass | +| Maven POM generation and prepared-bundle checksum verification | Pass | +| Independent empty Gradle/project cache build, uncached tasks | Pass before the documentation review; 5 minutes 8 seconds including wrapper startup | +| Cold-cache candidate rebuilt offline without build cache | Pass before the documentation review; all four checksums matched the cold and workspace builds | +| Final clean offline builds after the comment review | Pass; checks, artifacts and Eclipse setup rerun | +| Final reproducibility | All four SHA-256 sums identical across two clean builds | +| Dedicated-server fresh/reload worlds | Pass for Library (2847), LibraryCompat (2859), Base Metals, Tinkers, Machines, IC2 and Thaumcraft | +| Production client integrated worlds on Forge 2859 | Pass for Library, Base Metals, combined integrations without IC2, and IC2 | +| Legacy binary runtime compatibility | Pass in every client/server profile, including singleton/enum identity and old plugin/event callbacks | +| Workflow lint and shell syntax | Pass for all five workflows and shell helpers | +| Comment review | Identical executable tokens in 438 Java files; identical bytecode in all 1,005 packaged classes after removing debug metadata, with unchanged packaged resources | +| Hosted CI, CodeQL analysis and publication | Not established by local checks; publication requires its own manual workflow | + +The main jar used for the final packaged runtime checks is identified below; +its checksum also matches both final clean builds. +Java 8 class version 52 and SRG remapping are verified by the artifact audit. +The existing source produces optional-API deprecation warnings. Javadoc +generation completes without warnings after the documentation corrections; +the review preserves executable Java code and public API signatures. +The build also emits Gradle deprecation notices about a future Gradle 10 +migration. + +| Artifact | SHA-256 | +| --- | --- | +| Main | `CE2F6970A2AAF2A5156E2F1134A6E2C1AC1ABBB77EB35FD5FC526CB047E7E562` | +| Sources | `76A03EDCF0853BCE576CFB261BEEE542E4EFC0534E7CBC41AD0E16DAD41DEEC5` | +| Javadoc | `C76D50CB937AC037249DC71843D967C4A7B94D8223BA05A15B6775F637268265` | +| Development | `B96CCA655FAE9ABDE94EBE2B02FB2E59EE8A77345BFF548B838417AAE0044736` | + +Build artifacts are generated under `build/libs/`, with checksums in +`build/release/SHA256SUMS`. Unit test +reports are under `build/reports/tests/`; packaged acceptance markers and +disposable worlds are kept in their profile directories under `build/`. +These outputs, local assistant notes and IDE files are ignored. Test sources, +build helpers and frozen verification inputs are tracked so a fresh clone can +repeat the checks. + +The empty-cache build verified that the build-only API generator is included +in a fresh checkout. The ignore rule excludes root `/build/` output, allowing +the Java package named `build` under `src/buildSupport` to remain tracked. +The final comment review checked all 438 Java files for identical executable +tokens and refreshed only the 198 affected production-comment hashes. The +431-file production inventory, resource hashes and 500-class legacy ABI +inventory remain intact. + +The commands and prerequisites in the [build guide](../gradle/README.md) are +portable. This migration does not change the Base Metals checkout or publish +a release; merging the build changes and running the guarded release workflow +are separate steps. diff --git a/docs/NAMESPACE-COMPATIBILITY.md b/docs/NAMESPACE-COMPATIBILITY.md new file mode 100644 index 0000000..c0a0a5f --- /dev/null +++ b/docs/NAMESPACE-COMPATIBILITY.md @@ -0,0 +1,98 @@ +# MMDLib Java namespace compatibility + +The canonical implementation and public API are now in `zone.moddev.mc.mmdlib`. +The Maven coordinate is `zone.moddev.mc.mmdlib:MMDLib:1.0.0.112021`. +Existing Forge 1.12.2 mods using `com.mcmoddev.lib` can keep their compiled API +references and share the same library state with new consumers. The `mmdlib` +mod ID, registry IDs, resource IDs, configuration keys and integration IDs are +unchanged. + +## How the adapter works + +The jar manifest loads +`zone.moddev.mc.mmdlib.compat.LegacyNamespaceBootstrap` before dependent mod +classes link, following [Forge's loading-plugin contract](https://raw.githubusercontent.com/MinecraftForge/MinecraftForge/1.12.x/src/main/java/net/minecraftforge/fml/relauncher/IFMLLoadingPlugin.java). +It installs one class transformer: `LegacyNamespaceTransformer`. +An inventory of 500 exact old-to-new class names limits type remapping to the +library's historical API. The transformer rewrites consumer descriptors, +inheritance, annotations, class literals, method handles and generic signatures +to the canonical types. Old class-name string literals are also translated. +Consumer classes keep their own names, including addon classes situated under +the old package root. + +This is necessary for compatibility across enums, static fields, subclassing +and events: ordinary subclass wrappers would create different enum and event +types. Relinking gives both namespaces one `MMDLib.instance`, proxy, `Names` +enum, `IntegrationManager.INSTANCE`, event hierarchy and registry state. + +Forge harvests annotations before normal class loading. Integration discovery +therefore accepts both old and new `MMDPlugin` annotation names. Legacy plugin +callbacks run against canonical events, with no second plugin initialization. + +The historical `asm.ASMPlugin` and its gameplay transformers remain dormant. +The only active loading plugin is the namespace adapter; it does not install +the old horse-armor or fluid-behavior transformations. + +## Old source imports and resource factories + +The build generates legacy compiler API exports from the canonical class files. +The exports preserve every frozen old class, hierarchy and public/protected +member descriptor, generic signature and constant value. They are included +in the main and deobf jars, allowing an existing source dependency to retain +its `com.mcmoddev.lib` imports while adopting the new Maven coordinate. +New source should use `zone.moddev.mc.mmdlib`. + +These exports are compiler contracts. Forge relinks ordinary consumer bytecode +to the implementation before it executes. Their class, field and method +annotations cannot register a duplicate mod, configuration or event subscriber. +The compatibility inventory excludes the new adapter itself. + +Five Forge crafting factory exports additionally forward reflection-based +construction to their canonical implementation. This preserves historical +class names supplied in recipe/condition JSON, where a name arrives externally +rather than in transformed consumer bytecode. MMDLib's own resource class +pointers now use the canonical namespace. + +Compatibility is exercised in the Forge loading environment. The exports do +not provide a separate library implementation for an ordinary JVM without +Forge's adapter. Arbitrarily assembled reflection names, type-name string +switches and Java serialized-lambda metadata are outside the tested relinking +contract; new reflective metadata should use canonical names. The externally +supplied legacy recipe condition name is covered explicitly by runtime tests. +The general string/serialized-lambda restrictions are also described in +[ASM's ClassRemapper documentation](https://asm.ow2.io/javadoc/org/objectweb/asm/commons/ClassRemapper.html). + +## Build and acceptance guards + +- `gradle/verification/legacy-api-baseline.json` freezes 500 pre-relocation + class APIs. `generateLegacyApiExports` fails on any signature or hierarchy + drift and is required for normal `classes` and `processResources`. +- `verifySourceCompatibility` checks the original 431 production files after + normalizing relocation, version metadata, resource class pointers and the + two annotation-discovery queries. The baseline includes reviewed comment + corrections; executable gameplay code remains unchanged. +- `compileLegacyRuntimeTestJava` builds a consumer against the checksum-pinned + published `1.0.0-rc2.36` library, without canonical implementation output on + the compiler classpath. `compileLegacySourceTestJava` builds that same source + against the new exports. +- Unit tests check exact alias coverage, consumer remapping, addon classes, + absent duplicate runtime registration annotations and all five factory + forwarders. The bootstrap is required to install only the namespace adapter. +- Packaged client/server probes check legacy constructors, parameter and + return types, static singleton/enum identity, subclassing, interfaces, + lambdas, old plugin annotations, old event subscribers and an externally + supplied old condition-factory class name. Acceptance markers require + `legacy-api=passed` and the canonical namespace. +- The unchanged published Base Metals fixture runs alongside those consumers + and the new MMDLib jar. Optional integration profiles use original pinned + runtime jars; none is bundled in the release. + +Normal MMDLib development and Eclipse launches explicitly load the bootstrap +using `fml.coreMods.load`; production jars use the manifest. If integrating the +library as loose class directories in a separate Forge development workspace, +load the same bootstrap before legacy consumer classes. The main and deobf +jars contain its alias inventory and legacy compiler contracts. + +See the [build guide](../gradle/README.md) for commands and the +[qualification receipt](FG7-MIGRATION.md) for the release candidate's checksums +and runtime results. diff --git a/gradle.properties b/gradle.properties index 6bebee3..debd0c2 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,130 +1,31 @@ -org.gradle.daemon = false -org.gradle.jvmargs = -Xmx3G - -group = com.mcmoddev -archivesBaseName = MMDLib -name = MMDLib -description = MMDLib - -#Minumum Minecraft Version Mod will be built with -mc_version = 1.12 - -#ForgeGradle version to use (Required) -fg_version = 2.3-SNAPSHOT -#version of Minecraft Forge is built against (Required) -forge_mc_version = 1.12.2 -#Forge version to use (Required) -forge_version = 14.23.5.2847 -#Mappings version to use (Required) -mcp_mappings_version = stable_39 - -#Cursforge Project ID (Required) -curseforge_project_id = 261744 -#Type of Release, can be one of 'alpha', 'beta' or 'release' (Defaults to 'alpha' if not set) -curseforge_release_type = beta -#When using a ChangeLog file specifies filename -curseforge_changelog_filename = CHANGELOG.txt -#Changelog type, can be one of 'text', 'html' or 'markdown' (Defaults to 'text' if not set) -#curseforge_changelog_type = text -#Version(s) of Minecraft this mod will work on (comma separated list) -#curseforge_versions = 1.12.2 -#Whether to use a custom display name on artifacts -curseforge_use_custom_display_name = true -#List of required dependencies (comma separated list) -#curseforge_requirements = -#List of optional dependencies (comma separated list) -curseforge_optionals = mmd-orespawn, additional-loot-tables -#List of embedded dependencies (comma separated list) -#curseforge_embeddeds = -#List of compatible tools (comma separated list) -#curseforge_tools = -#List of incompatible dependencies (comma separated list) -#curseforge_incompatibles = -#List of included dependencies (comma separated list) -#curseforge_includes = - -#String reference to Core Plugin this mod contains, if any -#core_plugin = com.mcmoddev.lib.asm.ASMPlugin -#Whether or not to use Access Transformers from depended mods -dep_has_ats = false -#File name of this mod's Access Transformers (If any) -#mod_at_file = _at.cfg - -#Whether the artifacts should be signed -do_sign_jar = true - -#Create a source jar? -create_source_jar = true -#Create an API jar? -create_api_jar = false -#Create a deobf jar? -create_deobf_jar = true -#Create a javadoc jar? -create_javadoc_jar = true - -#The following four options are optional and do not affect your build in any way -#They are only for convenience when using the 'runClient' and 'runServer' tasks -#Whether to Disable server gui -#mc_server_nogui = true -#Whether to Skip the screen to confirm that you want to load a world with missing registry entries -#forge_do_not_backup = true -#Whether to skip having to confirm on server -#forge_query_result_confirm = true -#Whether to Skip jansi warnings in the log -#log4j_skip_jansi = true - -# Optional convenience setter for game resolution one of '480p', '576p', '720p', '1080p' or 'custom' -#mc_resolution = 1080p -#the following two will only be used when mc_resolution = custom -#mc_custom_resolution_width = 1920 -#mc_custom_resolution_height = 1080 -#mc_fullscreen = true - -#Additional arguments to pass to minecraft.clientJvmArgs -#client_jvm_args = -#Additional arguments to pass to minecraft.serverJvmArgs -#client_game_args = -#Additional arguments to pass to minecraft.clientRunArgs -#server_jvm_args = -#Additional arguments to pass to minecraft.serverRunArgs -#server_game_args = - -##The following three options should *NEVER* be set in this file, it's a security risk, Be safe, keep your account information private. -##These properties here are for reference only and explanation of what they do -##Your Minecraft account username (Consistent player name for singleplayer worlds) -##mc_username = -##Your Minecraft account password (Allows online play while present with associated username) -##mc_password = -##Your Minecraft account uuid (Allows using your skin while testing, This can be with or without hyphens) -##mc_uuid = - -ccl_version=3.2.2.+ -ccc_version=2.4.1.+ -nei_version=2.4.2.+ -jei_version=4.12.0.+ -mantle_version=1.3.2.+ -tconstruct_version=2.10.1.+ -conarm_version=1.1.2 -baubles_version=1.5.2+ -thaumcraft_version=6.1.BETA+ -mcmp_version=2.3.3 -mcmp_experimental_version=2.0.1_31 -top_version=1.4.18-10 -alt_version=2.0.3.42+ -orespawn_version=3.2.+ -tesla_version=1.0.63 -cofhcore_version=4.3.6.+ -mekanism_version=9efd716ea0 -ic2_version=2.8.73-ex112 -minetweaker_version=3.+ -mtlib_version=3.+ -ct_version=4.1.9.+ -ct_api_version=4.1.9.+ -hwyla_version=1.8.23-B38_1.12 -veinminer_version=1.12-0.38.2.647+b31535a -endercore_version=+ -enderio_version=+ -cofhworld_version=1.0.+ -thermal_foundation_version=+ -thermal_expansion_version=+ -top_mc_version = 1.1x \ No newline at end of file +org.gradle.daemon=false +org.gradle.jvmargs=-Xmx4G +org.gradle.configuration-cache=false +org.gradle.caching=true +org.gradle.parallel=false +net.minecraftforge.gradle.merge-source-sets=false + +mod_group=zone.moddev.mc.mmdlib +mod_version=1.0.0.112021 +minecraft_version=1.12.2 +loader_name=forge +loader_code=1 +java_version=8 +java_toolchain_version=8.0.502+7 +java_setup_version=8.0.502+7 +gradle_java_version=17 +mavenizer_java_version=25.0.3+9 +forge_version=14.23.5.2847 +mappings_channel=stable +mappings_version=39-1.12 +curseforge_project_id=261744 +cf_project_id=261744 +cf_release_type=beta +cf_changelog_filename=CHANGELOG.txt +cf_changelog_type=text +cf_versions=1.12.2 +cf_requirements= +cf_optionals=mmd-orespawn,additional-loot-tables +forge_installer_sha256=3A74473FC62DCF13BAA4130E6EA31A80C6A872B6B25F1A4C9195C8E878415BD0 +forge_compat_version=14.23.5.2859 +forge_compat_installer_sha256=DBBA1CD1BF34A4B82148BAC50A6150F63FFCB2D5DC7D88A0508C27FDCFF15B76 diff --git a/gradle/README.md b/gradle/README.md new file mode 100644 index 0000000..2e8403f --- /dev/null +++ b/gradle/README.md @@ -0,0 +1,123 @@ +# MMDLib build scripts + +The root build owns identity, toolchains, Forge mappings, development launches, +resource processing and archive creation. Supporting scripts are grouped by +purpose: + +- `dependencies.gradle` defines mapped compile-only APIs and original fixture + artifacts from `legacy-dependencies.json`. +- `stage-legacy-dependencies.py` stages checksum-verified originals for local + and hosted builds; the shell wrapper is used by GitHub Actions. +- `compatibility.gradle` generates compiler exports for the old Java namespace + and verifies them against `verification/legacy-api-baseline.json`. +- `verification/support.gradle` checks toolchains, target metadata, + dependencies, JSON resources and the production source baseline. +- `verification/runtime.gradle` builds test-only probes and runs bounded + packaged-server and opt-in client acceptance. +- `release/artifacts.gradle` audits jar identity, Java 8 bytecode, + reobfuscation, package isolation and deterministic checksums. +- `release/publishing.gradle` publishes audited or prepared artifacts using + explicitly supplied Maven credentials. +- `ide/eclipse.gradle` configures Buildship, quotes paths containing spaces, + and excludes optional APIs and test code from normal launches. +- `verification/workflows.gradle` checks action pinning and required CI/release + gates. + +Shared script contracts use small immutable maps. Keep task names stable +because the workflows call them directly. + +## Packaged server acceptance + +Prepare empty runtime directories using Java 8: + +```text +bash gradle/prepare-packaged-forge-runtime.sh /runtime/forge2847 /java8/bin/java +bash gradle/prepare-packaged-forge-runtime.sh /runtime/forge2859 /java8/bin/java compat +./gradlew packagedForgeRuntimeTest -PpackagedForgeRuntimeRoot=/runtime/forge2847 -PpackagedForgeCompatRuntimeRoot=/runtime/forge2859 -PlegacyDependencyVerificationRepository=/dependency-mirror +``` + +Each profile has a fresh and reload phase, a 240-second process limit, a saved +world and an explicit acceptance marker. Each marker also requires +`legacy-api=passed` and `canonical-namespace=zone.moddev.mc.mmdlib`. +Profiles cover the standalone library +on both Forge 2847 and Forge 2859, +Base Metals/OreSpawn, Tinkers/Construct's Armory, Mekanism/Tesla/CoFH/CraftTweaker, +standalone IC2, and Thaumcraft/Baubles. Worlds live under `build/`. + +IC2 is qualified separately: combining IC2 2.8.73 with the full machine stack +causes a bronze-recipe conflict with both the historical published MMDLib and +this candidate. This migration preserves that existing behavior. + +## Packaged client acceptance + +First build and audit the Forge 2847 candidate. On a machine with a graphics +display, launch these profiles sequentially; Linux CI can use `xvfb-run`: + +```text +./gradlew runClient -PmmdLibClientSmoke=Library -PmmdLibRunDirectory=build/client-library-run -PpackagedForgeCompatRuntimeRoot=/runtime/forge2859 -PpackagedClientAssetsRoot=/minecraft/assets -PlegacyDependencyVerificationRepository=/dependency-mirror +./gradlew runClient -PmmdLibClientSmoke=BaseMetals -PmmdLibRunDirectory=build/client-basemetals-run -PpackagedForgeCompatRuntimeRoot=/runtime/forge2859 -PpackagedClientAssetsRoot=/minecraft/assets -PlegacyDependencyVerificationRepository=/dependency-mirror +./gradlew runClient -PmmdLibClientSmoke=Integrations -PmmdLibRunDirectory=build/client-integrations-run -PpackagedForgeCompatRuntimeRoot=/runtime/forge2859 -PpackagedClientAssetsRoot=/minecraft/assets -PlegacyDependencyVerificationRepository=/dependency-mirror +./gradlew runClient -PmmdLibClientSmoke=IC2 -PmmdLibRunDirectory=build/client-ic2-run -PpackagedForgeCompatRuntimeRoot=/runtime/forge2859 -PpackagedClientAssetsRoot=/minecraft/assets -PlegacyDependencyVerificationRepository=/dependency-mirror +``` + +Smoke launches use the already audited main jar, exclude IDE production output, +load the specified optional original jars, create an integrated world, write +`mmdlib-client-probe.properties`, and exit. The client process has a four-minute +limit. A successful Gradle exit must be accompanied by the marker and a saved +`saves/mmdlib-smoke/level.dat` before calling acceptance complete. Use distinct +run directories to avoid retaining mods from another profile. + +These opt-in launches use production Forge 2859, vanilla Minecraft classes, +and the original SRG integration jars, including their access transformers. +They keep the candidate's compile target pinned to Forge 2847. Assets must +already include the Minecraft `1.12` index and its objects. The vanilla client +defaults to Mavenizer's downloaded `minecraft_tasks/1.12.2/client.jar` in the +selected Gradle cache; override it with `-PpackagedClientVanillaJar=/path/client.jar` +when using another launcher cache. Native libraries come from the resolved +Forge client dependency classpath and are extracted into the disposable run. + +## Production baseline + +`verification/source-baseline.json` preserves the upstream production inventory +at `30b73053366f8bd1ba6599c35081f4aa26afc06e`, normalizing text line endings and +the package relocation, entry point version constant, resource class pointers, +and two integration annotation queries that now accept both namespaces. +Its Java hashes also include the reviewed comment and Javadoc corrections. +Those edits were checked to retain exactly the same executable Java tokens; +the production inventory and resource hashes were preserved. Normal builds +compare complete normalized file hashes, including comments, to catch further +accidental implementation and resource changes. +`verification/legacy-api-baseline.json` separately freezes every old class, +superclass, interface, public/protected descriptor, generic signature and +constant value. An intentional +future gameplay change must update the baseline and its own regression tests; +do not silently weaken this guard. + +## Java namespace compatibility + +Production Java sources are under `src/main/java/zone/moddev/mc/mmdlib`. +`generateLegacyApiExports` builds old compiler signatures and an exact alias +inventory from those classes. API generation is a dependency of `classes` and +`processResources`, so jars and Eclipse development output receive the same +exports and alias resource. The generator in `src/buildSupport` is never +included in release jars. + +`compileLegacyRuntimeTestJava` compiles the acceptance consumer against the +checksum-pinned historical `1.0.0-rc2.36` jar, without new implementation output +on its compiler classpath. `compileLegacySourceTestJava` compiles that same +source against the new exports. Packaged runtime probes prove that the old +compiled consumer links to the canonical implementation. + +The frozen legacy API baseline was captured from the audited pre-relocation +deobf candidate. Only a deliberate API inventory update should use +`captureLegacyApiBaseline -PlegacyApiBaselineJar=/verified/old-deobf.jar`; +normal builds must never recapture their own baseline. + +Normal development/Eclipse launches explicitly load +`zone.moddev.mc.mmdlib.compat.LegacyNamespaceBootstrap` using +`fml.coreMods.load`, since their merged output directory has no jar manifest. +Eclipse launches also include the generated legacy class and alias resource +directories, exclude build-only/test output, and show the legacy fixture source +folder once despite its two Gradle compiler acceptance tasks. +Production launches load it from the release manifest. Details are in +[`docs/NAMESPACE-COMPATIBILITY.md`](../docs/NAMESPACE-COMPATIBILITY.md). diff --git a/gradle/compatibility.gradle b/gradle/compatibility.gradle new file mode 100644 index 0000000..197ba51 --- /dev/null +++ b/gradle/compatibility.gradle @@ -0,0 +1,60 @@ +// Generate old compiler signatures from the single canonical implementation. +// A Forge loading adapter relinks consumer bytecode to the canonical classes. +sourceSets { + buildSupport { + compileClasspath = configurations.compileClasspath + runtimeClasspath = output + compileClasspath + } +} +def java8 = javaToolchains.launcherFor { + languageVersion = JavaLanguageVersion.of(8) + vendor = JvmVendorSpec.ADOPTIUM +} +def exports = layout.buildDirectory.dir('generated/legacy-api/classes') +def aliasResources = layout.buildDirectory.dir('generated/legacy-api/resources') + +tasks.register('captureLegacyApiBaseline', JavaExec) { + group = 'verification' + description = 'Explicit maintainer command to freeze a verified pre-migration API jar.' + dependsOn 'buildSupportClasses' + javaLauncher = java8 + classpath = sourceSets.buildSupport.runtimeClasspath + mainClass = 'zone.moddev.mc.mmdlib.build.LegacyApiTool' + doFirst { + if (!providers.gradleProperty('legacyApiBaselineJar').isPresent()) { + throw new GradleException('legacyApiBaselineJar is required; this task is never part of a normal build') + } + args 'capture', file(providers.gradleProperty('legacyApiBaselineJar').get()).absolutePath, + file('gradle/verification/legacy-api-baseline.json').absolutePath + } +} + +def generateExports = tasks.register('generateLegacyApiExports', JavaExec) { + group = 'build' + description = 'Preserves every legacy class and public/protected descriptor without copying implementation state.' + dependsOn 'compileJava', 'buildSupportClasses' + javaLauncher = java8 + classpath = sourceSets.buildSupport.runtimeClasspath + mainClass = 'zone.moddev.mc.mmdlib.build.LegacyApiTool' + inputs.files(tasks.named('compileJava').flatMap { it.destinationDirectory }) + inputs.file('gradle/verification/legacy-api-baseline.json') + outputs.dirs(exports, aliasResources) + doFirst { + [exports, aliasResources].each { location -> + File target = location.get().asFile.canonicalFile + if (!target.toPath().startsWith(layout.buildDirectory.get().asFile.canonicalFile.toPath())) { + throw new GradleException('Legacy API generation must remain inside the build directory') + } + project.delete(target) + } + setArgs(['generate', tasks.named('compileJava').get().destinationDirectory.get().asFile.absolutePath, + exports.get().asFile.absolutePath, aliasResources.get().asFile.absolutePath, + file('gradle/verification/legacy-api-baseline.json').absolutePath]) + } +} +sourceSets.main.output.dir([builtBy: generateExports], exports) +tasks.named('classes') { dependsOn generateExports } +tasks.named('processResources') { + dependsOn generateExports + from aliasResources +} diff --git a/gradle/dependencies.gradle b/gradle/dependencies.gradle new file mode 100644 index 0000000..d4e22ec --- /dev/null +++ b/gradle/dependencies.gradle @@ -0,0 +1,27 @@ +import groovy.json.JsonSlurper + +// Original artifacts are verified before remapping; optional APIs stay compile-only. +def specs = new JsonSlurper().parse(file('gradle/legacy-dependencies.json')) + .collectEntries { [(it.name): it] } +configurations { + legacyDependencyArtifacts { + canBeConsumed = false + canBeResolved = true + transitive = false + } +} +dependencies { + implementation minecraft.dependency("net.minecraftforge:forge:${project.minecraft_version}-${project.forge_version}") + compileOnly 'org.lwjgl.lwjgl:lwjgl_util:2.9.4-nightly-20150209' + specs.each { name, spec -> + legacyDependencyArtifacts spec.coordinate + if (spec.compile) { + compileOnly renamer.dependency(spec.coordinate) + } + } + testImplementation 'org.junit.jupiter:junit-jupiter-api:5.10.2' + testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.10.2' + testRuntimeOnly 'org.junit.platform:junit-platform-launcher:1.10.2' + testImplementation 'org.mockito:mockito-core:2.28.2' +} +ext.mmdLibDependencies = [specs: specs].asImmutable() diff --git a/gradle/ide/eclipse.gradle b/gradle/ide/eclipse.gradle new file mode 100644 index 0000000..f8fd31d --- /dev/null +++ b/gradle/ide/eclipse.gradle @@ -0,0 +1,279 @@ +// Eclipse support repairs ForgeGradle's generated launches without changing product dependencies. +idea { + module { + downloadSources = true + downloadJavadoc = true + } +} + +def eclipseXmlEscape = { String value -> + value.replace('&', '&') + .replace('"', '"') + .replace('<', '<') + .replace('>', '>') +} + +def eclipseArchiveLaunchEntry = { File archive -> + String memento = '' \ + + '' + ' ' +} + +def replaceBuildshipLaunchClasspath = { String contents, Collection archives -> + List lines = contents.replace('\r\n', '\n').split('\n', -1) as List + List buildshipLines = (0.. uniqueArchives = archives.collect { it.canonicalFile } + .unique { File archive -> archive.path.toLowerCase(Locale.ROOT) } + List missingArchives = uniqueArchives.findAll { !it.isFile() && !it.isDirectory() } + if (!missingArchives.isEmpty()) { + throw new GradleException("Eclipse launch archives are missing: ${missingArchives}") + } + lines[buildshipLines[0]] = uniqueArchives.collect(eclipseArchiveLaunchEntry).join('\n') + lines.join('\n') +} + +eclipse { + project { + buildCommand 'org.eclipse.buildship.core.gradleprojectbuilder' + natures 'org.eclipse.buildship.core.gradleprojectnature' + } + classpath { + downloadSources = true + downloadJavadoc = true + file.withXml { provider -> + Node classpath = provider.asNode() + classpath.classpathentry.findAll { it.@kind == 'lib' }.each { + classpath.remove(it) + } + // The same legacy fixture is compiled against two APIs by Gradle; + // Eclipse must expose its source folder only once. + classpath.classpathentry.findAll { it.@output == 'bin/legacySourceTest' }.each { + classpath.remove(it) + } + classpath.classpathentry.findAll { it.@path == 'src/buildSupport/java' }.each { entry -> + entry.attributes[0].appendNode('attribute', [name: 'test', value: 'true']) + } + if (!classpath.classpathentry.any { + it.@kind == 'con' && it.@path == 'org.eclipse.buildship.core.gradleclasspathcontainer' + }) { + classpath.appendNode('classpathentry', [ + kind: 'con', path: 'org.eclipse.buildship.core.gradleclasspathcontainer' + ]) + } + } + } + synchronizationTasks 'genEclipseRuns' +} + +def configureEclipseBuildship = tasks.register('configureEclipseBuildship') { + group = 'ide' + description = 'Configures Buildship to use the wrapper and this invocation\'s Gradle cache.' + doLast { + File preferencesFile = file('.settings/org.eclipse.buildship.core.prefs') + Properties preferences = new Properties() + if (preferencesFile.isFile()) { + preferencesFile.withInputStream { preferences.load(it) } + } + Map required = [ + 'eclipse.preferences.version' : '1', + 'connection.gradle.distribution' : 'GRADLE_DISTRIBUTION(WRAPPER)', + 'connection.gradle.user.home' : gradle.gradleUserHomeDir.canonicalPath, + 'connection.project.dir' : '', + 'gradle.user.home' : gradle.gradleUserHomeDir.canonicalPath, + 'override.workspace.settings' : 'true' + ] + required.each { key, value -> preferences.setProperty(key, value) } + preferencesFile.parentFile.mkdirs() + preferencesFile.withOutputStream { + preferences.store(it, 'Generated by configureEclipseBuildship.') + } + } +} + +tasks.named('genEclipseRuns') { + dependsOn 'generateLegacyApiExports' + finalizedBy configureEclipseBuildship, 'isolateEclipseProductionRuns' +} + +tasks.named('eclipse') { + dependsOn tasks.named('genEclipseRuns') +} + +tasks.register('isolateEclipseProductionRuns') { + group = 'ide' + description = 'Repairs Forge 1.12 launches and replaces compile-only Buildship entries with runtime jars.' + doLast { + List runtimeArchives = configurations.runtimeClasspath.files as List + // Loose Eclipse output has no packaged alias resource or generated + // legacy classes. Supply the same generated exports used by the jars. + runtimeArchives.add(layout.buildDirectory.dir('generated/legacy-api/classes').get().asFile) + runtimeArchives.add(layout.buildDirectory.dir('generated/legacy-api/resources').get().asFile) + ['MMDLib_Client.launch', 'MMDLib_Server.launch'].each { name -> + File legacy = file(name) + if (legacy.isFile() && legacy.getText('UTF-8').contains('MAIN_TYPE" value="GradleStart')) { + if (!legacy.delete()) { + throw new GradleException("Could not retire obsolete ForgeGradle 2 launch ${name}") + } + } + } + ['runClient.launch', 'runServer.launch'].each { name -> + File launch = file(name) + if (!launch.isFile()) { + throw new GradleException("ForgeGradle did not generate ${name}") + } + String contents = launch.getText('UTF-8') + def programArguments = contents =~ /()/ + if (programArguments.count != 1) { + throw new GradleException("ForgeGradle generated malformed program arguments in ${name}") + } + String arguments = programArguments[0][2] + ['cache', 'metadata', 'to-srg', 'to-obf'].each { flag -> + String prefix = "--${flag} " + int valueStart = arguments.indexOf(prefix) + if (valueStart < 0) { + throw new GradleException("ForgeGradle omitted --${flag} from ${name}") + } + valueStart += prefix.length() + int valueEnd = arguments.indexOf(' --', valueStart) + if (valueEnd < 0) { + throw new GradleException("ForgeGradle generated an unterminated --${flag} path in ${name}") + } + String value = arguments.substring(valueStart, valueEnd) + if (!value.startsWith('"') || !value.endsWith('"')) { + arguments = "${arguments.substring(0, valueStart)}"${value}"${arguments.substring(valueEnd)}" + } + } + contents = contents.replace(programArguments[0][0], + programArguments[0][1] + arguments + programArguments[0][3]) + if (!contents.contains('org.eclipse.jdt.launching.ATTR_EXCLUDE_TEST_CODE')) { + contents = contents.replace('', + ' ' + + System.lineSeparator() + '') + } + String eclipseModClasses = file('bin/main').absolutePath + if (contents.contains('key="MOD_CLASSES"')) { + contents = contents.replaceAll(//, + java.util.regex.Matcher.quoteReplacement( + "")) + } + contents = contents.replaceAll(//, + '') + contents = replaceBuildshipLaunchClasspath(contents, runtimeArchives) + launch.setText(contents.replace('\r\n', '\n'), 'UTF-8') + } + } +} + +tasks.register('verifyEclipseProductionClasspath') { + group = 'verification' + description = 'Verifies Java 8, launcher identity, path quoting, merged output, and test isolation.' + dependsOn tasks.named('genEclipseRuns') + doLast { + File prefs = file('.settings/org.eclipse.buildship.core.prefs') + if (!prefs.isFile()) { + throw new GradleException("Missing Eclipse Buildship configuration: ${prefs}") + } + Properties buildship = new Properties() + prefs.withInputStream { buildship.load(it) } + if (buildship.getProperty('connection.gradle.distribution') != 'GRADLE_DISTRIBUTION(WRAPPER)' + || file(buildship.getProperty('connection.gradle.user.home')).canonicalFile + != gradle.gradleUserHomeDir.canonicalFile) { + throw new GradleException('Buildship does not use the wrapper and selected Gradle cache') + } + String projectMetadata = file('.project').getText('UTF-8') + if (!projectMetadata.contains('org.eclipse.buildship.core.gradleprojectnature') + || !projectMetadata.contains('org.eclipse.buildship.core.gradleprojectbuilder')) { + throw new GradleException('Eclipse project metadata is missing Buildship integration') + } + String eclipseClasspath = file('.classpath').getText('UTF-8').replace('\\', '/') + if (!eclipseClasspath.contains('org.eclipse.buildship.core.gradleclasspathcontainer') + || eclipseClasspath.contains(']+path="[A-Za-z]:[\\\/].*/) { + throw new GradleException('Eclipse must expose dependencies through the Buildship container only') + } + def classpathXml = new groovy.xml.XmlParser().parse(file('.classpath')) + List sourcePaths = classpathXml.classpathentry.findAll { it.@kind == 'src' }.collect { it.@path.toString() } + if (sourcePaths.size() != sourcePaths.toSet().size()) { + throw new GradleException('Eclipse has duplicate source folders') + } + def buildSupport = classpathXml.classpathentry.find { it.@path == 'src/buildSupport/java' } + if (!buildSupport || !buildSupport.attributes.attribute.any { it.@name == 'test' && it.@value == 'true' }) { + throw new GradleException('Eclipse must exclude build-only tools from production launches') + } + List runtimeArchives = configurations.runtimeClasspath.files.collect { + it.canonicalFile + } + runtimeArchives.add(layout.buildDirectory.dir('generated/legacy-api/classes').get().asFile.canonicalFile) + runtimeArchives.add(layout.buildDirectory.dir('generated/legacy-api/resources').get().asFile.canonicalFile) + Set compileOnlyArchives = configurations.compileClasspath.files.collect { + it.canonicalFile + } as Set + compileOnlyArchives.removeAll(runtimeArchives) + ['runClient.launch', 'runServer.launch'].each { name -> + File launch = file(name) + String contents = launch.getText('UTF-8').replace('\\', '/') + List forbidden = [ + 'src/test', 'bin/test', 'build/classes/java/test', 'bin/buildSupport', + 'bin/runtimeTest', 'bin/legacyRuntimeTest', 'bin/legacySourceTest', + 'junit-', 'mockito-', 'byte-buddy', 'objenesis' + ].findAll { contents.contains(it) } + if (!forbidden.isEmpty()) { + throw new GradleException("${name} exposes test code/dependencies: ${forbidden}") + } + if (!contents.contains('MAIN_TYPE" value="net.minecraftforge.launcher.Main"') + || !contents.contains('JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-8') + || !contents.contains('ATTR_EXCLUDE_TEST_CODE') + || contents.contains('org.eclipse.buildship.core.gradleclasspathcontainer') + || !contents.contains('PROJECT_ATTR" value="MMDLib"') + || !contents.contains('-Dfml.coreMods.load=zone.moddev.mc.mmdlib.compat.LegacyNamespaceBootstrap') + || contents.contains('${MC_VERSION}') + || !contents.contains('MC_VERSION" value="1.12.2"')) { + throw new GradleException("${name} has the wrong launcher, JRE, classpath, project, or Minecraft version") + } + Set missingRuntime = runtimeArchives.findAll { + !contents.contains(it.canonicalPath.replace('\\', '/')) + } + Set leakedCompileOnly = compileOnlyArchives.findAll { + contents.contains(it.canonicalPath.replace('\\', '/')) + } + if (!missingRuntime.isEmpty() || !leakedCompileOnly.isEmpty()) { + throw new GradleException("${name} runtime isolation failed; missing=${missingRuntime}, " + + "compileOnly=${leakedCompileOnly}") + } + List runtimePositions = runtimeArchives.collect { + contents.indexOf(it.canonicalPath.replace('\\', '/')) + } + List sortedRuntimePositions = new ArrayList<>(runtimePositions) + sortedRuntimePositions.sort() + if (runtimePositions != sortedRuntimePositions) { + throw new GradleException("${name} does not preserve Gradle's order-sensitive runtime classpath") + } + String expectedModClasses = file('bin/main').absolutePath.replace('\\', '/') + if (!contents.contains('MOD_CLASSES" value="' + expectedModClasses)) { + throw new GradleException("${name} does not use Eclipse's merged production output") + } + ['cache', 'metadata', 'to-srg', 'to-obf'].each { flag -> + if (!contents.contains("--${flag} "")) { + throw new GradleException("${name} does not quote its --${flag} path") + } + } + } + } +} + +tasks.register('prepareEclipse') { + group = 'ide' + description = 'Generates Forge launches and Eclipse metadata, then verifies production isolation.' + dependsOn tasks.named('eclipse') + dependsOn tasks.named('verifyEclipseProductionClasspath') +} + +tasks.named('verifyEclipseProductionClasspath') { + mustRunAfter tasks.named('eclipse') +} diff --git a/gradle/legacy-dependencies.json b/gradle/legacy-dependencies.json new file mode 100644 index 0000000..c70e5b8 --- /dev/null +++ b/gradle/legacy-dependencies.json @@ -0,0 +1,200 @@ +[ + { + "name": "mantle", + "slug": "mantle", + "project_id": 74924, + "file_id": 2550550, + "version": "1.3.2.24", + "coordinate": "curse.maven:mantle-74924:2550550", + "url": "https://www.curseforge.com/api/v1/mods/74924/files/2550550/download", + "sha256": "7758817445D55B65581A34A906EE01155C4598FDDF06E7D72944C840A1105184", + "compile": true, + "entries": 569 + }, + { + "name": "tconstruct", + "slug": "tinkers-construct", + "project_id": 74072, + "file_id": 2571785, + "version": "2.10.1.87", + "coordinate": "curse.maven:tinkers-construct-74072:2571785", + "url": "https://www.curseforge.com/api/v1/mods/74072/files/2571785/download", + "sha256": "B1E21352C7BCEC95E33769308D9E70CC83E8F3A97C27FB94F4F0F55CE3CF96F2", + "compile": true, + "entries": 3160 + }, + { + "name": "conarm", + "slug": "constructs-armory", + "project_id": 287683, + "file_id": 2622725, + "version": "1.1.2", + "coordinate": "curse.maven:constructs-armory-287683:2622725", + "url": "https://www.curseforge.com/api/v1/mods/287683/files/2622725/download", + "sha256": "C1EB6F2BB127652D8FDEAC21FF4BF376F17804E2A5B8EDF14C7C082497AF58A1", + "compile": true, + "entries": 815 + }, + { + "name": "thaumcraft", + "slug": "thaumcraft", + "project_id": 223628, + "file_id": 2629023, + "version": "6.1.BETA26", + "coordinate": "curse.maven:thaumcraft-223628:2629023", + "url": "https://www.curseforge.com/api/v1/mods/223628/files/2629023/download", + "sha256": "9425F8643581B27FF8845B087C8BC6FC10425A32942F1A3F0E265CE6B38F7B5F", + "compile": true, + "entries": 2827 + }, + { + "name": "baubles", + "slug": "baubles", + "project_id": 227083, + "file_id": 2518667, + "version": "1.5.2", + "coordinate": "curse.maven:baubles-227083:2518667", + "url": "https://www.curseforge.com/api/v1/mods/227083/files/2518667/download", + "sha256": "B32010B2F2778AA1188585E7EAD91AD46D4CB2C715F9C778A61848BA7FE51F8D", + "compile": true, + "entries": 98 + }, + { + "name": "cofhcore", + "slug": "cofh-core", + "project_id": 69162, + "file_id": 2920433, + "version": "4.6.6.1", + "coordinate": "curse.maven:cofh-core-69162:2920433", + "url": "https://www.curseforge.com/api/v1/mods/69162/files/2920433/download", + "sha256": "E07B0C48DEF9CE8CFAA4CF7A7C656BF7F7D6815F74FBCC2957DD43EFA78486A9", + "compile": true, + "entries": 529 + }, + { + "name": "redstoneflux", + "slug": "redstone-flux", + "project_id": 270789, + "file_id": 2920436, + "version": "2.1.1.1", + "coordinate": "curse.maven:redstone-flux-270789:2920436", + "url": "https://www.curseforge.com/api/v1/mods/270789/files/2920436/download", + "sha256": "6FF7F96D076BFAAD83FB6BA92EC457B8A76391439663B0CC32A9EC5398345280", + "compile": true, + "entries": 31 + }, + { + "name": "jei", + "slug": "jei", + "project_id": 238222, + "file_id": 2724420, + "version": "4.15.0.281", + "coordinate": "curse.maven:jei-238222:2724420", + "url": "https://www.curseforge.com/api/v1/mods/238222/files/2724420/download", + "sha256": "CC01149D4D2E33EA66666A1DB7E9754E2E21852AF2409498D7A5A8081112FB91", + "compile": true, + "entries": 475 + }, + { + "name": "hwyla", + "slug": "hwyla", + "project_id": 253449, + "file_id": 2568751, + "version": "1.8.26-B41_1.12.2", + "coordinate": "curse.maven:hwyla-253449:2568751", + "url": "https://www.curseforge.com/api/v1/mods/253449/files/2568751/download", + "sha256": "E9DDECD4920EE9A57E11E4B43FB1DD395BBF37E276BE726A99A2590272304124", + "compile": true, + "entries": 201 + }, + { + "name": "tesla", + "slug": "tesla", + "project_id": 244651, + "file_id": 2487959, + "version": "1.0.63", + "coordinate": "curse.maven:tesla-244651:2487959", + "url": "https://www.curseforge.com/api/v1/mods/244651/files/2487959/download", + "sha256": "7631502A9B0E54BFDE32B0D2E7C524BAC4E51198B10F54B828288977000D9590", + "compile": true, + "entries": 43 + }, + { + "name": "mekanism", + "slug": "mekanism", + "project_id": 268560, + "file_id": 2835175, + "version": "9.8.3.390", + "coordinate": "curse.maven:mekanism-268560:2835175", + "url": "https://www.curseforge.com/api/v1/mods/268560/files/2835175/download", + "sha256": "17573E0C3B2FF9D071A719A06A84C8CD89CA26D1EA3BD7F6E9F3842C4DF88EA1", + "compile": true, + "entries": 3265 + }, + { + "name": "crafttweaker", + "slug": "crafttweaker", + "project_id": 239197, + "file_id": 2576160, + "version": "4.1.9", + "coordinate": "curse.maven:crafttweaker-239197:2576160", + "url": "https://www.curseforge.com/api/v1/mods/239197/files/2576160/download", + "sha256": "52100CC5E0FE256E2F4A26EDA4ABD9EE46E16FD8B2C862138E9DDA70CA913ECF", + "compile": true, + "entries": 1045 + }, + { + "name": "legacy_mmdlib", + "slug": "mmdlib", + "project_id": 261744, + "file_id": 2712947, + "version": "1.0.0-rc2.36", + "coordinate": "curse.maven:mmdlib-261744:2712947", + "url": "https://www.curseforge.com/api/v1/mods/261744/files/2712947/download", + "sha256": "FE2229E6755A5FD306C33CC22DCCF055378D371339133E4912C5DC9213E360AF", + "compile": false, + "entries": 577 + }, + { + "name": "basemetals", + "slug": "base-metals", + "project_id": 240967, + "version": "2.6.0.112021", + "coordinate": "zone.moddev.mc.basemetals:BaseMetals:2.6.0.112021", + "url": "https://github.com/MinecraftModDevelopmentMods/BaseMetals/releases/download/2.6.0.112021/BaseMetals-2.6.0.112021.jar", + "sha256": "2C79EC02B754F4748471B646441C236E995619C53D9670C999BDBBB39875A820", + "compile": false + }, + { + "name": "orespawn4", + "slug": "mmd-orespawn", + "project_id": 245586, + "file_id": 9008120, + "version": "4.1.0.112021", + "coordinate": "curse.maven:mmd-orespawn-245586:9008120", + "url": "https://www.curseforge.com/api/v1/mods/245586/files/9008120/download", + "sha256": "B3018214BD1A612309A78DF02C552C0948A8FCD3CF314F25D40071E8B4605670", + "compile": false, + "entries": 422 + }, + { + "name": "cofhworld", + "slug": "cofh-world", + "project_id": 271384, + "file_id": 2920434, + "version": "1.4.0.1", + "coordinate": "curse.maven:cofh-world-271384:2920434", + "url": "https://www.curseforge.com/api/v1/mods/271384/files/2920434/download", + "sha256": "F10CD57075690ECBE52094F8AF0D2A5AF12F89C82B7C6EB73D3D090D74206EA0", + "compile": false, + "entries": 335 + }, + { + "name": "ic2", + "version": "2.8.73-ex112", + "coordinate": "net.industrial-craft:industrialcraft-2:2.8.73-ex112", + "url": "https://maven.ic2.player.to/net/industrial-craft/industrialcraft-2/2.8.73-ex112/industrialcraft-2-2.8.73-ex112.jar", + "sha256": "73E728CD3E6D1BE5FACEFBCADEACCAABA54C50B3EA506EB9441F1E6BAD8CDA73", + "compile": true + } +] diff --git a/gradle/prepare-packaged-forge-runtime.sh b/gradle/prepare-packaged-forge-runtime.sh new file mode 100644 index 0000000..9559ffb --- /dev/null +++ b/gradle/prepare-packaged-forge-runtime.sh @@ -0,0 +1,49 @@ +#!/usr/bin/env bash +set -euo pipefail + +if [[ $# -lt 2 || $# -gt 3 ]]; then + echo "usage: $0 [compat]" >&2 + exit 2 +fi + +runtime="$1" +java8="$2" +version="$(sed -n 's/^minecraft_version=//p' gradle.properties | tr -d '\r')-$(sed -n 's/^forge_version=//p' gradle.properties | tr -d '\r')" +installer="${runtime}/forge-${version}-installer.jar" +expected="$(sed -n 's/^forge_installer_sha256=//p' gradle.properties | tr -d '\r')" +if [[ "${3:-}" == compat ]]; then + version="1.12.2-$(sed -n 's/^forge_compat_version=//p' gradle.properties | tr -d '\r')" + installer="${runtime}/forge-${version}-installer.jar" + expected="$(sed -n 's/^forge_compat_installer_sha256=//p' gradle.properties | tr -d '\r')" +elif [[ -n "${3:-}" ]]; then + echo "Unknown runtime selector: $3" >&2 + exit 2 +fi + +if [[ -e "$runtime" ]] && [[ -n "$(find "$runtime" -mindepth 1 -maxdepth 1 -print -quit)" ]]; then + echo "Packaged Forge destination must be empty: $runtime" >&2 + exit 1 +fi +mkdir -p "$runtime" + +curl --fail --location --silent --show-error \ + "https://maven.minecraftforge.net/net/minecraftforge/forge/${version}/forge-${version}-installer.jar" \ + --output "$installer" +actual="$(sha256sum "$installer" | awk '{print toupper($1)}')" +if [[ "$actual" != "$expected" ]]; then + echo "Forge installer SHA-256 is $actual; expected $expected" >&2 + exit 1 +fi + +( + cd "$runtime" + "$java8" -jar "$installer" --installServer . +) +installed="$runtime/forge-${version}.jar" +universal="$runtime/forge-${version}-universal.jar" +if [[ -f "$installed" ]]; then + cp "$installed" "$universal" +fi +test -f "$runtime/forge-${version}-universal.jar" +test -f "$runtime/minecraft_server.1.12.2.jar" +test -d "$runtime/libraries" diff --git a/gradle/release/artifacts.gradle b/gradle/release/artifacts.gradle new file mode 100644 index 0000000..5da0be8 --- /dev/null +++ b/gradle/release/artifacts.gradle @@ -0,0 +1,95 @@ +import groovy.json.JsonSlurper +import java.util.jar.Manifest +import java.util.zip.ZipFile + +def contract = project.ext.mmdLibBuild +def verification = project.ext.mmdLibVerification +def expected = verification.expectedReleaseFiles +def sha256 = verification.sha256 + +tasks.register('verifyReleaseArtifacts') { + group = 'verification' + dependsOn 'assemble', 'verifyReleaseDependencies', 'verifySourceCompatibility' + doLast { + File libs = layout.buildDirectory.dir('libs').get().asFile + List names = (libs.listFiles() ?: [] as File[]).findAll { it.name.endsWith('.jar') }*.name.sort() + if (names != expected.get().sort()) throw new GradleException("Unexpected release jars: ${names}") + expected.get().each { name -> + File artifact = new File(libs, name) + new ZipFile(artifact).withCloseable { zip -> + def entries = zip.entries().toList() + if (entries.isEmpty()) throw new GradleException("Empty archive: ${name}") + Manifest manifest = new Manifest(zip.getInputStream(zip.getEntry('META-INF/MANIFEST.MF'))) + if (manifest.mainAttributes.getValue('Implementation-Version') != project.mod_version + || manifest.mainAttributes.getValue('Timestamp') != null + || manifest.mainAttributes.getValue('Implementation-Timestamp') != null) { + throw new GradleException("Volatile or incorrect manifest in ${name}") + } + entries.findAll { it.name.endsWith('.class') }.each { entry -> + if (entry.name.contains('/test/') || entry.name.contains('/mmdlib/build/') + || !(entry.name.startsWith('zone/moddev/mc/mmdlib/') + || entry.name.startsWith('com/mcmoddev/lib/') || entry.name.startsWith('portablejim/veinminer/api/'))) { + throw new GradleException("Bundled third-party or test class: ${entry.name}") + } + byte[] bytes = zip.getInputStream(entry).bytes + int major = ((bytes[6] & 255) << 8) | (bytes[7] & 255) + if (major != 52) throw new GradleException("Non-Java-8 bytecode: ${entry.name}") + } + entries.findAll { entry -> contract.archiveTextSuffixes.any { entry.name.endsWith(it) } }.each { entry -> + String text = zip.getInputStream(entry).getText('UTF-8') + if (text =~ /(?i)([A-Z]:[\\\/]Users[\\\/]|[A-Z]:[\\\/]BaseMetals|\/home\/runner\/|\/Users\/)/) { + throw new GradleException("Local path leaked into ${name}:${entry.name}") + } + } + } + } + new ZipFile(new File(libs, "MMDLib-${project.version}.jar")).withCloseable { zip -> + def mod = new JsonSlurper().parseText(zip.getInputStream(zip.getEntry('mcmod.info')).getText('UTF-8')).first() + Manifest manifest = new Manifest(zip.getInputStream(zip.getEntry('META-INF/MANIFEST.MF'))) + if (mod.modid != 'mmdlib' || mod.version != project.mod_version || mod.mcversion != '1.12.2' + || manifest.mainAttributes.getValue('Maven-Artifact') != contract.mavenCoordinate + || manifest.mainAttributes.getValue('Built-On') != '1.12.2-14.23.5.2847' + || manifest.mainAttributes.getValue('FMLCorePlugin') != 'zone.moddev.mc.mmdlib.compat.LegacyNamespaceBootstrap' + || manifest.mainAttributes.getValue('FMLCorePluginContainsFMLMod') != 'true') { + throw new GradleException('MMDLib runtime identity or namespace compatibility bootstrap drifted') + } + def aliases = zip.getEntry('META-INF/mmdlib-legacy-names.list') + if (aliases == null || !zip.getEntry('zone/moddev/mc/mmdlib/MMDLib.class') + || !zip.getEntry('com/mcmoddev/lib/MMDLib.class')) { + throw new GradleException('Canonical implementation or legacy API exports are missing') + } + byte[] bytes = zip.getInputStream(zip.getEntry('zone/moddev/mc/mmdlib/item/ItemMMDAxe.class')).bytes + if (!new String(bytes, 'ISO-8859-1').contains('func_')) { + throw new GradleException('Main release jar is not reobfuscated to SRG names') + } + } + } +} + +tasks.register('writeReleaseChecksums') { + group = 'verification' + dependsOn 'verifyReleaseArtifacts' + doLast { + File output = layout.buildDirectory.file('release/SHA256SUMS').get().asFile + output.parentFile.mkdirs() + output.setText(expected.get().collect { + sha256(layout.buildDirectory.file("libs/${it}").get().asFile) + ' ' + it + }.join('\n') + '\n', 'UTF-8') + } +} + +tasks.register('verifyPreparedReleaseArtifacts') { + group = 'verification' + doLast { + if (!verification.preparedReleaseDir.isPresent()) throw new GradleException('preparedReleaseDir is required') + File root = file(verification.preparedReleaseDir.get()) + List lines = new File(root, 'SHA256SUMS').readLines('UTF-8') + if (lines.size() != expected.get().size()) throw new GradleException('Unexpected prepared checksums') + expected.get().each { name -> + File jar = new File(root, name) + if (!jar.isFile() || !lines.contains(sha256(jar) + ' ' + name)) { + throw new GradleException("Prepared release artifact failed checksum: ${name}") + } + } + } +} diff --git a/gradle/release/publishing.gradle b/gradle/release/publishing.gradle new file mode 100644 index 0000000..27c4041 --- /dev/null +++ b/gradle/release/publishing.gradle @@ -0,0 +1,79 @@ +def releaseJar = project.ext.mmdLibBuild.releaseJar +def expectedReleaseFiles = project.ext.mmdLibVerification.expectedReleaseFiles +def preparedReleaseDir = project.ext.mmdLibVerification.preparedReleaseDir + +// A normal build does not publish anything; publishing needs credentials. +def mavenUploadUrl = providers.environmentVariable('MAVEN_UPLOAD_URL') + .orElse('https://invalid.invalid/missing-maven-upload-url') +def mavenUploadUsername = providers.environmentVariable('MAVEN_UPLOAD_USERNAME') +def mavenUploadPassword = providers.environmentVariable('MAVEN_UPLOAD_PASSWORD') + +publishing { + publications { + mavenJava(MavenPublication) { + groupId = project.group.toString() + artifactId = base.archivesName.get() + version = project.version.toString() + if (preparedReleaseDir.isPresent()) { + File prepared = file(preparedReleaseDir.get()) + artifact(new File(prepared, expectedReleaseFiles.get()[0])) + artifact(new File(prepared, expectedReleaseFiles.get()[1])) { classifier = 'sources' } + artifact(new File(prepared, expectedReleaseFiles.get()[2])) { classifier = 'javadoc' } + artifact(new File(prepared, expectedReleaseFiles.get()[3])) { classifier = 'deobf' } + } else { + artifact(releaseJar) + artifact(tasks.named('sourcesJar')) + artifact(tasks.named('javadocJar')) + artifact(tasks.named('jar')) { classifier = 'deobf' } + } + pom { + name = 'MMDLib' + description = 'Library functionality for the Metals family of Minecraft mods.' + url = 'https://github.com/MinecraftModDevelopmentMods/MMDLib' + licenses { + license { + name = 'GNU Lesser General Public License, Version 2.1' + url = 'https://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt' + } + } + scm { + connection = 'scm:git:https://github.com/MinecraftModDevelopmentMods/MMDLib.git' + developerConnection = 'scm:git:ssh://git@github.com/MinecraftModDevelopmentMods/MMDLib.git' + url = 'https://github.com/MinecraftModDevelopmentMods/MMDLib' + } + } + } + } + repositories { + maven { + name = 'release' + url = uri(mavenUploadUrl.get()) + credentials { + username = mavenUploadUsername.orNull ?: '' + password = mavenUploadPassword.orNull ?: '' + } + } + } +} + +tasks.register('validateMavenReleaseCredentials') { + group = 'publishing' + doLast { + if (!providers.environmentVariable('MAVEN_UPLOAD_URL').isPresent() + || !mavenUploadUsername.isPresent() || !mavenUploadPassword.isPresent()) { + throw new GradleException('MAVEN_UPLOAD_URL, MAVEN_UPLOAD_USERNAME, and MAVEN_UPLOAD_PASSWORD are required') + } + if (providers.environmentVariable('MAVEN_UPLOAD_URL').get().startsWith('file:')) { + throw new GradleException('Maven release publication must use a remote repository') + } + } +} + +tasks.withType(PublishToMavenRepository).configureEach { + dependsOn tasks.named('validateMavenReleaseCredentials') + if (preparedReleaseDir.isPresent()) { + dependsOn tasks.named('verifyPreparedReleaseArtifacts') + } else { + dependsOn tasks.named('verifyReleaseArtifacts') + } +} diff --git a/gradle/stage-legacy-dependencies.py b/gradle/stage-legacy-dependencies.py new file mode 100644 index 0000000..b7da3fc --- /dev/null +++ b/gradle/stage-legacy-dependencies.py @@ -0,0 +1,31 @@ +#!/usr/bin/env python3 +"""Stage exact, checksum-verified original jars in an isolated Maven mirror.""" +import hashlib +import json +from pathlib import Path +import sys +import urllib.request + + +def stage(destination): + specs = json.loads(Path('gradle/legacy-dependencies.json').read_text(encoding='utf-8')) + for spec in specs: + group, module, version = spec['coordinate'].split(':') + target = destination / group.replace('.', '/') / module / version / (module + '-' + version + '.jar') + target.parent.mkdir(parents=True, exist_ok=True) + if not target.is_file() or hashlib.sha256(target.read_bytes()).hexdigest().upper() != spec['sha256']: + request = urllib.request.Request(spec['url'], headers={'User-Agent': 'MMDLib-build-maintenance'}) + with urllib.request.urlopen(request, timeout=90) as response: + data = response.read() + if hashlib.sha256(data).hexdigest().upper() != spec['sha256']: + raise RuntimeError('Checksum mismatch for ' + spec['name']) + temporary = target.with_suffix('.download') + temporary.write_bytes(data) + temporary.replace(target) + print(spec['name'] + ': ' + spec['sha256']) + + +if __name__ == '__main__': + if len(sys.argv) != 2: + raise SystemExit('usage: stage-legacy-dependencies.py ') + stage(Path(sys.argv[1])) diff --git a/gradle/stage-legacy-dependencies.sh b/gradle/stage-legacy-dependencies.sh new file mode 100644 index 0000000..671fbdf --- /dev/null +++ b/gradle/stage-legacy-dependencies.sh @@ -0,0 +1,7 @@ +#!/usr/bin/env bash +set -euo pipefail +if [[ $# -ne 1 ]]; then + echo "usage: $0 " >&2 + exit 2 +fi +python3 gradle/stage-legacy-dependencies.py "$1" diff --git a/gradle/verification/legacy-api-baseline.json b/gradle/verification/legacy-api-baseline.json new file mode 100644 index 0000000..12b43b9 --- /dev/null +++ b/gradle/verification/legacy-api-baseline.json @@ -0,0 +1,19315 @@ +{ + "com/mcmoddev/lib/MMDLib": { + "access": 33, + "super": "java/lang/Object", + "interfaces": [], + "fields": { + "MODID:Ljava/lang/String;": [ + 25, + null, + "mmdlib" + ], + "VERSION:Ljava/lang/String;": [ + 25, + null, + "1.0.0.112021" + ], + "instance:Lcom/mcmoddev/lib/MMDLib;": [ + 9, + null, + null + ], + "logger:Lorg/apache/logging/log4j/Logger;": [ + 25, + null, + null + ], + "proxy:Lcom/mcmoddev/lib/proxy/CommonProxy;": [ + 9, + null, + null + ] + }, + "methods": { + "()V": [ + 1, + null, + [] + ], + "constructing(Lnet/minecraftforge/fml/common/event/FMLConstructionEvent;)V": [ + 9, + null, + [] + ], + "getVersion()Ljava/lang/String;": [ + 25, + null, + [] + ], + "init(Lnet/minecraftforge/fml/common/event/FMLInitializationEvent;)V": [ + 9, + null, + [] + ], + "onFingerprintViolation(Lnet/minecraftforge/fml/common/event/FMLFingerprintViolationEvent;)V": [ + 1, + null, + [] + ], + "postInit(Lnet/minecraftforge/fml/common/event/FMLPostInitializationEvent;)V": [ + 9, + null, + [] + ], + "preInit(Lnet/minecraftforge/fml/common/event/FMLPreInitializationEvent;)V": [ + 9, + null, + [] + ] + } + }, + "com/mcmoddev/lib/TypeRegistrationEvents": { + "access": 33, + "super": "java/lang/Object", + "interfaces": [], + "fields": {}, + "methods": { + "blockTypeRegistrationEvent(Lcom/mcmoddev/lib/events/MMDLibRegisterBlockTypes;)V": [ + 9, + null, + [] + ], + "itemTypeRegistrationEvent(Lcom/mcmoddev/lib/events/MMDLibRegisterItemTypes;)V": [ + 9, + null, + [] + ] + } + }, + "com/mcmoddev/lib/asm/ASMHooks": { + "access": 33, + "super": "java/lang/Object", + "interfaces": [], + "fields": { + "ARMOR_STACK:Lnet/minecraft/network/datasync/DataParameter;": [ + 25, + "Lnet/minecraft/network/datasync/DataParameter;", + null + ] + }, + "methods": { + "getTextureName(Lnet/minecraft/entity/passive/HorseArmorType;Lnet/minecraft/entity/passive/EntityHorse;)Ljava/lang/String;": [ + 9, + null, + [] + ], + "onInitHorse(Lnet/minecraft/entity/passive/EntityHorse;)V": [ + 9, + null, + [] + ], + "setHorseArmorStack(Lnet/minecraft/entity/passive/EntityHorse;Lnet/minecraft/item/ItemStack;)V": [ + 9, + null, + [] + ] + } + }, + "com/mcmoddev/lib/asm/ASMPlugin": { + "access": 33, + "super": "java/lang/Object", + "interfaces": [ + "net/minecraftforge/fml/relauncher/IFMLLoadingPlugin" + ], + "fields": {}, + "methods": { + "()V": [ + 1, + null, + [] + ], + "getASMTransformerClass()[Ljava/lang/String;": [ + 1, + null, + [] + ], + "getAccessTransformerClass()Ljava/lang/String;": [ + 1, + null, + [] + ], + "getModContainerClass()Ljava/lang/String;": [ + 1, + null, + [] + ], + "getSetupClass()Ljava/lang/String;": [ + 1, + null, + [] + ], + "injectData(Ljava/util/Map;)V": [ + 1, + "(Ljava/util/Map;)V", + [] + ] + } + }, + "com/mcmoddev/lib/asm/ASMTransformer": { + "access": 33, + "super": "java/lang/Object", + "interfaces": [ + "net/minecraft/launchwrapper/IClassTransformer" + ], + "fields": {}, + "methods": { + "()V": [ + 1, + null, + [] + ], + "transform(Ljava/lang/String;Ljava/lang/String;[B)[B": [ + 1, + null, + [] + ] + } + }, + "com/mcmoddev/lib/asm/ClassNodeBase": { + "access": 1057, + "super": "org/objectweb/asm/tree/ClassNode", + "interfaces": [], + "fields": {}, + "methods": { + "()V": [ + 1, + null, + [] + ] + } + }, + "com/mcmoddev/lib/asm/EntityHorseTransformer": { + "access": 32, + "super": "java/lang/Object", + "interfaces": [ + "com/mcmoddev/lib/asm/ITransformer" + ], + "fields": {}, + "methods": { + "getTarget()Ljava/lang/String;": [ + 1, + null, + [] + ], + "transform(Lorg/objectweb/asm/tree/ClassNode;Z)Lorg/objectweb/asm/tree/ClassNode;": [ + 1, + null, + [] + ] + } + }, + "com/mcmoddev/lib/asm/EntityHorseTransformer$1": { + "access": 4128, + "super": "java/lang/Object", + "interfaces": [], + "fields": {}, + "methods": {} + }, + "com/mcmoddev/lib/asm/EntityHorseTransformer$Visitor": { + "access": 32, + "super": "com/mcmoddev/lib/asm/ClassNodeBase", + "interfaces": [], + "fields": {}, + "methods": { + "visitMethod(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;)Lorg/objectweb/asm/MethodVisitor;": [ + 1, + null, + [] + ] + } + }, + "com/mcmoddev/lib/asm/EntityHorseTransformer$Visitor$1": { + "access": 32, + "super": "org/objectweb/asm/MethodVisitor", + "interfaces": [], + "fields": {}, + "methods": { + "visitInsn(I)V": [ + 1, + null, + [] + ] + } + }, + "com/mcmoddev/lib/asm/EntityHorseTransformer$Visitor$2": { + "access": 32, + "super": "org/objectweb/asm/MethodVisitor", + "interfaces": [], + "fields": {}, + "methods": { + "visitCode()V": [ + 1, + null, + [] + ] + } + }, + "com/mcmoddev/lib/asm/EntityHorseTransformer$Visitor$3": { + "access": 32, + "super": "org/objectweb/asm/MethodVisitor", + "interfaces": [], + "fields": {}, + "methods": { + "visitMethodInsn(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Z)V": [ + 1, + null, + [] + ] + } + }, + "com/mcmoddev/lib/asm/HorseArmorTypeTransformer": { + "access": 32, + "super": "java/lang/Object", + "interfaces": [ + "com/mcmoddev/lib/asm/ITransformer" + ], + "fields": {}, + "methods": { + "getTarget()Ljava/lang/String;": [ + 1, + null, + [] + ], + "transform(Lorg/objectweb/asm/tree/ClassNode;Z)Lorg/objectweb/asm/tree/ClassNode;": [ + 1, + null, + [] + ] + } + }, + "com/mcmoddev/lib/asm/HorseArmorTypeTransformer$1": { + "access": 4128, + "super": "java/lang/Object", + "interfaces": [], + "fields": {}, + "methods": {} + }, + "com/mcmoddev/lib/asm/HorseArmorTypeTransformer$Visitor": { + "access": 32, + "super": "com/mcmoddev/lib/asm/ClassNodeBase", + "interfaces": [], + "fields": {}, + "methods": { + "visitMethod(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;)Lorg/objectweb/asm/MethodVisitor;": [ + 1, + null, + [] + ] + } + }, + "com/mcmoddev/lib/asm/HorseArmorTypeTransformer$Visitor$1": { + "access": 32, + "super": "org/objectweb/asm/MethodVisitor", + "interfaces": [], + "fields": {}, + "methods": { + "visitCode()V": [ + 1, + null, + [] + ] + } + }, + "com/mcmoddev/lib/asm/ITransformer": { + "access": 1537, + "super": "java/lang/Object", + "interfaces": [ + "org/objectweb/asm/Opcodes" + ], + "fields": {}, + "methods": { + "getTarget()Ljava/lang/String;": [ + 1025, + null, + [] + ], + "oneEquals([Ljava/lang/String;Ljava/lang/String;)Z": [ + 9, + null, + [] + ], + "transform(Lorg/objectweb/asm/tree/ClassNode;Z)Lorg/objectweb/asm/tree/ClassNode;": [ + 1025, + null, + [] + ] + } + }, + "com/mcmoddev/lib/block/BlockExplosiveOre": { + "access": 33, + "super": "net/minecraft/block/BlockOre", + "interfaces": [], + "fields": {}, + "methods": { + "()V": [ + 1, + null, + [] + ], + "doesExplode()Z": [ + 1, + null, + [] + ], + "explode()Lnet/minecraft/block/Block;": [ + 1, + null, + [] + ] + } + }, + "com/mcmoddev/lib/block/BlockHumanDetector": { + "access": 33, + "super": "net/minecraft/block/BlockPressurePlate", + "interfaces": [], + "fields": {}, + "methods": { + "()V": [ + 1, + null, + [] + ], + "computeRedstoneStrength(Lnet/minecraft/world/World;Lnet/minecraft/util/math/BlockPos;)I": [ + 4, + null, + [] + ] + } + }, + "com/mcmoddev/lib/block/BlockMMDAnvil": { + "access": 33, + "super": "net/minecraft/block/BlockAnvil", + "interfaces": [ + "com/mcmoddev/lib/material/IMMDObject" + ], + "fields": {}, + "methods": { + "(Lcom/mcmoddev/lib/material/MMDMaterial;)V": [ + 1, + null, + [] + ], + "getMMDMaterial()Lcom/mcmoddev/lib/material/MMDMaterial;": [ + 1, + null, + [] + ], + "onBlockActivated(Lnet/minecraft/world/World;Lnet/minecraft/util/math/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/util/EnumHand;Lnet/minecraft/util/EnumFacing;FFF)Z": [ + 1, + null, + [] + ] + } + }, + "com/mcmoddev/lib/block/BlockMMDAnvil$MMDAnvil": { + "access": 33, + "super": "java/lang/Object", + "interfaces": [ + "net/minecraft/world/IInteractionObject" + ], + "fields": {}, + "methods": { + "(Lnet/minecraft/world/World;Lnet/minecraft/util/math/BlockPos;Lcom/mcmoddev/lib/material/MMDMaterial;)V": [ + 1, + null, + [] + ], + "createContainer(Lnet/minecraft/entity/player/InventoryPlayer;Lnet/minecraft/entity/player/EntityPlayer;)Lnet/minecraft/inventory/Container;": [ + 1, + null, + [] + ], + "getDisplayName()Lnet/minecraft/util/text/ITextComponent;": [ + 1, + null, + [] + ], + "getGuiID()Ljava/lang/String;": [ + 1, + null, + [] + ], + "getName()Ljava/lang/String;": [ + 1, + null, + [] + ], + "hasCustomName()Z": [ + 1, + null, + [] + ] + } + }, + "com/mcmoddev/lib/block/BlockMMDBars": { + "access": 33, + "super": "net/minecraft/block/BlockPane", + "interfaces": [ + "com/mcmoddev/lib/material/IMMDObject" + ], + "fields": {}, + "methods": { + "(Lcom/mcmoddev/lib/material/MMDMaterial;)V": [ + 1, + null, + [] + ], + "getMMDMaterial()Lcom/mcmoddev/lib/material/MMDMaterial;": [ + 1, + null, + [] + ] + } + }, + "com/mcmoddev/lib/block/BlockMMDBlock": { + "access": 33, + "super": "net/minecraft/block/Block", + "interfaces": [ + "com/mcmoddev/lib/material/IMMDObject" + ], + "fields": {}, + "methods": { + "(Lcom/mcmoddev/lib/material/MMDMaterial;)V": [ + 1, + null, + [] + ], + "getMMDMaterial()Lcom/mcmoddev/lib/material/MMDMaterial;": [ + 1, + null, + [] + ], + "isBeaconBase(Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/math/BlockPos;Lnet/minecraft/util/math/BlockPos;)Z": [ + 1, + null, + [] + ] + } + }, + "com/mcmoddev/lib/block/BlockMMDBookshelf": { + "access": 33, + "super": "net/minecraft/block/BlockBookshelf", + "interfaces": [ + "com/mcmoddev/lib/material/IMMDObject" + ], + "fields": {}, + "methods": { + "(Lcom/mcmoddev/lib/material/MMDMaterial;)V": [ + 1, + null, + [] + ], + "getMMDMaterial()Lcom/mcmoddev/lib/material/MMDMaterial;": [ + 1, + null, + [] + ], + "isFullCube(Lnet/minecraft/block/state/IBlockState;)Z": [ + 131073, + null, + [] + ], + "isOpaqueCube(Lnet/minecraft/block/state/IBlockState;)Z": [ + 131073, + null, + [] + ], + "setFullBlock(Z)V": [ + 1, + null, + [] + ] + } + }, + "com/mcmoddev/lib/block/BlockMMDButton": { + "access": 33, + "super": "net/minecraft/block/BlockButton", + "interfaces": [ + "com/mcmoddev/lib/material/IMMDObject" + ], + "fields": {}, + "methods": { + "(Lcom/mcmoddev/lib/material/MMDMaterial;)V": [ + 1, + null, + [] + ], + "getMMDMaterial()Lcom/mcmoddev/lib/material/MMDMaterial;": [ + 1, + null, + [] + ], + "playClickSound(Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/world/World;Lnet/minecraft/util/math/BlockPos;)V": [ + 4, + null, + [] + ], + "playReleaseSound(Lnet/minecraft/world/World;Lnet/minecraft/util/math/BlockPos;)V": [ + 4, + null, + [] + ] + } + }, + "com/mcmoddev/lib/block/BlockMMDDoor": { + "access": 33, + "super": "net/minecraft/block/BlockDoor", + "interfaces": [ + "com/mcmoddev/lib/material/IMMDObject" + ], + "fields": {}, + "methods": { + "(Lcom/mcmoddev/lib/material/MMDMaterial;)V": [ + 1, + null, + [] + ], + "getItem(Lnet/minecraft/world/World;Lnet/minecraft/util/math/BlockPos;Lnet/minecraft/block/state/IBlockState;)Lnet/minecraft/item/ItemStack;": [ + 131073, + null, + [] + ], + "getItemDropped(Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;I)Lnet/minecraft/item/Item;": [ + 1, + null, + [] + ], + "getMMDMaterial()Lcom/mcmoddev/lib/material/MMDMaterial;": [ + 1, + null, + [] + ], + "onBlockActivated(Lnet/minecraft/world/World;Lnet/minecraft/util/math/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/util/EnumHand;Lnet/minecraft/util/EnumFacing;FFF)Z": [ + 1, + null, + [] + ], + "playSound(Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/world/World;Lnet/minecraft/util/math/BlockPos;Z)V": [ + 4, + null, + [] + ] + } + }, + "com/mcmoddev/lib/block/BlockMMDEndOre": { + "access": 33, + "super": "net/minecraft/block/BlockOre", + "interfaces": [ + "com/mcmoddev/lib/material/IMMDObject" + ], + "fields": {}, + "methods": { + "(Lcom/mcmoddev/lib/material/MMDMaterial;)V": [ + 1, + null, + [] + ], + "canEntityDestroy(Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/math/BlockPos;Lnet/minecraft/entity/Entity;)Z": [ + 1, + null, + [] + ], + "getExpDrop(Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/math/BlockPos;I)I": [ + 1, + null, + [] + ], + "getMMDMaterial()Lcom/mcmoddev/lib/material/MMDMaterial;": [ + 1, + null, + [] + ] + } + }, + "com/mcmoddev/lib/block/BlockMMDFence": { + "access": 33, + "super": "net/minecraft/block/BlockFence", + "interfaces": [ + "com/mcmoddev/lib/material/IMMDObject" + ], + "fields": {}, + "methods": { + "(Lcom/mcmoddev/lib/material/MMDMaterial;)V": [ + 1, + null, + [] + ], + "canPlaceTorchOnTop(Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/math/BlockPos;)Z": [ + 1, + null, + [] + ], + "getMMDMaterial()Lcom/mcmoddev/lib/material/MMDMaterial;": [ + 1, + null, + [] + ] + } + }, + "com/mcmoddev/lib/block/BlockMMDFenceGate": { + "access": 33, + "super": "net/minecraft/block/BlockFenceGate", + "interfaces": [ + "com/mcmoddev/lib/material/IMMDObject" + ], + "fields": {}, + "methods": { + "(Lcom/mcmoddev/lib/material/MMDMaterial;)V": [ + 1, + null, + [] + ], + "getMMDMaterial()Lcom/mcmoddev/lib/material/MMDMaterial;": [ + 1, + null, + [] + ] + } + }, + "com/mcmoddev/lib/block/BlockMMDFlowerPot": { + "access": 33, + "super": "net/minecraft/block/BlockFlowerPot", + "interfaces": [ + "com/mcmoddev/lib/material/IMMDObject" + ], + "fields": {}, + "methods": { + "(Lcom/mcmoddev/lib/material/MMDMaterial;)V": [ + 1, + null, + [] + ], + "getMMDMaterial()Lcom/mcmoddev/lib/material/MMDMaterial;": [ + 1, + null, + [] + ] + } + }, + "com/mcmoddev/lib/block/BlockMMDLadder": { + "access": 33, + "super": "net/minecraft/block/BlockLadder", + "interfaces": [ + "com/mcmoddev/lib/material/IMMDObject" + ], + "fields": {}, + "methods": { + "(Lcom/mcmoddev/lib/material/MMDMaterial;)V": [ + 1, + null, + [] + ], + "getMMDMaterial()Lcom/mcmoddev/lib/material/MMDMaterial;": [ + 1, + null, + [] + ] + } + }, + "com/mcmoddev/lib/block/BlockMMDLever": { + "access": 33, + "super": "net/minecraft/block/BlockLever", + "interfaces": [ + "com/mcmoddev/lib/material/IMMDObject" + ], + "fields": {}, + "methods": { + "(Lcom/mcmoddev/lib/material/MMDMaterial;)V": [ + 1, + null, + [] + ], + "getMMDMaterial()Lcom/mcmoddev/lib/material/MMDMaterial;": [ + 1, + null, + [] + ] + } + }, + "com/mcmoddev/lib/block/BlockMMDNetherOre": { + "access": 33, + "super": "com/mcmoddev/lib/block/BlockExplosiveOre", + "interfaces": [ + "com/mcmoddev/lib/material/IMMDObject" + ], + "fields": {}, + "methods": { + "(Lcom/mcmoddev/lib/material/MMDMaterial;)V": [ + 1, + null, + [] + ], + "canEntityDestroy(Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/math/BlockPos;Lnet/minecraft/entity/Entity;)Z": [ + 1, + null, + [] + ], + "getExpDrop(Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/math/BlockPos;I)I": [ + 1, + null, + [] + ], + "getMMDMaterial()Lcom/mcmoddev/lib/material/MMDMaterial;": [ + 1, + null, + [] + ] + } + }, + "com/mcmoddev/lib/block/BlockMMDOre": { + "access": 33, + "super": "net/minecraft/block/BlockOre", + "interfaces": [ + "com/mcmoddev/lib/material/IMMDObject" + ], + "fields": {}, + "methods": { + "(Lcom/mcmoddev/lib/material/MMDMaterial;)V": [ + 1, + null, + [] + ], + "(Lcom/mcmoddev/lib/material/MMDMaterial;Z)V": [ + 1, + null, + [] + ], + "canEntityDestroy(Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/math/BlockPos;Lnet/minecraft/entity/Entity;)Z": [ + 1, + null, + [] + ], + "getExpDrop(Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/math/BlockPos;I)I": [ + 1, + null, + [] + ], + "getItemDropped(Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;I)Lnet/minecraft/item/Item;": [ + 1, + null, + [] + ], + "getMMDMaterial()Lcom/mcmoddev/lib/material/MMDMaterial;": [ + 1, + null, + [] + ], + "quantityDropped(Lnet/minecraft/block/state/IBlockState;ILjava/util/Random;)I": [ + 1, + null, + [] + ] + } + }, + "com/mcmoddev/lib/block/BlockMMDOre$1": { + "access": 4128, + "super": "java/lang/Object", + "interfaces": [], + "fields": {}, + "methods": {} + }, + "com/mcmoddev/lib/block/BlockMMDPlate": { + "access": 33, + "super": "net/minecraft/block/Block", + "interfaces": [ + "com/mcmoddev/lib/material/IMMDObject" + ], + "fields": { + "FACING:Lnet/minecraft/block/properties/PropertyDirection;": [ + 25, + null, + null + ] + }, + "methods": { + "(Lcom/mcmoddev/lib/material/MMDMaterial;)V": [ + 1, + null, + [] + ], + "addCollisionBoxToList(Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/world/World;Lnet/minecraft/util/math/BlockPos;Lnet/minecraft/util/math/AxisAlignedBB;Ljava/util/List;Lnet/minecraft/entity/Entity;Z)V": [ + 131073, + "(Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/world/World;Lnet/minecraft/util/math/BlockPos;Lnet/minecraft/util/math/AxisAlignedBB;Ljava/util/List;Lnet/minecraft/entity/Entity;Z)V", + [] + ], + "createBlockState()Lnet/minecraft/block/state/BlockStateContainer;": [ + 4, + null, + [] + ], + "getBoundingBox(Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/math/BlockPos;)Lnet/minecraft/util/math/AxisAlignedBB;": [ + 131073, + null, + [] + ], + "getMMDMaterial()Lcom/mcmoddev/lib/material/MMDMaterial;": [ + 1, + null, + [] + ], + "getMetaFromState(Lnet/minecraft/block/state/IBlockState;)I": [ + 1, + null, + [] + ], + "getStateForPlacement(Lnet/minecraft/world/World;Lnet/minecraft/util/math/BlockPos;Lnet/minecraft/util/EnumFacing;FFFILnet/minecraft/entity/EntityLivingBase;)Lnet/minecraft/block/state/IBlockState;": [ + 131073, + null, + [] + ], + "getStateFromMeta(I)Lnet/minecraft/block/state/IBlockState;": [ + 131073, + null, + [] + ], + "isFullCube(Lnet/minecraft/block/state/IBlockState;)Z": [ + 131073, + null, + [] + ], + "isOpaqueCube(Lnet/minecraft/block/state/IBlockState;)Z": [ + 131073, + null, + [] + ], + "withMirror(Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/util/Mirror;)Lnet/minecraft/block/state/IBlockState;": [ + 131073, + null, + [] + ], + "withRotation(Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/util/Rotation;)Lnet/minecraft/block/state/IBlockState;": [ + 131073, + null, + [] + ] + } + }, + "com/mcmoddev/lib/block/BlockMMDPlate$1": { + "access": 4128, + "super": "java/lang/Object", + "interfaces": [], + "fields": {}, + "methods": {} + }, + "com/mcmoddev/lib/block/BlockMMDPressurePlate": { + "access": 33, + "super": "net/minecraft/block/BlockPressurePlate", + "interfaces": [ + "com/mcmoddev/lib/material/IMMDObject" + ], + "fields": {}, + "methods": { + "(Lcom/mcmoddev/lib/material/MMDMaterial;)V": [ + 1, + null, + [] + ], + "getMMDMaterial()Lcom/mcmoddev/lib/material/MMDMaterial;": [ + 1, + null, + [] + ] + } + }, + "com/mcmoddev/lib/block/BlockMMDSlab": { + "access": 1057, + "super": "net/minecraft/block/BlockSlab", + "interfaces": [ + "com/mcmoddev/lib/material/IMMDObject" + ], + "fields": { + "VARIANT:Lnet/minecraft/block/properties/PropertyEnum;": [ + 25, + "Lnet/minecraft/block/properties/PropertyEnum;", + null + ] + }, + "methods": { + "(Lcom/mcmoddev/lib/material/MMDMaterial;)V": [ + 1, + null, + [] + ], + "createBlockState()Lnet/minecraft/block/state/BlockStateContainer;": [ + 4, + null, + [] + ], + "getItem(Lnet/minecraft/world/World;Lnet/minecraft/util/math/BlockPos;Lnet/minecraft/block/state/IBlockState;)Lnet/minecraft/item/ItemStack;": [ + 131073, + null, + [] + ], + "getItemDropped(Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;I)Lnet/minecraft/item/Item;": [ + 1, + null, + [] + ], + "getMMDMaterial()Lcom/mcmoddev/lib/material/MMDMaterial;": [ + 1, + null, + [] + ], + "getMetaFromState(Lnet/minecraft/block/state/IBlockState;)I": [ + 1, + null, + [] + ], + "getStateFromMeta(I)Lnet/minecraft/block/state/IBlockState;": [ + 131073, + null, + [] + ], + "getTranslationKey(I)Ljava/lang/String;": [ + 1, + null, + [] + ], + "getTypeForItem(Lnet/minecraft/item/ItemStack;)Ljava/lang/Comparable;": [ + 1, + "(Lnet/minecraft/item/ItemStack;)Ljava/lang/Comparable<*>;", + [] + ], + "getVariantProperty()Lnet/minecraft/block/properties/IProperty;": [ + 1, + "()Lnet/minecraft/block/properties/IProperty<*>;", + [] + ] + } + }, + "com/mcmoddev/lib/block/BlockMMDSlab$Double": { + "access": 33, + "super": "com/mcmoddev/lib/block/BlockMMDSlab", + "interfaces": [], + "fields": {}, + "methods": { + "(Lcom/mcmoddev/lib/material/MMDMaterial;)V": [ + 1, + null, + [] + ], + "isDouble()Z": [ + 1, + null, + [] + ] + } + }, + "com/mcmoddev/lib/block/BlockMMDSlab$Half": { + "access": 33, + "super": "com/mcmoddev/lib/block/BlockMMDSlab", + "interfaces": [], + "fields": {}, + "methods": { + "(Lcom/mcmoddev/lib/material/MMDMaterial;)V": [ + 1, + null, + [] + ], + "isDouble()Z": [ + 1, + null, + [] + ] + } + }, + "com/mcmoddev/lib/block/BlockMMDSlab$Variant": { + "access": 16433, + "super": "java/lang/Enum", + "interfaces": [ + "net/minecraft/util/IStringSerializable" + ], + "signature": "Ljava/lang/Enum;Lnet/minecraft/util/IStringSerializable;", + "fields": { + "DEFAULT:Lcom/mcmoddev/lib/block/BlockMMDSlab$Variant;": [ + 16409, + null, + null + ] + }, + "methods": { + "getName()Ljava/lang/String;": [ + 1, + null, + [] + ], + "valueOf(Ljava/lang/String;)Lcom/mcmoddev/lib/block/BlockMMDSlab$Variant;": [ + 9, + null, + [] + ], + "values()[Lcom/mcmoddev/lib/block/BlockMMDSlab$Variant;": [ + 9, + null, + [] + ] + } + }, + "com/mcmoddev/lib/block/BlockMMDStairs": { + "access": 33, + "super": "net/minecraft/block/BlockStairs", + "interfaces": [ + "com/mcmoddev/lib/material/IMMDObject" + ], + "fields": {}, + "methods": { + "(Lcom/mcmoddev/lib/material/MMDMaterial;)V": [ + 1, + null, + [] + ], + "getMMDMaterial()Lcom/mcmoddev/lib/material/MMDMaterial;": [ + 1, + null, + [] + ] + } + }, + "com/mcmoddev/lib/block/BlockMMDTrapDoor": { + "access": 33, + "super": "net/minecraft/block/BlockTrapDoor", + "interfaces": [ + "com/mcmoddev/lib/material/IMMDObject" + ], + "fields": {}, + "methods": { + "(Lcom/mcmoddev/lib/material/MMDMaterial;)V": [ + 1, + null, + [] + ], + "getMMDMaterial()Lcom/mcmoddev/lib/material/MMDMaterial;": [ + 1, + null, + [] + ], + "onBlockActivated(Lnet/minecraft/world/World;Lnet/minecraft/util/math/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/util/EnumHand;Lnet/minecraft/util/EnumFacing;FFF)Z": [ + 1, + null, + [] + ], + "playSound(Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/world/World;Lnet/minecraft/util/math/BlockPos;Z)V": [ + 4, + null, + [] + ] + } + }, + "com/mcmoddev/lib/block/BlockMMDTripWireHook": { + "access": 33, + "super": "net/minecraft/block/BlockTripWireHook", + "interfaces": [ + "com/mcmoddev/lib/material/IMMDObject" + ], + "fields": {}, + "methods": { + "(Lcom/mcmoddev/lib/material/MMDMaterial;)V": [ + 1, + null, + [] + ], + "getMMDMaterial()Lcom/mcmoddev/lib/material/MMDMaterial;": [ + 1, + null, + [] + ] + } + }, + "com/mcmoddev/lib/block/BlockMMDWall": { + "access": 33, + "super": "net/minecraft/block/BlockWall", + "interfaces": [ + "com/mcmoddev/lib/material/IMMDObject" + ], + "fields": {}, + "methods": { + "(Lcom/mcmoddev/lib/material/MMDMaterial;)V": [ + 1, + null, + [] + ], + "canPlaceTorchOnTop(Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/math/BlockPos;)Z": [ + 1, + null, + [] + ], + "getMMDMaterial()Lcom/mcmoddev/lib/material/MMDMaterial;": [ + 1, + null, + [] + ], + "getSubBlocks(Lnet/minecraft/creativetab/CreativeTabs;Lnet/minecraft/util/NonNullList;)V": [ + 1, + "(Lnet/minecraft/creativetab/CreativeTabs;Lnet/minecraft/util/NonNullList;)V", + [] + ] + } + }, + "com/mcmoddev/lib/block/BlockMoltenFluid": { + "access": 33, + "super": "net/minecraftforge/fluids/BlockFluidClassic", + "interfaces": [], + "fields": {}, + "methods": { + "(Lnet/minecraftforge/fluids/Fluid;)V": [ + 1, + null, + [] + ] + } + }, + "com/mcmoddev/lib/block/InteractiveFluidBlock": { + "access": 33, + "super": "net/minecraftforge/fluids/BlockFluidClassic", + "interfaces": [], + "fields": {}, + "methods": { + "(Lnet/minecraftforge/fluids/Fluid;)V": [ + 1, + null, + [] + ], + "(Lnet/minecraftforge/fluids/Fluid;Ljava/util/function/BiConsumer;)V": [ + 1, + "(Lnet/minecraftforge/fluids/Fluid;Ljava/util/function/BiConsumer;)V", + [] + ], + "(Lnet/minecraftforge/fluids/Fluid;ZLjava/util/function/BiConsumer;)V": [ + 1, + "(Lnet/minecraftforge/fluids/Fluid;ZLjava/util/function/BiConsumer;)V", + [] + ], + "getFireSpreadSpeed(Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/math/BlockPos;Lnet/minecraft/util/EnumFacing;)I": [ + 1, + null, + [] + ], + "getFlammability(Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/math/BlockPos;Lnet/minecraft/util/EnumFacing;)I": [ + 1, + null, + [] + ], + "onEntityCollision(Lnet/minecraft/world/World;Lnet/minecraft/util/math/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/entity/Entity;)V": [ + 1, + null, + [] + ] + } + }, + "com/mcmoddev/lib/block/MMDBlockWithGui": { + "access": 33, + "super": "net/minecraft/block/Block", + "interfaces": [], + "fields": {}, + "methods": { + "(Lnet/minecraft/block/material/Material;)V": [ + 1, + null, + [] + ], + "(Lnet/minecraft/block/material/Material;Lnet/minecraft/block/material/MapColor;)V": [ + 1, + null, + [] + ], + "getGuiId(Lnet/minecraft/world/World;Lnet/minecraft/util/math/BlockPos;Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/util/EnumHand;Lnet/minecraft/util/EnumFacing;FFF)I": [ + 4, + null, + [] + ], + "getModInstance(Lnet/minecraft/world/World;Lnet/minecraft/util/math/BlockPos;)Ljava/lang/Object;": [ + 4, + null, + [] + ], + "onBlockActivated(Lnet/minecraft/world/World;Lnet/minecraft/util/math/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/util/EnumHand;Lnet/minecraft/util/EnumFacing;FFF)Z": [ + 1, + null, + [] + ], + "openGui(ILnet/minecraft/world/World;Lnet/minecraft/util/math/BlockPos;Lnet/minecraft/entity/player/EntityPlayer;)Z": [ + 4, + null, + [] + ] + } + }, + "com/mcmoddev/lib/block/MMDBlockWithTile": { + "access": 33, + "super": "com/mcmoddev/lib/block/MMDBlockWithGui", + "interfaces": [ + "net/minecraft/block/ITileEntityProvider" + ], + "signature": "Lcom/mcmoddev/lib/block/MMDBlockWithGui;Lnet/minecraft/block/ITileEntityProvider;", + "fields": {}, + "methods": { + "(Ljava/lang/Class;Ljava/util/function/Supplier;Lnet/minecraft/block/material/Material;)V": [ + 1, + "(Ljava/lang/Class;Ljava/util/function/Supplier;Lnet/minecraft/block/material/Material;)V", + [] + ], + "(Ljava/lang/Class;Ljava/util/function/Supplier;Lnet/minecraft/block/material/Material;Lnet/minecraft/block/material/MapColor;)V": [ + 1, + "(Ljava/lang/Class;Ljava/util/function/Supplier;Lnet/minecraft/block/material/Material;Lnet/minecraft/block/material/MapColor;)V", + [] + ], + "createNewTileEntity(Lnet/minecraft/world/World;I)Lnet/minecraft/tileentity/TileEntity;": [ + 1, + null, + [] + ], + "registerTile()V": [ + 1, + null, + [] + ] + } + }, + "com/mcmoddev/lib/block/package-info": { + "access": 5632, + "super": "java/lang/Object", + "interfaces": [], + "fields": {}, + "methods": {} + }, + "com/mcmoddev/lib/capability/CapabilitiesContainer": { + "access": 33, + "super": "java/lang/Object", + "interfaces": [ + "com/mcmoddev/lib/capability/ICapabilitiesContainer", + "net/minecraftforge/common/capabilities/ICapabilityProvider" + ], + "fields": {}, + "methods": { + "()V": [ + 1, + null, + [] + ], + "addCapability(Lnet/minecraftforge/common/capabilities/Capability;Ljava/util/function/Function;Ljava/util/function/Predicate;)V": [ + 1, + "(Lnet/minecraftforge/common/capabilities/Capability;Ljava/util/function/Function;Ljava/util/function/Predicate;)V", + [] + ], + "getCapability(Lnet/minecraftforge/common/capabilities/Capability;Lnet/minecraft/util/EnumFacing;)Ljava/lang/Object;": [ + 1, + "(Lnet/minecraftforge/common/capabilities/Capability;Lnet/minecraft/util/EnumFacing;)TT;", + [] + ], + "hasCapability(Lnet/minecraftforge/common/capabilities/Capability;Lnet/minecraft/util/EnumFacing;)Z": [ + 1, + "(Lnet/minecraftforge/common/capabilities/Capability<*>;Lnet/minecraft/util/EnumFacing;)Z", + [] + ] + } + }, + "com/mcmoddev/lib/capability/CapabilitiesContainer$CapabilityInfo": { + "access": 32, + "super": "java/lang/Object", + "interfaces": [ + "net/minecraftforge/common/capabilities/ICapabilityProvider" + ], + "signature": "Ljava/lang/Object;Lnet/minecraftforge/common/capabilities/ICapabilityProvider;", + "fields": {}, + "methods": { + "getCapability(Lnet/minecraftforge/common/capabilities/Capability;Lnet/minecraft/util/EnumFacing;)Ljava/lang/Object;": [ + 1, + "(Lnet/minecraftforge/common/capabilities/Capability;Lnet/minecraft/util/EnumFacing;)TC;", + [] + ], + "hasCapability(Lnet/minecraftforge/common/capabilities/Capability;Lnet/minecraft/util/EnumFacing;)Z": [ + 1, + "(Lnet/minecraftforge/common/capabilities/Capability<*>;Lnet/minecraft/util/EnumFacing;)Z", + [] + ] + } + }, + "com/mcmoddev/lib/capability/ICapabilitiesContainer": { + "access": 1537, + "super": "java/lang/Object", + "interfaces": [], + "fields": {}, + "methods": { + "addCapability(Lnet/minecraftforge/common/capabilities/Capability;Ljava/util/function/Function;)V": [ + 1, + "(Lnet/minecraftforge/common/capabilities/Capability;Ljava/util/function/Function;)V", + [] + ], + "addCapability(Lnet/minecraftforge/common/capabilities/Capability;Ljava/util/function/Function;Ljava/util/function/Predicate;)V": [ + 1025, + "(Lnet/minecraftforge/common/capabilities/Capability;Ljava/util/function/Function;Ljava/util/function/Predicate;)V", + [] + ] + } + }, + "com/mcmoddev/lib/capability/MMDCapabilities": { + "access": 49, + "super": "java/lang/Object", + "interfaces": [], + "fields": {}, + "methods": { + "init()V": [ + 9, + null, + [] + ] + } + }, + "com/mcmoddev/lib/capability/package-info": { + "access": 5632, + "super": "java/lang/Object", + "interfaces": [], + "fields": {}, + "methods": {} + }, + "com/mcmoddev/lib/client/registrations/RegistrationHelper": { + "access": 33, + "super": "java/lang/Object", + "interfaces": [], + "fields": {}, + "methods": { + "registerBlockRender(Ljava/lang/String;)V": [ + 9, + null, + [] + ], + "registerBlockRender(Lnet/minecraft/block/Block;)V": [ + 9, + null, + [] + ], + "registerFluidRender(Ljava/lang/String;)V": [ + 9, + null, + [] + ], + "registerFluidRender(Lnet/minecraftforge/fluids/Fluid;)V": [ + 9, + null, + [] + ], + "registerItemRender(Ljava/lang/String;)V": [ + 9, + null, + [] + ], + "registerItemRender(Lnet/minecraft/item/Item;)V": [ + 9, + null, + [] + ], + "registerRender(Lnet/minecraft/item/Item;)V": [ + 9, + null, + [] + ] + } + }, + "com/mcmoddev/lib/client/registrations/package-info": { + "access": 5632, + "super": "java/lang/Object", + "interfaces": [], + "fields": {}, + "methods": {} + }, + "com/mcmoddev/lib/client/renderer/FluidStateMapper": { + "access": 33, + "super": "net/minecraft/client/renderer/block/statemap/StateMapperBase", + "interfaces": [ + "net/minecraft/client/renderer/ItemMeshDefinition" + ], + "fields": {}, + "methods": { + "(Ljava/lang/String;)V": [ + 1, + null, + [] + ], + "(Lnet/minecraft/client/renderer/block/model/ModelResourceLocation;)V": [ + 1, + null, + [] + ], + "(Lnet/minecraft/util/ResourceLocation;)V": [ + 1, + null, + [] + ], + "getModelLocation(Lnet/minecraft/item/ItemStack;)Lnet/minecraft/client/renderer/block/model/ModelResourceLocation;": [ + 1, + null, + [] + ], + "getModelResourceLocation(Lnet/minecraft/block/state/IBlockState;)Lnet/minecraft/client/renderer/block/model/ModelResourceLocation;": [ + 4, + null, + [] + ] + } + }, + "com/mcmoddev/lib/client/renderer/RenderCustomArrow": { + "access": 33, + "super": "net/minecraft/client/renderer/entity/Render", + "interfaces": [], + "signature": "Lnet/minecraft/client/renderer/entity/Render;", + "fields": {}, + "methods": { + "(Lnet/minecraft/client/renderer/entity/RenderManager;)V": [ + 1, + null, + [] + ], + "doRender(Lcom/mcmoddev/lib/entity/EntityCustomArrow;DDDFF)V": [ + 1, + null, + [] + ], + "doRender(Lnet/minecraft/entity/Entity;DDDFF)V": [ + 4161, + null, + [] + ], + "getEntityTexture(Lcom/mcmoddev/lib/entity/EntityCustomArrow;)Lnet/minecraft/util/ResourceLocation;": [ + 4, + null, + [] + ], + "getEntityTexture(Lnet/minecraft/entity/Entity;)Lnet/minecraft/util/ResourceLocation;": [ + 4164, + null, + [] + ] + } + }, + "com/mcmoddev/lib/client/renderer/RenderCustomBolt": { + "access": 33, + "super": "net/minecraft/client/renderer/entity/Render", + "interfaces": [], + "signature": "Lnet/minecraft/client/renderer/entity/Render;", + "fields": {}, + "methods": { + "(Lnet/minecraft/client/renderer/entity/RenderManager;)V": [ + 1, + null, + [] + ], + "doRender(Lcom/mcmoddev/lib/entity/EntityCustomBolt;DDDFF)V": [ + 1, + null, + [] + ], + "doRender(Lnet/minecraft/entity/Entity;DDDFF)V": [ + 4161, + null, + [] + ], + "getEntityTexture(Lcom/mcmoddev/lib/entity/EntityCustomBolt;)Lnet/minecraft/util/ResourceLocation;": [ + 4, + null, + [] + ], + "getEntityTexture(Lnet/minecraft/entity/Entity;)Lnet/minecraft/util/ResourceLocation;": [ + 4164, + null, + [] + ] + } + }, + "com/mcmoddev/lib/client/renderer/RenderHelpers": { + "access": 33, + "super": "java/lang/Object", + "interfaces": [], + "fields": {}, + "methods": { + "doArrowOrBoltRender(Lnet/minecraft/entity/projectile/EntityTippedArrow;DDDFZI)V": [ + 9, + null, + [] + ] + } + }, + "com/mcmoddev/lib/client/renderer/package-info": { + "access": 5632, + "super": "java/lang/Object", + "interfaces": [], + "fields": {}, + "methods": {} + }, + "com/mcmoddev/lib/common/IModInstanceProvider": { + "access": 1537, + "super": "java/lang/Object", + "interfaces": [], + "fields": {}, + "methods": { + "getModInstance(Lnet/minecraft/world/World;)Ljava/lang/Object;": [ + 1025, + null, + [] + ] + } + }, + "com/mcmoddev/lib/common/item/IHorseArmor": { + "access": 1537, + "super": "java/lang/Object", + "interfaces": [], + "fields": {}, + "methods": { + "getHorseArmorTexture(Lnet/minecraft/entity/EntityLiving;Lnet/minecraft/item/ItemStack;)Ljava/lang/String;": [ + 1025, + null, + [] + ], + "getHorseArmorType(Lnet/minecraft/item/ItemStack;)Lnet/minecraft/entity/passive/HorseArmorType;": [ + 1025, + null, + [] + ] + } + }, + "com/mcmoddev/lib/common/item/package-info": { + "access": 5632, + "super": "java/lang/Object", + "interfaces": [], + "fields": {}, + "methods": {} + }, + "com/mcmoddev/lib/common/package-info": { + "access": 5632, + "super": "java/lang/Object", + "interfaces": [], + "fields": {}, + "methods": {} + }, + "com/mcmoddev/lib/container/BaseItemStackWidgetProvider": { + "access": 33, + "super": "java/lang/Object", + "interfaces": [ + "com/mcmoddev/lib/container/IGuiProvider", + "com/mcmoddev/lib/container/IWidgetContainer" + ], + "fields": {}, + "methods": { + "(Lnet/minecraft/item/ItemStack;)V": [ + 1, + null, + [] + ], + "(Lnet/minecraft/item/ItemStack;Lnet/minecraft/item/Item;)V": [ + 1, + null, + [] + ], + "getClientGui(ILnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/world/World;III)Lnet/minecraft/client/gui/inventory/GuiContainer;": [ + 1, + null, + [] + ], + "getGuiUpdateTag(Z)Lnet/minecraft/nbt/NBTTagCompound;": [ + 1, + null, + [] + ], + "getRootWidgetGui(Lcom/mcmoddev/lib/container/gui/GuiContext;)Lcom/mcmoddev/lib/container/gui/IWidgetGui;": [ + 1, + null, + [] + ], + "getServerGui(ILnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/world/World;III)Lnet/minecraft/inventory/Container;": [ + 1, + null, + [] + ], + "getWidgets(Lcom/mcmoddev/lib/container/gui/GuiContext;)Ljava/util/List;": [ + 1, + "(Lcom/mcmoddev/lib/container/gui/GuiContext;)Ljava/util/List;", + [] + ], + "receiveGuiUpdateTag(Lnet/minecraft/nbt/NBTTagCompound;)V": [ + 1, + null, + [] + ] + } + }, + "com/mcmoddev/lib/container/GuiHandlerIds": { + "access": 16433, + "super": "java/lang/Enum", + "interfaces": [], + "signature": "Ljava/lang/Enum;", + "fields": { + "GUI_COMMAND:Lcom/mcmoddev/lib/container/GuiHandlerIds;": [ + 16409, + null, + null + ], + "GUI_ITEM_MAIN_HAND:Lcom/mcmoddev/lib/container/GuiHandlerIds;": [ + 16409, + null, + null + ], + "GUI_ITEM_OFF_HAND:Lcom/mcmoddev/lib/container/GuiHandlerIds;": [ + 16409, + null, + null + ], + "GUI_TILE:Lcom/mcmoddev/lib/container/GuiHandlerIds;": [ + 16409, + null, + null + ] + }, + "methods": { + "getValue()I": [ + 1, + null, + [] + ], + "valueOf(Ljava/lang/String;)Lcom/mcmoddev/lib/container/GuiHandlerIds;": [ + 9, + null, + [] + ], + "values()[Lcom/mcmoddev/lib/container/GuiHandlerIds;": [ + 9, + null, + [] + ] + } + }, + "com/mcmoddev/lib/container/IContainerSlot": { + "access": 1537, + "super": "java/lang/Object", + "interfaces": [], + "fields": {}, + "methods": { + "getGroupId()Ljava/lang/String;": [ + 1025, + null, + [] + ], + "getIndex()I": [ + 1025, + null, + [] + ], + "getSlot()Lnet/minecraft/inventory/Slot;": [ + 1025, + null, + [] + ], + "getSubGroupId()Ljava/lang/String;": [ + 1025, + null, + [] + ], + "setIndex(I)V": [ + 1025, + null, + [] + ] + } + }, + "com/mcmoddev/lib/container/IGuiProvider": { + "access": 1537, + "super": "java/lang/Object", + "interfaces": [], + "fields": {}, + "methods": { + "getClientGui(ILnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/world/World;III)Lnet/minecraft/client/gui/inventory/GuiContainer;": [ + 1025, + null, + [] + ], + "getServerGui(ILnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/world/World;III)Lnet/minecraft/inventory/Container;": [ + 1025, + null, + [] + ] + } + }, + "com/mcmoddev/lib/container/IItemGuiProvider": { + "access": 1537, + "super": "java/lang/Object", + "interfaces": [], + "fields": {}, + "methods": { + "getClientGui(Lcom/mcmoddev/lib/container/IItemGuiProvider$GuiType;Lnet/minecraft/item/ItemStack;Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/world/World;III)Lnet/minecraft/client/gui/inventory/GuiContainer;": [ + 1, + null, + [] + ], + "getServerGui(Lcom/mcmoddev/lib/container/IItemGuiProvider$GuiType;Lnet/minecraft/item/ItemStack;Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/world/World;III)Lnet/minecraft/inventory/Container;": [ + 1, + null, + [] + ] + } + }, + "com/mcmoddev/lib/container/IItemGuiProvider$GuiType": { + "access": 16433, + "super": "java/lang/Enum", + "interfaces": [], + "signature": "Ljava/lang/Enum;", + "fields": { + "AIR:Lcom/mcmoddev/lib/container/IItemGuiProvider$GuiType;": [ + 16409, + null, + null + ], + "BLOCK:Lcom/mcmoddev/lib/container/IItemGuiProvider$GuiType;": [ + 16409, + null, + null + ] + }, + "methods": { + "valueOf(Ljava/lang/String;)Lcom/mcmoddev/lib/container/IItemGuiProvider$GuiType;": [ + 9, + null, + [] + ], + "values()[Lcom/mcmoddev/lib/container/IItemGuiProvider$GuiType;": [ + 9, + null, + [] + ] + } + }, + "com/mcmoddev/lib/container/IItemStackGuiProvider": { + "access": 1537, + "super": "java/lang/Object", + "interfaces": [], + "fields": {}, + "methods": { + "getGuiProvider(Lnet/minecraft/item/ItemStack;)Lcom/mcmoddev/lib/container/IGuiProvider;": [ + 1, + null, + [] + ] + } + }, + "com/mcmoddev/lib/container/IWidgetContainer": { + "access": 1537, + "super": "java/lang/Object", + "interfaces": [], + "fields": {}, + "methods": { + "getDistance(Lnet/minecraft/entity/player/EntityPlayer;)I": [ + 1, + null, + [] + ], + "getGuiUpdateTag(Z)Lnet/minecraft/nbt/NBTTagCompound;": [ + 1, + null, + [] + ], + "getRootWidgetGui(Lcom/mcmoddev/lib/container/gui/GuiContext;)Lcom/mcmoddev/lib/container/gui/IWidgetGui;": [ + 1, + null, + [] + ], + "getWidgets(Lcom/mcmoddev/lib/container/gui/GuiContext;)Ljava/util/List;": [ + 1, + "(Lcom/mcmoddev/lib/container/gui/GuiContext;)Ljava/util/List;", + [] + ], + "isValid()Z": [ + 1, + null, + [] + ], + "receiveGuiUpdateTag(Lnet/minecraft/nbt/NBTTagCompound;)V": [ + 1, + null, + [] + ] + } + }, + "com/mcmoddev/lib/container/IWidgetContainerProxy": { + "access": 1537, + "super": "java/lang/Object", + "interfaces": [], + "fields": {}, + "methods": { + "getWidgetContainer()Lcom/mcmoddev/lib/container/IWidgetContainer;": [ + 1025, + null, + [] + ] + } + }, + "com/mcmoddev/lib/container/MMDContainer": { + "access": 33, + "super": "net/minecraft/inventory/Container", + "interfaces": [], + "fields": {}, + "methods": { + "(Lcom/mcmoddev/lib/container/IWidgetContainer;Lnet/minecraft/entity/player/EntityPlayer;)V": [ + 1, + null, + [] + ], + "canInteractWith(Lnet/minecraft/entity/player/EntityPlayer;)Z": [ + 1, + null, + [] + ], + "detectAndSendChanges()V": [ + 1, + null, + [] + ], + "findWidgetByKey(Ljava/lang/String;)Lcom/mcmoddev/lib/container/widget/IWidget;": [ + 1, + null, + [] + ], + "getProvider()Lcom/mcmoddev/lib/container/IWidgetContainer;": [ + 1, + null, + [] + ], + "getWidgets()Ljava/util/List;": [ + 1, + "()Ljava/util/List;", + [] + ], + "handleMessageFromClient(Lnet/minecraft/nbt/NBTTagCompound;)V": [ + 1, + null, + [] + ], + "handleMessageFromServer(Lnet/minecraft/nbt/NBTTagCompound;)V": [ + 1, + null, + [] + ], + "transferStackInSlot(Lnet/minecraft/entity/player/EntityPlayer;I)Lnet/minecraft/item/ItemStack;": [ + 1, + null, + [] + ] + } + }, + "com/mcmoddev/lib/container/MMDGuiHandler": { + "access": 33, + "super": "java/lang/Object", + "interfaces": [ + "net/minecraftforge/fml/common/network/IGuiHandler" + ], + "fields": { + "INSTANCE:Lcom/mcmoddev/lib/container/MMDGuiHandler;": [ + 25, + null, + null + ] + }, + "methods": { + "()V": [ + 4, + null, + [] + ], + "getClientGuiElement(ILnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/world/World;III)Ljava/lang/Object;": [ + 1, + null, + [] + ], + "getServerGuiElement(ILnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/world/World;III)Ljava/lang/Object;": [ + 1, + null, + [] + ], + "init()V": [ + 9, + null, + [] + ] + } + }, + "com/mcmoddev/lib/container/PlayerInventory": { + "access": 16433, + "super": "java/lang/Enum", + "interfaces": [], + "signature": "Ljava/lang/Enum;", + "fields": { + "EQUIPMENT:Lcom/mcmoddev/lib/container/PlayerInventory;": [ + 16409, + null, + null + ], + "INVENTORY:Lcom/mcmoddev/lib/container/PlayerInventory;": [ + 16409, + null, + null + ], + "OFF_HAND:Lcom/mcmoddev/lib/container/PlayerInventory;": [ + 16409, + null, + null + ], + "QUICKBAR:Lcom/mcmoddev/lib/container/PlayerInventory;": [ + 16409, + null, + null + ], + "insertInReverse:Z": [ + 17, + null, + null + ], + "key:Ljava/lang/String;": [ + 17, + null, + null + ], + "slotCount:I": [ + 17, + null, + null + ], + "slotEndExclusive:I": [ + 17, + null, + null + ], + "slotStart:I": [ + 17, + null, + null + ] + }, + "methods": { + "valueOf(Ljava/lang/String;)Lcom/mcmoddev/lib/container/PlayerInventory;": [ + 9, + null, + [] + ], + "values()[Lcom/mcmoddev/lib/container/PlayerInventory;": [ + 9, + null, + [] + ] + } + }, + "com/mcmoddev/lib/container/PlayerInventoryInfo": { + "access": 33, + "super": "java/lang/Object", + "interfaces": [], + "fields": { + "inventory:Lcom/mcmoddev/lib/container/PlayerInventory;": [ + 17, + null, + null + ], + "slotsPerRow:I": [ + 17, + null, + null + ] + }, + "methods": { + "(Lcom/mcmoddev/lib/container/PlayerInventory;I)V": [ + 1, + null, + [] + ] + } + }, + "com/mcmoddev/lib/container/gui/BaseButtonWidgetGui": { + "access": 1057, + "super": "com/mcmoddev/lib/container/gui/BaseWidgetGui", + "interfaces": [], + "fields": { + "STANDARD_HEIGHT:I": [ + 25, + null, + 20 + ], + "STANDARD_WIDTH:I": [ + 25, + null, + 120 + ] + }, + "methods": { + "()V": [ + 4, + null, + [] + ], + "(II)V": [ + 4, + null, + [] + ], + "(Lcom/mcmoddev/lib/container/gui/util/Size2D;)V": [ + 4, + null, + [] + ], + "connectToWidget(Lcom/mcmoddev/lib/container/widget/IWidget;)Lcom/mcmoddev/lib/container/gui/BaseButtonWidgetGui;": [ + 1, + null, + [] + ], + "connectToWidget(Ljava/lang/String;)Lcom/mcmoddev/lib/container/gui/BaseButtonWidgetGui;": [ + 1, + null, + [] + ], + "drawBackgroundLayer(Lcom/mcmoddev/lib/container/gui/MMDGuiContainer;FII)V": [ + 1, + null, + [] + ], + "getLayers()[Lcom/mcmoddev/lib/container/gui/GuiPieceLayer;": [ + 1, + null, + [] + ], + "mouseReleased(Lcom/mcmoddev/lib/container/gui/MMDGuiContainer;III)Z": [ + 1, + null, + [] + ], + "setClickAction(Ljava/lang/Runnable;)Lcom/mcmoddev/lib/container/gui/BaseButtonWidgetGui;": [ + 1, + null, + [] + ] + } + }, + "com/mcmoddev/lib/container/gui/BaseSpriteGui": { + "access": 1057, + "super": "com/mcmoddev/lib/container/gui/BaseWidgetGui", + "interfaces": [], + "fields": { + "sprite:Lcom/mcmoddev/lib/container/gui/IGuiSprite;": [ + 20, + null, + null + ] + }, + "methods": { + "(Lcom/mcmoddev/lib/container/gui/IGuiSprite;)V": [ + 4, + null, + [] + ], + "(Lcom/mcmoddev/lib/container/gui/IGuiSprite;II)V": [ + 4, + null, + [] + ] + } + }, + "com/mcmoddev/lib/container/gui/BaseWidgetGui": { + "access": 1057, + "super": "java/lang/Object", + "interfaces": [ + "com/mcmoddev/lib/container/gui/IWidgetGui" + ], + "fields": {}, + "methods": { + "()V": [ + 4, + null, + [] + ], + "(II)V": [ + 4, + null, + [] + ], + "(Lcom/mcmoddev/lib/container/gui/util/Size2D;)V": [ + 4, + null, + [] + ], + "canSetVisibility()Z": [ + 4, + null, + [] + ], + "getPadding()Lcom/mcmoddev/lib/container/gui/util/Padding;": [ + 1, + null, + [] + ], + "getParentLayout()Lcom/mcmoddev/lib/container/gui/IWidgetLayout;": [ + 1, + null, + [] + ], + "getSize()Lcom/mcmoddev/lib/container/gui/util/Size2D;": [ + 1, + null, + [] + ], + "isInside(II)Z": [ + 4, + null, + [] + ], + "isVisible()Z": [ + 1, + null, + [] + ], + "setPadding(Lcom/mcmoddev/lib/container/gui/util/Padding;)Lcom/mcmoddev/lib/container/gui/IWidgetGui;": [ + 1, + null, + [] + ], + "setParentLayout(Lcom/mcmoddev/lib/container/gui/IWidgetLayout;)Lcom/mcmoddev/lib/container/gui/IWidgetGui;": [ + 1, + null, + [] + ], + "setSize(Lcom/mcmoddev/lib/container/gui/util/Size2D;)V": [ + 1, + null, + [] + ], + "setVisibility(Z)Z": [ + 1, + null, + [] + ], + "setVisibilityProtected(Z)V": [ + 4, + null, + [] + ] + } + }, + "com/mcmoddev/lib/container/gui/ColorOverlayPiece": { + "access": 33, + "super": "com/mcmoddev/lib/container/gui/BaseWidgetGui", + "interfaces": [], + "fields": {}, + "methods": { + "(III)V": [ + 1, + null, + [] + ], + "(IIII)V": [ + 1, + null, + [] + ], + "drawMiddleLayer(Lcom/mcmoddev/lib/container/gui/MMDGuiContainer;FII)V": [ + 1, + null, + [] + ], + "getColor()I": [ + 1, + null, + [] + ], + "getLayer()Lcom/mcmoddev/lib/container/gui/GuiPieceLayer;": [ + 1, + null, + [] + ], + "setColor(I)V": [ + 1, + null, + [] + ], + "setColor(II)V": [ + 1, + null, + [] + ] + } + }, + "com/mcmoddev/lib/container/gui/FeatureWrapperGui": { + "access": 33, + "super": "com/mcmoddev/lib/container/gui/layout/SinglePieceWrapper", + "interfaces": [], + "fields": {}, + "methods": { + "(Lcom/mcmoddev/lib/container/gui/GuiContext;Lcom/mcmoddev/lib/feature/IFeature;)V": [ + 1, + null, + [] + ], + "(Lcom/mcmoddev/lib/container/gui/GuiContext;Lcom/mcmoddev/lib/feature/IFeatureHolder;Ljava/lang/String;)V": [ + 1, + null, + [] + ], + "extractFeaturePiece(Lcom/mcmoddev/lib/container/gui/GuiContext;Lcom/mcmoddev/lib/feature/IFeature;)Lcom/mcmoddev/lib/container/gui/IWidgetGui;": [ + 9, + null, + [] + ], + "extractFeaturePiece(Lcom/mcmoddev/lib/container/gui/GuiContext;Lcom/mcmoddev/lib/feature/IFeatureHolder;Ljava/lang/String;)Lcom/mcmoddev/lib/container/gui/IWidgetGui;": [ + 9, + null, + [] + ], + "extractFeaturePieceSafe(Lcom/mcmoddev/lib/container/gui/GuiContext;Lcom/mcmoddev/lib/feature/IFeature;)Lcom/mcmoddev/lib/container/gui/IWidgetGui;": [ + 9, + null, + [] + ], + "extractFeaturePieceSafe(Lcom/mcmoddev/lib/container/gui/GuiContext;Lcom/mcmoddev/lib/feature/IFeatureHolder;Ljava/lang/String;)Lcom/mcmoddev/lib/container/gui/IWidgetGui;": [ + 9, + null, + [] + ] + } + }, + "com/mcmoddev/lib/container/gui/FluidWidgetGui": { + "access": 33, + "super": "com/mcmoddev/lib/container/gui/BaseWidgetGui", + "interfaces": [], + "fields": {}, + "methods": { + "(Ljava/util/function/Supplier;IILcom/mcmoddev/lib/container/gui/GuiPieceLayer;)V": [ + 1, + "(Ljava/util/function/Supplier;IILcom/mcmoddev/lib/container/gui/GuiPieceLayer;)V", + [] + ], + "(Ljava/util/function/Supplier;IILcom/mcmoddev/lib/container/gui/GuiPieceLayer;Ljava/util/function/Supplier;)V": [ + 1, + "(Ljava/util/function/Supplier;IILcom/mcmoddev/lib/container/gui/GuiPieceLayer;Ljava/util/function/Supplier;)V", + [] + ], + "(Lnet/minecraftforge/fluids/Fluid;IILcom/mcmoddev/lib/container/gui/GuiPieceLayer;)V": [ + 1, + null, + [] + ], + "(Lnet/minecraftforge/fluids/Fluid;IILcom/mcmoddev/lib/container/gui/GuiPieceLayer;Ljava/util/function/Supplier;)V": [ + 1, + "(Lnet/minecraftforge/fluids/Fluid;IILcom/mcmoddev/lib/container/gui/GuiPieceLayer;Ljava/util/function/Supplier;)V", + [] + ], + "drawBackgroundLayer(Lcom/mcmoddev/lib/container/gui/MMDGuiContainer;FII)V": [ + 1, + null, + [] + ], + "drawForegroundLayer(Lcom/mcmoddev/lib/container/gui/MMDGuiContainer;II)V": [ + 1, + null, + [] + ], + "drawForegroundTopLayer(Lcom/mcmoddev/lib/container/gui/MMDGuiContainer;II)V": [ + 1, + null, + [] + ], + "drawMiddleLayer(Lcom/mcmoddev/lib/container/gui/MMDGuiContainer;FII)V": [ + 1, + null, + [] + ], + "getLayer()Lcom/mcmoddev/lib/container/gui/GuiPieceLayer;": [ + 1, + null, + [] + ] + } + }, + "com/mcmoddev/lib/container/gui/GuiContext": { + "access": 33, + "super": "java/lang/Object", + "interfaces": [], + "fields": {}, + "methods": { + "(Lnet/minecraft/entity/player/EntityPlayer;Lcom/mcmoddev/lib/container/MMDContainer;Lcom/mcmoddev/lib/container/IWidgetContainer;)V": [ + 1, + null, + [] + ], + "(Lnet/minecraft/entity/player/EntityPlayer;Lcom/mcmoddev/lib/container/MMDContainer;Lcom/mcmoddev/lib/container/gui/MMDGuiContainer;Lcom/mcmoddev/lib/container/IWidgetContainer;)V": [ + 1, + null, + [] + ], + "findWidgetByKey(Ljava/lang/String;)Lcom/mcmoddev/lib/container/widget/IWidget;": [ + 1, + null, + [] + ], + "findWidgetByKey(Ljava/lang/String;Z)Lcom/mcmoddev/lib/container/widget/IWidget;": [ + 1, + null, + [] + ], + "getContainer()Lcom/mcmoddev/lib/container/MMDContainer;": [ + 1, + null, + [] + ], + "getGuiContainer()Lcom/mcmoddev/lib/container/gui/MMDGuiContainer;": [ + 1, + null, + [] + ], + "getPlayer()Lnet/minecraft/entity/player/EntityPlayer;": [ + 1, + null, + [] + ], + "getWidgetProvider()Lcom/mcmoddev/lib/container/IWidgetContainer;": [ + 1, + null, + [] + ], + "getWidgets()Ljava/util/List;": [ + 1, + "()Ljava/util/List;", + [] + ] + } + }, + "com/mcmoddev/lib/container/gui/GuiPieceLayer": { + "access": 16433, + "super": "java/lang/Enum", + "interfaces": [], + "signature": "Ljava/lang/Enum;", + "fields": { + "BACKGROUND:Lcom/mcmoddev/lib/container/gui/GuiPieceLayer;": [ + 16409, + null, + null + ], + "FOREGROUND:Lcom/mcmoddev/lib/container/gui/GuiPieceLayer;": [ + 16409, + null, + null + ], + "MIDDLE:Lcom/mcmoddev/lib/container/gui/GuiPieceLayer;": [ + 16409, + null, + null + ], + "TOP:Lcom/mcmoddev/lib/container/gui/GuiPieceLayer;": [ + 16409, + null, + null + ] + }, + "methods": { + "valueOf(Ljava/lang/String;)Lcom/mcmoddev/lib/container/gui/GuiPieceLayer;": [ + 9, + null, + [] + ], + "values()[Lcom/mcmoddev/lib/container/gui/GuiPieceLayer;": [ + 9, + null, + [] + ] + } + }, + "com/mcmoddev/lib/container/gui/GuiSprites": { + "access": 16433, + "super": "java/lang/Enum", + "interfaces": [ + "com/mcmoddev/lib/container/gui/IGuiSprite" + ], + "signature": "Ljava/lang/Enum;Lcom/mcmoddev/lib/container/gui/IGuiSprite;", + "fields": { + "ENERGY_GRAY_EMPTY:Lcom/mcmoddev/lib/container/gui/GuiSprites;": [ + 16409, + null, + null + ], + "ENERGY_GRAY_FULL:Lcom/mcmoddev/lib/container/gui/GuiSprites;": [ + 16409, + null, + null + ], + "ENERGY_RF_EMPTY:Lcom/mcmoddev/lib/container/gui/GuiSprites;": [ + 16409, + null, + null + ], + "ENERGY_RF_FULL:Lcom/mcmoddev/lib/container/gui/GuiSprites;": [ + 16409, + null, + null + ], + "ENERGY_TESLA_EMPTY:Lcom/mcmoddev/lib/container/gui/GuiSprites;": [ + 16409, + null, + null + ], + "ENERGY_TESLA_FULL:Lcom/mcmoddev/lib/container/gui/GuiSprites;": [ + 16409, + null, + null + ], + "MC_BUTTON:Lcom/mcmoddev/lib/container/gui/GuiSprites;": [ + 16409, + null, + null + ], + "MC_BUTTON_DISABLED:Lcom/mcmoddev/lib/container/gui/GuiSprites;": [ + 16409, + null, + null + ], + "MC_BUTTON_HOVER:Lcom/mcmoddev/lib/container/gui/GuiSprites;": [ + 16409, + null, + null + ], + "MC_DEMO_BACKGROUND:Lcom/mcmoddev/lib/container/gui/GuiSprites;": [ + 16409, + null, + null + ], + "MC_SLOT_BACKGROUND:Lcom/mcmoddev/lib/container/gui/GuiSprites;": [ + 16409, + null, + null + ], + "TANK_CONTAINER:Lcom/mcmoddev/lib/container/gui/GuiSprites;": [ + 16409, + null, + null + ], + "TANK_OVERLAY:Lcom/mcmoddev/lib/container/gui/GuiSprites;": [ + 16409, + null, + null + ] + }, + "methods": { + "getHeight()I": [ + 1, + null, + [] + ], + "getLeft()I": [ + 1, + null, + [] + ], + "getTexture()Lcom/mcmoddev/lib/container/gui/IGuiTexture;": [ + 1, + null, + [] + ], + "getTop()I": [ + 1, + null, + [] + ], + "getWidth()I": [ + 1, + null, + [] + ], + "needsAlpha()Z": [ + 1, + null, + [] + ], + "valueOf(Ljava/lang/String;)Lcom/mcmoddev/lib/container/gui/GuiSprites;": [ + 9, + null, + [] + ], + "values()[Lcom/mcmoddev/lib/container/gui/GuiSprites;": [ + 9, + null, + [] + ] + } + }, + "com/mcmoddev/lib/container/gui/GuiTextures": { + "access": 16433, + "super": "java/lang/Enum", + "interfaces": [ + "com/mcmoddev/lib/container/gui/IGuiTexture" + ], + "signature": "Ljava/lang/Enum;Lcom/mcmoddev/lib/container/gui/IGuiTexture;", + "fields": { + "GUI_BASE:Lcom/mcmoddev/lib/container/gui/GuiTextures;": [ + 16409, + null, + null + ], + "MC_DEMO_BACKGROUND:Lcom/mcmoddev/lib/container/gui/GuiTextures;": [ + 16409, + null, + null + ], + "MC_GENERIC_54:Lcom/mcmoddev/lib/container/gui/GuiTextures;": [ + 16409, + null, + null + ], + "MC_WIDGETS:Lcom/mcmoddev/lib/container/gui/GuiTextures;": [ + 16409, + null, + null + ] + }, + "methods": { + "getResource()Lnet/minecraft/util/ResourceLocation;": [ + 1, + null, + [] + ], + "valueOf(Ljava/lang/String;)Lcom/mcmoddev/lib/container/gui/GuiTextures;": [ + 9, + null, + [] + ], + "values()[Lcom/mcmoddev/lib/container/gui/GuiTextures;": [ + 9, + null, + [] + ] + } + }, + "com/mcmoddev/lib/container/gui/IFocusableHandler": { + "access": 1537, + "super": "java/lang/Object", + "interfaces": [], + "fields": {}, + "methods": { + "getCurrentFocus()Lcom/mcmoddev/lib/container/gui/IFocusableWidgetGui;": [ + 1025, + null, + [] + ], + "setFocus(Lcom/mcmoddev/lib/container/gui/IFocusableWidgetGui;)V": [ + 1025, + null, + [] + ] + } + }, + "com/mcmoddev/lib/container/gui/IFocusableWidgetGui": { + "access": 1537, + "super": "java/lang/Object", + "interfaces": [ + "com/mcmoddev/lib/container/gui/IWidgetGui" + ], + "fields": {}, + "methods": { + "focus()V": [ + 1025, + null, + [] + ], + "handleKeyPress(CI)Z": [ + 1025, + null, + [] + ], + "onBlur()V": [ + 1025, + null, + [] + ], + "onFocus()V": [ + 1025, + null, + [] + ], + "setFocusableHandler(Lcom/mcmoddev/lib/container/gui/IFocusableHandler;)V": [ + 1025, + null, + [] + ] + } + }, + "com/mcmoddev/lib/container/gui/IGuiSprite": { + "access": 1537, + "super": "java/lang/Object", + "interfaces": [], + "fields": {}, + "methods": { + "draw(Lnet/minecraft/client/gui/GuiScreen;II)V": [ + 1, + null, + [] + ], + "draw(Lnet/minecraft/client/gui/GuiScreen;IIII)V": [ + 1, + null, + [] + ], + "draw(Lnet/minecraft/client/gui/GuiScreen;IIIIII)V": [ + 1, + null, + [] + ], + "draw(Lnet/minecraft/client/gui/GuiScreen;IIIIZ)V": [ + 1, + null, + [] + ], + "getHeight()I": [ + 1025, + null, + [] + ], + "getLeft()I": [ + 1025, + null, + [] + ], + "getTexture()Lcom/mcmoddev/lib/container/gui/IGuiTexture;": [ + 1025, + null, + [] + ], + "getTop()I": [ + 1025, + null, + [] + ], + "getWidth()I": [ + 1025, + null, + [] + ], + "needsAlpha()Z": [ + 1025, + null, + [] + ] + } + }, + "com/mcmoddev/lib/container/gui/IGuiTexture": { + "access": 1537, + "super": "java/lang/Object", + "interfaces": [], + "fields": {}, + "methods": { + "bind()V": [ + 1, + null, + [] + ], + "getResource()Lnet/minecraft/util/ResourceLocation;": [ + 1025, + null, + [] + ] + } + }, + "com/mcmoddev/lib/container/gui/IWidgetGui": { + "access": 1537, + "super": "java/lang/Object", + "interfaces": [], + "fields": {}, + "methods": { + "capturesMouseOnClick()Z": [ + 1, + null, + [] + ], + "drawBackgroundLayer(Lcom/mcmoddev/lib/container/gui/MMDGuiContainer;FII)V": [ + 1, + null, + [] + ], + "drawForegroundLayer(Lcom/mcmoddev/lib/container/gui/MMDGuiContainer;II)V": [ + 1, + null, + [] + ], + "drawForegroundTopLayer(Lcom/mcmoddev/lib/container/gui/MMDGuiContainer;II)V": [ + 1, + null, + [] + ], + "drawMiddleLayer(Lcom/mcmoddev/lib/container/gui/MMDGuiContainer;FII)V": [ + 1, + null, + [] + ], + "getLayer()Lcom/mcmoddev/lib/container/gui/GuiPieceLayer;": [ + 1, + null, + [] + ], + "getLayers()[Lcom/mcmoddev/lib/container/gui/GuiPieceLayer;": [ + 1, + null, + [] + ], + "getPadding()Lcom/mcmoddev/lib/container/gui/util/Padding;": [ + 1025, + null, + [] + ], + "getParentLayout()Lcom/mcmoddev/lib/container/gui/IWidgetLayout;": [ + 1025, + null, + [] + ], + "getRenderOffset()Lcom/mcmoddev/lib/container/gui/util/Size2D;": [ + 1, + null, + [] + ], + "getSize()Lcom/mcmoddev/lib/container/gui/util/Size2D;": [ + 1025, + null, + [] + ], + "getTooltip(Ljava/util/List;)V": [ + 1, + "(Ljava/util/List;)V", + [] + ], + "init(Lcom/mcmoddev/lib/container/gui/GuiContext;)V": [ + 1, + null, + [] + ], + "isVisible()Z": [ + 1, + null, + [] + ], + "mouseClickMove(Lcom/mcmoddev/lib/container/gui/MMDGuiContainer;III)Z": [ + 1, + null, + [] + ], + "mouseClicked(Lcom/mcmoddev/lib/container/gui/MMDGuiContainer;III)Z": [ + 1, + null, + [] + ], + "mouseReleased(Lcom/mcmoddev/lib/container/gui/MMDGuiContainer;III)Z": [ + 1, + null, + [] + ], + "postInit(Lcom/mcmoddev/lib/container/gui/GuiContext;)V": [ + 1, + null, + [] + ], + "rendersInLayer(Lcom/mcmoddev/lib/container/gui/GuiPieceLayer;)Z": [ + 1, + null, + [] + ], + "setPadding(Lcom/mcmoddev/lib/container/gui/util/Padding;)Lcom/mcmoddev/lib/container/gui/IWidgetGui;": [ + 1025, + null, + [] + ], + "setParentLayout(Lcom/mcmoddev/lib/container/gui/IWidgetLayout;)Lcom/mcmoddev/lib/container/gui/IWidgetGui;": [ + 1025, + null, + [] + ], + "setVisibility(Z)Z": [ + 1025, + null, + [] + ], + "tick(Lcom/mcmoddev/lib/container/gui/GuiContext;)V": [ + 1, + null, + [] + ] + } + }, + "com/mcmoddev/lib/container/gui/IWidgetGuiDebugInfo": { + "access": 1537, + "super": "java/lang/Object", + "interfaces": [ + "com/mcmoddev/lib/container/gui/IWidgetGui" + ], + "fields": {}, + "methods": { + "getDebugInfo()Ljava/lang/String;": [ + 1025, + null, + [] + ] + } + }, + "com/mcmoddev/lib/container/gui/IWidgetLayout": { + "access": 1537, + "super": "java/lang/Object", + "interfaces": [ + "com/mcmoddev/lib/container/gui/IWidgetGui" + ], + "fields": {}, + "methods": { + "getChildPosition(Lcom/mcmoddev/lib/container/gui/IWidgetGui;)Lcom/mcmoddev/lib/container/gui/util/Size2D;": [ + 1025, + null, + [] + ], + "getChildren()Ljava/util/List;": [ + 1025, + "()Ljava/util/List;", + [] + ], + "hitTest(II)Ljava/util/List;": [ + 1, + "(II)Ljava/util/List;", + [] + ] + } + }, + "com/mcmoddev/lib/container/gui/IWidgetLayoutDebugInfo": { + "access": 1537, + "super": "java/lang/Object", + "interfaces": [ + "com/mcmoddev/lib/container/gui/IWidgetLayout" + ], + "fields": {}, + "methods": { + "getDebugInfo(Lcom/mcmoddev/lib/container/gui/IWidgetGui;)Ljava/lang/String;": [ + 1025, + null, + [] + ] + } + }, + "com/mcmoddev/lib/container/gui/ImageButtonWidgetGui": { + "access": 33, + "super": "com/mcmoddev/lib/container/gui/BaseButtonWidgetGui", + "interfaces": [], + "fields": {}, + "methods": { + "(Lcom/mcmoddev/lib/container/gui/IGuiSprite;)V": [ + 1, + null, + [] + ], + "(Lcom/mcmoddev/lib/container/gui/IGuiSprite;II)V": [ + 1, + null, + [] + ], + "drawForegroundLayer(Lcom/mcmoddev/lib/container/gui/MMDGuiContainer;II)V": [ + 1, + null, + [] + ] + } + }, + "com/mcmoddev/lib/container/gui/InventoryGrid": { + "access": 33, + "super": "com/mcmoddev/lib/container/gui/layout/BaseGridLayout", + "interfaces": [], + "fields": {}, + "methods": { + "(I[Ljava/lang/String;)V": [ + 129, + null, + [] + ], + "init(Lcom/mcmoddev/lib/container/gui/GuiContext;)V": [ + 1, + null, + [] + ], + "postInit(Lcom/mcmoddev/lib/container/gui/GuiContext;)V": [ + 1, + null, + [] + ], + "setColorOverlay(I)V": [ + 1, + null, + [] + ], + "setColorOverlay(II)V": [ + 1, + null, + [] + ] + } + }, + "com/mcmoddev/lib/container/gui/LabelWidgetGui": { + "access": 33, + "super": "com/mcmoddev/lib/container/gui/BaseWidgetGui", + "interfaces": [], + "fields": {}, + "methods": { + "()V": [ + 1, + null, + [] + ], + "(Ljava/lang/String;)V": [ + 1, + null, + [] + ], + "(Ljava/lang/String;Lnet/minecraft/client/gui/FontRenderer;Lcom/mcmoddev/lib/container/gui/GuiPieceLayer;I)V": [ + 1, + null, + [] + ], + "connectDataWidget(Ljava/lang/String;Ljava/lang/String;)Lcom/mcmoddev/lib/container/gui/LabelWidgetGui;": [ + 1, + null, + [] + ], + "drawBackgroundLayer(Lcom/mcmoddev/lib/container/gui/MMDGuiContainer;FII)V": [ + 1, + null, + [] + ], + "drawForegroundLayer(Lcom/mcmoddev/lib/container/gui/MMDGuiContainer;II)V": [ + 1, + null, + [] + ], + "drawForegroundTopLayer(Lcom/mcmoddev/lib/container/gui/MMDGuiContainer;II)V": [ + 1, + null, + [] + ], + "drawMiddleLayer(Lcom/mcmoddev/lib/container/gui/MMDGuiContainer;FII)V": [ + 1, + null, + [] + ], + "drawText(Lcom/mcmoddev/lib/container/gui/MMDGuiContainer;)V": [ + 4, + null, + [] + ], + "getLayer()Lcom/mcmoddev/lib/container/gui/GuiPieceLayer;": [ + 1, + null, + [] + ], + "getSize()Lcom/mcmoddev/lib/container/gui/util/Size2D;": [ + 1, + null, + [] + ], + "getText()Ljava/lang/String;": [ + 1, + null, + [] + ], + "setText(Ljava/lang/String;)Z": [ + 1, + null, + [] + ], + "tick(Lcom/mcmoddev/lib/container/gui/GuiContext;)V": [ + 1, + null, + [] + ] + } + }, + "com/mcmoddev/lib/container/gui/MMDGuiContainer": { + "access": 33, + "super": "net/minecraft/client/gui/inventory/GuiContainer", + "interfaces": [ + "com/mcmoddev/lib/container/gui/IFocusableHandler" + ], + "fields": { + "holder:Lcom/mcmoddev/lib/container/IWidgetContainer;": [ + 20, + null, + null + ], + "player:Lnet/minecraft/entity/player/EntityPlayer;": [ + 20, + null, + null + ], + "rootPiece:Lcom/mcmoddev/lib/container/gui/IWidgetGui;": [ + 4, + null, + null + ] + }, + "methods": { + "(Lcom/mcmoddev/lib/container/IWidgetContainer;Lnet/minecraft/entity/player/EntityPlayer;Lcom/mcmoddev/lib/container/MMDContainer;)V": [ + 1, + null, + [] + ], + "(Lcom/mcmoddev/lib/container/IWidgetContainer;Lnet/minecraft/entity/player/EntityPlayer;Lcom/mcmoddev/lib/container/MMDContainer;I)V": [ + 1, + null, + [] + ], + "(Lcom/mcmoddev/lib/container/IWidgetContainer;Lnet/minecraft/entity/player/EntityPlayer;Lcom/mcmoddev/lib/container/MMDContainer;II)V": [ + 1, + null, + [] + ], + "clearFocus()V": [ + 1, + null, + [] + ], + "drawFilledRect(IIIII)V": [ + 1, + null, + [] + ], + "drawFilledRect(IIIIII)V": [ + 1, + null, + [] + ], + "drawGuiContainerBackgroundLayer(FII)V": [ + 4, + null, + [] + ], + "drawGuiContainerForegroundLayer(II)V": [ + 4, + null, + [] + ], + "drawScreen(IIF)V": [ + 1, + null, + [] + ], + "findWidgetByKey(Ljava/lang/String;)Lcom/mcmoddev/lib/container/widget/IWidget;": [ + 1, + null, + [] + ], + "getBackgroundSprite()Lcom/mcmoddev/lib/container/gui/IGuiSprite;": [ + 4, + null, + [] + ], + "getCurrentFocus()Lcom/mcmoddev/lib/container/gui/IFocusableWidgetGui;": [ + 1, + null, + [] + ], + "getRenderLeft()I": [ + 1, + null, + [] + ], + "getRenderOffset(Lcom/mcmoddev/lib/container/gui/IWidgetGui;)Lcom/mcmoddev/lib/container/gui/util/Size2D;": [ + 1, + null, + [] + ], + "getRenderTop()I": [ + 1, + null, + [] + ], + "hasBackground()Z": [ + 4, + null, + [] + ], + "initGui()V": [ + 1, + null, + [] + ], + "keyTyped(CI)V": [ + 4, + null, + [ + "java/io/IOException" + ] + ], + "mouseClicked(III)V": [ + 4, + null, + [ + "java/io/IOException" + ] + ], + "mouseReleased(III)V": [ + 4, + null, + [] + ], + "setFocus(Lcom/mcmoddev/lib/container/gui/IFocusableWidgetGui;)V": [ + 1, + null, + [] + ], + "updateScreen()V": [ + 1, + null, + [] + ] + } + }, + "com/mcmoddev/lib/container/gui/SlotGuiWidget": { + "access": 33, + "super": "com/mcmoddev/lib/container/gui/SpriteBackgroundGui", + "interfaces": [], + "fields": {}, + "methods": { + "(Lnet/minecraft/inventory/Slot;)V": [ + 1, + null, + [] + ] + } + }, + "com/mcmoddev/lib/container/gui/SpriteBackgroundGui": { + "access": 33, + "super": "com/mcmoddev/lib/container/gui/BaseSpriteGui", + "interfaces": [], + "fields": {}, + "methods": { + "(Lcom/mcmoddev/lib/container/gui/IGuiSprite;)V": [ + 1, + null, + [] + ], + "(Lcom/mcmoddev/lib/container/gui/IGuiSprite;II)V": [ + 1, + null, + [] + ], + "drawBackgroundLayer(Lcom/mcmoddev/lib/container/gui/MMDGuiContainer;FII)V": [ + 1, + null, + [] + ], + "getLayer()Lcom/mcmoddev/lib/container/gui/GuiPieceLayer;": [ + 1, + null, + [] + ] + } + }, + "com/mcmoddev/lib/container/gui/SpriteForegroundGui": { + "access": 33, + "super": "com/mcmoddev/lib/container/gui/BaseSpriteGui", + "interfaces": [], + "fields": {}, + "methods": { + "(Lcom/mcmoddev/lib/container/gui/IGuiSprite;)V": [ + 1, + null, + [] + ], + "(Lcom/mcmoddev/lib/container/gui/IGuiSprite;II)V": [ + 1, + null, + [] + ], + "drawForegroundLayer(Lcom/mcmoddev/lib/container/gui/MMDGuiContainer;II)V": [ + 1, + null, + [] + ], + "getLayer()Lcom/mcmoddev/lib/container/gui/GuiPieceLayer;": [ + 1, + null, + [] + ] + } + }, + "com/mcmoddev/lib/container/gui/TextButtonWidgetGui": { + "access": 33, + "super": "com/mcmoddev/lib/container/gui/BaseButtonWidgetGui", + "interfaces": [], + "fields": {}, + "methods": { + "(Ljava/lang/String;)V": [ + 1, + null, + [] + ], + "(Ljava/lang/String;I)V": [ + 1, + null, + [] + ], + "drawForegroundLayer(Lcom/mcmoddev/lib/container/gui/MMDGuiContainer;II)V": [ + 1, + null, + [] + ] + } + }, + "com/mcmoddev/lib/container/gui/TextEditWidgetGui": { + "access": 33, + "super": "com/mcmoddev/lib/container/gui/BaseWidgetGui", + "interfaces": [ + "com/mcmoddev/lib/container/gui/IFocusableWidgetGui" + ], + "fields": { + "DEFAULT_HEIGHT:I": [ + 25, + null, + 18 + ] + }, + "methods": { + "(I)V": [ + 1, + null, + [] + ], + "connectActionWidget(Ljava/lang/String;)Lcom/mcmoddev/lib/container/gui/TextEditWidgetGui;": [ + 1, + null, + [] + ], + "connectDataWidget(Ljava/lang/String;Ljava/lang/String;)Lcom/mcmoddev/lib/container/gui/TextEditWidgetGui;": [ + 1, + null, + [] + ], + "drawForegroundLayer(Lcom/mcmoddev/lib/container/gui/MMDGuiContainer;II)V": [ + 1, + null, + [] + ], + "focus()V": [ + 1, + null, + [] + ], + "getLayers()[Lcom/mcmoddev/lib/container/gui/GuiPieceLayer;": [ + 1, + null, + [] + ], + "getText()Ljava/lang/String;": [ + 1, + null, + [] + ], + "handleKeyPress(CI)Z": [ + 1, + null, + [] + ], + "mouseReleased(Lcom/mcmoddev/lib/container/gui/MMDGuiContainer;III)Z": [ + 1, + null, + [] + ], + "onBlur()V": [ + 1, + null, + [] + ], + "onFocus()V": [ + 1, + null, + [] + ], + "setFocusableHandler(Lcom/mcmoddev/lib/container/gui/IFocusableHandler;)V": [ + 1, + null, + [] + ], + "setMaxLength(I)Lcom/mcmoddev/lib/container/gui/TextEditWidgetGui;": [ + 1, + null, + [] + ], + "setText(Ljava/lang/String;)V": [ + 1, + null, + [] + ], + "tick(Lcom/mcmoddev/lib/container/gui/GuiContext;)V": [ + 1, + null, + [] + ] + } + }, + "com/mcmoddev/lib/container/gui/layout/BaseGridLayout": { + "access": 1057, + "super": "com/mcmoddev/lib/container/gui/layout/BaseLayout", + "interfaces": [ + "com/mcmoddev/lib/container/gui/IWidgetLayoutDebugInfo" + ], + "fields": { + "minColumns:I": [ + 17, + null, + null + ], + "minRows:I": [ + 17, + null, + null + ] + }, + "methods": { + "(II)V": [ + 1, + null, + [] + ], + "addPieceInternal(Lcom/mcmoddev/lib/container/gui/IWidgetGui;II)Lcom/mcmoddev/lib/container/gui/IWidgetGui;": [ + 4, + "(TT;II)TT;", + [] + ], + "addPieceInternal(Lcom/mcmoddev/lib/container/gui/IWidgetGui;IIII)Lcom/mcmoddev/lib/container/gui/IWidgetGui;": [ + 4, + "(TT;IIII)TT;", + [] + ], + "getChildPosition(Lcom/mcmoddev/lib/container/gui/IWidgetGui;)Lcom/mcmoddev/lib/container/gui/util/Size2D;": [ + 1, + null, + [] + ], + "getChildren()Ljava/util/List;": [ + 1, + "()Ljava/util/List;", + [] + ], + "getDebugInfo(Lcom/mcmoddev/lib/container/gui/IWidgetGui;)Ljava/lang/String;": [ + 1, + null, + [] + ], + "getInternalSize()Lcom/mcmoddev/lib/container/gui/layout/BaseGridLayout$GridSizeInfo;": [ + 4, + null, + [] + ], + "getSize()Lcom/mcmoddev/lib/container/gui/util/Size2D;": [ + 1, + null, + [] + ], + "updatePieceInternal(Lcom/mcmoddev/lib/container/gui/IWidgetGui;IIII)Lcom/mcmoddev/lib/container/gui/IWidgetGui;": [ + 4, + "(TT;IIII)TT;", + [] + ] + } + }, + "com/mcmoddev/lib/container/gui/layout/BaseGridLayout$1": { + "access": 4128, + "super": "java/lang/Object", + "interfaces": [], + "fields": {}, + "methods": {} + }, + "com/mcmoddev/lib/container/gui/layout/BaseGridLayout$GridPieceInfo": { + "access": 33, + "super": "java/lang/Object", + "interfaces": [], + "fields": { + "column:I": [ + 17, + null, + null + ], + "columnSpan:I": [ + 17, + null, + null + ], + "piece:Lcom/mcmoddev/lib/container/gui/IWidgetGui;": [ + 17, + null, + null + ], + "row:I": [ + 17, + null, + null + ], + "rowSpan:I": [ + 17, + null, + null + ] + }, + "methods": { + "(Lcom/mcmoddev/lib/container/gui/layout/BaseGridLayout;Lcom/mcmoddev/lib/container/gui/IWidgetGui;IIII)V": [ + 4, + null, + [] + ] + } + }, + "com/mcmoddev/lib/container/gui/layout/BaseGridLayout$GridSizeInfo": { + "access": 49, + "super": "java/lang/Object", + "interfaces": [], + "fields": { + "cellSize:Lcom/mcmoddev/lib/container/gui/util/Size2D;": [ + 17, + null, + null + ], + "columns:I": [ + 17, + null, + null + ], + "rows:I": [ + 17, + null, + null + ], + "size:Lcom/mcmoddev/lib/container/gui/util/Size2D;": [ + 17, + null, + null + ] + }, + "methods": {} + }, + "com/mcmoddev/lib/container/gui/layout/BaseLayout": { + "access": 1057, + "super": "java/lang/Object", + "interfaces": [ + "com/mcmoddev/lib/container/gui/IWidgetLayout", + "com/mcmoddev/lib/container/gui/IWidgetGuiDebugInfo" + ], + "fields": { + "CHILD_Z_INCREASE:F": [ + 25, + null, + 0.01 + ] + }, + "methods": { + "()V": [ + 1, + null, + [] + ], + "canChangeVisibility()Z": [ + 4, + null, + [] + ], + "drawBackgroundLayer(Lcom/mcmoddev/lib/container/gui/MMDGuiContainer;FII)V": [ + 1, + null, + [] + ], + "drawForegroundLayer(Lcom/mcmoddev/lib/container/gui/MMDGuiContainer;II)V": [ + 1, + null, + [] + ], + "drawForegroundTopLayer(Lcom/mcmoddev/lib/container/gui/MMDGuiContainer;II)V": [ + 1, + null, + [] + ], + "drawMiddleLayer(Lcom/mcmoddev/lib/container/gui/MMDGuiContainer;FII)V": [ + 1, + null, + [] + ], + "getDebugInfo()Ljava/lang/String;": [ + 1, + null, + [] + ], + "getLayers()[Lcom/mcmoddev/lib/container/gui/GuiPieceLayer;": [ + 1, + null, + [] + ], + "getPadding()Lcom/mcmoddev/lib/container/gui/util/Padding;": [ + 1, + null, + [] + ], + "getParentLayout()Lcom/mcmoddev/lib/container/gui/IWidgetLayout;": [ + 1, + null, + [] + ], + "isVisible()Z": [ + 1, + null, + [] + ], + "mouseClicked(Lcom/mcmoddev/lib/container/gui/MMDGuiContainer;III)Z": [ + 1, + null, + [] + ], + "mouseReleased(Lcom/mcmoddev/lib/container/gui/MMDGuiContainer;III)Z": [ + 1, + null, + [] + ], + "onChildAdded(Lcom/mcmoddev/lib/container/gui/IWidgetGui;)V": [ + 4, + null, + [] + ], + "renderPiece(Lcom/mcmoddev/lib/container/gui/IWidgetGui;IILorg/apache/logging/log4j/util/TriConsumer;)V": [ + 4, + "(Lcom/mcmoddev/lib/container/gui/IWidgetGui;IILorg/apache/logging/log4j/util/TriConsumer;)V", + [] + ], + "setPadding(Lcom/mcmoddev/lib/container/gui/util/Padding;)Lcom/mcmoddev/lib/container/gui/IWidgetGui;": [ + 1, + null, + [] + ], + "setParentLayout(Lcom/mcmoddev/lib/container/gui/IWidgetLayout;)Lcom/mcmoddev/lib/container/gui/IWidgetGui;": [ + 1, + null, + [] + ], + "setVisibility(Z)Z": [ + 1, + null, + [] + ] + } + }, + "com/mcmoddev/lib/container/gui/layout/CanvasLayout": { + "access": 33, + "super": "com/mcmoddev/lib/container/gui/layout/BaseLayout", + "interfaces": [ + "com/mcmoddev/lib/container/gui/IWidgetLayoutDebugInfo" + ], + "fields": {}, + "methods": { + "()V": [ + 1, + null, + [] + ], + "addPiece(Lcom/mcmoddev/lib/container/gui/IWidgetGui;II)Lcom/mcmoddev/lib/container/gui/IWidgetGui;": [ + 1, + "(TT;II)TT;", + [] + ], + "getChildPosition(Lcom/mcmoddev/lib/container/gui/IWidgetGui;)Lcom/mcmoddev/lib/container/gui/util/Size2D;": [ + 1, + null, + [] + ], + "getChildren()Ljava/util/List;": [ + 1, + "()Ljava/util/List;", + [] + ], + "getDebugInfo(Lcom/mcmoddev/lib/container/gui/IWidgetGui;)Ljava/lang/String;": [ + 1, + null, + [] + ], + "getSize()Lcom/mcmoddev/lib/container/gui/util/Size2D;": [ + 1, + null, + [] + ] + } + }, + "com/mcmoddev/lib/container/gui/layout/CanvasLayout$1": { + "access": 4128, + "super": "java/lang/Object", + "interfaces": [], + "fields": {}, + "methods": {} + }, + "com/mcmoddev/lib/container/gui/layout/CanvasLayout$CanvasPieceInfo": { + "access": 32, + "super": "java/lang/Object", + "interfaces": [], + "fields": { + "left:I": [ + 17, + null, + null + ], + "piece:Lcom/mcmoddev/lib/container/gui/IWidgetGui;": [ + 17, + null, + null + ], + "top:I": [ + 17, + null, + null + ] + }, + "methods": {} + }, + "com/mcmoddev/lib/container/gui/layout/GridLayout": { + "access": 33, + "super": "com/mcmoddev/lib/container/gui/layout/BaseGridLayout", + "interfaces": [ + "com/mcmoddev/lib/container/gui/IWidgetLayoutDebugInfo" + ], + "fields": {}, + "methods": { + "(II)V": [ + 1, + null, + [] + ], + "addPiece(Lcom/mcmoddev/lib/container/gui/IWidgetGui;II)Lcom/mcmoddev/lib/container/gui/layout/GridLayout;": [ + 1, + null, + [] + ], + "addPiece(Lcom/mcmoddev/lib/container/gui/IWidgetGui;IIII)Lcom/mcmoddev/lib/container/gui/layout/GridLayout;": [ + 1, + null, + [] + ], + "getDebugInfo()Ljava/lang/String;": [ + 1, + null, + [] + ], + "getDebugInfo(Lcom/mcmoddev/lib/container/gui/IWidgetGui;)Ljava/lang/String;": [ + 1, + null, + [] + ] + } + }, + "com/mcmoddev/lib/container/gui/layout/HorizontalStackLayout": { + "access": 33, + "super": "com/mcmoddev/lib/container/gui/layout/BaseLayout", + "interfaces": [ + "com/mcmoddev/lib/container/gui/IWidgetLayoutDebugInfo" + ], + "fields": {}, + "methods": { + "()V": [ + 1, + null, + [] + ], + "addPiece(Lcom/mcmoddev/lib/container/gui/IWidgetGui;)Lcom/mcmoddev/lib/container/gui/layout/HorizontalStackLayout;": [ + 1, + null, + [] + ], + "getChildPosition(Lcom/mcmoddev/lib/container/gui/IWidgetGui;)Lcom/mcmoddev/lib/container/gui/util/Size2D;": [ + 1, + null, + [] + ], + "getChildren()Ljava/util/List;": [ + 1, + "()Ljava/util/List;", + [] + ], + "getDebugInfo(Lcom/mcmoddev/lib/container/gui/IWidgetGui;)Ljava/lang/String;": [ + 1, + null, + [] + ], + "getSize()Lcom/mcmoddev/lib/container/gui/util/Size2D;": [ + 1, + null, + [] + ] + } + }, + "com/mcmoddev/lib/container/gui/layout/SinglePieceWrapper": { + "access": 33, + "super": "com/mcmoddev/lib/container/gui/layout/BaseLayout", + "interfaces": [], + "fields": {}, + "methods": { + "(Lcom/mcmoddev/lib/container/gui/IWidgetGui;)V": [ + 1, + null, + [] + ], + "(Lcom/mcmoddev/lib/container/gui/IWidgetGui;I)V": [ + 1, + null, + [] + ], + "(Lcom/mcmoddev/lib/container/gui/IWidgetGui;Lcom/mcmoddev/lib/container/gui/util/Padding;)V": [ + 1, + null, + [] + ], + "getChildPosition(Lcom/mcmoddev/lib/container/gui/IWidgetGui;)Lcom/mcmoddev/lib/container/gui/util/Size2D;": [ + 1, + null, + [] + ], + "getChildren()Ljava/util/List;": [ + 1, + "()Ljava/util/List;", + [] + ], + "getSize()Lcom/mcmoddev/lib/container/gui/util/Size2D;": [ + 1, + null, + [] + ] + } + }, + "com/mcmoddev/lib/container/gui/layout/VerticalStackLayout": { + "access": 33, + "super": "com/mcmoddev/lib/container/gui/layout/BaseLayout", + "interfaces": [ + "com/mcmoddev/lib/container/gui/IWidgetLayoutDebugInfo" + ], + "fields": {}, + "methods": { + "()V": [ + 1, + null, + [] + ], + "addPiece(Lcom/mcmoddev/lib/container/gui/IWidgetGui;)Lcom/mcmoddev/lib/container/gui/layout/VerticalStackLayout;": [ + 1, + null, + [] + ], + "getChildPosition(Lcom/mcmoddev/lib/container/gui/IWidgetGui;)Lcom/mcmoddev/lib/container/gui/util/Size2D;": [ + 1, + null, + [] + ], + "getChildren()Ljava/util/List;": [ + 1, + "()Ljava/util/List;", + [] + ], + "getDebugInfo(Lcom/mcmoddev/lib/container/gui/IWidgetGui;)Ljava/lang/String;": [ + 1, + null, + [] + ], + "getSize()Lcom/mcmoddev/lib/container/gui/util/Size2D;": [ + 1, + null, + [] + ] + } + }, + "com/mcmoddev/lib/container/gui/layout/package-info": { + "access": 5632, + "super": "java/lang/Object", + "interfaces": [], + "fields": {}, + "methods": {} + }, + "com/mcmoddev/lib/container/gui/package-info": { + "access": 5632, + "super": "java/lang/Object", + "interfaces": [], + "fields": {}, + "methods": {} + }, + "com/mcmoddev/lib/container/gui/sprite/FluidSprite": { + "access": 33, + "super": "java/lang/Object", + "interfaces": [ + "com/mcmoddev/lib/container/gui/IGuiSprite" + ], + "fields": {}, + "methods": { + "(Lnet/minecraftforge/fluids/Fluid;II)V": [ + 1, + null, + [] + ], + "draw(Lnet/minecraft/client/gui/GuiScreen;II)V": [ + 1, + null, + [] + ], + "draw(Lnet/minecraft/client/gui/GuiScreen;IIII)V": [ + 1, + null, + [] + ], + "draw(Lnet/minecraft/client/gui/GuiScreen;IIIIII)V": [ + 1, + null, + [] + ], + "draw(Lnet/minecraft/client/gui/GuiScreen;IIIIZ)V": [ + 1, + null, + [] + ], + "getHeight()I": [ + 1, + null, + [] + ], + "getLeft()I": [ + 1, + null, + [] + ], + "getTexture()Lcom/mcmoddev/lib/container/gui/IGuiTexture;": [ + 1, + null, + [] + ], + "getTop()I": [ + 1, + null, + [] + ], + "getWidth()I": [ + 1, + null, + [] + ], + "needsAlpha()Z": [ + 1, + null, + [] + ] + } + }, + "com/mcmoddev/lib/container/gui/sprite/MinecraftStitchedTextures": { + "access": 33, + "super": "java/lang/Object", + "interfaces": [ + "com/mcmoddev/lib/container/gui/IGuiTexture" + ], + "fields": { + "INSTANCE:Lcom/mcmoddev/lib/container/gui/sprite/MinecraftStitchedTextures;": [ + 25, + null, + null + ] + }, + "methods": { + "getResource()Lnet/minecraft/util/ResourceLocation;": [ + 1, + null, + [] + ] + } + }, + "com/mcmoddev/lib/container/gui/sprite/package-info": { + "access": 5632, + "super": "java/lang/Object", + "interfaces": [], + "fields": {}, + "methods": {} + }, + "com/mcmoddev/lib/container/gui/util/Padding": { + "access": 33, + "super": "java/lang/Object", + "interfaces": [], + "fields": { + "EMPTY:Lcom/mcmoddev/lib/container/gui/util/Padding;": [ + 25, + null, + null + ], + "bottom:I": [ + 17, + null, + null + ], + "left:I": [ + 17, + null, + null + ], + "right:I": [ + 17, + null, + null + ], + "top:I": [ + 17, + null, + null + ] + }, + "methods": { + "(I)V": [ + 1, + null, + [] + ], + "(II)V": [ + 1, + null, + [] + ], + "(IIII)V": [ + 1, + null, + [] + ], + "bottom(I)Lcom/mcmoddev/lib/container/gui/util/Padding;": [ + 9, + null, + [] + ], + "getHorizontal()I": [ + 1, + null, + [] + ], + "getVertical()I": [ + 1, + null, + [] + ], + "isEmpty()Z": [ + 1, + null, + [] + ], + "left(I)Lcom/mcmoddev/lib/container/gui/util/Padding;": [ + 9, + null, + [] + ], + "right(I)Lcom/mcmoddev/lib/container/gui/util/Padding;": [ + 9, + null, + [] + ], + "top(I)Lcom/mcmoddev/lib/container/gui/util/Padding;": [ + 9, + null, + [] + ], + "uniform(I)Lcom/mcmoddev/lib/container/gui/util/Padding;": [ + 9, + null, + [] + ] + } + }, + "com/mcmoddev/lib/container/gui/util/Size2D": { + "access": 33, + "super": "java/lang/Object", + "interfaces": [], + "fields": { + "ZERO:Lcom/mcmoddev/lib/container/gui/util/Size2D;": [ + 25, + null, + null + ], + "height:I": [ + 17, + null, + null + ], + "width:I": [ + 17, + null, + null + ] + }, + "methods": { + "(I)V": [ + 1, + null, + [] + ], + "(II)V": [ + 1, + null, + [] + ], + "add(II)Lcom/mcmoddev/lib/container/gui/util/Size2D;": [ + 1, + null, + [] + ] + } + }, + "com/mcmoddev/lib/container/gui/util/TexturedRectangleRenderer": { + "access": 49, + "super": "java/lang/Object", + "interfaces": [], + "fields": {}, + "methods": { + "drawOnGUI(Lnet/minecraft/client/gui/GuiScreen;Lcom/mcmoddev/lib/container/gui/IGuiSprite;III)V": [ + 9, + null, + [] + ], + "drawOnGUI(Lnet/minecraft/client/gui/GuiScreen;Lcom/mcmoddev/lib/container/gui/IGuiSprite;IIII)V": [ + 9, + null, + [] + ], + "drawOnGUI(Lnet/minecraft/client/gui/GuiScreen;Lcom/mcmoddev/lib/container/gui/IGuiSprite;IIIIII)V": [ + 9, + null, + [] + ] + } + }, + "com/mcmoddev/lib/container/gui/util/WidgetGuiIterable": { + "access": 33, + "super": "java/lang/Object", + "interfaces": [ + "java/lang/Iterable" + ], + "signature": "Ljava/lang/Object;Ljava/lang/Iterable;", + "fields": {}, + "methods": { + "(Lcom/mcmoddev/lib/container/gui/IWidgetGui;)V": [ + 1, + null, + [] + ], + "forEach(Lcom/mcmoddev/lib/container/gui/IWidgetGui;Ljava/util/function/Consumer;)V": [ + 9, + "(Lcom/mcmoddev/lib/container/gui/IWidgetGui;Ljava/util/function/Consumer;)V", + [] + ], + "iterator()Ljava/util/Iterator;": [ + 1, + "()Ljava/util/Iterator;", + [] + ] + } + }, + "com/mcmoddev/lib/container/gui/util/WidgetGuiIterable$WidgetGuiIterator": { + "access": 32, + "super": "java/lang/Object", + "interfaces": [ + "java/util/Iterator" + ], + "signature": "Ljava/lang/Object;Ljava/util/Iterator;", + "fields": {}, + "methods": { + "hasNext()Z": [ + 1, + null, + [] + ], + "next()Lcom/mcmoddev/lib/container/gui/IWidgetGui;": [ + 1, + null, + [] + ], + "next()Ljava/lang/Object;": [ + 4161, + null, + [] + ] + } + }, + "com/mcmoddev/lib/container/gui/util/package-info": { + "access": 5632, + "super": "java/lang/Object", + "interfaces": [], + "fields": {}, + "methods": {} + }, + "com/mcmoddev/lib/container/package-info": { + "access": 5632, + "super": "java/lang/Object", + "interfaces": [], + "fields": {}, + "methods": {} + }, + "com/mcmoddev/lib/container/slot/BaseContainerSlot": { + "access": 1057, + "super": "java/lang/Object", + "interfaces": [ + "com/mcmoddev/lib/container/IContainerSlot" + ], + "fields": {}, + "methods": { + "()V": [ + 4, + null, + [] + ], + "(Ljava/lang/String;)V": [ + 4, + null, + [] + ], + "(Ljava/lang/String;Ljava/lang/String;)V": [ + 4, + null, + [] + ], + "getGroupId()Ljava/lang/String;": [ + 1, + null, + [] + ], + "getIndex()I": [ + 1, + null, + [] + ], + "getInternalSlot()Lnet/minecraft/inventory/Slot;": [ + 1028, + null, + [] + ], + "getSlot()Lnet/minecraft/inventory/Slot;": [ + 17, + null, + [] + ], + "getSubGroupId()Ljava/lang/String;": [ + 1, + null, + [] + ], + "setIndex(I)V": [ + 1, + null, + [] + ] + } + }, + "com/mcmoddev/lib/container/slot/FilteredSlot": { + "access": 33, + "super": "net/minecraftforge/items/SlotItemHandler", + "interfaces": [], + "fields": {}, + "methods": { + "(Lnet/minecraftforge/items/IItemHandler;Lcom/mcmoddev/lib/inventory/IFilteredItemHandler;III)V": [ + 1, + null, + [] + ], + "isItemValid(Lnet/minecraft/item/ItemStack;)Z": [ + 1, + null, + [] + ] + } + }, + "com/mcmoddev/lib/container/slot/ItemStackHandlerSlot": { + "access": 33, + "super": "com/mcmoddev/lib/container/slot/BaseContainerSlot", + "interfaces": [], + "fields": {}, + "methods": { + "(Lnet/minecraftforge/items/IItemHandler;Lcom/mcmoddev/lib/inventory/IFilteredItemHandler;Ljava/lang/String;I)V": [ + 1, + null, + [] + ], + "createSlots(Lnet/minecraftforge/items/IItemHandlerModifiable;Lcom/mcmoddev/lib/inventory/IFilteredItemHandler;Ljava/lang/String;)Ljava/util/List;": [ + 9, + "(Lnet/minecraftforge/items/IItemHandlerModifiable;Lcom/mcmoddev/lib/inventory/IFilteredItemHandler;Ljava/lang/String;)Ljava/util/List;", + [] + ], + "getInternalSlot()Lnet/minecraft/inventory/Slot;": [ + 4, + null, + [] + ] + } + }, + "com/mcmoddev/lib/container/slot/PlayerInventorySlot": { + "access": 33, + "super": "com/mcmoddev/lib/container/slot/BaseContainerSlot", + "interfaces": [], + "fields": {}, + "methods": { + "(Lnet/minecraft/entity/player/EntityPlayer;Lcom/mcmoddev/lib/container/PlayerInventory;I)V": [ + 1, + null, + [] + ], + "createSlots(Lnet/minecraft/entity/player/EntityPlayer;Lcom/mcmoddev/lib/container/PlayerInventory;)Ljava/util/List;": [ + 9, + "(Lnet/minecraft/entity/player/EntityPlayer;Lcom/mcmoddev/lib/container/PlayerInventory;)Ljava/util/List;", + [] + ], + "getInternalSlot()Lnet/minecraft/inventory/Slot;": [ + 4, + null, + [] + ] + } + }, + "com/mcmoddev/lib/container/slot/package-info": { + "access": 5632, + "super": "java/lang/Object", + "interfaces": [], + "fields": {}, + "methods": {} + }, + "com/mcmoddev/lib/container/widget/ActionIntWidget": { + "access": 33, + "super": "com/mcmoddev/lib/container/widget/ActionWidget", + "interfaces": [], + "fields": { + "NBT_VALUE_KEY:Ljava/lang/String;": [ + 25, + null, + "_value" + ] + }, + "methods": { + "(Ljava/lang/String;I)V": [ + 1, + null, + [] + ], + "getActionNBT(Ljava/lang/String;I)Lnet/minecraft/nbt/NBTTagCompound;": [ + 9, + null, + [] + ], + "getUpdateCompound()Lnet/minecraft/nbt/NBTTagCompound;": [ + 1, + null, + [] + ], + "getValue()I": [ + 1, + null, + [] + ], + "handleMessageFromClient(Lnet/minecraft/nbt/NBTTagCompound;)V": [ + 1, + null, + [] + ], + "handleMessageFromServer(Lnet/minecraft/nbt/NBTTagCompound;)V": [ + 1, + null, + [] + ], + "setClientSideConsumer(Ljava/util/function/IntConsumer;)Lcom/mcmoddev/lib/container/widget/ActionIntWidget;": [ + 1, + null, + [] + ], + "setServerSideConsumer(Ljava/util/function/IntConsumer;)Lcom/mcmoddev/lib/container/widget/ActionIntWidget;": [ + 1, + null, + [] + ], + "setValue(I)V": [ + 1, + null, + [] + ] + } + }, + "com/mcmoddev/lib/container/widget/ActionTextWidget": { + "access": 33, + "super": "com/mcmoddev/lib/container/widget/ActionWidget", + "interfaces": [], + "fields": { + "NBT_TEXT_KEY:Ljava/lang/String;": [ + 25, + null, + "_text" + ] + }, + "methods": { + "(Ljava/lang/String;Ljava/lang/String;)V": [ + 1, + null, + [] + ], + "getActionNBT(Ljava/lang/String;)Lnet/minecraft/nbt/NBTTagCompound;": [ + 9, + null, + [] + ], + "getText()Ljava/lang/String;": [ + 1, + null, + [] + ], + "getUpdateCompound()Lnet/minecraft/nbt/NBTTagCompound;": [ + 1, + null, + [] + ], + "handleMessageFromClient(Lnet/minecraft/nbt/NBTTagCompound;)V": [ + 1, + null, + [] + ], + "handleMessageFromServer(Lnet/minecraft/nbt/NBTTagCompound;)V": [ + 1, + null, + [] + ], + "setClientSideTextConsumer(Ljava/util/function/Consumer;)Lcom/mcmoddev/lib/container/widget/ActionTextWidget;": [ + 1, + "(Ljava/util/function/Consumer;)Lcom/mcmoddev/lib/container/widget/ActionTextWidget;", + [] + ], + "setServerSideTextConsumer(Ljava/util/function/Consumer;)Lcom/mcmoddev/lib/container/widget/ActionTextWidget;": [ + 1, + "(Ljava/util/function/Consumer;)Lcom/mcmoddev/lib/container/widget/ActionTextWidget;", + [] + ], + "setText(Ljava/lang/String;)V": [ + 1, + null, + [] + ] + } + }, + "com/mcmoddev/lib/container/widget/ActionWidget": { + "access": 33, + "super": "com/mcmoddev/lib/container/widget/BaseContextualWidget", + "interfaces": [], + "fields": {}, + "methods": { + "(Ljava/lang/String;)V": [ + 1, + null, + [] + ], + "(Ljava/lang/String;Z)V": [ + 4, + null, + [] + ], + "actionPerformed()V": [ + 1, + null, + [] + ], + "actionPerformed(Lnet/minecraft/nbt/NBTTagCompound;)V": [ + 1, + null, + [] + ], + "handleMessageFromClient(Lnet/minecraft/nbt/NBTTagCompound;)V": [ + 1, + null, + [] + ], + "setClientSideConsumer(Ljava/lang/Runnable;)Lcom/mcmoddev/lib/container/widget/ActionWidget;": [ + 1, + null, + [] + ], + "setClientSideConsumer(Ljava/util/function/BiConsumer;)Lcom/mcmoddev/lib/container/widget/ActionWidget;": [ + 1, + "(Ljava/util/function/BiConsumer;)Lcom/mcmoddev/lib/container/widget/ActionWidget;", + [] + ], + "setClientSideConsumer(Ljava/util/function/Consumer;)Lcom/mcmoddev/lib/container/widget/ActionWidget;": [ + 1, + "(Ljava/util/function/Consumer;)Lcom/mcmoddev/lib/container/widget/ActionWidget;", + [] + ], + "setServerSideConsumer(Ljava/lang/Runnable;)Lcom/mcmoddev/lib/container/widget/ActionWidget;": [ + 1, + null, + [] + ], + "setServerSideConsumer(Ljava/util/function/BiConsumer;)Lcom/mcmoddev/lib/container/widget/ActionWidget;": [ + 1, + "(Ljava/util/function/BiConsumer;)Lcom/mcmoddev/lib/container/widget/ActionWidget;", + [] + ], + "setServerSideConsumer(Ljava/util/function/Consumer;)Lcom/mcmoddev/lib/container/widget/ActionWidget;": [ + 1, + "(Ljava/util/function/Consumer;)Lcom/mcmoddev/lib/container/widget/ActionWidget;", + [] + ] + } + }, + "com/mcmoddev/lib/container/widget/BaseContextualWidget": { + "access": 33, + "super": "com/mcmoddev/lib/container/widget/BaseWidget", + "interfaces": [ + "com/mcmoddev/lib/container/widget/IContextualWidget" + ], + "fields": {}, + "methods": { + "(Ljava/lang/String;)V": [ + 4, + null, + [] + ], + "(Ljava/lang/String;Z)V": [ + 4, + null, + [] + ], + "getContext()Lcom/mcmoddev/lib/container/gui/GuiContext;": [ + 1, + null, + [] + ], + "getPlayer()Lnet/minecraft/entity/player/EntityPlayer;": [ + 4, + null, + [] + ], + "setContext(Lcom/mcmoddev/lib/container/gui/GuiContext;)V": [ + 1, + null, + [] + ] + } + }, + "com/mcmoddev/lib/container/widget/BaseWidget": { + "access": 1057, + "super": "java/lang/Object", + "interfaces": [ + "com/mcmoddev/lib/container/widget/IWidget" + ], + "fields": {}, + "methods": { + "(Ljava/lang/String;)V": [ + 4, + null, + [] + ], + "(Ljava/lang/String;Z)V": [ + 4, + null, + [] + ], + "getKey()Ljava/lang/String;": [ + 1, + null, + [] + ], + "isDirty()Z": [ + 1, + null, + [] + ], + "resetDirtyFlag()V": [ + 1, + null, + [] + ], + "setDirty()V": [ + 4, + null, + [] + ] + } + }, + "com/mcmoddev/lib/container/widget/DataWidget": { + "access": 33, + "super": "com/mcmoddev/lib/container/widget/BaseWidget", + "interfaces": [ + "com/mcmoddev/lib/container/widget/IProxyWidget", + "net/minecraftforge/common/util/INBTSerializable" + ], + "signature": "Lcom/mcmoddev/lib/container/widget/BaseWidget;Lcom/mcmoddev/lib/container/widget/IProxyWidget;Lnet/minecraftforge/common/util/INBTSerializable;", + "fields": {}, + "methods": { + "(Ljava/lang/String;)V": [ + 4, + null, + [] + ], + "deserializeNBT(Lnet/minecraft/nbt/NBTBase;)V": [ + 4161, + null, + [] + ], + "deserializeNBT(Lnet/minecraft/nbt/NBTTagCompound;)V": [ + 1, + null, + [] + ], + "getContextualWidget(Lcom/mcmoddev/lib/container/gui/GuiContext;)Lcom/mcmoddev/lib/container/widget/IWidget;": [ + 1, + null, + [] + ], + "getStringUpdateActionWidget(Ljava/lang/String;Ljava/lang/String;)Lcom/mcmoddev/lib/container/widget/ActionTextWidget;": [ + 1, + null, + [] + ], + "getValue(Ljava/lang/Class;Ljava/lang/String;)Ljava/lang/Object;": [ + 1, + "(Ljava/lang/Class;Ljava/lang/String;)TT;", + [] + ], + "getValue(Ljava/lang/String;)Ljava/lang/Object;": [ + 1, + null, + [] + ], + "handleMessageFromClient(Lnet/minecraft/nbt/NBTTagCompound;)V": [ + 1, + null, + [] + ], + "handleMessageFromServer(Lnet/minecraft/nbt/NBTTagCompound;)V": [ + 1, + null, + [] + ], + "serializeNBT()Lnet/minecraft/nbt/NBTBase;": [ + 4161, + null, + [] + ], + "serializeNBT()Lnet/minecraft/nbt/NBTTagCompound;": [ + 1, + null, + [] + ], + "setValue(Ljava/lang/String;Ljava/lang/Object;)V": [ + 1, + null, + [] + ] + } + }, + "com/mcmoddev/lib/container/widget/DataWidget$1": { + "access": 4128, + "super": "java/lang/Object", + "interfaces": [], + "fields": {}, + "methods": {} + }, + "com/mcmoddev/lib/container/widget/DataWidget$DataField": { + "access": 9729, + "super": "java/lang/Object", + "interfaces": [ + "java/lang/annotation/Annotation" + ], + "fields": {}, + "methods": {} + }, + "com/mcmoddev/lib/container/widget/DataWidget$DataGetter": { + "access": 9729, + "super": "java/lang/Object", + "interfaces": [ + "java/lang/annotation/Annotation" + ], + "fields": {}, + "methods": { + "value()Ljava/lang/String;": [ + 1025, + null, + [] + ] + } + }, + "com/mcmoddev/lib/container/widget/DataWidget$DataHandler": { + "access": 1056, + "super": "java/lang/Object", + "interfaces": [], + "signature": "Ljava/lang/Object;", + "fields": {}, + "methods": { + "(Ljava/lang/Class;Lcom/mcmoddev/lib/container/widget/DataWidget$DataProvider;Ljava/lang/String;Ljava/util/function/BiFunction;Lorg/apache/logging/log4j/util/TriConsumer;)V": [ + 4, + "(Ljava/lang/Class;Lcom/mcmoddev/lib/container/widget/DataWidget$DataProvider;Ljava/lang/String;Ljava/util/function/BiFunction;Lorg/apache/logging/log4j/util/TriConsumer;)V", + [] + ], + "getProviderKey()Ljava/lang/String;": [ + 1, + null, + [] + ], + "getValue(Lcom/mcmoddev/lib/container/widget/DataWidget;)Ljava/lang/Object;": [ + 4, + "(Lcom/mcmoddev/lib/container/widget/DataWidget;)TT;", + [] + ], + "readFromNBT(Lnet/minecraft/nbt/NBTTagCompound;Lcom/mcmoddev/lib/container/widget/DataWidget;)V": [ + 1, + null, + [] + ], + "setValue(Lcom/mcmoddev/lib/container/widget/DataWidget;Ljava/lang/Object;)V": [ + 4, + "(Lcom/mcmoddev/lib/container/widget/DataWidget;TT;)V", + [] + ], + "writeToNBT(Lnet/minecraft/nbt/NBTTagCompound;Lcom/mcmoddev/lib/container/widget/DataWidget;)V": [ + 1, + null, + [] + ] + } + }, + "com/mcmoddev/lib/container/widget/DataWidget$DataProvider": { + "access": 1056, + "super": "java/lang/Object", + "interfaces": [], + "fields": {}, + "methods": { + "getDataType()Ljava/lang/Class;": [ + 1025, + "()Ljava/lang/Class<*>;", + [] + ], + "getValue(Lcom/mcmoddev/lib/container/widget/DataWidget;)Ljava/lang/Object;": [ + 1025, + null, + [] + ], + "setValue(Lcom/mcmoddev/lib/container/widget/DataWidget;Ljava/lang/Object;)V": [ + 1025, + null, + [] + ] + } + }, + "com/mcmoddev/lib/container/widget/DataWidget$DataSetter": { + "access": 9729, + "super": "java/lang/Object", + "interfaces": [ + "java/lang/annotation/Annotation" + ], + "fields": {}, + "methods": { + "value()Ljava/lang/String;": [ + 1025, + null, + [] + ] + } + }, + "com/mcmoddev/lib/container/widget/DataWidget$DataWidgetProxy": { + "access": 32, + "super": "java/lang/Object", + "interfaces": [ + "com/mcmoddev/lib/container/widget/IWidget", + "com/mcmoddev/lib/container/widget/IProxiedWidget" + ], + "fields": {}, + "methods": { + "(Lcom/mcmoddev/lib/container/widget/DataWidget;)V": [ + 1, + null, + [] + ], + "getKey()Ljava/lang/String;": [ + 1, + null, + [] + ], + "getOriginalWidget()Lcom/mcmoddev/lib/container/widget/IWidget;": [ + 1, + null, + [] + ], + "getSlots()Ljava/util/Collection;": [ + 1, + "()Ljava/util/Collection;", + [] + ], + "getUpdateCompound()Lnet/minecraft/nbt/NBTTagCompound;": [ + 1, + null, + [] + ], + "handleMessageFromClient(Lnet/minecraft/nbt/NBTTagCompound;)V": [ + 1, + null, + [] + ], + "handleMessageFromServer(Lnet/minecraft/nbt/NBTTagCompound;)V": [ + 1, + null, + [] + ], + "isDirty()Z": [ + 1, + null, + [] + ], + "resetDirtyFlag()V": [ + 1, + null, + [] + ] + } + }, + "com/mcmoddev/lib/container/widget/DataWidget$FieldDataProvider": { + "access": 32, + "super": "com/mcmoddev/lib/container/widget/DataWidget$DataProvider", + "interfaces": [], + "fields": {}, + "methods": { + "getDataType()Ljava/lang/Class;": [ + 1, + "()Ljava/lang/Class<*>;", + [] + ], + "getValue(Lcom/mcmoddev/lib/container/widget/DataWidget;)Ljava/lang/Object;": [ + 1, + null, + [] + ], + "setValue(Lcom/mcmoddev/lib/container/widget/DataWidget;Ljava/lang/Object;)V": [ + 1, + null, + [] + ] + } + }, + "com/mcmoddev/lib/container/widget/DataWidget$FloatHandler": { + "access": 48, + "super": "com/mcmoddev/lib/container/widget/DataWidget$DataHandler", + "interfaces": [], + "signature": "Lcom/mcmoddev/lib/container/widget/DataWidget$DataHandler;", + "fields": {}, + "methods": {} + }, + "com/mcmoddev/lib/container/widget/DataWidget$IntegerHandler": { + "access": 48, + "super": "com/mcmoddev/lib/container/widget/DataWidget$DataHandler", + "interfaces": [], + "signature": "Lcom/mcmoddev/lib/container/widget/DataWidget$DataHandler;", + "fields": {}, + "methods": {} + }, + "com/mcmoddev/lib/container/widget/DataWidget$MethodDataProvider": { + "access": 32, + "super": "com/mcmoddev/lib/container/widget/DataWidget$DataProvider", + "interfaces": [], + "fields": {}, + "methods": { + "(Lcom/mcmoddev/lib/container/widget/DataWidget;Ljava/lang/reflect/Method;Ljava/lang/reflect/Method;)V": [ + 1, + null, + [] + ], + "getDataType()Ljava/lang/Class;": [ + 1, + "()Ljava/lang/Class<*>;", + [] + ], + "getValue(Lcom/mcmoddev/lib/container/widget/DataWidget;)Ljava/lang/Object;": [ + 1, + null, + [] + ], + "setValue(Lcom/mcmoddev/lib/container/widget/DataWidget;Ljava/lang/Object;)V": [ + 1, + null, + [] + ] + } + }, + "com/mcmoddev/lib/container/widget/DataWidget$StringHandler": { + "access": 48, + "super": "com/mcmoddev/lib/container/widget/DataWidget$DataHandler", + "interfaces": [], + "signature": "Lcom/mcmoddev/lib/container/widget/DataWidget$DataHandler;", + "fields": {}, + "methods": {} + }, + "com/mcmoddev/lib/container/widget/IContextualWidget": { + "access": 1537, + "super": "java/lang/Object", + "interfaces": [ + "com/mcmoddev/lib/container/widget/IWidget" + ], + "fields": {}, + "methods": { + "getContext()Lcom/mcmoddev/lib/container/gui/GuiContext;": [ + 1025, + null, + [] + ], + "setContext(Lcom/mcmoddev/lib/container/gui/GuiContext;)V": [ + 1025, + null, + [] + ] + } + }, + "com/mcmoddev/lib/container/widget/IProxiedWidget": { + "access": 1537, + "super": "java/lang/Object", + "interfaces": [ + "com/mcmoddev/lib/container/widget/IWidget" + ], + "fields": {}, + "methods": { + "getOriginalWidget()Lcom/mcmoddev/lib/container/widget/IWidget;": [ + 1025, + null, + [] + ] + } + }, + "com/mcmoddev/lib/container/widget/IProxyWidget": { + "access": 1537, + "super": "java/lang/Object", + "interfaces": [ + "com/mcmoddev/lib/container/widget/IWidget" + ], + "fields": {}, + "methods": { + "getContextualWidget(Lcom/mcmoddev/lib/container/gui/GuiContext;)Lcom/mcmoddev/lib/container/widget/IWidget;": [ + 1025, + null, + [] + ] + } + }, + "com/mcmoddev/lib/container/widget/IWidget": { + "access": 1537, + "super": "java/lang/Object", + "interfaces": [], + "fields": {}, + "methods": { + "getKey()Ljava/lang/String;": [ + 1025, + null, + [] + ], + "getSlots()Ljava/util/Collection;": [ + 1, + "()Ljava/util/Collection;", + [] + ], + "getUpdateCompound()Lnet/minecraft/nbt/NBTTagCompound;": [ + 1, + null, + [] + ], + "handleMessageFromClient(Lnet/minecraft/nbt/NBTTagCompound;)V": [ + 1, + null, + [] + ], + "handleMessageFromServer(Lnet/minecraft/nbt/NBTTagCompound;)V": [ + 1, + null, + [] + ], + "isDirty()Z": [ + 1, + null, + [] + ], + "resetDirtyFlag()V": [ + 1, + null, + [] + ] + } + }, + "com/mcmoddev/lib/container/widget/ItemStackHandlerWidget": { + "access": 33, + "super": "com/mcmoddev/lib/container/widget/BaseWidget", + "interfaces": [], + "fields": {}, + "methods": { + "(Ljava/lang/String;Lnet/minecraftforge/items/IItemHandlerModifiable;Lcom/mcmoddev/lib/inventory/IFilteredItemHandler;)V": [ + 1, + null, + [] + ], + "getSlots()Ljava/util/Collection;": [ + 1, + "()Ljava/util/Collection;", + [] + ] + } + }, + "com/mcmoddev/lib/container/widget/PlayerInventoryWidget": { + "access": 33, + "super": "com/mcmoddev/lib/container/widget/BaseWidget", + "interfaces": [], + "fields": {}, + "methods": { + "(Ljava/lang/String;Lnet/minecraft/entity/player/EntityPlayer;[Lcom/mcmoddev/lib/container/PlayerInventory;)V": [ + 129, + null, + [] + ], + "getSlots()Ljava/util/Collection;": [ + 1, + "()Ljava/util/Collection;", + [] + ] + } + }, + "com/mcmoddev/lib/container/widget/package-info": { + "access": 5632, + "super": "java/lang/Object", + "interfaces": [], + "fields": {}, + "methods": {} + }, + "com/mcmoddev/lib/crafttweaker/CrusherRecipeAddAction": { + "access": 33, + "super": "java/lang/Object", + "interfaces": [ + "crafttweaker/IAction" + ], + "fields": {}, + "methods": { + "(Lnet/minecraft/item/ItemStack;Lnet/minecraft/item/ItemStack;)V": [ + 1, + null, + [] + ], + "apply()V": [ + 1, + null, + [] + ], + "describe()Ljava/lang/String;": [ + 1, + null, + [] + ] + } + }, + "com/mcmoddev/lib/crafttweaker/CrusherRecipeRemoveAction": { + "access": 33, + "super": "java/lang/Object", + "interfaces": [ + "crafttweaker/IAction" + ], + "fields": {}, + "methods": { + "(Lnet/minecraft/item/ItemStack;Lnet/minecraft/item/ItemStack;)V": [ + 1, + null, + [] + ], + "apply()V": [ + 1, + null, + [] + ], + "describe()Ljava/lang/String;": [ + 1, + null, + [] + ] + } + }, + "com/mcmoddev/lib/crafttweaker/CrusherRecipes": { + "access": 33, + "super": "java/lang/Object", + "interfaces": [], + "fields": {}, + "methods": { + "add(Lcrafttweaker/api/item/IItemStack;Lcrafttweaker/api/item/IItemStack;)V": [ + 9, + null, + [] + ], + "add(Lcrafttweaker/api/item/IItemStack;Lcrafttweaker/api/oredict/IOreDictEntry;)V": [ + 9, + null, + [] + ], + "loadComplete()V": [ + 9, + null, + [] + ], + "remove(Lcrafttweaker/api/item/IItemStack;Lcrafttweaker/api/item/IItemStack;)V": [ + 9, + null, + [] + ], + "remove(Lcrafttweaker/api/oredict/IOreDictEntry;Lcrafttweaker/api/item/IItemStack;)V": [ + 9, + null, + [] + ] + } + }, + "com/mcmoddev/lib/crafttweaker/package-info": { + "access": 5632, + "super": "java/lang/Object", + "interfaces": [], + "fields": {}, + "methods": {} + }, + "com/mcmoddev/lib/data/ConfigKeys": { + "access": 33, + "super": "java/lang/Object", + "interfaces": [], + "fields": { + "ANVIL:Ljava/lang/String;": [ + 25, + null, + "anvil" + ], + "ARMOR:Ljava/lang/String;": [ + 25, + null, + "Armor" + ], + "BARS:Ljava/lang/String;": [ + 25, + null, + "Bars" + ], + "BASICS:Ljava/lang/String;": [ + 25, + null, + "Basics" + ], + "BASIC_TOOLS:Ljava/lang/String;": [ + 25, + null, + "BasicTools" + ], + "BOOKSHELF:Ljava/lang/String;": [ + 25, + null, + "bookshelf" + ], + "BOW_AND_ARROW:Ljava/lang/String;": [ + 25, + null, + "BowAndArrow" + ], + "BUTTON:Ljava/lang/String;": [ + 25, + null, + "Button" + ], + "CRACKHAMMER:Ljava/lang/String;": [ + 25, + null, + "CrackHammer" + ], + "CROSSBOW_AND_BOLT:Ljava/lang/String;": [ + 25, + null, + "CrossbowAndBolt" + ], + "DOOR:Ljava/lang/String;": [ + 25, + null, + "Door" + ], + "EXPERIMENTAL:Ljava/lang/String;": [ + 25, + null, + "experimental" + ], + "FISHING_ROD:Ljava/lang/String;": [ + 25, + null, + "FishingRod" + ], + "FLOWERPOT:Ljava/lang/String;": [ + 25, + null, + "flowerpot" + ], + "GEAR:Ljava/lang/String;": [ + 25, + null, + "Gear" + ], + "HORSE_ARMOR:Ljava/lang/String;": [ + 25, + null, + "HorseArmor" + ], + "IC2ITEMS_WITHOUT_PLUGIN:Ljava/lang/String;": [ + 25, + null, + "ic2withoutplugin" + ], + "LADDER:Ljava/lang/String;": [ + 25, + null, + "ladder" + ], + "LEVER:Ljava/lang/String;": [ + 25, + null, + "Lever" + ], + "MEKITEMS_WITHOUT_PLUGIN:Ljava/lang/String;": [ + 25, + null, + "mekwithoutplugin" + ], + "PLATE:Ljava/lang/String;": [ + 25, + null, + "Plate" + ], + "PRESSURE_PLATE:Ljava/lang/String;": [ + 25, + null, + "PressurePlate" + ], + "ROD:Ljava/lang/String;": [ + 25, + null, + "Rod" + ], + "SCYTHE:Ljava/lang/String;": [ + 25, + null, + "scythe" + ], + "SHEARS:Ljava/lang/String;": [ + 25, + null, + "Shears" + ], + "SHIELD:Ljava/lang/String;": [ + 25, + null, + "Shield" + ], + "SLAB:Ljava/lang/String;": [ + 25, + null, + "Slab" + ], + "SMALL_DUST:Ljava/lang/String;": [ + 25, + null, + "SmallDust" + ], + "STAIRS:Ljava/lang/String;": [ + 25, + null, + "Stairs" + ], + "TRAPDOOR:Ljava/lang/String;": [ + 25, + null, + "Trapdoor" + ], + "TRIPWIRE_HOOK:Ljava/lang/String;": [ + 25, + null, + "tripwire" + ], + "VILLAGER_TRADES:Ljava/lang/String;": [ + 25, + null, + "villager_trades" + ], + "WALL:Ljava/lang/String;": [ + 25, + null, + "Wall" + ] + }, + "methods": {} + }, + "com/mcmoddev/lib/data/MaterialNames": { + "access": 33, + "super": "java/lang/Object", + "interfaces": [], + "fields": { + "CHARCOAL:Ljava/lang/String;": [ + 25, + null, + "charcoal" + ], + "COAL:Ljava/lang/String;": [ + 25, + null, + "coal" + ], + "DIAMOND:Ljava/lang/String;": [ + 25, + null, + "diamond" + ], + "EMERALD:Ljava/lang/String;": [ + 25, + null, + "emerald" + ], + "ENDER:Ljava/lang/String;": [ + 25, + null, + "ender" + ], + "GOLD:Ljava/lang/String;": [ + 25, + null, + "gold" + ], + "IRON:Ljava/lang/String;": [ + 25, + null, + "iron" + ], + "LAPIS:Ljava/lang/String;": [ + 25, + null, + "lapis" + ], + "OBSIDIAN:Ljava/lang/String;": [ + 25, + null, + "obsidian" + ], + "PRISMARINE:Ljava/lang/String;": [ + 25, + null, + "prismarine" + ], + "QUARTZ:Ljava/lang/String;": [ + 25, + null, + "quartz" + ], + "REDSTONE:Ljava/lang/String;": [ + 25, + null, + "redstone" + ], + "STONE:Ljava/lang/String;": [ + 25, + null, + "stone" + ], + "WOOD:Ljava/lang/String;": [ + 25, + null, + "wood" + ] + }, + "methods": { + "()V": [ + 4, + null, + [] + ] + } + }, + "com/mcmoddev/lib/data/MaterialStats": { + "access": 16433, + "super": "java/lang/Enum", + "interfaces": [ + "net/minecraft/util/IStringSerializable" + ], + "signature": "Ljava/lang/Enum;Lnet/minecraft/util/IStringSerializable;", + "fields": { + "BASEDAMAGE:Lcom/mcmoddev/lib/data/MaterialStats;": [ + 16409, + null, + null + ], + "BLASTRESISTANCE:Lcom/mcmoddev/lib/data/MaterialStats;": [ + 16409, + null, + null + ], + "HARDNESS:Lcom/mcmoddev/lib/data/MaterialStats;": [ + 16409, + null, + null + ], + "MAGICAFFINITY:Lcom/mcmoddev/lib/data/MaterialStats;": [ + 16409, + null, + null + ], + "MAP:Ljava/util/TreeMap;": [ + 28, + "Ljava/util/TreeMap;", + null + ], + "STRENGTH:Lcom/mcmoddev/lib/data/MaterialStats;": [ + 16409, + null, + null + ] + }, + "methods": { + "getName()Ljava/lang/String;": [ + 1, + null, + [] + ], + "getType(I)Lcom/mcmoddev/lib/data/MaterialStats;": [ + 9, + null, + [] + ], + "toString()Ljava/lang/String;": [ + 1, + null, + [] + ], + "valueOf(Ljava/lang/String;)Lcom/mcmoddev/lib/data/MaterialStats;": [ + 9, + null, + [] + ], + "values()[Lcom/mcmoddev/lib/data/MaterialStats;": [ + 9, + null, + [] + ] + } + }, + "com/mcmoddev/lib/data/NameToken": { + "access": 33, + "super": "java/lang/Object", + "interfaces": [], + "fields": {}, + "methods": { + "(Lcom/mcmoddev/lib/data/Names;)V": [ + 1, + null, + [] + ], + "(Ljava/lang/String;)V": [ + 1, + null, + [] + ], + "asString()Ljava/lang/String;": [ + 1, + null, + [] + ], + "equals(Ljava/lang/Object;)Z": [ + 1, + null, + [] + ], + "hashCode()I": [ + 1, + null, + [] + ], + "toString()Ljava/lang/String;": [ + 1, + null, + [] + ] + } + }, + "com/mcmoddev/lib/data/NameTokens": { + "access": 33, + "super": "java/lang/Object", + "interfaces": [], + "fields": { + "ANVIL:Lcom/mcmoddev/lib/data/NameToken;": [ + 25, + null, + null + ], + "ARROW:Lcom/mcmoddev/lib/data/NameToken;": [ + 25, + null, + null + ], + "AXE:Lcom/mcmoddev/lib/data/NameToken;": [ + 25, + null, + null + ], + "BARS:Lcom/mcmoddev/lib/data/NameToken;": [ + 25, + null, + null + ], + "BLEND:Lcom/mcmoddev/lib/data/NameToken;": [ + 25, + null, + null + ], + "BLOCK:Lcom/mcmoddev/lib/data/NameToken;": [ + 25, + null, + null + ], + "BOLT:Lcom/mcmoddev/lib/data/NameToken;": [ + 25, + null, + null + ], + "BOOKSHELF:Lcom/mcmoddev/lib/data/NameToken;": [ + 25, + null, + null + ], + "BOOTS:Lcom/mcmoddev/lib/data/NameToken;": [ + 25, + null, + null + ], + "BOW:Lcom/mcmoddev/lib/data/NameToken;": [ + 25, + null, + null + ], + "BUTTON:Lcom/mcmoddev/lib/data/NameToken;": [ + 25, + null, + null + ], + "CASING:Lcom/mcmoddev/lib/data/NameToken;": [ + 25, + null, + null + ], + "CHESTPLATE:Lcom/mcmoddev/lib/data/NameToken;": [ + 25, + null, + null + ], + "CLUMP:Lcom/mcmoddev/lib/data/NameToken;": [ + 25, + null, + null + ], + "CRACKHAMMER:Lcom/mcmoddev/lib/data/NameToken;": [ + 25, + null, + null + ], + "CROSSBOW:Lcom/mcmoddev/lib/data/NameToken;": [ + 25, + null, + null + ], + "CRUSHED:Lcom/mcmoddev/lib/data/NameToken;": [ + 25, + null, + null + ], + "CRUSHED_PURIFIED:Lcom/mcmoddev/lib/data/NameToken;": [ + 25, + null, + null + ], + "CRYSTAL:Lcom/mcmoddev/lib/data/NameToken;": [ + 25, + null, + null + ], + "DENSE_PLATE:Lcom/mcmoddev/lib/data/NameToken;": [ + 25, + null, + null + ], + "DOOR:Lcom/mcmoddev/lib/data/NameToken;": [ + 25, + null, + null + ], + "DOUBLE_SLAB:Lcom/mcmoddev/lib/data/NameToken;": [ + 25, + null, + null + ], + "ENDORE:Lcom/mcmoddev/lib/data/NameToken;": [ + 25, + null, + null + ], + "FENCE:Lcom/mcmoddev/lib/data/NameToken;": [ + 25, + null, + null + ], + "FENCE_GATE:Lcom/mcmoddev/lib/data/NameToken;": [ + 25, + null, + null + ], + "FISHING_ROD:Lcom/mcmoddev/lib/data/NameToken;": [ + 25, + null, + null + ], + "FLOWER_POT:Lcom/mcmoddev/lib/data/NameToken;": [ + 25, + null, + null + ], + "GEAR:Lcom/mcmoddev/lib/data/NameToken;": [ + 25, + null, + null + ], + "GEM:Lcom/mcmoddev/lib/data/NameToken;": [ + 25, + null, + null + ], + "HELMET:Lcom/mcmoddev/lib/data/NameToken;": [ + 25, + null, + null + ], + "HOE:Lcom/mcmoddev/lib/data/NameToken;": [ + 25, + null, + null + ], + "HORSE_ARMOR:Lcom/mcmoddev/lib/data/NameToken;": [ + 25, + null, + null + ], + "INGOT:Lcom/mcmoddev/lib/data/NameToken;": [ + 25, + null, + null + ], + "LADDER:Lcom/mcmoddev/lib/data/NameToken;": [ + 25, + null, + null + ], + "LEGGINGS:Lcom/mcmoddev/lib/data/NameToken;": [ + 25, + null, + null + ], + "LEVER:Lcom/mcmoddev/lib/data/NameToken;": [ + 25, + null, + null + ], + "MEK_CRYSTAL:Lcom/mcmoddev/lib/data/NameToken;": [ + 25, + null, + null + ], + "NETHERORE:Lcom/mcmoddev/lib/data/NameToken;": [ + 25, + null, + null + ], + "NUGGET:Lcom/mcmoddev/lib/data/NameToken;": [ + 25, + null, + null + ], + "ORE:Lcom/mcmoddev/lib/data/NameToken;": [ + 25, + null, + null + ], + "PICKAXE:Lcom/mcmoddev/lib/data/NameToken;": [ + 25, + null, + null + ], + "PLATE:Lcom/mcmoddev/lib/data/NameToken;": [ + 25, + null, + null + ], + "POWDER:Lcom/mcmoddev/lib/data/NameToken;": [ + 25, + null, + null + ], + "POWDER_DIRTY:Lcom/mcmoddev/lib/data/NameToken;": [ + 25, + null, + null + ], + "PRESSURE_PLATE:Lcom/mcmoddev/lib/data/NameToken;": [ + 25, + null, + null + ], + "ROD:Lcom/mcmoddev/lib/data/NameToken;": [ + 25, + null, + null + ], + "SCYTHE:Lcom/mcmoddev/lib/data/NameToken;": [ + 25, + null, + null + ], + "SHARD:Lcom/mcmoddev/lib/data/NameToken;": [ + 25, + null, + null + ], + "SHEARS:Lcom/mcmoddev/lib/data/NameToken;": [ + 25, + null, + null + ], + "SHIELD:Lcom/mcmoddev/lib/data/NameToken;": [ + 25, + null, + null + ], + "SHOVEL:Lcom/mcmoddev/lib/data/NameToken;": [ + 25, + null, + null + ], + "SLAB:Lcom/mcmoddev/lib/data/NameToken;": [ + 25, + null, + null + ], + "SMALLBLEND:Lcom/mcmoddev/lib/data/NameToken;": [ + 25, + null, + null + ], + "SMALLPOWDER:Lcom/mcmoddev/lib/data/NameToken;": [ + 25, + null, + null + ], + "STAIRS:Lcom/mcmoddev/lib/data/NameToken;": [ + 25, + null, + null + ], + "SWORD:Lcom/mcmoddev/lib/data/NameToken;": [ + 25, + null, + null + ], + "TRAPDOOR:Lcom/mcmoddev/lib/data/NameToken;": [ + 25, + null, + null + ], + "TRIPWIRE_HOOK:Lcom/mcmoddev/lib/data/NameToken;": [ + 25, + null, + null + ], + "WALL:Lcom/mcmoddev/lib/data/NameToken;": [ + 25, + null, + null + ] + }, + "methods": { + "()V": [ + 1, + null, + [] + ] + } + }, + "com/mcmoddev/lib/data/Names": { + "access": 16433, + "super": "java/lang/Enum", + "interfaces": [ + "net/minecraft/util/IStringSerializable" + ], + "signature": "Ljava/lang/Enum;Lnet/minecraft/util/IStringSerializable;", + "fields": { + "ANVIL:Lcom/mcmoddev/lib/data/Names;": [ + 16409, + null, + null + ], + "ARROW:Lcom/mcmoddev/lib/data/Names;": [ + 16409, + null, + null + ], + "AXE:Lcom/mcmoddev/lib/data/Names;": [ + 16409, + null, + null + ], + "BARS:Lcom/mcmoddev/lib/data/Names;": [ + 16409, + null, + null + ], + "BLEND:Lcom/mcmoddev/lib/data/Names;": [ + 16409, + null, + null + ], + "BLOCK:Lcom/mcmoddev/lib/data/Names;": [ + 16409, + null, + null + ], + "BOLT:Lcom/mcmoddev/lib/data/Names;": [ + 16409, + null, + null + ], + "BOOKSHELF:Lcom/mcmoddev/lib/data/Names;": [ + 16409, + null, + null + ], + "BOOTS:Lcom/mcmoddev/lib/data/Names;": [ + 16409, + null, + null + ], + "BOW:Lcom/mcmoddev/lib/data/Names;": [ + 16409, + null, + null + ], + "BUTTON:Lcom/mcmoddev/lib/data/Names;": [ + 16409, + null, + null + ], + "CASING:Lcom/mcmoddev/lib/data/Names;": [ + 16409, + null, + null + ], + "CHESTPLATE:Lcom/mcmoddev/lib/data/Names;": [ + 16409, + null, + null + ], + "CLUMP:Lcom/mcmoddev/lib/data/Names;": [ + 16409, + null, + null + ], + "CRACKHAMMER:Lcom/mcmoddev/lib/data/Names;": [ + 16409, + null, + null + ], + "CROSSBOW:Lcom/mcmoddev/lib/data/Names;": [ + 16409, + null, + null + ], + "CRUSHED:Lcom/mcmoddev/lib/data/Names;": [ + 16409, + null, + null + ], + "CRUSHED_PURIFIED:Lcom/mcmoddev/lib/data/Names;": [ + 16409, + null, + null + ], + "CRYSTAL:Lcom/mcmoddev/lib/data/Names;": [ + 16409, + null, + null + ], + "DENSE_PLATE:Lcom/mcmoddev/lib/data/Names;": [ + 16409, + null, + null + ], + "DOOR:Lcom/mcmoddev/lib/data/Names;": [ + 16409, + null, + null + ], + "DOUBLE_SLAB:Lcom/mcmoddev/lib/data/Names;": [ + 16409, + null, + null + ], + "ENDORE:Lcom/mcmoddev/lib/data/Names;": [ + 16409, + null, + null + ], + "FENCE:Lcom/mcmoddev/lib/data/Names;": [ + 16409, + null, + null + ], + "FENCE_GATE:Lcom/mcmoddev/lib/data/Names;": [ + 16409, + null, + null + ], + "FISHING_ROD:Lcom/mcmoddev/lib/data/Names;": [ + 16409, + null, + null + ], + "FLOWER_POT:Lcom/mcmoddev/lib/data/Names;": [ + 16409, + null, + null + ], + "GEAR:Lcom/mcmoddev/lib/data/Names;": [ + 16409, + null, + null + ], + "GEM:Lcom/mcmoddev/lib/data/Names;": [ + 16409, + null, + null + ], + "HELMET:Lcom/mcmoddev/lib/data/Names;": [ + 16409, + null, + null + ], + "HOE:Lcom/mcmoddev/lib/data/Names;": [ + 16409, + null, + null + ], + "HORSE_ARMOR:Lcom/mcmoddev/lib/data/Names;": [ + 16409, + null, + null + ], + "INGOT:Lcom/mcmoddev/lib/data/Names;": [ + 16409, + null, + null + ], + "LADDER:Lcom/mcmoddev/lib/data/Names;": [ + 16409, + null, + null + ], + "LEGGINGS:Lcom/mcmoddev/lib/data/Names;": [ + 16409, + null, + null + ], + "LEVER:Lcom/mcmoddev/lib/data/Names;": [ + 16409, + null, + null + ], + "MAP:Ljava/util/TreeMap;": [ + 28, + "Ljava/util/TreeMap;", + null + ], + "MEK_CRYSTAL:Lcom/mcmoddev/lib/data/Names;": [ + 16409, + null, + null + ], + "NETHERORE:Lcom/mcmoddev/lib/data/Names;": [ + 16409, + null, + null + ], + "NUGGET:Lcom/mcmoddev/lib/data/Names;": [ + 16409, + null, + null + ], + "ORE:Lcom/mcmoddev/lib/data/Names;": [ + 16409, + null, + null + ], + "PICKAXE:Lcom/mcmoddev/lib/data/Names;": [ + 16409, + null, + null + ], + "PLATE:Lcom/mcmoddev/lib/data/Names;": [ + 16409, + null, + null + ], + "POWDER:Lcom/mcmoddev/lib/data/Names;": [ + 16409, + null, + null + ], + "POWDER_DIRTY:Lcom/mcmoddev/lib/data/Names;": [ + 16409, + null, + null + ], + "PRESSURE_PLATE:Lcom/mcmoddev/lib/data/Names;": [ + 16409, + null, + null + ], + "ROD:Lcom/mcmoddev/lib/data/Names;": [ + 16409, + null, + null + ], + "SCYTHE:Lcom/mcmoddev/lib/data/Names;": [ + 16409, + null, + null + ], + "SHARD:Lcom/mcmoddev/lib/data/Names;": [ + 16409, + null, + null + ], + "SHEARS:Lcom/mcmoddev/lib/data/Names;": [ + 16409, + null, + null + ], + "SHIELD:Lcom/mcmoddev/lib/data/Names;": [ + 16409, + null, + null + ], + "SHOVEL:Lcom/mcmoddev/lib/data/Names;": [ + 16409, + null, + null + ], + "SLAB:Lcom/mcmoddev/lib/data/Names;": [ + 16409, + null, + null + ], + "SMALLBLEND:Lcom/mcmoddev/lib/data/Names;": [ + 16409, + null, + null + ], + "SMALLPOWDER:Lcom/mcmoddev/lib/data/Names;": [ + 16409, + null, + null + ], + "STAIRS:Lcom/mcmoddev/lib/data/Names;": [ + 16409, + null, + null + ], + "SWORD:Lcom/mcmoddev/lib/data/Names;": [ + 16409, + null, + null + ], + "TRAPDOOR:Lcom/mcmoddev/lib/data/Names;": [ + 16409, + null, + null + ], + "TRIPWIRE_HOOK:Lcom/mcmoddev/lib/data/Names;": [ + 16409, + null, + null + ], + "WALL:Lcom/mcmoddev/lib/data/Names;": [ + 16409, + null, + null + ] + }, + "methods": { + "getName()Ljava/lang/String;": [ + 1, + null, + [] + ], + "getType(I)Lcom/mcmoddev/lib/data/Names;": [ + 9, + null, + [] + ], + "toString()Ljava/lang/String;": [ + 1, + null, + [] + ], + "valueOf(Ljava/lang/String;)Lcom/mcmoddev/lib/data/Names;": [ + 9, + null, + [] + ], + "values()[Lcom/mcmoddev/lib/data/Names;": [ + 9, + null, + [] + ] + } + }, + "com/mcmoddev/lib/data/SharedStrings": { + "access": 33, + "super": "java/lang/Object", + "interfaces": [], + "fields": { + "CLIENTPROXY:Ljava/lang/String;": [ + 25, + null, + "ClientProxy" + ], + "DOT_PROXY_DOT:Ljava/lang/String;": [ + 25, + null, + ".proxy." + ], + "INVALID_FINGERPRINT:Ljava/lang/String;": [ + 25, + null, + "Invalid fingerprint detected!" + ], + "MMD_PROXY_GROUP:Ljava/lang/String;": [ + 25, + null, + "com.mcmoddev." + ], + "NOT_INSTANTIABLE:Ljava/lang/String;": [ + 25, + null, + "Not a instantiable class" + ], + "ORESPAWN_MISSING_TEXT:Ljava/lang/String;": [ + 25, + null, + "MMD Ore Spawn Mod (fallback generator disabled, MMD OreSpawn enabled)" + ], + "ORESPAWN_MODID:Ljava/lang/String;": [ + 25, + null, + "orespawn" + ], + "ORESPAWN_VERSION:Ljava/lang/String;": [ + 25, + null, + "3.2.2" + ], + "SERVERPROXY:Ljava/lang/String;": [ + 25, + null, + "ServerProxy" + ], + "TAB_BLOCKS:Ljava/lang/String;": [ + 25, + null, + "blocks" + ], + "TAB_COMBAT:Ljava/lang/String;": [ + 25, + null, + "combat" + ], + "TAB_ITEMS:Ljava/lang/String;": [ + 25, + null, + "items" + ], + "TAB_TOOLS:Ljava/lang/String;": [ + 25, + null, + "tools" + ], + "UPDATE_JSON_URL:Ljava/lang/String;": [ + 25, + null, + "https://raw.githubusercontent.com/MinecraftModDevelopmentMods/" + ] + }, + "methods": {} + }, + "com/mcmoddev/lib/data/package-info": { + "access": 5632, + "super": "java/lang/Object", + "interfaces": [], + "fields": {}, + "methods": {} + }, + "com/mcmoddev/lib/energy/BaseEnergyValue": { + "access": 1057, + "super": "java/lang/Object", + "interfaces": [ + "com/mcmoddev/lib/energy/IEnergyValue" + ], + "signature": "Ljava/lang/Object;Lcom/mcmoddev/lib/energy/IEnergyValue;", + "fields": {}, + "methods": { + "(Lcom/mcmoddev/lib/energy/IEnergySystem;Ljava/lang/Object;)V": [ + 4, + "(Lcom/mcmoddev/lib/energy/IEnergySystem;TT;)V", + [] + ], + "getSystem()Lcom/mcmoddev/lib/energy/IEnergySystem;": [ + 1, + "()Lcom/mcmoddev/lib/energy/IEnergySystem;", + [] + ], + "getValue()Ljava/lang/Object;": [ + 1, + "()TT;", + [] + ], + "setValue(Ljava/lang/Object;)V": [ + 1, + "(TT;)V", + [] + ] + } + }, + "com/mcmoddev/lib/energy/BaseGenericEnergyStorage": { + "access": 1057, + "super": "java/lang/Object", + "interfaces": [ + "com/mcmoddev/lib/energy/IGenericEnergyStorage", + "net/minecraftforge/common/util/INBTSerializable", + "net/minecraftforge/common/capabilities/ICapabilityProvider" + ], + "signature": "Ljava/lang/Object;Lcom/mcmoddev/lib/energy/IGenericEnergyStorage;Lnet/minecraftforge/common/util/INBTSerializable;Lnet/minecraftforge/common/capabilities/ICapabilityProvider;", + "fields": {}, + "methods": { + "(Lcom/mcmoddev/lib/energy/IEnergyValue;Lcom/mcmoddev/lib/energy/IEnergyValue;[Lcom/mcmoddev/lib/energy/IEnergySystem;)V": [ + 132, + "(Lcom/mcmoddev/lib/energy/IEnergyValue;Lcom/mcmoddev/lib/energy/IEnergyValue;[Lcom/mcmoddev/lib/energy/IEnergySystem;)V", + [] + ], + "canStore()Z": [ + 1, + null, + [] + ], + "canTake()Z": [ + 1, + null, + [] + ], + "deserializeNBT(Lnet/minecraft/nbt/NBTBase;)V": [ + 4161, + null, + [] + ], + "deserializeNBT(Lnet/minecraft/nbt/NBTTagCompound;)V": [ + 17, + null, + [] + ], + "getBaseSystem()Lcom/mcmoddev/lib/energy/IEnergySystem;": [ + 1, + "()Lcom/mcmoddev/lib/energy/IEnergySystem;", + [] + ], + "getCapability(Lnet/minecraftforge/common/capabilities/Capability;Lnet/minecraft/util/EnumFacing;)Ljava/lang/Object;": [ + 1, + "(Lnet/minecraftforge/common/capabilities/Capability;Lnet/minecraft/util/EnumFacing;)TC;", + [] + ], + "getCapacity()Ljava/lang/Object;": [ + 1, + "()TT;", + [] + ], + "getCapacityValue()Lcom/mcmoddev/lib/energy/IEnergyValue;": [ + 1, + "()Lcom/mcmoddev/lib/energy/IEnergyValue;", + [] + ], + "getInputRate()Ljava/lang/Object;": [ + 1, + "()TT;", + [] + ], + "getInputRateValue()Lcom/mcmoddev/lib/energy/IEnergyValue;": [ + 1, + "()Lcom/mcmoddev/lib/energy/IEnergyValue;", + [] + ], + "getOutputRate()Ljava/lang/Object;": [ + 1, + "()TT;", + [] + ], + "getOutputRateValue()Lcom/mcmoddev/lib/energy/IEnergyValue;": [ + 1, + "()Lcom/mcmoddev/lib/energy/IEnergyValue;", + [] + ], + "getProviderForItemStack(Lnet/minecraft/item/ItemStack;)Lnet/minecraftforge/common/capabilities/ICapabilityProvider;": [ + 1, + null, + [] + ], + "getProviderForItemStack(Lnet/minecraft/item/ItemStack;Ljava/util/function/BiPredicate;Ljava/util/function/BiConsumer;)Lnet/minecraftforge/common/capabilities/ICapabilityProvider;": [ + 1, + "(Lnet/minecraft/item/ItemStack;Ljava/util/function/BiPredicate;Ljava/util/function/BiConsumer;)Lnet/minecraftforge/common/capabilities/ICapabilityProvider;", + [] + ], + "getStored()Ljava/lang/Object;": [ + 1, + "()TT;", + [] + ], + "getStoredValue()Lcom/mcmoddev/lib/energy/IEnergyValue;": [ + 1, + "()Lcom/mcmoddev/lib/energy/IEnergyValue;", + [] + ], + "getZeroEnergy()Lcom/mcmoddev/lib/energy/IEnergyValue;": [ + 1028, + "()Lcom/mcmoddev/lib/energy/IEnergyValue;", + [] + ], + "hasCapability(Lnet/minecraftforge/common/capabilities/Capability;Lnet/minecraft/util/EnumFacing;)Z": [ + 1, + "(Lnet/minecraftforge/common/capabilities/Capability<*>;Lnet/minecraft/util/EnumFacing;)Z", + [] + ], + "onChanged()V": [ + 4, + null, + [] + ], + "readValueFromNBT(Lnet/minecraft/nbt/NBTTagCompound;Ljava/lang/String;)Lcom/mcmoddev/lib/energy/IEnergyValue;": [ + 1028, + "(Lnet/minecraft/nbt/NBTTagCompound;Ljava/lang/String;)Lcom/mcmoddev/lib/energy/IEnergyValue;", + [] + ], + "serializeNBT()Lnet/minecraft/nbt/NBTBase;": [ + 4161, + null, + [] + ], + "serializeNBT()Lnet/minecraft/nbt/NBTTagCompound;": [ + 17, + null, + [] + ], + "setInputRateValue(Lcom/mcmoddev/lib/energy/IEnergyValue;)V": [ + 4, + "(Lcom/mcmoddev/lib/energy/IEnergyValue;)V", + [] + ], + "setOutputRateValue(Lcom/mcmoddev/lib/energy/IEnergyValue;)V": [ + 4, + "(Lcom/mcmoddev/lib/energy/IEnergyValue;)V", + [] + ], + "storeValue(Lcom/mcmoddev/lib/energy/IEnergyValue;Z)Lcom/mcmoddev/lib/energy/IEnergyValue;": [ + 1, + "(Lcom/mcmoddev/lib/energy/IEnergyValue;Z)Lcom/mcmoddev/lib/energy/IEnergyValue;", + [] + ], + "takeValue(Lcom/mcmoddev/lib/energy/IEnergyValue;Z)Lcom/mcmoddev/lib/energy/IEnergyValue;": [ + 1, + "(Lcom/mcmoddev/lib/energy/IEnergyValue;Z)Lcom/mcmoddev/lib/energy/IEnergyValue;", + [] + ], + "writeValueToNBT(Lnet/minecraft/nbt/NBTTagCompound;Ljava/lang/String;Ljava/lang/Object;)V": [ + 1028, + "(Lnet/minecraft/nbt/NBTTagCompound;Ljava/lang/String;TT;)V", + [] + ] + } + }, + "com/mcmoddev/lib/energy/BaseGenericEnergyStorage$1": { + "access": 32, + "super": "java/lang/Object", + "interfaces": [ + "net/minecraftforge/common/capabilities/ICapabilityProvider" + ], + "fields": {}, + "methods": { + "getCapability(Lnet/minecraftforge/common/capabilities/Capability;Lnet/minecraft/util/EnumFacing;)Ljava/lang/Object;": [ + 1, + "(Lnet/minecraftforge/common/capabilities/Capability;Lnet/minecraft/util/EnumFacing;)TC;", + [] + ], + "hasCapability(Lnet/minecraftforge/common/capabilities/Capability;Lnet/minecraft/util/EnumFacing;)Z": [ + 1, + "(Lnet/minecraftforge/common/capabilities/Capability<*>;Lnet/minecraft/util/EnumFacing;)Z", + [] + ] + } + }, + "com/mcmoddev/lib/energy/EnergySystemRegistry": { + "access": 49, + "super": "java/lang/Object", + "interfaces": [], + "fields": { + "ALL:[Lcom/mcmoddev/lib/energy/IEnergySystem;": [ + 25, + null, + null + ], + "FORGE_ENERGY:Lcom/mcmoddev/lib/energy/ForgeEnergySystem;": [ + 25, + null, + null + ], + "RF:Lcom/mcmoddev/lib/energy/rf/RFEnergySystem;": [ + 25, + null, + null + ], + "TESLA:Lcom/mcmoddev/lib/energy/tesla/TeslaEnergySystem;": [ + 25, + null, + null + ] + }, + "methods": { + "()V": [ + 1, + null, + [] + ], + "findAdapter(Lcom/mcmoddev/lib/energy/IEnergySystem;Lnet/minecraft/item/ItemStack;)Lcom/mcmoddev/lib/energy/IEnergyAdapter;": [ + 9, + null, + [] + ], + "findAdapter(Lcom/mcmoddev/lib/energy/IEnergySystem;Lnet/minecraft/tileentity/TileEntity;Lnet/minecraft/util/EnumFacing;)Lcom/mcmoddev/lib/energy/IEnergyAdapter;": [ + 9, + null, + [] + ], + "getAllCompatible(Lcom/mcmoddev/lib/energy/IEnergySystem;)[Lcom/mcmoddev/lib/energy/IEnergySystem;": [ + 9, + null, + [] + ] + } + }, + "com/mcmoddev/lib/energy/ForgeEnergyAdapter": { + "access": 33, + "super": "java/lang/Object", + "interfaces": [ + "com/mcmoddev/lib/energy/IEnergyAdapter" + ], + "fields": {}, + "methods": { + "(Lnet/minecraftforge/energy/IEnergyStorage;)V": [ + 1, + null, + [] + ], + "charge(Lcom/mcmoddev/lib/energy/IEnergyValue;Z)Lcom/mcmoddev/lib/energy/IEnergyValue;": [ + 1, + null, + [] + ], + "discharge(Lcom/mcmoddev/lib/energy/IEnergyValue;Z)Lcom/mcmoddev/lib/energy/IEnergyValue;": [ + 1, + null, + [] + ], + "getCapacity()Lcom/mcmoddev/lib/energy/IEnergyValue;": [ + 1, + null, + [] + ], + "getSystem()Lcom/mcmoddev/lib/energy/IEnergySystem;": [ + 1, + null, + [] + ], + "getValue()Lcom/mcmoddev/lib/energy/IEnergyValue;": [ + 1, + null, + [] + ] + } + }, + "com/mcmoddev/lib/energy/ForgeEnergyStorage": { + "access": 33, + "super": "com/mcmoddev/lib/energy/BaseGenericEnergyStorage", + "interfaces": [], + "signature": "Lcom/mcmoddev/lib/energy/BaseGenericEnergyStorage;", + "fields": {}, + "methods": { + "(I)V": [ + 1, + null, + [] + ], + "(II)V": [ + 1, + null, + [] + ], + "getZeroEnergy()Lcom/mcmoddev/lib/energy/IEnergyValue;": [ + 4, + "()Lcom/mcmoddev/lib/energy/IEnergyValue;", + [] + ], + "readValueFromNBT(Lnet/minecraft/nbt/NBTTagCompound;Ljava/lang/String;)Lcom/mcmoddev/lib/energy/IEnergyValue;": [ + 4, + "(Lnet/minecraft/nbt/NBTTagCompound;Ljava/lang/String;)Lcom/mcmoddev/lib/energy/IEnergyValue;", + [] + ], + "setInputRate(I)Lcom/mcmoddev/lib/energy/ForgeEnergyStorage;": [ + 1, + null, + [] + ], + "setoutputRate(I)Lcom/mcmoddev/lib/energy/ForgeEnergyStorage;": [ + 1, + null, + [] + ], + "store(Ljava/lang/Integer;Z)Ljava/lang/Integer;": [ + 1, + null, + [] + ], + "store(Ljava/lang/Object;Z)Ljava/lang/Object;": [ + 4161, + null, + [] + ], + "take(Ljava/lang/Integer;Z)Ljava/lang/Integer;": [ + 1, + null, + [] + ], + "take(Ljava/lang/Object;Z)Ljava/lang/Object;": [ + 4161, + null, + [] + ], + "writeValueToNBT(Lnet/minecraft/nbt/NBTTagCompound;Ljava/lang/String;Ljava/lang/Integer;)V": [ + 4, + null, + [] + ], + "writeValueToNBT(Lnet/minecraft/nbt/NBTTagCompound;Ljava/lang/String;Ljava/lang/Object;)V": [ + 4164, + null, + [] + ] + } + }, + "com/mcmoddev/lib/energy/ForgeEnergySystem": { + "access": 33, + "super": "java/lang/Object", + "interfaces": [ + "com/mcmoddev/lib/energy/IForgeEnergyCompatible" + ], + "signature": "Ljava/lang/Object;Lcom/mcmoddev/lib/energy/IForgeEnergyCompatible;", + "fields": {}, + "methods": { + "()V": [ + 1, + null, + [] + ], + "convertFrom(Lcom/mcmoddev/lib/energy/IEnergyValue;)Lcom/mcmoddev/lib/energy/ForgeEnergyValue;": [ + 1, + null, + [] + ], + "convertFrom(Lcom/mcmoddev/lib/energy/IEnergyValue;)Lcom/mcmoddev/lib/energy/IEnergyValue;": [ + 4161, + null, + [] + ], + "convertFromFE(Lcom/mcmoddev/lib/energy/ForgeEnergyValue;)Lcom/mcmoddev/lib/energy/IEnergyValue;": [ + 1, + "(Lcom/mcmoddev/lib/energy/ForgeEnergyValue;)Lcom/mcmoddev/lib/energy/IEnergyValue;", + [] + ], + "convertToFE(Lcom/mcmoddev/lib/energy/IEnergyValue;)Lcom/mcmoddev/lib/energy/ForgeEnergyValue;": [ + 1, + null, + [] + ], + "createAdapter(Lnet/minecraft/item/ItemStack;)Lcom/mcmoddev/lib/energy/ForgeEnergyAdapter;": [ + 1, + null, + [] + ], + "createAdapter(Lnet/minecraft/item/ItemStack;)Lcom/mcmoddev/lib/energy/IEnergyAdapter;": [ + 4161, + null, + [] + ], + "createAdapter(Lnet/minecraft/tileentity/TileEntity;Lnet/minecraft/util/EnumFacing;)Lcom/mcmoddev/lib/energy/ForgeEnergyAdapter;": [ + 1, + null, + [] + ], + "createAdapter(Lnet/minecraft/tileentity/TileEntity;Lnet/minecraft/util/EnumFacing;)Lcom/mcmoddev/lib/energy/IEnergyAdapter;": [ + 4161, + null, + [] + ], + "getCapability(Lnet/minecraftforge/common/capabilities/Capability;Lcom/mcmoddev/lib/energy/IGenericEnergyStorage;)Ljava/lang/Object;": [ + 1, + "(Lnet/minecraftforge/common/capabilities/Capability;Lcom/mcmoddev/lib/energy/IGenericEnergyStorage;)TC;", + [] + ], + "getDependencyModId()Ljava/lang/String;": [ + 1, + null, + [] + ], + "hasCapability(Lnet/minecraftforge/common/capabilities/Capability;Lcom/mcmoddev/lib/energy/IGenericEnergyStorage;)Z": [ + 1, + "(Lnet/minecraftforge/common/capabilities/Capability<*>;Lcom/mcmoddev/lib/energy/IGenericEnergyStorage;)Z", + [] + ], + "isCompatibleWith(Lcom/mcmoddev/lib/energy/IEnergySystem;)Z": [ + 1, + null, + [] + ] + } + }, + "com/mcmoddev/lib/energy/ForgeEnergySystem$CapabilityStorage": { + "access": 32, + "super": "java/lang/Object", + "interfaces": [ + "net/minecraftforge/energy/IEnergyStorage" + ], + "fields": {}, + "methods": { + "canExtract()Z": [ + 1, + null, + [] + ], + "canReceive()Z": [ + 1, + null, + [] + ], + "extractEnergy(IZ)I": [ + 1, + null, + [] + ], + "getEnergyStored()I": [ + 1, + null, + [] + ], + "getMaxEnergyStored()I": [ + 1, + null, + [] + ], + "receiveEnergy(IZ)I": [ + 1, + null, + [] + ] + } + }, + "com/mcmoddev/lib/energy/ForgeEnergyValue": { + "access": 33, + "super": "com/mcmoddev/lib/energy/BaseEnergyValue", + "interfaces": [], + "signature": "Lcom/mcmoddev/lib/energy/BaseEnergyValue;", + "fields": {}, + "methods": { + "(I)V": [ + 1, + null, + [] + ], + "add(Lcom/mcmoddev/lib/energy/IEnergyValue;)Lcom/mcmoddev/lib/energy/IEnergyValue;": [ + 1, + "(Lcom/mcmoddev/lib/energy/IEnergyValue;)Lcom/mcmoddev/lib/energy/IEnergyValue;", + [] + ], + "copy()Lcom/mcmoddev/lib/energy/IEnergyValue;": [ + 1, + "()Lcom/mcmoddev/lib/energy/IEnergyValue;", + [] + ], + "subtract(Lcom/mcmoddev/lib/energy/IEnergyValue;)Lcom/mcmoddev/lib/energy/IEnergyValue;": [ + 1, + "(Lcom/mcmoddev/lib/energy/IEnergyValue;)Lcom/mcmoddev/lib/energy/IEnergyValue;", + [] + ], + "toString()Ljava/lang/String;": [ + 1, + null, + [] + ] + } + }, + "com/mcmoddev/lib/energy/IEnergyAdapter": { + "access": 1537, + "super": "java/lang/Object", + "interfaces": [], + "fields": {}, + "methods": { + "charge(Lcom/mcmoddev/lib/energy/IEnergyValue;Z)Lcom/mcmoddev/lib/energy/IEnergyValue;": [ + 1025, + null, + [] + ], + "discharge(Lcom/mcmoddev/lib/energy/IEnergyValue;Z)Lcom/mcmoddev/lib/energy/IEnergyValue;": [ + 1025, + null, + [] + ], + "getCapacity()Lcom/mcmoddev/lib/energy/IEnergyValue;": [ + 1025, + null, + [] + ], + "getSystem()Lcom/mcmoddev/lib/energy/IEnergySystem;": [ + 1025, + null, + [] + ], + "getValue()Lcom/mcmoddev/lib/energy/IEnergyValue;": [ + 1025, + null, + [] + ] + } + }, + "com/mcmoddev/lib/energy/IEnergyCapabilityProvider": { + "access": 1537, + "super": "java/lang/Object", + "interfaces": [], + "fields": {}, + "methods": { + "getCapability(Lnet/minecraftforge/common/capabilities/Capability;Lcom/mcmoddev/lib/energy/IGenericEnergyStorage;)Ljava/lang/Object;": [ + 1025, + "(Lnet/minecraftforge/common/capabilities/Capability;Lcom/mcmoddev/lib/energy/IGenericEnergyStorage;)TC;", + [] + ], + "hasCapability(Lnet/minecraftforge/common/capabilities/Capability;Lcom/mcmoddev/lib/energy/IGenericEnergyStorage;)Z": [ + 1025, + "(Lnet/minecraftforge/common/capabilities/Capability<*>;Lcom/mcmoddev/lib/energy/IGenericEnergyStorage;)Z", + [] + ] + } + }, + "com/mcmoddev/lib/energy/IEnergySystem": { + "access": 1537, + "super": "java/lang/Object", + "interfaces": [ + "com/mcmoddev/lib/energy/IEnergyCapabilityProvider" + ], + "signature": "Ljava/lang/Object;Lcom/mcmoddev/lib/energy/IEnergyCapabilityProvider;", + "fields": {}, + "methods": { + "convertFrom(Lcom/mcmoddev/lib/energy/IEnergyValue;)Lcom/mcmoddev/lib/energy/IEnergyValue;": [ + 1025, + "(Lcom/mcmoddev/lib/energy/IEnergyValue;)Lcom/mcmoddev/lib/energy/IEnergyValue;", + [] + ], + "createAdapter(Lnet/minecraft/item/ItemStack;)Lcom/mcmoddev/lib/energy/IEnergyAdapter;": [ + 1025, + null, + [] + ], + "createAdapter(Lnet/minecraft/tileentity/TileEntity;Lnet/minecraft/util/EnumFacing;)Lcom/mcmoddev/lib/energy/IEnergyAdapter;": [ + 1025, + null, + [] + ], + "getCapability(Lnet/minecraftforge/common/capabilities/Capability;Lcom/mcmoddev/lib/energy/IGenericEnergyStorage;)Ljava/lang/Object;": [ + 1, + "(Lnet/minecraftforge/common/capabilities/Capability;Lcom/mcmoddev/lib/energy/IGenericEnergyStorage;)TC;", + [] + ], + "getDependencyModId()Ljava/lang/String;": [ + 1025, + null, + [] + ], + "hasCapability(Lnet/minecraftforge/common/capabilities/Capability;Lcom/mcmoddev/lib/energy/IGenericEnergyStorage;)Z": [ + 1, + "(Lnet/minecraftforge/common/capabilities/Capability<*>;Lcom/mcmoddev/lib/energy/IGenericEnergyStorage;)Z", + [] + ], + "isAvailable()Z": [ + 1, + null, + [] + ], + "isCompatibleWith(Lcom/mcmoddev/lib/energy/IEnergySystem;)Z": [ + 1025, + null, + [] + ] + } + }, + "com/mcmoddev/lib/energy/IEnergyValue": { + "access": 1537, + "super": "java/lang/Object", + "interfaces": [ + "java/lang/Comparable" + ], + "signature": "Ljava/lang/Object;Ljava/lang/Comparable;>;", + "fields": {}, + "methods": { + "add(Lcom/mcmoddev/lib/energy/IEnergyValue;)Lcom/mcmoddev/lib/energy/IEnergyValue;": [ + 1025, + "(Lcom/mcmoddev/lib/energy/IEnergyValue;)Lcom/mcmoddev/lib/energy/IEnergyValue;", + [] + ], + "compareTo(Lcom/mcmoddev/lib/energy/IEnergyValue;)I": [ + 1, + "(Lcom/mcmoddev/lib/energy/IEnergyValue;)I", + [] + ], + "compareTo(Ljava/lang/Object;)I": [ + 4161, + null, + [] + ], + "copy()Lcom/mcmoddev/lib/energy/IEnergyValue;": [ + 1025, + "()Lcom/mcmoddev/lib/energy/IEnergyValue;", + [] + ], + "getSystem()Lcom/mcmoddev/lib/energy/IEnergySystem;": [ + 1025, + "()Lcom/mcmoddev/lib/energy/IEnergySystem;", + [] + ], + "getValue()Ljava/lang/Object;": [ + 1025, + "()TT;", + [] + ], + "isCompatible(Lcom/mcmoddev/lib/energy/IEnergyValue;)Z": [ + 1, + null, + [] + ], + "setValue(Ljava/lang/Object;)V": [ + 1025, + "(TT;)V", + [] + ], + "subtract(Lcom/mcmoddev/lib/energy/IEnergyValue;)Lcom/mcmoddev/lib/energy/IEnergyValue;": [ + 1025, + "(Lcom/mcmoddev/lib/energy/IEnergyValue;)Lcom/mcmoddev/lib/energy/IEnergyValue;", + [] + ] + } + }, + "com/mcmoddev/lib/energy/IForgeEnergyCompatible": { + "access": 1537, + "super": "java/lang/Object", + "interfaces": [ + "com/mcmoddev/lib/energy/IEnergySystem" + ], + "signature": "Ljava/lang/Object;Lcom/mcmoddev/lib/energy/IEnergySystem;", + "fields": {}, + "methods": { + "convertFrom(Lcom/mcmoddev/lib/energy/IEnergyValue;)Lcom/mcmoddev/lib/energy/IEnergyValue;": [ + 1, + "(Lcom/mcmoddev/lib/energy/IEnergyValue;)Lcom/mcmoddev/lib/energy/IEnergyValue;", + [] + ], + "convertFromFE(Lcom/mcmoddev/lib/energy/ForgeEnergyValue;)Lcom/mcmoddev/lib/energy/IEnergyValue;": [ + 1025, + "(Lcom/mcmoddev/lib/energy/ForgeEnergyValue;)Lcom/mcmoddev/lib/energy/IEnergyValue;", + [] + ], + "convertToFE(Lcom/mcmoddev/lib/energy/IEnergyValue;)Lcom/mcmoddev/lib/energy/ForgeEnergyValue;": [ + 1025, + null, + [] + ], + "isCompatibleWith(Lcom/mcmoddev/lib/energy/IEnergySystem;)Z": [ + 1, + null, + [] + ] + } + }, + "com/mcmoddev/lib/energy/IGenericEnergyStorage": { + "access": 1537, + "super": "java/lang/Object", + "interfaces": [], + "signature": "Ljava/lang/Object;", + "fields": {}, + "methods": { + "canStore()Z": [ + 1025, + null, + [] + ], + "canTake()Z": [ + 1025, + null, + [] + ], + "getBaseSystem()Lcom/mcmoddev/lib/energy/IEnergySystem;": [ + 1025, + "()Lcom/mcmoddev/lib/energy/IEnergySystem;", + [] + ], + "getCapacity()Ljava/lang/Object;": [ + 1025, + "()TT;", + [] + ], + "getCapacityValue()Lcom/mcmoddev/lib/energy/IEnergyValue;": [ + 1025, + "()Lcom/mcmoddev/lib/energy/IEnergyValue;", + [] + ], + "getInputRate()Ljava/lang/Object;": [ + 1025, + "()TT;", + [] + ], + "getInputRateValue()Lcom/mcmoddev/lib/energy/IEnergyValue;": [ + 1025, + "()Lcom/mcmoddev/lib/energy/IEnergyValue;", + [] + ], + "getOutputRate()Ljava/lang/Object;": [ + 1025, + "()TT;", + [] + ], + "getOutputRateValue()Lcom/mcmoddev/lib/energy/IEnergyValue;": [ + 1025, + "()Lcom/mcmoddev/lib/energy/IEnergyValue;", + [] + ], + "getStored()Ljava/lang/Object;": [ + 1025, + "()TT;", + [] + ], + "getStoredValue()Lcom/mcmoddev/lib/energy/IEnergyValue;": [ + 1025, + "()Lcom/mcmoddev/lib/energy/IEnergyValue;", + [] + ], + "store(Ljava/lang/Object;Z)Ljava/lang/Object;": [ + 1025, + "(TT;Z)TT;", + [] + ], + "storeValue(Lcom/mcmoddev/lib/energy/IEnergyValue;Z)Lcom/mcmoddev/lib/energy/IEnergyValue;": [ + 1025, + "(Lcom/mcmoddev/lib/energy/IEnergyValue;Z)Lcom/mcmoddev/lib/energy/IEnergyValue;", + [] + ], + "take(Ljava/lang/Object;Z)Ljava/lang/Object;": [ + 1025, + "(TT;Z)TT;", + [] + ], + "takeValue(Lcom/mcmoddev/lib/energy/IEnergyValue;Z)Lcom/mcmoddev/lib/energy/IEnergyValue;": [ + 1025, + "(Lcom/mcmoddev/lib/energy/IEnergyValue;Z)Lcom/mcmoddev/lib/energy/IEnergyValue;", + [] + ] + } + }, + "com/mcmoddev/lib/energy/ic2/package-info": { + "access": 5632, + "super": "java/lang/Object", + "interfaces": [], + "fields": {}, + "methods": {} + }, + "com/mcmoddev/lib/energy/mekanism/package-info": { + "access": 5632, + "super": "java/lang/Object", + "interfaces": [], + "fields": {}, + "methods": {} + }, + "com/mcmoddev/lib/energy/package-info": { + "access": 5632, + "super": "java/lang/Object", + "interfaces": [], + "fields": {}, + "methods": {} + }, + "com/mcmoddev/lib/energy/rf/RFEnergyAdapter": { + "access": 33, + "super": "java/lang/Object", + "interfaces": [ + "com/mcmoddev/lib/energy/IEnergyAdapter" + ], + "fields": {}, + "methods": { + "(Lcofh/redstoneflux/api/IEnergyReceiver;Lcofh/redstoneflux/api/IEnergyProvider;Lnet/minecraft/util/EnumFacing;)V": [ + 1, + null, + [] + ], + "charge(Lcom/mcmoddev/lib/energy/IEnergyValue;Z)Lcom/mcmoddev/lib/energy/IEnergyValue;": [ + 1, + null, + [] + ], + "discharge(Lcom/mcmoddev/lib/energy/IEnergyValue;Z)Lcom/mcmoddev/lib/energy/IEnergyValue;": [ + 1, + null, + [] + ], + "getCapacity()Lcom/mcmoddev/lib/energy/IEnergyValue;": [ + 1, + null, + [] + ], + "getSystem()Lcom/mcmoddev/lib/energy/IEnergySystem;": [ + 1, + null, + [] + ], + "getValue()Lcom/mcmoddev/lib/energy/IEnergyValue;": [ + 1, + null, + [] + ] + } + }, + "com/mcmoddev/lib/energy/rf/RFEnergyAdapterItem": { + "access": 33, + "super": "java/lang/Object", + "interfaces": [ + "com/mcmoddev/lib/energy/IEnergyAdapter" + ], + "fields": {}, + "methods": { + "(Lcofh/redstoneflux/api/IEnergyContainerItem;Lnet/minecraft/item/ItemStack;)V": [ + 1, + null, + [] + ], + "charge(Lcom/mcmoddev/lib/energy/IEnergyValue;Z)Lcom/mcmoddev/lib/energy/IEnergyValue;": [ + 1, + null, + [] + ], + "discharge(Lcom/mcmoddev/lib/energy/IEnergyValue;Z)Lcom/mcmoddev/lib/energy/IEnergyValue;": [ + 1, + null, + [] + ], + "getCapacity()Lcom/mcmoddev/lib/energy/IEnergyValue;": [ + 1, + null, + [] + ], + "getSystem()Lcom/mcmoddev/lib/energy/IEnergySystem;": [ + 1, + null, + [] + ], + "getValue()Lcom/mcmoddev/lib/energy/IEnergyValue;": [ + 1, + null, + [] + ] + } + }, + "com/mcmoddev/lib/energy/rf/RFEnergySystem": { + "access": 33, + "super": "java/lang/Object", + "interfaces": [ + "com/mcmoddev/lib/energy/IForgeEnergyCompatible" + ], + "signature": "Ljava/lang/Object;Lcom/mcmoddev/lib/energy/IForgeEnergyCompatible;", + "fields": {}, + "methods": { + "()V": [ + 1, + null, + [] + ], + "convertFromFE(Lcom/mcmoddev/lib/energy/ForgeEnergyValue;)Lcom/mcmoddev/lib/energy/IEnergyValue;": [ + 4161, + null, + [] + ], + "convertFromFE(Lcom/mcmoddev/lib/energy/ForgeEnergyValue;)Lcom/mcmoddev/lib/energy/rf/RFEnergyValue;": [ + 1, + null, + [] + ], + "convertToFE(Lcom/mcmoddev/lib/energy/IEnergyValue;)Lcom/mcmoddev/lib/energy/ForgeEnergyValue;": [ + 1, + null, + [] + ], + "convertToRF(Lcom/mcmoddev/lib/energy/IEnergyValue;)Lcom/mcmoddev/lib/energy/rf/RFEnergyValue;": [ + 1, + null, + [] + ], + "createAdapter(Lnet/minecraft/item/ItemStack;)Lcom/mcmoddev/lib/energy/IEnergyAdapter;": [ + 1, + null, + [] + ], + "createAdapter(Lnet/minecraft/tileentity/TileEntity;Lnet/minecraft/util/EnumFacing;)Lcom/mcmoddev/lib/energy/IEnergyAdapter;": [ + 1, + null, + [] + ], + "getDependencyModId()Ljava/lang/String;": [ + 1, + null, + [] + ] + } + }, + "com/mcmoddev/lib/energy/rf/RFEnergyValue": { + "access": 33, + "super": "com/mcmoddev/lib/energy/BaseEnergyValue", + "interfaces": [], + "signature": "Lcom/mcmoddev/lib/energy/BaseEnergyValue;", + "fields": {}, + "methods": { + "(I)V": [ + 1, + null, + [] + ], + "add(Lcom/mcmoddev/lib/energy/IEnergyValue;)Lcom/mcmoddev/lib/energy/IEnergyValue;": [ + 1, + "(Lcom/mcmoddev/lib/energy/IEnergyValue;)Lcom/mcmoddev/lib/energy/IEnergyValue;", + [] + ], + "copy()Lcom/mcmoddev/lib/energy/IEnergyValue;": [ + 1, + "()Lcom/mcmoddev/lib/energy/IEnergyValue;", + [] + ], + "subtract(Lcom/mcmoddev/lib/energy/IEnergyValue;)Lcom/mcmoddev/lib/energy/IEnergyValue;": [ + 1, + "(Lcom/mcmoddev/lib/energy/IEnergyValue;)Lcom/mcmoddev/lib/energy/IEnergyValue;", + [] + ], + "toString()Ljava/lang/String;": [ + 1, + null, + [] + ] + } + }, + "com/mcmoddev/lib/energy/rf/package-info": { + "access": 5632, + "super": "java/lang/Object", + "interfaces": [], + "fields": {}, + "methods": {} + }, + "com/mcmoddev/lib/energy/tesla/TeslaEnergyAdapter": { + "access": 33, + "super": "java/lang/Object", + "interfaces": [ + "com/mcmoddev/lib/energy/IEnergyAdapter" + ], + "fields": {}, + "methods": { + "(Lnet/darkhax/tesla/api/ITeslaConsumer;Lnet/darkhax/tesla/api/ITeslaHolder;Lnet/darkhax/tesla/api/ITeslaProducer;)V": [ + 1, + null, + [] + ], + "charge(Lcom/mcmoddev/lib/energy/IEnergyValue;Z)Lcom/mcmoddev/lib/energy/IEnergyValue;": [ + 1, + null, + [] + ], + "discharge(Lcom/mcmoddev/lib/energy/IEnergyValue;Z)Lcom/mcmoddev/lib/energy/IEnergyValue;": [ + 1, + null, + [] + ], + "getCapacity()Lcom/mcmoddev/lib/energy/IEnergyValue;": [ + 1, + null, + [] + ], + "getSystem()Lcom/mcmoddev/lib/energy/IEnergySystem;": [ + 1, + null, + [] + ], + "getValue()Lcom/mcmoddev/lib/energy/IEnergyValue;": [ + 1, + null, + [] + ] + } + }, + "com/mcmoddev/lib/energy/tesla/TeslaEnergySystem": { + "access": 33, + "super": "java/lang/Object", + "interfaces": [ + "com/mcmoddev/lib/energy/IForgeEnergyCompatible" + ], + "signature": "Ljava/lang/Object;Lcom/mcmoddev/lib/energy/IForgeEnergyCompatible;", + "fields": {}, + "methods": { + "()V": [ + 1, + null, + [] + ], + "convertFromFE(Lcom/mcmoddev/lib/energy/ForgeEnergyValue;)Lcom/mcmoddev/lib/energy/IEnergyValue;": [ + 4161, + null, + [] + ], + "convertFromFE(Lcom/mcmoddev/lib/energy/ForgeEnergyValue;)Lcom/mcmoddev/lib/energy/tesla/TeslaEnergyValue;": [ + 1, + null, + [] + ], + "convertToFE(Lcom/mcmoddev/lib/energy/IEnergyValue;)Lcom/mcmoddev/lib/energy/ForgeEnergyValue;": [ + 1, + null, + [] + ], + "convertToTesla(Lcom/mcmoddev/lib/energy/IEnergyValue;)Lcom/mcmoddev/lib/energy/tesla/TeslaEnergyValue;": [ + 1, + null, + [] + ], + "createAdapter(Lnet/minecraft/item/ItemStack;)Lcom/mcmoddev/lib/energy/IEnergyAdapter;": [ + 1, + null, + [] + ], + "createAdapter(Lnet/minecraft/tileentity/TileEntity;Lnet/minecraft/util/EnumFacing;)Lcom/mcmoddev/lib/energy/IEnergyAdapter;": [ + 1, + null, + [] + ], + "getCapability(Lnet/minecraftforge/common/capabilities/Capability;Lcom/mcmoddev/lib/energy/IGenericEnergyStorage;)Ljava/lang/Object;": [ + 1, + "(Lnet/minecraftforge/common/capabilities/Capability;Lcom/mcmoddev/lib/energy/IGenericEnergyStorage;)TC;", + [] + ], + "getDependencyModId()Ljava/lang/String;": [ + 1, + null, + [] + ], + "hasCapability(Lnet/minecraftforge/common/capabilities/Capability;Lcom/mcmoddev/lib/energy/IGenericEnergyStorage;)Z": [ + 1, + "(Lnet/minecraftforge/common/capabilities/Capability<*>;Lcom/mcmoddev/lib/energy/IGenericEnergyStorage;)Z", + [] + ] + } + }, + "com/mcmoddev/lib/energy/tesla/TeslaEnergySystem$CapabilityConsumer": { + "access": 32, + "super": "java/lang/Object", + "interfaces": [ + "net/darkhax/tesla/api/ITeslaConsumer" + ], + "fields": {}, + "methods": { + "givePower(JZ)J": [ + 1, + null, + [] + ] + } + }, + "com/mcmoddev/lib/energy/tesla/TeslaEnergySystem$CapabilityHolder": { + "access": 32, + "super": "java/lang/Object", + "interfaces": [ + "net/darkhax/tesla/api/ITeslaHolder" + ], + "fields": {}, + "methods": { + "getCapacity()J": [ + 1, + null, + [] + ], + "getStoredPower()J": [ + 1, + null, + [] + ] + } + }, + "com/mcmoddev/lib/energy/tesla/TeslaEnergySystem$CapabilityProducer": { + "access": 32, + "super": "java/lang/Object", + "interfaces": [ + "net/darkhax/tesla/api/ITeslaProducer" + ], + "fields": {}, + "methods": { + "takePower(JZ)J": [ + 1, + null, + [] + ] + } + }, + "com/mcmoddev/lib/energy/tesla/TeslaEnergyValue": { + "access": 33, + "super": "com/mcmoddev/lib/energy/BaseEnergyValue", + "interfaces": [], + "signature": "Lcom/mcmoddev/lib/energy/BaseEnergyValue;", + "fields": {}, + "methods": { + "(J)V": [ + 1, + null, + [] + ], + "add(Lcom/mcmoddev/lib/energy/IEnergyValue;)Lcom/mcmoddev/lib/energy/IEnergyValue;": [ + 1, + "(Lcom/mcmoddev/lib/energy/IEnergyValue;)Lcom/mcmoddev/lib/energy/IEnergyValue;", + [] + ], + "copy()Lcom/mcmoddev/lib/energy/IEnergyValue;": [ + 1, + "()Lcom/mcmoddev/lib/energy/IEnergyValue;", + [] + ], + "subtract(Lcom/mcmoddev/lib/energy/IEnergyValue;)Lcom/mcmoddev/lib/energy/IEnergyValue;": [ + 1, + "(Lcom/mcmoddev/lib/energy/IEnergyValue;)Lcom/mcmoddev/lib/energy/IEnergyValue;", + [] + ], + "toString()Ljava/lang/String;": [ + 1, + null, + [] + ] + } + }, + "com/mcmoddev/lib/energy/tesla/package-info": { + "access": 5632, + "super": "java/lang/Object", + "interfaces": [], + "fields": {}, + "methods": {} + }, + "com/mcmoddev/lib/energy/util/EnergyValueUtils": { + "access": 49, + "super": "java/lang/Object", + "interfaces": [], + "fields": {}, + "methods": { + "()V": [ + 4, + null, + [] + ], + "canGetForgeEnergy(Lcom/mcmoddev/lib/energy/IEnergyValue;)Z": [ + 9, + null, + [] + ], + "getForgeEnergy(Lcom/mcmoddev/lib/energy/IEnergyValue;)I": [ + 9, + null, + [] + ] + } + }, + "com/mcmoddev/lib/energy/util/package-info": { + "access": 5632, + "super": "java/lang/Object", + "interfaces": [], + "fields": {}, + "methods": {} + }, + "com/mcmoddev/lib/entity/EntityCustomArrow": { + "access": 33, + "super": "net/minecraft/entity/projectile/EntityTippedArrow", + "interfaces": [], + "fields": {}, + "methods": { + "(Lnet/minecraft/world/World;)V": [ + 1, + null, + [] + ], + "(Lnet/minecraft/world/World;DDD)V": [ + 1, + null, + [] + ], + "(Lnet/minecraft/world/World;Lnet/minecraft/item/ItemStack;Lnet/minecraft/entity/player/EntityPlayer;)V": [ + 1, + null, + [] + ], + "equals(Ljava/lang/Object;)Z": [ + 1, + null, + [] + ], + "getArrowStack()Lnet/minecraft/item/ItemStack;": [ + 4, + null, + [] + ], + "hashCode()I": [ + 1, + null, + [] + ], + "readFromNBT(Lnet/minecraft/nbt/NBTTagCompound;)V": [ + 1, + null, + [] + ], + "writeToNBT(Lnet/minecraft/nbt/NBTTagCompound;)Lnet/minecraft/nbt/NBTTagCompound;": [ + 1, + null, + [] + ] + } + }, + "com/mcmoddev/lib/entity/EntityCustomBolt": { + "access": 33, + "super": "net/minecraft/entity/projectile/EntityTippedArrow", + "interfaces": [], + "fields": {}, + "methods": { + "(Lnet/minecraft/world/World;)V": [ + 1, + null, + [] + ], + "(Lnet/minecraft/world/World;DDD)V": [ + 1, + null, + [] + ], + "(Lnet/minecraft/world/World;Lnet/minecraft/item/ItemStack;Lnet/minecraft/entity/player/EntityPlayer;)V": [ + 1, + null, + [] + ], + "equals(Ljava/lang/Object;)Z": [ + 1, + null, + [] + ], + "getArrowStack()Lnet/minecraft/item/ItemStack;": [ + 4, + null, + [] + ], + "getBoltStack()Lnet/minecraft/item/ItemStack;": [ + 4, + null, + [] + ], + "hashCode()I": [ + 1, + null, + [] + ], + "readFromNBT(Lnet/minecraft/nbt/NBTTagCompound;)V": [ + 1, + null, + [] + ], + "writeToNBT(Lnet/minecraft/nbt/NBTTagCompound;)Lnet/minecraft/nbt/NBTTagCompound;": [ + 1, + null, + [] + ] + } + }, + "com/mcmoddev/lib/entity/EntityHelpers": { + "access": 33, + "super": "java/lang/Object", + "interfaces": [], + "fields": {}, + "methods": { + "readFromNBTItemStack(Lnet/minecraft/nbt/NBTTagCompound;)Lnet/minecraft/item/ItemStack;": [ + 9, + null, + [] + ], + "writeToNBTItemStack(Lnet/minecraft/nbt/NBTTagCompound;Lnet/minecraft/item/ItemStack;)Lnet/minecraft/nbt/NBTTagCompound;": [ + 9, + null, + [] + ] + } + }, + "com/mcmoddev/lib/entity/package-info": { + "access": 5632, + "super": "java/lang/Object", + "interfaces": [], + "fields": {}, + "methods": {} + }, + "com/mcmoddev/lib/events/IRegAPI": { + "access": 1537, + "super": "java/lang/Object", + "interfaces": [], + "signature": "Ljava/lang/Object;", + "fields": {}, + "methods": { + "addSorting(Ljava/lang/Class;)V": [ + 1, + "(Ljava/lang/Class<*>;)V", + [] + ], + "addSorting(Ljava/lang/Class;Ljava/lang/Class;)V": [ + 1, + "(Ljava/lang/Class<*>;Ljava/lang/Class<*>;)V", + [] + ], + "addType(Ljava/lang/Class;Lcom/mcmoddev/lib/data/Names;)V": [ + 1025, + "(Ljava/lang/Class<+TT;>;Lcom/mcmoddev/lib/data/Names;)V", + [] + ], + "addType(Ljava/lang/Class;Lcom/mcmoddev/lib/data/Names;Ljava/lang/Class;)V": [ + 1, + "(Ljava/lang/Class<+TT;>;Lcom/mcmoddev/lib/data/Names;Ljava/lang/Class<*>;)V", + [] + ], + "addType(Ljava/lang/Class;Lcom/mcmoddev/lib/data/Names;Ljava/lang/String;)V": [ + 1025, + "(Ljava/lang/Class<+TT;>;Lcom/mcmoddev/lib/data/Names;Ljava/lang/String;)V", + [] + ], + "addType(Ljava/lang/Class;Lcom/mcmoddev/lib/data/Names;Ljava/lang/String;Ljava/lang/Class;)V": [ + 1, + "(Ljava/lang/Class<+TT;>;Lcom/mcmoddev/lib/data/Names;Ljava/lang/String;Ljava/lang/Class<*>;)V", + [] + ], + "addType(Ljava/lang/Class;Lcom/mcmoddev/lib/data/Names;Z)V": [ + 1025, + "(Ljava/lang/Class<+TT;>;Lcom/mcmoddev/lib/data/Names;Z)V", + [] + ], + "addType(Ljava/lang/Class;Lcom/mcmoddev/lib/data/Names;ZLjava/lang/Class;)V": [ + 1, + "(Ljava/lang/Class<+TT;>;Lcom/mcmoddev/lib/data/Names;ZLjava/lang/Class<*>;)V", + [] + ], + "addType(Ljava/lang/Class;Lcom/mcmoddev/lib/data/Names;ZLjava/lang/String;)V": [ + 1025, + "(Ljava/lang/Class<+TT;>;Lcom/mcmoddev/lib/data/Names;ZLjava/lang/String;)V", + [] + ], + "addType(Ljava/lang/Class;Lcom/mcmoddev/lib/data/Names;ZLjava/lang/String;Ljava/lang/Class;)V": [ + 1, + "(Ljava/lang/Class<+TT;>;Lcom/mcmoddev/lib/data/Names;ZLjava/lang/String;Ljava/lang/Class<*>;)V", + [] + ], + "addType(Ljava/lang/Class;Ljava/lang/String;)V": [ + 1025, + "(Ljava/lang/Class<+TT;>;Ljava/lang/String;)V", + [] + ], + "addType(Ljava/lang/Class;Ljava/lang/String;Ljava/lang/Class;)V": [ + 1, + "(Ljava/lang/Class<+TT;>;Ljava/lang/String;Ljava/lang/Class<*>;)V", + [] + ], + "addType(Ljava/lang/Class;Ljava/lang/String;Ljava/lang/String;)V": [ + 1025, + "(Ljava/lang/Class<+TT;>;Ljava/lang/String;Ljava/lang/String;)V", + [] + ], + "addType(Ljava/lang/Class;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Class;)V": [ + 1, + "(Ljava/lang/Class<+TT;>;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Class<*>;)V", + [] + ], + "addType(Ljava/lang/Class;Ljava/lang/String;Z)V": [ + 1025, + "(Ljava/lang/Class<+TT;>;Ljava/lang/String;Z)V", + [] + ], + "addType(Ljava/lang/Class;Ljava/lang/String;ZLjava/lang/String;)V": [ + 1025, + "(Ljava/lang/Class<+TT;>;Ljava/lang/String;ZLjava/lang/String;)V", + [] + ] + } + }, + "com/mcmoddev/lib/events/MMDLibRegisterBlockTypes": { + "access": 33, + "super": "net/minecraftforge/fml/common/eventhandler/Event", + "interfaces": [ + "net/minecraftforge/fml/common/eventhandler/IContextSetter" + ], + "fields": {}, + "methods": { + "()V": [ + 1, + null, + [] + ], + "getApi()Lcom/mcmoddev/lib/events/IRegAPI;": [ + 1, + "()Lcom/mcmoddev/lib/events/IRegAPI;", + [] + ] + } + }, + "com/mcmoddev/lib/events/MMDLibRegisterBlockTypes$1": { + "access": 4128, + "super": "java/lang/Object", + "interfaces": [], + "fields": {}, + "methods": {} + }, + "com/mcmoddev/lib/events/MMDLibRegisterBlockTypes$BlocksAPI": { + "access": 48, + "super": "java/lang/Object", + "interfaces": [ + "com/mcmoddev/lib/events/IRegAPI" + ], + "signature": "Ljava/lang/Object;Lcom/mcmoddev/lib/events/IRegAPI;", + "fields": {}, + "methods": { + "addType(Ljava/lang/Class;Lcom/mcmoddev/lib/data/Names;)V": [ + 1, + "(Ljava/lang/Class<+Lnet/minecraft/block/Block;>;Lcom/mcmoddev/lib/data/Names;)V", + [] + ], + "addType(Ljava/lang/Class;Lcom/mcmoddev/lib/data/Names;Ljava/lang/String;)V": [ + 1, + "(Ljava/lang/Class<+Lnet/minecraft/block/Block;>;Lcom/mcmoddev/lib/data/Names;Ljava/lang/String;)V", + [] + ], + "addType(Ljava/lang/Class;Lcom/mcmoddev/lib/data/Names;Z)V": [ + 1, + "(Ljava/lang/Class<+Lnet/minecraft/block/Block;>;Lcom/mcmoddev/lib/data/Names;Z)V", + [] + ], + "addType(Ljava/lang/Class;Lcom/mcmoddev/lib/data/Names;ZLjava/lang/String;)V": [ + 1, + "(Ljava/lang/Class<+Lnet/minecraft/block/Block;>;Lcom/mcmoddev/lib/data/Names;ZLjava/lang/String;)V", + [] + ], + "addType(Ljava/lang/Class;Ljava/lang/String;)V": [ + 1, + "(Ljava/lang/Class<+Lnet/minecraft/block/Block;>;Ljava/lang/String;)V", + [] + ], + "addType(Ljava/lang/Class;Ljava/lang/String;Ljava/lang/String;)V": [ + 1, + "(Ljava/lang/Class<+Lnet/minecraft/block/Block;>;Ljava/lang/String;Ljava/lang/String;)V", + [] + ], + "addType(Ljava/lang/Class;Ljava/lang/String;Z)V": [ + 1, + "(Ljava/lang/Class<+Lnet/minecraft/block/Block;>;Ljava/lang/String;Z)V", + [] + ], + "addType(Ljava/lang/Class;Ljava/lang/String;ZLjava/lang/String;)V": [ + 1, + "(Ljava/lang/Class<+Lnet/minecraft/block/Block;>;Ljava/lang/String;ZLjava/lang/String;)V", + [] + ] + } + }, + "com/mcmoddev/lib/events/MMDLibRegisterBlockTypes$BlocksAPI$BlocksWrapper": { + "access": 48, + "super": "com/mcmoddev/lib/init/Blocks", + "interfaces": [], + "fields": {}, + "methods": {} + }, + "com/mcmoddev/lib/events/MMDLibRegisterBlocks": { + "access": 33, + "super": "net/minecraftforge/fml/common/eventhandler/Event", + "interfaces": [ + "net/minecraftforge/fml/common/eventhandler/IContextSetter" + ], + "fields": {}, + "methods": { + "()V": [ + 1, + null, + [] + ] + } + }, + "com/mcmoddev/lib/events/MMDLibRegisterFluids": { + "access": 33, + "super": "net/minecraftforge/fml/common/eventhandler/Event", + "interfaces": [ + "net/minecraftforge/fml/common/eventhandler/IContextSetter" + ], + "fields": {}, + "methods": { + "()V": [ + 1, + null, + [] + ] + } + }, + "com/mcmoddev/lib/events/MMDLibRegisterItemTypes": { + "access": 33, + "super": "net/minecraftforge/fml/common/eventhandler/Event", + "interfaces": [ + "net/minecraftforge/fml/common/eventhandler/IContextSetter" + ], + "fields": {}, + "methods": { + "()V": [ + 1, + null, + [] + ], + "getApi()Lcom/mcmoddev/lib/events/IRegAPI;": [ + 1, + "()Lcom/mcmoddev/lib/events/IRegAPI;", + [] + ] + } + }, + "com/mcmoddev/lib/events/MMDLibRegisterItemTypes$ItemsAPI": { + "access": 49, + "super": "java/lang/Object", + "interfaces": [ + "com/mcmoddev/lib/events/IRegAPI" + ], + "signature": "Ljava/lang/Object;Lcom/mcmoddev/lib/events/IRegAPI;", + "fields": {}, + "methods": { + "()V": [ + 4, + null, + [] + ], + "addSorting(Ljava/lang/Class;)V": [ + 1, + "(Ljava/lang/Class<*>;)V", + [] + ], + "addSorting(Ljava/lang/Class;Ljava/lang/Class;)V": [ + 1, + "(Ljava/lang/Class<*>;Ljava/lang/Class<*>;)V", + [] + ], + "addType(Ljava/lang/Class;Lcom/mcmoddev/lib/data/Names;)V": [ + 1, + "(Ljava/lang/Class<+Lnet/minecraft/item/Item;>;Lcom/mcmoddev/lib/data/Names;)V", + [] + ], + "addType(Ljava/lang/Class;Lcom/mcmoddev/lib/data/Names;Ljava/lang/Class;)V": [ + 1, + "(Ljava/lang/Class<+Lnet/minecraft/item/Item;>;Lcom/mcmoddev/lib/data/Names;Ljava/lang/Class<*>;)V", + [] + ], + "addType(Ljava/lang/Class;Lcom/mcmoddev/lib/data/Names;Ljava/lang/String;)V": [ + 1, + "(Ljava/lang/Class<+Lnet/minecraft/item/Item;>;Lcom/mcmoddev/lib/data/Names;Ljava/lang/String;)V", + [] + ], + "addType(Ljava/lang/Class;Lcom/mcmoddev/lib/data/Names;Ljava/lang/String;Ljava/lang/Class;)V": [ + 1, + "(Ljava/lang/Class<+Lnet/minecraft/item/Item;>;Lcom/mcmoddev/lib/data/Names;Ljava/lang/String;Ljava/lang/Class<*>;)V", + [] + ], + "addType(Ljava/lang/Class;Lcom/mcmoddev/lib/data/Names;Z)V": [ + 1, + "(Ljava/lang/Class<+Lnet/minecraft/item/Item;>;Lcom/mcmoddev/lib/data/Names;Z)V", + [] + ], + "addType(Ljava/lang/Class;Lcom/mcmoddev/lib/data/Names;ZLjava/lang/String;)V": [ + 1, + "(Ljava/lang/Class<+Lnet/minecraft/item/Item;>;Lcom/mcmoddev/lib/data/Names;ZLjava/lang/String;)V", + [] + ], + "addType(Ljava/lang/Class;Lcom/mcmoddev/lib/data/Names;ZLjava/lang/String;Ljava/lang/Class;)V": [ + 1, + "(Ljava/lang/Class<+Lnet/minecraft/item/Item;>;Lcom/mcmoddev/lib/data/Names;ZLjava/lang/String;Ljava/lang/Class<*>;)V", + [] + ], + "addType(Ljava/lang/Class;Ljava/lang/String;)V": [ + 1, + "(Ljava/lang/Class<+Lnet/minecraft/item/Item;>;Ljava/lang/String;)V", + [] + ], + "addType(Ljava/lang/Class;Ljava/lang/String;Ljava/lang/Class;)V": [ + 1, + "(Ljava/lang/Class<+Lnet/minecraft/item/Item;>;Ljava/lang/String;Ljava/lang/Class<*>;)V", + [] + ], + "addType(Ljava/lang/Class;Ljava/lang/String;Ljava/lang/String;)V": [ + 1, + "(Ljava/lang/Class<+Lnet/minecraft/item/Item;>;Ljava/lang/String;Ljava/lang/String;)V", + [] + ], + "addType(Ljava/lang/Class;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Class;)V": [ + 1, + "(Ljava/lang/Class<+Lnet/minecraft/item/Item;>;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Class<*>;)V", + [] + ], + "addType(Ljava/lang/Class;Ljava/lang/String;Z)V": [ + 1, + "(Ljava/lang/Class<+Lnet/minecraft/item/Item;>;Ljava/lang/String;Z)V", + [] + ], + "addType(Ljava/lang/Class;Ljava/lang/String;ZLjava/lang/String;)V": [ + 1, + "(Ljava/lang/Class<+Lnet/minecraft/item/Item;>;Ljava/lang/String;ZLjava/lang/String;)V", + [] + ] + } + }, + "com/mcmoddev/lib/events/MMDLibRegisterItemTypes$ItemsAPI$ItemsWrapper": { + "access": 48, + "super": "com/mcmoddev/lib/init/Items", + "interfaces": [], + "fields": {}, + "methods": { + "addSorting(Ljava/lang/Class;)V": [ + 9, + "(Ljava/lang/Class<*>;)V", + [] + ], + "addSorting(Ljava/lang/Class;Ljava/lang/Class;)V": [ + 9, + "(Ljava/lang/Class<*>;Ljava/lang/Class<*>;)V", + [] + ], + "addType(Ljava/lang/Class;Ljava/lang/String;Z)V": [ + 9, + "(Ljava/lang/Class<+Lnet/minecraft/item/Item;>;Ljava/lang/String;Z)V", + [] + ], + "addType(Ljava/lang/Class;Ljava/lang/String;ZLjava/lang/String;)V": [ + 9, + "(Ljava/lang/Class<+Lnet/minecraft/item/Item;>;Ljava/lang/String;ZLjava/lang/String;)V", + [] + ], + "addType(Ljava/lang/Class;Ljava/lang/String;ZLjava/lang/String;Ljava/lang/Class;)V": [ + 9, + "(Ljava/lang/Class<+Lnet/minecraft/item/Item;>;Ljava/lang/String;ZLjava/lang/String;Ljava/lang/Class<*>;)V", + [] + ] + } + }, + "com/mcmoddev/lib/events/MMDLibRegisterItems": { + "access": 33, + "super": "net/minecraftforge/fml/common/eventhandler/Event", + "interfaces": [ + "net/minecraftforge/fml/common/eventhandler/IContextSetter" + ], + "fields": {}, + "methods": { + "()V": [ + 1, + null, + [] + ] + } + }, + "com/mcmoddev/lib/events/MMDLibRegisterMaterialProperties": { + "access": 33, + "super": "net/minecraftforge/fml/common/eventhandler/Event", + "interfaces": [ + "net/minecraftforge/fml/common/eventhandler/IContextSetter" + ], + "fields": {}, + "methods": { + "()V": [ + 1, + null, + [] + ], + "getRegistry()Lnet/minecraftforge/registries/IForgeRegistry;": [ + 1, + "()Lnet/minecraftforge/registries/IForgeRegistry;", + [] + ] + } + }, + "com/mcmoddev/lib/events/MMDLibRegisterMaterials": { + "access": 33, + "super": "net/minecraftforge/fml/common/eventhandler/Event", + "interfaces": [ + "net/minecraftforge/fml/common/eventhandler/IContextSetter" + ], + "fields": {}, + "methods": { + "()V": [ + 1, + null, + [] + ] + } + }, + "com/mcmoddev/lib/events/MMLibPreInitSync": { + "access": 33, + "super": "net/minecraftforge/fml/common/eventhandler/Event", + "interfaces": [ + "net/minecraftforge/fml/common/eventhandler/IContextSetter" + ], + "fields": {}, + "methods": { + "()V": [ + 1, + null, + [] + ] + } + }, + "com/mcmoddev/lib/events/package-info": { + "access": 5632, + "super": "java/lang/Object", + "interfaces": [], + "fields": {}, + "methods": {} + }, + "com/mcmoddev/lib/exceptions/MaterialNotFoundException": { + "access": 33, + "super": "java/lang/Exception", + "interfaces": [], + "fields": {}, + "methods": { + "(Ljava/lang/String;)V": [ + 1, + null, + [] + ] + } + }, + "com/mcmoddev/lib/exceptions/TabNotFoundException": { + "access": 33, + "super": "java/lang/Exception", + "interfaces": [], + "fields": {}, + "methods": { + "(Ljava/lang/String;)V": [ + 1, + null, + [] + ] + } + }, + "com/mcmoddev/lib/feature/BaseFeature": { + "access": 1057, + "super": "java/lang/Object", + "interfaces": [ + "com/mcmoddev/lib/feature/IFeature", + "com/mcmoddev/lib/feature/IServerFeature" + ], + "fields": {}, + "methods": { + "(Ljava/lang/String;)V": [ + 4, + null, + [] + ], + "getGuiUpdateTag(Z)Lnet/minecraft/nbt/NBTTagCompound;": [ + 1, + null, + [] + ], + "getHolder()Lcom/mcmoddev/lib/feature/IFeatureHolder;": [ + 1, + null, + [] + ], + "getKey()Ljava/lang/String;": [ + 1, + null, + [] + ], + "getLoadUpdateTag()Lnet/minecraft/nbt/NBTTagCompound;": [ + 1, + null, + [] + ], + "getSidedWrapper(II)Lcom/mcmoddev/lib/feature/ISidedFeature;": [ + 1, + null, + [] + ], + "getSidedWrapper(Ljava/awt/Color;I)Lcom/mcmoddev/lib/feature/ISidedFeature;": [ + 1, + null, + [] + ], + "getSidedWrapper(Lnet/minecraft/block/material/MapColor;I)Lcom/mcmoddev/lib/feature/ISidedFeature;": [ + 1, + null, + [] + ], + "getTickUpdateTag(Z)Lnet/minecraft/nbt/NBTTagCompound;": [ + 1, + null, + [] + ], + "isDirty()Z": [ + 1, + null, + [] + ], + "serializeNBT()Lnet/minecraft/nbt/NBTBase;": [ + 4161, + null, + [] + ], + "serializeNBT()Lnet/minecraft/nbt/NBTTagCompound;": [ + 17, + null, + [] + ], + "setDirty()V": [ + 4, + null, + [] + ], + "setDirty(Lcom/mcmoddev/lib/feature/FeatureDirtyLevel;)V": [ + 4, + null, + [] + ], + "setHolder(Lcom/mcmoddev/lib/feature/IFeatureHolder;)V": [ + 1, + null, + [] + ], + "writeToNBT(Lnet/minecraft/nbt/NBTTagCompound;)V": [ + 1028, + null, + [] + ] + } + }, + "com/mcmoddev/lib/feature/BaseItemStackFeatureHolder": { + "access": 33, + "super": "java/lang/Object", + "interfaces": [ + "com/mcmoddev/lib/feature/IFeatureHolder", + "com/mcmoddev/lib/container/IWidgetContainer" + ], + "fields": {}, + "methods": { + "(Lnet/minecraft/item/ItemStack;)V": [ + 1, + null, + [] + ], + "addFeature(Lcom/mcmoddev/lib/feature/IFeature;)Lcom/mcmoddev/lib/feature/IFeature;": [ + 1, + "(TT;)TT;", + [] + ], + "featureChanged(Lcom/mcmoddev/lib/feature/IFeature;Lcom/mcmoddev/lib/feature/FeatureDirtyLevel;)V": [ + 1, + null, + [] + ], + "getFeatures()[Lcom/mcmoddev/lib/feature/IFeature;": [ + 1, + null, + [] + ], + "getGuiUpdateTag(Z)Lnet/minecraft/nbt/NBTTagCompound;": [ + 1, + null, + [] + ], + "getRootWidgetGui(Lcom/mcmoddev/lib/container/gui/GuiContext;)Lcom/mcmoddev/lib/container/gui/IWidgetGui;": [ + 1, + null, + [] + ], + "getWidgets(Lcom/mcmoddev/lib/container/gui/GuiContext;)Ljava/util/List;": [ + 1, + "(Lcom/mcmoddev/lib/container/gui/GuiContext;)Ljava/util/List;", + [] + ], + "receiveGuiUpdateTag(Lnet/minecraft/nbt/NBTTagCompound;)V": [ + 1, + null, + [] + ] + } + }, + "com/mcmoddev/lib/feature/FeatureDirtyLevel": { + "access": 16433, + "super": "java/lang/Enum", + "interfaces": [], + "signature": "Ljava/lang/Enum;", + "fields": { + "GUI:Lcom/mcmoddev/lib/feature/FeatureDirtyLevel;": [ + 16409, + null, + null + ], + "LOAD:Lcom/mcmoddev/lib/feature/FeatureDirtyLevel;": [ + 16409, + null, + null + ], + "MIN_LEVEL:Lcom/mcmoddev/lib/feature/FeatureDirtyLevel;": [ + 25, + null, + null + ], + "TICK:Lcom/mcmoddev/lib/feature/FeatureDirtyLevel;": [ + 16409, + null, + null + ] + }, + "methods": { + "getLevel()I": [ + 1, + null, + [] + ], + "isMatchOrHigher(Lcom/mcmoddev/lib/feature/FeatureDirtyLevel;)Z": [ + 1, + null, + [] + ], + "valueOf(Ljava/lang/String;)Lcom/mcmoddev/lib/feature/FeatureDirtyLevel;": [ + 9, + null, + [] + ], + "values()[Lcom/mcmoddev/lib/feature/FeatureDirtyLevel;": [ + 9, + null, + [] + ] + } + }, + "com/mcmoddev/lib/feature/FluidTankFeature": { + "access": 33, + "super": "com/mcmoddev/lib/feature/BaseFeature", + "interfaces": [ + "com/mcmoddev/lib/feature/IClientFeature", + "com/mcmoddev/lib/container/IWidgetContainer" + ], + "fields": {}, + "methods": { + "(Ljava/lang/String;ILjava/util/function/Predicate;Ljava/util/function/Predicate;)V": [ + 1, + "(Ljava/lang/String;ILjava/util/function/Predicate;Ljava/util/function/Predicate;)V", + [] + ], + "(Ljava/lang/String;Lcom/mcmoddev/lib/inventory/IFluidTankModifiable;Ljava/util/function/Predicate;Ljava/util/function/Predicate;)V": [ + 1, + "(Ljava/lang/String;Lcom/mcmoddev/lib/inventory/IFluidTankModifiable;Ljava/util/function/Predicate;Ljava/util/function/Predicate;)V", + [] + ], + "(Ljava/lang/String;Lnet/minecraftforge/fluids/Fluid;ILjava/util/function/Predicate;)V": [ + 1, + "(Ljava/lang/String;Lnet/minecraftforge/fluids/Fluid;ILjava/util/function/Predicate;)V", + [] + ], + "deserializeNBT(Lnet/minecraft/nbt/NBTBase;)V": [ + 4161, + null, + [] + ], + "deserializeNBT(Lnet/minecraft/nbt/NBTTagCompound;)V": [ + 1, + null, + [] + ], + "getExternalTank()Lnet/minecraftforge/fluids/IFluidTank;": [ + 1, + null, + [] + ], + "getFluid()Lnet/minecraftforge/fluids/FluidStack;": [ + 1, + null, + [] + ], + "getInternalTank()Lcom/mcmoddev/lib/inventory/IFluidTankModifiable;": [ + 1, + null, + [] + ], + "getRootWidgetGui(Lcom/mcmoddev/lib/container/gui/GuiContext;)Lcom/mcmoddev/lib/container/gui/IWidgetGui;": [ + 1, + null, + [] + ], + "getWidgets(Lcom/mcmoddev/lib/container/gui/GuiContext;)Ljava/util/List;": [ + 1, + "(Lcom/mcmoddev/lib/container/gui/GuiContext;)Ljava/util/List;", + [] + ], + "initCapabilities(Lcom/mcmoddev/lib/capability/ICapabilitiesContainer;)V": [ + 1, + null, + [] + ], + "supportsClickToDrain()Z": [ + 1, + null, + [] + ], + "supportsClickToFill()Z": [ + 1, + null, + [] + ], + "writeToNBT(Lnet/minecraft/nbt/NBTTagCompound;)V": [ + 4, + null, + [] + ] + } + }, + "com/mcmoddev/lib/feature/FluidTankFeature$FluidTankWidget": { + "access": 32, + "super": "com/mcmoddev/lib/container/widget/ActionWidget", + "interfaces": [], + "fields": {}, + "methods": { + "(Lcom/mcmoddev/lib/feature/FluidTankFeature;)V": [ + 4, + null, + [] + ] + } + }, + "com/mcmoddev/lib/feature/FluidTankFeature$FluidTankWidgetGui": { + "access": 32, + "super": "com/mcmoddev/lib/container/gui/BaseWidgetGui", + "interfaces": [], + "fields": {}, + "methods": { + "getLayers()[Lcom/mcmoddev/lib/container/gui/GuiPieceLayer;": [ + 1, + null, + [] + ], + "getTooltip(Ljava/util/List;)V": [ + 1, + "(Ljava/util/List;)V", + [] + ], + "mouseReleased(Lcom/mcmoddev/lib/container/gui/MMDGuiContainer;III)Z": [ + 1, + null, + [] + ] + } + }, + "com/mcmoddev/lib/feature/ForgeEnergyBatteryFeature": { + "access": 33, + "super": "com/mcmoddev/lib/feature/BaseFeature", + "interfaces": [ + "net/minecraftforge/common/capabilities/ICapabilityProvider", + "com/mcmoddev/lib/feature/IClientFeature", + "com/mcmoddev/lib/container/IWidgetContainer" + ], + "fields": { + "DEFAULT_INPUT_OUTPUT_RATE:I": [ + 25, + null, + 120 + ] + }, + "methods": { + "(Ljava/lang/String;I)V": [ + 1, + null, + [] + ], + "(Ljava/lang/String;II)V": [ + 1, + null, + [] + ], + "(Ljava/lang/String;IIII)V": [ + 1, + null, + [] + ], + "deserializeNBT(Lnet/minecraft/nbt/NBTBase;)V": [ + 4161, + null, + [] + ], + "deserializeNBT(Lnet/minecraft/nbt/NBTTagCompound;)V": [ + 1, + null, + [] + ], + "getCapability(Lnet/minecraftforge/common/capabilities/Capability;Lnet/minecraft/util/EnumFacing;)Ljava/lang/Object;": [ + 1, + "(Lnet/minecraftforge/common/capabilities/Capability;Lnet/minecraft/util/EnumFacing;)TT;", + [] + ], + "getEnergyStorage()Lcom/mcmoddev/lib/energy/ForgeEnergyStorage;": [ + 1, + null, + [] + ], + "getRootWidgetGui(Lcom/mcmoddev/lib/container/gui/GuiContext;)Lcom/mcmoddev/lib/container/gui/IWidgetGui;": [ + 1, + null, + [] + ], + "hasCapability(Lnet/minecraftforge/common/capabilities/Capability;Lnet/minecraft/util/EnumFacing;)Z": [ + 1, + "(Lnet/minecraftforge/common/capabilities/Capability<*>;Lnet/minecraft/util/EnumFacing;)Z", + [] + ], + "writeToNBT(Lnet/minecraft/nbt/NBTTagCompound;)V": [ + 4, + null, + [] + ] + } + }, + "com/mcmoddev/lib/feature/ForgeEnergyBatteryFeature$1": { + "access": 32, + "super": "com/mcmoddev/lib/energy/ForgeEnergyStorage", + "interfaces": [], + "fields": {}, + "methods": { + "onChanged()V": [ + 4, + null, + [] + ] + } + }, + "com/mcmoddev/lib/feature/ForgeEnergyBatteryFeature$ForgeEnergyWidgetGui": { + "access": 32, + "super": "com/mcmoddev/lib/container/gui/BaseWidgetGui", + "interfaces": [], + "fields": {}, + "methods": { + "drawMiddleLayer(Lcom/mcmoddev/lib/container/gui/MMDGuiContainer;FII)V": [ + 1, + null, + [] + ], + "getLayer()Lcom/mcmoddev/lib/container/gui/GuiPieceLayer;": [ + 1, + null, + [] + ], + "getTooltip(Ljava/util/List;)V": [ + 1, + "(Ljava/util/List;)V", + [] + ] + } + }, + "com/mcmoddev/lib/feature/IClientFeature": { + "access": 1537, + "super": "java/lang/Object", + "interfaces": [ + "com/mcmoddev/lib/feature/IFeature" + ], + "fields": {}, + "methods": { + "handleUpdateTag(Lnet/minecraft/nbt/NBTTagCompound;)V": [ + 1, + null, + [] + ] + } + }, + "com/mcmoddev/lib/feature/IFeature": { + "access": 1537, + "super": "java/lang/Object", + "interfaces": [ + "net/minecraftforge/common/util/INBTSerializable" + ], + "signature": "Ljava/lang/Object;Lnet/minecraftforge/common/util/INBTSerializable;", + "fields": {}, + "methods": { + "getHolder()Lcom/mcmoddev/lib/feature/IFeatureHolder;": [ + 1025, + null, + [] + ], + "getKey()Ljava/lang/String;": [ + 1025, + null, + [] + ], + "initCapabilities(Lcom/mcmoddev/lib/capability/ICapabilitiesContainer;)V": [ + 1, + null, + [] + ], + "setHolder(Lcom/mcmoddev/lib/feature/IFeatureHolder;)V": [ + 1025, + null, + [] + ] + } + }, + "com/mcmoddev/lib/feature/IFeatureHolder": { + "access": 1537, + "super": "java/lang/Object", + "interfaces": [], + "fields": {}, + "methods": { + "addFeature(Lcom/mcmoddev/lib/feature/IFeature;)Lcom/mcmoddev/lib/feature/IFeature;": [ + 1025, + "(TT;)TT;", + [] + ], + "featureChanged(Lcom/mcmoddev/lib/feature/IFeature;Lcom/mcmoddev/lib/feature/FeatureDirtyLevel;)V": [ + 1025, + null, + [] + ], + "findTypedFeature(Ljava/lang/Class;)Lcom/mcmoddev/lib/feature/IFeature;": [ + 1, + "(Ljava/lang/Class;)TT;", + [] + ], + "findTypedFeatures(Ljava/lang/Class;)Ljava/util/List;": [ + 1, + "(Ljava/lang/Class;)Ljava/util/List;", + [] + ], + "getFeature(Ljava/lang/String;)Lcom/mcmoddev/lib/feature/IFeature;": [ + 1, + null, + [] + ], + "getFeatures()[Lcom/mcmoddev/lib/feature/IFeature;": [ + 1025, + null, + [] + ], + "getTypedFeature(Ljava/lang/Class;Ljava/lang/String;)Lcom/mcmoddev/lib/feature/IFeature;": [ + 1, + "(Ljava/lang/Class;Ljava/lang/String;)TT;", + [] + ] + } + }, + "com/mcmoddev/lib/feature/IFeatureHolderProxy": { + "access": 1537, + "super": "java/lang/Object", + "interfaces": [], + "fields": {}, + "methods": { + "getFeatureHolder()Lcom/mcmoddev/lib/feature/IFeatureHolder;": [ + 1025, + null, + [] + ] + } + }, + "com/mcmoddev/lib/feature/IItemStackFeatureHolder": { + "access": 1537, + "super": "java/lang/Object", + "interfaces": [], + "fields": {}, + "methods": { + "getFeatureHolder(Lnet/minecraft/item/ItemStack;)Lcom/mcmoddev/lib/feature/IFeatureHolder;": [ + 1, + null, + [] + ], + "initFeatures(Lcom/mcmoddev/lib/feature/IFeatureHolder;)V": [ + 1025, + null, + [] + ] + } + }, + "com/mcmoddev/lib/feature/IServerFeature": { + "access": 1537, + "super": "java/lang/Object", + "interfaces": [ + "com/mcmoddev/lib/feature/IFeature" + ], + "fields": {}, + "methods": { + "getGuiUpdateTag(Z)Lnet/minecraft/nbt/NBTTagCompound;": [ + 1025, + null, + [] + ], + "getLoadUpdateTag()Lnet/minecraft/nbt/NBTTagCompound;": [ + 1025, + null, + [] + ], + "getTickUpdateTag(Z)Lnet/minecraft/nbt/NBTTagCompound;": [ + 1025, + null, + [] + ], + "isDirty()Z": [ + 1025, + null, + [] + ] + } + }, + "com/mcmoddev/lib/feature/ISidedFeature": { + "access": 1537, + "super": "java/lang/Object", + "interfaces": [ + "com/mcmoddev/lib/feature/IFeature" + ], + "fields": {}, + "methods": { + "disableFacing(Lnet/minecraft/util/EnumFacing;)V": [ + 1, + null, + [] + ], + "enableFacing(Lnet/minecraft/util/EnumFacing;)V": [ + 1, + null, + [] + ], + "getColor()I": [ + 1025, + null, + [] + ], + "getFacings()[Lnet/minecraft/util/EnumFacing;": [ + 1025, + null, + [] + ], + "getPriorityIndex()I": [ + 1025, + null, + [] + ], + "isFacingEnabled(Lnet/minecraft/util/EnumFacing;)Z": [ + 1, + null, + [] + ], + "setFacings([Lnet/minecraft/util/EnumFacing;)V": [ + 1025, + null, + [] + ] + } + }, + "com/mcmoddev/lib/feature/ItemInventoryFeature": { + "access": 33, + "super": "com/mcmoddev/lib/feature/BaseFeature", + "interfaces": [ + "com/mcmoddev/lib/feature/IClientFeature", + "com/mcmoddev/lib/container/IWidgetContainer", + "net/minecraftforge/common/capabilities/ICapabilityProvider" + ], + "fields": {}, + "methods": { + "(Ljava/lang/String;I)V": [ + 1, + null, + [] + ], + "(Ljava/lang/String;ILjava/util/function/BiPredicate;Ljava/util/function/BiPredicate;)V": [ + 1, + "(Ljava/lang/String;ILjava/util/function/BiPredicate;Ljava/util/function/BiPredicate;)V", + [] + ], + "(Ljava/lang/String;Lnet/minecraftforge/items/IItemHandlerModifiable;Ljava/util/function/BiPredicate;Ljava/util/function/BiPredicate;)V": [ + 1, + "(Ljava/lang/String;Lnet/minecraftforge/items/IItemHandlerModifiable;Ljava/util/function/BiPredicate;Ljava/util/function/BiPredicate;)V", + [] + ], + "deserializeNBT(Lnet/minecraft/nbt/NBTBase;)V": [ + 4161, + null, + [] + ], + "deserializeNBT(Lnet/minecraft/nbt/NBTTagCompound;)V": [ + 1, + null, + [] + ], + "getCapability(Lnet/minecraftforge/common/capabilities/Capability;Lnet/minecraft/util/EnumFacing;)Ljava/lang/Object;": [ + 1, + "(Lnet/minecraftforge/common/capabilities/Capability;Lnet/minecraft/util/EnumFacing;)TT;", + [] + ], + "getColumns()I": [ + 1, + null, + [] + ], + "getExternalHandler()Lnet/minecraftforge/items/IItemHandlerModifiable;": [ + 1, + null, + [] + ], + "getGuiUpdateTag(Z)Lnet/minecraft/nbt/NBTTagCompound;": [ + 1, + null, + [] + ], + "getInternalHandler()Lnet/minecraftforge/items/IItemHandlerModifiable;": [ + 1, + null, + [] + ], + "getLoadUpdateTag()Lnet/minecraft/nbt/NBTTagCompound;": [ + 1, + null, + [] + ], + "getRootWidgetGui(Lcom/mcmoddev/lib/container/gui/GuiContext;)Lcom/mcmoddev/lib/container/gui/IWidgetGui;": [ + 1, + null, + [] + ], + "getWidgets(Lcom/mcmoddev/lib/container/gui/GuiContext;)Ljava/util/List;": [ + 1, + "(Lcom/mcmoddev/lib/container/gui/GuiContext;)Ljava/util/List;", + [] + ], + "hasCapability(Lnet/minecraftforge/common/capabilities/Capability;Lnet/minecraft/util/EnumFacing;)Z": [ + 1, + "(Lnet/minecraftforge/common/capabilities/Capability<*>;Lnet/minecraft/util/EnumFacing;)Z", + [] + ], + "initCapabilities(Lcom/mcmoddev/lib/capability/ICapabilitiesContainer;)V": [ + 1, + null, + [] + ], + "setColumns(I)Lcom/mcmoddev/lib/feature/ItemInventoryFeature;": [ + 1, + null, + [] + ], + "setOverlayColor(I)Lcom/mcmoddev/lib/feature/ItemInventoryFeature;": [ + 1, + null, + [] + ], + "setOverlayColor(II)Lcom/mcmoddev/lib/feature/ItemInventoryFeature;": [ + 1, + null, + [] + ], + "writeToNBT(Lnet/minecraft/nbt/NBTTagCompound;)V": [ + 4, + null, + [] + ] + } + }, + "com/mcmoddev/lib/feature/ItemInventoryFeature$1": { + "access": 32, + "super": "com/mcmoddev/lib/inventory/ItemHandlerWrapper", + "interfaces": [], + "fields": {}, + "methods": { + "onChanged(I)V": [ + 4, + null, + [] + ] + } + }, + "com/mcmoddev/lib/feature/ItemInventoryFeature$2": { + "access": 32, + "super": "java/util/ArrayList", + "interfaces": [], + "signature": "Ljava/util/ArrayList;", + "fields": {}, + "methods": {} + }, + "com/mcmoddev/lib/feature/PlayerInventoryFeature": { + "access": 33, + "super": "com/mcmoddev/lib/feature/BaseFeature", + "interfaces": [ + "com/mcmoddev/lib/container/IWidgetContainer" + ], + "fields": {}, + "methods": { + "(Lcom/mcmoddev/lib/container/PlayerInventory;I)V": [ + 1, + null, + [] + ], + "(Lcom/mcmoddev/lib/container/PlayerInventoryInfo;)V": [ + 1, + null, + [] + ], + "(Ljava/lang/String;Lcom/mcmoddev/lib/container/PlayerInventory;I)V": [ + 1, + null, + [] + ], + "(Ljava/lang/String;Lcom/mcmoddev/lib/container/PlayerInventoryInfo;)V": [ + 1, + null, + [] + ], + "deserializeNBT(Lnet/minecraft/nbt/NBTBase;)V": [ + 4161, + null, + [] + ], + "deserializeNBT(Lnet/minecraft/nbt/NBTTagCompound;)V": [ + 1, + null, + [] + ], + "getRootWidgetGui(Lcom/mcmoddev/lib/container/gui/GuiContext;)Lcom/mcmoddev/lib/container/gui/IWidgetGui;": [ + 1, + null, + [] + ], + "getWidgets(Lcom/mcmoddev/lib/container/gui/GuiContext;)Ljava/util/List;": [ + 1, + "(Lcom/mcmoddev/lib/container/gui/GuiContext;)Ljava/util/List;", + [] + ], + "writeToNBT(Lnet/minecraft/nbt/NBTTagCompound;)V": [ + 4, + null, + [] + ] + } + }, + "com/mcmoddev/lib/feature/PlayerInventoryFeature$1": { + "access": 32, + "super": "java/util/ArrayList", + "interfaces": [], + "signature": "Ljava/util/ArrayList;", + "fields": {}, + "methods": {} + }, + "com/mcmoddev/lib/feature/SidedFeatureWrapper": { + "access": 33, + "super": "java/lang/Object", + "interfaces": [ + "com/mcmoddev/lib/feature/IFeature", + "com/mcmoddev/lib/feature/IClientFeature", + "com/mcmoddev/lib/feature/IServerFeature", + "com/mcmoddev/lib/feature/ISidedFeature", + "net/minecraftforge/common/capabilities/ICapabilityProvider" + ], + "fields": {}, + "methods": { + "(Lcom/mcmoddev/lib/feature/IFeature;II)V": [ + 1, + null, + [] + ], + "deserializeNBT(Lnet/minecraft/nbt/NBTBase;)V": [ + 4161, + null, + [] + ], + "deserializeNBT(Lnet/minecraft/nbt/NBTTagCompound;)V": [ + 1, + null, + [] + ], + "getCapability(Lnet/minecraftforge/common/capabilities/Capability;Lnet/minecraft/util/EnumFacing;)Ljava/lang/Object;": [ + 1, + "(Lnet/minecraftforge/common/capabilities/Capability;Lnet/minecraft/util/EnumFacing;)TT;", + [] + ], + "getColor()I": [ + 1, + null, + [] + ], + "getFacings()[Lnet/minecraft/util/EnumFacing;": [ + 1, + null, + [] + ], + "getGuiUpdateTag(Z)Lnet/minecraft/nbt/NBTTagCompound;": [ + 1, + null, + [] + ], + "getHolder()Lcom/mcmoddev/lib/feature/IFeatureHolder;": [ + 1, + null, + [] + ], + "getKey()Ljava/lang/String;": [ + 1, + null, + [] + ], + "getLoadUpdateTag()Lnet/minecraft/nbt/NBTTagCompound;": [ + 1, + null, + [] + ], + "getPriorityIndex()I": [ + 1, + null, + [] + ], + "getTickUpdateTag(Z)Lnet/minecraft/nbt/NBTTagCompound;": [ + 1, + null, + [] + ], + "handleUpdateTag(Lnet/minecraft/nbt/NBTTagCompound;)V": [ + 1, + null, + [] + ], + "hasCapability(Lnet/minecraftforge/common/capabilities/Capability;Lnet/minecraft/util/EnumFacing;)Z": [ + 1, + "(Lnet/minecraftforge/common/capabilities/Capability<*>;Lnet/minecraft/util/EnumFacing;)Z", + [] + ], + "initCapabilities(Lcom/mcmoddev/lib/capability/ICapabilitiesContainer;)V": [ + 1, + null, + [] + ], + "isDirty()Z": [ + 1, + null, + [] + ], + "readFromNBT(Lnet/minecraft/nbt/NBTTagCompound;)V": [ + 4, + null, + [] + ], + "serializeNBT()Lnet/minecraft/nbt/NBTBase;": [ + 4161, + null, + [] + ], + "serializeNBT()Lnet/minecraft/nbt/NBTTagCompound;": [ + 1, + null, + [] + ], + "setFacings([Lnet/minecraft/util/EnumFacing;)V": [ + 1, + null, + [] + ], + "setHolder(Lcom/mcmoddev/lib/feature/IFeatureHolder;)V": [ + 1, + null, + [] + ], + "writeToNBT(Lnet/minecraft/nbt/NBTTagCompound;)V": [ + 4, + null, + [] + ] + } + }, + "com/mcmoddev/lib/feature/SidedFeatureWrapper$1": { + "access": 32, + "super": "java/lang/Object", + "interfaces": [ + "com/mcmoddev/lib/capability/ICapabilitiesContainer" + ], + "fields": {}, + "methods": { + "addCapability(Lnet/minecraftforge/common/capabilities/Capability;Ljava/util/function/Function;Ljava/util/function/Predicate;)V": [ + 1, + "(Lnet/minecraftforge/common/capabilities/Capability;Ljava/util/function/Function;Ljava/util/function/Predicate;)V", + [] + ] + } + }, + "com/mcmoddev/lib/feature/SimpleWorkFeature": { + "access": 33, + "super": "com/mcmoddev/lib/feature/BaseFeature", + "interfaces": [ + "net/minecraft/util/ITickable" + ], + "fields": {}, + "methods": { + "(Ljava/lang/String;Lcom/mcmoddev/lib/energy/ForgeEnergyStorage;ILjava/util/function/Supplier;Ljava/util/function/Supplier;)V": [ + 1, + "(Ljava/lang/String;Lcom/mcmoddev/lib/energy/ForgeEnergyStorage;ILjava/util/function/Supplier;Ljava/util/function/Supplier;)V", + [] + ], + "deserializeNBT(Lnet/minecraft/nbt/NBTBase;)V": [ + 4161, + null, + [] + ], + "deserializeNBT(Lnet/minecraft/nbt/NBTTagCompound;)V": [ + 1, + null, + [] + ], + "update()V": [ + 1, + null, + [] + ], + "writeToNBT(Lnet/minecraft/nbt/NBTTagCompound;)V": [ + 4, + null, + [] + ] + } + }, + "com/mcmoddev/lib/feature/package-info": { + "access": 5632, + "super": "java/lang/Object", + "interfaces": [], + "fields": {}, + "methods": {} + }, + "com/mcmoddev/lib/fluids/CustomFluid": { + "access": 33, + "super": "net/minecraftforge/fluids/Fluid", + "interfaces": [], + "fields": {}, + "methods": { + "(Ljava/lang/String;)V": [ + 1, + null, + [] + ], + "(Ljava/lang/String;I)V": [ + 1, + null, + [] + ], + "(Ljava/lang/String;Lnet/minecraft/util/ResourceLocation;Lnet/minecraft/util/ResourceLocation;)V": [ + 1, + null, + [] + ], + "(Ljava/lang/String;Lnet/minecraft/util/ResourceLocation;Lnet/minecraft/util/ResourceLocation;I)V": [ + 1, + null, + [] + ], + "getColor()I": [ + 1, + null, + [] + ], + "getLocalizedName(Lnet/minecraftforge/fluids/FluidStack;)Ljava/lang/String;": [ + 1, + null, + [] + ] + } + }, + "com/mcmoddev/lib/fluids/package-info": { + "access": 5632, + "super": "java/lang/Object", + "interfaces": [], + "fields": {}, + "methods": {} + }, + "com/mcmoddev/lib/init/Blocks": { + "access": 1057, + "super": "java/lang/Object", + "interfaces": [], + "fields": {}, + "methods": { + "()V": [ + 4, + null, + [] + ], + "addBlock(Lnet/minecraft/block/Block;Lcom/mcmoddev/lib/data/Names;Lcom/mcmoddev/lib/material/MMDMaterial;Lnet/minecraft/creativetab/CreativeTabs;)Lnet/minecraft/block/Block;": [ + 12, + null, + [] + ], + "addBlock(Lnet/minecraft/block/Block;Lcom/mcmoddev/lib/data/Names;Lnet/minecraft/creativetab/CreativeTabs;)Lnet/minecraft/block/Block;": [ + 12, + null, + [] + ], + "addBlock(Lnet/minecraft/block/Block;Ljava/lang/String;Lcom/mcmoddev/lib/material/MMDMaterial;Lnet/minecraft/creativetab/CreativeTabs;)Lnet/minecraft/block/Block;": [ + 12, + null, + [] + ], + "addBlock(Lnet/minecraft/block/Block;Ljava/lang/String;Lnet/minecraft/creativetab/CreativeTabs;)Lnet/minecraft/block/Block;": [ + 12, + null, + [] + ], + "addBlockType(Lcom/mcmoddev/lib/data/Names;Ljava/lang/Class;Ljava/lang/Boolean;)V": [ + 12, + "(Lcom/mcmoddev/lib/data/Names;Ljava/lang/Class<+Lnet/minecraft/block/Block;>;Ljava/lang/Boolean;)V", + [] + ], + "addBlockType(Lcom/mcmoddev/lib/data/Names;Ljava/lang/Class;Ljava/lang/Boolean;Ljava/lang/String;)V": [ + 12, + "(Lcom/mcmoddev/lib/data/Names;Ljava/lang/Class<+Lnet/minecraft/block/Block;>;Ljava/lang/Boolean;Ljava/lang/String;)V", + [] + ], + "addBlockType(Ljava/lang/String;Ljava/lang/Class;Ljava/lang/Boolean;Ljava/lang/String;)V": [ + 12, + "(Ljava/lang/String;Ljava/lang/Class<+Lnet/minecraft/block/Block;>;Ljava/lang/Boolean;Ljava/lang/String;)V", + [] + ], + "create(Lcom/mcmoddev/lib/data/Names;Lcom/mcmoddev/lib/material/MMDMaterial;)Lnet/minecraft/block/Block;": [ + 12, + null, + [] + ], + "create(Lcom/mcmoddev/lib/data/Names;Lcom/mcmoddev/lib/material/MMDMaterial;Lnet/minecraft/creativetab/CreativeTabs;)Lnet/minecraft/block/Block;": [ + 12, + null, + [] + ], + "create(Lcom/mcmoddev/lib/data/Names;Lcom/mcmoddev/lib/material/MMDMaterial;ZLnet/minecraft/creativetab/CreativeTabs;)Lnet/minecraft/block/Block;": [ + 12, + null, + [] + ], + "create(Lcom/mcmoddev/lib/data/Names;Ljava/lang/String;)Lnet/minecraft/block/Block;": [ + 12, + null, + [] + ], + "create(Lcom/mcmoddev/lib/data/Names;Ljava/lang/String;Lnet/minecraft/creativetab/CreativeTabs;)Lnet/minecraft/block/Block;": [ + 12, + null, + [] + ], + "create(Lcom/mcmoddev/lib/data/Names;Ljava/lang/String;ZLnet/minecraft/creativetab/CreativeTabs;)Lnet/minecraft/block/Block;": [ + 12, + null, + [] + ], + "createBookshelf(Lcom/mcmoddev/lib/material/MMDMaterial;ZLnet/minecraft/creativetab/CreativeTabs;)Lnet/minecraft/block/Block;": [ + 12, + null, + [] + ], + "getBlockByName(Ljava/lang/String;)Lnet/minecraft/block/Block;": [ + 9, + null, + [] + ], + "getBlockRegistry()Ljava/util/Map;": [ + 9, + "()Ljava/util/Map;", + [] + ], + "getBlocksByMaterial()Ljava/util/Map;": [ + 9, + "()Ljava/util/Map;>;", + [] + ], + "getClassFromName(Lcom/mcmoddev/lib/data/Names;)Ljava/lang/Class;": [ + 12, + "(Lcom/mcmoddev/lib/data/Names;)Ljava/lang/Class<+Lnet/minecraft/block/Block;>;", + [] + ], + "getNameOfBlock(Lnet/minecraft/block/Block;)Ljava/lang/String;": [ + 9, + null, + [] + ], + "getOredictFromName(Lcom/mcmoddev/lib/data/Names;)Ljava/lang/String;": [ + 12, + null, + [] + ], + "init()V": [ + 9, + null, + [] + ], + "isNameEnabled(Lcom/mcmoddev/lib/data/Names;)Z": [ + 12, + null, + [] + ] + } + }, + "com/mcmoddev/lib/init/Fluids": { + "access": 1057, + "super": "java/lang/Object", + "interfaces": [], + "fields": {}, + "methods": { + "()V": [ + 4, + null, + [] + ], + "addFluid(Lcom/mcmoddev/lib/material/MMDMaterial;IIII)Lnet/minecraftforge/fluids/Fluid;": [ + 12, + null, + [] + ], + "addFluid(Ljava/lang/String;IIII)Lnet/minecraftforge/fluids/Fluid;": [ + 12, + null, + [] + ], + "addFluidBlock(Lcom/mcmoddev/lib/material/MMDMaterial;)Lnet/minecraftforge/fluids/BlockFluidClassic;": [ + 12, + null, + [] + ], + "addFluidBlock(Ljava/lang/String;)Lnet/minecraftforge/fluids/BlockFluidClassic;": [ + 12, + null, + [] + ], + "getFluidBlockByName(Ljava/lang/String;)Lnet/minecraftforge/fluids/BlockFluidBase;": [ + 9, + null, + [] + ], + "getFluidBlockRegistry()Ljava/util/Map;": [ + 9, + "()Ljava/util/Map;", + [] + ], + "getFluidByName(Ljava/lang/String;)Lnet/minecraftforge/fluids/Fluid;": [ + 9, + null, + [] + ], + "getFluidRegistry()Ljava/util/Map;": [ + 9, + "()Ljava/util/Map;", + [] + ], + "getNameOfFluid(Lnet/minecraftforge/fluids/Fluid;)Ljava/lang/String;": [ + 9, + null, + [] + ], + "getNameOfFluidBlock(Lnet/minecraftforge/fluids/BlockFluidBase;)Ljava/lang/String;": [ + 9, + null, + [] + ], + "init()V": [ + 9, + null, + [] + ] + } + }, + "com/mcmoddev/lib/init/ItemGroups": { + "access": 33, + "super": "java/lang/Object", + "interfaces": [], + "fields": { + "sortingAlgorithm:Ljava/util/function/BiFunction;": [ + 25, + "Ljava/util/function/BiFunction;", + null + ] + }, + "methods": { + "()V": [ + 4, + null, + [] + ], + "addTab(Ljava/lang/String;)Lcom/mcmoddev/lib/init/MMDCreativeTab;": [ + 12, + null, + [] + ], + "addTab(Ljava/lang/String;Z)Lcom/mcmoddev/lib/init/MMDCreativeTab;": [ + 12, + null, + [] + ], + "dumpTabs()V": [ + 9, + null, + [] + ], + "getItemsGroupsByModID()Ljava/util/Map;": [ + 9, + "()Ljava/util/Map;>;", + [] + ], + "getTab(Ljava/lang/String;)Lcom/mcmoddev/lib/init/MMDCreativeTab;": [ + 9, + null, + [] + ], + "getTab(Ljava/lang/String;Ljava/lang/String;)Lcom/mcmoddev/lib/init/MMDCreativeTab;": [ + 9, + null, + [] + ], + "init()V": [ + 9, + null, + [] + ] + } + }, + "com/mcmoddev/lib/init/Items": { + "access": 1057, + "super": "java/lang/Object", + "interfaces": [], + "fields": { + "BLOCK_BURN_TIME:I": [ + 28, + null, + 16000 + ], + "INGOT_BURN_TIME:I": [ + 28, + null, + 1600 + ], + "NUGGET_BURN_TIME:I": [ + 28, + null, + 200 + ] + }, + "methods": { + "()V": [ + 4, + null, + [] + ], + "addClassSorting(Ljava/lang/Class;)V": [ + 12, + "(Ljava/lang/Class<*>;)V", + [] + ], + "addClassSorting(Ljava/lang/Class;Ljava/lang/Class;)V": [ + 12, + "(Ljava/lang/Class<*>;Ljava/lang/Class<*>;)V", + [] + ], + "addItem(Lnet/minecraft/item/Item;Lcom/mcmoddev/lib/data/Names;Lnet/minecraft/creativetab/CreativeTabs;)Lnet/minecraft/item/Item;": [ + 12, + null, + [] + ], + "addItem(Lnet/minecraft/item/Item;Ljava/lang/String;Lcom/mcmoddev/lib/material/MMDMaterial;Lnet/minecraft/creativetab/CreativeTabs;)Lnet/minecraft/item/Item;": [ + 12, + null, + [] + ], + "addItem(Lnet/minecraft/item/Item;Ljava/lang/String;Lnet/minecraft/creativetab/CreativeTabs;)Lnet/minecraft/item/Item;": [ + 12, + null, + [] + ], + "addItemType(Lcom/mcmoddev/lib/data/Names;Ljava/lang/Class;Ljava/lang/Boolean;)V": [ + 12, + "(Lcom/mcmoddev/lib/data/Names;Ljava/lang/Class<+Lnet/minecraft/item/Item;>;Ljava/lang/Boolean;)V", + [] + ], + "addItemType(Lcom/mcmoddev/lib/data/Names;Ljava/lang/Class;Ljava/lang/Boolean;Ljava/lang/String;)V": [ + 12, + "(Lcom/mcmoddev/lib/data/Names;Ljava/lang/Class<+Lnet/minecraft/item/Item;>;Ljava/lang/Boolean;Ljava/lang/String;)V", + [] + ], + "addItemType(Ljava/lang/String;Ljava/lang/Class;Ljava/lang/Boolean;)V": [ + 12, + "(Ljava/lang/String;Ljava/lang/Class<+Lnet/minecraft/item/Item;>;Ljava/lang/Boolean;)V", + [] + ], + "addItemType(Ljava/lang/String;Ljava/lang/Class;Ljava/lang/Boolean;Ljava/lang/String;)V": [ + 12, + "(Ljava/lang/String;Ljava/lang/Class<+Lnet/minecraft/item/Item;>;Ljava/lang/Boolean;Ljava/lang/String;)V", + [] + ], + "addToMetList()V": [ + 9, + null, + [] + ], + "create(Lcom/mcmoddev/lib/data/Names;Lcom/mcmoddev/lib/material/MMDMaterial;)Lnet/minecraft/item/Item;": [ + 12, + null, + [] + ], + "create(Lcom/mcmoddev/lib/data/Names;Lcom/mcmoddev/lib/material/MMDMaterial;Lnet/minecraft/creativetab/CreativeTabs;)Lnet/minecraft/item/Item;": [ + 12, + null, + [] + ], + "create(Lcom/mcmoddev/lib/data/Names;Ljava/lang/String;)Lnet/minecraft/item/Item;": [ + 12, + null, + [] + ], + "create(Lcom/mcmoddev/lib/data/Names;Ljava/lang/String;Lnet/minecraft/creativetab/CreativeTabs;)Lnet/minecraft/item/Item;": [ + 12, + null, + [] + ], + "createMekCrystal(Lcom/mcmoddev/lib/material/MMDMaterial;Lnet/minecraft/creativetab/CreativeTabs;)Lnet/minecraft/item/Item;": [ + 12, + null, + [] + ], + "dumpNameToEnabled()V": [ + 9, + null, + [] + ], + "getClassFromName(Lcom/mcmoddev/lib/data/Names;)Ljava/lang/Class;": [ + 12, + "(Lcom/mcmoddev/lib/data/Names;)Ljava/lang/Class<+Lnet/minecraft/item/Item;>;", + [] + ], + "getItemByName(Ljava/lang/String;)Lnet/minecraft/item/Item;": [ + 9, + null, + [] + ], + "getItemRegistry()Ljava/util/Map;": [ + 9, + "()Ljava/util/Map;", + [] + ], + "getItemsByMaterial()Ljava/util/Map;": [ + 9, + "()Ljava/util/Map;>;", + [] + ], + "getMaxSortingValue()I": [ + 12, + null, + [] + ], + "getNameOfItem(Lnet/minecraft/item/Item;)Ljava/lang/String;": [ + 9, + null, + [] + ], + "getOredictFromName(Lcom/mcmoddev/lib/data/Names;)Ljava/lang/String;": [ + 12, + null, + [] + ], + "getSortingValue(Lnet/minecraft/item/ItemStack;)I": [ + 9, + null, + [] + ], + "init()V": [ + 9, + null, + [] + ], + "isNameEnabled(Lcom/mcmoddev/lib/data/Names;)Z": [ + 12, + null, + [] + ] + } + }, + "com/mcmoddev/lib/init/MMDCreativeTab": { + "access": 33, + "super": "net/minecraft/creativetab/CreativeTabs", + "interfaces": [], + "fields": {}, + "methods": { + "(Ljava/lang/String;Z)V": [ + 1, + null, + [] + ], + "(Ljava/lang/String;ZLnet/minecraft/block/Block;)V": [ + 1, + null, + [] + ], + "(Ljava/lang/String;ZLnet/minecraft/item/Item;)V": [ + 1, + null, + [] + ], + "(Ljava/lang/String;ZLnet/minecraft/item/ItemStack;)V": [ + 1, + null, + [] + ], + "createIcon()Lnet/minecraft/item/ItemStack;": [ + 1, + null, + [] + ], + "displayAllRelevantItems(Lnet/minecraft/util/NonNullList;)V": [ + 1, + "(Lnet/minecraft/util/NonNullList;)V", + [] + ], + "hasSearchBar()Z": [ + 1, + null, + [] + ], + "setSortingAlgorithm(Ljava/util/Comparator;)V": [ + 1, + "(Ljava/util/Comparator;)V", + [] + ], + "setTabIconItem(Lnet/minecraft/block/Block;)V": [ + 1, + null, + [] + ], + "setTabIconItem(Lnet/minecraft/item/Item;)V": [ + 1, + null, + [] + ], + "setTabIconItem(Lnet/minecraft/item/ItemStack;)V": [ + 1, + null, + [] + ] + } + }, + "com/mcmoddev/lib/init/Materials": { + "access": 33, + "super": "java/lang/Object", + "interfaces": [], + "fields": { + "DEFAULT:Lcom/mcmoddev/lib/material/MMDMaterial;": [ + 25, + null, + null + ], + "EMPTY:Lcom/mcmoddev/lib/material/MMDMaterial;": [ + 25, + null, + null + ], + "instance:Lcom/mcmoddev/lib/init/Materials;": [ + 25, + null, + null + ] + }, + "methods": { + "()V": [ + 4, + null, + [] + ], + "createAlloyMaterial(Ljava/lang/String;Lcom/mcmoddev/lib/material/MMDMaterialType$MaterialType;DDDI)Lcom/mcmoddev/lib/material/MMDMaterial;": [ + 12, + null, + [] + ], + "createMaterial(Ljava/lang/String;Lcom/mcmoddev/lib/material/MMDMaterialType$MaterialType;DDDI)Lcom/mcmoddev/lib/material/MMDMaterial;": [ + 12, + null, + [] + ], + "createMaterial(Ljava/lang/String;Lcom/mcmoddev/lib/material/MMDMaterialType$MaterialType;DDDIZ)Lcom/mcmoddev/lib/material/MMDMaterial;": [ + 12, + null, + [] + ], + "createOrelessMaterial(Ljava/lang/String;Lcom/mcmoddev/lib/material/MMDMaterialType$MaterialType;DDDI)Lcom/mcmoddev/lib/material/MMDMaterial;": [ + 12, + null, + [] + ], + "createOrelessRareMaterial(Ljava/lang/String;Lcom/mcmoddev/lib/material/MMDMaterialType$MaterialType;DDDI)Lcom/mcmoddev/lib/material/MMDMaterial;": [ + 12, + null, + [] + ], + "createRareAlloyMaterial(Ljava/lang/String;Lcom/mcmoddev/lib/material/MMDMaterialType$MaterialType;DDDI)Lcom/mcmoddev/lib/material/MMDMaterial;": [ + 12, + null, + [] + ], + "createRareMaterial(Ljava/lang/String;Lcom/mcmoddev/lib/material/MMDMaterialType$MaterialType;DDDI)Lcom/mcmoddev/lib/material/MMDMaterial;": [ + 12, + null, + [] + ], + "createRareSpecialMaterial(Ljava/lang/String;Lcom/mcmoddev/lib/material/MMDMaterialType$MaterialType;DDDI)Lcom/mcmoddev/lib/material/MMDMaterial;": [ + 12, + null, + [] + ], + "createSpecialMaterial(Ljava/lang/String;Lcom/mcmoddev/lib/material/MMDMaterialType$MaterialType;DDDI)Lcom/mcmoddev/lib/material/MMDMaterial;": [ + 12, + null, + [] + ], + "createVanillaMaterial(Ljava/lang/String;Lcom/mcmoddev/lib/material/MMDMaterialType$MaterialType;DDDI)Lcom/mcmoddev/lib/material/MMDMaterial;": [ + 12, + null, + [] + ], + "dumpRegistry()V": [ + 9, + null, + [] + ], + "getAllMaterials()Ljava/util/Collection;": [ + 9, + "()Ljava/util/Collection;", + [] + ], + "getArmorMaterialFor(Lcom/mcmoddev/lib/material/MMDMaterial;)Lnet/minecraft/item/ItemArmor$ArmorMaterial;": [ + 9, + null, + [] + ], + "getMaterialByName(Ljava/lang/String;)Lcom/mcmoddev/lib/material/MMDMaterial;": [ + 9, + null, + [] + ], + "getMaterialsByMod(Ljava/lang/String;)Ljava/util/Collection;": [ + 9, + "(Ljava/lang/String;)Ljava/util/Collection;", + [] + ], + "getToolMaterialFor(Lcom/mcmoddev/lib/material/MMDMaterial;)Lnet/minecraft/item/Item$ToolMaterial;": [ + 9, + null, + [] + ], + "hasMaterial(Ljava/lang/String;)Z": [ + 9, + null, + [] + ], + "hasMaterialFromMod(Ljava/lang/String;)Z": [ + 9, + null, + [] + ], + "init()V": [ + 9, + null, + [] + ], + "registerMaterial(Lcom/mcmoddev/lib/material/MMDMaterial;)Lcom/mcmoddev/lib/material/MMDMaterial;": [ + 12, + null, + [] + ] + } + }, + "com/mcmoddev/lib/init/Recipes": { + "access": 1057, + "super": "java/lang/Object", + "interfaces": [], + "fields": { + "DEFAULT_ORESMELT_XP:Ljava/lang/String;": [ + 28, + null, + "%01.2f" + ] + }, + "methods": { + "()V": [ + 4, + null, + [] + ], + "addAdditionalOredicts(Lcom/mcmoddev/lib/material/MMDMaterial;Ljava/lang/String;)V": [ + 12, + null, + [] + ], + "addAdditionalOredicts(Ljava/lang/String;Ljava/lang/String;)V": [ + 12, + null, + [] + ], + "dumpFurnaceRecipes()V": [ + 9, + null, + [] + ], + "furnaceSpecial(Lcom/mcmoddev/lib/material/MMDMaterial;)V": [ + 12, + null, + [] + ], + "init()V": [ + 9, + null, + [] + ], + "initGeneralRecipes()V": [ + 12, + null, + [] + ], + "initPureVanillaCrusherRecipes()V": [ + 12, + null, + [] + ], + "initPureVanillaOredicts()V": [ + 12, + null, + [] + ], + "initVanillaRecipes()V": [ + 12, + null, + [] + ], + "isMMDBlock(Lcom/mcmoddev/lib/material/MMDMaterial;Lcom/mcmoddev/lib/data/Names;)Z": [ + 12, + null, + [] + ], + "isMMDItem(Lcom/mcmoddev/lib/material/MMDMaterial;Lcom/mcmoddev/lib/data/Names;)Z": [ + 12, + null, + [] + ], + "register(Lnet/minecraftforge/event/RegistryEvent$Register;)V": [ + 9, + "(Lnet/minecraftforge/event/RegistryEvent$Register;)V", + [] + ] + } + }, + "com/mcmoddev/lib/init/VillagerTrades": { + "access": 1057, + "super": "java/lang/Object", + "interfaces": [], + "fields": { + "ARMOR_SMITH:I": [ + 28, + null, + 196864 + ], + "ARMOR_SMITH_ID:I": [ + 28, + null, + 1 + ], + "SMITH_RL:Lnet/minecraft/util/ResourceLocation;": [ + 28, + null, + null + ], + "TOOL_SMITH:I": [ + 28, + null, + 197376 + ], + "TOOL_SMITH_ID:I": [ + 28, + null, + 3 + ], + "TRADES_PER_LEVEL:I": [ + 28, + null, + 4 + ], + "WEAPON_SMITH:I": [ + 28, + null, + 197120 + ], + "WEAPON_SMITH_ID:I": [ + 28, + null, + 2 + ] + }, + "methods": { + "()V": [ + 4, + null, + [] + ], + "commitTrades(Ljava/util/Map;)V": [ + 12, + "(Ljava/util/Map;>;)V", + [] + ], + "emeraldPurchaseValue(F)I": [ + 12, + null, + [] + ], + "emeraldSaleValue(F)I": [ + 12, + null, + [] + ], + "fluctuation(I)I": [ + 12, + null, + [] + ], + "init()V": [ + 9, + null, + [] + ], + "makePurchasePalette(II[Lnet/minecraft/item/Item;)[Lnet/minecraft/entity/passive/EntityVillager$ITradeList;": [ + 140, + null, + [] + ], + "makePurchasePalette(I[Lnet/minecraft/item/ItemStack;)[Lnet/minecraft/entity/passive/EntityVillager$ITradeList;": [ + 140, + null, + [] + ], + "makeSalePalette(II[Lnet/minecraft/item/Item;)[Lnet/minecraft/entity/passive/EntityVillager$ITradeList;": [ + 140, + null, + [] + ], + "makeSalePalette(I[Lnet/minecraft/item/ItemStack;)[Lnet/minecraft/entity/passive/EntityVillager$ITradeList;": [ + 140, + null, + [] + ], + "makeTradePalette([[Lnet/minecraft/entity/passive/EntityVillager$ITradeList;)[Lnet/minecraft/entity/passive/EntityVillager$ITradeList;": [ + 140, + null, + [] + ], + "registerCommonTrades()V": [ + 12, + null, + [] + ], + "registerModSpecificTrades()V": [ + 12, + null, + [] + ], + "tradeLevel(F)I": [ + 12, + null, + [] + ] + } + }, + "com/mcmoddev/lib/init/VillagerTrades$1": { + "access": 4128, + "super": "java/lang/Object", + "interfaces": [], + "fields": {}, + "methods": {} + }, + "com/mcmoddev/lib/init/VillagerTrades$MultiTradeGenerator": { + "access": 33, + "super": "java/lang/Object", + "interfaces": [ + "net/minecraft/entity/passive/EntityVillager$ITradeList" + ], + "fields": {}, + "methods": { + "(ILjava/util/List;)V": [ + 1, + "(ILjava/util/List;)V", + [] + ], + "addMerchantRecipe(Lnet/minecraft/entity/IMerchant;Lnet/minecraft/village/MerchantRecipeList;Ljava/util/Random;)V": [ + 1, + null, + [] + ], + "toString()Ljava/lang/String;": [ + 1, + null, + [] + ] + } + }, + "com/mcmoddev/lib/init/VillagerTrades$SimpleTrade": { + "access": 33, + "super": "java/lang/Object", + "interfaces": [ + "net/minecraft/entity/passive/EntityVillager$ITradeList" + ], + "fields": {}, + "methods": { + "(Lnet/minecraft/item/ItemStack;ILnet/minecraft/item/ItemStack;I)V": [ + 1, + null, + [] + ], + "(Lnet/minecraft/item/ItemStack;ILnet/minecraft/item/ItemStack;ILnet/minecraft/item/ItemStack;I)V": [ + 1, + null, + [] + ], + "(Lnet/minecraft/item/ItemStack;ILnet/minecraft/item/ItemStack;ILnet/minecraft/item/ItemStack;III)V": [ + 1, + null, + [] + ], + "(Lnet/minecraft/item/ItemStack;Lnet/minecraft/item/ItemStack;)V": [ + 1, + null, + [] + ], + "addMerchantRecipe(Lnet/minecraft/entity/IMerchant;Lnet/minecraft/village/MerchantRecipeList;Ljava/util/Random;)V": [ + 1, + null, + [] + ], + "toString()Ljava/lang/String;": [ + 1, + null, + [] + ] + } + }, + "com/mcmoddev/lib/init/package-info": { + "access": 5632, + "super": "java/lang/Object", + "interfaces": [], + "fields": {}, + "methods": {} + }, + "com/mcmoddev/lib/integration/IIntegration": { + "access": 1537, + "super": "java/lang/Object", + "interfaces": [], + "fields": {}, + "methods": { + "init()V": [ + 1025, + null, + [] + ] + } + }, + "com/mcmoddev/lib/integration/IIntegrationEvent": { + "access": 1537, + "super": "java/lang/Object", + "interfaces": [], + "fields": {}, + "methods": { + "materials()Ljava/util/List;": [ + 1, + "()Ljava/util/List;", + [] + ] + } + }, + "com/mcmoddev/lib/integration/IntegrationInitEvent": { + "access": 33, + "super": "net/minecraftforge/fml/common/eventhandler/Event", + "interfaces": [ + "com/mcmoddev/lib/integration/IIntegrationEvent" + ], + "fields": {}, + "methods": { + "()V": [ + 1, + null, + [] + ] + } + }, + "com/mcmoddev/lib/integration/IntegrationManager": { + "access": 16433, + "super": "java/lang/Enum", + "interfaces": [], + "signature": "Ljava/lang/Enum;", + "fields": { + "INSTANCE:Lcom/mcmoddev/lib/integration/IntegrationManager;": [ + 16409, + null, + null + ] + }, + "methods": { + "doSetupTasks(Lnet/minecraftforge/fml/common/event/FMLConstructionEvent;)V": [ + 1, + null, + [ + "net/minecraftforge/fml/common/versioning/InvalidVersionSpecificationException" + ] + ], + "initPhase()V": [ + 1, + null, + [] + ], + "postInitPhase()V": [ + 1, + null, + [] + ], + "preInit(Lnet/minecraftforge/fml/common/event/FMLPreInitializationEvent;)V": [ + 1, + null, + [] + ], + "preInitPhase()V": [ + 1, + null, + [] + ], + "valueOf(Ljava/lang/String;)Lcom/mcmoddev/lib/integration/IntegrationManager;": [ + 9, + null, + [] + ], + "values()[Lcom/mcmoddev/lib/integration/IntegrationManager;": [ + 9, + null, + [] + ] + } + }, + "com/mcmoddev/lib/integration/IntegrationManager$1": { + "access": 32, + "super": "java/lang/Object", + "interfaces": [ + "com/mcmoddev/lib/integration/IntegrationManager$VersionMatch" + ], + "fields": {}, + "methods": { + "asString()Ljava/lang/String;": [ + 1, + null, + [] + ], + "matches(Ljava/lang/String;)Z": [ + 1, + null, + [] + ] + } + }, + "com/mcmoddev/lib/integration/IntegrationManager$VersionMatch": { + "access": 1536, + "super": "java/lang/Object", + "interfaces": [], + "fields": {}, + "methods": { + "asString()Ljava/lang/String;": [ + 1, + null, + [] + ], + "matches(Ljava/lang/String;)Z": [ + 1025, + null, + [] + ] + } + }, + "com/mcmoddev/lib/integration/IntegrationPostInitEvent": { + "access": 33, + "super": "net/minecraftforge/fml/common/eventhandler/Event", + "interfaces": [ + "com/mcmoddev/lib/integration/IIntegrationEvent" + ], + "fields": {}, + "methods": { + "()V": [ + 1, + null, + [] + ] + } + }, + "com/mcmoddev/lib/integration/IntegrationPreInitEvent": { + "access": 33, + "super": "net/minecraftforge/fml/common/eventhandler/Event", + "interfaces": [ + "com/mcmoddev/lib/integration/IIntegrationEvent" + ], + "fields": {}, + "methods": { + "()V": [ + 1, + null, + [] + ] + } + }, + "com/mcmoddev/lib/integration/MMDPlugin": { + "access": 9729, + "super": "java/lang/Object", + "interfaces": [ + "java/lang/annotation/Annotation" + ], + "fields": {}, + "methods": { + "addonId()Ljava/lang/String;": [ + 1025, + null, + [] + ], + "ordering()Ljava/lang/String;": [ + 1025, + null, + [] + ], + "pluginId()Ljava/lang/String;": [ + 1025, + null, + [] + ], + "versions()Ljava/lang/String;": [ + 1025, + null, + [] + ] + } + }, + "com/mcmoddev/lib/integration/jei/ICrusherRecipeCategory": { + "access": 33, + "super": "java/lang/Object", + "interfaces": [ + "mezz/jei/api/recipe/IRecipeCategory" + ], + "signature": "Ljava/lang/Object;Lmezz/jei/api/recipe/IRecipeCategory;", + "fields": {}, + "methods": { + "(Lmezz/jei/api/IGuiHelper;)V": [ + 1, + null, + [] + ], + "drawExtras(Lnet/minecraft/client/Minecraft;)V": [ + 1, + null, + [] + ], + "getBackground()Lmezz/jei/api/gui/IDrawable;": [ + 1, + null, + [] + ], + "getIcon()Lmezz/jei/api/gui/IDrawable;": [ + 1, + null, + [] + ], + "getModName()Ljava/lang/String;": [ + 1, + null, + [] + ], + "getTitle()Ljava/lang/String;": [ + 1, + null, + [] + ], + "getTooltipStrings(II)Ljava/util/List;": [ + 1, + "(II)Ljava/util/List;", + [] + ], + "getUid()Ljava/lang/String;": [ + 1, + null, + [] + ], + "setRecipe(Lmezz/jei/api/gui/IRecipeLayout;Lcom/mcmoddev/lib/integration/jei/ICrusherRecipeWrapper;Lmezz/jei/api/ingredients/IIngredients;)V": [ + 1, + null, + [] + ], + "setRecipe(Lmezz/jei/api/gui/IRecipeLayout;Lmezz/jei/api/recipe/IRecipeWrapper;Lmezz/jei/api/ingredients/IIngredients;)V": [ + 4161, + null, + [] + ] + } + }, + "com/mcmoddev/lib/integration/jei/ICrusherRecipeWrapper": { + "access": 33, + "super": "java/lang/Object", + "interfaces": [ + "mezz/jei/api/recipe/IRecipeWrapper" + ], + "fields": {}, + "methods": { + "(Lmezz/jei/api/IJeiHelpers;Lcom/mcmoddev/lib/registry/recipe/ICrusherRecipe;)V": [ + 1, + null, + [] + ], + "getIngredients(Lmezz/jei/api/ingredients/IIngredients;)V": [ + 1, + null, + [] + ], + "getTooltipStrings(II)Ljava/util/List;": [ + 1, + "(II)Ljava/util/List;", + [] + ] + } + }, + "com/mcmoddev/lib/integration/jei/MMDLibJEIPlugin": { + "access": 49, + "super": "java/lang/Object", + "interfaces": [ + "mezz/jei/api/IModPlugin" + ], + "fields": { + "JEI_UID:Ljava/lang/String;": [ + 25, + null, + "mmdlib" + ], + "RECIPE_UID:Ljava/lang/String;": [ + 25, + null, + "mmdlib.crackhammer" + ] + }, + "methods": { + "()V": [ + 1, + null, + [] + ], + "register(Lmezz/jei/api/IModRegistry;)V": [ + 1, + null, + [] + ], + "registerCategories(Lmezz/jei/api/recipe/IRecipeCategoryRegistration;)V": [ + 1, + null, + [] + ] + } + }, + "com/mcmoddev/lib/integration/jei/MMDLibJEIPlugin$1": { + "access": 32, + "super": "java/lang/Object", + "interfaces": [ + "mezz/jei/api/recipe/IRecipeWrapperFactory" + ], + "signature": "Ljava/lang/Object;Lmezz/jei/api/recipe/IRecipeWrapperFactory;", + "fields": {}, + "methods": { + "getRecipeWrapper(Lcom/mcmoddev/lib/registry/recipe/ICrusherRecipe;)Lmezz/jei/api/recipe/IRecipeWrapper;": [ + 1, + null, + [] + ], + "getRecipeWrapper(Ljava/lang/Object;)Lmezz/jei/api/recipe/IRecipeWrapper;": [ + 4161, + null, + [] + ] + } + }, + "com/mcmoddev/lib/integration/jei/package-info": { + "access": 5632, + "super": "java/lang/Object", + "interfaces": [], + "fields": {}, + "methods": {} + }, + "com/mcmoddev/lib/integration/package-info": { + "access": 5632, + "super": "java/lang/Object", + "interfaces": [], + "fields": {}, + "methods": {} + }, + "com/mcmoddev/lib/integration/plugins/ConstructsArmory": { + "access": 33, + "super": "java/lang/Object", + "interfaces": [ + "com/mcmoddev/lib/integration/IIntegration" + ], + "fields": { + "INSTANCE:Lcom/mcmoddev/lib/integration/plugins/ConstructsArmory;": [ + 25, + null, + null + ], + "PLUGIN_MODID:Ljava/lang/String;": [ + 25, + null, + "conarm" + ] + }, + "methods": { + "()V": [ + 1, + null, + [] + ], + "addArmorTrait(Lslimeknights/tconstruct/library/materials/Material;Lslimeknights/tconstruct/library/traits/ITrait;)V": [ + 9, + null, + [] + ], + "addArmorTrait(Lslimeknights/tconstruct/library/materials/Material;Lslimeknights/tconstruct/library/traits/ITrait;Lslimeknights/tconstruct/library/traits/ITrait;)V": [ + 9, + null, + [] + ], + "init()V": [ + 1, + null, + [] + ] + } + }, + "com/mcmoddev/lib/integration/plugins/DenseOres": { + "access": 33, + "super": "java/lang/Object", + "interfaces": [ + "com/mcmoddev/lib/integration/IIntegration" + ], + "fields": { + "PLUGIN_MODID:Ljava/lang/String;": [ + 25, + null, + "denseores" + ] + }, + "methods": { + "()V": [ + 1, + null, + [] + ], + "init()V": [ + 1, + null, + [] + ], + "registerEndOre(Ljava/lang/String;I)V": [ + 12, + null, + [] + ], + "registerEndOre(Ljava/lang/String;Ljava/lang/String;I)V": [ + 12, + null, + [] + ], + "registerNetherOre(Ljava/lang/String;I)V": [ + 12, + null, + [] + ], + "registerNetherOre(Ljava/lang/String;Ljava/lang/String;I)V": [ + 12, + null, + [] + ], + "registerOre(Ljava/lang/String;Ljava/lang/String;I)V": [ + 12, + null, + [] + ], + "registerOre(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;I)V": [ + 12, + null, + [] + ] + } + }, + "com/mcmoddev/lib/integration/plugins/DenseOresBase": { + "access": 131105, + "super": "com/mcmoddev/lib/integration/plugins/DenseOres", + "interfaces": [], + "fields": {}, + "methods": { + "()V": [ + 1, + null, + [] + ] + } + }, + "com/mcmoddev/lib/integration/plugins/EnderIO": { + "access": 33, + "super": "java/lang/Object", + "interfaces": [ + "com/mcmoddev/lib/integration/IIntegration" + ], + "fields": { + "PLUGIN_MODID:Ljava/lang/String;": [ + 25, + null, + "enderio" + ] + }, + "methods": { + "()V": [ + 1, + null, + [] + ], + "addAlloySmelterAlloy(Lcom/mcmoddev/lib/material/MMDMaterial;ILjava/lang/String;I[Ljava/lang/Object;)V": [ + 12, + null, + [] + ], + "addAlloySmelterRecipe(Lcom/mcmoddev/lib/material/MMDMaterial;)V": [ + 12, + null, + [] + ], + "addAlloySmelterRecipe(Lcom/mcmoddev/lib/material/MMDMaterial;I)V": [ + 12, + null, + [] + ], + "addAlloySmelterRecipe(Lcom/mcmoddev/lib/material/MMDMaterial;Ljava/lang/String;I)V": [ + 12, + null, + [] + ], + "addAlloySmelterRecipe(Ljava/lang/String;)V": [ + 12, + null, + [] + ], + "addAlloySmelterRecipe(Ljava/lang/String;I)V": [ + 12, + null, + [] + ], + "addAlloySmelterRecipe(Ljava/lang/String;Ljava/lang/String;I)V": [ + 12, + null, + [] + ], + "addSagMillRecipe(Lcom/mcmoddev/lib/material/MMDMaterial;ILjava/lang/String;II)V": [ + 12, + null, + [] + ], + "addSagMillRecipe(Lcom/mcmoddev/lib/material/MMDMaterial;Ljava/lang/String;I)V": [ + 12, + null, + [] + ], + "addSagMillRecipe(Ljava/lang/String;)V": [ + 12, + null, + [] + ], + "addSagMillRecipe(Ljava/lang/String;I)V": [ + 12, + null, + [] + ], + "addSagMillRecipe(Ljava/lang/String;ILjava/lang/String;II)V": [ + 12, + null, + [] + ], + "addSagMillRecipe(Ljava/lang/String;Ljava/lang/String;I)V": [ + 12, + null, + [] + ], + "init()V": [ + 1, + null, + [] + ] + } + }, + "com/mcmoddev/lib/integration/plugins/EnderIOBase": { + "access": 131105, + "super": "com/mcmoddev/lib/integration/plugins/EnderIO", + "interfaces": [], + "fields": {}, + "methods": { + "()V": [ + 1, + null, + [] + ] + } + }, + "com/mcmoddev/lib/integration/plugins/IC2": { + "access": 33, + "super": "java/lang/Object", + "interfaces": [ + "com/mcmoddev/lib/integration/IIntegration" + ], + "fields": { + "PLUGIN_MODID:Ljava/lang/String;": [ + 25, + null, + "ic2" + ] + }, + "methods": { + "()V": [ + 1, + null, + [] + ], + "addCompressorRecipes(Lcom/mcmoddev/lib/material/MMDMaterial;)V": [ + 4, + null, + [] + ], + "addCompressorRecipes(Ljava/lang/String;)V": [ + 4, + null, + [] + ], + "addForgeHammerRecipe(Ljava/lang/String;)V": [ + 4, + null, + [] + ], + "addMaceratorRecipe(Ljava/lang/String;Lnet/minecraft/item/ItemStack;)V": [ + 4, + null, + [] + ], + "addMaceratorRecipes(Lcom/mcmoddev/lib/material/MMDMaterial;)V": [ + 4, + null, + [] + ], + "addMaceratorRecipes(Ljava/lang/String;)V": [ + 4, + null, + [] + ], + "addMetalFormerRecipes(Lcom/mcmoddev/lib/material/MMDMaterial;)V": [ + 4, + null, + [] + ], + "addMetalFormerRecipes(Ljava/lang/String;)V": [ + 4, + null, + [] + ], + "addOreWashingPlantRecipes(Lcom/mcmoddev/lib/material/MMDMaterial;)V": [ + 4, + null, + [] + ], + "addOreWashingPlantRecipes(Ljava/lang/String;)V": [ + 4, + null, + [] + ], + "addThermalCentrifugeRecipes(Lcom/mcmoddev/lib/material/MMDMaterial;)V": [ + 4, + null, + [] + ], + "addThermalCentrifugeRecipes(Ljava/lang/String;)V": [ + 4, + null, + [] + ], + "init()V": [ + 1, + null, + [] + ], + "registerVanillaRecipes(Lcom/mcmoddev/lib/material/MMDMaterial;)V": [ + 4, + null, + [] + ], + "registerVanillaRecipes(Ljava/lang/String;)V": [ + 4, + null, + [] + ] + } + }, + "com/mcmoddev/lib/integration/plugins/IC2Base": { + "access": 131105, + "super": "com/mcmoddev/lib/integration/plugins/IC2", + "interfaces": [], + "fields": {}, + "methods": { + "()V": [ + 1, + null, + [] + ] + } + }, + "com/mcmoddev/lib/integration/plugins/Mekanism": { + "access": 33, + "super": "java/lang/Object", + "interfaces": [ + "com/mcmoddev/lib/integration/IIntegration" + ], + "fields": { + "PLUGIN_MODID:Ljava/lang/String;": [ + 25, + null, + "mekanism" + ] + }, + "methods": { + "()V": [ + 1, + null, + [] + ], + "addChemicalCrystallizerRecipe(Ljava/lang/String;ILnet/minecraft/item/ItemStack;)V": [ + 12, + null, + [] + ], + "addChemicalDissolutionChamberRecipe(Lnet/minecraft/item/ItemStack;Ljava/lang/String;)V": [ + 12, + null, + [] + ], + "addChemicalDissolutionChamberRecipe(Lnet/minecraft/item/ItemStack;Ljava/lang/String;I)V": [ + 12, + null, + [] + ], + "addChemicalInfuserRecipe(Ljava/lang/String;ILjava/lang/String;ILjava/lang/String;I)V": [ + 12, + null, + [] + ], + "addChemicalInjectionChamberRecipe(Lnet/minecraft/item/ItemStack;Lnet/minecraft/item/ItemStack;)V": [ + 12, + null, + [] + ], + "addChemicalOxidizerRecipe(Lnet/minecraft/item/ItemStack;Ljava/lang/String;I)V": [ + 12, + null, + [] + ], + "addChemicalWasherRecipe(Ljava/lang/String;Ljava/lang/String;)V": [ + 12, + null, + [] + ], + "addCombinerRecipe(Lnet/minecraft/item/ItemStack;Lnet/minecraft/item/ItemStack;)V": [ + 12, + null, + [] + ], + "addCrusherRecipe(Lnet/minecraft/item/ItemStack;Lnet/minecraft/item/ItemStack;)V": [ + 12, + null, + [] + ], + "addElectrolyticSeparatorRecipe(Ljava/lang/String;ILjava/lang/String;ILjava/lang/String;II)V": [ + 12, + null, + [] + ], + "addEnrichmentChamberRecipe(Lnet/minecraft/item/ItemStack;Lnet/minecraft/item/ItemStack;)V": [ + 12, + null, + [] + ], + "addGassesForMaterial(Lcom/mcmoddev/lib/material/MMDMaterial;)V": [ + 12, + null, + [] + ], + "addGassesForMaterial(Ljava/lang/String;)V": [ + 12, + null, + [] + ], + "addMetallurgicInfuserRecipe(Ljava/lang/String;ILnet/minecraft/item/ItemStack;Lnet/minecraft/item/ItemStack;)V": [ + 12, + null, + [] + ], + "addOreMultiplicationRecipes(Lcom/mcmoddev/lib/material/MMDMaterial;)V": [ + 12, + null, + [] + ], + "addOreMultiplicationRecipes(Ljava/lang/String;)V": [ + 12, + null, + [] + ], + "addOsmiumCompressorRecipe(Lnet/minecraft/item/ItemStack;Lnet/minecraft/item/ItemStack;)V": [ + 12, + null, + [] + ], + "addPRCRecipe(Lnet/minecraft/item/ItemStack;Lnet/minecraftforge/fluids/FluidStack;Ljava/lang/String;ILnet/minecraft/item/ItemStack;Ljava/lang/String;I)V": [ + 12, + null, + [] + ], + "addPRCRecipe(Lnet/minecraft/item/ItemStack;Lnet/minecraftforge/fluids/FluidStack;Ljava/lang/String;ILnet/minecraft/item/ItemStack;Ljava/lang/String;III)V": [ + 12, + null, + [] + ], + "addPrecisionSawmillRecipe(Lnet/minecraft/item/ItemStack;Lnet/minecraft/item/ItemStack;)V": [ + 12, + null, + [] + ], + "addPrecisionSawmillRecipe(Lnet/minecraft/item/ItemStack;Lnet/minecraft/item/ItemStack;Lnet/minecraft/item/ItemStack;D)V": [ + 12, + null, + [] + ], + "addPurificationChamberRecipe(Lnet/minecraft/item/ItemStack;Lnet/minecraft/item/ItemStack;)V": [ + 12, + null, + [] + ], + "addSolarNeutronRecipe(Ljava/lang/String;ILjava/lang/String;I)V": [ + 12, + null, + [] + ], + "addThermalEvaporationRecipe(Ljava/lang/String;ILjava/lang/String;I)V": [ + 12, + null, + [] + ], + "gasExists(Ljava/lang/String;)Z": [ + 12, + null, + [] + ], + "init()V": [ + 1, + null, + [] + ] + } + }, + "com/mcmoddev/lib/integration/plugins/MekanismBase": { + "access": 131105, + "super": "com/mcmoddev/lib/integration/plugins/Mekanism", + "interfaces": [], + "fields": {}, + "methods": { + "()V": [ + 1, + null, + [] + ] + } + }, + "com/mcmoddev/lib/integration/plugins/Thaumcraft": { + "access": 33, + "super": "java/lang/Object", + "interfaces": [ + "com/mcmoddev/lib/integration/IIntegration" + ], + "fields": { + "INSTANCE:Lcom/mcmoddev/lib/integration/plugins/Thaumcraft;": [ + 25, + null, + null + ], + "PLUGIN_MODID:Ljava/lang/String;": [ + 25, + null, + "thaumcraft" + ] + }, + "methods": { + "()V": [ + 1, + null, + [] + ], + "createPartsAspects(Lcom/mcmoddev/lib/material/MMDMaterial;Lcom/mcmoddev/lib/integration/plugins/thaumcraft/IAspectGetter;[Lcom/mcmoddev/lib/data/Names;)Lcom/mcmoddev/lib/integration/plugins/thaumcraft/TCMaterial;": [ + 137, + null, + [] + ], + "createPartsAspects(Lcom/mcmoddev/lib/material/MMDMaterial;Lcom/mcmoddev/lib/integration/plugins/thaumcraft/IAspectGetter;[Ljava/lang/String;)Lcom/mcmoddev/lib/integration/plugins/thaumcraft/TCMaterial;": [ + 137, + null, + [] + ], + "createVanillaIngotWithAspects(Lcom/mcmoddev/lib/material/MMDMaterial;)Lcom/mcmoddev/lib/integration/plugins/thaumcraft/TCMaterial;": [ + 9, + null, + [] + ], + "createVanillaWithAspects(Lcom/mcmoddev/lib/material/MMDMaterial;)Lcom/mcmoddev/lib/integration/plugins/thaumcraft/TCMaterial;": [ + 9, + null, + [] + ], + "createWithAspects(Lcom/mcmoddev/lib/material/MMDMaterial;)Lcom/mcmoddev/lib/integration/plugins/thaumcraft/TCMaterial;": [ + 9, + null, + [] + ], + "getPartMultiplier(Lcom/mcmoddev/lib/data/NameToken;)F": [ + 9, + null, + [] + ], + "getPartMultiplier(Lcom/mcmoddev/lib/data/Names;)F": [ + 9, + null, + [] + ], + "getPartMultiplier(Ljava/lang/String;)F": [ + 9, + null, + [] + ], + "init()V": [ + 1, + null, + [] + ], + "preInitEvents(Lcom/mcmoddev/lib/integration/IntegrationPreInitEvent;)V": [ + 1, + null, + [] + ], + "putPartMultiplier(Lcom/mcmoddev/lib/data/NameToken;Ljava/lang/Float;)V": [ + 9, + null, + [] + ], + "putPartMultiplier(Lcom/mcmoddev/lib/data/Names;Ljava/lang/Float;)V": [ + 9, + null, + [] + ], + "putPartMultiplier(Ljava/lang/String;Ljava/lang/Float;)V": [ + 9, + null, + [] + ], + "registerAspects(Lthaumcraft/api/aspects/AspectRegistryEvent;)V": [ + 1, + null, + [] + ] + } + }, + "com/mcmoddev/lib/integration/plugins/ThaumcraftBase": { + "access": 131105, + "super": "com/mcmoddev/lib/integration/plugins/Thaumcraft", + "interfaces": [], + "fields": {}, + "methods": { + "()V": [ + 1, + null, + [] + ] + } + }, + "com/mcmoddev/lib/integration/plugins/ThermalExpansion": { + "access": 33, + "super": "java/lang/Object", + "interfaces": [ + "com/mcmoddev/lib/integration/IIntegration" + ], + "fields": { + "PLUGIN_MODID:Ljava/lang/String;": [ + 25, + null, + "thermalexpansion" + ] + }, + "methods": { + "()V": [ + 1, + null, + [] + ], + "addCompactorPressRecipe(ILnet/minecraft/item/ItemStack;Lnet/minecraft/item/ItemStack;)V": [ + 12, + null, + [] + ], + "addCompactorStorageRecipe(ILnet/minecraft/item/ItemStack;Lnet/minecraft/item/ItemStack;)V": [ + 12, + null, + [] + ], + "addCrucible(Lcom/mcmoddev/lib/material/MMDMaterial;)V": [ + 12, + null, + [] + ], + "addCrucible(Ljava/lang/String;)V": [ + 12, + null, + [] + ], + "addFurnace(Lcom/mcmoddev/lib/material/MMDMaterial;)V": [ + 12, + null, + [] + ], + "addFurnace(Ljava/lang/String;)V": [ + 12, + null, + [] + ], + "addPlatePress(Lcom/mcmoddev/lib/material/MMDMaterial;)V": [ + 12, + null, + [] + ], + "addPlatePress(Ljava/lang/String;)V": [ + 12, + null, + [] + ], + "addPressStorage(Lcom/mcmoddev/lib/material/MMDMaterial;)V": [ + 12, + null, + [] + ], + "addPressStorage(Ljava/lang/String;)V": [ + 12, + null, + [] + ], + "addPulverizer(Lcom/mcmoddev/lib/material/MMDMaterial;)V": [ + 12, + null, + [] + ], + "addPulverizer(Ljava/lang/String;)V": [ + 12, + null, + [] + ], + "addPulverizerRecipe(ILnet/minecraft/item/ItemStack;Lnet/minecraft/item/ItemStack;)V": [ + 12, + null, + [] + ], + "init()V": [ + 1, + null, + [] + ] + } + }, + "com/mcmoddev/lib/integration/plugins/ThermalExpansionBase": { + "access": 131105, + "super": "com/mcmoddev/lib/integration/plugins/ThermalExpansion", + "interfaces": [], + "fields": {}, + "methods": { + "()V": [ + 1, + null, + [] + ] + } + }, + "com/mcmoddev/lib/integration/plugins/TinkersConstruct": { + "access": 33, + "super": "java/lang/Object", + "interfaces": [ + "com/mcmoddev/lib/integration/IIntegration" + ], + "fields": { + "INSTANCE:Lcom/mcmoddev/lib/integration/plugins/TinkersConstruct;": [ + 25, + null, + null + ], + "PLUGIN_MODID:Ljava/lang/String;": [ + 25, + null, + "tconstruct" + ] + }, + "methods": { + "()V": [ + 1, + null, + [] + ], + "addAlloyRecipe(Ljava/lang/String;Ljava/lang/Integer;[Ljava/lang/Object;)V": [ + 129, + null, + [] + ], + "addExtraMelting(Ljava/lang/String;Ljava/lang/Integer;Lnet/minecraft/block/Block;)V": [ + 1, + null, + [] + ], + "addExtraMelting(Ljava/lang/String;Ljava/lang/Integer;Lnet/minecraft/item/Item;)V": [ + 1, + null, + [] + ], + "addExtraMelting(Ljava/lang/String;Ljava/lang/Integer;Lnet/minecraft/item/ItemStack;)V": [ + 1, + null, + [] + ], + "addExtraMelting(Lnet/minecraftforge/fluids/FluidStack;Lnet/minecraft/item/ItemStack;)V": [ + 1, + null, + [] + ], + "getMaterialsRegistry()Lnet/minecraftforge/registries/IForgeRegistry;": [ + 12, + "()Lnet/minecraftforge/registries/IForgeRegistry;", + [] + ], + "getModifiersRegistry()Lcom/mcmoddev/lib/integration/plugins/tinkers/TinkerModifierRegistry;": [ + 12, + null, + [] + ], + "getTraitsRegistry()Lcom/mcmoddev/lib/integration/plugins/tinkers/TinkerTraitRegistry;": [ + 12, + null, + [] + ], + "init()V": [ + 1, + null, + [] + ], + "init(Lcom/mcmoddev/lib/integration/IntegrationInitEvent;)V": [ + 1, + null, + [] + ], + "materialSetup(Lnet/minecraftforge/event/RegistryEvent$Register;)V": [ + 1, + "(Lnet/minecraftforge/event/RegistryEvent$Register;)V", + [] + ], + "postInit(Lcom/mcmoddev/lib/integration/IntegrationPostInitEvent;)V": [ + 1, + null, + [] + ], + "preInit(Lcom/mcmoddev/lib/integration/IntegrationPreInitEvent;)V": [ + 1, + null, + [] + ], + "registerBasinCasting(Lnet/minecraft/item/ItemStack;Lnet/minecraftforge/fluids/Fluid;I)V": [ + 9, + null, + [] + ], + "registerTableCasting(Lnet/minecraft/item/ItemStack;Lnet/minecraft/item/ItemStack;Lnet/minecraftforge/fluids/Fluid;I)V": [ + 9, + null, + [] + ], + "setupMaterialItems()V": [ + 4, + null, + [] + ] + } + }, + "com/mcmoddev/lib/integration/plugins/TinkersConstructBase": { + "access": 131105, + "super": "com/mcmoddev/lib/integration/plugins/TinkersConstruct", + "interfaces": [], + "fields": {}, + "methods": { + "()V": [ + 1, + null, + [] + ] + } + }, + "com/mcmoddev/lib/integration/plugins/VeinMiner": { + "access": 33, + "super": "java/lang/Object", + "interfaces": [ + "com/mcmoddev/lib/integration/IIntegration" + ], + "fields": { + "PLUGIN_MODID:Ljava/lang/String;": [ + 25, + null, + "veinminer" + ] + }, + "methods": { + "()V": [ + 1, + null, + [] + ], + "addToolsForMaterial(Lcom/mcmoddev/lib/material/MMDMaterial;)V": [ + 12, + null, + [] + ], + "addToolsForMaterial(Ljava/lang/String;)V": [ + 12, + null, + [] + ], + "init()V": [ + 1, + null, + [] + ] + } + }, + "com/mcmoddev/lib/integration/plugins/VeinMinerBase": { + "access": 131105, + "super": "com/mcmoddev/lib/integration/plugins/VeinMiner", + "interfaces": [], + "fields": {}, + "methods": { + "()V": [ + 1, + null, + [] + ] + } + }, + "com/mcmoddev/lib/integration/plugins/armory/traits/MMDTraitsCA": { + "access": 33, + "super": "java/lang/Object", + "interfaces": [], + "fields": { + "brittle:Lslimeknights/tconstruct/library/traits/AbstractTrait;": [ + 25, + null, + null + ], + "icy:Lslimeknights/tconstruct/library/traits/AbstractTrait;": [ + 25, + null, + null + ], + "malleable:Lslimeknights/tconstruct/library/traits/AbstractTrait;": [ + 25, + null, + null + ], + "poisonous:Lslimeknights/tconstruct/library/traits/AbstractTrait;": [ + 25, + null, + null + ], + "reactive:Lslimeknights/tconstruct/library/traits/AbstractTrait;": [ + 25, + null, + null + ], + "toxic:Lslimeknights/tconstruct/library/traits/AbstractTrait;": [ + 25, + null, + null + ] + }, + "methods": {} + }, + "com/mcmoddev/lib/integration/plugins/armory/traits/TraitBrittle": { + "access": 33, + "super": "c4/conarm/lib/traits/AbstractArmorTrait", + "interfaces": [], + "fields": {}, + "methods": { + "()V": [ + 1, + null, + [] + ] + } + }, + "com/mcmoddev/lib/integration/plugins/armory/traits/TraitIcy": { + "access": 33, + "super": "c4/conarm/lib/traits/AbstractArmorTrait", + "interfaces": [], + "fields": {}, + "methods": { + "()V": [ + 1, + null, + [] + ], + "onDamaged(Lnet/minecraft/item/ItemStack;Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/util/DamageSource;FFLnet/minecraftforge/event/entity/living/LivingDamageEvent;)F": [ + 1, + null, + [] + ] + } + }, + "com/mcmoddev/lib/integration/plugins/armory/traits/TraitMalleable": { + "access": 33, + "super": "c4/conarm/lib/traits/AbstractArmorTrait", + "interfaces": [], + "fields": {}, + "methods": { + "()V": [ + 1, + null, + [] + ], + "onDamaged(Lnet/minecraft/item/ItemStack;Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/util/DamageSource;FFLnet/minecraftforge/event/entity/living/LivingDamageEvent;)F": [ + 1, + null, + [] + ] + } + }, + "com/mcmoddev/lib/integration/plugins/armory/traits/TraitPoisonous": { + "access": 33, + "super": "c4/conarm/lib/traits/AbstractArmorTrait", + "interfaces": [], + "fields": {}, + "methods": { + "()V": [ + 1, + null, + [] + ], + "onHurt(Lnet/minecraft/item/ItemStack;Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/util/DamageSource;FFLnet/minecraftforge/event/entity/living/LivingHurtEvent;)F": [ + 1, + null, + [] + ] + } + }, + "com/mcmoddev/lib/integration/plugins/armory/traits/TraitReactive": { + "access": 33, + "super": "c4/conarm/lib/traits/AbstractArmorTrait", + "interfaces": [], + "fields": {}, + "methods": { + "()V": [ + 1, + null, + [] + ], + "onHurt(Lnet/minecraft/item/ItemStack;Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/util/DamageSource;FFLnet/minecraftforge/event/entity/living/LivingHurtEvent;)F": [ + 1, + null, + [] + ], + "onUpdate(Lnet/minecraft/item/ItemStack;Lnet/minecraft/world/World;Lnet/minecraft/entity/Entity;IZ)V": [ + 1, + null, + [] + ] + } + }, + "com/mcmoddev/lib/integration/plugins/armory/traits/TraitToxic": { + "access": 33, + "super": "c4/conarm/lib/traits/AbstractArmorTrait", + "interfaces": [], + "fields": {}, + "methods": { + "()V": [ + 1, + null, + [] + ], + "onHurt(Lnet/minecraft/item/ItemStack;Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/util/DamageSource;FFLnet/minecraftforge/event/entity/living/LivingHurtEvent;)F": [ + 1, + null, + [] + ] + } + }, + "com/mcmoddev/lib/integration/plugins/armory/traits/package-info": { + "access": 5632, + "super": "java/lang/Object", + "interfaces": [], + "fields": {}, + "methods": {} + }, + "com/mcmoddev/lib/integration/plugins/package-info": { + "access": 5632, + "super": "java/lang/Object", + "interfaces": [], + "fields": {}, + "methods": {} + }, + "com/mcmoddev/lib/integration/plugins/thaumcraft/BaseAspectGetter": { + "access": 33, + "super": "java/lang/Object", + "interfaces": [ + "com/mcmoddev/lib/integration/plugins/thaumcraft/IAspectGetter" + ], + "fields": {}, + "methods": { + "(Lcom/mcmoddev/lib/material/MMDMaterial;)V": [ + 1, + null, + [] + ], + "getAspectForPart(Lcom/mcmoddev/lib/data/NameToken;)Ljava/util/List;": [ + 1, + "(Lcom/mcmoddev/lib/data/NameToken;)Ljava/util/List;>;", + [] + ], + "getCalcFor(Lthaumcraft/api/aspects/Aspect;)Lcom/mcmoddev/lib/integration/plugins/thaumcraft/IAspectCalculation;": [ + 1, + null, + [] + ] + } + }, + "com/mcmoddev/lib/integration/plugins/thaumcraft/BaseAspectGetter$1": { + "access": 4128, + "super": "java/lang/Object", + "interfaces": [], + "fields": {}, + "methods": {} + }, + "com/mcmoddev/lib/integration/plugins/thaumcraft/IAspectCalculation": { + "access": 1537, + "super": "java/lang/Object", + "interfaces": [], + "fields": {}, + "methods": { + "apply(F)I": [ + 1025, + null, + [] + ] + } + }, + "com/mcmoddev/lib/integration/plugins/thaumcraft/IAspectGetter": { + "access": 1537, + "super": "java/lang/Object", + "interfaces": [], + "fields": { + "MATERIAL_WIDE:Lcom/mcmoddev/lib/data/NameToken;": [ + 25, + null, + null + ] + }, + "methods": { + "getAspectForPart(Lcom/mcmoddev/lib/data/NameToken;)Ljava/util/List;": [ + 1025, + "(Lcom/mcmoddev/lib/data/NameToken;)Ljava/util/List;>;", + [] + ], + "getCalcFor(Lthaumcraft/api/aspects/Aspect;)Lcom/mcmoddev/lib/integration/plugins/thaumcraft/IAspectCalculation;": [ + 1025, + null, + [] + ] + } + }, + "com/mcmoddev/lib/integration/plugins/thaumcraft/TCMaterial": { + "access": 33, + "super": "net/minecraftforge/registries/IForgeRegistryEntry$Impl", + "interfaces": [ + "com/mcmoddev/lib/material/IMMDObject" + ], + "signature": "Lnet/minecraftforge/registries/IForgeRegistryEntry$Impl;Lcom/mcmoddev/lib/material/IMMDObject;", + "fields": {}, + "methods": { + "(Lcom/mcmoddev/lib/material/MMDMaterial;Lcom/mcmoddev/lib/integration/plugins/thaumcraft/IAspectGetter;)V": [ + 1, + null, + [] + ], + "addAspect(Lcom/mcmoddev/lib/data/NameToken;Lthaumcraft/api/aspects/Aspect;I)Lcom/mcmoddev/lib/integration/plugins/thaumcraft/TCMaterial;": [ + 1, + null, + [] + ], + "addAspect(Lcom/mcmoddev/lib/data/NameToken;Lthaumcraft/api/aspects/AspectList;)Lcom/mcmoddev/lib/integration/plugins/thaumcraft/TCMaterial;": [ + 1, + null, + [] + ], + "addAspect(Lcom/mcmoddev/lib/data/Names;Lthaumcraft/api/aspects/Aspect;I)Lcom/mcmoddev/lib/integration/plugins/thaumcraft/TCMaterial;": [ + 1, + null, + [] + ], + "addAspect(Lcom/mcmoddev/lib/data/Names;Lthaumcraft/api/aspects/AspectList;)Lcom/mcmoddev/lib/integration/plugins/thaumcraft/TCMaterial;": [ + 1, + null, + [] + ], + "addAspect(Ljava/lang/String;Lthaumcraft/api/aspects/Aspect;I)Lcom/mcmoddev/lib/integration/plugins/thaumcraft/TCMaterial;": [ + 1, + null, + [] + ], + "addAspect(Ljava/lang/String;Lthaumcraft/api/aspects/AspectList;)Lcom/mcmoddev/lib/integration/plugins/thaumcraft/TCMaterial;": [ + 1, + null, + [] + ], + "addMaterialAspect(Lthaumcraft/api/aspects/Aspect;I)Lcom/mcmoddev/lib/integration/plugins/thaumcraft/TCMaterial;": [ + 1, + null, + [] + ], + "addMaterialAspect(Lthaumcraft/api/aspects/Aspect;Lcom/mcmoddev/lib/integration/plugins/thaumcraft/IAspectCalculation;)Lcom/mcmoddev/lib/integration/plugins/thaumcraft/TCMaterial;": [ + 1, + null, + [] + ], + "getAspectFor(Lcom/mcmoddev/lib/data/NameToken;)Lthaumcraft/api/aspects/AspectList;": [ + 1, + null, + [] + ], + "getAspectFor(Lcom/mcmoddev/lib/data/Names;)Lthaumcraft/api/aspects/AspectList;": [ + 1, + null, + [] + ], + "getAspectFor(Ljava/lang/String;)Lthaumcraft/api/aspects/AspectList;": [ + 1, + null, + [] + ], + "getAspectMapKeys()Ljava/util/List;": [ + 1, + "()Ljava/util/List;", + [] + ], + "getAspectsFor(Lcom/mcmoddev/lib/data/NameToken;)Lthaumcraft/api/aspects/AspectList;": [ + 1, + null, + [] + ], + "getAspectsFor(Lcom/mcmoddev/lib/data/Names;)Lthaumcraft/api/aspects/AspectList;": [ + 1, + null, + [] + ], + "getAspectsFor(Ljava/lang/String;)Lthaumcraft/api/aspects/AspectList;": [ + 1, + null, + [] + ], + "getBlock(Lcom/mcmoddev/lib/data/NameToken;)Lnet/minecraft/block/Block;": [ + 1, + null, + [] + ], + "getBlock(Ljava/lang/String;)Lnet/minecraft/block/Block;": [ + 1, + null, + [] + ], + "getBlockItemStack(Lcom/mcmoddev/lib/data/NameToken;)Lnet/minecraft/item/ItemStack;": [ + 1, + null, + [] + ], + "getBlockItemStack(Ljava/lang/String;)Lnet/minecraft/item/ItemStack;": [ + 1, + null, + [] + ], + "getItem(Lcom/mcmoddev/lib/data/NameToken;)Lnet/minecraft/item/Item;": [ + 1, + null, + [] + ], + "getItem(Ljava/lang/String;)Lnet/minecraft/item/Item;": [ + 1, + null, + [] + ], + "getItemStack(Lcom/mcmoddev/lib/data/NameToken;)Lnet/minecraft/item/ItemStack;": [ + 1, + null, + [] + ], + "getItemStack(Ljava/lang/String;)Lnet/minecraft/item/ItemStack;": [ + 1, + null, + [] + ], + "getMMDMaterial()Lcom/mcmoddev/lib/material/MMDMaterial;": [ + 1, + null, + [] + ], + "getName()Ljava/lang/String;": [ + 1, + null, + [] + ], + "update()V": [ + 1, + null, + [] + ] + } + }, + "com/mcmoddev/lib/integration/plugins/thaumcraft/TCSyncEvent": { + "access": 33, + "super": "net/minecraftforge/fml/common/eventhandler/Event", + "interfaces": [], + "fields": {}, + "methods": { + "(Lnet/minecraftforge/registries/IForgeRegistry;Ljava/util/Map;)V": [ + 1, + "(Lnet/minecraftforge/registries/IForgeRegistry;Ljava/util/Map;)V", + [] + ], + "getMaterial(Ljava/lang/String;)Lcom/mcmoddev/lib/integration/plugins/thaumcraft/TCMaterial;": [ + 1, + null, + [] + ], + "hasMaterial(Ljava/lang/String;)Z": [ + 1, + null, + [] + ], + "register(Lcom/mcmoddev/lib/integration/plugins/thaumcraft/TCMaterial;)V": [ + 1, + null, + [] + ] + } + }, + "com/mcmoddev/lib/integration/plugins/tinkers/ArmoryTraitLocation": { + "access": 16433, + "super": "java/lang/Enum", + "interfaces": [], + "signature": "Ljava/lang/Enum;", + "fields": { + "CORE:Lcom/mcmoddev/lib/integration/plugins/tinkers/ArmoryTraitLocation;": [ + 16409, + null, + null + ], + "GENERAL:Lcom/mcmoddev/lib/integration/plugins/tinkers/ArmoryTraitLocation;": [ + 16409, + null, + null + ], + "PLATES:Lcom/mcmoddev/lib/integration/plugins/tinkers/ArmoryTraitLocation;": [ + 16409, + null, + null + ], + "TRIM:Lcom/mcmoddev/lib/integration/plugins/tinkers/ArmoryTraitLocation;": [ + 16409, + null, + null + ] + }, + "methods": { + "toString()Ljava/lang/String;": [ + 1, + null, + [] + ], + "valueOf(Ljava/lang/String;)Lcom/mcmoddev/lib/integration/plugins/tinkers/ArmoryTraitLocation;": [ + 9, + null, + [] + ], + "values()[Lcom/mcmoddev/lib/integration/plugins/tinkers/ArmoryTraitLocation;": [ + 9, + null, + [] + ] + } + }, + "com/mcmoddev/lib/integration/plugins/tinkers/ModifierRegistry": { + "access": 33, + "super": "java/lang/Object", + "interfaces": [], + "fields": {}, + "methods": { + "getModifierDetails(Ljava/lang/String;)Ljava/util/Map;": [ + 9, + "(Ljava/lang/String;)Ljava/util/Map;", + [] + ], + "initModifiers()V": [ + 9, + null, + [] + ], + "registerModifiers()V": [ + 9, + null, + [] + ], + "setModifierItem(Ljava/lang/String;Lnet/minecraft/item/Item;)V": [ + 9, + null, + [] + ], + "setModifierItem(Ljava/lang/String;Lnet/minecraft/item/ItemStack;)V": [ + 9, + null, + [] + ], + "setModifierRecipe(Ljava/lang/String;[Lnet/minecraft/item/ItemStack;)V": [ + 137, + null, + [] + ] + } + }, + "com/mcmoddev/lib/integration/plugins/tinkers/TCMaterial": { + "access": 33, + "super": "java/lang/Object", + "interfaces": [], + "fields": {}, + "methods": { + "(Lcom/mcmoddev/lib/material/MMDMaterial;)V": [ + 1, + null, + [] + ], + "(Lcom/mcmoddev/lib/material/MMDMaterial;Ljava/lang/String;)V": [ + 1, + null, + [] + ], + "(Lcom/mcmoddev/lib/material/MMDMaterial;Ljava/lang/String;I)V": [ + 1, + null, + [] + ], + "addExtraMelting(Ljava/lang/String;I)Lcom/mcmoddev/lib/integration/plugins/tinkers/TCMaterial;": [ + 1, + null, + [] + ], + "addTrait(Ljava/lang/String;Ljava/lang/String;)Lcom/mcmoddev/lib/integration/plugins/tinkers/TCMaterial;": [ + 1, + null, + [] + ], + "genStatsFromSource()V": [ + 1, + null, + [] + ], + "get()Lcom/mcmoddev/lib/integration/plugins/tinkers/TCMaterial;": [ + 9, + null, + [] + ], + "get(Lcom/mcmoddev/lib/material/MMDMaterial;)Lcom/mcmoddev/lib/integration/plugins/tinkers/TCMaterial;": [ + 9, + null, + [] + ], + "get(Lcom/mcmoddev/lib/material/MMDMaterial;Ljava/lang/String;)Lcom/mcmoddev/lib/integration/plugins/tinkers/TCMaterial;": [ + 9, + null, + [] + ], + "get(Lcom/mcmoddev/lib/material/MMDMaterial;Ljava/lang/String;I)Lcom/mcmoddev/lib/integration/plugins/tinkers/TCMaterial;": [ + 9, + null, + [] + ], + "get(Ljava/lang/String;)Lcom/mcmoddev/lib/integration/plugins/tinkers/TCMaterial;": [ + 9, + null, + [] + ], + "get(Ljava/lang/String;I)Lcom/mcmoddev/lib/integration/plugins/tinkers/TCMaterial;": [ + 9, + null, + [] + ], + "getArrowStats()Lslimeknights/tconstruct/library/materials/ArrowShaftMaterialStats;": [ + 1, + null, + [] + ], + "getBodyDurability()I": [ + 1, + null, + [] + ], + "getBodyModifier()F": [ + 1, + null, + [] + ], + "getBowDamage()F": [ + 1, + null, + [] + ], + "getBowDrawingSpeed()F": [ + 1, + null, + [] + ], + "getBowRange()F": [ + 1, + null, + [] + ], + "getBowStats()Lslimeknights/tconstruct/library/materials/BowMaterialStats;": [ + 1, + null, + [] + ], + "getBowStringStats()Lslimeknights/tconstruct/library/materials/BowStringMaterialStats;": [ + 1, + null, + [] + ], + "getBowstringModifier()F": [ + 1, + null, + [] + ], + "getCastable()Z": [ + 1, + null, + [] + ], + "getCraftable()Z": [ + 1, + null, + [] + ], + "getExtraDurability()I": [ + 1, + null, + [] + ], + "getExtraMelting()Ljava/util/Map;": [ + 1, + "()Ljava/util/Map;", + [] + ], + "getExtraStats()Lslimeknights/tconstruct/library/materials/ExtraMaterialStats;": [ + 1, + null, + [] + ], + "getFletchingAccuracy()F": [ + 1, + null, + [] + ], + "getFletchingModifier()F": [ + 1, + null, + [] + ], + "getFletchingStats()Lslimeknights/tconstruct/library/materials/FletchingMaterialStats;": [ + 1, + null, + [] + ], + "getFluid()Lnet/minecraftforge/fluids/Fluid;": [ + 1, + null, + [] + ], + "getHandleStats()Lslimeknights/tconstruct/library/materials/HandleMaterialStats;": [ + 1, + null, + [] + ], + "getHeadAttackDamage()F": [ + 1, + null, + [] + ], + "getHeadDurability()I": [ + 1, + null, + [] + ], + "getHeadStats()Lslimeknights/tconstruct/library/materials/HeadMaterialStats;": [ + 1, + null, + [] + ], + "getIngotAmount()I": [ + 1, + null, + [] + ], + "getMMDMaterial()Lcom/mcmoddev/lib/material/MMDMaterial;": [ + 1, + null, + [] + ], + "getMaterial()Lslimeknights/tconstruct/library/materials/Material;": [ + 1, + null, + [] + ], + "getMiningLevel()I": [ + 1, + null, + [] + ], + "getMiningSpeed()F": [ + 1, + null, + [] + ], + "getName()Ljava/lang/String;": [ + 1, + null, + [] + ], + "getRepresentativeItem()Lnet/minecraft/item/Item;": [ + 1, + null, + [] + ], + "getRepresentativeItemName()Ljava/lang/String;": [ + 1, + null, + [] + ], + "getShaftBonusAmmo()I": [ + 1, + null, + [] + ], + "getShaftModifier()F": [ + 1, + null, + [] + ], + "getTintColor()I": [ + 1, + null, + [] + ], + "getTraits()Ljava/util/Map;": [ + 1, + "()Ljava/util/Map;>;", + [] + ], + "resolveTraits()V": [ + 1, + null, + [] + ], + "setArrowShaftStats(Lslimeknights/tconstruct/library/materials/ArrowShaftMaterialStats;)Lcom/mcmoddev/lib/integration/plugins/tinkers/TCMaterial;": [ + 1, + null, + [] + ], + "setBodyDurability(I)Lcom/mcmoddev/lib/integration/plugins/tinkers/TCMaterial;": [ + 1, + null, + [] + ], + "setBodyModifier(F)Lcom/mcmoddev/lib/integration/plugins/tinkers/TCMaterial;": [ + 1, + null, + [] + ], + "setBowDamage(F)Lcom/mcmoddev/lib/integration/plugins/tinkers/TCMaterial;": [ + 1, + null, + [] + ], + "setBowDrawingSpeed(F)Lcom/mcmoddev/lib/integration/plugins/tinkers/TCMaterial;": [ + 1, + null, + [] + ], + "setBowRange(F)Lcom/mcmoddev/lib/integration/plugins/tinkers/TCMaterial;": [ + 1, + null, + [] + ], + "setBowStats(Lslimeknights/tconstruct/library/materials/BowMaterialStats;)Lcom/mcmoddev/lib/integration/plugins/tinkers/TCMaterial;": [ + 1, + null, + [] + ], + "setBowStringStats(Lslimeknights/tconstruct/library/materials/BowStringMaterialStats;)Lcom/mcmoddev/lib/integration/plugins/tinkers/TCMaterial;": [ + 1, + null, + [] + ], + "setBowstringModifier(F)Lcom/mcmoddev/lib/integration/plugins/tinkers/TCMaterial;": [ + 1, + null, + [] + ], + "setCastable()Lcom/mcmoddev/lib/integration/plugins/tinkers/TCMaterial;": [ + 1, + null, + [] + ], + "setCraftable()Lcom/mcmoddev/lib/integration/plugins/tinkers/TCMaterial;": [ + 1, + null, + [] + ], + "setExtraDurability(I)Lcom/mcmoddev/lib/integration/plugins/tinkers/TCMaterial;": [ + 1, + null, + [] + ], + "setExtraStats(Lslimeknights/tconstruct/library/materials/ExtraMaterialStats;)Lcom/mcmoddev/lib/integration/plugins/tinkers/TCMaterial;": [ + 1, + null, + [] + ], + "setFletchingAccuracy(F)Lcom/mcmoddev/lib/integration/plugins/tinkers/TCMaterial;": [ + 1, + null, + [] + ], + "setFletchingModifier(F)Lcom/mcmoddev/lib/integration/plugins/tinkers/TCMaterial;": [ + 1, + null, + [] + ], + "setFletchingStats(Lslimeknights/tconstruct/library/materials/FletchingMaterialStats;)Lcom/mcmoddev/lib/integration/plugins/tinkers/TCMaterial;": [ + 1, + null, + [] + ], + "setFluid(Lnet/minecraftforge/fluids/Fluid;)Lcom/mcmoddev/lib/integration/plugins/tinkers/TCMaterial;": [ + 1, + null, + [] + ], + "setHandleStats(Lslimeknights/tconstruct/library/materials/HandleMaterialStats;)Lcom/mcmoddev/lib/integration/plugins/tinkers/TCMaterial;": [ + 1, + null, + [] + ], + "setHeadDurability(I)Lcom/mcmoddev/lib/integration/plugins/tinkers/TCMaterial;": [ + 1, + null, + [] + ], + "setHeadStats(Lslimeknights/tconstruct/library/materials/HeadMaterialStats;)Lcom/mcmoddev/lib/integration/plugins/tinkers/TCMaterial;": [ + 1, + null, + [] + ], + "setIngotAmount(I)Lcom/mcmoddev/lib/integration/plugins/tinkers/TCMaterial;": [ + 1, + null, + [] + ], + "setMiningSpeed(F)Lcom/mcmoddev/lib/integration/plugins/tinkers/TCMaterial;": [ + 1, + null, + [] + ], + "setRepresentativeItem(Ljava/lang/String;)Lcom/mcmoddev/lib/integration/plugins/tinkers/TCMaterial;": [ + 1, + null, + [] + ], + "setShaftModifier(F)Lcom/mcmoddev/lib/integration/plugins/tinkers/TCMaterial;": [ + 1, + null, + [] + ], + "setSourceMaterial(Lcom/mcmoddev/lib/material/MMDMaterial;)Lcom/mcmoddev/lib/integration/plugins/tinkers/TCMaterial;": [ + 1, + null, + [] + ], + "setToolForge()Lcom/mcmoddev/lib/integration/plugins/tinkers/TCMaterial;": [ + 1, + null, + [] + ], + "setminingLevel(I)Lcom/mcmoddev/lib/integration/plugins/tinkers/TCMaterial;": [ + 1, + null, + [] + ], + "settle()V": [ + 1, + null, + [] + ], + "toolForge()Z": [ + 1, + null, + [] + ] + } + }, + "com/mcmoddev/lib/integration/plugins/tinkers/TCMaterial$1": { + "access": 4128, + "super": "java/lang/Object", + "interfaces": [], + "fields": {}, + "methods": {} + }, + "com/mcmoddev/lib/integration/plugins/tinkers/TinkerConstants": { + "access": 49, + "super": "java/lang/Object", + "interfaces": [], + "fields": {}, + "methods": {} + }, + "com/mcmoddev/lib/integration/plugins/tinkers/TinkerConstants$TinkerStatNames": { + "access": 49, + "super": "java/lang/Object", + "interfaces": [], + "fields": { + "ARROWSHAFT_BONUS_AMMO:Ljava/lang/String;": [ + 25, + null, + "shaftBonusAmmo" + ], + "ARROWSHAFT_MODIFIER:Ljava/lang/String;": [ + 25, + null, + "shaftModifier" + ], + "BODY_DURABILITY:Ljava/lang/String;": [ + 25, + null, + "bodyDurability" + ], + "BODY_MODIFIER:Ljava/lang/String;": [ + 25, + null, + "bodyModifier" + ], + "BOWSTRING_MODIFIER:Ljava/lang/String;": [ + 25, + null, + "bowstringModifier" + ], + "BOW_DAMAGE:Ljava/lang/String;": [ + 25, + null, + "bowDamage" + ], + "BOW_DRAW_SPEED:Ljava/lang/String;": [ + 25, + null, + "bowDrawSpeed" + ], + "BOW_RANGE:Ljava/lang/String;": [ + 25, + null, + "bowRange" + ], + "EXTRA_DURABILTIY:Ljava/lang/String;": [ + 25, + null, + "extraDurability" + ], + "FLETCHING_ACCURACY:Ljava/lang/String;": [ + 25, + null, + "fletchingAccuracy" + ], + "FLETCHING_MODIFIER:Ljava/lang/String;": [ + 25, + null, + "fletchingModifier" + ], + "HEAD_ATTACK_DAMAGE:Ljava/lang/String;": [ + 25, + null, + "headAttackDamage" + ], + "HEAD_DURABILITY:Ljava/lang/String;": [ + 25, + null, + "headDurability" + ], + "MINING_LEVEL:Ljava/lang/String;": [ + 25, + null, + "miningLevel" + ], + "MINING_SPEED:Ljava/lang/String;": [ + 25, + null, + "miningSpeed" + ] + }, + "methods": {} + }, + "com/mcmoddev/lib/integration/plugins/tinkers/TinkerModifierRegistry": { + "access": 33, + "super": "java/lang/Object", + "interfaces": [], + "fields": {}, + "methods": { + "()V": [ + 1, + null, + [] + ], + "get(Lnet/minecraft/util/ResourceLocation;)Lslimeknights/tconstruct/library/modifiers/Modifier;": [ + 1, + null, + [] + ], + "getModifiers()Ljava/util/List;": [ + 1, + "()Ljava/util/List;", + [] + ], + "register(Lnet/minecraft/util/ResourceLocation;Lslimeknights/tconstruct/library/modifiers/Modifier;)V": [ + 1, + null, + [] + ] + } + }, + "com/mcmoddev/lib/integration/plugins/tinkers/TinkerTraitLocation": { + "access": 16433, + "super": "java/lang/Enum", + "interfaces": [], + "signature": "Ljava/lang/Enum;", + "fields": { + "BOW:Lcom/mcmoddev/lib/integration/plugins/tinkers/TinkerTraitLocation;": [ + 16409, + null, + null + ], + "BOWSTRING:Lcom/mcmoddev/lib/integration/plugins/tinkers/TinkerTraitLocation;": [ + 16409, + null, + null + ], + "EXTRA:Lcom/mcmoddev/lib/integration/plugins/tinkers/TinkerTraitLocation;": [ + 16409, + null, + null + ], + "FLETCHING:Lcom/mcmoddev/lib/integration/plugins/tinkers/TinkerTraitLocation;": [ + 16409, + null, + null + ], + "GENERAL:Lcom/mcmoddev/lib/integration/plugins/tinkers/TinkerTraitLocation;": [ + 16409, + null, + null + ], + "HANDLE:Lcom/mcmoddev/lib/integration/plugins/tinkers/TinkerTraitLocation;": [ + 16409, + null, + null + ], + "HEAD:Lcom/mcmoddev/lib/integration/plugins/tinkers/TinkerTraitLocation;": [ + 16409, + null, + null + ], + "PROJECTILE:Lcom/mcmoddev/lib/integration/plugins/tinkers/TinkerTraitLocation;": [ + 16409, + null, + null + ], + "SHAFT:Lcom/mcmoddev/lib/integration/plugins/tinkers/TinkerTraitLocation;": [ + 16409, + null, + null + ] + }, + "methods": { + "toString()Ljava/lang/String;": [ + 1, + null, + [] + ], + "valueOf(Ljava/lang/String;)Lcom/mcmoddev/lib/integration/plugins/tinkers/TinkerTraitLocation;": [ + 9, + null, + [] + ], + "values()[Lcom/mcmoddev/lib/integration/plugins/tinkers/TinkerTraitLocation;": [ + 9, + null, + [] + ] + } + }, + "com/mcmoddev/lib/integration/plugins/tinkers/TinkerTraitRegistry": { + "access": 33, + "super": "java/lang/Object", + "interfaces": [], + "fields": {}, + "methods": { + "()V": [ + 1, + null, + [] + ], + "get(Ljava/lang/String;)Lslimeknights/tconstruct/library/traits/ITrait;": [ + 1, + null, + [] + ], + "getTraits()Ljava/util/List;": [ + 1, + "()Ljava/util/List;", + [] + ], + "register(Ljava/lang/String;Lslimeknights/tconstruct/library/traits/ITrait;)V": [ + 1, + null, + [] + ] + } + }, + "com/mcmoddev/lib/integration/plugins/tinkers/TinkersConstructRegistry": { + "access": 33, + "super": "java/lang/Object", + "interfaces": [], + "fields": { + "instance:Lcom/mcmoddev/lib/integration/plugins/tinkers/TinkersConstructRegistry;": [ + 25, + null, + null + ] + }, + "methods": { + "addMaterialStats()V": [ + 1, + null, + [] + ], + "getMaterial(Ljava/lang/String;)Lcom/mcmoddev/lib/integration/plugins/tinkers/TCMaterial;": [ + 1, + null, + [] + ], + "integrationsInit(Ljava/lang/String;)V": [ + 1, + null, + [] + ], + "newMaterial(Lcom/mcmoddev/lib/material/MMDMaterial;)Lcom/mcmoddev/lib/integration/plugins/tinkers/TCMaterial;": [ + 1, + null, + [] + ], + "newMaterial(Ljava/lang/String;I)Lcom/mcmoddev/lib/integration/plugins/tinkers/TCMaterial;": [ + 1, + null, + [] + ], + "registerAlloy(Ljava/lang/String;Lnet/minecraftforge/fluids/FluidStack;[Lnet/minecraftforge/fluids/FluidStack;)V": [ + 129, + null, + [] + ], + "registerAlloys(Ljava/lang/String;)V": [ + 1, + null, + [] + ], + "registerMelting(Lnet/minecraft/item/Item;Lnet/minecraftforge/fluids/FluidStack;)V": [ + 1, + null, + [] + ], + "registerMeltings(Ljava/lang/String;)V": [ + 1, + null, + [] + ], + "resolveTraits(Ljava/lang/String;)V": [ + 1, + null, + [] + ], + "setMaterialsVisible(Ljava/lang/String;)V": [ + 1, + null, + [] + ], + "setRepresentativeItem()V": [ + 1, + null, + [] + ], + "setupIntegrations()V": [ + 1, + null, + [] + ] + } + }, + "com/mcmoddev/lib/integration/plugins/tinkers/TinkersMaterial": { + "access": 33, + "super": "net/minecraftforge/registries/IForgeRegistryEntry$Impl", + "interfaces": [ + "com/mcmoddev/lib/material/IMMDObject" + ], + "signature": "Lnet/minecraftforge/registries/IForgeRegistryEntry$Impl;Lcom/mcmoddev/lib/material/IMMDObject;", + "fields": {}, + "methods": { + "(Lcom/mcmoddev/lib/material/MMDMaterial;)V": [ + 1, + null, + [] + ], + "addAlloyRecipe(I[Ljava/lang/Object;)Lcom/mcmoddev/lib/integration/plugins/tinkers/TinkersMaterial;": [ + 129, + null, + [] + ], + "addAlloyRecipe(I[Lnet/minecraftforge/fluids/FluidStack;)Lcom/mcmoddev/lib/integration/plugins/tinkers/TinkersMaterial;": [ + 129, + null, + [] + ], + "addExtraMelting(Ljava/lang/String;I)Lcom/mcmoddev/lib/integration/plugins/tinkers/TinkersMaterial;": [ + 1, + null, + [] + ], + "addExtraMelting(Lnet/minecraft/block/Block;I)Lcom/mcmoddev/lib/integration/plugins/tinkers/TinkersMaterial;": [ + 1, + null, + [] + ], + "addExtraMelting(Lnet/minecraft/item/Item;I)Lcom/mcmoddev/lib/integration/plugins/tinkers/TinkersMaterial;": [ + 1, + null, + [] + ], + "addExtraMelting(Lnet/minecraft/item/ItemStack;I)Lcom/mcmoddev/lib/integration/plugins/tinkers/TinkersMaterial;": [ + 1, + null, + [] + ], + "addItem(Lnet/minecraft/block/Block;)Lcom/mcmoddev/lib/integration/plugins/tinkers/TinkersMaterial;": [ + 1, + null, + [] + ], + "addItem(Lnet/minecraft/item/Item;)Lcom/mcmoddev/lib/integration/plugins/tinkers/TinkersMaterial;": [ + 1, + null, + [] + ], + "addItem(Lnet/minecraft/item/ItemStack;)Lcom/mcmoddev/lib/integration/plugins/tinkers/TinkersMaterial;": [ + 1, + null, + [] + ], + "addStat(Ljava/lang/String;Ljava/lang/Number;)Lcom/mcmoddev/lib/integration/plugins/tinkers/TinkersMaterial;": [ + 1, + null, + [] + ], + "addTrait(Ljava/lang/String;)Lcom/mcmoddev/lib/integration/plugins/tinkers/TinkersMaterial;": [ + 1, + null, + [] + ], + "addTrait(Ljava/lang/String;Lcom/mcmoddev/lib/integration/plugins/tinkers/TinkerTraitLocation;)Lcom/mcmoddev/lib/integration/plugins/tinkers/TinkersMaterial;": [ + 1, + null, + [] + ], + "create()Lcom/mcmoddev/lib/integration/plugins/tinkers/TinkersMaterial;": [ + 1, + null, + [] + ], + "getAlloyRecipe()Ljava/util/List;": [ + 1, + "()Ljava/util/List;", + [] + ], + "getArrowShaftStats()Lslimeknights/tconstruct/library/materials/ArrowShaftMaterialStats;": [ + 1, + null, + [] + ], + "getBowStats()Lslimeknights/tconstruct/library/materials/BowMaterialStats;": [ + 1, + null, + [] + ], + "getBowStringStats()Lslimeknights/tconstruct/library/materials/BowStringMaterialStats;": [ + 1, + null, + [] + ], + "getCastable()Z": [ + 1, + null, + [] + ], + "getCoreStats()Lc4/conarm/lib/materials/CoreMaterialStats;": [ + 1, + null, + [] + ], + "getCraftable()Z": [ + 1, + null, + [] + ], + "getExtraStats()Lslimeknights/tconstruct/library/materials/ExtraMaterialStats;": [ + 1, + null, + [] + ], + "getFletchingStats()Lslimeknights/tconstruct/library/materials/FletchingMaterialStats;": [ + 1, + null, + [] + ], + "getHandleStats()Lslimeknights/tconstruct/library/materials/HandleMaterialStats;": [ + 1, + null, + [] + ], + "getHeadStats()Lslimeknights/tconstruct/library/materials/HeadMaterialStats;": [ + 1, + null, + [] + ], + "getMMDMaterial()Lcom/mcmoddev/lib/material/MMDMaterial;": [ + 1, + null, + [] + ], + "getName()Ljava/lang/String;": [ + 1, + null, + [] + ], + "getPlatesStats()Lc4/conarm/lib/materials/PlatesMaterialStats;": [ + 1, + null, + [] + ], + "getRepresentativeItem()Lnet/minecraft/item/ItemStack;": [ + 1, + null, + [] + ], + "getTinkerMaterial()Lslimeknights/tconstruct/library/materials/Material;": [ + 1, + null, + [] + ], + "getToolForge()Z": [ + 1, + null, + [] + ], + "getTraits()Ljava/util/List;": [ + 1, + "()Ljava/util/List;>;", + [] + ], + "getTrimStats()Lc4/conarm/lib/materials/TrimMaterialStats;": [ + 1, + null, + [] + ], + "hasAlloyRecipe()Z": [ + 1, + null, + [] + ], + "hasTraits()Z": [ + 1, + null, + [] + ], + "setCastable(Z)Lcom/mcmoddev/lib/integration/plugins/tinkers/TinkersMaterial;": [ + 1, + null, + [] + ], + "setCraftable(Z)Lcom/mcmoddev/lib/integration/plugins/tinkers/TinkersMaterial;": [ + 1, + null, + [] + ], + "setRepresentativeItem(Lnet/minecraft/block/Block;)Lcom/mcmoddev/lib/integration/plugins/tinkers/TinkersMaterial;": [ + 1, + null, + [] + ], + "setRepresentativeItem(Lnet/minecraft/item/Item;)Lcom/mcmoddev/lib/integration/plugins/tinkers/TinkersMaterial;": [ + 1, + null, + [] + ], + "setRepresentativeItem(Lnet/minecraft/item/ItemStack;)Lcom/mcmoddev/lib/integration/plugins/tinkers/TinkersMaterial;": [ + 1, + null, + [] + ], + "setToolForge(Z)Lcom/mcmoddev/lib/integration/plugins/tinkers/TinkersMaterial;": [ + 1, + null, + [] + ] + } + }, + "com/mcmoddev/lib/integration/plugins/tinkers/TraitLocations": { + "access": 49, + "super": "java/lang/Object", + "interfaces": [], + "fields": { + "BOW:Ljava/lang/String;": [ + 25, + null, + "bow" + ], + "BOWSTRING:Ljava/lang/String;": [ + 25, + null, + "bowstring" + ], + "EXTRA:Ljava/lang/String;": [ + 25, + null, + "extra" + ], + "FLETCHING:Ljava/lang/String;": [ + 25, + null, + "fletching" + ], + "HANDLE:Ljava/lang/String;": [ + 25, + null, + "handle" + ], + "HEAD:Ljava/lang/String;": [ + 25, + null, + "head" + ], + "PROJECTILE:Ljava/lang/String;": [ + 25, + null, + "projectile" + ], + "SHAFT:Ljava/lang/String;": [ + 25, + null, + "shaft" + ] + }, + "methods": {} + }, + "com/mcmoddev/lib/integration/plugins/tinkers/TraitRegistry": { + "access": 33, + "super": "java/lang/Object", + "interfaces": [], + "fields": {}, + "methods": { + "addTrait(Ljava/lang/String;Lslimeknights/tconstruct/library/traits/ITrait;)V": [ + 9, + null, + [] + ], + "dumpRegistry()V": [ + 9, + null, + [] + ], + "get(Ljava/lang/String;)Lslimeknights/tconstruct/library/traits/ITrait;": [ + 9, + null, + [] + ], + "getTrait(Ljava/lang/String;)Lslimeknights/tconstruct/library/traits/ITrait;": [ + 9, + null, + [] + ], + "hasTrait(Ljava/lang/String;)Z": [ + 9, + null, + [] + ], + "initTiCTraits()V": [ + 9, + null, + [] + ], + "initTraits()V": [ + 9, + null, + [] + ], + "registerTraits()V": [ + 9, + null, + [] + ] + } + }, + "com/mcmoddev/lib/integration/plugins/tinkers/events/MaterialRegistrationEvent": { + "access": 33, + "super": "net/minecraftforge/fml/common/eventhandler/Event", + "interfaces": [], + "fields": {}, + "methods": { + "(Lnet/minecraftforge/registries/IForgeRegistry;)V": [ + 1, + "(Lnet/minecraftforge/registries/IForgeRegistry;)V", + [] + ], + "getRegistry()Lnet/minecraftforge/registries/IForgeRegistry;": [ + 1, + "()Lnet/minecraftforge/registries/IForgeRegistry;", + [] + ] + } + }, + "com/mcmoddev/lib/integration/plugins/tinkers/events/ModifierRegistrationEvent": { + "access": 33, + "super": "net/minecraftforge/fml/common/eventhandler/Event", + "interfaces": [], + "fields": {}, + "methods": { + "(Lcom/mcmoddev/lib/integration/plugins/tinkers/TinkerModifierRegistry;)V": [ + 1, + null, + [] + ], + "getRegistry()Lcom/mcmoddev/lib/integration/plugins/tinkers/TinkerModifierRegistry;": [ + 1, + null, + [] + ], + "register(Lnet/minecraft/util/ResourceLocation;Lslimeknights/tconstruct/tools/modifiers/ToolModifier;)V": [ + 1, + null, + [] + ] + } + }, + "com/mcmoddev/lib/integration/plugins/tinkers/events/TinkersAlloyRecipeEvent": { + "access": 33, + "super": "net/minecraftforge/fml/common/eventhandler/Event", + "interfaces": [], + "fields": {}, + "methods": { + "(Lnet/minecraftforge/registries/IForgeRegistry;)V": [ + 1, + "(Lnet/minecraftforge/registries/IForgeRegistry;)V", + [] + ], + "addAlloyRecipe(Lcom/mcmoddev/lib/integration/plugins/tinkers/TinkersMaterial;I[Lnet/minecraftforge/fluids/FluidStack;)V": [ + 129, + null, + [] + ], + "addAlloyRecipe(Ljava/lang/String;I[Lnet/minecraftforge/fluids/FluidStack;)V": [ + 129, + null, + [] + ], + "getRegistry()Lnet/minecraftforge/registries/IForgeRegistry;": [ + 1, + "()Lnet/minecraftforge/registries/IForgeRegistry;", + [] + ] + } + }, + "com/mcmoddev/lib/integration/plugins/tinkers/events/TinkersExtraMeltingsEvent": { + "access": 33, + "super": "net/minecraftforge/fml/common/eventhandler/Event", + "interfaces": [], + "fields": {}, + "methods": { + "()V": [ + 1, + null, + [] + ] + } + }, + "com/mcmoddev/lib/integration/plugins/tinkers/events/TraitRegistrationEvent": { + "access": 33, + "super": "net/minecraftforge/fml/common/eventhandler/Event", + "interfaces": [], + "fields": {}, + "methods": { + "(Lcom/mcmoddev/lib/integration/plugins/tinkers/TinkerTraitRegistry;)V": [ + 1, + null, + [] + ], + "getRegistry()Lcom/mcmoddev/lib/integration/plugins/tinkers/TinkerTraitRegistry;": [ + 1, + null, + [] + ], + "register(Ljava/lang/String;Lslimeknights/tconstruct/library/traits/ITrait;)V": [ + 1, + null, + [] + ] + } + }, + "com/mcmoddev/lib/integration/plugins/tinkers/modifiers/ModifierEnergized": { + "access": 33, + "super": "slimeknights/tconstruct/library/modifiers/ModifierTrait", + "interfaces": [], + "fields": { + "ENERGY_PER_DAMAGE_POINT:I": [ + 25, + null, + 50 + ], + "KEY:Ljava/lang/String;": [ + 25, + null, + "mmd_energized" + ] + }, + "methods": { + "()V": [ + 1, + null, + [] + ], + "getExtraInfo(Lnet/minecraft/item/ItemStack;Lnet/minecraft/nbt/NBTTagCompound;)Ljava/util/List;": [ + 1, + "(Lnet/minecraft/item/ItemStack;Lnet/minecraft/nbt/NBTTagCompound;)Ljava/util/List;", + [] + ], + "getTooltip(Lnet/minecraft/nbt/NBTTagCompound;Z)Ljava/lang/String;": [ + 1, + null, + [] + ], + "hackCapabilities(Lnet/minecraftforge/event/AttachCapabilitiesEvent;)V": [ + 1, + "(Lnet/minecraftforge/event/AttachCapabilitiesEvent;)V", + [] + ], + "onToolDamage(Lnet/minecraft/item/ItemStack;IILnet/minecraft/entity/EntityLivingBase;)I": [ + 1, + null, + [] + ] + } + }, + "com/mcmoddev/lib/integration/plugins/tinkers/modifiers/ModifierFakeDiamond": { + "access": 33, + "super": "slimeknights/tconstruct/tools/modifiers/ToolModifier", + "interfaces": [], + "fields": {}, + "methods": { + "()V": [ + 1, + null, + [] + ], + "applyEffect(Lnet/minecraft/nbt/NBTTagCompound;Lnet/minecraft/nbt/NBTTagCompound;)V": [ + 1, + null, + [] + ] + } + }, + "com/mcmoddev/lib/integration/plugins/tinkers/modifiers/ModifierLeadPlated": { + "access": 33, + "super": "slimeknights/tconstruct/tools/modifiers/ToolModifier", + "interfaces": [], + "fields": {}, + "methods": { + "()V": [ + 1, + null, + [] + ], + "applyEffect(Lnet/minecraft/nbt/NBTTagCompound;Lnet/minecraft/nbt/NBTTagCompound;)V": [ + 1, + null, + [] + ] + } + }, + "com/mcmoddev/lib/integration/plugins/tinkers/modifiers/ModifierToxic": { + "access": 49, + "super": "slimeknights/tconstruct/library/modifiers/ModifierTrait", + "interfaces": [ + "slimeknights/tconstruct/library/modifiers/IModifierDisplay" + ], + "fields": {}, + "methods": { + "()V": [ + 1, + null, + [] + ], + "afterHit(Lnet/minecraft/item/ItemStack;Lnet/minecraft/entity/EntityLivingBase;Lnet/minecraft/entity/EntityLivingBase;FZZ)V": [ + 1, + null, + [] + ], + "getItems()Ljava/util/List;": [ + 1, + "()Ljava/util/List;>;", + [] + ], + "isHidden()Z": [ + 1, + null, + [] + ] + } + }, + "com/mcmoddev/lib/integration/plugins/tinkers/modifiers/package-info": { + "access": 5632, + "super": "java/lang/Object", + "interfaces": [], + "fields": {}, + "methods": {} + }, + "com/mcmoddev/lib/integration/plugins/tinkers/package-info": { + "access": 5632, + "super": "java/lang/Object", + "interfaces": [], + "fields": {}, + "methods": {} + }, + "com/mcmoddev/lib/integration/plugins/tinkers/traits/MMDTraits": { + "access": 33, + "super": "java/lang/Object", + "interfaces": [], + "fields": { + "brittle:Lslimeknights/tconstruct/library/traits/AbstractTrait;": [ + 25, + null, + null + ], + "heavy:Lslimeknights/tconstruct/library/traits/AbstractTrait;": [ + 25, + null, + null + ], + "radioactive:Lslimeknights/tconstruct/library/traits/AbstractTrait;": [ + 25, + null, + null + ], + "reactive:Lslimeknights/tconstruct/library/traits/AbstractTrait;": [ + 25, + null, + null + ], + "soft:Lslimeknights/tconstruct/library/traits/AbstractTrait;": [ + 25, + null, + null + ], + "sparkly:Lslimeknights/tconstruct/library/traits/AbstractTrait;": [ + 25, + null, + null + ], + "toxic:Lslimeknights/tconstruct/library/traits/AbstractTrait;": [ + 25, + null, + null + ] + }, + "methods": { + "()V": [ + 1, + null, + [] + ] + } + }, + "com/mcmoddev/lib/integration/plugins/tinkers/traits/TraitBrittle": { + "access": 33, + "super": "slimeknights/tconstruct/library/traits/AbstractTrait", + "interfaces": [], + "fields": {}, + "methods": { + "()V": [ + 1, + null, + [] + ], + "beforeBlockBreak(Lnet/minecraft/item/ItemStack;Lnet/minecraftforge/event/world/BlockEvent$BreakEvent;)V": [ + 1, + null, + [] + ] + } + }, + "com/mcmoddev/lib/integration/plugins/tinkers/traits/TraitHeavy": { + "access": 33, + "super": "slimeknights/tconstruct/library/traits/AbstractTrait", + "interfaces": [], + "fields": {}, + "methods": { + "()V": [ + 1, + null, + [] + ], + "knockBack(Lnet/minecraft/item/ItemStack;Lnet/minecraft/entity/EntityLivingBase;Lnet/minecraft/entity/EntityLivingBase;FFFZ)F": [ + 1, + null, + [] + ] + } + }, + "com/mcmoddev/lib/integration/plugins/tinkers/traits/TraitRadioactive": { + "access": 33, + "super": "slimeknights/tconstruct/library/traits/AbstractTrait", + "interfaces": [], + "fields": {}, + "methods": { + "()V": [ + 1, + null, + [] + ], + "onUpdate(Lnet/minecraft/item/ItemStack;Lnet/minecraft/world/World;Lnet/minecraft/entity/Entity;IZ)V": [ + 1, + null, + [] + ] + } + }, + "com/mcmoddev/lib/integration/plugins/tinkers/traits/TraitReactive": { + "access": 33, + "super": "slimeknights/tconstruct/library/traits/AbstractTrait", + "interfaces": [], + "fields": {}, + "methods": { + "()V": [ + 1, + null, + [] + ], + "onHit(Lnet/minecraft/item/ItemStack;Lnet/minecraft/entity/EntityLivingBase;Lnet/minecraft/entity/EntityLivingBase;FZ)V": [ + 1, + null, + [] + ], + "onUpdate(Lnet/minecraft/item/ItemStack;Lnet/minecraft/world/World;Lnet/minecraft/entity/Entity;IZ)V": [ + 1, + null, + [] + ] + } + }, + "com/mcmoddev/lib/integration/plugins/tinkers/traits/TraitSoft": { + "access": 33, + "super": "slimeknights/tconstruct/library/traits/AbstractTrait", + "interfaces": [], + "fields": {}, + "methods": { + "()V": [ + 1, + null, + [] + ], + "onToolDamage(Lnet/minecraft/item/ItemStack;IILnet/minecraft/entity/EntityLivingBase;)I": [ + 1, + null, + [] + ] + } + }, + "com/mcmoddev/lib/integration/plugins/tinkers/traits/TraitSparkly": { + "access": 33, + "super": "slimeknights/tconstruct/library/traits/AbstractTrait", + "interfaces": [], + "fields": {}, + "methods": { + "()V": [ + 1, + null, + [] + ], + "onUpdate(Lnet/minecraft/item/ItemStack;Lnet/minecraft/world/World;Lnet/minecraft/entity/Entity;IZ)V": [ + 1, + null, + [] + ] + } + }, + "com/mcmoddev/lib/integration/plugins/tinkers/traits/TraitToxic": { + "access": 33, + "super": "slimeknights/tconstruct/library/traits/AbstractTrait", + "interfaces": [], + "fields": {}, + "methods": { + "()V": [ + 1, + null, + [] + ], + "afterHit(Lnet/minecraft/item/ItemStack;Lnet/minecraft/entity/EntityLivingBase;Lnet/minecraft/entity/EntityLivingBase;FZZ)V": [ + 1, + null, + [] + ] + } + }, + "com/mcmoddev/lib/integration/plugins/tinkers/traits/package-info": { + "access": 5632, + "super": "java/lang/Object", + "interfaces": [], + "fields": {}, + "methods": {} + }, + "com/mcmoddev/lib/interfaces/IDynamicTabProvider": { + "access": 1537, + "super": "java/lang/Object", + "interfaces": [ + "com/mcmoddev/lib/interfaces/ITabProvider" + ], + "fields": {}, + "methods": { + "addTab(Ljava/lang/String;ZLjava/lang/String;)V": [ + 1025, + null, + [] + ] + } + }, + "com/mcmoddev/lib/interfaces/ITabProvider": { + "access": 1537, + "super": "java/lang/Object", + "interfaces": [], + "fields": {}, + "methods": { + "addBlockToTab(Ljava/lang/String;Lnet/minecraft/block/Block;)V": [ + 1025, + null, + [ + "com/mcmoddev/lib/exceptions/TabNotFoundException" + ] + ], + "addItemToTab(Ljava/lang/String;Lnet/minecraft/item/Item;)V": [ + 1025, + null, + [ + "com/mcmoddev/lib/exceptions/TabNotFoundException" + ] + ], + "getTab(Ljava/lang/String;)Ljava/lang/String;": [ + 1025, + null, + [] + ], + "getTab(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;": [ + 1025, + null, + [] + ], + "getTabByName(Ljava/lang/String;)Lcom/mcmoddev/lib/init/MMDCreativeTab;": [ + 132097, + null, + [ + "com/mcmoddev/lib/exceptions/TabNotFoundException" + ] + ], + "setIcon(Ljava/lang/String;Ljava/lang/String;)V": [ + 1025, + null, + [ + "com/mcmoddev/lib/exceptions/TabNotFoundException", + "com/mcmoddev/lib/exceptions/MaterialNotFoundException" + ] + ], + "setTabItemMapping(Ljava/lang/String;Ljava/lang/String;)V": [ + 1025, + null, + [] + ] + } + }, + "com/mcmoddev/lib/inventory/CombinedFluidHandler": { + "access": 33, + "super": "java/lang/Object", + "interfaces": [ + "net/minecraftforge/fluids/capability/IFluidHandler" + ], + "fields": {}, + "methods": { + "([Lnet/minecraftforge/fluids/capability/IFluidHandler;)V": [ + 129, + null, + [] + ], + "addFluidHandler(Lnet/minecraftforge/fluids/capability/IFluidHandler;)V": [ + 1, + null, + [] + ], + "drain(IZ)Lnet/minecraftforge/fluids/FluidStack;": [ + 1, + null, + [] + ], + "drain(Lnet/minecraftforge/fluids/FluidStack;Z)Lnet/minecraftforge/fluids/FluidStack;": [ + 1, + null, + [] + ], + "fill(Lnet/minecraftforge/fluids/FluidStack;Z)I": [ + 1, + null, + [] + ], + "getTankProperties()[Lnet/minecraftforge/fluids/capability/IFluidTankProperties;": [ + 1, + null, + [] + ] + } + }, + "com/mcmoddev/lib/inventory/CombinedItemHandler": { + "access": 33, + "super": "java/lang/Object", + "interfaces": [ + "net/minecraftforge/items/IItemHandler" + ], + "fields": { + "handlers:Ljava/util/List;": [ + 20, + "Ljava/util/List;", + null + ] + }, + "methods": { + "([Lnet/minecraftforge/items/IItemHandler;)V": [ + 129, + null, + [] + ], + "addItemHandler(Lnet/minecraftforge/items/IItemHandler;)V": [ + 1, + null, + [] + ], + "extractItem(IIZ)Lnet/minecraft/item/ItemStack;": [ + 1, + null, + [] + ], + "findActualSlot(I)Lcom/mcmoddev/lib/inventory/CombinedItemHandler$ItemHandlerPosition;": [ + 4, + null, + [] + ], + "getSlotLimit(I)I": [ + 1, + null, + [] + ], + "getSlots()I": [ + 1, + null, + [] + ], + "getStackInSlot(I)Lnet/minecraft/item/ItemStack;": [ + 1, + null, + [] + ], + "insertItem(ILnet/minecraft/item/ItemStack;Z)Lnet/minecraft/item/ItemStack;": [ + 1, + null, + [] + ] + } + }, + "com/mcmoddev/lib/inventory/CombinedItemHandler$ItemHandlerPosition": { + "access": 33, + "super": "java/lang/Object", + "interfaces": [], + "fields": {}, + "methods": {} + }, + "com/mcmoddev/lib/inventory/CombinedItemHandlerModifiable": { + "access": 33, + "super": "com/mcmoddev/lib/inventory/CombinedItemHandler", + "interfaces": [ + "net/minecraftforge/items/IItemHandlerModifiable" + ], + "fields": {}, + "methods": { + "([Lnet/minecraftforge/items/IItemHandler;)V": [ + 129, + null, + [] + ], + "setStackInSlot(ILnet/minecraft/item/ItemStack;)V": [ + 1, + null, + [] + ] + } + }, + "com/mcmoddev/lib/inventory/FilteredFluidTank": { + "access": 33, + "super": "java/lang/Object", + "interfaces": [ + "net/minecraftforge/fluids/IFluidTank", + "com/mcmoddev/lib/inventory/IFluidTankModifiable", + "com/mcmoddev/lib/inventory/IFilteredFluidTank" + ], + "fields": {}, + "methods": { + "(Lcom/mcmoddev/lib/inventory/IFluidTankModifiable;Ljava/util/function/Predicate;Ljava/util/function/Predicate;)V": [ + 1, + "(Lcom/mcmoddev/lib/inventory/IFluidTankModifiable;Ljava/util/function/Predicate;Ljava/util/function/Predicate;)V", + [] + ], + "canDrain(Lnet/minecraftforge/fluids/FluidStack;)Z": [ + 1, + null, + [] + ], + "canFill(Lnet/minecraftforge/fluids/FluidStack;)Z": [ + 1, + null, + [] + ], + "drain(IZ)Lnet/minecraftforge/fluids/FluidStack;": [ + 1, + null, + [] + ], + "fill(Lnet/minecraftforge/fluids/FluidStack;Z)I": [ + 1, + null, + [] + ], + "getCapacity()I": [ + 1, + null, + [] + ], + "getFluid()Lnet/minecraftforge/fluids/FluidStack;": [ + 1, + null, + [] + ], + "getFluidAmount()I": [ + 1, + null, + [] + ], + "getInfo()Lnet/minecraftforge/fluids/FluidTankInfo;": [ + 1, + null, + [] + ], + "setFluid(Lnet/minecraftforge/fluids/FluidStack;)V": [ + 1, + null, + [] + ] + } + }, + "com/mcmoddev/lib/inventory/FilteredItemHandler": { + "access": 33, + "super": "java/lang/Object", + "interfaces": [ + "com/mcmoddev/lib/inventory/IFilteredItemHandler", + "net/minecraftforge/items/IItemHandlerModifiable" + ], + "fields": {}, + "methods": { + "(Lnet/minecraftforge/items/IItemHandlerModifiable;Ljava/util/function/BiPredicate;Ljava/util/function/BiPredicate;)V": [ + 1, + "(Lnet/minecraftforge/items/IItemHandlerModifiable;Ljava/util/function/BiPredicate;Ljava/util/function/BiPredicate;)V", + [] + ], + "canExtractItem(II)Z": [ + 1, + null, + [] + ], + "canInsertItem(ILnet/minecraft/item/ItemStack;)Z": [ + 1, + null, + [] + ], + "extractItem(IIZ)Lnet/minecraft/item/ItemStack;": [ + 1, + null, + [] + ], + "getSlotLimit(I)I": [ + 1, + null, + [] + ], + "getSlots()I": [ + 1, + null, + [] + ], + "getStackInSlot(I)Lnet/minecraft/item/ItemStack;": [ + 1, + null, + [] + ], + "insertItem(ILnet/minecraft/item/ItemStack;Z)Lnet/minecraft/item/ItemStack;": [ + 1, + null, + [] + ], + "setStackInSlot(ILnet/minecraft/item/ItemStack;)V": [ + 1, + null, + [] + ] + } + }, + "com/mcmoddev/lib/inventory/FluidTankHandler": { + "access": 33, + "super": "java/lang/Object", + "interfaces": [ + "net/minecraftforge/fluids/capability/IFluidHandler" + ], + "fields": {}, + "methods": { + "(Lnet/minecraftforge/fluids/IFluidTank;)V": [ + 1, + null, + [] + ], + "drain(IZ)Lnet/minecraftforge/fluids/FluidStack;": [ + 1, + null, + [] + ], + "drain(Lnet/minecraftforge/fluids/FluidStack;Z)Lnet/minecraftforge/fluids/FluidStack;": [ + 1, + null, + [] + ], + "fill(Lnet/minecraftforge/fluids/FluidStack;Z)I": [ + 1, + null, + [] + ], + "getTankProperties()[Lnet/minecraftforge/fluids/capability/IFluidTankProperties;": [ + 1, + null, + [] + ] + } + }, + "com/mcmoddev/lib/inventory/FluidTankHandler$FluidTankPropertiesWrapper": { + "access": 32, + "super": "java/lang/Object", + "interfaces": [ + "net/minecraftforge/fluids/capability/IFluidTankProperties" + ], + "fields": {}, + "methods": { + "canDrain()Z": [ + 1, + null, + [] + ], + "canDrainFluidType(Lnet/minecraftforge/fluids/FluidStack;)Z": [ + 1, + null, + [] + ], + "canFill()Z": [ + 1, + null, + [] + ], + "canFillFluidType(Lnet/minecraftforge/fluids/FluidStack;)Z": [ + 1, + null, + [] + ], + "getCapacity()I": [ + 1, + null, + [] + ], + "getContents()Lnet/minecraftforge/fluids/FluidStack;": [ + 1, + null, + [] + ] + } + }, + "com/mcmoddev/lib/inventory/IFilteredFluidTank": { + "access": 1537, + "super": "java/lang/Object", + "interfaces": [ + "net/minecraftforge/fluids/IFluidTank" + ], + "fields": {}, + "methods": { + "canDrain(Lnet/minecraftforge/fluids/FluidStack;)Z": [ + 1025, + null, + [] + ], + "canFill(Lnet/minecraftforge/fluids/FluidStack;)Z": [ + 1025, + null, + [] + ] + } + }, + "com/mcmoddev/lib/inventory/IFilteredItemHandler": { + "access": 1537, + "super": "java/lang/Object", + "interfaces": [ + "net/minecraftforge/items/IItemHandler" + ], + "fields": {}, + "methods": { + "canExtractItem(II)Z": [ + 1025, + null, + [] + ], + "canInsertItem(ILnet/minecraft/item/ItemStack;)Z": [ + 1025, + null, + [] + ] + } + }, + "com/mcmoddev/lib/inventory/IFluidTankModifiable": { + "access": 1537, + "super": "java/lang/Object", + "interfaces": [ + "net/minecraftforge/fluids/IFluidTank" + ], + "fields": {}, + "methods": { + "setFluid(Lnet/minecraftforge/fluids/FluidStack;)V": [ + 1025, + null, + [] + ] + } + }, + "com/mcmoddev/lib/inventory/IResponsiveFluidTank": { + "access": 1537, + "super": "java/lang/Object", + "interfaces": [ + "net/minecraftforge/fluids/IFluidTank" + ], + "fields": {}, + "methods": { + "addResponsiveTarget(Ljava/util/function/Consumer;)V": [ + 1025, + "(Ljava/util/function/Consumer;)V", + [] + ] + } + }, + "com/mcmoddev/lib/inventory/ItemHandlerWrapper": { + "access": 1057, + "super": "java/lang/Object", + "interfaces": [ + "net/minecraftforge/items/IItemHandlerModifiable", + "net/minecraftforge/common/util/INBTSerializable" + ], + "signature": "Ljava/lang/Object;Lnet/minecraftforge/items/IItemHandlerModifiable;Lnet/minecraftforge/common/util/INBTSerializable;", + "fields": {}, + "methods": { + "(Lnet/minecraftforge/items/IItemHandlerModifiable;)V": [ + 1, + null, + [] + ], + "deserializeNBT(Lnet/minecraft/nbt/NBTBase;)V": [ + 4161, + null, + [] + ], + "deserializeNBT(Lnet/minecraft/nbt/NBTTagCompound;)V": [ + 1, + null, + [] + ], + "extractItem(IIZ)Lnet/minecraft/item/ItemStack;": [ + 1, + null, + [] + ], + "getSlotLimit(I)I": [ + 1, + null, + [] + ], + "getSlots()I": [ + 1, + null, + [] + ], + "getStackInSlot(I)Lnet/minecraft/item/ItemStack;": [ + 1, + null, + [] + ], + "insertItem(ILnet/minecraft/item/ItemStack;Z)Lnet/minecraft/item/ItemStack;": [ + 1, + null, + [] + ], + "onChanged(I)V": [ + 1028, + null, + [] + ], + "serializeNBT()Lnet/minecraft/nbt/NBTBase;": [ + 4161, + null, + [] + ], + "serializeNBT()Lnet/minecraft/nbt/NBTTagCompound;": [ + 1, + null, + [] + ], + "setStackInSlot(ILnet/minecraft/item/ItemStack;)V": [ + 1, + null, + [] + ] + } + }, + "com/mcmoddev/lib/inventory/ResponsiveFluidTankWrapper": { + "access": 33, + "super": "java/lang/Object", + "interfaces": [ + "com/mcmoddev/lib/inventory/IFluidTankModifiable", + "com/mcmoddev/lib/inventory/IResponsiveFluidTank", + "net/minecraftforge/fluids/IFluidTank", + "com/mcmoddev/lib/inventory/IFilteredFluidTank" + ], + "fields": {}, + "methods": { + "(Lnet/minecraftforge/fluids/IFluidTank;Ljava/util/function/Consumer;)V": [ + 1, + "(Lnet/minecraftforge/fluids/IFluidTank;Ljava/util/function/Consumer;)V", + [] + ], + "addResponsiveTarget(Ljava/util/function/Consumer;)V": [ + 1, + "(Ljava/util/function/Consumer;)V", + [] + ], + "canDrain(Lnet/minecraftforge/fluids/FluidStack;)Z": [ + 1, + null, + [] + ], + "canFill(Lnet/minecraftforge/fluids/FluidStack;)Z": [ + 1, + null, + [] + ], + "drain(IZ)Lnet/minecraftforge/fluids/FluidStack;": [ + 1, + null, + [] + ], + "fill(Lnet/minecraftforge/fluids/FluidStack;Z)I": [ + 1, + null, + [] + ], + "getCapacity()I": [ + 1, + null, + [] + ], + "getFluid()Lnet/minecraftforge/fluids/FluidStack;": [ + 1, + null, + [] + ], + "getFluidAmount()I": [ + 1, + null, + [] + ], + "getInfo()Lnet/minecraftforge/fluids/FluidTankInfo;": [ + 1, + null, + [] + ], + "onChanged()V": [ + 4, + null, + [] + ], + "setFluid(Lnet/minecraftforge/fluids/FluidStack;)V": [ + 1, + null, + [] + ] + } + }, + "com/mcmoddev/lib/inventory/SimpleFluidTank": { + "access": 33, + "super": "net/minecraftforge/fluids/FluidTank", + "interfaces": [ + "com/mcmoddev/lib/inventory/IFluidTankModifiable", + "com/mcmoddev/lib/inventory/IResponsiveFluidTank" + ], + "fields": {}, + "methods": { + "(I)V": [ + 1, + null, + [] + ], + "(Lnet/minecraftforge/fluids/Fluid;II)V": [ + 1, + null, + [] + ], + "(Lnet/minecraftforge/fluids/FluidStack;I)V": [ + 1, + null, + [] + ], + "addResponsiveTarget(Ljava/util/function/Consumer;)V": [ + 1, + "(Ljava/util/function/Consumer;)V", + [] + ], + "onContentsChanged()V": [ + 4, + null, + [] + ] + } + }, + "com/mcmoddev/lib/inventory/package-info": { + "access": 5632, + "super": "java/lang/Object", + "interfaces": [], + "fields": {}, + "methods": {} + }, + "com/mcmoddev/lib/ioc/HashTuple2": { + "access": 33, + "super": "java/lang/Object", + "interfaces": [], + "signature": "Ljava/lang/Object;", + "fields": { + "a:Ljava/lang/Object;": [ + 17, + "TA;", + null + ], + "b:Ljava/lang/Object;": [ + 17, + "TB;", + null + ] + }, + "methods": { + "(Ljava/lang/Object;Ljava/lang/Object;)V": [ + 1, + "(TA;TB;)V", + [] + ], + "equals(Ljava/lang/Object;)Z": [ + 1, + null, + [] + ], + "hashCode()I": [ + 1, + null, + [] + ] + } + }, + "com/mcmoddev/lib/ioc/LibIoC": { + "access": 33, + "super": "java/lang/Object", + "interfaces": [], + "fields": { + "_instance:Lcom/mcmoddev/lib/ioc/LibIoC;": [ + 12, + null, + null + ], + "container:Ljava/util/concurrent/ConcurrentHashMap;": [ + 4, + "Ljava/util/concurrent/ConcurrentHashMap;Ljava/lang/String;>;Ljava/lang/Object;>;", + null + ] + }, + "methods": { + "()V": [ + 4, + null, + [] + ], + "getInstance()Lcom/mcmoddev/lib/ioc/LibIoC;": [ + 9, + null, + [] + ], + "getInstance(Z)Lcom/mcmoddev/lib/ioc/LibIoC;": [ + 9, + null, + [] + ], + "register(Ljava/lang/Class;Ljava/lang/Object;)Z": [ + 1, + "(Ljava/lang/Class;TV;)Z", + [] + ], + "register(Ljava/lang/Class;Ljava/lang/Object;Lcom/mcmoddev/lib/ioc/MMDResourceLocation;)Z": [ + 1, + "(Ljava/lang/Class;TV;Lcom/mcmoddev/lib/ioc/MMDResourceLocation;)Z", + [] + ], + "register(Ljava/lang/Class;Ljava/lang/Object;Ljava/lang/String;Ljava/lang/String;)Z": [ + 1, + "(Ljava/lang/Class;TV;Ljava/lang/String;Ljava/lang/String;)Z", + [] + ], + "register(Ljava/lang/Class;Ljava/lang/Object;Lnet/minecraft/util/ResourceLocation;)Z": [ + 1, + "(Ljava/lang/Class;TV;Lnet/minecraft/util/ResourceLocation;)Z", + [] + ], + "resolve(Ljava/lang/Class;)Ljava/lang/Object;": [ + 1, + "(Ljava/lang/Class;)TV;", + [] + ], + "resolve(Ljava/lang/Class;Lcom/mcmoddev/lib/ioc/MMDResourceLocation;)Ljava/lang/Object;": [ + 1, + "(Ljava/lang/Class;Lcom/mcmoddev/lib/ioc/MMDResourceLocation;)TV;", + [] + ], + "resolve(Ljava/lang/Class;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/Object;": [ + 1, + "(Ljava/lang/Class;Ljava/lang/String;Ljava/lang/String;)TV;", + [] + ], + "resolve(Ljava/lang/Class;Lnet/minecraft/util/ResourceLocation;)Ljava/lang/Object;": [ + 1, + "(Ljava/lang/Class;Lnet/minecraft/util/ResourceLocation;)TV;", + [] + ], + "wireup()V": [ + 1, + null, + [] + ] + } + }, + "com/mcmoddev/lib/ioc/MMDResourceLocation": { + "access": 33, + "super": "net/minecraft/util/ResourceLocation", + "interfaces": [], + "fields": {}, + "methods": { + "(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V": [ + 1, + null, + [] + ], + "getEntryName()Ljava/lang/String;": [ + 1, + null, + [] + ], + "getEntryNamespace()Ljava/lang/String;": [ + 1, + null, + [] + ], + "getEntryType()Ljava/lang/String;": [ + 1, + null, + [] + ] + } + }, + "com/mcmoddev/lib/item/GenericMMDItem": { + "access": 33, + "super": "net/minecraft/item/Item", + "interfaces": [ + "com/mcmoddev/lib/material/IMMDObject", + "com/mcmoddev/lib/material/IMMDBurnableObject" + ], + "fields": {}, + "methods": { + "(Lcom/mcmoddev/lib/material/MMDMaterial;)V": [ + 1, + null, + [] + ], + "getItemBurnTime(Lnet/minecraft/item/ItemStack;)I": [ + 1, + null, + [] + ], + "getMMDMaterial()Lcom/mcmoddev/lib/material/MMDMaterial;": [ + 1, + null, + [] + ], + "setBurnTime(I)V": [ + 1, + null, + [] + ] + } + }, + "com/mcmoddev/lib/item/ItemBolt": { + "access": 33, + "super": "net/minecraft/item/Item", + "interfaces": [], + "fields": {}, + "methods": { + "()V": [ + 1, + null, + [] + ], + "createBolt(Lnet/minecraft/world/World;Lnet/minecraft/item/ItemStack;Lnet/minecraft/entity/player/EntityPlayer;)Lcom/mcmoddev/lib/entity/EntityCustomBolt;": [ + 1, + null, + [] + ], + "isInfinite(Lnet/minecraft/item/ItemStack;Lnet/minecraft/item/ItemStack;Lnet/minecraft/entity/player/EntityPlayer;)Z": [ + 1, + null, + [] + ] + } + }, + "com/mcmoddev/lib/item/ItemCrossbow": { + "access": 33, + "super": "net/minecraft/item/ItemBow", + "interfaces": [], + "fields": {}, + "methods": { + "()V": [ + 1, + null, + [] + ], + "isArrow(Lnet/minecraft/item/ItemStack;)Z": [ + 4, + null, + [] + ], + "isBolt(Lnet/minecraft/item/ItemStack;)Z": [ + 4, + null, + [] + ], + "onItemRightClick(Lnet/minecraft/world/World;Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/util/EnumHand;)Lnet/minecraft/util/ActionResult;": [ + 1, + "(Lnet/minecraft/world/World;Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/util/EnumHand;)Lnet/minecraft/util/ActionResult;", + [] + ], + "onPlayerStoppedUsing(Lnet/minecraft/item/ItemStack;Lnet/minecraft/world/World;Lnet/minecraft/entity/EntityLivingBase;I)V": [ + 1, + null, + [] + ] + } + }, + "com/mcmoddev/lib/item/ItemMMDAnvilBlock": { + "access": 33, + "super": "net/minecraft/item/ItemMultiTexture", + "interfaces": [ + "com/mcmoddev/lib/material/IMMDObject" + ], + "fields": {}, + "methods": { + "(Lcom/mcmoddev/lib/material/MMDMaterial;)V": [ + 1, + null, + [] + ], + "getMMDMaterial()Lcom/mcmoddev/lib/material/MMDMaterial;": [ + 1, + null, + [] + ], + "getMetadata(I)I": [ + 1, + null, + [] + ] + } + }, + "com/mcmoddev/lib/item/ItemMMDArmor": { + "access": 33, + "super": "net/minecraft/item/ItemArmor", + "interfaces": [ + "com/mcmoddev/lib/material/IMMDObject" + ], + "fields": {}, + "methods": { + "(Lcom/mcmoddev/lib/material/MMDMaterial;Lnet/minecraft/item/ItemArmor$ArmorMaterial;ILnet/minecraft/inventory/EntityEquipmentSlot;)V": [ + 4, + null, + [] + ], + "addInformation(Lnet/minecraft/item/ItemStack;Lnet/minecraft/world/World;Ljava/util/List;Lnet/minecraft/client/util/ITooltipFlag;)V": [ + 1, + "(Lnet/minecraft/item/ItemStack;Lnet/minecraft/world/World;Ljava/util/List;Lnet/minecraft/client/util/ITooltipFlag;)V", + [] + ], + "createArmor(Lcom/mcmoddev/lib/material/MMDMaterial;Lcom/mcmoddev/lib/data/Names;)Lcom/mcmoddev/lib/item/ItemMMDArmor;": [ + 9, + null, + [] + ], + "createArmorBase(Lcom/mcmoddev/lib/material/MMDMaterial;Lnet/minecraft/inventory/EntityEquipmentSlot;)Lcom/mcmoddev/lib/item/ItemMMDArmor;": [ + 12, + null, + [] + ], + "extraEffectsOnCrafting(Lnet/minecraft/item/ItemStack;Lnet/minecraft/world/World;Lnet/minecraft/entity/player/EntityPlayer;)V": [ + 1, + null, + [] + ], + "getArmorTexture(Lnet/minecraft/item/ItemStack;Lnet/minecraft/entity/Entity;Lnet/minecraft/inventory/EntityEquipmentSlot;Ljava/lang/String;)Ljava/lang/String;": [ + 1, + null, + [] + ], + "getIsRepairable(Lnet/minecraft/item/ItemStack;Lnet/minecraft/item/ItemStack;)Z": [ + 1, + null, + [] + ], + "getMMDMaterial()Lcom/mcmoddev/lib/material/MMDMaterial;": [ + 1, + null, + [] + ], + "onArmorTick(Lnet/minecraft/world/World;Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/item/ItemStack;)V": [ + 1, + null, + [] + ], + "onCreated(Lnet/minecraft/item/ItemStack;Lnet/minecraft/world/World;Lnet/minecraft/entity/player/EntityPlayer;)V": [ + 1, + null, + [] + ] + } + }, + "com/mcmoddev/lib/item/ItemMMDArmor$1": { + "access": 4128, + "super": "java/lang/Object", + "interfaces": [], + "fields": {}, + "methods": {} + }, + "com/mcmoddev/lib/item/ItemMMDArrow": { + "access": 33, + "super": "net/minecraft/item/ItemArrow", + "interfaces": [ + "com/mcmoddev/lib/material/IMMDObject" + ], + "fields": {}, + "methods": { + "(Lcom/mcmoddev/lib/material/MMDMaterial;)V": [ + 1, + null, + [] + ], + "createArrow(Lnet/minecraft/world/World;Lnet/minecraft/item/ItemStack;Lnet/minecraft/entity/player/EntityPlayer;)Lcom/mcmoddev/lib/entity/EntityCustomArrow;": [ + 1, + null, + [] + ], + "getMMDMaterial()Lcom/mcmoddev/lib/material/MMDMaterial;": [ + 1, + null, + [] + ] + } + }, + "com/mcmoddev/lib/item/ItemMMDAxe": { + "access": 33, + "super": "net/minecraft/item/ItemAxe", + "interfaces": [ + "com/mcmoddev/lib/material/IMMDObject" + ], + "fields": {}, + "methods": { + "(Lcom/mcmoddev/lib/material/MMDMaterial;)V": [ + 1, + null, + [] + ], + "addInformation(Lnet/minecraft/item/ItemStack;Lnet/minecraft/world/World;Ljava/util/List;Lnet/minecraft/client/util/ITooltipFlag;)V": [ + 1, + "(Lnet/minecraft/item/ItemStack;Lnet/minecraft/world/World;Ljava/util/List;Lnet/minecraft/client/util/ITooltipFlag;)V", + [] + ], + "getIsRepairable(Lnet/minecraft/item/ItemStack;Lnet/minecraft/item/ItemStack;)Z": [ + 1, + null, + [] + ], + "getItemEnchantability()I": [ + 1, + null, + [] + ], + "getMMDMaterial()Lcom/mcmoddev/lib/material/MMDMaterial;": [ + 1, + null, + [] + ], + "getToolMaterialName()Ljava/lang/String;": [ + 1, + null, + [] + ], + "hitEntity(Lnet/minecraft/item/ItemStack;Lnet/minecraft/entity/EntityLivingBase;Lnet/minecraft/entity/EntityLivingBase;)Z": [ + 1, + null, + [] + ], + "onCreated(Lnet/minecraft/item/ItemStack;Lnet/minecraft/world/World;Lnet/minecraft/entity/player/EntityPlayer;)V": [ + 1, + null, + [] + ], + "onUpdate(Lnet/minecraft/item/ItemStack;Lnet/minecraft/world/World;Lnet/minecraft/entity/Entity;IZ)V": [ + 1, + null, + [] + ] + } + }, + "com/mcmoddev/lib/item/ItemMMDBlend": { + "access": 33, + "super": "com/mcmoddev/lib/item/GenericMMDItem", + "interfaces": [], + "fields": {}, + "methods": { + "(Lcom/mcmoddev/lib/material/MMDMaterial;)V": [ + 1, + null, + [] + ] + } + }, + "com/mcmoddev/lib/item/ItemMMDBlock": { + "access": 33, + "super": "net/minecraft/item/ItemBlock", + "interfaces": [ + "com/mcmoddev/lib/material/IMMDObject", + "com/mcmoddev/lib/material/IMMDBurnableObject" + ], + "fields": {}, + "methods": { + "(Lcom/mcmoddev/lib/material/MMDMaterial;Lnet/minecraft/block/Block;)V": [ + 1, + null, + [] + ], + "getItemBurnTime(Lnet/minecraft/item/ItemStack;)I": [ + 1, + null, + [] + ], + "getMMDMaterial()Lcom/mcmoddev/lib/material/MMDMaterial;": [ + 1, + null, + [] + ], + "setBurnTime(I)V": [ + 1, + null, + [] + ] + } + }, + "com/mcmoddev/lib/item/ItemMMDBolt": { + "access": 33, + "super": "com/mcmoddev/lib/item/ItemBolt", + "interfaces": [ + "com/mcmoddev/lib/material/IMMDObject" + ], + "fields": {}, + "methods": { + "(Lcom/mcmoddev/lib/material/MMDMaterial;)V": [ + 1, + null, + [] + ], + "createBolt(Lnet/minecraft/world/World;Lnet/minecraft/item/ItemStack;Lnet/minecraft/entity/player/EntityPlayer;)Lcom/mcmoddev/lib/entity/EntityCustomBolt;": [ + 1, + null, + [] + ], + "getMMDMaterial()Lcom/mcmoddev/lib/material/MMDMaterial;": [ + 1, + null, + [] + ] + } + }, + "com/mcmoddev/lib/item/ItemMMDBow": { + "access": 33, + "super": "net/minecraft/item/ItemBow", + "interfaces": [ + "com/mcmoddev/lib/material/IMMDObject" + ], + "fields": {}, + "methods": { + "(Lcom/mcmoddev/lib/material/MMDMaterial;)V": [ + 1, + null, + [] + ], + "addInformation(Lnet/minecraft/item/ItemStack;Lnet/minecraft/world/World;Ljava/util/List;Lnet/minecraft/client/util/ITooltipFlag;)V": [ + 1, + "(Lnet/minecraft/item/ItemStack;Lnet/minecraft/world/World;Ljava/util/List;Lnet/minecraft/client/util/ITooltipFlag;)V", + [] + ], + "getIsRepairable(Lnet/minecraft/item/ItemStack;Lnet/minecraft/item/ItemStack;)Z": [ + 1, + null, + [] + ], + "getMMDMaterial()Lcom/mcmoddev/lib/material/MMDMaterial;": [ + 1, + null, + [] + ], + "onUpdate(Lnet/minecraft/item/ItemStack;Lnet/minecraft/world/World;Lnet/minecraft/entity/Entity;IZ)V": [ + 1, + null, + [] + ] + } + }, + "com/mcmoddev/lib/item/ItemMMDCrackHammer": { + "access": 33, + "super": "net/minecraft/item/ItemTool", + "interfaces": [ + "com/mcmoddev/lib/material/IMMDObject" + ], + "fields": {}, + "methods": { + "(Lcom/mcmoddev/lib/material/MMDMaterial;)V": [ + 1, + null, + [] + ], + "addInformation(Lnet/minecraft/item/ItemStack;Lnet/minecraft/world/World;Ljava/util/List;Lnet/minecraft/client/util/ITooltipFlag;)V": [ + 1, + "(Lnet/minecraft/item/ItemStack;Lnet/minecraft/world/World;Ljava/util/List;Lnet/minecraft/client/util/ITooltipFlag;)V", + [] + ], + "canHarvestBlock(Lnet/minecraft/block/state/IBlockState;)Z": [ + 1, + null, + [] + ], + "getCrusherRecipe(Lnet/minecraft/block/Block;)Lcom/mcmoddev/lib/registry/recipe/ICrusherRecipe;": [ + 4, + null, + [] + ], + "getCrusherRecipe(Lnet/minecraft/block/state/IBlockState;)Lcom/mcmoddev/lib/registry/recipe/ICrusherRecipe;": [ + 4, + null, + [] + ], + "getDestroySpeed(Lnet/minecraft/item/ItemStack;Lnet/minecraft/block/state/IBlockState;)F": [ + 1, + null, + [] + ], + "getHarvestLevel(Lnet/minecraft/item/ItemStack;Ljava/lang/String;Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/block/state/IBlockState;)I": [ + 131073, + null, + [] + ], + "getIsRepairable(Lnet/minecraft/item/ItemStack;Lnet/minecraft/item/ItemStack;)Z": [ + 1, + null, + [] + ], + "getItemEnchantability()I": [ + 1, + null, + [] + ], + "getMMDMaterial()Lcom/mcmoddev/lib/material/MMDMaterial;": [ + 1, + null, + [] + ], + "getToolClasses(Lnet/minecraft/item/ItemStack;)Ljava/util/Set;": [ + 1, + "(Lnet/minecraft/item/ItemStack;)Ljava/util/Set;", + [] + ], + "getToolMaterialName()Ljava/lang/String;": [ + 1, + null, + [] + ], + "hitEntity(Lnet/minecraft/item/ItemStack;Lnet/minecraft/entity/EntityLivingBase;Lnet/minecraft/entity/EntityLivingBase;)Z": [ + 1, + null, + [] + ], + "isCrushableBlock(Lnet/minecraft/block/Block;)Z": [ + 4, + null, + [] + ], + "isCrushableBlock(Lnet/minecraft/block/state/IBlockState;)Z": [ + 4, + null, + [] + ], + "onBlockDestroyed(Lnet/minecraft/item/ItemStack;Lnet/minecraft/world/World;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/util/math/BlockPos;Lnet/minecraft/entity/EntityLivingBase;)Z": [ + 1, + null, + [] + ], + "onCreated(Lnet/minecraft/item/ItemStack;Lnet/minecraft/world/World;Lnet/minecraft/entity/player/EntityPlayer;)V": [ + 1, + null, + [] + ], + "onItemUse(Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/world/World;Lnet/minecraft/util/math/BlockPos;Lnet/minecraft/util/EnumHand;Lnet/minecraft/util/EnumFacing;FFF)Lnet/minecraft/util/EnumActionResult;": [ + 1, + null, + [] + ], + "onUpdate(Lnet/minecraft/item/ItemStack;Lnet/minecraft/world/World;Lnet/minecraft/entity/Entity;IZ)V": [ + 1, + null, + [] + ] + } + }, + "com/mcmoddev/lib/item/ItemMMDCrossbow": { + "access": 33, + "super": "com/mcmoddev/lib/item/ItemCrossbow", + "interfaces": [ + "com/mcmoddev/lib/material/IMMDObject" + ], + "fields": {}, + "methods": { + "(Lcom/mcmoddev/lib/material/MMDMaterial;)V": [ + 1, + null, + [] + ], + "addInformation(Lnet/minecraft/item/ItemStack;Lnet/minecraft/world/World;Ljava/util/List;Lnet/minecraft/client/util/ITooltipFlag;)V": [ + 1, + "(Lnet/minecraft/item/ItemStack;Lnet/minecraft/world/World;Ljava/util/List;Lnet/minecraft/client/util/ITooltipFlag;)V", + [] + ], + "getIsRepairable(Lnet/minecraft/item/ItemStack;Lnet/minecraft/item/ItemStack;)Z": [ + 1, + null, + [] + ], + "getMMDMaterial()Lcom/mcmoddev/lib/material/MMDMaterial;": [ + 1, + null, + [] + ], + "onUpdate(Lnet/minecraft/item/ItemStack;Lnet/minecraft/world/World;Lnet/minecraft/entity/Entity;IZ)V": [ + 1, + null, + [] + ] + } + }, + "com/mcmoddev/lib/item/ItemMMDDoor": { + "access": 33, + "super": "net/minecraft/item/ItemDoor", + "interfaces": [ + "com/mcmoddev/lib/material/IMMDObject" + ], + "fields": {}, + "methods": { + "(Lcom/mcmoddev/lib/material/MMDMaterial;)V": [ + 1, + null, + [] + ], + "(Lnet/minecraft/block/BlockDoor;Lcom/mcmoddev/lib/material/MMDMaterial;)V": [ + 1, + null, + [] + ], + "getItemBurnTime(Lnet/minecraft/item/ItemStack;)I": [ + 1, + null, + [] + ], + "getMMDMaterial()Lcom/mcmoddev/lib/material/MMDMaterial;": [ + 1, + null, + [] + ] + } + }, + "com/mcmoddev/lib/item/ItemMMDFishingRod": { + "access": 33, + "super": "net/minecraft/item/ItemFishingRod", + "interfaces": [ + "com/mcmoddev/lib/material/IMMDObject" + ], + "fields": {}, + "methods": { + "(Lcom/mcmoddev/lib/material/MMDMaterial;)V": [ + 1, + null, + [] + ], + "addInformation(Lnet/minecraft/item/ItemStack;Lnet/minecraft/world/World;Ljava/util/List;Lnet/minecraft/client/util/ITooltipFlag;)V": [ + 1, + "(Lnet/minecraft/item/ItemStack;Lnet/minecraft/world/World;Ljava/util/List;Lnet/minecraft/client/util/ITooltipFlag;)V", + [] + ], + "getIsRepairable(Lnet/minecraft/item/ItemStack;Lnet/minecraft/item/ItemStack;)Z": [ + 1, + null, + [] + ], + "getMMDMaterial()Lcom/mcmoddev/lib/material/MMDMaterial;": [ + 1, + null, + [] + ], + "onUpdate(Lnet/minecraft/item/ItemStack;Lnet/minecraft/world/World;Lnet/minecraft/entity/Entity;IZ)V": [ + 1, + null, + [] + ] + } + }, + "com/mcmoddev/lib/item/ItemMMDGear": { + "access": 33, + "super": "com/mcmoddev/lib/item/GenericMMDItem", + "interfaces": [], + "fields": {}, + "methods": { + "(Lcom/mcmoddev/lib/material/MMDMaterial;)V": [ + 1, + null, + [] + ] + } + }, + "com/mcmoddev/lib/item/ItemMMDHoe": { + "access": 33, + "super": "net/minecraft/item/ItemHoe", + "interfaces": [ + "com/mcmoddev/lib/material/IMMDObject" + ], + "fields": {}, + "methods": { + "(Lcom/mcmoddev/lib/material/MMDMaterial;)V": [ + 1, + null, + [] + ], + "addInformation(Lnet/minecraft/item/ItemStack;Lnet/minecraft/world/World;Ljava/util/List;Lnet/minecraft/client/util/ITooltipFlag;)V": [ + 1, + "(Lnet/minecraft/item/ItemStack;Lnet/minecraft/world/World;Ljava/util/List;Lnet/minecraft/client/util/ITooltipFlag;)V", + [] + ], + "canHarvestBlock(Lnet/minecraft/block/state/IBlockState;)Z": [ + 1, + null, + [] + ], + "getDestroySpeed(Lnet/minecraft/item/ItemStack;Lnet/minecraft/block/state/IBlockState;)F": [ + 1, + null, + [] + ], + "getHarvestLevel(Lnet/minecraft/item/ItemStack;Ljava/lang/String;Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/block/state/IBlockState;)I": [ + 131073, + null, + [] + ], + "getIsRepairable(Lnet/minecraft/item/ItemStack;Lnet/minecraft/item/ItemStack;)Z": [ + 1, + null, + [] + ], + "getMMDMaterial()Lcom/mcmoddev/lib/material/MMDMaterial;": [ + 1, + null, + [] + ], + "getMaterialName()Ljava/lang/String;": [ + 1, + null, + [] + ], + "getToolClasses(Lnet/minecraft/item/ItemStack;)Ljava/util/Set;": [ + 1, + "(Lnet/minecraft/item/ItemStack;)Ljava/util/Set;", + [] + ], + "hitEntity(Lnet/minecraft/item/ItemStack;Lnet/minecraft/entity/EntityLivingBase;Lnet/minecraft/entity/EntityLivingBase;)Z": [ + 1, + null, + [] + ], + "onCreated(Lnet/minecraft/item/ItemStack;Lnet/minecraft/world/World;Lnet/minecraft/entity/player/EntityPlayer;)V": [ + 1, + null, + [] + ], + "onUpdate(Lnet/minecraft/item/ItemStack;Lnet/minecraft/world/World;Lnet/minecraft/entity/Entity;IZ)V": [ + 1, + null, + [] + ] + } + }, + "com/mcmoddev/lib/item/ItemMMDHorseArmor": { + "access": 33, + "super": "com/mcmoddev/lib/item/GenericMMDItem", + "interfaces": [ + "com/mcmoddev/lib/common/item/IHorseArmor" + ], + "fields": {}, + "methods": { + "(Lcom/mcmoddev/lib/material/MMDMaterial;)V": [ + 1, + null, + [] + ], + "getHorseArmorTexture(Lnet/minecraft/entity/EntityLiving;Lnet/minecraft/item/ItemStack;)Ljava/lang/String;": [ + 1, + null, + [] + ], + "getHorseArmorType(Lnet/minecraft/item/ItemStack;)Lnet/minecraft/entity/passive/HorseArmorType;": [ + 1, + null, + [] + ] + } + }, + "com/mcmoddev/lib/item/ItemMMDIngot": { + "access": 33, + "super": "com/mcmoddev/lib/item/GenericMMDItem", + "interfaces": [], + "fields": {}, + "methods": { + "(Lcom/mcmoddev/lib/material/MMDMaterial;)V": [ + 1, + null, + [] + ] + } + }, + "com/mcmoddev/lib/item/ItemMMDNugget": { + "access": 33, + "super": "com/mcmoddev/lib/item/GenericMMDItem", + "interfaces": [], + "fields": {}, + "methods": { + "(Lcom/mcmoddev/lib/material/MMDMaterial;)V": [ + 1, + null, + [] + ] + } + }, + "com/mcmoddev/lib/item/ItemMMDPickaxe": { + "access": 33, + "super": "net/minecraft/item/ItemPickaxe", + "interfaces": [ + "com/mcmoddev/lib/material/IMMDObject" + ], + "fields": {}, + "methods": { + "(Lcom/mcmoddev/lib/material/MMDMaterial;)V": [ + 1, + null, + [] + ], + "addInformation(Lnet/minecraft/item/ItemStack;Lnet/minecraft/world/World;Ljava/util/List;Lnet/minecraft/client/util/ITooltipFlag;)V": [ + 1, + "(Lnet/minecraft/item/ItemStack;Lnet/minecraft/world/World;Ljava/util/List;Lnet/minecraft/client/util/ITooltipFlag;)V", + [] + ], + "canHarvestBlock(Lnet/minecraft/block/state/IBlockState;)Z": [ + 1, + null, + [] + ], + "getIsRepairable(Lnet/minecraft/item/ItemStack;Lnet/minecraft/item/ItemStack;)Z": [ + 1, + null, + [] + ], + "getItemEnchantability()I": [ + 1, + null, + [] + ], + "getMMDMaterial()Lcom/mcmoddev/lib/material/MMDMaterial;": [ + 1, + null, + [] + ], + "getToolMaterialName()Ljava/lang/String;": [ + 1, + null, + [] + ], + "hitEntity(Lnet/minecraft/item/ItemStack;Lnet/minecraft/entity/EntityLivingBase;Lnet/minecraft/entity/EntityLivingBase;)Z": [ + 1, + null, + [] + ], + "onCreated(Lnet/minecraft/item/ItemStack;Lnet/minecraft/world/World;Lnet/minecraft/entity/player/EntityPlayer;)V": [ + 1, + null, + [] + ], + "onUpdate(Lnet/minecraft/item/ItemStack;Lnet/minecraft/world/World;Lnet/minecraft/entity/Entity;IZ)V": [ + 1, + null, + [] + ] + } + }, + "com/mcmoddev/lib/item/ItemMMDPowder": { + "access": 33, + "super": "com/mcmoddev/lib/item/GenericMMDItem", + "interfaces": [], + "fields": {}, + "methods": { + "(Lcom/mcmoddev/lib/material/MMDMaterial;)V": [ + 1, + null, + [] + ] + } + }, + "com/mcmoddev/lib/item/ItemMMDRod": { + "access": 33, + "super": "com/mcmoddev/lib/item/GenericMMDItem", + "interfaces": [], + "fields": {}, + "methods": { + "(Lcom/mcmoddev/lib/material/MMDMaterial;)V": [ + 1, + null, + [] + ] + } + }, + "com/mcmoddev/lib/item/ItemMMDShears": { + "access": 33, + "super": "net/minecraft/item/ItemShears", + "interfaces": [ + "com/mcmoddev/lib/material/IMMDObject" + ], + "fields": {}, + "methods": { + "(Lcom/mcmoddev/lib/material/MMDMaterial;)V": [ + 1, + null, + [] + ], + "addInformation(Lnet/minecraft/item/ItemStack;Lnet/minecraft/world/World;Ljava/util/List;Lnet/minecraft/client/util/ITooltipFlag;)V": [ + 1, + "(Lnet/minecraft/item/ItemStack;Lnet/minecraft/world/World;Ljava/util/List;Lnet/minecraft/client/util/ITooltipFlag;)V", + [] + ], + "getIsRepairable(Lnet/minecraft/item/ItemStack;Lnet/minecraft/item/ItemStack;)Z": [ + 1, + null, + [] + ], + "getMMDMaterial()Lcom/mcmoddev/lib/material/MMDMaterial;": [ + 1, + null, + [] + ], + "onUpdate(Lnet/minecraft/item/ItemStack;Lnet/minecraft/world/World;Lnet/minecraft/entity/Entity;IZ)V": [ + 1, + null, + [] + ] + } + }, + "com/mcmoddev/lib/item/ItemMMDShield": { + "access": 33, + "super": "net/minecraft/item/ItemShield", + "interfaces": [ + "com/mcmoddev/lib/material/IMMDObject" + ], + "fields": {}, + "methods": { + "(Lcom/mcmoddev/lib/material/MMDMaterial;)V": [ + 1, + null, + [] + ], + "addInformation(Lnet/minecraft/item/ItemStack;Lnet/minecraft/world/World;Ljava/util/List;Lnet/minecraft/client/util/ITooltipFlag;)V": [ + 1, + "(Lnet/minecraft/item/ItemStack;Lnet/minecraft/world/World;Ljava/util/List;Lnet/minecraft/client/util/ITooltipFlag;)V", + [] + ], + "getIsRepairable(Lnet/minecraft/item/ItemStack;Lnet/minecraft/item/ItemStack;)Z": [ + 1, + null, + [] + ], + "getMMDMaterial()Lcom/mcmoddev/lib/material/MMDMaterial;": [ + 1, + null, + [] + ], + "onUpdate(Lnet/minecraft/item/ItemStack;Lnet/minecraft/world/World;Lnet/minecraft/entity/Entity;IZ)V": [ + 1, + null, + [] + ] + } + }, + "com/mcmoddev/lib/item/ItemMMDShovel": { + "access": 33, + "super": "net/minecraft/item/ItemSpade", + "interfaces": [ + "com/mcmoddev/lib/material/IMMDObject" + ], + "fields": {}, + "methods": { + "(Lcom/mcmoddev/lib/material/MMDMaterial;)V": [ + 1, + null, + [] + ], + "addInformation(Lnet/minecraft/item/ItemStack;Lnet/minecraft/world/World;Ljava/util/List;Lnet/minecraft/client/util/ITooltipFlag;)V": [ + 1, + "(Lnet/minecraft/item/ItemStack;Lnet/minecraft/world/World;Ljava/util/List;Lnet/minecraft/client/util/ITooltipFlag;)V", + [] + ], + "getIsRepairable(Lnet/minecraft/item/ItemStack;Lnet/minecraft/item/ItemStack;)Z": [ + 1, + null, + [] + ], + "getItemEnchantability()I": [ + 1, + null, + [] + ], + "getMMDMaterial()Lcom/mcmoddev/lib/material/MMDMaterial;": [ + 1, + null, + [] + ], + "getToolMaterialName()Ljava/lang/String;": [ + 1, + null, + [] + ], + "hitEntity(Lnet/minecraft/item/ItemStack;Lnet/minecraft/entity/EntityLivingBase;Lnet/minecraft/entity/EntityLivingBase;)Z": [ + 1, + null, + [] + ], + "onCreated(Lnet/minecraft/item/ItemStack;Lnet/minecraft/world/World;Lnet/minecraft/entity/player/EntityPlayer;)V": [ + 1, + null, + [] + ], + "onUpdate(Lnet/minecraft/item/ItemStack;Lnet/minecraft/world/World;Lnet/minecraft/entity/Entity;IZ)V": [ + 1, + null, + [] + ] + } + }, + "com/mcmoddev/lib/item/ItemMMDSickle": { + "access": 33, + "super": "net/minecraft/item/ItemTool", + "interfaces": [ + "com/mcmoddev/lib/material/IMMDObject" + ], + "fields": {}, + "methods": { + "(Lcom/mcmoddev/lib/material/MMDMaterial;)V": [ + 1, + null, + [] + ], + "addInformation(Lnet/minecraft/item/ItemStack;Lnet/minecraft/world/World;Ljava/util/List;Lnet/minecraft/client/util/ITooltipFlag;)V": [ + 1, + "(Lnet/minecraft/item/ItemStack;Lnet/minecraft/world/World;Ljava/util/List;Lnet/minecraft/client/util/ITooltipFlag;)V", + [] + ], + "getDestroySpeed(Lnet/minecraft/item/ItemStack;Lnet/minecraft/block/state/IBlockState;)F": [ + 1, + null, + [] + ], + "getHarvestLevel(Lnet/minecraft/item/ItemStack;Ljava/lang/String;Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/block/state/IBlockState;)I": [ + 1, + null, + [] + ], + "getIsRepairable(Lnet/minecraft/item/ItemStack;Lnet/minecraft/item/ItemStack;)Z": [ + 1, + null, + [] + ], + "getItemAttributeModifiers(Lnet/minecraft/inventory/EntityEquipmentSlot;)Lcom/google/common/collect/Multimap;": [ + 131073, + "(Lnet/minecraft/inventory/EntityEquipmentSlot;)Lcom/google/common/collect/Multimap;", + [] + ], + "getMMDMaterial()Lcom/mcmoddev/lib/material/MMDMaterial;": [ + 1, + null, + [] + ], + "getToolClasses(Lnet/minecraft/item/ItemStack;)Ljava/util/Set;": [ + 1, + "(Lnet/minecraft/item/ItemStack;)Ljava/util/Set;", + [] + ], + "hitEntity(Lnet/minecraft/item/ItemStack;Lnet/minecraft/entity/EntityLivingBase;Lnet/minecraft/entity/EntityLivingBase;)Z": [ + 1, + null, + [] + ], + "onBlockStartBreak(Lnet/minecraft/item/ItemStack;Lnet/minecraft/util/math/BlockPos;Lnet/minecraft/entity/player/EntityPlayer;)Z": [ + 1, + null, + [] + ], + "onCreated(Lnet/minecraft/item/ItemStack;Lnet/minecraft/world/World;Lnet/minecraft/entity/player/EntityPlayer;)V": [ + 1, + null, + [] + ], + "onUpdate(Lnet/minecraft/item/ItemStack;Lnet/minecraft/world/World;Lnet/minecraft/entity/Entity;IZ)V": [ + 1, + null, + [] + ] + } + }, + "com/mcmoddev/lib/item/ItemMMDSlab": { + "access": 33, + "super": "net/minecraft/item/ItemSlab", + "interfaces": [ + "com/mcmoddev/lib/material/IMMDObject" + ], + "fields": {}, + "methods": { + "(Lcom/mcmoddev/lib/material/MMDMaterial;)V": [ + 1, + null, + [] + ], + "getMMDMaterial()Lcom/mcmoddev/lib/material/MMDMaterial;": [ + 1, + null, + [] + ] + } + }, + "com/mcmoddev/lib/item/ItemMMDSmallBlend": { + "access": 33, + "super": "com/mcmoddev/lib/item/GenericMMDItem", + "interfaces": [], + "fields": {}, + "methods": { + "(Lcom/mcmoddev/lib/material/MMDMaterial;)V": [ + 1, + null, + [] + ] + } + }, + "com/mcmoddev/lib/item/ItemMMDSmallPowder": { + "access": 33, + "super": "com/mcmoddev/lib/item/GenericMMDItem", + "interfaces": [], + "fields": {}, + "methods": { + "(Lcom/mcmoddev/lib/material/MMDMaterial;)V": [ + 1, + null, + [] + ] + } + }, + "com/mcmoddev/lib/item/ItemMMDSword": { + "access": 33, + "super": "net/minecraft/item/ItemSword", + "interfaces": [ + "com/mcmoddev/lib/material/IMMDObject" + ], + "fields": {}, + "methods": { + "(Lcom/mcmoddev/lib/material/MMDMaterial;)V": [ + 1, + null, + [] + ], + "addInformation(Lnet/minecraft/item/ItemStack;Lnet/minecraft/world/World;Ljava/util/List;Lnet/minecraft/client/util/ITooltipFlag;)V": [ + 1, + "(Lnet/minecraft/item/ItemStack;Lnet/minecraft/world/World;Ljava/util/List;Lnet/minecraft/client/util/ITooltipFlag;)V", + [] + ], + "getAttackDamage()F": [ + 1, + null, + [] + ], + "getIsRepairable(Lnet/minecraft/item/ItemStack;Lnet/minecraft/item/ItemStack;)Z": [ + 1, + null, + [] + ], + "getItemEnchantability()I": [ + 1, + null, + [] + ], + "getMMDMaterial()Lcom/mcmoddev/lib/material/MMDMaterial;": [ + 1, + null, + [] + ], + "hitEntity(Lnet/minecraft/item/ItemStack;Lnet/minecraft/entity/EntityLivingBase;Lnet/minecraft/entity/EntityLivingBase;)Z": [ + 1, + null, + [] + ], + "onBlockDestroyed(Lnet/minecraft/item/ItemStack;Lnet/minecraft/world/World;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/util/math/BlockPos;Lnet/minecraft/entity/EntityLivingBase;)Z": [ + 1, + null, + [] + ], + "onCreated(Lnet/minecraft/item/ItemStack;Lnet/minecraft/world/World;Lnet/minecraft/entity/player/EntityPlayer;)V": [ + 1, + null, + [] + ], + "onUpdate(Lnet/minecraft/item/ItemStack;Lnet/minecraft/world/World;Lnet/minecraft/entity/Entity;IZ)V": [ + 1, + null, + [] + ] + } + }, + "com/mcmoddev/lib/item/MMDContainerRepair": { + "access": 33, + "super": "net/minecraft/inventory/ContainerRepair", + "interfaces": [], + "fields": {}, + "methods": { + "(Lnet/minecraft/entity/player/InventoryPlayer;Lnet/minecraft/world/World;Lnet/minecraft/entity/player/EntityPlayer;)V": [ + 1, + null, + [] + ], + "(Lnet/minecraft/entity/player/InventoryPlayer;Lnet/minecraft/world/World;Lnet/minecraft/util/math/BlockPos;Lnet/minecraft/entity/player/EntityPlayer;)V": [ + 1, + null, + [] + ], + "canInteractWith(Lnet/minecraft/entity/player/EntityPlayer;)Z": [ + 1, + null, + [] + ] + } + }, + "com/mcmoddev/lib/item/MMDItemHelper": { + "access": 33, + "super": "java/lang/Object", + "interfaces": [], + "fields": {}, + "methods": { + "()V": [ + 4, + null, + [] + ], + "doRegeneration(Lnet/minecraft/item/ItemStack;Lnet/minecraft/world/World;ZZ)V": [ + 9, + null, + [] + ], + "isToolRepairable(Lnet/minecraft/item/ItemStack;Ljava/lang/String;)Z": [ + 9, + null, + [] + ] + } + }, + "com/mcmoddev/lib/item/MMDItemWithGui": { + "access": 33, + "super": "net/minecraft/item/Item", + "interfaces": [], + "fields": {}, + "methods": { + "()V": [ + 1, + null, + [] + ], + "onItemRightClick(Lnet/minecraft/world/World;Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/util/EnumHand;)Lnet/minecraft/util/ActionResult;": [ + 1, + "(Lnet/minecraft/world/World;Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/util/EnumHand;)Lnet/minecraft/util/ActionResult;", + [] + ], + "onItemUse(Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/world/World;Lnet/minecraft/util/math/BlockPos;Lnet/minecraft/util/EnumHand;Lnet/minecraft/util/EnumFacing;FFF)Lnet/minecraft/util/EnumActionResult;": [ + 1, + null, + [] + ] + } + }, + "com/mcmoddev/lib/item/package-info": { + "access": 5632, + "super": "java/lang/Object", + "interfaces": [], + "fields": {}, + "methods": {} + }, + "com/mcmoddev/lib/material/IFluidBlockGetter": { + "access": 1537, + "super": "java/lang/Object", + "interfaces": [ + "java/util/function/Function" + ], + "signature": "Ljava/lang/Object;Ljava/util/function/Function;", + "fields": {}, + "methods": { + "apply(Ljava/lang/Object;)Ljava/lang/Object;": [ + 4161, + null, + [] + ], + "apply(Ljava/lang/String;)Lnet/minecraftforge/fluids/BlockFluidClassic;": [ + 1025, + null, + [] + ] + } + }, + "com/mcmoddev/lib/material/IMMDBurnableObject": { + "access": 1537, + "super": "java/lang/Object", + "interfaces": [], + "fields": {}, + "methods": { + "getItemBurnTime(Lnet/minecraft/item/ItemStack;)I": [ + 1025, + null, + [] + ], + "setBurnTime(I)V": [ + 1025, + null, + [] + ] + } + }, + "com/mcmoddev/lib/material/IMMDObject": { + "access": 1537, + "super": "java/lang/Object", + "interfaces": [], + "fields": {}, + "methods": { + "getMMDMaterial()Lcom/mcmoddev/lib/material/MMDMaterial;": [ + 1025, + null, + [] + ] + } + }, + "com/mcmoddev/lib/material/MMDMaterial": { + "access": 33, + "super": "net/minecraftforge/registries/IForgeRegistryEntry$Impl", + "interfaces": [], + "signature": "Lnet/minecraftforge/registries/IForgeRegistryEntry$Impl;", + "fields": {}, + "methods": { + "(Ljava/lang/String;Lcom/mcmoddev/lib/material/MMDMaterialType;FFFIZZ)V": [ + 1, + null, + [] + ], + "(Ljava/lang/String;Lcom/mcmoddev/lib/material/MMDMaterialType;FFFIZZZ)V": [ + 1, + null, + [] + ], + "addNewBlock(Lcom/mcmoddev/lib/data/Names;Lnet/minecraft/block/Block;)Lcom/mcmoddev/lib/material/MMDMaterial;": [ + 1, + null, + [] + ], + "addNewBlock(Ljava/lang/String;Lnet/minecraft/block/Block;)Lcom/mcmoddev/lib/material/MMDMaterial;": [ + 1, + null, + [] + ], + "addNewBlockFromItemStack(Lcom/mcmoddev/lib/data/Names;Lnet/minecraft/item/ItemStack;)Lcom/mcmoddev/lib/material/MMDMaterial;": [ + 1, + null, + [] + ], + "addNewBlockFromItemStack(Ljava/lang/String;Lnet/minecraft/item/ItemStack;)Lcom/mcmoddev/lib/material/MMDMaterial;": [ + 1, + null, + [] + ], + "addNewItem(Lcom/mcmoddev/lib/data/Names;Lnet/minecraft/item/Item;)Lcom/mcmoddev/lib/material/MMDMaterial;": [ + 1, + null, + [] + ], + "addNewItem(Ljava/lang/String;Lnet/minecraft/item/Item;)Lcom/mcmoddev/lib/material/MMDMaterial;": [ + 1, + null, + [] + ], + "addNewItemFromItemStack(Lcom/mcmoddev/lib/data/Names;Lnet/minecraft/item/ItemStack;)Lcom/mcmoddev/lib/material/MMDMaterial;": [ + 1, + null, + [] + ], + "addNewItemFromItemStack(Ljava/lang/String;Lnet/minecraft/item/ItemStack;)Lcom/mcmoddev/lib/material/MMDMaterial;": [ + 1, + null, + [] + ], + "addTooltipFor(Lcom/mcmoddev/lib/data/Names;Ljava/util/List;)V": [ + 1, + "(Lcom/mcmoddev/lib/data/Names;Ljava/util/List;)V", + [] + ], + "applyEffect(Lnet/minecraft/item/ItemStack;Lnet/minecraft/entity/EntityLivingBase;)V": [ + 1, + null, + [] + ], + "applyEffect(Lnet/minecraft/item/ItemStack;Lnet/minecraft/entity/player/EntityPlayer;)V": [ + 1, + null, + [] + ], + "equals(Ljava/lang/Object;)Z": [ + 1, + null, + [] + ], + "getArmorMaxDamageFactor()I": [ + 1, + null, + [] + ], + "getBaseAttackDamage()F": [ + 1, + null, + [] + ], + "getBlastResistance()F": [ + 1, + null, + [] + ], + "getBlock(Lcom/mcmoddev/lib/data/NameToken;)Lnet/minecraft/block/Block;": [ + 1, + null, + [] + ], + "getBlock(Lcom/mcmoddev/lib/data/Names;)Lnet/minecraft/block/Block;": [ + 1, + null, + [] + ], + "getBlock(Ljava/lang/String;)Lnet/minecraft/block/Block;": [ + 1, + null, + [] + ], + "getBlockHardness()F": [ + 1, + null, + [] + ], + "getBlockItemStack(Lcom/mcmoddev/lib/data/NameToken;)Lnet/minecraft/item/ItemStack;": [ + 1, + null, + [] + ], + "getBlockItemStack(Lcom/mcmoddev/lib/data/NameToken;I)Lnet/minecraft/item/ItemStack;": [ + 1, + null, + [] + ], + "getBlockItemStack(Lcom/mcmoddev/lib/data/Names;)Lnet/minecraft/item/ItemStack;": [ + 1, + null, + [] + ], + "getBlockItemStack(Lcom/mcmoddev/lib/data/Names;I)Lnet/minecraft/item/ItemStack;": [ + 1, + null, + [] + ], + "getBlockItemStack(Ljava/lang/String;)Lnet/minecraft/item/ItemStack;": [ + 1, + null, + [] + ], + "getBlockItemStack(Ljava/lang/String;I)Lnet/minecraft/item/ItemStack;": [ + 1, + null, + [] + ], + "getBlockRegistry()Ljava/util/Map;": [ + 1, + "()Ljava/util/Map;", + [] + ], + "getBlocks()Lcom/google/common/collect/ImmutableList;": [ + 1, + "()Lcom/google/common/collect/ImmutableList;", + [] + ], + "getCapitalizedName()Ljava/lang/String;": [ + 1, + null, + [] + ], + "getCustomFluid()Lnet/minecraftforge/fluids/BlockFluidClassic;": [ + 1, + null, + [] + ], + "getDamageReductionArray()[I": [ + 1, + null, + [] + ], + "getDefaultDimension()I": [ + 1, + null, + [] + ], + "getEnchantability()I": [ + 1, + null, + [] + ], + "getEnumName()Ljava/lang/String;": [ + 1, + null, + [] + ], + "getFluid()Lnet/minecraftforge/fluids/Fluid;": [ + 1, + null, + [] + ], + "getFluidBlock()Lnet/minecraftforge/fluids/BlockFluidClassic;": [ + 1, + null, + [] + ], + "getHarvestTool()Ljava/lang/String;": [ + 1, + null, + [] + ], + "getHorseArmorProtection()I": [ + 1, + null, + [] + ], + "getItem(Lcom/mcmoddev/lib/data/NameToken;)Lnet/minecraft/item/Item;": [ + 1, + null, + [] + ], + "getItem(Lcom/mcmoddev/lib/data/Names;)Lnet/minecraft/item/Item;": [ + 1, + null, + [] + ], + "getItem(Ljava/lang/String;)Lnet/minecraft/item/Item;": [ + 1, + null, + [] + ], + "getItemRegistry()Ljava/util/Map;": [ + 1, + "()Ljava/util/Map;", + [] + ], + "getItemStack(Lcom/mcmoddev/lib/data/NameToken;)Lnet/minecraft/item/ItemStack;": [ + 1, + null, + [] + ], + "getItemStack(Lcom/mcmoddev/lib/data/NameToken;I)Lnet/minecraft/item/ItemStack;": [ + 1, + null, + [] + ], + "getItemStack(Lcom/mcmoddev/lib/data/Names;)Lnet/minecraft/item/ItemStack;": [ + 1, + null, + [] + ], + "getItemStack(Lcom/mcmoddev/lib/data/Names;I)Lnet/minecraft/item/ItemStack;": [ + 1, + null, + [] + ], + "getItemStack(Ljava/lang/String;)Lnet/minecraft/item/ItemStack;": [ + 1, + null, + [] + ], + "getItemStack(Ljava/lang/String;I)Lnet/minecraft/item/ItemStack;": [ + 1, + null, + [] + ], + "getItems()Lcom/google/common/collect/ImmutableList;": [ + 1, + "()Lcom/google/common/collect/ImmutableList;", + [] + ], + "getName()Ljava/lang/String;": [ + 1, + null, + [] + ], + "getOreBlockHardness()F": [ + 1, + null, + [] + ], + "getOreSmeltXP()F": [ + 17, + null, + [] + ], + "getRequiredHarvestLevel()I": [ + 1, + null, + [] + ], + "getSoundType()Lnet/minecraft/block/SoundType;": [ + 17, + null, + [] + ], + "getSpawnSize()I": [ + 1, + null, + [] + ], + "getStat(Lcom/mcmoddev/lib/data/MaterialStats;)F": [ + 1, + null, + [] + ], + "getTintColor()I": [ + 1, + null, + [] + ], + "getToolDurability()I": [ + 1, + null, + [] + ], + "getToolEfficiency()F": [ + 1, + null, + [] + ], + "getToolHarvestLevel()I": [ + 1, + null, + [] + ], + "getTooltipFor(Lcom/mcmoddev/lib/data/Names;)Ljava/util/List;": [ + 1, + "(Lcom/mcmoddev/lib/data/Names;)Ljava/util/List;", + [] + ], + "getType()Lcom/mcmoddev/lib/material/MMDMaterialType$MaterialType;": [ + 1, + null, + [] + ], + "getVanillaMaterial()Lnet/minecraft/block/material/Material;": [ + 17, + null, + [] + ], + "hasBlend()Z": [ + 1, + null, + [] + ], + "hasBlock(Lcom/mcmoddev/lib/data/Names;)Z": [ + 1, + null, + [] + ], + "hasBlock(Ljava/lang/String;)Z": [ + 1, + null, + [] + ], + "hasCustomFluid()Z": [ + 1, + null, + [] + ], + "hasEffect(Lnet/minecraft/item/ItemStack;Lnet/minecraft/entity/EntityLivingBase;)Z": [ + 1, + null, + [] + ], + "hasEffect(Lnet/minecraft/item/ItemStack;Lnet/minecraft/entity/player/EntityPlayer;)Z": [ + 1, + null, + [] + ], + "hasItem(Lcom/mcmoddev/lib/data/Names;)Z": [ + 1, + null, + [] + ], + "hasItem(Ljava/lang/String;)Z": [ + 1, + null, + [] + ], + "hasOre()Z": [ + 1, + null, + [] + ], + "hashCode()I": [ + 1, + null, + [] + ], + "isAlloy()Z": [ + 1, + null, + [] + ], + "isBeaconBase()Z": [ + 1, + null, + [] + ], + "isDefault()Z": [ + 1, + null, + [] + ], + "isEmpty()Z": [ + 1, + null, + [] + ], + "isOreless()Z": [ + 1, + null, + [] + ], + "isRare()Z": [ + 1, + null, + [] + ], + "isSpecial()Z": [ + 1, + null, + [] + ], + "isVanilla()Z": [ + 1, + null, + [] + ], + "regenerates()Z": [ + 1, + null, + [] + ], + "setBaseDamage(F)Lcom/mcmoddev/lib/material/MMDMaterial;": [ + 1, + null, + [] + ], + "setBlastResistance(F)Lcom/mcmoddev/lib/material/MMDMaterial;": [ + 1, + null, + [] + ], + "setDefaultDimension(I)Lcom/mcmoddev/lib/material/MMDMaterial;": [ + 1, + null, + [] + ], + "setFluid(Lnet/minecraftforge/fluids/Fluid;)V": [ + 1, + null, + [] + ], + "setFluidBlock(Lnet/minecraftforge/fluids/BlockFluidClassic;)V": [ + 1, + null, + [] + ], + "setFluidBlockGetter(Lcom/mcmoddev/lib/material/IFluidBlockGetter;)V": [ + 1, + null, + [] + ], + "setRegenerates(Z)V": [ + 1, + null, + [] + ], + "setSpawnSize(I)Lcom/mcmoddev/lib/material/MMDMaterial;": [ + 1, + null, + [] + ], + "setStat(Lcom/mcmoddev/lib/data/MaterialStats;F)V": [ + 1, + null, + [] + ], + "toString()Ljava/lang/String;": [ + 1, + null, + [] + ] + } + }, + "com/mcmoddev/lib/material/MMDMaterial$1": { + "access": 32, + "super": "java/lang/Object", + "interfaces": [ + "com/mcmoddev/lib/material/IFluidBlockGetter" + ], + "fields": {}, + "methods": { + "apply(Ljava/lang/Object;)Ljava/lang/Object;": [ + 4161, + null, + [] + ], + "apply(Ljava/lang/String;)Lnet/minecraftforge/fluids/BlockFluidClassic;": [ + 1, + null, + [] + ] + } + }, + "com/mcmoddev/lib/material/MMDMaterial$2": { + "access": 4128, + "super": "java/lang/Object", + "interfaces": [], + "fields": {}, + "methods": {} + }, + "com/mcmoddev/lib/material/MMDMaterialType": { + "access": 33, + "super": "java/lang/Object", + "interfaces": [], + "fields": {}, + "methods": { + "(Ljava/lang/String;Lcom/mcmoddev/lib/material/MMDMaterialType$MaterialType;[Lcom/mcmoddev/lib/material/MMDMaterialType$VariantType;)V": [ + 129, + null, + [] + ], + "getFullName()Ljava/lang/String;": [ + 1, + null, + [] + ], + "getFullVariantName()Ljava/lang/String;": [ + 1, + null, + [] + ], + "getMaterialType()Lcom/mcmoddev/lib/material/MMDMaterialType$MaterialType;": [ + 1, + null, + [] + ], + "getVanillaType()Lnet/minecraft/block/material/Material;": [ + 1, + null, + [] + ], + "getVariantName()Ljava/lang/String;": [ + 1, + null, + [] + ], + "hasAlloy()Z": [ + 1, + null, + [] + ], + "hasOreless()Z": [ + 1, + null, + [] + ], + "hasRare()Z": [ + 1, + null, + [] + ], + "hasSpecial()Z": [ + 1, + null, + [] + ], + "hasVanilla()Z": [ + 1, + null, + [] + ] + } + }, + "com/mcmoddev/lib/material/MMDMaterialType$1": { + "access": 4128, + "super": "java/lang/Object", + "interfaces": [], + "fields": {}, + "methods": {} + }, + "com/mcmoddev/lib/material/MMDMaterialType$MaterialType": { + "access": 16433, + "super": "java/lang/Enum", + "interfaces": [], + "signature": "Ljava/lang/Enum;", + "fields": { + "CRYSTAL:Lcom/mcmoddev/lib/material/MMDMaterialType$MaterialType;": [ + 16409, + null, + null + ], + "GEM:Lcom/mcmoddev/lib/material/MMDMaterialType$MaterialType;": [ + 16409, + null, + null + ], + "METAL:Lcom/mcmoddev/lib/material/MMDMaterialType$MaterialType;": [ + 16409, + null, + null + ], + "MINERAL:Lcom/mcmoddev/lib/material/MMDMaterialType$MaterialType;": [ + 16409, + null, + null + ], + "ROCK:Lcom/mcmoddev/lib/material/MMDMaterialType$MaterialType;": [ + 16409, + null, + null + ], + "WOOD:Lcom/mcmoddev/lib/material/MMDMaterialType$MaterialType;": [ + 16409, + null, + null + ] + }, + "methods": { + "valueOf(Ljava/lang/String;)Lcom/mcmoddev/lib/material/MMDMaterialType$MaterialType;": [ + 9, + null, + [] + ], + "values()[Lcom/mcmoddev/lib/material/MMDMaterialType$MaterialType;": [ + 9, + null, + [] + ] + } + }, + "com/mcmoddev/lib/material/MMDMaterialType$VariantType": { + "access": 16433, + "super": "java/lang/Enum", + "interfaces": [], + "signature": "Ljava/lang/Enum;", + "fields": { + "ALLOY:Lcom/mcmoddev/lib/material/MMDMaterialType$VariantType;": [ + 16409, + null, + null + ], + "NORMAL:Lcom/mcmoddev/lib/material/MMDMaterialType$VariantType;": [ + 16409, + null, + null + ], + "ORELESS:Lcom/mcmoddev/lib/material/MMDMaterialType$VariantType;": [ + 16409, + null, + null + ], + "RARE:Lcom/mcmoddev/lib/material/MMDMaterialType$VariantType;": [ + 16409, + null, + null + ], + "SPECIAL:Lcom/mcmoddev/lib/material/MMDMaterialType$VariantType;": [ + 16409, + null, + null + ], + "VANILLA:Lcom/mcmoddev/lib/material/MMDMaterialType$VariantType;": [ + 16409, + null, + null + ] + }, + "methods": { + "toCapString()Ljava/lang/String;": [ + 1, + null, + [] + ], + "toString()Ljava/lang/String;": [ + 1, + null, + [] + ], + "value()I": [ + 1, + null, + [] + ], + "valueOf(Ljava/lang/String;)Lcom/mcmoddev/lib/material/MMDMaterialType$VariantType;": [ + 9, + null, + [] + ], + "values()[Lcom/mcmoddev/lib/material/MMDMaterialType$VariantType;": [ + 9, + null, + [] + ] + } + }, + "com/mcmoddev/lib/material/package-info": { + "access": 5632, + "super": "java/lang/Object", + "interfaces": [], + "fields": {}, + "methods": {} + }, + "com/mcmoddev/lib/network/INBTMessageReceiver": { + "access": 1537, + "super": "java/lang/Object", + "interfaces": [], + "fields": {}, + "methods": { + "receiveFromClient(Lnet/minecraft/entity/player/EntityPlayerMP;Lnet/minecraft/nbt/NBTTagCompound;)V": [ + 1025, + null, + [] + ], + "receiveFromServer(Lnet/minecraft/nbt/NBTTagCompound;)V": [ + 1025, + null, + [] + ] + } + }, + "com/mcmoddev/lib/network/MMDMessages": { + "access": 49, + "super": "java/lang/Object", + "interfaces": [], + "fields": {}, + "methods": { + "client_init()V": [ + 9, + null, + [] + ], + "sendToPlayer(Lnet/minecraft/entity/player/EntityPlayerMP;Lnet/minecraftforge/fml/common/network/simpleimpl/IMessage;)V": [ + 9, + null, + [] + ], + "sendToServer(Lnet/minecraftforge/fml/common/network/simpleimpl/IMessage;)V": [ + 9, + null, + [] + ], + "server_init()V": [ + 9, + null, + [] + ] + } + }, + "com/mcmoddev/lib/network/NBTBasedMessage": { + "access": 1057, + "super": "java/lang/Object", + "interfaces": [ + "net/minecraftforge/fml/common/network/simpleimpl/IMessage" + ], + "fields": {}, + "methods": { + "()V": [ + 4, + null, + [] + ], + "(Lnet/minecraft/nbt/NBTTagCompound;)V": [ + 4, + null, + [] + ], + "fromBytes(Lio/netty/buffer/ByteBuf;)V": [ + 1, + null, + [] + ], + "getCompound()Lnet/minecraft/nbt/NBTTagCompound;": [ + 1, + null, + [] + ], + "toBytes(Lio/netty/buffer/ByteBuf;)V": [ + 1, + null, + [] + ] + } + }, + "com/mcmoddev/lib/network/NBTBasedPlayerHandler": { + "access": 33, + "super": "java/lang/Object", + "interfaces": [ + "net/minecraftforge/fml/common/network/simpleimpl/IMessageHandler" + ], + "signature": "Ljava/lang/Object;Lnet/minecraftforge/fml/common/network/simpleimpl/IMessageHandler;", + "fields": { + "INSTANCE:Lcom/mcmoddev/lib/network/NBTBasedPlayerHandler;": [ + 25, + null, + null + ] + }, + "methods": { + "onMessage(Lcom/mcmoddev/lib/network/NBTBasedPlayerMessage;Lnet/minecraftforge/fml/common/network/simpleimpl/MessageContext;)Lnet/minecraftforge/fml/common/network/simpleimpl/IMessage;": [ + 1, + null, + [] + ], + "onMessage(Lnet/minecraftforge/fml/common/network/simpleimpl/IMessage;Lnet/minecraftforge/fml/common/network/simpleimpl/MessageContext;)Lnet/minecraftforge/fml/common/network/simpleimpl/IMessage;": [ + 4161, + null, + [] + ] + } + }, + "com/mcmoddev/lib/network/NBTBasedPlayerMessage": { + "access": 33, + "super": "com/mcmoddev/lib/network/NBTBasedMessage", + "interfaces": [], + "fields": {}, + "methods": { + "()V": [ + 1, + null, + [] + ], + "(Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/nbt/NBTTagCompound;)V": [ + 1, + null, + [] + ], + "fromBytes(Lio/netty/buffer/ByteBuf;)V": [ + 1, + null, + [] + ], + "getPlayerId()Ljava/lang/String;": [ + 1, + null, + [] + ], + "sendToServer(Lnet/minecraft/client/entity/EntityPlayerSP;Lnet/minecraft/nbt/NBTTagCompound;)V": [ + 9, + null, + [] + ], + "toBytes(Lio/netty/buffer/ByteBuf;)V": [ + 1, + null, + [] + ] + } + }, + "com/mcmoddev/lib/network/NBTBasedTileHandlerClient": { + "access": 33, + "super": "java/lang/Object", + "interfaces": [ + "net/minecraftforge/fml/common/network/simpleimpl/IMessageHandler" + ], + "signature": "Ljava/lang/Object;Lnet/minecraftforge/fml/common/network/simpleimpl/IMessageHandler;", + "fields": { + "INSTANCE:Lcom/mcmoddev/lib/network/NBTBasedTileHandlerClient;": [ + 25, + null, + null + ] + }, + "methods": { + "()V": [ + 1, + null, + [] + ], + "onMessage(Lcom/mcmoddev/lib/network/NBTBasedTileMessage;Lnet/minecraftforge/fml/common/network/simpleimpl/MessageContext;)Lnet/minecraftforge/fml/common/network/simpleimpl/IMessage;": [ + 1, + null, + [] + ], + "onMessage(Lnet/minecraftforge/fml/common/network/simpleimpl/IMessage;Lnet/minecraftforge/fml/common/network/simpleimpl/MessageContext;)Lnet/minecraftforge/fml/common/network/simpleimpl/IMessage;": [ + 4161, + null, + [] + ] + } + }, + "com/mcmoddev/lib/network/NBTBasedTileHandlerServer": { + "access": 33, + "super": "java/lang/Object", + "interfaces": [ + "net/minecraftforge/fml/common/network/simpleimpl/IMessageHandler" + ], + "signature": "Ljava/lang/Object;Lnet/minecraftforge/fml/common/network/simpleimpl/IMessageHandler;", + "fields": { + "INSTANCE:Lcom/mcmoddev/lib/network/NBTBasedTileHandlerServer;": [ + 25, + null, + null + ] + }, + "methods": { + "onMessage(Lcom/mcmoddev/lib/network/NBTBasedTileMessage;Lnet/minecraftforge/fml/common/network/simpleimpl/MessageContext;)Lnet/minecraftforge/fml/common/network/simpleimpl/IMessage;": [ + 1, + null, + [] + ], + "onMessage(Lnet/minecraftforge/fml/common/network/simpleimpl/IMessage;Lnet/minecraftforge/fml/common/network/simpleimpl/MessageContext;)Lnet/minecraftforge/fml/common/network/simpleimpl/IMessage;": [ + 4161, + null, + [] + ] + } + }, + "com/mcmoddev/lib/network/NBTBasedTileMessage": { + "access": 33, + "super": "com/mcmoddev/lib/network/NBTBasedMessage", + "interfaces": [], + "fields": {}, + "methods": { + "()V": [ + 1, + null, + [] + ], + "(IIIILnet/minecraft/nbt/NBTTagCompound;)V": [ + 1, + null, + [] + ], + "(Lnet/minecraft/tileentity/TileEntity;Lnet/minecraft/nbt/NBTTagCompound;)V": [ + 1, + null, + [] + ], + "fromBytes(Lio/netty/buffer/ByteBuf;)V": [ + 1, + null, + [] + ], + "getDimensionId()I": [ + 1, + null, + [] + ], + "getPosX()I": [ + 1, + null, + [] + ], + "getPosY()I": [ + 1, + null, + [] + ], + "getPosZ()I": [ + 1, + null, + [] + ], + "toBytes(Lio/netty/buffer/ByteBuf;)V": [ + 1, + null, + [] + ] + } + }, + "com/mcmoddev/lib/network/package-info": { + "access": 5632, + "super": "java/lang/Object", + "interfaces": [], + "fields": {}, + "methods": {} + }, + "com/mcmoddev/lib/oregen/FallbackGenerator": { + "access": 33, + "super": "java/lang/Object", + "interfaces": [ + "net/minecraftforge/fml/common/IWorldGenerator" + ], + "fields": {}, + "methods": { + "()V": [ + 1, + null, + [] + ], + "generate(Ljava/util/Random;IILnet/minecraft/world/World;Lnet/minecraft/world/gen/IChunkGenerator;Lnet/minecraft/world/chunk/IChunkProvider;)V": [ + 1, + null, + [] + ] + } + }, + "com/mcmoddev/lib/oregen/FallbackGeneratorData": { + "access": 33, + "super": "java/lang/Object", + "interfaces": [], + "fields": {}, + "methods": { + "addMaterial(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Integer;)V": [ + 1, + null, + [] + ], + "getInstance()Lcom/mcmoddev/lib/oregen/FallbackGeneratorData;": [ + 9, + null, + [] + ], + "getSpawnsForDimension(I)Ljava/util/List;": [ + 1, + "(I)Ljava/util/List;", + [] + ], + "setup()V": [ + 1, + null, + [] + ] + } + }, + "com/mcmoddev/lib/oregen/FallbackGeneratorData$1": { + "access": 4128, + "super": "java/lang/Object", + "interfaces": [], + "fields": {}, + "methods": {} + }, + "com/mcmoddev/lib/oregen/FallbackGeneratorData$EndPredicate": { + "access": 48, + "super": "java/lang/Object", + "interfaces": [ + "com/google/common/base/Predicate" + ], + "signature": "Ljava/lang/Object;Lcom/google/common/base/Predicate;", + "fields": {}, + "methods": { + "apply(Ljava/lang/Object;)Z": [ + 4161, + null, + [] + ], + "apply(Lnet/minecraft/block/state/IBlockState;)Z": [ + 1, + null, + [] + ] + } + }, + "com/mcmoddev/lib/oregen/FallbackGeneratorData$NetherPredicate": { + "access": 48, + "super": "java/lang/Object", + "interfaces": [ + "com/google/common/base/Predicate" + ], + "signature": "Ljava/lang/Object;Lcom/google/common/base/Predicate;", + "fields": {}, + "methods": { + "apply(Ljava/lang/Object;)Z": [ + 4161, + null, + [] + ], + "apply(Lnet/minecraft/block/state/IBlockState;)Z": [ + 1, + null, + [] + ] + } + }, + "com/mcmoddev/lib/oregen/FallbackGeneratorData$StonePredicate": { + "access": 48, + "super": "java/lang/Object", + "interfaces": [ + "com/google/common/base/Predicate" + ], + "signature": "Ljava/lang/Object;Lcom/google/common/base/Predicate;", + "fields": {}, + "methods": { + "apply(Ljava/lang/Object;)Z": [ + 4161, + null, + [] + ], + "apply(Lnet/minecraft/block/state/IBlockState;)Z": [ + 1, + null, + [] + ] + } + }, + "com/mcmoddev/lib/oregen/package-info": { + "access": 5632, + "super": "java/lang/Object", + "interfaces": [], + "fields": {}, + "methods": {} + }, + "com/mcmoddev/lib/properties/IMMDMaterialProperty": { + "access": 1537, + "super": "java/lang/Object", + "interfaces": [], + "fields": {}, + "methods": { + "apply(Lnet/minecraft/block/Block;)V": [ + 1, + null, + [] + ], + "apply(Lnet/minecraft/block/Block;Lnet/minecraft/entity/EntityLivingBase;)V": [ + 1, + null, + [] + ], + "apply(Lnet/minecraft/block/Block;Lnet/minecraft/entity/player/EntityPlayer;)V": [ + 1, + null, + [] + ], + "apply(Lnet/minecraft/item/Item;)V": [ + 1, + null, + [] + ], + "apply(Lnet/minecraft/item/Item;Lnet/minecraft/entity/EntityLivingBase;)V": [ + 1, + null, + [] + ], + "apply(Lnet/minecraft/item/Item;Lnet/minecraft/entity/player/EntityPlayer;)V": [ + 1, + null, + [] + ], + "apply(Lnet/minecraft/item/ItemStack;)V": [ + 1025, + null, + [] + ], + "apply(Lnet/minecraft/item/ItemStack;Lnet/minecraft/entity/EntityLivingBase;)V": [ + 1025, + null, + [] + ], + "apply(Lnet/minecraft/item/ItemStack;Lnet/minecraft/entity/player/EntityPlayer;)V": [ + 1025, + null, + [] + ], + "hasEffect(Lnet/minecraft/block/Block;)Z": [ + 1, + null, + [] + ], + "hasEffect(Lnet/minecraft/block/Block;Lnet/minecraft/entity/EntityLivingBase;)Z": [ + 1, + null, + [] + ], + "hasEffect(Lnet/minecraft/block/Block;Lnet/minecraft/entity/player/EntityPlayer;)Z": [ + 1, + null, + [] + ], + "hasEffect(Lnet/minecraft/item/Item;)Z": [ + 1, + null, + [] + ], + "hasEffect(Lnet/minecraft/item/Item;Lnet/minecraft/entity/EntityLivingBase;)Z": [ + 1, + null, + [] + ], + "hasEffect(Lnet/minecraft/item/Item;Lnet/minecraft/entity/player/EntityPlayer;)Z": [ + 1, + null, + [] + ], + "hasEffect(Lnet/minecraft/item/ItemStack;)Z": [ + 1025, + null, + [] + ], + "hasEffect(Lnet/minecraft/item/ItemStack;Lnet/minecraft/entity/EntityLivingBase;)Z": [ + 1025, + null, + [] + ], + "hasEffect(Lnet/minecraft/item/ItemStack;Lnet/minecraft/entity/player/EntityPlayer;)Z": [ + 1025, + null, + [] + ] + } + }, + "com/mcmoddev/lib/properties/MMDMaterialPropertyBase": { + "access": 1057, + "super": "net/minecraftforge/registries/IForgeRegistryEntry$Impl", + "interfaces": [ + "com/mcmoddev/lib/properties/IMMDMaterialProperty" + ], + "signature": "Lnet/minecraftforge/registries/IForgeRegistryEntry$Impl;Lcom/mcmoddev/lib/properties/IMMDMaterialProperty;", + "fields": {}, + "methods": { + "()V": [ + 1, + null, + [] + ], + "hasEffect(Lnet/minecraft/item/ItemStack;)Z": [ + 1, + null, + [] + ], + "hasEffect(Lnet/minecraft/item/ItemStack;Lnet/minecraft/entity/EntityLivingBase;)Z": [ + 1, + null, + [] + ], + "hasEffect(Lnet/minecraft/item/ItemStack;Lnet/minecraft/entity/player/EntityPlayer;)Z": [ + 1, + null, + [] + ] + } + }, + "com/mcmoddev/lib/properties/MaterialProperties": { + "access": 33, + "super": "java/lang/Object", + "interfaces": [], + "fields": {}, + "methods": { + "()V": [ + 1, + null, + [] + ], + "get()Lnet/minecraftforge/registries/IForgeRegistry;": [ + 9, + "()Lnet/minecraftforge/registries/IForgeRegistry;", + [] + ] + } + }, + "com/mcmoddev/lib/proxy/ClientProxy": { + "access": 33, + "super": "com/mcmoddev/lib/proxy/CommonProxy", + "interfaces": [], + "fields": {}, + "methods": { + "()V": [ + 1, + null, + [] + ], + "init(Lnet/minecraftforge/fml/common/event/FMLInitializationEvent;)V": [ + 1, + null, + [] + ], + "preInit(Lnet/minecraftforge/fml/common/event/FMLPreInitializationEvent;)V": [ + 1, + null, + [] + ], + "registerModels(Lnet/minecraftforge/client/event/ModelRegistryEvent;)V": [ + 9, + null, + [] + ], + "registerRender(Lnet/minecraft/item/Item;Ljava/lang/String;)V": [ + 1, + null, + [] + ] + } + }, + "com/mcmoddev/lib/proxy/CommonProxy": { + "access": 33, + "super": "java/lang/Object", + "interfaces": [], + "fields": {}, + "methods": { + "()V": [ + 1, + null, + [] + ], + "init(Lnet/minecraftforge/fml/common/event/FMLInitializationEvent;)V": [ + 1, + null, + [] + ], + "postInit(Lnet/minecraftforge/fml/common/event/FMLPostInitializationEvent;)V": [ + 1, + null, + [] + ], + "preInit(Lnet/minecraftforge/fml/common/event/FMLPreInitializationEvent;)V": [ + 1, + null, + [] + ] + } + }, + "com/mcmoddev/lib/proxy/ServerProxy": { + "access": 33, + "super": "com/mcmoddev/lib/proxy/CommonProxy", + "interfaces": [], + "fields": {}, + "methods": { + "()V": [ + 1, + null, + [] + ], + "preInit(Lnet/minecraftforge/fml/common/event/FMLPreInitializationEvent;)V": [ + 1, + null, + [] + ] + } + }, + "com/mcmoddev/lib/recipe/BootsRepairRecipe": { + "access": 33, + "super": "com/mcmoddev/lib/recipe/RepairRecipeBase", + "interfaces": [], + "fields": {}, + "methods": { + "(Lcom/mcmoddev/lib/material/MMDMaterial;)V": [ + 1, + null, + [] + ] + } + }, + "com/mcmoddev/lib/recipe/ChestplateRepairRecipe": { + "access": 33, + "super": "com/mcmoddev/lib/recipe/RepairRecipeBase", + "interfaces": [], + "fields": {}, + "methods": { + "(Lcom/mcmoddev/lib/material/MMDMaterial;)V": [ + 1, + null, + [] + ] + } + }, + "com/mcmoddev/lib/recipe/HelmetRepairRecipe": { + "access": 33, + "super": "com/mcmoddev/lib/recipe/RepairRecipeBase", + "interfaces": [], + "fields": {}, + "methods": { + "(Lcom/mcmoddev/lib/material/MMDMaterial;)V": [ + 1, + null, + [] + ] + } + }, + "com/mcmoddev/lib/recipe/LeggingsRepairRecipe": { + "access": 33, + "super": "com/mcmoddev/lib/recipe/RepairRecipeBase", + "interfaces": [], + "fields": {}, + "methods": { + "(Lcom/mcmoddev/lib/material/MMDMaterial;)V": [ + 1, + null, + [] + ] + } + }, + "com/mcmoddev/lib/recipe/RepairRecipeBase": { + "access": 1057, + "super": "net/minecraftforge/oredict/ShapelessOreRecipe", + "interfaces": [], + "fields": {}, + "methods": { + "(Lcom/mcmoddev/lib/material/MMDMaterial;Lcom/mcmoddev/lib/data/Names;)V": [ + 1, + null, + [] + ], + "(Lcom/mcmoddev/lib/material/MMDMaterial;Lcom/mcmoddev/lib/data/Names;[Ljava/lang/Object;)V": [ + 129, + null, + [] + ], + "(Lcom/mcmoddev/lib/material/MMDMaterial;Ljava/lang/String;[Ljava/lang/Object;)V": [ + 129, + null, + [] + ], + "getCraftingResult(Lnet/minecraft/inventory/InventoryCrafting;)Lnet/minecraft/item/ItemStack;": [ + 1, + null, + [] + ], + "getInput()Lnet/minecraft/util/NonNullList;": [ + 1, + "()Lnet/minecraft/util/NonNullList;", + [] + ], + "getRecipeOutput()Lnet/minecraft/item/ItemStack;": [ + 1, + null, + [] + ], + "getRecipeSize()I": [ + 1, + null, + [] + ], + "matches(Lnet/minecraft/inventory/InventoryCrafting;Lnet/minecraft/world/World;)Z": [ + 1, + null, + [] + ] + } + }, + "com/mcmoddev/lib/recipe/ShieldRepairRecipe": { + "access": 33, + "super": "com/mcmoddev/lib/recipe/RepairRecipeBase", + "interfaces": [], + "fields": {}, + "methods": { + "(Lcom/mcmoddev/lib/material/MMDMaterial;)V": [ + 1, + null, + [] + ] + } + }, + "com/mcmoddev/lib/recipe/ShieldUpgradeRecipe": { + "access": 33, + "super": "net/minecraft/item/crafting/RecipeRepairItem", + "interfaces": [], + "fields": {}, + "methods": { + "(Lcom/mcmoddev/lib/material/MMDMaterial;)V": [ + 1, + null, + [] + ], + "getCost(Lnet/minecraft/inventory/InventoryCrafting;)I": [ + 1, + null, + [] + ], + "getCraftingResult(Lnet/minecraft/inventory/InventoryCrafting;)Lnet/minecraft/item/ItemStack;": [ + 1, + null, + [] + ], + "matches(Lnet/minecraft/inventory/InventoryCrafting;Lnet/minecraft/world/World;)Z": [ + 1, + null, + [] + ] + } + }, + "com/mcmoddev/lib/recipe/ToolReturnRecipe": { + "access": 33, + "super": "net/minecraftforge/oredict/ShapelessOreRecipe", + "interfaces": [], + "fields": {}, + "methods": { + "(Lnet/minecraft/util/ResourceLocation;Lnet/minecraft/item/ItemStack;Lnet/minecraft/item/ItemStack;[Lnet/minecraft/item/ItemStack;)V": [ + 129, + null, + [] + ], + "getRemainingItems(Lnet/minecraft/inventory/InventoryCrafting;)Lnet/minecraft/util/NonNullList;": [ + 1, + "(Lnet/minecraft/inventory/InventoryCrafting;)Lnet/minecraft/util/NonNullList;", + [] + ], + "matches(Lnet/minecraft/inventory/InventoryCrafting;Lnet/minecraft/world/World;)Z": [ + 1, + null, + [] + ] + } + }, + "com/mcmoddev/lib/recipe/conditions/ConditionEnabled": { + "access": 33, + "super": "java/lang/Object", + "interfaces": [ + "net/minecraftforge/common/crafting/IConditionFactory" + ], + "fields": {}, + "methods": { + "()V": [ + 1, + null, + [] + ], + "parse(Lnet/minecraftforge/common/crafting/JsonContext;Lcom/google/gson/JsonObject;)Ljava/util/function/BooleanSupplier;": [ + 1, + null, + [] + ] + } + }, + "com/mcmoddev/lib/recipe/conditions/HammerEnabled": { + "access": 33, + "super": "java/lang/Object", + "interfaces": [ + "net/minecraftforge/common/crafting/IConditionFactory" + ], + "fields": {}, + "methods": { + "()V": [ + 1, + null, + [] + ], + "parse(Lnet/minecraftforge/common/crafting/JsonContext;Lcom/google/gson/JsonObject;)Ljava/util/function/BooleanSupplier;": [ + 1, + null, + [] + ] + } + }, + "com/mcmoddev/lib/recipe/conditions/PlateRepairEnabled": { + "access": 33, + "super": "java/lang/Object", + "interfaces": [ + "net/minecraftforge/common/crafting/IConditionFactory" + ], + "fields": {}, + "methods": { + "()V": [ + 1, + null, + [] + ], + "parse(Lnet/minecraftforge/common/crafting/JsonContext;Lcom/google/gson/JsonObject;)Ljava/util/function/BooleanSupplier;": [ + 1, + null, + [] + ] + } + }, + "com/mcmoddev/lib/recipe/conditions/package-info": { + "access": 5632, + "super": "java/lang/Object", + "interfaces": [], + "fields": {}, + "methods": {} + }, + "com/mcmoddev/lib/recipe/factories/ArmorRepair": { + "access": 33, + "super": "java/lang/Object", + "interfaces": [ + "net/minecraftforge/common/crafting/IRecipeFactory" + ], + "fields": {}, + "methods": { + "()V": [ + 1, + null, + [] + ], + "parse(Lnet/minecraftforge/common/crafting/JsonContext;Lcom/google/gson/JsonObject;)Lnet/minecraft/item/crafting/IRecipe;": [ + 1, + null, + [] + ] + } + }, + "com/mcmoddev/lib/recipe/factories/ConfigVariedOutput": { + "access": 33, + "super": "java/lang/Object", + "interfaces": [ + "net/minecraftforge/common/crafting/IRecipeFactory" + ], + "fields": {}, + "methods": { + "()V": [ + 1, + null, + [] + ], + "parse(Lnet/minecraftforge/common/crafting/JsonContext;Lcom/google/gson/JsonObject;)Lnet/minecraft/item/crafting/IRecipe;": [ + 1, + null, + [] + ] + } + }, + "com/mcmoddev/lib/recipe/factories/package-info": { + "access": 5632, + "super": "java/lang/Object", + "interfaces": [], + "fields": {}, + "methods": {} + }, + "com/mcmoddev/lib/recipe/package-info": { + "access": 5632, + "super": "java/lang/Object", + "interfaces": [], + "fields": {}, + "methods": {} + }, + "com/mcmoddev/lib/registry/CrusherRecipeRegistry": { + "access": 33, + "super": "java/lang/Object", + "interfaces": [], + "fields": {}, + "methods": { + "addNewCrusherRecipe(Ljava/lang/String;Lnet/minecraft/item/ItemStack;)V": [ + 9, + null, + [] + ], + "addNewCrusherRecipe(Lnet/minecraft/block/Block;Lnet/minecraft/item/ItemStack;)V": [ + 9, + null, + [] + ], + "addNewCrusherRecipe(Lnet/minecraft/item/Item;Lnet/minecraft/item/ItemStack;)V": [ + 9, + null, + [] + ], + "addNewCrusherRecipe(Lnet/minecraft/item/ItemStack;Lnet/minecraft/item/ItemStack;)V": [ + 9, + null, + [] + ], + "clearCache()V": [ + 1, + null, + [] + ], + "disableRecipe(Ljava/lang/String;)V": [ + 9, + null, + [] + ], + "getAll()Ljava/util/List;": [ + 9, + "()Ljava/util/List;", + [] + ], + "getInstance()Lcom/mcmoddev/lib/registry/CrusherRecipeRegistry;": [ + 9, + null, + [] + ], + "getNameForInputItem(Lnet/minecraft/item/ItemStack;)Lnet/minecraft/util/ResourceLocation;": [ + 9, + null, + [] + ], + "getRecipeForInputItem(Lnet/minecraft/item/ItemStack;)Lcom/mcmoddev/lib/registry/recipe/ICrusherRecipe;": [ + 9, + null, + [] + ], + "getRegistry()Lnet/minecraftforge/registries/IForgeRegistryModifiable;": [ + 1, + "()Lnet/minecraftforge/registries/IForgeRegistryModifiable;", + [] + ], + "register(Lcom/mcmoddev/lib/registry/recipe/ICrusherRecipe;)V": [ + 1, + null, + [] + ], + "remove(Lnet/minecraft/util/ResourceLocation;)V": [ + 1, + null, + [] + ], + "removeByInput(Ljava/lang/String;)V": [ + 9, + null, + [] + ], + "removeByInput(Lnet/minecraft/block/Block;)V": [ + 9, + null, + [] + ], + "removeByInput(Lnet/minecraft/item/Item;)V": [ + 9, + null, + [] + ], + "removeByInput(Lnet/minecraft/item/ItemStack;)V": [ + 9, + null, + [] + ], + "removeByName(Lnet/minecraft/util/ResourceLocation;)V": [ + 9, + null, + [] + ] + } + }, + "com/mcmoddev/lib/registry/IOreDictionaryEntry": { + "access": 1537, + "super": "java/lang/Object", + "interfaces": [], + "fields": {}, + "methods": { + "getOreDictionaryName()Ljava/lang/String;": [ + 1025, + null, + [] + ] + } + }, + "com/mcmoddev/lib/registry/recipe/ArbitraryCrusherRecipe": { + "access": 33, + "super": "net/minecraftforge/registries/IForgeRegistryEntry$Impl", + "interfaces": [ + "com/mcmoddev/lib/registry/recipe/ICrusherRecipe" + ], + "signature": "Lnet/minecraftforge/registries/IForgeRegistryEntry$Impl;Lcom/mcmoddev/lib/registry/recipe/ICrusherRecipe;", + "fields": {}, + "methods": { + "(Lnet/minecraft/block/Block;Lnet/minecraft/item/ItemStack;)V": [ + 1, + null, + [] + ], + "(Lnet/minecraft/item/Item;Lnet/minecraft/item/ItemStack;)V": [ + 1, + null, + [] + ], + "(Lnet/minecraft/item/ItemStack;Lnet/minecraft/item/ItemStack;)V": [ + 1, + null, + [] + ], + "getInputs()Ljava/util/List;": [ + 1, + "()Ljava/util/List;", + [] + ], + "getOutput()Lnet/minecraft/item/ItemStack;": [ + 1, + null, + [] + ], + "getValidInputs()Ljava/util/Collection;": [ + 1, + "()Ljava/util/Collection;", + [] + ], + "isValidInput(Lnet/minecraft/item/ItemStack;)Z": [ + 1, + null, + [] + ] + } + }, + "com/mcmoddev/lib/registry/recipe/ICrusherNBTRecipe": { + "access": 1537, + "super": "java/lang/Object", + "interfaces": [], + "fields": {}, + "methods": { + "getOutput(Lnet/minecraft/item/ItemStack;)Lnet/minecraft/item/ItemStack;": [ + 1025, + null, + [] + ] + } + }, + "com/mcmoddev/lib/registry/recipe/ICrusherRecipe": { + "access": 1537, + "super": "java/lang/Object", + "interfaces": [ + "net/minecraftforge/registries/IForgeRegistryEntry" + ], + "signature": "Ljava/lang/Object;Lnet/minecraftforge/registries/IForgeRegistryEntry;", + "fields": {}, + "methods": { + "getInputs()Ljava/util/List;": [ + 1025, + "()Ljava/util/List;", + [] + ], + "getOutput()Lnet/minecraft/item/ItemStack;": [ + 1025, + null, + [] + ], + "getValidInputs()Ljava/util/Collection;": [ + 1025, + "()Ljava/util/Collection;", + [] + ], + "isValidInput(Lnet/minecraft/item/ItemStack;)Z": [ + 1025, + null, + [] + ] + } + }, + "com/mcmoddev/lib/registry/recipe/NBTCrusherRecipe": { + "access": 33, + "super": "net/minecraftforge/registries/IForgeRegistryEntry$Impl", + "interfaces": [ + "com/mcmoddev/lib/registry/recipe/ICrusherRecipe", + "com/mcmoddev/lib/registry/recipe/ICrusherNBTRecipe" + ], + "signature": "Lnet/minecraftforge/registries/IForgeRegistryEntry$Impl;Lcom/mcmoddev/lib/registry/recipe/ICrusherRecipe;Lcom/mcmoddev/lib/registry/recipe/ICrusherNBTRecipe;", + "fields": {}, + "methods": { + "(Lnet/minecraft/item/ItemStack;Lcom/mcmoddev/lib/registry/recipe/NBTCrusherRecipe$OutputMunger;)V": [ + 1, + null, + [] + ], + "(Lnet/minecraft/item/ItemStack;Lcom/mcmoddev/lib/registry/recipe/NBTCrusherRecipe$OutputMunger;Lcom/mcmoddev/lib/registry/recipe/NBTCrusherRecipe$InputMunger;)V": [ + 1, + null, + [] + ], + "(Lnet/minecraft/item/ItemStack;Lcom/mcmoddev/lib/registry/recipe/NBTCrusherRecipe$OutputMunger;Lcom/mcmoddev/lib/registry/recipe/NBTCrusherRecipe$InputMunger;Ljava/util/function/Predicate;)V": [ + 1, + "(Lnet/minecraft/item/ItemStack;Lcom/mcmoddev/lib/registry/recipe/NBTCrusherRecipe$OutputMunger;Lcom/mcmoddev/lib/registry/recipe/NBTCrusherRecipe$InputMunger;Ljava/util/function/Predicate;)V", + [] + ], + "(Lnet/minecraft/item/ItemStack;Lcom/mcmoddev/lib/registry/recipe/NBTCrusherRecipe$OutputMunger;Ljava/util/function/Predicate;)V": [ + 1, + "(Lnet/minecraft/item/ItemStack;Lcom/mcmoddev/lib/registry/recipe/NBTCrusherRecipe$OutputMunger;Ljava/util/function/Predicate;)V", + [] + ], + "getInputs()Ljava/util/List;": [ + 1, + "()Ljava/util/List;", + [] + ], + "getOutput()Lnet/minecraft/item/ItemStack;": [ + 1, + null, + [] + ], + "getOutput(Lnet/minecraft/item/ItemStack;)Lnet/minecraft/item/ItemStack;": [ + 1, + null, + [] + ], + "getValidInputs()Ljava/util/Collection;": [ + 1, + "()Ljava/util/Collection;", + [] + ], + "isValidInput(Lnet/minecraft/item/ItemStack;)Z": [ + 1, + null, + [] + ] + } + }, + "com/mcmoddev/lib/registry/recipe/NBTCrusherRecipe$InputMunger": { + "access": 1537, + "super": "java/lang/Object", + "interfaces": [], + "fields": {}, + "methods": { + "run(Lnet/minecraft/item/ItemStack;)Ljava/util/List;": [ + 1025, + "(Lnet/minecraft/item/ItemStack;)Ljava/util/List;", + [] + ] + } + }, + "com/mcmoddev/lib/registry/recipe/NBTCrusherRecipe$OutputMunger": { + "access": 1537, + "super": "java/lang/Object", + "interfaces": [], + "fields": {}, + "methods": { + "run(Lnet/minecraft/item/ItemStack;)Lnet/minecraft/item/ItemStack;": [ + 1025, + null, + [] + ] + } + }, + "com/mcmoddev/lib/registry/recipe/NBTOreDictRecipe": { + "access": 33, + "super": "net/minecraftforge/registries/IForgeRegistryEntry$Impl", + "interfaces": [ + "com/mcmoddev/lib/registry/recipe/ICrusherRecipe", + "com/mcmoddev/lib/registry/recipe/ICrusherNBTRecipe" + ], + "signature": "Lnet/minecraftforge/registries/IForgeRegistryEntry$Impl;Lcom/mcmoddev/lib/registry/recipe/ICrusherRecipe;Lcom/mcmoddev/lib/registry/recipe/ICrusherNBTRecipe;", + "fields": {}, + "methods": { + "(Ljava/lang/String;Lcom/mcmoddev/lib/registry/recipe/NBTCrusherRecipe$OutputMunger;)V": [ + 1, + null, + [] + ], + "(Ljava/lang/String;Lcom/mcmoddev/lib/registry/recipe/NBTCrusherRecipe$OutputMunger;Lcom/mcmoddev/lib/registry/recipe/NBTOreDictRecipe$InputMunger;)V": [ + 1, + null, + [] + ], + "(Ljava/lang/String;Lcom/mcmoddev/lib/registry/recipe/NBTCrusherRecipe$OutputMunger;Lcom/mcmoddev/lib/registry/recipe/NBTOreDictRecipe$InputMunger;Ljava/util/function/Predicate;)V": [ + 1, + "(Ljava/lang/String;Lcom/mcmoddev/lib/registry/recipe/NBTCrusherRecipe$OutputMunger;Lcom/mcmoddev/lib/registry/recipe/NBTOreDictRecipe$InputMunger;Ljava/util/function/Predicate;)V", + [] + ], + "(Ljava/lang/String;Lcom/mcmoddev/lib/registry/recipe/NBTCrusherRecipe$OutputMunger;Ljava/util/function/Predicate;)V": [ + 1, + "(Ljava/lang/String;Lcom/mcmoddev/lib/registry/recipe/NBTCrusherRecipe$OutputMunger;Ljava/util/function/Predicate;)V", + [] + ], + "getInputs()Ljava/util/List;": [ + 1, + "()Ljava/util/List;", + [] + ], + "getOutput()Lnet/minecraft/item/ItemStack;": [ + 1, + null, + [] + ], + "getOutput(Lnet/minecraft/item/ItemStack;)Lnet/minecraft/item/ItemStack;": [ + 1, + null, + [] + ], + "getValidInputs()Ljava/util/Collection;": [ + 1, + "()Ljava/util/Collection;", + [] + ], + "isValidInput(Lnet/minecraft/item/ItemStack;)Z": [ + 1, + null, + [] + ] + } + }, + "com/mcmoddev/lib/registry/recipe/NBTOreDictRecipe$InputMunger": { + "access": 1537, + "super": "java/lang/Object", + "interfaces": [], + "fields": {}, + "methods": { + "run(Ljava/lang/String;)Ljava/util/List;": [ + 1025, + "(Ljava/lang/String;)Ljava/util/List;", + [] + ] + } + }, + "com/mcmoddev/lib/registry/recipe/OreDictionaryCrusherRecipe": { + "access": 33, + "super": "net/minecraftforge/registries/IForgeRegistryEntry$Impl", + "interfaces": [ + "com/mcmoddev/lib/registry/recipe/ICrusherRecipe" + ], + "signature": "Lnet/minecraftforge/registries/IForgeRegistryEntry$Impl;Lcom/mcmoddev/lib/registry/recipe/ICrusherRecipe;", + "fields": {}, + "methods": { + "(Ljava/lang/String;Lnet/minecraft/item/ItemStack;)V": [ + 1, + null, + [] + ], + "getInputs()Ljava/util/List;": [ + 1, + "()Ljava/util/List;", + [] + ], + "getOutput()Lnet/minecraft/item/ItemStack;": [ + 1, + null, + [] + ], + "getValidInputs()Ljava/util/Collection;": [ + 1, + "()Ljava/util/Collection;", + [] + ], + "isValidInput(Lnet/minecraft/item/ItemStack;)Z": [ + 1, + null, + [] + ] + } + }, + "com/mcmoddev/lib/registry/recipe/package-info": { + "access": 5632, + "super": "java/lang/Object", + "interfaces": [], + "fields": {}, + "methods": {} + }, + "com/mcmoddev/lib/tile/MMDEnergyConsumerTileEntity": { + "access": 1057, + "super": "com/mcmoddev/lib/tile/MMDStandardTileEntity", + "interfaces": [], + "fields": { + "DEFAULT_ENERGY_CAPACITY:I": [ + 25, + null, + 50000 + ], + "DEFAULT_ENERGY_INPUT_RATE:I": [ + 25, + null, + 120 + ], + "battery:Lcom/mcmoddev/lib/energy/ForgeEnergyStorage;": [ + 20, + null, + null + ] + }, + "methods": { + "()V": [ + 4, + null, + [] + ], + "(I)V": [ + 4, + null, + [] + ], + "(II)V": [ + 4, + null, + [] + ], + "getContentWidgetGui(Lcom/mcmoddev/lib/container/gui/GuiContext;)Lcom/mcmoddev/lib/container/gui/IWidgetGui;": [ + 1028, + null, + [] + ], + "getMainContentWidgetGui(Lcom/mcmoddev/lib/container/gui/GuiContext;)Lcom/mcmoddev/lib/container/gui/IWidgetGui;": [ + 20, + null, + [] + ] + } + }, + "com/mcmoddev/lib/tile/MMDFeaturesTileEntity": { + "access": 33, + "super": "com/mcmoddev/lib/tile/MMDTileEntity", + "interfaces": [ + "com/mcmoddev/lib/feature/IFeatureHolder", + "net/minecraft/util/ITickable", + "com/mcmoddev/lib/container/IWidgetContainer" + ], + "fields": {}, + "methods": { + "()V": [ + 4, + null, + [] + ], + "addFeature(Lcom/mcmoddev/lib/feature/IFeature;)Lcom/mcmoddev/lib/feature/IFeature;": [ + 1, + "(TT;)TT;", + [] + ], + "doWork()V": [ + 4, + null, + [] + ], + "featureChanged(Lcom/mcmoddev/lib/feature/IFeature;Lcom/mcmoddev/lib/feature/FeatureDirtyLevel;)V": [ + 1, + null, + [] + ], + "getCapability(Lnet/minecraftforge/common/capabilities/Capability;Lnet/minecraft/util/EnumFacing;)Ljava/lang/Object;": [ + 1, + "(Lnet/minecraftforge/common/capabilities/Capability;Lnet/minecraft/util/EnumFacing;)TT;", + [] + ], + "getFeatures()[Lcom/mcmoddev/lib/feature/IFeature;": [ + 17, + null, + [] + ], + "getGuiUpdateTag(Z)Lnet/minecraft/nbt/NBTTagCompound;": [ + 1, + null, + [] + ], + "getRootWidgetGui(Lcom/mcmoddev/lib/container/gui/GuiContext;)Lcom/mcmoddev/lib/container/gui/IWidgetGui;": [ + 1, + null, + [] + ], + "getWidgets(Lcom/mcmoddev/lib/container/gui/GuiContext;)Ljava/util/List;": [ + 1, + "(Lcom/mcmoddev/lib/container/gui/GuiContext;)Ljava/util/List;", + [] + ], + "hasCapability(Lnet/minecraftforge/common/capabilities/Capability;Lnet/minecraft/util/EnumFacing;)Z": [ + 1, + "(Lnet/minecraftforge/common/capabilities/Capability<*>;Lnet/minecraft/util/EnumFacing;)Z", + [] + ], + "readFromNBT(Lnet/minecraft/nbt/NBTTagCompound;)V": [ + 1, + null, + [] + ], + "testForDirtyFeatures()V": [ + 4, + null, + [] + ], + "update()V": [ + 17, + null, + [] + ], + "writeToNBT(Lnet/minecraft/nbt/NBTTagCompound;)Lnet/minecraft/nbt/NBTTagCompound;": [ + 1, + null, + [] + ] + } + }, + "com/mcmoddev/lib/tile/MMDStandardTileEntity": { + "access": 1057, + "super": "com/mcmoddev/lib/tile/MMDFeaturesTileEntity", + "interfaces": [], + "fields": {}, + "methods": { + "()V": [ + 4, + null, + [] + ], + "getMainContentWidgetGui(Lcom/mcmoddev/lib/container/gui/GuiContext;)Lcom/mcmoddev/lib/container/gui/IWidgetGui;": [ + 1028, + null, + [] + ], + "getRootWidgetGui(Lcom/mcmoddev/lib/container/gui/GuiContext;)Lcom/mcmoddev/lib/container/gui/IWidgetGui;": [ + 1, + null, + [] + ] + } + }, + "com/mcmoddev/lib/tile/MMDTileEntity": { + "access": 33, + "super": "net/minecraft/tileentity/TileEntity", + "interfaces": [ + "com/mcmoddev/lib/container/IGuiProvider", + "com/mcmoddev/lib/container/IWidgetContainer" + ], + "fields": {}, + "methods": { + "()V": [ + 1, + null, + [] + ], + "getClientGui(ILnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/world/World;III)Lnet/minecraft/client/gui/inventory/GuiContainer;": [ + 1, + null, + [] + ], + "getGuiUpdateTag(Z)Lnet/minecraft/nbt/NBTTagCompound;": [ + 1, + null, + [] + ], + "getServerGui(ILnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/world/World;III)Lcom/mcmoddev/lib/container/MMDContainer;": [ + 1, + null, + [] + ], + "getServerGui(ILnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/world/World;III)Lnet/minecraft/inventory/Container;": [ + 4161, + null, + [] + ], + "getUpdatePacket()Lnet/minecraft/network/play/server/SPacketUpdateTileEntity;": [ + 1, + null, + [] + ], + "getUpdateTag()Lnet/minecraft/nbt/NBTTagCompound;": [ + 1, + null, + [] + ], + "handleUpdateTag(Lnet/minecraft/nbt/NBTTagCompound;)V": [ + 1, + null, + [] + ], + "readFromUpdateTag(Lnet/minecraft/nbt/NBTTagCompound;)V": [ + 4, + null, + [] + ], + "receiveGuiUpdateTag(Lnet/minecraft/nbt/NBTTagCompound;)V": [ + 1, + null, + [] + ], + "sendToListeningClients(Lnet/minecraft/nbt/NBTTagCompound;)V": [ + 4, + null, + [] + ], + "writeToUpdateTag(Lnet/minecraft/nbt/NBTTagCompound;)V": [ + 4, + null, + [] + ] + } + }, + "com/mcmoddev/lib/tile/package-info": { + "access": 5632, + "super": "java/lang/Object", + "interfaces": [], + "fields": {}, + "methods": {} + }, + "com/mcmoddev/lib/util/CheeseMath": { + "access": 33, + "super": "java/lang/Object", + "interfaces": [], + "fields": {}, + "methods": { + "getIngotCount(Lcom/mcmoddev/lib/material/MMDMaterial;Lnet/minecraft/item/ItemStack;)I": [ + 9, + null, + [] + ], + "getIngredients(Lnet/minecraft/item/ItemStack;)Ljava/util/List;": [ + 12, + "(Lnet/minecraft/item/ItemStack;)Ljava/util/List;", + [] + ], + "getNuggetCount(Lcom/mcmoddev/lib/material/MMDMaterial;Lnet/minecraft/item/ItemStack;)I": [ + 9, + null, + [] + ] + } + }, + "com/mcmoddev/lib/util/Config": { + "access": 33, + "super": "java/lang/Object", + "interfaces": [], + "fields": {}, + "methods": { + "()V": [ + 4, + null, + [] + ], + "configIntegrationOptions([Lcom/mcmoddev/lib/util/IntegrationConfigOptions;Lnet/minecraftforge/common/config/Configuration;)V": [ + 12, + null, + [] + ], + "configMaterialOptions([Lcom/mcmoddev/lib/util/MaterialConfigOptions;Lnet/minecraftforge/common/config/Configuration;)V": [ + 12, + null, + [] + ], + "manageUserHammerRecipes(Ljava/util/Collection;)V": [ + 12, + "(Ljava/util/Collection;)V", + [] + ], + "parseDisabledRecipes(Ljava/lang/String;)[Ljava/lang/String;": [ + 12, + null, + [] + ], + "parseStringAsItemStack(Ljava/lang/String;Z)Lnet/minecraft/item/ItemStack;": [ + 9, + null, + [] + ], + "postInit()V": [ + 9, + null, + [] + ] + } + }, + "com/mcmoddev/lib/util/Config$Options": { + "access": 33, + "super": "java/lang/Object", + "interfaces": [], + "fields": {}, + "methods": { + "()V": [ + 4, + null, + [] + ], + "angerPigmenRange()I": [ + 9, + null, + [] + ], + "angerPigmenRange(I)V": [ + 9, + null, + [] + ], + "autoDetectRecipes()Z": [ + 9, + null, + [] + ], + "clearOptions()V": [ + 12, + null, + [] + ], + "crackHammerFullStack()Z": [ + 9, + null, + [] + ], + "disableAllHammerRecipes()Z": [ + 9, + null, + [] + ], + "disabledRecipes()[Ljava/lang/String;": [ + 9, + null, + [] + ], + "enableAchievements()Z": [ + 9, + null, + [] + ], + "enableModderSupportThings()Z": [ + 9, + null, + [] + ], + "enablePlateRepairs()Z": [ + 9, + null, + [] + ], + "enableShieldUpgrades()Z": [ + 9, + null, + [] + ], + "enforceHardness()Z": [ + 9, + null, + [] + ], + "explosionChance()I": [ + 9, + null, + [] + ], + "explosionChance(I)V": [ + 9, + null, + [] + ], + "fallbackOrespawn()Z": [ + 9, + null, + [] + ], + "fluidEnabled(Ljava/lang/String;Ljava/lang/Boolean;)V": [ + 9, + null, + [] + ], + "forcedTrait(Ljava/lang/String;Ljava/lang/Boolean;)V": [ + 9, + null, + [] + ], + "furnace1112()Z": [ + 9, + null, + [] + ], + "furnaceCheese()Z": [ + 9, + null, + [] + ], + "gearQuantity()I": [ + 9, + null, + [] + ], + "isFluidEnabled(Ljava/lang/String;)Z": [ + 9, + null, + [] + ], + "isForcedTrait(Ljava/lang/String;)Z": [ + 9, + null, + [] + ], + "isMaterialEnabled(Ljava/lang/String;)Z": [ + 9, + null, + [] + ], + "isModEnabled(Ljava/lang/String;)Z": [ + 9, + null, + [] + ], + "isThingEnabled(Ljava/lang/String;)Z": [ + 9, + null, + [] + ], + "materialEnabled(Ljava/lang/String;Ljava/lang/Boolean;)V": [ + 9, + null, + [] + ], + "modEnabled(Ljava/lang/String;Ljava/lang/Boolean;)V": [ + 9, + null, + [] + ], + "plateQuantity()I": [ + 9, + null, + [] + ], + "requireMMDOreSpawn()Z": [ + 9, + null, + [] + ], + "rodQuantity()I": [ + 9, + null, + [] + ], + "setAutoDetectRecipes(Z)V": [ + 9, + null, + [] + ], + "setCrackHammerFullStack(Z)V": [ + 9, + null, + [] + ], + "setDisableAllHammerRecipes(Z)V": [ + 9, + null, + [] + ], + "setDisabledRecipes([Ljava/lang/String;)V": [ + 9, + null, + [] + ], + "setEnableAchievements(Z)V": [ + 9, + null, + [] + ], + "setEnableModderSupportThings(Z)V": [ + 9, + null, + [] + ], + "setEnablePlateRepairs(Z)V": [ + 9, + null, + [] + ], + "setEnableShieldUpgrades(Z)V": [ + 9, + null, + [] + ], + "setEnforceHardness(Z)V": [ + 9, + null, + [] + ], + "setFallbackOreSpawn(Z)V": [ + 9, + null, + [] + ], + "setFurnace1112(Z)V": [ + 9, + null, + [] + ], + "setFurnaceCheese(Z)V": [ + 9, + null, + [] + ], + "setGearQuantity(I)V": [ + 9, + null, + [] + ], + "setPlateQuantity(I)V": [ + 9, + null, + [] + ], + "setRequireMMDOreSpawn(Z)V": [ + 9, + null, + [] + ], + "setRodQuantity(I)V": [ + 9, + null, + [] + ], + "setStrongHammers(Z)V": [ + 9, + null, + [] + ], + "setTwoDustDrop(Z)V": [ + 9, + null, + [] + ], + "strongHammers()Z": [ + 9, + null, + [] + ], + "thingEnabled(Ljava/lang/String;Ljava/lang/Boolean;)V": [ + 9, + null, + [] + ], + "twoDustDrop()Z": [ + 9, + null, + [] + ] + } + }, + "com/mcmoddev/lib/util/ConfigBase": { + "access": 131105, + "super": "com/mcmoddev/lib/util/Config", + "interfaces": [], + "fields": {}, + "methods": { + "()V": [ + 1, + null, + [] + ] + } + }, + "com/mcmoddev/lib/util/ConfigBase$Options": { + "access": 33, + "super": "com/mcmoddev/lib/util/Config$Options", + "interfaces": [], + "fields": {}, + "methods": { + "()V": [ + 1, + null, + [] + ] + } + }, + "com/mcmoddev/lib/util/FeatureUtils": { + "access": 49, + "super": "java/lang/Object", + "interfaces": [], + "fields": {}, + "methods": { + "getFeatureHolder(Ljava/lang/Object;)Lcom/mcmoddev/lib/feature/IFeatureHolder;": [ + 9, + null, + [] + ] + } + }, + "com/mcmoddev/lib/util/FluidUtils": { + "access": 49, + "super": "java/lang/Object", + "interfaces": [], + "fields": {}, + "methods": { + "canDrainInto(Lnet/minecraftforge/fluids/IFluidTank;Lnet/minecraft/item/ItemStack;)Z": [ + 9, + null, + [] + ], + "canDrainInto(Lnet/minecraftforge/fluids/IFluidTank;Lnet/minecraft/item/ItemStack;II)Z": [ + 9, + null, + [] + ], + "canDrainInto(Lnet/minecraftforge/fluids/IFluidTank;Lnet/minecraftforge/fluids/capability/IFluidHandlerItem;)Z": [ + 9, + null, + [] + ], + "canDrainInto(Lnet/minecraftforge/fluids/IFluidTank;Lnet/minecraftforge/fluids/capability/IFluidHandlerItem;II)Z": [ + 9, + null, + [] + ], + "canFillFrom(Lnet/minecraftforge/fluids/IFluidTank;Lnet/minecraft/item/ItemStack;)Z": [ + 9, + null, + [] + ], + "canFillFrom(Lnet/minecraftforge/fluids/IFluidTank;Lnet/minecraft/item/ItemStack;II)Z": [ + 9, + null, + [] + ], + "canFillFrom(Lnet/minecraftforge/fluids/IFluidTank;Lnet/minecraftforge/fluids/capability/IFluidHandlerItem;)Z": [ + 9, + null, + [] + ], + "canFillFrom(Lnet/minecraftforge/fluids/IFluidTank;Lnet/minecraftforge/fluids/capability/IFluidHandlerItem;II)Z": [ + 9, + null, + [] + ], + "drainInto(Lnet/minecraftforge/fluids/IFluidTank;Lnet/minecraft/item/ItemStack;)Lnet/minecraft/item/ItemStack;": [ + 9, + null, + [] + ], + "drainInto(Lnet/minecraftforge/fluids/IFluidTank;Lnet/minecraft/item/ItemStack;II)Lnet/minecraft/item/ItemStack;": [ + 9, + null, + [] + ], + "drainInto(Lnet/minecraftforge/fluids/IFluidTank;Lnet/minecraftforge/fluids/capability/IFluidHandlerItem;)Lnet/minecraft/item/ItemStack;": [ + 9, + null, + [] + ], + "drainInto(Lnet/minecraftforge/fluids/IFluidTank;Lnet/minecraftforge/fluids/capability/IFluidHandlerItem;II)Lnet/minecraft/item/ItemStack;": [ + 9, + null, + [] + ], + "fillFrom(Lnet/minecraftforge/fluids/IFluidTank;Lnet/minecraft/item/ItemStack;)Lnet/minecraft/item/ItemStack;": [ + 9, + null, + [] + ], + "fillFrom(Lnet/minecraftforge/fluids/IFluidTank;Lnet/minecraft/item/ItemStack;II)Lnet/minecraft/item/ItemStack;": [ + 9, + null, + [] + ], + "fillFrom(Lnet/minecraftforge/fluids/IFluidTank;Lnet/minecraftforge/fluids/capability/IFluidHandlerItem;)Lnet/minecraft/item/ItemStack;": [ + 9, + null, + [] + ], + "fillFrom(Lnet/minecraftforge/fluids/IFluidTank;Lnet/minecraftforge/fluids/capability/IFluidHandlerItem;II)Lnet/minecraft/item/ItemStack;": [ + 9, + null, + [] + ], + "getHandler(Lnet/minecraft/item/ItemStack;)Lnet/minecraftforge/fluids/capability/IFluidHandlerItem;": [ + 9, + null, + [] + ] + } + }, + "com/mcmoddev/lib/util/GuiUtils": { + "access": 49, + "super": "java/lang/Object", + "interfaces": [], + "fields": {}, + "methods": { + "applyAlpha(II)I": [ + 9, + null, + [] + ], + "getWidgetContainer(Ljava/lang/Object;)Lcom/mcmoddev/lib/container/IWidgetContainer;": [ + 9, + null, + [] + ] + } + }, + "com/mcmoddev/lib/util/Helpers": { + "access": 33, + "super": "java/lang/Object", + "interfaces": [], + "fields": {}, + "methods": { + "()V": [ + 1, + null, + [] + ], + "getPropertyString(Ljava/util/Map;[Ljava/lang/String;)Ljava/lang/String;": [ + 137, + "(Ljava/util/Map;Ljava/lang/Comparable<*>;>;[Ljava/lang/String;)Ljava/lang/String;", + [] + ], + "invertedRotateAround(Lnet/minecraft/util/EnumFacing;)Lnet/minecraft/util/EnumFacing;": [ + 9, + null, + [] + ], + "rotateAround(Lnet/minecraft/util/EnumFacing;)Lnet/minecraft/util/EnumFacing;": [ + 9, + null, + [] + ] + } + }, + "com/mcmoddev/lib/util/HorseArmorUtils": { + "access": 49, + "super": "java/lang/Object", + "interfaces": [], + "fields": {}, + "methods": { + "getArmorType(ILjava/lang/String;Ljava/lang/String;)Lnet/minecraft/entity/passive/HorseArmorType;": [ + 9, + null, + [] + ] + } + }, + "com/mcmoddev/lib/util/IntegrationConfigOptions": { + "access": 33, + "super": "java/lang/Object", + "interfaces": [], + "fields": {}, + "methods": { + "(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Boolean;)V": [ + 1, + null, + [] + ], + "getEnabled()Ljava/lang/Boolean;": [ + 1, + null, + [] + ], + "getIdentifier()Ljava/lang/String;": [ + 1, + null, + [] + ], + "getModid()Ljava/lang/String;": [ + 1, + null, + [] + ] + } + }, + "com/mcmoddev/lib/util/ItemGuiUtils": { + "access": 49, + "super": "java/lang/Object", + "interfaces": [], + "fields": {}, + "methods": { + "onItemRightClick(Lnet/minecraft/item/Item;Lnet/minecraft/world/World;Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/util/EnumHand;)Lnet/minecraft/util/ActionResult;": [ + 9, + "(Lnet/minecraft/item/Item;Lnet/minecraft/world/World;Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/util/EnumHand;)Lnet/minecraft/util/ActionResult;", + [] + ], + "onItemUse(Lnet/minecraft/item/Item;Lnet/minecraft/util/EnumActionResult;Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/world/World;Lnet/minecraft/util/math/BlockPos;Lnet/minecraft/util/EnumHand;)Lnet/minecraft/util/EnumActionResult;": [ + 9, + null, + [] + ] + } + }, + "com/mcmoddev/lib/util/ItemStackUtils": { + "access": 49, + "super": "java/lang/Object", + "interfaces": [], + "fields": {}, + "methods": { + "areEqualIgnoreSize(Lnet/minecraft/item/ItemStack;Lnet/minecraft/item/ItemStack;)Z": [ + 9, + null, + [] + ], + "copyWithSize(Lnet/minecraft/item/ItemStack;I)Lnet/minecraft/item/ItemStack;": [ + 9, + null, + [] + ] + } + }, + "com/mcmoddev/lib/util/LoggingUtil": { + "access": 49, + "super": "java/lang/Object", + "interfaces": [], + "fields": {}, + "methods": { + "isExtraLoggingEnabled()Z": [ + 9, + null, + [] + ], + "logNbtMessage(Ljava/lang/Object;Ljava/lang/String;Lnet/minecraft/nbt/NBTBase;)V": [ + 9, + null, + [] + ], + "logNbtMessage(Ljava/lang/String;Lnet/minecraft/nbt/NBTBase;)V": [ + 9, + null, + [] + ] + } + }, + "com/mcmoddev/lib/util/MMDLibConfig": { + "access": 33, + "super": "com/mcmoddev/lib/util/Config", + "interfaces": [], + "fields": {}, + "methods": { + "()V": [ + 1, + null, + [] + ], + "init()V": [ + 9, + null, + [] + ], + "onConfigChange(Lnet/minecraftforge/fml/client/event/ConfigChangedEvent$OnConfigChangedEvent;)V": [ + 1, + null, + [] + ] + } + }, + "com/mcmoddev/lib/util/MMDLibItemGroups": { + "access": 33, + "super": "com/mcmoddev/lib/init/ItemGroups", + "interfaces": [], + "fields": {}, + "methods": { + "()V": [ + 1, + null, + [] + ], + "setupIcons(Ljava/lang/String;)V": [ + 9, + null, + [] + ] + } + }, + "com/mcmoddev/lib/util/MaterialConfigOptions": { + "access": 33, + "super": "java/lang/Object", + "interfaces": [], + "fields": {}, + "methods": { + "(Ljava/lang/String;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;)V": [ + 1, + null, + [] + ], + "(Ljava/lang/String;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;)V": [ + 1, + null, + [] + ], + "(Ljava/lang/String;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;)V": [ + 1, + null, + [] + ], + "getFluidEnabled()Ljava/lang/Boolean;": [ + 1, + null, + [] + ], + "getForceTraits()Ljava/lang/Boolean;": [ + 1, + null, + [] + ], + "getHasFluid()Ljava/lang/Boolean;": [ + 1, + null, + [] + ], + "getHasTraits()Ljava/lang/Boolean;": [ + 1, + null, + [] + ], + "getIdentifier()Ljava/lang/String;": [ + 1, + null, + [] + ], + "getMaterialEnabled()Ljava/lang/Boolean;": [ + 1, + null, + [] + ], + "getVanilla()Ljava/lang/Boolean;": [ + 1, + null, + [] + ] + } + }, + "com/mcmoddev/lib/util/MathUtils": { + "access": 49, + "super": "java/lang/Object", + "interfaces": [], + "fields": {}, + "methods": { + "clampf(FFF)F": [ + 9, + null, + [] + ], + "clampi(III)I": [ + 9, + null, + [] + ] + } + }, + "com/mcmoddev/lib/util/NBTUtils": { + "access": 49, + "super": "java/lang/Object", + "interfaces": [], + "fields": {}, + "methods": { + "getPatch(Lnet/minecraft/nbt/NBTTagCompound;Lnet/minecraft/nbt/NBTTagCompound;)Lnet/minecraft/nbt/NBTTagCompound;": [ + 9, + null, + [] + ], + "setInnerCompound(Lnet/minecraft/nbt/NBTTagCompound;Lnet/minecraft/nbt/NBTTagCompound;[Ljava/lang/String;)Lnet/minecraft/nbt/NBTTagCompound;": [ + 137, + null, + [] + ], + "wrapCompound(Lnet/minecraft/nbt/NBTTagCompound;[Ljava/lang/String;)Lnet/minecraft/nbt/NBTTagCompound;": [ + 137, + null, + [] + ] + } + }, + "com/mcmoddev/lib/util/Oredicts": { + "access": 33, + "super": "java/lang/Object", + "interfaces": [], + "fields": { + "AMMOBOLT:Ljava/lang/String;": [ + 25, + null, + "ammoBolt" + ], + "ARROW:Ljava/lang/String;": [ + 25, + null, + "arrow" + ], + "BARS:Ljava/lang/String;": [ + 25, + null, + "bars" + ], + "BARS_IRON:Ljava/lang/String;": [ + 25, + null, + "barsIron" + ], + "BLEND:Ljava/lang/String;": [ + 25, + null, + "blend" + ], + "BLEND_SMALL:Ljava/lang/String;": [ + 25, + null, + "blendSmall" + ], + "BLEND_TINY:Ljava/lang/String;": [ + 25, + null, + "blendTiny" + ], + "BLOCK:Ljava/lang/String;": [ + 25, + null, + "block" + ], + "BLOCK_CACTUS:Ljava/lang/String;": [ + 25, + null, + "blockCactus" + ], + "BLOCK_CHARCOAL:Ljava/lang/String;": [ + 25, + null, + "blockCharcoal" + ], + "BLOCK_COAL:Ljava/lang/String;": [ + 25, + null, + "blockCoal" + ], + "BLOCK_DIAMOND:Ljava/lang/String;": [ + 25, + null, + "blockDiamond" + ], + "BLOCK_EMERALD:Ljava/lang/String;": [ + 25, + null, + "blockEmerald" + ], + "BLOCK_GLASS:Ljava/lang/String;": [ + 25, + null, + "blockGlass" + ], + "BLOCK_GLASS_BLACK:Ljava/lang/String;": [ + 25, + null, + "blockGlassBlack" + ], + "BLOCK_GLASS_BLUE:Ljava/lang/String;": [ + 25, + null, + "blockGlassBlue" + ], + "BLOCK_GLASS_BROWN:Ljava/lang/String;": [ + 25, + null, + "blockGlassBrown" + ], + "BLOCK_GLASS_COLORLESS:Ljava/lang/String;": [ + 25, + null, + "blockGlassColorless" + ], + "BLOCK_GLASS_CYAN:Ljava/lang/String;": [ + 25, + null, + "blockGlassCyan" + ], + "BLOCK_GLASS_GRAY:Ljava/lang/String;": [ + 25, + null, + "blockGlassGray" + ], + "BLOCK_GLASS_GREEN:Ljava/lang/String;": [ + 25, + null, + "blockGlassGreen" + ], + "BLOCK_GLASS_LIGHT_BLUE:Ljava/lang/String;": [ + 25, + null, + "blockGlassLightBlue" + ], + "BLOCK_GLASS_LIGHT_GRAY:Ljava/lang/String;": [ + 25, + null, + "blockGlassLightGray" + ], + "BLOCK_GLASS_LIME:Ljava/lang/String;": [ + 25, + null, + "blockGlassLime" + ], + "BLOCK_GLASS_MAGENTA:Ljava/lang/String;": [ + 25, + null, + "blockGlassMagenta" + ], + "BLOCK_GLASS_ORANGE:Ljava/lang/String;": [ + 25, + null, + "blockGlassOrange" + ], + "BLOCK_GLASS_PINK:Ljava/lang/String;": [ + 25, + null, + "blockGlassPink" + ], + "BLOCK_GLASS_PURPLE:Ljava/lang/String;": [ + 25, + null, + "blockGlassPurple" + ], + "BLOCK_GLASS_RED:Ljava/lang/String;": [ + 25, + null, + "blockGlassRed" + ], + "BLOCK_GLASS_WHITE:Ljava/lang/String;": [ + 25, + null, + "blockGlassWhite" + ], + "BLOCK_GLASS_YELLOW:Ljava/lang/String;": [ + 25, + null, + "blockGlassYellow" + ], + "BLOCK_GOLD:Ljava/lang/String;": [ + 25, + null, + "blockGold" + ], + "BLOCK_IRON:Ljava/lang/String;": [ + 25, + null, + "blockIron" + ], + "BLOCK_LAPIS:Ljava/lang/String;": [ + 25, + null, + "blockLapis" + ], + "BLOCK_PRISMARINE:Ljava/lang/String;": [ + 25, + null, + "blockPrismarine" + ], + "BLOCK_PRISMARINE_BRICK:Ljava/lang/String;": [ + 25, + null, + "blockPrismarineBrick" + ], + "BLOCK_PRISMARINE_DARK:Ljava/lang/String;": [ + 25, + null, + "blockPrismarineDark" + ], + "BLOCK_QUARTZ:Ljava/lang/String;": [ + 25, + null, + "blockQuartz" + ], + "BLOCK_REDSTONE:Ljava/lang/String;": [ + 25, + null, + "blockRedstone" + ], + "BLOCK_SLIME:Ljava/lang/String;": [ + 25, + null, + "blockSlime" + ], + "BONE:Ljava/lang/String;": [ + 25, + null, + "bone" + ], + "BUTTON:Ljava/lang/String;": [ + 25, + null, + "button" + ], + "CASING:Ljava/lang/String;": [ + 25, + null, + "casing" + ], + "CHEST:Ljava/lang/String;": [ + 25, + null, + "chest" + ], + "CHEST_ENDER:Ljava/lang/String;": [ + 25, + null, + "chestEnder" + ], + "CHEST_TRAPPED:Ljava/lang/String;": [ + 25, + null, + "chestTrapped" + ], + "CHEST_WOOD:Ljava/lang/String;": [ + 25, + null, + "chestWood" + ], + "CLUMP:Ljava/lang/String;": [ + 25, + null, + "clump" + ], + "COBBLESTONE:Ljava/lang/String;": [ + 25, + null, + "cobblestone" + ], + "CROP_CARROT:Ljava/lang/String;": [ + 25, + null, + "cropCarrot" + ], + "CROP_NETHERWART:Ljava/lang/String;": [ + 25, + null, + "cropNetherWart" + ], + "CROP_POTATO:Ljava/lang/String;": [ + 25, + null, + "cropPotato" + ], + "CROP_WHEAT:Ljava/lang/String;": [ + 25, + null, + "cropWheat" + ], + "CRUSHED:Ljava/lang/String;": [ + 25, + null, + "crushed" + ], + "CRUSHED_PURIFIED:Ljava/lang/String;": [ + 25, + null, + "crushedPurified" + ], + "CRYSTAL:Ljava/lang/String;": [ + 25, + null, + "crystal" + ], + "DIRT:Ljava/lang/String;": [ + 25, + null, + "dirt" + ], + "DOOR:Ljava/lang/String;": [ + 25, + null, + "door" + ], + "DOOR_IRON:Ljava/lang/String;": [ + 25, + null, + "doorIron" + ], + "DOOR_WOOD:Ljava/lang/String;": [ + 25, + null, + "doorWood" + ], + "DUST:Ljava/lang/String;": [ + 25, + null, + "dust" + ], + "DUST_CARBON:Ljava/lang/String;": [ + 25, + null, + "dustCarbon" + ], + "DUST_CHARCOAL:Ljava/lang/String;": [ + 25, + null, + "dustCharcoal" + ], + "DUST_COAL:Ljava/lang/String;": [ + 25, + null, + "dustCoal" + ], + "DUST_DIRTY:Ljava/lang/String;": [ + 25, + null, + "dustDirty" + ], + "DUST_GLOWSTONE:Ljava/lang/String;": [ + 25, + null, + "dustGlowstone" + ], + "DUST_PRISMARINE:Ljava/lang/String;": [ + 25, + null, + "dustPrismarine" + ], + "DUST_REDSTONE:Ljava/lang/String;": [ + 25, + null, + "dustRedstone" + ], + "DUST_SMALL:Ljava/lang/String;": [ + 25, + null, + "dustSmall" + ], + "DUST_SMALL_CHARCOAL:Ljava/lang/String;": [ + 25, + null, + "dustSmallCharcoal" + ], + "DUST_SMALL_COAL:Ljava/lang/String;": [ + 25, + null, + "dustSmallCoal" + ], + "DUST_TINY:Ljava/lang/String;": [ + 25, + null, + "dustTiny" + ], + "DUST_TINY_CHARCOAL:Ljava/lang/String;": [ + 25, + null, + "dustTinyCharcoal" + ], + "DUST_TINY_COAL:Ljava/lang/String;": [ + 25, + null, + "dustTinyCoal" + ], + "DYE:Ljava/lang/String;": [ + 25, + null, + "dye" + ], + "DYE_BLACK:Ljava/lang/String;": [ + 25, + null, + "dyeBlack" + ], + "DYE_BLUE:Ljava/lang/String;": [ + 25, + null, + "dyeBlue" + ], + "DYE_BROWN:Ljava/lang/String;": [ + 25, + null, + "dyeBrown" + ], + "DYE_CYAN:Ljava/lang/String;": [ + 25, + null, + "dyeCyan" + ], + "DYE_GRAY:Ljava/lang/String;": [ + 25, + null, + "dyeGray" + ], + "DYE_GREEN:Ljava/lang/String;": [ + 25, + null, + "dyeGreen" + ], + "DYE_LIGHT_BLUE:Ljava/lang/String;": [ + 25, + null, + "dyeLightBlue" + ], + "DYE_LIGHT_GRAY:Ljava/lang/String;": [ + 25, + null, + "dyeLightGray" + ], + "DYE_LIME:Ljava/lang/String;": [ + 25, + null, + "dyeLime" + ], + "DYE_MAGENTA:Ljava/lang/String;": [ + 25, + null, + "dyeMagenta" + ], + "DYE_ORANGE:Ljava/lang/String;": [ + 25, + null, + "dyeOrange" + ], + "DYE_PINK:Ljava/lang/String;": [ + 25, + null, + "dyePink" + ], + "DYE_PURPLE:Ljava/lang/String;": [ + 25, + null, + "dyePurple" + ], + "DYE_RED:Ljava/lang/String;": [ + 25, + null, + "dyeRed" + ], + "DYE_WHITE:Ljava/lang/String;": [ + 25, + null, + "dyeWhite" + ], + "DYE_YELLOW:Ljava/lang/String;": [ + 25, + null, + "dyeYellow" + ], + "EGG:Ljava/lang/String;": [ + 25, + null, + "egg" + ], + "ENDERPEARL:Ljava/lang/String;": [ + 25, + null, + "enderpearl" + ], + "ENDSTONE:Ljava/lang/String;": [ + 25, + null, + "endstone" + ], + "FEATHER:Ljava/lang/String;": [ + 25, + null, + "feather" + ], + "GEAR:Ljava/lang/String;": [ + 25, + null, + "gear" + ], + "GEM:Ljava/lang/String;": [ + 25, + null, + "gem" + ], + "GEM_DIAMOND:Ljava/lang/String;": [ + 25, + null, + "gemDiamond" + ], + "GEM_EMERALD:Ljava/lang/String;": [ + 25, + null, + "gemEmerald" + ], + "GEM_LAPIS:Ljava/lang/String;": [ + 25, + null, + "gemLapis" + ], + "GEM_PRISMARINE:Ljava/lang/String;": [ + 25, + null, + "gemPrismarine" + ], + "GEM_QUARTZ:Ljava/lang/String;": [ + 25, + null, + "gemQuartz" + ], + "GLOWSTONE:Ljava/lang/String;": [ + 25, + null, + "glowstone" + ], + "GRASS:Ljava/lang/String;": [ + 25, + null, + "grass" + ], + "GRAVEL:Ljava/lang/String;": [ + 25, + null, + "gravel" + ], + "GUNPOWDER:Ljava/lang/String;": [ + 25, + null, + "gunpowder" + ], + "INGOT:Ljava/lang/String;": [ + 25, + null, + "ingot" + ], + "INGOT_BRICK:Ljava/lang/String;": [ + 25, + null, + "IngotBrick" + ], + "INGOT_BRICK_NETHER:Ljava/lang/String;": [ + 25, + null, + "IngotBrickNether" + ], + "INGOT_GOLD:Ljava/lang/String;": [ + 25, + null, + "ingotGold" + ], + "INGOT_IRON:Ljava/lang/String;": [ + 25, + null, + "ingotIron" + ], + "INGOT_MERCURY:Ljava/lang/String;": [ + 25, + null, + "ingotMercury" + ], + "INGOT_STEEL:Ljava/lang/String;": [ + 25, + null, + "ingotSteel" + ], + "LEATHER:Ljava/lang/String;": [ + 25, + null, + "leather" + ], + "LEVER:Ljava/lang/String;": [ + 25, + null, + "lever" + ], + "LOG_WOOD:Ljava/lang/String;": [ + 25, + null, + "logWood" + ], + "NETHERRACK:Ljava/lang/String;": [ + 25, + null, + "netherrack" + ], + "NETHER_STAR:Ljava/lang/String;": [ + 25, + null, + "netherStar" + ], + "NUGGET:Ljava/lang/String;": [ + 25, + null, + "nugget" + ], + "NUGGET_CHARCOAL:Ljava/lang/String;": [ + 25, + null, + "nuggetCharcoal" + ], + "NUGGET_COAL:Ljava/lang/String;": [ + 25, + null, + "nuggetCoal" + ], + "NUGGET_GOLD:Ljava/lang/String;": [ + 25, + null, + "nuggetGold" + ], + "NUGGET_IRON:Ljava/lang/String;": [ + 25, + null, + "nuggetIron" + ], + "OBSIDIAN:Ljava/lang/String;": [ + 25, + null, + "obsidian" + ], + "ORE:Ljava/lang/String;": [ + 25, + null, + "ore" + ], + "ORE_COAL:Ljava/lang/String;": [ + 25, + null, + "oreCoal" + ], + "ORE_DIAMOND:Ljava/lang/String;": [ + 25, + null, + "oreDiamond" + ], + "ORE_EMERALD:Ljava/lang/String;": [ + 25, + null, + "oreEmerald" + ], + "ORE_END:Ljava/lang/String;": [ + 25, + null, + "oreEnd" + ], + "ORE_GOLD:Ljava/lang/String;": [ + 25, + null, + "oreGold" + ], + "ORE_IRON:Ljava/lang/String;": [ + 25, + null, + "oreIron" + ], + "ORE_LAPIS:Ljava/lang/String;": [ + 25, + null, + "oreLapis" + ], + "ORE_NETHER:Ljava/lang/String;": [ + 25, + null, + "oreNether" + ], + "ORE_QUARTZ:Ljava/lang/String;": [ + 25, + null, + "oreQuartz" + ], + "ORE_REDSTONE:Ljava/lang/String;": [ + 25, + null, + "oreRedstone" + ], + "PANE_GLASS:Ljava/lang/String;": [ + 25, + null, + "paneGlass" + ], + "PANE_GLASS_BLACK:Ljava/lang/String;": [ + 25, + null, + "paneGlassBlack" + ], + "PANE_GLASS_BLUE:Ljava/lang/String;": [ + 25, + null, + "paneGlassBlue" + ], + "PANE_GLASS_BROWN:Ljava/lang/String;": [ + 25, + null, + "paneGlassBrown" + ], + "PANE_GLASS_COLORLESS:Ljava/lang/String;": [ + 25, + null, + "paneGlassColorless" + ], + "PANE_GLASS_CYAN:Ljava/lang/String;": [ + 25, + null, + "paneGlassCyan" + ], + "PANE_GLASS_GRAY:Ljava/lang/String;": [ + 25, + null, + "paneGlassGray" + ], + "PANE_GLASS_GREEN:Ljava/lang/String;": [ + 25, + null, + "paneGlassGreen" + ], + "PANE_GLASS_LIGHT_BLUE:Ljava/lang/String;": [ + 25, + null, + "paneGlassLightBlue" + ], + "PANE_GLASS_LIGHT_GRAY:Ljava/lang/String;": [ + 25, + null, + "paneGlassLightGray" + ], + "PANE_GLASS_LIME:Ljava/lang/String;": [ + 25, + null, + "paneGlassLime" + ], + "PANE_GLASS_MAGENTA:Ljava/lang/String;": [ + 25, + null, + "paneGlassMagenta" + ], + "PANE_GLASS_ORANGE:Ljava/lang/String;": [ + 25, + null, + "paneGlassOrange" + ], + "PANE_GLASS_PINK:Ljava/lang/String;": [ + 25, + null, + "paneGlassPink" + ], + "PANE_GLASS_PURPLE:Ljava/lang/String;": [ + 25, + null, + "paneGlassPurple" + ], + "PANE_GLASS_RED:Ljava/lang/String;": [ + 25, + null, + "paneGlassRed" + ], + "PANE_GLASS_WHITE:Ljava/lang/String;": [ + 25, + null, + "paneGlassWhite" + ], + "PANE_GLASS_YELLOW:Ljava/lang/String;": [ + 25, + null, + "paneGlassYellow" + ], + "PAPER:Ljava/lang/String;": [ + 25, + null, + "paper" + ], + "PLANK_WOOD:Ljava/lang/String;": [ + 25, + null, + "plankWood" + ], + "PLATE:Ljava/lang/String;": [ + 25, + null, + "plate" + ], + "PLATE_DENSE:Ljava/lang/String;": [ + 25, + null, + "plateDense" + ], + "RECORD:Ljava/lang/String;": [ + 25, + null, + "record" + ], + "ROD:Ljava/lang/String;": [ + 25, + null, + "rod" + ], + "SAND:Ljava/lang/String;": [ + 25, + null, + "sand" + ], + "SANDSTONE:Ljava/lang/String;": [ + 25, + null, + "sandstone" + ], + "SHARD:Ljava/lang/String;": [ + 25, + null, + "shard" + ], + "SHIELD:Ljava/lang/String;": [ + 25, + null, + "shield" + ], + "SLAB:Ljava/lang/String;": [ + 25, + null, + "slab" + ], + "SLAB_WOOD:Ljava/lang/String;": [ + 25, + null, + "slabWood" + ], + "SLIMEBALL:Ljava/lang/String;": [ + 25, + null, + "slimeball" + ], + "SPROCKET:Ljava/lang/String;": [ + 25, + null, + "sprocket" + ], + "STAIRS:Ljava/lang/String;": [ + 25, + null, + "stairs" + ], + "STAIR_WOOD:Ljava/lang/String;": [ + 25, + null, + "stairWood" + ], + "STICK:Ljava/lang/String;": [ + 25, + null, + "stick" + ], + "STICK_WOOD:Ljava/lang/String;": [ + 25, + null, + "stickWood" + ], + "STONE:Ljava/lang/String;": [ + 25, + null, + "stone" + ], + "STONE_ANDESITE:Ljava/lang/String;": [ + 25, + null, + "stoneAndesite" + ], + "STONE_ANDESITE_POLISHED:Ljava/lang/String;": [ + 25, + null, + "stoneAndesitePolished" + ], + "STONE_DIORITE:Ljava/lang/String;": [ + 25, + null, + "stoneDiorite" + ], + "STONE_DIORITE_POLISHED:Ljava/lang/String;": [ + 25, + null, + "stoneDioritePolished" + ], + "STONE_GRANITE:Ljava/lang/String;": [ + 25, + null, + "stoneGranite" + ], + "STONE_GRANITE_POLISHED:Ljava/lang/String;": [ + 25, + null, + "stoneGranitePolished" + ], + "STRING:Ljava/lang/String;": [ + 25, + null, + "string" + ], + "SUGARCANE:Ljava/lang/String;": [ + 25, + null, + "sugarcane" + ], + "TORCH:Ljava/lang/String;": [ + 25, + null, + "torch" + ], + "TRAPDOOR:Ljava/lang/String;": [ + 25, + null, + "trapdoor" + ], + "TREE_LEAVES:Ljava/lang/String;": [ + 25, + null, + "treeLeaves" + ], + "TREE_SAPLING:Ljava/lang/String;": [ + 25, + null, + "treeSapling" + ], + "VINE:Ljava/lang/String;": [ + 25, + null, + "vine" + ], + "WALL:Ljava/lang/String;": [ + 25, + null, + "wall" + ], + "WORKBENCH:Ljava/lang/String;": [ + 25, + null, + "workbench" + ] + }, + "methods": { + "registerBlockOreDictionaryEntries()V": [ + 9, + null, + [] + ], + "registerItemOreDictionaryEntries()V": [ + 9, + null, + [] + ], + "registerOre(Ljava/lang/String;Lnet/minecraft/block/Block;)V": [ + 9, + null, + [] + ], + "registerOre(Ljava/lang/String;Lnet/minecraft/item/Item;)V": [ + 9, + null, + [] + ], + "registerOre(Ljava/lang/String;Lnet/minecraft/item/ItemStack;)V": [ + 9, + null, + [] + ] + } + }, + "com/mcmoddev/lib/util/Platform": { + "access": 33, + "super": "java/lang/Object", + "interfaces": [], + "fields": {}, + "methods": { + "getPropertyString(Ljava/util/Map;[Ljava/lang/String;)Ljava/lang/String;": [ + 137, + "(Ljava/util/Map;Ljava/lang/Comparable<*>;>;[Ljava/lang/String;)Ljava/lang/String;", + [] + ], + "invertedRotateAround(Lnet/minecraft/util/EnumFacing;)Lnet/minecraft/util/EnumFacing;": [ + 9, + null, + [] + ], + "isClient()Z": [ + 9, + null, + [] + ], + "isDevEnv()Z": [ + 9, + null, + [] + ], + "isSameItem(Lnet/minecraft/item/ItemStack;Lnet/minecraft/item/ItemStack;)Z": [ + 9, + null, + [] + ], + "isServer()Z": [ + 9, + null, + [] + ], + "rotateAround(Lnet/minecraft/util/EnumFacing;)Lnet/minecraft/util/EnumFacing;": [ + 9, + null, + [] + ], + "setDev(Z)V": [ + 9, + null, + [] + ] + } + }, + "com/mcmoddev/lib/util/Platform$1": { + "access": 4128, + "super": "java/lang/Object", + "interfaces": [], + "fields": {}, + "methods": {} + }, + "com/mcmoddev/lib/util/PotionKeys": { + "access": 33, + "super": "java/lang/Object", + "interfaces": [], + "fields": { + "ABSORBTION:Lnet/minecraft/util/ResourceLocation;": [ + 25, + null, + null + ], + "BLINDNESS:Lnet/minecraft/util/ResourceLocation;": [ + 25, + null, + null + ], + "FIRE_RESISTANCE:Lnet/minecraft/util/ResourceLocation;": [ + 25, + null, + null + ], + "GLOWING:Lnet/minecraft/util/ResourceLocation;": [ + 25, + null, + null + ], + "HASTE:Lnet/minecraft/util/ResourceLocation;": [ + 25, + null, + null + ], + "HEALTH_BOOST:Lnet/minecraft/util/ResourceLocation;": [ + 25, + null, + null + ], + "HUNGER:Lnet/minecraft/util/ResourceLocation;": [ + 25, + null, + null + ], + "INSTANT_DAMAGE:Lnet/minecraft/util/ResourceLocation;": [ + 25, + null, + null + ], + "INSTANT_HEALTH:Lnet/minecraft/util/ResourceLocation;": [ + 25, + null, + null + ], + "INVISIBILITY:Lnet/minecraft/util/ResourceLocation;": [ + 25, + null, + null + ], + "JUMP_BOOST:Lnet/minecraft/util/ResourceLocation;": [ + 25, + null, + null + ], + "LEVITATION:Lnet/minecraft/util/ResourceLocation;": [ + 25, + null, + null + ], + "LUCK:Lnet/minecraft/util/ResourceLocation;": [ + 25, + null, + null + ], + "MINING_FATIGUE:Lnet/minecraft/util/ResourceLocation;": [ + 25, + null, + null + ], + "NAUSEA:Lnet/minecraft/util/ResourceLocation;": [ + 25, + null, + null + ], + "NIGHT_VISION:Lnet/minecraft/util/ResourceLocation;": [ + 25, + null, + null + ], + "POISON:Lnet/minecraft/util/ResourceLocation;": [ + 25, + null, + null + ], + "REGENERATION:Lnet/minecraft/util/ResourceLocation;": [ + 25, + null, + null + ], + "RESISTANCE:Lnet/minecraft/util/ResourceLocation;": [ + 25, + null, + null + ], + "SATURATION:Lnet/minecraft/util/ResourceLocation;": [ + 25, + null, + null + ], + "SLOWNESS:Lnet/minecraft/util/ResourceLocation;": [ + 25, + null, + null + ], + "SPEED:Lnet/minecraft/util/ResourceLocation;": [ + 25, + null, + null + ], + "STRENGTH:Lnet/minecraft/util/ResourceLocation;": [ + 25, + null, + null + ], + "UNLUCK:Lnet/minecraft/util/ResourceLocation;": [ + 25, + null, + null + ], + "WATER_BREATHING:Lnet/minecraft/util/ResourceLocation;": [ + 25, + null, + null + ], + "WEAKNESS:Lnet/minecraft/util/ResourceLocation;": [ + 25, + null, + null + ], + "WITHER:Lnet/minecraft/util/ResourceLocation;": [ + 25, + null, + null + ] + }, + "methods": {} + }, + "com/mcmoddev/lib/util/StringUtils": { + "access": 49, + "super": "java/lang/Object", + "interfaces": [], + "fields": {}, + "methods": { + "insert(Ljava/lang/String;ILjava/lang/String;)Ljava/lang/String;": [ + 9, + null, + [] + ], + "remove(Ljava/lang/String;II)Ljava/lang/String;": [ + 9, + null, + [] + ] + } + }, + "com/mcmoddev/lib/util/TabContainer": { + "access": 49, + "super": "java/lang/Object", + "interfaces": [], + "fields": { + "blocksTab:Lcom/mcmoddev/lib/init/MMDCreativeTab;": [ + 17, + null, + null + ], + "itemsTab:Lcom/mcmoddev/lib/init/MMDCreativeTab;": [ + 17, + null, + null + ], + "toolsTab:Lcom/mcmoddev/lib/init/MMDCreativeTab;": [ + 17, + null, + null + ] + }, + "methods": { + "(Lcom/mcmoddev/lib/init/MMDCreativeTab;Lcom/mcmoddev/lib/init/MMDCreativeTab;Lcom/mcmoddev/lib/init/MMDCreativeTab;)V": [ + 1, + null, + [] + ] + } + }, + "com/mcmoddev/lib/util/Version5UUID": { + "access": 33, + "super": "java/lang/Object", + "interfaces": [], + "fields": { + "NAMESPACE_DNS:Ljava/util/UUID;": [ + 25, + null, + null + ], + "NAMESPACE_MMDLIB:Ljava/util/UUID;": [ + 25, + null, + null + ], + "NAMESPACE_OID:Ljava/util/UUID;": [ + 25, + null, + null + ], + "NAMESPACE_URL:Ljava/util/UUID;": [ + 25, + null, + null + ], + "NAMESPACE_X500:Ljava/util/UUID;": [ + 25, + null, + null + ] + }, + "methods": { + "()V": [ + 1, + null, + [] + ], + "mmdlibUUID(Ljava/lang/String;)Ljava/util/UUID;": [ + 9, + null, + [] + ], + "nameUUIDFromNamespaceAndBytes(Ljava/util/UUID;[B)Ljava/util/UUID;": [ + 9, + null, + [] + ], + "nameUUIDFromNamespaceAndString(Ljava/util/UUID;Ljava/lang/String;)Ljava/util/UUID;": [ + 9, + null, + [] + ], + "nameUUIDFromString(Ljava/lang/String;)Ljava/util/UUID;": [ + 9, + null, + [] + ] + } + }, + "com/mcmoddev/lib/util/VillagerTradeHelper": { + "access": 33, + "super": "java/lang/Object", + "interfaces": [], + "fields": {}, + "methods": { + "()V": [ + 4, + null, + [] + ], + "insertTrades(III[Lnet/minecraft/entity/passive/EntityVillager$ITradeList;)V": [ + 137, + null, + [] + ], + "insertTrades(Ljava/lang/String;II[Lnet/minecraft/entity/passive/EntityVillager$ITradeList;)V": [ + 137, + null, + [] + ], + "insertTrades(Lnet/minecraft/util/ResourceLocation;II[Lnet/minecraft/entity/passive/EntityVillager$ITradeList;)V": [ + 137, + null, + [] + ] + } + }, + "com/mcmoddev/lib/util/package-info": { + "access": 5632, + "super": "java/lang/Object", + "interfaces": [], + "fields": {}, + "methods": {} + }, + "com/mcmoddev/lib/vanillasupport/VanillaSupport": { + "access": 33, + "super": "java/lang/Object", + "interfaces": [], + "fields": {}, + "methods": { + "vanillaBlocks(Lcom/mcmoddev/lib/events/MMDLibRegisterBlocks;)V": [ + 9, + null, + [] + ], + "vanillaItems(Lcom/mcmoddev/lib/events/MMDLibRegisterItems;)V": [ + 9, + null, + [] + ] + } + }, + "com/mcmoddev/lib/waila/LeverInfoController": { + "access": 49, + "super": "java/lang/Object", + "interfaces": [ + "mcp/mobius/waila/api/IWailaDataProvider" + ], + "fields": {}, + "methods": { + "()V": [ + 1, + null, + [] + ], + "getNBTData(Lnet/minecraft/entity/player/EntityPlayerMP;Lnet/minecraft/tileentity/TileEntity;Lnet/minecraft/nbt/NBTTagCompound;Lnet/minecraft/world/World;Lnet/minecraft/util/math/BlockPos;)Lnet/minecraft/nbt/NBTTagCompound;": [ + 1, + null, + [] + ], + "getWailaBody(Lnet/minecraft/item/ItemStack;Ljava/util/List;Lmcp/mobius/waila/api/IWailaDataAccessor;Lmcp/mobius/waila/api/IWailaConfigHandler;)Ljava/util/List;": [ + 1, + "(Lnet/minecraft/item/ItemStack;Ljava/util/List;Lmcp/mobius/waila/api/IWailaDataAccessor;Lmcp/mobius/waila/api/IWailaConfigHandler;)Ljava/util/List;", + [] + ], + "getWailaHead(Lnet/minecraft/item/ItemStack;Ljava/util/List;Lmcp/mobius/waila/api/IWailaDataAccessor;Lmcp/mobius/waila/api/IWailaConfigHandler;)Ljava/util/List;": [ + 1, + "(Lnet/minecraft/item/ItemStack;Ljava/util/List;Lmcp/mobius/waila/api/IWailaDataAccessor;Lmcp/mobius/waila/api/IWailaConfigHandler;)Ljava/util/List;", + [] + ], + "getWailaStack(Lmcp/mobius/waila/api/IWailaDataAccessor;Lmcp/mobius/waila/api/IWailaConfigHandler;)Lnet/minecraft/item/ItemStack;": [ + 1, + null, + [] + ], + "getWailaTail(Lnet/minecraft/item/ItemStack;Ljava/util/List;Lmcp/mobius/waila/api/IWailaDataAccessor;Lmcp/mobius/waila/api/IWailaConfigHandler;)Ljava/util/List;": [ + 1, + "(Lnet/minecraft/item/ItemStack;Ljava/util/List;Lmcp/mobius/waila/api/IWailaDataAccessor;Lmcp/mobius/waila/api/IWailaConfigHandler;)Ljava/util/List;", + [] + ] + } + }, + "com/mcmoddev/lib/waila/Waila": { + "access": 49, + "super": "java/lang/Object", + "interfaces": [], + "fields": {}, + "methods": { + "init()V": [ + 9, + null, + [] + ], + "register(Lmcp/mobius/waila/api/IWailaRegistrar;)V": [ + 9, + null, + [] + ] + } + }, + "com/mcmoddev/lib/waila/package-info": { + "access": 5632, + "super": "java/lang/Object", + "interfaces": [], + "fields": {}, + "methods": {} + } +} \ No newline at end of file diff --git a/gradle/verification/runtime.gradle b/gradle/verification/runtime.gradle new file mode 100644 index 0000000..63ac5b6 --- /dev/null +++ b/gradle/verification/runtime.gradle @@ -0,0 +1,233 @@ +import java.util.concurrent.TimeUnit +import java.util.jar.JarFile + +def specs = project.ext.mmdLibDependencies.specs +def releaseJar = project.ext.mmdLibBuild.releaseJar +def launcher = project.ext.mmdLibVerification.java8Launcher + +sourceSets { + runtimeTest { + compileClasspath += sourceSets.main.output + configurations.compileClasspath + } + legacyRuntimeTest { + // Independent historical compilation proves that old descriptors still link. + compileClasspath += configurations.compileClasspath + } + legacySourceTest { + java.srcDir 'src/legacyRuntimeTest/java' + compileClasspath = sourceSets.main.output + configurations.compileClasspath + } +} +dependencies { legacyRuntimeTestCompileOnly renamer.dependency(specs.legacy_mmdlib.coordinate) } +tasks.named('check') { dependsOn 'legacySourceTestClasses', 'legacyRuntimeTestClasses' } +def probeJar = tasks.register('runtimeProbeJar', Jar) { + dependsOn 'runtimeTestClasses', 'legacyRuntimeTestClasses' + archiveBaseName = 'mmdlib-runtime-probe' + archiveVersion = '' + archiveClassifier = 'deobf' + destinationDirectory = layout.buildDirectory.dir('runtime-probes-dev') + from sourceSets.runtimeTest.output + from sourceSets.legacyRuntimeTest.output +} +def packagedProbe = renamer.classes(probeJar) { + map.from minecraft.dependency.toSrgFile + archiveClassifier = null + output = layout.buildDirectory.file('runtime-probes/mmdlib-runtime-probe.jar') +} + +def original = { String name -> + def matches = configurations.legacyDependencyArtifacts.resolvedConfiguration.resolvedArtifacts.findAll { + it.moduleVersion.id.toString() == specs[name].coordinate + } + if (matches.size() != 1) throw new GradleException("Missing original runtime artifact: ${name}") + matches.first().file +} +def profiles = [ + Library: [mods: [], ids: '', base: false], + LibraryCompat: [mods: [], ids: '', base: false], + BaseMetals: [mods: ['basemetals', 'orespawn4'], ids: 'orespawn', base: true], + Tinkers: [mods: ['basemetals', 'orespawn4', 'mantle', 'tconstruct', 'conarm'], ids: 'orespawn,mantle,tconstruct,conarm', base: true], + Machines: [mods: ['basemetals', 'orespawn4', 'mekanism', 'tesla', 'redstoneflux', 'cofhcore', 'cofhworld', 'crafttweaker'], + ids: 'orespawn,mekanism,tesla,redstoneflux,cofhcore,cofhworld,crafttweaker', base: true], + IC2: [mods: ['ic2'], ids: 'ic2', base: false], + Thaumcraft: [mods: ['basemetals', 'orespawn4', 'thaumcraft', 'baubles'], ids: 'orespawn,thaumcraft,baubles', base: true] +] +def runtimeTasks = [] +profiles.each { name, profile -> + def task = tasks.register("packagedForge${name}RuntimeTest") { + group = 'verification' + description = "Runs fresh and reload packaged servers for the ${name} profile." + dependsOn releaseJar, packagedProbe, 'verifyReleaseDependencies' + doLast { + String property = name == 'Library' ? 'packagedForgeRuntimeRoot' : 'packagedForgeCompatRuntimeRoot' + String version = name == 'Library' ? project.forge_version : project.forge_compat_version + if (!providers.gradleProperty(property).isPresent()) throw new GradleException("${property} is required") + File source = file(providers.gradleProperty(property).get()) + File forge = new File(source, "forge-1.12.2-${version}-universal.jar") + if (!forge.isFile()) throw new GradleException("Missing packaged Forge runtime: ${forge}") + String manifestClasspath + new JarFile(forge).withCloseable { manifestClasspath = it.manifest.mainAttributes.getValue('Class-Path') } + if (!manifestClasspath) throw new GradleException('Forge manifest is missing its runtime classpath') + File run = layout.buildDirectory.dir("packaged-forge-${name.toLowerCase()}-run").get().asFile + if (!run.canonicalFile.toPath().startsWith(layout.buildDirectory.get().asFile.canonicalFile.toPath())) { + throw new GradleException('Packaged runtime test must stay inside the disposable build directory') + } + project.delete(run) + run.mkdirs() + copy { from forge; into run } + manifestClasspath.trim().split(/\s+/).each { path -> + File dependency = new File(source, path) + if (!dependency.isFile()) throw new GradleException("Missing Forge library: ${dependency}") + copy { from dependency; into new File(run, path).parentFile } + } + File mods = new File(run, 'mods') + copy { from layout.buildDirectory.file("libs/MMDLib-${project.version}.jar"); into mods } + copy { from layout.buildDirectory.file('runtime-probes/mmdlib-runtime-probe.jar'); into mods } + profile.mods.each { dependency -> copy { from original(dependency); into mods } } + new File(run, 'eula.txt').setText('eula=true\n', 'UTF-8') + new File(run, 'server.properties').setText('''level-name=world +level-seed=mmdlib-fg7-acceptance +online-mode=false +server-port=0 +allow-nether=false +generate-structures=false +spawn-protection=0 +max-tick-time=-1 +''', 'UTF-8') + ['fresh', 'reload'].each { phase -> + File marker = new File(run, 'mmdlib-runtime-probe.properties') + project.delete(marker) + File console = new File(run, "${phase}-console.txt") + List command = [launcher.get().executablePath.asFile.absolutePath, + '-Xmx2G', '-Dforge.logging.console.level=info', + '-Dmmdlib.probe.legacyFactory=com.mcmoddev.lib.recipe.conditions.HammerEnabled', + "-Dmmdlib.probe.version=${project.mod_version}", + "-Dmmdlib.probe.phase=${phase}", "-Dmmdlib.probe.basemetals=${profile.base}", + "-Dmmdlib.probe.mods=${profile.ids}", "-Dmmdlib.probe.marker=${marker.absolutePath}", + '-jar', new File(run, forge.name).absolutePath, 'nogui'].collect { it.toString() } + Process process = new ProcessBuilder(command).directory(run).redirectErrorStream(true).redirectOutput(console).start() + if (!process.waitFor(240, TimeUnit.SECONDS)) { + process.destroyForcibly() + throw new GradleException("${name} ${phase} exceeded the 240-second bound; see ${console}") + } + if (process.exitValue() != 0 || !marker.isFile()) throw new GradleException("${name} ${phase} failed; see ${console}") + Properties result = new Properties() + marker.withInputStream { result.load(it) } + if (result.version != project.mod_version || result.phase != phase || result.basemetals != profile.base.toString() + || result.mods != profile.ids || result.getProperty('legacy-api') != 'passed' + || result.getProperty('canonical-namespace') != 'zone.moddev.mc.mmdlib') { + throw new GradleException("Invalid ${name} ${phase} acceptance marker") + } + List fatal = ['NoClassDefFoundError', 'NoSuchMethodError', 'NoSuchFieldError', + 'IllegalAccessError', 'LinkageError', 'Encountered an unexpected exception', 'LoaderException'] + if (fatal.any { console.getText('UTF-8').contains(it) }) throw new GradleException("${name} ${phase} logged a runtime failure") + if (!new File(run, 'world/level.dat').isFile()) throw new GradleException("${name} ${phase} did not save its disposable world") + } + } + } + if (!runtimeTasks.isEmpty()) { + def previous = runtimeTasks.last() + task.configure { mustRunAfter previous } + } + runtimeTasks.add(task) +} +tasks.register('packagedForgeRuntimeTest') { + group = 'verification' + dependsOn runtimeTasks +} + +// Opt-in client qualification uses a previously audited release jar instead of IDE output. +if (providers.gradleProperty('mmdLibClientSmoke').isPresent()) { + String profileName = providers.gradleProperty('mmdLibClientSmoke').get() + def profile = profileName == 'Library' ? profiles.Library : profiles.BaseMetals + if (profileName == 'Integrations') { + profile = [mods: specs.findAll { name, spec -> spec.compile && name != 'ic2' }.keySet().toList() + ['basemetals', 'orespawn4', 'cofhworld'], + ids: 'orespawn,mantle,tconstruct,conarm,thaumcraft,baubles,cofhcore,redstoneflux,jei,waila,tesla,mekanism,crafttweaker', base: true] + } else if (profileName == 'IC2') { + profile = [mods: ['ic2', 'jei', 'hwyla'], ids: 'ic2,jei,waila', base: false] + } else if (!(profileName in ['Library', 'BaseMetals'])) { + throw new GradleException('mmdLibClientSmoke must be Library, BaseMetals, Integrations, or IC2') + } + def clientProfile = profile + tasks.matching { it.name == 'runClient' }.configureEach { + timeout = java.time.Duration.ofMinutes(4) + dependsOn packagedProbe + doFirst { + File candidate = file(providers.gradleProperty('mmdLibClientCandidateJar') + .getOrElse("build/libs/MMDLib-${project.mod_version}.jar")) + if (!candidate.isFile()) throw new GradleException('Build and audit the candidate before client qualification') + File run = file(providers.gradleProperty('mmdLibRunDirectory').getOrElse('run')) + run.mkdirs() + File mods = new File(run, 'mods') + copy { from candidate; into mods } + copy { from layout.buildDirectory.file('runtime-probes/mmdlib-runtime-probe.jar'); into mods } + clientProfile.mods.each { name -> copy { from original(name); into mods } } + // Launch the production client: MCP development launches cannot qualify + // the access transformers shipped by optional SRG integration jars. + if (!providers.gradleProperty('packagedForgeCompatRuntimeRoot').isPresent() + || !providers.gradleProperty('packagedClientAssetsRoot').isPresent()) { + throw new GradleException('Client qualification requires packagedForgeCompatRuntimeRoot and packagedClientAssetsRoot') + } + File forge = new File(file(providers.gradleProperty('packagedForgeCompatRuntimeRoot').get()), + "forge-1.12.2-${project.forge_compat_version}-universal.jar") + File vanilla = file(providers.gradleProperty('packagedClientVanillaJar').getOrElse( + new File(gradle.gradleUserHomeDir, + 'caches/minecraftforge/forgegradle/mavenizer/caches/minecraft_tasks/1.12.2/client.jar').path)) + File assets = file(providers.gradleProperty('packagedClientAssetsRoot').get()) + if (!forge.isFile() || !vanilla.isFile() || !new File(assets, 'indexes/1.12.json').isFile()) { + throw new GradleException('Missing installed production Forge, vanilla client, or Minecraft 1.12 assets') + } + def libraries = classpath.files.findAll { File entry -> + entry.name.endsWith('.jar') && !(entry.name.startsWith('forge-') + || entry.name.startsWith('client-extra-') || entry.name.startsWith('slime-launcher-') + || entry.name.startsWith('legacydev-') || entry.name.startsWith('MMDLib-')) + } + File natives = new File(run, 'natives') + String nativeOs = System.getProperty('os.name').toLowerCase().contains('win') ? 'windows' + : (System.getProperty('os.name').toLowerCase().contains('mac') ? 'osx' : 'linux') + libraries.findAll { it.name.endsWith("-natives-${nativeOs}.jar") }.each { nativeJar -> + copy { from zipTree(nativeJar); include '*.dll', '*.so', '*.dylib', '*.jnilib'; into natives } + } + // The universal jar's server manifest names minecraft_server.1.12.2.jar. + // Isolate this unchanged jar so those relative entries cannot shadow + // the vanilla client classes on the explicit client classpath. + File clientForge = new File(run, "client-libraries/${forge.name}") + copy { from forge; into clientForge.parentFile } + setClasspath(project.files(clientForge, vanilla, libraries)) + mainClass.set('net.minecraft.launchwrapper.Launch') + setArgs(['--tweakClass', 'net.minecraftforge.fml.common.launcher.FMLTweaker', + '--version', '1.12.2-forge', '--username', 'MMDLibSmoke', + '--accessToken', '0', '--userType', 'legacy', '--gameDir', run.absolutePath, + '--assetsDir', assets.absolutePath, '--assetIndex', '1.12']) + setJvmArgs(['-Xmx3G']) + setSystemProperties(['java.library.path': natives.absolutePath, + 'fml.doNotBackup': 'true', 'fml.queryResult': 'confirm']) + systemProperty 'mmdlib.probe.client', 'true' + systemProperty 'mmdlib.probe.legacyFactory', 'com.mcmoddev.lib.recipe.conditions.HammerEnabled' + systemProperty 'mmdlib.probe.version', project.mod_version + systemProperty 'mmdlib.probe.basemetals', clientProfile.base.toString() + systemProperty 'mmdlib.probe.mods', clientProfile.ids + systemProperty 'mmdlib.probe.phase', 'client-integrated' + systemProperty 'mmdlib.probe.marker', new File(run, 'mmdlib-client-probe.properties').absolutePath + } + doLast { + File run = file(providers.gradleProperty('mmdLibRunDirectory').getOrElse('run')) + File marker = new File(run, 'mmdlib-client-probe.properties') + if (!marker.isFile()) throw new GradleException('Client did not complete its integrated-world smoke') + Properties result = new Properties() + marker.withInputStream { result.load(it) } + if (result.version != project.mod_version || result.phase != 'client-integrated' + || result.basemetals != clientProfile.base.toString() || result.mods != clientProfile.ids + || result.getProperty('legacy-api') != 'passed' + || result.getProperty('canonical-namespace') != 'zone.moddev.mc.mmdlib' + || !new File(run, 'saves/mmdlib-smoke/level.dat').isFile()) { + throw new GradleException('Client acceptance marker or saved world is incomplete') + } + String log = new File(run, 'logs/latest.log').getText('UTF-8') + if (['NoClassDefFoundError', 'NoSuchMethodError', 'NoSuchFieldError', 'IllegalAccessError', + 'LinkageError', 'Encountered an unexpected exception', 'LoaderException'].any { log.contains(it) }) { + throw new GradleException('Packaged client logged a runtime failure') + } + } + } +} diff --git a/gradle/verification/source-baseline.json b/gradle/verification/source-baseline.json new file mode 100644 index 0000000..5c6b244 --- /dev/null +++ b/gradle/verification/source-baseline.json @@ -0,0 +1,433 @@ +{ + "src/main/java/com/mcmoddev/lib/MMDLib.java": "0cf2a261ffd2ff7fb7cffec75534f7f65d4ba4686a0dc74c91078eca26f19017", + "src/main/java/com/mcmoddev/lib/TypeRegistrationEvents.java": "2096c66780461399031a211cf01bd304e8e9a06bbec3713f996ea977204ce030", + "src/main/java/com/mcmoddev/lib/asm/ASMHooks.java": "4329720f96d252648313d457adece9da1855b5fbfe49bad0f35262db6c13ac93", + "src/main/java/com/mcmoddev/lib/asm/ASMPlugin.java": "40670b911e136e10e00ecaa889eeed0e61c09235fa9935b9fbc5f6cfbc6e31b9", + "src/main/java/com/mcmoddev/lib/asm/ASMTransformer.java": "03fbd682fd4745f7518ee4735b74745d876f34d37f78ccf081e9cd5d3125da10", + "src/main/java/com/mcmoddev/lib/asm/ClassNodeBase.java": "592c9cfbc5b3f2c456221f9f20897baca7ff4a937642cac372abab299d59d7ae", + "src/main/java/com/mcmoddev/lib/asm/EntityHorseTransformer.java": "d98970897efe273c3aa82ee831cc1a46dcfb7a08c67cfcff1a8a0567fd142adb", + "src/main/java/com/mcmoddev/lib/asm/HorseArmorTypeTransformer.java": "a138013f95d22783ba6b1b4ce41b710734097db2a1addc86e45aa0f496dfe026", + "src/main/java/com/mcmoddev/lib/asm/ITransformer.java": "bcfbcaa41c7df5b6a0b1327cb443c68d0f01fbfe02dd1771909d9e0cce469f7a", + "src/main/java/com/mcmoddev/lib/block/BlockExplosiveOre.java": "b761aeacd252341b2f0bc6331b070d34ddaf7fb6b1fdda049c6cbd580f301e3b", + "src/main/java/com/mcmoddev/lib/block/BlockHumanDetector.java": "54a3aba02e37c85dadfac39c86308d71fd768cc1e63367d436b6f03911f2efb2", + "src/main/java/com/mcmoddev/lib/block/BlockMMDAnvil.java": "f35aeeb3c134f3df768d365e7e1aabf4edf6d1380c6ace65e6082f06efad307e", + "src/main/java/com/mcmoddev/lib/block/BlockMMDBars.java": "1101d7223ef3197950e1ed8a8bc6533d8de4442a19973fb22ae07f2e544a7f7b", + "src/main/java/com/mcmoddev/lib/block/BlockMMDBlock.java": "9752bf3fd8ec3d77439f01036e61b154ea4ab0c88327795d32fab9c90b9394d1", + "src/main/java/com/mcmoddev/lib/block/BlockMMDBookshelf.java": "af321175cbc5cb6f9d09cde65653e3a852d7f9d109ceea94063b452ade4f6bc5", + "src/main/java/com/mcmoddev/lib/block/BlockMMDButton.java": "642292cd9f76fadc3c865f6a1ad26a702f2d61f4ced3c9f3542e5ff10eb2ac8b", + "src/main/java/com/mcmoddev/lib/block/BlockMMDDoor.java": "000a163870044b86d2483d06e91d7b5b8d96fd8fd18eca64c4c3d0b3088f604a", + "src/main/java/com/mcmoddev/lib/block/BlockMMDEndOre.java": "d0ee19ef869e371bbb9ec751a8e82b28b4b896d97930e82f7a88dfd50e3771fc", + "src/main/java/com/mcmoddev/lib/block/BlockMMDFence.java": "9735c674793bbcf80d472ee92dbb163bfd999e94326a9ae1ba09af78eeee0fcc", + "src/main/java/com/mcmoddev/lib/block/BlockMMDFenceGate.java": "063aff4dc6627cf65ceea890c3da539a7dc6c4dc33c3133089a1c7d046970a5f", + "src/main/java/com/mcmoddev/lib/block/BlockMMDFlowerPot.java": "8849ae7ccfb729b1d64277c8489b617c402995dfda080322a2f33e5021f7b55e", + "src/main/java/com/mcmoddev/lib/block/BlockMMDLadder.java": "ebca860814cbdcf6081c61635ede0f5306f48b3f89b3afd0b2f3b8f7f0bbb29a", + "src/main/java/com/mcmoddev/lib/block/BlockMMDLever.java": "ee1a86f381cdcd1b53e867e2d6e220c2a20c0051eff4e2b48030fe3082742441", + "src/main/java/com/mcmoddev/lib/block/BlockMMDNetherOre.java": "99bc09326e25b4cabf165cf796f15398bb8391d7978bd0027af7f8214c105a7e", + "src/main/java/com/mcmoddev/lib/block/BlockMMDOre.java": "fc33e78e10bff41d67bd7507cff262e09e2325b933dc7841f8ac09fce32c0430", + "src/main/java/com/mcmoddev/lib/block/BlockMMDPlate.java": "27f9dd9fdb849c499357b1d8a8e3f75b0d52bbce6d4a30b5e1ac1153ed85832e", + "src/main/java/com/mcmoddev/lib/block/BlockMMDPressurePlate.java": "2dd5d5eb58108d03b5947f9bbf858a9a4370a793bec1cd1c3d52510fb7089966", + "src/main/java/com/mcmoddev/lib/block/BlockMMDSlab.java": "cc4e1bb39959eaf45e58c5335fe488d891c4c16f5d353f48d150e4c62550e567", + "src/main/java/com/mcmoddev/lib/block/BlockMMDStairs.java": "ebf3bc9f7eced1557edbf1fe705783489438051888a642ecbbb2dcda948ae555", + "src/main/java/com/mcmoddev/lib/block/BlockMMDTrapDoor.java": "345c8b9388fe7a389819ef4a1dd8f324c6efc7e1d48cb0b06f1c3e1731e42a70", + "src/main/java/com/mcmoddev/lib/block/BlockMMDTripWireHook.java": "53eea4d49140b8f9234e8ed355c4db48735f6eb419f7cd9dd4c8510fd0df971c", + "src/main/java/com/mcmoddev/lib/block/BlockMMDWall.java": "9f1f1e97e5bd03c7af7ad55da77905d8d9784dc775af96e82fe0912d10239a86", + "src/main/java/com/mcmoddev/lib/block/BlockMoltenFluid.java": "f8e41bd07d251801aacbd0ea55b7aa21f95be5cff1ed349e4edd4014396d3cfd", + "src/main/java/com/mcmoddev/lib/block/InteractiveFluidBlock.java": "f659770f2dcab6ec8330c9101bec889369d21798464a4fc528b6bc86906cf04b", + "src/main/java/com/mcmoddev/lib/block/MMDBlockWithGui.java": "bf2eeab0a31b543e0deb45f0fdcb220a9ae674f945865e81d331a13ea2c1e09e", + "src/main/java/com/mcmoddev/lib/block/MMDBlockWithTile.java": "055eaadf29e0a1c556356a1659193e03d88bcaf077702e4dab460ff0daa92706", + "src/main/java/com/mcmoddev/lib/block/package-info.java": "2b3f5e0f97efc978e299943c432218cd621cee89e595d0d7120b25871079ceb7", + "src/main/java/com/mcmoddev/lib/capability/CapabilitiesContainer.java": "a805177086ca48ea7d3c2065890f0f475c3bab55404e7b026bc5b08529accbcd", + "src/main/java/com/mcmoddev/lib/capability/ICapabilitiesContainer.java": "34b44f39969298a2046f638972d445915f9391381c894b6a17f8cc9985651b99", + "src/main/java/com/mcmoddev/lib/capability/MMDCapabilities.java": "73a2a9d1b87388babcb7c4362b33b323a9b31c37786d7099de3df49839d848ad", + "src/main/java/com/mcmoddev/lib/capability/package-info.java": "44ccef4bd2746d2b20a5d2b7bd44a049bdf8f9342261dbe946cf1a53c122189d", + "src/main/java/com/mcmoddev/lib/client/registrations/RegistrationHelper.java": "00e30620442a4f7f9a6832e8230da40f6100f70480837296ca447e77f4ade65f", + "src/main/java/com/mcmoddev/lib/client/registrations/package-info.java": "a093fe055c3790ea182e220b53bea2ac6b25d81abf79d556f70038de88cf4b62", + "src/main/java/com/mcmoddev/lib/client/renderer/FluidStateMapper.java": "15874bc940fb4db40d6ece97e0eba383e8020a10dfc446016b9fc280412955d3", + "src/main/java/com/mcmoddev/lib/client/renderer/RenderCustomArrow.java": "db33b894c29b38ced79692a0557c5bfb7b9ea51719b6be42e8dc1c2083a0fb0e", + "src/main/java/com/mcmoddev/lib/client/renderer/RenderCustomBolt.java": "8a9f8380ce5a09de4e5481d888fa63d73b872ab197b9a2554dc11524f0339c53", + "src/main/java/com/mcmoddev/lib/client/renderer/RenderHelpers.java": "c9f5897fdcde8b1009e9a5dc52690d44a77f51e402a470766675aa79ea17e0ff", + "src/main/java/com/mcmoddev/lib/client/renderer/package-info.java": "0142e9b867590fe700a6780cca4d3658d8052c7cf6eb712a6e79018d2b928558", + "src/main/java/com/mcmoddev/lib/common/IModInstanceProvider.java": "549f006037acf1f2dd0f4eced174db05d142f37903e905e5ac12bb5eb087b25e", + "src/main/java/com/mcmoddev/lib/common/item/IHorseArmor.java": "9f6f17cc3ccfbb79502ae4d0ba4d7a7fc079f77032942e3a78ae581a436d2bb2", + "src/main/java/com/mcmoddev/lib/common/item/package-info.java": "97cb2af1809d4ea4ebbcd0a69c6fa91101620bb2f8b52e21b614533d327031bc", + "src/main/java/com/mcmoddev/lib/common/package-info.java": "ea7779273558fa2986e52bdbfca1c2f5981715027ab6192e32938ed83127b0fc", + "src/main/java/com/mcmoddev/lib/container/BaseItemStackWidgetProvider.java": "10964559646ae7cef99909266307f4bf2d037925f49257928b5b93c5d36cbe2f", + "src/main/java/com/mcmoddev/lib/container/GuiHandlerIds.java": "773be2c7a07cd6b16d45665091729b95688c81cf9aeda8a652adbf08d6beeccd", + "src/main/java/com/mcmoddev/lib/container/IContainerSlot.java": "55a7b63c0cca831784f6a897fd025d2fdec197ba49678c0ea3759667f593f8a2", + "src/main/java/com/mcmoddev/lib/container/IGuiProvider.java": "885c633c48ef136be9b770d7a03f7e7ea213d0a6cd3d2e334d76a0b3e14e30f9", + "src/main/java/com/mcmoddev/lib/container/IItemGuiProvider.java": "47bed85ba489c965c44e5369f1da169ad317e627fc711fd7c142b26befe56610", + "src/main/java/com/mcmoddev/lib/container/IItemStackGuiProvider.java": "fed9597f87a5e0ed3738eabe312f9bb1b8146b4a7126f994284c76587b9ea949", + "src/main/java/com/mcmoddev/lib/container/IWidgetContainer.java": "12115b513b11cb0c463005cb8cb942c7a0fe8742e63692dd9c2fa3597ef7ac14", + "src/main/java/com/mcmoddev/lib/container/IWidgetContainerProxy.java": "40e9a4ef5f985871a9bd7a8e46381b15a439bba5d9a9a6ced5fbe7ca24e8eb3c", + "src/main/java/com/mcmoddev/lib/container/MMDContainer.java": "e4d1a7bddf6f59edc29db80cf40ae3ea461690882627b66fc29823958e3e989f", + "src/main/java/com/mcmoddev/lib/container/MMDGuiHandler.java": "91b91998e3cac60114d7da7c2580df7d69d033330108c103b96b0d25f2ef3cb8", + "src/main/java/com/mcmoddev/lib/container/PlayerInventory.java": "14a6848849a1a35c42cc6249dfc7be171ec8b4cbe43b28e7d778ef5853b48ff6", + "src/main/java/com/mcmoddev/lib/container/PlayerInventoryInfo.java": "6b09ded337aad35e248cc54a1c9a50800cc92e868cbdfee9909ac8599199b1e4", + "src/main/java/com/mcmoddev/lib/container/gui/BaseButtonWidgetGui.java": "5312ad8a1c2e39efc614d5b71b47ec3751105013019791f80458585e1b8ca5c1", + "src/main/java/com/mcmoddev/lib/container/gui/BaseSpriteGui.java": "4e013b0eec9bfee7c39733e24f9ec1625c2c8a18bda26e66c406f2a60313ebc8", + "src/main/java/com/mcmoddev/lib/container/gui/BaseWidgetGui.java": "97b266d3deae6ba560b638782ee2fb99d097bbd48a0639289cba902ba959c950", + "src/main/java/com/mcmoddev/lib/container/gui/ColorOverlayPiece.java": "6a57f43cd45964bede3e9e9a5ba5d1419c783f2deabb45011a2409bb3fee5c0c", + "src/main/java/com/mcmoddev/lib/container/gui/FeatureWrapperGui.java": "3db0d987ffc6a0a4ae48499265d5e871f45fe9bb10f4e0d2281b981a9bff060e", + "src/main/java/com/mcmoddev/lib/container/gui/FluidWidgetGui.java": "47bc919094260e266f89b2fdc69db7b0e470613060b6fe9685bef504870a8174", + "src/main/java/com/mcmoddev/lib/container/gui/GuiContext.java": "b819a0d28454846451e815990043a54b4e558e88a48ec2630295605b2b8fad24", + "src/main/java/com/mcmoddev/lib/container/gui/GuiPieceLayer.java": "6bac6b84fdf131f22aec717d02c95716e953d101c9a9cedd9d4959b272716f64", + "src/main/java/com/mcmoddev/lib/container/gui/GuiSprites.java": "34e398441e63761bb07f5932432485c49cc6f16a09641c549f4f3005fc2a3a10", + "src/main/java/com/mcmoddev/lib/container/gui/GuiTextures.java": "e12ff6b914c621b086c51dd3c5342d18aca689a28a1c4cf5e8bb3ebd49b98a42", + "src/main/java/com/mcmoddev/lib/container/gui/IFocusableHandler.java": "a2cfe0d063b03b7134ee59738d0b8eb22bd94890c3a6dfe691cd0bf83caab655", + "src/main/java/com/mcmoddev/lib/container/gui/IFocusableWidgetGui.java": "d07cc18974267996509cb3f2517bb7d32ec9fcab6b240197eab17a6a5233db63", + "src/main/java/com/mcmoddev/lib/container/gui/IGuiSprite.java": "ce66d1ccf60be57231aa17fead8c9e6c68bdc4fbf9f527256d80f284cd640e9b", + "src/main/java/com/mcmoddev/lib/container/gui/IGuiTexture.java": "ed27ba374bed9c9b19542353d6ae73e341077d67cfd3304ee8f53a023dbfe4ff", + "src/main/java/com/mcmoddev/lib/container/gui/IWidgetGui.java": "f962533ed56fbeb6734545d3a71338ff2008cc643ab2fbaf383c6616ef0aef67", + "src/main/java/com/mcmoddev/lib/container/gui/IWidgetGuiDebugInfo.java": "542aa16b367f4770946accb9b0564ad8fc23c3bf15c351ba8910d9dfd45b4b00", + "src/main/java/com/mcmoddev/lib/container/gui/IWidgetLayout.java": "512ddba44a0a6bdea626e0eeaf1dd44fef103e730b896e2a1ee022fe25ca9de1", + "src/main/java/com/mcmoddev/lib/container/gui/IWidgetLayoutDebugInfo.java": "b16eae603bebd8bcac9acf49d61988f2665b4eebcb1c38330aece71d746cec9d", + "src/main/java/com/mcmoddev/lib/container/gui/ImageButtonWidgetGui.java": "39ad62fb716f96a30120b33736dc9dd73265996c0981f7617e3f6b6fc6ba8e5c", + "src/main/java/com/mcmoddev/lib/container/gui/InventoryGrid.java": "299e6ebc0afc4e37979c0aea942d0c60c4554a35f193cb17914a4b09fd9acbc8", + "src/main/java/com/mcmoddev/lib/container/gui/LabelWidgetGui.java": "2b73e6178ec383577fcb9dedc0bdc76cd123f3550d0bf13a60ca215f516f4dae", + "src/main/java/com/mcmoddev/lib/container/gui/MMDGuiContainer.java": "428c3df278c6c16d05372d6713012c7a951c9585fa402ac446cc7dca14c2bd3d", + "src/main/java/com/mcmoddev/lib/container/gui/SlotGuiWidget.java": "ad45d6da9780bcebdb54a75a2f164005fec55c2023f7f914088e239ae625f30c", + "src/main/java/com/mcmoddev/lib/container/gui/SpriteBackgroundGui.java": "e3895b6ab8ee2b3f9972469ebee165dd97b7280d6f410d7224b71c9cb27f3721", + "src/main/java/com/mcmoddev/lib/container/gui/SpriteForegroundGui.java": "eff32b95903bab3a3ff6243c35eb693f086e79884f3f1751e0a3255112fcebfe", + "src/main/java/com/mcmoddev/lib/container/gui/TextButtonWidgetGui.java": "9fbd2a08ce921833950786dc2eeca24ba85af3db3f11364f656e13f5206a382e", + "src/main/java/com/mcmoddev/lib/container/gui/TextEditWidgetGui.java": "bdaccce913bba24f59e7a6e0cf35701040ae2f179e1215de16127cbcbe0c08d4", + "src/main/java/com/mcmoddev/lib/container/gui/layout/BaseGridLayout.java": "4dba217b6e46b11cfc43959d2d9246e96a0205391f013b0c44f24f9243aee5de", + "src/main/java/com/mcmoddev/lib/container/gui/layout/BaseLayout.java": "07552d6a79328742625250c6006346661fd1e2928f1c43909562704e91f45da9", + "src/main/java/com/mcmoddev/lib/container/gui/layout/CanvasLayout.java": "a7c1542551a68d13d24cd4223acc7c679d05161128d46cbd5b29027a403488df", + "src/main/java/com/mcmoddev/lib/container/gui/layout/GridLayout.java": "88dd8d35048a85e43b9a0f9c3bb7b4974b6b9575a7c07b2f2c9c749163de51cb", + "src/main/java/com/mcmoddev/lib/container/gui/layout/HorizontalStackLayout.java": "395a9b8729d4bf8690e177ac64db195dc0fe8728aaba1125ac88977c6c7bb9f0", + "src/main/java/com/mcmoddev/lib/container/gui/layout/SinglePieceWrapper.java": "9f0c4e4e465392e0faa2385563d1afe471f789dd467954b0ddce259ff2666f79", + "src/main/java/com/mcmoddev/lib/container/gui/layout/VerticalStackLayout.java": "c6ba09dfbf7fcb4a78bd9d2f82cf76a28283d50857be5096faeffd4b8c8b3bd8", + "src/main/java/com/mcmoddev/lib/container/gui/layout/package-info.java": "6c9a5a47f37b96920b1cda6a91a49271f14ecc3b2e4a15e276cee8c032b024bb", + "src/main/java/com/mcmoddev/lib/container/gui/package-info.java": "621e7310bcb8339bdf07f82edb2a66e477ec98968d0ca618524a0b97eba47dbd", + "src/main/java/com/mcmoddev/lib/container/gui/sprite/FluidSprite.java": "ee5dccbdcb353f5a32e7d61ce0b8696fb069d930cfe329affcf5594cb1dec9da", + "src/main/java/com/mcmoddev/lib/container/gui/sprite/MinecraftStitchedTextures.java": "e4b8d7c72c2aab273dafe2e256a52be4ab2e515825fe392a86121d84ad635a64", + "src/main/java/com/mcmoddev/lib/container/gui/sprite/package-info.java": "8e49b5f48ccfda370bdc85d9571211f85b3d608498392d1f32b62080d9aabed7", + "src/main/java/com/mcmoddev/lib/container/gui/util/Padding.java": "f82f00e2048ecde6114d7fea2885de3e582b40fd12d8fe89fb1663784443a821", + "src/main/java/com/mcmoddev/lib/container/gui/util/Size2D.java": "45ee65286a5a35b07f497cf8674b878abdeb8c6715f753b8108da0680d251270", + "src/main/java/com/mcmoddev/lib/container/gui/util/TexturedRectangleRenderer.java": "ac701c5ecb2944707af50e0d2e0417add9af21fd50d0d82d1b5ee16c0eea433a", + "src/main/java/com/mcmoddev/lib/container/gui/util/WidgetGuiIterable.java": "441aee2f374d27aac59973d0518a66187df16f95e3c4aff9c7b280a71e3f7c78", + "src/main/java/com/mcmoddev/lib/container/gui/util/package-info.java": "3f2a18d36d36bdf0bd7b2e07c89b96ae028a600cf19ff6646ba6f507fdc85137", + "src/main/java/com/mcmoddev/lib/container/package-info.java": "f54f7b26e81e9da431817dc58f210077e7e9240f79ed9212f660af626fdcd6d7", + "src/main/java/com/mcmoddev/lib/container/slot/BaseContainerSlot.java": "59101d3f43fd76087a86801db8a8f584cdb961a28b5f1e71f7747be549b97c46", + "src/main/java/com/mcmoddev/lib/container/slot/FilteredSlot.java": "0c6f3caf2ebfe6b1da9c2165dcf4e905bbf6463e034db8a8323af22032e6f277", + "src/main/java/com/mcmoddev/lib/container/slot/ItemStackHandlerSlot.java": "0ac997bcef61f94c1783b324f8f4b01e229a13b7b585bda33f382eb4b8c40076", + "src/main/java/com/mcmoddev/lib/container/slot/PlayerInventorySlot.java": "89df36e11fbb90966eded312f1647246be9a8dd27b93660df5080ce2a09a11e3", + "src/main/java/com/mcmoddev/lib/container/slot/package-info.java": "0d56ea5439cd43216e841b8fb16ff9cce769f0430354d9c14661f68c75902ba0", + "src/main/java/com/mcmoddev/lib/container/widget/ActionIntWidget.java": "dc1fec2410b09901a3ff99acd908b3d310c4030bf86abd6b4897f431664caffc", + "src/main/java/com/mcmoddev/lib/container/widget/ActionTextWidget.java": "9984ff5841c1a394c59223a1800f1625acc77e9d047724445b39048e6751750d", + "src/main/java/com/mcmoddev/lib/container/widget/ActionWidget.java": "b493935943a0f7b7f5c8207b40be8e984589cd76043a286bc846377c7a6a6dd7", + "src/main/java/com/mcmoddev/lib/container/widget/BaseContextualWidget.java": "d4b255bcc429580a086a96adb52caff683652dbd418e08297e36ddf177a1e76a", + "src/main/java/com/mcmoddev/lib/container/widget/BaseWidget.java": "f5ea5ebb26976d9dad8a23b5a004d85705906238ec271afa18a9e1ced7f982eb", + "src/main/java/com/mcmoddev/lib/container/widget/DataWidget.java": "695b3615b227b7d51f99bad51c8ffe955b6dfe7c128c8a004e115dd548456a4f", + "src/main/java/com/mcmoddev/lib/container/widget/IContextualWidget.java": "6af7c3f4c962cab5ee68c4b02cfbbe8a3136110eff4968a2d349afc4ac3a9d76", + "src/main/java/com/mcmoddev/lib/container/widget/IProxiedWidget.java": "5c74669e453c75b1b513aa0df027f56c87e067925edaf6d34fa28aaaaa88b39d", + "src/main/java/com/mcmoddev/lib/container/widget/IProxyWidget.java": "c66a6fadacae9f375d7e5280abd0bc171fa00cd20a9bc656b622371ec9ffadc3", + "src/main/java/com/mcmoddev/lib/container/widget/IWidget.java": "8c319457a4789e7c9fc6a0e4fc10d0414382fcde129ad90d8ae83107bbcc3c8a", + "src/main/java/com/mcmoddev/lib/container/widget/ItemStackHandlerWidget.java": "d5542d755da983be1d869593ffdb099d653223236f2459bc2b7bde17a4701f54", + "src/main/java/com/mcmoddev/lib/container/widget/PlayerInventoryWidget.java": "f872248b8cc33b97ad695206e04b87abc6dbf95e9e5b2ca8e85e22d56c1adbda", + "src/main/java/com/mcmoddev/lib/container/widget/package-info.java": "ab89c3d4d5befe93cc08138047893d48cfbc5a1139056bda4ae738feb85d3674", + "src/main/java/com/mcmoddev/lib/crafttweaker/CrusherRecipeAddAction.java": "e9eec9ecf752fdc2850b30ed2d2f7290e231947c7e7a22c775d843cded023c92", + "src/main/java/com/mcmoddev/lib/crafttweaker/CrusherRecipeRemoveAction.java": "5bb868e0738d199b5aba68962e977f90d4da41756219c02b8a825149d9fe13a2", + "src/main/java/com/mcmoddev/lib/crafttweaker/CrusherRecipes.java": "110b59cbf207342d7608ad12412c71aa00824bf19ef08f604906be200dd67aee", + "src/main/java/com/mcmoddev/lib/crafttweaker/package-info.java": "d8d70964d7a9ddb610ebe2ea63180f05a91b5c73c6f533104a2dc3153cd3a895", + "src/main/java/com/mcmoddev/lib/data/ConfigKeys.java": "a92f5cd2b7fd90c1a38499d9a7b805e22a775a0e08967869762d2e405d5c38d1", + "src/main/java/com/mcmoddev/lib/data/MaterialNames.java": "eb1d17c4ecdca33c429023006563b83ca87d6a6c036f73988efa666d3134d687", + "src/main/java/com/mcmoddev/lib/data/MaterialStats.java": "32ee348ee7ca8d3e48883c983e35a7bc2808c51b8e2f539df27f94c056f031c9", + "src/main/java/com/mcmoddev/lib/data/NameToken.java": "b0863a9810da937e972eeeef75279f8ad8a41b9d3e754710a403b240a5f0a349", + "src/main/java/com/mcmoddev/lib/data/NameTokens.java": "b3dbce2c8ccdd7cdf2e8d4cd82efea80b2410b26f55a9ab84f6b7afbf9136233", + "src/main/java/com/mcmoddev/lib/data/Names.java": "6eadbed0f81a0ee613269cb3575635e7df759fcf2c911f1868653f218bd31f79", + "src/main/java/com/mcmoddev/lib/data/SharedStrings.java": "750119961ba8c560a4d728ed856d37a12babd97a11a912f26551d8b2bc58bfc2", + "src/main/java/com/mcmoddev/lib/data/package-info.java": "6ecfcb242124669271ce6cbfe5a2676793a19586189ff7868c6c7138a725fb53", + "src/main/java/com/mcmoddev/lib/energy/BaseEnergyValue.java": "29e58316f930a039d5bf984aa657b1ad3a2a4f1a22311399d26d027c15f4ae0b", + "src/main/java/com/mcmoddev/lib/energy/BaseGenericEnergyStorage.java": "e440da7aa655a7ed9b8b1c48a87f6bd6c3d05e2267cbe6ad02ca0a4d37584984", + "src/main/java/com/mcmoddev/lib/energy/EnergySystemRegistry.java": "fad83de1be49cfd9979ac656a8100acb91a68b7631a5f478f1d7065a230a7da4", + "src/main/java/com/mcmoddev/lib/energy/ForgeEnergyAdapter.java": "aca5bc617e2244172bafac2a1f4fd557510e78162a43615c9d90eb9415e30d30", + "src/main/java/com/mcmoddev/lib/energy/ForgeEnergyStorage.java": "850f2b1710636bcf59f83427ff36997d01558c654a834947c8433ffdddbfbcad", + "src/main/java/com/mcmoddev/lib/energy/ForgeEnergySystem.java": "a947fe29b6ee7e3f0c19ab00e0f429542d500020ed8b88a87d3e64f7f68b5481", + "src/main/java/com/mcmoddev/lib/energy/ForgeEnergyValue.java": "39197e9137777ad6845d3226076a48b7001f3894da58ed0d80cc58c157c2ae2d", + "src/main/java/com/mcmoddev/lib/energy/IEnergyAdapter.java": "c509a0c6dd755ab3735f6ca58679fabc22827973eb4449813479ac3c41f355b2", + "src/main/java/com/mcmoddev/lib/energy/IEnergyCapabilityProvider.java": "32a0959af3845b59bed7359d54a5fbeda1e47e940c02a73b663daa998b28f65a", + "src/main/java/com/mcmoddev/lib/energy/IEnergySystem.java": "c79be7598be9d503651feed8e875ac1b98fcdbd13744066b3d17851fc1ae38fa", + "src/main/java/com/mcmoddev/lib/energy/IEnergyValue.java": "4f52c0a88c7378ee3ec9bfc53c3db50072378c6d51e26a02e3f0f0f4357c7c12", + "src/main/java/com/mcmoddev/lib/energy/IForgeEnergyCompatible.java": "15e5356cecdd1aadf28b9a49d6e43bcb71ddbcb25ea2571e3bbb0894c1d86e95", + "src/main/java/com/mcmoddev/lib/energy/IGenericEnergyStorage.java": "6c9a4f5ffff4e215797bb45373424d10502e0bb0e7ca645fa301b331cd84ba68", + "src/main/java/com/mcmoddev/lib/energy/Readme.md": "cc3aa6fd35bbe36bf9a35b6efc324783499cc8ab79d6ddb09ef9f6abc32faa0e", + "src/main/java/com/mcmoddev/lib/energy/ic2/package-info.java": "cadad01a35a50688d8ae5453794d8b964ab4ef266ca6aad9f518e2f759a4541b", + "src/main/java/com/mcmoddev/lib/energy/mekanism/package-info.java": "aeff575f3e2cb909f4c1b0db4c691573bd82227369c7ae14def034eec916f90a", + "src/main/java/com/mcmoddev/lib/energy/package-info.java": "512c1c55deda9ae0a6ca3718d4bc1a6c70390a5f021fffad9ce2f2f35631d9c3", + "src/main/java/com/mcmoddev/lib/energy/rf/RFEnergyAdapter.java": "8f38d68c0d459c29414bd4c251d636503d5eaa890cec8790834807ed7e7f83ff", + "src/main/java/com/mcmoddev/lib/energy/rf/RFEnergyAdapterItem.java": "2a6fa5a58410d84d10c6c88b6c396f0aad6ba2fe9fb5c7ad41f6e3c954efedd7", + "src/main/java/com/mcmoddev/lib/energy/rf/RFEnergySystem.java": "c6c78a37ebbb0c904091686ef0e4681cff433ae47a1f404de751801f0793ca85", + "src/main/java/com/mcmoddev/lib/energy/rf/RFEnergyValue.java": "de0d381dd7ef02e1c2a78773b243f54e7cba3a1b72e0e5fde59fe4f1de9b0c1b", + "src/main/java/com/mcmoddev/lib/energy/rf/package-info.java": "145781dac5ca6ec05b330849fc89a781c0dcf06608bbe1a3b6949adf1358536d", + "src/main/java/com/mcmoddev/lib/energy/tesla/TeslaEnergyAdapter.java": "a8ca59885c833bb29bd2ae77a7d76430fd4c637576a3cef2832c253337209393", + "src/main/java/com/mcmoddev/lib/energy/tesla/TeslaEnergySystem.java": "078031ceb494be79cad5da2b484c9b9710a9aeed0042c49a3139d864a7a4c70e", + "src/main/java/com/mcmoddev/lib/energy/tesla/TeslaEnergyValue.java": "b37a61dd7a44fb065347f1bf6f77a4e502538918ce8a3c960c572bd5ee63ea4f", + "src/main/java/com/mcmoddev/lib/energy/tesla/package-info.java": "84f6561daaef88782660ed31c091d8fc7e67e687376ab1c772100c92b292c72a", + "src/main/java/com/mcmoddev/lib/energy/util/EnergyValueUtils.java": "6b7ed6455987464b77da67631f8f90e716c6767160bc2833843d123c8fab4b30", + "src/main/java/com/mcmoddev/lib/energy/util/package-info.java": "ac8697a2875388ea0cc9c4365933cc0f86a45a3583f607c54bc7987bd61ffeb7", + "src/main/java/com/mcmoddev/lib/entity/EntityCustomArrow.java": "47fe8e29f167a939f105764986256563283b2ccfea67ad064bfc730a33adde8b", + "src/main/java/com/mcmoddev/lib/entity/EntityCustomBolt.java": "aef7f2832d9328a6a5ed5dd1e08d63506a0c481a9df39e1796eaa87bea039e4e", + "src/main/java/com/mcmoddev/lib/entity/EntityHelpers.java": "d852daf570c287890d02a5d0b53bbf89937443d3b7fa97a68ddceb17f04a8c10", + "src/main/java/com/mcmoddev/lib/entity/package-info.java": "8ba24d92af0344cf6a0696bfb642755186df5667d7e5c79d0ccf340bfb425505", + "src/main/java/com/mcmoddev/lib/events/IRegAPI.java": "87ceeecb23beaa2af2b91f1b12760781015a49bdc4861fc52225df6181e877d9", + "src/main/java/com/mcmoddev/lib/events/MMDLibRegisterBlockTypes.java": "0584913bdc512b1cb7ffc454a1bea8176b9fbbc3fb9e0e31b27081d52950a21c", + "src/main/java/com/mcmoddev/lib/events/MMDLibRegisterBlocks.java": "380619c8a108c2041fafca833106f049025c5a102d75fc83408642bd06f6d9f9", + "src/main/java/com/mcmoddev/lib/events/MMDLibRegisterFluids.java": "86082f6f7466b8011da3af1c8aaddce3a948d0388e79ea95b32258424c23f215", + "src/main/java/com/mcmoddev/lib/events/MMDLibRegisterItemTypes.java": "2662299d63644c8354bc794d74bba426c13d8c0bb9bc0ea193faa754778f39df", + "src/main/java/com/mcmoddev/lib/events/MMDLibRegisterItems.java": "bb8a7e5aca8bf2f1c74349f1d774d38cd910e7a6a3e94eb781a344fdf2ef2eb9", + "src/main/java/com/mcmoddev/lib/events/MMDLibRegisterMaterialProperties.java": "78aa059c470e74b970b715ab7621779f98c6a377f2ed113ba32e1f966ff85a70", + "src/main/java/com/mcmoddev/lib/events/MMDLibRegisterMaterials.java": "0c0ebaad1ed4e91ad8084b7dd3e65bf700f4fd68eaf8d1eaaa0a46561dcd7635", + "src/main/java/com/mcmoddev/lib/events/MMLibPreInitSync.java": "52318afab4f93a0e840b22ed4959996f3727d5859d0726c25d7afbd92f61ae48", + "src/main/java/com/mcmoddev/lib/events/package-info.java": "f8a68f84c676678a5a24834f25d0b984fc497f98687f7191448271c70fba5b69", + "src/main/java/com/mcmoddev/lib/exceptions/MaterialNotFoundException.java": "953c553e79cdb00a2a6a22c37b8bb13fe3ba41f00cca9250484f673ca2e30eb4", + "src/main/java/com/mcmoddev/lib/exceptions/TabNotFoundException.java": "a4703acba646fbf7f3102e7f8a904c018b43e9e42c056bbda7c7f1e21789a23d", + "src/main/java/com/mcmoddev/lib/feature/BaseFeature.java": "70fc409d2dbb471db54facc738870fee8edb62cfb3061f291008bc8bdec848e4", + "src/main/java/com/mcmoddev/lib/feature/BaseItemStackFeatureHolder.java": "40e10b4651ec7c34f869d451616cb4799e0ed4b2b82255d755fb55580f1bd6b8", + "src/main/java/com/mcmoddev/lib/feature/FeatureDirtyLevel.java": "eb13a8b129afd360f4a2547c9d732d9b03a0f16cade2928cc5db89d1fa427cfd", + "src/main/java/com/mcmoddev/lib/feature/FluidTankFeature.java": "301e8cb317ad15e2c073a32e46aee0400d13d8d1fe8036ef16aede4369f8e87e", + "src/main/java/com/mcmoddev/lib/feature/ForgeEnergyBatteryFeature.java": "4fd3c8d55945a935eb8f2f920d62eddaf67331afa0c0a26a8524eb337ddfa271", + "src/main/java/com/mcmoddev/lib/feature/IClientFeature.java": "65af85d5f5bd11adad2048d4014568bc6804a0871bee3a322e7debc1f257f879", + "src/main/java/com/mcmoddev/lib/feature/IFeature.java": "6e8ea1b19f30b23204fbc68565258c44ba4140236276caad7401351812cf00dd", + "src/main/java/com/mcmoddev/lib/feature/IFeatureHolder.java": "ebf15cab56c72cc6e8e67b8ba097e7d51cf30c0f637f1878a6f8e80fc9cd606c", + "src/main/java/com/mcmoddev/lib/feature/IFeatureHolderProxy.java": "09defc5c02cdb324f88a170e4ab0c7fadc20f1621b48098b1562dde0d2c1e7e1", + "src/main/java/com/mcmoddev/lib/feature/IItemStackFeatureHolder.java": "527251c1aba228453e462937c154d8cd7afb6a108fff56d889326f35d34d8d4b", + "src/main/java/com/mcmoddev/lib/feature/IServerFeature.java": "3bc210720ee1c226bc3ffb2378a079c0c3b30298ef7324b16ae8ec203a525d80", + "src/main/java/com/mcmoddev/lib/feature/ISidedFeature.java": "4986f44143ece72ab52bf3d1ddad13e0cd63be9f6425b2e91b964bf6f4983751", + "src/main/java/com/mcmoddev/lib/feature/ItemInventoryFeature.java": "9272c82e02cfb3a02abd78434d51bda061a32baa787f637c73cc036eddc20a2e", + "src/main/java/com/mcmoddev/lib/feature/PlayerInventoryFeature.java": "a35533961f75f3e605d45a11257fc253ab07ff2f13983816672791fe10e417bf", + "src/main/java/com/mcmoddev/lib/feature/SidedFeatureWrapper.java": "86a0b7bccbacb03bea0cb517564fb299fadee31d61cae101a8d4d352519aa05d", + "src/main/java/com/mcmoddev/lib/feature/SimpleWorkFeature.java": "432b0b7f00dc1dfac8bf6ca25da1fc31db606477fbeb825aee0a240777829f7d", + "src/main/java/com/mcmoddev/lib/feature/package-info.java": "341e344e866f1bad5ae220de135ee4b65bb87336c7a1bc0db5ce745c5a4e07e6", + "src/main/java/com/mcmoddev/lib/fluids/CustomFluid.java": "cd676d5df32f83ebbffac4224f2d0df307df50299159b9ce83ccc8e494a51885", + "src/main/java/com/mcmoddev/lib/fluids/package-info.java": "c8b89b9d0af69c4ffe463b7516829f7a400c77e014cf1fe3fa0c59678d45b959", + "src/main/java/com/mcmoddev/lib/init/Blocks.java": "ea54115c1480da417c76cd546a63138554d2389f4a149481d185162a21f713b0", + "src/main/java/com/mcmoddev/lib/init/Fluids.java": "4ab3bf4c191b42b94922a21ce6280ee0eedc3ab31cf76361f6ee6d90f1254926", + "src/main/java/com/mcmoddev/lib/init/ItemGroups.java": "89f499cd36866198655057adf4bf948b6100a2f211df1b8c58e674ccef993d1f", + "src/main/java/com/mcmoddev/lib/init/Items.java": "1c84cd9dc8172bd36b0c2ab5fa2f670761723c91d6e09832489f6ce05db39b84", + "src/main/java/com/mcmoddev/lib/init/MMDCreativeTab.java": "6b401cef3a77206925627425a6be689cb8013945f880142272e30f9e2e8c8a10", + "src/main/java/com/mcmoddev/lib/init/Materials.java": "7aa60e386be020a49e7305c734f50dd2afc498bf0c9a7b33a004bc6bb1c1f877", + "src/main/java/com/mcmoddev/lib/init/Recipes.java": "cdcaacd0dbf54c52a52f85f0e621045cd68c236e412b300499d1924551eda356", + "src/main/java/com/mcmoddev/lib/init/VillagerTrades.java": "d1073a720bb964255e7de57f1b6a493d49b39aa87743ee1386fc3ce892637806", + "src/main/java/com/mcmoddev/lib/init/package-info.java": "f5c5e8969a31e8e8fddae065a33e7e1299592281a6acfb8bac4a0f44a32caaab", + "src/main/java/com/mcmoddev/lib/integration/IIntegration.java": "e31966d8c077f9f5ef7994e157ae9243b49b212034540d84a2c3de67e5b03253", + "src/main/java/com/mcmoddev/lib/integration/IIntegrationEvent.java": "6581f5369bde57d029e0b4bb3a90419130843e29ad89b96404a6e69048972b03", + "src/main/java/com/mcmoddev/lib/integration/IntegrationInitEvent.java": "7135b6f74fe574a099db582b797902df04121d939c6e9692febe56fc25fe4e06", + "src/main/java/com/mcmoddev/lib/integration/IntegrationManager.java": "79f385e6260dad3dc72bfe1d340a590f2582c890f80e0c8d11dca65e88ad9d65", + "src/main/java/com/mcmoddev/lib/integration/IntegrationPostInitEvent.java": "c2601a9384ae949490eaff15027884cdead810af63b72cee326ff7920236fe82", + "src/main/java/com/mcmoddev/lib/integration/IntegrationPreInitEvent.java": "a4ac94c7745438b58c7417bb891a3bdab3bc8721722022daef100e8546fee478", + "src/main/java/com/mcmoddev/lib/integration/MMDPlugin.java": "9614792c30036162d567034e36dc357d56aa1ff71a41e631e2a894a42c300589", + "src/main/java/com/mcmoddev/lib/integration/jei/ICrusherRecipeCategory.java": "c184614805c1b59c8d8d61c1718a55acf5389332e1be60f0af163a97ef9e1365", + "src/main/java/com/mcmoddev/lib/integration/jei/ICrusherRecipeWrapper.java": "54f2ba80ebac04e6b909cb4045f5c5bce70f0c5065262da0f493a70a789095d2", + "src/main/java/com/mcmoddev/lib/integration/jei/MMDLibJEIPlugin.java": "30ea58a13a242bf56084e1b8089a563f8df0575d1661ece63801add1cfa178aa", + "src/main/java/com/mcmoddev/lib/integration/jei/package-info.java": "8ae54eddb9fe9e5f672b713f9d37a92e51d74771c5ed64f574daadf5e550164d", + "src/main/java/com/mcmoddev/lib/integration/package-info.java": "9b3b3acbd09a08d7789ad0f27f3eab70d60372028bde4e07b65db4b61b11595d", + "src/main/java/com/mcmoddev/lib/integration/plugins/ConstructsArmory.java": "8eb1a2cbc24626edf27630c36b1a255f4c67147d4458047a820acdac155421f7", + "src/main/java/com/mcmoddev/lib/integration/plugins/DenseOres.java": "d6293f5d66a7dc3a254850eeea73ae1a2a2cbb24504fd3d186fb289d08bbaa49", + "src/main/java/com/mcmoddev/lib/integration/plugins/DenseOresBase.java": "a932de2b53afeb907baf5cb4ecb1e7019b1ee97263055f90a8ce5c5285b851b6", + "src/main/java/com/mcmoddev/lib/integration/plugins/EnderIO.java": "c42410a7ec05c17410f5b4d6b3706c94a0cd1fb9a273b57397c8e822136eb1f1", + "src/main/java/com/mcmoddev/lib/integration/plugins/EnderIOBase.java": "905fe56772f5cd24f37b31012a1878bc49be0e264057844e4b218804ee2e408e", + "src/main/java/com/mcmoddev/lib/integration/plugins/IC2.java": "bbd91880543d8d4c707d7f31bce1df767149c43684e50039f1c4ae0406dd7d3a", + "src/main/java/com/mcmoddev/lib/integration/plugins/IC2Base.java": "7207ff8e94d9852c25f7766c266447da52c2c6f23313d13cf7baed66683335ab", + "src/main/java/com/mcmoddev/lib/integration/plugins/Mekanism.java": "c245c2869222865d22d3d5331a7bf27d28fb197a2eaa01d56bd59eae248e8fbf", + "src/main/java/com/mcmoddev/lib/integration/plugins/MekanismBase.java": "b7f28d59ff6e84e149af7061bde7f192add00daece0e3368192832f686f93581", + "src/main/java/com/mcmoddev/lib/integration/plugins/Thaumcraft.java": "a3961abfc37e46f65c839790e104279b2fa44e1327cd83ba92f5d164ae1f818e", + "src/main/java/com/mcmoddev/lib/integration/plugins/ThaumcraftBase.java": "4459a1f6b781538e9de102d532c7692d48c561df771a5bca2a70619034db37b9", + "src/main/java/com/mcmoddev/lib/integration/plugins/ThermalExpansion.java": "d5cb2b3fc99e118bedba6ac75b2a22a04d6f9eb6fd6990cf08f85b15525f2ad5", + "src/main/java/com/mcmoddev/lib/integration/plugins/ThermalExpansionBase.java": "88af4c65f6b6f107634dcdc58de387f67293d45756ec9344dde45f3bd43874f2", + "src/main/java/com/mcmoddev/lib/integration/plugins/TinkersConstruct.java": "fc857b25e3164d85a2f66bf79b3363c62d8ea7b54781e39e48b2567e4a7992e1", + "src/main/java/com/mcmoddev/lib/integration/plugins/TinkersConstructBase.java": "aff3b5af5d8d2d203c6f034728f266c34d2892d804d7cf4008cb1c67a4215ec0", + "src/main/java/com/mcmoddev/lib/integration/plugins/VeinMiner.java": "a30f29e3cbe170f94663afb33d4848726c698659f735e41d034e98c7348abf54", + "src/main/java/com/mcmoddev/lib/integration/plugins/VeinMinerBase.java": "842da3a065275ca1d84e88b42b45f9133fd1fd94cf80e6f83221f0921a65b6ca", + "src/main/java/com/mcmoddev/lib/integration/plugins/armory/traits/MMDTraitsCA.java": "19bd51bef19e5c9f478285fc4439e70be93b0b976c625d2226197beda6e38738", + "src/main/java/com/mcmoddev/lib/integration/plugins/armory/traits/TraitBrittle.java": "54ed91255ce62d3f6457802aa7d0d2462c6c5d3c2420ac92317efe16dcbdd41a", + "src/main/java/com/mcmoddev/lib/integration/plugins/armory/traits/TraitIcy.java": "138a655bd2a878405b6e79a0c588b69f629bcf2824b47c3619eaa028e147816b", + "src/main/java/com/mcmoddev/lib/integration/plugins/armory/traits/TraitMalleable.java": "9dbedb87642bb4dc3e63a0e8cd8d37d5571b4f30f6d173c1b1affb4f99f90a70", + "src/main/java/com/mcmoddev/lib/integration/plugins/armory/traits/TraitPoisonous.java": "2603c1463adaf7ca74e8b15e932bd15faaf0a7d2b789eca8dc842658b8a90299", + "src/main/java/com/mcmoddev/lib/integration/plugins/armory/traits/TraitReactive.java": "ba490ecd0ec10c5a19b370630331231eef1a20792499b30b3bfc5bb6939cf293", + "src/main/java/com/mcmoddev/lib/integration/plugins/armory/traits/TraitToxic.java": "63a9870aa9ecb4b59a93900ac7ace451edde06050d69271b16dd7d8ff42dab9a", + "src/main/java/com/mcmoddev/lib/integration/plugins/armory/traits/package-info.java": "a8808a1dbbc449670deb4cc245c76baea4f6bd410e0d7582ed1aa41e1b3904e7", + "src/main/java/com/mcmoddev/lib/integration/plugins/package-info.java": "0c478a4796ca15d625df56279ea166bdd457768af655c141f35816026c31a62c", + "src/main/java/com/mcmoddev/lib/integration/plugins/thaumcraft/BaseAspectGetter.java": "9f29b2f766fec6ba8c2ca27485fb1c727807be2101548cc951ef0044c032d807", + "src/main/java/com/mcmoddev/lib/integration/plugins/thaumcraft/IAspectCalculation.java": "35b6e02328beaa4213154552721abedd0eae6ae166e3177a54e81fcbf376200c", + "src/main/java/com/mcmoddev/lib/integration/plugins/thaumcraft/IAspectGetter.java": "20b8d83b871459769e019f517e3f6167d750c32e4b225f467d2395631ad7f6bd", + "src/main/java/com/mcmoddev/lib/integration/plugins/thaumcraft/TCMaterial.java": "32f6f0e2b1090d7fce8ea768d1cd094f34de46f6e70e2f740023eed6032bcac0", + "src/main/java/com/mcmoddev/lib/integration/plugins/thaumcraft/TCSyncEvent.java": "b7825ffbde0ab90b414b4b0e0cfa2679793f89f62ef74309b25908913c054c6c", + "src/main/java/com/mcmoddev/lib/integration/plugins/tinkers/ArmoryTraitLocation.java": "562f32fd34c06c6c90dfaaeed63f4aaf10a39191c963ac5d15885609b7f8b13b", + "src/main/java/com/mcmoddev/lib/integration/plugins/tinkers/ModifierRegistry.java": "5790323700a9866b0e161faf047da6a7624c292568f14aafcb66a39eeb90bc4d", + "src/main/java/com/mcmoddev/lib/integration/plugins/tinkers/TCMaterial.java": "8624dac9c6cee93e211d7fc92163b5ebe83c7772ab06c31a613ce0762bdf7b0f", + "src/main/java/com/mcmoddev/lib/integration/plugins/tinkers/TinkerConstants.java": "1d67f31004c329002c58fc747ea202fba5761a7e0f95545a68c49f0cf867995d", + "src/main/java/com/mcmoddev/lib/integration/plugins/tinkers/TinkerModifierRegistry.java": "50388b77bc912775c13691290db4dc783cf20719f3ba6e3a7b3276977e82a9bd", + "src/main/java/com/mcmoddev/lib/integration/plugins/tinkers/TinkerTraitLocation.java": "bb8352c6c394bc8b06560d2bfa233b253cea357c55c0f83a3ed657cc99a647aa", + "src/main/java/com/mcmoddev/lib/integration/plugins/tinkers/TinkerTraitRegistry.java": "31ba42badadc2ac4b6023b9398500cec3850658e7425a5185eca09e2a87056af", + "src/main/java/com/mcmoddev/lib/integration/plugins/tinkers/TinkersConstructRegistry.java": "fcf005cc97441b97f6eae1e3eb8ae9a75fb817fac1721b228132c4f71046c9df", + "src/main/java/com/mcmoddev/lib/integration/plugins/tinkers/TinkersMaterial.java": "ac1d39d4990d7d5a00cf6d54981ddd8d3f9dfa476f5533b59fe30afdc7bdd5bc", + "src/main/java/com/mcmoddev/lib/integration/plugins/tinkers/TraitLocations.java": "84de7f9eaae8fe193088c5e1c5ce3a01e77ca0ce7f128edab8c749b9e55405c3", + "src/main/java/com/mcmoddev/lib/integration/plugins/tinkers/TraitRegistry.java": "f9ccdd82d555719cb6eb9e26d54cd170c3d709d39e1fbd22eb08dcd4f04d7eb4", + "src/main/java/com/mcmoddev/lib/integration/plugins/tinkers/events/MaterialRegistrationEvent.java": "d813ddc449d6c66252aef2f37935bc020899ac71dc73db73a6f9c79788e1b534", + "src/main/java/com/mcmoddev/lib/integration/plugins/tinkers/events/ModifierRegistrationEvent.java": "e26e6633ba68059d38678d343d2d091d9ee713caaee7c293320b7b4a81cceb9d", + "src/main/java/com/mcmoddev/lib/integration/plugins/tinkers/events/TinkersAlloyRecipeEvent.java": "c9c9931f7a32736fa018974994adf96073f99ba50dbb18f363e5e4054a190af5", + "src/main/java/com/mcmoddev/lib/integration/plugins/tinkers/events/TinkersExtraMeltingsEvent.java": "ee302e92fa49f9fab88fbd24ff0b1bb1226c62d0d95e80f341d56f80ad220f63", + "src/main/java/com/mcmoddev/lib/integration/plugins/tinkers/events/TraitRegistrationEvent.java": "09b0149bf92cfbd1bb313d37cd64726df9b2726ec2a504741090d66dcd5d1150", + "src/main/java/com/mcmoddev/lib/integration/plugins/tinkers/events/package-info.java": "3a7279d1d5530ada53de063f5d755789caaa189d25469dac9683cd455cb28350", + "src/main/java/com/mcmoddev/lib/integration/plugins/tinkers/modifiers/ModifierEnergized.java": "a62a24005cca0c062ff0ee1377a76e15796a07fc7c110ecaf067f612f3e5cf8e", + "src/main/java/com/mcmoddev/lib/integration/plugins/tinkers/modifiers/ModifierFakeDiamond.java": "b224c16d27b001694d57fb20905b47b4b63646e8820b88b4af0d1aaa3fc4adc7", + "src/main/java/com/mcmoddev/lib/integration/plugins/tinkers/modifiers/ModifierLeadPlated.java": "e2c6c7ff90cf08fe8698e1ce48471a2e92c326ed0516e52faf8fd0c95dd181b4", + "src/main/java/com/mcmoddev/lib/integration/plugins/tinkers/modifiers/ModifierToxic.java": "8ff7d5b499d014e6a21a94e7074071d5e44a270b30e6f289212801e71904c799", + "src/main/java/com/mcmoddev/lib/integration/plugins/tinkers/modifiers/package-info.java": "919821ca6ca2aaffa261be7e2a8a9b4cf4efdabc6fe2ef3e2b4ab27b1560859c", + "src/main/java/com/mcmoddev/lib/integration/plugins/tinkers/package-info.java": "46d364bdddd77c28925bdb09fb0188c3715354aec0aeaee75188e4ffd746a904", + "src/main/java/com/mcmoddev/lib/integration/plugins/tinkers/traits/MMDTraits.java": "a8a50e7b237fa10ca602d09a52981bd4fb682ea5f56dca3e7aa892f76c14e899", + "src/main/java/com/mcmoddev/lib/integration/plugins/tinkers/traits/TraitBrittle.java": "07a7b0fad63da0015358e6ca619bf6b8c7e4038f7b43d71eb81b1157e8fc8388", + "src/main/java/com/mcmoddev/lib/integration/plugins/tinkers/traits/TraitHeavy.java": "4e4515288c53fee64d5335e41aba781d55bd1aa7f669be750e0d4218b57cf025", + "src/main/java/com/mcmoddev/lib/integration/plugins/tinkers/traits/TraitRadioactive.java": "84cb0f962966bf7c4c3d45e7d7ba9658403018323271b3473cb08c3338b2473a", + "src/main/java/com/mcmoddev/lib/integration/plugins/tinkers/traits/TraitReactive.java": "6c50c38df847628f9091b07f29009f88935c703d070d53a92efd29c7815fab25", + "src/main/java/com/mcmoddev/lib/integration/plugins/tinkers/traits/TraitSoft.java": "5d6e7e4ad906f3fbcf2b31003cfb39f2c2895187b4e3416ebddc5a1a2c163bc2", + "src/main/java/com/mcmoddev/lib/integration/plugins/tinkers/traits/TraitSparkly.java": "47ab7db14388604ccea070587cc8d7419840242d6cbbb3cffcea65feeb139305", + "src/main/java/com/mcmoddev/lib/integration/plugins/tinkers/traits/TraitToxic.java": "309afac64d39c0d7430175d628059f9f7595a994f5504d1085aff8c892f9cc5b", + "src/main/java/com/mcmoddev/lib/integration/plugins/tinkers/traits/package-info.java": "6396da3b7fa298990595c94a5f48feea1afbe53efaef3d1d91f54ca0157eb53e", + "src/main/java/com/mcmoddev/lib/interfaces/IDynamicTabProvider.java": "7a1a04b85133b90515ed0d3070c8b239a4237276bfbaa6793e6a35a000fa79a1", + "src/main/java/com/mcmoddev/lib/interfaces/ITabProvider.java": "79f804d2bae36d896de8b4ea7f75da1a8255477bd15d9484b24249d39e515e94", + "src/main/java/com/mcmoddev/lib/inventory/CombinedFluidHandler.java": "526829471a95e1e6da87340eae3b6254b1a32004b79f7a24e8aea8d55880f621", + "src/main/java/com/mcmoddev/lib/inventory/CombinedItemHandler.java": "7c3819bf808cec285d346ef90534226c301d1c0a1e8d9d37929c9de804edae05", + "src/main/java/com/mcmoddev/lib/inventory/CombinedItemHandlerModifiable.java": "65be62d689df26d90260841d20a88bd38c5d9f59075a66bc29fb0cca9e188bd3", + "src/main/java/com/mcmoddev/lib/inventory/FilteredFluidTank.java": "6c38934e5912bb45ac7c6459b082def5b40e72e1b7df0e18dd9eede3e67d1130", + "src/main/java/com/mcmoddev/lib/inventory/FilteredItemHandler.java": "f6329646fd04d27db15fe4252c24da60655a2f6d3c6451b497c061deb9950525", + "src/main/java/com/mcmoddev/lib/inventory/FluidTankHandler.java": "e823cd7857244eeba8c43a9489d9f9679ea44d11b12a030d0588a5f93742fda2", + "src/main/java/com/mcmoddev/lib/inventory/IFilteredFluidTank.java": "fb7bf360f5c87e13556df63e771bec59dc9aa3662d6f75d4d9d254bc80b0a719", + "src/main/java/com/mcmoddev/lib/inventory/IFilteredItemHandler.java": "df576eeaa5e2be97e1b313196b8dfe4a4fe028e765eacd37897454135762762a", + "src/main/java/com/mcmoddev/lib/inventory/IFluidTankModifiable.java": "9c6a1d1d652dab058c3dc2ee29feabaf8cc9bf804a4bea51f9e3509fc34b5b58", + "src/main/java/com/mcmoddev/lib/inventory/IResponsiveFluidTank.java": "d948de29b013710d5080fa9b23914873ea16f23dd2d1ade8ecf4a03003ec0263", + "src/main/java/com/mcmoddev/lib/inventory/ItemHandlerWrapper.java": "daeb90511a65880bee33a6a3a5c581793dad7026009cf828bbad1526076bf7c7", + "src/main/java/com/mcmoddev/lib/inventory/ResponsiveFluidTankWrapper.java": "d5dbcbda65e0680243b929fa6cc64724abe7c834b94bdd9547037459f86b66b6", + "src/main/java/com/mcmoddev/lib/inventory/SimpleFluidTank.java": "0f501c13634452dd8804f3d93526b90f0e193e1e9c1f0c392b6d76710e2c6607", + "src/main/java/com/mcmoddev/lib/inventory/package-info.java": "9248405d01e5a68c227560710b4b536e63018e0110a461b7edccac011d99b17e", + "src/main/java/com/mcmoddev/lib/ioc/HashTuple2.java": "588763228466d7869c0ec01cb3794e0b47fdc8d8186d4827772b38ba7ae47de4", + "src/main/java/com/mcmoddev/lib/ioc/LibIoC.java": "7f440729f609c529af836d8e02eca563e5d2add55f2e476a6b806699283b93b1", + "src/main/java/com/mcmoddev/lib/ioc/MMDResourceLocation.java": "66fbf6977eb110313eb4a15dda1dd3faadd470c7beeadf6fbba6f0fde18f8c3c", + "src/main/java/com/mcmoddev/lib/item/GenericMMDItem.java": "290df70f5a6f8234904117d5d5a69a018940cb6eb5e5a296efee9a63c6f6dba3", + "src/main/java/com/mcmoddev/lib/item/ItemBolt.java": "3e7c61a1708b70b6bf72f028423b2271943e76f311dd92885b53184b0f12b660", + "src/main/java/com/mcmoddev/lib/item/ItemCrossbow.java": "0a3807adf3c03b8ec90aefec8cb7b57b7a1fa737bf5b49bf922b1f75b7d06980", + "src/main/java/com/mcmoddev/lib/item/ItemMMDAnvilBlock.java": "4f37c5d1c005d278681f0871b556a4a2181ee3fe6f2207174b5d35be4eb49110", + "src/main/java/com/mcmoddev/lib/item/ItemMMDArmor.java": "355aa4fc4d3ed92420d99a87a2c0feaa4d6b98bce783c39a5257b6f46d6a8e0e", + "src/main/java/com/mcmoddev/lib/item/ItemMMDArrow.java": "4605204b5d6c295b9103ac05b4b5d76bb3d28c455072b501452e345176e360ca", + "src/main/java/com/mcmoddev/lib/item/ItemMMDAxe.java": "7fa7111ef4c446d682703d6d1ee43e4f1238da83a8a975e9b40e8cbbf282d2ef", + "src/main/java/com/mcmoddev/lib/item/ItemMMDBlend.java": "645beeb66998f44ea22c4751d5e36dce21b53cd631086c0a024583a963afc9f0", + "src/main/java/com/mcmoddev/lib/item/ItemMMDBlock.java": "289c70829bc43f4166b158d20b23216a3517e4f95ab44b1a299f007f3c77d1d9", + "src/main/java/com/mcmoddev/lib/item/ItemMMDBolt.java": "39f001b1903d847876405b5327eddc8dbc6864f959d7d15eee5629642d8a66bd", + "src/main/java/com/mcmoddev/lib/item/ItemMMDBow.java": "c07e84ba32b335148d72cf31e8505c5e8160b9b1798d4dba82f6e57c156e1e4c", + "src/main/java/com/mcmoddev/lib/item/ItemMMDCrackHammer.java": "059352620c7092a4fd64ae4c7c7b07052bc7782ef129d67fc791fa646c5ef03a", + "src/main/java/com/mcmoddev/lib/item/ItemMMDCrossbow.java": "4fce80759c7aaf3d00f83b0ba0ab0843c44b8c9919604902da176a8685ed789a", + "src/main/java/com/mcmoddev/lib/item/ItemMMDDoor.java": "808946760581329492c1a3800e64aa92b28d98a7c2cec7260016288d4e78563b", + "src/main/java/com/mcmoddev/lib/item/ItemMMDFishingRod.java": "6c78da96860711c2967634acad63ac835082c5b7fa0c15c58bb9f2add87a75a4", + "src/main/java/com/mcmoddev/lib/item/ItemMMDGear.java": "2d2d891cc474b8bdfdd1e57d596aa7d90a1911a6081d847c538e0d57781e31a6", + "src/main/java/com/mcmoddev/lib/item/ItemMMDHoe.java": "6242ebdc0b90faad5914248d6de799da7d27cf6d4add82590f2c21a5b5b25643", + "src/main/java/com/mcmoddev/lib/item/ItemMMDHorseArmor.java": "df62c1862eb428e09982be001e30efb8d6ac88c30fe548a8b8cef6dcb46f07fe", + "src/main/java/com/mcmoddev/lib/item/ItemMMDIngot.java": "7d7b8ceb5b25ba0004f9b7ad86d34d0811a768a939a7bd2fae28f4c84ac600f4", + "src/main/java/com/mcmoddev/lib/item/ItemMMDNugget.java": "5a693bcea9af5cfabb5da591f093b3e420fd5e62edc1386cae4a3f08f35cd1e3", + "src/main/java/com/mcmoddev/lib/item/ItemMMDPickaxe.java": "01325c85acaa0bae8b946b132b7a712357a47633f4b115d154735120dbbb8e7f", + "src/main/java/com/mcmoddev/lib/item/ItemMMDPowder.java": "ac63a76d0ebadc4aef07d66b999dd75ea2534e7a1ed952c7dca2fd92c8b823e8", + "src/main/java/com/mcmoddev/lib/item/ItemMMDRod.java": "25f15e1b51a4b95ee53677b5ce76bbd608800d092a8b870df514a1729c7aea1e", + "src/main/java/com/mcmoddev/lib/item/ItemMMDShears.java": "cdcfb96df1f7089954100ea7421b8c16a486f9c00838357a993d1777a720bc32", + "src/main/java/com/mcmoddev/lib/item/ItemMMDShield.java": "8b4d370f8b01d36eb9cb2c395d6e4db43ecf63622cfa84a9cdbd5381d0fdcc54", + "src/main/java/com/mcmoddev/lib/item/ItemMMDShovel.java": "737ea8cdd8bb60f9578b3c7179a501af36cf6007341ce3bd8da404322f7789a6", + "src/main/java/com/mcmoddev/lib/item/ItemMMDSickle.java": "5406aa31883883aee4cbe64f9221d6d8e877ab69bd4788104392bd485a712e84", + "src/main/java/com/mcmoddev/lib/item/ItemMMDSlab.java": "4f4d383568e2059e32e601719bc8f7afe6102fa5f9a6a1223b547fd3cde698b7", + "src/main/java/com/mcmoddev/lib/item/ItemMMDSmallBlend.java": "03919c69d259f32437663b1f680bf9c7692ffc9e9c0a118ec90ffe5de5228d44", + "src/main/java/com/mcmoddev/lib/item/ItemMMDSmallPowder.java": "f56c893ca9df1cee4bad7bde5bdd8043ddb967d5e309e58b42997547ca5f7b08", + "src/main/java/com/mcmoddev/lib/item/ItemMMDSword.java": "0068c1b4d6405dcc634dd4f19de6762f99da54338f7df27d7eafae088612cfe6", + "src/main/java/com/mcmoddev/lib/item/MMDContainerRepair.java": "63bf993d87546cc3bd3e083ac0e8f5fa674118a516cb42f479d5fe24b714c60b", + "src/main/java/com/mcmoddev/lib/item/MMDItemHelper.java": "0f344fb8235e23c90b1710d9b5930f5d9adced91fff9bb96145a5b7916530dc1", + "src/main/java/com/mcmoddev/lib/item/MMDItemWithGui.java": "0f236122a9f660e330795c3858f7ed04be78d2a989ad2f2a6a980d3d6f9eb6c3", + "src/main/java/com/mcmoddev/lib/item/package-info.java": "43c7c889f7cb7a20129366b3708fba6b18113c255d27e8830ccbf7192c5ef283", + "src/main/java/com/mcmoddev/lib/material/IFluidBlockGetter.java": "6f61dd9b7c46ccbdb33cba12160c1e19cdc5d1a67162f13fc2a42f9a5b5feb02", + "src/main/java/com/mcmoddev/lib/material/IMMDBurnableObject.java": "4eff3c1b8b506a514edb265574fd660deaa90938bdd72ebb656b25f8ff65f7d7", + "src/main/java/com/mcmoddev/lib/material/IMMDObject.java": "4f8d5e1841cfb57006e17ab086cc51d7e4ef70597c955b76af318b74d5a9e5fa", + "src/main/java/com/mcmoddev/lib/material/MMDMaterial.java": "18f98e2b1dc1e696b5e7f803e2fa993acfacb0f2ee4fc17323b60b40e16ab174", + "src/main/java/com/mcmoddev/lib/material/MMDMaterialType.java": "572309e53737b7c0ee5dda823ca60535b49810760f5f4423815a26b71439d7ac", + "src/main/java/com/mcmoddev/lib/material/package-info.java": "8393d88f259b916d9be54b58268e53e183c858b9522c954dec73cb1d1f362a4b", + "src/main/java/com/mcmoddev/lib/network/INBTMessageReceiver.java": "104470c695b210fddffc295f087b96e51e7f3b8529a9ecb44537f7efb48cc2c4", + "src/main/java/com/mcmoddev/lib/network/MMDMessages.java": "950af4e2d9f141db43c3aa53289f6e77e51593906ef6d6a32863080e047e9fd8", + "src/main/java/com/mcmoddev/lib/network/NBTBasedMessage.java": "dfcc7a99ffad27a03690f3bf233587a9e40a12de960e8512f53681d12301d196", + "src/main/java/com/mcmoddev/lib/network/NBTBasedPlayerHandler.java": "358cd1b25baa3cf38ee9376ea2365a608e8d730a53d4da1e8062d1a6660d9712", + "src/main/java/com/mcmoddev/lib/network/NBTBasedPlayerMessage.java": "e014462d2fff3895ce52fe3af6addf55d40954d1e45783e6a039a1360fc4329c", + "src/main/java/com/mcmoddev/lib/network/NBTBasedTileHandlerClient.java": "eb7dd3d9a4f366d36cf32a7037550be5ff979cf82f73091800e6779d5efe11bc", + "src/main/java/com/mcmoddev/lib/network/NBTBasedTileHandlerServer.java": "f8e9f1608d3d5e9fe54b53c052fa63a3d1ec3ac76e6a45c1a5ce2de085dc01da", + "src/main/java/com/mcmoddev/lib/network/NBTBasedTileMessage.java": "5cb9426f2eb2720612de3bc72b7962d7c70807c23431200746c61d737d4091a2", + "src/main/java/com/mcmoddev/lib/network/package-info.java": "8143500a4b6312e904f893506fc4f1c23c5bbbf72d7cecb0a47d533c8370219b", + "src/main/java/com/mcmoddev/lib/oregen/FallbackGenerator.java": "22f8898ab27fec377d344de15e720b123f07a4777a12bf78d4f9b79000f993dd", + "src/main/java/com/mcmoddev/lib/oregen/FallbackGeneratorData.java": "ac78c1e06853c9d8abdef092de81fff5f12604b020a075bd15532a1d1f39da07", + "src/main/java/com/mcmoddev/lib/oregen/package-info.java": "11866cf8c0b7ebc3439c02d28bd39f9db2c4aef3f882764fcb7e7f8ee959257a", + "src/main/java/com/mcmoddev/lib/properties/IMMDMaterialProperty.java": "c1aaaf4f6816d21d34a20e8d50135b18c8d5ade24e4b7e7c2155a4d0437f83ed", + "src/main/java/com/mcmoddev/lib/properties/MMDMaterialPropertyBase.java": "7e2d6e6a4e7b73401540225f2268531dd04a0364105b2894253d48ebb12e0a44", + "src/main/java/com/mcmoddev/lib/properties/MaterialProperties.java": "50ee9db21f54ad053835d8346b8be1a6a3e55f73f1dda277a770626ae4e1c04b", + "src/main/java/com/mcmoddev/lib/properties/package-info.java": "710dccbdace2320a30c51e7f9d4df53186a37b0bb19ea6fb9ed5d4929d358de8", + "src/main/java/com/mcmoddev/lib/proxy/ClientProxy.java": "e645917234e68f0f2b6fadc556bb85b231e75f6243c443c719ba9ad8f74eeee8", + "src/main/java/com/mcmoddev/lib/proxy/CommonProxy.java": "2b33af7af4e9865e88127a9aee2f99078d44c4b5c1651bd29be5b3830e3c6dd0", + "src/main/java/com/mcmoddev/lib/proxy/ServerProxy.java": "fe945c37c402e0d6cf0d0c5649e4de4bac364715910981b8a15d77ffc86504df", + "src/main/java/com/mcmoddev/lib/recipe/BootsRepairRecipe.java": "68dbbe10f69835b23061fb5a076412973defd0b5882d34c189c331cb055008e0", + "src/main/java/com/mcmoddev/lib/recipe/ChestplateRepairRecipe.java": "259312fa9eec752289cbca1eaabfe7cd45fc5534211166b00b0b4903f91cab42", + "src/main/java/com/mcmoddev/lib/recipe/HelmetRepairRecipe.java": "ed0dc687198c4e1f61c2208e10bc359419cb78cd9e298d2976a6b82aadb453d9", + "src/main/java/com/mcmoddev/lib/recipe/LeggingsRepairRecipe.java": "f71a680fdd76bcdf7b77503ebf1328c35f8e26aa1ffbe6e02cc2f64c79debce1", + "src/main/java/com/mcmoddev/lib/recipe/RepairRecipeBase.java": "16b04eab56af97da12a31f36d07bc0cd8cbaa5760109aa2aee04cabb1be927f6", + "src/main/java/com/mcmoddev/lib/recipe/ShieldRepairRecipe.java": "75a05682ffe140381976171a2524caf07d577bac837df4224747b358710149a7", + "src/main/java/com/mcmoddev/lib/recipe/ShieldUpgradeRecipe.java": "928dbe1840750ae120f404822309f40478b5d4f36cbec3302282a9b836c56339", + "src/main/java/com/mcmoddev/lib/recipe/ToolReturnRecipe.java": "4ed51724836b842f89bb2d03d6ec876ec89616c0175c961c8b3e0f073142848d", + "src/main/java/com/mcmoddev/lib/recipe/conditions/ConditionEnabled.java": "79af3dac5799e6b340765dff5d8117fc84d6f53d4a515f1b9b8aebebf033e67d", + "src/main/java/com/mcmoddev/lib/recipe/conditions/HammerEnabled.java": "f95996394db186e9702c608dc80bdfdd213cae53c27eef1611256eac670ed569", + "src/main/java/com/mcmoddev/lib/recipe/conditions/PlateRepairEnabled.java": "860ef3733f8769850761aff25e0f203141b77b1f93749908b56a013ed1cc88e4", + "src/main/java/com/mcmoddev/lib/recipe/conditions/package-info.java": "682f6f745ce07879eb514809ef60a7c2f4d4450f43a4a183711302779ae71810", + "src/main/java/com/mcmoddev/lib/recipe/factories/ArmorRepair.java": "affbab984d6dea012600825dd7558b1a4d884c2b55f0a372be4d508185b51f8e", + "src/main/java/com/mcmoddev/lib/recipe/factories/ConfigVariedOutput.java": "453d7e0bb8c96c448fdb697c034e61093365be7d312e65937dfb54e4b3ef26e9", + "src/main/java/com/mcmoddev/lib/recipe/factories/package-info.java": "4336d69959d077a423290daa0a23c0a1e6966a4e1f551073dbcdd659686abe36", + "src/main/java/com/mcmoddev/lib/recipe/package-info.java": "dfcc5881651841b7fa7d5c927f2d52a8526d6819fa463069087f5ccb7f1d0e85", + "src/main/java/com/mcmoddev/lib/registry/CrusherRecipeRegistry.java": "61028956a9d78a183d52dccc047a87e83caa7c5954e5b82579807e7138810827", + "src/main/java/com/mcmoddev/lib/registry/IOreDictionaryEntry.java": "a168346ff243e70da4ef6c78072612e5bc6b307f0c1342b97dc049e68d90f606", + "src/main/java/com/mcmoddev/lib/registry/package-info.java": "4bc49ee2af2d914a1916f126dc4cfb128e00315419e713612c030220f3cb6288", + "src/main/java/com/mcmoddev/lib/registry/recipe/ArbitraryCrusherRecipe.java": "2f49c19afc045f72988c8004e30b7bb0c809afc466ae55474ff320c6d9de7edd", + "src/main/java/com/mcmoddev/lib/registry/recipe/ICrusherNBTRecipe.java": "bbe90625a3fad86ece0c68d72e754a00f4a4bdfd634c400842c62d1d766edca3", + "src/main/java/com/mcmoddev/lib/registry/recipe/ICrusherRecipe.java": "cbac39f81ab92ffe624239f34188149cb337a9de0a16829b8989723d9683cc2d", + "src/main/java/com/mcmoddev/lib/registry/recipe/NBTCrusherRecipe.java": "1a6e379e131ebede453eb62946950f5de25a6aa2cfa79cdd118b3cf4179fa74f", + "src/main/java/com/mcmoddev/lib/registry/recipe/NBTOreDictRecipe.java": "1dda507d27a8265b3df5bb3b17f8bdc0fe0e2a9a62899103a60a9b9a7b850fd4", + "src/main/java/com/mcmoddev/lib/registry/recipe/OreDictionaryCrusherRecipe.java": "37ff850f96241a4115e469521c4ab054513864a7a3fc79ea01d43a585a544288", + "src/main/java/com/mcmoddev/lib/registry/recipe/package-info.java": "1e685a6a6b849de36ae88c09459e0b04f4aaa20519c331fcaceff0843f7e4ddb", + "src/main/java/com/mcmoddev/lib/tile/MMDEnergyConsumerTileEntity.java": "30790235b26c29df1b7d34fc76a3323b0c4a475b12fb565267c8546a6596a704", + "src/main/java/com/mcmoddev/lib/tile/MMDFeaturesTileEntity.java": "53cce0250ac69b29cf3fb8abac39f911a5b6115b928fb169caa4c842486321c3", + "src/main/java/com/mcmoddev/lib/tile/MMDStandardTileEntity.java": "8af05c8df3c7f4dee58ccffa903b1e84feb23be46b00c42119b891cbc1f14a4c", + "src/main/java/com/mcmoddev/lib/tile/MMDTileEntity.java": "ca8ad7415342bdfb76a7dbea335cd143fceffeb73bc2be62db9ac90dfcf61f55", + "src/main/java/com/mcmoddev/lib/tile/package-info.java": "14b9f46f759a5b59c63526c430f9c8ff38bbe629522ac1afb5fb51cc4a367966", + "src/main/java/com/mcmoddev/lib/util/CheeseMath.java": "1f420a221c01bad63506a032ddea88f14fd532c7a68eda0c8f7cbbda6a586869", + "src/main/java/com/mcmoddev/lib/util/Config.java": "b56aa39bdcf5db93a18571d26b75c74c080f7766a97f7abaf0eac7bd79fc83e0", + "src/main/java/com/mcmoddev/lib/util/ConfigBase.java": "e505ccd0605eff31894baa7dd03bfef844bb28b703f42eda6b6802b647b26301", + "src/main/java/com/mcmoddev/lib/util/FeatureUtils.java": "1b43c3e0db6f95c4f9ff19bb8f425239aac5518ff2c52870dd180ae2bbfcceb8", + "src/main/java/com/mcmoddev/lib/util/FluidUtils.java": "b183b9642a01cd0db95e34428730d242227469b6b8818debf3e51fa6cf912c24", + "src/main/java/com/mcmoddev/lib/util/GuiUtils.java": "d0f256277f7bfafcdf49a1100b73f91df96db3d51c781db050cfa9cc555852d3", + "src/main/java/com/mcmoddev/lib/util/Helpers.java": "d65f2641afc9e2feb4cfe64c8df34c04d69832f365bd4985be6c5d27d6508b4d", + "src/main/java/com/mcmoddev/lib/util/HorseArmorUtils.java": "e2d40ce49bec887841d2690a357d60c81c79e2c797eda06f01f6668465ffab67", + "src/main/java/com/mcmoddev/lib/util/IntegrationConfigOptions.java": "9ebeb162c375b3e51229176590a71c2f512ee05cc91b318538bfeaf6a5c32d1d", + "src/main/java/com/mcmoddev/lib/util/ItemGuiUtils.java": "184fa2fd8ffe57219b44affbf73c6f05ab87e6e79b589a51eb6674e48415d5c0", + "src/main/java/com/mcmoddev/lib/util/ItemStackUtils.java": "cf4c86ed66ee53086c0493cf0894db7016107f684927061a9cc92713aa537749", + "src/main/java/com/mcmoddev/lib/util/LoggingUtil.java": "6872bf1649b9926181441bf9227a573a3aa3226bde464993943ca6568b35ac0f", + "src/main/java/com/mcmoddev/lib/util/MMDLibConfig.java": "28841290d8fbdd7247cff4a78c47f674e32b2c87be17cb8df8ebf3383be337dc", + "src/main/java/com/mcmoddev/lib/util/MMDLibItemGroups.java": "68cf1b883adf66df6b5faba26ae370534abb269f28c3edfd720384cc119d78f6", + "src/main/java/com/mcmoddev/lib/util/MaterialConfigOptions.java": "9c0fd27edc96e7b59f67918f19bbb53432a36631d6ddf23309600cd2464c35c5", + "src/main/java/com/mcmoddev/lib/util/MathUtils.java": "2f1ee7e5e350f769e684188d52666528313f86f9fca9ebebe5986e0e85dcc751", + "src/main/java/com/mcmoddev/lib/util/NBTUtils.java": "bb4f9faf968ca9d3413e6d03bb221cece6b2165b1daba8c71a817f30768bc1aa", + "src/main/java/com/mcmoddev/lib/util/Oredicts.java": "bc49552a1a7cb905b9bf1dcd97b72a27537411f02e612cb4398e2cd4ddb8b120", + "src/main/java/com/mcmoddev/lib/util/Platform.java": "c970e6459259c743df5c34bafa6af2733b63f87e45e9c7bf63645d6b4ce0b12d", + "src/main/java/com/mcmoddev/lib/util/PotionKeys.java": "c7d1aa70fdd30c7c762b8fa494d7ba7653afc4a0fb779362ca0458079f559a38", + "src/main/java/com/mcmoddev/lib/util/StringUtils.java": "bac620739de265df56ae3cfcf5cdec09899a44275992ed60698ad479ce345285", + "src/main/java/com/mcmoddev/lib/util/TabContainer.java": "df4a3b656f6267bca4ad43e47e1285806fdb45412f6758b0d1cafee760773c9e", + "src/main/java/com/mcmoddev/lib/util/Version5UUID.java": "284d912f66f4ed375bcfb8818e2e8b9906a94419124ede9ba4e30e8deea0ff57", + "src/main/java/com/mcmoddev/lib/util/VillagerTradeHelper.java": "27055207ec8ffd7252c808661bff4b20f0a3bcdcc8eadcc248cfb7f017bffa09", + "src/main/java/com/mcmoddev/lib/util/package-info.java": "cb2c5051bba92ad1b2d655b1cb6d13c547ccefc2f6135cda3c090cfa9dca5810", + "src/main/java/com/mcmoddev/lib/vanillasupport/VanillaSupport.java": "3e5fe73cf49b197972530096a7c9b203cefa1ead4def5f6e32f08e9d6c87617c", + "src/main/java/com/mcmoddev/lib/waila/LeverInfoController.java": "0d391792a8417e8b7d30b85d81b472554bde5af0aa4022ba46be9d983a9ab377", + "src/main/java/com/mcmoddev/lib/waila/Waila.java": "51dd4308da03601384a8982f887451538adddcd2e726b39a17449361f6b8fa32", + "src/main/java/com/mcmoddev/lib/waila/package-info.java": "981905b761a68f246bed2bffd59e3522088c5bb35d67aed9a5069b3f042a7254", + "src/main/java/portablejim/veinminer/api/IMCMessage.java": "ca8712822c66c2aebdccd36d8f8594f5b7c34ec116cb19cdcfae8379edda6d94", + "src/main/resources/assets/mmdlib/recipes/_factories.json": "d13b23f404f144cb0f04b9cb91f4dbde323b36e78701cae6ce49483bf2eefc46", + "src/main/resources/assets/mmdlib/textures/gui/gui_base.png": "e1a497585be7b91c9e3fcb57dc483eeb42856226bb9ae82f17eb5e9a581415b2", + "src/main/resources/assets/mmdlib/textures/jei/jeihammeroverlay.png": "dcd5d1c0aa72b5bcf1a81eee5fab7dd446dba38c392ed83f6788e4aae6356e45", + "src/main/resources/mcmod.info": "b2f6a6b049f85bc0a108a720129d62fdbb5d726f4514aecd6e74e8fc0c4c33c7", + "src/main/resources/pack.mcmeta": "d7d353666c6fffdd97fe040619cc5ad7070864e0e12d64105fd3772ee22d05ae" +} diff --git a/gradle/verification/support.gradle b/gradle/verification/support.gradle new file mode 100644 index 0000000..7348f07 --- /dev/null +++ b/gradle/verification/support.gradle @@ -0,0 +1,178 @@ +import groovy.json.JsonSlurper +import java.nio.charset.StandardCharsets +import java.security.MessageDigest +import java.util.zip.ZipFile + +def buildContract = project.ext.mmdLibBuild +def dependencySpecs = project.ext.mmdLibDependencies.specs +def expectedMavenGroup = buildContract.mavenGroup +def expectedMavenArtifact = buildContract.mavenArtifact +def expectedMavenCoordinate = buildContract.mavenCoordinate + +// Shared checks for release versions, toolchains, dependencies, and resources. +def java8Launcher = javaToolchains.launcherFor { + languageVersion = JavaLanguageVersion.of(8) + vendor = JvmVendorSpec.ADOPTIUM +} + +def java25Launcher = javaToolchains.launcherFor { + languageVersion = JavaLanguageVersion.of(25) + vendor = JvmVendorSpec.ADOPTIUM +} + +tasks.register('verifyReleaseToolchains') { + group = 'verification' + description = 'Requires the pinned Gradle, Mavenizer, compilation, and runtime JDKs.' + doLast { + String gradleVendor = System.getProperty('java.vendor') + String gradleRuntime = System.getProperty('java.runtime.version') + if (project.gradle_java_version != '17' + || gradleVendor != 'Eclipse Adoptium' + || gradleRuntime != '17.0.1+12') { + throw new GradleException("Expected Gradle on Temurin 17.0.1+12, found " + + "${gradleVendor} ${gradleRuntime} at ${System.getProperty('java.home')}") + } + + def metadata = java8Launcher.get().metadata + if (project.java_toolchain_version != '8.0.502+7' + || metadata.vendor.toString() != 'Eclipse Temurin' + || metadata.javaRuntimeVersion != '1.8.0_502-b07') { + throw new GradleException("Expected Temurin ${project.java_toolchain_version}, found " + + "${metadata.vendor} ${metadata.javaRuntimeVersion} at ${metadata.installationPath}") + } + + def mavenizerMetadata = java25Launcher.get().metadata + if (project.mavenizer_java_version != '25.0.3+9' + || mavenizerMetadata.vendor.toString() != 'Eclipse Temurin' + || mavenizerMetadata.javaRuntimeVersion != '25.0.3+9-LTS') { + throw new GradleException("Expected Mavenizer on Temurin ${project.mavenizer_java_version}, found " + + "${mavenizerMetadata.vendor} ${mavenizerMetadata.javaRuntimeVersion} " + + "at ${mavenizerMetadata.installationPath}") + } + } +} + +tasks.named('check') { + dependsOn tasks.named('verifyReleaseToolchains') +} + +def expectedReleaseFiles = providers.provider { + def prefix = "${base.archivesName.get()}-${project.version}" + [ + "${prefix}.jar", + "${prefix}-sources.jar", + "${prefix}-javadoc.jar", + "${prefix}-deobf.jar" + ] +} +def preparedReleaseDir = providers.gradleProperty('preparedReleaseDir') + +def sha256 = { File candidate -> + MessageDigest digest = MessageDigest.getInstance('SHA-256') + candidate.withInputStream { input -> + byte[] buffer = new byte[8192] + for (int read = input.read(buffer); read >= 0; read = input.read(buffer)) { + if (read > 0) digest.update(buffer, 0, read) + } + } + digest.digest().encodeHex().toString().toUpperCase() +} + +tasks.register('verifyReleaseConfiguration') { + group = 'verification' + dependsOn tasks.named('verifyReleaseToolchains') + doLast { + if (project.minecraft_version != '1.12.2' || project.forge_version != '14.23.5.2847' + || project.mappings_channel != 'stable' || project.mappings_version != '39-1.12' + || project.mod_group != 'zone.moddev.mc.mmdlib' || base.archivesName.get() != 'MMDLib' + || project.cf_project_id != '261744' || project.cf_requirements != '') { + throw new GradleException('MMDLib target, Maven, or CurseForge identity drifted') + } + Properties wrapper = new Properties() + file('gradle/wrapper/gradle-wrapper.properties').withInputStream { wrapper.load(it) } + if (wrapper.distributionUrl != 'https://services.gradle.org/distributions/gradle-9.6.1-bin.zip' + || wrapper.distributionSha256Sum != '9c0f7faeeb306cb14e4279a3e084ca6b596894089a0638e68a07c945a32c9e14') { + throw new GradleException('Gradle wrapper identity drifted') + } + String source = file('src/main/java/zone/moddev/mc/mmdlib/MMDLib.java').getText('UTF-8') + if (!source.contains('VERSION = "' + project.mod_version + '"')) { + throw new GradleException('Source and artifact versions differ') + } + } +} + +tasks.register('verifyReleaseDependencies') { + group = 'verification' + dependsOn tasks.named('verifyReleaseConfiguration') + doLast { + def artifacts = configurations.legacyDependencyArtifacts.resolvedConfiguration.resolvedArtifacts + if (artifacts.size() != dependencySpecs.size()) { + throw new GradleException('The resolved dependency inventory does not match the pinned manifest') + } + dependencySpecs.each { name, spec -> + def matches = artifacts.findAll { it.moduleVersion.id.toString() == spec.coordinate } + if (matches.size() != 1 || sha256(matches.first().file) != spec.sha256) { + throw new GradleException("Missing or checksum-mismatched dependency ${name}: ${spec.coordinate}") + } + } + } +} + +tasks.register('verifyJsonResources') { + group = 'verification' + doLast { + sourceSets.main.resources.matching { include '**/*.json', '**/*.mcmeta' }.files.each { + new JsonSlurper().parse(it) + } + } +} + +tasks.register('verifySourceCompatibility') { + group = 'verification' + description = 'Preserves reviewed production files after namespace relocation and plugin alias discovery.' + doLast { + Map baseline = new JsonSlurper().parse(file('gradle/verification/source-baseline.json')) + Set actual = fileTree('src/main') { + include '**/*' + exclude 'java/zone/moddev/mc/mmdlib/compat/**' + }.files.collect { + project.relativePath(it).replace('\\', '/') + .replace('java/zone/moddev/mc/mmdlib/', 'java/com/mcmoddev/lib/') + } as Set + if (actual != baseline.keySet()) { + throw new GradleException('Production source/resource inventory differs from upstream') + } + baseline.each { path, expected -> + File relocated = file(path.replace('java/com/mcmoddev/lib/', 'java/zone/moddev/mc/mmdlib/')) + byte[] bytes = relocated.bytes + if (path.endsWith(".java") || path.endsWith(".json") || path.endsWith(".info") || path.endsWith(".mcmeta") || path.endsWith(".md")) { + String text = new String(bytes, 'UTF-8').replace('\r\n', '\n') + .replace('zone.moddev.mc.mmdlib', 'com.mcmoddev.lib') + .replace('zone/moddev/mc/mmdlib/', 'com/mcmoddev/lib/') + if (path.endsWith('/integration/IntegrationManager.java')) { + text = text.replace('import com.mcmoddev.lib.compat.LegacyNamespaceAliases;\n', '') + .replace('LegacyNamespaceAliases.pluginData(event.getASMHarvestedData())', + 'event.getASMHarvestedData()\n\t\t\t\t.getAll(MMDPlugin.class.getCanonicalName())') + .replace('LegacyNamespaceAliases.pluginData(event.getAsmData())', + 'event.getAsmData()\n\t\t\t\t.getAll(MMDPlugin.class.getCanonicalName())') + } + bytes = text.getBytes('UTF-8') + } + if (path == 'src/main/java/com/mcmoddev/lib/MMDLib.java') { + bytes = new String(bytes, 'UTF-8').replace( + 'VERSION = "' + project.mod_version + '"', 'VERSION = "1.0.0-rc2"').getBytes('UTF-8') + } + String hash = MessageDigest.getInstance('SHA-256').digest(bytes).encodeHex().toString() + if (hash != expected) throw new GradleException("Unexpected production change: ${path}") + } + } +} + +tasks.named('check') { + dependsOn 'verifyReleaseConfiguration', 'verifyReleaseDependencies', 'verifyJsonResources', 'verifySourceCompatibility' +} + +ext.mmdLibVerification = [ + java8Launcher: java8Launcher, java25Launcher: java25Launcher, + expectedReleaseFiles: expectedReleaseFiles, preparedReleaseDir: preparedReleaseDir, sha256: sha256 +].asImmutable() diff --git a/gradle/verification/workflows.gradle b/gradle/verification/workflows.gradle new file mode 100644 index 0000000..e3dd1b9 --- /dev/null +++ b/gradle/verification/workflows.gradle @@ -0,0 +1,26 @@ +tasks.register('verifyWorkflowContracts') { + group = 'verification' + doLast { + Map> required = [ + 'ci.yml': ['Cold Forge bootstrap', '--offline', 'packagedForgeRuntimeTest', + 'packagedForgeCompatRuntimeRoot', 'prepareEclipse', 'Verify reproducible release archives'], + 'codeql-analysis.yml': ['github/codeql-action/init@', 'clean classes', '--no-build-cache'], + 'validate-gradle-build.yml': ['gradle/actions/wrapper-validation@'], + 'release-on-tag.yml': ['deploy-release.yml', '**Nothing has been published.**'], + 'deploy-release.yml': ['confirm_live_publication', 'default: false', '261744', + 'zone.moddev.mc.mmdlib', 'Publish GitHub Release last', + '-PpreparedReleaseDir=', 'master-1.12'] + ] + required.each { name, fragments -> + String text = file('.github/workflows/' + name).getText('UTF-8').replace('\r\n', '\n') + if (!fragments.every { text.contains(it) }) throw new GradleException("Incomplete workflow: ${name}") + text.eachLine { line -> + def match = line =~ /^\s*uses:\s*([^\s#]+)(?:\s+#.*)?$/ + if (match.matches() && !(match.group(1) ==~ /[^@]+@[0-9a-f]{40}/)) { + throw new GradleException("Unpinned action in ${name}: ${line}") + } + } + } + } +} +tasks.named('check') { dependsOn 'verifyWorkflowContracts' } diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar index 0d4a951..b1b8ef5 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 a95009c..dbe66e1 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,10 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-4.9-bin.zip +distributionSha256Sum=9c0f7faeeb306cb14e4279a3e084ca6b596894089a0638e68a07c945a32c9e14 +distributionUrl=https\://services.gradle.org/distributions/gradle-9.6.1-bin.zip +networkTimeout=10000 +retries=0 +retryBackOffMs=500 +validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/gradlew b/gradlew index cccdd3d..249efbb 100755 --- a/gradlew +++ b/gradlew @@ -1,78 +1,128 @@ -#!/usr/bin/env sh +#!/bin/sh + +# +# Copyright © 2015 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. +# +# SPDX-License-Identifier: Apache-2.0 +# ############################################################################## -## -## Gradle start up script for UN*X -## +# +# gradlew 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 gradlew +# +# 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/3d91ce3b8caaf77ad09f381f43615b715b53f72c/platforms/jvm/plugins-application/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_NAME="Gradle" -APP_BASE_NAME=`basename "$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="" +# This is normally unused +# shellcheck disable=SC2034 +APP_BASE_NAME=${0##*/} +# Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036) +APP_HOME=$( cd -P "${APP_HOME:-./}" > /dev/null && printf '%s\n' "$PWD" ) || exit # 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,92 +131,118 @@ Please set the JAVA_HOME variable in your environment to match the location of your Java installation." fi else - 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. + JAVACMD=java + if ! command -v java >/dev/null 2>&1 + then + 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 location of your Java installation." + fi 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*) + # In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked. + # shellcheck disable=SC2039,SC3045 + MAX_FD=$( ulimit -H -n ) || + warn "Could not query maximum file descriptor limit" + esac + case $MAX_FD in #( + '' | soft) :;; #( + *) + # In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked. + # shellcheck disable=SC2039,SC3045 + 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" ) + + 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")" +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' + +# Collect all arguments for the java command: +# * DEFAULT_JVM_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments, +# and any embedded shellness will be escaped. +# * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be +# treated as '${Hostname}' itself on the command line. + +set -- \ + "-Dorg.gradle.appname=$APP_BASE_NAME" \ + -jar "$APP_HOME/gradle/wrapper/gradle-wrapper.jar" \ + "$@" + +# 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 f955316..a51ec4f 100644 --- a/gradlew.bat +++ b/gradlew.bat @@ -1,84 +1,82 @@ -@if "%DEBUG%" == "" @echo off +@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 +@rem SPDX-License-Identifier: Apache-2.0 +@rem + +@if "%DEBUG%"=="" @echo off @rem ########################################################################## @rem -@rem Gradle startup script for Windows +@rem gradlew startup script for Windows @rem @rem ########################################################################## -@rem Set local scope for the variables with windows NT shell -if "%OS%"=="Windows_NT" setlocal +@rem Set local scope for the variables, and ensure extensions are enabled +setlocal EnableExtensions set DIRNAME=%~dp0 -if "%DIRNAME%" == "" set DIRNAME=. +if "%DIRNAME%"=="" set DIRNAME=. +@rem This is normally unused 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= +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%" == "0" goto init +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. +echo. 1>&2 +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 1>&2 +echo. 1>&2 +echo Please set the JAVA_HOME variable in your environment to match the 1>&2 +echo location of your Java installation. 1>&2 -goto fail +"%COMSPEC%" /c exit 1 :findJavaFromJavaHome set JAVA_HOME=%JAVA_HOME:"=% set JAVA_EXE=%JAVA_HOME%/bin/java.exe -if exist "%JAVA_EXE%" goto init +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. +echo. 1>&2 +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% 1>&2 +echo. 1>&2 +echo Please set the JAVA_HOME variable in your environment to match the 1>&2 +echo location of your Java installation. 1>&2 -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=%* +"%COMSPEC%" /c exit 1 :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 +@rem Execute gradlew +@rem endlocal doesn't take effect until after the line is parsed and variables are expanded +@rem which allows us to clear the local environment before executing the java command +endlocal & "%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -jar "%APP_HOME%\gradle\wrapper\gradle-wrapper.jar" %* & call :exitWithErrorLevel -:omega +:exitWithErrorLevel +@rem Use "%COMSPEC%" /c exit to allow operators to work properly in scripts +"%COMSPEC%" /c exit %ERRORLEVEL% diff --git a/settings.gradle b/settings.gradle index f74c120..f4f7923 100644 --- a/settings.gradle +++ b/settings.gradle @@ -1,33 +1,5 @@ -// Workaround to make the JUnit Platform Gradle Plugin available using the `plugins` DSL -// See https://github.com/junit-team/junit5/issues/768 -if (!(GradleVersion.current() <= GradleVersion.version('2.14.1'))) { -pluginManagement { - repositories { - gradlePluginPortal() - maven { url = ArtifactRepositoryContainer.MAVEN_CENTRAL_URL } - } - resolutionStrategy { - eachPlugin { - if (requested.id.id == 'org.junit.platform.gradle.plugin') { - useModule("org.junit.platform:junit-platform-gradle-plugin:${requested.version}") -// } else if (requested.id.id == 'org.junit.platform.gradle.plugin') { -// useModule("org.junit.platform:junit-platform-gradle-plugin:${requested.version}") - } - } - } -} -} - -rootProject.name = archivesBaseName -import org.gradle.util.GradleVersion -if ((GradleVersion.current() >= GradleVersion.version('4.8')) && (GradleVersion.current() <= GradleVersion.version('4.10.3'))) { - enableFeaturePreview('STABLE_PUBLISHING') // 4.10.3 +plugins { + id('org.gradle.toolchains.foojay-resolver-convention') version '1.0.0' } -// TODO: Things which likely don't work with FG yet, but I've not checked. -/* -if ((GradleVersion.current() >= GradleVersion.version('4.6')) && (GradleVersion.current() <= GradleVersion.version('4.10.3'))) { - enableFeaturePreview('IMPROVED_POM_SUPPORT') // Previously -Dorg.gradle.advancedpomsupport=true - enableFeaturePreview('GRADLE_METADATA') // Previously -Dorg.gradle.gradlemetadata=true -} -*/ +rootProject.name = 'MMDLib' diff --git a/src/buildSupport/java/zone/moddev/mc/mmdlib/build/LegacyApiTool.java b/src/buildSupport/java/zone/moddev/mc/mmdlib/build/LegacyApiTool.java new file mode 100644 index 0000000..0fb8b5d --- /dev/null +++ b/src/buildSupport/java/zone/moddev/mc/mmdlib/build/LegacyApiTool.java @@ -0,0 +1,215 @@ +package zone.moddev.mc.mmdlib.build; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonParser; +import java.io.IOException; +import java.io.ByteArrayOutputStream; +import java.io.InputStream; +import java.nio.charset.StandardCharsets; +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.Paths; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; +import java.util.TreeMap; +import java.util.jar.JarFile; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.objectweb.asm.AnnotationVisitor; +import org.objectweb.asm.ClassReader; +import org.objectweb.asm.ClassVisitor; +import org.objectweb.asm.ClassWriter; +import org.objectweb.asm.FieldVisitor; +import org.objectweb.asm.MethodVisitor; +import org.objectweb.asm.Opcodes; +import org.objectweb.asm.Type; +import org.objectweb.asm.commons.ClassRemapper; +import org.objectweb.asm.commons.Remapper; + +/** Build-only compiler API exports; no duplicated library implementation is shipped. */ +public final class LegacyApiTool { + private static final String MODERN = "zone/moddev/mc/mmdlib/"; + private static final String LEGACY = "com/mcmoddev/lib/"; + private static final Gson JSON = new GsonBuilder().disableHtmlEscaping().setPrettyPrinting().create(); + + private LegacyApiTool() { } + + public static void main(final String[] args) throws IOException { + if ("capture".equals(args[0])) { + Map inventory = new TreeMap<>(); + try (JarFile jar = new JarFile(args[1])) { + jar.stream().filter(e -> e.getName().startsWith(LEGACY) && e.getName().endsWith(".class")) + .forEach(e -> { + try (InputStream input = jar.getInputStream(e)) { + ByteArrayOutputStream bytes = new ByteArrayOutputStream(); + byte[] buffer = new byte[8192]; + int count; + while ((count = input.read(buffer)) >= 0) bytes.write(buffer, 0, count); + addApi(inventory, bytes.toByteArray()); + } + catch (IOException failure) { throw new IllegalStateException(failure); } + }); + } + write(Paths.get(args[2]), JSON.toJson(inventory)); + } else if ("generate".equals(args[0])) { + generate(Paths.get(args[1]), Paths.get(args[2]), Paths.get(args[3]), Paths.get(args[4])); + } else { + throw new IllegalArgumentException("Expected capture or generate"); + } + } + + private static void generate(final Path input, final Path output, final Path resources, + final Path baseline) throws IOException { + Map inventory = new TreeMap<>(); + List aliases = new ArrayList<>(); + List classes; + try (Stream paths = Files.walk(input)) { + classes = paths.filter(p -> p.toString().endsWith(".class")).sorted().collect(Collectors.toList()); + } + for (Path file : classes) { + ClassReader source = new ClassReader(Files.readAllBytes(file)); + String name = source.getClassName(); + if (!name.startsWith(MODERN) || name.startsWith(MODERN + "compat/")) continue; + String legacyName = LEGACY + name.substring(MODERN.length()); + ClassWriter target = new ClassWriter(0); + source.accept(new ClassRemapper(new ExportVisitor(target), new Remapper() { + @Override public String map(final String type) { + return type.startsWith(MODERN) ? LEGACY + type.substring(MODERN.length()) : type; + } + @Override public Object mapValue(final Object value) { + if (value instanceof String) return ((String) value).replace(MODERN, LEGACY) + .replace(MODERN.replace('/', '.'), LEGACY.replace('/', '.')); + return super.mapValue(value); + } + }), ClassReader.SKIP_CODE | ClassReader.SKIP_DEBUG | ClassReader.SKIP_FRAMES); + byte[] bytes = target.toByteArray(); + Path destination = output.resolve(legacyName + ".class"); + Files.createDirectories(destination.getParent()); + Files.write(destination, bytes); + addApi(inventory, bytes); + aliases.add(legacyName + "=" + name); + } + JsonParser parser = new JsonParser(); + String expected = parser.parse(new String(Files.readAllBytes(baseline), StandardCharsets.UTF_8)).toString(); + if (!parser.parse(JSON.toJson(inventory)).toString().equals(expected)) { + write(output.resolve("actual-api.json"), JSON.toJson(inventory)); + throw new IllegalStateException("Legacy API signatures changed; compare actual-api.json with " + baseline); + } + java.util.Collections.sort(aliases); + write(resources.resolve("META-INF/mmdlib-legacy-names.list"), String.join("\n", aliases) + "\n"); + System.out.println("Verified " + aliases.size() + " legacy class aliases and all public/protected API signatures"); + } + + private static final class ExportVisitor extends ClassVisitor { + private boolean annotation; + private boolean reflectiveFactory; + private String owner; + private String modernOwner; + ExportVisitor(final ClassVisitor target) { super(Opcodes.ASM5, target); } + @Override public void visit(final int version, final int access, final String name, final String signature, + final String parent, final String[] interfaces) { + annotation = (access & Opcodes.ACC_ANNOTATION) != 0; + owner = name; + modernOwner = MODERN + name.substring(LEGACY.length()); + reflectiveFactory = "java/lang/Object".equals(parent) + && (access & (Opcodes.ACC_INTERFACE | Opcodes.ACC_ABSTRACT)) == 0 + && Arrays.stream(interfaces).anyMatch(i -> i.startsWith("net/minecraftforge/common/crafting/I") + && i.endsWith("Factory")); + super.visit(version, access, name, signature, parent, interfaces); + if (reflectiveFactory) super.visitField(Opcodes.ACC_PRIVATE | Opcodes.ACC_FINAL, + "$modernDelegate", "L" + modernOwner + ";", null, null).visitEnd(); + } + @Override public AnnotationVisitor visitAnnotation(final String descriptor, final boolean visible) { + // Annotation declarations need Retention/Target for old source consumers. + // Export classes must never become a second mod, config or event subscriber. + return annotation ? super.visitAnnotation(descriptor, visible) : null; + } + @Override public FieldVisitor visitField(final int access, final String name, final String descriptor, + final String signature, final Object value) { + return new FieldVisitor(Opcodes.ASM5, super.visitField(access, name, descriptor, signature, value)) { + @Override public AnnotationVisitor visitAnnotation(final String desc, final boolean visible) { return null; } + }; + } + @Override public MethodVisitor visitMethod(final int access, final String name, final String descriptor, + final String signature, final String[] exceptions) { + MethodVisitor target = super.visitMethod(access, name, descriptor, signature, exceptions); + return new MethodVisitor(Opcodes.ASM5, target) { + @Override public AnnotationVisitor visitAnnotation(final String desc, final boolean visible) { return null; } + @Override public void visitEnd() { + if ((access & (Opcodes.ACC_ABSTRACT | Opcodes.ACC_NATIVE)) == 0) { + target.visitCode(); + if (reflectiveFactory && "".equals(name) && "()V".equals(descriptor)) { + target.visitVarInsn(Opcodes.ALOAD, 0); + target.visitMethodInsn(Opcodes.INVOKESPECIAL, "java/lang/Object", "", "()V", false); + target.visitVarInsn(Opcodes.ALOAD, 0); + target.visitTypeInsn(Opcodes.NEW, modernOwner); + target.visitInsn(Opcodes.DUP); + target.visitMethodInsn(Opcodes.INVOKESPECIAL, modernOwner, "", "()V", false); + target.visitFieldInsn(Opcodes.PUTFIELD, owner, "$modernDelegate", "L" + modernOwner + ";"); + target.visitInsn(Opcodes.RETURN); + } else if (reflectiveFactory && (access & Opcodes.ACC_PUBLIC) != 0 + && (access & Opcodes.ACC_STATIC) == 0 && !descriptor.contains(LEGACY)) { + target.visitVarInsn(Opcodes.ALOAD, 0); + target.visitFieldInsn(Opcodes.GETFIELD, owner, "$modernDelegate", "L" + modernOwner + ";"); + int slot = 1; + for (Type type : Type.getArgumentTypes(descriptor)) { + target.visitVarInsn(type.getOpcode(Opcodes.ILOAD), slot); + slot += type.getSize(); + } + target.visitMethodInsn(Opcodes.INVOKEVIRTUAL, modernOwner, name, descriptor, false); + target.visitInsn(Type.getReturnType(descriptor).getOpcode(Opcodes.IRETURN)); + } else { + target.visitTypeInsn(Opcodes.NEW, "java/lang/UnsupportedOperationException"); + target.visitInsn(Opcodes.DUP); + target.visitLdcInsn("MMDLib legacy API requires the Forge namespace compatibility adapter"); + target.visitMethodInsn(Opcodes.INVOKESPECIAL, "java/lang/UnsupportedOperationException", "", "(Ljava/lang/String;)V", false); + target.visitInsn(Opcodes.ATHROW); + } + int locals = (access & Opcodes.ACC_STATIC) == 0 ? 1 : 0; + for (Type type : Type.getArgumentTypes(descriptor)) locals += type.getSize(); + target.visitMaxs(Math.max(3, locals + 1), locals); + } + target.visitEnd(); + } + }; + } + } + + private static void addApi(final Map inventory, final byte[] bytes) { + ClassReader reader = new ClassReader(bytes); + Map metadata = new LinkedHashMap<>(); + Map fields = new TreeMap<>(); + Map methods = new TreeMap<>(); + reader.accept(new ClassVisitor(Opcodes.ASM5) { + @Override public void visit(final int version, final int access, final String name, final String signature, + final String parent, final String[] interfaces) { + metadata.put("access", access); metadata.put("super", parent); + metadata.put("interfaces", Arrays.asList(interfaces)); metadata.put("signature", signature); + } + @Override public FieldVisitor visitField(final int access, final String name, final String descriptor, + final String signature, final Object value) { + if ((access & (Opcodes.ACC_PUBLIC | Opcodes.ACC_PROTECTED)) != 0) + fields.put(name + ":" + descriptor, Arrays.asList(access, signature, value)); + return null; + } + @Override public MethodVisitor visitMethod(final int access, final String name, final String descriptor, + final String signature, final String[] exceptions) { + if ((access & (Opcodes.ACC_PUBLIC | Opcodes.ACC_PROTECTED)) != 0) + methods.put(name + descriptor, Arrays.asList(access, signature, + exceptions == null ? java.util.Collections.emptyList() : Arrays.asList(exceptions))); + return null; + } + }, ClassReader.SKIP_CODE | ClassReader.SKIP_DEBUG | ClassReader.SKIP_FRAMES); + metadata.put("fields", fields); metadata.put("methods", methods); + inventory.put(reader.getClassName(), metadata); + } + + private static void write(final Path destination, final String value) throws IOException { + Files.createDirectories(destination.toAbsolutePath().getParent()); + Files.write(destination, value.getBytes(StandardCharsets.UTF_8)); + } +} diff --git a/src/legacyRuntimeTest/java/mmdlib/namespace/fixture/LegacyConsumerProbe.java b/src/legacyRuntimeTest/java/mmdlib/namespace/fixture/LegacyConsumerProbe.java new file mode 100644 index 0000000..f9a4603 --- /dev/null +++ b/src/legacyRuntimeTest/java/mmdlib/namespace/fixture/LegacyConsumerProbe.java @@ -0,0 +1,71 @@ +package mmdlib.namespace.fixture; + +import com.google.gson.JsonObject; +import com.mcmoddev.lib.MMDLib; +import com.mcmoddev.lib.data.NameToken; +import com.mcmoddev.lib.data.Names; +import com.mcmoddev.lib.integration.IIntegration; +import com.mcmoddev.lib.integration.IIntegrationEvent; +import com.mcmoddev.lib.integration.IntegrationInitEvent; +import com.mcmoddev.lib.integration.IntegrationManager; +import com.mcmoddev.lib.integration.MMDPlugin; +import java.util.Arrays; +import net.minecraftforge.common.MinecraftForge; +import net.minecraftforge.common.crafting.IConditionFactory; +import net.minecraftforge.common.crafting.JsonContext; +import net.minecraftforge.fml.common.Mod; +import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; + +/** Compiled against the published old library, never against canonical implementation classes. */ +@Mod(modid = "mmdlib_legacy_probe", name = "Legacy MMDLib Consumer Probe", version = "1", + dependencies = "required-after:mmdlib", acceptedMinecraftVersions = "[1.12.2]") +public final class LegacyConsumerProbe { + private static int pluginInitializations; + private static int oldEventCallbacks; + private static int lambdaCalls; + + public static void verify() throws Exception { + String canonical = "zone.moddev.mc.mmdlib."; + require(MMDLib.getVersion().equals(System.getProperty("mmdlib.probe.version")), "Legacy version method failed"); + require(MMDLib.instance.getClass() == Class.forName(canonical + "MMDLib"), "Split mod instance"); + require(MMDLib.proxy.getClass().getName().startsWith(canonical), "Legacy proxy field did not link"); + require(Names.INGOT == Class.forName(canonical + "data.Names").getField("INGOT").get(null), "Split enum identity"); + require(IntegrationManager.INSTANCE == Class.forName(canonical + "integration.IntegrationManager") + .getField("INSTANCE").get(null), "Split integration singleton"); + NameToken oldToken = new NameToken(Names.INGOT); + Object newToken = Class.forName(canonical + "data.NameToken") + .getConstructor(Class.forName(canonical + "data.Names")).newInstance(Names.INGOT); + require(oldToken.equals(newToken), "Legacy constructor, parameter descriptor or equality failed"); + require(new LegacyEvent() instanceof IIntegrationEvent, "Legacy subclass/interface failed"); + require(LegacyEvent.class.getSuperclass() == Class.forName(canonical + "integration.IntegrationInitEvent"), + "Legacy superclass was not relinked"); + IIntegration lambda = () -> lambdaCalls++; + lambda.init(); + require(lambdaCalls > 0 && Arrays.asList(lambda.getClass().getInterfaces()) + .contains(Class.forName(canonical + "integration.IIntegration")), "Legacy lambda linkage failed"); + require(pluginInitializations == 1, "Old MMDPlugin annotation was missed or initialized twice"); + require(oldEventCallbacks == 1, "Legacy event subscriber did not receive the canonical event exactly once"); + // This name arrives externally, bypassing bytecode literal remapping. + IConditionFactory factory = (IConditionFactory) Class.forName(System.getProperty("mmdlib.probe.legacyFactory")) + .newInstance(); + IConditionFactory modern = (IConditionFactory) Class.forName(canonical + "recipe.conditions.HammerEnabled").newInstance(); + require(factory.parse(new JsonContext("mmdlib_legacy_probe"), new JsonObject()).getAsBoolean() + == modern.parse(new JsonContext("mmdlib_legacy_probe"), new JsonObject()).getAsBoolean(), + "Reflective recipe condition alias diverged"); + } + + public static final class LegacyEvent extends IntegrationInitEvent { } + + @MMDPlugin(addonId = "mmdlib_legacy_probe", pluginId = "mmdlib") + public static final class Plugin implements IIntegration { + @Override public void init() { + pluginInitializations++; + MinecraftForge.EVENT_BUS.register(this); + } + @SubscribeEvent public void onOldEvent(final IntegrationInitEvent event) { oldEventCallbacks++; } + } + + private static void require(final boolean condition, final String message) { + if (!condition) throw new IllegalStateException(message); + } +} diff --git a/src/main/java/com/mcmoddev/lib/container/gui/sprite/package-info.java b/src/main/java/com/mcmoddev/lib/container/gui/sprite/package-info.java deleted file mode 100644 index 283fc96..0000000 --- a/src/main/java/com/mcmoddev/lib/container/gui/sprite/package-info.java +++ /dev/null @@ -1,6 +0,0 @@ -@ParametersAreNonnullByDefault -@MethodsReturnNonnullByDefault -package com.mcmoddev.lib.container.gui.sprite; - -import javax.annotation.ParametersAreNonnullByDefault; -import mcp.MethodsReturnNonnullByDefault; diff --git a/src/main/java/com/mcmoddev/lib/container/slot/package-info.java b/src/main/java/com/mcmoddev/lib/container/slot/package-info.java deleted file mode 100644 index f4c8d4f..0000000 --- a/src/main/java/com/mcmoddev/lib/container/slot/package-info.java +++ /dev/null @@ -1,6 +0,0 @@ -@ParametersAreNonnullByDefault -@MethodsReturnNonnullByDefault -package com.mcmoddev.lib.container.slot; - -import javax.annotation.ParametersAreNonnullByDefault; -import mcp.MethodsReturnNonnullByDefault; diff --git a/src/main/java/com/mcmoddev/lib/container/widget/package-info.java b/src/main/java/com/mcmoddev/lib/container/widget/package-info.java deleted file mode 100644 index 366f414..0000000 --- a/src/main/java/com/mcmoddev/lib/container/widget/package-info.java +++ /dev/null @@ -1,6 +0,0 @@ -@ParametersAreNonnullByDefault -@MethodsReturnNonnullByDefault -package com.mcmoddev.lib.container.widget; - -import javax.annotation.ParametersAreNonnullByDefault; -import mcp.MethodsReturnNonnullByDefault; diff --git a/src/main/java/com/mcmoddev/lib/energy/mekanism/package-info.java b/src/main/java/com/mcmoddev/lib/energy/mekanism/package-info.java deleted file mode 100644 index 8af35aa..0000000 --- a/src/main/java/com/mcmoddev/lib/energy/mekanism/package-info.java +++ /dev/null @@ -1,6 +0,0 @@ -@ParametersAreNonnullByDefault -@MethodsReturnNonnullByDefault -package com.mcmoddev.lib.energy.mekanism; - -import javax.annotation.ParametersAreNonnullByDefault; -import mcp.MethodsReturnNonnullByDefault; diff --git a/src/main/java/com/mcmoddev/lib/energy/package-info.java b/src/main/java/com/mcmoddev/lib/energy/package-info.java deleted file mode 100644 index a44cb18..0000000 --- a/src/main/java/com/mcmoddev/lib/energy/package-info.java +++ /dev/null @@ -1,6 +0,0 @@ -@ParametersAreNonnullByDefault -@MethodsReturnNonnullByDefault -package com.mcmoddev.lib.energy; - -import javax.annotation.ParametersAreNonnullByDefault; -import mcp.MethodsReturnNonnullByDefault; diff --git a/src/main/java/com/mcmoddev/lib/energy/rf/package-info.java b/src/main/java/com/mcmoddev/lib/energy/rf/package-info.java deleted file mode 100644 index 7f9cae1..0000000 --- a/src/main/java/com/mcmoddev/lib/energy/rf/package-info.java +++ /dev/null @@ -1,6 +0,0 @@ -@ParametersAreNonnullByDefault -@MethodsReturnNonnullByDefault -package com.mcmoddev.lib.energy.rf; - -import javax.annotation.ParametersAreNonnullByDefault; -import mcp.MethodsReturnNonnullByDefault; diff --git a/src/main/java/com/mcmoddev/lib/energy/tesla/package-info.java b/src/main/java/com/mcmoddev/lib/energy/tesla/package-info.java deleted file mode 100644 index 48cad63..0000000 --- a/src/main/java/com/mcmoddev/lib/energy/tesla/package-info.java +++ /dev/null @@ -1,6 +0,0 @@ -@ParametersAreNonnullByDefault -@MethodsReturnNonnullByDefault -package com.mcmoddev.lib.energy.tesla; - -import javax.annotation.ParametersAreNonnullByDefault; -import mcp.MethodsReturnNonnullByDefault; diff --git a/src/main/java/com/mcmoddev/lib/energy/util/package-info.java b/src/main/java/com/mcmoddev/lib/energy/util/package-info.java deleted file mode 100644 index c359393..0000000 --- a/src/main/java/com/mcmoddev/lib/energy/util/package-info.java +++ /dev/null @@ -1,6 +0,0 @@ -@ParametersAreNonnullByDefault -@MethodsReturnNonnullByDefault -package com.mcmoddev.lib.energy.util; - -import javax.annotation.ParametersAreNonnullByDefault; -import mcp.MethodsReturnNonnullByDefault; diff --git a/src/main/java/com/mcmoddev/lib/feature/package-info.java b/src/main/java/com/mcmoddev/lib/feature/package-info.java deleted file mode 100644 index 0005901..0000000 --- a/src/main/java/com/mcmoddev/lib/feature/package-info.java +++ /dev/null @@ -1,6 +0,0 @@ -@ParametersAreNonnullByDefault -@MethodsReturnNonnullByDefault -package com.mcmoddev.lib.feature; - -import javax.annotation.ParametersAreNonnullByDefault; -import mcp.MethodsReturnNonnullByDefault; diff --git a/src/main/java/com/mcmoddev/lib/fluids/package-info.java b/src/main/java/com/mcmoddev/lib/fluids/package-info.java deleted file mode 100644 index b56d9c4..0000000 --- a/src/main/java/com/mcmoddev/lib/fluids/package-info.java +++ /dev/null @@ -1,4 +0,0 @@ -@ParametersAreNonnullByDefault -package com.mcmoddev.lib.fluids; - -import javax.annotation.ParametersAreNonnullByDefault; diff --git a/src/main/java/com/mcmoddev/lib/init/package-info.java b/src/main/java/com/mcmoddev/lib/init/package-info.java deleted file mode 100644 index 66ada01..0000000 --- a/src/main/java/com/mcmoddev/lib/init/package-info.java +++ /dev/null @@ -1,4 +0,0 @@ -@ParametersAreNonnullByDefault -package com.mcmoddev.lib.init; - -import javax.annotation.ParametersAreNonnullByDefault; diff --git a/src/main/java/com/mcmoddev/lib/integration/jei/package-info.java b/src/main/java/com/mcmoddev/lib/integration/jei/package-info.java deleted file mode 100644 index 28db91e..0000000 --- a/src/main/java/com/mcmoddev/lib/integration/jei/package-info.java +++ /dev/null @@ -1,4 +0,0 @@ -@ParametersAreNonnullByDefault -package com.mcmoddev.lib.integration.jei; - -import javax.annotation.ParametersAreNonnullByDefault; diff --git a/src/main/java/com/mcmoddev/lib/integration/package-info.java b/src/main/java/com/mcmoddev/lib/integration/package-info.java deleted file mode 100644 index 040ede7..0000000 --- a/src/main/java/com/mcmoddev/lib/integration/package-info.java +++ /dev/null @@ -1,4 +0,0 @@ -@ParametersAreNonnullByDefault -package com.mcmoddev.lib.integration; - -import javax.annotation.ParametersAreNonnullByDefault; diff --git a/src/main/java/com/mcmoddev/lib/integration/plugins/DenseOresBase.java b/src/main/java/com/mcmoddev/lib/integration/plugins/DenseOresBase.java deleted file mode 100755 index f61acf4..0000000 --- a/src/main/java/com/mcmoddev/lib/integration/plugins/DenseOresBase.java +++ /dev/null @@ -1,6 +0,0 @@ -package com.mcmoddev.lib.integration.plugins; - -@Deprecated -public class DenseOresBase extends DenseOres { - // Here purely for holdovers, will be removed with next beta -} diff --git a/src/main/java/com/mcmoddev/lib/integration/plugins/EnderIOBase.java b/src/main/java/com/mcmoddev/lib/integration/plugins/EnderIOBase.java deleted file mode 100644 index fe26600..0000000 --- a/src/main/java/com/mcmoddev/lib/integration/plugins/EnderIOBase.java +++ /dev/null @@ -1,6 +0,0 @@ -package com.mcmoddev.lib.integration.plugins; - -@Deprecated -public class EnderIOBase extends EnderIO { - // Here purely for holdovers, will be removed with next beta -} diff --git a/src/main/java/com/mcmoddev/lib/integration/plugins/IC2Base.java b/src/main/java/com/mcmoddev/lib/integration/plugins/IC2Base.java deleted file mode 100644 index 67397a8..0000000 --- a/src/main/java/com/mcmoddev/lib/integration/plugins/IC2Base.java +++ /dev/null @@ -1,6 +0,0 @@ -package com.mcmoddev.lib.integration.plugins; - -@Deprecated -public class IC2Base extends IC2 { - // Here purely for holdovers, will be removed with next beta -} diff --git a/src/main/java/com/mcmoddev/lib/integration/plugins/MekanismBase.java b/src/main/java/com/mcmoddev/lib/integration/plugins/MekanismBase.java deleted file mode 100644 index cbd38f7..0000000 --- a/src/main/java/com/mcmoddev/lib/integration/plugins/MekanismBase.java +++ /dev/null @@ -1,6 +0,0 @@ -package com.mcmoddev.lib.integration.plugins; - -@Deprecated -public class MekanismBase extends Mekanism { - // Here purely for holdovers, will be removed with next beta -} diff --git a/src/main/java/com/mcmoddev/lib/integration/plugins/ThaumcraftBase.java b/src/main/java/com/mcmoddev/lib/integration/plugins/ThaumcraftBase.java deleted file mode 100644 index a38dc4f..0000000 --- a/src/main/java/com/mcmoddev/lib/integration/plugins/ThaumcraftBase.java +++ /dev/null @@ -1,6 +0,0 @@ -package com.mcmoddev.lib.integration.plugins; - -@Deprecated -public class ThaumcraftBase extends Thaumcraft { - // Here purely for holdovers, will be removed with next beta -} diff --git a/src/main/java/com/mcmoddev/lib/integration/plugins/ThermalExpansionBase.java b/src/main/java/com/mcmoddev/lib/integration/plugins/ThermalExpansionBase.java deleted file mode 100755 index 87be75e..0000000 --- a/src/main/java/com/mcmoddev/lib/integration/plugins/ThermalExpansionBase.java +++ /dev/null @@ -1,6 +0,0 @@ -package com.mcmoddev.lib.integration.plugins; - -@Deprecated -public class ThermalExpansionBase extends ThermalExpansion { - // Here purely for holdovers, will be removed with next beta -} diff --git a/src/main/java/com/mcmoddev/lib/integration/plugins/TinkersConstructBase.java b/src/main/java/com/mcmoddev/lib/integration/plugins/TinkersConstructBase.java deleted file mode 100755 index 34f1e69..0000000 --- a/src/main/java/com/mcmoddev/lib/integration/plugins/TinkersConstructBase.java +++ /dev/null @@ -1,6 +0,0 @@ -package com.mcmoddev.lib.integration.plugins; - -@Deprecated -public class TinkersConstructBase extends TinkersConstruct { - // Here purely for holdovers, will be removed with next beta -} diff --git a/src/main/java/com/mcmoddev/lib/integration/plugins/VeinMinerBase.java b/src/main/java/com/mcmoddev/lib/integration/plugins/VeinMinerBase.java deleted file mode 100644 index 601f2b4..0000000 --- a/src/main/java/com/mcmoddev/lib/integration/plugins/VeinMinerBase.java +++ /dev/null @@ -1,6 +0,0 @@ -package com.mcmoddev.lib.integration.plugins; - -@Deprecated -public class VeinMinerBase extends VeinMiner { - // Here purely for holdovers, will be removed with next beta -} diff --git a/src/main/java/com/mcmoddev/lib/integration/plugins/armory/traits/TraitBrittle.java b/src/main/java/com/mcmoddev/lib/integration/plugins/armory/traits/TraitBrittle.java deleted file mode 100644 index b5938eb..0000000 --- a/src/main/java/com/mcmoddev/lib/integration/plugins/armory/traits/TraitBrittle.java +++ /dev/null @@ -1,36 +0,0 @@ -package com.mcmoddev.lib.integration.plugins.armory.traits; - -import c4.conarm.lib.traits.AbstractArmorTrait; -import net.minecraft.util.text.TextFormatting; - -/** - *

Brittle Tool Modifier:

- * Name: brittle - *
- * Desc: - * Tools will lose 0 or 1 durability if the durability of the tool minus one is less than 5. - * Otherwise, the tool will lose a minimum of 0 to a maximum of 5 durability at random. - * Durability loss is applied and calculated if the block that is being broken is a stone block. - * - *
- * String Reference:
- * "brittle"
- * "mmd-brittle"
- */ -public class TraitBrittle extends AbstractArmorTrait { - - public TraitBrittle() { - super("mmd-brittle", TextFormatting.RED); - } - -// @Override -// public void beforeBlockBreak(@Nonnull final ItemStack tool, -// @Nonnull final BlockEvent.BreakEvent event) { -// final Block block = event.getState().getBlock(); -// if (block.getDefaultState().getMaterial() == Material.ROCK) { -// final Integer durability = ToolHelper.getCurrentDurability(tool); -// final Integer damageDone = random.nextInt(Math.min(5, durability - 1)); -// ToolHelper.damageTool(tool, damageDone.intValue(), event.getPlayer()); -// } -// } -} diff --git a/src/main/java/com/mcmoddev/lib/integration/plugins/armory/traits/TraitIcy.java b/src/main/java/com/mcmoddev/lib/integration/plugins/armory/traits/TraitIcy.java deleted file mode 100644 index bb2ad54..0000000 --- a/src/main/java/com/mcmoddev/lib/integration/plugins/armory/traits/TraitIcy.java +++ /dev/null @@ -1,64 +0,0 @@ -package com.mcmoddev.lib.integration.plugins.armory.traits; - -import c4.conarm.lib.traits.AbstractArmorTrait; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraft.util.DamageSource; -import net.minecraft.util.text.TextFormatting; -import net.minecraftforge.event.entity.living.LivingDamageEvent; - -/** - *

Icy Armor Modifier

- * Name: icy - *
- * Desc: - * Applies Fire Protection - * - *
- * String Reference:
- * "icy" - * "mmd-icy" - */ -public class TraitIcy extends AbstractArmorTrait { - // private static final int EFFECT_DURATION = 20; - - public TraitIcy() { - super("mmd-icy", TextFormatting.GRAY); - } - - /*private static int getAmountSuitPieces(final EntityPlayer player, final String materialName) { - final MMDMaterial material = Materials.getMaterialByName(materialName); - int pieces = 0; - if (player.getItemStackFromSlot(EntityEquipmentSlot.HEAD).getItem() == material.getItem(Names.HELMET)){ - pieces++; - } - if (player.getItemStackFromSlot(EntityEquipmentSlot.CHEST).getItem() == material.getItem(Names.CHESTPLATE)){ - pieces++; - } - if (player.getItemStackFromSlot(EntityEquipmentSlot.LEGS).getItem() == material.getItem(Names.LEGGINGS)){ - pieces++; - } - if (player.getItemStackFromSlot(EntityEquipmentSlot.FEET).getItem() == material.getItem(Names.BOOTS)){ - pieces++; - } - return pieces; - }*/ - - //TODO: Fix this -/* @SuppressWarnings("unused") - private static void applyFireProtection(EntityPlayer player){ - final PotionEffect fireProtection = new PotionEffect(MobEffects.FIRE_RESISTANCE, - EFFECT_DURATION, getAmountSuitPieces(player, MaterialNames.COLDIRON)-1, false, false); - player.addPotionEffect(fireProtection); - }*/ - - @Override - public float onDamaged(ItemStack armor, EntityPlayer player, DamageSource source, float damage, float newDamage, LivingDamageEvent evt) { - float newNewDamage = newDamage; - if(source.isFireDamage() /*&& armor.getItem() instanceof ItemMMDArmor*/){ - //float reductionAmount = 0.25f * getAmountSuitPieces(player, "coldiron"); - newNewDamage = 0f;//damage - (damage * reductionAmount); - } - return newNewDamage; - } -} diff --git a/src/main/java/com/mcmoddev/lib/integration/plugins/armory/traits/package-info.java b/src/main/java/com/mcmoddev/lib/integration/plugins/armory/traits/package-info.java deleted file mode 100644 index e4ca8d8..0000000 --- a/src/main/java/com/mcmoddev/lib/integration/plugins/armory/traits/package-info.java +++ /dev/null @@ -1,4 +0,0 @@ -@ParametersAreNonnullByDefault -package com.mcmoddev.lib.integration.plugins.armory.traits; - -import javax.annotation.ParametersAreNonnullByDefault; diff --git a/src/main/java/com/mcmoddev/lib/integration/plugins/package-info.java b/src/main/java/com/mcmoddev/lib/integration/plugins/package-info.java deleted file mode 100644 index fca1270..0000000 --- a/src/main/java/com/mcmoddev/lib/integration/plugins/package-info.java +++ /dev/null @@ -1,4 +0,0 @@ -@ParametersAreNonnullByDefault -package com.mcmoddev.lib.integration.plugins; - -import javax.annotation.ParametersAreNonnullByDefault; diff --git a/src/main/java/com/mcmoddev/lib/integration/plugins/tinkers/events/package-info.java b/src/main/java/com/mcmoddev/lib/integration/plugins/tinkers/events/package-info.java deleted file mode 100644 index e9433a2..0000000 --- a/src/main/java/com/mcmoddev/lib/integration/plugins/tinkers/events/package-info.java +++ /dev/null @@ -1,8 +0,0 @@ -/** - * - */ -/** - * @author SYSTEM - * - */ -package com.mcmoddev.lib.integration.plugins.tinkers.events; diff --git a/src/main/java/com/mcmoddev/lib/integration/plugins/tinkers/modifiers/package-info.java b/src/main/java/com/mcmoddev/lib/integration/plugins/tinkers/modifiers/package-info.java deleted file mode 100644 index 241efc6..0000000 --- a/src/main/java/com/mcmoddev/lib/integration/plugins/tinkers/modifiers/package-info.java +++ /dev/null @@ -1,4 +0,0 @@ -@ParametersAreNonnullByDefault -package com.mcmoddev.lib.integration.plugins.tinkers.modifiers; - -import javax.annotation.ParametersAreNonnullByDefault; diff --git a/src/main/java/com/mcmoddev/lib/integration/plugins/tinkers/package-info.java b/src/main/java/com/mcmoddev/lib/integration/plugins/tinkers/package-info.java deleted file mode 100644 index c379754..0000000 --- a/src/main/java/com/mcmoddev/lib/integration/plugins/tinkers/package-info.java +++ /dev/null @@ -1,4 +0,0 @@ -@ParametersAreNonnullByDefault -package com.mcmoddev.lib.integration.plugins.tinkers; - -import javax.annotation.ParametersAreNonnullByDefault; diff --git a/src/main/java/com/mcmoddev/lib/integration/plugins/tinkers/traits/package-info.java b/src/main/java/com/mcmoddev/lib/integration/plugins/tinkers/traits/package-info.java deleted file mode 100644 index 1ddadeb..0000000 --- a/src/main/java/com/mcmoddev/lib/integration/plugins/tinkers/traits/package-info.java +++ /dev/null @@ -1,4 +0,0 @@ -@ParametersAreNonnullByDefault -package com.mcmoddev.lib.integration.plugins.tinkers.traits; - -import javax.annotation.ParametersAreNonnullByDefault; diff --git a/src/main/java/com/mcmoddev/lib/inventory/package-info.java b/src/main/java/com/mcmoddev/lib/inventory/package-info.java deleted file mode 100644 index c462c2b..0000000 --- a/src/main/java/com/mcmoddev/lib/inventory/package-info.java +++ /dev/null @@ -1,6 +0,0 @@ -@ParametersAreNonnullByDefault -@MethodsReturnNonnullByDefault -package com.mcmoddev.lib.inventory; - -import javax.annotation.ParametersAreNonnullByDefault; -import mcp.MethodsReturnNonnullByDefault; diff --git a/src/main/java/com/mcmoddev/lib/item/package-info.java b/src/main/java/com/mcmoddev/lib/item/package-info.java deleted file mode 100644 index 51798bd..0000000 --- a/src/main/java/com/mcmoddev/lib/item/package-info.java +++ /dev/null @@ -1,4 +0,0 @@ -@ParametersAreNonnullByDefault -package com.mcmoddev.lib.item; - -import javax.annotation.ParametersAreNonnullByDefault; diff --git a/src/main/java/com/mcmoddev/lib/material/package-info.java b/src/main/java/com/mcmoddev/lib/material/package-info.java deleted file mode 100644 index 700516f..0000000 --- a/src/main/java/com/mcmoddev/lib/material/package-info.java +++ /dev/null @@ -1,4 +0,0 @@ -@ParametersAreNonnullByDefault -package com.mcmoddev.lib.material; - -import javax.annotation.ParametersAreNonnullByDefault; diff --git a/src/main/java/com/mcmoddev/lib/network/package-info.java b/src/main/java/com/mcmoddev/lib/network/package-info.java deleted file mode 100644 index bf35f3d..0000000 --- a/src/main/java/com/mcmoddev/lib/network/package-info.java +++ /dev/null @@ -1,6 +0,0 @@ -@ParametersAreNonnullByDefault -@MethodsReturnNonnullByDefault -package com.mcmoddev.lib.network; - -import javax.annotation.ParametersAreNonnullByDefault; -import mcp.MethodsReturnNonnullByDefault; diff --git a/src/main/java/com/mcmoddev/lib/oregen/package-info.java b/src/main/java/com/mcmoddev/lib/oregen/package-info.java deleted file mode 100644 index 956c8b7..0000000 --- a/src/main/java/com/mcmoddev/lib/oregen/package-info.java +++ /dev/null @@ -1,4 +0,0 @@ -@ParametersAreNonnullByDefault -package com.mcmoddev.lib.oregen; - -import javax.annotation.ParametersAreNonnullByDefault; diff --git a/src/main/java/com/mcmoddev/lib/properties/package-info.java b/src/main/java/com/mcmoddev/lib/properties/package-info.java deleted file mode 100755 index dca7662..0000000 --- a/src/main/java/com/mcmoddev/lib/properties/package-info.java +++ /dev/null @@ -1,8 +0,0 @@ -/** - * - */ -/** - * @author madman - * - */ -package com.mcmoddev.lib.properties; \ No newline at end of file diff --git a/src/main/java/com/mcmoddev/lib/recipe/conditions/package-info.java b/src/main/java/com/mcmoddev/lib/recipe/conditions/package-info.java deleted file mode 100644 index a1840f1..0000000 --- a/src/main/java/com/mcmoddev/lib/recipe/conditions/package-info.java +++ /dev/null @@ -1,4 +0,0 @@ -@ParametersAreNonnullByDefault -package com.mcmoddev.lib.recipe.conditions; - -import javax.annotation.ParametersAreNonnullByDefault; diff --git a/src/main/java/com/mcmoddev/lib/recipe/factories/package-info.java b/src/main/java/com/mcmoddev/lib/recipe/factories/package-info.java deleted file mode 100644 index ab00b9e..0000000 --- a/src/main/java/com/mcmoddev/lib/recipe/factories/package-info.java +++ /dev/null @@ -1,4 +0,0 @@ -@ParametersAreNonnullByDefault -package com.mcmoddev.lib.recipe.factories; - -import javax.annotation.ParametersAreNonnullByDefault; diff --git a/src/main/java/com/mcmoddev/lib/recipe/package-info.java b/src/main/java/com/mcmoddev/lib/recipe/package-info.java deleted file mode 100644 index de8cf20..0000000 --- a/src/main/java/com/mcmoddev/lib/recipe/package-info.java +++ /dev/null @@ -1,4 +0,0 @@ -@ParametersAreNonnullByDefault -package com.mcmoddev.lib.recipe; - -import javax.annotation.ParametersAreNonnullByDefault; diff --git a/src/main/java/com/mcmoddev/lib/registry/recipe/package-info.java b/src/main/java/com/mcmoddev/lib/registry/recipe/package-info.java deleted file mode 100644 index 3636591..0000000 --- a/src/main/java/com/mcmoddev/lib/registry/recipe/package-info.java +++ /dev/null @@ -1,4 +0,0 @@ -@ParametersAreNonnullByDefault -package com.mcmoddev.lib.registry.recipe; - -import javax.annotation.ParametersAreNonnullByDefault; diff --git a/src/main/java/com/mcmoddev/lib/tile/package-info.java b/src/main/java/com/mcmoddev/lib/tile/package-info.java deleted file mode 100644 index 22d1635..0000000 --- a/src/main/java/com/mcmoddev/lib/tile/package-info.java +++ /dev/null @@ -1,6 +0,0 @@ -@ParametersAreNonnullByDefault -@MethodsReturnNonnullByDefault -package com.mcmoddev.lib.tile; - -import javax.annotation.ParametersAreNonnullByDefault; -import mcp.MethodsReturnNonnullByDefault; diff --git a/src/main/java/com/mcmoddev/lib/util/package-info.java b/src/main/java/com/mcmoddev/lib/util/package-info.java deleted file mode 100644 index 3c45a5e..0000000 --- a/src/main/java/com/mcmoddev/lib/util/package-info.java +++ /dev/null @@ -1,4 +0,0 @@ -@ParametersAreNonnullByDefault -package com.mcmoddev.lib.util; - -import javax.annotation.ParametersAreNonnullByDefault; diff --git a/src/main/java/com/mcmoddev/lib/waila/package-info.java b/src/main/java/com/mcmoddev/lib/waila/package-info.java deleted file mode 100644 index a467b69..0000000 --- a/src/main/java/com/mcmoddev/lib/waila/package-info.java +++ /dev/null @@ -1,4 +0,0 @@ -@ParametersAreNonnullByDefault -package com.mcmoddev.lib.waila; - -import javax.annotation.ParametersAreNonnullByDefault; diff --git a/src/main/java/portablejim/veinminer/api/IMCMessage.java b/src/main/java/portablejim/veinminer/api/IMCMessage.java index 88676d5..f019b22 100644 --- a/src/main/java/portablejim/veinminer/api/IMCMessage.java +++ b/src/main/java/portablejim/veinminer/api/IMCMessage.java @@ -9,14 +9,14 @@ public class IMCMessage { private static final String MODID = "VeinMiner"; - + /** * default, private constructor */ private IMCMessage() { - + } - + /** * * @param type diff --git a/src/main/java/com/mcmoddev/lib/MMDLib.java b/src/main/java/zone/moddev/mc/mmdlib/MMDLib.java similarity index 81% rename from src/main/java/com/mcmoddev/lib/MMDLib.java rename to src/main/java/zone/moddev/mc/mmdlib/MMDLib.java index 2aa901f..f4797f2 100644 --- a/src/main/java/com/mcmoddev/lib/MMDLib.java +++ b/src/main/java/zone/moddev/mc/mmdlib/MMDLib.java @@ -1,9 +1,9 @@ -package com.mcmoddev.lib; +package zone.moddev.mc.mmdlib; -import com.mcmoddev.lib.data.SharedStrings; -import com.mcmoddev.lib.integration.IntegrationManager; -import com.mcmoddev.lib.proxy.CommonProxy; -import com.mcmoddev.lib.util.MMDLibConfig; +import zone.moddev.mc.mmdlib.data.SharedStrings; +import zone.moddev.mc.mmdlib.integration.IntegrationManager; +import zone.moddev.mc.mmdlib.proxy.CommonProxy; +import zone.moddev.mc.mmdlib.util.MMDLibConfig; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; @@ -57,11 +57,11 @@ public class MMDLib { * increased whenever a change is made that has the potential to break * compatibility with other mods that depend on this one. */ - public static final String VERSION = "1.0.0-rc2"; + public static final String VERSION = "1.0.0.112021"; static final String UPDATEJSON = "https://raw.githubusercontent.com/MinecraftModDevelopment/MMDLib/master/update.json"; - private static final String PROXY_BASE = "com.mcmoddev.lib.proxy."; + private static final String PROXY_BASE = "zone.moddev.mc.mmdlib.proxy."; @SidedProxy(clientSide = PROXY_BASE + "ClientProxy", serverSide = PROXY_BASE + "ServerProxy") public static CommonProxy proxy; @@ -69,14 +69,14 @@ public class MMDLib { public static final Logger logger = LogManager.getLogger(MMDLib.MODID); static { - // Forge says this needs to be statically initialized here. + FluidRegistry.enableUniversalBucket(); } public static final String getVersion() { return VERSION; } - + @EventHandler public static void constructing(final FMLConstructionEvent event) { try { @@ -96,31 +96,26 @@ public static void constructing(final FMLConstructionEvent event) { public void onFingerprintViolation(final FMLFingerprintViolationEvent event) { logger.warn(SharedStrings.INVALID_FINGERPRINT); } - + @EventHandler public static void preInit(FMLPreInitializationEvent event) { proxy.preInit(event); - /* - * Pull the lever, Kronk! - */ + // Initialize the proxy before dispatching integration callbacks. - // TODO: this should probably not be here -// new TinkersConstructBase().init(); - //com.mcmoddev.lib.init.Items.dumpNameToEnabled(); } @EventHandler public static void init(FMLInitializationEvent event) { if(Loader.isModLoaded("crafttweaker")) { - com.mcmoddev.lib.crafttweaker.CrusherRecipes.loadComplete(); + zone.moddev.mc.mmdlib.crafttweaker.CrusherRecipes.loadComplete(); } proxy.init(event); - // if we have anything else to do here, check 'proxy.allsGood' first + // Continue lifecycle work only after successful proxy initialization. } @EventHandler public static void postInit(FMLPostInitializationEvent event) { proxy.postInit(event); - // if we have anything else to do here, check 'proxy.allsGood' first + // Continue lifecycle work only after successful proxy initialization. } } diff --git a/src/main/java/com/mcmoddev/lib/TypeRegistrationEvents.java b/src/main/java/zone/moddev/mc/mmdlib/TypeRegistrationEvents.java old mode 100755 new mode 100644 similarity index 88% rename from src/main/java/com/mcmoddev/lib/TypeRegistrationEvents.java rename to src/main/java/zone/moddev/mc/mmdlib/TypeRegistrationEvents.java index d00b992..e5344f9 --- a/src/main/java/com/mcmoddev/lib/TypeRegistrationEvents.java +++ b/src/main/java/zone/moddev/mc/mmdlib/TypeRegistrationEvents.java @@ -1,26 +1,26 @@ -package com.mcmoddev.lib; +package zone.moddev.mc.mmdlib; -import com.mcmoddev.lib.block.BlockMMDButton; -import com.mcmoddev.lib.block.BlockMMDDoor; -import com.mcmoddev.lib.block.BlockMMDLever; -import com.mcmoddev.lib.block.BlockMMDOre; -import com.mcmoddev.lib.block.BlockMMDPressurePlate; -import com.mcmoddev.lib.block.BlockMMDSlab; -import com.mcmoddev.lib.block.BlockMMDStairs; -import com.mcmoddev.lib.block.BlockMMDWall; -import com.mcmoddev.lib.block.BlockMoltenFluid; -import com.mcmoddev.lib.data.ConfigKeys; -import com.mcmoddev.lib.data.Names; -import com.mcmoddev.lib.data.SharedStrings; -import com.mcmoddev.lib.events.IRegAPI; -import com.mcmoddev.lib.events.MMDLibRegisterBlockTypes; -import com.mcmoddev.lib.events.MMDLibRegisterItemTypes; -import com.mcmoddev.lib.integration.plugins.IC2; -import com.mcmoddev.lib.integration.plugins.Mekanism; -import com.mcmoddev.lib.item.*; -import com.mcmoddev.lib.block.*; -import com.mcmoddev.lib.util.Config.Options; -import com.mcmoddev.lib.util.Oredicts; +import zone.moddev.mc.mmdlib.block.BlockMMDButton; +import zone.moddev.mc.mmdlib.block.BlockMMDDoor; +import zone.moddev.mc.mmdlib.block.BlockMMDLever; +import zone.moddev.mc.mmdlib.block.BlockMMDOre; +import zone.moddev.mc.mmdlib.block.BlockMMDPressurePlate; +import zone.moddev.mc.mmdlib.block.BlockMMDSlab; +import zone.moddev.mc.mmdlib.block.BlockMMDStairs; +import zone.moddev.mc.mmdlib.block.BlockMMDWall; +import zone.moddev.mc.mmdlib.block.BlockMoltenFluid; +import zone.moddev.mc.mmdlib.data.ConfigKeys; +import zone.moddev.mc.mmdlib.data.Names; +import zone.moddev.mc.mmdlib.data.SharedStrings; +import zone.moddev.mc.mmdlib.events.IRegAPI; +import zone.moddev.mc.mmdlib.events.MMDLibRegisterBlockTypes; +import zone.moddev.mc.mmdlib.events.MMDLibRegisterItemTypes; +import zone.moddev.mc.mmdlib.integration.plugins.IC2; +import zone.moddev.mc.mmdlib.integration.plugins.Mekanism; +import zone.moddev.mc.mmdlib.item.*; +import zone.moddev.mc.mmdlib.block.*; +import zone.moddev.mc.mmdlib.util.Config.Options; +import zone.moddev.mc.mmdlib.util.Oredicts; import net.minecraft.block.Block; import net.minecraft.item.Item; @@ -40,7 +40,7 @@ public static void itemTypeRegistrationEvent(MMDLibRegisterItemTypes ev) { IRegAPI api = ev.getApi(); api.addSorting(BlockMMDOre.class); - + api.addType(ItemMMDIngot.class, Names.CRYSTAL, Options.isThingEnabled(ConfigKeys.BASICS), Oredicts.CRYSTAL); api.addType(ItemMMDIngot.class, Names.GEM, Options.isThingEnabled(ConfigKeys.BASICS), Oredicts.GEM); api.addType(ItemMMDAnvilBlock.class, Names.ANVIL, Options.isThingEnabled(ConfigKeys.ANVIL)); diff --git a/src/main/java/com/mcmoddev/lib/asm/ASMHooks.java b/src/main/java/zone/moddev/mc/mmdlib/asm/ASMHooks.java similarity index 90% rename from src/main/java/com/mcmoddev/lib/asm/ASMHooks.java rename to src/main/java/zone/moddev/mc/mmdlib/asm/ASMHooks.java index 88fe4db..2b8adbe 100644 --- a/src/main/java/com/mcmoddev/lib/asm/ASMHooks.java +++ b/src/main/java/zone/moddev/mc/mmdlib/asm/ASMHooks.java @@ -1,6 +1,6 @@ -package com.mcmoddev.lib.asm; +package zone.moddev.mc.mmdlib.asm; -import com.mcmoddev.lib.common.item.IHorseArmor; +import zone.moddev.mc.mmdlib.common.item.IHorseArmor; import net.minecraft.entity.passive.EntityHorse; import net.minecraft.entity.passive.HorseArmorType; import net.minecraft.item.ItemStack; @@ -27,12 +27,6 @@ public static void setHorseArmorStack(final EntityHorse entity, final ItemStack entity.getDataManager().set(ASMHooks.ARMOR_STACK, stack); } - /** - * - * @param type - * @param entity - * @return - */ @SideOnly(Side.CLIENT) public static String getTextureName(final HorseArmorType type, final EntityHorse entity) { final ItemStack stack = entity.getDataManager().get(ASMHooks.ARMOR_STACK); diff --git a/src/main/java/com/mcmoddev/lib/asm/ASMPlugin.java b/src/main/java/zone/moddev/mc/mmdlib/asm/ASMPlugin.java similarity index 81% rename from src/main/java/com/mcmoddev/lib/asm/ASMPlugin.java rename to src/main/java/zone/moddev/mc/mmdlib/asm/ASMPlugin.java index cef8873..c09e2fd 100644 --- a/src/main/java/com/mcmoddev/lib/asm/ASMPlugin.java +++ b/src/main/java/zone/moddev/mc/mmdlib/asm/ASMPlugin.java @@ -1,10 +1,10 @@ -package com.mcmoddev.lib.asm; +package zone.moddev.mc.mmdlib.asm; import java.util.ArrayList; import java.util.List; import java.util.Map; import javax.annotation.Nullable; -import com.mcmoddev.lib.util.Platform; +import zone.moddev.mc.mmdlib.util.Platform; import net.minecraftforge.common.ForgeVersion; import net.minecraftforge.fml.relauncher.IFMLLoadingPlugin; import net.minecraftforge.fml.relauncher.IFMLLoadingPlugin.Name; @@ -12,22 +12,22 @@ @Name("MMDLib") @SortingIndex(1001) +/** + * Historical horse-armor patch loader. The release manifest loads the namespace + * bootstrap instead, so these gameplay transformers remain inactive. + */ public class ASMPlugin implements IFMLLoadingPlugin { static List transformerList = new ArrayList<>(); - //HorseArmor patches present in 1.12.2-14.23.1.2592+ private static final boolean NEEDS_HORSE_ARMOR_PATCH = ForgeVersion.getMajorVersion() < 14 || ForgeVersion.getMinorVersion() < 23 || ForgeVersion.getRevisionVersion() < 1 || ForgeVersion.getBuildVersion() < 2592; - /** - * - */ public ASMPlugin() { if (NEEDS_HORSE_ARMOR_PATCH) { transformerList.add(new EntityHorseTransformer()); transformerList.add(new HorseArmorTypeTransformer()); } - //if you add more here, you must remove the check below in getASMTransformerClass()! + // Keep the loader guard in getASMTransformerClass aligned with the transformers added here. } @Override diff --git a/src/main/java/com/mcmoddev/lib/asm/ASMTransformer.java b/src/main/java/zone/moddev/mc/mmdlib/asm/ASMTransformer.java similarity index 92% rename from src/main/java/com/mcmoddev/lib/asm/ASMTransformer.java rename to src/main/java/zone/moddev/mc/mmdlib/asm/ASMTransformer.java index f431b72..d74baa7 100644 --- a/src/main/java/com/mcmoddev/lib/asm/ASMTransformer.java +++ b/src/main/java/zone/moddev/mc/mmdlib/asm/ASMTransformer.java @@ -1,6 +1,6 @@ -package com.mcmoddev.lib.asm; +package zone.moddev.mc.mmdlib.asm; -import com.mcmoddev.lib.util.Platform; +import zone.moddev.mc.mmdlib.util.Platform; import org.objectweb.asm.ClassReader; import org.objectweb.asm.ClassWriter; import org.objectweb.asm.tree.ClassNode; diff --git a/src/main/java/com/mcmoddev/lib/asm/ClassNodeBase.java b/src/main/java/zone/moddev/mc/mmdlib/asm/ClassNodeBase.java similarity index 84% rename from src/main/java/com/mcmoddev/lib/asm/ClassNodeBase.java rename to src/main/java/zone/moddev/mc/mmdlib/asm/ClassNodeBase.java index 289b0b0..90fd424 100644 --- a/src/main/java/com/mcmoddev/lib/asm/ClassNodeBase.java +++ b/src/main/java/zone/moddev/mc/mmdlib/asm/ClassNodeBase.java @@ -1,4 +1,4 @@ -package com.mcmoddev.lib.asm; +package zone.moddev.mc.mmdlib.asm; import org.objectweb.asm.Opcodes; import org.objectweb.asm.tree.ClassNode; diff --git a/src/main/java/com/mcmoddev/lib/asm/EntityHorseTransformer.java b/src/main/java/zone/moddev/mc/mmdlib/asm/EntityHorseTransformer.java similarity index 95% rename from src/main/java/com/mcmoddev/lib/asm/EntityHorseTransformer.java rename to src/main/java/zone/moddev/mc/mmdlib/asm/EntityHorseTransformer.java index 300affa..da002f1 100644 --- a/src/main/java/com/mcmoddev/lib/asm/EntityHorseTransformer.java +++ b/src/main/java/zone/moddev/mc/mmdlib/asm/EntityHorseTransformer.java @@ -1,4 +1,4 @@ -package com.mcmoddev.lib.asm; +package zone.moddev.mc.mmdlib.asm; import org.objectweb.asm.MethodVisitor; import org.objectweb.asm.Opcodes; @@ -6,7 +6,7 @@ class EntityHorseTransformer implements ITransformer { - private static final String ASMHOOKS_INTERFACE = "com/mcmoddev/lib/asm/ASMHooks"; + private static final String ASMHOOKS_INTERFACE = "zone/moddev/mc/mmdlib/asm/ASMHooks"; private static final String[] ENTITY_INIT = { "func_70088_a", "entityInit" }; private static final String[] SET_HORSEARMOR_STACK = { "func_146086_d", "setHorseArmorStack" }; private static final String[] SET_HORSE_TEXTURE_PATHS = { "func_110247_cG", "setHorseTexturePaths" }; diff --git a/src/main/java/com/mcmoddev/lib/asm/HorseArmorTypeTransformer.java b/src/main/java/zone/moddev/mc/mmdlib/asm/HorseArmorTypeTransformer.java similarity index 92% rename from src/main/java/com/mcmoddev/lib/asm/HorseArmorTypeTransformer.java rename to src/main/java/zone/moddev/mc/mmdlib/asm/HorseArmorTypeTransformer.java index 20ce8d5..3e19098 100644 --- a/src/main/java/com/mcmoddev/lib/asm/HorseArmorTypeTransformer.java +++ b/src/main/java/zone/moddev/mc/mmdlib/asm/HorseArmorTypeTransformer.java @@ -1,4 +1,4 @@ -package com.mcmoddev.lib.asm; +package zone.moddev.mc.mmdlib.asm; import org.objectweb.asm.Label; import org.objectweb.asm.MethodVisitor; @@ -7,7 +7,7 @@ class HorseArmorTypeTransformer implements ITransformer { - private static final String HORSE_INTERFACE = "com/mcmoddev/lib/common/item/IHorseArmor"; + private static final String HORSE_INTERFACE = "zone/moddev/mc/mmdlib/common/item/IHorseArmor"; private static final String[] GET_BY_ITEM = { "func_188576_a", "getByItem" }; @Override diff --git a/src/main/java/com/mcmoddev/lib/asm/ITransformer.java b/src/main/java/zone/moddev/mc/mmdlib/asm/ITransformer.java similarity index 81% rename from src/main/java/com/mcmoddev/lib/asm/ITransformer.java rename to src/main/java/zone/moddev/mc/mmdlib/asm/ITransformer.java index b8bf066..9cc8f91 100644 --- a/src/main/java/com/mcmoddev/lib/asm/ITransformer.java +++ b/src/main/java/zone/moddev/mc/mmdlib/asm/ITransformer.java @@ -1,4 +1,4 @@ -package com.mcmoddev.lib.asm; +package zone.moddev.mc.mmdlib.asm; import org.objectweb.asm.Opcodes; import org.objectweb.asm.tree.ClassNode; @@ -9,12 +9,6 @@ public interface ITransformer extends Opcodes { ClassNode transform(ClassNode node, boolean dev); - /** - * - * @param names - * @param target - * @return - */ public static boolean oneEquals(final String[] names, final String target) { for (final String name : names) { if (target.equals(name)) { diff --git a/src/main/java/com/mcmoddev/lib/block/BlockExplosiveOre.java b/src/main/java/zone/moddev/mc/mmdlib/block/BlockExplosiveOre.java similarity index 89% rename from src/main/java/com/mcmoddev/lib/block/BlockExplosiveOre.java rename to src/main/java/zone/moddev/mc/mmdlib/block/BlockExplosiveOre.java index e49d5f9..4228484 100644 --- a/src/main/java/com/mcmoddev/lib/block/BlockExplosiveOre.java +++ b/src/main/java/zone/moddev/mc/mmdlib/block/BlockExplosiveOre.java @@ -1,4 +1,4 @@ -package com.mcmoddev.lib.block; +package zone.moddev.mc.mmdlib.block; import net.minecraft.block.Block; diff --git a/src/main/java/com/mcmoddev/lib/block/BlockHumanDetector.java b/src/main/java/zone/moddev/mc/mmdlib/block/BlockHumanDetector.java similarity index 95% rename from src/main/java/com/mcmoddev/lib/block/BlockHumanDetector.java rename to src/main/java/zone/moddev/mc/mmdlib/block/BlockHumanDetector.java index 0cf9b04..7545c57 100644 --- a/src/main/java/com/mcmoddev/lib/block/BlockHumanDetector.java +++ b/src/main/java/zone/moddev/mc/mmdlib/block/BlockHumanDetector.java @@ -1,4 +1,4 @@ -package com.mcmoddev.lib.block; +package zone.moddev.mc.mmdlib.block; import java.util.List; diff --git a/src/main/java/com/mcmoddev/lib/block/BlockMMDAnvil.java b/src/main/java/zone/moddev/mc/mmdlib/block/BlockMMDAnvil.java similarity index 84% rename from src/main/java/com/mcmoddev/lib/block/BlockMMDAnvil.java rename to src/main/java/zone/moddev/mc/mmdlib/block/BlockMMDAnvil.java index 734e4f1..98f50ff 100644 --- a/src/main/java/com/mcmoddev/lib/block/BlockMMDAnvil.java +++ b/src/main/java/zone/moddev/mc/mmdlib/block/BlockMMDAnvil.java @@ -1,9 +1,9 @@ -package com.mcmoddev.lib.block; +package zone.moddev.mc.mmdlib.block; -import com.mcmoddev.lib.data.Names; -import com.mcmoddev.lib.item.MMDContainerRepair; -import com.mcmoddev.lib.material.IMMDObject; -import com.mcmoddev.lib.material.MMDMaterial; +import zone.moddev.mc.mmdlib.data.Names; +import zone.moddev.mc.mmdlib.item.MMDContainerRepair; +import zone.moddev.mc.mmdlib.material.IMMDObject; +import zone.moddev.mc.mmdlib.material.MMDMaterial; import net.minecraft.block.state.IBlockState; import net.minecraft.entity.player.EntityPlayer; @@ -63,21 +63,13 @@ public static class MMDAnvil implements IInteractionObject { private final BlockPos position; private final MMDMaterial material; - /** - * - * @param worldIn - * @param pos - * @param material - */ public MMDAnvil(final World worldIn, final BlockPos pos, final MMDMaterial material) { this.world = worldIn; this.position = pos; this.material = material; } - /** - * Get the name of this object. For players this returns their username - */ + /** Returns the material-specific anvil name. */ @Override public String getName() { return Names.ANVIL + this.material.getCapitalizedName(); @@ -91,9 +83,7 @@ public boolean hasCustomName() { return false; } - /** - * Get the formatted ChatComponent that will be used for the sender's username in chat. - */ + /** Returns the translated display name for this anvil. */ @Override public ITextComponent getDisplayName() { return new TextComponentTranslation(this.material.getBlock(Names.ANVIL) + ".name"); diff --git a/src/main/java/com/mcmoddev/lib/block/BlockMMDBars.java b/src/main/java/zone/moddev/mc/mmdlib/block/BlockMMDBars.java similarity index 84% rename from src/main/java/com/mcmoddev/lib/block/BlockMMDBars.java rename to src/main/java/zone/moddev/mc/mmdlib/block/BlockMMDBars.java index 91a8275..7cc66b9 100644 --- a/src/main/java/com/mcmoddev/lib/block/BlockMMDBars.java +++ b/src/main/java/zone/moddev/mc/mmdlib/block/BlockMMDBars.java @@ -1,7 +1,7 @@ -package com.mcmoddev.lib.block; +package zone.moddev.mc.mmdlib.block; -import com.mcmoddev.lib.material.IMMDObject; -import com.mcmoddev.lib.material.MMDMaterial; +import zone.moddev.mc.mmdlib.material.IMMDObject; +import zone.moddev.mc.mmdlib.material.MMDMaterial; /** * Bars. diff --git a/src/main/java/com/mcmoddev/lib/block/BlockMMDBlock.java b/src/main/java/zone/moddev/mc/mmdlib/block/BlockMMDBlock.java similarity index 88% rename from src/main/java/com/mcmoddev/lib/block/BlockMMDBlock.java rename to src/main/java/zone/moddev/mc/mmdlib/block/BlockMMDBlock.java index eeede79..9fe625c 100644 --- a/src/main/java/com/mcmoddev/lib/block/BlockMMDBlock.java +++ b/src/main/java/zone/moddev/mc/mmdlib/block/BlockMMDBlock.java @@ -1,7 +1,7 @@ -package com.mcmoddev.lib.block; +package zone.moddev.mc.mmdlib.block; -import com.mcmoddev.lib.material.IMMDObject; -import com.mcmoddev.lib.material.MMDMaterial; +import zone.moddev.mc.mmdlib.material.IMMDObject; +import zone.moddev.mc.mmdlib.material.MMDMaterial; import net.minecraft.util.math.BlockPos; import net.minecraft.world.IBlockAccess; @@ -30,7 +30,7 @@ public BlockMMDBlock(final MMDMaterial material) { this.blockResistance = this.mmdMaterial.getBlastResistance(); this.setHarvestLevel(this.mmdMaterial.getHarvestTool(), this.mmdMaterial.getRequiredHarvestLevel()); - // Additional + this.fullBlock = true; } diff --git a/src/main/java/com/mcmoddev/lib/block/BlockMMDBookshelf.java b/src/main/java/zone/moddev/mc/mmdlib/block/BlockMMDBookshelf.java similarity index 88% rename from src/main/java/com/mcmoddev/lib/block/BlockMMDBookshelf.java rename to src/main/java/zone/moddev/mc/mmdlib/block/BlockMMDBookshelf.java index 1ffdfd9..eff51e4 100644 --- a/src/main/java/com/mcmoddev/lib/block/BlockMMDBookshelf.java +++ b/src/main/java/zone/moddev/mc/mmdlib/block/BlockMMDBookshelf.java @@ -1,7 +1,7 @@ -package com.mcmoddev.lib.block; +package zone.moddev.mc.mmdlib.block; -import com.mcmoddev.lib.material.IMMDObject; -import com.mcmoddev.lib.material.MMDMaterial; +import zone.moddev.mc.mmdlib.material.IMMDObject; +import zone.moddev.mc.mmdlib.material.MMDMaterial; import net.minecraft.block.state.IBlockState; diff --git a/src/main/java/com/mcmoddev/lib/block/BlockMMDButton.java b/src/main/java/zone/moddev/mc/mmdlib/block/BlockMMDButton.java similarity index 89% rename from src/main/java/com/mcmoddev/lib/block/BlockMMDButton.java rename to src/main/java/zone/moddev/mc/mmdlib/block/BlockMMDButton.java index 1703b75..f529e22 100644 --- a/src/main/java/com/mcmoddev/lib/block/BlockMMDButton.java +++ b/src/main/java/zone/moddev/mc/mmdlib/block/BlockMMDButton.java @@ -1,8 +1,8 @@ -package com.mcmoddev.lib.block; +package zone.moddev.mc.mmdlib.block; -import com.mcmoddev.lib.material.IMMDObject; -import com.mcmoddev.lib.material.MMDMaterial; -import com.mcmoddev.lib.material.MMDMaterialType.MaterialType; +import zone.moddev.mc.mmdlib.material.IMMDObject; +import zone.moddev.mc.mmdlib.material.MMDMaterial; +import zone.moddev.mc.mmdlib.material.MMDMaterialType.MaterialType; import net.minecraft.block.material.Material; import net.minecraft.entity.player.EntityPlayer; diff --git a/src/main/java/com/mcmoddev/lib/block/BlockMMDDoor.java b/src/main/java/zone/moddev/mc/mmdlib/block/BlockMMDDoor.java similarity index 91% rename from src/main/java/com/mcmoddev/lib/block/BlockMMDDoor.java rename to src/main/java/zone/moddev/mc/mmdlib/block/BlockMMDDoor.java index 448b32e..b81659c 100644 --- a/src/main/java/com/mcmoddev/lib/block/BlockMMDDoor.java +++ b/src/main/java/zone/moddev/mc/mmdlib/block/BlockMMDDoor.java @@ -1,13 +1,13 @@ -package com.mcmoddev.lib.block; +package zone.moddev.mc.mmdlib.block; import java.util.Random; import javax.annotation.Nullable; -import com.mcmoddev.lib.data.Names; -import com.mcmoddev.lib.material.IMMDObject; -import com.mcmoddev.lib.material.MMDMaterial; -import com.mcmoddev.lib.material.MMDMaterialType.MaterialType; +import zone.moddev.mc.mmdlib.data.Names; +import zone.moddev.mc.mmdlib.material.IMMDObject; +import zone.moddev.mc.mmdlib.material.MMDMaterial; +import zone.moddev.mc.mmdlib.material.MMDMaterialType.MaterialType; import net.minecraft.block.BlockDoor; import net.minecraft.block.material.Material; @@ -90,7 +90,7 @@ public boolean onBlockActivated(final World worldIn, final BlockPos pos, } } - // Magic Number mappings from net.minecraft.client.renderer.RenderGlobal#playEvent + // World-event IDs used by RenderGlobal.playEvent. // SoundEvents.BLOCK_IRON_DOOR_OPEN = 1005 // SoundEvents.BLOCK_WOODEN_DOOR_OPEN = 1006 // SoundEvents.BLOCK_IRON_DOOR_CLOSE = 1011 diff --git a/src/main/java/com/mcmoddev/lib/block/BlockMMDEndOre.java b/src/main/java/zone/moddev/mc/mmdlib/block/BlockMMDEndOre.java similarity index 77% rename from src/main/java/com/mcmoddev/lib/block/BlockMMDEndOre.java rename to src/main/java/zone/moddev/mc/mmdlib/block/BlockMMDEndOre.java index 1a2286d..0f66fd3 100644 --- a/src/main/java/com/mcmoddev/lib/block/BlockMMDEndOre.java +++ b/src/main/java/zone/moddev/mc/mmdlib/block/BlockMMDEndOre.java @@ -1,7 +1,7 @@ -package com.mcmoddev.lib.block; +package zone.moddev.mc.mmdlib.block; -import com.mcmoddev.lib.material.IMMDObject; -import com.mcmoddev.lib.material.MMDMaterial; +import zone.moddev.mc.mmdlib.material.IMMDObject; +import zone.moddev.mc.mmdlib.material.MMDMaterial; import net.minecraft.block.SoundType; import net.minecraft.block.state.IBlockState; @@ -40,11 +40,8 @@ public int getExpDrop(final IBlockState bs, final IBlockAccess w, final BlockPos @Override public boolean canEntityDestroy(final IBlockState bs, final IBlockAccess w, final BlockPos coord, final Entity entity) { - //TODO: find a way to fix this block that doesn't involve embedding a string -/* if ((this == Materials.getMaterialByName(MaterialNames.STARSTEEL).getBlock(Names.ORE)) - && (entity instanceof net.minecraft.entity.boss.EntityDragon)) { - return false; - }*/ + // Defer entity destruction rules to Forge. + return super.canEntityDestroy(bs, w, coord, entity); } diff --git a/src/main/java/com/mcmoddev/lib/block/BlockMMDFence.java b/src/main/java/zone/moddev/mc/mmdlib/block/BlockMMDFence.java similarity index 82% rename from src/main/java/com/mcmoddev/lib/block/BlockMMDFence.java rename to src/main/java/zone/moddev/mc/mmdlib/block/BlockMMDFence.java index 92b262d..357388d 100644 --- a/src/main/java/com/mcmoddev/lib/block/BlockMMDFence.java +++ b/src/main/java/zone/moddev/mc/mmdlib/block/BlockMMDFence.java @@ -1,7 +1,7 @@ -package com.mcmoddev.lib.block; +package zone.moddev.mc.mmdlib.block; -import com.mcmoddev.lib.material.IMMDObject; -import com.mcmoddev.lib.material.MMDMaterial; +import zone.moddev.mc.mmdlib.material.IMMDObject; +import zone.moddev.mc.mmdlib.material.MMDMaterial; import net.minecraft.block.state.IBlockState; import net.minecraft.util.math.BlockPos; @@ -25,7 +25,7 @@ public BlockMMDFence(final MMDMaterial material) { this.mmdMaterial.getRequiredHarvestLevel()); } - // We don't specifically need this, but it does mean less logic being run on each check + // All states of this block support a torch on top. @Override public boolean canPlaceTorchOnTop(final IBlockState state, final IBlockAccess world, final BlockPos pos) { diff --git a/src/main/java/com/mcmoddev/lib/block/BlockMMDFenceGate.java b/src/main/java/zone/moddev/mc/mmdlib/block/BlockMMDFenceGate.java similarity index 84% rename from src/main/java/com/mcmoddev/lib/block/BlockMMDFenceGate.java rename to src/main/java/zone/moddev/mc/mmdlib/block/BlockMMDFenceGate.java index f3a359e..2d27263 100644 --- a/src/main/java/com/mcmoddev/lib/block/BlockMMDFenceGate.java +++ b/src/main/java/zone/moddev/mc/mmdlib/block/BlockMMDFenceGate.java @@ -1,7 +1,7 @@ -package com.mcmoddev.lib.block; +package zone.moddev.mc.mmdlib.block; -import com.mcmoddev.lib.material.IMMDObject; -import com.mcmoddev.lib.material.MMDMaterial; +import zone.moddev.mc.mmdlib.material.IMMDObject; +import zone.moddev.mc.mmdlib.material.MMDMaterial; import net.minecraft.block.BlockPlanks; diff --git a/src/main/java/com/mcmoddev/lib/block/BlockMMDFlowerPot.java b/src/main/java/zone/moddev/mc/mmdlib/block/BlockMMDFlowerPot.java similarity index 86% rename from src/main/java/com/mcmoddev/lib/block/BlockMMDFlowerPot.java rename to src/main/java/zone/moddev/mc/mmdlib/block/BlockMMDFlowerPot.java index 9fb1049..a658ab0 100644 --- a/src/main/java/com/mcmoddev/lib/block/BlockMMDFlowerPot.java +++ b/src/main/java/zone/moddev/mc/mmdlib/block/BlockMMDFlowerPot.java @@ -1,7 +1,7 @@ -package com.mcmoddev.lib.block; +package zone.moddev.mc.mmdlib.block; -import com.mcmoddev.lib.material.IMMDObject; -import com.mcmoddev.lib.material.MMDMaterial; +import zone.moddev.mc.mmdlib.material.IMMDObject; +import zone.moddev.mc.mmdlib.material.MMDMaterial; import net.minecraft.block.BlockFlowerPot; diff --git a/src/main/java/com/mcmoddev/lib/block/BlockMMDLadder.java b/src/main/java/zone/moddev/mc/mmdlib/block/BlockMMDLadder.java similarity index 82% rename from src/main/java/com/mcmoddev/lib/block/BlockMMDLadder.java rename to src/main/java/zone/moddev/mc/mmdlib/block/BlockMMDLadder.java index 370b389..5395e31 100644 --- a/src/main/java/com/mcmoddev/lib/block/BlockMMDLadder.java +++ b/src/main/java/zone/moddev/mc/mmdlib/block/BlockMMDLadder.java @@ -1,7 +1,7 @@ -package com.mcmoddev.lib.block; +package zone.moddev.mc.mmdlib.block; -import com.mcmoddev.lib.material.IMMDObject; -import com.mcmoddev.lib.material.MMDMaterial; +import zone.moddev.mc.mmdlib.material.IMMDObject; +import zone.moddev.mc.mmdlib.material.MMDMaterial; public class BlockMMDLadder extends net.minecraft.block.BlockLadder implements IMMDObject { diff --git a/src/main/java/com/mcmoddev/lib/block/BlockMMDLever.java b/src/main/java/zone/moddev/mc/mmdlib/block/BlockMMDLever.java similarity index 82% rename from src/main/java/com/mcmoddev/lib/block/BlockMMDLever.java rename to src/main/java/zone/moddev/mc/mmdlib/block/BlockMMDLever.java index 1477b6a..38624e3 100644 --- a/src/main/java/com/mcmoddev/lib/block/BlockMMDLever.java +++ b/src/main/java/zone/moddev/mc/mmdlib/block/BlockMMDLever.java @@ -1,7 +1,7 @@ -package com.mcmoddev.lib.block; +package zone.moddev.mc.mmdlib.block; -import com.mcmoddev.lib.material.IMMDObject; -import com.mcmoddev.lib.material.MMDMaterial; +import zone.moddev.mc.mmdlib.material.IMMDObject; +import zone.moddev.mc.mmdlib.material.MMDMaterial; public class BlockMMDLever extends net.minecraft.block.BlockLever implements IMMDObject { diff --git a/src/main/java/com/mcmoddev/lib/block/BlockMMDNetherOre.java b/src/main/java/zone/moddev/mc/mmdlib/block/BlockMMDNetherOre.java similarity index 78% rename from src/main/java/com/mcmoddev/lib/block/BlockMMDNetherOre.java rename to src/main/java/zone/moddev/mc/mmdlib/block/BlockMMDNetherOre.java index 661c02f..4d87b35 100644 --- a/src/main/java/com/mcmoddev/lib/block/BlockMMDNetherOre.java +++ b/src/main/java/zone/moddev/mc/mmdlib/block/BlockMMDNetherOre.java @@ -1,7 +1,7 @@ -package com.mcmoddev.lib.block; +package zone.moddev.mc.mmdlib.block; -import com.mcmoddev.lib.material.IMMDObject; -import com.mcmoddev.lib.material.MMDMaterial; +import zone.moddev.mc.mmdlib.material.IMMDObject; +import zone.moddev.mc.mmdlib.material.MMDMaterial; import net.minecraft.block.SoundType; import net.minecraft.block.state.IBlockState; @@ -40,12 +40,7 @@ public int getExpDrop(final IBlockState bs, final IBlockAccess w, final BlockPos @Override public boolean canEntityDestroy(final IBlockState bs, final IBlockAccess w, final BlockPos coord, final Entity entity) { - //TODO: fix this without embedding the name... - /* - if ((this == Materials.getMaterialByName(MaterialNames.STARSTEEL).getBlock(Names.ORE)) - && (entity instanceof net.minecraft.entity.boss.EntityDragon)) { - return false; - }*/ + return super.canEntityDestroy(bs, w, coord, entity); } diff --git a/src/main/java/com/mcmoddev/lib/block/BlockMMDOre.java b/src/main/java/zone/moddev/mc/mmdlib/block/BlockMMDOre.java similarity index 79% rename from src/main/java/com/mcmoddev/lib/block/BlockMMDOre.java rename to src/main/java/zone/moddev/mc/mmdlib/block/BlockMMDOre.java index 9003649..d18690c 100644 --- a/src/main/java/com/mcmoddev/lib/block/BlockMMDOre.java +++ b/src/main/java/zone/moddev/mc/mmdlib/block/BlockMMDOre.java @@ -1,10 +1,10 @@ -package com.mcmoddev.lib.block; +package zone.moddev.mc.mmdlib.block; import java.util.Random; -import com.mcmoddev.lib.data.Names; -import com.mcmoddev.lib.material.IMMDObject; -import com.mcmoddev.lib.material.MMDMaterial; +import zone.moddev.mc.mmdlib.data.Names; +import zone.moddev.mc.mmdlib.material.IMMDObject; +import zone.moddev.mc.mmdlib.material.MMDMaterial; import net.minecraft.block.SoundType; import net.minecraft.block.state.IBlockState; @@ -64,12 +64,8 @@ public int getExpDrop(final IBlockState bs, final IBlockAccess w, final BlockPos @Override public boolean canEntityDestroy(final IBlockState bs, final IBlockAccess w, final BlockPos coord, final Entity entity) { - //TODO: FFS, this is in 3 different classes - should we add a "can destroy" to the material instead ? - /* - if ((this == Materials.getMaterialByName(MaterialNames.STARSTEEL).getBlock(Names.ORE)) - && (entity instanceof net.minecraft.entity.boss.EntityDragon)) { - return false; - }*/ + // Defer entity destruction rules to Forge. + return super.canEntityDestroy(bs, w, coord, entity); } @@ -87,9 +83,8 @@ public int quantityDropped(final IBlockState state, final int fortune, final Ran case WOOD: case ROCK: case METAL: - // stupid hack - but at least this doesn't get into a race where - // users have figured out how to subvert putting a "this was placed by the user" - // chunk of data on the ores situation to get around the fortune drops + // Drop one block so placing and mining an ore cannot multiply it with Fortune. + return 1; case MINERAL: most = 4; diff --git a/src/main/java/com/mcmoddev/lib/block/BlockMMDPlate.java b/src/main/java/zone/moddev/mc/mmdlib/block/BlockMMDPlate.java similarity index 97% rename from src/main/java/com/mcmoddev/lib/block/BlockMMDPlate.java rename to src/main/java/zone/moddev/mc/mmdlib/block/BlockMMDPlate.java index 380bce2..80f3380 100644 --- a/src/main/java/com/mcmoddev/lib/block/BlockMMDPlate.java +++ b/src/main/java/zone/moddev/mc/mmdlib/block/BlockMMDPlate.java @@ -1,11 +1,11 @@ -package com.mcmoddev.lib.block; +package zone.moddev.mc.mmdlib.block; import java.util.List; import javax.annotation.Nullable; -import com.mcmoddev.lib.material.IMMDObject; -import com.mcmoddev.lib.material.MMDMaterial; +import zone.moddev.mc.mmdlib.material.IMMDObject; +import zone.moddev.mc.mmdlib.material.MMDMaterial; import net.minecraft.block.properties.IProperty; import net.minecraft.block.properties.PropertyDirection; @@ -142,13 +142,13 @@ public IBlockState getStateForPlacement(final World w, final BlockPos coord, EnumFacing.Axis upRotationAxis; EnumFacing.Axis rightRotationAxis; switch (face) { - case UP: // works + case UP: up = partialZ - 0.5F; right = partialX - 0.5F; upRotationAxis = EnumFacing.Axis.X; rightRotationAxis = EnumFacing.Axis.Z; break; - case EAST: // works + case EAST: up = partialY - 0.5F; right = partialZ - 0.5F; upRotationAxis = EnumFacing.Axis.Z; @@ -172,7 +172,7 @@ public IBlockState getStateForPlacement(final World w, final BlockPos coord, upRotationAxis = EnumFacing.Axis.Z; rightRotationAxis = EnumFacing.Axis.Y; break; - case NORTH: // works + case NORTH: up = partialY - 0.5F; right = partialX - 0.5F; upRotationAxis = EnumFacing.Axis.X; diff --git a/src/main/java/com/mcmoddev/lib/block/BlockMMDPressurePlate.java b/src/main/java/zone/moddev/mc/mmdlib/block/BlockMMDPressurePlate.java similarity index 85% rename from src/main/java/com/mcmoddev/lib/block/BlockMMDPressurePlate.java rename to src/main/java/zone/moddev/mc/mmdlib/block/BlockMMDPressurePlate.java index a049647..cc93888 100644 --- a/src/main/java/com/mcmoddev/lib/block/BlockMMDPressurePlate.java +++ b/src/main/java/zone/moddev/mc/mmdlib/block/BlockMMDPressurePlate.java @@ -1,7 +1,7 @@ -package com.mcmoddev.lib.block; +package zone.moddev.mc.mmdlib.block; -import com.mcmoddev.lib.material.IMMDObject; -import com.mcmoddev.lib.material.MMDMaterial; +import zone.moddev.mc.mmdlib.material.IMMDObject; +import zone.moddev.mc.mmdlib.material.MMDMaterial; /** * diff --git a/src/main/java/com/mcmoddev/lib/block/BlockMMDSlab.java b/src/main/java/zone/moddev/mc/mmdlib/block/BlockMMDSlab.java similarity index 95% rename from src/main/java/com/mcmoddev/lib/block/BlockMMDSlab.java rename to src/main/java/zone/moddev/mc/mmdlib/block/BlockMMDSlab.java index d7fe172..a078e95 100644 --- a/src/main/java/com/mcmoddev/lib/block/BlockMMDSlab.java +++ b/src/main/java/zone/moddev/mc/mmdlib/block/BlockMMDSlab.java @@ -1,10 +1,10 @@ -package com.mcmoddev.lib.block; +package zone.moddev.mc.mmdlib.block; import java.util.Random; -import com.mcmoddev.lib.data.Names; -import com.mcmoddev.lib.material.IMMDObject; -import com.mcmoddev.lib.material.MMDMaterial; +import zone.moddev.mc.mmdlib.data.Names; +import zone.moddev.mc.mmdlib.material.IMMDObject; +import zone.moddev.mc.mmdlib.material.MMDMaterial; import net.minecraft.block.BlockSlab; import net.minecraft.block.properties.IProperty; diff --git a/src/main/java/com/mcmoddev/lib/block/BlockMMDStairs.java b/src/main/java/zone/moddev/mc/mmdlib/block/BlockMMDStairs.java similarity index 81% rename from src/main/java/com/mcmoddev/lib/block/BlockMMDStairs.java rename to src/main/java/zone/moddev/mc/mmdlib/block/BlockMMDStairs.java index 3aa72a7..c339ae4 100644 --- a/src/main/java/com/mcmoddev/lib/block/BlockMMDStairs.java +++ b/src/main/java/zone/moddev/mc/mmdlib/block/BlockMMDStairs.java @@ -1,8 +1,8 @@ -package com.mcmoddev.lib.block; +package zone.moddev.mc.mmdlib.block; -import com.mcmoddev.lib.data.Names; -import com.mcmoddev.lib.material.IMMDObject; -import com.mcmoddev.lib.material.MMDMaterial; +import zone.moddev.mc.mmdlib.data.Names; +import zone.moddev.mc.mmdlib.material.IMMDObject; +import zone.moddev.mc.mmdlib.material.MMDMaterial; /** * diff --git a/src/main/java/com/mcmoddev/lib/block/BlockMMDTrapDoor.java b/src/main/java/zone/moddev/mc/mmdlib/block/BlockMMDTrapDoor.java similarity index 89% rename from src/main/java/com/mcmoddev/lib/block/BlockMMDTrapDoor.java rename to src/main/java/zone/moddev/mc/mmdlib/block/BlockMMDTrapDoor.java index 6654853..cd16d59 100644 --- a/src/main/java/com/mcmoddev/lib/block/BlockMMDTrapDoor.java +++ b/src/main/java/zone/moddev/mc/mmdlib/block/BlockMMDTrapDoor.java @@ -1,10 +1,10 @@ -package com.mcmoddev.lib.block; +package zone.moddev.mc.mmdlib.block; import javax.annotation.Nullable; -import com.mcmoddev.lib.material.IMMDObject; -import com.mcmoddev.lib.material.MMDMaterial; -import com.mcmoddev.lib.material.MMDMaterialType.MaterialType; +import zone.moddev.mc.mmdlib.material.IMMDObject; +import zone.moddev.mc.mmdlib.material.MMDMaterial; +import zone.moddev.mc.mmdlib.material.MMDMaterialType.MaterialType; import net.minecraft.block.BlockTrapDoor; import net.minecraft.block.state.IBlockState; @@ -52,7 +52,7 @@ public boolean onBlockActivated(final World worldIn, final BlockPos pos, } } - // Magic Number mappings from net.minecraft.client.renderer.RenderGlobal#playEvent + // World-event IDs used by RenderGlobal.playEvent. // SoundEvents.BLOCK_IRON_TRAPDOOR_OPEN = 1037 // SoundEvents.BLOCK_WOODEN_TRAPDOOR_OPEN = 1007 // SoundEvents.BLOCK_IRON_TRAPDOOR_CLOSE = 1036 diff --git a/src/main/java/com/mcmoddev/lib/block/BlockMMDTripWireHook.java b/src/main/java/zone/moddev/mc/mmdlib/block/BlockMMDTripWireHook.java similarity index 83% rename from src/main/java/com/mcmoddev/lib/block/BlockMMDTripWireHook.java rename to src/main/java/zone/moddev/mc/mmdlib/block/BlockMMDTripWireHook.java index 7dc66aa..d4c4c5a 100644 --- a/src/main/java/com/mcmoddev/lib/block/BlockMMDTripWireHook.java +++ b/src/main/java/zone/moddev/mc/mmdlib/block/BlockMMDTripWireHook.java @@ -1,7 +1,7 @@ -package com.mcmoddev.lib.block; +package zone.moddev.mc.mmdlib.block; -import com.mcmoddev.lib.material.IMMDObject; -import com.mcmoddev.lib.material.MMDMaterial; +import zone.moddev.mc.mmdlib.material.IMMDObject; +import zone.moddev.mc.mmdlib.material.MMDMaterial; public class BlockMMDTripWireHook extends net.minecraft.block.BlockTripWireHook implements IMMDObject { diff --git a/src/main/java/com/mcmoddev/lib/block/BlockMMDWall.java b/src/main/java/zone/moddev/mc/mmdlib/block/BlockMMDWall.java similarity index 83% rename from src/main/java/com/mcmoddev/lib/block/BlockMMDWall.java rename to src/main/java/zone/moddev/mc/mmdlib/block/BlockMMDWall.java index 399a5a3..581863d 100644 --- a/src/main/java/com/mcmoddev/lib/block/BlockMMDWall.java +++ b/src/main/java/zone/moddev/mc/mmdlib/block/BlockMMDWall.java @@ -1,8 +1,8 @@ -package com.mcmoddev.lib.block; +package zone.moddev.mc.mmdlib.block; -import com.mcmoddev.lib.data.Names; -import com.mcmoddev.lib.material.IMMDObject; -import com.mcmoddev.lib.material.MMDMaterial; +import zone.moddev.mc.mmdlib.data.Names; +import zone.moddev.mc.mmdlib.material.IMMDObject; +import zone.moddev.mc.mmdlib.material.MMDMaterial; import net.minecraft.block.state.IBlockState; import net.minecraft.creativetab.CreativeTabs; @@ -40,7 +40,7 @@ public void getSubBlocks(final CreativeTabs tab, final NonNullList li list.add(new ItemStack(this)); } - // We don't specifically need this, but it does mean less logic being run on each check + // All states of this block support a torch on top. @Override public boolean canPlaceTorchOnTop(final IBlockState state, final IBlockAccess world, final BlockPos pos) { diff --git a/src/main/java/com/mcmoddev/lib/block/BlockMoltenFluid.java b/src/main/java/zone/moddev/mc/mmdlib/block/BlockMoltenFluid.java similarity index 91% rename from src/main/java/com/mcmoddev/lib/block/BlockMoltenFluid.java rename to src/main/java/zone/moddev/mc/mmdlib/block/BlockMoltenFluid.java index 05a4bd0..c8c13b8 100644 --- a/src/main/java/com/mcmoddev/lib/block/BlockMoltenFluid.java +++ b/src/main/java/zone/moddev/mc/mmdlib/block/BlockMoltenFluid.java @@ -1,4 +1,4 @@ -package com.mcmoddev.lib.block; +package zone.moddev.mc.mmdlib.block; import javax.annotation.Nonnull; diff --git a/src/main/java/com/mcmoddev/lib/block/InteractiveFluidBlock.java b/src/main/java/zone/moddev/mc/mmdlib/block/InteractiveFluidBlock.java similarity index 98% rename from src/main/java/com/mcmoddev/lib/block/InteractiveFluidBlock.java rename to src/main/java/zone/moddev/mc/mmdlib/block/InteractiveFluidBlock.java index d3f606d..825ed6e 100644 --- a/src/main/java/com/mcmoddev/lib/block/InteractiveFluidBlock.java +++ b/src/main/java/zone/moddev/mc/mmdlib/block/InteractiveFluidBlock.java @@ -1,4 +1,4 @@ -package com.mcmoddev.lib.block; +package zone.moddev.mc.mmdlib.block; import java.util.function.BiConsumer; diff --git a/src/main/java/com/mcmoddev/lib/block/MMDBlockWithGui.java b/src/main/java/zone/moddev/mc/mmdlib/block/MMDBlockWithGui.java similarity index 87% rename from src/main/java/com/mcmoddev/lib/block/MMDBlockWithGui.java rename to src/main/java/zone/moddev/mc/mmdlib/block/MMDBlockWithGui.java index c853539..9ef209b 100644 --- a/src/main/java/com/mcmoddev/lib/block/MMDBlockWithGui.java +++ b/src/main/java/zone/moddev/mc/mmdlib/block/MMDBlockWithGui.java @@ -1,9 +1,9 @@ -package com.mcmoddev.lib.block; +package zone.moddev.mc.mmdlib.block; import javax.annotation.ParametersAreNonnullByDefault; -import com.mcmoddev.lib.MMDLib; -import com.mcmoddev.lib.container.GuiHandlerIds; -import com.mcmoddev.lib.container.IGuiProvider; +import zone.moddev.mc.mmdlib.MMDLib; +import zone.moddev.mc.mmdlib.container.GuiHandlerIds; +import zone.moddev.mc.mmdlib.container.IGuiProvider; import net.minecraft.block.Block; import net.minecraft.block.material.MapColor; import net.minecraft.block.material.Material; @@ -33,8 +33,8 @@ public boolean onBlockActivated(final World worldIn, final BlockPos pos, final I return true; } - if ((worldIn != null) && (pos != null)/* && !worldIn.isRemote && (playerIn instanceof EntityPlayerMP)*/) { -// final EntityPlayerMP player = (EntityPlayerMP)playerIn; + if ((worldIn != null) && (pos != null)) { + final int guiId = this.getGuiId(worldIn, pos, playerIn, hand, facing, hitX, hitY, hitZ); if (guiId >= 0) { if (worldIn.isRemote) { diff --git a/src/main/java/com/mcmoddev/lib/block/MMDBlockWithTile.java b/src/main/java/zone/moddev/mc/mmdlib/block/MMDBlockWithTile.java similarity index 91% rename from src/main/java/com/mcmoddev/lib/block/MMDBlockWithTile.java rename to src/main/java/zone/moddev/mc/mmdlib/block/MMDBlockWithTile.java index 6055c1d..bdc7b7d 100644 --- a/src/main/java/com/mcmoddev/lib/block/MMDBlockWithTile.java +++ b/src/main/java/zone/moddev/mc/mmdlib/block/MMDBlockWithTile.java @@ -1,9 +1,9 @@ -package com.mcmoddev.lib.block; +package zone.moddev.mc.mmdlib.block; import java.util.function.Supplier; import javax.annotation.Nullable; import javax.annotation.ParametersAreNonnullByDefault; -import com.mcmoddev.lib.tile.MMDTileEntity; +import zone.moddev.mc.mmdlib.tile.MMDTileEntity; import net.minecraft.block.ITileEntityProvider; import net.minecraft.block.material.MapColor; import net.minecraft.block.material.Material; @@ -45,5 +45,5 @@ public TileEntity createNewTileEntity(final World worldIn, final int meta) { return this.tileClassCreator.get(); } - // TODO: maybe the tile entity NBT to creative pick block + // Creative pick-block uses the default item state without copying tile data. } diff --git a/src/main/java/zone/moddev/mc/mmdlib/block/package-info.java b/src/main/java/zone/moddev/mc/mmdlib/block/package-info.java new file mode 100644 index 0000000..287f2f6 --- /dev/null +++ b/src/main/java/zone/moddev/mc/mmdlib/block/package-info.java @@ -0,0 +1,4 @@ +@ParametersAreNonnullByDefault +package zone.moddev.mc.mmdlib.block; + +import javax.annotation.ParametersAreNonnullByDefault; diff --git a/src/main/java/com/mcmoddev/lib/capability/CapabilitiesContainer.java b/src/main/java/zone/moddev/mc/mmdlib/capability/CapabilitiesContainer.java similarity index 89% rename from src/main/java/com/mcmoddev/lib/capability/CapabilitiesContainer.java rename to src/main/java/zone/moddev/mc/mmdlib/capability/CapabilitiesContainer.java index c1f581d..f075a9e 100644 --- a/src/main/java/com/mcmoddev/lib/capability/CapabilitiesContainer.java +++ b/src/main/java/zone/moddev/mc/mmdlib/capability/CapabilitiesContainer.java @@ -1,4 +1,4 @@ -package com.mcmoddev.lib.capability; +package zone.moddev.mc.mmdlib.capability; import java.util.ArrayList; import java.util.List; @@ -6,8 +6,8 @@ import java.util.function.Predicate; import javax.annotation.Nonnull; import javax.annotation.Nullable; -import com.mcmoddev.lib.inventory.CombinedFluidHandler; -import com.mcmoddev.lib.inventory.CombinedItemHandler; +import zone.moddev.mc.mmdlib.inventory.CombinedFluidHandler; +import zone.moddev.mc.mmdlib.inventory.CombinedItemHandler; import net.minecraft.util.EnumFacing; import net.minecraftforge.common.capabilities.Capability; import net.minecraftforge.common.capabilities.ICapabilityProvider; @@ -43,14 +43,14 @@ public boolean hasCapability(@Nonnull final Capability capability, @Nullable @Override public C getCapability(@Nonnull final Capability capability, @Nullable final EnumFacing facing) { if ((capability == this.capability) && ((this.sideFilter == null) || this.sideFilter.test(facing))) { - //noinspection unchecked // "should" not be a problem + //noinspection unchecked return capability.cast((C)this.capabilityGetter.apply(facing)); } return null; } } - // TODO: handle these via a registry + // Group item and fluid handlers so each capability can combine its providers. private final List> itemCaps = new ArrayList<>(); private final List> fluidCaps = new ArrayList<>(); @@ -77,10 +77,10 @@ public T getCapability(final Capability capability, @Nullable final EnumF @Override public void addCapability(final Capability capability, final Function capabilitySupplier, @Nullable final Predicate facingFilter) { - // TODO: handle these special cases via a registry + // Combine item and fluid providers; keep other capability types separate. if (capability == CapabilityItemHandler.ITEM_HANDLER_CAPABILITY) { if (this.itemCaps.isEmpty()) { - // first one, add cap + // Register the combined capability once, then append its providers below. this.capabilities.add(new CapabilityInfo<>(CapabilityItemHandler.ITEM_HANDLER_CAPABILITY, (facing) -> { final CombinedItemHandler combined = new CombinedItemHandler(); for (final CapabilityInfo cap : this.itemCaps) { @@ -92,12 +92,12 @@ public void addCapability(final Capability capability, final Function(CapabilityItemHandler.ITEM_HANDLER_CAPABILITY, (Function)capabilitySupplier, facingFilter)); } else if (capability == CapabilityFluidHandler.FLUID_HANDLER_CAPABILITY) { if (this.fluidCaps.isEmpty()) { - // first one, add cap + // Register the combined capability once, then append its providers below. this.capabilities.add(new CapabilityInfo<>(CapabilityFluidHandler.FLUID_HANDLER_CAPABILITY, (facing) -> { final CombinedFluidHandler combined = new CombinedFluidHandler(); for (final CapabilityInfo cap : this.fluidCaps) { @@ -109,7 +109,7 @@ public void addCapability(final Capability capability, final Function(CapabilityFluidHandler.FLUID_HANDLER_CAPABILITY, (Function)capabilitySupplier, facingFilter)); } else { diff --git a/src/main/java/com/mcmoddev/lib/capability/ICapabilitiesContainer.java b/src/main/java/zone/moddev/mc/mmdlib/capability/ICapabilitiesContainer.java similarity index 97% rename from src/main/java/com/mcmoddev/lib/capability/ICapabilitiesContainer.java rename to src/main/java/zone/moddev/mc/mmdlib/capability/ICapabilitiesContainer.java index 808232f..2bde918 100644 --- a/src/main/java/com/mcmoddev/lib/capability/ICapabilitiesContainer.java +++ b/src/main/java/zone/moddev/mc/mmdlib/capability/ICapabilitiesContainer.java @@ -1,4 +1,4 @@ -package com.mcmoddev.lib.capability; +package zone.moddev.mc.mmdlib.capability; import java.util.function.Function; import java.util.function.Predicate; diff --git a/src/main/java/com/mcmoddev/lib/capability/MMDCapabilities.java b/src/main/java/zone/moddev/mc/mmdlib/capability/MMDCapabilities.java similarity index 72% rename from src/main/java/com/mcmoddev/lib/capability/MMDCapabilities.java rename to src/main/java/zone/moddev/mc/mmdlib/capability/MMDCapabilities.java index a0d2576..125124c 100644 --- a/src/main/java/com/mcmoddev/lib/capability/MMDCapabilities.java +++ b/src/main/java/zone/moddev/mc/mmdlib/capability/MMDCapabilities.java @@ -1,4 +1,4 @@ -package com.mcmoddev.lib.capability; +package zone.moddev.mc.mmdlib.capability; public final class MMDCapabilities { private MMDCapabilities() {} diff --git a/src/main/java/zone/moddev/mc/mmdlib/capability/package-info.java b/src/main/java/zone/moddev/mc/mmdlib/capability/package-info.java new file mode 100644 index 0000000..dad757b --- /dev/null +++ b/src/main/java/zone/moddev/mc/mmdlib/capability/package-info.java @@ -0,0 +1,6 @@ +@ParametersAreNonnullByDefault +@MethodsReturnNonnullByDefault +package zone.moddev.mc.mmdlib.capability; + +import javax.annotation.ParametersAreNonnullByDefault; +import mcp.MethodsReturnNonnullByDefault; diff --git a/src/main/java/com/mcmoddev/lib/client/registrations/RegistrationHelper.java b/src/main/java/zone/moddev/mc/mmdlib/client/registrations/RegistrationHelper.java similarity index 87% rename from src/main/java/com/mcmoddev/lib/client/registrations/RegistrationHelper.java rename to src/main/java/zone/moddev/mc/mmdlib/client/registrations/RegistrationHelper.java index 2030bbe..8c85082 100644 --- a/src/main/java/com/mcmoddev/lib/client/registrations/RegistrationHelper.java +++ b/src/main/java/zone/moddev/mc/mmdlib/client/registrations/RegistrationHelper.java @@ -1,11 +1,11 @@ -package com.mcmoddev.lib.client.registrations; +package zone.moddev.mc.mmdlib.client.registrations; import javax.annotation.Nonnull; -import com.mcmoddev.lib.client.renderer.FluidStateMapper; -import com.mcmoddev.lib.data.SharedStrings; -import com.mcmoddev.lib.init.Blocks; -import com.mcmoddev.lib.init.Items; +import zone.moddev.mc.mmdlib.client.renderer.FluidStateMapper; +import zone.moddev.mc.mmdlib.data.SharedStrings; +import zone.moddev.mc.mmdlib.init.Blocks; +import zone.moddev.mc.mmdlib.init.Items; import net.minecraft.block.Block; import net.minecraft.block.BlockDoor; @@ -84,9 +84,9 @@ public static void registerFluidRender(@Nonnull final String name) { */ @SideOnly(Side.CLIENT) public static void registerFluidRender(@Nonnull final Fluid fluid) { - // final Block block = fluid.getBlock(); // Unfortunately this breaks when - // another mod registered it's fluid before us. - final Block block = com.mcmoddev.lib.init.Fluids.getFluidBlockByName(fluid.getName()); + + // Look up the registered block because another mod may own the shared fluid. + final Block block = zone.moddev.mc.mmdlib.init.Fluids.getFluidBlockByName(fluid.getName()); final Item item = Item.getItemFromBlock(block); final ResourceLocation resourceLocation = block.getRegistryName(); final FluidStateMapper mapper = new FluidStateMapper( diff --git a/src/main/java/zone/moddev/mc/mmdlib/client/registrations/package-info.java b/src/main/java/zone/moddev/mc/mmdlib/client/registrations/package-info.java new file mode 100644 index 0000000..f22c13a --- /dev/null +++ b/src/main/java/zone/moddev/mc/mmdlib/client/registrations/package-info.java @@ -0,0 +1,4 @@ +@ParametersAreNonnullByDefault +package zone.moddev.mc.mmdlib.client.registrations; + +import javax.annotation.ParametersAreNonnullByDefault; diff --git a/src/main/java/com/mcmoddev/lib/client/renderer/FluidStateMapper.java b/src/main/java/zone/moddev/mc/mmdlib/client/renderer/FluidStateMapper.java similarity index 96% rename from src/main/java/com/mcmoddev/lib/client/renderer/FluidStateMapper.java rename to src/main/java/zone/moddev/mc/mmdlib/client/renderer/FluidStateMapper.java index 99976dd..11a1a1f 100644 --- a/src/main/java/com/mcmoddev/lib/client/renderer/FluidStateMapper.java +++ b/src/main/java/zone/moddev/mc/mmdlib/client/renderer/FluidStateMapper.java @@ -1,4 +1,4 @@ -package com.mcmoddev.lib.client.renderer; +package zone.moddev.mc.mmdlib.client.renderer; import javax.annotation.Nonnull; diff --git a/src/main/java/com/mcmoddev/lib/client/renderer/RenderCustomArrow.java b/src/main/java/zone/moddev/mc/mmdlib/client/renderer/RenderCustomArrow.java similarity index 90% rename from src/main/java/com/mcmoddev/lib/client/renderer/RenderCustomArrow.java rename to src/main/java/zone/moddev/mc/mmdlib/client/renderer/RenderCustomArrow.java index 73e1b78..4208177 100644 --- a/src/main/java/com/mcmoddev/lib/client/renderer/RenderCustomArrow.java +++ b/src/main/java/zone/moddev/mc/mmdlib/client/renderer/RenderCustomArrow.java @@ -1,6 +1,6 @@ -package com.mcmoddev.lib.client.renderer; +package zone.moddev.mc.mmdlib.client.renderer; -import com.mcmoddev.lib.entity.EntityCustomArrow; +import zone.moddev.mc.mmdlib.entity.EntityCustomArrow; import net.minecraft.client.renderer.entity.Render; import net.minecraft.client.renderer.entity.RenderManager; diff --git a/src/main/java/com/mcmoddev/lib/client/renderer/RenderCustomBolt.java b/src/main/java/zone/moddev/mc/mmdlib/client/renderer/RenderCustomBolt.java similarity index 90% rename from src/main/java/com/mcmoddev/lib/client/renderer/RenderCustomBolt.java rename to src/main/java/zone/moddev/mc/mmdlib/client/renderer/RenderCustomBolt.java index ea0e58d..9731d77 100644 --- a/src/main/java/com/mcmoddev/lib/client/renderer/RenderCustomBolt.java +++ b/src/main/java/zone/moddev/mc/mmdlib/client/renderer/RenderCustomBolt.java @@ -1,6 +1,6 @@ -package com.mcmoddev.lib.client.renderer; +package zone.moddev.mc.mmdlib.client.renderer; -import com.mcmoddev.lib.entity.EntityCustomBolt; +import zone.moddev.mc.mmdlib.entity.EntityCustomBolt; import net.minecraft.client.renderer.entity.Render; import net.minecraft.client.renderer.entity.RenderManager; diff --git a/src/main/java/com/mcmoddev/lib/client/renderer/RenderHelpers.java b/src/main/java/zone/moddev/mc/mmdlib/client/renderer/RenderHelpers.java similarity index 94% rename from src/main/java/com/mcmoddev/lib/client/renderer/RenderHelpers.java rename to src/main/java/zone/moddev/mc/mmdlib/client/renderer/RenderHelpers.java index 30fbc24..2e6c56c 100644 --- a/src/main/java/com/mcmoddev/lib/client/renderer/RenderHelpers.java +++ b/src/main/java/zone/moddev/mc/mmdlib/client/renderer/RenderHelpers.java @@ -1,4 +1,4 @@ -package com.mcmoddev.lib.client.renderer; +package zone.moddev.mc.mmdlib.client.renderer; import net.minecraft.client.renderer.BufferBuilder; import net.minecraft.client.renderer.GlStateManager; @@ -10,19 +10,9 @@ public class RenderHelpers { private RenderHelpers() { - // private constructor + } - /** - * - * @param entity - * @param x - * @param y - * @param z - * @param partialTicks - * @param renderOutlines - * @param teamColor - */ public static void doArrowOrBoltRender(final EntityTippedArrow entity, final double x, final double y, final double z, final float partialTicks, final boolean renderOutlines, final int teamColor) { diff --git a/src/main/java/com/mcmoddev/lib/client/registrations/package-info.java b/src/main/java/zone/moddev/mc/mmdlib/client/renderer/package-info.java similarity index 64% rename from src/main/java/com/mcmoddev/lib/client/registrations/package-info.java rename to src/main/java/zone/moddev/mc/mmdlib/client/renderer/package-info.java index a85b272..e610f26 100644 --- a/src/main/java/com/mcmoddev/lib/client/registrations/package-info.java +++ b/src/main/java/zone/moddev/mc/mmdlib/client/renderer/package-info.java @@ -1,4 +1,4 @@ @ParametersAreNonnullByDefault -package com.mcmoddev.lib.client.registrations; +package zone.moddev.mc.mmdlib.client.renderer; import javax.annotation.ParametersAreNonnullByDefault; diff --git a/src/main/java/com/mcmoddev/lib/common/IModInstanceProvider.java b/src/main/java/zone/moddev/mc/mmdlib/common/IModInstanceProvider.java similarity index 75% rename from src/main/java/com/mcmoddev/lib/common/IModInstanceProvider.java rename to src/main/java/zone/moddev/mc/mmdlib/common/IModInstanceProvider.java index 3ca1791..ee90325 100644 --- a/src/main/java/com/mcmoddev/lib/common/IModInstanceProvider.java +++ b/src/main/java/zone/moddev/mc/mmdlib/common/IModInstanceProvider.java @@ -1,4 +1,4 @@ -package com.mcmoddev.lib.common; +package zone.moddev.mc.mmdlib.common; import net.minecraft.world.World; diff --git a/src/main/java/com/mcmoddev/lib/common/item/IHorseArmor.java b/src/main/java/zone/moddev/mc/mmdlib/common/item/IHorseArmor.java similarity index 95% rename from src/main/java/com/mcmoddev/lib/common/item/IHorseArmor.java rename to src/main/java/zone/moddev/mc/mmdlib/common/item/IHorseArmor.java index b3ac511..0ed46b7 100644 --- a/src/main/java/com/mcmoddev/lib/common/item/IHorseArmor.java +++ b/src/main/java/zone/moddev/mc/mmdlib/common/item/IHorseArmor.java @@ -1,4 +1,4 @@ -package com.mcmoddev.lib.common.item; +package zone.moddev.mc.mmdlib.common.item; import net.minecraft.entity.EntityLiving; import net.minecraft.entity.passive.HorseArmorType; diff --git a/src/main/java/com/mcmoddev/lib/client/renderer/package-info.java b/src/main/java/zone/moddev/mc/mmdlib/common/item/package-info.java similarity index 66% rename from src/main/java/com/mcmoddev/lib/client/renderer/package-info.java rename to src/main/java/zone/moddev/mc/mmdlib/common/item/package-info.java index 8d73b64..88e7035 100644 --- a/src/main/java/com/mcmoddev/lib/client/renderer/package-info.java +++ b/src/main/java/zone/moddev/mc/mmdlib/common/item/package-info.java @@ -1,4 +1,4 @@ @ParametersAreNonnullByDefault -package com.mcmoddev.lib.client.renderer; +package zone.moddev.mc.mmdlib.common.item; import javax.annotation.ParametersAreNonnullByDefault; diff --git a/src/main/java/com/mcmoddev/lib/container/package-info.java b/src/main/java/zone/moddev/mc/mmdlib/common/package-info.java similarity index 80% rename from src/main/java/com/mcmoddev/lib/container/package-info.java rename to src/main/java/zone/moddev/mc/mmdlib/common/package-info.java index 2593007..aa676f6 100644 --- a/src/main/java/com/mcmoddev/lib/container/package-info.java +++ b/src/main/java/zone/moddev/mc/mmdlib/common/package-info.java @@ -1,6 +1,6 @@ @ParametersAreNonnullByDefault @MethodsReturnNonnullByDefault -package com.mcmoddev.lib.container; +package zone.moddev.mc.mmdlib.common; import javax.annotation.ParametersAreNonnullByDefault; import mcp.MethodsReturnNonnullByDefault; diff --git a/src/main/java/zone/moddev/mc/mmdlib/compat/LegacyNamespaceAliases.java b/src/main/java/zone/moddev/mc/mmdlib/compat/LegacyNamespaceAliases.java new file mode 100644 index 0000000..8432e76 --- /dev/null +++ b/src/main/java/zone/moddev/mc/mmdlib/compat/LegacyNamespaceAliases.java @@ -0,0 +1,55 @@ +package zone.moddev.mc.mmdlib.compat; + +import java.io.BufferedReader; +import java.io.IOException; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.nio.charset.StandardCharsets; +import java.util.Collections; +import java.util.LinkedHashMap; +import java.util.LinkedHashSet; +import java.util.Map; +import java.util.Set; + +import net.minecraftforge.fml.common.discovery.ASMDataTable; +import net.minecraftforge.fml.common.discovery.ASMDataTable.ASMData; + +/** The legacy names are aliases for one implementation, never a second registry. */ +public final class LegacyNamespaceAliases { + public static final String OLD_INTERNAL = "com/mcmoddev/lib/"; + public static final String NEW_INTERNAL = "zone/moddev/mc/mmdlib/"; + public static final String OLD_DOTTED = "com.mcmoddev.lib."; + public static final String NEW_DOTTED = "zone.moddev.mc.mmdlib."; + public static final String RESOURCE = "META-INF/mmdlib-legacy-names.list"; + + private LegacyNamespaceAliases() { } + + public static Map load() { + Map result = new LinkedHashMap<>(); + InputStream input = LegacyNamespaceAliases.class.getClassLoader().getResourceAsStream(RESOURCE); + if (input == null) throw new IllegalStateException("Missing MMDLib legacy API alias inventory"); + try (BufferedReader reader = new BufferedReader(new InputStreamReader(input, StandardCharsets.UTF_8))) { + String line; + while ((line = reader.readLine()) != null) { + if (line.isEmpty() || line.startsWith("#")) continue; + String[] names = line.split("=", -1); + if (names.length != 2 || !names[0].startsWith(OLD_INTERNAL) + || !names[1].equals(NEW_INTERNAL + names[0].substring(OLD_INTERNAL.length())) + || result.put(names[0], names[1]) != null) { + throw new IllegalStateException("Invalid MMDLib legacy API alias: " + line); + } + } + } catch (IOException error) { + throw new IllegalStateException("Cannot read MMDLib legacy API aliases", error); + } + if (result.isEmpty()) throw new IllegalStateException("Empty MMDLib legacy API alias inventory"); + return Collections.unmodifiableMap(result); + } + + /** Forge scans annotations before class loading, so accept both annotation names. */ + public static Set pluginData(final ASMDataTable table) { + Set result = new LinkedHashSet<>(table.getAll(NEW_DOTTED + "integration.MMDPlugin")); + result.addAll(table.getAll(OLD_DOTTED + "integration.MMDPlugin")); + return result; + } +} diff --git a/src/main/java/zone/moddev/mc/mmdlib/compat/LegacyNamespaceBootstrap.java b/src/main/java/zone/moddev/mc/mmdlib/compat/LegacyNamespaceBootstrap.java new file mode 100644 index 0000000..dd1deb9 --- /dev/null +++ b/src/main/java/zone/moddev/mc/mmdlib/compat/LegacyNamespaceBootstrap.java @@ -0,0 +1,18 @@ +package zone.moddev.mc.mmdlib.compat; + +import java.util.Map; +import net.minecraftforge.fml.relauncher.IFMLLoadingPlugin; + +/** Installs only API name translation, before dependent mod classes can link. */ +@IFMLLoadingPlugin.Name("MMDLib legacy API compatibility") +@IFMLLoadingPlugin.MCVersion("1.12.2") +@IFMLLoadingPlugin.TransformerExclusions("zone.moddev.mc.mmdlib.compat.") +public final class LegacyNamespaceBootstrap implements IFMLLoadingPlugin { + @Override public String[] getASMTransformerClass() { + return new String[] { "zone.moddev.mc.mmdlib.compat.LegacyNamespaceTransformer" }; + } + @Override public String getModContainerClass() { return null; } + @Override public String getSetupClass() { return null; } + @Override public void injectData(final Map data) { } + @Override public String getAccessTransformerClass() { return null; } +} diff --git a/src/main/java/zone/moddev/mc/mmdlib/compat/LegacyNamespaceTransformer.java b/src/main/java/zone/moddev/mc/mmdlib/compat/LegacyNamespaceTransformer.java new file mode 100644 index 0000000..f219910 --- /dev/null +++ b/src/main/java/zone/moddev/mc/mmdlib/compat/LegacyNamespaceTransformer.java @@ -0,0 +1,52 @@ +package zone.moddev.mc.mmdlib.compat; + +import java.util.Map; +import net.minecraft.launchwrapper.IClassTransformer; +import org.objectweb.asm.ClassReader; +import org.objectweb.asm.ClassWriter; +import org.objectweb.asm.commons.ClassRemapper; +import org.objectweb.asm.commons.Remapper; + +/** + * Relinks old consumer bytecode, including descriptors, inheritance, frames, + * annotations and lambda handles. Shared fields, enums and registries consequently + * have the same identity for consumers compiled against either namespace. + */ +public final class LegacyNamespaceTransformer implements IClassTransformer { + private final Map aliases; + + public LegacyNamespaceTransformer() { this(LegacyNamespaceAliases.load()); } + + public LegacyNamespaceTransformer(final Map aliases) { this.aliases = aliases; } + + @Override + public byte[] transform(final String name, final String transformedName, final byte[] bytes) { + if (bytes == null || name == null || name.startsWith(LegacyNamespaceAliases.NEW_DOTTED) + || aliases.containsKey(name.replace('.', '/')) + || !(contains(bytes, LegacyNamespaceAliases.OLD_INTERNAL) + || contains(bytes, LegacyNamespaceAliases.OLD_DOTTED))) return bytes; + ClassWriter output = new ClassWriter(0); + new ClassReader(bytes).accept(new ClassRemapper(output, new Remapper() { + @Override public String map(final String internalName) { + return aliases.getOrDefault(internalName, internalName); + } + @Override public Object mapValue(final Object value) { + if (value instanceof String) { + return ((String) value).replace(LegacyNamespaceAliases.OLD_DOTTED, LegacyNamespaceAliases.NEW_DOTTED) + .replace(LegacyNamespaceAliases.OLD_INTERNAL, LegacyNamespaceAliases.NEW_INTERNAL); + } + return super.mapValue(value); + } + }), 0); + return output.toByteArray(); + } + + private static boolean contains(final byte[] bytes, final String ascii) { + for (int offset = 0; offset <= bytes.length - ascii.length(); offset++) { + int index = 0; + while (index < ascii.length() && bytes[offset + index] == ascii.charAt(index)) index++; + if (index == ascii.length()) return true; + } + return false; + } +} diff --git a/src/main/java/com/mcmoddev/lib/container/BaseItemStackWidgetProvider.java b/src/main/java/zone/moddev/mc/mmdlib/container/BaseItemStackWidgetProvider.java similarity index 86% rename from src/main/java/com/mcmoddev/lib/container/BaseItemStackWidgetProvider.java rename to src/main/java/zone/moddev/mc/mmdlib/container/BaseItemStackWidgetProvider.java index c84f484..c096031 100644 --- a/src/main/java/com/mcmoddev/lib/container/BaseItemStackWidgetProvider.java +++ b/src/main/java/zone/moddev/mc/mmdlib/container/BaseItemStackWidgetProvider.java @@ -1,18 +1,18 @@ -package com.mcmoddev.lib.container; +package zone.moddev.mc.mmdlib.container; import java.util.ArrayList; import java.util.List; import javax.annotation.Nullable; -import com.mcmoddev.lib.container.gui.GuiContext; -import com.mcmoddev.lib.container.gui.IWidgetGui; -import com.mcmoddev.lib.container.gui.MMDGuiContainer; -import com.mcmoddev.lib.container.gui.layout.VerticalStackLayout; -import com.mcmoddev.lib.container.widget.IWidget; -import com.mcmoddev.lib.feature.IClientFeature; -import com.mcmoddev.lib.feature.IFeature; -import com.mcmoddev.lib.feature.IFeatureHolder; -import com.mcmoddev.lib.feature.IItemStackFeatureHolder; -import com.mcmoddev.lib.feature.IServerFeature; +import zone.moddev.mc.mmdlib.container.gui.GuiContext; +import zone.moddev.mc.mmdlib.container.gui.IWidgetGui; +import zone.moddev.mc.mmdlib.container.gui.MMDGuiContainer; +import zone.moddev.mc.mmdlib.container.gui.layout.VerticalStackLayout; +import zone.moddev.mc.mmdlib.container.widget.IWidget; +import zone.moddev.mc.mmdlib.feature.IClientFeature; +import zone.moddev.mc.mmdlib.feature.IFeature; +import zone.moddev.mc.mmdlib.feature.IFeatureHolder; +import zone.moddev.mc.mmdlib.feature.IItemStackFeatureHolder; +import zone.moddev.mc.mmdlib.feature.IServerFeature; import net.minecraft.client.gui.inventory.GuiContainer; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Container; @@ -34,8 +34,8 @@ public class BaseItemStackWidgetProvider implements IGuiProvider, IWidgetContain /** * Initializes a new instance of BaseItemStackWidgetProvider. + * Implementation note: The corresponding item should implement {@link IItemStackFeatureHolder}. * @param stack The item stack this provider is for. - * @implNote The corresponding item should implement {@link IItemStackFeatureHolder}. */ public BaseItemStackWidgetProvider(final ItemStack stack) { this(stack, stack.getItem()); @@ -43,9 +43,9 @@ public BaseItemStackWidgetProvider(final ItemStack stack) { /** * Initializes a new instance of BaseItemStackWidgetProvider. + * Implementation note: The item should implement {@link IItemStackFeatureHolder}. * @param stack The item stack this provider is for. * @param item The item this provider is for. Usually same as {@link ItemStack#getItem()}. - * @implNote The item should implement {@link IItemStackFeatureHolder}. */ public BaseItemStackWidgetProvider(final ItemStack stack, final Item item) { this.stack = stack; diff --git a/src/main/java/com/mcmoddev/lib/container/GuiHandlerIds.java b/src/main/java/zone/moddev/mc/mmdlib/container/GuiHandlerIds.java similarity index 95% rename from src/main/java/com/mcmoddev/lib/container/GuiHandlerIds.java rename to src/main/java/zone/moddev/mc/mmdlib/container/GuiHandlerIds.java index 6b22f34..15bcff6 100644 --- a/src/main/java/com/mcmoddev/lib/container/GuiHandlerIds.java +++ b/src/main/java/zone/moddev/mc/mmdlib/container/GuiHandlerIds.java @@ -1,4 +1,4 @@ -package com.mcmoddev.lib.container; +package zone.moddev.mc.mmdlib.container; /** * Represents the set of IDs used by {@link MMDGuiHandler}. diff --git a/src/main/java/com/mcmoddev/lib/container/IContainerSlot.java b/src/main/java/zone/moddev/mc/mmdlib/container/IContainerSlot.java similarity index 86% rename from src/main/java/com/mcmoddev/lib/container/IContainerSlot.java rename to src/main/java/zone/moddev/mc/mmdlib/container/IContainerSlot.java index b0c20c3..f5bd2c7 100644 --- a/src/main/java/com/mcmoddev/lib/container/IContainerSlot.java +++ b/src/main/java/zone/moddev/mc/mmdlib/container/IContainerSlot.java @@ -1,4 +1,4 @@ -package com.mcmoddev.lib.container; +package zone.moddev.mc.mmdlib.container; import net.minecraft.inventory.Slot; @@ -8,8 +8,8 @@ public interface IContainerSlot { /** * Returns the slot that will be added to the corresponding {@link MMDContainer}. + * Implementation note: This slot instance should be cached and all calls to this method should return the same one. * @return The Slot! - * @implNote This slot instance should be cached and all calls to this method should return the same one. */ Slot getSlot(); diff --git a/src/main/java/com/mcmoddev/lib/container/IGuiProvider.java b/src/main/java/zone/moddev/mc/mmdlib/container/IGuiProvider.java similarity index 97% rename from src/main/java/com/mcmoddev/lib/container/IGuiProvider.java rename to src/main/java/zone/moddev/mc/mmdlib/container/IGuiProvider.java index 3add519..3d8fec3 100644 --- a/src/main/java/com/mcmoddev/lib/container/IGuiProvider.java +++ b/src/main/java/zone/moddev/mc/mmdlib/container/IGuiProvider.java @@ -1,4 +1,4 @@ -package com.mcmoddev.lib.container; +package zone.moddev.mc.mmdlib.container; import javax.annotation.Nullable; import net.minecraft.client.gui.inventory.GuiContainer; diff --git a/src/main/java/com/mcmoddev/lib/container/IItemGuiProvider.java b/src/main/java/zone/moddev/mc/mmdlib/container/IItemGuiProvider.java similarity index 93% rename from src/main/java/com/mcmoddev/lib/container/IItemGuiProvider.java rename to src/main/java/zone/moddev/mc/mmdlib/container/IItemGuiProvider.java index 6bc678e..79c5faf 100644 --- a/src/main/java/com/mcmoddev/lib/container/IItemGuiProvider.java +++ b/src/main/java/zone/moddev/mc/mmdlib/container/IItemGuiProvider.java @@ -1,7 +1,7 @@ -package com.mcmoddev.lib.container; +package zone.moddev.mc.mmdlib.container; import javax.annotation.Nullable; -import com.mcmoddev.lib.container.gui.MMDGuiContainer; +import zone.moddev.mc.mmdlib.container.gui.MMDGuiContainer; import net.minecraft.client.gui.inventory.GuiContainer; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Container; @@ -45,7 +45,7 @@ default Container getServerGui(final GuiType guiType, final ItemStack stack, fin if (!stack.isEmpty() && (stack.getItem() instanceof IItemGuiProvider)) { final IItemGuiProvider provider = IItemGuiProvider.class.cast(stack.getItem()); if (provider != this) { - // just in case someone forgot to override the default implementation + // Return no GUI unless the provider overrides this method. return provider.getServerGui(guiType, stack, player, world, x, y, z); } } @@ -74,7 +74,7 @@ default GuiContainer getClientGui(final GuiType guiType, final ItemStack stack, if (!stack.isEmpty() && (stack.getItem() instanceof IItemGuiProvider)) { final IItemGuiProvider provider = IItemGuiProvider.class.cast(stack.getItem()); if (provider != this) { - // just in case someone forgot to override the default implementation + // Return no GUI unless the provider overrides this method. return provider.getClientGui(guiType, stack, player, world, x, y, z); } } diff --git a/src/main/java/com/mcmoddev/lib/container/IItemStackGuiProvider.java b/src/main/java/zone/moddev/mc/mmdlib/container/IItemStackGuiProvider.java similarity index 92% rename from src/main/java/com/mcmoddev/lib/container/IItemStackGuiProvider.java rename to src/main/java/zone/moddev/mc/mmdlib/container/IItemStackGuiProvider.java index f50895c..a68aed0 100644 --- a/src/main/java/com/mcmoddev/lib/container/IItemStackGuiProvider.java +++ b/src/main/java/zone/moddev/mc/mmdlib/container/IItemStackGuiProvider.java @@ -1,4 +1,4 @@ -package com.mcmoddev.lib.container; +package zone.moddev.mc.mmdlib.container; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; diff --git a/src/main/java/com/mcmoddev/lib/container/IWidgetContainer.java b/src/main/java/zone/moddev/mc/mmdlib/container/IWidgetContainer.java similarity index 84% rename from src/main/java/com/mcmoddev/lib/container/IWidgetContainer.java rename to src/main/java/zone/moddev/mc/mmdlib/container/IWidgetContainer.java index f39e91e..cb2fdd5 100644 --- a/src/main/java/com/mcmoddev/lib/container/IWidgetContainer.java +++ b/src/main/java/zone/moddev/mc/mmdlib/container/IWidgetContainer.java @@ -1,13 +1,13 @@ -package com.mcmoddev.lib.container; +package zone.moddev.mc.mmdlib.container; import java.util.List; import javax.annotation.Nullable; import com.google.common.collect.Lists; -import com.mcmoddev.lib.container.gui.GuiContext; -import com.mcmoddev.lib.container.gui.IWidgetGui; -import com.mcmoddev.lib.container.gui.IWidgetLayout; -import com.mcmoddev.lib.container.gui.layout.CanvasLayout; -import com.mcmoddev.lib.container.widget.IWidget; +import zone.moddev.mc.mmdlib.container.gui.GuiContext; +import zone.moddev.mc.mmdlib.container.gui.IWidgetGui; +import zone.moddev.mc.mmdlib.container.gui.IWidgetLayout; +import zone.moddev.mc.mmdlib.container.gui.layout.CanvasLayout; +import zone.moddev.mc.mmdlib.container.widget.IWidget; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.nbt.NBTTagCompound; import net.minecraftforge.fml.relauncher.Side; @@ -38,8 +38,8 @@ public interface IWidgetContainer { /** * Returns the root Widget Gui used to build this container's gui. Usually this will be a {@link IWidgetLayout}. + * Implementation note: This will only get called on client thread. * @return The root Widget Gui of this container. - * @implNote This will only get called on client thread. */ @SideOnly(Side.CLIENT) default IWidgetGui getRootWidgetGui(final GuiContext context) { return new CanvasLayout(); } diff --git a/src/main/java/com/mcmoddev/lib/container/IWidgetContainerProxy.java b/src/main/java/zone/moddev/mc/mmdlib/container/IWidgetContainerProxy.java similarity index 86% rename from src/main/java/com/mcmoddev/lib/container/IWidgetContainerProxy.java rename to src/main/java/zone/moddev/mc/mmdlib/container/IWidgetContainerProxy.java index 76a9ea7..3e6164c 100644 --- a/src/main/java/com/mcmoddev/lib/container/IWidgetContainerProxy.java +++ b/src/main/java/zone/moddev/mc/mmdlib/container/IWidgetContainerProxy.java @@ -1,4 +1,4 @@ -package com.mcmoddev.lib.container; +package zone.moddev.mc.mmdlib.container; /** * Used by things that don't/can't implement IWidgetContainer themselves. diff --git a/src/main/java/com/mcmoddev/lib/container/MMDContainer.java b/src/main/java/zone/moddev/mc/mmdlib/container/MMDContainer.java similarity index 70% rename from src/main/java/com/mcmoddev/lib/container/MMDContainer.java rename to src/main/java/zone/moddev/mc/mmdlib/container/MMDContainer.java index 9378169..b03240d 100644 --- a/src/main/java/com/mcmoddev/lib/container/MMDContainer.java +++ b/src/main/java/zone/moddev/mc/mmdlib/container/MMDContainer.java @@ -1,17 +1,17 @@ -package com.mcmoddev.lib.container; +package zone.moddev.mc.mmdlib.container; import java.util.List; import java.util.stream.Collectors; import javax.annotation.Nullable; import com.google.common.collect.Lists; -import com.mcmoddev.lib.MMDLib; -import com.mcmoddev.lib.container.gui.GuiContext; -import com.mcmoddev.lib.container.widget.IContextualWidget; -import com.mcmoddev.lib.container.widget.IProxyWidget; -import com.mcmoddev.lib.container.widget.IWidget; -import com.mcmoddev.lib.network.MMDMessages; -import com.mcmoddev.lib.network.NBTBasedPlayerHandler; -import com.mcmoddev.lib.network.NBTBasedPlayerMessage; +import zone.moddev.mc.mmdlib.MMDLib; +import zone.moddev.mc.mmdlib.container.gui.GuiContext; +import zone.moddev.mc.mmdlib.container.widget.IContextualWidget; +import zone.moddev.mc.mmdlib.container.widget.IProxyWidget; +import zone.moddev.mc.mmdlib.container.widget.IWidget; +import zone.moddev.mc.mmdlib.network.MMDMessages; +import zone.moddev.mc.mmdlib.network.NBTBasedPlayerHandler; +import zone.moddev.mc.mmdlib.network.NBTBasedPlayerMessage; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayerMP; import net.minecraft.inventory.Container; @@ -55,7 +55,6 @@ public MMDContainer(final IWidgetContainer provider, final EntityPlayer player) slots.addAll(widget.getSlots()); } - //MMDLib.logger.info("MMD CONTAINER created with " + slots.size() + " slots."); for(final IContainerSlot slot: slots) { final Slot realSlot = slot.getSlot(); this.addSlotToContainer(realSlot); @@ -83,63 +82,10 @@ public boolean canInteractWith(final EntityPlayer playerIn) { @Override public ItemStack transferStackInSlot(final EntityPlayer playerIn, final int index) { -// final ItemStack copyStack = ItemStack.EMPTY; -// Slot slot = this.inventorySlots.get(index); -// -// if ((slot != null) && slot.getHasStack()) { -// ItemStack origStack = slot.getStack(); -// copyStack = origStack.copy(); -// -// boolean merged = false; -// for (SlotRange range : this.getSlotsRange(index)) { -// if (super.mergeItemStack(origStack, range.start, range.end, range.reverse)) { -// merged = true; -// break; -// } -// } -// if (!merged) { -// return ItemStack.EMPTY; -// } -// } -// -// return copyStack; + return ItemStack.EMPTY; } -// private List getSlotsRange(int sourceIndex) { -// List list = Lists.newArrayList(); -// -// if (sourceIndex >= this.entitySlots) { -// // not a tile entity slot, add tile's slots as target -// list.add(new SlotRange(0, this.entitySlots - 1, false)); -// } -// -// int start = this.entitySlots; -// for(PlayerInventory pi : PLAYER_INVENTORY_INSERT_ORDER) { -// if (this.playerInventories.contains(pi)) { -// if ((sourceIndex < start) || (sourceIndex >= (start + pi.slotCount))) { -// // ignore the source inventory -// list.add(new SlotRange(start, start + pi.slotCount - 1, pi.insertInReverse)); -// } -// start += pi.slotCount; -// } -// } -// -// return list; -// } -// -// private class SlotRange { -// final int start; -// final int end; -// final boolean reverse; -// -// SlotRange(final int start, final int end, final boolean reverse) { -// this.start = start; -// this.end = end; -// this.reverse = reverse; -// } -// } - /** * Handles a nbt message from server. Called by {@link NBTBasedPlayerHandler}. Do not call directly! * @param compound The nbt message body. diff --git a/src/main/java/com/mcmoddev/lib/container/MMDGuiHandler.java b/src/main/java/zone/moddev/mc/mmdlib/container/MMDGuiHandler.java similarity index 97% rename from src/main/java/com/mcmoddev/lib/container/MMDGuiHandler.java rename to src/main/java/zone/moddev/mc/mmdlib/container/MMDGuiHandler.java index 0ab9178..c1c632f 100644 --- a/src/main/java/com/mcmoddev/lib/container/MMDGuiHandler.java +++ b/src/main/java/zone/moddev/mc/mmdlib/container/MMDGuiHandler.java @@ -1,7 +1,7 @@ -package com.mcmoddev.lib.container; +package zone.moddev.mc.mmdlib.container; import javax.annotation.Nullable; -import com.mcmoddev.lib.MMDLib; +import zone.moddev.mc.mmdlib.MMDLib; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; diff --git a/src/main/java/com/mcmoddev/lib/container/PlayerInventory.java b/src/main/java/zone/moddev/mc/mmdlib/container/PlayerInventory.java similarity index 97% rename from src/main/java/com/mcmoddev/lib/container/PlayerInventory.java rename to src/main/java/zone/moddev/mc/mmdlib/container/PlayerInventory.java index de6a54c..23465a4 100644 --- a/src/main/java/com/mcmoddev/lib/container/PlayerInventory.java +++ b/src/main/java/zone/moddev/mc/mmdlib/container/PlayerInventory.java @@ -1,4 +1,4 @@ -package com.mcmoddev.lib.container; +package zone.moddev.mc.mmdlib.container; /** * Helper enum for referencing the various pieces of a player's inventory. diff --git a/src/main/java/com/mcmoddev/lib/container/PlayerInventoryInfo.java b/src/main/java/zone/moddev/mc/mmdlib/container/PlayerInventoryInfo.java similarity index 94% rename from src/main/java/com/mcmoddev/lib/container/PlayerInventoryInfo.java rename to src/main/java/zone/moddev/mc/mmdlib/container/PlayerInventoryInfo.java index f1a6001..2e6300f 100644 --- a/src/main/java/com/mcmoddev/lib/container/PlayerInventoryInfo.java +++ b/src/main/java/zone/moddev/mc/mmdlib/container/PlayerInventoryInfo.java @@ -1,4 +1,4 @@ -package com.mcmoddev.lib.container; +package zone.moddev.mc.mmdlib.container; /** * Display information about a {@link PlayerInventory}. diff --git a/src/main/java/com/mcmoddev/lib/container/gui/BaseButtonWidgetGui.java b/src/main/java/zone/moddev/mc/mmdlib/container/gui/BaseButtonWidgetGui.java similarity index 87% rename from src/main/java/com/mcmoddev/lib/container/gui/BaseButtonWidgetGui.java rename to src/main/java/zone/moddev/mc/mmdlib/container/gui/BaseButtonWidgetGui.java index a668722..4025533 100644 --- a/src/main/java/com/mcmoddev/lib/container/gui/BaseButtonWidgetGui.java +++ b/src/main/java/zone/moddev/mc/mmdlib/container/gui/BaseButtonWidgetGui.java @@ -1,10 +1,10 @@ -package com.mcmoddev.lib.container.gui; +package zone.moddev.mc.mmdlib.container.gui; -import com.mcmoddev.lib.MMDLib; -import com.mcmoddev.lib.container.gui.util.Size2D; -import com.mcmoddev.lib.container.gui.util.TexturedRectangleRenderer; -import com.mcmoddev.lib.container.widget.ActionWidget; -import com.mcmoddev.lib.container.widget.IWidget; +import zone.moddev.mc.mmdlib.MMDLib; +import zone.moddev.mc.mmdlib.container.gui.util.Size2D; +import zone.moddev.mc.mmdlib.container.gui.util.TexturedRectangleRenderer; +import zone.moddev.mc.mmdlib.container.widget.ActionWidget; +import zone.moddev.mc.mmdlib.container.widget.IWidget; import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.SideOnly; diff --git a/src/main/java/com/mcmoddev/lib/container/gui/BaseSpriteGui.java b/src/main/java/zone/moddev/mc/mmdlib/container/gui/BaseSpriteGui.java similarity index 83% rename from src/main/java/com/mcmoddev/lib/container/gui/BaseSpriteGui.java rename to src/main/java/zone/moddev/mc/mmdlib/container/gui/BaseSpriteGui.java index de2ed50..a1ca3b8 100644 --- a/src/main/java/com/mcmoddev/lib/container/gui/BaseSpriteGui.java +++ b/src/main/java/zone/moddev/mc/mmdlib/container/gui/BaseSpriteGui.java @@ -1,6 +1,6 @@ -package com.mcmoddev.lib.container.gui; +package zone.moddev.mc.mmdlib.container.gui; -import com.mcmoddev.lib.container.gui.util.Size2D; +import zone.moddev.mc.mmdlib.container.gui.util.Size2D; import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.SideOnly; diff --git a/src/main/java/com/mcmoddev/lib/container/gui/BaseWidgetGui.java b/src/main/java/zone/moddev/mc/mmdlib/container/gui/BaseWidgetGui.java similarity index 90% rename from src/main/java/com/mcmoddev/lib/container/gui/BaseWidgetGui.java rename to src/main/java/zone/moddev/mc/mmdlib/container/gui/BaseWidgetGui.java index 3e6a266..71a6f81 100644 --- a/src/main/java/com/mcmoddev/lib/container/gui/BaseWidgetGui.java +++ b/src/main/java/zone/moddev/mc/mmdlib/container/gui/BaseWidgetGui.java @@ -1,8 +1,8 @@ -package com.mcmoddev.lib.container.gui; +package zone.moddev.mc.mmdlib.container.gui; import javax.annotation.Nullable; -import com.mcmoddev.lib.container.gui.util.Padding; -import com.mcmoddev.lib.container.gui.util.Size2D; +import zone.moddev.mc.mmdlib.container.gui.util.Padding; +import zone.moddev.mc.mmdlib.container.gui.util.Size2D; import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.SideOnly; @@ -85,7 +85,7 @@ public IWidgetGui setParentLayout(@Nullable final IWidgetLayout layout) { @Override public Size2D getSize() { if (this.size == null) { - // I would throw an error here but java error handling sucks balls + // An unset widget size occupies no layout space. return Size2D.ZERO; } diff --git a/src/main/java/com/mcmoddev/lib/container/gui/ColorOverlayPiece.java b/src/main/java/zone/moddev/mc/mmdlib/container/gui/ColorOverlayPiece.java similarity index 88% rename from src/main/java/com/mcmoddev/lib/container/gui/ColorOverlayPiece.java rename to src/main/java/zone/moddev/mc/mmdlib/container/gui/ColorOverlayPiece.java index 6b6bf7f..a72bcd1 100644 --- a/src/main/java/com/mcmoddev/lib/container/gui/ColorOverlayPiece.java +++ b/src/main/java/zone/moddev/mc/mmdlib/container/gui/ColorOverlayPiece.java @@ -1,7 +1,7 @@ -package com.mcmoddev.lib.container.gui; +package zone.moddev.mc.mmdlib.container.gui; -import com.mcmoddev.lib.container.gui.util.Size2D; -import com.mcmoddev.lib.util.GuiUtils; +import zone.moddev.mc.mmdlib.container.gui.util.Size2D; +import zone.moddev.mc.mmdlib.util.GuiUtils; import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.SideOnly; diff --git a/src/main/java/com/mcmoddev/lib/container/gui/FeatureWrapperGui.java b/src/main/java/zone/moddev/mc/mmdlib/container/gui/FeatureWrapperGui.java similarity index 81% rename from src/main/java/com/mcmoddev/lib/container/gui/FeatureWrapperGui.java rename to src/main/java/zone/moddev/mc/mmdlib/container/gui/FeatureWrapperGui.java index f062e6c..07bbfb3 100644 --- a/src/main/java/com/mcmoddev/lib/container/gui/FeatureWrapperGui.java +++ b/src/main/java/zone/moddev/mc/mmdlib/container/gui/FeatureWrapperGui.java @@ -1,10 +1,10 @@ -package com.mcmoddev.lib.container.gui; +package zone.moddev.mc.mmdlib.container.gui; import javax.annotation.Nullable; -import com.mcmoddev.lib.container.IWidgetContainer; -import com.mcmoddev.lib.container.gui.layout.SinglePieceWrapper; -import com.mcmoddev.lib.feature.IFeature; -import com.mcmoddev.lib.feature.IFeatureHolder; +import zone.moddev.mc.mmdlib.container.IWidgetContainer; +import zone.moddev.mc.mmdlib.container.gui.layout.SinglePieceWrapper; +import zone.moddev.mc.mmdlib.feature.IFeature; +import zone.moddev.mc.mmdlib.feature.IFeatureHolder; public class FeatureWrapperGui extends SinglePieceWrapper { public FeatureWrapperGui(final GuiContext context, final IFeatureHolder holder, final String featureKey) { @@ -17,7 +17,7 @@ public FeatureWrapperGui(final GuiContext context, final IFeature feature) { public static IWidgetGui extractFeaturePieceSafe(final GuiContext context, final IFeatureHolder holder, final String featureKey) { final IWidgetGui piece = extractFeaturePiece(context, holder, featureKey); - // TODO: put a real missing texture here + // Use a slot background when this feature has no GUI. return (piece == null) ? new SpriteForegroundGui(GuiSprites.MC_SLOT_BACKGROUND) : piece; } @@ -32,7 +32,7 @@ public static IWidgetGui extractFeaturePiece(final GuiContext context, final IFe public static IWidgetGui extractFeaturePieceSafe(final GuiContext context, final IFeature feature) { final IWidgetGui piece = extractFeaturePiece(context, feature); - // TODO: put a real missing texture here + // Use a slot background when this feature has no GUI. return (piece == null) ? new SpriteForegroundGui(GuiSprites.MC_SLOT_BACKGROUND) : piece; } diff --git a/src/main/java/com/mcmoddev/lib/container/gui/FluidWidgetGui.java b/src/main/java/zone/moddev/mc/mmdlib/container/gui/FluidWidgetGui.java similarity index 92% rename from src/main/java/com/mcmoddev/lib/container/gui/FluidWidgetGui.java rename to src/main/java/zone/moddev/mc/mmdlib/container/gui/FluidWidgetGui.java index 2e0983b..b923ba5 100644 --- a/src/main/java/com/mcmoddev/lib/container/gui/FluidWidgetGui.java +++ b/src/main/java/zone/moddev/mc/mmdlib/container/gui/FluidWidgetGui.java @@ -1,10 +1,10 @@ -package com.mcmoddev.lib.container.gui; +package zone.moddev.mc.mmdlib.container.gui; import java.util.function.Supplier; import javax.annotation.Nullable; -import com.mcmoddev.lib.container.gui.sprite.FluidSprite; -import com.mcmoddev.lib.container.gui.util.Size2D; -import com.mcmoddev.lib.util.MathUtils; +import zone.moddev.mc.mmdlib.container.gui.sprite.FluidSprite; +import zone.moddev.mc.mmdlib.container.gui.util.Size2D; +import zone.moddev.mc.mmdlib.util.MathUtils; import net.minecraftforge.fluids.Fluid; public class FluidWidgetGui extends BaseWidgetGui { diff --git a/src/main/java/com/mcmoddev/lib/container/gui/GuiContext.java b/src/main/java/zone/moddev/mc/mmdlib/container/gui/GuiContext.java similarity index 89% rename from src/main/java/com/mcmoddev/lib/container/gui/GuiContext.java rename to src/main/java/zone/moddev/mc/mmdlib/container/gui/GuiContext.java index 7f42761..994d686 100644 --- a/src/main/java/com/mcmoddev/lib/container/gui/GuiContext.java +++ b/src/main/java/zone/moddev/mc/mmdlib/container/gui/GuiContext.java @@ -1,12 +1,12 @@ -package com.mcmoddev.lib.container.gui; +package zone.moddev.mc.mmdlib.container.gui; import java.util.List; import java.util.stream.Collectors; import javax.annotation.Nullable; -import com.mcmoddev.lib.container.IWidgetContainer; -import com.mcmoddev.lib.container.MMDContainer; -import com.mcmoddev.lib.container.widget.IProxiedWidget; -import com.mcmoddev.lib.container.widget.IWidget; +import zone.moddev.mc.mmdlib.container.IWidgetContainer; +import zone.moddev.mc.mmdlib.container.MMDContainer; +import zone.moddev.mc.mmdlib.container.widget.IProxiedWidget; +import zone.moddev.mc.mmdlib.container.widget.IWidget; import net.minecraft.entity.player.EntityPlayer; import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.SideOnly; @@ -19,7 +19,7 @@ public class GuiContext { private final MMDContainer container; private final IWidgetContainer provider; - private MMDGuiContainer guiContainer = null; // too lazy to find a way to make this final + private MMDGuiContainer guiContainer = null; // The GUI is attached after this context is constructed. /** * Initializes a new instance of GuiContext. @@ -35,11 +35,11 @@ public GuiContext(final EntityPlayer player, final MMDContainer container, final /** * Initializes a new instance of GuiContext. + * Implementation note: Only exists on client side. * @param player The player this gui belongs to. * @param container The container of this gui. * @param guiContainer The gui container of this gui. * @param holder The main widget provider. - * @implNote Only exists on client side. */ @SideOnly(Side.CLIENT) public GuiContext(final EntityPlayer player, final MMDContainer container, final MMDGuiContainer guiContainer, final IWidgetContainer holder) { diff --git a/src/main/java/com/mcmoddev/lib/container/gui/GuiPieceLayer.java b/src/main/java/zone/moddev/mc/mmdlib/container/gui/GuiPieceLayer.java similarity index 94% rename from src/main/java/com/mcmoddev/lib/container/gui/GuiPieceLayer.java rename to src/main/java/zone/moddev/mc/mmdlib/container/gui/GuiPieceLayer.java index 015ced9..dc14a6f 100644 --- a/src/main/java/com/mcmoddev/lib/container/gui/GuiPieceLayer.java +++ b/src/main/java/zone/moddev/mc/mmdlib/container/gui/GuiPieceLayer.java @@ -1,4 +1,4 @@ -package com.mcmoddev.lib.container.gui; +package zone.moddev.mc.mmdlib.container.gui; import net.minecraft.client.gui.inventory.GuiContainer; diff --git a/src/main/java/com/mcmoddev/lib/container/gui/GuiSprites.java b/src/main/java/zone/moddev/mc/mmdlib/container/gui/GuiSprites.java similarity index 90% rename from src/main/java/com/mcmoddev/lib/container/gui/GuiSprites.java rename to src/main/java/zone/moddev/mc/mmdlib/container/gui/GuiSprites.java index 8884619..f72c9d2 100644 --- a/src/main/java/com/mcmoddev/lib/container/gui/GuiSprites.java +++ b/src/main/java/zone/moddev/mc/mmdlib/container/gui/GuiSprites.java @@ -1,11 +1,11 @@ -package com.mcmoddev.lib.container.gui; +package zone.moddev.mc.mmdlib.container.gui; public enum GuiSprites implements IGuiSprite { MC_DEMO_BACKGROUND(GuiTextures.MC_DEMO_BACKGROUND, 0, 0, 248, 166), MC_SLOT_BACKGROUND(GuiTextures.MC_GENERIC_54, 7, 17, 18, 18), - MC_BUTTON_DISABLED(GuiTextures.MC_WIDGETS, 0, 46, 200, 20), // TODO: I guess? + MC_BUTTON_DISABLED(GuiTextures.MC_WIDGETS, 0, 46, 200, 20), MC_BUTTON(GuiTextures.MC_WIDGETS, 0, 66, 200, 20), - MC_BUTTON_HOVER(GuiTextures.MC_WIDGETS, 0, 86, 200, 20), // TODO: I guess? + MC_BUTTON_HOVER(GuiTextures.MC_WIDGETS, 0, 86, 200, 20), TANK_CONTAINER(GuiTextures.GUI_BASE, 1, 1, 18, 54), TANK_OVERLAY(GuiTextures.GUI_BASE, 3, 56, 14, 50), diff --git a/src/main/java/com/mcmoddev/lib/container/gui/GuiTextures.java b/src/main/java/zone/moddev/mc/mmdlib/container/gui/GuiTextures.java similarity index 89% rename from src/main/java/com/mcmoddev/lib/container/gui/GuiTextures.java rename to src/main/java/zone/moddev/mc/mmdlib/container/gui/GuiTextures.java index 1242ffa..54d2ffd 100644 --- a/src/main/java/com/mcmoddev/lib/container/gui/GuiTextures.java +++ b/src/main/java/zone/moddev/mc/mmdlib/container/gui/GuiTextures.java @@ -1,6 +1,6 @@ -package com.mcmoddev.lib.container.gui; +package zone.moddev.mc.mmdlib.container.gui; -import com.mcmoddev.lib.MMDLib; +import zone.moddev.mc.mmdlib.MMDLib; import net.minecraft.util.ResourceLocation; public enum GuiTextures implements IGuiTexture { diff --git a/src/main/java/com/mcmoddev/lib/container/gui/IFocusableHandler.java b/src/main/java/zone/moddev/mc/mmdlib/container/gui/IFocusableHandler.java similarity index 93% rename from src/main/java/com/mcmoddev/lib/container/gui/IFocusableHandler.java rename to src/main/java/zone/moddev/mc/mmdlib/container/gui/IFocusableHandler.java index eaed09d..7df0741 100644 --- a/src/main/java/com/mcmoddev/lib/container/gui/IFocusableHandler.java +++ b/src/main/java/zone/moddev/mc/mmdlib/container/gui/IFocusableHandler.java @@ -1,4 +1,4 @@ -package com.mcmoddev.lib.container.gui; +package zone.moddev.mc.mmdlib.container.gui; import javax.annotation.Nullable; diff --git a/src/main/java/com/mcmoddev/lib/container/gui/IFocusableWidgetGui.java b/src/main/java/zone/moddev/mc/mmdlib/container/gui/IFocusableWidgetGui.java similarity index 94% rename from src/main/java/com/mcmoddev/lib/container/gui/IFocusableWidgetGui.java rename to src/main/java/zone/moddev/mc/mmdlib/container/gui/IFocusableWidgetGui.java index 0eb548d..0edc22b 100644 --- a/src/main/java/com/mcmoddev/lib/container/gui/IFocusableWidgetGui.java +++ b/src/main/java/zone/moddev/mc/mmdlib/container/gui/IFocusableWidgetGui.java @@ -1,4 +1,4 @@ -package com.mcmoddev.lib.container.gui; +package zone.moddev.mc.mmdlib.container.gui; /** * Marks a {@link IWidgetGui} as able to receive focus. diff --git a/src/main/java/com/mcmoddev/lib/container/gui/IGuiSprite.java b/src/main/java/zone/moddev/mc/mmdlib/container/gui/IGuiSprite.java similarity index 99% rename from src/main/java/com/mcmoddev/lib/container/gui/IGuiSprite.java rename to src/main/java/zone/moddev/mc/mmdlib/container/gui/IGuiSprite.java index 95016a2..3d06504 100644 --- a/src/main/java/com/mcmoddev/lib/container/gui/IGuiSprite.java +++ b/src/main/java/zone/moddev/mc/mmdlib/container/gui/IGuiSprite.java @@ -1,4 +1,4 @@ -package com.mcmoddev.lib.container.gui; +package zone.moddev.mc.mmdlib.container.gui; import net.minecraft.client.gui.GuiScreen; import net.minecraft.client.renderer.GlStateManager; diff --git a/src/main/java/com/mcmoddev/lib/container/gui/IGuiTexture.java b/src/main/java/zone/moddev/mc/mmdlib/container/gui/IGuiTexture.java similarity index 93% rename from src/main/java/com/mcmoddev/lib/container/gui/IGuiTexture.java rename to src/main/java/zone/moddev/mc/mmdlib/container/gui/IGuiTexture.java index 9ae0689..1fe2182 100644 --- a/src/main/java/com/mcmoddev/lib/container/gui/IGuiTexture.java +++ b/src/main/java/zone/moddev/mc/mmdlib/container/gui/IGuiTexture.java @@ -1,4 +1,4 @@ -package com.mcmoddev.lib.container.gui; +package zone.moddev.mc.mmdlib.container.gui; import net.minecraft.client.Minecraft; import net.minecraft.util.ResourceLocation; diff --git a/src/main/java/com/mcmoddev/lib/container/gui/IWidgetGui.java b/src/main/java/zone/moddev/mc/mmdlib/container/gui/IWidgetGui.java similarity index 72% rename from src/main/java/com/mcmoddev/lib/container/gui/IWidgetGui.java rename to src/main/java/zone/moddev/mc/mmdlib/container/gui/IWidgetGui.java index 5504849..5af1004 100644 --- a/src/main/java/com/mcmoddev/lib/container/gui/IWidgetGui.java +++ b/src/main/java/zone/moddev/mc/mmdlib/container/gui/IWidgetGui.java @@ -1,9 +1,9 @@ -package com.mcmoddev.lib.container.gui; +package zone.moddev.mc.mmdlib.container.gui; import java.util.List; import javax.annotation.Nullable; -import com.mcmoddev.lib.container.gui.util.Padding; -import com.mcmoddev.lib.container.gui.util.Size2D; +import zone.moddev.mc.mmdlib.container.gui.util.Padding; +import zone.moddev.mc.mmdlib.container.gui.util.Size2D; import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.SideOnly; @@ -52,7 +52,7 @@ default boolean rendersInLayer(final GuiPieceLayer layer) { /** * Gets the padding that should be around this widget. - * It's totally up to the containing {@link IWidgetLayout layout} if this is applied or not. + * The containing {@link IWidgetLayout layout} decides whether to apply it. * @return The padding that should be around this widget. */ Padding getPadding(); @@ -66,14 +66,14 @@ default boolean rendersInLayer(final GuiPieceLayer layer) { /** * Specifies if this widget captures mouse click for future mouse click move events. + * Implementation note: Mouse capture and drag dispatch are not implemented by the container. * @return True if this widget captures mouse. False otherwise. - * @implNote NOT YET IMPLEMENTED! */ default boolean capturesMouseOnClick() { return false; } /** - * Called when a mouse clicks happens within the bounds of this widget. - * @param container The container containig this widget. + * Called when a mouse click happens within the bounds of this widget. + * @param container The container containing this widget. * @param mouseX X coordinate of mouse click in local widget coordinates. * @param mouseY Y coordinate of mouse click in local widget coordinates. * @param mouseButton Mouse button being clicked. @@ -82,83 +82,83 @@ default boolean rendersInLayer(final GuiPieceLayer layer) { default boolean mouseClicked(final MMDGuiContainer container, final int mouseX, final int mouseY, final int mouseButton) { return false; } /** - * Called when a mouse clicks move happens within the bounds of this widget. - * @param container The container containig this widget. + * Called when a mouse drag occurs within the bounds of this widget. + * Implementation note: Mouse capture and drag dispatch are not implemented by the container. + * @param container The container containing this widget. * @param mouseX X coordinate of mouse click in local widget coordinates. * @param mouseY Y coordinate of mouse click in local widget coordinates. * @param mouseButton Mouse button being clicked. * @return True if this widget reacted in any way to the mouse click move. False otherwise. - * @implNote NOT YET IMPLEMENTED! */ default boolean mouseClickMove(final MMDGuiContainer container, final int mouseX, final int mouseY, final int mouseButton) { return false; } /** * Called when a mouse button release happens within the bounds of this widget. - * @param container The container containig this widget. + * @param container The container containing this widget. * @param mouseX X coordinate of the mouse cursor in local widget coordinates. * @param mouseY Y coordinate of the mouse cursor in local widget coordinates. - * @param state State?!? + * @param state The mouse button that was released. * @return True if this widget reacted in any way to the mouse release event. False otherwise. */ default boolean mouseReleased(final MMDGuiContainer container, final int mouseX, final int mouseY, final int state) { return false; } /** * Draws the background layer of this widget. - * Only getting called if a call to {@link #rendersInLayer(GuiPieceLayer) renderesInLayer(BACKGROUND)} returns true. + * Called only if a call to {@link #rendersInLayer(GuiPieceLayer) rendersInLayer(BACKGROUND)} returns true. + * Implementation note: Widgets should always render at 0,0 and not care about actual position. + * GL transforms are applied before this call is made. * @param container The container to render on. - * @param partialTicks The partial ticks. (see minecraft documentation/code for a better explanation) + * @param partialTicks Fraction of the current tick elapsed before this frame. * @param mouseX X coordinate of mouse cursor in local widget coordinates. - * @param mouseY X coordinate of mouse cursor in local widget coordinates. - * @implNote Widgets should always render at 0,0 and not care about actual position. - * GL transforms are applied before this call is made. + * @param mouseY Y coordinate of mouse cursor in local widget coordinates. */ default void drawBackgroundLayer(final MMDGuiContainer container, final float partialTicks, final int mouseX, final int mouseY) { - // some widgets might now have a background layer + // some widgets might not have a background layer } /** * Draws the middle layer of this widget. - * Only getting called if a call to {@link #rendersInLayer(GuiPieceLayer) renderesInLayer(MIDDLE)} returns true. + * Called only if a call to {@link #rendersInLayer(GuiPieceLayer) rendersInLayer(MIDDLE)} returns true. + * Implementation note: Widgets should always render at 0,0 and not care about actual position. + * GL transforms are applied before this call is made. * @param container The container to render on. - * @param partialTicks The partial ticks. (see minecraft documentation/code for a better explanation) + * @param partialTicks Fraction of the current tick elapsed before this frame. * @param mouseX X coordinate of mouse cursor in local widget coordinates. - * @param mouseY X coordinate of mouse cursor in local widget coordinates. - * @implNote Widgets should always render at 0,0 and not care about actual position. - * GL transforms are applied before this call is made. + * @param mouseY Y coordinate of mouse cursor in local widget coordinates. */ default void drawMiddleLayer(final MMDGuiContainer container, final float partialTicks, final int mouseX, final int mouseY) { - // some widgets might now have a middle layer + // some widgets might not have a middle layer } /** * Draws the foreground layer of this widget. - * Only getting called if a call to {@link #rendersInLayer(GuiPieceLayer) renderesInLayer(FOREGROUND)} returns true. + * Called only if a call to {@link #rendersInLayer(GuiPieceLayer) rendersInLayer(FOREGROUND)} returns true. + * Implementation note: Widgets should always render at 0,0 and not care about actual position. + * GL transforms are applied before this call is made. * @param container The container to render on. * @param mouseX X coordinate of mouse cursor in local widget coordinates. - * @param mouseY X coordinate of mouse cursor in local widget coordinates. - * @implNote Widgets should always render at 0,0 and not care about actual position. - * GL transforms are applied before this call is made. + * @param mouseY Y coordinate of mouse cursor in local widget coordinates. */ default void drawForegroundLayer(final MMDGuiContainer container, final int mouseX, final int mouseY) { - // some widgets might now have a foreground layer + // some widgets might not have a foreground layer } /** * Draws the top layer of this widget. - * Only getting called if a call to {@link #rendersInLayer(GuiPieceLayer) renderesInLayer(TOP)} returns true. + * Called only if a call to {@link #rendersInLayer(GuiPieceLayer) rendersInLayer(TOP)} returns true. + * Implementation note: Widgets should always render at 0,0 and not care about actual position. + * GL transforms are applied before this call is made. * @param container The container to render on. * @param mouseX X coordinate of mouse cursor in local widget coordinates. - * @param mouseY X coordinate of mouse cursor in local widget coordinates. - * @implNote Widgets should always render at 0,0 and not care about actual position. - * GL transforms are applied before this call is made. + * @param mouseY Y coordinate of mouse cursor in local widget coordinates. */ default void drawForegroundTopLayer(final MMDGuiContainer container, final int mouseX, final int mouseY) { - // some widgets might now have a foreground (top) layer + // some widgets might not have a foreground (top) layer } /** - * Allows the tooltip to provide tooltip lines. Only gets called is mouse is over it. - * @param lines The list of string this widget's tooltip lines should be added to. + * Allows the tooltip to provide tooltip lines. Called only while the mouse is over the widget. + * @param lines The list of strings this widget's tooltip lines should be added to. */ default void getTooltip(final List lines) { // might be no tooltip @@ -166,7 +166,7 @@ default void getTooltip(final List lines) { /** * Returns a flag saying if this widget is visible or not. - * @return True is widget is visible. False otherwise. + * @return True if the widget is visible. False otherwise. */ default boolean isVisible() { return true; } @@ -215,7 +215,7 @@ default Size2D getRenderOffset() { * @param context The gui context this widget lives in. */ default void init(final GuiContext context) { - // should this be a default ? Need an answer on that from Face_of_Cat + } /** @@ -223,7 +223,7 @@ default void init(final GuiContext context) { * @param context The gui context this widget lives in. */ default void postInit(final GuiContext context) { - // should this be a default ? Need an answer on that from Face_of_Cat + } /** @@ -231,6 +231,6 @@ default void postInit(final GuiContext context) { * @param context The gui context this widget lives in. */ default void tick(final GuiContext context) { - // should this be a default ? Need an answer on that from Face_of_Cat + } } diff --git a/src/main/java/com/mcmoddev/lib/container/gui/IWidgetGuiDebugInfo.java b/src/main/java/zone/moddev/mc/mmdlib/container/gui/IWidgetGuiDebugInfo.java similarity index 85% rename from src/main/java/com/mcmoddev/lib/container/gui/IWidgetGuiDebugInfo.java rename to src/main/java/zone/moddev/mc/mmdlib/container/gui/IWidgetGuiDebugInfo.java index f7524cc..854280c 100644 --- a/src/main/java/com/mcmoddev/lib/container/gui/IWidgetGuiDebugInfo.java +++ b/src/main/java/zone/moddev/mc/mmdlib/container/gui/IWidgetGuiDebugInfo.java @@ -1,4 +1,4 @@ -package com.mcmoddev.lib.container.gui; +package zone.moddev.mc.mmdlib.container.gui; /** * Interface used for printing a GUI Tree to the debug logger. diff --git a/src/main/java/com/mcmoddev/lib/container/gui/IWidgetLayout.java b/src/main/java/zone/moddev/mc/mmdlib/container/gui/IWidgetLayout.java similarity index 94% rename from src/main/java/com/mcmoddev/lib/container/gui/IWidgetLayout.java rename to src/main/java/zone/moddev/mc/mmdlib/container/gui/IWidgetLayout.java index b59e5cf..88d851a 100644 --- a/src/main/java/com/mcmoddev/lib/container/gui/IWidgetLayout.java +++ b/src/main/java/zone/moddev/mc/mmdlib/container/gui/IWidgetLayout.java @@ -1,9 +1,9 @@ -package com.mcmoddev.lib.container.gui; +package zone.moddev.mc.mmdlib.container.gui; import java.util.Arrays; import java.util.List; import java.util.stream.Collectors; -import com.mcmoddev.lib.container.gui.util.Size2D; +import zone.moddev.mc.mmdlib.container.gui.util.Size2D; /** * Represents a widget that contains other widgets. diff --git a/src/main/java/com/mcmoddev/lib/container/gui/IWidgetLayoutDebugInfo.java b/src/main/java/zone/moddev/mc/mmdlib/container/gui/IWidgetLayoutDebugInfo.java similarity index 88% rename from src/main/java/com/mcmoddev/lib/container/gui/IWidgetLayoutDebugInfo.java rename to src/main/java/zone/moddev/mc/mmdlib/container/gui/IWidgetLayoutDebugInfo.java index 523e026..e8423f4 100644 --- a/src/main/java/com/mcmoddev/lib/container/gui/IWidgetLayoutDebugInfo.java +++ b/src/main/java/zone/moddev/mc/mmdlib/container/gui/IWidgetLayoutDebugInfo.java @@ -1,4 +1,4 @@ -package com.mcmoddev.lib.container.gui; +package zone.moddev.mc.mmdlib.container.gui; /** * Interface used to print debug info of a widget layout. diff --git a/src/main/java/com/mcmoddev/lib/container/gui/ImageButtonWidgetGui.java b/src/main/java/zone/moddev/mc/mmdlib/container/gui/ImageButtonWidgetGui.java similarity index 87% rename from src/main/java/com/mcmoddev/lib/container/gui/ImageButtonWidgetGui.java rename to src/main/java/zone/moddev/mc/mmdlib/container/gui/ImageButtonWidgetGui.java index 7967683..520f9ef 100644 --- a/src/main/java/com/mcmoddev/lib/container/gui/ImageButtonWidgetGui.java +++ b/src/main/java/zone/moddev/mc/mmdlib/container/gui/ImageButtonWidgetGui.java @@ -1,6 +1,6 @@ -package com.mcmoddev.lib.container.gui; +package zone.moddev.mc.mmdlib.container.gui; -import com.mcmoddev.lib.container.gui.util.Size2D; +import zone.moddev.mc.mmdlib.container.gui.util.Size2D; public class ImageButtonWidgetGui extends BaseButtonWidgetGui { private IGuiSprite sprite; diff --git a/src/main/java/com/mcmoddev/lib/container/gui/InventoryGrid.java b/src/main/java/zone/moddev/mc/mmdlib/container/gui/InventoryGrid.java similarity index 91% rename from src/main/java/com/mcmoddev/lib/container/gui/InventoryGrid.java rename to src/main/java/zone/moddev/mc/mmdlib/container/gui/InventoryGrid.java index 4609ba1..bc7cef9 100644 --- a/src/main/java/com/mcmoddev/lib/container/gui/InventoryGrid.java +++ b/src/main/java/zone/moddev/mc/mmdlib/container/gui/InventoryGrid.java @@ -1,13 +1,13 @@ -package com.mcmoddev.lib.container.gui; +package zone.moddev.mc.mmdlib.container.gui; import java.util.Arrays; import java.util.List; import java.util.Objects; import java.util.stream.Collectors; -import com.mcmoddev.lib.container.IContainerSlot; -import com.mcmoddev.lib.container.gui.layout.BaseGridLayout; -import com.mcmoddev.lib.container.gui.util.Size2D; -import com.mcmoddev.lib.util.GuiUtils; +import zone.moddev.mc.mmdlib.container.IContainerSlot; +import zone.moddev.mc.mmdlib.container.gui.layout.BaseGridLayout; +import zone.moddev.mc.mmdlib.container.gui.util.Size2D; +import zone.moddev.mc.mmdlib.util.GuiUtils; import net.minecraft.inventory.Slot; public class InventoryGrid extends BaseGridLayout { diff --git a/src/main/java/com/mcmoddev/lib/container/gui/LabelWidgetGui.java b/src/main/java/zone/moddev/mc/mmdlib/container/gui/LabelWidgetGui.java similarity index 95% rename from src/main/java/com/mcmoddev/lib/container/gui/LabelWidgetGui.java rename to src/main/java/zone/moddev/mc/mmdlib/container/gui/LabelWidgetGui.java index 906cdfa..e3c7738 100644 --- a/src/main/java/com/mcmoddev/lib/container/gui/LabelWidgetGui.java +++ b/src/main/java/zone/moddev/mc/mmdlib/container/gui/LabelWidgetGui.java @@ -1,8 +1,8 @@ -package com.mcmoddev.lib.container.gui; +package zone.moddev.mc.mmdlib.container.gui; import java.awt.Color; -import com.mcmoddev.lib.container.gui.util.Size2D; -import com.mcmoddev.lib.container.widget.DataWidget; +import zone.moddev.mc.mmdlib.container.gui.util.Size2D; +import zone.moddev.mc.mmdlib.container.widget.DataWidget; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.FontRenderer; diff --git a/src/main/java/com/mcmoddev/lib/container/gui/MMDGuiContainer.java b/src/main/java/zone/moddev/mc/mmdlib/container/gui/MMDGuiContainer.java similarity index 94% rename from src/main/java/com/mcmoddev/lib/container/gui/MMDGuiContainer.java rename to src/main/java/zone/moddev/mc/mmdlib/container/gui/MMDGuiContainer.java index 55cbc20..6da70fb 100644 --- a/src/main/java/com/mcmoddev/lib/container/gui/MMDGuiContainer.java +++ b/src/main/java/zone/moddev/mc/mmdlib/container/gui/MMDGuiContainer.java @@ -1,18 +1,18 @@ -package com.mcmoddev.lib.container.gui; +package zone.moddev.mc.mmdlib.container.gui; import java.io.IOException; import java.util.ArrayList; import java.util.List; import javax.annotation.Nullable; -import com.mcmoddev.lib.MMDLib; -import com.mcmoddev.lib.container.IWidgetContainer; -import com.mcmoddev.lib.container.MMDContainer; -import com.mcmoddev.lib.container.gui.layout.BaseLayout; -import com.mcmoddev.lib.container.gui.util.Padding; -import com.mcmoddev.lib.container.gui.util.Size2D; -import com.mcmoddev.lib.container.gui.util.TexturedRectangleRenderer; -import com.mcmoddev.lib.container.gui.util.WidgetGuiIterable; -import com.mcmoddev.lib.container.widget.IWidget; +import zone.moddev.mc.mmdlib.MMDLib; +import zone.moddev.mc.mmdlib.container.IWidgetContainer; +import zone.moddev.mc.mmdlib.container.MMDContainer; +import zone.moddev.mc.mmdlib.container.gui.layout.BaseLayout; +import zone.moddev.mc.mmdlib.container.gui.util.Padding; +import zone.moddev.mc.mmdlib.container.gui.util.Size2D; +import zone.moddev.mc.mmdlib.container.gui.util.TexturedRectangleRenderer; +import zone.moddev.mc.mmdlib.container.gui.util.WidgetGuiIterable; +import zone.moddev.mc.mmdlib.container.widget.IWidget; import org.apache.logging.log4j.util.TriConsumer; import org.lwjgl.input.Keyboard; import net.minecraft.client.gui.FontRenderer; @@ -130,15 +130,12 @@ public void updateScreen() { } private void logRootPiece() { - // TODO: make it a special widget gui for this + if (this.rootPiece == null) { MMDLib.logger.info("GUI Opened WITHOUT a root piece."); return; } -// MMDLib.logger.info("GUI Opened with:"); -// this.logPiece(null, this.rootPiece, 0); -// MMDLib.logger.info("End of GUI tree."); } private void logPiece(@Nullable final IWidgetLayout layout, final IWidgetGui piece, final int level) { @@ -222,7 +219,7 @@ protected void drawGuiContainerBackgroundLayer(final float partialTicks, final i final IGuiSprite sprite = this.getBackgroundSprite(); if (sprite != null) { // assume the background sprite is the same size as the container - // TODO: consider adding a 'stretch' method to sprites + // Draw the supplied sprite at its native size. sprite.draw(this, 0, 0); } else { TexturedRectangleRenderer.drawOnGUI(this, GuiSprites.MC_DEMO_BACKGROUND, 5, 1, this.guiLeft, this.guiTop, this.xSize, this.ySize); diff --git a/src/main/java/com/mcmoddev/lib/container/gui/SlotGuiWidget.java b/src/main/java/zone/moddev/mc/mmdlib/container/gui/SlotGuiWidget.java similarity index 86% rename from src/main/java/com/mcmoddev/lib/container/gui/SlotGuiWidget.java rename to src/main/java/zone/moddev/mc/mmdlib/container/gui/SlotGuiWidget.java index c037ded..695704d 100644 --- a/src/main/java/com/mcmoddev/lib/container/gui/SlotGuiWidget.java +++ b/src/main/java/zone/moddev/mc/mmdlib/container/gui/SlotGuiWidget.java @@ -1,4 +1,4 @@ -package com.mcmoddev.lib.container.gui; +package zone.moddev.mc.mmdlib.container.gui; import net.minecraft.inventory.Slot; diff --git a/src/main/java/com/mcmoddev/lib/container/gui/SpriteBackgroundGui.java b/src/main/java/zone/moddev/mc/mmdlib/container/gui/SpriteBackgroundGui.java similarity index 88% rename from src/main/java/com/mcmoddev/lib/container/gui/SpriteBackgroundGui.java rename to src/main/java/zone/moddev/mc/mmdlib/container/gui/SpriteBackgroundGui.java index 7abe7a8..6292d98 100644 --- a/src/main/java/com/mcmoddev/lib/container/gui/SpriteBackgroundGui.java +++ b/src/main/java/zone/moddev/mc/mmdlib/container/gui/SpriteBackgroundGui.java @@ -1,6 +1,6 @@ -package com.mcmoddev.lib.container.gui; +package zone.moddev.mc.mmdlib.container.gui; -import com.mcmoddev.lib.container.gui.util.Size2D; +import zone.moddev.mc.mmdlib.container.gui.util.Size2D; import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.SideOnly; diff --git a/src/main/java/com/mcmoddev/lib/container/gui/SpriteForegroundGui.java b/src/main/java/zone/moddev/mc/mmdlib/container/gui/SpriteForegroundGui.java similarity index 88% rename from src/main/java/com/mcmoddev/lib/container/gui/SpriteForegroundGui.java rename to src/main/java/zone/moddev/mc/mmdlib/container/gui/SpriteForegroundGui.java index d86e82f..36a7c3a 100644 --- a/src/main/java/com/mcmoddev/lib/container/gui/SpriteForegroundGui.java +++ b/src/main/java/zone/moddev/mc/mmdlib/container/gui/SpriteForegroundGui.java @@ -1,6 +1,6 @@ -package com.mcmoddev.lib.container.gui; +package zone.moddev.mc.mmdlib.container.gui; -import com.mcmoddev.lib.container.gui.util.Size2D; +import zone.moddev.mc.mmdlib.container.gui.util.Size2D; import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.SideOnly; diff --git a/src/main/java/com/mcmoddev/lib/container/gui/TextButtonWidgetGui.java b/src/main/java/zone/moddev/mc/mmdlib/container/gui/TextButtonWidgetGui.java similarity index 85% rename from src/main/java/com/mcmoddev/lib/container/gui/TextButtonWidgetGui.java rename to src/main/java/zone/moddev/mc/mmdlib/container/gui/TextButtonWidgetGui.java index 8244eb1..8938bcc 100644 --- a/src/main/java/com/mcmoddev/lib/container/gui/TextButtonWidgetGui.java +++ b/src/main/java/zone/moddev/mc/mmdlib/container/gui/TextButtonWidgetGui.java @@ -1,6 +1,6 @@ -package com.mcmoddev.lib.container.gui; +package zone.moddev.mc.mmdlib.container.gui; -import com.mcmoddev.lib.container.gui.util.Size2D; +import zone.moddev.mc.mmdlib.container.gui.util.Size2D; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.FontRenderer; @@ -17,9 +17,7 @@ public TextButtonWidgetGui(String text, int width) { this.text = text; } - // TODO: add font - // TODO: add color - // TODO: add font scale? + // Button labels use Minecraft's default font at its native scale. //#region RENDER diff --git a/src/main/java/com/mcmoddev/lib/container/gui/TextEditWidgetGui.java b/src/main/java/zone/moddev/mc/mmdlib/container/gui/TextEditWidgetGui.java similarity index 91% rename from src/main/java/com/mcmoddev/lib/container/gui/TextEditWidgetGui.java rename to src/main/java/zone/moddev/mc/mmdlib/container/gui/TextEditWidgetGui.java index 483c45f..157621e 100644 --- a/src/main/java/com/mcmoddev/lib/container/gui/TextEditWidgetGui.java +++ b/src/main/java/zone/moddev/mc/mmdlib/container/gui/TextEditWidgetGui.java @@ -1,17 +1,16 @@ -package com.mcmoddev.lib.container.gui; +package zone.moddev.mc.mmdlib.container.gui; -import com.mcmoddev.lib.MMDLib; -import com.mcmoddev.lib.container.widget.ActionTextWidget; -import com.mcmoddev.lib.container.widget.ActionWidget; -import com.mcmoddev.lib.container.widget.DataWidget; +import zone.moddev.mc.mmdlib.MMDLib; +import zone.moddev.mc.mmdlib.container.widget.ActionTextWidget; +import zone.moddev.mc.mmdlib.container.widget.ActionWidget; +import zone.moddev.mc.mmdlib.container.widget.DataWidget; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.GuiTextField; import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.SideOnly; -// TODO: find a way to make a base class for this and Label public class TextEditWidgetGui extends BaseWidgetGui implements IFocusableWidgetGui { - public static final int DEFAULT_HEIGHT = 18; // Minecraft.getMinecraft().fontRenderer.FONT_HEIGHT + 4; + public static final int DEFAULT_HEIGHT = 18; private final GuiTextField textField; diff --git a/src/main/java/com/mcmoddev/lib/container/gui/layout/BaseGridLayout.java b/src/main/java/zone/moddev/mc/mmdlib/container/gui/layout/BaseGridLayout.java similarity index 91% rename from src/main/java/com/mcmoddev/lib/container/gui/layout/BaseGridLayout.java rename to src/main/java/zone/moddev/mc/mmdlib/container/gui/layout/BaseGridLayout.java index 188edd3..c2e22ac 100644 --- a/src/main/java/com/mcmoddev/lib/container/gui/layout/BaseGridLayout.java +++ b/src/main/java/zone/moddev/mc/mmdlib/container/gui/layout/BaseGridLayout.java @@ -1,20 +1,20 @@ -package com.mcmoddev.lib.container.gui.layout; +package zone.moddev.mc.mmdlib.container.gui.layout; import java.util.List; import java.util.Map; import java.util.stream.Collectors; import com.google.common.collect.Lists; import com.google.common.collect.Maps; -import com.mcmoddev.lib.container.gui.IWidgetGui; -import com.mcmoddev.lib.container.gui.IWidgetLayoutDebugInfo; -import com.mcmoddev.lib.container.gui.util.Padding; -import com.mcmoddev.lib.container.gui.util.Size2D; +import zone.moddev.mc.mmdlib.container.gui.IWidgetGui; +import zone.moddev.mc.mmdlib.container.gui.IWidgetLayoutDebugInfo; +import zone.moddev.mc.mmdlib.container.gui.util.Padding; +import zone.moddev.mc.mmdlib.container.gui.util.Size2D; import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.SideOnly; @SideOnly(Side.CLIENT) public abstract class BaseGridLayout extends BaseLayout implements IWidgetLayoutDebugInfo { - // TODO: add piece align in the cell + // Children are centered within their allocated cells. protected class GridPieceInfo { public final IWidgetGui piece; @@ -124,8 +124,8 @@ private Size2D getSize(final IWidgetGui piece) { @Override public Size2D getChildPosition(final IWidgetGui child) { if (!this.piecesMap.containsKey(child)) { - // not our piece?!? - // TODO: consider crashing? + + // An unregistered child has no layout position. return Size2D.ZERO; } @@ -138,7 +138,7 @@ public Size2D getChildPosition(final IWidgetGui child) { final Size2D pieceSize = this.getSize(info.piece); - // TODO: add more than just centered rendering + // Center the child within its spanned cells. final int renderLeft = left + (width - pieceSize.width) / 2; final int renderTop = top + (height - pieceSize.height) / 2; diff --git a/src/main/java/com/mcmoddev/lib/container/gui/layout/BaseLayout.java b/src/main/java/zone/moddev/mc/mmdlib/container/gui/layout/BaseLayout.java similarity index 90% rename from src/main/java/com/mcmoddev/lib/container/gui/layout/BaseLayout.java rename to src/main/java/zone/moddev/mc/mmdlib/container/gui/layout/BaseLayout.java index 90133ea..6d2985a 100644 --- a/src/main/java/com/mcmoddev/lib/container/gui/layout/BaseLayout.java +++ b/src/main/java/zone/moddev/mc/mmdlib/container/gui/layout/BaseLayout.java @@ -1,14 +1,14 @@ -package com.mcmoddev.lib.container.gui.layout; +package zone.moddev.mc.mmdlib.container.gui.layout; import java.util.Arrays; import javax.annotation.Nullable; -import com.mcmoddev.lib.container.gui.GuiPieceLayer; -import com.mcmoddev.lib.container.gui.IWidgetGui; -import com.mcmoddev.lib.container.gui.IWidgetGuiDebugInfo; -import com.mcmoddev.lib.container.gui.IWidgetLayout; -import com.mcmoddev.lib.container.gui.MMDGuiContainer; -import com.mcmoddev.lib.container.gui.util.Padding; -import com.mcmoddev.lib.container.gui.util.Size2D; +import zone.moddev.mc.mmdlib.container.gui.GuiPieceLayer; +import zone.moddev.mc.mmdlib.container.gui.IWidgetGui; +import zone.moddev.mc.mmdlib.container.gui.IWidgetGuiDebugInfo; +import zone.moddev.mc.mmdlib.container.gui.IWidgetLayout; +import zone.moddev.mc.mmdlib.container.gui.MMDGuiContainer; +import zone.moddev.mc.mmdlib.container.gui.util.Padding; +import zone.moddev.mc.mmdlib.container.gui.util.Size2D; import org.apache.logging.log4j.util.TriConsumer; import net.minecraft.client.renderer.GlStateManager; import net.minecraftforge.fml.relauncher.Side; @@ -112,7 +112,7 @@ public void drawForegroundTopLayer(MMDGuiContainer container, int mouseX, int mo }); } - // TODO: maybe find a better TriConsumer + // Translate drawing and mouse coordinates into the child's local space. protected void renderPiece(IWidgetGui piece, int mouseX, int mouseY, TriConsumer renderer) { try { GlStateManager.pushMatrix(); diff --git a/src/main/java/com/mcmoddev/lib/container/gui/layout/CanvasLayout.java b/src/main/java/zone/moddev/mc/mmdlib/container/gui/layout/CanvasLayout.java similarity index 88% rename from src/main/java/com/mcmoddev/lib/container/gui/layout/CanvasLayout.java rename to src/main/java/zone/moddev/mc/mmdlib/container/gui/layout/CanvasLayout.java index 83fb35c..e5f6a7a 100644 --- a/src/main/java/com/mcmoddev/lib/container/gui/layout/CanvasLayout.java +++ b/src/main/java/zone/moddev/mc/mmdlib/container/gui/layout/CanvasLayout.java @@ -1,13 +1,13 @@ -package com.mcmoddev.lib.container.gui.layout; +package zone.moddev.mc.mmdlib.container.gui.layout; import java.util.List; import java.util.Map; import java.util.stream.Collectors; import com.google.common.collect.Lists; import com.google.common.collect.Maps; -import com.mcmoddev.lib.container.gui.IWidgetGui; -import com.mcmoddev.lib.container.gui.IWidgetLayoutDebugInfo; -import com.mcmoddev.lib.container.gui.util.Size2D; +import zone.moddev.mc.mmdlib.container.gui.IWidgetGui; +import zone.moddev.mc.mmdlib.container.gui.IWidgetLayoutDebugInfo; +import zone.moddev.mc.mmdlib.container.gui.util.Size2D; import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.SideOnly; @@ -58,8 +58,8 @@ public Size2D getSize() { @Override public Size2D getChildPosition(IWidgetGui child) { if (!this.piecesMap.containsKey(child)) { - // not our piece?!? - // TODO: consider crashing? + + // An unregistered child has no layout position. return Size2D.ZERO; } diff --git a/src/main/java/com/mcmoddev/lib/container/gui/layout/GridLayout.java b/src/main/java/zone/moddev/mc/mmdlib/container/gui/layout/GridLayout.java similarity index 83% rename from src/main/java/com/mcmoddev/lib/container/gui/layout/GridLayout.java rename to src/main/java/zone/moddev/mc/mmdlib/container/gui/layout/GridLayout.java index 49fe9ed..62ea13d 100644 --- a/src/main/java/com/mcmoddev/lib/container/gui/layout/GridLayout.java +++ b/src/main/java/zone/moddev/mc/mmdlib/container/gui/layout/GridLayout.java @@ -1,8 +1,8 @@ -package com.mcmoddev.lib.container.gui.layout; +package zone.moddev.mc.mmdlib.container.gui.layout; -import com.mcmoddev.lib.container.gui.IWidgetGui; -import com.mcmoddev.lib.container.gui.IWidgetLayoutDebugInfo; -import com.mcmoddev.lib.container.gui.util.Size2D; +import zone.moddev.mc.mmdlib.container.gui.IWidgetGui; +import zone.moddev.mc.mmdlib.container.gui.IWidgetLayoutDebugInfo; +import zone.moddev.mc.mmdlib.container.gui.util.Size2D; import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.SideOnly; diff --git a/src/main/java/com/mcmoddev/lib/container/gui/layout/HorizontalStackLayout.java b/src/main/java/zone/moddev/mc/mmdlib/container/gui/layout/HorizontalStackLayout.java similarity index 88% rename from src/main/java/com/mcmoddev/lib/container/gui/layout/HorizontalStackLayout.java rename to src/main/java/zone/moddev/mc/mmdlib/container/gui/layout/HorizontalStackLayout.java index e072f7f..1357157 100644 --- a/src/main/java/com/mcmoddev/lib/container/gui/layout/HorizontalStackLayout.java +++ b/src/main/java/zone/moddev/mc/mmdlib/container/gui/layout/HorizontalStackLayout.java @@ -1,11 +1,11 @@ -package com.mcmoddev.lib.container.gui.layout; +package zone.moddev.mc.mmdlib.container.gui.layout; import java.util.List; import com.google.common.collect.Lists; -import com.mcmoddev.lib.container.gui.IWidgetGui; -import com.mcmoddev.lib.container.gui.IWidgetLayoutDebugInfo; -import com.mcmoddev.lib.container.gui.util.Padding; -import com.mcmoddev.lib.container.gui.util.Size2D; +import zone.moddev.mc.mmdlib.container.gui.IWidgetGui; +import zone.moddev.mc.mmdlib.container.gui.IWidgetLayoutDebugInfo; +import zone.moddev.mc.mmdlib.container.gui.util.Padding; +import zone.moddev.mc.mmdlib.container.gui.util.Size2D; import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.SideOnly; diff --git a/src/main/java/com/mcmoddev/lib/container/gui/layout/SinglePieceWrapper.java b/src/main/java/zone/moddev/mc/mmdlib/container/gui/layout/SinglePieceWrapper.java similarity index 85% rename from src/main/java/com/mcmoddev/lib/container/gui/layout/SinglePieceWrapper.java rename to src/main/java/zone/moddev/mc/mmdlib/container/gui/layout/SinglePieceWrapper.java index 81841d7..5d4440b 100644 --- a/src/main/java/com/mcmoddev/lib/container/gui/layout/SinglePieceWrapper.java +++ b/src/main/java/zone/moddev/mc/mmdlib/container/gui/layout/SinglePieceWrapper.java @@ -1,10 +1,10 @@ -package com.mcmoddev.lib.container.gui.layout; +package zone.moddev.mc.mmdlib.container.gui.layout; import java.util.List; import com.google.common.collect.Lists; -import com.mcmoddev.lib.container.gui.IWidgetGui; -import com.mcmoddev.lib.container.gui.util.Padding; -import com.mcmoddev.lib.container.gui.util.Size2D; +import zone.moddev.mc.mmdlib.container.gui.IWidgetGui; +import zone.moddev.mc.mmdlib.container.gui.util.Padding; +import zone.moddev.mc.mmdlib.container.gui.util.Size2D; import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.SideOnly; diff --git a/src/main/java/com/mcmoddev/lib/container/gui/layout/VerticalStackLayout.java b/src/main/java/zone/moddev/mc/mmdlib/container/gui/layout/VerticalStackLayout.java similarity index 86% rename from src/main/java/com/mcmoddev/lib/container/gui/layout/VerticalStackLayout.java rename to src/main/java/zone/moddev/mc/mmdlib/container/gui/layout/VerticalStackLayout.java index fb99cf8..bd69de1 100644 --- a/src/main/java/com/mcmoddev/lib/container/gui/layout/VerticalStackLayout.java +++ b/src/main/java/zone/moddev/mc/mmdlib/container/gui/layout/VerticalStackLayout.java @@ -1,11 +1,11 @@ -package com.mcmoddev.lib.container.gui.layout; +package zone.moddev.mc.mmdlib.container.gui.layout; import java.util.List; import com.google.common.collect.Lists; -import com.mcmoddev.lib.container.gui.IWidgetGui; -import com.mcmoddev.lib.container.gui.IWidgetLayoutDebugInfo; -import com.mcmoddev.lib.container.gui.util.Padding; -import com.mcmoddev.lib.container.gui.util.Size2D; +import zone.moddev.mc.mmdlib.container.gui.IWidgetGui; +import zone.moddev.mc.mmdlib.container.gui.IWidgetLayoutDebugInfo; +import zone.moddev.mc.mmdlib.container.gui.util.Padding; +import zone.moddev.mc.mmdlib.container.gui.util.Size2D; import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.SideOnly; @@ -68,7 +68,7 @@ public Size2D getChildPosition(IWidgetGui child) { } if (!found) { - // TODO: maybe crash? + // An unregistered child has no layout position. return Size2D.ZERO; } diff --git a/src/main/java/zone/moddev/mc/mmdlib/container/gui/layout/package-info.java b/src/main/java/zone/moddev/mc/mmdlib/container/gui/layout/package-info.java new file mode 100644 index 0000000..58eb226 --- /dev/null +++ b/src/main/java/zone/moddev/mc/mmdlib/container/gui/layout/package-info.java @@ -0,0 +1,6 @@ +@ParametersAreNonnullByDefault +@MethodsReturnNonnullByDefault +package zone.moddev.mc.mmdlib.container.gui.layout; + +import javax.annotation.ParametersAreNonnullByDefault; +import mcp.MethodsReturnNonnullByDefault; diff --git a/src/main/java/com/mcmoddev/lib/container/gui/util/package-info.java b/src/main/java/zone/moddev/mc/mmdlib/container/gui/package-info.java similarity index 78% rename from src/main/java/com/mcmoddev/lib/container/gui/util/package-info.java rename to src/main/java/zone/moddev/mc/mmdlib/container/gui/package-info.java index 56ad306..a2ed831 100644 --- a/src/main/java/com/mcmoddev/lib/container/gui/util/package-info.java +++ b/src/main/java/zone/moddev/mc/mmdlib/container/gui/package-info.java @@ -1,6 +1,6 @@ @ParametersAreNonnullByDefault @MethodsReturnNonnullByDefault -package com.mcmoddev.lib.container.gui.util; +package zone.moddev.mc.mmdlib.container.gui; import javax.annotation.ParametersAreNonnullByDefault; import mcp.MethodsReturnNonnullByDefault; diff --git a/src/main/java/com/mcmoddev/lib/container/gui/sprite/FluidSprite.java b/src/main/java/zone/moddev/mc/mmdlib/container/gui/sprite/FluidSprite.java similarity index 95% rename from src/main/java/com/mcmoddev/lib/container/gui/sprite/FluidSprite.java rename to src/main/java/zone/moddev/mc/mmdlib/container/gui/sprite/FluidSprite.java index b9fd5ad..24c14cd 100644 --- a/src/main/java/com/mcmoddev/lib/container/gui/sprite/FluidSprite.java +++ b/src/main/java/zone/moddev/mc/mmdlib/container/gui/sprite/FluidSprite.java @@ -1,8 +1,8 @@ -package com.mcmoddev.lib.container.gui.sprite; +package zone.moddev.mc.mmdlib.container.gui.sprite; import java.awt.Color; -import com.mcmoddev.lib.container.gui.IGuiSprite; -import com.mcmoddev.lib.container.gui.IGuiTexture; +import zone.moddev.mc.mmdlib.container.gui.IGuiSprite; +import zone.moddev.mc.mmdlib.container.gui.IGuiTexture; import org.lwjgl.opengl.GL11; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.GuiScreen; @@ -55,7 +55,7 @@ public IGuiTexture getTexture() { @Override public boolean needsAlpha() { - // TODO: test fluid + // Fluid sprites currently use the opaque rendering path. return false; } diff --git a/src/main/java/com/mcmoddev/lib/container/gui/sprite/MinecraftStitchedTextures.java b/src/main/java/zone/moddev/mc/mmdlib/container/gui/sprite/MinecraftStitchedTextures.java similarity index 84% rename from src/main/java/com/mcmoddev/lib/container/gui/sprite/MinecraftStitchedTextures.java rename to src/main/java/zone/moddev/mc/mmdlib/container/gui/sprite/MinecraftStitchedTextures.java index a2e1fb2..6b62cf6 100644 --- a/src/main/java/com/mcmoddev/lib/container/gui/sprite/MinecraftStitchedTextures.java +++ b/src/main/java/zone/moddev/mc/mmdlib/container/gui/sprite/MinecraftStitchedTextures.java @@ -1,6 +1,6 @@ -package com.mcmoddev.lib.container.gui.sprite; +package zone.moddev.mc.mmdlib.container.gui.sprite; -import com.mcmoddev.lib.container.gui.IGuiTexture; +import zone.moddev.mc.mmdlib.container.gui.IGuiTexture; import net.minecraft.client.renderer.texture.TextureMap; import net.minecraft.util.ResourceLocation; diff --git a/src/main/java/zone/moddev/mc/mmdlib/container/gui/sprite/package-info.java b/src/main/java/zone/moddev/mc/mmdlib/container/gui/sprite/package-info.java new file mode 100644 index 0000000..073c696 --- /dev/null +++ b/src/main/java/zone/moddev/mc/mmdlib/container/gui/sprite/package-info.java @@ -0,0 +1,6 @@ +@ParametersAreNonnullByDefault +@MethodsReturnNonnullByDefault +package zone.moddev.mc.mmdlib.container.gui.sprite; + +import javax.annotation.ParametersAreNonnullByDefault; +import mcp.MethodsReturnNonnullByDefault; diff --git a/src/main/java/com/mcmoddev/lib/container/gui/util/Padding.java b/src/main/java/zone/moddev/mc/mmdlib/container/gui/util/Padding.java similarity index 97% rename from src/main/java/com/mcmoddev/lib/container/gui/util/Padding.java rename to src/main/java/zone/moddev/mc/mmdlib/container/gui/util/Padding.java index 93b6c0b..50db887 100644 --- a/src/main/java/com/mcmoddev/lib/container/gui/util/Padding.java +++ b/src/main/java/zone/moddev/mc/mmdlib/container/gui/util/Padding.java @@ -1,6 +1,6 @@ -package com.mcmoddev.lib.container.gui.util; +package zone.moddev.mc.mmdlib.container.gui.util; -import com.mcmoddev.lib.container.gui.IWidgetGui; +import zone.moddev.mc.mmdlib.container.gui.IWidgetGui; /** * Represents the padding around a {@link IWidgetGui}. diff --git a/src/main/java/com/mcmoddev/lib/container/gui/util/Size2D.java b/src/main/java/zone/moddev/mc/mmdlib/container/gui/util/Size2D.java similarity index 95% rename from src/main/java/com/mcmoddev/lib/container/gui/util/Size2D.java rename to src/main/java/zone/moddev/mc/mmdlib/container/gui/util/Size2D.java index 8dd32be..1611c90 100644 --- a/src/main/java/com/mcmoddev/lib/container/gui/util/Size2D.java +++ b/src/main/java/zone/moddev/mc/mmdlib/container/gui/util/Size2D.java @@ -1,4 +1,4 @@ -package com.mcmoddev.lib.container.gui.util; +package zone.moddev.mc.mmdlib.container.gui.util; /** * Stores a 2D size. diff --git a/src/main/java/com/mcmoddev/lib/container/gui/util/TexturedRectangleRenderer.java b/src/main/java/zone/moddev/mc/mmdlib/container/gui/util/TexturedRectangleRenderer.java similarity index 97% rename from src/main/java/com/mcmoddev/lib/container/gui/util/TexturedRectangleRenderer.java rename to src/main/java/zone/moddev/mc/mmdlib/container/gui/util/TexturedRectangleRenderer.java index 0cb1645..0f3eae3 100644 --- a/src/main/java/com/mcmoddev/lib/container/gui/util/TexturedRectangleRenderer.java +++ b/src/main/java/zone/moddev/mc/mmdlib/container/gui/util/TexturedRectangleRenderer.java @@ -1,6 +1,6 @@ -package com.mcmoddev.lib.container.gui.util; +package zone.moddev.mc.mmdlib.container.gui.util; -import com.mcmoddev.lib.container.gui.IGuiSprite; +import zone.moddev.mc.mmdlib.container.gui.IGuiSprite; import net.minecraft.client.gui.GuiScreen; import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.SideOnly; @@ -51,7 +51,7 @@ public static void drawOnGUI(final GuiScreen screen, final IGuiSprite sprite, fi */ @SideOnly(Side.CLIENT) public static void drawOnGUI(final GuiScreen screen, final IGuiSprite sprite, final int borderSize, final int overlap, final int left, final int top, final int width, final int height) { - // TODO: optimize/cache the following computations + final int innerWidth = sprite.getWidth() - borderSize * 2; final int innerHeight = sprite.getHeight() - borderSize * 2; diff --git a/src/main/java/com/mcmoddev/lib/container/gui/util/WidgetGuiIterable.java b/src/main/java/zone/moddev/mc/mmdlib/container/gui/util/WidgetGuiIterable.java similarity index 91% rename from src/main/java/com/mcmoddev/lib/container/gui/util/WidgetGuiIterable.java rename to src/main/java/zone/moddev/mc/mmdlib/container/gui/util/WidgetGuiIterable.java index df79bf8..cf34728 100644 --- a/src/main/java/com/mcmoddev/lib/container/gui/util/WidgetGuiIterable.java +++ b/src/main/java/zone/moddev/mc/mmdlib/container/gui/util/WidgetGuiIterable.java @@ -1,11 +1,11 @@ -package com.mcmoddev.lib.container.gui.util; +package zone.moddev.mc.mmdlib.container.gui.util; import java.util.Deque; import java.util.Iterator; import java.util.function.Consumer; import com.google.common.collect.Queues; -import com.mcmoddev.lib.container.gui.IWidgetGui; -import com.mcmoddev.lib.container.gui.IWidgetLayout; +import zone.moddev.mc.mmdlib.container.gui.IWidgetGui; +import zone.moddev.mc.mmdlib.container.gui.IWidgetLayout; /** * Iterable implementation used to enumerate the entire sub-tree of an {@link IWidgetGui}. diff --git a/src/main/java/zone/moddev/mc/mmdlib/container/gui/util/package-info.java b/src/main/java/zone/moddev/mc/mmdlib/container/gui/util/package-info.java new file mode 100644 index 0000000..e3c41f1 --- /dev/null +++ b/src/main/java/zone/moddev/mc/mmdlib/container/gui/util/package-info.java @@ -0,0 +1,6 @@ +@ParametersAreNonnullByDefault +@MethodsReturnNonnullByDefault +package zone.moddev.mc.mmdlib.container.gui.util; + +import javax.annotation.ParametersAreNonnullByDefault; +import mcp.MethodsReturnNonnullByDefault; diff --git a/src/main/java/com/mcmoddev/lib/container/gui/package-info.java b/src/main/java/zone/moddev/mc/mmdlib/container/package-info.java similarity index 79% rename from src/main/java/com/mcmoddev/lib/container/gui/package-info.java rename to src/main/java/zone/moddev/mc/mmdlib/container/package-info.java index 51be9eb..acde245 100644 --- a/src/main/java/com/mcmoddev/lib/container/gui/package-info.java +++ b/src/main/java/zone/moddev/mc/mmdlib/container/package-info.java @@ -1,6 +1,6 @@ @ParametersAreNonnullByDefault @MethodsReturnNonnullByDefault -package com.mcmoddev.lib.container.gui; +package zone.moddev.mc.mmdlib.container; import javax.annotation.ParametersAreNonnullByDefault; import mcp.MethodsReturnNonnullByDefault; diff --git a/src/main/java/com/mcmoddev/lib/container/slot/BaseContainerSlot.java b/src/main/java/zone/moddev/mc/mmdlib/container/slot/BaseContainerSlot.java similarity index 95% rename from src/main/java/com/mcmoddev/lib/container/slot/BaseContainerSlot.java rename to src/main/java/zone/moddev/mc/mmdlib/container/slot/BaseContainerSlot.java index d8fb697..a8028f1 100644 --- a/src/main/java/com/mcmoddev/lib/container/slot/BaseContainerSlot.java +++ b/src/main/java/zone/moddev/mc/mmdlib/container/slot/BaseContainerSlot.java @@ -1,6 +1,6 @@ -package com.mcmoddev.lib.container.slot; +package zone.moddev.mc.mmdlib.container.slot; -import com.mcmoddev.lib.container.IContainerSlot; +import zone.moddev.mc.mmdlib.container.IContainerSlot; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Container; import net.minecraft.inventory.Slot; diff --git a/src/main/java/com/mcmoddev/lib/container/slot/FilteredSlot.java b/src/main/java/zone/moddev/mc/mmdlib/container/slot/FilteredSlot.java similarity index 72% rename from src/main/java/com/mcmoddev/lib/container/slot/FilteredSlot.java rename to src/main/java/zone/moddev/mc/mmdlib/container/slot/FilteredSlot.java index 99bbdd2..4b93de6 100644 --- a/src/main/java/com/mcmoddev/lib/container/slot/FilteredSlot.java +++ b/src/main/java/zone/moddev/mc/mmdlib/container/slot/FilteredSlot.java @@ -1,8 +1,8 @@ -package com.mcmoddev.lib.container.slot; +package zone.moddev.mc.mmdlib.container.slot; import javax.annotation.Nonnull; import javax.annotation.Nullable; -import com.mcmoddev.lib.inventory.IFilteredItemHandler; +import zone.moddev.mc.mmdlib.inventory.IFilteredItemHandler; import net.minecraft.item.ItemStack; import net.minecraftforge.items.IItemHandler; import net.minecraftforge.items.SlotItemHandler; @@ -29,16 +29,6 @@ public FilteredSlot(final IItemHandler itemHandler, @Nullable final IFilteredIte this.filterInventory = filterInventory; } -// @Override -// public boolean canTakeStack(final EntityPlayer playerIn) { -// boolean canTake = true; -// if (this.getItemHandler() instanceof IFilteredItemHandler) { -// final ItemStack stack = this.getStack(); -// canTake = stack.isEmpty() || ((IFilteredItemHandler)this.getItemHandler()).canExtractItem(this.index, stack.getCount()); -// } -// return canTake && super.canTakeStack(playerIn); -// } - @Override public boolean isItemValid(@Nonnull final ItemStack stack) { boolean isValid = true; diff --git a/src/main/java/com/mcmoddev/lib/container/slot/ItemStackHandlerSlot.java b/src/main/java/zone/moddev/mc/mmdlib/container/slot/ItemStackHandlerSlot.java similarity index 92% rename from src/main/java/com/mcmoddev/lib/container/slot/ItemStackHandlerSlot.java rename to src/main/java/zone/moddev/mc/mmdlib/container/slot/ItemStackHandlerSlot.java index 8607c78..e25412a 100644 --- a/src/main/java/com/mcmoddev/lib/container/slot/ItemStackHandlerSlot.java +++ b/src/main/java/zone/moddev/mc/mmdlib/container/slot/ItemStackHandlerSlot.java @@ -1,10 +1,10 @@ -package com.mcmoddev.lib.container.slot; +package zone.moddev.mc.mmdlib.container.slot; import java.util.List; import javax.annotation.Nullable; import com.google.common.collect.Lists; -import com.mcmoddev.lib.container.IContainerSlot; -import com.mcmoddev.lib.inventory.IFilteredItemHandler; +import zone.moddev.mc.mmdlib.container.IContainerSlot; +import zone.moddev.mc.mmdlib.inventory.IFilteredItemHandler; import net.minecraft.inventory.Slot; import net.minecraftforge.items.IItemHandler; import net.minecraftforge.items.IItemHandlerModifiable; diff --git a/src/main/java/com/mcmoddev/lib/container/slot/PlayerInventorySlot.java b/src/main/java/zone/moddev/mc/mmdlib/container/slot/PlayerInventorySlot.java similarity index 91% rename from src/main/java/com/mcmoddev/lib/container/slot/PlayerInventorySlot.java rename to src/main/java/zone/moddev/mc/mmdlib/container/slot/PlayerInventorySlot.java index 1fb655d..db1292d 100644 --- a/src/main/java/com/mcmoddev/lib/container/slot/PlayerInventorySlot.java +++ b/src/main/java/zone/moddev/mc/mmdlib/container/slot/PlayerInventorySlot.java @@ -1,9 +1,9 @@ -package com.mcmoddev.lib.container.slot; +package zone.moddev.mc.mmdlib.container.slot; import java.util.List; import com.google.common.collect.Lists; -import com.mcmoddev.lib.container.IContainerSlot; -import com.mcmoddev.lib.container.PlayerInventory; +import zone.moddev.mc.mmdlib.container.IContainerSlot; +import zone.moddev.mc.mmdlib.container.PlayerInventory; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Slot; diff --git a/src/main/java/zone/moddev/mc/mmdlib/container/slot/package-info.java b/src/main/java/zone/moddev/mc/mmdlib/container/slot/package-info.java new file mode 100644 index 0000000..6e07ab2 --- /dev/null +++ b/src/main/java/zone/moddev/mc/mmdlib/container/slot/package-info.java @@ -0,0 +1,6 @@ +@ParametersAreNonnullByDefault +@MethodsReturnNonnullByDefault +package zone.moddev.mc.mmdlib.container.slot; + +import javax.annotation.ParametersAreNonnullByDefault; +import mcp.MethodsReturnNonnullByDefault; diff --git a/src/main/java/com/mcmoddev/lib/container/widget/ActionIntWidget.java b/src/main/java/zone/moddev/mc/mmdlib/container/widget/ActionIntWidget.java similarity index 95% rename from src/main/java/com/mcmoddev/lib/container/widget/ActionIntWidget.java rename to src/main/java/zone/moddev/mc/mmdlib/container/widget/ActionIntWidget.java index 484688b..bee380b 100644 --- a/src/main/java/com/mcmoddev/lib/container/widget/ActionIntWidget.java +++ b/src/main/java/zone/moddev/mc/mmdlib/container/widget/ActionIntWidget.java @@ -1,8 +1,8 @@ -package com.mcmoddev.lib.container.widget; +package zone.moddev.mc.mmdlib.container.widget; import java.util.function.IntConsumer; import javax.annotation.Nullable; -import com.mcmoddev.lib.util.NBTUtils; +import zone.moddev.mc.mmdlib.util.NBTUtils; import net.minecraft.nbt.NBTTagCompound; import net.minecraftforge.common.util.Constants; import net.minecraftforge.fml.relauncher.Side; @@ -39,8 +39,8 @@ public int getValue() { /** * Sets the value currently stored in this widget. + * Implementation note: This method should only be called on server side. * @param value The value to be stored in this widget. - * @implNote This method should only be called on server side. */ public void setValue(final int value) { if (value == this.value) { diff --git a/src/main/java/com/mcmoddev/lib/container/widget/ActionTextWidget.java b/src/main/java/zone/moddev/mc/mmdlib/container/widget/ActionTextWidget.java similarity index 94% rename from src/main/java/com/mcmoddev/lib/container/widget/ActionTextWidget.java rename to src/main/java/zone/moddev/mc/mmdlib/container/widget/ActionTextWidget.java index b171bf7..85e594d 100644 --- a/src/main/java/com/mcmoddev/lib/container/widget/ActionTextWidget.java +++ b/src/main/java/zone/moddev/mc/mmdlib/container/widget/ActionTextWidget.java @@ -1,4 +1,4 @@ -package com.mcmoddev.lib.container.widget; +package zone.moddev.mc.mmdlib.container.widget; import java.util.function.Consumer; import javax.annotation.Nullable; @@ -38,8 +38,8 @@ public String getText() { /** * Sets the text currently stored in this widget. + * Implementation note: This method should only be called on server side. * @param text The text to be stored in this widget. - * @implNote This method should only be called on server side. */ public void setText(@Nullable final String text) { if (((text == null) && (this.text == null)) || ((this.text != null) && this.text.equals(text))) { @@ -49,7 +49,7 @@ public void setText(@Nullable final String text) { this.text = text; this.setDirty(); - // TODO: maybe handle this method being called on client side. + // Call this on the server; client edits are sent through the action callback. } /** diff --git a/src/main/java/com/mcmoddev/lib/container/widget/ActionWidget.java b/src/main/java/zone/moddev/mc/mmdlib/container/widget/ActionWidget.java similarity index 95% rename from src/main/java/com/mcmoddev/lib/container/widget/ActionWidget.java rename to src/main/java/zone/moddev/mc/mmdlib/container/widget/ActionWidget.java index 7b0b0f3..7549c0f 100644 --- a/src/main/java/com/mcmoddev/lib/container/widget/ActionWidget.java +++ b/src/main/java/zone/moddev/mc/mmdlib/container/widget/ActionWidget.java @@ -1,10 +1,10 @@ -package com.mcmoddev.lib.container.widget; +package zone.moddev.mc.mmdlib.container.widget; import java.util.function.BiConsumer; import java.util.function.Consumer; -import com.mcmoddev.lib.container.gui.GuiContext; -import com.mcmoddev.lib.network.NBTBasedPlayerMessage; -import com.mcmoddev.lib.util.NBTUtils; +import zone.moddev.mc.mmdlib.container.gui.GuiContext; +import zone.moddev.mc.mmdlib.network.NBTBasedPlayerMessage; +import zone.moddev.mc.mmdlib.util.NBTUtils; import net.minecraft.client.Minecraft; import net.minecraft.nbt.NBTTagCompound; import net.minecraftforge.common.util.Constants; diff --git a/src/main/java/com/mcmoddev/lib/container/widget/BaseContextualWidget.java b/src/main/java/zone/moddev/mc/mmdlib/container/widget/BaseContextualWidget.java similarity index 93% rename from src/main/java/com/mcmoddev/lib/container/widget/BaseContextualWidget.java rename to src/main/java/zone/moddev/mc/mmdlib/container/widget/BaseContextualWidget.java index 73a140c..faa8b59 100644 --- a/src/main/java/com/mcmoddev/lib/container/widget/BaseContextualWidget.java +++ b/src/main/java/zone/moddev/mc/mmdlib/container/widget/BaseContextualWidget.java @@ -1,7 +1,7 @@ -package com.mcmoddev.lib.container.widget; +package zone.moddev.mc.mmdlib.container.widget; import javax.annotation.Nullable; -import com.mcmoddev.lib.container.gui.GuiContext; +import zone.moddev.mc.mmdlib.container.gui.GuiContext; import net.minecraft.entity.player.EntityPlayer; /** diff --git a/src/main/java/com/mcmoddev/lib/container/widget/BaseWidget.java b/src/main/java/zone/moddev/mc/mmdlib/container/widget/BaseWidget.java similarity index 87% rename from src/main/java/com/mcmoddev/lib/container/widget/BaseWidget.java rename to src/main/java/zone/moddev/mc/mmdlib/container/widget/BaseWidget.java index 0e37f0f..07c67ef 100644 --- a/src/main/java/com/mcmoddev/lib/container/widget/BaseWidget.java +++ b/src/main/java/zone/moddev/mc/mmdlib/container/widget/BaseWidget.java @@ -1,4 +1,4 @@ -package com.mcmoddev.lib.container.widget; +package zone.moddev.mc.mmdlib.container.widget; /** * Base implementation of an {@link IWidget}. @@ -10,8 +10,8 @@ public abstract class BaseWidget implements IWidget { /** * Initializes a new instance of BaseWidget. + * Implementation note: This will create an widget that can never become dirty. Only use this for widgets that only container static data. * @param key The key that uniquely identified this widget. - * @implNote This will create an widget that can never become dirty. Only use this for widgets that only container static data. */ protected BaseWidget(final String key) { this(key, true); diff --git a/src/main/java/com/mcmoddev/lib/container/widget/DataWidget.java b/src/main/java/zone/moddev/mc/mmdlib/container/widget/DataWidget.java similarity index 97% rename from src/main/java/com/mcmoddev/lib/container/widget/DataWidget.java rename to src/main/java/zone/moddev/mc/mmdlib/container/widget/DataWidget.java index 0f66553..2c38e94 100644 --- a/src/main/java/com/mcmoddev/lib/container/widget/DataWidget.java +++ b/src/main/java/zone/moddev/mc/mmdlib/container/widget/DataWidget.java @@ -1,4 +1,4 @@ -package com.mcmoddev.lib.container.widget; +package zone.moddev.mc.mmdlib.container.widget; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; @@ -14,10 +14,10 @@ import java.util.Map; import java.util.function.BiFunction; import javax.annotation.Nullable; -import com.mcmoddev.lib.MMDLib; -import com.mcmoddev.lib.container.IContainerSlot; -import com.mcmoddev.lib.container.gui.GuiContext; -import com.mcmoddev.lib.util.NBTUtils; +import zone.moddev.mc.mmdlib.MMDLib; +import zone.moddev.mc.mmdlib.container.IContainerSlot; +import zone.moddev.mc.mmdlib.container.gui.GuiContext; +import zone.moddev.mc.mmdlib.util.NBTUtils; import org.apache.commons.lang3.StringUtils; import org.apache.logging.log4j.util.TriConsumer; import net.minecraft.nbt.NBTTagCompound; @@ -109,9 +109,9 @@ protected DataWidget(final String key) { /** * Sets the value of a data field. + * Implementation note: Method will have no effect if key is not found or value type doesn't match. * @param valueKey The key of the data field. * @param value The value to be set to. - * @implNote Method will have no effect if key is not found or value type doesn't match. */ public void setValue(final String valueKey, final Object value) { for(final DataHandler handler: this.dataHandlers) { @@ -451,7 +451,7 @@ public void deserializeNBT(final NBTTagCompound nbt) { public ActionTextWidget getStringUpdateActionWidget(final String widgetKey, final String dataKey) { final DataHandler rawHandler = this.dataHandlers.stream().filter(w -> w.getProviderKey().equals(dataKey)).findFirst().orElse(null); if ((rawHandler == null) || !(rawHandler instanceof StringHandler)) { - // TODO: consider throwing an error + // Only string-backed fields can create an editable text widget. return null; } final StringHandler handler = (StringHandler)rawHandler; diff --git a/src/main/java/com/mcmoddev/lib/container/widget/IContextualWidget.java b/src/main/java/zone/moddev/mc/mmdlib/container/widget/IContextualWidget.java similarity index 82% rename from src/main/java/com/mcmoddev/lib/container/widget/IContextualWidget.java rename to src/main/java/zone/moddev/mc/mmdlib/container/widget/IContextualWidget.java index 862653d..f73cde5 100644 --- a/src/main/java/com/mcmoddev/lib/container/widget/IContextualWidget.java +++ b/src/main/java/zone/moddev/mc/mmdlib/container/widget/IContextualWidget.java @@ -1,7 +1,7 @@ -package com.mcmoddev.lib.container.widget; +package zone.moddev.mc.mmdlib.container.widget; import javax.annotation.Nullable; -import com.mcmoddev.lib.container.gui.GuiContext; +import zone.moddev.mc.mmdlib.container.gui.GuiContext; /** * Represents a widget that needs access to the gui context it lives in. diff --git a/src/main/java/com/mcmoddev/lib/container/widget/IProxiedWidget.java b/src/main/java/zone/moddev/mc/mmdlib/container/widget/IProxiedWidget.java similarity index 85% rename from src/main/java/com/mcmoddev/lib/container/widget/IProxiedWidget.java rename to src/main/java/zone/moddev/mc/mmdlib/container/widget/IProxiedWidget.java index 4e32beb..5dd4408 100644 --- a/src/main/java/com/mcmoddev/lib/container/widget/IProxiedWidget.java +++ b/src/main/java/zone/moddev/mc/mmdlib/container/widget/IProxiedWidget.java @@ -1,4 +1,4 @@ -package com.mcmoddev.lib.container.widget; +package zone.moddev.mc.mmdlib.container.widget; /** * Represents a widget that was created as a specific widget for a gui context. diff --git a/src/main/java/com/mcmoddev/lib/container/widget/IProxyWidget.java b/src/main/java/zone/moddev/mc/mmdlib/container/widget/IProxyWidget.java similarity index 83% rename from src/main/java/com/mcmoddev/lib/container/widget/IProxyWidget.java rename to src/main/java/zone/moddev/mc/mmdlib/container/widget/IProxyWidget.java index 48e69ba..094932c 100644 --- a/src/main/java/com/mcmoddev/lib/container/widget/IProxyWidget.java +++ b/src/main/java/zone/moddev/mc/mmdlib/container/widget/IProxyWidget.java @@ -1,6 +1,6 @@ -package com.mcmoddev.lib.container.widget; +package zone.moddev.mc.mmdlib.container.widget; -import com.mcmoddev.lib.container.gui.GuiContext; +import zone.moddev.mc.mmdlib.container.gui.GuiContext; /** * Represents a generic widget that will provide a specific widget for each gui context. diff --git a/src/main/java/com/mcmoddev/lib/container/widget/IWidget.java b/src/main/java/zone/moddev/mc/mmdlib/container/widget/IWidget.java similarity index 77% rename from src/main/java/com/mcmoddev/lib/container/widget/IWidget.java rename to src/main/java/zone/moddev/mc/mmdlib/container/widget/IWidget.java index dd87d26..abb3ae1 100644 --- a/src/main/java/com/mcmoddev/lib/container/widget/IWidget.java +++ b/src/main/java/zone/moddev/mc/mmdlib/container/widget/IWidget.java @@ -1,9 +1,9 @@ -package com.mcmoddev.lib.container.widget; +package zone.moddev.mc.mmdlib.container.widget; import java.util.Collection; import javax.annotation.Nullable; import com.google.common.collect.Lists; -import com.mcmoddev.lib.container.IContainerSlot; +import zone.moddev.mc.mmdlib.container.IContainerSlot; import net.minecraft.nbt.NBTTagCompound; import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.SideOnly; @@ -19,19 +19,19 @@ public interface IWidget { /** * Only need to override in case this widget provides Slots. + * Implementation note: The position on the slots is not relevant here. They will be positioned by the corresponding Widget Gui. + * Implementation note: The slots should be created on every call of this method and not be cached. * @return The list of slots exposed by this widget. - * @implNote The position on the slots is not relevant here. They will be positioned by the corresponding Widget Gui. - * @implNote The slots should be created on every call of this method and not be cached. */ - // TODO: sounds stupid... but... minecraft! + default Collection getSlots() { return Lists.newArrayList(); } /** * Provides a value telling the container if this widget needs to be updated on client thread. + * Implementation note: Only called on server thread. * @return Returns {@code true} if this widget has information to be sent to client thread. - * @implNote Only called on server thread. */ default boolean isDirty() { return false; } @@ -43,23 +43,23 @@ default void resetDirtyFlag() {} /** * Called on server thread to get update information to be sent to client. * Only called if {@link #isDirty} returns true. + * Implementation note: Only called on server thread. * @return The compound containing information to be sent to client or null if no such information is required. - * @implNote Only called on server thread. */ @Nullable default NBTTagCompound getUpdateCompound() { return null; } /** * Called on server thread with data received from client. + * Implementation note: Only called on server thread. * @param tag The compound received from the client thread. - * @implNote Only called on server thread. */ default void handleMessageFromClient(final NBTTagCompound tag) {} /** * Called on client thread to handle update data from server thread. + * Implementation note: Only called on client thread. * @param tag The compound received from the server thread. - * @implNote Only called on client thread. */ @SideOnly(Side.CLIENT) default void handleMessageFromServer(final NBTTagCompound tag) {} diff --git a/src/main/java/com/mcmoddev/lib/container/widget/ItemStackHandlerWidget.java b/src/main/java/zone/moddev/mc/mmdlib/container/widget/ItemStackHandlerWidget.java similarity index 86% rename from src/main/java/com/mcmoddev/lib/container/widget/ItemStackHandlerWidget.java rename to src/main/java/zone/moddev/mc/mmdlib/container/widget/ItemStackHandlerWidget.java index 73d6ba0..8af6f2e 100644 --- a/src/main/java/com/mcmoddev/lib/container/widget/ItemStackHandlerWidget.java +++ b/src/main/java/zone/moddev/mc/mmdlib/container/widget/ItemStackHandlerWidget.java @@ -1,12 +1,12 @@ -package com.mcmoddev.lib.container.widget; +package zone.moddev.mc.mmdlib.container.widget; import java.util.Collection; import java.util.List; import javax.annotation.Nullable; import com.google.common.collect.Lists; -import com.mcmoddev.lib.container.IContainerSlot; -import com.mcmoddev.lib.container.slot.ItemStackHandlerSlot; -import com.mcmoddev.lib.inventory.IFilteredItemHandler; +import zone.moddev.mc.mmdlib.container.IContainerSlot; +import zone.moddev.mc.mmdlib.container.slot.ItemStackHandlerSlot; +import zone.moddev.mc.mmdlib.inventory.IFilteredItemHandler; import net.minecraftforge.items.IItemHandlerModifiable; /** diff --git a/src/main/java/com/mcmoddev/lib/container/widget/PlayerInventoryWidget.java b/src/main/java/zone/moddev/mc/mmdlib/container/widget/PlayerInventoryWidget.java similarity index 86% rename from src/main/java/com/mcmoddev/lib/container/widget/PlayerInventoryWidget.java rename to src/main/java/zone/moddev/mc/mmdlib/container/widget/PlayerInventoryWidget.java index 741a04b..9ac1249 100644 --- a/src/main/java/com/mcmoddev/lib/container/widget/PlayerInventoryWidget.java +++ b/src/main/java/zone/moddev/mc/mmdlib/container/widget/PlayerInventoryWidget.java @@ -1,11 +1,11 @@ -package com.mcmoddev.lib.container.widget; +package zone.moddev.mc.mmdlib.container.widget; import java.util.Collection; import java.util.List; import com.google.common.collect.Lists; -import com.mcmoddev.lib.container.IContainerSlot; -import com.mcmoddev.lib.container.PlayerInventory; -import com.mcmoddev.lib.container.slot.PlayerInventorySlot; +import zone.moddev.mc.mmdlib.container.IContainerSlot; +import zone.moddev.mc.mmdlib.container.PlayerInventory; +import zone.moddev.mc.mmdlib.container.slot.PlayerInventorySlot; import net.minecraft.entity.player.EntityPlayer; /** diff --git a/src/main/java/zone/moddev/mc/mmdlib/container/widget/package-info.java b/src/main/java/zone/moddev/mc/mmdlib/container/widget/package-info.java new file mode 100644 index 0000000..6ef6dc0 --- /dev/null +++ b/src/main/java/zone/moddev/mc/mmdlib/container/widget/package-info.java @@ -0,0 +1,6 @@ +@ParametersAreNonnullByDefault +@MethodsReturnNonnullByDefault +package zone.moddev.mc.mmdlib.container.widget; + +import javax.annotation.ParametersAreNonnullByDefault; +import mcp.MethodsReturnNonnullByDefault; diff --git a/src/main/java/com/mcmoddev/lib/crafttweaker/CrusherRecipeAddAction.java b/src/main/java/zone/moddev/mc/mmdlib/crafttweaker/CrusherRecipeAddAction.java similarity index 86% rename from src/main/java/com/mcmoddev/lib/crafttweaker/CrusherRecipeAddAction.java rename to src/main/java/zone/moddev/mc/mmdlib/crafttweaker/CrusherRecipeAddAction.java index 2a5a2a6..26ad0be 100644 --- a/src/main/java/com/mcmoddev/lib/crafttweaker/CrusherRecipeAddAction.java +++ b/src/main/java/zone/moddev/mc/mmdlib/crafttweaker/CrusherRecipeAddAction.java @@ -1,8 +1,8 @@ -package com.mcmoddev.lib.crafttweaker; +package zone.moddev.mc.mmdlib.crafttweaker; import javax.annotation.Nullable; -import com.mcmoddev.lib.registry.CrusherRecipeRegistry; +import zone.moddev.mc.mmdlib.registry.CrusherRecipeRegistry; import crafttweaker.IAction; @@ -11,12 +11,12 @@ public class CrusherRecipeAddAction implements IAction { private final ItemStack input; private final ItemStack output; - + public CrusherRecipeAddAction(ItemStack input, @Nullable ItemStack output) { this.input = input; this.output = output; } - + @Override public void apply() { CrusherRecipeRegistry.addNewCrusherRecipe(this.input, this.output); diff --git a/src/main/java/com/mcmoddev/lib/crafttweaker/CrusherRecipeRemoveAction.java b/src/main/java/zone/moddev/mc/mmdlib/crafttweaker/CrusherRecipeRemoveAction.java similarity index 91% rename from src/main/java/com/mcmoddev/lib/crafttweaker/CrusherRecipeRemoveAction.java rename to src/main/java/zone/moddev/mc/mmdlib/crafttweaker/CrusherRecipeRemoveAction.java index 92f8d6e..76a1708 100644 --- a/src/main/java/com/mcmoddev/lib/crafttweaker/CrusherRecipeRemoveAction.java +++ b/src/main/java/zone/moddev/mc/mmdlib/crafttweaker/CrusherRecipeRemoveAction.java @@ -1,9 +1,9 @@ -package com.mcmoddev.lib.crafttweaker; +package zone.moddev.mc.mmdlib.crafttweaker; import javax.annotation.Nullable; -import com.mcmoddev.lib.registry.CrusherRecipeRegistry; -import com.mcmoddev.lib.registry.recipe.ICrusherRecipe; +import zone.moddev.mc.mmdlib.registry.CrusherRecipeRegistry; +import zone.moddev.mc.mmdlib.registry.recipe.ICrusherRecipe; import crafttweaker.CraftTweakerAPI; import crafttweaker.IAction; diff --git a/src/main/java/com/mcmoddev/lib/crafttweaker/CrusherRecipes.java b/src/main/java/zone/moddev/mc/mmdlib/crafttweaker/CrusherRecipes.java similarity index 95% rename from src/main/java/com/mcmoddev/lib/crafttweaker/CrusherRecipes.java rename to src/main/java/zone/moddev/mc/mmdlib/crafttweaker/CrusherRecipes.java index 75a3a58..6db0fbe 100644 --- a/src/main/java/com/mcmoddev/lib/crafttweaker/CrusherRecipes.java +++ b/src/main/java/zone/moddev/mc/mmdlib/crafttweaker/CrusherRecipes.java @@ -1,4 +1,4 @@ -package com.mcmoddev.lib.crafttweaker; +package zone.moddev.mc.mmdlib.crafttweaker; import java.util.LinkedList; import java.util.List; @@ -19,16 +19,16 @@ @ZenRegister public class CrusherRecipes { private static final List actions = new LinkedList<>(); - + private CrusherRecipes() { - // private constructor + } @ZenMethod public static void remove(final IOreDictEntry input, @Optional @Nullable final IItemStack output) { input.getItems().stream().forEach( it -> remove(it, output) ); } - + @ZenMethod public static void remove(final IItemStack input, @Optional @Nullable final IItemStack output) { actions.add(new CrusherRecipeRemoveAction(CraftTweakerMC.getItemStack(input), CraftTweakerMC.getItemStack(output))); @@ -38,12 +38,12 @@ public static void remove(final IItemStack input, @Optional @Nullable final IIte public static void add(final IItemStack output, final IOreDictEntry input) { input.getItems().stream().forEach( it -> add(it, output) ); } - + @ZenMethod public static void add(final IItemStack output, final IItemStack input) { actions.add(new CrusherRecipeAddAction(CraftTweakerMC.getItemStack(input), CraftTweakerMC.getItemStack(output))); } - + public static void loadComplete() { actions.stream().forEach(CraftTweakerAPI::apply); } diff --git a/src/main/java/zone/moddev/mc/mmdlib/crafttweaker/package-info.java b/src/main/java/zone/moddev/mc/mmdlib/crafttweaker/package-info.java new file mode 100644 index 0000000..9fabe0a --- /dev/null +++ b/src/main/java/zone/moddev/mc/mmdlib/crafttweaker/package-info.java @@ -0,0 +1,4 @@ +@ParametersAreNonnullByDefault +package zone.moddev.mc.mmdlib.crafttweaker; + +import javax.annotation.ParametersAreNonnullByDefault; diff --git a/src/main/java/com/mcmoddev/lib/data/ConfigKeys.java b/src/main/java/zone/moddev/mc/mmdlib/data/ConfigKeys.java similarity index 98% rename from src/main/java/com/mcmoddev/lib/data/ConfigKeys.java rename to src/main/java/zone/moddev/mc/mmdlib/data/ConfigKeys.java index eb7ad9e..04517b9 100644 --- a/src/main/java/com/mcmoddev/lib/data/ConfigKeys.java +++ b/src/main/java/zone/moddev/mc/mmdlib/data/ConfigKeys.java @@ -1,4 +1,4 @@ -package com.mcmoddev.lib.data; +package zone.moddev.mc.mmdlib.data; public class ConfigKeys { diff --git a/src/main/java/com/mcmoddev/lib/data/MaterialNames.java b/src/main/java/zone/moddev/mc/mmdlib/data/MaterialNames.java similarity index 95% rename from src/main/java/com/mcmoddev/lib/data/MaterialNames.java rename to src/main/java/zone/moddev/mc/mmdlib/data/MaterialNames.java index dc1ed8a..00ebdf1 100644 --- a/src/main/java/com/mcmoddev/lib/data/MaterialNames.java +++ b/src/main/java/zone/moddev/mc/mmdlib/data/MaterialNames.java @@ -1,4 +1,4 @@ -package com.mcmoddev.lib.data; +package zone.moddev.mc.mmdlib.data; public class MaterialNames { public static final String COAL = "coal"; diff --git a/src/main/java/com/mcmoddev/lib/data/MaterialStats.java b/src/main/java/zone/moddev/mc/mmdlib/data/MaterialStats.java old mode 100755 new mode 100644 similarity index 94% rename from src/main/java/com/mcmoddev/lib/data/MaterialStats.java rename to src/main/java/zone/moddev/mc/mmdlib/data/MaterialStats.java index 7d994aa..ddb93a8 --- a/src/main/java/com/mcmoddev/lib/data/MaterialStats.java +++ b/src/main/java/zone/moddev/mc/mmdlib/data/MaterialStats.java @@ -1,4 +1,4 @@ -package com.mcmoddev.lib.data; +package zone.moddev.mc.mmdlib.data; import java.util.Locale; import java.util.TreeMap; @@ -47,11 +47,6 @@ public String getName() { return this.name().toLowerCase(Locale.ROOT); } - /** - * - * @param ordinal - * @return - */ public static MaterialStats getType(@Nonnull int ordinal) { if ((ordinal > values().length) || (ordinal < 0)) { ordinal = 0; diff --git a/src/main/java/com/mcmoddev/lib/data/NameToken.java b/src/main/java/zone/moddev/mc/mmdlib/data/NameToken.java similarity index 87% rename from src/main/java/com/mcmoddev/lib/data/NameToken.java rename to src/main/java/zone/moddev/mc/mmdlib/data/NameToken.java index ef8c052..dae8dd2 100644 --- a/src/main/java/com/mcmoddev/lib/data/NameToken.java +++ b/src/main/java/zone/moddev/mc/mmdlib/data/NameToken.java @@ -1,36 +1,36 @@ -package com.mcmoddev.lib.data; +package zone.moddev.mc.mmdlib.data; import java.util.UUID; -import com.mcmoddev.lib.util.Version5UUID; +import zone.moddev.mc.mmdlib.util.Version5UUID; public class NameToken { private final UUID uuid; private final String origData; - + public NameToken(Names name) { this(name.toString()); } - + public NameToken(String name) { this.uuid = Version5UUID.mmdlibUUID(name); this.origData = name; } - + @Override public String toString() { return String.format("V5UUID@%s", this.uuid); } - + @Override public int hashCode() { return this.uuid.hashCode(); } - + public String asString() { return this.origData; } - + @Override public boolean equals(Object other) { if (!(other instanceof NameToken)) return false; diff --git a/src/main/java/com/mcmoddev/lib/data/NameTokens.java b/src/main/java/zone/moddev/mc/mmdlib/data/NameTokens.java similarity index 99% rename from src/main/java/com/mcmoddev/lib/data/NameTokens.java rename to src/main/java/zone/moddev/mc/mmdlib/data/NameTokens.java index 6cbbac5..b83980a 100644 --- a/src/main/java/com/mcmoddev/lib/data/NameTokens.java +++ b/src/main/java/zone/moddev/mc/mmdlib/data/NameTokens.java @@ -1,4 +1,4 @@ -package com.mcmoddev.lib.data; +package zone.moddev.mc.mmdlib.data; public class NameTokens { public static final NameToken ARROW = new NameToken(Names.ARROW); diff --git a/src/main/java/com/mcmoddev/lib/data/Names.java b/src/main/java/zone/moddev/mc/mmdlib/data/Names.java old mode 100755 new mode 100644 similarity index 94% rename from src/main/java/com/mcmoddev/lib/data/Names.java rename to src/main/java/zone/moddev/mc/mmdlib/data/Names.java index e339e32..5d24a75 --- a/src/main/java/com/mcmoddev/lib/data/Names.java +++ b/src/main/java/zone/moddev/mc/mmdlib/data/Names.java @@ -1,4 +1,4 @@ -package com.mcmoddev.lib.data; +package zone.moddev.mc.mmdlib.data; import java.util.Locale; import java.util.TreeMap; @@ -44,11 +44,6 @@ public String getName() { return this.name(); } - /** - * - * @param ordinal - * @return - */ public static Names getType(@Nonnull int ordinal) { if ((ordinal > values().length) || (ordinal < 0)) { ordinal = 0; diff --git a/src/main/java/com/mcmoddev/lib/data/SharedStrings.java b/src/main/java/zone/moddev/mc/mmdlib/data/SharedStrings.java similarity index 96% rename from src/main/java/com/mcmoddev/lib/data/SharedStrings.java rename to src/main/java/zone/moddev/mc/mmdlib/data/SharedStrings.java index 5977c37..4aa1cca 100644 --- a/src/main/java/com/mcmoddev/lib/data/SharedStrings.java +++ b/src/main/java/zone/moddev/mc/mmdlib/data/SharedStrings.java @@ -1,4 +1,4 @@ -package com.mcmoddev.lib.data; +package zone.moddev.mc.mmdlib.data; public class SharedStrings { diff --git a/src/main/java/com/mcmoddev/lib/entity/package-info.java b/src/main/java/zone/moddev/mc/mmdlib/data/package-info.java similarity index 70% rename from src/main/java/com/mcmoddev/lib/entity/package-info.java rename to src/main/java/zone/moddev/mc/mmdlib/data/package-info.java index 7d01481..1d6b6f0 100644 --- a/src/main/java/com/mcmoddev/lib/entity/package-info.java +++ b/src/main/java/zone/moddev/mc/mmdlib/data/package-info.java @@ -1,4 +1,4 @@ @ParametersAreNonnullByDefault -package com.mcmoddev.lib.entity; +package zone.moddev.mc.mmdlib.data; import javax.annotation.ParametersAreNonnullByDefault; diff --git a/src/main/java/com/mcmoddev/lib/energy/BaseEnergyValue.java b/src/main/java/zone/moddev/mc/mmdlib/energy/BaseEnergyValue.java similarity index 95% rename from src/main/java/com/mcmoddev/lib/energy/BaseEnergyValue.java rename to src/main/java/zone/moddev/mc/mmdlib/energy/BaseEnergyValue.java index 56ecbee..2ea0507 100644 --- a/src/main/java/com/mcmoddev/lib/energy/BaseEnergyValue.java +++ b/src/main/java/zone/moddev/mc/mmdlib/energy/BaseEnergyValue.java @@ -1,4 +1,4 @@ -package com.mcmoddev.lib.energy; +package zone.moddev.mc.mmdlib.energy; /** * Base implementation of {@link IEnergyValue}. diff --git a/src/main/java/com/mcmoddev/lib/energy/BaseGenericEnergyStorage.java b/src/main/java/zone/moddev/mc/mmdlib/energy/BaseGenericEnergyStorage.java similarity index 98% rename from src/main/java/com/mcmoddev/lib/energy/BaseGenericEnergyStorage.java rename to src/main/java/zone/moddev/mc/mmdlib/energy/BaseGenericEnergyStorage.java index ccc9e74..961bb04 100644 --- a/src/main/java/com/mcmoddev/lib/energy/BaseGenericEnergyStorage.java +++ b/src/main/java/zone/moddev/mc/mmdlib/energy/BaseGenericEnergyStorage.java @@ -1,4 +1,4 @@ -package com.mcmoddev.lib.energy; +package zone.moddev.mc.mmdlib.energy; import java.util.ArrayList; import java.util.Arrays; @@ -156,7 +156,7 @@ public final void deserializeNBT(final NBTTagCompound nbt) { /** * Returns an energy value of the base energy system that represents no energy. - * @return + * @return the zero value of this storage's energy system */ protected abstract IEnergyValue getZeroEnergy(); @@ -180,7 +180,7 @@ public IEnergyValue storeValue(final IEnergyValue toStore, final boolean doSt ? available.copy() : normalized.copy(); - // TODO: account for input rate + // TODO: limit accepted energy by inputRate. if (doStore && (canStore.compareTo(this.getZeroEnergy()) > 0)) { this.stored = this.stored.add(canStore); @@ -201,7 +201,7 @@ public IEnergyValue takeValue(final IEnergyValue toTake, final boolean doTake ? this.stored.copy() : normalized.copy(); - // TODO: account for output rate + // TODO: limit extracted energy by outputRate. if (doTake && (canTake.compareTo(this.getZeroEnergy()) > 0)) { this.stored = this.stored.subtract(canTake); @@ -238,7 +238,6 @@ public C getCapability(@Nonnull final Capability capability, @Nullable fi .orElse(null); } - // TODO: this is kind of hacky... do it better! private void addOnChangeListener(final Runnable listener) { this.onChangeListeners.add(listener); } diff --git a/src/main/java/com/mcmoddev/lib/energy/EnergySystemRegistry.java b/src/main/java/zone/moddev/mc/mmdlib/energy/EnergySystemRegistry.java similarity index 94% rename from src/main/java/com/mcmoddev/lib/energy/EnergySystemRegistry.java rename to src/main/java/zone/moddev/mc/mmdlib/energy/EnergySystemRegistry.java index d5d5db9..7d5e343 100644 --- a/src/main/java/com/mcmoddev/lib/energy/EnergySystemRegistry.java +++ b/src/main/java/zone/moddev/mc/mmdlib/energy/EnergySystemRegistry.java @@ -1,10 +1,10 @@ -package com.mcmoddev.lib.energy; +package zone.moddev.mc.mmdlib.energy; import java.util.Arrays; import java.util.Objects; import javax.annotation.Nullable; -import com.mcmoddev.lib.energy.rf.RFEnergySystem; -import com.mcmoddev.lib.energy.tesla.TeslaEnergySystem; +import zone.moddev.mc.mmdlib.energy.rf.RFEnergySystem; +import zone.moddev.mc.mmdlib.energy.tesla.TeslaEnergySystem; import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.EnumFacing; diff --git a/src/main/java/com/mcmoddev/lib/energy/ForgeEnergyAdapter.java b/src/main/java/zone/moddev/mc/mmdlib/energy/ForgeEnergyAdapter.java similarity index 93% rename from src/main/java/com/mcmoddev/lib/energy/ForgeEnergyAdapter.java rename to src/main/java/zone/moddev/mc/mmdlib/energy/ForgeEnergyAdapter.java index bfcde4f..e40bc6b 100644 --- a/src/main/java/com/mcmoddev/lib/energy/ForgeEnergyAdapter.java +++ b/src/main/java/zone/moddev/mc/mmdlib/energy/ForgeEnergyAdapter.java @@ -1,6 +1,6 @@ -package com.mcmoddev.lib.energy; +package zone.moddev.mc.mmdlib.energy; -import com.mcmoddev.lib.energy.util.EnergyValueUtils; +import zone.moddev.mc.mmdlib.energy.util.EnergyValueUtils; import net.minecraftforge.energy.IEnergyStorage; @SuppressWarnings("rawtypes") diff --git a/src/main/java/com/mcmoddev/lib/energy/ForgeEnergyStorage.java b/src/main/java/zone/moddev/mc/mmdlib/energy/ForgeEnergyStorage.java similarity index 97% rename from src/main/java/com/mcmoddev/lib/energy/ForgeEnergyStorage.java rename to src/main/java/zone/moddev/mc/mmdlib/energy/ForgeEnergyStorage.java index 8f06b8b..da9c169 100644 --- a/src/main/java/com/mcmoddev/lib/energy/ForgeEnergyStorage.java +++ b/src/main/java/zone/moddev/mc/mmdlib/energy/ForgeEnergyStorage.java @@ -1,4 +1,4 @@ -package com.mcmoddev.lib.energy; +package zone.moddev.mc.mmdlib.energy; import net.minecraft.nbt.NBTTagCompound; diff --git a/src/main/java/com/mcmoddev/lib/energy/ForgeEnergySystem.java b/src/main/java/zone/moddev/mc/mmdlib/energy/ForgeEnergySystem.java similarity index 96% rename from src/main/java/com/mcmoddev/lib/energy/ForgeEnergySystem.java rename to src/main/java/zone/moddev/mc/mmdlib/energy/ForgeEnergySystem.java index 7507471..34bad9b 100644 --- a/src/main/java/com/mcmoddev/lib/energy/ForgeEnergySystem.java +++ b/src/main/java/zone/moddev/mc/mmdlib/energy/ForgeEnergySystem.java @@ -1,4 +1,4 @@ -package com.mcmoddev.lib.energy; +package zone.moddev.mc.mmdlib.energy; import java.util.Objects; import javax.annotation.Nullable; @@ -81,7 +81,7 @@ private static class CapabilityStorage implements IEnergyStorage { CapabilityStorage(final IGenericEnergyStorage storage) { this.storage = storage; - // no worries about cast error, it's supposed to crash and burn if wrong storage gets passed in + // The caller must supply storage for this energy system. this.compatible = (IForgeEnergyCompatible)storage.getBaseSystem(); } diff --git a/src/main/java/com/mcmoddev/lib/energy/ForgeEnergyValue.java b/src/main/java/zone/moddev/mc/mmdlib/energy/ForgeEnergyValue.java similarity index 85% rename from src/main/java/com/mcmoddev/lib/energy/ForgeEnergyValue.java rename to src/main/java/zone/moddev/mc/mmdlib/energy/ForgeEnergyValue.java index 07e4563..aac127f 100644 --- a/src/main/java/com/mcmoddev/lib/energy/ForgeEnergyValue.java +++ b/src/main/java/zone/moddev/mc/mmdlib/energy/ForgeEnergyValue.java @@ -1,4 +1,4 @@ -package com.mcmoddev.lib.energy; +package zone.moddev.mc.mmdlib.energy; import java.text.NumberFormat; @@ -11,7 +11,7 @@ public ForgeEnergyValue(final int value) { @Override public IEnergyValue add(final IEnergyValue other) { if (!this.isCompatible(other)) { - // TODO: throw something? + // Leave this value unchanged when the other energy system is incompatible. return this; } @@ -22,7 +22,7 @@ public IEnergyValue add(final IEnergyValue other) { @Override public IEnergyValue subtract(final IEnergyValue other) { if (!this.isCompatible(other)) { - // TODO: throw something? + // Leave this value unchanged when the other energy system is incompatible. return this; } diff --git a/src/main/java/com/mcmoddev/lib/energy/IEnergyAdapter.java b/src/main/java/zone/moddev/mc/mmdlib/energy/IEnergyAdapter.java similarity index 97% rename from src/main/java/com/mcmoddev/lib/energy/IEnergyAdapter.java rename to src/main/java/zone/moddev/mc/mmdlib/energy/IEnergyAdapter.java index f653b9e..151c3ca 100644 --- a/src/main/java/com/mcmoddev/lib/energy/IEnergyAdapter.java +++ b/src/main/java/zone/moddev/mc/mmdlib/energy/IEnergyAdapter.java @@ -1,4 +1,4 @@ -package com.mcmoddev.lib.energy; +package zone.moddev.mc.mmdlib.energy; /** * Represents a common way to handle consumers/providers/holders of different energy from various energy system. diff --git a/src/main/java/com/mcmoddev/lib/energy/IEnergyCapabilityProvider.java b/src/main/java/zone/moddev/mc/mmdlib/energy/IEnergyCapabilityProvider.java similarity index 97% rename from src/main/java/com/mcmoddev/lib/energy/IEnergyCapabilityProvider.java rename to src/main/java/zone/moddev/mc/mmdlib/energy/IEnergyCapabilityProvider.java index b39d48b..ef2768a 100644 --- a/src/main/java/com/mcmoddev/lib/energy/IEnergyCapabilityProvider.java +++ b/src/main/java/zone/moddev/mc/mmdlib/energy/IEnergyCapabilityProvider.java @@ -1,4 +1,4 @@ -package com.mcmoddev.lib.energy; +package zone.moddev.mc.mmdlib.energy; import javax.annotation.Nullable; import net.minecraftforge.common.capabilities.Capability; diff --git a/src/main/java/com/mcmoddev/lib/energy/IEnergySystem.java b/src/main/java/zone/moddev/mc/mmdlib/energy/IEnergySystem.java similarity index 85% rename from src/main/java/com/mcmoddev/lib/energy/IEnergySystem.java rename to src/main/java/zone/moddev/mc/mmdlib/energy/IEnergySystem.java index 1ffbc18..67af1c5 100644 --- a/src/main/java/com/mcmoddev/lib/energy/IEnergySystem.java +++ b/src/main/java/zone/moddev/mc/mmdlib/energy/IEnergySystem.java @@ -1,4 +1,4 @@ -package com.mcmoddev.lib.energy; +package zone.moddev.mc.mmdlib.energy; import javax.annotation.Nullable; import net.minecraft.item.ItemStack; @@ -22,8 +22,8 @@ public interface IEnergySystem extends IEnergyCapabilityProvider { /** * Represents a value indicating if this energy system is currently available or not. + * Implementation note: By default this will check if a mod with id == {@link IEnergySystem#getDependencyModId()} is loaded. * @return Returns true if this energy system is available. - * @implNote By default this will check if a mod with id == {@link IEnergySystem#getDependencyModId()} is loaded. */ default boolean isAvailable() { return Loader.isModLoaded(this.getDependencyModId()); @@ -55,10 +55,10 @@ default boolean isAvailable() { /** * Converts energy from the source energy system to this energy system. + * Implementation note: One should test if conversion is possible using {@link IEnergySystem#isCompatibleWith(IEnergySystem)} before calling this in order to prevent energy loss. + * Implementation note: This method can cause energy loss. For example converting a Tesla value greater than Integer.MAX_VALUE will cause all that extra energy to be lost. * @param value An energy value from the source system. * @return The converted energy value. Or the equivalent of 0 if conversion fails. - * @implNote One should test if conversion is possible using {@link IEnergySystem#isCompatibleWith(IEnergySystem)} before calling this in order to prevent energy loss. - * @implNote This method can cause energy loss. For example converting a Tesla value greater than Integer.MAX_VALUE will cause all that extra energy to be lost. */ @Nullable IEnergyValue convertFrom(IEnergyValue value); diff --git a/src/main/java/com/mcmoddev/lib/energy/IEnergyValue.java b/src/main/java/zone/moddev/mc/mmdlib/energy/IEnergyValue.java similarity index 87% rename from src/main/java/com/mcmoddev/lib/energy/IEnergyValue.java rename to src/main/java/zone/moddev/mc/mmdlib/energy/IEnergyValue.java index 9457a63..131cc6b 100644 --- a/src/main/java/com/mcmoddev/lib/energy/IEnergyValue.java +++ b/src/main/java/zone/moddev/mc/mmdlib/energy/IEnergyValue.java @@ -1,4 +1,4 @@ -package com.mcmoddev.lib.energy; +package zone.moddev.mc.mmdlib.energy; import java.util.Objects; @@ -38,17 +38,17 @@ default boolean isCompatible(final IEnergyValue other) { /** * Adds two compatible energy values together. + * Implementation note: One should use {@link IEnergyValue#isCompatible(IEnergyValue)} to test if values are compatible first. * @param other The energy value that should be added to the current one. * @return The result of the addition. Or the current value in case energy values are not compatible. - * @implNote One should use {@link IEnergyValue#isCompatible(IEnergyValue)} to test if values are compatible first. */ IEnergyValue add(IEnergyValue other); /** * Subtracts an energy value from the current one. + * Implementation note: One should use {@link IEnergyValue#isCompatible(IEnergyValue)} to test if values are compatible first. * @param other The energy value that should be subtracted from the current one. * @return The result of the subtraction. Or the current value in case energy values are not compatible. - * @implNote One should use {@link IEnergyValue#isCompatible(IEnergyValue)} to test if values are compatible first. */ IEnergyValue subtract(IEnergyValue other); @@ -61,7 +61,7 @@ default int compareTo(final IEnergyValue other) { return Comparable.class.cast(energy).compareTo(compareTo); } - // TODO: throw an error or something + // Unsupported value types currently compare as equal. return 0; } diff --git a/src/main/java/com/mcmoddev/lib/energy/IForgeEnergyCompatible.java b/src/main/java/zone/moddev/mc/mmdlib/energy/IForgeEnergyCompatible.java similarity index 97% rename from src/main/java/com/mcmoddev/lib/energy/IForgeEnergyCompatible.java rename to src/main/java/zone/moddev/mc/mmdlib/energy/IForgeEnergyCompatible.java index a298113..22350a7 100644 --- a/src/main/java/com/mcmoddev/lib/energy/IForgeEnergyCompatible.java +++ b/src/main/java/zone/moddev/mc/mmdlib/energy/IForgeEnergyCompatible.java @@ -1,4 +1,4 @@ -package com.mcmoddev.lib.energy; +package zone.moddev.mc.mmdlib.energy; import javax.annotation.Nullable; diff --git a/src/main/java/com/mcmoddev/lib/energy/IGenericEnergyStorage.java b/src/main/java/zone/moddev/mc/mmdlib/energy/IGenericEnergyStorage.java similarity index 93% rename from src/main/java/com/mcmoddev/lib/energy/IGenericEnergyStorage.java rename to src/main/java/zone/moddev/mc/mmdlib/energy/IGenericEnergyStorage.java index d3195e8..78fee2f 100644 --- a/src/main/java/com/mcmoddev/lib/energy/IGenericEnergyStorage.java +++ b/src/main/java/zone/moddev/mc/mmdlib/energy/IGenericEnergyStorage.java @@ -1,4 +1,4 @@ -package com.mcmoddev.lib.energy; +package zone.moddev.mc.mmdlib.energy; /** * Provides a base interface for energy storage. @@ -95,15 +95,15 @@ public interface IGenericEnergyStorage { /** * Returns a value indicating if this storage can be used to store energy. + * Implementation note: This is usually an indication of the {@link #getInputRate() input rate} being greater than 0. * @return True if this storage can store energy. False otherwise. - * @implNote This is usually an indication of the {@link #getInputRate() input rate} being greater than 0. */ boolean canStore(); /** * Returns a value indicating if this storage can be used to provide energy. + * Implementation note: This is usually an indication of the {@link #getOutputRate() output rate} being greater than 0. * @return True if this storage can provide energy. False otherwise. - * @implNote This is usually an indication of the {@link #getOutputRate() output rate} being greater than 0. */ boolean canTake(); } diff --git a/src/main/java/com/mcmoddev/lib/energy/Readme.md b/src/main/java/zone/moddev/mc/mmdlib/energy/Readme.md similarity index 100% rename from src/main/java/com/mcmoddev/lib/energy/Readme.md rename to src/main/java/zone/moddev/mc/mmdlib/energy/Readme.md diff --git a/src/main/java/zone/moddev/mc/mmdlib/energy/ic2/package-info.java b/src/main/java/zone/moddev/mc/mmdlib/energy/ic2/package-info.java new file mode 100644 index 0000000..4b99c5a --- /dev/null +++ b/src/main/java/zone/moddev/mc/mmdlib/energy/ic2/package-info.java @@ -0,0 +1,6 @@ +@ParametersAreNonnullByDefault +@MethodsReturnNonnullByDefault +package zone.moddev.mc.mmdlib.energy.ic2; + +import javax.annotation.ParametersAreNonnullByDefault; +import mcp.MethodsReturnNonnullByDefault; diff --git a/src/main/java/com/mcmoddev/lib/container/gui/layout/package-info.java b/src/main/java/zone/moddev/mc/mmdlib/energy/mekanism/package-info.java similarity index 77% rename from src/main/java/com/mcmoddev/lib/container/gui/layout/package-info.java rename to src/main/java/zone/moddev/mc/mmdlib/energy/mekanism/package-info.java index 121a011..e8f6b80 100644 --- a/src/main/java/com/mcmoddev/lib/container/gui/layout/package-info.java +++ b/src/main/java/zone/moddev/mc/mmdlib/energy/mekanism/package-info.java @@ -1,6 +1,6 @@ @ParametersAreNonnullByDefault @MethodsReturnNonnullByDefault -package com.mcmoddev.lib.container.gui.layout; +package zone.moddev.mc.mmdlib.energy.mekanism; import javax.annotation.ParametersAreNonnullByDefault; import mcp.MethodsReturnNonnullByDefault; diff --git a/src/main/java/com/mcmoddev/lib/energy/ic2/package-info.java b/src/main/java/zone/moddev/mc/mmdlib/energy/package-info.java similarity index 80% rename from src/main/java/com/mcmoddev/lib/energy/ic2/package-info.java rename to src/main/java/zone/moddev/mc/mmdlib/energy/package-info.java index 42bba24..05854e5 100644 --- a/src/main/java/com/mcmoddev/lib/energy/ic2/package-info.java +++ b/src/main/java/zone/moddev/mc/mmdlib/energy/package-info.java @@ -1,6 +1,6 @@ @ParametersAreNonnullByDefault @MethodsReturnNonnullByDefault -package com.mcmoddev.lib.energy.ic2; +package zone.moddev.mc.mmdlib.energy; import javax.annotation.ParametersAreNonnullByDefault; import mcp.MethodsReturnNonnullByDefault; diff --git a/src/main/java/com/mcmoddev/lib/energy/rf/RFEnergyAdapter.java b/src/main/java/zone/moddev/mc/mmdlib/energy/rf/RFEnergyAdapter.java similarity index 90% rename from src/main/java/com/mcmoddev/lib/energy/rf/RFEnergyAdapter.java rename to src/main/java/zone/moddev/mc/mmdlib/energy/rf/RFEnergyAdapter.java index 2fdc4db..96bb0ce 100644 --- a/src/main/java/com/mcmoddev/lib/energy/rf/RFEnergyAdapter.java +++ b/src/main/java/zone/moddev/mc/mmdlib/energy/rf/RFEnergyAdapter.java @@ -1,10 +1,10 @@ -package com.mcmoddev.lib.energy.rf; +package zone.moddev.mc.mmdlib.energy.rf; import javax.annotation.Nullable; -import com.mcmoddev.lib.energy.EnergySystemRegistry; -import com.mcmoddev.lib.energy.IEnergyAdapter; -import com.mcmoddev.lib.energy.IEnergySystem; -import com.mcmoddev.lib.energy.IEnergyValue; +import zone.moddev.mc.mmdlib.energy.EnergySystemRegistry; +import zone.moddev.mc.mmdlib.energy.IEnergyAdapter; +import zone.moddev.mc.mmdlib.energy.IEnergySystem; +import zone.moddev.mc.mmdlib.energy.IEnergyValue; import net.minecraft.util.EnumFacing; import cofh.redstoneflux.api.IEnergyHandler; import cofh.redstoneflux.api.IEnergyProvider; diff --git a/src/main/java/com/mcmoddev/lib/energy/rf/RFEnergyAdapterItem.java b/src/main/java/zone/moddev/mc/mmdlib/energy/rf/RFEnergyAdapterItem.java similarity index 87% rename from src/main/java/com/mcmoddev/lib/energy/rf/RFEnergyAdapterItem.java rename to src/main/java/zone/moddev/mc/mmdlib/energy/rf/RFEnergyAdapterItem.java index 49e3579..52fa8fb 100644 --- a/src/main/java/com/mcmoddev/lib/energy/rf/RFEnergyAdapterItem.java +++ b/src/main/java/zone/moddev/mc/mmdlib/energy/rf/RFEnergyAdapterItem.java @@ -1,9 +1,9 @@ -package com.mcmoddev.lib.energy.rf; +package zone.moddev.mc.mmdlib.energy.rf; -import com.mcmoddev.lib.energy.EnergySystemRegistry; -import com.mcmoddev.lib.energy.IEnergyAdapter; -import com.mcmoddev.lib.energy.IEnergySystem; -import com.mcmoddev.lib.energy.IEnergyValue; +import zone.moddev.mc.mmdlib.energy.EnergySystemRegistry; +import zone.moddev.mc.mmdlib.energy.IEnergyAdapter; +import zone.moddev.mc.mmdlib.energy.IEnergySystem; +import zone.moddev.mc.mmdlib.energy.IEnergyValue; import net.minecraft.item.ItemStack; import cofh.redstoneflux.api.IEnergyContainerItem; diff --git a/src/main/java/com/mcmoddev/lib/energy/rf/RFEnergySystem.java b/src/main/java/zone/moddev/mc/mmdlib/energy/rf/RFEnergySystem.java similarity index 89% rename from src/main/java/com/mcmoddev/lib/energy/rf/RFEnergySystem.java rename to src/main/java/zone/moddev/mc/mmdlib/energy/rf/RFEnergySystem.java index d5d1a06..a056429 100644 --- a/src/main/java/com/mcmoddev/lib/energy/rf/RFEnergySystem.java +++ b/src/main/java/zone/moddev/mc/mmdlib/energy/rf/RFEnergySystem.java @@ -1,10 +1,10 @@ -package com.mcmoddev.lib.energy.rf; +package zone.moddev.mc.mmdlib.energy.rf; import javax.annotation.Nullable; -import com.mcmoddev.lib.energy.ForgeEnergyValue; -import com.mcmoddev.lib.energy.IEnergyAdapter; -import com.mcmoddev.lib.energy.IEnergyValue; -import com.mcmoddev.lib.energy.IForgeEnergyCompatible; +import zone.moddev.mc.mmdlib.energy.ForgeEnergyValue; +import zone.moddev.mc.mmdlib.energy.IEnergyAdapter; +import zone.moddev.mc.mmdlib.energy.IEnergyValue; +import zone.moddev.mc.mmdlib.energy.IForgeEnergyCompatible; import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.EnumFacing; diff --git a/src/main/java/com/mcmoddev/lib/energy/rf/RFEnergyValue.java b/src/main/java/zone/moddev/mc/mmdlib/energy/rf/RFEnergyValue.java similarity index 75% rename from src/main/java/com/mcmoddev/lib/energy/rf/RFEnergyValue.java rename to src/main/java/zone/moddev/mc/mmdlib/energy/rf/RFEnergyValue.java index 0b89846..ad29727 100644 --- a/src/main/java/com/mcmoddev/lib/energy/rf/RFEnergyValue.java +++ b/src/main/java/zone/moddev/mc/mmdlib/energy/rf/RFEnergyValue.java @@ -1,9 +1,9 @@ -package com.mcmoddev.lib.energy.rf; +package zone.moddev.mc.mmdlib.energy.rf; import java.text.NumberFormat; -import com.mcmoddev.lib.energy.BaseEnergyValue; -import com.mcmoddev.lib.energy.EnergySystemRegistry; -import com.mcmoddev.lib.energy.IEnergyValue; +import zone.moddev.mc.mmdlib.energy.BaseEnergyValue; +import zone.moddev.mc.mmdlib.energy.EnergySystemRegistry; +import zone.moddev.mc.mmdlib.energy.IEnergyValue; @SuppressWarnings("rawtypes") public class RFEnergyValue extends BaseEnergyValue { @@ -14,7 +14,7 @@ public RFEnergyValue(final int value) { @Override public IEnergyValue add(final IEnergyValue other) { if (!this.isCompatible(other)) { - // TODO: throw something? + // Leave this value unchanged when the other energy system is incompatible. return this; } @@ -25,7 +25,7 @@ public IEnergyValue add(final IEnergyValue other) { @Override public IEnergyValue subtract(final IEnergyValue other) { if (!this.isCompatible(other)) { - // TODO: throw something? + // Leave this value unchanged when the other energy system is incompatible. return this; } diff --git a/src/main/java/zone/moddev/mc/mmdlib/energy/rf/package-info.java b/src/main/java/zone/moddev/mc/mmdlib/energy/rf/package-info.java new file mode 100644 index 0000000..2b77314 --- /dev/null +++ b/src/main/java/zone/moddev/mc/mmdlib/energy/rf/package-info.java @@ -0,0 +1,6 @@ +@ParametersAreNonnullByDefault +@MethodsReturnNonnullByDefault +package zone.moddev.mc.mmdlib.energy.rf; + +import javax.annotation.ParametersAreNonnullByDefault; +import mcp.MethodsReturnNonnullByDefault; diff --git a/src/main/java/com/mcmoddev/lib/energy/tesla/TeslaEnergyAdapter.java b/src/main/java/zone/moddev/mc/mmdlib/energy/tesla/TeslaEnergyAdapter.java similarity index 89% rename from src/main/java/com/mcmoddev/lib/energy/tesla/TeslaEnergyAdapter.java rename to src/main/java/zone/moddev/mc/mmdlib/energy/tesla/TeslaEnergyAdapter.java index a9a6ae1..3b7dd52 100644 --- a/src/main/java/com/mcmoddev/lib/energy/tesla/TeslaEnergyAdapter.java +++ b/src/main/java/zone/moddev/mc/mmdlib/energy/tesla/TeslaEnergyAdapter.java @@ -1,10 +1,10 @@ -package com.mcmoddev.lib.energy.tesla; +package zone.moddev.mc.mmdlib.energy.tesla; import javax.annotation.Nullable; -import com.mcmoddev.lib.energy.EnergySystemRegistry; -import com.mcmoddev.lib.energy.IEnergyAdapter; -import com.mcmoddev.lib.energy.IEnergySystem; -import com.mcmoddev.lib.energy.IEnergyValue; +import zone.moddev.mc.mmdlib.energy.EnergySystemRegistry; +import zone.moddev.mc.mmdlib.energy.IEnergyAdapter; +import zone.moddev.mc.mmdlib.energy.IEnergySystem; +import zone.moddev.mc.mmdlib.energy.IEnergyValue; import net.darkhax.tesla.api.ITeslaConsumer; import net.darkhax.tesla.api.ITeslaHolder; import net.darkhax.tesla.api.ITeslaProducer; diff --git a/src/main/java/com/mcmoddev/lib/energy/tesla/TeslaEnergySystem.java b/src/main/java/zone/moddev/mc/mmdlib/energy/tesla/TeslaEnergySystem.java similarity index 93% rename from src/main/java/com/mcmoddev/lib/energy/tesla/TeslaEnergySystem.java rename to src/main/java/zone/moddev/mc/mmdlib/energy/tesla/TeslaEnergySystem.java index b60c1a5..4d170c8 100644 --- a/src/main/java/com/mcmoddev/lib/energy/tesla/TeslaEnergySystem.java +++ b/src/main/java/zone/moddev/mc/mmdlib/energy/tesla/TeslaEnergySystem.java @@ -1,13 +1,13 @@ -package com.mcmoddev.lib.energy.tesla; +package zone.moddev.mc.mmdlib.energy.tesla; import java.util.Objects; import javax.annotation.Nullable; -import com.mcmoddev.lib.energy.EnergySystemRegistry; -import com.mcmoddev.lib.energy.ForgeEnergyValue; -import com.mcmoddev.lib.energy.IEnergyAdapter; -import com.mcmoddev.lib.energy.IEnergyValue; -import com.mcmoddev.lib.energy.IForgeEnergyCompatible; -import com.mcmoddev.lib.energy.IGenericEnergyStorage; +import zone.moddev.mc.mmdlib.energy.EnergySystemRegistry; +import zone.moddev.mc.mmdlib.energy.ForgeEnergyValue; +import zone.moddev.mc.mmdlib.energy.IEnergyAdapter; +import zone.moddev.mc.mmdlib.energy.IEnergyValue; +import zone.moddev.mc.mmdlib.energy.IForgeEnergyCompatible; +import zone.moddev.mc.mmdlib.energy.IGenericEnergyStorage; import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.EnumFacing; diff --git a/src/main/java/com/mcmoddev/lib/energy/tesla/TeslaEnergyValue.java b/src/main/java/zone/moddev/mc/mmdlib/energy/tesla/TeslaEnergyValue.java similarity index 75% rename from src/main/java/com/mcmoddev/lib/energy/tesla/TeslaEnergyValue.java rename to src/main/java/zone/moddev/mc/mmdlib/energy/tesla/TeslaEnergyValue.java index 05ee70c..d4fa00b 100644 --- a/src/main/java/com/mcmoddev/lib/energy/tesla/TeslaEnergyValue.java +++ b/src/main/java/zone/moddev/mc/mmdlib/energy/tesla/TeslaEnergyValue.java @@ -1,9 +1,9 @@ -package com.mcmoddev.lib.energy.tesla; +package zone.moddev.mc.mmdlib.energy.tesla; import java.text.NumberFormat; -import com.mcmoddev.lib.energy.BaseEnergyValue; -import com.mcmoddev.lib.energy.EnergySystemRegistry; -import com.mcmoddev.lib.energy.IEnergyValue; +import zone.moddev.mc.mmdlib.energy.BaseEnergyValue; +import zone.moddev.mc.mmdlib.energy.EnergySystemRegistry; +import zone.moddev.mc.mmdlib.energy.IEnergyValue; @SuppressWarnings("rawtypes") public class TeslaEnergyValue extends BaseEnergyValue { @@ -14,7 +14,7 @@ public TeslaEnergyValue(final long value) { @Override public IEnergyValue add(final IEnergyValue other) { if (!this.isCompatible(other)) { - // TODO: throw something? + // Leave this value unchanged when the other energy system is incompatible. return this; } @@ -25,7 +25,7 @@ public IEnergyValue add(final IEnergyValue other) { @Override public IEnergyValue subtract(final IEnergyValue other) { if (!this.isCompatible(other)) { - // TODO: throw something? + // Leave this value unchanged when the other energy system is incompatible. return this; } diff --git a/src/main/java/zone/moddev/mc/mmdlib/energy/tesla/package-info.java b/src/main/java/zone/moddev/mc/mmdlib/energy/tesla/package-info.java new file mode 100644 index 0000000..c0d5bba --- /dev/null +++ b/src/main/java/zone/moddev/mc/mmdlib/energy/tesla/package-info.java @@ -0,0 +1,6 @@ +@ParametersAreNonnullByDefault +@MethodsReturnNonnullByDefault +package zone.moddev.mc.mmdlib.energy.tesla; + +import javax.annotation.ParametersAreNonnullByDefault; +import mcp.MethodsReturnNonnullByDefault; diff --git a/src/main/java/com/mcmoddev/lib/energy/util/EnergyValueUtils.java b/src/main/java/zone/moddev/mc/mmdlib/energy/util/EnergyValueUtils.java similarity index 74% rename from src/main/java/com/mcmoddev/lib/energy/util/EnergyValueUtils.java rename to src/main/java/zone/moddev/mc/mmdlib/energy/util/EnergyValueUtils.java index aaefa6c..86d9595 100644 --- a/src/main/java/com/mcmoddev/lib/energy/util/EnergyValueUtils.java +++ b/src/main/java/zone/moddev/mc/mmdlib/energy/util/EnergyValueUtils.java @@ -1,8 +1,8 @@ -package com.mcmoddev.lib.energy.util; +package zone.moddev.mc.mmdlib.energy.util; -import com.mcmoddev.lib.energy.EnergySystemRegistry; -import com.mcmoddev.lib.energy.ForgeEnergyValue; -import com.mcmoddev.lib.energy.IEnergyValue; +import zone.moddev.mc.mmdlib.energy.EnergySystemRegistry; +import zone.moddev.mc.mmdlib.energy.ForgeEnergyValue; +import zone.moddev.mc.mmdlib.energy.IEnergyValue; @SuppressWarnings("rawtypes") public final class EnergyValueUtils { @@ -21,7 +21,7 @@ else if (EnergySystemRegistry.FORGE_ENERGY.isCompatibleWith(value.getSystem())) return (energy == null) ? 0 : energy.getValue(); } - // TODO: consider throwing an error or something + // Treat values from an unsupported energy system as zero. return 0; } } diff --git a/src/main/java/zone/moddev/mc/mmdlib/energy/util/package-info.java b/src/main/java/zone/moddev/mc/mmdlib/energy/util/package-info.java new file mode 100644 index 0000000..81975b8 --- /dev/null +++ b/src/main/java/zone/moddev/mc/mmdlib/energy/util/package-info.java @@ -0,0 +1,6 @@ +@ParametersAreNonnullByDefault +@MethodsReturnNonnullByDefault +package zone.moddev.mc.mmdlib.energy.util; + +import javax.annotation.ParametersAreNonnullByDefault; +import mcp.MethodsReturnNonnullByDefault; diff --git a/src/main/java/com/mcmoddev/lib/entity/EntityCustomArrow.java b/src/main/java/zone/moddev/mc/mmdlib/entity/EntityCustomArrow.java similarity index 98% rename from src/main/java/com/mcmoddev/lib/entity/EntityCustomArrow.java rename to src/main/java/zone/moddev/mc/mmdlib/entity/EntityCustomArrow.java index 156f9a8..7c5c496 100644 --- a/src/main/java/com/mcmoddev/lib/entity/EntityCustomArrow.java +++ b/src/main/java/zone/moddev/mc/mmdlib/entity/EntityCustomArrow.java @@ -1,4 +1,4 @@ -package com.mcmoddev.lib.entity; +package zone.moddev.mc.mmdlib.entity; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.projectile.EntityTippedArrow; diff --git a/src/main/java/com/mcmoddev/lib/entity/EntityCustomBolt.java b/src/main/java/zone/moddev/mc/mmdlib/entity/EntityCustomBolt.java similarity index 88% rename from src/main/java/com/mcmoddev/lib/entity/EntityCustomBolt.java rename to src/main/java/zone/moddev/mc/mmdlib/entity/EntityCustomBolt.java index 1a2ad7c..5580e1b 100644 --- a/src/main/java/com/mcmoddev/lib/entity/EntityCustomBolt.java +++ b/src/main/java/zone/moddev/mc/mmdlib/entity/EntityCustomBolt.java @@ -1,7 +1,7 @@ -package com.mcmoddev.lib.entity; +package zone.moddev.mc.mmdlib.entity; -import com.mcmoddev.lib.data.Names; -import com.mcmoddev.lib.data.MaterialNames; +import zone.moddev.mc.mmdlib.data.Names; +import zone.moddev.mc.mmdlib.data.MaterialNames; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.projectile.EntityTippedArrow; @@ -66,8 +66,8 @@ protected ItemStack getArrowStack() { protected ItemStack getBoltStack() { if (this.itemStack.isEmpty()) { - // FIXME - this is potentially unreliable - this.itemStack = new ItemStack(com.mcmoddev.lib.init.Materials + // The fallback requires the wood bolt to have been registered. + this.itemStack = new ItemStack(zone.moddev.mc.mmdlib.init.Materials .getMaterialByName(MaterialNames.WOOD).getItem(Names.BOLT)); } diff --git a/src/main/java/com/mcmoddev/lib/entity/EntityHelpers.java b/src/main/java/zone/moddev/mc/mmdlib/entity/EntityHelpers.java similarity index 77% rename from src/main/java/com/mcmoddev/lib/entity/EntityHelpers.java rename to src/main/java/zone/moddev/mc/mmdlib/entity/EntityHelpers.java index cf9d691..411fe57 100644 --- a/src/main/java/com/mcmoddev/lib/entity/EntityHelpers.java +++ b/src/main/java/zone/moddev/mc/mmdlib/entity/EntityHelpers.java @@ -1,4 +1,4 @@ -package com.mcmoddev.lib.entity; +package zone.moddev.mc.mmdlib.entity; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; @@ -6,15 +6,9 @@ public class EntityHelpers { private EntityHelpers() { - // private constructor + } - /** - * - * @param compound - * @param itemStack - * @return - */ public static NBTTagCompound writeToNBTItemStack(final NBTTagCompound compound, final ItemStack itemStack) { final NBTTagCompound itemStackCompound = new NBTTagCompound(); @@ -23,11 +17,6 @@ public static NBTTagCompound writeToNBTItemStack(final NBTTagCompound compound, return compound; } - /** - * - * @param compound - * @return - */ public static ItemStack readFromNBTItemStack(final NBTTagCompound compound) { return new ItemStack(compound.getCompoundTag("itemstack")); } diff --git a/src/main/java/com/mcmoddev/lib/common/item/package-info.java b/src/main/java/zone/moddev/mc/mmdlib/entity/package-info.java similarity index 69% rename from src/main/java/com/mcmoddev/lib/common/item/package-info.java rename to src/main/java/zone/moddev/mc/mmdlib/entity/package-info.java index acf986f..70b8474 100644 --- a/src/main/java/com/mcmoddev/lib/common/item/package-info.java +++ b/src/main/java/zone/moddev/mc/mmdlib/entity/package-info.java @@ -1,4 +1,4 @@ @ParametersAreNonnullByDefault -package com.mcmoddev.lib.common.item; +package zone.moddev.mc.mmdlib.entity; import javax.annotation.ParametersAreNonnullByDefault; diff --git a/src/main/java/com/mcmoddev/lib/events/IRegAPI.java b/src/main/java/zone/moddev/mc/mmdlib/events/IRegAPI.java old mode 100755 new mode 100644 similarity index 83% rename from src/main/java/com/mcmoddev/lib/events/IRegAPI.java rename to src/main/java/zone/moddev/mc/mmdlib/events/IRegAPI.java index e5678ae..2d352b6 --- a/src/main/java/com/mcmoddev/lib/events/IRegAPI.java +++ b/src/main/java/zone/moddev/mc/mmdlib/events/IRegAPI.java @@ -1,8 +1,8 @@ -package com.mcmoddev.lib.events; +package zone.moddev.mc.mmdlib.events; import javax.annotation.Nullable; -import com.mcmoddev.lib.data.Names; +import zone.moddev.mc.mmdlib.data.Names; public interface IRegAPI{ void addType(Class clazz, Names name); @@ -18,7 +18,7 @@ public interface IRegAPI{ * @param clazz Class getting sorted */ default void addSorting(Class clazz) { - // empty to make it so people don't have to implement it if it isn't in use + // Optional hook; implementations can override only the stages they use. }; /** * Can be implemented where needed, sole user right now is the Item Type registration code @@ -26,7 +26,7 @@ default void addSorting(Class clazz) { * @param otherClazz Class to sort to the same value as */ default void addSorting(Class clazz, Class otherClazz) { - // empty to make it so people don't have to implement it if it isn't in use + // Optional hook; implementations can override only the stages they use. }; /** * Some systems might want to have class sorting values added automatically, this does it @@ -36,7 +36,7 @@ default void addSorting(Class clazz, Class otherClazz) { * @param sortingMatch Class to set the sorting value equal to */ default void addType(Class clazz, String name, @Nullable String oredict, Class sortingMatch) { - // empty to make it so people don't have to implement it if it isn't in use + // Optional hook; implementations can override only the stages they use. }; /** * Some systems might want to have class sorting values added automatically, this does it @@ -45,7 +45,7 @@ default void addType(Class clazz, String name, @Nullable String ore * @param sortingMatch Class to set the sorting value equal to */ default void addType(Class clazz, String name, Class sortingMatch) { - // empty to make it so people don't have to implement it if it isn't in use + // Optional hook; implementations can override only the stages they use. }; /** * Some systems might want to have class sorting values added automatically, this does it @@ -55,7 +55,7 @@ default void addType(Class clazz, String name, Class sortingMatc * @param sortingMatch Class to set the sorting value equal to */ default void addType(Class clazz, Names name, boolean enabled, Class sortingMatch) { - // empty to make it so people don't have to implement it if it isn't in use + // Optional hook; implementations can override only the stages they use. }; /** * Some systems might want to have class sorting values added automatically, this does it @@ -64,7 +64,7 @@ default void addType(Class clazz, Names name, boolean enabled, Clas * @param sortingMatch Class to set the sorting value equal to */ default void addType(Class clazz, Names name, Class sortingMatch) { - // empty to make it so people don't have to implement it if it isn't in use + // Optional hook; implementations can override only the stages they use. }; /** * Some systems might want to have class sorting values added automatically, this does it @@ -75,7 +75,7 @@ default void addType(Class clazz, Names name, Class sortingMatch * @param sortingMatch Class to set the sorting value equal to */ default void addType(Class clazz, Names name, boolean enabled, @Nullable String oredict, Class sortingMatch) { - // empty to make it so people don't have to implement it if it isn't in use + // Optional hook; implementations can override only the stages they use. }; /** * Some systems might want to have class sorting values added automatically, this does it @@ -85,6 +85,6 @@ default void addType(Class clazz, Names name, boolean enabled, @Nul * @param sortingMatch Class to set the sorting value equal to */ default void addType(Class clazz, Names name, @Nullable String oredict, Class sortingMatch) { - // empty to make it so people don't have to implement it if it isn't in use + // Optional hook; implementations can override only the stages they use. }; } diff --git a/src/main/java/com/mcmoddev/lib/events/MMDLibRegisterBlockTypes.java b/src/main/java/zone/moddev/mc/mmdlib/events/MMDLibRegisterBlockTypes.java old mode 100755 new mode 100644 similarity index 91% rename from src/main/java/com/mcmoddev/lib/events/MMDLibRegisterBlockTypes.java rename to src/main/java/zone/moddev/mc/mmdlib/events/MMDLibRegisterBlockTypes.java index 788f598..92af1b4 --- a/src/main/java/com/mcmoddev/lib/events/MMDLibRegisterBlockTypes.java +++ b/src/main/java/zone/moddev/mc/mmdlib/events/MMDLibRegisterBlockTypes.java @@ -1,8 +1,8 @@ -package com.mcmoddev.lib.events; +package zone.moddev.mc.mmdlib.events; import javax.annotation.Nullable; -import com.mcmoddev.lib.data.Names; +import zone.moddev.mc.mmdlib.data.Names; import net.minecraft.block.Block; import net.minecraftforge.fml.common.eventhandler.Event; @@ -19,24 +19,24 @@ public MMDLibRegisterBlockTypes() { public IRegAPI getApi() { return this.api; } - + private static final class BlocksAPI implements IRegAPI{ - private static final class BlocksWrapper extends com.mcmoddev.lib.init.Blocks { + private static final class BlocksWrapper extends zone.moddev.mc.mmdlib.init.Blocks { private static void addType(Class clazz, String name, boolean enabled, @Nullable String oredict) { addBlockType(name, clazz, enabled, oredict); } } - + @Override public void addType(Class clazz, Names name) { addType(clazz, name, true); } - + @Override public void addType(Class clazz, Names name, boolean enabled) { addType(clazz, name.toString(), enabled); } - + @Override public void addType(Class clazz, Names name, @Nullable String oredict) { addType(clazz, name, true, oredict); @@ -46,26 +46,26 @@ public void addType(Class clazz, Names name, @Nullable String o public void addType(Class clazz, Names name, boolean enabled, @Nullable String oredict) { addType(clazz, name.toString(), enabled, oredict); } - + @Override public void addType(Class clazz, String name) { addType(clazz, name, true); } - + @Override public void addType(Class clazz, String name, @Nullable String oredict) { addType(clazz, name, true, oredict); } - + @Override public void addType(Class clazz, String name, boolean enabled) { addType(clazz, name, enabled, null); } - + @Override public void addType(Class clazz, String name, boolean enabled, @Nullable String oredict) { BlocksWrapper.addType(clazz, name, enabled, oredict); } - + } } diff --git a/src/main/java/com/mcmoddev/lib/events/MMDLibRegisterBlocks.java b/src/main/java/zone/moddev/mc/mmdlib/events/MMDLibRegisterBlocks.java similarity index 84% rename from src/main/java/com/mcmoddev/lib/events/MMDLibRegisterBlocks.java rename to src/main/java/zone/moddev/mc/mmdlib/events/MMDLibRegisterBlocks.java index e373eee..af812a5 100644 --- a/src/main/java/com/mcmoddev/lib/events/MMDLibRegisterBlocks.java +++ b/src/main/java/zone/moddev/mc/mmdlib/events/MMDLibRegisterBlocks.java @@ -1,4 +1,4 @@ -package com.mcmoddev.lib.events; +package zone.moddev.mc.mmdlib.events; import net.minecraftforge.fml.common.eventhandler.Event; import net.minecraftforge.fml.common.eventhandler.IContextSetter; diff --git a/src/main/java/com/mcmoddev/lib/events/MMDLibRegisterFluids.java b/src/main/java/zone/moddev/mc/mmdlib/events/MMDLibRegisterFluids.java similarity index 84% rename from src/main/java/com/mcmoddev/lib/events/MMDLibRegisterFluids.java rename to src/main/java/zone/moddev/mc/mmdlib/events/MMDLibRegisterFluids.java index e8f0e27..5aa981e 100644 --- a/src/main/java/com/mcmoddev/lib/events/MMDLibRegisterFluids.java +++ b/src/main/java/zone/moddev/mc/mmdlib/events/MMDLibRegisterFluids.java @@ -1,4 +1,4 @@ -package com.mcmoddev.lib.events; +package zone.moddev.mc.mmdlib.events; import net.minecraftforge.fml.common.eventhandler.Event; import net.minecraftforge.fml.common.eventhandler.IContextSetter; diff --git a/src/main/java/com/mcmoddev/lib/events/MMDLibRegisterItemTypes.java b/src/main/java/zone/moddev/mc/mmdlib/events/MMDLibRegisterItemTypes.java old mode 100755 new mode 100644 similarity index 96% rename from src/main/java/com/mcmoddev/lib/events/MMDLibRegisterItemTypes.java rename to src/main/java/zone/moddev/mc/mmdlib/events/MMDLibRegisterItemTypes.java index d1e2f43..cb180a0 --- a/src/main/java/com/mcmoddev/lib/events/MMDLibRegisterItemTypes.java +++ b/src/main/java/zone/moddev/mc/mmdlib/events/MMDLibRegisterItemTypes.java @@ -1,9 +1,9 @@ -package com.mcmoddev.lib.events; +package zone.moddev.mc.mmdlib.events; import javax.annotation.Nullable; -import com.mcmoddev.lib.MMDLib; -import com.mcmoddev.lib.data.Names; +import zone.moddev.mc.mmdlib.MMDLib; +import zone.moddev.mc.mmdlib.data.Names; import net.minecraft.item.Item; import net.minecraftforge.fml.common.eventhandler.Event; @@ -11,7 +11,7 @@ public class MMDLibRegisterItemTypes extends Event implements IContextSetter { private ItemsAPI typeRegistry; - + protected static final class ItemsAPI implements IRegAPI { @Override public void addType(Class clazz, Names name, boolean enabled) { @@ -103,13 +103,13 @@ public void addSorting(Class clazz) { public void addSorting(Class clazz, Class otherClazz) { ItemsWrapper.addSorting(clazz, otherClazz); } - - private static final class ItemsWrapper extends com.mcmoddev.lib.init.Items { + + private static final class ItemsWrapper extends zone.moddev.mc.mmdlib.init.Items { public static void addType(Class clazz, String name, boolean enabled, @Nullable String oredict) { addItemType(name, clazz, enabled, oredict); addClassSorting(clazz); } - + public static void addType(Class clazz, String name, boolean enabled) { addItemType(name, clazz, enabled); addClassSorting(clazz); diff --git a/src/main/java/com/mcmoddev/lib/events/MMDLibRegisterItems.java b/src/main/java/zone/moddev/mc/mmdlib/events/MMDLibRegisterItems.java similarity index 84% rename from src/main/java/com/mcmoddev/lib/events/MMDLibRegisterItems.java rename to src/main/java/zone/moddev/mc/mmdlib/events/MMDLibRegisterItems.java index 280adf1..539b073 100644 --- a/src/main/java/com/mcmoddev/lib/events/MMDLibRegisterItems.java +++ b/src/main/java/zone/moddev/mc/mmdlib/events/MMDLibRegisterItems.java @@ -1,4 +1,4 @@ -package com.mcmoddev.lib.events; +package zone.moddev.mc.mmdlib.events; import net.minecraftforge.fml.common.eventhandler.Event; import net.minecraftforge.fml.common.eventhandler.IContextSetter; diff --git a/src/main/java/com/mcmoddev/lib/events/MMDLibRegisterMaterialProperties.java b/src/main/java/zone/moddev/mc/mmdlib/events/MMDLibRegisterMaterialProperties.java old mode 100755 new mode 100644 similarity index 75% rename from src/main/java/com/mcmoddev/lib/events/MMDLibRegisterMaterialProperties.java rename to src/main/java/zone/moddev/mc/mmdlib/events/MMDLibRegisterMaterialProperties.java index 65bdf39..8ca38d0 --- a/src/main/java/com/mcmoddev/lib/events/MMDLibRegisterMaterialProperties.java +++ b/src/main/java/zone/moddev/mc/mmdlib/events/MMDLibRegisterMaterialProperties.java @@ -1,15 +1,15 @@ -package com.mcmoddev.lib.events; +package zone.moddev.mc.mmdlib.events; import net.minecraftforge.fml.common.eventhandler.Event; import net.minecraftforge.fml.common.eventhandler.IContextSetter; import net.minecraftforge.registries.IForgeRegistry; -import com.mcmoddev.lib.properties.MMDMaterialPropertyBase; -import com.mcmoddev.lib.properties.MaterialProperties; +import zone.moddev.mc.mmdlib.properties.MMDMaterialPropertyBase; +import zone.moddev.mc.mmdlib.properties.MaterialProperties; public class MMDLibRegisterMaterialProperties extends Event implements IContextSetter { private final IForgeRegistry reg; - + public MMDLibRegisterMaterialProperties() { this.reg = MaterialProperties.get(); } diff --git a/src/main/java/com/mcmoddev/lib/events/MMDLibRegisterMaterials.java b/src/main/java/zone/moddev/mc/mmdlib/events/MMDLibRegisterMaterials.java similarity index 84% rename from src/main/java/com/mcmoddev/lib/events/MMDLibRegisterMaterials.java rename to src/main/java/zone/moddev/mc/mmdlib/events/MMDLibRegisterMaterials.java index d890d87..b3a0909 100644 --- a/src/main/java/com/mcmoddev/lib/events/MMDLibRegisterMaterials.java +++ b/src/main/java/zone/moddev/mc/mmdlib/events/MMDLibRegisterMaterials.java @@ -1,4 +1,4 @@ -package com.mcmoddev.lib.events; +package zone.moddev.mc.mmdlib.events; import net.minecraftforge.fml.common.eventhandler.Event; import net.minecraftforge.fml.common.eventhandler.IContextSetter; diff --git a/src/main/java/com/mcmoddev/lib/events/MMLibPreInitSync.java b/src/main/java/zone/moddev/mc/mmdlib/events/MMLibPreInitSync.java similarity index 83% rename from src/main/java/com/mcmoddev/lib/events/MMLibPreInitSync.java rename to src/main/java/zone/moddev/mc/mmdlib/events/MMLibPreInitSync.java index 404ef63..ff0f884 100644 --- a/src/main/java/com/mcmoddev/lib/events/MMLibPreInitSync.java +++ b/src/main/java/zone/moddev/mc/mmdlib/events/MMLibPreInitSync.java @@ -1,4 +1,4 @@ -package com.mcmoddev.lib.events; +package zone.moddev.mc.mmdlib.events; import net.minecraftforge.fml.common.eventhandler.Event; import net.minecraftforge.fml.common.eventhandler.IContextSetter; diff --git a/src/main/java/zone/moddev/mc/mmdlib/events/package-info.java b/src/main/java/zone/moddev/mc/mmdlib/events/package-info.java new file mode 100644 index 0000000..f40653a --- /dev/null +++ b/src/main/java/zone/moddev/mc/mmdlib/events/package-info.java @@ -0,0 +1,4 @@ +@ParametersAreNonnullByDefault +package zone.moddev.mc.mmdlib.events; + +import javax.annotation.ParametersAreNonnullByDefault; diff --git a/src/main/java/com/mcmoddev/lib/exceptions/MaterialNotFoundException.java b/src/main/java/zone/moddev/mc/mmdlib/exceptions/MaterialNotFoundException.java similarity index 80% rename from src/main/java/com/mcmoddev/lib/exceptions/MaterialNotFoundException.java rename to src/main/java/zone/moddev/mc/mmdlib/exceptions/MaterialNotFoundException.java index 0e37af7..f20d0d8 100644 --- a/src/main/java/com/mcmoddev/lib/exceptions/MaterialNotFoundException.java +++ b/src/main/java/zone/moddev/mc/mmdlib/exceptions/MaterialNotFoundException.java @@ -1,12 +1,9 @@ -package com.mcmoddev.lib.exceptions; +package zone.moddev.mc.mmdlib.exceptions; public class MaterialNotFoundException extends Exception { - - /** - * - */ + private static final long serialVersionUID = 1L; - + public MaterialNotFoundException(String materialName) { super(materialName + " was not found in the tab array"); } diff --git a/src/main/java/com/mcmoddev/lib/exceptions/TabNotFoundException.java b/src/main/java/zone/moddev/mc/mmdlib/exceptions/TabNotFoundException.java similarity index 79% rename from src/main/java/com/mcmoddev/lib/exceptions/TabNotFoundException.java rename to src/main/java/zone/moddev/mc/mmdlib/exceptions/TabNotFoundException.java index 00867e2..9b18974 100644 --- a/src/main/java/com/mcmoddev/lib/exceptions/TabNotFoundException.java +++ b/src/main/java/zone/moddev/mc/mmdlib/exceptions/TabNotFoundException.java @@ -1,12 +1,9 @@ -package com.mcmoddev.lib.exceptions; +package zone.moddev.mc.mmdlib.exceptions; public class TabNotFoundException extends Exception { - - /** - * - */ + private static final long serialVersionUID = 1L; - + public TabNotFoundException(String tabName) { super(tabName + " was not found in the tab array"); } diff --git a/src/main/java/com/mcmoddev/lib/feature/BaseFeature.java b/src/main/java/zone/moddev/mc/mmdlib/feature/BaseFeature.java similarity index 99% rename from src/main/java/com/mcmoddev/lib/feature/BaseFeature.java rename to src/main/java/zone/moddev/mc/mmdlib/feature/BaseFeature.java index 76f2036..7b36125 100644 --- a/src/main/java/com/mcmoddev/lib/feature/BaseFeature.java +++ b/src/main/java/zone/moddev/mc/mmdlib/feature/BaseFeature.java @@ -1,4 +1,4 @@ -package com.mcmoddev.lib.feature; +package zone.moddev.mc.mmdlib.feature; import java.awt.Color; import javax.annotation.Nullable; diff --git a/src/main/java/com/mcmoddev/lib/feature/BaseItemStackFeatureHolder.java b/src/main/java/zone/moddev/mc/mmdlib/feature/BaseItemStackFeatureHolder.java similarity index 90% rename from src/main/java/com/mcmoddev/lib/feature/BaseItemStackFeatureHolder.java rename to src/main/java/zone/moddev/mc/mmdlib/feature/BaseItemStackFeatureHolder.java index 0ec57a1..5659bfc 100644 --- a/src/main/java/com/mcmoddev/lib/feature/BaseItemStackFeatureHolder.java +++ b/src/main/java/zone/moddev/mc/mmdlib/feature/BaseItemStackFeatureHolder.java @@ -1,4 +1,4 @@ -package com.mcmoddev.lib.feature; +package zone.moddev.mc.mmdlib.feature; import java.util.List; import java.util.Objects; @@ -6,11 +6,11 @@ import java.util.stream.Stream; import javax.annotation.Nullable; import com.google.common.collect.Lists; -import com.mcmoddev.lib.container.IWidgetContainer; -import com.mcmoddev.lib.container.gui.GuiContext; -import com.mcmoddev.lib.container.gui.IWidgetGui; -import com.mcmoddev.lib.container.gui.layout.VerticalStackLayout; -import com.mcmoddev.lib.container.widget.IWidget; +import zone.moddev.mc.mmdlib.container.IWidgetContainer; +import zone.moddev.mc.mmdlib.container.gui.GuiContext; +import zone.moddev.mc.mmdlib.container.gui.IWidgetGui; +import zone.moddev.mc.mmdlib.container.gui.layout.VerticalStackLayout; +import zone.moddev.mc.mmdlib.container.widget.IWidget; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraftforge.common.util.Constants; diff --git a/src/main/java/com/mcmoddev/lib/feature/FeatureDirtyLevel.java b/src/main/java/zone/moddev/mc/mmdlib/feature/FeatureDirtyLevel.java similarity index 97% rename from src/main/java/com/mcmoddev/lib/feature/FeatureDirtyLevel.java rename to src/main/java/zone/moddev/mc/mmdlib/feature/FeatureDirtyLevel.java index b1e309d..a592d0a 100644 --- a/src/main/java/com/mcmoddev/lib/feature/FeatureDirtyLevel.java +++ b/src/main/java/zone/moddev/mc/mmdlib/feature/FeatureDirtyLevel.java @@ -1,4 +1,4 @@ -package com.mcmoddev.lib.feature; +package zone.moddev.mc.mmdlib.feature; /** * Used to specify the level of dirtiness a feature has. diff --git a/src/main/java/com/mcmoddev/lib/feature/FluidTankFeature.java b/src/main/java/zone/moddev/mc/mmdlib/feature/FluidTankFeature.java similarity index 87% rename from src/main/java/com/mcmoddev/lib/feature/FluidTankFeature.java rename to src/main/java/zone/moddev/mc/mmdlib/feature/FluidTankFeature.java index 85357dd..b85def5 100644 --- a/src/main/java/com/mcmoddev/lib/feature/FluidTankFeature.java +++ b/src/main/java/zone/moddev/mc/mmdlib/feature/FluidTankFeature.java @@ -1,30 +1,30 @@ -package com.mcmoddev.lib.feature; +package zone.moddev.mc.mmdlib.feature; import java.util.Collections; import java.util.List; import java.util.function.Predicate; import javax.annotation.Nullable; -import com.mcmoddev.lib.capability.ICapabilitiesContainer; -import com.mcmoddev.lib.container.IWidgetContainer; -import com.mcmoddev.lib.container.gui.BaseWidgetGui; -import com.mcmoddev.lib.container.gui.FluidWidgetGui; -import com.mcmoddev.lib.container.gui.GuiContext; -import com.mcmoddev.lib.container.gui.GuiPieceLayer; -import com.mcmoddev.lib.container.gui.GuiSprites; -import com.mcmoddev.lib.container.gui.IWidgetGui; -import com.mcmoddev.lib.container.gui.MMDGuiContainer; -import com.mcmoddev.lib.container.gui.SpriteBackgroundGui; -import com.mcmoddev.lib.container.gui.SpriteForegroundGui; -import com.mcmoddev.lib.container.gui.layout.CanvasLayout; -import com.mcmoddev.lib.container.widget.ActionWidget; -import com.mcmoddev.lib.container.widget.IWidget; -import com.mcmoddev.lib.inventory.FilteredFluidTank; -import com.mcmoddev.lib.inventory.FluidTankHandler; -import com.mcmoddev.lib.inventory.IFluidTankModifiable; -import com.mcmoddev.lib.inventory.IResponsiveFluidTank; -import com.mcmoddev.lib.inventory.ResponsiveFluidTankWrapper; -import com.mcmoddev.lib.inventory.SimpleFluidTank; -import com.mcmoddev.lib.util.FluidUtils; +import zone.moddev.mc.mmdlib.capability.ICapabilitiesContainer; +import zone.moddev.mc.mmdlib.container.IWidgetContainer; +import zone.moddev.mc.mmdlib.container.gui.BaseWidgetGui; +import zone.moddev.mc.mmdlib.container.gui.FluidWidgetGui; +import zone.moddev.mc.mmdlib.container.gui.GuiContext; +import zone.moddev.mc.mmdlib.container.gui.GuiPieceLayer; +import zone.moddev.mc.mmdlib.container.gui.GuiSprites; +import zone.moddev.mc.mmdlib.container.gui.IWidgetGui; +import zone.moddev.mc.mmdlib.container.gui.MMDGuiContainer; +import zone.moddev.mc.mmdlib.container.gui.SpriteBackgroundGui; +import zone.moddev.mc.mmdlib.container.gui.SpriteForegroundGui; +import zone.moddev.mc.mmdlib.container.gui.layout.CanvasLayout; +import zone.moddev.mc.mmdlib.container.widget.ActionWidget; +import zone.moddev.mc.mmdlib.container.widget.IWidget; +import zone.moddev.mc.mmdlib.inventory.FilteredFluidTank; +import zone.moddev.mc.mmdlib.inventory.FluidTankHandler; +import zone.moddev.mc.mmdlib.inventory.IFluidTankModifiable; +import zone.moddev.mc.mmdlib.inventory.IResponsiveFluidTank; +import zone.moddev.mc.mmdlib.inventory.ResponsiveFluidTankWrapper; +import zone.moddev.mc.mmdlib.inventory.SimpleFluidTank; +import zone.moddev.mc.mmdlib.util.FluidUtils; import net.minecraft.client.Minecraft; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayerMP; @@ -237,7 +237,7 @@ public boolean mouseReleased(final MMDGuiContainer container, final int mouseX, boolean canDrain = FluidTankFeature.this.supportsClickToDrain(); if (canFill | canDrain) { - // TODO: maybe just do the testing on server side too... to be sure everything is in sync + // The client selects an action from its held stack; the server performs the transfer. final ItemStack holdingStack = Minecraft.getMinecraft().player.inventory.getItemStack(); canFill = canFill && FluidUtils.canFillFrom(FluidTankFeature.this.getExternalTank(), holdingStack); canDrain = canDrain && FluidUtils.canDrainInto(FluidTankFeature.this.getExternalTank(), holdingStack); diff --git a/src/main/java/com/mcmoddev/lib/feature/ForgeEnergyBatteryFeature.java b/src/main/java/zone/moddev/mc/mmdlib/feature/ForgeEnergyBatteryFeature.java similarity index 85% rename from src/main/java/com/mcmoddev/lib/feature/ForgeEnergyBatteryFeature.java rename to src/main/java/zone/moddev/mc/mmdlib/feature/ForgeEnergyBatteryFeature.java index 18e56c3..4a09437 100644 --- a/src/main/java/com/mcmoddev/lib/feature/ForgeEnergyBatteryFeature.java +++ b/src/main/java/zone/moddev/mc/mmdlib/feature/ForgeEnergyBatteryFeature.java @@ -1,19 +1,19 @@ -package com.mcmoddev.lib.feature; +package zone.moddev.mc.mmdlib.feature; import java.util.List; import javax.annotation.Nullable; -import com.mcmoddev.lib.container.IWidgetContainer; -import com.mcmoddev.lib.container.gui.BaseWidgetGui; -import com.mcmoddev.lib.container.gui.GuiContext; -import com.mcmoddev.lib.container.gui.GuiPieceLayer; -import com.mcmoddev.lib.container.gui.GuiSprites; -import com.mcmoddev.lib.container.gui.IGuiSprite; -import com.mcmoddev.lib.container.gui.IWidgetGui; -import com.mcmoddev.lib.container.gui.MMDGuiContainer; -import com.mcmoddev.lib.container.gui.SpriteBackgroundGui; -import com.mcmoddev.lib.container.gui.layout.CanvasLayout; -import com.mcmoddev.lib.container.gui.util.Size2D; -import com.mcmoddev.lib.energy.ForgeEnergyStorage; +import zone.moddev.mc.mmdlib.container.IWidgetContainer; +import zone.moddev.mc.mmdlib.container.gui.BaseWidgetGui; +import zone.moddev.mc.mmdlib.container.gui.GuiContext; +import zone.moddev.mc.mmdlib.container.gui.GuiPieceLayer; +import zone.moddev.mc.mmdlib.container.gui.GuiSprites; +import zone.moddev.mc.mmdlib.container.gui.IGuiSprite; +import zone.moddev.mc.mmdlib.container.gui.IWidgetGui; +import zone.moddev.mc.mmdlib.container.gui.MMDGuiContainer; +import zone.moddev.mc.mmdlib.container.gui.SpriteBackgroundGui; +import zone.moddev.mc.mmdlib.container.gui.layout.CanvasLayout; +import zone.moddev.mc.mmdlib.container.gui.util.Size2D; +import zone.moddev.mc.mmdlib.energy.ForgeEnergyStorage; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.EnumFacing; import net.minecraft.util.math.MathHelper; @@ -43,7 +43,7 @@ public ForgeEnergyBatteryFeature(final String key, final int initial, final int protected void onChanged() { super.onChanged(); - // should only care about sending to client if gui is open + // Mark GUI energy data for synchronization when the stored charge changes. ForgeEnergyBatteryFeature.this.setDirty(FeatureDirtyLevel.GUI); } }; @@ -66,8 +66,7 @@ public void deserializeNBT(final NBTTagCompound nbt) { this.battery.deserializeNBT(nbt.getCompoundTag("battery")); } // else { -// // TODO: reset the battery or something -// } + } @Override diff --git a/src/main/java/com/mcmoddev/lib/feature/IClientFeature.java b/src/main/java/zone/moddev/mc/mmdlib/feature/IClientFeature.java similarity index 91% rename from src/main/java/com/mcmoddev/lib/feature/IClientFeature.java rename to src/main/java/zone/moddev/mc/mmdlib/feature/IClientFeature.java index 72df1fb..396ee8c 100644 --- a/src/main/java/com/mcmoddev/lib/feature/IClientFeature.java +++ b/src/main/java/zone/moddev/mc/mmdlib/feature/IClientFeature.java @@ -1,4 +1,4 @@ -package com.mcmoddev.lib.feature; +package zone.moddev.mc.mmdlib.feature; import net.minecraft.nbt.NBTTagCompound; diff --git a/src/main/java/com/mcmoddev/lib/feature/IFeature.java b/src/main/java/zone/moddev/mc/mmdlib/feature/IFeature.java similarity index 86% rename from src/main/java/com/mcmoddev/lib/feature/IFeature.java rename to src/main/java/zone/moddev/mc/mmdlib/feature/IFeature.java index ac6ec22..7ce33ad 100644 --- a/src/main/java/com/mcmoddev/lib/feature/IFeature.java +++ b/src/main/java/zone/moddev/mc/mmdlib/feature/IFeature.java @@ -1,9 +1,9 @@ -package com.mcmoddev.lib.feature; +package zone.moddev.mc.mmdlib.feature; import javax.annotation.Nullable; -import com.mcmoddev.lib.capability.ICapabilitiesContainer; -import com.mcmoddev.lib.container.gui.IWidgetGui; -import com.mcmoddev.lib.container.widget.IWidget; +import zone.moddev.mc.mmdlib.capability.ICapabilitiesContainer; +import zone.moddev.mc.mmdlib.container.gui.IWidgetGui; +import zone.moddev.mc.mmdlib.container.widget.IWidget; import net.minecraft.nbt.NBTTagCompound; import net.minecraftforge.common.util.INBTSerializable; diff --git a/src/main/java/com/mcmoddev/lib/feature/IFeatureHolder.java b/src/main/java/zone/moddev/mc/mmdlib/feature/IFeatureHolder.java similarity index 95% rename from src/main/java/com/mcmoddev/lib/feature/IFeatureHolder.java rename to src/main/java/zone/moddev/mc/mmdlib/feature/IFeatureHolder.java index 997ce62..c4e6e51 100644 --- a/src/main/java/com/mcmoddev/lib/feature/IFeatureHolder.java +++ b/src/main/java/zone/moddev/mc/mmdlib/feature/IFeatureHolder.java @@ -1,4 +1,4 @@ -package com.mcmoddev.lib.feature; +package zone.moddev.mc.mmdlib.feature; import java.util.ArrayList; import java.util.List; @@ -25,11 +25,11 @@ public interface IFeatureHolder { /** * Notifies the feature holder that one of the features changed. - * @param feature The feature that changed. - * @param level The level of change. - * @implNote This is usually called by the container features themselves. Do not call directly. + * Implementation note: This is usually called by the container features themselves. Do not call directly. * For tile entities that hold features this should be a hint that a call to {@link TileEntity#markDirty()} * should be made. And for item stack holders that the stack's NBT should be updated. + * @param feature The feature that changed. + * @param level The level of change. */ void featureChanged(IFeature feature, FeatureDirtyLevel level); diff --git a/src/main/java/com/mcmoddev/lib/feature/IFeatureHolderProxy.java b/src/main/java/zone/moddev/mc/mmdlib/feature/IFeatureHolderProxy.java similarity index 74% rename from src/main/java/com/mcmoddev/lib/feature/IFeatureHolderProxy.java rename to src/main/java/zone/moddev/mc/mmdlib/feature/IFeatureHolderProxy.java index 7560cea..c9b070d 100644 --- a/src/main/java/com/mcmoddev/lib/feature/IFeatureHolderProxy.java +++ b/src/main/java/zone/moddev/mc/mmdlib/feature/IFeatureHolderProxy.java @@ -1,11 +1,11 @@ -package com.mcmoddev.lib.feature; +package zone.moddev.mc.mmdlib.feature; import javax.annotation.Nullable; /** * Can be implemented by tile entities that are not directly feature holders. */ -// TODO: implement this as a capability too +// Delegates directly to a feature holder; this interface does not expose a capability. public interface IFeatureHolderProxy { /** * Gets the actual feature holder instance. diff --git a/src/main/java/com/mcmoddev/lib/feature/IItemStackFeatureHolder.java b/src/main/java/zone/moddev/mc/mmdlib/feature/IItemStackFeatureHolder.java similarity index 95% rename from src/main/java/com/mcmoddev/lib/feature/IItemStackFeatureHolder.java rename to src/main/java/zone/moddev/mc/mmdlib/feature/IItemStackFeatureHolder.java index a5f9ef1..b9c4481 100644 --- a/src/main/java/com/mcmoddev/lib/feature/IItemStackFeatureHolder.java +++ b/src/main/java/zone/moddev/mc/mmdlib/feature/IItemStackFeatureHolder.java @@ -1,4 +1,4 @@ -package com.mcmoddev.lib.feature; +package zone.moddev.mc.mmdlib.feature; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; diff --git a/src/main/java/com/mcmoddev/lib/feature/IServerFeature.java b/src/main/java/zone/moddev/mc/mmdlib/feature/IServerFeature.java similarity index 98% rename from src/main/java/com/mcmoddev/lib/feature/IServerFeature.java rename to src/main/java/zone/moddev/mc/mmdlib/feature/IServerFeature.java index 9632826..7852d49 100644 --- a/src/main/java/com/mcmoddev/lib/feature/IServerFeature.java +++ b/src/main/java/zone/moddev/mc/mmdlib/feature/IServerFeature.java @@ -1,4 +1,4 @@ -package com.mcmoddev.lib.feature; +package zone.moddev.mc.mmdlib.feature; import javax.annotation.Nullable; import net.minecraft.inventory.Container; diff --git a/src/main/java/com/mcmoddev/lib/feature/ISidedFeature.java b/src/main/java/zone/moddev/mc/mmdlib/feature/ISidedFeature.java similarity index 98% rename from src/main/java/com/mcmoddev/lib/feature/ISidedFeature.java rename to src/main/java/zone/moddev/mc/mmdlib/feature/ISidedFeature.java index f299328..0530645 100644 --- a/src/main/java/com/mcmoddev/lib/feature/ISidedFeature.java +++ b/src/main/java/zone/moddev/mc/mmdlib/feature/ISidedFeature.java @@ -1,4 +1,4 @@ -package com.mcmoddev.lib.feature; +package zone.moddev.mc.mmdlib.feature; import java.util.Arrays; import java.util.List; diff --git a/src/main/java/com/mcmoddev/lib/feature/ItemInventoryFeature.java b/src/main/java/zone/moddev/mc/mmdlib/feature/ItemInventoryFeature.java similarity index 78% rename from src/main/java/com/mcmoddev/lib/feature/ItemInventoryFeature.java rename to src/main/java/zone/moddev/mc/mmdlib/feature/ItemInventoryFeature.java index 7e0692c..9f03978 100644 --- a/src/main/java/com/mcmoddev/lib/feature/ItemInventoryFeature.java +++ b/src/main/java/zone/moddev/mc/mmdlib/feature/ItemInventoryFeature.java @@ -1,19 +1,19 @@ -package com.mcmoddev.lib.feature; +package zone.moddev.mc.mmdlib.feature; import java.util.ArrayList; import java.util.List; import java.util.function.BiPredicate; import javax.annotation.Nonnull; import javax.annotation.Nullable; -import com.mcmoddev.lib.capability.ICapabilitiesContainer; -import com.mcmoddev.lib.container.IWidgetContainer; -import com.mcmoddev.lib.container.gui.GuiContext; -import com.mcmoddev.lib.container.gui.IWidgetGui; -import com.mcmoddev.lib.container.gui.InventoryGrid; -import com.mcmoddev.lib.container.widget.IWidget; -import com.mcmoddev.lib.container.widget.ItemStackHandlerWidget; -import com.mcmoddev.lib.inventory.FilteredItemHandler; -import com.mcmoddev.lib.inventory.ItemHandlerWrapper; +import zone.moddev.mc.mmdlib.capability.ICapabilitiesContainer; +import zone.moddev.mc.mmdlib.container.IWidgetContainer; +import zone.moddev.mc.mmdlib.container.gui.GuiContext; +import zone.moddev.mc.mmdlib.container.gui.IWidgetGui; +import zone.moddev.mc.mmdlib.container.gui.InventoryGrid; +import zone.moddev.mc.mmdlib.container.widget.IWidget; +import zone.moddev.mc.mmdlib.container.widget.ItemStackHandlerWidget; +import zone.moddev.mc.mmdlib.inventory.FilteredItemHandler; +import zone.moddev.mc.mmdlib.inventory.ItemHandlerWrapper; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.EnumFacing; @@ -34,30 +34,19 @@ public class ItemInventoryFeature extends BaseFeature implements IClientFeature, private int overlayAlpha = -1; private int columns = 9; -// private Function validStacksGetter; - public ItemInventoryFeature(final String key, final int slots) { - this(key, slots, null, null/*, null*/); + this(key, slots, null, null); } public ItemInventoryFeature(final String key, final int slots, @Nullable final BiPredicate insertFilter, @Nullable final BiPredicate extractFilter) { - this(key, new ItemStackHandler(slots), insertFilter, extractFilter/*, null*/); + this(key, new ItemStackHandler(slots), insertFilter, extractFilter); } - // TODO: actually implement this at some point -// public ItemInventoryFeature(String key, int slots, -// @Nullable BiPredicate insertFilter, -// @Nullable BiPredicate extractFilter, -// @Nullable Function validStacksGetter) { -// this(key, new ItemStackHandler(slots), insertFilter, extractFilter, validStacksGetter); -// } - public ItemInventoryFeature(final String key, final IItemHandlerModifiable handler, @Nullable final BiPredicate insertFilter, - @Nullable final BiPredicate extractFilter/*, - @Nullable Function validStacksGetter*/) { + @Nullable final BiPredicate extractFilter) { super(key); this.internalHandler = new ItemHandlerWrapper(handler) { @@ -68,8 +57,6 @@ protected void onChanged(final int slot) { }; this.externalHandler = new FilteredItemHandler(this.internalHandler, insertFilter, extractFilter); -// // TODO: make this happen into an "ghosted" Slot -// this.validStacksGetter = validStacksGetter; } public IItemHandlerModifiable getInternalHandler() { @@ -83,7 +70,7 @@ public IItemHandlerModifiable getExternalHandler() { @Override protected void writeToNBT(final NBTTagCompound tag) { if (this.internalHandler instanceof INBTSerializable) { - // TODO: hopefully this won't cause problems, wish java had real generics + // Serializable item handlers are expected to use compound tags. //noinspection unchecked final INBTSerializable serializable = (INBTSerializable)this.internalHandler; @@ -94,14 +81,14 @@ protected void writeToNBT(final NBTTagCompound tag) { @Override public void deserializeNBT(final NBTTagCompound nbt) { if (this.internalHandler instanceof INBTSerializable) { - // TODO: hopefully this won't cause problems, wish java had real generics + // Serializable item handlers are expected to use compound tags. //noinspection unchecked final INBTSerializable serializable = (INBTSerializable) this.internalHandler; if (nbt.hasKey("stacks", Constants.NBT.TAG_COMPOUND)) { final NBTTagCompound stacksNBT = nbt.getCompoundTag("stacks"); serializable.deserializeNBT(stacksNBT); } else { - // TODO: find a better way to reset an item stack handler + // Clear every slot when the saved inventory tag is absent. for(int slot = 0; slot < this.internalHandler.getSlots(); slot++) { this.internalHandler.setStackInSlot(slot, ItemStack.EMPTY); } diff --git a/src/main/java/com/mcmoddev/lib/feature/PlayerInventoryFeature.java b/src/main/java/zone/moddev/mc/mmdlib/feature/PlayerInventoryFeature.java similarity index 71% rename from src/main/java/com/mcmoddev/lib/feature/PlayerInventoryFeature.java rename to src/main/java/zone/moddev/mc/mmdlib/feature/PlayerInventoryFeature.java index 76c0c25..6483bf3 100644 --- a/src/main/java/com/mcmoddev/lib/feature/PlayerInventoryFeature.java +++ b/src/main/java/zone/moddev/mc/mmdlib/feature/PlayerInventoryFeature.java @@ -1,15 +1,15 @@ -package com.mcmoddev.lib.feature; +package zone.moddev.mc.mmdlib.feature; import java.util.ArrayList; import java.util.List; -import com.mcmoddev.lib.container.IWidgetContainer; -import com.mcmoddev.lib.container.PlayerInventory; -import com.mcmoddev.lib.container.PlayerInventoryInfo; -import com.mcmoddev.lib.container.gui.GuiContext; -import com.mcmoddev.lib.container.gui.IWidgetGui; -import com.mcmoddev.lib.container.gui.InventoryGrid; -import com.mcmoddev.lib.container.widget.IWidget; -import com.mcmoddev.lib.container.widget.PlayerInventoryWidget; +import zone.moddev.mc.mmdlib.container.IWidgetContainer; +import zone.moddev.mc.mmdlib.container.PlayerInventory; +import zone.moddev.mc.mmdlib.container.PlayerInventoryInfo; +import zone.moddev.mc.mmdlib.container.gui.GuiContext; +import zone.moddev.mc.mmdlib.container.gui.IWidgetGui; +import zone.moddev.mc.mmdlib.container.gui.InventoryGrid; +import zone.moddev.mc.mmdlib.container.widget.IWidget; +import zone.moddev.mc.mmdlib.container.widget.PlayerInventoryWidget; import net.minecraft.nbt.NBTTagCompound; public class PlayerInventoryFeature extends BaseFeature implements IWidgetContainer { @@ -34,12 +34,12 @@ public PlayerInventoryFeature(final String key, final PlayerInventoryInfo invent @Override protected void writeToNBT(final NBTTagCompound tag) { - // nothing else here, the vanilla container code should sort the item stacks out + // Vanilla container slots handle inventory synchronization. } @Override public void deserializeNBT(final NBTTagCompound nbt) { - // nothing else here, the vanilla container code should sort the item stacks out + // Vanilla container slots handle inventory synchronization. } @SuppressWarnings("serial") diff --git a/src/main/java/com/mcmoddev/lib/feature/SidedFeatureWrapper.java b/src/main/java/zone/moddev/mc/mmdlib/feature/SidedFeatureWrapper.java similarity index 98% rename from src/main/java/com/mcmoddev/lib/feature/SidedFeatureWrapper.java rename to src/main/java/zone/moddev/mc/mmdlib/feature/SidedFeatureWrapper.java index 1f26178..32f519f 100644 --- a/src/main/java/com/mcmoddev/lib/feature/SidedFeatureWrapper.java +++ b/src/main/java/zone/moddev/mc/mmdlib/feature/SidedFeatureWrapper.java @@ -1,4 +1,4 @@ -package com.mcmoddev.lib.feature; +package zone.moddev.mc.mmdlib.feature; import java.util.Arrays; import java.util.function.Function; @@ -6,7 +6,7 @@ import java.util.stream.Collectors; import javax.annotation.Nonnull; import javax.annotation.Nullable; -import com.mcmoddev.lib.capability.ICapabilitiesContainer; +import zone.moddev.mc.mmdlib.capability.ICapabilitiesContainer; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagIntArray; import net.minecraft.util.EnumFacing; diff --git a/src/main/java/com/mcmoddev/lib/feature/SimpleWorkFeature.java b/src/main/java/zone/moddev/mc/mmdlib/feature/SimpleWorkFeature.java similarity index 96% rename from src/main/java/com/mcmoddev/lib/feature/SimpleWorkFeature.java rename to src/main/java/zone/moddev/mc/mmdlib/feature/SimpleWorkFeature.java index a1f6a1c..7b5eb21 100644 --- a/src/main/java/com/mcmoddev/lib/feature/SimpleWorkFeature.java +++ b/src/main/java/zone/moddev/mc/mmdlib/feature/SimpleWorkFeature.java @@ -1,7 +1,7 @@ -package com.mcmoddev.lib.feature; +package zone.moddev.mc.mmdlib.feature; import java.util.function.Supplier; -import com.mcmoddev.lib.energy.ForgeEnergyStorage; +import zone.moddev.mc.mmdlib.energy.ForgeEnergyStorage; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.ITickable; diff --git a/src/main/java/com/mcmoddev/lib/capability/package-info.java b/src/main/java/zone/moddev/mc/mmdlib/feature/package-info.java similarity index 80% rename from src/main/java/com/mcmoddev/lib/capability/package-info.java rename to src/main/java/zone/moddev/mc/mmdlib/feature/package-info.java index 579b9ad..8cbf833 100644 --- a/src/main/java/com/mcmoddev/lib/capability/package-info.java +++ b/src/main/java/zone/moddev/mc/mmdlib/feature/package-info.java @@ -1,6 +1,6 @@ @ParametersAreNonnullByDefault @MethodsReturnNonnullByDefault -package com.mcmoddev.lib.capability; +package zone.moddev.mc.mmdlib.feature; import javax.annotation.ParametersAreNonnullByDefault; import mcp.MethodsReturnNonnullByDefault; diff --git a/src/main/java/com/mcmoddev/lib/fluids/CustomFluid.java b/src/main/java/zone/moddev/mc/mmdlib/fluids/CustomFluid.java similarity index 94% rename from src/main/java/com/mcmoddev/lib/fluids/CustomFluid.java rename to src/main/java/zone/moddev/mc/mmdlib/fluids/CustomFluid.java index 588c61c..26df078 100644 --- a/src/main/java/com/mcmoddev/lib/fluids/CustomFluid.java +++ b/src/main/java/zone/moddev/mc/mmdlib/fluids/CustomFluid.java @@ -1,7 +1,7 @@ -package com.mcmoddev.lib.fluids; +package zone.moddev.mc.mmdlib.fluids; -import com.mcmoddev.lib.init.Materials; -import com.mcmoddev.lib.material.MMDMaterial; +import zone.moddev.mc.mmdlib.init.Materials; +import zone.moddev.mc.mmdlib.material.MMDMaterial; import net.minecraft.util.ResourceLocation; import net.minecraft.util.text.TextComponentTranslation; diff --git a/src/main/java/zone/moddev/mc/mmdlib/fluids/package-info.java b/src/main/java/zone/moddev/mc/mmdlib/fluids/package-info.java new file mode 100644 index 0000000..fcdf1a2 --- /dev/null +++ b/src/main/java/zone/moddev/mc/mmdlib/fluids/package-info.java @@ -0,0 +1,4 @@ +@ParametersAreNonnullByDefault +package zone.moddev.mc.mmdlib.fluids; + +import javax.annotation.ParametersAreNonnullByDefault; diff --git a/src/main/java/com/mcmoddev/lib/init/Blocks.java b/src/main/java/zone/moddev/mc/mmdlib/init/Blocks.java old mode 100755 new mode 100644 similarity index 95% rename from src/main/java/com/mcmoddev/lib/init/Blocks.java rename to src/main/java/zone/moddev/mc/mmdlib/init/Blocks.java index d907572..3003fe0 --- a/src/main/java/com/mcmoddev/lib/init/Blocks.java +++ b/src/main/java/zone/moddev/mc/mmdlib/init/Blocks.java @@ -1,4 +1,4 @@ -package com.mcmoddev.lib.init; +package zone.moddev.mc.mmdlib.init; import java.lang.reflect.Constructor; import java.util.ArrayList; @@ -12,14 +12,14 @@ import com.google.common.collect.BiMap; import com.google.common.collect.HashBiMap; -import com.mcmoddev.lib.MMDLib; -import com.mcmoddev.lib.block.BlockMMDBookshelf; -import com.mcmoddev.lib.block.BlockMMDSlab; -import com.mcmoddev.lib.data.Names; -import com.mcmoddev.lib.data.SharedStrings; -import com.mcmoddev.lib.item.ItemMMDBlock; -import com.mcmoddev.lib.material.MMDMaterial; -import com.mcmoddev.lib.util.Oredicts; +import zone.moddev.mc.mmdlib.MMDLib; +import zone.moddev.mc.mmdlib.block.BlockMMDBookshelf; +import zone.moddev.mc.mmdlib.block.BlockMMDSlab; +import zone.moddev.mc.mmdlib.data.Names; +import zone.moddev.mc.mmdlib.data.SharedStrings; +import zone.moddev.mc.mmdlib.item.ItemMMDBlock; +import zone.moddev.mc.mmdlib.material.MMDMaterial; +import zone.moddev.mc.mmdlib.util.Oredicts; import net.minecraft.block.Block; import net.minecraft.block.BlockAnvil; @@ -50,9 +50,6 @@ protected Blocks() { throw new IllegalAccessError(SharedStrings.NOT_INSTANTIABLE); } - /** - * - */ public static void init() { // do nothing! } @@ -134,7 +131,7 @@ protected static Block create(@Nonnull final Names name, @Nonnull final MMDMater if ((block != null) && glows) { block.setLightLevel(0.5f); } - + return block; } @@ -319,11 +316,11 @@ protected static void addBlockType(@Nonnull final Names name, @Nullable final String oredict) { addBlockType(name.toString(), clazz, enabled, oredict); } - + protected static void addBlockType(@Nonnull final String name, @Nonnull final Class clazz, @Nonnull final Boolean enabled, @Nullable final String oredict) { - com.mcmoddev.lib.MMDLib.logger.debug("Register Block Type: {}/{}/{}/{}", name, clazz.getName(), enabled, oredict==null?"null":"".contentEquals(oredict)?"EMPTY":oredict); + zone.moddev.mc.mmdlib.MMDLib.logger.debug("Register Block Type: {}/{}/{}/{}", name, clazz.getName(), enabled, oredict==null?"null":"".contentEquals(oredict)?"EMPTY":oredict); if (!nameToClass.containsKey(name)) { nameToClass.put(name, clazz); } diff --git a/src/main/java/com/mcmoddev/lib/init/Fluids.java b/src/main/java/zone/moddev/mc/mmdlib/init/Fluids.java similarity index 96% rename from src/main/java/com/mcmoddev/lib/init/Fluids.java rename to src/main/java/zone/moddev/mc/mmdlib/init/Fluids.java index 8d99904..4c69a31 100644 --- a/src/main/java/com/mcmoddev/lib/init/Fluids.java +++ b/src/main/java/zone/moddev/mc/mmdlib/init/Fluids.java @@ -1,4 +1,4 @@ -package com.mcmoddev.lib.init; +package zone.moddev.mc.mmdlib.init; import java.util.Collections; import java.util.Map; @@ -8,9 +8,9 @@ import com.google.common.collect.BiMap; import com.google.common.collect.HashBiMap; -import com.mcmoddev.lib.data.SharedStrings; -import com.mcmoddev.lib.fluids.CustomFluid; -import com.mcmoddev.lib.material.MMDMaterial; +import zone.moddev.mc.mmdlib.data.SharedStrings; +import zone.moddev.mc.mmdlib.fluids.CustomFluid; +import zone.moddev.mc.mmdlib.material.MMDMaterial; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.item.ItemBlock; @@ -37,9 +37,6 @@ protected Fluids() { throw new IllegalAccessError(SharedStrings.NOT_INSTANTIABLE); } - /** - * - */ public static void init() { } diff --git a/src/main/java/com/mcmoddev/lib/init/ItemGroups.java b/src/main/java/zone/moddev/mc/mmdlib/init/ItemGroups.java similarity index 96% rename from src/main/java/com/mcmoddev/lib/init/ItemGroups.java rename to src/main/java/zone/moddev/mc/mmdlib/init/ItemGroups.java index 67e8820..38d94b4 100644 --- a/src/main/java/com/mcmoddev/lib/init/ItemGroups.java +++ b/src/main/java/zone/moddev/mc/mmdlib/init/ItemGroups.java @@ -1,4 +1,4 @@ -package com.mcmoddev.lib.init; +package zone.moddev.mc.mmdlib.init; import java.util.ArrayList; import java.util.Collections; @@ -10,8 +10,8 @@ import javax.annotation.Nonnull; import javax.annotation.Nullable; -import com.mcmoddev.lib.MMDLib; -import com.mcmoddev.lib.data.SharedStrings; +import zone.moddev.mc.mmdlib.MMDLib; +import zone.moddev.mc.mmdlib.data.SharedStrings; import net.minecraft.item.ItemStack; import net.minecraftforge.fml.common.Loader; @@ -94,9 +94,6 @@ protected static MMDCreativeTab addTab(@Nonnull final String name, return itemGroupsByFullTabName.get(internalTabName); } - /** - * - */ public static void dumpTabs() { MMDLib.logger.fatal("CREATIVE TABS (by internal reference name):"); itemGroupsByFullTabName.entrySet().stream().forEach(ent -> MMDLib.logger.fatal("Tab fullname: %s, object: %s", ent.getKey(), ent.getValue())); diff --git a/src/main/java/com/mcmoddev/lib/init/Items.java b/src/main/java/zone/moddev/mc/mmdlib/init/Items.java similarity index 88% rename from src/main/java/com/mcmoddev/lib/init/Items.java rename to src/main/java/zone/moddev/mc/mmdlib/init/Items.java index 6b1ebfb..88e06e4 100644 --- a/src/main/java/com/mcmoddev/lib/init/Items.java +++ b/src/main/java/zone/moddev/mc/mmdlib/init/Items.java @@ -1,4 +1,4 @@ -package com.mcmoddev.lib.init; +package zone.moddev.mc.mmdlib.init; import java.lang.reflect.Array; import java.lang.reflect.Constructor; @@ -17,17 +17,17 @@ import com.google.common.collect.BiMap; import com.google.common.collect.HashBiMap; -import com.mcmoddev.lib.MMDLib; -import com.mcmoddev.lib.data.Names; -import com.mcmoddev.lib.data.SharedStrings; -import com.mcmoddev.lib.integration.plugins.Mekanism; -import com.mcmoddev.lib.item.GenericMMDItem; -import com.mcmoddev.lib.item.ItemMMDArmor; -import com.mcmoddev.lib.material.IMMDObject; -import com.mcmoddev.lib.material.MMDMaterial; -import com.mcmoddev.lib.material.MMDMaterialType.MaterialType; -import com.mcmoddev.lib.util.Config.Options; -import com.mcmoddev.lib.util.Oredicts; +import zone.moddev.mc.mmdlib.MMDLib; +import zone.moddev.mc.mmdlib.data.Names; +import zone.moddev.mc.mmdlib.data.SharedStrings; +import zone.moddev.mc.mmdlib.integration.plugins.Mekanism; +import zone.moddev.mc.mmdlib.item.GenericMMDItem; +import zone.moddev.mc.mmdlib.item.ItemMMDArmor; +import zone.moddev.mc.mmdlib.material.IMMDObject; +import zone.moddev.mc.mmdlib.material.MMDMaterial; +import zone.moddev.mc.mmdlib.material.MMDMaterialType.MaterialType; +import zone.moddev.mc.mmdlib.util.Config.Options; +import zone.moddev.mc.mmdlib.util.Oredicts; import net.minecraft.block.Block; import net.minecraft.creativetab.CreativeTabs; @@ -56,8 +56,8 @@ public abstract class Items { private static final Map, Integer> classSortingValues = new HashMap<>(); private static final Map materialSortingValues = new HashMap<>(); - // public static UniversalBucket universal_bucket; // now automatically added by - // Forge + // Forge registers the universal bucket automatically. + protected static final int BLOCK_BURN_TIME = 16000; protected static final int INGOT_BURN_TIME = 1600; protected static final int NUGGET_BURN_TIME = 200; @@ -71,11 +71,11 @@ protected Items() { protected static int getMaxSortingValue() { return ss; } - + protected static void addClassSorting(Class clazz) { - classSortingValues.put(clazz, ++ss * 10000); + classSortingValues.put(clazz, ++ss * 10000); } - + protected static void addClassSorting(Class clazz, Class otherClazz) { classSortingValues.put(clazz, classSortingValues.get(otherClazz)); } @@ -84,9 +84,7 @@ public static void dumpNameToEnabled() { MMDLib.logger.debug("Dumping nameToEnabled ({} entries)", nameToEnabled.entrySet().size()); nameToEnabled.entrySet().stream().forEach(ent -> MMDLib.logger.debug("name {} is {}", ent.getKey(), ent.getValue()?"enabled":"disabled")); } - /** - * - */ + public static void init() { try { expandCombatArrays(net.minecraft.item.ItemAxe.class); @@ -366,7 +364,7 @@ protected static Item createMekCrystal(@Nonnull final MMDMaterial material, */ private static void expandCombatArrays(@Nonnull final Class itemClass) throws IllegalAccessException, NoSuchFieldException { - // WARNING: this method contains black magic + // Expand vanilla combat tables to include Forge-added material ordinals. final int expandedSize = 256; final Field[] fields = itemClass.getDeclaredFields(); for (final Field field : fields) { @@ -375,12 +373,11 @@ private static void expandCombatArrays(@Nonnull final Class itemClass) MMDLib.logger.info("{}: Expanding array variable {}.{} to size {}", Thread.currentThread().getStackTrace()[0].toString(), itemClass.getSimpleName(), field.getName(), expandedSize); - field.setAccessible(true); // bypass 'private' key word + field.setAccessible(true); // Allow access to vanilla's private combat arrays. final Field modifiersField = Field.class.getDeclaredField("modifiers"); modifiersField.setAccessible(true); - modifiersField.setInt(field, field.getModifiers() & ~Modifier.FINAL); // bypass - // 'final' - // keyword + modifiersField.setInt(field, field.getModifiers() & ~Modifier.FINAL); // Remove final before replacing the array. + final float[] newArray = new float[expandedSize]; Arrays.fill(newArray, 0F); System.arraycopy(field.get(null), 0, newArray, 0, Array.getLength(field.get(null))); @@ -450,26 +447,26 @@ protected static void addItemType(@Nonnull final Names name, @Nullable final String oredict) { addItemType(name.toString(), clazz, enabled, oredict); } - + protected static void addItemType(@Nonnull final String name, @Nonnull final Class clazz, @Nonnull final Boolean enabled) { - com.mcmoddev.lib.MMDLib.logger.debug("Register Item Type: {}/{}/{}/null", name, clazz.getName(), enabled); + zone.moddev.mc.mmdlib.MMDLib.logger.debug("Register Item Type: {}/{}/{}/null", name, clazz.getName(), enabled); addItemType(name, clazz, enabled, null); } - + protected static void addItemType(@Nonnull final String name, @Nonnull final Class clazz, @Nonnull final Boolean enabled, @Nullable final String oredict) { - com.mcmoddev.lib.MMDLib.logger.debug("Register Item Type: {}/{}/{}/{}", name, clazz.getName(), enabled, oredict==null?"null":"".contentEquals(oredict)?"EMPTY":oredict); + zone.moddev.mc.mmdlib.MMDLib.logger.debug("Register Item Type: {}/{}/{}/{}", name, clazz.getName(), enabled, oredict==null?"null":"".contentEquals(oredict)?"EMPTY":oredict); if (!nameToClass.containsKey(name)) { nameToClass.put(name, clazz); } if (!nameToEnabled.containsKey(name)) { - com.mcmoddev.lib.MMDLib.logger.debug("!nameToEnabled({}) ({})", name, enabled); + zone.moddev.mc.mmdlib.MMDLib.logger.debug("!nameToEnabled({}) ({})", name, enabled); nameToEnabled.put(name, enabled); } else { - com.mcmoddev.lib.MMDLib.logger.debug("nameToEnabled({}) ({} -- {})", name, enabled, nameToEnabled.get(name)); + zone.moddev.mc.mmdlib.MMDLib.logger.debug("nameToEnabled({}) ({} -- {})", name, enabled, nameToEnabled.get(name)); if(nameToEnabled.get(name) != enabled) { nameToEnabled.put(name, enabled); } @@ -480,13 +477,10 @@ protected static void addItemType(@Nonnull final String name, } } /** - * Gets an item by its name. The name is the name as it is registered in the GameRegistry, not - * its unlocalized name (the unlocalized name is the registered name plus the prefix - * "basemetals.") + * Looks up an item by its name in the shared library item registry. * - * @param name - * The name of the item in question - * @return The item matching that name, or null if there isn't one + * @param name the registered item name + * @return the matching item, or null if none is registered */ @Nullable public static Item getItemByName(@Nonnull final String name) { @@ -494,12 +488,10 @@ public static Item getItemByName(@Nonnull final String name) { } /** - * This is the reverse of the getItemByName(...) method, returning the registered name of an - * item instance (Base Metals items only). + * Looks up the registry name of a library-managed item. * - * @param item - * The item in question - * @return The name of the item, or null if the item is not a Base Metals item. + * @param item the item to find + * @return its registered name, or null if it is not managed by this registry */ @Nullable public static String getNameOfItem(@Nonnull final Item item) { diff --git a/src/main/java/com/mcmoddev/lib/init/MMDCreativeTab.java b/src/main/java/zone/moddev/mc/mmdlib/init/MMDCreativeTab.java similarity index 93% rename from src/main/java/com/mcmoddev/lib/init/MMDCreativeTab.java rename to src/main/java/zone/moddev/mc/mmdlib/init/MMDCreativeTab.java index 16bfb91..6119328 100644 --- a/src/main/java/com/mcmoddev/lib/init/MMDCreativeTab.java +++ b/src/main/java/zone/moddev/mc/mmdlib/init/MMDCreativeTab.java @@ -1,4 +1,4 @@ -package com.mcmoddev.lib.init; +package zone.moddev.mc.mmdlib.init; import java.util.Comparator; @@ -31,12 +31,6 @@ public MMDCreativeTab(@Nonnull final String unlocalizedName, this(unlocalizedName, searchable, ItemStack.EMPTY); } - /** - * - * @param unlocalizedName - * @param searchable - * @param iconBlock - */ public MMDCreativeTab(@Nonnull final String unlocalizedName, @Nonnull final boolean searchable, @Nullable final Block iconBlock) { this(unlocalizedName, searchable, @@ -50,12 +44,6 @@ public MMDCreativeTab(@Nonnull final String unlocalizedName, @Nonnull final bool (iconItem != null) ? new ItemStack(iconItem) : ItemStack.EMPTY); } - /** - * - * @param unlocalizedName - * @param searchable - * @param iconItem - */ public MMDCreativeTab(@Nonnull final String unlocalizedName, @Nonnull final boolean searchable, @Nonnull final ItemStack iconItem) { super(unlocalizedName); diff --git a/src/main/java/com/mcmoddev/lib/init/Materials.java b/src/main/java/zone/moddev/mc/mmdlib/init/Materials.java old mode 100755 new mode 100644 similarity index 97% rename from src/main/java/com/mcmoddev/lib/init/Materials.java rename to src/main/java/zone/moddev/mc/mmdlib/init/Materials.java index 5c99df9..f58c24f --- a/src/main/java/com/mcmoddev/lib/init/Materials.java +++ b/src/main/java/zone/moddev/mc/mmdlib/init/Materials.java @@ -1,4 +1,4 @@ -package com.mcmoddev.lib.init; +package zone.moddev.mc.mmdlib.init; import java.util.Collection; import java.util.Collections; @@ -11,13 +11,13 @@ import javax.annotation.Nullable; import com.google.common.collect.Lists; -import com.mcmoddev.lib.MMDLib; -import com.mcmoddev.lib.data.MaterialStats; -import com.mcmoddev.lib.data.MaterialNames; -import com.mcmoddev.lib.material.MMDMaterial; -import com.mcmoddev.lib.material.MMDMaterialType; -import com.mcmoddev.lib.material.MMDMaterialType.MaterialType; -import com.mcmoddev.lib.util.Config; +import zone.moddev.mc.mmdlib.MMDLib; +import zone.moddev.mc.mmdlib.data.MaterialStats; +import zone.moddev.mc.mmdlib.data.MaterialNames; +import zone.moddev.mc.mmdlib.material.MMDMaterial; +import zone.moddev.mc.mmdlib.material.MMDMaterialType; +import zone.moddev.mc.mmdlib.material.MMDMaterialType.MaterialType; +import zone.moddev.mc.mmdlib.util.Config; import net.minecraft.init.SoundEvents; import net.minecraft.item.Item.ToolMaterial; @@ -54,9 +54,6 @@ protected Materials() { // this only exists to allow for the "instance" variable } - /** - * - */ public static void init() { createVanillaMaterial(MaterialNames.WOOD, MaterialType.WOOD, 2, 2, 6, 0xFF695433); createVanillaMaterial(MaterialNames.STONE, MaterialType.ROCK, 5, 4, 2, 0xFF8F8F8F); @@ -129,7 +126,7 @@ protected static MMDMaterial createVanillaMaterial(@Nonnull final String name, @Nonnull final MaterialType type, @Nonnull final double hardness, @Nonnull final double strength, @Nonnull final double magic, @Nonnull final int tintColor) { - // this should have "ORELESS" removed when we reach the point + // Vanilla material entries do not create an additional ore block. MMDMaterialType matType = new MMDMaterialType("Vanilla", type, MMDMaterialType.VariantType.ORELESS, MMDMaterialType.VariantType.VANILLA); final MMDMaterial material = new MMDMaterial(name, matType, (float) hardness, (float) strength, (float) magic, tintColor, false, false); @@ -344,7 +341,7 @@ protected static MMDMaterial createRareSpecialMaterial(@Nonnull final String nam return registerMaterial(material); } - + /** * Register a material. * @@ -374,7 +371,7 @@ protected static MMDMaterial registerMaterial(@Nonnull final MMDMaterial materia ? (int) (material.getStat(MaterialStats.HARDNESS) / 5) : 0); if (armorMaterial == null) { - // uh-oh + MMDLib.logger.error("Failed to create armor material enum for " + material); } armorMaterialMap.put(material, armorMaterial); @@ -384,7 +381,7 @@ protected static MMDMaterial registerMaterial(@Nonnull final MMDMaterial materia material.getToolEfficiency(), material.getBaseAttackDamage(), material.getEnchantability()); if (toolMaterial == null) { - // uh-oh + MMDLib.logger.error("Failed to create tool material enum for " + material); } toolMaterialMap.put(material, toolMaterial); diff --git a/src/main/java/com/mcmoddev/lib/init/Recipes.java b/src/main/java/zone/moddev/mc/mmdlib/init/Recipes.java old mode 100755 new mode 100644 similarity index 93% rename from src/main/java/com/mcmoddev/lib/init/Recipes.java rename to src/main/java/zone/moddev/mc/mmdlib/init/Recipes.java index c482dae..670aed6 --- a/src/main/java/com/mcmoddev/lib/init/Recipes.java +++ b/src/main/java/zone/moddev/mc/mmdlib/init/Recipes.java @@ -1,17 +1,17 @@ -package com.mcmoddev.lib.init; - -import com.mcmoddev.lib.MMDLib; -import com.mcmoddev.lib.data.Names; -import com.mcmoddev.lib.data.SharedStrings; -import com.mcmoddev.lib.data.MaterialNames; -import com.mcmoddev.lib.integration.plugins.IC2; -import com.mcmoddev.lib.material.IMMDObject; -import com.mcmoddev.lib.material.MMDMaterial; -import com.mcmoddev.lib.material.MMDMaterialType.MaterialType; -import com.mcmoddev.lib.registry.CrusherRecipeRegistry; -import com.mcmoddev.lib.util.CheeseMath; -import com.mcmoddev.lib.util.Config.Options; -import com.mcmoddev.lib.util.Oredicts; +package zone.moddev.mc.mmdlib.init; + +import zone.moddev.mc.mmdlib.MMDLib; +import zone.moddev.mc.mmdlib.data.Names; +import zone.moddev.mc.mmdlib.data.SharedStrings; +import zone.moddev.mc.mmdlib.data.MaterialNames; +import zone.moddev.mc.mmdlib.integration.plugins.IC2; +import zone.moddev.mc.mmdlib.material.IMMDObject; +import zone.moddev.mc.mmdlib.material.MMDMaterial; +import zone.moddev.mc.mmdlib.material.MMDMaterialType.MaterialType; +import zone.moddev.mc.mmdlib.registry.CrusherRecipeRegistry; +import zone.moddev.mc.mmdlib.util.CheeseMath; +import zone.moddev.mc.mmdlib.util.Config.Options; +import zone.moddev.mc.mmdlib.util.Oredicts; import net.minecraft.item.ItemStack; import net.minecraft.item.crafting.FurnaceRecipes; import net.minecraft.item.crafting.IRecipe; @@ -44,9 +44,6 @@ protected Recipes() { throw new IllegalAccessError(SharedStrings.NOT_INSTANTIABLE); } - /** - * - */ public static void init() { initPureVanillaOredicts(); initPureVanillaCrusherRecipes(); @@ -79,16 +76,13 @@ protected static void initPureVanillaCrusherRecipes() { CrusherRecipeRegistry.addNewCrusherRecipe(Oredicts.STONE, new ItemStack(net.minecraft.init.Blocks.COBBLESTONE, 1)); // Stone to Cobblestone CrusherRecipeRegistry.addNewCrusherRecipe(net.minecraft.init.Blocks.STONEBRICK, - new ItemStack(net.minecraft.init.Blocks.COBBLESTONE, 1)); // Stone Bricks to - // Cobblestone + new ItemStack(net.minecraft.init.Blocks.COBBLESTONE, 1)); // Stone Bricks to Cobblestone CrusherRecipeRegistry.addNewCrusherRecipe( new ItemStack(net.minecraft.init.Blocks.STONE_SLAB, 1, 0), - new ItemStack(net.minecraft.init.Blocks.STONE_SLAB, 1, 3)); // Stone Slab to - // Cobblestone Slab + new ItemStack(net.minecraft.init.Blocks.STONE_SLAB, 1, 3)); // Stone Slab to Cobblestone Slab CrusherRecipeRegistry.addNewCrusherRecipe( new ItemStack(net.minecraft.init.Blocks.STONE_SLAB, 1, 5), - new ItemStack(net.minecraft.init.Blocks.STONE_SLAB, 1, 3)); // Stone Bricks Slab to - // Cobblestone Slab + new ItemStack(net.minecraft.init.Blocks.STONE_SLAB, 1, 3)); // Stone Bricks Slab to Cobblestone Slab CrusherRecipeRegistry.addNewCrusherRecipe(Oredicts.COBBLESTONE, new ItemStack(net.minecraft.init.Blocks.GRAVEL, 1)); // Cobblestone to Gravel @@ -99,13 +93,10 @@ protected static void initPureVanillaCrusherRecipes() { new ItemStack(net.minecraft.init.Blocks.GRAVEL, 1)); // Cobblestone Wall to Gravel CrusherRecipeRegistry.addNewCrusherRecipe( new ItemStack(net.minecraft.init.Blocks.COBBLESTONE_WALL, 1, 1), - new ItemStack(net.minecraft.init.Blocks.GRAVEL, 1)); // Mossy Cobblestone Wall to - // Gravel + new ItemStack(net.minecraft.init.Blocks.GRAVEL, 1)); // Mossy Cobblestone Wall to Gravel CrusherRecipeRegistry.addNewCrusherRecipe(Oredicts.GRAVEL, - new ItemStack(net.minecraft.init.Blocks.SAND, 1)); // Gravel - // to - // Sand + new ItemStack(net.minecraft.init.Blocks.SAND, 1)); // Gravel to Sand CrusherRecipeRegistry.addNewCrusherRecipe(net.minecraft.init.Blocks.SANDSTONE, new ItemStack(net.minecraft.init.Blocks.SAND, 4)); // Sandstone to Sand CrusherRecipeRegistry.addNewCrusherRecipe( @@ -118,15 +109,12 @@ protected static void initPureVanillaCrusherRecipes() { new ItemStack(net.minecraft.init.Blocks.SAND, 4, 1)); // Red Sandstone to Red Sand CrusherRecipeRegistry.addNewCrusherRecipe( new ItemStack(net.minecraft.init.Blocks.STONE_SLAB2, 1, 0), - new ItemStack(net.minecraft.init.Blocks.SAND, 2, 1)); // Red Sandstone Slab to 2 Red - // Sand + new ItemStack(net.minecraft.init.Blocks.SAND, 2, 1)); // Red Sandstone Slab to 2 Red Sand CrusherRecipeRegistry.addNewCrusherRecipe(net.minecraft.init.Blocks.STAINED_GLASS, - new ItemStack(net.minecraft.init.Blocks.SAND, 4, 1)); // Red Stained Glass to Red - // Sand + new ItemStack(net.minecraft.init.Blocks.SAND, 4, 1)); // Red Stained Glass to Red Sand CrusherRecipeRegistry.addNewCrusherRecipe(net.minecraft.init.Blocks.GLOWSTONE, - new ItemStack(net.minecraft.init.Items.GLOWSTONE_DUST, 4)); // Glowstone to 4 - // Glowstone Dust + new ItemStack(net.minecraft.init.Items.GLOWSTONE_DUST, 4)); // Glowstone to 4 Glowstone Dust final MMDMaterial lapis = Materials.getMaterialByName(MaterialNames.LAPIS); // Lapis Ore to 8 Lapis @@ -151,8 +139,7 @@ protected static void initPureVanillaCrusherRecipes() { new ItemStack(net.minecraft.init.Items.DYE, 3, 15)); // Bone to 3 Bonemeal CrusherRecipeRegistry.addNewCrusherRecipe(net.minecraft.init.Items.BLAZE_ROD, - new ItemStack(net.minecraft.init.Items.BLAZE_POWDER, 2)); // Blaze Rod to 2 Blaze - // Powder + new ItemStack(net.minecraft.init.Items.BLAZE_POWDER, 2)); // Blaze Rod to 2 Blaze Powder final MMDMaterial quartz = Materials.getMaterialByName(MaterialNames.QUARTZ); CrusherRecipeRegistry.addNewCrusherRecipe(Oredicts.ORE_QUARTZ, @@ -165,37 +152,28 @@ protected static void initPureVanillaCrusherRecipes() { CrusherRecipeRegistry.addNewCrusherRecipe( new ItemStack(net.minecraft.init.Blocks.PRISMARINE, 1, 0), - new ItemStack(net.minecraft.init.Items.PRISMARINE_SHARD, 4)); // Prismarine to - // Prismarine Shard + new ItemStack(net.minecraft.init.Items.PRISMARINE_SHARD, 4)); // Prismarine to Prismarine Shard CrusherRecipeRegistry.addNewCrusherRecipe( new ItemStack(net.minecraft.init.Blocks.PRISMARINE, 1, 1), - new ItemStack(net.minecraft.init.Items.PRISMARINE_SHARD, 9)); // Brismarine Bricks - // to Prismarine - // Shard + new ItemStack(net.minecraft.init.Items.PRISMARINE_SHARD, 9)); // Prismarine Bricks to Prismarine Shard CrusherRecipeRegistry.addNewCrusherRecipe( new ItemStack(net.minecraft.init.Blocks.PRISMARINE, 1, 2), - new ItemStack(net.minecraft.init.Items.PRISMARINE_SHARD, 8)); // Dark Prismarine to - // Prismarine Shard + new ItemStack(net.minecraft.init.Items.PRISMARINE_SHARD, 8)); // Dark Prismarine to Prismarine Shard CrusherRecipeRegistry.addNewCrusherRecipe(net.minecraft.init.Blocks.SEA_LANTERN, - new ItemStack(net.minecraft.init.Items.PRISMARINE_CRYSTALS, 5)); // Sea Lantern to 5 - // Prismarine - // Crystals - // to Prismarine + new ItemStack(net.minecraft.init.Items.PRISMARINE_CRYSTALS, 5)); // Sea Lantern to 5 Prismarine Crystals to Prismarine // Shard CrusherRecipeRegistry.addNewCrusherRecipe(net.minecraft.init.Blocks.SLIME_BLOCK, - new ItemStack(net.minecraft.init.Items.SLIME_BALL, 9)); // Slime Block to 9 Slime - // Balls + new ItemStack(net.minecraft.init.Items.SLIME_BALL, 9)); // Slime Block to 9 Slime Balls - // Thermal Expansion and others have decided that Obsidian crushes to 4 obsidian dust - // Match them instead of being a special snowflake + // Match the four-dust obsidian crushing recipe used by Thermal Expansion. CrusherRecipeRegistry.addNewCrusherRecipe(net.minecraft.init.Blocks.OBSIDIAN, Materials.getMaterialByName(MaterialNames.OBSIDIAN).getItemStack(Names.POWDER, 4)); } protected static void initVanillaRecipes() { - // nothing to do here, really - should we remove this ? + // Vanilla conversions are registered by the recipe event handler. } protected static void initGeneralRecipes() { @@ -206,8 +184,7 @@ protected static void initGeneralRecipes() { } MMDLib.logger.debug("-> material {}", material.getCapitalizedName()); - // first we handle any recipes possibly involving transformations of an - // ore-block + // first we handle any recipes possibly involving transformations of an ore-block makePowderRecipes(material); // this also handles ingot->powder, block->powder, etc.. makeIngotRecipes(material); // nugget->ingot, ore->ingot, powder->ingot @@ -215,8 +192,7 @@ protected static void initGeneralRecipes() { makeNuggetRecipes(material); // then the rest of the basic stuff - makeSimpleRecipes(material); // slab, wall, small-powder, rod, lever, crackhammer, - // trapdoor, etc... + makeSimpleRecipes(material); // slab, wall, small-powder, rod, lever, crackhammer, trapdoor, etc... makeModRecipes(material); // rod, gear, etc... // ranged weapons all use the 'ROD' of a material @@ -353,11 +329,10 @@ private static void makeSimpleRecipes(@Nonnull final MMDMaterial material) { final float nuggetXP = Float.parseFloat(String.format(Locale.ENGLISH, DEFAULT_ORESMELT_XP, baseXP / 9.0f)); MMDLib.logger.debug("--> makeSimpleRecipes({})", material); - + if ((material.hasBlock(Names.BLOCK)) && (material.hasItem(Names.SLAB))) { addFurnaceRecipe(material.getItemStack(Names.SLAB), - material.getItemStack(Names.NUGGET, 4), nuggetXP); // you lose roughly half a - // nugget + material.getItemStack(Names.NUGGET, 4), nuggetXP); // you lose roughly half a nugget } if ((material.hasItem(Names.ROD)) && (material.hasBlock(Names.LEVER))) { @@ -501,15 +476,12 @@ private static void addFurnaceRecipe(@Nonnull final ItemStack input, @Nonnull fi } final float actualXP = Math.max(FurnaceRecipes.instance().getSmeltingExperience(output), experience); - + MMDLib.logger.debug("---> addFurnaceRecipe({}, {}, {})", input, output, experience); GameRegistry.addSmelting(input, output, actualXP); } - /** - * - */ public static void dumpFurnaceRecipes() { final Map smeltingMap = FurnaceRecipes.instance().getSmeltingList(); @@ -590,7 +562,7 @@ private static void initModSpecificRecipes() { if (material.isEmpty()) { continue; } - + MMDLib.logger.debug("-> initModSpecificRecipes({})", material); if (Options.isModEnabled(IC2.PLUGIN_MODID)) { @@ -662,8 +634,7 @@ protected static void addAdditionalOredicts(@Nonnull final MMDMaterial material, if (material.hasItem(Names.INGOT)) { if (material.getType() != MaterialType.GEM) { OreDictionary.registerOre(Oredicts.INGOT + oreDictName, - material.getItemStack(Names.INGOT)); // For non-gem - // based + material.getItemStack(Names.INGOT)); // For non-gem based } else if (material.getType() == MaterialType.GEM) { OreDictionary.registerOre(Oredicts.GEM + oreDictName, material.getItemStack(Names.INGOT)); // For Gem based diff --git a/src/main/java/com/mcmoddev/lib/init/VillagerTrades.java b/src/main/java/zone/moddev/mc/mmdlib/init/VillagerTrades.java similarity index 98% rename from src/main/java/com/mcmoddev/lib/init/VillagerTrades.java rename to src/main/java/zone/moddev/mc/mmdlib/init/VillagerTrades.java index 4d33d4f..97441cf 100644 --- a/src/main/java/com/mcmoddev/lib/init/VillagerTrades.java +++ b/src/main/java/zone/moddev/mc/mmdlib/init/VillagerTrades.java @@ -1,4 +1,4 @@ -package com.mcmoddev.lib.init; +package zone.moddev.mc.mmdlib.init; import java.util.ArrayList; import java.util.Arrays; @@ -11,11 +11,11 @@ import javax.annotation.Nonnull; -import com.mcmoddev.lib.util.VillagerTradeHelper; -import com.mcmoddev.lib.data.MaterialStats; -import com.mcmoddev.lib.data.Names; -import com.mcmoddev.lib.data.SharedStrings; -import com.mcmoddev.lib.material.MMDMaterial; +import zone.moddev.mc.mmdlib.util.VillagerTradeHelper; +import zone.moddev.mc.mmdlib.data.MaterialStats; +import zone.moddev.mc.mmdlib.data.Names; +import zone.moddev.mc.mmdlib.data.SharedStrings; +import zone.moddev.mc.mmdlib.material.MMDMaterial; import net.minecraft.entity.IMerchant; import net.minecraft.entity.passive.EntityVillager.ITradeList; @@ -48,9 +48,6 @@ protected VillagerTrades() { throw new IllegalAccessError(SharedStrings.NOT_INSTANTIABLE); } - /** - * - */ public static void init() { registerCommonTrades(); } diff --git a/src/main/java/com/mcmoddev/lib/block/package-info.java b/src/main/java/zone/moddev/mc/mmdlib/init/package-info.java similarity index 70% rename from src/main/java/com/mcmoddev/lib/block/package-info.java rename to src/main/java/zone/moddev/mc/mmdlib/init/package-info.java index 733aa2c..4d97ad2 100644 --- a/src/main/java/com/mcmoddev/lib/block/package-info.java +++ b/src/main/java/zone/moddev/mc/mmdlib/init/package-info.java @@ -1,4 +1,4 @@ @ParametersAreNonnullByDefault -package com.mcmoddev.lib.block; +package zone.moddev.mc.mmdlib.init; import javax.annotation.ParametersAreNonnullByDefault; diff --git a/src/main/java/com/mcmoddev/lib/integration/IIntegration.java b/src/main/java/zone/moddev/mc/mmdlib/integration/IIntegration.java similarity index 54% rename from src/main/java/com/mcmoddev/lib/integration/IIntegration.java rename to src/main/java/zone/moddev/mc/mmdlib/integration/IIntegration.java index f4974b9..0e0ecf3 100644 --- a/src/main/java/com/mcmoddev/lib/integration/IIntegration.java +++ b/src/main/java/zone/moddev/mc/mmdlib/integration/IIntegration.java @@ -1,4 +1,4 @@ -package com.mcmoddev.lib.integration; +package zone.moddev.mc.mmdlib.integration; /** * Core of the MMDPlugin system, this interface acts as the base of all plugin code. @@ -10,10 +10,6 @@ @FunctionalInterface public interface IIntegration { - /* - * Need a function for getting the callbacks - should run after init() - is the first thing - * done. "init()" should probably go away in favor of a constructor with defined parameters. - */ /** * This is called to properly initialize the plugin code. */ diff --git a/src/main/java/com/mcmoddev/lib/integration/IIntegrationEvent.java b/src/main/java/zone/moddev/mc/mmdlib/integration/IIntegrationEvent.java similarity index 75% rename from src/main/java/com/mcmoddev/lib/integration/IIntegrationEvent.java rename to src/main/java/zone/moddev/mc/mmdlib/integration/IIntegrationEvent.java index 23686d5..4625c2e 100644 --- a/src/main/java/com/mcmoddev/lib/integration/IIntegrationEvent.java +++ b/src/main/java/zone/moddev/mc/mmdlib/integration/IIntegrationEvent.java @@ -1,7 +1,7 @@ -package com.mcmoddev.lib.integration; +package zone.moddev.mc.mmdlib.integration; -import com.mcmoddev.lib.init.Materials; -import com.mcmoddev.lib.material.MMDMaterial; +import zone.moddev.mc.mmdlib.init.Materials; +import zone.moddev.mc.mmdlib.material.MMDMaterial; import java.util.Collections; import java.util.List; diff --git a/src/main/java/com/mcmoddev/lib/integration/IntegrationInitEvent.java b/src/main/java/zone/moddev/mc/mmdlib/integration/IntegrationInitEvent.java similarity index 86% rename from src/main/java/com/mcmoddev/lib/integration/IntegrationInitEvent.java rename to src/main/java/zone/moddev/mc/mmdlib/integration/IntegrationInitEvent.java index bd241e1..5588374 100644 --- a/src/main/java/com/mcmoddev/lib/integration/IntegrationInitEvent.java +++ b/src/main/java/zone/moddev/mc/mmdlib/integration/IntegrationInitEvent.java @@ -1,4 +1,4 @@ -package com.mcmoddev.lib.integration; +package zone.moddev.mc.mmdlib.integration; import net.minecraftforge.fml.common.eventhandler.Event; diff --git a/src/main/java/com/mcmoddev/lib/integration/IntegrationManager.java b/src/main/java/zone/moddev/mc/mmdlib/integration/IntegrationManager.java similarity index 89% rename from src/main/java/com/mcmoddev/lib/integration/IntegrationManager.java rename to src/main/java/zone/moddev/mc/mmdlib/integration/IntegrationManager.java index 73da92b..b56ffa6 100644 --- a/src/main/java/com/mcmoddev/lib/integration/IntegrationManager.java +++ b/src/main/java/zone/moddev/mc/mmdlib/integration/IntegrationManager.java @@ -1,4 +1,4 @@ -package com.mcmoddev.lib.integration; +package zone.moddev.mc.mmdlib.integration; import java.util.List; import java.util.Map; @@ -7,7 +7,8 @@ import com.google.common.collect.Lists; import com.google.common.collect.Maps; -import com.mcmoddev.lib.MMDLib; +import zone.moddev.mc.mmdlib.MMDLib; +import zone.moddev.mc.mmdlib.compat.LegacyNamespaceAliases; import net.minecraftforge.common.MinecraftForge; import net.minecraftforge.fml.common.FMLCommonHandler; @@ -20,21 +21,15 @@ import net.minecraftforge.fml.common.versioning.VersionRange; /** - *

- * Core handling of the loading of {@link MMDPlugin} based plugins and the firing of - * {@link IIntegrationEvent} based events. - *

- * This code can be very complex and hard to understand. Don't worry, it won't be on any tests! + * Discovers plugins annotated with {@link MMDPlugin} and dispatches their + * {@link IIntegrationEvent} lifecycle callbacks. Both supported API namespaces + * share this registry. * * @author D. Hazelton * @author J. Iwanek - * */ public enum IntegrationManager { - /** - * As an enum this code is functionally static, but this small "hack" gives us a handle for - * accessing everything and allows it to not, actually, be fully static. - */ + /** The shared integration registry and lifecycle dispatcher. */ INSTANCE; /** @@ -100,8 +95,7 @@ default String asString() { */ public void doSetupTasks(@Nonnull final FMLConstructionEvent event) throws InvalidVersionSpecificationException { - for (final ASMData asmDataItem : event.getASMHarvestedData() - .getAll(MMDPlugin.class.getCanonicalName())) { + for (final ASMData asmDataItem : LegacyNamespaceAliases.pluginData(event.getASMHarvestedData())) { final String addonId = this.getAnnotationItem("addonId", asmDataItem); final String modId = this.getAnnotationItem("pluginId", asmDataItem); final String versions = this.getAnnotationItem("versions", asmDataItem); @@ -153,8 +147,7 @@ public String asString() { * called. */ public void preInit(@Nonnull final FMLPreInitializationEvent event) { - for (final ASMData asmDataItem : event.getAsmData() - .getAll(MMDPlugin.class.getCanonicalName())) { + for (final ASMData asmDataItem : LegacyNamespaceAliases.pluginData(event.getAsmData())) { final String addonId = this.getAnnotationItem("addonId", asmDataItem); final String pluginId = this.getAnnotationItem("pluginId", asmDataItem); final String clazz = asmDataItem.getClassName(); diff --git a/src/main/java/com/mcmoddev/lib/integration/IntegrationPostInitEvent.java b/src/main/java/zone/moddev/mc/mmdlib/integration/IntegrationPostInitEvent.java similarity index 86% rename from src/main/java/com/mcmoddev/lib/integration/IntegrationPostInitEvent.java rename to src/main/java/zone/moddev/mc/mmdlib/integration/IntegrationPostInitEvent.java index 08666ae..1d7b8fc 100644 --- a/src/main/java/com/mcmoddev/lib/integration/IntegrationPostInitEvent.java +++ b/src/main/java/zone/moddev/mc/mmdlib/integration/IntegrationPostInitEvent.java @@ -1,4 +1,4 @@ -package com.mcmoddev.lib.integration; +package zone.moddev.mc.mmdlib.integration; import net.minecraftforge.fml.common.eventhandler.Event; diff --git a/src/main/java/com/mcmoddev/lib/integration/IntegrationPreInitEvent.java b/src/main/java/zone/moddev/mc/mmdlib/integration/IntegrationPreInitEvent.java similarity index 87% rename from src/main/java/com/mcmoddev/lib/integration/IntegrationPreInitEvent.java rename to src/main/java/zone/moddev/mc/mmdlib/integration/IntegrationPreInitEvent.java index b9c6225..74b47f7 100644 --- a/src/main/java/com/mcmoddev/lib/integration/IntegrationPreInitEvent.java +++ b/src/main/java/zone/moddev/mc/mmdlib/integration/IntegrationPreInitEvent.java @@ -1,4 +1,4 @@ -package com.mcmoddev.lib.integration; +package zone.moddev.mc.mmdlib.integration; import net.minecraftforge.fml.common.eventhandler.Event; diff --git a/src/main/java/com/mcmoddev/lib/integration/MMDPlugin.java b/src/main/java/zone/moddev/mc/mmdlib/integration/MMDPlugin.java similarity index 97% rename from src/main/java/com/mcmoddev/lib/integration/MMDPlugin.java rename to src/main/java/zone/moddev/mc/mmdlib/integration/MMDPlugin.java index 774d3e6..6ccfd26 100644 --- a/src/main/java/com/mcmoddev/lib/integration/MMDPlugin.java +++ b/src/main/java/zone/moddev/mc/mmdlib/integration/MMDPlugin.java @@ -1,4 +1,4 @@ -package com.mcmoddev.lib.integration; +package zone.moddev.mc.mmdlib.integration; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; @@ -46,7 +46,7 @@ * @return The required versions for this plugins needed mods */ String versions() default ""; - + /** *

* In deference to the existing nature and use of the "versions" data, we introduce the "ordering" data - which serves diff --git a/src/main/java/com/mcmoddev/lib/integration/jei/ICrusherRecipeCategory.java b/src/main/java/zone/moddev/mc/mmdlib/integration/jei/ICrusherRecipeCategory.java old mode 100755 new mode 100644 similarity index 96% rename from src/main/java/com/mcmoddev/lib/integration/jei/ICrusherRecipeCategory.java rename to src/main/java/zone/moddev/mc/mmdlib/integration/jei/ICrusherRecipeCategory.java index 60c092c..6f2d1bc --- a/src/main/java/com/mcmoddev/lib/integration/jei/ICrusherRecipeCategory.java +++ b/src/main/java/zone/moddev/mc/mmdlib/integration/jei/ICrusherRecipeCategory.java @@ -1,11 +1,11 @@ -package com.mcmoddev.lib.integration.jei; +package zone.moddev.mc.mmdlib.integration.jei; import java.util.Collections; import java.util.List; import javax.annotation.Nonnull; -import com.mcmoddev.lib.MMDLib; +import zone.moddev.mc.mmdlib.MMDLib; import mezz.jei.api.IGuiHelper; import mezz.jei.api.gui.IDrawable; @@ -29,10 +29,6 @@ public class ICrusherRecipeCategory implements IRecipeCategory new ICrusherRecipeWrapper(jeiHelpers, rec)) .collect(Collectors.toList()), RECIPE_UID); - + registry.handleRecipes(ICrusherRecipe.class, new IRecipeWrapperFactory() { @Override diff --git a/src/main/java/zone/moddev/mc/mmdlib/integration/jei/package-info.java b/src/main/java/zone/moddev/mc/mmdlib/integration/jei/package-info.java new file mode 100644 index 0000000..cd88337 --- /dev/null +++ b/src/main/java/zone/moddev/mc/mmdlib/integration/jei/package-info.java @@ -0,0 +1,4 @@ +@ParametersAreNonnullByDefault +package zone.moddev.mc.mmdlib.integration.jei; + +import javax.annotation.ParametersAreNonnullByDefault; diff --git a/src/main/java/zone/moddev/mc/mmdlib/integration/package-info.java b/src/main/java/zone/moddev/mc/mmdlib/integration/package-info.java new file mode 100644 index 0000000..b3607b6 --- /dev/null +++ b/src/main/java/zone/moddev/mc/mmdlib/integration/package-info.java @@ -0,0 +1,4 @@ +@ParametersAreNonnullByDefault +package zone.moddev.mc.mmdlib.integration; + +import javax.annotation.ParametersAreNonnullByDefault; diff --git a/src/main/java/com/mcmoddev/lib/integration/plugins/ConstructsArmory.java b/src/main/java/zone/moddev/mc/mmdlib/integration/plugins/ConstructsArmory.java similarity index 76% rename from src/main/java/com/mcmoddev/lib/integration/plugins/ConstructsArmory.java rename to src/main/java/zone/moddev/mc/mmdlib/integration/plugins/ConstructsArmory.java index c73c8d8..6d2c948 100644 --- a/src/main/java/com/mcmoddev/lib/integration/plugins/ConstructsArmory.java +++ b/src/main/java/zone/moddev/mc/mmdlib/integration/plugins/ConstructsArmory.java @@ -1,11 +1,11 @@ -package com.mcmoddev.lib.integration.plugins; +package zone.moddev.mc.mmdlib.integration.plugins; import c4.conarm.lib.materials.ArmorMaterials; -import com.mcmoddev.lib.integration.IIntegration; -import com.mcmoddev.lib.integration.plugins.tinkers.TinkerTraitRegistry; -import com.mcmoddev.lib.integration.plugins.tinkers.events.TraitRegistrationEvent; -import com.mcmoddev.lib.integration.plugins.armory.traits.MMDTraitsCA; -import com.mcmoddev.lib.util.Config; +import zone.moddev.mc.mmdlib.integration.IIntegration; +import zone.moddev.mc.mmdlib.integration.plugins.tinkers.TinkerTraitRegistry; +import zone.moddev.mc.mmdlib.integration.plugins.tinkers.events.TraitRegistrationEvent; +import zone.moddev.mc.mmdlib.integration.plugins.armory.traits.MMDTraitsCA; +import zone.moddev.mc.mmdlib.util.Config; import net.minecraftforge.common.MinecraftForge; import slimeknights.tconstruct.library.materials.Material; import slimeknights.tconstruct.library.traits.ITrait; @@ -22,7 +22,7 @@ public class ConstructsArmory implements IIntegration { private static boolean initDone = false; - private static final TinkerTraitRegistry traitsRegistry = TinkersConstruct.getTraitsRegistry(); // technically does nothing + private static final TinkerTraitRegistry traitsRegistry = TinkersConstruct.getTraitsRegistry(); // Registration is handled by the integration event callbacks. public static final ConstructsArmory INSTANCE = new ConstructsArmory(); diff --git a/src/main/java/com/mcmoddev/lib/integration/plugins/DenseOres.java b/src/main/java/zone/moddev/mc/mmdlib/integration/plugins/DenseOres.java similarity index 94% rename from src/main/java/com/mcmoddev/lib/integration/plugins/DenseOres.java rename to src/main/java/zone/moddev/mc/mmdlib/integration/plugins/DenseOres.java index a4ecb64..51f2ee1 100644 --- a/src/main/java/com/mcmoddev/lib/integration/plugins/DenseOres.java +++ b/src/main/java/zone/moddev/mc/mmdlib/integration/plugins/DenseOres.java @@ -1,9 +1,9 @@ -package com.mcmoddev.lib.integration.plugins; +package zone.moddev.mc.mmdlib.integration.plugins; import javax.annotation.Nonnull; -import com.mcmoddev.lib.integration.IIntegration; -import com.mcmoddev.lib.util.Config.Options; +import zone.moddev.mc.mmdlib.integration.IIntegration; +import zone.moddev.mc.mmdlib.util.Config.Options; import net.minecraft.nbt.NBTTagCompound; import net.minecraftforge.fml.common.Loader; @@ -59,9 +59,9 @@ protected static void registerOre(@Nonnull final String name, @Nonnull final Str mess.setString("baseBlock", String.format("%s:%s", modID, name)); mess.setInteger("baseBlockMeta", meta); mess.setString("underlyingBlockTexture", String.format("blocks/%s", underlying)); - // no idea what this does, but it is looked for + // Dense Ores expects this field in its integration message. mess.setInteger("renderType", 0); - // this, however, is apparently a name, so... + // Identify the ore block in the integration message. mess.setString("config_entry", String.format("%s %s ore", modID, name)); FMLInterModComms.sendMessage(PLUGIN_MODID, "addDenseOre", mess); diff --git a/src/main/java/zone/moddev/mc/mmdlib/integration/plugins/DenseOresBase.java b/src/main/java/zone/moddev/mc/mmdlib/integration/plugins/DenseOresBase.java new file mode 100644 index 0000000..645b4c3 --- /dev/null +++ b/src/main/java/zone/moddev/mc/mmdlib/integration/plugins/DenseOresBase.java @@ -0,0 +1,6 @@ +package zone.moddev.mc.mmdlib.integration.plugins; + +@Deprecated +public class DenseOresBase extends DenseOres { + // Retained for compatibility with integrations using this class name. +} diff --git a/src/main/java/com/mcmoddev/lib/integration/plugins/EnderIO.java b/src/main/java/zone/moddev/mc/mmdlib/integration/plugins/EnderIO.java similarity index 96% rename from src/main/java/com/mcmoddev/lib/integration/plugins/EnderIO.java rename to src/main/java/zone/moddev/mc/mmdlib/integration/plugins/EnderIO.java index ba2ab74..80ece9e 100644 --- a/src/main/java/com/mcmoddev/lib/integration/plugins/EnderIO.java +++ b/src/main/java/zone/moddev/mc/mmdlib/integration/plugins/EnderIO.java @@ -1,4 +1,4 @@ -package com.mcmoddev.lib.integration.plugins; +package zone.moddev.mc.mmdlib.integration.plugins; import java.io.StringWriter; import java.io.Writer; @@ -23,13 +23,13 @@ import org.w3c.dom.Document; import org.w3c.dom.Element; -import com.mcmoddev.lib.MMDLib; -import com.mcmoddev.lib.init.Materials; -import com.mcmoddev.lib.integration.IIntegration; -import com.mcmoddev.lib.material.MMDMaterial; -import com.mcmoddev.lib.material.MMDMaterialType.MaterialType; -import com.mcmoddev.lib.util.Config.Options; -import com.mcmoddev.lib.util.Oredicts; +import zone.moddev.mc.mmdlib.MMDLib; +import zone.moddev.mc.mmdlib.init.Materials; +import zone.moddev.mc.mmdlib.integration.IIntegration; +import zone.moddev.mc.mmdlib.material.MMDMaterial; +import zone.moddev.mc.mmdlib.material.MMDMaterialType.MaterialType; +import zone.moddev.mc.mmdlib.util.Config.Options; +import zone.moddev.mc.mmdlib.util.Oredicts; import net.minecraft.crash.CrashReport; import net.minecraftforge.fml.common.Loader; @@ -47,9 +47,6 @@ public class EnderIO implements IIntegration { private static final String NS_SCHEMA = NS_URI + " recipes.xsd"; private static final String FORMAT_STRING = "%s: %s to %s"; - /** - * - */ @Override public void init() { if (!Options.isModEnabled(PLUGIN_MODID)) { diff --git a/src/main/java/zone/moddev/mc/mmdlib/integration/plugins/EnderIOBase.java b/src/main/java/zone/moddev/mc/mmdlib/integration/plugins/EnderIOBase.java new file mode 100644 index 0000000..b86e993 --- /dev/null +++ b/src/main/java/zone/moddev/mc/mmdlib/integration/plugins/EnderIOBase.java @@ -0,0 +1,6 @@ +package zone.moddev.mc.mmdlib.integration.plugins; + +@Deprecated +public class EnderIOBase extends EnderIO { + // Retained for compatibility with integrations using this class name. +} diff --git a/src/main/java/com/mcmoddev/lib/integration/plugins/IC2.java b/src/main/java/zone/moddev/mc/mmdlib/integration/plugins/IC2.java similarity index 94% rename from src/main/java/com/mcmoddev/lib/integration/plugins/IC2.java rename to src/main/java/zone/moddev/mc/mmdlib/integration/plugins/IC2.java index 8648de9..ba8367c 100644 --- a/src/main/java/com/mcmoddev/lib/integration/plugins/IC2.java +++ b/src/main/java/zone/moddev/mc/mmdlib/integration/plugins/IC2.java @@ -1,17 +1,17 @@ -package com.mcmoddev.lib.integration.plugins; +package zone.moddev.mc.mmdlib.integration.plugins; import java.util.Arrays; import java.util.List; import javax.annotation.Nonnull; -import com.mcmoddev.lib.MMDLib; -import com.mcmoddev.lib.data.Names; -import com.mcmoddev.lib.init.Materials; -import com.mcmoddev.lib.integration.IIntegration; -import com.mcmoddev.lib.material.MMDMaterial; -import com.mcmoddev.lib.util.Config.Options; -import com.mcmoddev.lib.util.Oredicts; +import zone.moddev.mc.mmdlib.MMDLib; +import zone.moddev.mc.mmdlib.data.Names; +import zone.moddev.mc.mmdlib.init.Materials; +import zone.moddev.mc.mmdlib.integration.IIntegration; +import zone.moddev.mc.mmdlib.material.MMDMaterial; +import zone.moddev.mc.mmdlib.util.Config.Options; +import zone.moddev.mc.mmdlib.util.Oredicts; import ic2.api.recipe.IRecipeInput; import ic2.api.recipe.Recipes; @@ -59,7 +59,7 @@ protected void registerVanillaRecipes(@Nonnull final String materialName) { } protected void registerVanillaRecipes(@Nonnull final MMDMaterial material) { - // With the big 1.12 change this is almost certainly going to only be smelting recipes + // Register the furnace conversions supported by this IC2 integration. final ItemStack ingot = material.getItemStack(Names.INGOT, 1); GameRegistry.addSmelting(material.getItemStack(Names.CRUSHED), ingot, 0); GameRegistry.addSmelting(material.getItemStack(Names.CRUSHED_PURIFIED), ingot, 0); diff --git a/src/main/java/zone/moddev/mc/mmdlib/integration/plugins/IC2Base.java b/src/main/java/zone/moddev/mc/mmdlib/integration/plugins/IC2Base.java new file mode 100644 index 0000000..7c61ff6 --- /dev/null +++ b/src/main/java/zone/moddev/mc/mmdlib/integration/plugins/IC2Base.java @@ -0,0 +1,6 @@ +package zone.moddev.mc.mmdlib.integration.plugins; + +@Deprecated +public class IC2Base extends IC2 { + // Retained for compatibility with integrations using this class name. +} diff --git a/src/main/java/com/mcmoddev/lib/integration/plugins/Mekanism.java b/src/main/java/zone/moddev/mc/mmdlib/integration/plugins/Mekanism.java similarity index 95% rename from src/main/java/com/mcmoddev/lib/integration/plugins/Mekanism.java rename to src/main/java/zone/moddev/mc/mmdlib/integration/plugins/Mekanism.java index fbb900c..8750639 100644 --- a/src/main/java/com/mcmoddev/lib/integration/plugins/Mekanism.java +++ b/src/main/java/zone/moddev/mc/mmdlib/integration/plugins/Mekanism.java @@ -1,12 +1,12 @@ -package com.mcmoddev.lib.integration.plugins; +package zone.moddev.mc.mmdlib.integration.plugins; import javax.annotation.Nonnull; -import com.mcmoddev.lib.data.Names; -import com.mcmoddev.lib.init.Materials; -import com.mcmoddev.lib.integration.IIntegration; -import com.mcmoddev.lib.material.MMDMaterial; -import com.mcmoddev.lib.util.Config.Options; +import zone.moddev.mc.mmdlib.data.Names; +import zone.moddev.mc.mmdlib.init.Materials; +import zone.moddev.mc.mmdlib.integration.IIntegration; +import zone.moddev.mc.mmdlib.material.MMDMaterial; +import zone.moddev.mc.mmdlib.util.Config.Options; import mekanism.api.gas.Gas; import mekanism.api.gas.GasRegistry; @@ -18,13 +18,6 @@ import net.minecraftforge.fluids.FluidRegistry; import net.minecraftforge.fluids.FluidStack; -// mekanism.common.recipe.RecipeHandler -// -- addEnrichmentChamberRecipe -// -- addOsmiumCompressorRecipe -// -- etc... this is where all the machines get their processing recipes stored -// For generator fuel integration: -// mekanism.common.FuelHandler - only handles gasses -// public class Mekanism implements IIntegration { public static final String PLUGIN_MODID = "mekanism"; diff --git a/src/main/java/zone/moddev/mc/mmdlib/integration/plugins/MekanismBase.java b/src/main/java/zone/moddev/mc/mmdlib/integration/plugins/MekanismBase.java new file mode 100644 index 0000000..4c9cfae --- /dev/null +++ b/src/main/java/zone/moddev/mc/mmdlib/integration/plugins/MekanismBase.java @@ -0,0 +1,6 @@ +package zone.moddev.mc.mmdlib.integration.plugins; + +@Deprecated +public class MekanismBase extends Mekanism { + // Retained for compatibility with integrations using this class name. +} diff --git a/src/main/java/com/mcmoddev/lib/integration/plugins/Thaumcraft.java b/src/main/java/zone/moddev/mc/mmdlib/integration/plugins/Thaumcraft.java similarity index 85% rename from src/main/java/com/mcmoddev/lib/integration/plugins/Thaumcraft.java rename to src/main/java/zone/moddev/mc/mmdlib/integration/plugins/Thaumcraft.java index 2c1dc34..d185727 100644 --- a/src/main/java/com/mcmoddev/lib/integration/plugins/Thaumcraft.java +++ b/src/main/java/zone/moddev/mc/mmdlib/integration/plugins/Thaumcraft.java @@ -1,15 +1,15 @@ -package com.mcmoddev.lib.integration.plugins; - -import com.mcmoddev.lib.data.Names; -import com.mcmoddev.lib.integration.IIntegration; -import com.mcmoddev.lib.integration.IntegrationPreInitEvent; -import com.mcmoddev.lib.integration.plugins.thaumcraft.BaseAspectGetter; -import com.mcmoddev.lib.integration.plugins.thaumcraft.IAspectGetter; -import com.mcmoddev.lib.integration.plugins.thaumcraft.TCMaterial; -import com.mcmoddev.lib.integration.plugins.thaumcraft.TCSyncEvent; -import com.mcmoddev.lib.material.MMDMaterial; -import com.mcmoddev.lib.util.Config; -import com.mcmoddev.lib.data.NameToken; +package zone.moddev.mc.mmdlib.integration.plugins; + +import zone.moddev.mc.mmdlib.data.Names; +import zone.moddev.mc.mmdlib.integration.IIntegration; +import zone.moddev.mc.mmdlib.integration.IntegrationPreInitEvent; +import zone.moddev.mc.mmdlib.integration.plugins.thaumcraft.BaseAspectGetter; +import zone.moddev.mc.mmdlib.integration.plugins.thaumcraft.IAspectGetter; +import zone.moddev.mc.mmdlib.integration.plugins.thaumcraft.TCMaterial; +import zone.moddev.mc.mmdlib.integration.plugins.thaumcraft.TCSyncEvent; +import zone.moddev.mc.mmdlib.material.MMDMaterial; +import zone.moddev.mc.mmdlib.util.Config; +import zone.moddev.mc.mmdlib.data.NameToken; import net.minecraft.util.ResourceLocation; import net.minecraftforge.common.MinecraftForge; @@ -36,7 +36,7 @@ public class Thaumcraft implements IIntegration { private static final Map partMultiplierMap = new HashMap<>(); private static boolean initDone = false; - + public static void putPartMultiplier(Names name, Float val){ putPartMultiplier(name.toString(), val); } @@ -44,7 +44,7 @@ public static void putPartMultiplier(Names name, Float val){ public static void putPartMultiplier(String name, Float val){ putPartMultiplier(new NameToken(name), val); } - + public static void putPartMultiplier(NameToken name, Float val) { partMultiplierMap.putIfAbsent(name, val); } @@ -56,7 +56,7 @@ public static float getPartMultiplier(Names name){ public static float getPartMultiplier(String name){ return getPartMultiplier(new NameToken(name)); } - + public static float getPartMultiplier(NameToken name){ if(partMultiplierMap.containsKey(name)){ return partMultiplierMap.get(name); @@ -65,15 +65,14 @@ public static float getPartMultiplier(NameToken name){ return 0f; } } - + @Override public void init() { if (!Config.Options.isModEnabled(PLUGIN_MODID) || initDone) { return; } initDone = true; - - + MinecraftForge.EVENT_BUS.register(this); putPartMultiplier(Names.NUGGET, 1f); @@ -89,7 +88,7 @@ public void init() { putPartMultiplier(Names.POWDER, getPartMultiplier(Names.BLEND)); putPartMultiplier(Names.SMALLPOWDER, getPartMultiplier(Names.SMALLBLEND)); } - + @SubscribeEvent public void preInitEvents(IntegrationPreInitEvent ev) { MinecraftForge.EVENT_BUS.post(new TCSyncEvent(registry, nameToResource)); @@ -97,7 +96,7 @@ public void preInitEvents(IntegrationPreInitEvent ev) { @SubscribeEvent public void registerAspects(final AspectRegistryEvent ev) { - // TODO Rewrite this piece of crap with efficiency in mind + // Register aspects for the item and block forms of each material part. registry.getValuesCollection().stream() .forEach( tcMaterial -> tcMaterial.getAspectMapKeys() .forEach( key -> { @@ -122,7 +121,7 @@ public static TCMaterial createPartsAspects(MMDMaterial material, IAspectGetter TCMaterial tcMaterial = new TCMaterial(material, aspectGetter); for (Names name:names) { tcMaterial.getAspectsFor(name); - + } return tcMaterial; } @@ -132,7 +131,7 @@ public static TCMaterial createPartsAspects(MMDMaterial material, IAspectGetter for (String name:names) { tcMaterial.getAspectsFor(name); } - + return tcMaterial; } } diff --git a/src/main/java/zone/moddev/mc/mmdlib/integration/plugins/ThaumcraftBase.java b/src/main/java/zone/moddev/mc/mmdlib/integration/plugins/ThaumcraftBase.java new file mode 100644 index 0000000..97af0e6 --- /dev/null +++ b/src/main/java/zone/moddev/mc/mmdlib/integration/plugins/ThaumcraftBase.java @@ -0,0 +1,6 @@ +package zone.moddev.mc.mmdlib.integration.plugins; + +@Deprecated +public class ThaumcraftBase extends Thaumcraft { + // Retained for compatibility with integrations using this class name. +} diff --git a/src/main/java/com/mcmoddev/lib/integration/plugins/ThermalExpansion.java b/src/main/java/zone/moddev/mc/mmdlib/integration/plugins/ThermalExpansion.java similarity index 88% rename from src/main/java/com/mcmoddev/lib/integration/plugins/ThermalExpansion.java rename to src/main/java/zone/moddev/mc/mmdlib/integration/plugins/ThermalExpansion.java index 4b88c16..989e4a8 100644 --- a/src/main/java/com/mcmoddev/lib/integration/plugins/ThermalExpansion.java +++ b/src/main/java/zone/moddev/mc/mmdlib/integration/plugins/ThermalExpansion.java @@ -1,23 +1,20 @@ -package com.mcmoddev.lib.integration.plugins; +package zone.moddev.mc.mmdlib.integration.plugins; import javax.annotation.Nonnull; -import com.mcmoddev.lib.data.MaterialNames; -import com.mcmoddev.lib.data.Names; -import com.mcmoddev.lib.init.Materials; -import com.mcmoddev.lib.integration.IIntegration; -import com.mcmoddev.lib.material.MMDMaterial; -import com.mcmoddev.lib.util.Config.Options; +import zone.moddev.mc.mmdlib.data.MaterialNames; +import zone.moddev.mc.mmdlib.data.Names; +import zone.moddev.mc.mmdlib.init.Materials; +import zone.moddev.mc.mmdlib.integration.IIntegration; +import zone.moddev.mc.mmdlib.material.MMDMaterial; +import zone.moddev.mc.mmdlib.util.Config.Options; import cofh.api.util.ThermalExpansionHelper; import net.minecraft.item.ItemStack; import net.minecraftforge.fluids.FluidRegistry; import net.minecraftforge.fluids.FluidStack; -// Parts of this are based on code from older versions of CoFHLib -// Other parts are lifted from the "ThermalExpansionHelper" of the 1.7 versions -// of CoFHLib - they were efficient and did the integration in the simplest -// manner. Why they've been removed, I don't know. +// Based on the historical CoFHLib ThermalExpansionHelper. public class ThermalExpansion implements IIntegration { @@ -145,7 +142,7 @@ protected static void addCrucible(@Nonnull final MMDMaterial material) { final FluidStack oreFluid; final FluidStack baseFluid; final FluidStack nuggetFluid; - if (materialName.equals(MaterialNames.REDSTONE)) { // Note: Redstone is and should be the only exception. Would more exceptions arise in the future, then this implementation needs to be restructured. + if (materialName.equals(MaterialNames.REDSTONE)) { // Redstone uses its own amount and energy cost. oreFluid = FluidRegistry.getFluidStack(materialName, 360); baseFluid = FluidRegistry.getFluidStack(materialName, 100); nuggetFluid = FluidRegistry.getFluidStack(materialName, 0); //unused in this case @@ -175,7 +172,7 @@ protected static void addCrucible(@Nonnull final MMDMaterial material) { ThermalExpansionHelper.addCrucibleRecipe(ENERGY_QTY / 2, plate, baseFluid); } - if (!materialName.equals(MaterialNames.REDSTONE)) { // Note: Redstone is and should be the only exception. Would more exceptions arise in the future, then this implementation needs to be restructured. + if (!materialName.equals(MaterialNames.REDSTONE)) { // Redstone uses its own amount and energy cost. if (material.hasItem(Names.NUGGET)) { final ItemStack nugget = material.getItemStack(Names.NUGGET); ThermalExpansionHelper.addCrucibleRecipe(ENERGY_QTY / 16, nugget, nuggetFluid); diff --git a/src/main/java/zone/moddev/mc/mmdlib/integration/plugins/ThermalExpansionBase.java b/src/main/java/zone/moddev/mc/mmdlib/integration/plugins/ThermalExpansionBase.java new file mode 100644 index 0000000..8a02e8e --- /dev/null +++ b/src/main/java/zone/moddev/mc/mmdlib/integration/plugins/ThermalExpansionBase.java @@ -0,0 +1,6 @@ +package zone.moddev.mc.mmdlib.integration.plugins; + +@Deprecated +public class ThermalExpansionBase extends ThermalExpansion { + // Retained for compatibility with integrations using this class name. +} diff --git a/src/main/java/com/mcmoddev/lib/integration/plugins/TinkersConstruct.java b/src/main/java/zone/moddev/mc/mmdlib/integration/plugins/TinkersConstruct.java similarity index 87% rename from src/main/java/com/mcmoddev/lib/integration/plugins/TinkersConstruct.java rename to src/main/java/zone/moddev/mc/mmdlib/integration/plugins/TinkersConstruct.java index 8a013fb..897c6a3 100644 --- a/src/main/java/com/mcmoddev/lib/integration/plugins/TinkersConstruct.java +++ b/src/main/java/zone/moddev/mc/mmdlib/integration/plugins/TinkersConstruct.java @@ -1,25 +1,25 @@ -package com.mcmoddev.lib.integration.plugins; +package zone.moddev.mc.mmdlib.integration.plugins; import com.google.common.collect.Lists; import com.google.common.collect.Queues; -import com.mcmoddev.lib.MMDLib; -import com.mcmoddev.lib.data.Names; -import com.mcmoddev.lib.integration.IIntegration; -import com.mcmoddev.lib.integration.IntegrationInitEvent; -import com.mcmoddev.lib.integration.IntegrationPostInitEvent; -import com.mcmoddev.lib.integration.IntegrationPreInitEvent; -import com.mcmoddev.lib.integration.plugins.tinkers.TinkerModifierRegistry; -import com.mcmoddev.lib.integration.plugins.tinkers.TinkerTraitLocation; -import com.mcmoddev.lib.integration.plugins.tinkers.TinkerTraitRegistry; -import com.mcmoddev.lib.integration.plugins.tinkers.TinkersMaterial; -import com.mcmoddev.lib.integration.plugins.tinkers.events.*; -import com.mcmoddev.lib.integration.plugins.tinkers.modifiers.ModifierFakeDiamond; -import com.mcmoddev.lib.integration.plugins.tinkers.modifiers.ModifierLeadPlated; -import com.mcmoddev.lib.integration.plugins.tinkers.modifiers.ModifierToxic; -import com.mcmoddev.lib.integration.plugins.tinkers.traits.MMDTraits; -import com.mcmoddev.lib.material.MMDMaterial; -import com.mcmoddev.lib.util.Config.Options; -import com.mcmoddev.lib.util.Oredicts; +import zone.moddev.mc.mmdlib.MMDLib; +import zone.moddev.mc.mmdlib.data.Names; +import zone.moddev.mc.mmdlib.integration.IIntegration; +import zone.moddev.mc.mmdlib.integration.IntegrationInitEvent; +import zone.moddev.mc.mmdlib.integration.IntegrationPostInitEvent; +import zone.moddev.mc.mmdlib.integration.IntegrationPreInitEvent; +import zone.moddev.mc.mmdlib.integration.plugins.tinkers.TinkerModifierRegistry; +import zone.moddev.mc.mmdlib.integration.plugins.tinkers.TinkerTraitLocation; +import zone.moddev.mc.mmdlib.integration.plugins.tinkers.TinkerTraitRegistry; +import zone.moddev.mc.mmdlib.integration.plugins.tinkers.TinkersMaterial; +import zone.moddev.mc.mmdlib.integration.plugins.tinkers.events.*; +import zone.moddev.mc.mmdlib.integration.plugins.tinkers.modifiers.ModifierFakeDiamond; +import zone.moddev.mc.mmdlib.integration.plugins.tinkers.modifiers.ModifierLeadPlated; +import zone.moddev.mc.mmdlib.integration.plugins.tinkers.modifiers.ModifierToxic; +import zone.moddev.mc.mmdlib.integration.plugins.tinkers.traits.MMDTraits; +import zone.moddev.mc.mmdlib.material.MMDMaterial; +import zone.moddev.mc.mmdlib.util.Config.Options; +import zone.moddev.mc.mmdlib.util.Oredicts; import net.minecraft.block.Block; import net.minecraft.item.Item; @@ -57,23 +57,23 @@ public class TinkersConstruct implements IIntegration { public static final String PLUGIN_MODID = "tconstruct"; - + private static boolean initDone = false; - + // registries private static final IForgeRegistry materialsRegistry = new RegistryBuilder() .disableSaving().setMaxID(65535) .setName(new ResourceLocation("mmdlib", "tinker_registry")) .setType(TinkersMaterial.class).create(); - private static final TinkerTraitRegistry traitsRegistry = new TinkerTraitRegistry(); // technically does nothing - private static final TinkerModifierRegistry modifiersRegistry = new TinkerModifierRegistry(); // technically does nothing + private static final TinkerTraitRegistry traitsRegistry = new TinkerTraitRegistry(); + private static final TinkerModifierRegistry modifiersRegistry = new TinkerModifierRegistry(); // other storage private static final List>> alloys = Lists.newCopyOnWriteArrayList(); private static final List> extraMeltings = Lists.newCopyOnWriteArrayList(); public static final TinkersConstruct INSTANCE = new TinkersConstruct(); private static final Deque materialsToAdd = Queues.newArrayDeque(); - + protected static IForgeRegistry getMaterialsRegistry() { return materialsRegistry; } @@ -88,7 +88,7 @@ protected static TinkerModifierRegistry getModifiersRegistry() { @Override public void init() { - + if(!slimeknights.tconstruct.TConstruct.pulseManager.isPulseLoaded("TinkerSmeltery")) { MMDLib.logger.fatal("module not enabled, not sending any cruft through"); initDone = true; @@ -99,18 +99,14 @@ public void init() { return; } initDone = true; - + MinecraftForge.EVENT_BUS.register(this); registerInternalTraits(); registerInternalModifiers(); MinecraftForge.EVENT_BUS.post(new TraitRegistrationEvent(traitsRegistry)); MinecraftForge.EVENT_BUS.post(new ModifierRegistrationEvent(modifiersRegistry)); } - - /** - * - * @param event - */ + @SubscribeEvent public void preInit(final IntegrationPreInitEvent event) { MinecraftForge.EVENT_BUS.post(new MaterialRegistrationEvent(materialsRegistry)); @@ -125,11 +121,7 @@ public void preInit(final IntegrationPreInitEvent event) { public void materialSetup(final RegistryEvent.Register ev) { setupMaterialItems(); } - - /** - * - * @param event - */ + @SubscribeEvent public void init(final IntegrationInitEvent event) { addTraitsToMaterials(); @@ -138,7 +130,7 @@ public void init(final IntegrationInitEvent event) { setupExtraSmeltingRecipes(); registerAlloys(); } - + protected void setupMaterialItems() { materialsRegistry.getEntries().stream() .forEach(ent -> { @@ -151,14 +143,10 @@ protected void setupMaterialItems() { } else if (base.hasItem(Names.ORE)) { m.setRepresentativeItem(base.getBlockItemStack(Names.ORE)); } - m.addCommonItems(base.getCapitalizedName()); + m.addCommonItems(base.getCapitalizedName()); }); } - - /** - * - * @param event - */ + @SubscribeEvent public void postInit(final IntegrationPostInitEvent event) { // purposefully blank @@ -167,7 +155,7 @@ public void postInit(final IntegrationPostInitEvent event) { public void addAlloyRecipe(String outputName, Integer outputAmount, Object...recipe) { FluidStack output = FluidRegistry.getFluidStack(outputName, outputAmount); List ingredients = Lists.newCopyOnWriteArrayList(); - + int i = 0; while(i < recipe.length) { if(recipe[i] instanceof String) { @@ -184,23 +172,23 @@ public void addAlloyRecipe(String outputName, Integer outputAmount, Object...rec } alloys.add(Pair.of(output, ingredients)); } - + public void addExtraMelting(String outputFluid, Integer amount, Item item) { addExtraMelting(outputFluid, amount, new ItemStack(item)); } - + public void addExtraMelting(String outputFluid, Integer amount, Block block) { addExtraMelting(outputFluid, amount, Item.getItemFromBlock(block)); } - + public void addExtraMelting(String outputFluid, Integer amount, ItemStack itemStack) { addExtraMelting(FluidRegistry.getFluidStack(outputFluid, amount), itemStack); } - + public void addExtraMelting(FluidStack output, ItemStack itemStack) { extraMeltings.add(Pair.of(itemStack, output)); } - + // private, internal stuff from here on out private void addMaterials() { @@ -225,7 +213,7 @@ private void addExistingMaterial(Material material){ } } } - + private void registerInternalTraits() { traitsRegistry.register("brittle", MMDTraits.brittle); traitsRegistry.register("heavy", MMDTraits.heavy); @@ -235,13 +223,13 @@ private void registerInternalTraits() { traitsRegistry.register("sparkly", MMDTraits.sparkly); traitsRegistry.register("toxic", MMDTraits.toxic); } - + private void registerInternalModifiers() { modifiersRegistry.register(new ResourceLocation("fake_diamond"), new ModifierFakeDiamond()); modifiersRegistry.register(new ResourceLocation("lead_plated"), new ModifierLeadPlated()); modifiersRegistry.register(new ResourceLocation("toxic"), new ModifierToxic()); } - + private void materialIntegrationPreInit() { materialsRegistry.getEntries().stream() .forEach(ent -> { @@ -252,22 +240,22 @@ private void materialIntegrationPreInit() { if(m == Material.UNKNOWN) m = tm.create().getTinkerMaterial(); m.setCastable(tm.getCastable()).setCraftable(tm.getCraftable()); - + m.addCommonItems(base.getCapitalizedName()); - + m.setVisible(); m.setFluid(base.getFluid()); - + if(tm.getToolForge()) TinkerRegistry.integrate(m, base.getFluid(), base.getCapitalizedName()).toolforge(); else TinkerRegistry.integrate(m, base.getFluid(), base.getCapitalizedName()); - + if(!materialsToAdd.contains(m)) materialsToAdd.addLast(m); }); } - + private void addMaterialStats() { materialsRegistry.getEntries().stream() .map(ent -> ent.getValue()) @@ -275,7 +263,7 @@ private void addMaterialStats() { mat.getBowStats(), mat.getBowStringStats(), mat.getFletchingStats(), mat.getHeadStats(), mat.getHandleStats(), mat.getExtraStats())); } - + private void addTraitsToMaterials() { materialsRegistry.getEntries().stream() .map(ent -> ent.getValue()) @@ -298,13 +286,13 @@ private void addTraitsToMaterials() { }) ); } - + private void setupExtraSmeltingRecipes() { // loop over our registered Extra Smelting recipes extraMeltings.stream().forEach( emt -> TinkerRegistry.registerMelting( - emt.getLeft(), - emt.getRight().getFluid(), + emt.getLeft(), + emt.getRight().getFluid(), emt.getRight().amount)); } @@ -317,7 +305,7 @@ private void registerAlloys() { List rawRecipe = tm.getAlloyRecipe(); FluidStack output = rawRecipe.get(0); List inputs = Lists.newCopyOnWriteArrayList(); - + for(int i = 1; i < rawRecipe.size(); i++) { inputs.add(rawRecipe.get(i)); } @@ -325,7 +313,7 @@ private void registerAlloys() { AlloyRecipe recipe = new AlloyRecipe(output, inputs.toArray(new FluidStack[inputs.size()])); TinkerRegistry.registerAlloy(recipe); }); - + // then we do the alloys registered separate... alloys.stream().forEach( p -> { List inputs = p.getRight(); diff --git a/src/main/java/zone/moddev/mc/mmdlib/integration/plugins/TinkersConstructBase.java b/src/main/java/zone/moddev/mc/mmdlib/integration/plugins/TinkersConstructBase.java new file mode 100644 index 0000000..2d57c15 --- /dev/null +++ b/src/main/java/zone/moddev/mc/mmdlib/integration/plugins/TinkersConstructBase.java @@ -0,0 +1,6 @@ +package zone.moddev.mc.mmdlib.integration.plugins; + +@Deprecated +public class TinkersConstructBase extends TinkersConstruct { + // Retained for compatibility with integrations using this class name. +} diff --git a/src/main/java/com/mcmoddev/lib/integration/plugins/VeinMiner.java b/src/main/java/zone/moddev/mc/mmdlib/integration/plugins/VeinMiner.java similarity index 83% rename from src/main/java/com/mcmoddev/lib/integration/plugins/VeinMiner.java rename to src/main/java/zone/moddev/mc/mmdlib/integration/plugins/VeinMiner.java index 3d4d30e..c720c72 100644 --- a/src/main/java/com/mcmoddev/lib/integration/plugins/VeinMiner.java +++ b/src/main/java/zone/moddev/mc/mmdlib/integration/plugins/VeinMiner.java @@ -1,11 +1,11 @@ -package com.mcmoddev.lib.integration.plugins; +package zone.moddev.mc.mmdlib.integration.plugins; import javax.annotation.Nonnull; -import com.mcmoddev.lib.data.Names; -import com.mcmoddev.lib.integration.IIntegration; -import com.mcmoddev.lib.material.MMDMaterial; -import com.mcmoddev.lib.util.Config.Options; +import zone.moddev.mc.mmdlib.data.Names; +import zone.moddev.mc.mmdlib.integration.IIntegration; +import zone.moddev.mc.mmdlib.material.MMDMaterial; +import zone.moddev.mc.mmdlib.util.Config.Options; import net.minecraftforge.fml.common.Loader; import portablejim.veinminer.api.IMCMessage; @@ -50,14 +50,14 @@ protected static void addToolsForMaterial(@Nonnull final String materialName) { final String pickaxe = Names.PICKAXE.toString(); final String shears = Names.SHEARS.toString(); final String shovel = Names.SHOVEL.toString(); - // final String crook = "crook" + final String hammer = "hammer"; IMCMessage.addTool(axe, ownerModID + ":" + materialName + "_" + axe); IMCMessage.addTool(hoe, ownerModID + ":" + materialName + "_" + hoe); IMCMessage.addTool(pickaxe, ownerModID + ":" + materialName + "_" + pickaxe); IMCMessage.addTool(shears, ownerModID + ":" + materialName + "_" + shears); IMCMessage.addTool(shovel, ownerModID + ":" + materialName + "_" + shovel); - // IMCMessage.addTool(crook, ownerModID + ":" + materialName + "_" + crook) + IMCMessage.addTool(hammer, ownerModID + ":" + materialName + "_" + hammer); } } diff --git a/src/main/java/zone/moddev/mc/mmdlib/integration/plugins/VeinMinerBase.java b/src/main/java/zone/moddev/mc/mmdlib/integration/plugins/VeinMinerBase.java new file mode 100644 index 0000000..8970049 --- /dev/null +++ b/src/main/java/zone/moddev/mc/mmdlib/integration/plugins/VeinMinerBase.java @@ -0,0 +1,6 @@ +package zone.moddev.mc.mmdlib.integration.plugins; + +@Deprecated +public class VeinMinerBase extends VeinMiner { + // Retained for compatibility with integrations using this class name. +} diff --git a/src/main/java/com/mcmoddev/lib/integration/plugins/armory/traits/MMDTraitsCA.java b/src/main/java/zone/moddev/mc/mmdlib/integration/plugins/armory/traits/MMDTraitsCA.java similarity index 97% rename from src/main/java/com/mcmoddev/lib/integration/plugins/armory/traits/MMDTraitsCA.java rename to src/main/java/zone/moddev/mc/mmdlib/integration/plugins/armory/traits/MMDTraitsCA.java index fffbab2..4a0024b 100644 --- a/src/main/java/com/mcmoddev/lib/integration/plugins/armory/traits/MMDTraitsCA.java +++ b/src/main/java/zone/moddev/mc/mmdlib/integration/plugins/armory/traits/MMDTraitsCA.java @@ -1,4 +1,4 @@ -package com.mcmoddev.lib.integration.plugins.armory.traits; +package zone.moddev.mc.mmdlib.integration.plugins.armory.traits; import slimeknights.tconstruct.library.traits.AbstractTrait; @@ -71,7 +71,6 @@ public class MMDTraitsCA { */ public static final AbstractTrait reactive = new TraitReactive(); - public static final AbstractTrait brittle = new TraitBrittle(); /** diff --git a/src/main/java/zone/moddev/mc/mmdlib/integration/plugins/armory/traits/TraitBrittle.java b/src/main/java/zone/moddev/mc/mmdlib/integration/plugins/armory/traits/TraitBrittle.java new file mode 100644 index 0000000..cd48faa --- /dev/null +++ b/src/main/java/zone/moddev/mc/mmdlib/integration/plugins/armory/traits/TraitBrittle.java @@ -0,0 +1,13 @@ +package zone.moddev.mc.mmdlib.integration.plugins.armory.traits; + +import c4.conarm.lib.traits.AbstractArmorTrait; +import net.minecraft.util.text.TextFormatting; + +/** Registers the brittle armor trait identifier; no armor callbacks are installed here. */ +public class TraitBrittle extends AbstractArmorTrait { + + public TraitBrittle() { + super("mmd-brittle", TextFormatting.RED); + } + +} diff --git a/src/main/java/zone/moddev/mc/mmdlib/integration/plugins/armory/traits/TraitIcy.java b/src/main/java/zone/moddev/mc/mmdlib/integration/plugins/armory/traits/TraitIcy.java new file mode 100644 index 0000000..1258790 --- /dev/null +++ b/src/main/java/zone/moddev/mc/mmdlib/integration/plugins/armory/traits/TraitIcy.java @@ -0,0 +1,37 @@ +package zone.moddev.mc.mmdlib.integration.plugins.armory.traits; + +import c4.conarm.lib.traits.AbstractArmorTrait; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.util.DamageSource; +import net.minecraft.util.text.TextFormatting; +import net.minecraftforge.event.entity.living.LivingDamageEvent; + +/** + *

Icy Armor Modifier

+ * Name: icy + *
+ * Desc: + * Applies Fire Protection + * + *
+ * String Reference:
+ * "icy" + * "mmd-icy" + */ +public class TraitIcy extends AbstractArmorTrait { + + public TraitIcy() { + super("mmd-icy", TextFormatting.GRAY); + } + + @Override + public float onDamaged(ItemStack armor, EntityPlayer player, DamageSource source, float damage, float newDamage, LivingDamageEvent evt) { + float newNewDamage = newDamage; + if(source.isFireDamage() ){ + + newNewDamage = 0f; + } + return newNewDamage; + } +} diff --git a/src/main/java/com/mcmoddev/lib/integration/plugins/armory/traits/TraitMalleable.java b/src/main/java/zone/moddev/mc/mmdlib/integration/plugins/armory/traits/TraitMalleable.java similarity index 94% rename from src/main/java/com/mcmoddev/lib/integration/plugins/armory/traits/TraitMalleable.java rename to src/main/java/zone/moddev/mc/mmdlib/integration/plugins/armory/traits/TraitMalleable.java index 28e0cc8..e488c46 100644 --- a/src/main/java/com/mcmoddev/lib/integration/plugins/armory/traits/TraitMalleable.java +++ b/src/main/java/zone/moddev/mc/mmdlib/integration/plugins/armory/traits/TraitMalleable.java @@ -1,4 +1,4 @@ -package com.mcmoddev.lib.integration.plugins.armory.traits; +package zone.moddev.mc.mmdlib.integration.plugins.armory.traits; import c4.conarm.lib.traits.AbstractArmorTrait; import net.minecraft.entity.player.EntityPlayer; diff --git a/src/main/java/com/mcmoddev/lib/integration/plugins/armory/traits/TraitPoisonous.java b/src/main/java/zone/moddev/mc/mmdlib/integration/plugins/armory/traits/TraitPoisonous.java similarity index 95% rename from src/main/java/com/mcmoddev/lib/integration/plugins/armory/traits/TraitPoisonous.java rename to src/main/java/zone/moddev/mc/mmdlib/integration/plugins/armory/traits/TraitPoisonous.java index ea1cd62..a596a28 100644 --- a/src/main/java/com/mcmoddev/lib/integration/plugins/armory/traits/TraitPoisonous.java +++ b/src/main/java/zone/moddev/mc/mmdlib/integration/plugins/armory/traits/TraitPoisonous.java @@ -1,4 +1,4 @@ -package com.mcmoddev.lib.integration.plugins.armory.traits; +package zone.moddev.mc.mmdlib.integration.plugins.armory.traits; import c4.conarm.lib.traits.AbstractArmorTrait; import net.minecraft.entity.Entity; diff --git a/src/main/java/com/mcmoddev/lib/integration/plugins/armory/traits/TraitReactive.java b/src/main/java/zone/moddev/mc/mmdlib/integration/plugins/armory/traits/TraitReactive.java similarity index 97% rename from src/main/java/com/mcmoddev/lib/integration/plugins/armory/traits/TraitReactive.java rename to src/main/java/zone/moddev/mc/mmdlib/integration/plugins/armory/traits/TraitReactive.java index 808bef3..db1b0ca 100644 --- a/src/main/java/com/mcmoddev/lib/integration/plugins/armory/traits/TraitReactive.java +++ b/src/main/java/zone/moddev/mc/mmdlib/integration/plugins/armory/traits/TraitReactive.java @@ -1,4 +1,4 @@ -package com.mcmoddev.lib.integration.plugins.armory.traits; +package zone.moddev.mc.mmdlib.integration.plugins.armory.traits; import c4.conarm.lib.traits.AbstractArmorTrait; import net.minecraft.entity.Entity; diff --git a/src/main/java/com/mcmoddev/lib/integration/plugins/armory/traits/TraitToxic.java b/src/main/java/zone/moddev/mc/mmdlib/integration/plugins/armory/traits/TraitToxic.java similarity index 95% rename from src/main/java/com/mcmoddev/lib/integration/plugins/armory/traits/TraitToxic.java rename to src/main/java/zone/moddev/mc/mmdlib/integration/plugins/armory/traits/TraitToxic.java index eecbd13..a743464 100644 --- a/src/main/java/com/mcmoddev/lib/integration/plugins/armory/traits/TraitToxic.java +++ b/src/main/java/zone/moddev/mc/mmdlib/integration/plugins/armory/traits/TraitToxic.java @@ -1,4 +1,4 @@ -package com.mcmoddev.lib.integration.plugins.armory.traits; +package zone.moddev.mc.mmdlib.integration.plugins.armory.traits; import c4.conarm.lib.traits.AbstractArmorTrait; import net.minecraft.entity.Entity; diff --git a/src/main/java/zone/moddev/mc/mmdlib/integration/plugins/armory/traits/package-info.java b/src/main/java/zone/moddev/mc/mmdlib/integration/plugins/armory/traits/package-info.java new file mode 100644 index 0000000..c818f5f --- /dev/null +++ b/src/main/java/zone/moddev/mc/mmdlib/integration/plugins/armory/traits/package-info.java @@ -0,0 +1,4 @@ +@ParametersAreNonnullByDefault +package zone.moddev.mc.mmdlib.integration.plugins.armory.traits; + +import javax.annotation.ParametersAreNonnullByDefault; diff --git a/src/main/java/zone/moddev/mc/mmdlib/integration/plugins/package-info.java b/src/main/java/zone/moddev/mc/mmdlib/integration/plugins/package-info.java new file mode 100644 index 0000000..918a7cf --- /dev/null +++ b/src/main/java/zone/moddev/mc/mmdlib/integration/plugins/package-info.java @@ -0,0 +1,4 @@ +@ParametersAreNonnullByDefault +package zone.moddev.mc.mmdlib.integration.plugins; + +import javax.annotation.ParametersAreNonnullByDefault; diff --git a/src/main/java/com/mcmoddev/lib/integration/plugins/thaumcraft/BaseAspectGetter.java b/src/main/java/zone/moddev/mc/mmdlib/integration/plugins/thaumcraft/BaseAspectGetter.java similarity index 94% rename from src/main/java/com/mcmoddev/lib/integration/plugins/thaumcraft/BaseAspectGetter.java rename to src/main/java/zone/moddev/mc/mmdlib/integration/plugins/thaumcraft/BaseAspectGetter.java index 66f5e4a..c7038f7 100644 --- a/src/main/java/com/mcmoddev/lib/integration/plugins/thaumcraft/BaseAspectGetter.java +++ b/src/main/java/zone/moddev/mc/mmdlib/integration/plugins/thaumcraft/BaseAspectGetter.java @@ -1,4 +1,4 @@ -package com.mcmoddev.lib.integration.plugins.thaumcraft; +package zone.moddev.mc.mmdlib.integration.plugins.thaumcraft; import java.util.ArrayList; import java.util.Collections; @@ -6,19 +6,19 @@ import org.apache.commons.lang3.tuple.Pair; -import com.mcmoddev.lib.data.NameToken; -import com.mcmoddev.lib.data.NameTokens; -import com.mcmoddev.lib.material.MMDMaterial; +import zone.moddev.mc.mmdlib.data.NameToken; +import zone.moddev.mc.mmdlib.data.NameTokens; +import zone.moddev.mc.mmdlib.material.MMDMaterial; import thaumcraft.api.aspects.Aspect; public class BaseAspectGetter implements IAspectGetter { private final MMDMaterial wrapped; - + private final IAspectCalculation genericCalc = (multiplier) -> doGenericCalc(multiplier); private final IAspectCalculation genericMagicCalc = (multiplier) -> doGenericMagicCalc(multiplier); private final IAspectCalculation fixedValue = (multiplier) -> 5; - + public BaseAspectGetter(MMDMaterial baseClass) { this.wrapped = baseClass; } @@ -27,14 +27,14 @@ public BaseAspectGetter(MMDMaterial baseClass) { public IAspectCalculation getCalcFor(Aspect aspect) { if(aspect.equals(Aspect.MAGIC)) return genericMagicCalc; - + return genericCalc; } - + @Override public List> getAspectForPart(NameToken part) { List> rv = new ArrayList<>(); - + if(part.equals(MATERIAL_WIDE)) { switch(wrapped.getType()) { case METAL: @@ -80,10 +80,10 @@ public List> getAspectForPart(NameToken part) { part.equals(NameTokens.MEK_CRYSTAL) ) { rv.add(Pair.of(Aspect.CRYSTAL, fixedValue)); } - + return rv.isEmpty()?Collections.emptyList():rv; } - + private int doGenericMagicCalc(float multiplier){ float enchantability = wrapped.getEnchantability(); float harvestLevel = wrapped.getRequiredHarvestLevel(); diff --git a/src/main/java/com/mcmoddev/lib/integration/plugins/thaumcraft/IAspectCalculation.java b/src/main/java/zone/moddev/mc/mmdlib/integration/plugins/thaumcraft/IAspectCalculation.java similarity index 81% rename from src/main/java/com/mcmoddev/lib/integration/plugins/thaumcraft/IAspectCalculation.java rename to src/main/java/zone/moddev/mc/mmdlib/integration/plugins/thaumcraft/IAspectCalculation.java index 0b8189d..fcd04e4 100644 --- a/src/main/java/com/mcmoddev/lib/integration/plugins/thaumcraft/IAspectCalculation.java +++ b/src/main/java/zone/moddev/mc/mmdlib/integration/plugins/thaumcraft/IAspectCalculation.java @@ -1,4 +1,4 @@ -package com.mcmoddev.lib.integration.plugins.thaumcraft; +package zone.moddev.mc.mmdlib.integration.plugins.thaumcraft; /** * Allowance for a Lambda/anon-method for calculating the amount of an aspect diff --git a/src/main/java/com/mcmoddev/lib/integration/plugins/thaumcraft/IAspectGetter.java b/src/main/java/zone/moddev/mc/mmdlib/integration/plugins/thaumcraft/IAspectGetter.java similarity index 76% rename from src/main/java/com/mcmoddev/lib/integration/plugins/thaumcraft/IAspectGetter.java rename to src/main/java/zone/moddev/mc/mmdlib/integration/plugins/thaumcraft/IAspectGetter.java index cc040d5..88c9dab 100644 --- a/src/main/java/com/mcmoddev/lib/integration/plugins/thaumcraft/IAspectGetter.java +++ b/src/main/java/zone/moddev/mc/mmdlib/integration/plugins/thaumcraft/IAspectGetter.java @@ -1,10 +1,10 @@ -package com.mcmoddev.lib.integration.plugins.thaumcraft; +package zone.moddev.mc.mmdlib.integration.plugins.thaumcraft; import java.util.List; import org.apache.commons.lang3.tuple.Pair; -import com.mcmoddev.lib.data.NameToken; +import zone.moddev.mc.mmdlib.data.NameToken; import thaumcraft.api.aspects.Aspect; diff --git a/src/main/java/com/mcmoddev/lib/integration/plugins/thaumcraft/TCMaterial.java b/src/main/java/zone/moddev/mc/mmdlib/integration/plugins/thaumcraft/TCMaterial.java similarity index 94% rename from src/main/java/com/mcmoddev/lib/integration/plugins/thaumcraft/TCMaterial.java rename to src/main/java/zone/moddev/mc/mmdlib/integration/plugins/thaumcraft/TCMaterial.java index 5926d8f..4f14666 100644 --- a/src/main/java/com/mcmoddev/lib/integration/plugins/thaumcraft/TCMaterial.java +++ b/src/main/java/zone/moddev/mc/mmdlib/integration/plugins/thaumcraft/TCMaterial.java @@ -1,10 +1,10 @@ -package com.mcmoddev.lib.integration.plugins.thaumcraft; +package zone.moddev.mc.mmdlib.integration.plugins.thaumcraft; -import com.mcmoddev.lib.material.IMMDObject; -import com.mcmoddev.lib.material.MMDMaterial; -import com.mcmoddev.lib.data.NameToken; -import com.mcmoddev.lib.data.Names; -import com.mcmoddev.lib.integration.plugins.Thaumcraft; +import zone.moddev.mc.mmdlib.material.IMMDObject; +import zone.moddev.mc.mmdlib.material.MMDMaterial; +import zone.moddev.mc.mmdlib.data.NameToken; +import zone.moddev.mc.mmdlib.data.Names; +import zone.moddev.mc.mmdlib.integration.plugins.Thaumcraft; import java.util.Arrays; import java.util.HashMap; @@ -30,7 +30,7 @@ public class TCMaterial extends IForgeRegistryEntry.Impl implements private final Map> aspectCalcs; private final List> materialAspects; private final IAspectGetter aspectGetter; - + public TCMaterial(MMDMaterial baseMaterial, IAspectGetter aspectGetter) { this.baseMaterial = baseMaterial; this.aspectMap = new HashMap<>(); @@ -41,56 +41,56 @@ public TCMaterial(MMDMaterial baseMaterial, IAspectGetter aspectGetter) { Map tempMA = new HashMap<>(); this.materialAspects.stream() .forEach( p -> tempMA.put(p.getKey(), p.getValue())); - + this.aspectCalcs.put(BaseAspectGetter.MATERIAL_WIDE, tempMA); this.aspectCalcs.get(BaseAspectGetter.MATERIAL_WIDE).entrySet().stream() .forEach(ent -> this.addMaterialAspect(ent.getKey(), ent.getValue())); super.setRegistryName(this.baseMaterial.getRegistryName()); - + } - + public List getAspectMapKeys() { return this.aspectMap.keySet().stream().collect(Collectors.toList()); } - + public AspectList getAspectsFor(Names part) { return getAspectsFor(part.toString()); } - + public AspectList getAspectsFor(String part) { return getAspectsFor(new NameToken(part)); } - + private boolean aspectExists(AspectList aspectList, Aspect aspect) { return aspectList.aspects.containsKey(aspect); } - + private boolean aspectDoesNotExist(AspectList aspectList, Aspect aspect) { return !aspectExists(aspectList, aspect); } - + private int applyCalculation(NameToken part, IAspectCalculation calc) { return (int) calc.apply(Thaumcraft.getPartMultiplier(part)); } - + private AspectList getAsAspectList(Aspect aspect, IAspectCalculation calc, NameToken part) { AspectList rv = new AspectList(); int val = applyCalculation(part, calc); rv.add(aspect, val); this.addAspect(part, aspect, val); - + return rv; } - + private AspectList getAspectList(NameToken part) { AspectList rv = new AspectList(); - + this.aspectCalcs.get(part).entrySet().stream() .forEach(kvp -> rv.add(getAsAspectList(kvp.getKey(), kvp.getValue(), part))); - + return rv; } - + private AspectList getAspectListFiltered(NameToken part, Predicate> filter) { AspectList rv = new AspectList(); @@ -100,17 +100,17 @@ private AspectList getAspectListFiltered(NameToken part, Predicate aspectDoesNotExist(this.aspectMap.get(part), ent.getKey()))); } else { List> maybe = this.aspectGetter.getAspectForPart(part); Map b = new HashMap<>(); - + if (!maybe.isEmpty()) { maybe.stream() .forEach(kvp -> { @@ -118,7 +118,7 @@ public AspectList getAspectsFor(NameToken part) { rv.add(getAsAspectList(as, kvp.getValue(), part)); b.put(as, kvp.getValue()); }); - + this.aspectCalcs.get(BaseAspectGetter.MATERIAL_WIDE).entrySet().stream() .filter(ent -> aspectDoesNotExist(this.aspectMap.get(part), ent.getKey())) .forEach(ent -> { @@ -126,11 +126,11 @@ public AspectList getAspectsFor(NameToken part) { rv.add(getAsAspectList(as, ent.getValue(), part)); b.put(as, ent.getValue()); }); - + this.aspectCalcs.put(part, b); } } - + return rv; } @@ -141,25 +141,25 @@ public void update() { .filter(ent -> !ent.getKey().equals(BaseAspectGetter.MATERIAL_WIDE)) .forEach( ent -> ent.getValue().add(p.getKey(), p.getValue().apply(Thaumcraft.getPartMultiplier(ent.getKey())))); }); - + Arrays.asList(Names.values()).stream() .forEach(name -> this.materialAspects.stream() .forEach(p -> this.addAspect(name, p.getKey(), p.getValue().apply(Thaumcraft.getPartMultiplier(name))))); } - + public TCMaterial addMaterialAspect(Aspect aspect, int amount) { return this.addMaterialAspect(aspect, (m) -> amount); } - + public TCMaterial addMaterialAspect(Aspect aspect, IAspectCalculation calc) { Map matAsp = this.aspectCalcs.get(BaseAspectGetter.MATERIAL_WIDE); matAsp.put(aspect, calc); - + this.addAspect(BaseAspectGetter.MATERIAL_WIDE, aspect, calc.apply(1.0f)); - + return this; } - + public TCMaterial addAspect(NameToken part, Aspect aspect, int amount) { if (this.aspectMap.containsKey(part)) { AspectList al = this.aspectMap.get(part); @@ -168,10 +168,10 @@ public TCMaterial addAspect(NameToken part, Aspect aspect, int amount) { } else { this.aspectMap.put(part, new AspectList().add(aspect, amount)); } - + return this; } - + public TCMaterial addAspect(Names part, Aspect aspect, int amount){ return this.addAspect(part.toString(), aspect, amount); } @@ -188,10 +188,10 @@ public TCMaterial addAspect(NameToken part, AspectList aspectList) { } else { this.aspectMap.put(part, aspectList); } - + return this; } - + public TCMaterial addAspect(Names part, AspectList aspectList){ return this.addAspect(part.toString(), aspectList); } @@ -203,7 +203,7 @@ public TCMaterial addAspect(String part, AspectList aspectList){ public AspectList getAspectFor(NameToken part) { return aspectMap.get(part); } - + public AspectList getAspectFor(String part) { return getAspectFor(new NameToken(part)); } @@ -243,7 +243,7 @@ public Block getBlock(NameToken block){ public ItemStack getBlockItemStack(NameToken block){ return baseMaterial.getBlockItemStack(block); } - + public String getName(){ return this.baseMaterial.getName(); } diff --git a/src/main/java/com/mcmoddev/lib/integration/plugins/thaumcraft/TCSyncEvent.java b/src/main/java/zone/moddev/mc/mmdlib/integration/plugins/thaumcraft/TCSyncEvent.java similarity index 87% rename from src/main/java/com/mcmoddev/lib/integration/plugins/thaumcraft/TCSyncEvent.java rename to src/main/java/zone/moddev/mc/mmdlib/integration/plugins/thaumcraft/TCSyncEvent.java index e7a33a2..728f028 100644 --- a/src/main/java/com/mcmoddev/lib/integration/plugins/thaumcraft/TCSyncEvent.java +++ b/src/main/java/zone/moddev/mc/mmdlib/integration/plugins/thaumcraft/TCSyncEvent.java @@ -1,30 +1,30 @@ -package com.mcmoddev.lib.integration.plugins.thaumcraft; +package zone.moddev.mc.mmdlib.integration.plugins.thaumcraft; import net.minecraftforge.fml.common.eventhandler.Event; import net.minecraftforge.registries.IForgeRegistry; import java.util.Map; -import com.mcmoddev.lib.init.Materials; -import com.mcmoddev.lib.material.MMDMaterial; +import zone.moddev.mc.mmdlib.init.Materials; +import zone.moddev.mc.mmdlib.material.MMDMaterial; import net.minecraft.util.ResourceLocation; public class TCSyncEvent extends Event { private final IForgeRegistry registry; private final Map nameMapping; - + public TCSyncEvent(IForgeRegistry regIn, Map map) { this.registry = regIn; this.nameMapping = map; } - + public void register(TCMaterial materialIn) { - + this.nameMapping.putIfAbsent(materialIn.getName(), materialIn.getRegistryName()); this.registry.register(materialIn); } - + private TCMaterial getNewMaterial(String materialName) { MMDMaterial base= Materials.getMaterialByName(materialName); return new TCMaterial(base, new BaseAspectGetter(base)); diff --git a/src/main/java/com/mcmoddev/lib/integration/plugins/tinkers/ArmoryTraitLocation.java b/src/main/java/zone/moddev/mc/mmdlib/integration/plugins/tinkers/ArmoryTraitLocation.java similarity index 75% rename from src/main/java/com/mcmoddev/lib/integration/plugins/tinkers/ArmoryTraitLocation.java rename to src/main/java/zone/moddev/mc/mmdlib/integration/plugins/tinkers/ArmoryTraitLocation.java index e5947c5..bdca8db 100644 --- a/src/main/java/com/mcmoddev/lib/integration/plugins/tinkers/ArmoryTraitLocation.java +++ b/src/main/java/zone/moddev/mc/mmdlib/integration/plugins/tinkers/ArmoryTraitLocation.java @@ -1,4 +1,4 @@ -package com.mcmoddev.lib.integration.plugins.tinkers; +package zone.moddev.mc.mmdlib.integration.plugins.tinkers; import java.util.Locale; diff --git a/src/main/java/com/mcmoddev/lib/integration/plugins/tinkers/ModifierRegistry.java b/src/main/java/zone/moddev/mc/mmdlib/integration/plugins/tinkers/ModifierRegistry.java old mode 100755 new mode 100644 similarity index 79% rename from src/main/java/com/mcmoddev/lib/integration/plugins/tinkers/ModifierRegistry.java rename to src/main/java/zone/moddev/mc/mmdlib/integration/plugins/tinkers/ModifierRegistry.java index fa13609..3c9ff9e --- a/src/main/java/com/mcmoddev/lib/integration/plugins/tinkers/ModifierRegistry.java +++ b/src/main/java/zone/moddev/mc/mmdlib/integration/plugins/tinkers/ModifierRegistry.java @@ -1,13 +1,13 @@ -package com.mcmoddev.lib.integration.plugins.tinkers; +package zone.moddev.mc.mmdlib.integration.plugins.tinkers; import java.util.Collections; import java.util.HashMap; import java.util.Map; import javax.annotation.Nonnull; -import com.mcmoddev.lib.MMDLib; -import com.mcmoddev.lib.integration.plugins.tinkers.modifiers.ModifierFakeDiamond; -import com.mcmoddev.lib.integration.plugins.tinkers.modifiers.ModifierLeadPlated; -import com.mcmoddev.lib.integration.plugins.tinkers.modifiers.ModifierToxic; +import zone.moddev.mc.mmdlib.MMDLib; +import zone.moddev.mc.mmdlib.integration.plugins.tinkers.modifiers.ModifierFakeDiamond; +import zone.moddev.mc.mmdlib.integration.plugins.tinkers.modifiers.ModifierLeadPlated; +import zone.moddev.mc.mmdlib.integration.plugins.tinkers.modifiers.ModifierToxic; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import slimeknights.mantle.util.RecipeMatch; @@ -29,11 +29,6 @@ private ModifierRegistry() { throw new IllegalAccessError("Not an instantiable class"); } - /** - * - * @param name - * @param ingredients - */ public static void setModifierRecipe(@Nonnull final String name, @Nonnull final ItemStack... ingredients) { final Modifier t = modifiers.get(name); if (t == null) { @@ -49,11 +44,6 @@ public static void setModifierItem(@Nonnull final String name, @Nonnull final It setModifierItem(name, item.getItem()); } - /** - * - * @param name - * @param item - */ public static void setModifierItem(@Nonnull final String name, @Nonnull final Item item) { final Modifier t = modifiers.get(name); if (t == null) { @@ -66,9 +56,6 @@ public static void setModifierItem(@Nonnull final String name, @Nonnull final It modifiers.put(name, t); } - /** - * - */ public static void initModifiers() { modifiers.put("toxic", new ModifierToxic()); modifiers.put("plated", new ModifierLeadPlated()); @@ -76,14 +63,9 @@ public static void initModifiers() { } public static void registerModifiers() { - // blank on purpose - this is a no-op with 2.7.+ and the entire 2.8 and 2.9 series + // Retained as a no-op for older registration callers. } - /** - * - * @param name - * @return - */ public static Map getModifierDetails(@Nonnull final String name) { final Map rv = new HashMap<>(); if (modifiers.containsKey(name)) { diff --git a/src/main/java/com/mcmoddev/lib/integration/plugins/tinkers/TCMaterial.java b/src/main/java/zone/moddev/mc/mmdlib/integration/plugins/tinkers/TCMaterial.java old mode 100755 new mode 100644 similarity index 86% rename from src/main/java/com/mcmoddev/lib/integration/plugins/tinkers/TCMaterial.java rename to src/main/java/zone/moddev/mc/mmdlib/integration/plugins/tinkers/TCMaterial.java index 28d8246..b600376 --- a/src/main/java/com/mcmoddev/lib/integration/plugins/tinkers/TCMaterial.java +++ b/src/main/java/zone/moddev/mc/mmdlib/integration/plugins/tinkers/TCMaterial.java @@ -1,4 +1,4 @@ -package com.mcmoddev.lib.integration.plugins.tinkers; +package zone.moddev.mc.mmdlib.integration.plugins.tinkers; import java.util.ArrayList; import java.util.Collections; @@ -8,10 +8,10 @@ import java.util.Map.Entry; import javax.annotation.Nonnull; import javax.annotation.Nullable; -import com.mcmoddev.lib.data.MaterialStats; -import com.mcmoddev.lib.data.Names; -import com.mcmoddev.lib.material.MMDMaterial; -import com.mcmoddev.lib.util.Oredicts; +import zone.moddev.mc.mmdlib.data.MaterialStats; +import zone.moddev.mc.mmdlib.data.Names; +import zone.moddev.mc.mmdlib.material.MMDMaterial; +import zone.moddev.mc.mmdlib.util.Oredicts; import net.minecraft.item.Item; import net.minecraftforge.fluids.Fluid; import net.minecraftforge.fluids.FluidRegistry; @@ -27,22 +27,22 @@ import slimeknights.tconstruct.shared.TinkerFluids; public class TCMaterial { - // internal vars - names should mostly be self-explanatory + // Material identity and cached registration state. - // book-keeping and stuff the user should only have to worry about once + // Material identity and registration options. private String name; private int tintColor; private MMDMaterial material; private Material tinkersMaterial; - private boolean configured = false; // blargh + private boolean configured = false; - // book keeping stuffs - trait handling bits + // Traits attached to this material. private Map> traits; private Map> resolvedTraits; - // extra melting stuffs + private Map extraMelting; - // broken-out stats + // Configured material statistics. private int headDurability; private float miningSpeed; private int miningLevel; @@ -63,11 +63,11 @@ public class TCMaterial { private int ingotAmount; private boolean toolForge = false; - // for representative item stuffs + // Representative items for the material. private Item repItem; private String repName; - // actual stats in the form Tinkers' needs + // Statistics supplied to Tinkers' Construct. private HeadMaterialStats headStats; private HandleMaterialStats handleStats; private ExtraMaterialStats extraStats; @@ -76,7 +76,7 @@ public class TCMaterial { private ArrowShaftMaterialStats arrowShaftStats; private FletchingMaterialStats fletchingStats; - // All constructors are private - use the 'get' (or whatever they wind up being named) static's + // Use the static get factory methods to reuse the registered material instance. private TCMaterial() { this.traits = new HashMap<>(); this.resolvedTraits = new HashMap<>(); @@ -93,10 +93,6 @@ private TCMaterial(final String name, final int color) { this.tintColor = color; } - /** - * - * @param material - */ public TCMaterial(final MMDMaterial material) { this(); this.material = material; @@ -113,7 +109,7 @@ public TCMaterial(final MMDMaterial material, final String name, final int color this.tintColor = color; } - // Use these functions to get the object + // Factories reuse the cached material instance. public static TCMaterial get() { return new TCMaterial(); } @@ -130,23 +126,10 @@ public static TCMaterial get(@Nonnull final MMDMaterial material) { return new TCMaterial(material); } - /** - * - * @param material - * @param name - * @return - */ public static TCMaterial get(@Nonnull final MMDMaterial material, @Nonnull final String name) { return new TCMaterial(material, name); } - /** - * - * @param material - * @param name - * @param color - * @return - */ public static TCMaterial get(@Nonnull final MMDMaterial material, @Nonnull final String name, @Nonnull final int color) { return new TCMaterial(material, name, color); } @@ -162,11 +145,11 @@ public void genStatsFromSource() { } /** - * trait allocation. + * Adds a named trait to a material part without adding duplicates. * - * @param location - * @param name - * @return + * @param location the material part receiving the trait + * @param name the registered trait name + * @return this material */ public TCMaterial addTrait(@Nonnull final String location, @Nonnull final String name) { List traitsAtLoc = this.traits.getOrDefault(location, new ArrayList<>()); @@ -180,11 +163,7 @@ public TCMaterial addTrait(@Nonnull final String location, @Nonnull final String } // Setters & Getters - /** - * - * @param material - * @return - */ + public TCMaterial setSourceMaterial(@Nonnull final MMDMaterial material) { this.material = material; if (this.name == null) { @@ -196,10 +175,6 @@ public TCMaterial setSourceMaterial(@Nonnull final MMDMaterial material) { return this; } - /** - * - * @return - */ public TCMaterial setCastable() { this.castable = true; this.craftable = !this.castable; @@ -207,10 +182,6 @@ public TCMaterial setCastable() { return this; } - /** - * - * @return - */ public TCMaterial setCraftable() { this.craftable = true; this.castable = !this.craftable; @@ -218,143 +189,78 @@ public TCMaterial setCraftable() { return this; } - /** - * - * @param durability - * @return - */ public TCMaterial setHeadDurability(@Nonnull final int durability) { this.headDurability = durability; configured = true; return this; } - /** - * - * @param durability - * @return - */ public TCMaterial setBodyDurability(@Nonnull final int durability) { this.bodyDurability = durability; configured = true; return this; } - /** - * - * @param durability - * @return - */ public TCMaterial setExtraDurability(@Nonnull final int durability) { this.extraDurability = durability; configured = true; return this; } - /** - * - * @param speed - * @return - */ public TCMaterial setMiningSpeed(@Nonnull final float speed) { this.miningSpeed = speed; configured = true; return this; } - /** - * - * @param level - * @return - */ public TCMaterial setminingLevel(@Nonnull final int level) { this.miningLevel = level; configured = true; return this; } - /** - * - * @param modifier - * @return - */ public TCMaterial setBodyModifier(@Nonnull final float modifier) { this.bodyModifier = modifier; configured = true; return this; } - /** - * - * @param drawingSpeed - * @return - */ public TCMaterial setBowDrawingSpeed(@Nonnull final float drawingSpeed) { this.bowDrawingSpeed = drawingSpeed; configured = true; return this; } - /** - * - * @param damage - * @return - */ public TCMaterial setBowDamage(@Nonnull final float damage) { this.bowDamage = damage; configured = true; return this; } - /** - * - * @param range - * @return - */ public TCMaterial setBowRange(@Nonnull final float range) { this.bowRange = range; configured = true; return this; } - /** - * - * @param modifier - * @return - */ public TCMaterial setBowstringModifier(@Nonnull final float modifier) { this.bowstringModifier = modifier; configured = true; return this; } - /** - * - * @param modifier - * @return - */ public TCMaterial setShaftModifier(@Nonnull final float modifier) { this.shaftModifier = modifier; configured = true; return this; } - /** - * - * @param accuracy - * @return - */ public TCMaterial setFletchingAccuracy(@Nonnull final float accuracy) { this.fletchingAccuracy = accuracy; configured = true; return this; } - /** - * - * @param modifier - * @return - */ public TCMaterial setFletchingModifier(@Nonnull final float modifier) { this.fletchingModifier = modifier; configured = true; @@ -369,10 +275,6 @@ public int getTintColor() { return this.tintColor; } - /** - * - * @return - */ public MMDMaterial getMMDMaterial() { return this.material; } @@ -445,11 +347,8 @@ public boolean getCraftable() { return this.craftable; } - // material stats stuff! - /** - * - * @return - */ + // Material statistics. + public HeadMaterialStats getHeadStats() { if (this.headStats == null) { this.headStats = new HeadMaterialStats(this.headDurability, this.miningSpeed, this.headAttackDamage, this.miningLevel); @@ -458,10 +357,6 @@ public HeadMaterialStats getHeadStats() { return this.headStats; } - /** - * - * @return - */ public HandleMaterialStats getHandleStats() { if (this.handleStats == null) { this.handleStats = new HandleMaterialStats(this.bodyModifier, this.bodyDurability); @@ -470,10 +365,6 @@ public HandleMaterialStats getHandleStats() { return this.handleStats; } - /** - * - * @return - */ public ExtraMaterialStats getExtraStats() { if (this.extraStats == null) { this.extraStats = new ExtraMaterialStats(this.extraDurability); @@ -482,10 +373,6 @@ public ExtraMaterialStats getExtraStats() { return this.extraStats; } - /** - * - * @return - */ public BowMaterialStats getBowStats() { if (this.bowStats == null) { this.bowStats = new BowMaterialStats(this.bowDrawingSpeed, this.bowRange, this.bowDamage); @@ -494,10 +381,6 @@ public BowMaterialStats getBowStats() { return this.bowStats; } - /** - * - * @return - */ public BowStringMaterialStats getBowStringStats() { if (this.bowStringStats == null) { this.bowStringStats = new BowStringMaterialStats(this.bowstringModifier); @@ -506,10 +389,6 @@ public BowStringMaterialStats getBowStringStats() { return this.bowStringStats; } - /** - * - * @return - */ public ArrowShaftMaterialStats getArrowStats() { if (this.arrowShaftStats == null) { this.arrowShaftStats = new ArrowShaftMaterialStats(this.shaftModifier, this.shaftBonusAmmo); @@ -518,10 +397,6 @@ public ArrowShaftMaterialStats getArrowStats() { return this.arrowShaftStats; } - /** - * - * @return - */ public FletchingMaterialStats getFletchingStats() { if (this.fletchingStats == null) { this.fletchingStats = new FletchingMaterialStats(this.fletchingAccuracy, this.fletchingModifier); @@ -530,10 +405,6 @@ public FletchingMaterialStats getFletchingStats() { return this.fletchingStats; } - /** - * - * @return - */ public Material getMaterial() { if (this.tinkersMaterial == null) { final String posName = this.material != null ? this.material.getName() : "i_is_b0rken"; @@ -549,11 +420,6 @@ public Material getMaterial() { return this.tinkersMaterial; } - /** - * - * @param headStats - * @return - */ public TCMaterial setHeadStats(final HeadMaterialStats headStats) { this.headStats = headStats; this.headDurability = headStats.durability; @@ -564,11 +430,6 @@ public TCMaterial setHeadStats(final HeadMaterialStats headStats) { return this; } - /** - * - * @param handleStats - * @return - */ public TCMaterial setHandleStats(final HandleMaterialStats handleStats) { this.handleStats = handleStats; this.bodyDurability = handleStats.durability; @@ -577,11 +438,6 @@ public TCMaterial setHandleStats(final HandleMaterialStats handleStats) { return this; } - /** - * - * @param extraStats - * @return - */ public TCMaterial setExtraStats(final ExtraMaterialStats extraStats) { this.extraStats = extraStats; this.extraDurability = extraStats.extraDurability; @@ -589,11 +445,6 @@ public TCMaterial setExtraStats(final ExtraMaterialStats extraStats) { return this; } - /** - * - * @param bowStats - * @return - */ public TCMaterial setBowStats(final BowMaterialStats bowStats) { this.bowStats = bowStats; this.bowDamage = bowStats.bonusDamage; @@ -603,11 +454,6 @@ public TCMaterial setBowStats(final BowMaterialStats bowStats) { return this; } - /** - * - * @param arrowShaftStats - * @return - */ public TCMaterial setArrowShaftStats(final ArrowShaftMaterialStats arrowShaftStats) { this.arrowShaftStats = arrowShaftStats; this.shaftBonusAmmo = arrowShaftStats.bonusAmmo; @@ -616,11 +462,6 @@ public TCMaterial setArrowShaftStats(final ArrowShaftMaterialStats arrowShaftSta return this; } - /** - * - * @param bowStringStats - * @return - */ public TCMaterial setBowStringStats(final BowStringMaterialStats bowStringStats) { this.bowStringStats = bowStringStats; this.bowstringModifier = bowStringStats.modifier; @@ -628,11 +469,6 @@ public TCMaterial setBowStringStats(final BowStringMaterialStats bowStringStats) return this; } - /** - * - * @param fletchingStats - * @return - */ public TCMaterial setFletchingStats(final FletchingMaterialStats fletchingStats) { this.fletchingStats = fletchingStats; this.fletchingAccuracy = fletchingStats.accuracy; @@ -705,11 +541,6 @@ public Fluid getFluid() { return getActualFluid(this.material); } - /** - * - * @param fluid - * @return - */ public TCMaterial setFluid(@Nonnull final Fluid fluid) { final Fluid f = getFluid(); if (f.equals(fluid)) { @@ -729,11 +560,6 @@ public int getIngotAmount() { return this.ingotAmount; } - /** - * - * @param itemName - * @return - */ public TCMaterial setRepresentativeItem(@Nullable final String itemName) { this.repName = itemName; if (this.material != null) { @@ -748,21 +574,13 @@ public TCMaterial setRepresentativeItem(@Nullable final String itemName) { return this; } - /** - * - * @return - */ public Item getRepresentativeItem() { - // if it hasn't been done yet, just return null - or the item doesn't exist - just return null - // which is what we do here :) + // Return null when the representative item has not been registered. + this.setRepresentativeItem(Names.INGOT.toString()); return this.repItem; } - /** - * - * @return - */ public String getRepresentativeItemName() { if (this.repName == null) { return Oredicts.INGOT + this.material.getName(); @@ -780,12 +598,6 @@ public boolean toolForge() { return this.toolForge; } - /** - * - * @param itemName - * @param fluidValue - * @return - */ public TCMaterial addExtraMelting(@Nonnull final String itemName, @Nonnull final int fluidValue) { if (!this.extraMelting.containsKey(itemName)) { this.extraMelting.put(itemName, fluidValue); @@ -794,10 +606,6 @@ public TCMaterial addExtraMelting(@Nonnull final String itemName, @Nonnull final return this; } - /** - * - * @return - */ public Map getExtraMelting() { if (this.extraMelting.isEmpty()) { return Collections.emptyMap(); @@ -830,7 +638,7 @@ public void settle() { this.setArrowShaftStats(this.getArrowStats()); this.setFletchingStats(this.getFletchingStats()); if (this.ingotAmount == 0) { - // doing it this way to keep from an if-else mess if/when more values get added + // Use the material type to choose the default casting amount. switch (this.material.getType()) { case GEM: this.ingotAmount = 666; @@ -848,9 +656,6 @@ public void settle() { } } - /** - * - */ public void resolveTraits() { for (Entry> ent : this.traits.entrySet()) { final String loc = ent.getKey(); @@ -865,10 +670,6 @@ public void resolveTraits() { } } - /** - * - * @return - */ public Map> getTraits() { if (this.resolvedTraits.isEmpty()) { return Collections.emptyMap(); diff --git a/src/main/java/com/mcmoddev/lib/integration/plugins/tinkers/TinkerConstants.java b/src/main/java/zone/moddev/mc/mmdlib/integration/plugins/tinkers/TinkerConstants.java similarity index 95% rename from src/main/java/com/mcmoddev/lib/integration/plugins/tinkers/TinkerConstants.java rename to src/main/java/zone/moddev/mc/mmdlib/integration/plugins/tinkers/TinkerConstants.java index 0eca303..22fbcb1 100644 --- a/src/main/java/com/mcmoddev/lib/integration/plugins/tinkers/TinkerConstants.java +++ b/src/main/java/zone/moddev/mc/mmdlib/integration/plugins/tinkers/TinkerConstants.java @@ -1,21 +1,20 @@ -package com.mcmoddev.lib.integration.plugins.tinkers; - +package zone.moddev.mc.mmdlib.integration.plugins.tinkers; public final class TinkerConstants { private TinkerConstants() { throw new IllegalAccessError("Cannot instantiate this class"); } - + public static final class TinkerStatNames { private TinkerStatNames() { throw new IllegalAccessError("Cannot instantiate this class"); } - + /* * Binding/Extra stats */ public static final String EXTRA_DURABILTIY = "extraDurability"; - + /* * Tool Head Stats */ @@ -23,20 +22,20 @@ private TinkerStatNames() { public static final String MINING_SPEED = "miningSpeed"; public static final String MINING_LEVEL = "miningLevel"; public static final String HEAD_ATTACK_DAMAGE = "headAttackDamage"; - + /* * Body/Tool Rod Stats */ public static final String BODY_DURABILITY = "bodyDurability"; public static final String BODY_MODIFIER = "bodyModifier"; - + /* * Bow Stats */ public static final String BOW_DRAW_SPEED = "bowDrawSpeed"; public static final String BOW_DAMAGE = "bowDamage"; public static final String BOW_RANGE = "bowRange"; - + /* * Arrowshaft Stats */ @@ -48,7 +47,7 @@ private TinkerStatNames() { */ public static final String FLETCHING_ACCURACY = "fletchingAccuracy"; public static final String FLETCHING_MODIFIER = "fletchingModifier"; - + /* * BowString Stats */ diff --git a/src/main/java/com/mcmoddev/lib/integration/plugins/tinkers/TinkerModifierRegistry.java b/src/main/java/zone/moddev/mc/mmdlib/integration/plugins/tinkers/TinkerModifierRegistry.java similarity index 92% rename from src/main/java/com/mcmoddev/lib/integration/plugins/tinkers/TinkerModifierRegistry.java rename to src/main/java/zone/moddev/mc/mmdlib/integration/plugins/tinkers/TinkerModifierRegistry.java index 50c9207..944ef2c 100644 --- a/src/main/java/com/mcmoddev/lib/integration/plugins/tinkers/TinkerModifierRegistry.java +++ b/src/main/java/zone/moddev/mc/mmdlib/integration/plugins/tinkers/TinkerModifierRegistry.java @@ -1,4 +1,4 @@ -package com.mcmoddev.lib.integration.plugins.tinkers; +package zone.moddev.mc.mmdlib.integration.plugins.tinkers; import java.util.ArrayList; import java.util.Collections; @@ -15,13 +15,13 @@ public class TinkerModifierRegistry { private static final Map modifiersRegistry = new ConcurrentHashMap<>(256); public TinkerModifierRegistry() { - // do nothing + } - + public void register(ResourceLocation resourceLocation, Modifier modifier) { modifiersRegistry.put(resourceLocation, modifier); } - + @Nullable public Modifier get(ResourceLocation resourceLocation) { return modifiersRegistry.getOrDefault(resourceLocation, null); diff --git a/src/main/java/com/mcmoddev/lib/integration/plugins/tinkers/TinkerTraitLocation.java b/src/main/java/zone/moddev/mc/mmdlib/integration/plugins/tinkers/TinkerTraitLocation.java similarity index 79% rename from src/main/java/com/mcmoddev/lib/integration/plugins/tinkers/TinkerTraitLocation.java rename to src/main/java/zone/moddev/mc/mmdlib/integration/plugins/tinkers/TinkerTraitLocation.java index c2ed492..553d12d 100644 --- a/src/main/java/com/mcmoddev/lib/integration/plugins/tinkers/TinkerTraitLocation.java +++ b/src/main/java/zone/moddev/mc/mmdlib/integration/plugins/tinkers/TinkerTraitLocation.java @@ -1,4 +1,4 @@ -package com.mcmoddev.lib.integration.plugins.tinkers; +package zone.moddev.mc.mmdlib.integration.plugins.tinkers; import java.util.Locale; diff --git a/src/main/java/com/mcmoddev/lib/integration/plugins/tinkers/TinkerTraitRegistry.java b/src/main/java/zone/moddev/mc/mmdlib/integration/plugins/tinkers/TinkerTraitRegistry.java similarity index 94% rename from src/main/java/com/mcmoddev/lib/integration/plugins/tinkers/TinkerTraitRegistry.java rename to src/main/java/zone/moddev/mc/mmdlib/integration/plugins/tinkers/TinkerTraitRegistry.java index 5fc8bf4..8c6e1da 100644 --- a/src/main/java/com/mcmoddev/lib/integration/plugins/tinkers/TinkerTraitRegistry.java +++ b/src/main/java/zone/moddev/mc/mmdlib/integration/plugins/tinkers/TinkerTraitRegistry.java @@ -1,4 +1,4 @@ -package com.mcmoddev.lib.integration.plugins.tinkers; +package zone.moddev.mc.mmdlib.integration.plugins.tinkers; import java.lang.reflect.Field; import java.util.ArrayList; @@ -16,13 +16,13 @@ public class TinkerTraitRegistry { private static final Map traitsRegistry = new ConcurrentHashMap<>(256); public TinkerTraitRegistry() { - // do nothing + } - + public void register(String traitName, ITrait trait) { traitsRegistry.put(traitName, trait); } - + @Nullable public ITrait get(String traitName) { ITrait pos = TinkerRegistry.getTrait(traitName); diff --git a/src/main/java/com/mcmoddev/lib/integration/plugins/tinkers/TinkersConstructRegistry.java b/src/main/java/zone/moddev/mc/mmdlib/integration/plugins/tinkers/TinkersConstructRegistry.java old mode 100755 new mode 100644 similarity index 92% rename from src/main/java/com/mcmoddev/lib/integration/plugins/tinkers/TinkersConstructRegistry.java rename to src/main/java/zone/moddev/mc/mmdlib/integration/plugins/tinkers/TinkersConstructRegistry.java index d382c71..b4d758d --- a/src/main/java/com/mcmoddev/lib/integration/plugins/tinkers/TinkersConstructRegistry.java +++ b/src/main/java/zone/moddev/mc/mmdlib/integration/plugins/tinkers/TinkersConstructRegistry.java @@ -1,4 +1,4 @@ -package com.mcmoddev.lib.integration.plugins.tinkers; +package zone.moddev.mc.mmdlib.integration.plugins.tinkers; import java.util.ArrayList; import java.util.Collections; @@ -7,9 +7,9 @@ import java.util.Map; import java.util.Map.Entry; import javax.annotation.Nonnull; -import com.mcmoddev.lib.MMDLib; -import com.mcmoddev.lib.data.Names; -import com.mcmoddev.lib.material.MMDMaterial; +import zone.moddev.mc.mmdlib.MMDLib; +import zone.moddev.mc.mmdlib.data.Names; +import zone.moddev.mc.mmdlib.material.MMDMaterial; import net.minecraft.item.Item; import net.minecraftforge.fluids.Fluid; import net.minecraftforge.fluids.FluidStack; @@ -35,15 +35,9 @@ public class TinkersConstructRegistry { private static final Map> meltings = new HashMap<>(); private TinkersConstructRegistry() { - // do nothing + } - /** - * - * @param name - * @param color - * @return - */ public TCMaterial newMaterial(@Nonnull final String name, @Nonnull final int color) { final String curMod = Loader.instance().activeModContainer().getModId(); final Map work = registry.getOrDefault(curMod, new HashMap<>()); @@ -59,11 +53,6 @@ public TCMaterial newMaterial(@Nonnull final String name, @Nonnull final int col return temp; } - /** - * - * @param mat - * @return - */ public TCMaterial newMaterial(@Nonnull final MMDMaterial mat) { final String curMod = Loader.instance().activeModContainer().getModId(); final Map work = registry.getOrDefault(curMod, new HashMap<>()); @@ -75,11 +64,6 @@ public TCMaterial newMaterial(@Nonnull final MMDMaterial mat) { return work.get(mat.getName()); } - /** - * - * @param name - * @return - */ public TCMaterial getMaterial(@Nonnull final String name) { for (final Entry> ent : registry.entrySet()) { if (ent.getValue().containsKey(name)) { @@ -90,13 +74,10 @@ public TCMaterial getMaterial(@Nonnull final String name) { return newMaterial(name, 0xFFFFFFFF); } - /** - * - */ public void addMaterialStats() { final String curMod = Loader.instance().activeModContainer().getModId(); for (final Entry entry : registry.get(curMod).entrySet()) { - entry.getValue().settle(); // be double sure! + entry.getValue().settle(); // Ignore a duplicate material registration. final HeadMaterialStats headStats = entry.getValue().getHeadStats(); final HandleMaterialStats handleStats = entry.getValue().getHandleStats(); final ExtraMaterialStats extraStats = entry.getValue().getExtraStats(); @@ -115,12 +96,6 @@ public void addMaterialStats() { } } - /** - * - * @param name - * @param result - * @param input - */ public void registerAlloy(@Nonnull final String name, @Nonnull final FluidStack result, final FluidStack... input) { final String curMod = Loader.instance().activeModContainer().getModId(); final Map curRecipes = alloys.getOrDefault(curMod, new HashMap<>()); @@ -132,11 +107,6 @@ public void registerAlloy(@Nonnull final String name, @Nonnull final FluidStack alloys.put(curMod, curRecipes); } - /** - * - * @param item - * @param result - */ public void registerMelting(@Nonnull final Item item, @Nonnull final FluidStack result) { final String curMod = Loader.instance().activeModContainer().getModId(); final Map modMelts = meltings.getOrDefault(curMod, new HashMap<>()); @@ -149,9 +119,6 @@ public void registerMelting(@Nonnull final Item item, @Nonnull final FluidStack meltings.put(curMod, modMelts); } - /** - * - */ public void setRepresentativeItem() { final String curMod = Loader.instance().activeModContainer().getModId(); for (final Entry entry : registry.get(curMod).entrySet()) { @@ -159,9 +126,6 @@ public void setRepresentativeItem() { } } - /** - * - */ public void setupIntegrations() { final String curMod = Loader.instance().activeModContainer().getModId(); MMDLib.logger.debug("setupIntegrations() for mod %s (%d integrations)", curMod, registry.get(curMod).size()); @@ -212,10 +176,6 @@ private void addTraits(final TCMaterial mat) { } } - /** - * - * @param forMod - */ public void integrationsInit(@Nonnull final String forMod) { final String curMod = forMod; for (final Entry entry : registry.get(curMod).entrySet()) { @@ -231,10 +191,6 @@ public void integrationsInit(@Nonnull final String forMod) { } } - /** - * - * @param forMod - */ public void registerMeltings(@Nonnull final String forMod) { final String curMod = forMod; final Map myMelts = meltings.getOrDefault(curMod, Collections.emptyMap()); @@ -253,10 +209,6 @@ public void registerMeltings(@Nonnull final String forMod) { } } - /** - * - * @param forMod - */ public void registerAlloys(@Nonnull final String forMod) { final String curMod = forMod; final Map curRecipes; @@ -268,10 +220,6 @@ public void registerAlloys(@Nonnull final String forMod) { } } - /** - * - * @param forMod - */ public void resolveTraits(@Nonnull final String forMod) { MMDLib.logger.debug("Resolving traits for materials added by mod %s", forMod); for (final Entry entry : registry.get(forMod).entrySet()) { @@ -280,10 +228,6 @@ public void resolveTraits(@Nonnull final String forMod) { } } - /** - * - * @param forMod - */ public void setMaterialsVisible(@Nonnull final String forMod) { final String curMod = forMod; for (final Entry entry : registry.get(curMod).entrySet()) { diff --git a/src/main/java/com/mcmoddev/lib/integration/plugins/tinkers/TinkersMaterial.java b/src/main/java/zone/moddev/mc/mmdlib/integration/plugins/tinkers/TinkersMaterial.java similarity index 91% rename from src/main/java/com/mcmoddev/lib/integration/plugins/tinkers/TinkersMaterial.java rename to src/main/java/zone/moddev/mc/mmdlib/integration/plugins/tinkers/TinkersMaterial.java index 9b9918c..7ac22a9 100644 --- a/src/main/java/com/mcmoddev/lib/integration/plugins/tinkers/TinkersMaterial.java +++ b/src/main/java/zone/moddev/mc/mmdlib/integration/plugins/tinkers/TinkersMaterial.java @@ -1,4 +1,4 @@ -package com.mcmoddev.lib.integration.plugins.tinkers; +package zone.moddev.mc.mmdlib.integration.plugins.tinkers; import java.util.Arrays; import java.util.Collections; @@ -17,10 +17,10 @@ import com.google.common.collect.Lists; import com.google.common.collect.Maps; import com.google.common.collect.Sets; -import com.mcmoddev.lib.data.MaterialStats; -import com.mcmoddev.lib.data.Names; -import com.mcmoddev.lib.material.IMMDObject; -import com.mcmoddev.lib.material.MMDMaterial; +import zone.moddev.mc.mmdlib.data.MaterialStats; +import zone.moddev.mc.mmdlib.data.Names; +import zone.moddev.mc.mmdlib.material.IMMDObject; +import zone.moddev.mc.mmdlib.material.MMDMaterial; import net.minecraft.block.Block; import net.minecraft.item.Item; @@ -60,7 +60,7 @@ public TinkersMaterial(MMDMaterial base) { this.representativeItem = base.getItemStack(Names.INGOT); this.setRegistryName(this.baseMaterial.getRegistryName()); } - + public TinkersMaterial addStat(String statName, Number statValue) { this.rawStats.put(statName, statValue); return this; @@ -70,33 +70,33 @@ public TinkersMaterial addTrait(String trait) { this.traits.add(Pair.of(trait, TinkerTraitLocation.GENERAL)); return this; } - + public TinkersMaterial addTrait(String trait, TinkerTraitLocation location) { this.traits.add(Pair.of(trait, location)); return this; } - + public TinkersMaterial setRepresentativeItem(Item item) { return this.setRepresentativeItem(new ItemStack(item)); } - + public TinkersMaterial setRepresentativeItem(Block block) { return this.setRepresentativeItem(Item.getItemFromBlock(block)); } - + public TinkersMaterial setRepresentativeItem(ItemStack itemStack) { this.representativeItem = itemStack.copy(); return this; } - + public TinkersMaterial addItem(Item item) { return this.addItem(new ItemStack(item)); } - + public TinkersMaterial addItem(Block block) { return this.addItem(Item.getItemFromBlock(block)); } - + public TinkersMaterial addItem(ItemStack itemStack) { this.items.add(itemStack.copy()); return this; @@ -107,7 +107,7 @@ public TinkersMaterial addAlloyRecipe(int outputAmount, FluidStack...recipe) { this.recipe.addAll((List)Arrays.asList(recipe).stream().map(obj -> (FluidStack)obj).collect(Collectors.toList())); return this; } - + public TinkersMaterial addAlloyRecipe(int outputAmount, Object...recipe) { this.recipeOutput = FluidRegistry.getFluidStack(this.getMMDMaterial().getName(), outputAmount); for(int i = 0; i < recipe.length; i += 2) { @@ -117,10 +117,7 @@ public TinkersMaterial addAlloyRecipe(int outputAmount, Object...recipe) { } public ArrowShaftMaterialStats getArrowShaftStats() { - /* - * TODO: figure out a nice setup for "modifier" and "bonus" that is based on existing mod stats so - * the crappy defaults don't get used - */ + // Use explicit shaft stats when supplied; otherwise retain the legacy defaults. float modifier = this.rawStats.getOrDefault(TinkerConstants.TinkerStatNames.ARROWSHAFT_MODIFIER, Float.valueOf(1.0f)).floatValue(); int bonus = this.rawStats.getOrDefault(TinkerConstants.TinkerStatNames.ARROWSHAFT_BONUS_AMMO, @@ -139,11 +136,9 @@ private static Float calcDrawSpeed(final int durability) { return val; } - + public BowMaterialStats getBowStats() { - /* - * TODO: figure out something nice for BOW_RANGE so we don't always have this fallback to a pretty terrible default - */ + // Unspecified bow range falls back to 15. float speed = this.rawStats.getOrDefault(TinkerConstants.TinkerStatNames.BOW_DRAW_SPEED, calcDrawSpeed(this.baseMaterial.getToolDurability())).floatValue(); float damage = this.rawStats.getOrDefault(TinkerConstants.TinkerStatNames.BOW_DAMAGE, @@ -153,15 +148,15 @@ public BowMaterialStats getBowStats() { return new BowMaterialStats(speed, range, damage); } - + public BowStringMaterialStats getBowStringStats() { - // TODO: this needs to have something besides the default, like others + // Use configured modifiers, falling back to 1.0. float modifier = this.rawStats.getOrDefault(TinkerConstants.TinkerStatNames.BOWSTRING_MODIFIER, 1.0f).floatValue(); return new BowStringMaterialStats(modifier); } - + public ExtraMaterialStats getExtraStats() { int durability = this.rawStats.getOrDefault(TinkerConstants.TinkerStatNames.EXTRA_DURABILTIY, this.baseMaterial.getToolDurability() / 10).intValue(); @@ -170,7 +165,7 @@ public ExtraMaterialStats getExtraStats() { } public FletchingMaterialStats getFletchingStats() { - // TODO: this needs to have something besides the default, like others + // Use configured modifiers, falling back to 1.0. float accuracy = this.rawStats.getOrDefault(TinkerConstants.TinkerStatNames.FLETCHING_ACCURACY, Float.valueOf(1.0f)).floatValue(); float modifier = this.rawStats.getOrDefault(TinkerConstants.TinkerStatNames.FLETCHING_MODIFIER, @@ -178,16 +173,16 @@ public FletchingMaterialStats getFletchingStats() { return new FletchingMaterialStats(accuracy, modifier); } - + public HandleMaterialStats getHandleStats() { int durability = this.rawStats.getOrDefault(TinkerConstants.TinkerStatNames.BODY_DURABILITY, this.baseMaterial.getToolDurability() / 7).intValue(); float modifier = this.rawStats.getOrDefault(TinkerConstants.TinkerStatNames.BODY_MODIFIER, Float.valueOf((this.baseMaterial.getStat(MaterialStats.MAGICAFFINITY) * 2) / 9)).floatValue(); - + return new HandleMaterialStats(modifier, durability); } - + public HeadMaterialStats getHeadStats() { int durability = this.rawStats.getOrDefault(TinkerConstants.TinkerStatNames.HEAD_DURABILITY, this.baseMaterial.getToolDurability()).intValue(); @@ -197,13 +192,13 @@ public HeadMaterialStats getHeadStats() { Float.valueOf(this.baseMaterial.getBaseAttackDamage() * 2)).floatValue(); int miningLevel = this.rawStats.getOrDefault(TinkerConstants.TinkerStatNames.MINING_LEVEL, this.baseMaterial.getToolHarvestLevel()).intValue(); - + return new HeadMaterialStats(durability, speed, damage, miningLevel); } public CoreMaterialStats getCoreStats() { - // TODO: needs proper stat calculation + // These armor stats use the existing material-derived defaults. final float minimum = 5f; final float hardnessFactor = 1.25f; @@ -217,7 +212,7 @@ public CoreMaterialStats getCoreStats() public PlatesMaterialStats getPlatesStats() { - // TODO: needs proper stat calculation + // These armor stats use the existing material-derived defaults. float modifier = (this.baseMaterial.getStat(MaterialStats.MAGICAFFINITY) * 2) / 9; int durability = this.baseMaterial.getToolDurability() / 7; @@ -230,7 +225,7 @@ public PlatesMaterialStats getPlatesStats() public TrimMaterialStats getTrimStats() { - // TODO: needs proper stat calculation + // These armor stats use the existing material-derived defaults. int durability = this.baseMaterial.getToolDurability() / 10; return new TrimMaterialStats(durability); @@ -240,15 +235,12 @@ public TinkersMaterial setToolForge(boolean toolForge) { this.toolForge = toolForge; return this; } - + public boolean getToolForge() { return this.toolForge; } - /* - * classically we've had "castable" and "craftable" as incompatible... - * turns out that TiCon itself doesn't view them as incompatible and Obsidian has both set. - */ + /* Castable and craftable are independent; Tinkers' obsidian supports both. */ public TinkersMaterial setCastable(boolean castable) { this.castable = castable; return this; @@ -258,44 +250,44 @@ public TinkersMaterial setCraftable(boolean craftable) { this.craftable = craftable; return this; } - + public boolean getCastable() { return this.castable; } - + public boolean getCraftable() { return this.craftable; } - + public ItemStack getRepresentativeItem() { return this.representativeItem.copy(); } - + public TinkersMaterial create() { if(this.ticonMat != Material.UNKNOWN) return this; - + this.ticonMat = new Material(this.baseMaterial.getName(), this.baseMaterial.getTintColor()); - + return this; } public TinkersMaterial addExtraMelting(Item item, int amount) { return this.addExtraMelting(new ItemStack(item), amount); } - + public TinkersMaterial addExtraMelting(Block block, int amount) { return this.addExtraMelting(Item.getItemFromBlock(block), amount); } - + public TinkersMaterial addExtraMelting(ItemStack itemStack, int amount) { this.extraMeltings.add(Pair.of(itemStack.copy(), amount)); return this; } - + public TinkersMaterial addExtraMelting(String name, int amount) { return this.addExtraMelting(this.baseMaterial.getItemStack(name), amount); } - + public List getAlloyRecipe() { List rv = new LinkedList<>(); rv.add(this.recipeOutput); @@ -303,31 +295,31 @@ public List getAlloyRecipe() { return rv; } - + public String getName() { return this.baseMaterial.getName(); } - + public Material getTinkerMaterial() { if(this.ticonMat == Material.UNKNOWN) { return this.create().getTinkerMaterial(); } - + return this.ticonMat; } - + public boolean hasTraits() { return !this.traits.isEmpty(); } - + public boolean hasAlloyRecipe() { return !this.recipe.isEmpty(); } - + public List> getTraits() { return Collections.unmodifiableList(this.traits); } - + @Override public MMDMaterial getMMDMaterial() { return this.baseMaterial; diff --git a/src/main/java/com/mcmoddev/lib/integration/plugins/tinkers/TraitLocations.java b/src/main/java/zone/moddev/mc/mmdlib/integration/plugins/tinkers/TraitLocations.java old mode 100755 new mode 100644 similarity index 88% rename from src/main/java/com/mcmoddev/lib/integration/plugins/tinkers/TraitLocations.java rename to src/main/java/zone/moddev/mc/mmdlib/integration/plugins/tinkers/TraitLocations.java index 8336730..00f95f4 --- a/src/main/java/com/mcmoddev/lib/integration/plugins/tinkers/TraitLocations.java +++ b/src/main/java/zone/moddev/mc/mmdlib/integration/plugins/tinkers/TraitLocations.java @@ -1,4 +1,4 @@ -package com.mcmoddev.lib.integration.plugins.tinkers; +package zone.moddev.mc.mmdlib.integration.plugins.tinkers; public final class TraitLocations { diff --git a/src/main/java/com/mcmoddev/lib/integration/plugins/tinkers/TraitRegistry.java b/src/main/java/zone/moddev/mc/mmdlib/integration/plugins/tinkers/TraitRegistry.java old mode 100755 new mode 100644 similarity index 94% rename from src/main/java/com/mcmoddev/lib/integration/plugins/tinkers/TraitRegistry.java rename to src/main/java/zone/moddev/mc/mmdlib/integration/plugins/tinkers/TraitRegistry.java index 14f2ecf..9946d22 --- a/src/main/java/com/mcmoddev/lib/integration/plugins/tinkers/TraitRegistry.java +++ b/src/main/java/zone/moddev/mc/mmdlib/integration/plugins/tinkers/TraitRegistry.java @@ -1,11 +1,11 @@ -package com.mcmoddev.lib.integration.plugins.tinkers; +package zone.moddev.mc.mmdlib.integration.plugins.tinkers; import java.util.HashMap; import java.util.Map; import java.util.Map.Entry; import javax.annotation.Nonnull; -import com.mcmoddev.lib.MMDLib; -import com.mcmoddev.lib.integration.plugins.tinkers.traits.MMDTraits; +import zone.moddev.mc.mmdlib.MMDLib; +import zone.moddev.mc.mmdlib.integration.plugins.tinkers.traits.MMDTraits; import slimeknights.tconstruct.library.TinkerRegistry; import slimeknights.tconstruct.library.traits.ITrait; import slimeknights.tconstruct.tools.TinkerTraits; @@ -26,11 +26,6 @@ public static boolean hasTrait(@Nonnull final String name) { return registeredTraits.keySet().contains(name); } - /** - * - * @param name - * @return - */ public static ITrait getTrait(@Nonnull final String name) { if (registeredTraits.isEmpty()) { initTraits(); @@ -49,11 +44,8 @@ public static ITrait get(@Nonnull final String name) { return getTrait(name); } - /** - * - */ public static void initTiCTraits() { - // hate having to do it this way, but it seems the only way + // Register the built-in Tinkers traits under the names used by MMD materials. registeredTraits.put("alien", TinkerTraits.alien); registeredTraits.put("aquadynamic", TinkerTraits.aquadynamic); registeredTraits.put("aridiculous", TinkerTraits.aridiculous); @@ -108,9 +100,6 @@ public static void initTiCTraits() { registeredTraits.put("splitting", TinkerTraits.splitting); } - /** - * - */ public static void initTraits() { registeredTraits.put("soft", MMDTraits.soft); registeredTraits.put("sparkly", MMDTraits.sparkly); @@ -121,9 +110,6 @@ public static void initTraits() { registeredTraits.put("reactive", MMDTraits.reactive); } - /** - * - */ public static void dumpRegistry() { for (final Entry e : registeredTraits.entrySet()) { final String t = String.format("BaseMetals-TCon> Trait: %s - class %s", e.getKey(), e.getValue().getClass().getName()); diff --git a/src/main/java/com/mcmoddev/lib/integration/plugins/tinkers/events/MaterialRegistrationEvent.java b/src/main/java/zone/moddev/mc/mmdlib/integration/plugins/tinkers/events/MaterialRegistrationEvent.java similarity index 76% rename from src/main/java/com/mcmoddev/lib/integration/plugins/tinkers/events/MaterialRegistrationEvent.java rename to src/main/java/zone/moddev/mc/mmdlib/integration/plugins/tinkers/events/MaterialRegistrationEvent.java index 3eba8ea..a6e5120 100644 --- a/src/main/java/com/mcmoddev/lib/integration/plugins/tinkers/events/MaterialRegistrationEvent.java +++ b/src/main/java/zone/moddev/mc/mmdlib/integration/plugins/tinkers/events/MaterialRegistrationEvent.java @@ -1,11 +1,10 @@ -package com.mcmoddev.lib.integration.plugins.tinkers.events; +package zone.moddev.mc.mmdlib.integration.plugins.tinkers.events; -import com.mcmoddev.lib.integration.plugins.tinkers.TinkersMaterial; +import zone.moddev.mc.mmdlib.integration.plugins.tinkers.TinkersMaterial; import net.minecraftforge.fml.common.eventhandler.Event; import net.minecraftforge.registries.IForgeRegistry; - public class MaterialRegistrationEvent extends Event { private final IForgeRegistry registry; diff --git a/src/main/java/com/mcmoddev/lib/integration/plugins/tinkers/events/ModifierRegistrationEvent.java b/src/main/java/zone/moddev/mc/mmdlib/integration/plugins/tinkers/events/ModifierRegistrationEvent.java similarity index 79% rename from src/main/java/com/mcmoddev/lib/integration/plugins/tinkers/events/ModifierRegistrationEvent.java rename to src/main/java/zone/moddev/mc/mmdlib/integration/plugins/tinkers/events/ModifierRegistrationEvent.java index 46dcec4..6c1e244 100644 --- a/src/main/java/com/mcmoddev/lib/integration/plugins/tinkers/events/ModifierRegistrationEvent.java +++ b/src/main/java/zone/moddev/mc/mmdlib/integration/plugins/tinkers/events/ModifierRegistrationEvent.java @@ -1,6 +1,6 @@ -package com.mcmoddev.lib.integration.plugins.tinkers.events; +package zone.moddev.mc.mmdlib.integration.plugins.tinkers.events; -import com.mcmoddev.lib.integration.plugins.tinkers.TinkerModifierRegistry; +import zone.moddev.mc.mmdlib.integration.plugins.tinkers.TinkerModifierRegistry; import net.minecraft.util.ResourceLocation; import net.minecraftforge.fml.common.eventhandler.Event; @@ -8,15 +8,15 @@ public class ModifierRegistrationEvent extends Event { private TinkerModifierRegistry registry; - + public ModifierRegistrationEvent(TinkerModifierRegistry registry) { this.registry = registry; } - + public TinkerModifierRegistry getRegistry() { return this.registry; } - + public void register(ResourceLocation resourceLocation, ToolModifier modifier) { this.registry.register(resourceLocation, modifier); } diff --git a/src/main/java/com/mcmoddev/lib/integration/plugins/tinkers/events/TinkersAlloyRecipeEvent.java b/src/main/java/zone/moddev/mc/mmdlib/integration/plugins/tinkers/events/TinkersAlloyRecipeEvent.java similarity index 87% rename from src/main/java/com/mcmoddev/lib/integration/plugins/tinkers/events/TinkersAlloyRecipeEvent.java rename to src/main/java/zone/moddev/mc/mmdlib/integration/plugins/tinkers/events/TinkersAlloyRecipeEvent.java index b3dcfcf..2613319 100644 --- a/src/main/java/com/mcmoddev/lib/integration/plugins/tinkers/events/TinkersAlloyRecipeEvent.java +++ b/src/main/java/zone/moddev/mc/mmdlib/integration/plugins/tinkers/events/TinkersAlloyRecipeEvent.java @@ -1,23 +1,22 @@ -package com.mcmoddev.lib.integration.plugins.tinkers.events; +package zone.moddev.mc.mmdlib.integration.plugins.tinkers.events; import java.util.Optional; -import com.mcmoddev.lib.MMDLib; -import com.mcmoddev.lib.integration.plugins.tinkers.TinkersMaterial; +import zone.moddev.mc.mmdlib.MMDLib; +import zone.moddev.mc.mmdlib.integration.plugins.tinkers.TinkersMaterial; import net.minecraftforge.fluids.FluidStack; import net.minecraftforge.fml.common.eventhandler.Event; import net.minecraftforge.registries.IForgeRegistry; - public class TinkersAlloyRecipeEvent extends Event { private final IForgeRegistry registry; - + public TinkersAlloyRecipeEvent(IForgeRegistry registry) { this.registry = registry; } - + public IForgeRegistry getRegistry() { return registry; @@ -32,11 +31,11 @@ public void addAlloyRecipe(TinkersMaterial material, int outputAmount, FluidStac } material.addAlloyRecipe(outputAmount, inputs); } - + public void addAlloyRecipe(String materialName, int outputAmount, FluidStack...inputs) { Optional res = this.registry.getEntries().stream().filter(ent -> ent.getKey().getPath().equals(materialName)) .map(ent -> ent.getValue()).findFirst(); - + if(res.isPresent()) { addAlloyRecipe(res.get(), outputAmount, inputs); } diff --git a/src/main/java/com/mcmoddev/lib/integration/plugins/tinkers/events/TinkersExtraMeltingsEvent.java b/src/main/java/zone/moddev/mc/mmdlib/integration/plugins/tinkers/events/TinkersExtraMeltingsEvent.java similarity index 63% rename from src/main/java/com/mcmoddev/lib/integration/plugins/tinkers/events/TinkersExtraMeltingsEvent.java rename to src/main/java/zone/moddev/mc/mmdlib/integration/plugins/tinkers/events/TinkersExtraMeltingsEvent.java index 783f089..035e7cd 100644 --- a/src/main/java/com/mcmoddev/lib/integration/plugins/tinkers/events/TinkersExtraMeltingsEvent.java +++ b/src/main/java/zone/moddev/mc/mmdlib/integration/plugins/tinkers/events/TinkersExtraMeltingsEvent.java @@ -1,8 +1,7 @@ -package com.mcmoddev.lib.integration.plugins.tinkers.events; +package zone.moddev.mc.mmdlib.integration.plugins.tinkers.events; import net.minecraftforge.fml.common.eventhandler.Event; - public class TinkersExtraMeltingsEvent extends Event { } diff --git a/src/main/java/com/mcmoddev/lib/integration/plugins/tinkers/events/TraitRegistrationEvent.java b/src/main/java/zone/moddev/mc/mmdlib/integration/plugins/tinkers/events/TraitRegistrationEvent.java similarity index 76% rename from src/main/java/com/mcmoddev/lib/integration/plugins/tinkers/events/TraitRegistrationEvent.java rename to src/main/java/zone/moddev/mc/mmdlib/integration/plugins/tinkers/events/TraitRegistrationEvent.java index a5bb4bc..66625ef 100644 --- a/src/main/java/com/mcmoddev/lib/integration/plugins/tinkers/events/TraitRegistrationEvent.java +++ b/src/main/java/zone/moddev/mc/mmdlib/integration/plugins/tinkers/events/TraitRegistrationEvent.java @@ -1,22 +1,21 @@ -package com.mcmoddev.lib.integration.plugins.tinkers.events; +package zone.moddev.mc.mmdlib.integration.plugins.tinkers.events; -import com.mcmoddev.lib.integration.plugins.tinkers.TinkerTraitRegistry; +import zone.moddev.mc.mmdlib.integration.plugins.tinkers.TinkerTraitRegistry; import net.minecraftforge.fml.common.eventhandler.Event; import slimeknights.tconstruct.library.traits.ITrait; - public class TraitRegistrationEvent extends Event { private TinkerTraitRegistry registry; - + public TraitRegistrationEvent(TinkerTraitRegistry traitRegistry) { this.registry = traitRegistry; } - + public TinkerTraitRegistry getRegistry() { return this.registry; } - + public void register(String name, ITrait trait) { registry.register(name, trait); } diff --git a/src/main/java/zone/moddev/mc/mmdlib/integration/plugins/tinkers/events/package-info.java b/src/main/java/zone/moddev/mc/mmdlib/integration/plugins/tinkers/events/package-info.java new file mode 100644 index 0000000..24fa0c6 --- /dev/null +++ b/src/main/java/zone/moddev/mc/mmdlib/integration/plugins/tinkers/events/package-info.java @@ -0,0 +1,6 @@ + +/** + * @author SYSTEM + * + */ +package zone.moddev.mc.mmdlib.integration.plugins.tinkers.events; diff --git a/src/main/java/com/mcmoddev/lib/integration/plugins/tinkers/modifiers/ModifierEnergized.java b/src/main/java/zone/moddev/mc/mmdlib/integration/plugins/tinkers/modifiers/ModifierEnergized.java similarity index 90% rename from src/main/java/com/mcmoddev/lib/integration/plugins/tinkers/modifiers/ModifierEnergized.java rename to src/main/java/zone/moddev/mc/mmdlib/integration/plugins/tinkers/modifiers/ModifierEnergized.java index 763a3ac..03d3084 100644 --- a/src/main/java/com/mcmoddev/lib/integration/plugins/tinkers/modifiers/ModifierEnergized.java +++ b/src/main/java/zone/moddev/mc/mmdlib/integration/plugins/tinkers/modifiers/ModifierEnergized.java @@ -1,10 +1,10 @@ -package com.mcmoddev.lib.integration.plugins.tinkers.modifiers; +package zone.moddev.mc.mmdlib.integration.plugins.tinkers.modifiers; import java.awt.Color; import java.util.ArrayList; import java.util.List; -import com.mcmoddev.lib.MMDLib; -import com.mcmoddev.lib.energy.ForgeEnergyStorage; +import zone.moddev.mc.mmdlib.MMDLib; +import zone.moddev.mc.mmdlib.energy.ForgeEnergyStorage; import net.minecraft.entity.EntityLivingBase; import net.minecraft.init.Items; import net.minecraft.item.ItemStack; @@ -29,8 +29,8 @@ public ModifierEnergized() { this.addItem(Items.CARROT); - // here is hoping this object get created only once - // and only if tinkers is actually loaded and such + // Constructed when the Tinkers integration is loaded. + MinecraftForge.EVENT_BUS.register(this); } @@ -71,8 +71,7 @@ public List getExtraInfo(final ItemStack tool, final NBTTagCompound modi public void hackCapabilities(final AttachCapabilitiesEvent ev) { final ItemStack stack = ev.getObject(); if (stack.getItem() instanceof TinkersItem) { - // TODO: maybe test the item for some properties and such - // final TinkersItem tinkers = (TinkersItem)stack.getItem(); + // Attach a provider to Tinkers tools; expose it only while the modifier is present. ev.addCapability(new ResourceLocation(MMDLib.MODID, KEY), new ForgeEnergyStorage(0, 42000) diff --git a/src/main/java/com/mcmoddev/lib/integration/plugins/tinkers/modifiers/ModifierFakeDiamond.java b/src/main/java/zone/moddev/mc/mmdlib/integration/plugins/tinkers/modifiers/ModifierFakeDiamond.java old mode 100755 new mode 100644 similarity index 93% rename from src/main/java/com/mcmoddev/lib/integration/plugins/tinkers/modifiers/ModifierFakeDiamond.java rename to src/main/java/zone/moddev/mc/mmdlib/integration/plugins/tinkers/modifiers/ModifierFakeDiamond.java index 23f7d27..6171408 --- a/src/main/java/com/mcmoddev/lib/integration/plugins/tinkers/modifiers/ModifierFakeDiamond.java +++ b/src/main/java/zone/moddev/mc/mmdlib/integration/plugins/tinkers/modifiers/ModifierFakeDiamond.java @@ -1,4 +1,4 @@ -package com.mcmoddev.lib.integration.plugins.tinkers.modifiers; +package zone.moddev.mc.mmdlib.integration.plugins.tinkers.modifiers; import javax.annotation.Nonnull; @@ -11,9 +11,6 @@ public class ModifierFakeDiamond extends ToolModifier { - /** - * - */ public ModifierFakeDiamond() { super("fake-diamond", 0x00FF00); diff --git a/src/main/java/com/mcmoddev/lib/integration/plugins/tinkers/modifiers/ModifierLeadPlated.java b/src/main/java/zone/moddev/mc/mmdlib/integration/plugins/tinkers/modifiers/ModifierLeadPlated.java old mode 100755 new mode 100644 similarity index 83% rename from src/main/java/com/mcmoddev/lib/integration/plugins/tinkers/modifiers/ModifierLeadPlated.java rename to src/main/java/zone/moddev/mc/mmdlib/integration/plugins/tinkers/modifiers/ModifierLeadPlated.java index b386b5f..85de068 --- a/src/main/java/com/mcmoddev/lib/integration/plugins/tinkers/modifiers/ModifierLeadPlated.java +++ b/src/main/java/zone/moddev/mc/mmdlib/integration/plugins/tinkers/modifiers/ModifierLeadPlated.java @@ -1,4 +1,4 @@ -package com.mcmoddev.lib.integration.plugins.tinkers.modifiers; +package zone.moddev.mc.mmdlib.integration.plugins.tinkers.modifiers; import javax.annotation.Nonnull; @@ -7,13 +7,10 @@ import slimeknights.tconstruct.library.utils.TagUtil; import slimeknights.tconstruct.tools.modifiers.ToolModifier; -// We really need nothing here other than to know its been applied. +// This modifier records its presence; it adds no separate behavior here. public class ModifierLeadPlated extends ToolModifier { - /** - * - */ public ModifierLeadPlated() { super("lead-plated", 0xFFFFFF); diff --git a/src/main/java/com/mcmoddev/lib/integration/plugins/tinkers/modifiers/ModifierToxic.java b/src/main/java/zone/moddev/mc/mmdlib/integration/plugins/tinkers/modifiers/ModifierToxic.java old mode 100755 new mode 100644 similarity index 94% rename from src/main/java/com/mcmoddev/lib/integration/plugins/tinkers/modifiers/ModifierToxic.java rename to src/main/java/zone/moddev/mc/mmdlib/integration/plugins/tinkers/modifiers/ModifierToxic.java index 1de95f0..b0e4844 --- a/src/main/java/com/mcmoddev/lib/integration/plugins/tinkers/modifiers/ModifierToxic.java +++ b/src/main/java/zone/moddev/mc/mmdlib/integration/plugins/tinkers/modifiers/ModifierToxic.java @@ -1,4 +1,4 @@ -package com.mcmoddev.lib.integration.plugins.tinkers.modifiers; +package zone.moddev.mc.mmdlib.integration.plugins.tinkers.modifiers; import java.util.List; @@ -15,14 +15,8 @@ import slimeknights.tconstruct.library.modifiers.ModifierAspect; import slimeknights.tconstruct.library.modifiers.ModifierTrait; -/** - * - */ public final class ModifierToxic extends ModifierTrait implements IModifierDisplay { - /** - * - */ public ModifierToxic() { super("toxic-modifier", 0xFFFFFF, 1, 0); this.addAspects(new ModifierAspect.SingleAspect(this), new ModifierAspect.DataAspect(this), diff --git a/src/main/java/zone/moddev/mc/mmdlib/integration/plugins/tinkers/modifiers/package-info.java b/src/main/java/zone/moddev/mc/mmdlib/integration/plugins/tinkers/modifiers/package-info.java new file mode 100644 index 0000000..99b4329 --- /dev/null +++ b/src/main/java/zone/moddev/mc/mmdlib/integration/plugins/tinkers/modifiers/package-info.java @@ -0,0 +1,4 @@ +@ParametersAreNonnullByDefault +package zone.moddev.mc.mmdlib.integration.plugins.tinkers.modifiers; + +import javax.annotation.ParametersAreNonnullByDefault; diff --git a/src/main/java/zone/moddev/mc/mmdlib/integration/plugins/tinkers/package-info.java b/src/main/java/zone/moddev/mc/mmdlib/integration/plugins/tinkers/package-info.java new file mode 100644 index 0000000..94c8dcb --- /dev/null +++ b/src/main/java/zone/moddev/mc/mmdlib/integration/plugins/tinkers/package-info.java @@ -0,0 +1,4 @@ +@ParametersAreNonnullByDefault +package zone.moddev.mc.mmdlib.integration.plugins.tinkers; + +import javax.annotation.ParametersAreNonnullByDefault; diff --git a/src/main/java/com/mcmoddev/lib/integration/plugins/tinkers/traits/MMDTraits.java b/src/main/java/zone/moddev/mc/mmdlib/integration/plugins/tinkers/traits/MMDTraits.java old mode 100755 new mode 100644 similarity index 86% rename from src/main/java/com/mcmoddev/lib/integration/plugins/tinkers/traits/MMDTraits.java rename to src/main/java/zone/moddev/mc/mmdlib/integration/plugins/tinkers/traits/MMDTraits.java index 3d18a39..0a71e9d --- a/src/main/java/com/mcmoddev/lib/integration/plugins/tinkers/traits/MMDTraits.java +++ b/src/main/java/zone/moddev/mc/mmdlib/integration/plugins/tinkers/traits/MMDTraits.java @@ -1,4 +1,4 @@ -package com.mcmoddev.lib.integration.plugins.tinkers.traits; +package zone.moddev.mc.mmdlib.integration.plugins.tinkers.traits; import slimeknights.tconstruct.library.traits.AbstractTrait; @@ -21,7 +21,7 @@ public class MMDTraits { * "mmd-soft"
*
* Modifier class: - * {@link com.mcmoddev.lib.integration.plugins.tinkers.traits.TraitSoft} + * {@link zone.moddev.mc.mmdlib.integration.plugins.tinkers.traits.TraitSoft} * * @author Daniel Hazelton <dshadowwolf@gmail.com> * @author Java doc author: Vase of Petunias @@ -42,7 +42,7 @@ public class MMDTraits { * "mmd-sparkly"
*
* Modifier class: - * {@link com.mcmoddev.lib.integration.plugins.tinkers.traits.TraitSparkly} + * {@link zone.moddev.mc.mmdlib.integration.plugins.tinkers.traits.TraitSparkly} * * @author Java doc author: Vase of Petunias */ @@ -61,7 +61,7 @@ public class MMDTraits { * "mmd-heavy"
*
* Modifier class: - * {@link com.mcmoddev.lib.integration.plugins.tinkers.traits.TraitHeavy} + * {@link zone.moddev.mc.mmdlib.integration.plugins.tinkers.traits.TraitHeavy} * * @author Java doc author: Vase of Petunias */ @@ -82,7 +82,7 @@ public class MMDTraits { * "mmd-brittle"
*
* Modifier class: - * {@link com.mcmoddev.lib.integration.plugins.tinkers.traits.TraitBrittle} + * {@link zone.moddev.mc.mmdlib.integration.plugins.tinkers.traits.TraitBrittle} * * @author Java doc author: Vase of Petunias */ @@ -101,7 +101,7 @@ public class MMDTraits { * "mmd-toxic" *
* Modifier class: - * {@link com.mcmoddev.lib.integration.plugins.tinkers.traits.TraitToxic} + * {@link zone.moddev.mc.mmdlib.integration.plugins.tinkers.traits.TraitToxic} * * @author Java doc author: Vase of Petunias */ @@ -122,7 +122,7 @@ public class MMDTraits { * "mmd-radioactive" *
* Modifier class: - * {@link com.mcmoddev.lib.integration.plugins.tinkers.traits.TraitRadioactive} + * {@link zone.moddev.mc.mmdlib.integration.plugins.tinkers.traits.TraitRadioactive} * * @author Java doc author: Vase of Petunias */ @@ -145,7 +145,7 @@ public class MMDTraits { * "mmd-reactive" *
* Modifier class: - * {@link com.mcmoddev.lib.integration.plugins.tinkers.traits.TraitReactive} + * {@link zone.moddev.mc.mmdlib.integration.plugins.tinkers.traits.TraitReactive} * * @author Java doc author: Vase of Petunias */ diff --git a/src/main/java/com/mcmoddev/lib/integration/plugins/tinkers/traits/TraitBrittle.java b/src/main/java/zone/moddev/mc/mmdlib/integration/plugins/tinkers/traits/TraitBrittle.java old mode 100755 new mode 100644 similarity index 95% rename from src/main/java/com/mcmoddev/lib/integration/plugins/tinkers/traits/TraitBrittle.java rename to src/main/java/zone/moddev/mc/mmdlib/integration/plugins/tinkers/traits/TraitBrittle.java index d65d0e1..f88c0c1 --- a/src/main/java/com/mcmoddev/lib/integration/plugins/tinkers/traits/TraitBrittle.java +++ b/src/main/java/zone/moddev/mc/mmdlib/integration/plugins/tinkers/traits/TraitBrittle.java @@ -1,4 +1,4 @@ -package com.mcmoddev.lib.integration.plugins.tinkers.traits; +package zone.moddev.mc.mmdlib.integration.plugins.tinkers.traits; import javax.annotation.Nonnull; diff --git a/src/main/java/com/mcmoddev/lib/integration/plugins/tinkers/traits/TraitHeavy.java b/src/main/java/zone/moddev/mc/mmdlib/integration/plugins/tinkers/traits/TraitHeavy.java old mode 100755 new mode 100644 similarity index 94% rename from src/main/java/com/mcmoddev/lib/integration/plugins/tinkers/traits/TraitHeavy.java rename to src/main/java/zone/moddev/mc/mmdlib/integration/plugins/tinkers/traits/TraitHeavy.java index aaeeb11..f43f61f --- a/src/main/java/com/mcmoddev/lib/integration/plugins/tinkers/traits/TraitHeavy.java +++ b/src/main/java/zone/moddev/mc/mmdlib/integration/plugins/tinkers/traits/TraitHeavy.java @@ -1,4 +1,4 @@ -package com.mcmoddev.lib.integration.plugins.tinkers.traits; +package zone.moddev.mc.mmdlib.integration.plugins.tinkers.traits; import javax.annotation.Nonnull; diff --git a/src/main/java/com/mcmoddev/lib/integration/plugins/tinkers/traits/TraitRadioactive.java b/src/main/java/zone/moddev/mc/mmdlib/integration/plugins/tinkers/traits/TraitRadioactive.java old mode 100755 new mode 100644 similarity index 96% rename from src/main/java/com/mcmoddev/lib/integration/plugins/tinkers/traits/TraitRadioactive.java rename to src/main/java/zone/moddev/mc/mmdlib/integration/plugins/tinkers/traits/TraitRadioactive.java index c2b5b0b..59f8f69 --- a/src/main/java/com/mcmoddev/lib/integration/plugins/tinkers/traits/TraitRadioactive.java +++ b/src/main/java/zone/moddev/mc/mmdlib/integration/plugins/tinkers/traits/TraitRadioactive.java @@ -1,4 +1,4 @@ -package com.mcmoddev.lib.integration.plugins.tinkers.traits; +package zone.moddev.mc.mmdlib.integration.plugins.tinkers.traits; import java.util.Random; diff --git a/src/main/java/com/mcmoddev/lib/integration/plugins/tinkers/traits/TraitReactive.java b/src/main/java/zone/moddev/mc/mmdlib/integration/plugins/tinkers/traits/TraitReactive.java old mode 100755 new mode 100644 similarity index 96% rename from src/main/java/com/mcmoddev/lib/integration/plugins/tinkers/traits/TraitReactive.java rename to src/main/java/zone/moddev/mc/mmdlib/integration/plugins/tinkers/traits/TraitReactive.java index cd1d00b..892bd07 --- a/src/main/java/com/mcmoddev/lib/integration/plugins/tinkers/traits/TraitReactive.java +++ b/src/main/java/zone/moddev/mc/mmdlib/integration/plugins/tinkers/traits/TraitReactive.java @@ -1,4 +1,4 @@ -package com.mcmoddev.lib.integration.plugins.tinkers.traits; +package zone.moddev.mc.mmdlib.integration.plugins.tinkers.traits; import javax.annotation.Nonnull; diff --git a/src/main/java/com/mcmoddev/lib/integration/plugins/tinkers/traits/TraitSoft.java b/src/main/java/zone/moddev/mc/mmdlib/integration/plugins/tinkers/traits/TraitSoft.java old mode 100755 new mode 100644 similarity index 69% rename from src/main/java/com/mcmoddev/lib/integration/plugins/tinkers/traits/TraitSoft.java rename to src/main/java/zone/moddev/mc/mmdlib/integration/plugins/tinkers/traits/TraitSoft.java index d61073d..0da4a1e --- a/src/main/java/com/mcmoddev/lib/integration/plugins/tinkers/traits/TraitSoft.java +++ b/src/main/java/zone/moddev/mc/mmdlib/integration/plugins/tinkers/traits/TraitSoft.java @@ -1,4 +1,4 @@ -package com.mcmoddev.lib.integration.plugins.tinkers.traits; +package zone.moddev.mc.mmdlib.integration.plugins.tinkers.traits; import javax.annotation.Nonnull; @@ -10,15 +10,15 @@ *

Soft Tool Modifier:

* Name: soft *
- * Desc: This modifier, when applied to tools, increases the damage used by the tool when the tool is damaged by - * a factor of 1.25.
(i.e. 1.25 more damage will be dealt to the tool's durability) + * Desc: Adds a durability penalty when the tool takes damage, based on + * 125% of the damage passed to the hook, rounded down to an integer. * *
* String Reference:
- * TraitNames.SOFT
+ * Registry names:
* "soft"
* "mmd-soft"
- * {@link com.mcmoddev.basemetals.data.TraitNames} + * {@code mmd-soft} * * @author Daniel Hazelton <dshadowwolf@gmail.com> * @author Java doc author: Vase of Petunias diff --git a/src/main/java/com/mcmoddev/lib/integration/plugins/tinkers/traits/TraitSparkly.java b/src/main/java/zone/moddev/mc/mmdlib/integration/plugins/tinkers/traits/TraitSparkly.java old mode 100755 new mode 100644 similarity index 79% rename from src/main/java/com/mcmoddev/lib/integration/plugins/tinkers/traits/TraitSparkly.java rename to src/main/java/zone/moddev/mc/mmdlib/integration/plugins/tinkers/traits/TraitSparkly.java index 3315acb..118a051 --- a/src/main/java/com/mcmoddev/lib/integration/plugins/tinkers/traits/TraitSparkly.java +++ b/src/main/java/zone/moddev/mc/mmdlib/integration/plugins/tinkers/traits/TraitSparkly.java @@ -1,4 +1,4 @@ -package com.mcmoddev.lib.integration.plugins.tinkers.traits; +package zone.moddev.mc.mmdlib.integration.plugins.tinkers.traits; import javax.annotation.Nonnull; @@ -14,15 +14,15 @@ *

Sparkly Tool Modifier:

* Name: sparkly *
- * Desc: This modifier, when applied to tools, has an automatic durability repair effect. Heals the tool for - * 1 durability every 200 ticks. (10 seconds) + * Desc: Repairs a held, damaged tool on the server by + * one durability point every 200 world ticks (10 seconds). * *
* String Reference:
- * TraitNames.SPARKLY
+ * Registry names:
* "sparkly"
* "mmd-sparkly"
- * {@link com.mcmoddev.basemetals.data.TraitNames} + * {@code mmd-sparkly} * * @author Java doc author: Vase of Petunias */ diff --git a/src/main/java/com/mcmoddev/lib/integration/plugins/tinkers/traits/TraitToxic.java b/src/main/java/zone/moddev/mc/mmdlib/integration/plugins/tinkers/traits/TraitToxic.java old mode 100755 new mode 100644 similarity index 94% rename from src/main/java/com/mcmoddev/lib/integration/plugins/tinkers/traits/TraitToxic.java rename to src/main/java/zone/moddev/mc/mmdlib/integration/plugins/tinkers/traits/TraitToxic.java index febe215..6fbb8ce --- a/src/main/java/com/mcmoddev/lib/integration/plugins/tinkers/traits/TraitToxic.java +++ b/src/main/java/zone/moddev/mc/mmdlib/integration/plugins/tinkers/traits/TraitToxic.java @@ -1,4 +1,4 @@ -package com.mcmoddev.lib.integration.plugins.tinkers.traits; +package zone.moddev.mc.mmdlib.integration.plugins.tinkers.traits; import javax.annotation.Nonnull; diff --git a/src/main/java/zone/moddev/mc/mmdlib/integration/plugins/tinkers/traits/package-info.java b/src/main/java/zone/moddev/mc/mmdlib/integration/plugins/tinkers/traits/package-info.java new file mode 100644 index 0000000..c274622 --- /dev/null +++ b/src/main/java/zone/moddev/mc/mmdlib/integration/plugins/tinkers/traits/package-info.java @@ -0,0 +1,4 @@ +@ParametersAreNonnullByDefault +package zone.moddev.mc.mmdlib.integration.plugins.tinkers.traits; + +import javax.annotation.ParametersAreNonnullByDefault; diff --git a/src/main/java/com/mcmoddev/lib/interfaces/IDynamicTabProvider.java b/src/main/java/zone/moddev/mc/mmdlib/interfaces/IDynamicTabProvider.java similarity index 87% rename from src/main/java/com/mcmoddev/lib/interfaces/IDynamicTabProvider.java rename to src/main/java/zone/moddev/mc/mmdlib/interfaces/IDynamicTabProvider.java index 25598c7..9296bf7 100644 --- a/src/main/java/com/mcmoddev/lib/interfaces/IDynamicTabProvider.java +++ b/src/main/java/zone/moddev/mc/mmdlib/interfaces/IDynamicTabProvider.java @@ -1,4 +1,4 @@ -package com.mcmoddev.lib.interfaces; +package zone.moddev.mc.mmdlib.interfaces; public interface IDynamicTabProvider extends ITabProvider { /** diff --git a/src/main/java/com/mcmoddev/lib/interfaces/ITabProvider.java b/src/main/java/zone/moddev/mc/mmdlib/interfaces/ITabProvider.java similarity index 91% rename from src/main/java/com/mcmoddev/lib/interfaces/ITabProvider.java rename to src/main/java/zone/moddev/mc/mmdlib/interfaces/ITabProvider.java index 73c6d1e..ab950b8 100644 --- a/src/main/java/com/mcmoddev/lib/interfaces/ITabProvider.java +++ b/src/main/java/zone/moddev/mc/mmdlib/interfaces/ITabProvider.java @@ -1,13 +1,12 @@ -package com.mcmoddev.lib.interfaces; +package zone.moddev.mc.mmdlib.interfaces; -import com.mcmoddev.lib.exceptions.MaterialNotFoundException; -import com.mcmoddev.lib.exceptions.TabNotFoundException; -import com.mcmoddev.lib.init.MMDCreativeTab; +import zone.moddev.mc.mmdlib.exceptions.MaterialNotFoundException; +import zone.moddev.mc.mmdlib.exceptions.TabNotFoundException; +import zone.moddev.mc.mmdlib.init.MMDCreativeTab; import net.minecraft.block.Block; import net.minecraft.item.Item; - /** * This interface defines a tabprovider, which should provide the encapsulated * capability to add blocks/items to tabs @@ -23,7 +22,7 @@ public interface ITabProvider { * @throws TabNotFoundException If the tab doesn't exist */ void addBlockToTab(String tabName, Block block) throws TabNotFoundException; - + /** * adds an item to a tab * @param item Item to add to the tab @@ -31,7 +30,7 @@ public interface ITabProvider { * @throws TabNotFoundException If the tab doesn't exist */ void addItemToTab(String tabName, Item item) throws TabNotFoundException; - + /** * sets an icon to a tab * @param tabName The name of the tab to set the icon for @@ -40,8 +39,7 @@ public interface ITabProvider { * @throws MaterialNotFoundException There was an error finding the material */ void setIcon(String tabName, String materialName) throws TabNotFoundException, MaterialNotFoundException; - - + /** * @param tabName The name of the tab to be selected * @return Returns an MMDCreativeTab @@ -50,8 +48,7 @@ public interface ITabProvider { */ @Deprecated MMDCreativeTab getTabByName(String tabName) throws TabNotFoundException; - - + /** * Gets a recommended tab for an item (block or item) * @param itemName The name of the type of block or item to match against a tab @@ -67,7 +64,6 @@ public interface ITabProvider { */ String getTab(String itemName); - /** * tells the tabprovider which tabs should be provided for which type items/blocks * @param tabName name of tab to be mapped diff --git a/src/main/java/com/mcmoddev/lib/inventory/CombinedFluidHandler.java b/src/main/java/zone/moddev/mc/mmdlib/inventory/CombinedFluidHandler.java similarity index 98% rename from src/main/java/com/mcmoddev/lib/inventory/CombinedFluidHandler.java rename to src/main/java/zone/moddev/mc/mmdlib/inventory/CombinedFluidHandler.java index 5747483..5cbf33c 100644 --- a/src/main/java/com/mcmoddev/lib/inventory/CombinedFluidHandler.java +++ b/src/main/java/zone/moddev/mc/mmdlib/inventory/CombinedFluidHandler.java @@ -1,4 +1,4 @@ -package com.mcmoddev.lib.inventory; +package zone.moddev.mc.mmdlib.inventory; import java.util.ArrayList; import java.util.Arrays; diff --git a/src/main/java/com/mcmoddev/lib/inventory/CombinedItemHandler.java b/src/main/java/zone/moddev/mc/mmdlib/inventory/CombinedItemHandler.java similarity index 98% rename from src/main/java/com/mcmoddev/lib/inventory/CombinedItemHandler.java rename to src/main/java/zone/moddev/mc/mmdlib/inventory/CombinedItemHandler.java index 2244105..87bbab3 100644 --- a/src/main/java/com/mcmoddev/lib/inventory/CombinedItemHandler.java +++ b/src/main/java/zone/moddev/mc/mmdlib/inventory/CombinedItemHandler.java @@ -1,4 +1,4 @@ -package com.mcmoddev.lib.inventory; +package zone.moddev.mc.mmdlib.inventory; import java.util.ArrayList; import java.util.Arrays; diff --git a/src/main/java/com/mcmoddev/lib/inventory/CombinedItemHandlerModifiable.java b/src/main/java/zone/moddev/mc/mmdlib/inventory/CombinedItemHandlerModifiable.java similarity index 96% rename from src/main/java/com/mcmoddev/lib/inventory/CombinedItemHandlerModifiable.java rename to src/main/java/zone/moddev/mc/mmdlib/inventory/CombinedItemHandlerModifiable.java index 38401a7..b25ba4d 100644 --- a/src/main/java/com/mcmoddev/lib/inventory/CombinedItemHandlerModifiable.java +++ b/src/main/java/zone/moddev/mc/mmdlib/inventory/CombinedItemHandlerModifiable.java @@ -1,4 +1,4 @@ -package com.mcmoddev.lib.inventory; +package zone.moddev.mc.mmdlib.inventory; import javax.annotation.Nonnull; import net.minecraft.item.ItemStack; diff --git a/src/main/java/com/mcmoddev/lib/inventory/FilteredFluidTank.java b/src/main/java/zone/moddev/mc/mmdlib/inventory/FilteredFluidTank.java similarity index 98% rename from src/main/java/com/mcmoddev/lib/inventory/FilteredFluidTank.java rename to src/main/java/zone/moddev/mc/mmdlib/inventory/FilteredFluidTank.java index 87397fb..f619ac3 100644 --- a/src/main/java/com/mcmoddev/lib/inventory/FilteredFluidTank.java +++ b/src/main/java/zone/moddev/mc/mmdlib/inventory/FilteredFluidTank.java @@ -1,4 +1,4 @@ -package com.mcmoddev.lib.inventory; +package zone.moddev.mc.mmdlib.inventory; import java.util.function.Predicate; import javax.annotation.Nullable; diff --git a/src/main/java/com/mcmoddev/lib/inventory/FilteredItemHandler.java b/src/main/java/zone/moddev/mc/mmdlib/inventory/FilteredItemHandler.java similarity index 94% rename from src/main/java/com/mcmoddev/lib/inventory/FilteredItemHandler.java rename to src/main/java/zone/moddev/mc/mmdlib/inventory/FilteredItemHandler.java index 8f4f9c8..70201f4 100644 --- a/src/main/java/com/mcmoddev/lib/inventory/FilteredItemHandler.java +++ b/src/main/java/zone/moddev/mc/mmdlib/inventory/FilteredItemHandler.java @@ -1,9 +1,9 @@ -package com.mcmoddev.lib.inventory; +package zone.moddev.mc.mmdlib.inventory; import java.util.function.BiPredicate; import javax.annotation.Nonnull; import javax.annotation.Nullable; -import com.mcmoddev.lib.util.ItemStackUtils; +import zone.moddev.mc.mmdlib.util.ItemStackUtils; import net.minecraft.item.ItemStack; import net.minecraftforge.items.IItemHandlerModifiable; @@ -22,7 +22,7 @@ public class FilteredItemHandler implements IFilteredItemHandler, IItemHandlerMo * @param internal The item handler to be filtered. * @param insertFilter Predicate used to test if an item can be inserted. * A null value means you can always insert into the inner item handler. - * @param extractFilter Predicate used to test if an item can ve extracted. + * @param extractFilter Predicate used to test if an item can be extracted. * A null value means you can always extract from the inner item handler. */ public FilteredItemHandler(final IItemHandlerModifiable internal, @@ -56,7 +56,7 @@ public int getSlots() { @Nonnull @Override public ItemStack getStackInSlot(final int slot) { - // TODO: figure out if filter needs to be applied here + // Reading a slot bypasses the insertion and extraction filters. return this.internal.getStackInSlot(slot); } diff --git a/src/main/java/com/mcmoddev/lib/inventory/FluidTankHandler.java b/src/main/java/zone/moddev/mc/mmdlib/inventory/FluidTankHandler.java similarity index 86% rename from src/main/java/com/mcmoddev/lib/inventory/FluidTankHandler.java rename to src/main/java/zone/moddev/mc/mmdlib/inventory/FluidTankHandler.java index 7aeb625..b30e0d3 100644 --- a/src/main/java/com/mcmoddev/lib/inventory/FluidTankHandler.java +++ b/src/main/java/zone/moddev/mc/mmdlib/inventory/FluidTankHandler.java @@ -1,4 +1,4 @@ -package com.mcmoddev.lib.inventory; +package zone.moddev.mc.mmdlib.inventory; import javax.annotation.Nullable; import net.minecraftforge.fluids.FluidStack; @@ -50,7 +50,7 @@ public FluidStack drain(final int maxDrain, final boolean doDrain) { return this.tank.drain(maxDrain, doDrain); } - // This class only exists because mojang/forge screwed up with their wrapper and made it for FluidTank and not IFluidTank. + // Adapts any IFluidTank; Forge's built-in wrapper requires a concrete FluidTank. private class FluidTankPropertiesWrapper implements IFluidTankProperties { FluidTankPropertiesWrapper() @@ -72,7 +72,7 @@ public int getCapacity() @Override public boolean canFill() { - // TODO: maybe make a new interface for this + // Respect type restrictions exposed by Forge FluidTank implementations. final IFluidTank tank = FluidTankHandler.this.tank; return !(tank instanceof FluidTank) || ((FluidTank) tank).canFill(); } @@ -80,7 +80,7 @@ public boolean canFill() { @Override public boolean canDrain() { - // TODO: maybe make a new interface for this + // Respect type restrictions exposed by Forge FluidTank implementations. final IFluidTank tank = FluidTankHandler.this.tank; return !(tank instanceof FluidTank) || ((FluidTank) tank).canDrain(); } @@ -88,7 +88,7 @@ public boolean canDrain() @Override public boolean canFillFluidType(final FluidStack fluidStack) { - // TODO: maybe make a new interface for this + // Respect type restrictions exposed by Forge FluidTank implementations. final IFluidTank tank = FluidTankHandler.this.tank; return !(tank instanceof FluidTank) || ((FluidTank) tank).canFillFluidType(fluidStack); } @@ -96,7 +96,7 @@ public boolean canFillFluidType(final FluidStack fluidStack) @Override public boolean canDrainFluidType(final FluidStack fluidStack) { - // TODO: maybe make a new interface for this + // Respect type restrictions exposed by Forge FluidTank implementations. final IFluidTank tank = FluidTankHandler.this.tank; return !(tank instanceof FluidTank) || ((FluidTank) tank).canDrainFluidType(fluidStack); } diff --git a/src/main/java/com/mcmoddev/lib/inventory/IFilteredFluidTank.java b/src/main/java/zone/moddev/mc/mmdlib/inventory/IFilteredFluidTank.java similarity index 94% rename from src/main/java/com/mcmoddev/lib/inventory/IFilteredFluidTank.java rename to src/main/java/zone/moddev/mc/mmdlib/inventory/IFilteredFluidTank.java index d8dc8be..ad22066 100644 --- a/src/main/java/com/mcmoddev/lib/inventory/IFilteredFluidTank.java +++ b/src/main/java/zone/moddev/mc/mmdlib/inventory/IFilteredFluidTank.java @@ -1,4 +1,4 @@ -package com.mcmoddev.lib.inventory; +package zone.moddev.mc.mmdlib.inventory; import net.minecraftforge.fluids.FluidStack; import net.minecraftforge.fluids.IFluidTank; diff --git a/src/main/java/com/mcmoddev/lib/inventory/IFilteredItemHandler.java b/src/main/java/zone/moddev/mc/mmdlib/inventory/IFilteredItemHandler.java similarity index 96% rename from src/main/java/com/mcmoddev/lib/inventory/IFilteredItemHandler.java rename to src/main/java/zone/moddev/mc/mmdlib/inventory/IFilteredItemHandler.java index 65e5f5a..319d123 100644 --- a/src/main/java/com/mcmoddev/lib/inventory/IFilteredItemHandler.java +++ b/src/main/java/zone/moddev/mc/mmdlib/inventory/IFilteredItemHandler.java @@ -1,4 +1,4 @@ -package com.mcmoddev.lib.inventory; +package zone.moddev.mc.mmdlib.inventory; import javax.annotation.Nonnull; import net.minecraft.item.ItemStack; diff --git a/src/main/java/com/mcmoddev/lib/inventory/IFluidTankModifiable.java b/src/main/java/zone/moddev/mc/mmdlib/inventory/IFluidTankModifiable.java similarity index 93% rename from src/main/java/com/mcmoddev/lib/inventory/IFluidTankModifiable.java rename to src/main/java/zone/moddev/mc/mmdlib/inventory/IFluidTankModifiable.java index 02b2686..0d7eb59 100644 --- a/src/main/java/com/mcmoddev/lib/inventory/IFluidTankModifiable.java +++ b/src/main/java/zone/moddev/mc/mmdlib/inventory/IFluidTankModifiable.java @@ -1,4 +1,4 @@ -package com.mcmoddev.lib.inventory; +package zone.moddev.mc.mmdlib.inventory; import javax.annotation.Nullable; import net.minecraftforge.fluids.FluidStack; diff --git a/src/main/java/com/mcmoddev/lib/inventory/IResponsiveFluidTank.java b/src/main/java/zone/moddev/mc/mmdlib/inventory/IResponsiveFluidTank.java similarity index 84% rename from src/main/java/com/mcmoddev/lib/inventory/IResponsiveFluidTank.java rename to src/main/java/zone/moddev/mc/mmdlib/inventory/IResponsiveFluidTank.java index 1c50ce5..12b36ec 100644 --- a/src/main/java/com/mcmoddev/lib/inventory/IResponsiveFluidTank.java +++ b/src/main/java/zone/moddev/mc/mmdlib/inventory/IResponsiveFluidTank.java @@ -1,4 +1,4 @@ -package com.mcmoddev.lib.inventory; +package zone.moddev.mc.mmdlib.inventory; import java.util.function.Consumer; import net.minecraftforge.fluids.IFluidTank; @@ -14,5 +14,5 @@ public interface IResponsiveFluidTank extends IFluidTank { */ void addResponsiveTarget(Consumer consumer); - // TODO: consider adding remove/clear methods + // Listeners remain registered for the lifetime of the tank. } diff --git a/src/main/java/com/mcmoddev/lib/inventory/ItemHandlerWrapper.java b/src/main/java/zone/moddev/mc/mmdlib/inventory/ItemHandlerWrapper.java similarity index 95% rename from src/main/java/com/mcmoddev/lib/inventory/ItemHandlerWrapper.java rename to src/main/java/zone/moddev/mc/mmdlib/inventory/ItemHandlerWrapper.java index 048540f..e8101aa 100644 --- a/src/main/java/com/mcmoddev/lib/inventory/ItemHandlerWrapper.java +++ b/src/main/java/zone/moddev/mc/mmdlib/inventory/ItemHandlerWrapper.java @@ -1,4 +1,4 @@ -package com.mcmoddev.lib.inventory; +package zone.moddev.mc.mmdlib.inventory; import javax.annotation.Nonnull; import net.minecraft.item.ItemStack; @@ -84,7 +84,7 @@ public NBTTagCompound serializeNBT() { @Override public void deserializeNBT(final NBTTagCompound nbt) { if (this.internal instanceof INBTSerializable) { - // TODO: also make sure to apply filters and such + // NBT restoration delegates to the wrapped handler without applying slot filters. //noinspection unchecked ((INBTSerializable) this.internal).deserializeNBT(nbt); } diff --git a/src/main/java/com/mcmoddev/lib/inventory/ResponsiveFluidTankWrapper.java b/src/main/java/zone/moddev/mc/mmdlib/inventory/ResponsiveFluidTankWrapper.java similarity index 93% rename from src/main/java/com/mcmoddev/lib/inventory/ResponsiveFluidTankWrapper.java rename to src/main/java/zone/moddev/mc/mmdlib/inventory/ResponsiveFluidTankWrapper.java index b778f9b..8d6fbc0 100644 --- a/src/main/java/com/mcmoddev/lib/inventory/ResponsiveFluidTankWrapper.java +++ b/src/main/java/zone/moddev/mc/mmdlib/inventory/ResponsiveFluidTankWrapper.java @@ -1,10 +1,10 @@ -package com.mcmoddev.lib.inventory; +package zone.moddev.mc.mmdlib.inventory; import java.util.ArrayList; import java.util.List; import java.util.function.Consumer; import javax.annotation.Nullable; -import com.mcmoddev.lib.MMDLib; +import zone.moddev.mc.mmdlib.MMDLib; import net.minecraftforge.fluids.FluidStack; import net.minecraftforge.fluids.FluidTankInfo; import net.minecraftforge.fluids.IFluidTank; @@ -49,14 +49,14 @@ public void setFluid(@Nullable final FluidStack fluid) { this.modifiableTank.setFluid(fluid); this.onChanged(); } else { - // TODO: consider throwing an error + // Log an unsupported mutation without changing the wrapped tank. MMDLib.logger.error("Someone or something tried to set the fluid in a non-modifiable tank!"); } } @Override public void addResponsiveTarget(final Consumer consumer) { - // TODO: find a fix for this 'hack' + // Callbacks are stored with the shared tank interface type. //noinspection unchecked this.responsiveTargets.add((Consumer) consumer); } diff --git a/src/main/java/com/mcmoddev/lib/inventory/SimpleFluidTank.java b/src/main/java/zone/moddev/mc/mmdlib/inventory/SimpleFluidTank.java similarity index 94% rename from src/main/java/com/mcmoddev/lib/inventory/SimpleFluidTank.java rename to src/main/java/zone/moddev/mc/mmdlib/inventory/SimpleFluidTank.java index f0a3968..e3f53db 100644 --- a/src/main/java/com/mcmoddev/lib/inventory/SimpleFluidTank.java +++ b/src/main/java/zone/moddev/mc/mmdlib/inventory/SimpleFluidTank.java @@ -1,4 +1,4 @@ -package com.mcmoddev.lib.inventory; +package zone.moddev.mc.mmdlib.inventory; import java.util.ArrayList; import java.util.List; @@ -44,7 +44,7 @@ public SimpleFluidTank(final Fluid fluid, final int amount, final int capacity) @Override public void addResponsiveTarget(final Consumer consumer) { - // TODO: find a fix for this 'hack' + // Callbacks are stored with the shared tank interface type. //noinspection unchecked this.responsiveTargets.add((Consumer) consumer); } diff --git a/src/main/java/zone/moddev/mc/mmdlib/inventory/package-info.java b/src/main/java/zone/moddev/mc/mmdlib/inventory/package-info.java new file mode 100644 index 0000000..7bb73e5 --- /dev/null +++ b/src/main/java/zone/moddev/mc/mmdlib/inventory/package-info.java @@ -0,0 +1,6 @@ +@ParametersAreNonnullByDefault +@MethodsReturnNonnullByDefault +package zone.moddev.mc.mmdlib.inventory; + +import javax.annotation.ParametersAreNonnullByDefault; +import mcp.MethodsReturnNonnullByDefault; diff --git a/src/main/java/com/mcmoddev/lib/ioc/HashTuple2.java b/src/main/java/zone/moddev/mc/mmdlib/ioc/HashTuple2.java similarity index 94% rename from src/main/java/com/mcmoddev/lib/ioc/HashTuple2.java rename to src/main/java/zone/moddev/mc/mmdlib/ioc/HashTuple2.java index 42b2c0d..72444ca 100644 --- a/src/main/java/com/mcmoddev/lib/ioc/HashTuple2.java +++ b/src/main/java/zone/moddev/mc/mmdlib/ioc/HashTuple2.java @@ -1,4 +1,4 @@ -package com.mcmoddev.lib.ioc; +package zone.moddev.mc.mmdlib.ioc; public class HashTuple2 { diff --git a/src/main/java/com/mcmoddev/lib/ioc/LibIoC.java b/src/main/java/zone/moddev/mc/mmdlib/ioc/LibIoC.java similarity index 96% rename from src/main/java/com/mcmoddev/lib/ioc/LibIoC.java rename to src/main/java/zone/moddev/mc/mmdlib/ioc/LibIoC.java index 16ede79..68a3692 100644 --- a/src/main/java/com/mcmoddev/lib/ioc/LibIoC.java +++ b/src/main/java/zone/moddev/mc/mmdlib/ioc/LibIoC.java @@ -1,4 +1,4 @@ -package com.mcmoddev.lib.ioc; +package zone.moddev.mc.mmdlib.ioc; import java.util.concurrent.ConcurrentHashMap; import net.minecraft.util.ResourceLocation; @@ -11,11 +11,11 @@ public class LibIoC { protected ConcurrentHashMap, String>, Object> container = new ConcurrentHashMap<>(); protected static LibIoC _instance; - + protected LibIoC() { - + } - + /** * Register a concrete into the IoC against a desired type * @param key class type to be registered @@ -40,7 +40,7 @@ public boolean register(Class key, V value) { public boolean register(Class key, V value, ResourceLocation resourceLocation) { return _instance.container.put(new HashTuple2, String>(key, resourceLocation.toString()), value) == null; } - + /** * Register a concrete into the IoC against a desired type and key using MMDResourceLocation * @param key class type to be registered @@ -53,7 +53,7 @@ public boolean register(Class key, V value, ResourceLocation public boolean register(Class key, V value, MMDResourceLocation resourceLocation) { return _instance.container.put(new HashTuple2, String>(key, resourceLocation.getPath()), value) == null; } - + /** * Register a concrete into the IoC against a desired type and a string key * @param key class type to be registered @@ -67,7 +67,7 @@ public boolean register(Class key, V value, MMDResourceLocat public boolean register(Class key, V value, String instanceName, String modID) { return _instance.container.put(new HashTuple2, String>(key, modID + ":" + instanceName), value) == null; } - + /** * Resolve a concrete from the IoC against the desired type * @param keyObject class type to locate @@ -79,7 +79,7 @@ public boolean register(Class key, V value, String instanceN public V resolve(Class keyObject) { return (V) this.resolve(keyObject, ""); } - + /** * Resolve a concrete from the IoC against the desired type and resource location * @param keyObject class type to locate @@ -92,7 +92,7 @@ public V resolve(Class keyObject) { public V resolve(Class keyObject, ResourceLocation resourceLocation) { return (V) this.resolve(keyObject, resourceLocation.toString()); } - + /** * Resolve a concrete from the IoC against the desired type and mmd resource location * @param keyObject class type to locate @@ -105,7 +105,7 @@ public V resolve(Class keyObject, ResourceLocation resourceL public V resolve(Class keyObject, MMDResourceLocation resourceLocation) { return (V) this.resolve(keyObject, resourceLocation.getPath()); } - + /** * Resolve a concrete from the IoC against the desired type and string key * @param keyObject class type to locate @@ -119,31 +119,31 @@ public V resolve(Class keyObject, MMDResourceLocation resour public V resolve(Class keyObject, String instanceName, String modID) { return (V) this.resolve(keyObject, modID + ":" + instanceName); } - + @SuppressWarnings("unchecked") private V resolve(Class keyObject, String instanceName) { return (V) container.get(new HashTuple2, String>(keyObject, instanceName)); } - + /** * create relationships between class/interface type and concretes */ public void wireup() { - // TODO: Put code here for preliminary wireup e.g. ITabProvider to a concrete such as Tabcontainer + // Automatic wiring is not implemented; callers register relationships explicitly. } - + public static LibIoC getInstance() { return getInstance(true); } - + public static LibIoC getInstance(boolean autoWirup) { if(_instance == null) { _instance = new LibIoC(); - + if (autoWirup) _instance.wireup(); } - + return _instance; } } \ No newline at end of file diff --git a/src/main/java/com/mcmoddev/lib/ioc/MMDResourceLocation.java b/src/main/java/zone/moddev/mc/mmdlib/ioc/MMDResourceLocation.java similarity index 94% rename from src/main/java/com/mcmoddev/lib/ioc/MMDResourceLocation.java rename to src/main/java/zone/moddev/mc/mmdlib/ioc/MMDResourceLocation.java index 712a24f..62c43fd 100644 --- a/src/main/java/com/mcmoddev/lib/ioc/MMDResourceLocation.java +++ b/src/main/java/zone/moddev/mc/mmdlib/ioc/MMDResourceLocation.java @@ -1,4 +1,4 @@ -package com.mcmoddev.lib.ioc; +package zone.moddev.mc.mmdlib.ioc; import java.util.UUID; import net.minecraft.util.ResourceLocation; @@ -7,7 +7,7 @@ public class MMDResourceLocation extends ResourceLocation { private final String entryNamespace; private final String entryType; private final String entryName; - + public MMDResourceLocation(String namespace, String entryType, String entryName ) { super( "mmdlib", UUID.nameUUIDFromBytes(String.format("%s:%s/%s", namespace, entryType, entryName).getBytes()).toString() ); this.entryNamespace = namespace; @@ -18,11 +18,11 @@ public MMDResourceLocation(String namespace, String entryType, String entryName public String getEntryNamespace() { return this.entryNamespace; } - + public String getEntryType() { return this.entryType; } - + public String getEntryName() { return this.entryName; } diff --git a/src/main/java/com/mcmoddev/lib/item/GenericMMDItem.java b/src/main/java/zone/moddev/mc/mmdlib/item/GenericMMDItem.java similarity index 72% rename from src/main/java/com/mcmoddev/lib/item/GenericMMDItem.java rename to src/main/java/zone/moddev/mc/mmdlib/item/GenericMMDItem.java index 1010b16..2fbcc58 100644 --- a/src/main/java/com/mcmoddev/lib/item/GenericMMDItem.java +++ b/src/main/java/zone/moddev/mc/mmdlib/item/GenericMMDItem.java @@ -1,10 +1,10 @@ -package com.mcmoddev.lib.item; +package zone.moddev.mc.mmdlib.item; import javax.annotation.Nonnull; -import com.mcmoddev.lib.material.IMMDObject; -import com.mcmoddev.lib.material.IMMDBurnableObject; -import com.mcmoddev.lib.material.MMDMaterial; +import zone.moddev.mc.mmdlib.material.IMMDObject; +import zone.moddev.mc.mmdlib.material.IMMDBurnableObject; +import zone.moddev.mc.mmdlib.material.MMDMaterial; import net.minecraft.item.ItemStack; import net.minecraft.item.Item; @@ -48,9 +48,4 @@ public int getItemBurnTime(@Nonnull final ItemStack itemStack) { } } -/* @Override - public float getSmeltingExperience(ItemStack itemStack) { - // clamp to the valid range - return Math.min(1.0f, Math.max(material.getOreSmeltXP(), 0.0f)); - }*/ } diff --git a/src/main/java/com/mcmoddev/lib/item/ItemBolt.java b/src/main/java/zone/moddev/mc/mmdlib/item/ItemBolt.java similarity index 91% rename from src/main/java/com/mcmoddev/lib/item/ItemBolt.java rename to src/main/java/zone/moddev/mc/mmdlib/item/ItemBolt.java index ab5096c..b4efec2 100644 --- a/src/main/java/com/mcmoddev/lib/item/ItemBolt.java +++ b/src/main/java/zone/moddev/mc/mmdlib/item/ItemBolt.java @@ -1,6 +1,6 @@ -package com.mcmoddev.lib.item; +package zone.moddev.mc.mmdlib.item; -import com.mcmoddev.lib.entity.EntityCustomBolt; +import zone.moddev.mc.mmdlib.entity.EntityCustomBolt; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.enchantment.EnchantmentHelper; @@ -16,9 +16,6 @@ */ public class ItemBolt extends net.minecraft.item.Item { - /** - * - */ public ItemBolt() { this.setCreativeTab(CreativeTabs.COMBAT); } diff --git a/src/main/java/com/mcmoddev/lib/item/ItemCrossbow.java b/src/main/java/zone/moddev/mc/mmdlib/item/ItemCrossbow.java similarity index 96% rename from src/main/java/com/mcmoddev/lib/item/ItemCrossbow.java rename to src/main/java/zone/moddev/mc/mmdlib/item/ItemCrossbow.java index f181696..563112f 100644 --- a/src/main/java/com/mcmoddev/lib/item/ItemCrossbow.java +++ b/src/main/java/zone/moddev/mc/mmdlib/item/ItemCrossbow.java @@ -1,11 +1,11 @@ -package com.mcmoddev.lib.item; +package zone.moddev.mc.mmdlib.item; import javax.annotation.Nonnull; -import com.mcmoddev.lib.data.MaterialNames; -import com.mcmoddev.lib.data.Names; -import com.mcmoddev.lib.entity.EntityCustomBolt; -import com.mcmoddev.lib.init.Materials; +import zone.moddev.mc.mmdlib.data.MaterialNames; +import zone.moddev.mc.mmdlib.data.Names; +import zone.moddev.mc.mmdlib.entity.EntityCustomBolt; +import zone.moddev.mc.mmdlib.init.Materials; import net.minecraft.enchantment.EnchantmentHelper; import net.minecraft.entity.EntityLivingBase; diff --git a/src/main/java/com/mcmoddev/lib/item/ItemMMDAnvilBlock.java b/src/main/java/zone/moddev/mc/mmdlib/item/ItemMMDAnvilBlock.java similarity index 73% rename from src/main/java/com/mcmoddev/lib/item/ItemMMDAnvilBlock.java rename to src/main/java/zone/moddev/mc/mmdlib/item/ItemMMDAnvilBlock.java index 5fa212b..3d6755c 100644 --- a/src/main/java/com/mcmoddev/lib/item/ItemMMDAnvilBlock.java +++ b/src/main/java/zone/moddev/mc/mmdlib/item/ItemMMDAnvilBlock.java @@ -1,17 +1,13 @@ -package com.mcmoddev.lib.item; +package zone.moddev.mc.mmdlib.item; -import com.mcmoddev.lib.data.Names; -import com.mcmoddev.lib.material.IMMDObject; -import com.mcmoddev.lib.material.MMDMaterial; +import zone.moddev.mc.mmdlib.data.Names; +import zone.moddev.mc.mmdlib.material.IMMDObject; +import zone.moddev.mc.mmdlib.material.MMDMaterial; public class ItemMMDAnvilBlock extends net.minecraft.item.ItemMultiTexture implements IMMDObject { private final MMDMaterial material; - /** - * - * @param material - */ public ItemMMDAnvilBlock(final MMDMaterial material) { super(material.getBlock(Names.ANVIL), material.getBlock(Names.ANVIL), new String[] { "intact", "slightlyDamaged", "veryDamaged" }); diff --git a/src/main/java/com/mcmoddev/lib/item/ItemMMDArmor.java b/src/main/java/zone/moddev/mc/mmdlib/item/ItemMMDArmor.java similarity index 92% rename from src/main/java/com/mcmoddev/lib/item/ItemMMDArmor.java rename to src/main/java/zone/moddev/mc/mmdlib/item/ItemMMDArmor.java index 66ec6a4..4c6c521 100644 --- a/src/main/java/com/mcmoddev/lib/item/ItemMMDArmor.java +++ b/src/main/java/zone/moddev/mc/mmdlib/item/ItemMMDArmor.java @@ -1,4 +1,4 @@ -package com.mcmoddev.lib.item; +package zone.moddev.mc.mmdlib.item; import java.util.HashMap; import java.util.List; @@ -8,13 +8,12 @@ import javax.annotation.Nonnull; -import com.mcmoddev.lib.MMDLib; -//TODO: Fix this cruftiness -//import com.mcmoddev.basemetals.items.MMDToolEffects; -import com.mcmoddev.lib.data.Names; -import com.mcmoddev.lib.init.Materials; -import com.mcmoddev.lib.material.IMMDObject; -import com.mcmoddev.lib.material.MMDMaterial; +import zone.moddev.mc.mmdlib.MMDLib; + +import zone.moddev.mc.mmdlib.data.Names; +import zone.moddev.mc.mmdlib.init.Materials; +import zone.moddev.mc.mmdlib.material.IMMDObject; +import zone.moddev.mc.mmdlib.material.MMDMaterial; import net.minecraft.client.util.ITooltipFlag; import net.minecraft.entity.Entity; @@ -66,12 +65,6 @@ public void onArmorTick(final World w, final EntityPlayer player, final ItemStac } } - /** - * - * @param material - * @param name - * @return - */ public static ItemMMDArmor createArmor(@Nonnull final MMDMaterial material, final Names name) { EntityEquipmentSlot slot = null; switch (name) { @@ -106,7 +99,7 @@ protected static ItemMMDArmor createArmorBase(@Nonnull final MMDMaterial materia final EntityEquipmentSlot slot) { final ArmorMaterial amaterial = Materials.getArmorMaterialFor(material); if (amaterial == null) { - // uh-oh + MMDLib.logger.error("Failed to load armor material enum for " + material); return null; } @@ -127,7 +120,7 @@ private Names getNameForPiece(ItemStack itemStack) { else if(itemStack.getItem() == this.mmdMaterial.getItem(Names.BOOTS)) return Names.BOOTS; else return null; } - + @Override public void addInformation(final ItemStack stack, final World worldIn, final List tooltip, final ITooltipFlag flagIn) { @@ -149,7 +142,7 @@ public void addInformation(final ItemStack stack, final World worldIn, */ public void extraEffectsOnCrafting(final ItemStack item, final World world, final EntityPlayer crafter) { - // + } /** diff --git a/src/main/java/com/mcmoddev/lib/item/ItemMMDArrow.java b/src/main/java/zone/moddev/mc/mmdlib/item/ItemMMDArrow.java similarity index 82% rename from src/main/java/com/mcmoddev/lib/item/ItemMMDArrow.java rename to src/main/java/zone/moddev/mc/mmdlib/item/ItemMMDArrow.java index 2b2c9db..5ff88a9 100644 --- a/src/main/java/com/mcmoddev/lib/item/ItemMMDArrow.java +++ b/src/main/java/zone/moddev/mc/mmdlib/item/ItemMMDArrow.java @@ -1,8 +1,8 @@ -package com.mcmoddev.lib.item; +package zone.moddev.mc.mmdlib.item; -import com.mcmoddev.lib.entity.EntityCustomArrow; -import com.mcmoddev.lib.material.IMMDObject; -import com.mcmoddev.lib.material.MMDMaterial; +import zone.moddev.mc.mmdlib.entity.EntityCustomArrow; +import zone.moddev.mc.mmdlib.material.IMMDObject; +import zone.moddev.mc.mmdlib.material.MMDMaterial; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; diff --git a/src/main/java/com/mcmoddev/lib/item/ItemMMDAxe.java b/src/main/java/zone/moddev/mc/mmdlib/item/ItemMMDAxe.java similarity index 88% rename from src/main/java/com/mcmoddev/lib/item/ItemMMDAxe.java rename to src/main/java/zone/moddev/mc/mmdlib/item/ItemMMDAxe.java index a2d33d2..30c9319 100644 --- a/src/main/java/com/mcmoddev/lib/item/ItemMMDAxe.java +++ b/src/main/java/zone/moddev/mc/mmdlib/item/ItemMMDAxe.java @@ -1,14 +1,12 @@ -package com.mcmoddev.lib.item; +package zone.moddev.mc.mmdlib.item; import java.util.List; -//TODO: Fix this cruft -//import com.mcmoddev.basemetals.items.MMDToolEffects; -import com.mcmoddev.lib.data.MaterialStats; -import com.mcmoddev.lib.data.Names; -import com.mcmoddev.lib.init.Materials; -import com.mcmoddev.lib.material.IMMDObject; -import com.mcmoddev.lib.material.MMDMaterial; +import zone.moddev.mc.mmdlib.data.MaterialStats; +import zone.moddev.mc.mmdlib.data.Names; +import zone.moddev.mc.mmdlib.init.Materials; +import zone.moddev.mc.mmdlib.material.IMMDObject; +import zone.moddev.mc.mmdlib.material.MMDMaterial; import net.minecraft.client.util.ITooltipFlag; import net.minecraft.entity.Entity; diff --git a/src/main/java/com/mcmoddev/lib/item/ItemMMDBlend.java b/src/main/java/zone/moddev/mc/mmdlib/item/ItemMMDBlend.java similarity index 74% rename from src/main/java/com/mcmoddev/lib/item/ItemMMDBlend.java rename to src/main/java/zone/moddev/mc/mmdlib/item/ItemMMDBlend.java index 2d1276a..abc5ee0 100644 --- a/src/main/java/com/mcmoddev/lib/item/ItemMMDBlend.java +++ b/src/main/java/zone/moddev/mc/mmdlib/item/ItemMMDBlend.java @@ -1,6 +1,6 @@ -package com.mcmoddev.lib.item; +package zone.moddev.mc.mmdlib.item; -import com.mcmoddev.lib.material.MMDMaterial; +import zone.moddev.mc.mmdlib.material.MMDMaterial; /** * Blends. diff --git a/src/main/java/com/mcmoddev/lib/item/ItemMMDBlock.java b/src/main/java/zone/moddev/mc/mmdlib/item/ItemMMDBlock.java old mode 100755 new mode 100644 similarity index 78% rename from src/main/java/com/mcmoddev/lib/item/ItemMMDBlock.java rename to src/main/java/zone/moddev/mc/mmdlib/item/ItemMMDBlock.java index 4b46765..c19ce17 --- a/src/main/java/com/mcmoddev/lib/item/ItemMMDBlock.java +++ b/src/main/java/zone/moddev/mc/mmdlib/item/ItemMMDBlock.java @@ -1,10 +1,10 @@ -package com.mcmoddev.lib.item; +package zone.moddev.mc.mmdlib.item; import javax.annotation.Nonnull; -import com.mcmoddev.lib.material.IMMDBurnableObject; -import com.mcmoddev.lib.material.IMMDObject; -import com.mcmoddev.lib.material.MMDMaterial; +import zone.moddev.mc.mmdlib.material.IMMDBurnableObject; +import zone.moddev.mc.mmdlib.material.IMMDObject; +import zone.moddev.mc.mmdlib.material.MMDMaterial; import net.minecraft.block.Block; import net.minecraft.item.ItemBlock; diff --git a/src/main/java/com/mcmoddev/lib/item/ItemMMDBolt.java b/src/main/java/zone/moddev/mc/mmdlib/item/ItemMMDBolt.java similarity index 82% rename from src/main/java/com/mcmoddev/lib/item/ItemMMDBolt.java rename to src/main/java/zone/moddev/mc/mmdlib/item/ItemMMDBolt.java index f18b110..4353103 100644 --- a/src/main/java/com/mcmoddev/lib/item/ItemMMDBolt.java +++ b/src/main/java/zone/moddev/mc/mmdlib/item/ItemMMDBolt.java @@ -1,8 +1,8 @@ -package com.mcmoddev.lib.item; +package zone.moddev.mc.mmdlib.item; -import com.mcmoddev.lib.entity.EntityCustomBolt; -import com.mcmoddev.lib.material.IMMDObject; -import com.mcmoddev.lib.material.MMDMaterial; +import zone.moddev.mc.mmdlib.entity.EntityCustomBolt; +import zone.moddev.mc.mmdlib.material.IMMDObject; +import zone.moddev.mc.mmdlib.material.MMDMaterial; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; diff --git a/src/main/java/com/mcmoddev/lib/item/ItemMMDBow.java b/src/main/java/zone/moddev/mc/mmdlib/item/ItemMMDBow.java similarity index 86% rename from src/main/java/com/mcmoddev/lib/item/ItemMMDBow.java rename to src/main/java/zone/moddev/mc/mmdlib/item/ItemMMDBow.java index af8d05d..1a324f0 100644 --- a/src/main/java/com/mcmoddev/lib/item/ItemMMDBow.java +++ b/src/main/java/zone/moddev/mc/mmdlib/item/ItemMMDBow.java @@ -1,11 +1,11 @@ -package com.mcmoddev.lib.item; +package zone.moddev.mc.mmdlib.item; import java.util.List; -import com.mcmoddev.lib.data.Names; -//import com.mcmoddev.basemetals.items.MMDToolEffects; -import com.mcmoddev.lib.material.IMMDObject; -import com.mcmoddev.lib.material.MMDMaterial; +import zone.moddev.mc.mmdlib.data.Names; + +import zone.moddev.mc.mmdlib.material.IMMDObject; +import zone.moddev.mc.mmdlib.material.MMDMaterial; import net.minecraft.client.util.ITooltipFlag; import net.minecraft.entity.Entity; diff --git a/src/main/java/com/mcmoddev/lib/item/ItemMMDCrackHammer.java b/src/main/java/zone/moddev/mc/mmdlib/item/ItemMMDCrackHammer.java similarity index 94% rename from src/main/java/com/mcmoddev/lib/item/ItemMMDCrackHammer.java rename to src/main/java/zone/moddev/mc/mmdlib/item/ItemMMDCrackHammer.java index 2e486c1..fdd6ab9 100644 --- a/src/main/java/com/mcmoddev/lib/item/ItemMMDCrackHammer.java +++ b/src/main/java/zone/moddev/mc/mmdlib/item/ItemMMDCrackHammer.java @@ -1,4 +1,4 @@ -package com.mcmoddev.lib.item; +package zone.moddev.mc.mmdlib.item; import java.util.HashSet; import java.util.List; @@ -7,14 +7,13 @@ import javax.annotation.Nullable; -//import com.mcmoddev.basemetals.items.MMDToolEffects; -import com.mcmoddev.lib.data.Names; -import com.mcmoddev.lib.init.Materials; -import com.mcmoddev.lib.material.IMMDObject; -import com.mcmoddev.lib.material.MMDMaterial; -import com.mcmoddev.lib.registry.CrusherRecipeRegistry; -import com.mcmoddev.lib.registry.recipe.ICrusherRecipe; -import com.mcmoddev.lib.util.Config.Options; +import zone.moddev.mc.mmdlib.data.Names; +import zone.moddev.mc.mmdlib.init.Materials; +import zone.moddev.mc.mmdlib.material.IMMDObject; +import zone.moddev.mc.mmdlib.material.MMDMaterial; +import zone.moddev.mc.mmdlib.registry.CrusherRecipeRegistry; +import zone.moddev.mc.mmdlib.registry.recipe.ICrusherRecipe; +import zone.moddev.mc.mmdlib.util.Config.Options; import net.minecraft.block.Block; import net.minecraft.block.material.Material; @@ -103,7 +102,7 @@ public EnumActionResult onItemUse(final EntityPlayer player, final World w, if (facing != EnumFacing.UP) { return EnumActionResult.PASS; } - /* List entities = */ + final AxisAlignedBB boundingBox = new AxisAlignedBB(coord.getX(), coord.getY() + 1, coord.getZ(), coord.getX() + 1, coord.getY() + 2, coord.getZ() + 1); final List entities = w.getEntitiesWithinAABB(EntityItem.class, boundingBox) @@ -145,7 +144,7 @@ private void maybeDoCrack(final ICrusherRecipe recipe, final ItemStack targetIte this.spawnResults(output, x, y, z, crackedCount, w); item.damageItem(crackedCount, player); - // if the items damage is maxed, lets increase it anyway and put it out of its misery + // Break the hammer once its durability is exhausted. if (item.getMaxDamage() == item.getItemDamage()) { item.damageItem(1, player); } @@ -297,7 +296,7 @@ public boolean canHarvestBlock(final IBlockState targetBS) { // can be dug with wooden shovel return true; } - // return true if block doesn't need tools + return target.getHarvestLevel(target.getDefaultState()) == -1; } diff --git a/src/main/java/com/mcmoddev/lib/item/ItemMMDCrossbow.java b/src/main/java/zone/moddev/mc/mmdlib/item/ItemMMDCrossbow.java similarity index 86% rename from src/main/java/com/mcmoddev/lib/item/ItemMMDCrossbow.java rename to src/main/java/zone/moddev/mc/mmdlib/item/ItemMMDCrossbow.java index 67e832d..5cf4243 100644 --- a/src/main/java/com/mcmoddev/lib/item/ItemMMDCrossbow.java +++ b/src/main/java/zone/moddev/mc/mmdlib/item/ItemMMDCrossbow.java @@ -1,11 +1,11 @@ -package com.mcmoddev.lib.item; +package zone.moddev.mc.mmdlib.item; import java.util.List; -import com.mcmoddev.lib.data.Names; -//import com.mcmoddev.basemetals.items.MMDToolEffects; -import com.mcmoddev.lib.material.IMMDObject; -import com.mcmoddev.lib.material.MMDMaterial; +import zone.moddev.mc.mmdlib.data.Names; + +import zone.moddev.mc.mmdlib.material.IMMDObject; +import zone.moddev.mc.mmdlib.material.MMDMaterial; import net.minecraft.client.util.ITooltipFlag; import net.minecraft.entity.Entity; diff --git a/src/main/java/com/mcmoddev/lib/item/ItemMMDDoor.java b/src/main/java/zone/moddev/mc/mmdlib/item/ItemMMDDoor.java similarity index 80% rename from src/main/java/com/mcmoddev/lib/item/ItemMMDDoor.java rename to src/main/java/zone/moddev/mc/mmdlib/item/ItemMMDDoor.java index 191f3fe..871189b 100644 --- a/src/main/java/com/mcmoddev/lib/item/ItemMMDDoor.java +++ b/src/main/java/zone/moddev/mc/mmdlib/item/ItemMMDDoor.java @@ -1,9 +1,9 @@ -package com.mcmoddev.lib.item; +package zone.moddev.mc.mmdlib.item; -import com.mcmoddev.lib.data.Names; -import com.mcmoddev.lib.material.IMMDObject; -import com.mcmoddev.lib.material.MMDMaterial; -import com.mcmoddev.lib.material.MMDMaterialType.MaterialType; +import zone.moddev.mc.mmdlib.data.Names; +import zone.moddev.mc.mmdlib.material.IMMDObject; +import zone.moddev.mc.mmdlib.material.MMDMaterial; +import zone.moddev.mc.mmdlib.material.MMDMaterialType.MaterialType; import net.minecraft.block.BlockDoor; import net.minecraft.item.ItemStack; diff --git a/src/main/java/com/mcmoddev/lib/item/ItemMMDFishingRod.java b/src/main/java/zone/moddev/mc/mmdlib/item/ItemMMDFishingRod.java similarity index 86% rename from src/main/java/com/mcmoddev/lib/item/ItemMMDFishingRod.java rename to src/main/java/zone/moddev/mc/mmdlib/item/ItemMMDFishingRod.java index 4b90e0b..015d3ec 100644 --- a/src/main/java/com/mcmoddev/lib/item/ItemMMDFishingRod.java +++ b/src/main/java/zone/moddev/mc/mmdlib/item/ItemMMDFishingRod.java @@ -1,11 +1,11 @@ -package com.mcmoddev.lib.item; +package zone.moddev.mc.mmdlib.item; import java.util.List; -import com.mcmoddev.lib.data.Names; -//import com.mcmoddev.basemetals.items.MMDToolEffects; -import com.mcmoddev.lib.material.IMMDObject; -import com.mcmoddev.lib.material.MMDMaterial; +import zone.moddev.mc.mmdlib.data.Names; + +import zone.moddev.mc.mmdlib.material.IMMDObject; +import zone.moddev.mc.mmdlib.material.MMDMaterial; import net.minecraft.client.util.ITooltipFlag; import net.minecraft.entity.Entity; diff --git a/src/main/java/com/mcmoddev/lib/item/ItemMMDGear.java b/src/main/java/zone/moddev/mc/mmdlib/item/ItemMMDGear.java similarity index 78% rename from src/main/java/com/mcmoddev/lib/item/ItemMMDGear.java rename to src/main/java/zone/moddev/mc/mmdlib/item/ItemMMDGear.java index 483da08..33f98d4 100644 --- a/src/main/java/com/mcmoddev/lib/item/ItemMMDGear.java +++ b/src/main/java/zone/moddev/mc/mmdlib/item/ItemMMDGear.java @@ -1,7 +1,7 @@ -package com.mcmoddev.lib.item; +package zone.moddev.mc.mmdlib.item; -import com.mcmoddev.lib.material.MMDMaterial; -import com.mcmoddev.lib.material.MMDMaterialType.MaterialType; +import zone.moddev.mc.mmdlib.material.MMDMaterial; +import zone.moddev.mc.mmdlib.material.MMDMaterialType.MaterialType; /** * Gears. diff --git a/src/main/java/com/mcmoddev/lib/item/ItemMMDHoe.java b/src/main/java/zone/moddev/mc/mmdlib/item/ItemMMDHoe.java similarity index 92% rename from src/main/java/com/mcmoddev/lib/item/ItemMMDHoe.java rename to src/main/java/zone/moddev/mc/mmdlib/item/ItemMMDHoe.java index 5e12214..633bae0 100644 --- a/src/main/java/com/mcmoddev/lib/item/ItemMMDHoe.java +++ b/src/main/java/zone/moddev/mc/mmdlib/item/ItemMMDHoe.java @@ -1,4 +1,4 @@ -package com.mcmoddev.lib.item; +package zone.moddev.mc.mmdlib.item; import java.util.HashSet; import java.util.List; @@ -6,11 +6,10 @@ import javax.annotation.Nullable; -//import com.mcmoddev.basemetals.items.MMDToolEffects; -import com.mcmoddev.lib.data.Names; -import com.mcmoddev.lib.init.Materials; -import com.mcmoddev.lib.material.IMMDObject; -import com.mcmoddev.lib.material.MMDMaterial; +import zone.moddev.mc.mmdlib.data.Names; +import zone.moddev.mc.mmdlib.init.Materials; +import zone.moddev.mc.mmdlib.material.IMMDObject; +import zone.moddev.mc.mmdlib.material.MMDMaterial; import net.minecraft.block.state.IBlockState; import net.minecraft.client.util.ITooltipFlag; diff --git a/src/main/java/com/mcmoddev/lib/item/ItemMMDHorseArmor.java b/src/main/java/zone/moddev/mc/mmdlib/item/ItemMMDHorseArmor.java similarity index 80% rename from src/main/java/com/mcmoddev/lib/item/ItemMMDHorseArmor.java rename to src/main/java/zone/moddev/mc/mmdlib/item/ItemMMDHorseArmor.java index fa13fba..3439660 100644 --- a/src/main/java/com/mcmoddev/lib/item/ItemMMDHorseArmor.java +++ b/src/main/java/zone/moddev/mc/mmdlib/item/ItemMMDHorseArmor.java @@ -1,13 +1,13 @@ -package com.mcmoddev.lib.item; +package zone.moddev.mc.mmdlib.item; import java.util.Locale; import javax.annotation.Nullable; -import com.mcmoddev.lib.MMDLib; -//import com.mcmoddev.basemetals.BaseMetals; -import com.mcmoddev.lib.common.item.IHorseArmor; -import com.mcmoddev.lib.material.MMDMaterial; +import zone.moddev.mc.mmdlib.MMDLib; + +import zone.moddev.mc.mmdlib.common.item.IHorseArmor; +import zone.moddev.mc.mmdlib.material.MMDMaterial; import net.minecraft.entity.EntityLiving; import net.minecraft.entity.passive.HorseArmorType; @@ -23,10 +23,6 @@ public class ItemMMDHorseArmor extends GenericMMDItem implements IHorseArmor { private final HorseArmorType myArmorType; - /** - * - * @param material - */ public ItemMMDHorseArmor(final MMDMaterial material) { super(material); this.setMaxStackSize(1); @@ -35,8 +31,8 @@ public ItemMMDHorseArmor(final MMDMaterial material) { @Override public HorseArmorType getHorseArmorType(@Nullable final ItemStack stack) { - if ((stack != null) && (stack.getItem() != this)) { // NB stack CAN be null, when our ASM - // does it + if ((stack != null) && (stack.getItem() != this)) { // Legacy horse-armor callers may pass a null stack. + return HorseArmorType.NONE; } return this.myArmorType; diff --git a/src/main/java/com/mcmoddev/lib/item/ItemMMDIngot.java b/src/main/java/zone/moddev/mc/mmdlib/item/ItemMMDIngot.java similarity index 74% rename from src/main/java/com/mcmoddev/lib/item/ItemMMDIngot.java rename to src/main/java/zone/moddev/mc/mmdlib/item/ItemMMDIngot.java index c8ce815..d4af9ec 100644 --- a/src/main/java/com/mcmoddev/lib/item/ItemMMDIngot.java +++ b/src/main/java/zone/moddev/mc/mmdlib/item/ItemMMDIngot.java @@ -1,6 +1,6 @@ -package com.mcmoddev.lib.item; +package zone.moddev.mc.mmdlib.item; -import com.mcmoddev.lib.material.MMDMaterial; +import zone.moddev.mc.mmdlib.material.MMDMaterial; /** * Ingots. diff --git a/src/main/java/com/mcmoddev/lib/item/ItemMMDNugget.java b/src/main/java/zone/moddev/mc/mmdlib/item/ItemMMDNugget.java similarity index 75% rename from src/main/java/com/mcmoddev/lib/item/ItemMMDNugget.java rename to src/main/java/zone/moddev/mc/mmdlib/item/ItemMMDNugget.java index f4b1349..efd44bf 100644 --- a/src/main/java/com/mcmoddev/lib/item/ItemMMDNugget.java +++ b/src/main/java/zone/moddev/mc/mmdlib/item/ItemMMDNugget.java @@ -1,6 +1,6 @@ -package com.mcmoddev.lib.item; +package zone.moddev.mc.mmdlib.item; -import com.mcmoddev.lib.material.MMDMaterial; +import zone.moddev.mc.mmdlib.material.MMDMaterial; /** * Nuggets. diff --git a/src/main/java/com/mcmoddev/lib/item/ItemMMDPickaxe.java b/src/main/java/zone/moddev/mc/mmdlib/item/ItemMMDPickaxe.java similarity index 92% rename from src/main/java/com/mcmoddev/lib/item/ItemMMDPickaxe.java rename to src/main/java/zone/moddev/mc/mmdlib/item/ItemMMDPickaxe.java index fd99ffa..52ad7d8 100644 --- a/src/main/java/com/mcmoddev/lib/item/ItemMMDPickaxe.java +++ b/src/main/java/zone/moddev/mc/mmdlib/item/ItemMMDPickaxe.java @@ -1,13 +1,13 @@ -package com.mcmoddev.lib.item; +package zone.moddev.mc.mmdlib.item; import java.util.HashSet; import java.util.List; import java.util.Set; -import com.mcmoddev.lib.data.Names; -import com.mcmoddev.lib.init.Materials; -import com.mcmoddev.lib.material.IMMDObject; -import com.mcmoddev.lib.material.MMDMaterial; +import zone.moddev.mc.mmdlib.data.Names; +import zone.moddev.mc.mmdlib.init.Materials; +import zone.moddev.mc.mmdlib.material.IMMDObject; +import zone.moddev.mc.mmdlib.material.MMDMaterial; import net.minecraft.block.state.IBlockState; import net.minecraft.client.util.ITooltipFlag; @@ -99,7 +99,7 @@ public void addInformation(final ItemStack stack, final World worldIn, if(!tt.isEmpty()) tooltip.addAll(tt); } - + @Override public MMDMaterial getMMDMaterial() { return this.material; diff --git a/src/main/java/com/mcmoddev/lib/item/ItemMMDPowder.java b/src/main/java/zone/moddev/mc/mmdlib/item/ItemMMDPowder.java similarity index 75% rename from src/main/java/com/mcmoddev/lib/item/ItemMMDPowder.java rename to src/main/java/zone/moddev/mc/mmdlib/item/ItemMMDPowder.java index 04cdc65..6062dc3 100644 --- a/src/main/java/com/mcmoddev/lib/item/ItemMMDPowder.java +++ b/src/main/java/zone/moddev/mc/mmdlib/item/ItemMMDPowder.java @@ -1,6 +1,6 @@ -package com.mcmoddev.lib.item; +package zone.moddev.mc.mmdlib.item; -import com.mcmoddev.lib.material.MMDMaterial; +import zone.moddev.mc.mmdlib.material.MMDMaterial; /** * Powders. diff --git a/src/main/java/com/mcmoddev/lib/item/ItemMMDRod.java b/src/main/java/zone/moddev/mc/mmdlib/item/ItemMMDRod.java similarity index 74% rename from src/main/java/com/mcmoddev/lib/item/ItemMMDRod.java rename to src/main/java/zone/moddev/mc/mmdlib/item/ItemMMDRod.java index 9a79029..775f766 100644 --- a/src/main/java/com/mcmoddev/lib/item/ItemMMDRod.java +++ b/src/main/java/zone/moddev/mc/mmdlib/item/ItemMMDRod.java @@ -1,6 +1,6 @@ -package com.mcmoddev.lib.item; +package zone.moddev.mc.mmdlib.item; -import com.mcmoddev.lib.material.MMDMaterial; +import zone.moddev.mc.mmdlib.material.MMDMaterial; /** * Rods. diff --git a/src/main/java/com/mcmoddev/lib/item/ItemMMDShears.java b/src/main/java/zone/moddev/mc/mmdlib/item/ItemMMDShears.java similarity index 86% rename from src/main/java/com/mcmoddev/lib/item/ItemMMDShears.java rename to src/main/java/zone/moddev/mc/mmdlib/item/ItemMMDShears.java index f87f753..caa2804 100644 --- a/src/main/java/com/mcmoddev/lib/item/ItemMMDShears.java +++ b/src/main/java/zone/moddev/mc/mmdlib/item/ItemMMDShears.java @@ -1,11 +1,11 @@ -package com.mcmoddev.lib.item; +package zone.moddev.mc.mmdlib.item; import java.util.List; -import com.mcmoddev.lib.data.Names; -//import com.mcmoddev.basemetals.items.MMDToolEffects; -import com.mcmoddev.lib.material.IMMDObject; -import com.mcmoddev.lib.material.MMDMaterial; +import zone.moddev.mc.mmdlib.data.Names; + +import zone.moddev.mc.mmdlib.material.IMMDObject; +import zone.moddev.mc.mmdlib.material.MMDMaterial; import net.minecraft.client.util.ITooltipFlag; import net.minecraft.entity.Entity; diff --git a/src/main/java/com/mcmoddev/lib/item/ItemMMDShield.java b/src/main/java/zone/moddev/mc/mmdlib/item/ItemMMDShield.java similarity index 68% rename from src/main/java/com/mcmoddev/lib/item/ItemMMDShield.java rename to src/main/java/zone/moddev/mc/mmdlib/item/ItemMMDShield.java index ae7bf34..8981edf 100644 --- a/src/main/java/com/mcmoddev/lib/item/ItemMMDShield.java +++ b/src/main/java/zone/moddev/mc/mmdlib/item/ItemMMDShield.java @@ -1,16 +1,15 @@ -package com.mcmoddev.lib.item; +package zone.moddev.mc.mmdlib.item; import java.util.List; -import com.mcmoddev.lib.data.MaterialStats; -import com.mcmoddev.lib.data.Names; -import com.mcmoddev.lib.material.IMMDObject; -import com.mcmoddev.lib.material.MMDMaterial; +import zone.moddev.mc.mmdlib.data.MaterialStats; +import zone.moddev.mc.mmdlib.data.Names; +import zone.moddev.mc.mmdlib.material.IMMDObject; +import zone.moddev.mc.mmdlib.material.MMDMaterial; import net.minecraft.client.util.ITooltipFlag; import net.minecraft.entity.Entity; import net.minecraft.item.ItemStack; -//import net.minecraft.util.text.translation.I18n; -//import net.minecraft.util.text.TextComponentTranslation; + import net.minecraft.world.World; /** @@ -18,7 +17,7 @@ * @author Jasmine Iwanek * */ -//@SuppressWarnings("deprecation") + public class ItemMMDShield extends net.minecraft.item.ItemShield implements IMMDObject { private final MMDMaterial material; @@ -52,13 +51,6 @@ public boolean getIsRepairable(final ItemStack toRepair, final ItemStack repairM return MMDItemHelper.isToolRepairable(repairMaterial, this.material.getCapitalizedName()); } - /* - * @Override public String getItemStackDisplayName(final ItemStack stack) { - * final String name = String.format("%s.name", this.getTranslationKey()); - * com.mcmoddev.lib.MMDLib.logger. - * fatal("ItemMMDShield.getItemStackDisplayName() -> {}", name); return - * I18n.translateToLocal(name); } - */ @Override public void addInformation(final ItemStack stack, final World worldIn, final List tooltip, final ITooltipFlag flagIn) { @@ -66,5 +58,5 @@ public void addInformation(final ItemStack stack, final World worldIn, if(!tt.isEmpty()) tooltip.addAll(tt); } - + } diff --git a/src/main/java/com/mcmoddev/lib/item/ItemMMDShovel.java b/src/main/java/zone/moddev/mc/mmdlib/item/ItemMMDShovel.java similarity index 90% rename from src/main/java/com/mcmoddev/lib/item/ItemMMDShovel.java rename to src/main/java/zone/moddev/mc/mmdlib/item/ItemMMDShovel.java index 5cac006..691b678 100644 --- a/src/main/java/com/mcmoddev/lib/item/ItemMMDShovel.java +++ b/src/main/java/zone/moddev/mc/mmdlib/item/ItemMMDShovel.java @@ -1,12 +1,12 @@ -package com.mcmoddev.lib.item; +package zone.moddev.mc.mmdlib.item; import java.util.List; -import com.mcmoddev.lib.data.Names; -//import com.mcmoddev.basemetals.items.MMDToolEffects; -import com.mcmoddev.lib.init.Materials; -import com.mcmoddev.lib.material.IMMDObject; -import com.mcmoddev.lib.material.MMDMaterial; +import zone.moddev.mc.mmdlib.data.Names; + +import zone.moddev.mc.mmdlib.init.Materials; +import zone.moddev.mc.mmdlib.material.IMMDObject; +import zone.moddev.mc.mmdlib.material.MMDMaterial; import net.minecraft.client.util.ITooltipFlag; import net.minecraft.entity.Entity; diff --git a/src/main/java/com/mcmoddev/lib/item/ItemMMDSickle.java b/src/main/java/zone/moddev/mc/mmdlib/item/ItemMMDSickle.java similarity index 94% rename from src/main/java/com/mcmoddev/lib/item/ItemMMDSickle.java rename to src/main/java/zone/moddev/mc/mmdlib/item/ItemMMDSickle.java index 67e0b5a..df891af 100644 --- a/src/main/java/com/mcmoddev/lib/item/ItemMMDSickle.java +++ b/src/main/java/zone/moddev/mc/mmdlib/item/ItemMMDSickle.java @@ -1,4 +1,4 @@ -package com.mcmoddev.lib.item; +package zone.moddev.mc.mmdlib.item; import java.util.List; import java.util.Set; @@ -9,11 +9,11 @@ import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableSet; import com.google.common.collect.Multimap; -import com.mcmoddev.lib.MMDLib; -import com.mcmoddev.lib.data.Names; -import com.mcmoddev.lib.init.Materials; -import com.mcmoddev.lib.material.IMMDObject; -import com.mcmoddev.lib.material.MMDMaterial; +import zone.moddev.mc.mmdlib.MMDLib; +import zone.moddev.mc.mmdlib.data.Names; +import zone.moddev.mc.mmdlib.init.Materials; +import zone.moddev.mc.mmdlib.material.IMMDObject; +import zone.moddev.mc.mmdlib.material.MMDMaterial; import net.minecraft.block.Block; import net.minecraft.block.material.Material; @@ -48,10 +48,6 @@ public class ItemMMDSickle extends ItemTool implements IMMDObject { private final MMDMaterial material; private final int actionDiameter; - /** - * - * @param material - */ public ItemMMDSickle(final MMDMaterial material) { super(Materials.getToolMaterialFor(material), null); this.efficiency = material.getToolEfficiency(); @@ -134,8 +130,8 @@ private void breakBlock(final ItemStack tool, final World world, final EntityPla tool.onBlockDestroyed(world, bsatapos, actualPosition, player); - // tool should be, mostly, equal to what the player is holding... Maybe literal - // equality is needed, dunno + // Use the supplied tool for harvesting and durability updates. + if ((tool.getCount() == 0) && tool.equals(player.getHeldItemMainhand())) { ForgeEventFactory.onPlayerDestroyItem(player, tool, EnumHand.MAIN_HAND); player.setHeldItem(EnumHand.MAIN_HAND, ItemStack.EMPTY); @@ -168,7 +164,7 @@ private static boolean isToolEffective(final ItemStack stack, final IBlockState final List isEffective = stack.getItem().getToolClasses(stack).stream() .map(type -> state.getBlock().isToolEffective(type, state)) .collect(Collectors.toList()); - // return true if the list we've generated contains a true + stack.getItem().getToolClasses(stack).forEach(MMDLib.logger::fatal); isEffective.forEach(b -> MMDLib.logger.debug("%s", b)); return isEffective.contains(true); @@ -214,8 +210,8 @@ public Multimap getItemAttributeModifiers( final EntityEquipmentSlot equipmentSlot) { final Multimap multimap = super.getItemAttributeModifiers(equipmentSlot); - // XXX: We drop the returns in booleans because it makes findbugs happy, maybe we should do - // something with them? + // Individual harvest results do not change the area-harvest result. + if (equipmentSlot == EntityEquipmentSlot.MAINHAND) { final boolean attackDamageReturned = multimap .put(SharedMonsterAttributes.ATTACK_DAMAGE.getName(), new AttributeModifier( @@ -258,7 +254,7 @@ public void onUpdate(final ItemStack item, final World world, final Entity playe final int inventoryIndex, final boolean isHeld) { MMDItemHelper.doRegeneration(item, world, isHeld, this.material.regenerates()); } - + @Override public boolean hitEntity(final ItemStack item, final EntityLivingBase target, final EntityLivingBase attacker) { @@ -276,7 +272,7 @@ public void onCreated(final ItemStack item, final World world, final EntityPlaye this.getMMDMaterial().applyEffect(item, crafter); } } - + @Override public void addInformation(final ItemStack stack, final World worldIn, final List tooltip, final ITooltipFlag flagIn) { diff --git a/src/main/java/com/mcmoddev/lib/item/ItemMMDSlab.java b/src/main/java/zone/moddev/mc/mmdlib/item/ItemMMDSlab.java similarity index 78% rename from src/main/java/com/mcmoddev/lib/item/ItemMMDSlab.java rename to src/main/java/zone/moddev/mc/mmdlib/item/ItemMMDSlab.java index 6825578..72c3aaa 100644 --- a/src/main/java/com/mcmoddev/lib/item/ItemMMDSlab.java +++ b/src/main/java/zone/moddev/mc/mmdlib/item/ItemMMDSlab.java @@ -1,8 +1,8 @@ -package com.mcmoddev.lib.item; +package zone.moddev.mc.mmdlib.item; -import com.mcmoddev.lib.data.Names; -import com.mcmoddev.lib.material.IMMDObject; -import com.mcmoddev.lib.material.MMDMaterial; +import zone.moddev.mc.mmdlib.data.Names; +import zone.moddev.mc.mmdlib.material.IMMDObject; +import zone.moddev.mc.mmdlib.material.MMDMaterial; import net.minecraft.block.BlockSlab; diff --git a/src/main/java/com/mcmoddev/lib/item/ItemMMDSmallBlend.java b/src/main/java/zone/moddev/mc/mmdlib/item/ItemMMDSmallBlend.java similarity index 75% rename from src/main/java/com/mcmoddev/lib/item/ItemMMDSmallBlend.java rename to src/main/java/zone/moddev/mc/mmdlib/item/ItemMMDSmallBlend.java index b66def7..4ce09d6 100644 --- a/src/main/java/com/mcmoddev/lib/item/ItemMMDSmallBlend.java +++ b/src/main/java/zone/moddev/mc/mmdlib/item/ItemMMDSmallBlend.java @@ -1,6 +1,6 @@ -package com.mcmoddev.lib.item; +package zone.moddev.mc.mmdlib.item; -import com.mcmoddev.lib.material.MMDMaterial; +import zone.moddev.mc.mmdlib.material.MMDMaterial; /** * diff --git a/src/main/java/com/mcmoddev/lib/item/ItemMMDSmallPowder.java b/src/main/java/zone/moddev/mc/mmdlib/item/ItemMMDSmallPowder.java similarity index 75% rename from src/main/java/com/mcmoddev/lib/item/ItemMMDSmallPowder.java rename to src/main/java/zone/moddev/mc/mmdlib/item/ItemMMDSmallPowder.java index 22ee326..4cd2049 100644 --- a/src/main/java/com/mcmoddev/lib/item/ItemMMDSmallPowder.java +++ b/src/main/java/zone/moddev/mc/mmdlib/item/ItemMMDSmallPowder.java @@ -1,6 +1,6 @@ -package com.mcmoddev.lib.item; +package zone.moddev.mc.mmdlib.item; -import com.mcmoddev.lib.material.MMDMaterial; +import zone.moddev.mc.mmdlib.material.MMDMaterial; /** * diff --git a/src/main/java/com/mcmoddev/lib/item/ItemMMDSword.java b/src/main/java/zone/moddev/mc/mmdlib/item/ItemMMDSword.java similarity index 88% rename from src/main/java/com/mcmoddev/lib/item/ItemMMDSword.java rename to src/main/java/zone/moddev/mc/mmdlib/item/ItemMMDSword.java index 39d07e9..6f14bb0 100644 --- a/src/main/java/com/mcmoddev/lib/item/ItemMMDSword.java +++ b/src/main/java/zone/moddev/mc/mmdlib/item/ItemMMDSword.java @@ -1,12 +1,12 @@ -package com.mcmoddev.lib.item; +package zone.moddev.mc.mmdlib.item; import java.util.List; -import com.mcmoddev.lib.data.Names; -//import com.mcmoddev.basemetals.items.MMDToolEffects; -import com.mcmoddev.lib.init.Materials; -import com.mcmoddev.lib.material.IMMDObject; -import com.mcmoddev.lib.material.MMDMaterial; +import zone.moddev.mc.mmdlib.data.Names; + +import zone.moddev.mc.mmdlib.init.Materials; +import zone.moddev.mc.mmdlib.material.IMMDObject; +import zone.moddev.mc.mmdlib.material.MMDMaterial; import net.minecraft.block.state.IBlockState; import net.minecraft.client.util.ITooltipFlag; @@ -37,8 +37,7 @@ public ItemMMDSword(final MMDMaterial material) { super(Materials.getToolMaterialFor(material)); this.material = material; this.setMaxDamage(this.material.getToolDurability()); - // this.damageVsEntity = attackDamage + material.getBaseAttackDamage(); // damageVsEntity is - // private, sadly + this.attackDamage = 3F + this.material.getBaseAttackDamage(); } @@ -79,7 +78,6 @@ public void onCreated(final ItemStack item, final World world, final EntityPlaye } } - @Override public void onUpdate(final ItemStack item, final World world, final Entity player, final int inventoryIndex, final boolean isHeld) { diff --git a/src/main/java/com/mcmoddev/lib/item/MMDContainerRepair.java b/src/main/java/zone/moddev/mc/mmdlib/item/MMDContainerRepair.java similarity index 81% rename from src/main/java/com/mcmoddev/lib/item/MMDContainerRepair.java rename to src/main/java/zone/moddev/mc/mmdlib/item/MMDContainerRepair.java index ed4474c..21c511d 100644 --- a/src/main/java/com/mcmoddev/lib/item/MMDContainerRepair.java +++ b/src/main/java/zone/moddev/mc/mmdlib/item/MMDContainerRepair.java @@ -1,6 +1,6 @@ -package com.mcmoddev.lib.item; +package zone.moddev.mc.mmdlib.item; -import com.mcmoddev.lib.block.BlockMMDAnvil; +import zone.moddev.mc.mmdlib.block.BlockMMDAnvil; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.InventoryPlayer; @@ -13,12 +13,6 @@ public class MMDContainerRepair extends ContainerRepair { private final BlockPos myPos; private final World myWorld; - /** - * - * @param playerInventory - * @param worldIn - * @param player - */ public MMDContainerRepair(final InventoryPlayer playerInventory, final World worldIn, final EntityPlayer player) { super(playerInventory, worldIn, player); @@ -26,13 +20,6 @@ public MMDContainerRepair(final InventoryPlayer playerInventory, final World wor this.myWorld = worldIn; } - /** - * - * @param playerInventory - * @param worldIn - * @param blockPosIn - * @param player - */ public MMDContainerRepair(final InventoryPlayer playerInventory, final World worldIn, final BlockPos blockPosIn, final EntityPlayer player) { super(playerInventory, worldIn, blockPosIn, player); diff --git a/src/main/java/com/mcmoddev/lib/item/MMDItemHelper.java b/src/main/java/zone/moddev/mc/mmdlib/item/MMDItemHelper.java similarity index 81% rename from src/main/java/com/mcmoddev/lib/item/MMDItemHelper.java rename to src/main/java/zone/moddev/mc/mmdlib/item/MMDItemHelper.java index a7fa56b..947099d 100644 --- a/src/main/java/com/mcmoddev/lib/item/MMDItemHelper.java +++ b/src/main/java/zone/moddev/mc/mmdlib/item/MMDItemHelper.java @@ -1,27 +1,14 @@ -package com.mcmoddev.lib.item; +package zone.moddev.mc.mmdlib.item; import java.util.List; -import com.mcmoddev.lib.data.SharedStrings; -import com.mcmoddev.lib.util.Oredicts; +import zone.moddev.mc.mmdlib.data.SharedStrings; +import zone.moddev.mc.mmdlib.util.Oredicts; import net.minecraft.item.ItemStack; import net.minecraft.world.World; import net.minecraftforge.oredict.OreDictionary; -// ItemMMDArmor (Not doRegeneration) -// ItemMMDAxe -// ItemMMDBow -// ItemMMDCrackhammer -// ItemMMDCrossbow -// ItemMMDFishingRod -// ItemMMDHoe -// ItemMMDPickaxe -// ItemMMDShears -// ItemMMDShield -// ItemMMDShovel -// ItemMMDSickle -// ItemMMDSword public class MMDItemHelper { protected MMDItemHelper() { diff --git a/src/main/java/com/mcmoddev/lib/item/MMDItemWithGui.java b/src/main/java/zone/moddev/mc/mmdlib/item/MMDItemWithGui.java similarity index 93% rename from src/main/java/com/mcmoddev/lib/item/MMDItemWithGui.java rename to src/main/java/zone/moddev/mc/mmdlib/item/MMDItemWithGui.java index b1b5ae7..f20dc8b 100644 --- a/src/main/java/com/mcmoddev/lib/item/MMDItemWithGui.java +++ b/src/main/java/zone/moddev/mc/mmdlib/item/MMDItemWithGui.java @@ -1,8 +1,8 @@ -package com.mcmoddev.lib.item; +package zone.moddev.mc.mmdlib.item; import javax.annotation.Nonnull; import javax.annotation.ParametersAreNonnullByDefault; -import com.mcmoddev.lib.util.ItemGuiUtils; +import zone.moddev.mc.mmdlib.util.ItemGuiUtils; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; diff --git a/src/main/java/com/mcmoddev/lib/data/package-info.java b/src/main/java/zone/moddev/mc/mmdlib/item/package-info.java similarity index 70% rename from src/main/java/com/mcmoddev/lib/data/package-info.java rename to src/main/java/zone/moddev/mc/mmdlib/item/package-info.java index 007db4f..1d4bc2a 100644 --- a/src/main/java/com/mcmoddev/lib/data/package-info.java +++ b/src/main/java/zone/moddev/mc/mmdlib/item/package-info.java @@ -1,4 +1,4 @@ @ParametersAreNonnullByDefault -package com.mcmoddev.lib.data; +package zone.moddev.mc.mmdlib.item; import javax.annotation.ParametersAreNonnullByDefault; diff --git a/src/main/java/com/mcmoddev/lib/material/IFluidBlockGetter.java b/src/main/java/zone/moddev/mc/mmdlib/material/IFluidBlockGetter.java old mode 100755 new mode 100644 similarity index 84% rename from src/main/java/com/mcmoddev/lib/material/IFluidBlockGetter.java rename to src/main/java/zone/moddev/mc/mmdlib/material/IFluidBlockGetter.java index 2ba3d06..6e57906 --- a/src/main/java/com/mcmoddev/lib/material/IFluidBlockGetter.java +++ b/src/main/java/zone/moddev/mc/mmdlib/material/IFluidBlockGetter.java @@ -1,4 +1,4 @@ -package com.mcmoddev.lib.material; +package zone.moddev.mc.mmdlib.material; import java.util.function.Function; diff --git a/src/main/java/com/mcmoddev/lib/material/IMMDBurnableObject.java b/src/main/java/zone/moddev/mc/mmdlib/material/IMMDBurnableObject.java similarity index 85% rename from src/main/java/com/mcmoddev/lib/material/IMMDBurnableObject.java rename to src/main/java/zone/moddev/mc/mmdlib/material/IMMDBurnableObject.java index ab4f895..d57eef8 100644 --- a/src/main/java/com/mcmoddev/lib/material/IMMDBurnableObject.java +++ b/src/main/java/zone/moddev/mc/mmdlib/material/IMMDBurnableObject.java @@ -1,4 +1,4 @@ -package com.mcmoddev.lib.material; +package zone.moddev.mc.mmdlib.material; import javax.annotation.Nonnull; diff --git a/src/main/java/com/mcmoddev/lib/material/IMMDObject.java b/src/main/java/zone/moddev/mc/mmdlib/material/IMMDObject.java similarity index 78% rename from src/main/java/com/mcmoddev/lib/material/IMMDObject.java rename to src/main/java/zone/moddev/mc/mmdlib/material/IMMDObject.java index 1be2191..5bc50ac 100644 --- a/src/main/java/com/mcmoddev/lib/material/IMMDObject.java +++ b/src/main/java/zone/moddev/mc/mmdlib/material/IMMDObject.java @@ -1,4 +1,4 @@ -package com.mcmoddev.lib.material; +package zone.moddev.mc.mmdlib.material; /** * diff --git a/src/main/java/com/mcmoddev/lib/material/MMDMaterial.java b/src/main/java/zone/moddev/mc/mmdlib/material/MMDMaterial.java similarity index 95% rename from src/main/java/com/mcmoddev/lib/material/MMDMaterial.java rename to src/main/java/zone/moddev/mc/mmdlib/material/MMDMaterial.java index d412409..efab6f6 100644 --- a/src/main/java/com/mcmoddev/lib/material/MMDMaterial.java +++ b/src/main/java/zone/moddev/mc/mmdlib/material/MMDMaterial.java @@ -1,4 +1,4 @@ -package com.mcmoddev.lib.material; +package zone.moddev.mc.mmdlib.material; import java.util.Collections; import java.util.HashMap; @@ -7,7 +7,6 @@ import java.util.Map; import java.util.Optional; import java.util.TreeMap; -//import java.util.concurrent.ConcurrentHashMap; import javax.annotation.Nonnull; import javax.annotation.Nullable; @@ -16,13 +15,13 @@ import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; -import com.mcmoddev.lib.MMDLib; -import com.mcmoddev.lib.data.MaterialStats; -import com.mcmoddev.lib.data.NameToken; -import com.mcmoddev.lib.data.Names; -import com.mcmoddev.lib.material.MMDMaterialType.MaterialType; -import com.mcmoddev.lib.properties.MMDMaterialPropertyBase; -import com.mcmoddev.lib.properties.MaterialProperties; +import zone.moddev.mc.mmdlib.MMDLib; +import zone.moddev.mc.mmdlib.data.MaterialStats; +import zone.moddev.mc.mmdlib.data.NameToken; +import zone.moddev.mc.mmdlib.data.Names; +import zone.moddev.mc.mmdlib.material.MMDMaterialType.MaterialType; +import zone.moddev.mc.mmdlib.properties.MMDMaterialPropertyBase; +import zone.moddev.mc.mmdlib.properties.MaterialProperties; import net.minecraft.block.Block; import net.minecraft.block.SoundType; @@ -46,9 +45,7 @@ */ public class MMDMaterial extends IForgeRegistryEntry.Impl { - /* - * data storage - flexible, somewhat important stuff in this part - */ + // Named material data and registered forms. /** * Storage for all "Item" type forms for this material. */ @@ -67,7 +64,7 @@ public class MMDMaterial extends IForgeRegistryEntry.Impl { private BlockFluidClassic fluidBlock; /* - * Material Statistics - see com.mcmoddev.lib.data.MaterialStats for current known and used ones + * Material Statistics - see zone.moddev.mc.mmdlib.data.MaterialStats for current known and used ones */ private final Map stats = new TreeMap<>(); @@ -94,9 +91,7 @@ public class MMDMaterial extends IForgeRegistryEntry.Impl { */ private final boolean hasOre; - /* - * Miscelaneous Material Information - */ + // Miscellaneous material information. /** * Color Info for material. */ @@ -128,12 +123,12 @@ public class MMDMaterial extends IForgeRegistryEntry.Impl { private boolean customFluid; private IFluidBlockGetter fluidBlockGetter; - + /** * Tooltip handling */ private Map> tooltips; - + /** * @param name * String used to identify items and blocks using this material @@ -153,8 +148,8 @@ public class MMDMaterial extends IForgeRegistryEntry.Impl { * enchantability * @param tintColor * Color Info for the metal - * @param isRare - * If true, this metal is designated as an extremely rare metal + * + * * @param hasOre * If true this material has an ore * @param hasBlend @@ -195,7 +190,7 @@ public BlockFluidClassic apply(String fluidName) { }; this.tooltips = new HashMap<>(); } - + public String getName() { return this.identifier; } @@ -472,7 +467,7 @@ public MMDMaterial setBaseDamage(final float damage) { * Adds a new item to the list of known items made from this material. * * @param name - * The name of the item. Existing names can be found in com.mcmoddev.lib.data.Names + * The name of the item. Existing names can be found in zone.moddev.mc.mmdlib.data.Names * @param item * The item to add * @return an instance of the material - QOL and call chaining @@ -486,7 +481,7 @@ public MMDMaterial addNewItem(final Names name, final Item item) { * Adds a new item to the list of known items made from this material. * * @param name - * The name of the item. Existing names can be found in com.mcmoddev.lib.data.Names + * The name of the item. Existing names can be found in zone.moddev.mc.mmdlib.data.Names * @param item * The item to add * @return an instance of the material - QOL and call chaining @@ -500,12 +495,6 @@ public MMDMaterial addNewItemFromItemStack(final Names name, final ItemStack ite return this; } - /** - * - * @param name - * @param itemStack - * @return - */ public MMDMaterial addNewItemFromItemStack(@Nonnull final String name, @Nonnull final ItemStack itemStack) { if (!(itemStack.isEmpty())) { @@ -518,7 +507,7 @@ public MMDMaterial addNewItemFromItemStack(@Nonnull final String name, * Adds a new block to the list of known items made from this material. * * @param name - * The name of the block. Existing names can be found in com.mcmoddev.lib.data.Names + * The name of the block. Existing names can be found in zone.moddev.mc.mmdlib.data.Names * @param block * The block to add * @return an instance of the material - QOL and call chaining @@ -532,7 +521,7 @@ public MMDMaterial addNewBlock(final Names name, final Block block) { * Adds a new block to the list of known items made from this material. * * @param name - * The name of the block. Existing names can be found in com.mcmoddev.lib.data.Names + * The name of the block. Existing names can be found in zone.moddev.mc.mmdlib.data.Names * @param block * The block to add * @return an instance of the material - QOL and call chaining @@ -554,12 +543,6 @@ public MMDMaterial addNewBlockFromItemStack(final Names name, final ItemStack it return this; } - /** - * - * @param name - * @param itemStack - * @return - */ public MMDMaterial addNewBlockFromItemStack(@Nonnull final String name, @Nonnull final ItemStack itemStack) { final Item item = itemStack.getItem(); @@ -600,7 +583,7 @@ public Item getItem(final NameToken name) { final ItemStack tmp = this.items.get(name); return (tmp != null) ? tmp.getItem() : null; } - + public ItemStack getItemStack(final Names name) { return this.getItemStack(name.toString(), 1); } @@ -616,7 +599,7 @@ public ItemStack getItemStack(final Names name, final int amount) { public ItemStack getItemStack(final NameToken name) { return this.getItemStack(name, 1); } - + public ItemStack getItemStack(final NameToken name, int amount) { if ((!this.hasItem(name.asString())) || (this.items.get(name) == null)) { return ItemStack.EMPTY; @@ -629,12 +612,7 @@ public ItemStack getItemStack(final NameToken name, int amount) { return new ItemStack(base.getItem(), amount); } } - /** - * - * @param name - * @param amount - * @return - */ + public ItemStack getItemStack(final String name, final int amount) { NameToken lookup = new NameToken(name); return this.getItemStack(lookup, amount); @@ -669,7 +647,7 @@ public Block getBlock(final String name) { public Block getBlock(final NameToken name) { return this.blocks.get(name); } - + public ItemStack getBlockItemStack(final Names name) { return this.getBlockItemStack(name.toString(), 1); } @@ -681,7 +659,7 @@ public ItemStack getBlockItemStack(final String name) { public ItemStack getBlockItemStack(final NameToken name) { return this.getBlockItemStack(name, 1); } - + public ItemStack getBlockItemStack(final Names name, final int amount) { return this.getBlockItemStack(name.toString(), amount); } @@ -693,7 +671,7 @@ public ItemStack getBlockItemStack(final String name, final int amount) { public ItemStack getBlockItemStack(final NameToken name, final int amount) { return new ItemStack(this.getBlock(name), amount); } - + public Map getBlockRegistry() { return ImmutableMap.copyOf(this.blocks); } @@ -731,7 +709,7 @@ public boolean isRare() { public boolean isVanilla() { return this.materialType.hasVanilla(); } - + public boolean isAlloy() { return this.materialType.hasAlloy(); } @@ -739,11 +717,11 @@ public boolean isAlloy() { public boolean isOreless() { return this.materialType.hasOreless(); } - + public boolean isSpecial() { return this.materialType.hasSpecial(); } - + public boolean regenerates() { return this.regenerates; } @@ -770,11 +748,6 @@ public boolean hasBlock(final Names name) { return this.hasBlock(name.toString()); } - /** - * - * @param name - * @return - */ public float getStat(final MaterialStats name) { if (this.stats.containsKey(name)) { return this.stats.get(name).floatValue(); @@ -806,18 +779,10 @@ public void setRegenerates(final boolean regen) { this.regenerates = regen; } - /** - * - * @return - */ public final Material getVanillaMaterial() { return this.materialType.getVanillaType(); } - /** - * - * @return - */ public final SoundType getSoundType() { switch (this.getType()) { case METAL: @@ -864,9 +829,9 @@ public boolean isDefault() { public Map getItemRegistry() { return ImmutableMap.copyOf(this.items); } - + public boolean hasCustomFluid() { return this.customFluid; }; - + public BlockFluidClassic getCustomFluid() { return this.fluidBlockGetter.apply(this.getName()); }; @@ -874,25 +839,25 @@ public BlockFluidClassic getCustomFluid() { public void setFluidBlockGetter(IFluidBlockGetter fluidBlockGetter) { this.fluidBlockGetter = fluidBlockGetter; } - + private MMDMaterialPropertyBase findEffect(ItemStack stack, EntityPlayer p) { Optional pr = MaterialProperties.get().getEntries().stream().map(ent -> ent.getValue()).filter(prop -> prop.hasEffect(stack, p)).findFirst(); return pr.orElseGet(null); } - + private MMDMaterialPropertyBase findEffect(ItemStack stack, EntityLivingBase b) { Optional pr = MaterialProperties.get().getEntries().stream().map(ent -> ent.getValue()).filter(prop -> prop.hasEffect(stack, b)).findFirst(); return pr.orElseGet(null); } - + public boolean hasEffect(final ItemStack itemStack, final EntityPlayer player) { return MaterialProperties.get().getEntries().stream().anyMatch(prop -> prop.getValue().hasEffect(itemStack, player)); } - + public boolean hasEffect(final ItemStack itemStack, final EntityLivingBase ent) { return MaterialProperties.get().getEntries().stream().anyMatch(prop -> prop.getValue().hasEffect(itemStack, ent)); } - + public void applyEffect(final ItemStack itemStack, final EntityPlayer player) { MMDMaterialPropertyBase pr = findEffect(itemStack, player); if(pr != null) pr.apply(itemStack, player); @@ -906,7 +871,7 @@ public void applyEffect(final ItemStack itemStack, final EntityLivingBase ent) { public List getTooltipFor(Names name) { return this.tooltips.getOrDefault(name, Collections.emptyList()); } - + public void addTooltipFor(Names name, List data) { this.tooltips.put(name, data); } diff --git a/src/main/java/com/mcmoddev/lib/material/MMDMaterialType.java b/src/main/java/zone/moddev/mc/mmdlib/material/MMDMaterialType.java similarity index 97% rename from src/main/java/com/mcmoddev/lib/material/MMDMaterialType.java rename to src/main/java/zone/moddev/mc/mmdlib/material/MMDMaterialType.java index fa9602f..f07ef0d 100644 --- a/src/main/java/com/mcmoddev/lib/material/MMDMaterialType.java +++ b/src/main/java/zone/moddev/mc/mmdlib/material/MMDMaterialType.java @@ -1,4 +1,4 @@ -package com.mcmoddev.lib.material; +package zone.moddev.mc.mmdlib.material; import java.util.Arrays; import java.util.LinkedList; @@ -14,7 +14,7 @@ public class MMDMaterialType { private final MaterialType MMDLibType; private final List variants; private final String variantName; - + /** * ENUM of all the types of Materials. * @@ -28,26 +28,26 @@ public enum MaterialType { public static enum VariantType { // 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x100, 0x200... VANILLA(1), ORELESS(2), ALLOY(4), RARE(8), NORMAL(16), SPECIAL(32); - + private int type; - + private VariantType(int type) { this.type = type; } - + public int value() { return this.type; } - + public String toString() { return super.toString().toLowerCase(Locale.getDefault()); } - + public String toCapString() { return WordUtils.capitalize(this.toString()); } } - + public MMDMaterialType(final String name, final MaterialType mmdType, VariantType...types) { this.variantName = name; this.MMDLibType = mmdType; @@ -55,11 +55,11 @@ public MMDMaterialType(final String name, final MaterialType mmdType, VariantTyp this.variants = new LinkedList<>(); Arrays.asList(types).stream().forEach(this.variants::add); } - + public MaterialType getMaterialType() { return this.MMDLibType; } - + private Material getVanillaTypeInternal() { switch (this.MMDLibType) { case METAL: @@ -75,50 +75,50 @@ private Material getVanillaTypeInternal() { return Material.GROUND; } } - + public Material getVanillaType() { return this.vanillaType; } - + private String buildVariantName() { StringBuilder x = new StringBuilder(); this.variants.stream().forEach(var -> x.append(var.toCapString())); - + return x.toString(); } - + private String buildFullMaterialTypeName() { StringBuilder x = new StringBuilder(); x.append(this.buildVariantName()); x.append(String.format("of {} ({})", this.MMDLibType.toString(), this.vanillaType.toString())); - + return WordUtils.capitalize(x.toString()); } - + private String buildFullName() { return String.format("{} is {}", this.variantName, this.buildFullMaterialTypeName()); } - + public String getVariantName() { return this.buildVariantName(); } - + public String getFullName() { return this.buildFullName(); } - + public String getFullVariantName() { return this.buildFullMaterialTypeName(); } - + public boolean hasVanilla() { return this.variants.contains(VariantType.VANILLA); } - + public boolean hasRare() { return this.variants.contains(VariantType.RARE); } - + public boolean hasAlloy() { return this.variants.contains(VariantType.ALLOY); } diff --git a/src/main/java/com/mcmoddev/lib/crafttweaker/package-info.java b/src/main/java/zone/moddev/mc/mmdlib/material/package-info.java similarity index 68% rename from src/main/java/com/mcmoddev/lib/crafttweaker/package-info.java rename to src/main/java/zone/moddev/mc/mmdlib/material/package-info.java index b40d163..e06a436 100644 --- a/src/main/java/com/mcmoddev/lib/crafttweaker/package-info.java +++ b/src/main/java/zone/moddev/mc/mmdlib/material/package-info.java @@ -1,4 +1,4 @@ @ParametersAreNonnullByDefault -package com.mcmoddev.lib.crafttweaker; +package zone.moddev.mc.mmdlib.material; import javax.annotation.ParametersAreNonnullByDefault; diff --git a/src/main/java/com/mcmoddev/lib/network/INBTMessageReceiver.java b/src/main/java/zone/moddev/mc/mmdlib/network/INBTMessageReceiver.java similarity index 94% rename from src/main/java/com/mcmoddev/lib/network/INBTMessageReceiver.java rename to src/main/java/zone/moddev/mc/mmdlib/network/INBTMessageReceiver.java index 50e4a2b..0c2da20 100644 --- a/src/main/java/com/mcmoddev/lib/network/INBTMessageReceiver.java +++ b/src/main/java/zone/moddev/mc/mmdlib/network/INBTMessageReceiver.java @@ -1,4 +1,4 @@ -package com.mcmoddev.lib.network; +package zone.moddev.mc.mmdlib.network; import net.minecraft.entity.player.EntityPlayerMP; import net.minecraft.nbt.NBTTagCompound; diff --git a/src/main/java/com/mcmoddev/lib/network/MMDMessages.java b/src/main/java/zone/moddev/mc/mmdlib/network/MMDMessages.java similarity index 95% rename from src/main/java/com/mcmoddev/lib/network/MMDMessages.java rename to src/main/java/zone/moddev/mc/mmdlib/network/MMDMessages.java index 13accd7..e4403fe 100644 --- a/src/main/java/com/mcmoddev/lib/network/MMDMessages.java +++ b/src/main/java/zone/moddev/mc/mmdlib/network/MMDMessages.java @@ -1,6 +1,6 @@ -package com.mcmoddev.lib.network; +package zone.moddev.mc.mmdlib.network; -import com.mcmoddev.lib.MMDLib; +import zone.moddev.mc.mmdlib.MMDLib; import net.minecraft.entity.player.EntityPlayerMP; import net.minecraftforge.fml.common.network.simpleimpl.IMessage; import net.minecraftforge.fml.common.network.simpleimpl.SimpleNetworkWrapper; @@ -12,7 +12,7 @@ public final class MMDMessages { private MMDMessages() {} private final static SimpleNetworkWrapper wrapper = new SimpleNetworkWrapper(MMDLib.MODID); - + /** * Registers the message types handled by this class. */ diff --git a/src/main/java/com/mcmoddev/lib/network/NBTBasedMessage.java b/src/main/java/zone/moddev/mc/mmdlib/network/NBTBasedMessage.java similarity index 85% rename from src/main/java/com/mcmoddev/lib/network/NBTBasedMessage.java rename to src/main/java/zone/moddev/mc/mmdlib/network/NBTBasedMessage.java index 611b184..12ed886 100644 --- a/src/main/java/com/mcmoddev/lib/network/NBTBasedMessage.java +++ b/src/main/java/zone/moddev/mc/mmdlib/network/NBTBasedMessage.java @@ -1,6 +1,6 @@ -package com.mcmoddev.lib.network; +package zone.moddev.mc.mmdlib.network; -import com.mcmoddev.lib.util.LoggingUtil; +import zone.moddev.mc.mmdlib.util.LoggingUtil; import io.netty.buffer.ByteBuf; import net.minecraft.nbt.NBTTagCompound; import net.minecraftforge.fml.common.network.ByteBufUtils; @@ -38,13 +38,11 @@ public NBTTagCompound getCompound() { public void fromBytes(final ByteBuf buf) { this.compound = ByteBufUtils.readTag(buf); - //LoggingUtil.logNbtMessage("FROM BYTE BUF", this.compound); } @Override public void toBytes(final ByteBuf buf) { ByteBufUtils.writeTag(buf, this.compound); - //LoggingUtil.logNbtMessage("TO BYTE BUF", this.compound); } } diff --git a/src/main/java/com/mcmoddev/lib/network/NBTBasedPlayerHandler.java b/src/main/java/zone/moddev/mc/mmdlib/network/NBTBasedPlayerHandler.java similarity index 90% rename from src/main/java/com/mcmoddev/lib/network/NBTBasedPlayerHandler.java rename to src/main/java/zone/moddev/mc/mmdlib/network/NBTBasedPlayerHandler.java index 562e0ce..efe6fdb 100644 --- a/src/main/java/com/mcmoddev/lib/network/NBTBasedPlayerHandler.java +++ b/src/main/java/zone/moddev/mc/mmdlib/network/NBTBasedPlayerHandler.java @@ -1,8 +1,8 @@ -package com.mcmoddev.lib.network; +package zone.moddev.mc.mmdlib.network; import javax.annotation.Nullable; -import com.mcmoddev.lib.MMDLib; -import com.mcmoddev.lib.container.MMDContainer; +import zone.moddev.mc.mmdlib.MMDLib; +import zone.moddev.mc.mmdlib.container.MMDContainer; import net.minecraft.client.Minecraft; import net.minecraft.client.entity.EntityPlayerSP; import net.minecraft.entity.player.EntityPlayerMP; @@ -44,8 +44,8 @@ public IMessage onMessage(final NBTBasedPlayerMessage message, final MessageCont final String playerId = player.getUniqueID().toString(); if (playerId.equals(message.getPlayerId())) { if (player.openContainer instanceof MMDContainer) { - // TODO: find a way to also support this for non-tile-based containers - // like, use the same interface we use for tile entities + // Only tile-backed containers receive these player messages. + ((MMDContainer) player.openContainer).handleMessageFromClient(message.getCompound()); } else { MMDLib.logger.error("Message received for player. But wrong type of container is currently opened!"); diff --git a/src/main/java/com/mcmoddev/lib/network/NBTBasedPlayerMessage.java b/src/main/java/zone/moddev/mc/mmdlib/network/NBTBasedPlayerMessage.java similarity index 97% rename from src/main/java/com/mcmoddev/lib/network/NBTBasedPlayerMessage.java rename to src/main/java/zone/moddev/mc/mmdlib/network/NBTBasedPlayerMessage.java index b8302e3..f41e7e9 100644 --- a/src/main/java/com/mcmoddev/lib/network/NBTBasedPlayerMessage.java +++ b/src/main/java/zone/moddev/mc/mmdlib/network/NBTBasedPlayerMessage.java @@ -1,4 +1,4 @@ -package com.mcmoddev.lib.network; +package zone.moddev.mc.mmdlib.network; import io.netty.buffer.ByteBuf; import net.minecraft.client.entity.EntityPlayerSP; diff --git a/src/main/java/com/mcmoddev/lib/network/NBTBasedTileHandlerClient.java b/src/main/java/zone/moddev/mc/mmdlib/network/NBTBasedTileHandlerClient.java old mode 100755 new mode 100644 similarity index 92% rename from src/main/java/com/mcmoddev/lib/network/NBTBasedTileHandlerClient.java rename to src/main/java/zone/moddev/mc/mmdlib/network/NBTBasedTileHandlerClient.java index a4b4587..4f0fea6 --- a/src/main/java/com/mcmoddev/lib/network/NBTBasedTileHandlerClient.java +++ b/src/main/java/zone/moddev/mc/mmdlib/network/NBTBasedTileHandlerClient.java @@ -1,8 +1,8 @@ -package com.mcmoddev.lib.network; +package zone.moddev.mc.mmdlib.network; import javax.annotation.Nullable; -import com.mcmoddev.lib.MMDLib; +import zone.moddev.mc.mmdlib.MMDLib; import net.minecraft.block.Block; import net.minecraft.tileentity.TileEntity; @@ -15,7 +15,7 @@ public class NBTBasedTileHandlerClient implements IMessageHandler { public static final NBTBasedTileHandlerClient INSTANCE = new NBTBasedTileHandlerClient(); - + public NBTBasedTileHandlerClient() {} @Nullable @@ -33,7 +33,7 @@ public IMessage onMessage(NBTBasedTileMessage message, MessageContext ctx) { ((INBTMessageReceiver) tile).receiveFromServer(message.getCompound()); } - // 2. test block (do we even care about blocks?) + // Also dispatch to a block that implements the message receiver interface. final Block block = world.getBlockState(pos).getBlock(); if (block instanceof INBTMessageReceiver) { ((INBTMessageReceiver) block).receiveFromServer(message.getCompound()); @@ -45,7 +45,7 @@ public IMessage onMessage(NBTBasedTileMessage message, MessageContext ctx) { MMDLib.logger.error("Message received for wrong dimension."); } }); - + return null; } diff --git a/src/main/java/com/mcmoddev/lib/network/NBTBasedTileHandlerServer.java b/src/main/java/zone/moddev/mc/mmdlib/network/NBTBasedTileHandlerServer.java similarity index 93% rename from src/main/java/com/mcmoddev/lib/network/NBTBasedTileHandlerServer.java rename to src/main/java/zone/moddev/mc/mmdlib/network/NBTBasedTileHandlerServer.java index 26cbce6..cb89326 100644 --- a/src/main/java/com/mcmoddev/lib/network/NBTBasedTileHandlerServer.java +++ b/src/main/java/zone/moddev/mc/mmdlib/network/NBTBasedTileHandlerServer.java @@ -1,7 +1,7 @@ -package com.mcmoddev.lib.network; +package zone.moddev.mc.mmdlib.network; import javax.annotation.Nullable; -import com.mcmoddev.lib.MMDLib; +import zone.moddev.mc.mmdlib.MMDLib; import net.minecraft.block.Block; import net.minecraft.entity.player.EntityPlayerMP; import net.minecraft.tileentity.TileEntity; @@ -37,7 +37,7 @@ public IMessage onMessage(final NBTBasedTileMessage message, final MessageContex ((INBTMessageReceiver) tile).receiveFromClient(sender, message.getCompound()); } - // 2. test block (do we even care about blocks?) + // Also dispatch to a block that implements the message receiver interface. final Block block = world.getBlockState(pos).getBlock(); if (block instanceof INBTMessageReceiver) { ((INBTMessageReceiver) block).receiveFromClient(sender, message.getCompound()); diff --git a/src/main/java/com/mcmoddev/lib/network/NBTBasedTileMessage.java b/src/main/java/zone/moddev/mc/mmdlib/network/NBTBasedTileMessage.java similarity index 98% rename from src/main/java/com/mcmoddev/lib/network/NBTBasedTileMessage.java rename to src/main/java/zone/moddev/mc/mmdlib/network/NBTBasedTileMessage.java index 79f09f7..7ceb2dd 100644 --- a/src/main/java/com/mcmoddev/lib/network/NBTBasedTileMessage.java +++ b/src/main/java/zone/moddev/mc/mmdlib/network/NBTBasedTileMessage.java @@ -1,4 +1,4 @@ -package com.mcmoddev.lib.network; +package zone.moddev.mc.mmdlib.network; import io.netty.buffer.ByteBuf; import net.minecraft.nbt.NBTTagCompound; diff --git a/src/main/java/zone/moddev/mc/mmdlib/network/package-info.java b/src/main/java/zone/moddev/mc/mmdlib/network/package-info.java new file mode 100644 index 0000000..b0552b9 --- /dev/null +++ b/src/main/java/zone/moddev/mc/mmdlib/network/package-info.java @@ -0,0 +1,6 @@ +@ParametersAreNonnullByDefault +@MethodsReturnNonnullByDefault +package zone.moddev.mc.mmdlib.network; + +import javax.annotation.ParametersAreNonnullByDefault; +import mcp.MethodsReturnNonnullByDefault; diff --git a/src/main/java/com/mcmoddev/lib/oregen/FallbackGenerator.java b/src/main/java/zone/moddev/mc/mmdlib/oregen/FallbackGenerator.java old mode 100755 new mode 100644 similarity index 97% rename from src/main/java/com/mcmoddev/lib/oregen/FallbackGenerator.java rename to src/main/java/zone/moddev/mc/mmdlib/oregen/FallbackGenerator.java index ab1ad83..16033f7 --- a/src/main/java/com/mcmoddev/lib/oregen/FallbackGenerator.java +++ b/src/main/java/zone/moddev/mc/mmdlib/oregen/FallbackGenerator.java @@ -1,4 +1,4 @@ -package com.mcmoddev.lib.oregen; +package zone.moddev.mc.mmdlib.oregen; import java.util.ArrayList; import java.util.List; diff --git a/src/main/java/com/mcmoddev/lib/oregen/FallbackGeneratorData.java b/src/main/java/zone/moddev/mc/mmdlib/oregen/FallbackGeneratorData.java old mode 100755 new mode 100644 similarity index 94% rename from src/main/java/com/mcmoddev/lib/oregen/FallbackGeneratorData.java rename to src/main/java/zone/moddev/mc/mmdlib/oregen/FallbackGeneratorData.java index 6ebc59d..c82b193 --- a/src/main/java/com/mcmoddev/lib/oregen/FallbackGeneratorData.java +++ b/src/main/java/zone/moddev/mc/mmdlib/oregen/FallbackGeneratorData.java @@ -1,4 +1,4 @@ -package com.mcmoddev.lib.oregen; +package zone.moddev.mc.mmdlib.oregen; import java.util.ArrayList; import java.util.Collections; @@ -13,8 +13,8 @@ import com.google.common.base.Predicate; import com.google.common.collect.ImmutableList; -import com.mcmoddev.lib.init.Materials; -import com.mcmoddev.lib.material.MMDMaterial; +import zone.moddev.mc.mmdlib.init.Materials; +import zone.moddev.mc.mmdlib.material.MMDMaterial; import net.minecraft.block.Block; import net.minecraft.block.BlockStone; @@ -29,15 +29,9 @@ public class FallbackGeneratorData { private static final Map> spawns = new HashMap<>(); private FallbackGeneratorData() { - // blank + } - /** - * - * @param materialName - * @param blockName - * @param dimension - */ public void addMaterial(@Nonnull final String materialName, @Nonnull final String blockName, @Nullable final Integer dimension) { final MMDMaterial mat = Materials.getMaterialByName(materialName); @@ -99,9 +93,6 @@ public boolean apply(@Nullable final IBlockState comp) { } } - /** - * - */ public void setup() { for (final Entry>> matMap : materials.entrySet()) { final Map> mats = matMap.getValue(); diff --git a/src/main/java/zone/moddev/mc/mmdlib/oregen/package-info.java b/src/main/java/zone/moddev/mc/mmdlib/oregen/package-info.java new file mode 100644 index 0000000..022081c --- /dev/null +++ b/src/main/java/zone/moddev/mc/mmdlib/oregen/package-info.java @@ -0,0 +1,4 @@ +@ParametersAreNonnullByDefault +package zone.moddev.mc.mmdlib.oregen; + +import javax.annotation.ParametersAreNonnullByDefault; diff --git a/src/main/java/com/mcmoddev/lib/properties/IMMDMaterialProperty.java b/src/main/java/zone/moddev/mc/mmdlib/properties/IMMDMaterialProperty.java old mode 100755 new mode 100644 similarity index 71% rename from src/main/java/com/mcmoddev/lib/properties/IMMDMaterialProperty.java rename to src/main/java/zone/moddev/mc/mmdlib/properties/IMMDMaterialProperty.java index 3043ce8..f8106f6 --- a/src/main/java/com/mcmoddev/lib/properties/IMMDMaterialProperty.java +++ b/src/main/java/zone/moddev/mc/mmdlib/properties/IMMDMaterialProperty.java @@ -1,4 +1,4 @@ -package com.mcmoddev.lib.properties; +package zone.moddev.mc.mmdlib.properties; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.block.Block; @@ -7,9 +7,9 @@ public interface IMMDMaterialProperty { /** - * Does this property have an effect in the current situation ? (EntityPlayer/EntityLivingBase separate version) - * @param stack - * @return + * Tests whether this property applies to the stack without an entity context. + * @param stack the item stack to inspect + * @return true if this property applies in the supplied context */ boolean hasEffect(ItemStack stack); default boolean hasEffect(Block block) { return hasEffect(Item.getItemFromBlock(block)); }; @@ -17,12 +17,12 @@ public interface IMMDMaterialProperty { void apply(ItemStack stack); default void apply(Block block) { apply(Item.getItemFromBlock(block)); }; default void apply(Item item) { apply(new ItemStack(item)); }; - + /** - * Does this property have an effect in the current situation ? (EntityPlayer version) - * @param stack - * @param player - * @return + * Tests whether this property applies to the stack for this player. + * @param stack the item stack to inspect + * @param player the player carrying the stack + * @return true if this property applies in the supplied context */ boolean hasEffect(ItemStack stack, EntityPlayer player); default boolean hasEffect(Block block, EntityPlayer player) { return hasEffect(Item.getItemFromBlock(block), player); }; @@ -32,10 +32,10 @@ public interface IMMDMaterialProperty { default void apply(Item item, EntityPlayer player) { apply(new ItemStack(item), player); }; /** - * Does this property have an effect in the current situation ? (EntityLivingBase version) - * @param stack - * @param player - * @return + * Tests whether this property applies to the stack for this living entity. + * @param stack the item stack to inspect + * @param ent the entity carrying the stack + * @return true if this property applies in the supplied context */ boolean hasEffect(ItemStack stack, EntityLivingBase ent); default boolean hasEffect(Block block, EntityLivingBase ent) { return hasEffect(Item.getItemFromBlock(block), ent); }; diff --git a/src/main/java/com/mcmoddev/lib/properties/MMDMaterialPropertyBase.java b/src/main/java/zone/moddev/mc/mmdlib/properties/MMDMaterialPropertyBase.java old mode 100755 new mode 100644 similarity index 93% rename from src/main/java/com/mcmoddev/lib/properties/MMDMaterialPropertyBase.java rename to src/main/java/zone/moddev/mc/mmdlib/properties/MMDMaterialPropertyBase.java index aba328a..228d43f --- a/src/main/java/com/mcmoddev/lib/properties/MMDMaterialPropertyBase.java +++ b/src/main/java/zone/moddev/mc/mmdlib/properties/MMDMaterialPropertyBase.java @@ -1,4 +1,4 @@ -package com.mcmoddev.lib.properties; +package zone.moddev.mc.mmdlib.properties; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.player.EntityPlayer; diff --git a/src/main/java/com/mcmoddev/lib/properties/MaterialProperties.java b/src/main/java/zone/moddev/mc/mmdlib/properties/MaterialProperties.java old mode 100755 new mode 100644 similarity index 93% rename from src/main/java/com/mcmoddev/lib/properties/MaterialProperties.java rename to src/main/java/zone/moddev/mc/mmdlib/properties/MaterialProperties.java index f1a7d8e..2d4159c --- a/src/main/java/com/mcmoddev/lib/properties/MaterialProperties.java +++ b/src/main/java/zone/moddev/mc/mmdlib/properties/MaterialProperties.java @@ -1,4 +1,4 @@ -package com.mcmoddev.lib.properties; +package zone.moddev.mc.mmdlib.properties; import net.minecraft.util.ResourceLocation; import net.minecraftforge.registries.IForgeRegistry; diff --git a/src/main/java/zone/moddev/mc/mmdlib/properties/package-info.java b/src/main/java/zone/moddev/mc/mmdlib/properties/package-info.java new file mode 100644 index 0000000..4e7f908 --- /dev/null +++ b/src/main/java/zone/moddev/mc/mmdlib/properties/package-info.java @@ -0,0 +1,6 @@ + +/** + * @author madman + * + */ +package zone.moddev.mc.mmdlib.properties; \ No newline at end of file diff --git a/src/main/java/com/mcmoddev/lib/proxy/ClientProxy.java b/src/main/java/zone/moddev/mc/mmdlib/proxy/ClientProxy.java similarity index 91% rename from src/main/java/com/mcmoddev/lib/proxy/ClientProxy.java rename to src/main/java/zone/moddev/mc/mmdlib/proxy/ClientProxy.java index 8a9407e..58810a5 100644 --- a/src/main/java/com/mcmoddev/lib/proxy/ClientProxy.java +++ b/src/main/java/zone/moddev/mc/mmdlib/proxy/ClientProxy.java @@ -1,9 +1,9 @@ -package com.mcmoddev.lib.proxy; +package zone.moddev.mc.mmdlib.proxy; -import com.mcmoddev.lib.client.registrations.RegistrationHelper; -import com.mcmoddev.lib.data.Names; -import com.mcmoddev.lib.init.*; -import com.mcmoddev.lib.network.MMDMessages; +import zone.moddev.mc.mmdlib.client.registrations.RegistrationHelper; +import zone.moddev.mc.mmdlib.data.Names; +import zone.moddev.mc.mmdlib.init.*; +import zone.moddev.mc.mmdlib.network.MMDMessages; import net.minecraft.block.Block; import net.minecraft.block.BlockDoor; @@ -48,7 +48,7 @@ public static void registerModels(final ModelRegistryEvent event) { for (final String name : Blocks.getBlockRegistry().keySet()) { RegistrationHelper.registerBlockRender(name); } - + for (final String name : Fluids.getFluidBlockRegistry().keySet()) { RegistrationHelper.registerFluidRender(name); } diff --git a/src/main/java/com/mcmoddev/lib/proxy/CommonProxy.java b/src/main/java/zone/moddev/mc/mmdlib/proxy/CommonProxy.java similarity index 58% rename from src/main/java/com/mcmoddev/lib/proxy/CommonProxy.java rename to src/main/java/zone/moddev/mc/mmdlib/proxy/CommonProxy.java index bc40b75..408b208 100644 --- a/src/main/java/com/mcmoddev/lib/proxy/CommonProxy.java +++ b/src/main/java/zone/moddev/mc/mmdlib/proxy/CommonProxy.java @@ -1,23 +1,23 @@ -package com.mcmoddev.lib.proxy; - -import com.mcmoddev.lib.capability.MMDCapabilities; -import com.mcmoddev.lib.container.MMDGuiHandler; -import com.mcmoddev.lib.data.Names; -import com.mcmoddev.lib.data.MaterialNames; -import com.mcmoddev.lib.events.MMDLibRegisterBlockTypes; -import com.mcmoddev.lib.events.MMDLibRegisterBlocks; -import com.mcmoddev.lib.events.MMDLibRegisterFluids; -import com.mcmoddev.lib.events.MMDLibRegisterItemTypes; -import com.mcmoddev.lib.events.MMDLibRegisterItems; -import com.mcmoddev.lib.events.MMDLibRegisterMaterialProperties; -import com.mcmoddev.lib.events.MMDLibRegisterMaterials; -import com.mcmoddev.lib.events.MMLibPreInitSync; -import com.mcmoddev.lib.integration.IntegrationManager; -import com.mcmoddev.lib.material.MMDMaterial; -//import com.mcmoddev.lib.network.MMDMessages; -import com.mcmoddev.lib.oregen.FallbackGeneratorData; -import com.mcmoddev.lib.util.Config; -import com.mcmoddev.lib.util.MMDLibItemGroups; +package zone.moddev.mc.mmdlib.proxy; + +import zone.moddev.mc.mmdlib.capability.MMDCapabilities; +import zone.moddev.mc.mmdlib.container.MMDGuiHandler; +import zone.moddev.mc.mmdlib.data.Names; +import zone.moddev.mc.mmdlib.data.MaterialNames; +import zone.moddev.mc.mmdlib.events.MMDLibRegisterBlockTypes; +import zone.moddev.mc.mmdlib.events.MMDLibRegisterBlocks; +import zone.moddev.mc.mmdlib.events.MMDLibRegisterFluids; +import zone.moddev.mc.mmdlib.events.MMDLibRegisterItemTypes; +import zone.moddev.mc.mmdlib.events.MMDLibRegisterItems; +import zone.moddev.mc.mmdlib.events.MMDLibRegisterMaterialProperties; +import zone.moddev.mc.mmdlib.events.MMDLibRegisterMaterials; +import zone.moddev.mc.mmdlib.events.MMLibPreInitSync; +import zone.moddev.mc.mmdlib.integration.IntegrationManager; +import zone.moddev.mc.mmdlib.material.MMDMaterial; + +import zone.moddev.mc.mmdlib.oregen.FallbackGeneratorData; +import zone.moddev.mc.mmdlib.util.Config; +import zone.moddev.mc.mmdlib.util.MMDLibItemGroups; import net.minecraftforge.common.MinecraftForge; import net.minecraftforge.fml.common.event.FMLInitializationEvent; @@ -32,30 +32,28 @@ */ public class CommonProxy { public void preInit(FMLPreInitializationEvent event) { -// MMDMessages.init(); + MMDGuiHandler.init(); MMDCapabilities.init(); - // despite other comments, most events get fired here + // Dispatch registration events in the order required by library consumers. - - com.mcmoddev.lib.util.MMDLibItemGroups.init(); + zone.moddev.mc.mmdlib.util.MMDLibItemGroups.init(); - com.mcmoddev.lib.init.Materials.init(); -// com.mcmoddev.lib.init.Blocks.init(); - com.mcmoddev.lib.init.Items.init(); - com.mcmoddev.lib.init.Fluids.init(); - com.mcmoddev.lib.init.VillagerTrades.init(); + zone.moddev.mc.mmdlib.init.Materials.init(); + + zone.moddev.mc.mmdlib.init.Items.init(); + zone.moddev.mc.mmdlib.init.Fluids.init(); + zone.moddev.mc.mmdlib.init.VillagerTrades.init(); MinecraftForge.EVENT_BUS.post(new MMDLibRegisterBlockTypes()); MinecraftForge.EVENT_BUS.post(new MMDLibRegisterItemTypes()); - com.mcmoddev.lib.init.Items.addToMetList(); + zone.moddev.mc.mmdlib.init.Items.addToMetList(); MinecraftForge.EVENT_BUS.post(new MMDLibRegisterMaterialProperties()); MinecraftForge.EVENT_BUS.post(new MMDLibRegisterMaterials()); MinecraftForge.EVENT_BUS.post(new MMDLibRegisterBlocks()); MinecraftForge.EVENT_BUS.post(new MMDLibRegisterItems()); MinecraftForge.EVENT_BUS.post(new MMDLibRegisterFluids()); - com.mcmoddev.lib.init.Recipes.init(); - + zone.moddev.mc.mmdlib.init.Recipes.init(); IntegrationManager.INSTANCE.preInit(event); MinecraftForge.EVENT_BUS.post(new MMLibPreInitSync()); @@ -69,8 +67,8 @@ public void preInit(FMLPreInitializationEvent event) { */ public void init(final FMLInitializationEvent event) { // by this point all materials should have been registered both with MMDLib and Minecraft - // move to a separate function - potentially in FallbackGeneratorData - after the test - for (final MMDMaterial material : com.mcmoddev.lib.init.Materials.getAllMaterials()) { + + for (final MMDMaterial material : zone.moddev.mc.mmdlib.init.Materials.getAllMaterials()) { if (material.hasBlock(Names.ORE)) { FallbackGeneratorData.getInstance().addMaterial(material.getName(), Names.ORE.toString(), material.getDefaultDimension()); diff --git a/src/main/java/com/mcmoddev/lib/proxy/ServerProxy.java b/src/main/java/zone/moddev/mc/mmdlib/proxy/ServerProxy.java similarity index 78% rename from src/main/java/com/mcmoddev/lib/proxy/ServerProxy.java rename to src/main/java/zone/moddev/mc/mmdlib/proxy/ServerProxy.java index 015952d..327c2f9 100644 --- a/src/main/java/com/mcmoddev/lib/proxy/ServerProxy.java +++ b/src/main/java/zone/moddev/mc/mmdlib/proxy/ServerProxy.java @@ -1,6 +1,6 @@ -package com.mcmoddev.lib.proxy; +package zone.moddev.mc.mmdlib.proxy; -import com.mcmoddev.lib.network.MMDMessages; +import zone.moddev.mc.mmdlib.network.MMDMessages; import net.minecraftforge.fml.common.event.FMLPreInitializationEvent; diff --git a/src/main/java/com/mcmoddev/lib/recipe/BootsRepairRecipe.java b/src/main/java/zone/moddev/mc/mmdlib/recipe/BootsRepairRecipe.java old mode 100755 new mode 100644 similarity index 54% rename from src/main/java/com/mcmoddev/lib/recipe/BootsRepairRecipe.java rename to src/main/java/zone/moddev/mc/mmdlib/recipe/BootsRepairRecipe.java index ab0c385..ea7370c --- a/src/main/java/com/mcmoddev/lib/recipe/BootsRepairRecipe.java +++ b/src/main/java/zone/moddev/mc/mmdlib/recipe/BootsRepairRecipe.java @@ -1,7 +1,7 @@ -package com.mcmoddev.lib.recipe; +package zone.moddev.mc.mmdlib.recipe; -import com.mcmoddev.lib.data.Names; -import com.mcmoddev.lib.material.MMDMaterial; +import zone.moddev.mc.mmdlib.data.Names; +import zone.moddev.mc.mmdlib.material.MMDMaterial; public class BootsRepairRecipe extends RepairRecipeBase { diff --git a/src/main/java/com/mcmoddev/lib/recipe/ChestplateRepairRecipe.java b/src/main/java/zone/moddev/mc/mmdlib/recipe/ChestplateRepairRecipe.java old mode 100755 new mode 100644 similarity index 56% rename from src/main/java/com/mcmoddev/lib/recipe/ChestplateRepairRecipe.java rename to src/main/java/zone/moddev/mc/mmdlib/recipe/ChestplateRepairRecipe.java index b5dc5ed..d4f89a2 --- a/src/main/java/com/mcmoddev/lib/recipe/ChestplateRepairRecipe.java +++ b/src/main/java/zone/moddev/mc/mmdlib/recipe/ChestplateRepairRecipe.java @@ -1,7 +1,7 @@ -package com.mcmoddev.lib.recipe; +package zone.moddev.mc.mmdlib.recipe; -import com.mcmoddev.lib.data.Names; -import com.mcmoddev.lib.material.MMDMaterial; +import zone.moddev.mc.mmdlib.data.Names; +import zone.moddev.mc.mmdlib.material.MMDMaterial; public class ChestplateRepairRecipe extends RepairRecipeBase { diff --git a/src/main/java/com/mcmoddev/lib/recipe/HelmetRepairRecipe.java b/src/main/java/zone/moddev/mc/mmdlib/recipe/HelmetRepairRecipe.java old mode 100755 new mode 100644 similarity index 54% rename from src/main/java/com/mcmoddev/lib/recipe/HelmetRepairRecipe.java rename to src/main/java/zone/moddev/mc/mmdlib/recipe/HelmetRepairRecipe.java index 310aac8..228cc3b --- a/src/main/java/com/mcmoddev/lib/recipe/HelmetRepairRecipe.java +++ b/src/main/java/zone/moddev/mc/mmdlib/recipe/HelmetRepairRecipe.java @@ -1,7 +1,7 @@ -package com.mcmoddev.lib.recipe; +package zone.moddev.mc.mmdlib.recipe; -import com.mcmoddev.lib.data.Names; -import com.mcmoddev.lib.material.MMDMaterial; +import zone.moddev.mc.mmdlib.data.Names; +import zone.moddev.mc.mmdlib.material.MMDMaterial; public class HelmetRepairRecipe extends RepairRecipeBase { diff --git a/src/main/java/com/mcmoddev/lib/recipe/LeggingsRepairRecipe.java b/src/main/java/zone/moddev/mc/mmdlib/recipe/LeggingsRepairRecipe.java old mode 100755 new mode 100644 similarity index 55% rename from src/main/java/com/mcmoddev/lib/recipe/LeggingsRepairRecipe.java rename to src/main/java/zone/moddev/mc/mmdlib/recipe/LeggingsRepairRecipe.java index 445e04c..1a076b3 --- a/src/main/java/com/mcmoddev/lib/recipe/LeggingsRepairRecipe.java +++ b/src/main/java/zone/moddev/mc/mmdlib/recipe/LeggingsRepairRecipe.java @@ -1,7 +1,7 @@ -package com.mcmoddev.lib.recipe; +package zone.moddev.mc.mmdlib.recipe; -import com.mcmoddev.lib.data.Names; -import com.mcmoddev.lib.material.MMDMaterial; +import zone.moddev.mc.mmdlib.data.Names; +import zone.moddev.mc.mmdlib.material.MMDMaterial; public class LeggingsRepairRecipe extends RepairRecipeBase { diff --git a/src/main/java/com/mcmoddev/lib/recipe/RepairRecipeBase.java b/src/main/java/zone/moddev/mc/mmdlib/recipe/RepairRecipeBase.java old mode 100755 new mode 100644 similarity index 89% rename from src/main/java/com/mcmoddev/lib/recipe/RepairRecipeBase.java rename to src/main/java/zone/moddev/mc/mmdlib/recipe/RepairRecipeBase.java index d77253f..4b19cc2 --- a/src/main/java/com/mcmoddev/lib/recipe/RepairRecipeBase.java +++ b/src/main/java/zone/moddev/mc/mmdlib/recipe/RepairRecipeBase.java @@ -1,8 +1,8 @@ -package com.mcmoddev.lib.recipe; +package zone.moddev.mc.mmdlib.recipe; -import com.mcmoddev.lib.data.Names; -import com.mcmoddev.lib.material.MMDMaterial; -import com.mcmoddev.lib.util.Oredicts; +import zone.moddev.mc.mmdlib.data.Names; +import zone.moddev.mc.mmdlib.material.MMDMaterial; +import zone.moddev.mc.mmdlib.util.Oredicts; import net.minecraft.enchantment.EnchantmentHelper; import net.minecraft.inventory.InventoryCrafting; @@ -22,33 +22,16 @@ public abstract class RepairRecipeBase extends ShapelessOreRecipe { private final String itemName; private final NonNullList repairMaterials; - /** - * - * @param material - * @param itemName - */ public RepairRecipeBase(final MMDMaterial material, final Names itemName) { this(material, itemName.toString(), material.getName() + "_" + itemName.toString(), Oredicts.PLATE + material.getCapitalizedName()); } - /** - * - * @param material - * @param itemName - * @param objects - */ public RepairRecipeBase(final MMDMaterial material, final Names itemName, final Object... objects) { this(material, itemName.toString(), objects); } - /** - * - * @param material - * @param itemName - * @param objects - */ public RepairRecipeBase(final MMDMaterial material, final String itemName, final Object... objects) { super(new ResourceLocation(ARMOR), material.getItemStack(itemName), objects); @@ -75,15 +58,15 @@ public boolean matches(final InventoryCrafting inv, final World worldIn) { for (int i = 0; i < inv.getSizeInventory(); i++) { final ItemStack item = inv.getStackInSlot(i); - + if(item.isEmpty()) { break; } - + if (!repairMatched) { repairMatched = OreDictionary.containsMatch(false, this.repairMaterials, item); } - + if (!matched) { matched = this.baseItem.getItem() == item.getItem() && item.getItemDamage() > 0; } @@ -118,10 +101,6 @@ public ItemStack getCraftingResult(final InventoryCrafting inv) { } } - /** - * - * @return - */ public int getRecipeSize() { int count = 1; count += OreDictionary.getOres(Oredicts.PLATE + this.materialName).size(); @@ -133,10 +112,6 @@ public ItemStack getRecipeOutput() { return this.material.getItemStack(this.itemName); } - /** - * - * @return - */ public NonNullList getInput() { final NonNullList inputs = NonNullList.create(); inputs.add(this.baseItem); diff --git a/src/main/java/com/mcmoddev/lib/recipe/ShieldRepairRecipe.java b/src/main/java/zone/moddev/mc/mmdlib/recipe/ShieldRepairRecipe.java old mode 100755 new mode 100644 similarity index 59% rename from src/main/java/com/mcmoddev/lib/recipe/ShieldRepairRecipe.java rename to src/main/java/zone/moddev/mc/mmdlib/recipe/ShieldRepairRecipe.java index c28a7b5..9505c52 --- a/src/main/java/com/mcmoddev/lib/recipe/ShieldRepairRecipe.java +++ b/src/main/java/zone/moddev/mc/mmdlib/recipe/ShieldRepairRecipe.java @@ -1,8 +1,8 @@ -package com.mcmoddev.lib.recipe; +package zone.moddev.mc.mmdlib.recipe; -import com.mcmoddev.lib.data.Names; -import com.mcmoddev.lib.material.MMDMaterial; -import com.mcmoddev.lib.util.Oredicts; +import zone.moddev.mc.mmdlib.data.Names; +import zone.moddev.mc.mmdlib.material.MMDMaterial; +import zone.moddev.mc.mmdlib.util.Oredicts; public class ShieldRepairRecipe extends RepairRecipeBase { diff --git a/src/main/java/com/mcmoddev/lib/recipe/ShieldUpgradeRecipe.java b/src/main/java/zone/moddev/mc/mmdlib/recipe/ShieldUpgradeRecipe.java old mode 100755 new mode 100644 similarity index 95% rename from src/main/java/com/mcmoddev/lib/recipe/ShieldUpgradeRecipe.java rename to src/main/java/zone/moddev/mc/mmdlib/recipe/ShieldUpgradeRecipe.java index 6dae107..7ddf861 --- a/src/main/java/com/mcmoddev/lib/recipe/ShieldUpgradeRecipe.java +++ b/src/main/java/zone/moddev/mc/mmdlib/recipe/ShieldUpgradeRecipe.java @@ -1,4 +1,4 @@ -package com.mcmoddev.lib.recipe; +package zone.moddev.mc.mmdlib.recipe; import java.util.Collection; import java.util.Collections; @@ -11,12 +11,12 @@ import org.apache.commons.lang3.tuple.Pair; -import com.mcmoddev.lib.MMDLib; -import com.mcmoddev.lib.data.MaterialStats; -import com.mcmoddev.lib.data.Names; -import com.mcmoddev.lib.init.Materials; -import com.mcmoddev.lib.material.MMDMaterial; -import com.mcmoddev.lib.util.Oredicts; +import zone.moddev.mc.mmdlib.MMDLib; +import zone.moddev.mc.mmdlib.data.MaterialStats; +import zone.moddev.mc.mmdlib.data.Names; +import zone.moddev.mc.mmdlib.init.Materials; +import zone.moddev.mc.mmdlib.material.MMDMaterial; +import zone.moddev.mc.mmdlib.util.Oredicts; import net.minecraft.enchantment.Enchantment; import net.minecraft.enchantment.EnchantmentHelper; @@ -171,11 +171,6 @@ private int getEnchantCount(final InventoryCrafting inv) { } } - /** - * - * @param inv - * @return - */ public int getCost(final InventoryCrafting inv) { final MMDMaterial shieldMat = Materials.getMaterialByName(this.materialName); final MMDMaterial upgradeMat = this.getUpgradeMat(inv); diff --git a/src/main/java/com/mcmoddev/lib/recipe/ToolReturnRecipe.java b/src/main/java/zone/moddev/mc/mmdlib/recipe/ToolReturnRecipe.java similarity index 95% rename from src/main/java/com/mcmoddev/lib/recipe/ToolReturnRecipe.java rename to src/main/java/zone/moddev/mc/mmdlib/recipe/ToolReturnRecipe.java index 03a64bb..87f71b1 100644 --- a/src/main/java/com/mcmoddev/lib/recipe/ToolReturnRecipe.java +++ b/src/main/java/zone/moddev/mc/mmdlib/recipe/ToolReturnRecipe.java @@ -1,4 +1,4 @@ -package com.mcmoddev.lib.recipe; +package zone.moddev.mc.mmdlib.recipe; import java.util.List; import java.util.Map; @@ -20,13 +20,6 @@ public class ToolReturnRecipe extends ShapelessOreRecipe { private final ItemStack theTool; private final List ingredients; - /** - * - * @param ident - * @param tool - * @param result - * @param ingredients - */ public ToolReturnRecipe(final ResourceLocation ident, final ItemStack tool, final ItemStack result, final ItemStack... ingredients) { super(ident, result, (Object[]) ingredients); diff --git a/src/main/java/com/mcmoddev/lib/recipe/conditions/ConditionEnabled.java b/src/main/java/zone/moddev/mc/mmdlib/recipe/conditions/ConditionEnabled.java old mode 100755 new mode 100644 similarity index 89% rename from src/main/java/com/mcmoddev/lib/recipe/conditions/ConditionEnabled.java rename to src/main/java/zone/moddev/mc/mmdlib/recipe/conditions/ConditionEnabled.java index dd5de9e..230c3cd --- a/src/main/java/com/mcmoddev/lib/recipe/conditions/ConditionEnabled.java +++ b/src/main/java/zone/moddev/mc/mmdlib/recipe/conditions/ConditionEnabled.java @@ -1,10 +1,10 @@ -package com.mcmoddev.lib.recipe.conditions; +package zone.moddev.mc.mmdlib.recipe.conditions; import java.util.Locale; import java.util.function.BooleanSupplier; import com.google.gson.JsonObject; -import com.mcmoddev.lib.util.Config.Options; +import zone.moddev.mc.mmdlib.util.Config.Options; import net.minecraft.util.JsonUtils; import net.minecraftforge.common.crafting.IConditionFactory; diff --git a/src/main/java/com/mcmoddev/lib/recipe/conditions/HammerEnabled.java b/src/main/java/zone/moddev/mc/mmdlib/recipe/conditions/HammerEnabled.java old mode 100755 new mode 100644 similarity index 76% rename from src/main/java/com/mcmoddev/lib/recipe/conditions/HammerEnabled.java rename to src/main/java/zone/moddev/mc/mmdlib/recipe/conditions/HammerEnabled.java index 92fe743..a8b7c1a --- a/src/main/java/com/mcmoddev/lib/recipe/conditions/HammerEnabled.java +++ b/src/main/java/zone/moddev/mc/mmdlib/recipe/conditions/HammerEnabled.java @@ -1,10 +1,10 @@ -package com.mcmoddev.lib.recipe.conditions; +package zone.moddev.mc.mmdlib.recipe.conditions; import java.util.function.BooleanSupplier; import com.google.gson.JsonObject; -import com.mcmoddev.lib.data.ConfigKeys; -import com.mcmoddev.lib.util.Config.Options; +import zone.moddev.mc.mmdlib.data.ConfigKeys; +import zone.moddev.mc.mmdlib.util.Config.Options; import net.minecraftforge.common.crafting.IConditionFactory; import net.minecraftforge.common.crafting.JsonContext; diff --git a/src/main/java/com/mcmoddev/lib/recipe/conditions/PlateRepairEnabled.java b/src/main/java/zone/moddev/mc/mmdlib/recipe/conditions/PlateRepairEnabled.java old mode 100755 new mode 100644 similarity index 80% rename from src/main/java/com/mcmoddev/lib/recipe/conditions/PlateRepairEnabled.java rename to src/main/java/zone/moddev/mc/mmdlib/recipe/conditions/PlateRepairEnabled.java index 8b369f4..f23db49 --- a/src/main/java/com/mcmoddev/lib/recipe/conditions/PlateRepairEnabled.java +++ b/src/main/java/zone/moddev/mc/mmdlib/recipe/conditions/PlateRepairEnabled.java @@ -1,9 +1,9 @@ -package com.mcmoddev.lib.recipe.conditions; +package zone.moddev.mc.mmdlib.recipe.conditions; import java.util.function.BooleanSupplier; import com.google.gson.JsonObject; -import com.mcmoddev.lib.util.Config.Options; +import zone.moddev.mc.mmdlib.util.Config.Options; import net.minecraftforge.common.crafting.IConditionFactory; import net.minecraftforge.common.crafting.JsonContext; diff --git a/src/main/java/zone/moddev/mc/mmdlib/recipe/conditions/package-info.java b/src/main/java/zone/moddev/mc/mmdlib/recipe/conditions/package-info.java new file mode 100644 index 0000000..72940f9 --- /dev/null +++ b/src/main/java/zone/moddev/mc/mmdlib/recipe/conditions/package-info.java @@ -0,0 +1,4 @@ +@ParametersAreNonnullByDefault +package zone.moddev.mc.mmdlib.recipe.conditions; + +import javax.annotation.ParametersAreNonnullByDefault; diff --git a/src/main/java/com/mcmoddev/lib/recipe/factories/ArmorRepair.java b/src/main/java/zone/moddev/mc/mmdlib/recipe/factories/ArmorRepair.java old mode 100755 new mode 100644 similarity index 72% rename from src/main/java/com/mcmoddev/lib/recipe/factories/ArmorRepair.java rename to src/main/java/zone/moddev/mc/mmdlib/recipe/factories/ArmorRepair.java index 31d33e6..3d157db --- a/src/main/java/com/mcmoddev/lib/recipe/factories/ArmorRepair.java +++ b/src/main/java/zone/moddev/mc/mmdlib/recipe/factories/ArmorRepair.java @@ -1,16 +1,16 @@ -package com.mcmoddev.lib.recipe.factories; +package zone.moddev.mc.mmdlib.recipe.factories; import java.util.Locale; import com.google.gson.JsonObject; import com.google.gson.JsonSyntaxException; -import com.mcmoddev.lib.init.Materials; -import com.mcmoddev.lib.material.MMDMaterial; -import com.mcmoddev.lib.recipe.BootsRepairRecipe; -import com.mcmoddev.lib.recipe.ChestplateRepairRecipe; -import com.mcmoddev.lib.recipe.HelmetRepairRecipe; -import com.mcmoddev.lib.recipe.LeggingsRepairRecipe; -import com.mcmoddev.lib.recipe.ShieldRepairRecipe; +import zone.moddev.mc.mmdlib.init.Materials; +import zone.moddev.mc.mmdlib.material.MMDMaterial; +import zone.moddev.mc.mmdlib.recipe.BootsRepairRecipe; +import zone.moddev.mc.mmdlib.recipe.ChestplateRepairRecipe; +import zone.moddev.mc.mmdlib.recipe.HelmetRepairRecipe; +import zone.moddev.mc.mmdlib.recipe.LeggingsRepairRecipe; +import zone.moddev.mc.mmdlib.recipe.ShieldRepairRecipe; import net.minecraft.item.crafting.IRecipe; import net.minecraft.util.JsonUtils; diff --git a/src/main/java/com/mcmoddev/lib/recipe/factories/ConfigVariedOutput.java b/src/main/java/zone/moddev/mc/mmdlib/recipe/factories/ConfigVariedOutput.java old mode 100755 new mode 100644 similarity index 93% rename from src/main/java/com/mcmoddev/lib/recipe/factories/ConfigVariedOutput.java rename to src/main/java/zone/moddev/mc/mmdlib/recipe/factories/ConfigVariedOutput.java index c0a3128..39a31b8 --- a/src/main/java/com/mcmoddev/lib/recipe/factories/ConfigVariedOutput.java +++ b/src/main/java/zone/moddev/mc/mmdlib/recipe/factories/ConfigVariedOutput.java @@ -1,4 +1,4 @@ -package com.mcmoddev.lib.recipe.factories; +package zone.moddev.mc.mmdlib.recipe.factories; import java.util.Map; import java.util.Set; @@ -8,8 +8,8 @@ import com.google.gson.JsonArray; import com.google.gson.JsonObject; import com.google.gson.JsonSyntaxException; -import com.mcmoddev.lib.MMDLib; -import com.mcmoddev.lib.util.Config.Options; +import zone.moddev.mc.mmdlib.MMDLib; +import zone.moddev.mc.mmdlib.util.Config.Options; import net.minecraft.item.ItemStack; import net.minecraft.item.crafting.IRecipe; @@ -45,8 +45,8 @@ public IRecipe parse(final JsonContext context, final JsonObject json) { resAmount = 1; } - // load the data here, map the ingredients, setup the primer and return the ShapedOreRecipe - // :) + // Resolve ingredients and dimensions before constructing the shaped recipe. + final Map ingMap = Maps.newHashMap(); JsonUtils.getJsonObject(json, "key").entrySet().stream() diff --git a/src/main/java/zone/moddev/mc/mmdlib/recipe/factories/package-info.java b/src/main/java/zone/moddev/mc/mmdlib/recipe/factories/package-info.java new file mode 100644 index 0000000..a72cbf4 --- /dev/null +++ b/src/main/java/zone/moddev/mc/mmdlib/recipe/factories/package-info.java @@ -0,0 +1,4 @@ +@ParametersAreNonnullByDefault +package zone.moddev.mc.mmdlib.recipe.factories; + +import javax.annotation.ParametersAreNonnullByDefault; diff --git a/src/main/java/zone/moddev/mc/mmdlib/recipe/package-info.java b/src/main/java/zone/moddev/mc/mmdlib/recipe/package-info.java new file mode 100644 index 0000000..751e651 --- /dev/null +++ b/src/main/java/zone/moddev/mc/mmdlib/recipe/package-info.java @@ -0,0 +1,4 @@ +@ParametersAreNonnullByDefault +package zone.moddev.mc.mmdlib.recipe; + +import javax.annotation.ParametersAreNonnullByDefault; diff --git a/src/main/java/com/mcmoddev/lib/registry/CrusherRecipeRegistry.java b/src/main/java/zone/moddev/mc/mmdlib/registry/CrusherRecipeRegistry.java similarity index 85% rename from src/main/java/com/mcmoddev/lib/registry/CrusherRecipeRegistry.java rename to src/main/java/zone/moddev/mc/mmdlib/registry/CrusherRecipeRegistry.java index a46d2c8..434ee66 100644 --- a/src/main/java/com/mcmoddev/lib/registry/CrusherRecipeRegistry.java +++ b/src/main/java/zone/moddev/mc/mmdlib/registry/CrusherRecipeRegistry.java @@ -1,4 +1,4 @@ -package com.mcmoddev.lib.registry; +package zone.moddev.mc.mmdlib.registry; import java.util.ArrayList; import java.util.Iterator; @@ -7,9 +7,9 @@ import javax.annotation.Nonnull; import com.google.common.collect.Lists; -import com.mcmoddev.lib.registry.recipe.ArbitraryCrusherRecipe; -import com.mcmoddev.lib.registry.recipe.ICrusherRecipe; -import com.mcmoddev.lib.registry.recipe.OreDictionaryCrusherRecipe; +import zone.moddev.mc.mmdlib.registry.recipe.ArbitraryCrusherRecipe; +import zone.moddev.mc.mmdlib.registry.recipe.ICrusherRecipe; +import zone.moddev.mc.mmdlib.registry.recipe.OreDictionaryCrusherRecipe; import net.minecraft.block.Block; import net.minecraft.item.Item; @@ -37,10 +37,6 @@ private CrusherRecipeRegistry() { this.disabledRecipes = new ArrayList<>(); } - /** - * - * @param oreDict - */ public static void disableRecipe(@Nonnull final String oreDict) { if (!instance.disabledRecipes.contains(oreDict)) { instance.disabledRecipes.add(oreDict); @@ -60,11 +56,6 @@ public static void addNewCrusherRecipe(@Nonnull final String oreDict, } } - /** - * - * @param input - * @param output - */ public static void addNewCrusherRecipe(@Nonnull final Block input, @Nonnull final ItemStack output) { if (recipeAllowed(input)) { @@ -72,11 +63,6 @@ public static void addNewCrusherRecipe(@Nonnull final Block input, } } - /** - * - * @param input - * @param output - */ public static void addNewCrusherRecipe(@Nonnull final ItemStack input, @Nonnull final ItemStack output) { if (recipeAllowed(input)) { @@ -84,11 +70,6 @@ public static void addNewCrusherRecipe(@Nonnull final ItemStack input, } } - /** - * - * @param input - * @param output - */ public static void addNewCrusherRecipe(@Nonnull final Item input, @Nonnull final ItemStack output) { if (recipeAllowed(new ItemStack(input))) { @@ -111,12 +92,12 @@ private static boolean recipeAllowed(final ItemStack input) { return items.contains(input); } - // proper entry point + // Register through the shared registry instance. public void register(@Nonnull final ICrusherRecipe recipe) { this.registry.register(recipe); } - // more back-compat + // Compatibility overloads delegate to the current registry. public static List getAll() { return Lists.newArrayList(instance.registry.iterator()); } @@ -126,16 +107,16 @@ public static CrusherRecipeRegistry getInstance() { } public void clearCache() { - // we do nothing - back-compat + // Retained as a no-op for older callers. } - // very nice to have helpers + // Convenience overloads for recipe lookup. /** - * get an ICrusherRecipe for a given input, if one exists. + * Finds the first crusher recipe that accepts the input. * - * @param itemStack - * @return + * @param itemStack the input stack to match + * @return the matching recipe, or null if none exists */ public static ICrusherRecipe getRecipeForInputItem(@Nonnull final ItemStack itemStack) { final Iterator iter = instance.registry.iterator(); @@ -151,10 +132,10 @@ public static ICrusherRecipe getRecipeForInputItem(@Nonnull final ItemStack item } /** - * if a recipe that can take the matching input exists, give us the name. + * Finds the registry name of a crusher recipe that accepts the input. * - * @param itemStack - * @return + * @param itemStack the input stack to match + * @return the matching recipe name, or an empty resource location if none exists */ public static ResourceLocation getNameForInputItem(@Nonnull final ItemStack itemStack) { final ICrusherRecipe r = getRecipeForInputItem(itemStack); @@ -166,8 +147,7 @@ public static ResourceLocation getNameForInputItem(@Nonnull final ItemStack item return new ResourceLocation(""); } - // removing recipes! - // statics are for convenience and convenient naming + // Recipe removal helpers. /** * remove a single entry, by resource location/name. @@ -211,7 +191,7 @@ public static void removeByInput(@Nonnull final ItemStack input) { public void remove(@Nonnull final ResourceLocation name) { this.registry.remove(name); } - + public IForgeRegistryModifiable getRegistry() { return this.registry; } diff --git a/src/main/java/com/mcmoddev/lib/registry/IOreDictionaryEntry.java b/src/main/java/zone/moddev/mc/mmdlib/registry/IOreDictionaryEntry.java similarity index 82% rename from src/main/java/com/mcmoddev/lib/registry/IOreDictionaryEntry.java rename to src/main/java/zone/moddev/mc/mmdlib/registry/IOreDictionaryEntry.java index dffa6da..65be306 100644 --- a/src/main/java/com/mcmoddev/lib/registry/IOreDictionaryEntry.java +++ b/src/main/java/zone/moddev/mc/mmdlib/registry/IOreDictionaryEntry.java @@ -1,4 +1,4 @@ -package com.mcmoddev.lib.registry; +package zone.moddev.mc.mmdlib.registry; /** * diff --git a/src/main/java/com/mcmoddev/lib/registry/package-info.java b/src/main/java/zone/moddev/mc/mmdlib/registry/package-info.java similarity index 71% rename from src/main/java/com/mcmoddev/lib/registry/package-info.java rename to src/main/java/zone/moddev/mc/mmdlib/registry/package-info.java index cceec7e..c24ec9c 100644 --- a/src/main/java/com/mcmoddev/lib/registry/package-info.java +++ b/src/main/java/zone/moddev/mc/mmdlib/registry/package-info.java @@ -1,4 +1,4 @@ /** * This package contains registry classes for registering content related to PowerAdvantage. */ -package com.mcmoddev.lib.registry; +package zone.moddev.mc.mmdlib.registry; diff --git a/src/main/java/com/mcmoddev/lib/registry/recipe/ArbitraryCrusherRecipe.java b/src/main/java/zone/moddev/mc/mmdlib/registry/recipe/ArbitraryCrusherRecipe.java similarity index 98% rename from src/main/java/com/mcmoddev/lib/registry/recipe/ArbitraryCrusherRecipe.java rename to src/main/java/zone/moddev/mc/mmdlib/registry/recipe/ArbitraryCrusherRecipe.java index 8462de6..5b422e4 100644 --- a/src/main/java/com/mcmoddev/lib/registry/recipe/ArbitraryCrusherRecipe.java +++ b/src/main/java/zone/moddev/mc/mmdlib/registry/recipe/ArbitraryCrusherRecipe.java @@ -1,4 +1,4 @@ -package com.mcmoddev.lib.registry.recipe; +package zone.moddev.mc.mmdlib.registry.recipe; import java.util.Collection; import java.util.Collections; diff --git a/src/main/java/com/mcmoddev/lib/registry/recipe/ICrusherNBTRecipe.java b/src/main/java/zone/moddev/mc/mmdlib/registry/recipe/ICrusherNBTRecipe.java similarity index 72% rename from src/main/java/com/mcmoddev/lib/registry/recipe/ICrusherNBTRecipe.java rename to src/main/java/zone/moddev/mc/mmdlib/registry/recipe/ICrusherNBTRecipe.java index 84b1f93..d2fcfb1 100644 --- a/src/main/java/com/mcmoddev/lib/registry/recipe/ICrusherNBTRecipe.java +++ b/src/main/java/zone/moddev/mc/mmdlib/registry/recipe/ICrusherNBTRecipe.java @@ -1,4 +1,4 @@ -package com.mcmoddev.lib.registry.recipe; +package zone.moddev.mc.mmdlib.registry.recipe; import net.minecraft.item.ItemStack; diff --git a/src/main/java/com/mcmoddev/lib/registry/recipe/ICrusherRecipe.java b/src/main/java/zone/moddev/mc/mmdlib/registry/recipe/ICrusherRecipe.java similarity index 96% rename from src/main/java/com/mcmoddev/lib/registry/recipe/ICrusherRecipe.java rename to src/main/java/zone/moddev/mc/mmdlib/registry/recipe/ICrusherRecipe.java index d477656..78ee364 100644 --- a/src/main/java/com/mcmoddev/lib/registry/recipe/ICrusherRecipe.java +++ b/src/main/java/zone/moddev/mc/mmdlib/registry/recipe/ICrusherRecipe.java @@ -1,4 +1,4 @@ -package com.mcmoddev.lib.registry.recipe; +package zone.moddev.mc.mmdlib.registry.recipe; import java.util.Collection; import java.util.List; diff --git a/src/main/java/com/mcmoddev/lib/registry/recipe/NBTCrusherRecipe.java b/src/main/java/zone/moddev/mc/mmdlib/registry/recipe/NBTCrusherRecipe.java similarity index 97% rename from src/main/java/com/mcmoddev/lib/registry/recipe/NBTCrusherRecipe.java rename to src/main/java/zone/moddev/mc/mmdlib/registry/recipe/NBTCrusherRecipe.java index 63d3132..5fe098c 100644 --- a/src/main/java/com/mcmoddev/lib/registry/recipe/NBTCrusherRecipe.java +++ b/src/main/java/zone/moddev/mc/mmdlib/registry/recipe/NBTCrusherRecipe.java @@ -1,4 +1,4 @@ -package com.mcmoddev.lib.registry.recipe; +package zone.moddev.mc.mmdlib.registry.recipe; import java.util.Arrays; import java.util.Collection; @@ -15,11 +15,11 @@ public class NBTCrusherRecipe extends IForgeRegistryEntry.Impl i private final InputMunger inputCallback; private final Predicate validItemCallback; private final ItemStack inputItem; - + public interface OutputMunger { public ItemStack run(final ItemStack input); } - + public interface InputMunger { public List run(final ItemStack input); } @@ -38,17 +38,16 @@ public NBTCrusherRecipe(final ItemStack input, final OutputMunger nbtCallback, f public NBTCrusherRecipe(final ItemStack input, final OutputMunger nbtCallback, final Predicate validItemCallback) { this(input, nbtCallback, (in) -> Arrays.asList(in), validItemCallback); } - + public NBTCrusherRecipe(final ItemStack input, final OutputMunger nbtCallback) { this(input, nbtCallback, (in) -> Arrays.asList(in), (in) -> OreDictionary.itemMatches(input, in, false)); } - + @Override public List getInputs() { return this.inputCallback.run(inputItem); } - @Override public ItemStack getOutput() { return getOutput(getInputs().get(0)); diff --git a/src/main/java/com/mcmoddev/lib/registry/recipe/NBTOreDictRecipe.java b/src/main/java/zone/moddev/mc/mmdlib/registry/recipe/NBTOreDictRecipe.java similarity index 94% rename from src/main/java/com/mcmoddev/lib/registry/recipe/NBTOreDictRecipe.java rename to src/main/java/zone/moddev/mc/mmdlib/registry/recipe/NBTOreDictRecipe.java index a605cc0..a8bde48 100644 --- a/src/main/java/com/mcmoddev/lib/registry/recipe/NBTOreDictRecipe.java +++ b/src/main/java/zone/moddev/mc/mmdlib/registry/recipe/NBTOreDictRecipe.java @@ -1,4 +1,4 @@ -package com.mcmoddev.lib.registry.recipe; +package zone.moddev.mc.mmdlib.registry.recipe; import java.util.Collection; import java.util.Collections; @@ -9,14 +9,14 @@ import net.minecraftforge.oredict.OreDictionary; import net.minecraftforge.registries.IForgeRegistryEntry; -import com.mcmoddev.lib.registry.recipe.NBTCrusherRecipe.OutputMunger; +import zone.moddev.mc.mmdlib.registry.recipe.NBTCrusherRecipe.OutputMunger; public class NBTOreDictRecipe extends IForgeRegistryEntry.Impl implements ICrusherRecipe, ICrusherNBTRecipe { private final OutputMunger outputCallback; private final InputMunger inputCallback; private final Predicate validItemCallback; private final String inputItem; - + public interface InputMunger { public List run(final String input); } @@ -35,11 +35,11 @@ public NBTOreDictRecipe(final String inputOreDict, final OutputMunger nbtCallbac public NBTOreDictRecipe(final String inputOreDict, final OutputMunger nbtCallback, final Predicate validItemCallback) { this(inputOreDict, nbtCallback, (in) -> OreDictionary.getOres(in), validItemCallback); } - + public NBTOreDictRecipe(final String inputOreDict, final OutputMunger nbtCallback) { this(inputOreDict, nbtCallback, (in) -> OreDictionary.getOres(in), (in) -> OreDictionary.containsMatch(false, OreDictionary.getOres(inputOreDict), in)); } - + @Override public List getInputs() { return this.inputCallback.run(inputItem); @@ -54,7 +54,7 @@ public ItemStack getOutput() { public ItemStack getOutput(ItemStack input) { return this.isValidInput(input)?this.outputCallback.run(input):ItemStack.EMPTY; } - + @Override public boolean isValidInput(ItemStack input) { return this.validItemCallback.test(input); diff --git a/src/main/java/com/mcmoddev/lib/registry/recipe/OreDictionaryCrusherRecipe.java b/src/main/java/zone/moddev/mc/mmdlib/registry/recipe/OreDictionaryCrusherRecipe.java similarity index 98% rename from src/main/java/com/mcmoddev/lib/registry/recipe/OreDictionaryCrusherRecipe.java rename to src/main/java/zone/moddev/mc/mmdlib/registry/recipe/OreDictionaryCrusherRecipe.java index b90bb05..8e98a94 100644 --- a/src/main/java/com/mcmoddev/lib/registry/recipe/OreDictionaryCrusherRecipe.java +++ b/src/main/java/zone/moddev/mc/mmdlib/registry/recipe/OreDictionaryCrusherRecipe.java @@ -1,4 +1,4 @@ -package com.mcmoddev.lib.registry.recipe; +package zone.moddev.mc.mmdlib.registry.recipe; import java.util.Collection; import java.util.Collections; diff --git a/src/main/java/zone/moddev/mc/mmdlib/registry/recipe/package-info.java b/src/main/java/zone/moddev/mc/mmdlib/registry/recipe/package-info.java new file mode 100644 index 0000000..3c8a08c --- /dev/null +++ b/src/main/java/zone/moddev/mc/mmdlib/registry/recipe/package-info.java @@ -0,0 +1,4 @@ +@ParametersAreNonnullByDefault +package zone.moddev.mc.mmdlib.registry.recipe; + +import javax.annotation.ParametersAreNonnullByDefault; diff --git a/src/main/java/com/mcmoddev/lib/tile/MMDEnergyConsumerTileEntity.java b/src/main/java/zone/moddev/mc/mmdlib/tile/MMDEnergyConsumerTileEntity.java similarity index 71% rename from src/main/java/com/mcmoddev/lib/tile/MMDEnergyConsumerTileEntity.java rename to src/main/java/zone/moddev/mc/mmdlib/tile/MMDEnergyConsumerTileEntity.java index b9d6d3d..1e9504a 100644 --- a/src/main/java/com/mcmoddev/lib/tile/MMDEnergyConsumerTileEntity.java +++ b/src/main/java/zone/moddev/mc/mmdlib/tile/MMDEnergyConsumerTileEntity.java @@ -1,12 +1,12 @@ -package com.mcmoddev.lib.tile; - -import com.mcmoddev.lib.container.gui.FeatureWrapperGui; -import com.mcmoddev.lib.container.gui.GuiContext; -import com.mcmoddev.lib.container.gui.IWidgetGui; -import com.mcmoddev.lib.container.gui.layout.GridLayout; -import com.mcmoddev.lib.container.gui.layout.SinglePieceWrapper; -import com.mcmoddev.lib.energy.ForgeEnergyStorage; -import com.mcmoddev.lib.feature.ForgeEnergyBatteryFeature; +package zone.moddev.mc.mmdlib.tile; + +import zone.moddev.mc.mmdlib.container.gui.FeatureWrapperGui; +import zone.moddev.mc.mmdlib.container.gui.GuiContext; +import zone.moddev.mc.mmdlib.container.gui.IWidgetGui; +import zone.moddev.mc.mmdlib.container.gui.layout.GridLayout; +import zone.moddev.mc.mmdlib.container.gui.layout.SinglePieceWrapper; +import zone.moddev.mc.mmdlib.energy.ForgeEnergyStorage; +import zone.moddev.mc.mmdlib.feature.ForgeEnergyBatteryFeature; public abstract class MMDEnergyConsumerTileEntity extends MMDStandardTileEntity { public static final int DEFAULT_ENERGY_CAPACITY = 50000; diff --git a/src/main/java/com/mcmoddev/lib/tile/MMDFeaturesTileEntity.java b/src/main/java/zone/moddev/mc/mmdlib/tile/MMDFeaturesTileEntity.java similarity index 87% rename from src/main/java/com/mcmoddev/lib/tile/MMDFeaturesTileEntity.java rename to src/main/java/zone/moddev/mc/mmdlib/tile/MMDFeaturesTileEntity.java index 4e8aef7..7ccb8df 100644 --- a/src/main/java/com/mcmoddev/lib/tile/MMDFeaturesTileEntity.java +++ b/src/main/java/zone/moddev/mc/mmdlib/tile/MMDFeaturesTileEntity.java @@ -1,4 +1,4 @@ -package com.mcmoddev.lib.tile; +package zone.moddev.mc.mmdlib.tile; import java.util.ArrayList; import java.util.HashMap; @@ -8,18 +8,18 @@ import java.util.Objects; import java.util.Set; import javax.annotation.Nullable; -import com.mcmoddev.lib.capability.CapabilitiesContainer; -import com.mcmoddev.lib.container.IWidgetContainer; -import com.mcmoddev.lib.container.gui.GuiContext; -import com.mcmoddev.lib.container.gui.IWidgetGui; -import com.mcmoddev.lib.container.gui.layout.VerticalStackLayout; -import com.mcmoddev.lib.container.widget.IWidget; -import com.mcmoddev.lib.feature.FeatureDirtyLevel; -import com.mcmoddev.lib.feature.IFeature; -import com.mcmoddev.lib.feature.IFeatureHolder; -import com.mcmoddev.lib.feature.IServerFeature; -//import com.mcmoddev.lib.util.LoggingUtil; -import com.mcmoddev.lib.util.NBTUtils; +import zone.moddev.mc.mmdlib.capability.CapabilitiesContainer; +import zone.moddev.mc.mmdlib.container.IWidgetContainer; +import zone.moddev.mc.mmdlib.container.gui.GuiContext; +import zone.moddev.mc.mmdlib.container.gui.IWidgetGui; +import zone.moddev.mc.mmdlib.container.gui.layout.VerticalStackLayout; +import zone.moddev.mc.mmdlib.container.widget.IWidget; +import zone.moddev.mc.mmdlib.feature.FeatureDirtyLevel; +import zone.moddev.mc.mmdlib.feature.IFeature; +import zone.moddev.mc.mmdlib.feature.IFeatureHolder; +import zone.moddev.mc.mmdlib.feature.IServerFeature; + +import zone.moddev.mc.mmdlib.util.NBTUtils; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.EnumFacing; import net.minecraft.util.ITickable; @@ -75,7 +75,7 @@ protected void testForDirtyFeatures() { if ((this.dirtyFeatures.size() > 0) && !this.getWorld().isRemote) { final NBTTagCompound nbt = this.getFeaturesUpdateTag(FeatureDirtyLevel.TICK,true); if (nbt.getSize() > 0) { - //LoggingUtil.logNbtMessage(this, "TICK UPDATE TAG", nbt); + this.sendToListeningClients(nbt); } } @@ -120,7 +120,7 @@ public NBTTagCompound writeToNBT(final NBTTagCompound compound) { } } if (featuresNBT.getSize() > 0) { - //LoggingUtil.logNbtMessage(this, "WRITE FEATURES NBT", featuresNBT); + compound.setTag("features", featuresNBT); } @@ -129,14 +129,14 @@ public NBTTagCompound writeToNBT(final NBTTagCompound compound) { @Override public void readFromNBT(final NBTTagCompound compound) { - // TODO: this is a hack... add an "internal" read features method and handle gui update tag correctly + // Partial GUI updates omit base tile fields; full NBT loads also restore the base tile. if (compound.getSize() >= 3) { super.readFromNBT(compound); } if (compound.hasKey("features", Constants.NBT.TAG_COMPOUND)) { final NBTTagCompound featuresNBT = compound.getCompoundTag("features"); - //LoggingUtil.logNbtMessage(this, "READ FEATURES NBT", featuresNBT); + for (final IFeature feature : this.features) { if (featuresNBT.hasKey(feature.getKey(), Constants.NBT.TAG_COMPOUND)) { feature.deserializeNBT(featuresNBT.getCompoundTag(feature.getKey())); diff --git a/src/main/java/com/mcmoddev/lib/tile/MMDStandardTileEntity.java b/src/main/java/zone/moddev/mc/mmdlib/tile/MMDStandardTileEntity.java similarity index 66% rename from src/main/java/com/mcmoddev/lib/tile/MMDStandardTileEntity.java rename to src/main/java/zone/moddev/mc/mmdlib/tile/MMDStandardTileEntity.java index 0aa240a..915235e 100644 --- a/src/main/java/com/mcmoddev/lib/tile/MMDStandardTileEntity.java +++ b/src/main/java/zone/moddev/mc/mmdlib/tile/MMDStandardTileEntity.java @@ -1,13 +1,13 @@ -package com.mcmoddev.lib.tile; +package zone.moddev.mc.mmdlib.tile; -import com.mcmoddev.lib.container.PlayerInventory; -import com.mcmoddev.lib.container.gui.FeatureWrapperGui; -import com.mcmoddev.lib.container.gui.GuiContext; -import com.mcmoddev.lib.container.gui.IWidgetGui; -import com.mcmoddev.lib.container.gui.layout.SinglePieceWrapper; -import com.mcmoddev.lib.container.gui.layout.VerticalStackLayout; -import com.mcmoddev.lib.container.gui.util.Padding; -import com.mcmoddev.lib.feature.PlayerInventoryFeature; +import zone.moddev.mc.mmdlib.container.PlayerInventory; +import zone.moddev.mc.mmdlib.container.gui.FeatureWrapperGui; +import zone.moddev.mc.mmdlib.container.gui.GuiContext; +import zone.moddev.mc.mmdlib.container.gui.IWidgetGui; +import zone.moddev.mc.mmdlib.container.gui.layout.SinglePieceWrapper; +import zone.moddev.mc.mmdlib.container.gui.layout.VerticalStackLayout; +import zone.moddev.mc.mmdlib.container.gui.util.Padding; +import zone.moddev.mc.mmdlib.feature.PlayerInventoryFeature; import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.SideOnly; diff --git a/src/main/java/com/mcmoddev/lib/tile/MMDTileEntity.java b/src/main/java/zone/moddev/mc/mmdlib/tile/MMDTileEntity.java similarity index 86% rename from src/main/java/com/mcmoddev/lib/tile/MMDTileEntity.java rename to src/main/java/zone/moddev/mc/mmdlib/tile/MMDTileEntity.java index 315b27b..0c58830 100644 --- a/src/main/java/com/mcmoddev/lib/tile/MMDTileEntity.java +++ b/src/main/java/zone/moddev/mc/mmdlib/tile/MMDTileEntity.java @@ -1,11 +1,11 @@ -package com.mcmoddev.lib.tile; +package zone.moddev.mc.mmdlib.tile; import javax.annotation.Nullable; -import com.mcmoddev.lib.container.IGuiProvider; -import com.mcmoddev.lib.container.IWidgetContainer; -import com.mcmoddev.lib.container.MMDContainer; -import com.mcmoddev.lib.container.gui.MMDGuiContainer; -import com.mcmoddev.lib.util.LoggingUtil; +import zone.moddev.mc.mmdlib.container.IGuiProvider; +import zone.moddev.mc.mmdlib.container.IWidgetContainer; +import zone.moddev.mc.mmdlib.container.MMDContainer; +import zone.moddev.mc.mmdlib.container.gui.MMDGuiContainer; +import zone.moddev.mc.mmdlib.util.LoggingUtil; import net.minecraft.client.gui.inventory.GuiContainer; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.nbt.NBTTagCompound; @@ -63,7 +63,7 @@ public void receiveGuiUpdateTag(final NBTTagCompound compound) { public SPacketUpdateTileEntity getUpdatePacket() { final NBTTagCompound tag = this.getUpdateTag(); if (!tag.isEmpty()) { - //LoggingUtil.logNbtMessage(this, "SPacket TAG", tag); + return new SPacketUpdateTileEntity(this.getPos(), 42, tag); } return null; @@ -75,7 +75,7 @@ public NBTTagCompound getUpdateTag() { this.writeToUpdateTag(compound); if (!compound.isEmpty()) { - //LoggingUtil.logNbtMessage(this, "GET UPDATE NBT", compound); + } return compound; } @@ -87,7 +87,6 @@ protected void writeToUpdateTag(final NBTTagCompound tag) { @Override public void handleUpdateTag(final NBTTagCompound tag) { - //LoggingUtil.logNbtMessage(this, "HANDLE UPDATE NBT", tag); if (tag.hasKey(PARTIAL_SYNC_KEY, Constants.NBT.TAG_COMPOUND)) { this.readFromUpdateTag(tag.getCompoundTag(PARTIAL_SYNC_KEY)); @@ -107,7 +106,7 @@ protected void sendToListeningClients(final NBTTagCompound nbt) { if (entry != null) { final NBTTagCompound updateTag = new NBTTagCompound(); updateTag.setTag(PARTIAL_SYNC_KEY, nbt); - //LoggingUtil.logNbtMessage(this, "SEND TO CLIENT", nbt); + entry.sendPacket(new SPacketUpdateTileEntity(this.getPos(), 42, updateTag)); } } diff --git a/src/main/java/com/mcmoddev/lib/common/package-info.java b/src/main/java/zone/moddev/mc/mmdlib/tile/package-info.java similarity index 81% rename from src/main/java/com/mcmoddev/lib/common/package-info.java rename to src/main/java/zone/moddev/mc/mmdlib/tile/package-info.java index bbd959a..d63093c 100644 --- a/src/main/java/com/mcmoddev/lib/common/package-info.java +++ b/src/main/java/zone/moddev/mc/mmdlib/tile/package-info.java @@ -1,6 +1,6 @@ @ParametersAreNonnullByDefault @MethodsReturnNonnullByDefault -package com.mcmoddev.lib.common; +package zone.moddev.mc.mmdlib.tile; import javax.annotation.ParametersAreNonnullByDefault; import mcp.MethodsReturnNonnullByDefault; diff --git a/src/main/java/com/mcmoddev/lib/util/CheeseMath.java b/src/main/java/zone/moddev/mc/mmdlib/util/CheeseMath.java similarity index 91% rename from src/main/java/com/mcmoddev/lib/util/CheeseMath.java rename to src/main/java/zone/moddev/mc/mmdlib/util/CheeseMath.java index b8a58d9..05becd7 100644 --- a/src/main/java/com/mcmoddev/lib/util/CheeseMath.java +++ b/src/main/java/zone/moddev/mc/mmdlib/util/CheeseMath.java @@ -1,4 +1,4 @@ -package com.mcmoddev.lib.util; +package zone.moddev.mc.mmdlib.util; import java.util.ArrayList; import java.util.List; @@ -7,10 +7,10 @@ import javax.annotation.Nonnull; import com.google.common.collect.ImmutableList; -import com.mcmoddev.lib.data.Names; -import com.mcmoddev.lib.data.SharedStrings; -import com.mcmoddev.lib.material.MMDMaterial; -import com.mcmoddev.lib.recipe.RepairRecipeBase; +import zone.moddev.mc.mmdlib.data.Names; +import zone.moddev.mc.mmdlib.data.SharedStrings; +import zone.moddev.mc.mmdlib.material.MMDMaterial; +import zone.moddev.mc.mmdlib.recipe.RepairRecipeBase; import net.minecraft.item.ItemStack; import net.minecraft.item.crafting.IRecipe; @@ -106,12 +106,6 @@ private static int rawNuggetCount(@Nonnull final MMDMaterial material, }).sum(); } - /** - * - * @param material - * @param outputItem - * @return - */ public static int getIngotCount(@Nonnull final MMDMaterial material, @Nonnull final ItemStack outputItem) { if (outputItem.isEmpty()) { return 0; @@ -120,12 +114,6 @@ public static int getIngotCount(@Nonnull final MMDMaterial material, @Nonnull fi return ( rawNuggetCount(material, outputItem) / 9) / getOutputCount(outputItem); } - /** - * - * @param material - * @param outputItem - * @return - */ public static int getNuggetCount(@Nonnull final MMDMaterial material, @Nonnull final ItemStack outputItem) { if (outputItem.isEmpty()) { return 0; diff --git a/src/main/java/com/mcmoddev/lib/util/Config.java b/src/main/java/zone/moddev/mc/mmdlib/util/Config.java similarity index 94% rename from src/main/java/com/mcmoddev/lib/util/Config.java rename to src/main/java/zone/moddev/mc/mmdlib/util/Config.java index 842cc2f..4f16d84 100644 --- a/src/main/java/com/mcmoddev/lib/util/Config.java +++ b/src/main/java/zone/moddev/mc/mmdlib/util/Config.java @@ -1,8 +1,8 @@ -package com.mcmoddev.lib.util; +package zone.moddev.mc.mmdlib.util; -import com.mcmoddev.lib.MMDLib; -import com.mcmoddev.lib.data.SharedStrings; -import com.mcmoddev.lib.registry.CrusherRecipeRegistry; +import zone.moddev.mc.mmdlib.MMDLib; +import zone.moddev.mc.mmdlib.data.SharedStrings; +import zone.moddev.mc.mmdlib.registry.CrusherRecipeRegistry; import net.minecraft.block.Block; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; @@ -24,7 +24,7 @@ public class Config { private static final List UserCrusherRecipes = new ArrayList<>(); - // shut up SonarLint/SonarQube + // Namespace for the legacy configuration accessors. protected Config() { } @@ -95,9 +95,6 @@ protected static String[] parseDisabledRecipes(final String rawDisabledRecipes) } } - /** - * - */ public static void postInit() { addUserRecipes(); @@ -243,20 +240,20 @@ public static class Options { private static boolean furnaceCheese = true; private static boolean furnace1112 = true; // Overridden by FURNACE_CHEESE private static int rodQuantity = 4; - - // Shouldn't this and the bits relating to it be in NetherMetals strictly ? + + // Shared by consumers that enable Nether material recipes. private static int explosionChance = 0; private static int angerPigmenRange = 0; - + // INTEGRATION private static final Map modEnabled = new HashMap<>(); - + // MATERIALS private static final Map materialEnabled = new HashMap<>(); - + // THINGS private static final Map thingEnabled = new HashMap<>(); - + // FLUIDS private static final Map fluidEnabled = new HashMap<>(); @@ -350,14 +347,10 @@ public static boolean enableModderSupportThings() { private static String[] disabledRecipes = null; - /** - * - * @param string - */ public static void setDisabledRecipes(final String[] string) { disabledRecipes = string; Arrays.asList(disabledRecipes).stream() - .forEach(com.mcmoddev.lib.registry.CrusherRecipeRegistry::disableRecipe); + .forEach(zone.moddev.mc.mmdlib.registry.CrusherRecipeRegistry::disableRecipe); } public static String[] disabledRecipes() { @@ -403,11 +396,6 @@ protected static void clearOptions() { // to support testability fluidEnabled.clear(); } - /** - * - * @param modName - * @return - */ public static boolean isModEnabled(final String modName) { final String testName = modName.toLowerCase(Locale.ROOT); if (modEnabled.containsKey(testName)) { @@ -416,22 +404,12 @@ public static boolean isModEnabled(final String modName) { return false; } - /** - * - * @param modName - * @param bool - */ public static void modEnabled(final String modName, final Boolean bool) { if (!modEnabled.containsKey(modName)) { modEnabled.put(modName.toLowerCase(Locale.ROOT), bool); } } - /** - * - * @param name - * @return - */ public static boolean isMaterialEnabled(final String name) { final String testName = name.toLowerCase(Locale.ROOT); if (materialEnabled.containsKey(testName)) { @@ -440,22 +418,12 @@ public static boolean isMaterialEnabled(final String name) { return false; } - /** - * - * @param materialName - * @param bool - */ public static void materialEnabled(final String materialName, final Boolean bool) { if (!materialEnabled.containsKey(materialName)) { materialEnabled.put(materialName.toLowerCase(Locale.ROOT), bool); } } - /** - * - * @param name - * @return - */ public static boolean isThingEnabled(final String name) { final String testName = name.toLowerCase(Locale.ROOT); if (thingEnabled.containsKey(testName)) { @@ -464,22 +432,12 @@ public static boolean isThingEnabled(final String name) { return false; } - /** - * - * @param name - * @param bool - */ public static void thingEnabled(final String name, final Boolean bool) { if (!thingEnabled.containsKey(name)) { thingEnabled.put(name.toLowerCase(Locale.ROOT), bool); } } - /** - * - * @param name - * @return - */ public static boolean isFluidEnabled(final String name) { final String testName = name.toLowerCase(Locale.ROOT); if (fluidEnabled.containsKey(testName)) { @@ -491,11 +449,6 @@ public static boolean isFluidEnabled(final String name) { // FORCED TRAIT REGISTRATIONS private static final Map forcedTrait = new HashMap<>(); - /** - * - * @param name - * @return - */ public static boolean isForcedTrait(final String name){ final String testName = name.toLowerCase(Locale.ROOT); if (forcedTrait.containsKey(testName)) { @@ -504,22 +457,12 @@ public static boolean isForcedTrait(final String name){ return false; } - /** - * - * @param name - * @param bool - */ public static void fluidEnabled(final String name, final Boolean bool) { if (!fluidEnabled.containsKey(name)) { fluidEnabled.put(name.toLowerCase(Locale.ROOT), bool); } } - /** - * - * @param name - * @param bool - */ public static void forcedTrait(final String name, final Boolean bool) { if (!forcedTrait.containsKey(name)) { forcedTrait.put(name.toLowerCase(Locale.ROOT), bool); diff --git a/src/main/java/com/mcmoddev/lib/util/ConfigBase.java b/src/main/java/zone/moddev/mc/mmdlib/util/ConfigBase.java similarity index 51% rename from src/main/java/com/mcmoddev/lib/util/ConfigBase.java rename to src/main/java/zone/moddev/mc/mmdlib/util/ConfigBase.java index 9055d2e..abd72e5 100644 --- a/src/main/java/com/mcmoddev/lib/util/ConfigBase.java +++ b/src/main/java/zone/moddev/mc/mmdlib/util/ConfigBase.java @@ -1,8 +1,8 @@ -package com.mcmoddev.lib.util; +package zone.moddev.mc.mmdlib.util; @Deprecated public class ConfigBase extends Config { - // Here purely for holdovers, will be removed with next beta + // Retained for compatibility with integrations using this class name. public static class Options extends Config.Options { } } diff --git a/src/main/java/com/mcmoddev/lib/util/FeatureUtils.java b/src/main/java/zone/moddev/mc/mmdlib/util/FeatureUtils.java similarity index 79% rename from src/main/java/com/mcmoddev/lib/util/FeatureUtils.java rename to src/main/java/zone/moddev/mc/mmdlib/util/FeatureUtils.java index 501d4e2..f76f970 100644 --- a/src/main/java/com/mcmoddev/lib/util/FeatureUtils.java +++ b/src/main/java/zone/moddev/mc/mmdlib/util/FeatureUtils.java @@ -1,10 +1,10 @@ -package com.mcmoddev.lib.util; +package zone.moddev.mc.mmdlib.util; import javax.annotation.Nullable; import javax.annotation.ParametersAreNonnullByDefault; -import com.mcmoddev.lib.feature.IFeature; -import com.mcmoddev.lib.feature.IFeatureHolder; -import com.mcmoddev.lib.feature.IFeatureHolderProxy; +import zone.moddev.mc.mmdlib.feature.IFeature; +import zone.moddev.mc.mmdlib.feature.IFeatureHolder; +import zone.moddev.mc.mmdlib.feature.IFeatureHolderProxy; import mcp.MethodsReturnNonnullByDefault; @MethodsReturnNonnullByDefault diff --git a/src/main/java/com/mcmoddev/lib/util/FluidUtils.java b/src/main/java/zone/moddev/mc/mmdlib/util/FluidUtils.java similarity index 97% rename from src/main/java/com/mcmoddev/lib/util/FluidUtils.java rename to src/main/java/zone/moddev/mc/mmdlib/util/FluidUtils.java index 1f79ade..79c93e3 100644 --- a/src/main/java/com/mcmoddev/lib/util/FluidUtils.java +++ b/src/main/java/zone/moddev/mc/mmdlib/util/FluidUtils.java @@ -1,4 +1,4 @@ -package com.mcmoddev.lib.util; +package zone.moddev.mc.mmdlib.util; import javax.annotation.Nullable; import javax.annotation.ParametersAreNonnullByDefault; @@ -13,7 +13,6 @@ @MethodsReturnNonnullByDefault @ParametersAreNonnullByDefault public final class FluidUtils { - // TODO: make fill/drain more generic so they both use the same code... just reversed. private FluidUtils() { } diff --git a/src/main/java/com/mcmoddev/lib/util/GuiUtils.java b/src/main/java/zone/moddev/mc/mmdlib/util/GuiUtils.java similarity index 84% rename from src/main/java/com/mcmoddev/lib/util/GuiUtils.java rename to src/main/java/zone/moddev/mc/mmdlib/util/GuiUtils.java index e538574..7f3507c 100644 --- a/src/main/java/com/mcmoddev/lib/util/GuiUtils.java +++ b/src/main/java/zone/moddev/mc/mmdlib/util/GuiUtils.java @@ -1,10 +1,10 @@ -package com.mcmoddev.lib.util; +package zone.moddev.mc.mmdlib.util; import java.awt.Color; import javax.annotation.Nullable; import javax.annotation.ParametersAreNonnullByDefault; -import com.mcmoddev.lib.container.IWidgetContainer; -import com.mcmoddev.lib.container.IWidgetContainerProxy; +import zone.moddev.mc.mmdlib.container.IWidgetContainer; +import zone.moddev.mc.mmdlib.container.IWidgetContainerProxy; import mcp.MethodsReturnNonnullByDefault; @MethodsReturnNonnullByDefault diff --git a/src/main/java/com/mcmoddev/lib/util/Helpers.java b/src/main/java/zone/moddev/mc/mmdlib/util/Helpers.java similarity index 95% rename from src/main/java/com/mcmoddev/lib/util/Helpers.java rename to src/main/java/zone/moddev/mc/mmdlib/util/Helpers.java index fc96901..8644221 100644 --- a/src/main/java/com/mcmoddev/lib/util/Helpers.java +++ b/src/main/java/zone/moddev/mc/mmdlib/util/Helpers.java @@ -1,8 +1,8 @@ -package com.mcmoddev.lib.util; +package zone.moddev.mc.mmdlib.util; import java.util.Map; -import com.mcmoddev.lib.data.SharedStrings; +import zone.moddev.mc.mmdlib.data.SharedStrings; import net.minecraft.block.properties.IProperty; import net.minecraft.util.EnumFacing; @@ -24,7 +24,7 @@ public Helpers() { public static EnumFacing rotateAround(final EnumFacing forward) { return forward.rotateY(); } - + /** * Rotate EnumFacing around anti-clockwise. * @@ -36,7 +36,7 @@ public static EnumFacing rotateAround(final EnumFacing forward) { public static EnumFacing invertedRotateAround(final EnumFacing forward) { return forward.rotateYCCW(); } - + /** * Get PropertyString from BlockState properties. * diff --git a/src/main/java/com/mcmoddev/lib/util/HorseArmorUtils.java b/src/main/java/zone/moddev/mc/mmdlib/util/HorseArmorUtils.java similarity index 86% rename from src/main/java/com/mcmoddev/lib/util/HorseArmorUtils.java rename to src/main/java/zone/moddev/mc/mmdlib/util/HorseArmorUtils.java index 564d262..9a59e0e 100644 --- a/src/main/java/com/mcmoddev/lib/util/HorseArmorUtils.java +++ b/src/main/java/zone/moddev/mc/mmdlib/util/HorseArmorUtils.java @@ -1,4 +1,4 @@ -package com.mcmoddev.lib.util; +package zone.moddev.mc.mmdlib.util; import java.util.HashMap; import java.util.Locale; @@ -7,7 +7,7 @@ import javax.annotation.Nonnull; import javax.annotation.Nullable; -import com.mcmoddev.lib.data.SharedStrings; +import zone.moddev.mc.mmdlib.data.SharedStrings; import net.minecraft.entity.passive.HorseArmorType; import net.minecraftforge.common.util.EnumHelper; @@ -21,13 +21,6 @@ private HorseArmorUtils() { throw new IllegalAccessError(SharedStrings.NOT_INSTANTIABLE); } - /** - * - * @param protection - * @param lowerName - * @param hash - * @return - */ public static HorseArmorType getArmorType(final int protection, @Nonnull final String lowerName, @Nonnull final String hash) { final String name = lowerName.toUpperCase(Locale.ROOT); diff --git a/src/main/java/com/mcmoddev/lib/util/IntegrationConfigOptions.java b/src/main/java/zone/moddev/mc/mmdlib/util/IntegrationConfigOptions.java similarity index 93% rename from src/main/java/com/mcmoddev/lib/util/IntegrationConfigOptions.java rename to src/main/java/zone/moddev/mc/mmdlib/util/IntegrationConfigOptions.java index c0441be..26e70f4 100644 --- a/src/main/java/com/mcmoddev/lib/util/IntegrationConfigOptions.java +++ b/src/main/java/zone/moddev/mc/mmdlib/util/IntegrationConfigOptions.java @@ -1,4 +1,4 @@ -package com.mcmoddev.lib.util; +package zone.moddev.mc.mmdlib.util; public class IntegrationConfigOptions { private String identifier; diff --git a/src/main/java/com/mcmoddev/lib/util/ItemGuiUtils.java b/src/main/java/zone/moddev/mc/mmdlib/util/ItemGuiUtils.java similarity index 89% rename from src/main/java/com/mcmoddev/lib/util/ItemGuiUtils.java rename to src/main/java/zone/moddev/mc/mmdlib/util/ItemGuiUtils.java index 5b2cb25..6bedec3 100644 --- a/src/main/java/com/mcmoddev/lib/util/ItemGuiUtils.java +++ b/src/main/java/zone/moddev/mc/mmdlib/util/ItemGuiUtils.java @@ -1,10 +1,10 @@ -package com.mcmoddev.lib.util; +package zone.moddev.mc.mmdlib.util; import javax.annotation.Nullable; import javax.annotation.ParametersAreNonnullByDefault; -import com.mcmoddev.lib.MMDLib; -import com.mcmoddev.lib.common.IModInstanceProvider; -import com.mcmoddev.lib.container.GuiHandlerIds; +import zone.moddev.mc.mmdlib.MMDLib; +import zone.moddev.mc.mmdlib.common.IModInstanceProvider; +import zone.moddev.mc.mmdlib.container.GuiHandlerIds; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; @@ -21,7 +21,7 @@ public final class ItemGuiUtils { private ItemGuiUtils() {} public static EnumActionResult onItemUse(Item item, EnumActionResult superResult, EntityPlayer player, World worldIn, BlockPos pos, EnumHand hand) { - // TODO: move this code to a helper class + if (!worldIn.isRemote && (superResult == EnumActionResult.PASS) && (hand == player.getActiveHand())) { player.openGui(ItemGuiUtils.getModInstance(item, worldIn), (2 << 3) + ((hand == EnumHand.MAIN_HAND) ? GuiHandlerIds.GUI_ITEM_MAIN_HAND.getValue() : GuiHandlerIds.GUI_ITEM_OFF_HAND.getValue()), @@ -33,7 +33,7 @@ public static EnumActionResult onItemUse(Item item, EnumActionResult superResult @Nullable public static ActionResult onItemRightClick(Item item, World worldIn, EntityPlayer playerIn, EnumHand handIn) { - // TODO: move this code to a helper class + if (!worldIn.isRemote && (handIn == playerIn.getActiveHand())) { playerIn.openGui(ItemGuiUtils.getModInstance(item, worldIn), (1 << 3) + ((handIn == EnumHand.MAIN_HAND) ? GuiHandlerIds.GUI_ITEM_MAIN_HAND.getValue() : GuiHandlerIds.GUI_ITEM_OFF_HAND.getValue()), diff --git a/src/main/java/com/mcmoddev/lib/util/ItemStackUtils.java b/src/main/java/zone/moddev/mc/mmdlib/util/ItemStackUtils.java similarity index 86% rename from src/main/java/com/mcmoddev/lib/util/ItemStackUtils.java rename to src/main/java/zone/moddev/mc/mmdlib/util/ItemStackUtils.java index cdef78a..87c03ac 100644 --- a/src/main/java/com/mcmoddev/lib/util/ItemStackUtils.java +++ b/src/main/java/zone/moddev/mc/mmdlib/util/ItemStackUtils.java @@ -1,4 +1,4 @@ -package com.mcmoddev.lib.util; +package zone.moddev.mc.mmdlib.util; import javax.annotation.ParametersAreNonnullByDefault; import net.minecraft.item.ItemStack; @@ -18,7 +18,7 @@ public static boolean areEqualIgnoreSize(ItemStack a, ItemStack b) { } public static ItemStack copyWithSize(ItemStack source, int size) { - // for some reason I think there is a forge method for this, but couldn't find it :S + // A non-positive count represents an empty stack. if (size > 0) { ItemStack result = source.copy(); result.setCount(size); diff --git a/src/main/java/com/mcmoddev/lib/util/LoggingUtil.java b/src/main/java/zone/moddev/mc/mmdlib/util/LoggingUtil.java similarity index 87% rename from src/main/java/com/mcmoddev/lib/util/LoggingUtil.java rename to src/main/java/zone/moddev/mc/mmdlib/util/LoggingUtil.java index dbff9b6..2fe9135 100644 --- a/src/main/java/com/mcmoddev/lib/util/LoggingUtil.java +++ b/src/main/java/zone/moddev/mc/mmdlib/util/LoggingUtil.java @@ -1,10 +1,10 @@ -package com.mcmoddev.lib.util; +package zone.moddev.mc.mmdlib.util; import javax.annotation.Nullable; import javax.annotation.ParametersAreNonnullByDefault; -import com.mcmoddev.lib.MMDLib; -import com.mcmoddev.lib.container.IWidgetContainer; -import com.mcmoddev.lib.container.MMDContainer; +import zone.moddev.mc.mmdlib.MMDLib; +import zone.moddev.mc.mmdlib.container.IWidgetContainer; +import zone.moddev.mc.mmdlib.container.MMDContainer; import net.minecraft.nbt.NBTBase; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; @@ -22,7 +22,7 @@ public final class LoggingUtil { private LoggingUtil() { } public static boolean isExtraLoggingEnabled() { - // TODO: make this into a config thingy + // Extra NBT diagnostics are currently always enabled. return true; } @@ -84,7 +84,7 @@ public static void logNbtMessage(@Nullable final Object sender, final String rea private static void appendTileEntityInfo(final StringBuilder log, final TileEntity sender) { log.append("["); final World world = sender.getWorld(); - //noinspection ConstantConditions // it can happen if this is called before TE is fully created + //noinspection ConstantConditions // Tile coordinates may be unavailable during construction. if (world != null) { log.append("dim: "); log.append(world.provider.getDimension()); @@ -93,7 +93,7 @@ private static void appendTileEntityInfo(final StringBuilder log, final TileEnti log.append("no dim info, "); } final BlockPos pos = sender.getPos(); - //noinspection ConstantConditions // it can happen if this is called before TE is fully created + //noinspection ConstantConditions // Tile coordinates may be unavailable during construction. if (pos != null) { log.append(pos.toString()); } else { diff --git a/src/main/java/com/mcmoddev/lib/util/MMDLibConfig.java b/src/main/java/zone/moddev/mc/mmdlib/util/MMDLibConfig.java old mode 100755 new mode 100644 similarity index 94% rename from src/main/java/com/mcmoddev/lib/util/MMDLibConfig.java rename to src/main/java/zone/moddev/mc/mmdlib/util/MMDLibConfig.java index a349011..b57825e --- a/src/main/java/com/mcmoddev/lib/util/MMDLibConfig.java +++ b/src/main/java/zone/moddev/mc/mmdlib/util/MMDLibConfig.java @@ -1,19 +1,19 @@ -package com.mcmoddev.lib.util; +package zone.moddev.mc.mmdlib.util; import java.io.File; -import com.mcmoddev.lib.data.MaterialNames; -import com.mcmoddev.lib.MMDLib; -import com.mcmoddev.lib.data.ConfigKeys; -import com.mcmoddev.lib.integration.plugins.ConstructsArmory; -import com.mcmoddev.lib.integration.plugins.DenseOres; -import com.mcmoddev.lib.integration.plugins.EnderIO; -import com.mcmoddev.lib.integration.plugins.IC2; -import com.mcmoddev.lib.integration.plugins.Mekanism; -import com.mcmoddev.lib.integration.plugins.Thaumcraft; -import com.mcmoddev.lib.integration.plugins.ThermalExpansion; -import com.mcmoddev.lib.integration.plugins.TinkersConstruct; -import com.mcmoddev.lib.integration.plugins.VeinMiner; +import zone.moddev.mc.mmdlib.data.MaterialNames; +import zone.moddev.mc.mmdlib.MMDLib; +import zone.moddev.mc.mmdlib.data.ConfigKeys; +import zone.moddev.mc.mmdlib.integration.plugins.ConstructsArmory; +import zone.moddev.mc.mmdlib.integration.plugins.DenseOres; +import zone.moddev.mc.mmdlib.integration.plugins.EnderIO; +import zone.moddev.mc.mmdlib.integration.plugins.IC2; +import zone.moddev.mc.mmdlib.integration.plugins.Mekanism; +import zone.moddev.mc.mmdlib.integration.plugins.Thaumcraft; +import zone.moddev.mc.mmdlib.integration.plugins.ThermalExpansion; +import zone.moddev.mc.mmdlib.integration.plugins.TinkersConstruct; +import zone.moddev.mc.mmdlib.integration.plugins.VeinMiner; import net.minecraftforge.common.MinecraftForge; import net.minecraftforge.common.config.ConfigCategory; @@ -72,9 +72,6 @@ public void onConfigChange(final ConfigChangedEvent.OnConfigChangedEvent event) } } - /** - * - */ public static void init() { if (configuration == null) { configuration = new Configuration(new File(CONFIG_FILE)); @@ -85,7 +82,7 @@ public static void init() { Options.setRequireMMDOreSpawn(configuration.getBoolean("using_orespawn", GENERAL_CAT, true, "If false, then Base Metals will not require MMD Ore Spawn mod. \n" + "Set to false if using another mod to manually handle ore generation.")); - // fallback orespawn can live as a 'thingEnabled' for a bit... + // The fallback ore generator uses the existing thing-enabled configuration switch. Options.setFallbackOreSpawn(configuration.getBoolean("fallback_orespawn", GENERAL_CAT, true, "disable this and using_orespawn to make MMDLib based mods not spawn any ores")); Options.setDisableAllHammerRecipes(configuration.getBoolean("disable_crack_hammer", @@ -247,6 +244,6 @@ public static void init() { if (configuration.hasChanged()) { configuration.save(); } - + } } diff --git a/src/main/java/com/mcmoddev/lib/util/MMDLibItemGroups.java b/src/main/java/zone/moddev/mc/mmdlib/util/MMDLibItemGroups.java old mode 100755 new mode 100644 similarity index 76% rename from src/main/java/com/mcmoddev/lib/util/MMDLibItemGroups.java rename to src/main/java/zone/moddev/mc/mmdlib/util/MMDLibItemGroups.java index 72d4cc8..54d29f7 --- a/src/main/java/com/mcmoddev/lib/util/MMDLibItemGroups.java +++ b/src/main/java/zone/moddev/mc/mmdlib/util/MMDLibItemGroups.java @@ -1,16 +1,16 @@ -package com.mcmoddev.lib.util; +package zone.moddev.mc.mmdlib.util; -import com.mcmoddev.lib.MMDLib; -import com.mcmoddev.lib.data.Names; -import com.mcmoddev.lib.data.SharedStrings; -import com.mcmoddev.lib.init.ItemGroups; -import com.mcmoddev.lib.init.Materials; -import com.mcmoddev.lib.material.MMDMaterial; +import zone.moddev.mc.mmdlib.MMDLib; +import zone.moddev.mc.mmdlib.data.Names; +import zone.moddev.mc.mmdlib.data.SharedStrings; +import zone.moddev.mc.mmdlib.init.ItemGroups; +import zone.moddev.mc.mmdlib.init.Materials; +import zone.moddev.mc.mmdlib.material.MMDMaterial; public class MMDLibItemGroups extends ItemGroups { public MMDLibItemGroups() { - // TODO Auto-generated constructor stub + } /** diff --git a/src/main/java/com/mcmoddev/lib/util/MaterialConfigOptions.java b/src/main/java/zone/moddev/mc/mmdlib/util/MaterialConfigOptions.java similarity index 98% rename from src/main/java/com/mcmoddev/lib/util/MaterialConfigOptions.java rename to src/main/java/zone/moddev/mc/mmdlib/util/MaterialConfigOptions.java index f83109b..e132900 100644 --- a/src/main/java/com/mcmoddev/lib/util/MaterialConfigOptions.java +++ b/src/main/java/zone/moddev/mc/mmdlib/util/MaterialConfigOptions.java @@ -1,4 +1,4 @@ -package com.mcmoddev.lib.util; +package zone.moddev.mc.mmdlib.util; public class MaterialConfigOptions{ private String identifier; diff --git a/src/main/java/com/mcmoddev/lib/util/MathUtils.java b/src/main/java/zone/moddev/mc/mmdlib/util/MathUtils.java similarity index 95% rename from src/main/java/com/mcmoddev/lib/util/MathUtils.java rename to src/main/java/zone/moddev/mc/mmdlib/util/MathUtils.java index 32b1a82..6ad471b 100644 --- a/src/main/java/com/mcmoddev/lib/util/MathUtils.java +++ b/src/main/java/zone/moddev/mc/mmdlib/util/MathUtils.java @@ -1,4 +1,4 @@ -package com.mcmoddev.lib.util; +package zone.moddev.mc.mmdlib.util; public final class MathUtils { private MathUtils() {} diff --git a/src/main/java/com/mcmoddev/lib/util/NBTUtils.java b/src/main/java/zone/moddev/mc/mmdlib/util/NBTUtils.java similarity index 93% rename from src/main/java/com/mcmoddev/lib/util/NBTUtils.java rename to src/main/java/zone/moddev/mc/mmdlib/util/NBTUtils.java index 619a5c8..c7cd7cd 100644 --- a/src/main/java/com/mcmoddev/lib/util/NBTUtils.java +++ b/src/main/java/zone/moddev/mc/mmdlib/util/NBTUtils.java @@ -1,4 +1,4 @@ -package com.mcmoddev.lib.util; +package zone.moddev.mc.mmdlib.util; import java.util.Set; import javax.annotation.Nullable; @@ -42,7 +42,7 @@ public static NBTTagCompound getPatch(NBTTagCompound from, NBTTagCompound to) { for(String key: keys) { NBTBase f = from.getTag(key); if (!to.hasKey(key)) { - // TODO: handle stuff existing in FROM but not in TO + // Keys absent from the target are not represented by this patch format. } else { NBTBase t = to.getTag(key); if (!f.equals(t)) { diff --git a/src/main/java/com/mcmoddev/lib/util/Oredicts.java b/src/main/java/zone/moddev/mc/mmdlib/util/Oredicts.java similarity index 99% rename from src/main/java/com/mcmoddev/lib/util/Oredicts.java rename to src/main/java/zone/moddev/mc/mmdlib/util/Oredicts.java index 84b8f55..945c237 100644 --- a/src/main/java/com/mcmoddev/lib/util/Oredicts.java +++ b/src/main/java/zone/moddev/mc/mmdlib/util/Oredicts.java @@ -1,4 +1,4 @@ -package com.mcmoddev.lib.util; +package zone.moddev.mc.mmdlib.util; import java.util.ArrayList; import java.util.HashMap; @@ -7,7 +7,7 @@ import javax.annotation.Nullable; -import com.mcmoddev.lib.data.SharedStrings; +import zone.moddev.mc.mmdlib.data.SharedStrings; import net.minecraft.block.Block; import net.minecraft.item.Item; @@ -298,9 +298,6 @@ public static void registerOre(final String name, final ItemStack itemStack) { } - /** - * - */ public static void registerItemOreDictionaryEntries() { oreDictItemMap.entrySet().stream() .forEach(ent -> { @@ -309,7 +306,7 @@ public static void registerItemOreDictionaryEntries() { .filter(i -> i != null) .forEach(i -> OreDictionary.registerOre(ent.getKey(), i)); }); - + oreDictItemStackMap.entrySet().stream() .forEach(ent -> { ent.getValue().stream() @@ -319,9 +316,6 @@ public static void registerItemOreDictionaryEntries() { }); } - /** - * - */ public static void registerBlockOreDictionaryEntries() { oreDictBlockMap.entrySet().stream() .forEach(ent -> { diff --git a/src/main/java/com/mcmoddev/lib/util/Platform.java b/src/main/java/zone/moddev/mc/mmdlib/util/Platform.java similarity index 97% rename from src/main/java/com/mcmoddev/lib/util/Platform.java rename to src/main/java/zone/moddev/mc/mmdlib/util/Platform.java index cd04cc5..e20ec6e 100644 --- a/src/main/java/com/mcmoddev/lib/util/Platform.java +++ b/src/main/java/zone/moddev/mc/mmdlib/util/Platform.java @@ -1,10 +1,10 @@ -package com.mcmoddev.lib.util; +package zone.moddev.mc.mmdlib.util; import java.util.Map; import javax.annotation.Nonnull; -import com.mcmoddev.lib.data.SharedStrings; +import zone.moddev.mc.mmdlib.data.SharedStrings; import net.minecraft.block.properties.IProperty; import net.minecraft.item.ItemStack; @@ -148,10 +148,6 @@ public static boolean isDevEnv() { return devEnv; } - /** - * - * @param dev - */ public static void setDev(final boolean dev) { if (!(devEnv)) { devEnv = dev; diff --git a/src/main/java/com/mcmoddev/lib/util/PotionKeys.java b/src/main/java/zone/moddev/mc/mmdlib/util/PotionKeys.java similarity index 96% rename from src/main/java/com/mcmoddev/lib/util/PotionKeys.java rename to src/main/java/zone/moddev/mc/mmdlib/util/PotionKeys.java index f45e6b4..6d36ec0 100644 --- a/src/main/java/com/mcmoddev/lib/util/PotionKeys.java +++ b/src/main/java/zone/moddev/mc/mmdlib/util/PotionKeys.java @@ -1,6 +1,6 @@ -package com.mcmoddev.lib.util; +package zone.moddev.mc.mmdlib.util; -import com.mcmoddev.lib.data.SharedStrings; +import zone.moddev.mc.mmdlib.data.SharedStrings; import net.minecraft.util.ResourceLocation; diff --git a/src/main/java/com/mcmoddev/lib/util/StringUtils.java b/src/main/java/zone/moddev/mc/mmdlib/util/StringUtils.java similarity index 97% rename from src/main/java/com/mcmoddev/lib/util/StringUtils.java rename to src/main/java/zone/moddev/mc/mmdlib/util/StringUtils.java index b10346d..a78a4d2 100644 --- a/src/main/java/com/mcmoddev/lib/util/StringUtils.java +++ b/src/main/java/zone/moddev/mc/mmdlib/util/StringUtils.java @@ -1,4 +1,4 @@ -package com.mcmoddev.lib.util; +package zone.moddev.mc.mmdlib.util; import javax.annotation.Nullable; diff --git a/src/main/java/com/mcmoddev/lib/util/TabContainer.java b/src/main/java/zone/moddev/mc/mmdlib/util/TabContainer.java old mode 100755 new mode 100644 similarity index 70% rename from src/main/java/com/mcmoddev/lib/util/TabContainer.java rename to src/main/java/zone/moddev/mc/mmdlib/util/TabContainer.java index 70fcb94..1ea7d2a --- a/src/main/java/com/mcmoddev/lib/util/TabContainer.java +++ b/src/main/java/zone/moddev/mc/mmdlib/util/TabContainer.java @@ -1,6 +1,6 @@ -package com.mcmoddev.lib.util; +package zone.moddev.mc.mmdlib.util; -import com.mcmoddev.lib.init.MMDCreativeTab; +import zone.moddev.mc.mmdlib.init.MMDCreativeTab; public final class TabContainer { @@ -8,12 +8,6 @@ public final class TabContainer { public final MMDCreativeTab itemsTab; public final MMDCreativeTab toolsTab; - /** - * - * @param blocksTab - * @param itemsTab - * @param toolsTab - */ public TabContainer(final MMDCreativeTab blocksTab, final MMDCreativeTab itemsTab, final MMDCreativeTab toolsTab) { this.blocksTab = blocksTab; this.itemsTab = itemsTab; diff --git a/src/main/java/com/mcmoddev/lib/util/Version5UUID.java b/src/main/java/zone/moddev/mc/mmdlib/util/Version5UUID.java similarity index 98% rename from src/main/java/com/mcmoddev/lib/util/Version5UUID.java rename to src/main/java/zone/moddev/mc/mmdlib/util/Version5UUID.java index 3d1f342..03cd63b 100644 --- a/src/main/java/com/mcmoddev/lib/util/Version5UUID.java +++ b/src/main/java/zone/moddev/mc/mmdlib/util/Version5UUID.java @@ -1,4 +1,4 @@ -package com.mcmoddev.lib.util; +package zone.moddev.mc.mmdlib.util; /** * Original implementation found on StackOverflow - https://stackoverflow.com/questions/40230276/how-to-make-a-type-5-uuid-in-java @@ -12,25 +12,25 @@ public class Version5UUID { private static final Charset UTF8 = Charset.forName("UTF-8"); - + public static final UUID NAMESPACE_DNS = UUID.fromString("6ba7b810-9dad-11d1-80b4-00c04fd430c8"); public static final UUID NAMESPACE_URL = UUID.fromString("6ba7b811-9dad-11d1-80b4-00c04fd430c8"); public static final UUID NAMESPACE_OID = UUID.fromString("6ba7b812-9dad-11d1-80b4-00c04fd430c8"); public static final UUID NAMESPACE_X500 = UUID.fromString("6ba7b814-9dad-11d1-80b4-00c04fd430c8"); public static final UUID NAMESPACE_MMDLIB = UUID.fromString("5a5a15f8-7fa0-5c40-931b-00ccca5380bf"); - + public static UUID mmdlibUUID(String name) { return nameUUIDFromNamespaceAndString(NAMESPACE_MMDLIB, name); } - + public static UUID nameUUIDFromString(String name) { return nameUUIDFromNamespaceAndString(NAMESPACE_X500, name); } - + public static UUID nameUUIDFromNamespaceAndString(UUID namespace, String name) { return nameUUIDFromNamespaceAndBytes(namespace, Objects.requireNonNull(name, "name == null").getBytes(UTF8)); } - + public static UUID nameUUIDFromNamespaceAndBytes(UUID namespace, byte[] name) { MessageDigest md; try { @@ -47,7 +47,7 @@ public static UUID nameUUIDFromNamespaceAndBytes(UUID namespace, byte[] name) { sha1Bytes[8] |= 0x80; /* set to IETF variant */ return fromBytes(sha1Bytes); } - + private static UUID fromBytes(byte[] data) { // Based on the private UUID(bytes[]) constructor long msb = 0; diff --git a/src/main/java/com/mcmoddev/lib/util/VillagerTradeHelper.java b/src/main/java/zone/moddev/mc/mmdlib/util/VillagerTradeHelper.java similarity index 85% rename from src/main/java/com/mcmoddev/lib/util/VillagerTradeHelper.java rename to src/main/java/zone/moddev/mc/mmdlib/util/VillagerTradeHelper.java index add6c5c..d136578 100644 --- a/src/main/java/com/mcmoddev/lib/util/VillagerTradeHelper.java +++ b/src/main/java/zone/moddev/mc/mmdlib/util/VillagerTradeHelper.java @@ -1,4 +1,4 @@ -package com.mcmoddev.lib.util; +package zone.moddev.mc.mmdlib.util; import net.minecraft.entity.passive.EntityVillager; import net.minecraft.util.ResourceLocation; @@ -22,17 +22,12 @@ protected VillagerTradeHelper() { } /** - * Inserts one or more trades to the default villager trade table using dark - * magic (aka java reflection). + * Adds trades to the selected vanilla profession and career. * - * @param professionID - * Villager profession ID (0-4) - * @param careerID - * Villager career ID (1-3) - * @param tradeLevel - * Level of trade (1+) - * @param trades - * Trades to add to the given level + * @param professionID vanilla profession ID (0-4) + * @param careerID career index, starting at 1 + * @param tradeLevel trade level, starting at 1 + * @param trades trades to add at that level */ public static void insertTrades(final int professionID, final int careerID, final int tradeLevel, final EntityVillager.ITradeList... trades) { diff --git a/src/main/java/com/mcmoddev/lib/events/package-info.java b/src/main/java/zone/moddev/mc/mmdlib/util/package-info.java similarity index 70% rename from src/main/java/com/mcmoddev/lib/events/package-info.java rename to src/main/java/zone/moddev/mc/mmdlib/util/package-info.java index ef94b36..60f3d65 100644 --- a/src/main/java/com/mcmoddev/lib/events/package-info.java +++ b/src/main/java/zone/moddev/mc/mmdlib/util/package-info.java @@ -1,4 +1,4 @@ @ParametersAreNonnullByDefault -package com.mcmoddev.lib.events; +package zone.moddev.mc.mmdlib.util; import javax.annotation.ParametersAreNonnullByDefault; diff --git a/src/main/java/com/mcmoddev/lib/vanillasupport/VanillaSupport.java b/src/main/java/zone/moddev/mc/mmdlib/vanillasupport/VanillaSupport.java old mode 100755 new mode 100644 similarity index 95% rename from src/main/java/com/mcmoddev/lib/vanillasupport/VanillaSupport.java rename to src/main/java/zone/moddev/mc/mmdlib/vanillasupport/VanillaSupport.java index 2647a05..a629b4c --- a/src/main/java/com/mcmoddev/lib/vanillasupport/VanillaSupport.java +++ b/src/main/java/zone/moddev/mc/mmdlib/vanillasupport/VanillaSupport.java @@ -1,12 +1,12 @@ -package com.mcmoddev.lib.vanillasupport; +package zone.moddev.mc.mmdlib.vanillasupport; -import com.mcmoddev.lib.MMDLib; -import com.mcmoddev.lib.data.MaterialNames; -import com.mcmoddev.lib.data.Names; -import com.mcmoddev.lib.events.MMDLibRegisterBlocks; -import com.mcmoddev.lib.events.MMDLibRegisterItems; -import com.mcmoddev.lib.init.Materials; -import com.mcmoddev.lib.material.MMDMaterial; +import zone.moddev.mc.mmdlib.MMDLib; +import zone.moddev.mc.mmdlib.data.MaterialNames; +import zone.moddev.mc.mmdlib.data.Names; +import zone.moddev.mc.mmdlib.events.MMDLibRegisterBlocks; +import zone.moddev.mc.mmdlib.events.MMDLibRegisterItems; +import zone.moddev.mc.mmdlib.init.Materials; +import zone.moddev.mc.mmdlib.material.MMDMaterial; import net.minecraft.item.ItemStack; import net.minecraftforge.fml.common.Mod; @@ -17,9 +17,9 @@ public class VanillaSupport { private VanillaSupport() { - // TODO Auto-generated constructor stub + } - + @SubscribeEvent(priority=EventPriority.HIGHEST) public static void vanillaItems(MMDLibRegisterItems ev) { final MMDMaterial wood = Materials.getMaterialByName(MaterialNames.WOOD); @@ -88,7 +88,7 @@ public static void vanillaItems(MMDLibRegisterItems ev) { diamond.addNewItem(Names.HELMET, net.minecraft.init.Items.DIAMOND_HELMET); diamond.addNewItem(Names.LEGGINGS, net.minecraft.init.Items.DIAMOND_LEGGINGS); diamond.addNewItem(Names.INGOT, net.minecraft.init.Items.DIAMOND); - + Materials.getMaterialByName(MaterialNames.CHARCOAL).addNewItemFromItemStack(Names.INGOT, new ItemStack(net.minecraft.init.Items.COAL, 1, 1)); Materials.getMaterialByName(MaterialNames.COAL).addNewItemFromItemStack(Names.INGOT, diff --git a/src/main/java/com/mcmoddev/lib/waila/LeverInfoController.java b/src/main/java/zone/moddev/mc/mmdlib/waila/LeverInfoController.java similarity index 97% rename from src/main/java/com/mcmoddev/lib/waila/LeverInfoController.java rename to src/main/java/zone/moddev/mc/mmdlib/waila/LeverInfoController.java index dc30cb1..53b6075 100644 --- a/src/main/java/com/mcmoddev/lib/waila/LeverInfoController.java +++ b/src/main/java/zone/moddev/mc/mmdlib/waila/LeverInfoController.java @@ -1,4 +1,4 @@ -package com.mcmoddev.lib.waila; +package zone.moddev.mc.mmdlib.waila; import java.util.List; diff --git a/src/main/java/com/mcmoddev/lib/waila/Waila.java b/src/main/java/zone/moddev/mc/mmdlib/waila/Waila.java similarity index 64% rename from src/main/java/com/mcmoddev/lib/waila/Waila.java rename to src/main/java/zone/moddev/mc/mmdlib/waila/Waila.java index b8f5779..4319964 100644 --- a/src/main/java/com/mcmoddev/lib/waila/Waila.java +++ b/src/main/java/zone/moddev/mc/mmdlib/waila/Waila.java @@ -1,6 +1,6 @@ -package com.mcmoddev.lib.waila; +package zone.moddev.mc.mmdlib.waila; -import com.mcmoddev.lib.block.BlockMMDLever; +import zone.moddev.mc.mmdlib.block.BlockMMDLever; import mcp.mobius.waila.api.IWailaRegistrar; import net.minecraftforge.fml.common.event.FMLInterModComms; @@ -12,7 +12,7 @@ private Waila() { } public static void init() { - FMLInterModComms.sendMessage("waila", "register", "com.mcmoddev.lib.waila.Waila.register"); + FMLInterModComms.sendMessage("waila", "register", "zone.moddev.mc.mmdlib.waila.Waila.register"); } public static void register(final IWailaRegistrar registrar) { diff --git a/src/main/java/zone/moddev/mc/mmdlib/waila/package-info.java b/src/main/java/zone/moddev/mc/mmdlib/waila/package-info.java new file mode 100644 index 0000000..2aa2fb7 --- /dev/null +++ b/src/main/java/zone/moddev/mc/mmdlib/waila/package-info.java @@ -0,0 +1,4 @@ +@ParametersAreNonnullByDefault +package zone.moddev.mc.mmdlib.waila; + +import javax.annotation.ParametersAreNonnullByDefault; diff --git a/src/main/resources/assets/mmdlib/recipes/_factories.json b/src/main/resources/assets/mmdlib/recipes/_factories.json index f55fe12..ae42049 100644 --- a/src/main/resources/assets/mmdlib/recipes/_factories.json +++ b/src/main/resources/assets/mmdlib/recipes/_factories.json @@ -1,11 +1,11 @@ { "conditions": { - "enabled": "com.mcmoddev.lib.recipe.conditions.ConditionEnabled", - "hammer": "com.mcmoddev.lib.recipe.conditions.HammerEnabled", - "plate": "com.mcmoddev.lib.recipe.conditions.PlateRepairEnabled" + "enabled": "zone.moddev.mc.mmdlib.recipe.conditions.ConditionEnabled", + "hammer": "zone.moddev.mc.mmdlib.recipe.conditions.HammerEnabled", + "plate": "zone.moddev.mc.mmdlib.recipe.conditions.PlateRepairEnabled" }, "recipes": { - "variableOutputOre": "com.mcmoddev.lib.recipe.factories.ConfigVariedOutput", - "armor_repair": "com.mcmoddev.lib.recipe.factories.ArmorRepair" + "variableOutputOre": "zone.moddev.mc.mmdlib.recipe.factories.ConfigVariedOutput", + "armor_repair": "zone.moddev.mc.mmdlib.recipe.factories.ArmorRepair" } } diff --git a/src/runtimeTest/java/zone/moddev/mc/mmdlib/test/MMDLibClientRuntimeProbe.java b/src/runtimeTest/java/zone/moddev/mc/mmdlib/test/MMDLibClientRuntimeProbe.java new file mode 100644 index 0000000..573b6e1 --- /dev/null +++ b/src/runtimeTest/java/zone/moddev/mc/mmdlib/test/MMDLibClientRuntimeProbe.java @@ -0,0 +1,41 @@ +package zone.moddev.mc.mmdlib.test; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.GuiMainMenu; +import net.minecraft.world.GameType; +import net.minecraft.world.WorldSettings; +import net.minecraft.world.WorldType; +import net.minecraftforge.fml.common.FMLCommonHandler; +import net.minecraftforge.fml.common.Mod; +import net.minecraftforge.fml.common.event.FMLInitializationEvent; +import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; +import net.minecraftforge.fml.common.gameevent.TickEvent; + +/** Creates a disposable integrated world and exits after client acceptance. */ +@Mod(modid = "mmdlib_client_probe", name = "MMDLib Client Probe", version = "1", + dependencies = "required-after:mmdlib", acceptedMinecraftVersions = "[1.12.2]", clientSideOnly = true) +public final class MMDLibClientRuntimeProbe { + private boolean starting; + private boolean complete; + + @Mod.EventHandler + public void init(final FMLInitializationEvent event) { + if (Boolean.getBoolean("mmdlib.probe.client")) FMLCommonHandler.instance().bus().register(this); + } + + @SubscribeEvent + public void tick(final TickEvent.ClientTickEvent event) throws Exception { + if (event.phase != TickEvent.Phase.END || complete) return; + Minecraft client = Minecraft.getMinecraft(); + if (!starting && client.currentScreen instanceof GuiMainMenu) { + starting = true; + client.launchIntegratedServer("mmdlib-smoke", "MMDLib acceptance", + new WorldSettings(112021L, GameType.CREATIVE, false, false, WorldType.FLAT)); + } + if (starting && client.world != null && client.player != null) { + complete = true; + MMDLibRuntimeProbe.verify(); + client.shutdown(); + } + } +} diff --git a/src/runtimeTest/java/zone/moddev/mc/mmdlib/test/MMDLibRuntimeProbe.java b/src/runtimeTest/java/zone/moddev/mc/mmdlib/test/MMDLibRuntimeProbe.java new file mode 100644 index 0000000..1d352a6 --- /dev/null +++ b/src/runtimeTest/java/zone/moddev/mc/mmdlib/test/MMDLibRuntimeProbe.java @@ -0,0 +1,58 @@ +package zone.moddev.mc.mmdlib.test; + +import java.io.File; +import java.io.FileOutputStream; +import java.util.Properties; + +import zone.moddev.mc.mmdlib.MMDLib; +import zone.moddev.mc.mmdlib.init.Materials; +import zone.moddev.mc.mmdlib.integration.IntegrationManager; +import zone.moddev.mc.mmdlib.registry.CrusherRecipeRegistry; +import net.minecraftforge.fml.common.FMLCommonHandler; +import net.minecraftforge.fml.common.Loader; +import net.minecraftforge.fml.common.Mod; +import net.minecraftforge.fml.common.event.FMLServerStartedEvent; + +/** Test-only acceptance probe; excluded from all published archives. */ +@Mod(modid = "mmdlib_runtime_probe", name = "MMDLib Runtime Probe", version = "1", + dependencies = "required-after:mmdlib", acceptedMinecraftVersions = "[1.12.2]") +public final class MMDLibRuntimeProbe { + @Mod.EventHandler + public void started(final FMLServerStartedEvent event) throws Exception { + if (Boolean.getBoolean("mmdlib.probe.client")) return; + verify(); + FMLCommonHandler.instance().getMinecraftServerInstance().initiateShutdown(); + } + + public static void verify() throws Exception { + Class.forName("mmdlib.namespace.fixture.LegacyConsumerProbe").getMethod("verify").invoke(null); + require(Loader.isModLoaded("mmdlib"), "MMDLib did not load"); + require(System.getProperty("mmdlib.probe.version").equals(MMDLib.getVersion()), "Wrong MMDLib version"); + require(IntegrationManager.INSTANCE != null, "Integration manager unavailable"); + require(CrusherRecipeRegistry.class.getName().startsWith("zone.moddev.mc.mmdlib."), "Library API moved"); + for (String mod : System.getProperty("mmdlib.probe.mods", "").split(",")) { + if (!mod.isEmpty()) require(Loader.isModLoaded(mod), "Expected optional mod missing: " + mod); + } + boolean baseMetals = Boolean.parseBoolean(System.getProperty("mmdlib.probe.basemetals", "false")); + require(Loader.isModLoaded("basemetals") == baseMetals, "Unexpected Base Metals presence"); + if (baseMetals) { + require(Materials.hasMaterial("copper"), "Base Metals materials were not registered"); + require(!Materials.getMaterialByName("copper").isEmpty(), "Copper material is empty"); + } + Properties result = new Properties(); + result.setProperty("version", MMDLib.getVersion()); + result.setProperty("basemetals", Boolean.toString(baseMetals)); + result.setProperty("mods", System.getProperty("mmdlib.probe.mods", "")); + result.setProperty("phase", System.getProperty("mmdlib.probe.phase", "fresh")); + result.setProperty("legacy-api", "passed"); + result.setProperty("canonical-namespace", "zone.moddev.mc.mmdlib"); + File marker = new File(System.getProperty("mmdlib.probe.marker")); + try (FileOutputStream output = new FileOutputStream(marker)) { + result.store(output, "MMDLib packaged runtime acceptance"); + } + } + + private static void require(final boolean condition, final String message) { + if (!condition) throw new IllegalStateException(message); + } +} diff --git a/src/test/java/zone/moddev/mc/mmdlib/compat/LegacyNamespaceTransformerTest.java b/src/test/java/zone/moddev/mc/mmdlib/compat/LegacyNamespaceTransformerTest.java new file mode 100644 index 0000000..5f1a8b0 --- /dev/null +++ b/src/test/java/zone/moddev/mc/mmdlib/compat/LegacyNamespaceTransformerTest.java @@ -0,0 +1,113 @@ +package zone.moddev.mc.mmdlib.compat; + +import java.util.Map; +import java.io.ByteArrayOutputStream; +import java.io.InputStream; +import org.junit.jupiter.api.Test; +import org.objectweb.asm.ClassReader; +import org.objectweb.asm.ClassWriter; +import org.objectweb.asm.MethodVisitor; +import org.objectweb.asm.Opcodes; +import org.objectweb.asm.Type; +import org.objectweb.asm.tree.ClassNode; +import org.objectweb.asm.tree.FieldNode; +import org.objectweb.asm.tree.LdcInsnNode; +import org.objectweb.asm.tree.MethodNode; +import static org.junit.jupiter.api.Assertions.*; + +class LegacyNamespaceTransformerTest { + @Test void exportsCoverTheFrozenApiWithoutCompatibilityImplementationAliases() { + Map aliases = LegacyNamespaceAliases.load(); + assertEquals(500, aliases.size()); + assertEquals("zone/moddev/mc/mmdlib/data/Names", aliases.get("com/mcmoddev/lib/data/Names")); + assertTrue(aliases.values().stream().noneMatch(n -> n.contains("/compat/"))); + assertThrows(UnsupportedOperationException.class, () -> aliases.clear()); + } + + @Test void ordinaryClassesAndCanonicalMetadataRemainUntouched() { + LegacyNamespaceTransformer transformer = new LegacyNamespaceTransformer(); + byte[] unrelated = fixture(false); + assertSame(unrelated, transformer.transform("another.mod.Consumer", "another.mod.Consumer", unrelated)); + byte[] oldReferences = fixture(true); + assertSame(oldReferences, transformer.transform("zone.moddev.mc.mmdlib.compat.Metadata", null, oldReferences)); + assertNull(transformer.transform("missing", "missing", null)); + } + + @Test void compilerExportsCannotRegisterDuplicateModsOrSubscribers() throws Exception { + int factoryForwarders = 0; + for (String alias : LegacyNamespaceAliases.load().keySet()) { + try (InputStream input = getClass().getClassLoader().getResourceAsStream(alias + ".class")) { + assertNotNull(input, alias); + ByteArrayOutputStream bytes = new ByteArrayOutputStream(); + byte[] buffer = new byte[8192]; + int count; + while ((count = input.read(buffer)) >= 0) bytes.write(buffer, 0, count); + ClassNode node = new ClassNode(); + new ClassReader(bytes.toByteArray()).accept(node, 0); + if ((node.access & Opcodes.ACC_ANNOTATION) == 0) { + assertTrue(node.visibleAnnotations == null || node.visibleAnnotations.isEmpty(), alias); + assertTrue(node.invisibleAnnotations == null || node.invisibleAnnotations.isEmpty(), alias); + } + for (Object field : node.fields) { + FieldNode metadata = (FieldNode) field; + assertTrue(metadata.visibleAnnotations == null || metadata.visibleAnnotations.isEmpty(), alias); + assertTrue(metadata.invisibleAnnotations == null || metadata.invisibleAnnotations.isEmpty(), alias); + if (metadata.name.equals("$modernDelegate")) factoryForwarders++; + } + for (Object method : node.methods) { + MethodNode metadata = (MethodNode) method; + assertTrue(metadata.visibleAnnotations == null || metadata.visibleAnnotations.isEmpty(), alias); + assertTrue(metadata.invisibleAnnotations == null || metadata.invisibleAnnotations.isEmpty(), alias); + } + } + } + assertEquals(5, factoryForwarders); + assertArrayEquals(new String[] { "zone.moddev.mc.mmdlib.compat.LegacyNamespaceTransformer" }, + new LegacyNamespaceBootstrap().getASMTransformerClass()); + } + + @Test void consumerInheritanceDescriptorsClassLiteralsAndReflectionNamesAreRelinked() { + byte[] migrated = new LegacyNamespaceTransformer().transform("another.mod.Consumer", "another.mod.Consumer", fixture(true)); + ClassNode node = new ClassNode(); + new ClassReader(migrated).accept(node, 0); + assertEquals("another/mod/Consumer", node.name); + assertEquals("zone/moddev/mc/mmdlib/integration/IntegrationInitEvent", node.superName); + assertEquals("Lzone/moddev/mc/mmdlib/data/Names;", ((FieldNode) node.fields.get(0)).desc); + MethodNode method = (MethodNode) node.methods.get(0); + assertEquals("(Lzone/moddev/mc/mmdlib/data/Names;)V", method.desc); + assertEquals(Type.getObjectType("zone/moddev/mc/mmdlib/data/NameToken"), ((LdcInsnNode) method.instructions.get(0)).cst); + assertEquals("zone.moddev.mc.mmdlib.data.Names", ((LdcInsnNode) method.instructions.get(2)).cst); + } + + @Test void addonClassesInsideTheOldPackageStillRelinkTheirApiReferences() { + ClassWriter addon = new ClassWriter(0); + addon.visit(Opcodes.V1_8, Opcodes.ACC_PUBLIC, "com/mcmoddev/lib/addon/Consumer", null, + "com/mcmoddev/lib/integration/IntegrationInitEvent", null); + addon.visitEnd(); + ClassNode node = new ClassNode(); + new ClassReader(new LegacyNamespaceTransformer().transform("com.mcmoddev.lib.addon.Consumer", null, + addon.toByteArray())).accept(node, 0); + assertEquals("com/mcmoddev/lib/addon/Consumer", node.name); + assertEquals("zone/moddev/mc/mmdlib/integration/IntegrationInitEvent", node.superName); + } + + private static byte[] fixture(final boolean legacy) { + ClassWriter writer = new ClassWriter(0); + writer.visit(Opcodes.V1_8, Opcodes.ACC_PUBLIC, "another/mod/Consumer", null, + legacy ? "com/mcmoddev/lib/integration/IntegrationInitEvent" : "java/lang/Object", null); + if (legacy) writer.visitField(Opcodes.ACC_PUBLIC, "token", "Lcom/mcmoddev/lib/data/Names;", null, null).visitEnd(); + MethodVisitor method = writer.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_STATIC, "consume", + legacy ? "(Lcom/mcmoddev/lib/data/Names;)V" : "()V", null, null); + method.visitCode(); + if (legacy) { + method.visitLdcInsn(Type.getObjectType("com/mcmoddev/lib/data/NameToken")); + method.visitInsn(Opcodes.POP); + method.visitLdcInsn("com.mcmoddev.lib.data.Names"); + method.visitInsn(Opcodes.POP); + } + method.visitInsn(Opcodes.RETURN); + method.visitMaxs(1, legacy ? 1 : 0); + method.visitEnd(); writer.visitEnd(); + return writer.toByteArray(); + } +} diff --git a/src/test/java/com/mcmoddev/lib/ioc/LibIocTest.java b/src/test/java/zone/moddev/mc/mmdlib/ioc/LibIocTest.java similarity index 95% rename from src/test/java/com/mcmoddev/lib/ioc/LibIocTest.java rename to src/test/java/zone/moddev/mc/mmdlib/ioc/LibIocTest.java index ff37bdb..af16ab8 100644 --- a/src/test/java/com/mcmoddev/lib/ioc/LibIocTest.java +++ b/src/test/java/zone/moddev/mc/mmdlib/ioc/LibIocTest.java @@ -1,4 +1,4 @@ -package com.mcmoddev.lib.ioc; +package zone.moddev.mc.mmdlib.ioc; import static org.junit.jupiter.api.Assertions.*; import static org.mockito.Mockito.*; @@ -9,15 +9,15 @@ import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; -import com.mcmoddev.lib.interfaces.ITabProvider; -import com.mcmoddev.lib.ioc.LibIoC; +import zone.moddev.mc.mmdlib.interfaces.ITabProvider; +import zone.moddev.mc.mmdlib.ioc.LibIoC; import net.minecraft.util.ResourceLocation; class LibIocTest { static LibIoC IoC; - + @BeforeAll static void setUpBeforeClass() throws Exception { IoC = LibIoC.getInstance(false); // cannot yet test autowirup @@ -43,138 +43,138 @@ void testIoCIsInstansiated() { @Test void testIoCCanRegisterAndResolve() { ITabProvider tabProvider = mock(ITabProvider.class); - + when(tabProvider.getTab("Axes", "mmdlib")).thenReturn("axesTab"); - + IoC.register(ITabProvider.class, tabProvider); - + ITabProvider tabProviderResolved = IoC.resolve(ITabProvider.class); String tabResolved = tabProviderResolved.getTab("Axes", "mmdlib"); - + assertNotNull(tabResolved); assertEquals(tabResolved, "axesTab"); } - + @Test void testIoCCanRegisterAndNotResolve() { ITabProvider tabProvider = mock(ITabProvider.class); - + when(tabProvider.getTab("Axes", "mmdlib")).thenReturn("axesTab"); - + IoC.register(ITabProvider.class, tabProvider); - + ITabProvider tabProviderResolved = IoC.resolve(ITabProvider.class); String tabResolved = tabProviderResolved.getTab("Blocks", "mmdlib"); - + assertNull(tabResolved); } - + @Test void testIoCCanRegisterAndResolveResourceLocation() { ITabProvider tabProvider = mock(ITabProvider.class); - + when(tabProvider.getTab("Axes", "mmdlib")).thenReturn("axesTab"); - + ResourceLocation resourceLocation = new ResourceLocation("MyDomain", "MyPath"); - + IoC.register(ITabProvider.class, tabProvider, resourceLocation); - + ITabProvider tabProviderResolved = IoC.resolve(ITabProvider.class, resourceLocation); String tabResolved = tabProviderResolved.getTab("Axes", "mmdlib"); - + assertNotNull(tabResolved); assertEquals(tabResolved, "axesTab"); } - + @Test void testIoCCanRegisterAndNotResolveResourceLocation() { ITabProvider tabProvider = mock(ITabProvider.class); - + when(tabProvider.getTab("Axes", "mmdlib")).thenReturn("axesTab"); - + ResourceLocation resourceLocation = new ResourceLocation("MyDomain", "MyPath"); - + IoC.register(ITabProvider.class, tabProvider, resourceLocation); - + ResourceLocation resourceLocationDifferent = new ResourceLocation("MyDomain", "MyPathIsDifferent"); - + ITabProvider tabProviderResolved = IoC.resolve(ITabProvider.class, resourceLocationDifferent); - + assertNull(tabProviderResolved); } - + @Test void testIoCCanRegisterAndResolveMMDResourceLocation() { ITabProvider tabProvider = mock(ITabProvider.class); - + when(tabProvider.getTab("Axes", "mmdlib")).thenReturn("axesTab"); - + ResourceLocation resourceLocation = new MMDResourceLocation("MyNamespace", "MyEntryType", "MyEntryName"); - + IoC.register(ITabProvider.class, tabProvider, resourceLocation); - + ITabProvider tabProviderResolved = IoC.resolve(ITabProvider.class, resourceLocation); String tabResolved = tabProviderResolved.getTab("Axes", "mmdlib"); - + assertNotNull(tabResolved); assertEquals(tabResolved, "axesTab"); } - + @Test void testIoCCanRegisterAndNotResolveMMDResourceLocation() { ITabProvider tabProvider = mock(ITabProvider.class); - + when(tabProvider.getTab("Axes", "mmdlib")).thenReturn("axesTab"); - + ResourceLocation resourceLocation = new MMDResourceLocation("MyNamespace", "MyEntryType", "MyEntryName"); - + IoC.register(ITabProvider.class, tabProvider, resourceLocation); - + ResourceLocation resourceLocationDifferent = new MMDResourceLocation("MyNamespace", "MyEntryTypeIsDifferent", "MyEntryName"); - + ITabProvider tabProviderResolved = IoC.resolve(ITabProvider.class, resourceLocationDifferent); - + assertNull(tabProviderResolved); } - + @Test void testIoCCanRegisterAndResolveString() { ITabProvider tabProvider = mock(ITabProvider.class); - + when(tabProvider.getTab("Axes", "mmdlib")).thenReturn("axesTab"); - + IoC.register(ITabProvider.class, tabProvider, "myConcrete", "myMod"); - + ITabProvider tabProviderResolved = IoC.resolve(ITabProvider.class, "myConcrete", "myMod"); String tabResolved = tabProviderResolved.getTab("Axes", "mmdlib"); - + assertNotNull(tabResolved); assertEquals(tabResolved, "axesTab"); } - + @Test void testIoCCanRegisterAndNotResolveString() { ITabProvider tabProvider = mock(ITabProvider.class); - + when(tabProvider.getTab("Axes", "mmdlib")).thenReturn("axesTab"); - + IoC.register(ITabProvider.class, tabProvider, "myConcrete", "myMod"); - + ITabProvider tabProviderResolved = IoC.resolve(ITabProvider.class, "myConcreteIsDifferent", "myMod"); - + assertNull(tabProviderResolved); } - + @Test void testIoCCanRegisterAndNotResolveWrongModString() { ITabProvider tabProvider = mock(ITabProvider.class); - + when(tabProvider.getTab("Axes", "mmdlib")).thenReturn("axesTab"); - + IoC.register(ITabProvider.class, tabProvider, "myConcrete", "myMod"); - + ITabProvider tabProviderResolved = IoC.resolve(ITabProvider.class, "myConcrete", "myModIsDifferent"); - + assertNull(tabProviderResolved); } } diff --git a/src/test/java/com/mcmoddev/lib/recipe/conditions/ConditionEnabledTest.java b/src/test/java/zone/moddev/mc/mmdlib/recipe/conditions/ConditionEnabledTest.java similarity index 79% rename from src/test/java/com/mcmoddev/lib/recipe/conditions/ConditionEnabledTest.java rename to src/test/java/zone/moddev/mc/mmdlib/recipe/conditions/ConditionEnabledTest.java index eb3f47d..033e2a8 100644 --- a/src/test/java/com/mcmoddev/lib/recipe/conditions/ConditionEnabledTest.java +++ b/src/test/java/zone/moddev/mc/mmdlib/recipe/conditions/ConditionEnabledTest.java @@ -1,6 +1,4 @@ -package com.mcmoddev.lib.recipe.conditions; - -//import static org.junit.jupiter.api.Assertions.*; +package zone.moddev.mc.mmdlib.recipe.conditions; import org.junit.jupiter.api.AfterAll; import org.junit.jupiter.api.AfterEach; @@ -28,7 +26,7 @@ void tearDown() throws Exception { @Test void test() { - //fail("Not yet implemented"); + } } diff --git a/src/test/java/com/mcmoddev/lib/util/ConfigBaseTests.java b/src/test/java/zone/moddev/mc/mmdlib/util/ConfigBaseTests.java similarity index 92% rename from src/test/java/com/mcmoddev/lib/util/ConfigBaseTests.java rename to src/test/java/zone/moddev/mc/mmdlib/util/ConfigBaseTests.java index 6f82094..5e99f10 100644 --- a/src/test/java/com/mcmoddev/lib/util/ConfigBaseTests.java +++ b/src/test/java/zone/moddev/mc/mmdlib/util/ConfigBaseTests.java @@ -1,6 +1,6 @@ -package com.mcmoddev.lib.util; +package zone.moddev.mc.mmdlib.util; -import com.mcmoddev.lib.util.Config.Options; +import zone.moddev.mc.mmdlib.util.Config.Options; import org.junit.jupiter.api.AfterAll; import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.Assertions; diff --git a/src/test/java/com/mcmoddev/lib/util/MathUtilsTest.java b/src/test/java/zone/moddev/mc/mmdlib/util/MathUtilsTest.java similarity index 96% rename from src/test/java/com/mcmoddev/lib/util/MathUtilsTest.java rename to src/test/java/zone/moddev/mc/mmdlib/util/MathUtilsTest.java index 229754d..72adb9d 100644 --- a/src/test/java/com/mcmoddev/lib/util/MathUtilsTest.java +++ b/src/test/java/zone/moddev/mc/mmdlib/util/MathUtilsTest.java @@ -1,4 +1,4 @@ -package com.mcmoddev.lib.util; +package zone.moddev.mc.mmdlib.util; import org.junit.jupiter.api.Test; diff --git a/src/test/java/com/mcmoddev/lib/util/StringUtilsTest.java b/src/test/java/zone/moddev/mc/mmdlib/util/StringUtilsTest.java similarity index 98% rename from src/test/java/com/mcmoddev/lib/util/StringUtilsTest.java rename to src/test/java/zone/moddev/mc/mmdlib/util/StringUtilsTest.java index 0900116..5f1852e 100644 --- a/src/test/java/com/mcmoddev/lib/util/StringUtilsTest.java +++ b/src/test/java/zone/moddev/mc/mmdlib/util/StringUtilsTest.java @@ -1,4 +1,4 @@ -package com.mcmoddev.lib.util; +package zone.moddev.mc.mmdlib.util; import org.junit.jupiter.api.Test;