diff --git a/.github/workflows/build_and_test.yml b/.github/workflows/build_and_test.yml index 80aa8219..5691b5e0 100644 --- a/.github/workflows/build_and_test.yml +++ b/.github/workflows/build_and_test.yml @@ -31,12 +31,6 @@ jobs: - name: Checkout Repository uses: actions/checkout@v4 - - name: Apply patch to settings.gradle - run: | - if [ -f settings.gradle.patch ]; then - patch -p0 < settings.gradle.patch - fi - - name: Apply patch to gradle.properties run: sed -i 's/debug_all = false/debug_all = true/g' gradle.properties @@ -64,7 +58,7 @@ jobs: if: ${{ failure() && steps.build_mod.conclusion == 'failure' && github.event_name == 'pull_request' && !github.event.pull_request.draft }} run: | git reset --hard - git checkout "${PR_BRANCH}" + git checkout "${github.ref_name}" ./gradlew --info spotlessApply || exit 1 git diff --exit-code && exit 1 git config user.name "GitHub Actions" @@ -74,15 +68,14 @@ jobs: git push --force-with-lease origin "${FIXED_BRANCH}" gh pr create \ --head "${FIXED_BRANCH}" \ - --base "${PR_BRANCH}" \ + --base "${github.ref_name}" \ --title "Spotless apply for branch ${{ github.event.pull_request.head.ref }} for #${{ github.event.pull_request.number }}" \ --body "Automatic spotless apply to fix formatting errors, applies to PR #${{ github.event.pull_request.number }}" \ 2>&1 | tee pr-message.log || true - gh pr comment "${PR_BRANCH}" -F pr-message.log || true + gh pr comment "${github.ref_name}" -F pr-message.log || true shell: bash # ensures set -eo pipefail env: GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} - PR_BRANCH: ${{ github.head_ref }} FIXED_BRANCH: ${{ github.head_ref }}-spotless-fixes - name: Run server for ${{ inputs.timeout }} seconds diff --git a/.github/workflows/format_java.yml b/.github/workflows/format_java.yml index ec842017..645904dc 100644 --- a/.github/workflows/format_java.yml +++ b/.github/workflows/format_java.yml @@ -36,7 +36,7 @@ jobs: run: ./gradlew --info spotlessCheck - name: Attempt to make a PR fixing spotless errors - if: failure() + if: failure() && steps.build.conclusion == 'failure' run: | git reset --hard git checkout "${PR_BRANCH}" diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 97cfdbb5..4c810900 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -82,15 +82,16 @@ jobs: modrinth-id: ${{ env.MODRINTH_PROJECT_ID }} modrinth-token: "${{ secrets.MODRINTH_API_KEY }}" modrinth-dependencies: | - 8PB5NZf9(required) - vaQ5bJYU(required) - MeXYT7nJ(required) + G1ckZuWK(required) + tULldUx4(required) + tZiutdLG(required) curseforge-id: ${{ env.CURSEFORGE_PROJECT_ID }} curseforge-token: "${{ secrets.CURSEFORGE_API_KEY }}" curseforge-dependencies: | mixin-booter(required) gregtech-ce-unofficial(required) gregicality-multiblocks(required) + implosionnobomb(recommended) ae2-extended-life(recommended) ae-additions-extra-cells-2-fork(recommended) nae2(recommended) @@ -105,7 +106,7 @@ jobs: draconic-evolution(recommended) draconicadditions(recommended) project-red-illumination(recommended) - avaritia-1-1x-kedition(recommended) + avaritia-1-1x-unofficial(recommended) thaumcraft(recommended) forestry(recommended) gendustry(recommended) diff --git a/.github/workflows/test_java.yml b/.github/workflows/test_java.yml index 674854d7..2b275bc0 100644 --- a/.github/workflows/test_java.yml +++ b/.github/workflows/test_java.yml @@ -22,12 +22,6 @@ jobs: - name: Checkout Repository uses: actions/checkout@v4 - - name: Apply patch to settings.gradle - run: | - if [ -f settings.gradle.patch ]; then - patch -p0 < settings.gradle.patch - fi - - name: Apply patch to build.gradle run: sed -i 's/debug_all = false/debug_all = true/g' gradle.properties diff --git a/CHANGELOG.md b/CHANGELOG.md index 80d2b4c0..2fe900a2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,64 @@ +# 2.4.5 +- Separate to [GTBeesMatrix](https://github.com/GTModpackTeam/GTBeesMatrix). [#320](https://github.com/GTModpackTeam/GTExpert-Core/pull/320) + - The following mods have been separated into separate mods to improve maintainability. + - [Forestry](https://www.curseforge.com/minecraft/mc-mods/forestry) + - [Gendustry](https://www.curseforge.com/minecraft/mc-mods/gendustry) + - [Binnie's Mods Patched](https://www.curseforge.com/minecraft/mc-mods/binnies-mods-patched) + +* * * + +# 2.4.4 +- Fix Wyvern tool recipe. [#319](https://github.com/GTModpackTeam/GTExpert-Core/pull/319) + +* * * + +# v2.4.3 +- Add BrokenSpawer recipe to SoulBinder. [#315](https://github.com/GTModpackTeam/GTExpert-Core/pull/315) + +* * * + +# v2.4.2 +- Delete unused steam machines. [#309](https://github.com/GTModpackTeam/GTExpert-Core/pull/309) +- Advanced Chemical Plant to be compatible with PerfectOC. [#310](https://github.com/GTModpackTeam/GTExpert-Core/pull/314) + +* * * + +# v2.4.1 +- A recipe for processing FluixAlloy Molten in AlloyBlastFurnace into Ingot using Mold has been added. [#307](https://github.com/GTModpackTeam/GTExpert-Core/pull/307) + +* * * + +# v2.4.0 +- Disable automatic meal function for helmets [#300](https://github.com/GTModpackTeam/GTExpert-Core/pull/300) +- Removed conflicts with GTWP [#303](https://github.com/GTModpackTeam/GTExpert-Core/pull/303) + +* * * + +# v2.3.2 +- Fix BlastTemperature of Vacuum Freezer Extended Recipes. + +* * * + +# v2.3.1 +- Hotfix a mistake when splitting into INBs [#296](https://github.com/GTModpackTeam/GTExpert-Core/pull/296) + +* * * + +# v2.3.0 +- Separate Electric Implosion Compressor changes to [ImplosionNoBomb](https://www.curseforge.com/minecraft/mc-mods/implosionnobomb) + - Thanks to @MrKono for his support!! + +* * * + +# v2.2.14 +## Ender IO +- Fix Black Paper + +## GregTech Food Options +- Kitchen Recipe + +* * * + # v2.2.13 - Fix upgrade recipe to Nano Boots from Piston Boots. @@ -25,7 +86,7 @@ # v2.2.8 - Electric Implosion Compressor is converted to no explosive items. [#284](https://github.com/GTModpackTeam/GTExpert-Core/pull/284) - - Thanks to @MrKono for his support!! + - Thanks to @MrKono and @sysnote8main for his support!! * * * diff --git a/build.gradle b/build.gradle index 892add04..c82195b6 100644 --- a/build.gradle +++ b/build.gradle @@ -1,8 +1,8 @@ -//version: 1723428048 +//version: 1725973221 /* * DO NOT CHANGE THIS FILE! * Also, you may replace this file at any time if there is an update available. - * Please check https://github.com/GregTechCEu/Buildscripts/blob/master/build.gradle for updates. + * Please check https://github.com/GTModpackTeam/Buildscripts/blob/master/build.gradle for updates. * You can also run ./gradlew updateBuildScript to update your buildscript. */ @@ -1423,11 +1423,11 @@ if (!project.getGradle().startParameter.isOffline() && !Boolean.getBoolean('DISA } static URL availableBuildScriptUrl() { - new URL("https://raw.githubusercontent.com/GregTechCEu/Buildscripts/master/build.gradle") + new URL("https://raw.githubusercontent.com/GTModpackTeam/Buildscripts/master/build.gradle") } static URL availableSettingsGradleUrl() { - new URL("https://raw.githubusercontent.com/GregTechCEu/Buildscripts/master/settings.gradle") + new URL("https://raw.githubusercontent.com/GTModpackTeam/Buildscripts/master/settings.gradle") } boolean performBuildScriptUpdate() { @@ -1476,8 +1476,8 @@ tasks.register('faq') { "To add new repositories to your project, place them in 'repositories.gradle'.\n" + "If you need additional gradle code to run, you can place it in a file named 'addon.gradle' (or either of the above, up to you for organization).\n\n" + "If your build fails to recognize the syntax of newer Java versions, enable Jabel in your 'gradle.properties' under the option name 'enableModernJavaSyntax'.\n" + - "To see information on how to configure your IDE properly for Java 17, see https://github.com/GregTechCEu/Buildscripts/blob/master/docs/jabel.md\n\n" + - "Report any issues or feature requests you have for this build script to https://github.com/GregTechCEu/Buildscripts/issues\n") + "To see information on how to configure your IDE properly for Java 17, see https://github.com/GTModpackTeam/Buildscripts/blob/master/docs/jabel.md\n\n" + + "Report any issues or feature requests you have for this build script to https://github.com/GTModpackTeam/Buildscripts/issues\n") } } @@ -1495,7 +1495,7 @@ def getFile(String relativePath) { def checkPropertyExists(String propertyName) { if (!project.hasProperty(propertyName)) { - throw new GradleException("This project requires a property \"" + propertyName + "\"! Please add it your \"gradle.properties\". You can find all properties and their description here: https://github.com/GregTechCEu/Buildscripts/blob/main/gradle.properties") + throw new GradleException("This project requires a property \"" + propertyName + "\"! Please add it your \"gradle.properties\". You can find all properties and their description here: https://github.com/GTModpackTeam/Buildscripts/blob/main/gradle.properties") } } diff --git a/dependencies.gradle b/dependencies.gradle index 00541605..fdf9bb10 100644 --- a/dependencies.gradle +++ b/dependencies.gradle @@ -21,7 +21,7 @@ * * - shadowapi("g:n:v:c"): effectively the same as API, but the dependency is included in your jar under a renamed package name * Requires you to enable usesShadowedDependencies in gradle.properties - * For more info, see https://github.com/GregTechCEu/Buildscripts/blob/master/docs/shadow.md + * For more info, see https://github.com/GTModpackTeam/Buildscripts/blob/master/docs/shadow.md * * You can exclude transitive dependencies (dependencies of the chosen dependency) by appending { transitive = false } if needed, * but use this sparingly as it can break using your mod as another mod's dependency if you're not careful. @@ -40,16 +40,17 @@ dependencies { // Published dependencies api("codechicken:codechickenlib:3.2.3.358") // CCL 3.2.3.358 - api("com.cleanroommc:modularui:2.4.3") { transitive = false } // MUI 2.4.3 - api("com.cleanroommc:groovyscript:1.1.1") { transitive = false } // GrS 1.1.1 + api("com.cleanroommc:modularui:2.5.0-rc1") { transitive = false } // MUI 2.5.0-rc1 + api("com.cleanroommc:groovyscript:1.1.2") { transitive = false } // GrS 1.1.2 api("CraftTweaker2:CraftTweaker2-MC1120-Main:1.12-4.1.20.700") // CrT 4.1.20.700 api rfg.deobf("curse.maven:ctm-267602:2915363") // CTM 1.0.2.31 // Hard Dependencies - devOnlyNonPublishable(rfg.deobf("curse.maven:gregtech-ce-unofficial-557242:5519022")) // CEu 2.8.10 - //devOnlyNonPublishable(rfg.deobf(project.files("libs/gregtech-1.12.2-2.8.9-beta-dev.jar"))) // CEu pr 2.8.10 - devOnlyNonPublishable(rfg.deobf("curse.maven:gregicality-multiblocks-564858:5508050")) // GCYM 1.2.10 - devOnlyNonPublishable(rfg.deobf("curse.maven:shadowfacts-forgelin-248453:2785465")) // Forgelin 1.8.4 + //devOnlyNonPublishable(rfg.deobf("curse.maven:gregtech-ce-unofficial-557242:5519022")) // CEu 2.8.10 + devOnlyNonPublishable(rfg.deobf(project.files("libs/gregtech-1.12.2-2.9.0-beta-dev.jar"))) // CEu pr 2.9.0 + //devOnlyNonPublishable(rfg.deobf("curse.maven:gregicality-multiblocks-564858:5508050")) // GCYM 1.2.10 + devOnlyNonPublishable(rfg.deobf(project.files("libs/GregicalityMultiblocks-1.3.0-dev.jar"))) // GCYM pr 1.3.0 + devOnlyNonPublishable(rfg.deobf("curse.maven:forgelin-continuous-456403:6142081")) // Forgelin-Continuous 2.1.10.0 // Switchable Dependencies if (project.useAE2uelExtended.toBoolean()) { @@ -58,7 +59,18 @@ dependencies { devOnlyNonPublishable(rfg.deobf("curse.maven:ae2-extended-life-570458:5411078")) // AE2UEL 0.56.6 } - // Debug AE Additions + // Debug GTWoodProcessing + if (project.debug_all.toBoolean() || project.debug_gtwp.toBoolean()) { + runtimeOnlyNonPublishable rfg.deobf("curse.maven:gtwoodprocessing-1093753:5731776") + } + + // Debug ImplosionNoBomb + compileOnly rfg.deobf("curse.maven:implosionnobomb-1094386:5731331") // ImplosionNoBomb 1.1.0 + if (project.debug_all.toBoolean() || project.debug_inb.toBoolean()) { + runtimeOnlyNonPublishable rfg.deobf("curse.maven:implosionnobomb-1094386:5731331") + } + + // Debug ExtraCells2 Additions if (project.debug_all.toBoolean() || project.debug_aea.toBoolean()) { runtimeOnlyNonPublishable rfg.deobf("curse.maven:ae-additions-extra-cells-2-fork-493962:3814371") // AEAdditions 1.3.8 } @@ -85,27 +97,6 @@ dependencies { } } - // Debug Forestry - compileOnly rfg.deobf("curse.maven:forestry-59751:2684780") // Forestry 5.8.2.387 - compileOnly rfg.deobf("curse.maven:binnies-mods-patched-899182:5492997") // Binnie's Mods Patched 2.5.1.212 - if (project.debug_all.toBoolean() || project.debug_ffm.toBoolean()) { - runtimeOnlyNonPublishable rfg.deobf("curse.maven:forestry-59751:2684780") // Forestry 5.8.2.387 - runtimeOnlyNonPublishable rfg.deobf("curse.maven:beebetteratbees-244516:2627215") // BeeBetterAtBees 2.0.3 - runtimeOnlyNonPublishable rfg.deobf("curse.maven:jei-bees-248370:2490058") // JEIBees 0.9.0.5 - - // Debug Gendustry - if (project.debug_all.toBoolean() || project.debug_gendustry.toBoolean()) { - runtimeOnlyNonPublishable rfg.deobf("curse.maven:bdlib-70496:2518031") // BdLib 1.14.3.12 - runtimeOnlyNonPublishable rfg.deobf("curse.maven:gendustry-70492:2516215") // Gendustry 1.6.5.8 - runtimeOnlyNonPublishable rfg.deobf("curse.maven:gendustry-jei-addon-301364:2609434") // Gendustry JEI Addon 1.0.2 - } - - // Debug Binnies - if (project.debug_all.toBoolean() || project.debug_binnies.toBoolean()) { - runtimeOnlyNonPublishable rfg.deobf("curse.maven:binnies-mods-patched-899182:5492997") // Binnie's Mods Patched 2.5.1.212 - } - } - // Debug EnderIO compileOnly "info.loenwind.autoconfig:AutoConfig:1.12.2-1.0.2" // AutoConfig 1.0.2 compileOnly "info.loenwind.autosave:AutoSave:1.12.2-1.0.11" // AutoSave 1.0.11 @@ -142,7 +133,7 @@ dependencies { // Debug Avaritia if (project.debug_all.toBoolean() || project.debug_avaritia.toBoolean()) { - runtimeOnlyNonPublishable rfg.deobf("curse.maven:avaritia-1-1x-kedition-913129:4777278") // Avaritia 1.1x Kedition 1.3 + runtimeOnlyNonPublishable rfg.deobf("curse.maven:avaritia-1-1x-unofficial-1165010:6092956") // Avaritia UEL 3.3.0.41 } // Debug Chisel diff --git a/gradle.properties b/gradle.properties index e39a7871..ca24cd4a 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,217 +1,216 @@ -modName = GTExpertCore - -# This is a case-sensitive string to identify your mod. Convention is to use lower case. -modId = gtexpert - -modGroup = gtexpert - -# Version of your mod. -# This field can be left empty if you want your mod's version to be determined by the latest git tag instead. -modVersion = 2.2.13-beta - -# Whether to use the old jar naming structure (modid-mcversion-version) instead of the new version (modid-version) -includeMCVersionJar = true - -# The name of your jar when you produce builds, not including any versioning info -modArchivesBaseName = GTExpertCore - -# Will update your build.gradle automatically whenever an update is available -autoUpdateBuildScript = false - -minecraftVersion = 1.12.2 - -# Switchable Dependencies -# If 'useAE2uelExtended = true', AE2 UEL: Extended will be used -# After enabling, change 'enableAE2UELExtended' in cfg(ae_integration.cfg) -useAE2uelExtended = false - -# Debug mod compatibility -debug_all = false -debug_aea = false -debug_nae2 = false -debug_extracpus = false -debug_thaumcraft = false -debug_thaumenergy = false -debug_ffm = false -debug_gendustry = false -debug_binnies = false -debug_eio = false -debug_deda = false -debug_avaritia = false -debug_chisel = false -debug_gtfo = false - -# Select a username for testing your mod with breakpoints. You may leave this empty for a random username each time you -# restart Minecraft in development. Choose this dependent on your mod: -# Do you need consistent player progressing (for example Thaumcraft)? -> Select a name -# Do you need to test how your custom blocks interacts with a player that is not the owner? -> leave name empty -# Alternatively this can be set with the 'DEV_USERNAME' environment variable. -developmentEnvironmentUserName = Developer - -# Enables using modern java syntax (up to version 17) via Jabel, while still targeting JVM 8. -# See https://github.com/bsideup/jabel for details on how this works. -# Using this requires that you use a Java 17 JDK for development. -enableModernJavaSyntax = true - -# Enables runClient/runServer tasks for Java 17 and Java 21 using LWJGL3ify. -# This is primarily used to test if your mod is compatible with platforms running -# Minecraft 1.12.2 on modern versions of Java and LWJGL, and assist in fixing any problems with it. -# Using this requires that you use a Java 17/Java 21 JDK for development. -enableJava17RunTasks = false - -# Generate a class with String fields for the mod id, name and version named with the fields below -generateGradleTokenClass = gtexpert.Tags -gradleTokenModId = MODID -gradleTokenModName = MODNAME -gradleTokenVersion = VERSION - -# In case your mod provides an API for other mods to implement you may declare its package here. Otherwise, you can -# leave this property empty. -# Example value: apiPackage = api + modGroup = com.myname.mymodid -> com.myname.mymodid.api -apiPackage = - -# If you want to keep your API code in src/api instead of src/main -useSrcApiPath = false - -# Specify the configuration file for Forge's access transformers here. It must be placed into /src/main/resources/ -# There can be multiple files in a comma-separated list. -# Example value: mymodid_at.cfg,jei_at.cfg -accessTransformersFile = - -# Provides setup for Mixins if enabled. If you don't know what mixins are: Keep it disabled! -usesMixins = true -# Specify the package that contains all of your Mixins. You may only place Mixins in this package or the build will fail! -mixinsPackage = mixins -# Location of the mixin config refmap. If left, blank, defaults to "mixins.${modId}.refmap.json". Target file must have the "json" extension. -mixinConfigRefmap = mixins.gtexpert.refmap.json -# Automatically generates a mixin config json if enabled, with the name mixins.modid.json -generateMixinConfig = false -# Specify the core mod entry class if you use a core mod. This class must implement IFMLLoadingPlugin! -# Example value: coreModClass = asm.FMLPlugin + modGroup = com.myname.mymodid -> com.myname.mymodid.asm.FMLPlugin -coreModClass = core.GTECoreMod -# If your project is only a consolidation of mixins or a core mod and does NOT contain a 'normal' mod (meaning that -# there is no class annotated with @Mod) you want this to be true. When in doubt: leave it on false! -containsMixinsAndOrCoreModOnly = false - -# Enables Mixins even if this mod doesn't use them, useful if one of the dependencies uses mixins. -forceEnableMixins = false - -# Outputs pre-transformed and post-transformed loaded classes to run/CLASSLOADER_TEMP. Can be used in combination with -# diff to see exactly what your ASM or Mixins are changing in the target file. -# Optionally can be specified with the 'CORE_MOD_DEBUG' env var. Will output a lot of files! -enableCoreModDebug = false - -# Adds CurseMaven, Modrinth Maven, BlameJared maven, and some more well-known 1.12.2 repositories -includeWellKnownRepositories = true - -# Adds JEI and TheOneProbe to your development environment. Adds them as 'implementation', meaning they will -# be available at compiletime and runtime for your mod (in-game and in-code). -# Overrides the above setting to be always true, as these repositories are needed to fetch the mods -includeCommonDevEnvMods = true - -# Some mods require a specific forge version to launch in. When you need to use one of those mods as a dependency, -# and cannot launch with the forge version required, enable this to strip the forge version requirements from that mod. -# This will add 'strip-latest-forge-requirements' as 'runtimeOnlyNonPublishable'. -# Requires useMixins or forceEnableMixins to be true, as the mod uses mixins to function. -stripForgeRequirements = false - -# If enabled, you may use 'shadowCompile' for dependencies. They will be integrated in your jar. It is your -# responsibility check the licence and request permission for distribution, if required. -usesShadowedDependencies = false -# If disabled, won't remove unused classes from shaded dependencies. Some libraries use reflection to access -# their own classes, making the minimization unreliable. -minimizeShadowedDependencies = true -# If disabled, won't rename the shadowed classes. -relocateShadowedDependencies = true - -# Separate run directories into "run/client" for runClient task, and "run/server" for runServer task. -# Useful for debugging a server and client simultaneously. If not enabled, it will be in the standard location "run/" -separateRunDirectories = false - -# The display name format of versions published to Curse and Modrinth. $MOD_NAME and $VERSION are available variables. -# Default: $MOD_NAME \u2212 $VERSION. \u2212 is the minus character which looks much better than the hyphen minus on Curse. -versionDisplayFormat = $MOD_NAME \u2212 $VERSION - -# Publishing to modrinth requires you to set the MODRINTH_API_KEY environment variable to your current modrinth API token. - -# The project's ID on Modrinth. Can be either the slug or the ID. -# Leave this empty if you don't want to publish on Modrinth. -# Alternatively this can be set with the 'MODRINTH_PROJECT_ID' environment variable. -modrinthProjectId = - -# The project's relations on Modrinth. You can use this to refer to other projects on Modrinth. -# Syntax: scope1-type1:name1;scope2-type2:name2;... -# Where scope can be one of [required, optional, incompatible, embedded], -# type can be one of [project, version], -# and the name is the Modrinth project or version slug/id of the other mod. -# Example: required-project:jei;optional-project:top;incompatible-project:gregtech -modrinthRelations = - - -# Publishing to CurseForge requires you to set the CURSEFORGE_API_KEY environment variable to one of your CurseForge API tokens. - -# The project's numeric ID on CurseForge. You can find this in the About Project box. -# Leave this empty if you don't want to publish on CurseForge. -# Alternatively this can be set with the 'CURSEFORGE_PROJECT_ID' environment variable. -curseForgeProjectId = - -# The project's relations on CurseForge. You can use this to refer to other projects on CurseForge. -# Syntax: type1:name1;type2:name2;... -# Where type can be one of [requiredDependency, embeddedLibrary, optionalDependency, tool, incompatible], -# and the name is the CurseForge project slug of the other mod. -# Example: requiredDependency:railcraft;embeddedLibrary:cofhlib;incompatible:buildcraft -curseForgeRelations = - -# This project's release type on CurseForge and/or Modrinth -# Alternatively this can be set with the 'RELEASE_TYPE' environment variable. -# Allowed types: release, beta, alpha -releaseType = beta - -# Generate a default changelog for releases. Requires git to be installed, as it uses it to generate a changelog of -# commits since the last tagged release. -generateDefaultChangelog = false - -# Prevent the source code from being published -noPublishedSources = false - - -# Publish to a custom maven location. Follows a few rules: -# Group ID can be set with the 'ARTIFACT_GROUP_ID' environment variable, default to 'project.group' -# Artifact ID can be set with the 'ARTIFACT_ID' environment variable, default to 'project.name' -# Version can be set with the 'RELEASE_VERSION' environment variable, default to 'modVersion' -# For maven credentials: -# Username is set with the 'MAVEN_USER' environment variable, default to "NONE" -# Password is set with the 'MAVEN_PASSWORD' environment variable, default to "NONE" -customMavenPublishUrl = - -# The group for maven artifacts. Defaults to the 'project.modGroup' until the last '.' (if any). -# So 'mymod' becomes 'mymod' and 'com.myname.mymodid' 'becomes com.myname' -mavenArtifactGroup = - -# Enable spotless checks -# Enforces code formatting on your source code -# By default this will use the files found here: https://github.com/GregTechCEu/Buildscripts/tree/master/spotless -# to format your code. However, you can create your own version of these files and place them in your project's -# root directory to apply your own formatting options instead. -enableSpotless = true - -# Enable JUnit testing platform used for testing your code. -# Uses JUnit 5. See guide and documentation here: https://junit.org/junit5/docs/current/user-guide/ -enableJUnit = true - -# Deployment debug setting -# Uncomment this to test deployments to CurseForge and Modrinth -# Alternatively, you can set the 'DEPLOYMENT_DEBUG' environment variable. -deploymentDebug = false - - -# Gradle Settings -# Effectively applies the '--stacktrace' flag by default -org.gradle.logging.stacktrace = all -# Effectively applies the '--build-cache' flag by default -org.gradle.caching = false -# Effectively applies the '--warning-mode all' flag by default -org.gradle.warning.mode = all -# Sets default memory used for gradle commands. Can be overridden by user or command line properties. -# This is required to provide enough memory for the Minecraft decompilation process. -org.gradle.jvmargs = -Xmx4G -Dfile.encoding=UTF-8 +modName = GTExpertCore + +# This is a case-sensitive string to identify your mod. Convention is to use lower case. +modId = gtexpert + +modGroup = com.github.gtexpert.core + +# Version of your mod. +# This field can be left empty if you want your mod's version to be determined by the latest git tag instead. +modVersion = 2.4.5-beta + +# Whether to use the old jar naming structure (modid-mcversion-version) instead of the new version (modid-version) +includeMCVersionJar = true + +# The name of your jar when you produce builds, not including any versioning info +modArchivesBaseName = GTExpertCore + +# Will update your build.gradle automatically whenever an update is available +autoUpdateBuildScript = false + +minecraftVersion = 1.12.2 + +# Switchable Dependencies +# If 'useAE2uelExtended = true', AE2 UEL: Extended will be used +# After enabling, change 'enableAE2UELExtended' in cfg(ae_integration.cfg) +useAE2uelExtended = false + +# Debug mod compatibility +debug_all = false +debug_gtwp = false +debug_inb = false +debug_aea = false +debug_nae2 = false +debug_extracpus = false +debug_thaumcraft = false +debug_thaumenergy = false +debug_eio = false +debug_deda = false +debug_avaritia = false +debug_chisel = false +debug_gtfo = false + +# Select a username for testing your mod with breakpoints. You may leave this empty for a random username each time you +# restart Minecraft in development. Choose this dependent on your mod: +# Do you need consistent player progressing (for example Thaumcraft)? -> Select a name +# Do you need to test how your custom blocks interacts with a player that is not the owner? -> leave name empty +# Alternatively this can be set with the 'DEV_USERNAME' environment variable. +developmentEnvironmentUserName = Developer + +# Enables using modern java syntax (up to version 17) via Jabel, while still targeting JVM 8. +# See https://github.com/bsideup/jabel for details on how this works. +# Using this requires that you use a Java 17 JDK for development. +enableModernJavaSyntax = true + +# Enables runClient/runServer tasks for Java 17 and Java 21 using LWJGL3ify. +# This is primarily used to test if your mod is compatible with platforms running +# Minecraft 1.12.2 on modern versions of Java and LWJGL, and assist in fixing any problems with it. +# Using this requires that you use a Java 17/Java 21 JDK for development. +enableJava17RunTasks = false + +# Generate a class with String fields for the mod id, name and version named with the fields below +generateGradleTokenClass = com.github.gtexpert.core.Tags +gradleTokenModId = MODID +gradleTokenModName = MODNAME +gradleTokenVersion = VERSION + +# In case your mod provides an API for other mods to implement you may declare its package here. Otherwise, you can +# leave this property empty. +# Example value: apiPackage = api + modGroup = com.myname.mymodid -> com.myname.mymodid.api +apiPackage = + +# If you want to keep your API code in src/api instead of src/main +useSrcApiPath = false + +# Specify the configuration file for Forge's access transformers here. It must be placed into /src/main/resources/ +# There can be multiple files in a comma-separated list. +# Example value: mymodid_at.cfg,jei_at.cfg +accessTransformersFile = + +# Provides setup for Mixins if enabled. If you don't know what mixins are: Keep it disabled! +usesMixins = true +# Specify the package that contains all of your Mixins. You may only place Mixins in this package or the build will fail! +mixinsPackage = mixins +# Location of the mixin config refmap. If left, blank, defaults to "mixins.${modId}.refmap.json". Target file must have the "json" extension. +mixinConfigRefmap = mixins.gtexpert.refmap.json +# Automatically generates a mixin config json if enabled, with the name mixins.modid.json +generateMixinConfig = false +# Specify the core mod entry class if you use a core mod. This class must implement IFMLLoadingPlugin! +# Example value: coreModClass = asm.FMLPlugin + modGroup = com.myname.mymodid -> com.myname.mymodid.asm.FMLPlugin +coreModClass = core.GTECoreMod +# If your project is only a consolidation of mixins or a core mod and does NOT contain a 'normal' mod (meaning that +# there is no class annotated with @Mod) you want this to be true. When in doubt: leave it on false! +containsMixinsAndOrCoreModOnly = false + +# Enables Mixins even if this mod doesn't use them, useful if one of the dependencies uses mixins. +forceEnableMixins = false + +# Outputs pre-transformed and post-transformed loaded classes to run/CLASSLOADER_TEMP. Can be used in combination with +# diff to see exactly what your ASM or Mixins are changing in the target file. +# Optionally can be specified with the 'CORE_MOD_DEBUG' env var. Will output a lot of files! +enableCoreModDebug = false + +# Adds CurseMaven, Modrinth Maven, BlameJared maven, and some more well-known 1.12.2 repositories +includeWellKnownRepositories = true + +# Adds JEI and TheOneProbe to your development environment. Adds them as 'implementation', meaning they will +# be available at compiletime and runtime for your mod (in-game and in-code). +# Overrides the above setting to be always true, as these repositories are needed to fetch the mods +includeCommonDevEnvMods = true + +# Some mods require a specific forge version to launch in. When you need to use one of those mods as a dependency, +# and cannot launch with the forge version required, enable this to strip the forge version requirements from that mod. +# This will add 'strip-latest-forge-requirements' as 'runtimeOnlyNonPublishable'. +# Requires useMixins or forceEnableMixins to be true, as the mod uses mixins to function. +stripForgeRequirements = false + +# If enabled, you may use 'shadowCompile' for dependencies. They will be integrated in your jar. It is your +# responsibility check the licence and request permission for distribution, if required. +usesShadowedDependencies = false +# If disabled, won't remove unused classes from shaded dependencies. Some libraries use reflection to access +# their own classes, making the minimization unreliable. +minimizeShadowedDependencies = true +# If disabled, won't rename the shadowed classes. +relocateShadowedDependencies = true + +# Separate run directories into "run/client" for runClient task, and "run/server" for runServer task. +# Useful for debugging a server and client simultaneously. If not enabled, it will be in the standard location "run/" +separateRunDirectories = false + +# The display name format of versions published to Curse and Modrinth. $MOD_NAME and $VERSION are available variables. +# Default: $MOD_NAME \u2212 $VERSION. \u2212 is the minus character which looks much better than the hyphen minus on Curse. +versionDisplayFormat = $MOD_NAME \u2212 $VERSION + +# Publishing to modrinth requires you to set the MODRINTH_API_KEY environment variable to your current modrinth API token. + +# The project's ID on Modrinth. Can be either the slug or the ID. +# Leave this empty if you don't want to publish on Modrinth. +# Alternatively this can be set with the 'MODRINTH_PROJECT_ID' environment variable. +modrinthProjectId = + +# The project's relations on Modrinth. You can use this to refer to other projects on Modrinth. +# Syntax: scope1-type1:name1;scope2-type2:name2;... +# Where scope can be one of [required, optional, incompatible, embedded], +# type can be one of [project, version], +# and the name is the Modrinth project or version slug/id of the other mod. +# Example: required-project:jei;optional-project:top;incompatible-project:gregtech +modrinthRelations = + + +# Publishing to CurseForge requires you to set the CURSEFORGE_API_KEY environment variable to one of your CurseForge API tokens. + +# The project's numeric ID on CurseForge. You can find this in the About Project box. +# Leave this empty if you don't want to publish on CurseForge. +# Alternatively this can be set with the 'CURSEFORGE_PROJECT_ID' environment variable. +curseForgeProjectId = + +# The project's relations on CurseForge. You can use this to refer to other projects on CurseForge. +# Syntax: type1:name1;type2:name2;... +# Where type can be one of [requiredDependency, embeddedLibrary, optionalDependency, tool, incompatible], +# and the name is the CurseForge project slug of the other mod. +# Example: requiredDependency:railcraft;embeddedLibrary:cofhlib;incompatible:buildcraft +curseForgeRelations = + +# This project's release type on CurseForge and/or Modrinth +# Alternatively this can be set with the 'RELEASE_TYPE' environment variable. +# Allowed types: release, beta, alpha +releaseType = beta + +# Generate a default changelog for releases. Requires git to be installed, as it uses it to generate a changelog of +# commits since the last tagged release. +generateDefaultChangelog = false + +# Prevent the source code from being published +noPublishedSources = false + + +# Publish to a custom maven location. Follows a few rules: +# Group ID can be set with the 'ARTIFACT_GROUP_ID' environment variable, default to 'project.group' +# Artifact ID can be set with the 'ARTIFACT_ID' environment variable, default to 'project.name' +# Version can be set with the 'RELEASE_VERSION' environment variable, default to 'modVersion' +# For maven credentials: +# Username is set with the 'MAVEN_USER' environment variable, default to "NONE" +# Password is set with the 'MAVEN_PASSWORD' environment variable, default to "NONE" +customMavenPublishUrl = + +# The group for maven artifacts. Defaults to the 'project.modGroup' until the last '.' (if any). +# So 'mymod' becomes 'mymod' and 'com.myname.mymodid' 'becomes com.myname' +mavenArtifactGroup = + +# Enable spotless checks +# Enforces code formatting on your source code +# By default this will use the files found here: https://github.com/GTModpackTeam/Buildscripts/tree/master/spotless +# to format your code. However, you can create your own version of these files and place them in your project's +# root directory to apply your own formatting options instead. +enableSpotless = true + +# Enable JUnit testing platform used for testing your code. +# Uses JUnit 5. See guide and documentation here: https://junit.org/junit5/docs/current/user-guide/ +enableJUnit = true + +# Deployment debug setting +# Uncomment this to test deployments to CurseForge and Modrinth +# Alternatively, you can set the 'DEPLOYMENT_DEBUG' environment variable. +deploymentDebug = false + + +# Gradle Settings +# Effectively applies the '--stacktrace' flag by default +org.gradle.logging.stacktrace = all +# Effectively applies the '--build-cache' flag by default +org.gradle.caching = false +# Effectively applies the '--warning-mode all' flag by default +org.gradle.warning.mode = all +# Sets default memory used for gradle commands. Can be overridden by user or command line properties. +# This is required to provide enough memory for the Minecraft decompilation process. +org.gradle.jvmargs = -Xmx4G -Dfile.encoding=UTF-8 diff --git a/libs/GregicalityMultiblocks-1.3.0-dev.jar b/libs/GregicalityMultiblocks-1.3.0-dev.jar new file mode 100644 index 00000000..0915d497 Binary files /dev/null and b/libs/GregicalityMultiblocks-1.3.0-dev.jar differ diff --git a/libs/gregtech-1.12.2-2.9.0-beta-dev.jar b/libs/gregtech-1.12.2-2.9.0-beta-dev.jar new file mode 100644 index 00000000..949e151c Binary files /dev/null and b/libs/gregtech-1.12.2-2.9.0-beta-dev.jar differ diff --git a/libs/gregtech-1.12.2-2.9.0-beta-sources.jar b/libs/gregtech-1.12.2-2.9.0-beta-sources.jar new file mode 100644 index 00000000..4250c6a3 Binary files /dev/null and b/libs/gregtech-1.12.2-2.9.0-beta-sources.jar differ diff --git a/renovate.json b/renovate.json index 9a8c0505..c75414bb 100644 --- a/renovate.json +++ b/renovate.json @@ -3,20 +3,23 @@ "extends": [ "config:recommended" ], - "dependencyDashboard": true, "timezone": "Asia/Tokyo", "schedule": [ "every weekend" ], - "enabledManagers": [ - "gradle" - ], - "ignorePaths": [ - "build.gradle" - ], - "separateMajorMinor": false, "automerge": false, "packageRules": [ + { + "matchDatasources": ["gradle-version"], + "registryUrls": [ + "https://www.cursemaven.com", + "https://api.modrinth.com/maven", + "https://maven.cleanroommc.com", + "https://maven.blamejared.com", + "https://nexus.gtnewhorizons.com/repository/public/", + "https://maven.gtceu.com" + ] + }, { "groupName": "monthly_maintenance", "matchDepTypes":[ "dependencies" ], diff --git a/settings.gradle b/settings.gradle index 771def37..badc33c1 100644 --- a/settings.gradle +++ b/settings.gradle @@ -20,11 +20,22 @@ plugins { id 'com.diffplug.blowdryerSetup' version '1.7.0' // Automatic toolchain provisioning id 'org.gradle.toolchains.foojay-resolver-convention' version '0.7.0' + id 'com.gradle.enterprise' version '3.18.1' +} + +gradleEnterprise { + if (System.getenv("CI") != null) { + buildScan { + publishAlways() + termsOfServiceUrl = "https://gradle.com/terms-of-service" + termsOfServiceAgree = "yes" + } + } } blowdryerSetup { repoSubfolder 'spotless' - github 'GregTechCEu/Buildscripts', 'tag', 'v1.0.7' + github 'GTModpackTeam/Buildscripts', 'tag', 'v1.0.1' } rootProject.name = rootProject.projectDir.getName() diff --git a/settings.gradle.patch b/settings.gradle.patch deleted file mode 100644 index 7a4edb35..00000000 --- a/settings.gradle.patch +++ /dev/null @@ -1,17 +0,0 @@ -diff --git ./settings.gradle ./settings.gradle.patch ---- ./settings.gradle -+++ ./settings.gradle.patch -@@ -24,2 +24,13 @@ - id 'org.gradle.toolchains.foojay-resolver-convention' version '0.7.0' -+ id 'com.gradle.enterprise' version '3.16.2' -+} -+ -+gradleEnterprise { -+ if (System.getenv("CI") != null) { -+ buildScan { -+ publishAlways() -+ termsOfServiceUrl = "https://gradle.com/terms-of-service" -+ termsOfServiceAgree = "yes" -+ } -+ } - } diff --git a/spotless.importorder b/spotless.importorder index e503714d..41019cc1 100644 --- a/spotless.importorder +++ b/spotless.importorder @@ -6,4 +6,4 @@ 4=com 5=gregtech 6=gregicality -7=gtexpert +7=com.github.gtexpert diff --git a/src/main/java/gtexpert/GTExpertMod.java b/src/main/java/com/github/gtexpert/core/GTExpertMod.java similarity index 86% rename from src/main/java/gtexpert/GTExpertMod.java rename to src/main/java/com/github/gtexpert/core/GTExpertMod.java index 66f0e009..68f4dfc4 100644 --- a/src/main/java/gtexpert/GTExpertMod.java +++ b/src/main/java/com/github/gtexpert/core/GTExpertMod.java @@ -1,4 +1,4 @@ -package gtexpert; +package com.github.gtexpert.core; import java.util.function.Function; @@ -22,20 +22,23 @@ import gregtech.api.GregTechAPI; import gregtech.api.cover.CoverDefinition; -import gtexpert.api.GTEValues; -import gtexpert.api.util.GTELog; -import gtexpert.api.util.Mods; -import gtexpert.common.items.behaviors.GTECoverBehaviors; -import gtexpert.modules.GTEModuleManager; -import gtexpert.modules.GTEModules; +import com.github.gtexpert.core.api.GTEValues; +import com.github.gtexpert.core.api.util.GTELog; +import com.github.gtexpert.core.api.util.Mods; +import com.github.gtexpert.core.common.GTEConfigHolder; +import com.github.gtexpert.core.common.items.behaviors.GTECoverBehaviors; +import com.github.gtexpert.core.modules.GTEModuleManager; +import com.github.gtexpert.core.modules.GTEModules; @Mod(modid = GTEValues.MODID, name = GTEValues.MODNAME, acceptedMinecraftVersions = "[1.12.2,1.13)", version = Tags.VERSION, updateJSON = "https://forge.curseupdate.com/851103/gtexpert", - dependencies = GTInternalTags.DEP_VERSION_STRING + "required-after:" + Mods.Names.MIXINBOOTER + ";" + + dependencies = GTInternalTags.DEP_VERSION_STRING + "required-after:" + Mods.Names.MODULRAUI + ";" + + "required-after:" + Mods.Names.MIXINBOOTER + ";" + "required-after:" + Mods.Names.GREGICALITY_MULTIBLOCKS + ";" + + "after:" + Mods.Names.GREGTECH_WOOD_PROCESSING + ";" + "after:" + Mods.Names.IMPLOSION_NO_BOMB + ";" + "after:" + Mods.Names.GREGTECH_FOOD_OPTION + ";" + "after:" + Mods.Names.APPLIED_ENERGISTICS2 + ";" + "after:" + Mods.Names.AE_ADDITIONS + ";" + "after:" + Mods.Names.AE2_FLUID_CRAFTING + ";" + "after:" + Mods.Names.NEEVES_AE2 + ";" + "after:" + Mods.Names.EXTRA_CPUS + ";" + @@ -44,10 +47,7 @@ "after:" + Mods.Names.ENDER_CONDUITS + ";" + "after:" + Mods.Names.ENDER_AE2_CONDUITS + ";" + "after:" + Mods.Names.DRACONIC_EVOLUTION + ";" + "after:" + Mods.Names.DRACONIC_ADDITIONS + ";" + "after:" + Mods.Names.CHISEL + ";" + "after:" + Mods.Names.AVARITIA + ";" + - "after:" + Mods.Names.THAUMCRAFT + ";" + "after:" + Mods.Names.THAUMIC_ENERGISTICS + ";" + - "after:" + Mods.Names.FORESTRY + ";" + "after:" + Mods.Names.GENDUSTRY + ";" + - "after:" + Mods.Names.GENETICS + ";" + "after:" + Mods.Names.BOTANY + ";" + - "after:" + Mods.Names.EXTRA_BEES + ";" + "after:" + Mods.Names.EXTRA_TREES + ";") + "after:" + Mods.Names.THAUMCRAFT + ";" + "after:" + Mods.Names.THAUMIC_ENERGISTICS + ";") @Mod.EventBusSubscriber(modid = GTEValues.MODID) public class GTExpertMod { @@ -130,7 +130,14 @@ public void registerItems(RegistryEvent.Register event) { @SubscribeEvent public static void registerCovers(GregTechAPI.RegisterEvent event) { GTELog.logger.info("Registering Covers..."); - GTECoverBehaviors.init(); + + String componentsName = GTEConfigHolder.gteFlag.componentsName; + if (componentsName.equals("ulv") || componentsName.equals("primitive")) { + GTECoverBehaviors.init(); + } else { + GTELog.logger.error("Invalid componentsName setting: {}", + componentsName, new Throwable()); + } } @SubscribeEvent(priority = EventPriority.HIGHEST) diff --git a/src/main/java/gtexpert/api/GTEValues.java b/src/main/java/com/github/gtexpert/core/api/GTEValues.java similarity index 85% rename from src/main/java/gtexpert/api/GTEValues.java rename to src/main/java/com/github/gtexpert/core/api/GTEValues.java index 7eb9d878..0ba1d9cd 100644 --- a/src/main/java/gtexpert/api/GTEValues.java +++ b/src/main/java/com/github/gtexpert/core/api/GTEValues.java @@ -1,12 +1,12 @@ -package gtexpert.api; +package com.github.gtexpert.core.api; -import gtexpert.Tags; -import gtexpert.api.util.GTELog; -import gtexpert.api.util.Mods; -import gtexpert.integration.ae.AEConfigHolder; -import gtexpert.integration.deda.DEDAConfigHolder; -import gtexpert.integration.eio.EnderIOConfigHolder; -import gtexpert.modules.GTEModules; +import com.github.gtexpert.core.Tags; +import com.github.gtexpert.core.api.util.GTELog; +import com.github.gtexpert.core.api.util.Mods; +import com.github.gtexpert.core.integration.ae.AEConfigHolder; +import com.github.gtexpert.core.integration.deda.DEDAConfigHolder; +import com.github.gtexpert.core.integration.eio.EnderIOConfigHolder; +import com.github.gtexpert.core.modules.GTEModules; public class GTEValues { diff --git a/src/main/java/gtexpert/api/capability/GTEDataCodes.java b/src/main/java/com/github/gtexpert/core/api/capability/GTEDataCodes.java similarity index 62% rename from src/main/java/gtexpert/api/capability/GTEDataCodes.java rename to src/main/java/com/github/gtexpert/core/api/capability/GTEDataCodes.java index 3b62c86e..fdb17697 100644 --- a/src/main/java/gtexpert/api/capability/GTEDataCodes.java +++ b/src/main/java/com/github/gtexpert/core/api/capability/GTEDataCodes.java @@ -1,4 +1,4 @@ -package gtexpert.api.capability; +package com.github.gtexpert.core.api.capability; public class GTEDataCodes { diff --git a/src/main/java/gtexpert/api/capability/MultiblockRecipeLogicNoCache.java b/src/main/java/com/github/gtexpert/core/api/capability/MultiblockRecipeLogicNoCache.java similarity index 85% rename from src/main/java/gtexpert/api/capability/MultiblockRecipeLogicNoCache.java rename to src/main/java/com/github/gtexpert/core/api/capability/MultiblockRecipeLogicNoCache.java index a2ff5644..2c92eab9 100644 --- a/src/main/java/gtexpert/api/capability/MultiblockRecipeLogicNoCache.java +++ b/src/main/java/com/github/gtexpert/core/api/capability/MultiblockRecipeLogicNoCache.java @@ -1,9 +1,9 @@ -package gtexpert.api.capability; +package com.github.gtexpert.core.api.capability; import gregtech.api.capability.impl.MultiblockRecipeLogic; import gregtech.api.metatileentity.multiblock.RecipeMapMultiblockController; -import gtexpert.integration.deda.recipemaps.RecipeMapDraconicFusion; +import com.github.gtexpert.core.integration.deda.recipemaps.RecipeMapDraconicFusion; /** * This recipe logic disables cache used for speeding up recipe check. diff --git a/src/main/java/gtexpert/api/capability/SingleblockRecipeLogicNoCache.java b/src/main/java/com/github/gtexpert/core/api/capability/SingleblockRecipeLogicNoCache.java similarity index 92% rename from src/main/java/gtexpert/api/capability/SingleblockRecipeLogicNoCache.java rename to src/main/java/com/github/gtexpert/core/api/capability/SingleblockRecipeLogicNoCache.java index 62c1fcf4..d54f759d 100644 --- a/src/main/java/gtexpert/api/capability/SingleblockRecipeLogicNoCache.java +++ b/src/main/java/com/github/gtexpert/core/api/capability/SingleblockRecipeLogicNoCache.java @@ -1,4 +1,4 @@ -package gtexpert.api.capability; +package com.github.gtexpert.core.api.capability; import java.util.function.Supplier; diff --git a/src/main/java/gtexpert/api/gui/GTEGuiTextures.java b/src/main/java/com/github/gtexpert/core/api/gui/GTEGuiTextures.java similarity index 98% rename from src/main/java/gtexpert/api/gui/GTEGuiTextures.java rename to src/main/java/com/github/gtexpert/core/api/gui/GTEGuiTextures.java index 3ffc3d06..26ffd5ec 100644 --- a/src/main/java/gtexpert/api/gui/GTEGuiTextures.java +++ b/src/main/java/com/github/gtexpert/core/api/gui/GTEGuiTextures.java @@ -1,4 +1,4 @@ -package gtexpert.api.gui; +package com.github.gtexpert.core.api.gui; import gregtech.api.gui.resources.SteamTexture; import gregtech.api.gui.resources.TextureArea; diff --git a/src/main/java/gtexpert/api/modules/GTEModule.java b/src/main/java/com/github/gtexpert/core/api/modules/GTEModule.java similarity index 96% rename from src/main/java/gtexpert/api/modules/GTEModule.java rename to src/main/java/com/github/gtexpert/core/api/modules/GTEModule.java index 585312f8..e1ad0483 100644 --- a/src/main/java/gtexpert/api/modules/GTEModule.java +++ b/src/main/java/com/github/gtexpert/core/api/modules/GTEModule.java @@ -1,4 +1,4 @@ -package gtexpert.api.modules; +package com.github.gtexpert.core.api.modules; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; diff --git a/src/main/java/gtexpert/api/modules/IGTEModule.java b/src/main/java/com/github/gtexpert/core/api/modules/IGTEModule.java similarity index 98% rename from src/main/java/gtexpert/api/modules/IGTEModule.java rename to src/main/java/com/github/gtexpert/core/api/modules/IGTEModule.java index cdce86cb..99b8fdbd 100644 --- a/src/main/java/gtexpert/api/modules/IGTEModule.java +++ b/src/main/java/com/github/gtexpert/core/api/modules/IGTEModule.java @@ -1,4 +1,4 @@ -package gtexpert.api.modules; +package com.github.gtexpert.core.api.modules; import java.util.Collections; import java.util.List; diff --git a/src/main/java/gtexpert/api/modules/IModuleContainer.java b/src/main/java/com/github/gtexpert/core/api/modules/IModuleContainer.java similarity index 81% rename from src/main/java/gtexpert/api/modules/IModuleContainer.java rename to src/main/java/com/github/gtexpert/core/api/modules/IModuleContainer.java index 113a083d..179f9006 100644 --- a/src/main/java/gtexpert/api/modules/IModuleContainer.java +++ b/src/main/java/com/github/gtexpert/core/api/modules/IModuleContainer.java @@ -1,4 +1,4 @@ -package gtexpert.api.modules; +package com.github.gtexpert.core.api.modules; public interface IModuleContainer { diff --git a/src/main/java/gtexpert/api/modules/IModuleManager.java b/src/main/java/com/github/gtexpert/core/api/modules/IModuleManager.java similarity index 85% rename from src/main/java/gtexpert/api/modules/IModuleManager.java rename to src/main/java/com/github/gtexpert/core/api/modules/IModuleManager.java index cea44ae5..1ce2b49f 100644 --- a/src/main/java/gtexpert/api/modules/IModuleManager.java +++ b/src/main/java/com/github/gtexpert/core/api/modules/IModuleManager.java @@ -1,8 +1,8 @@ -package gtexpert.api.modules; +package com.github.gtexpert.core.api.modules; import net.minecraft.util.ResourceLocation; -import gtexpert.api.util.GTEUtility; +import com.github.gtexpert.core.api.util.GTEUtility; public interface IModuleManager { diff --git a/src/main/java/gtexpert/api/modules/ModuleContainer.java b/src/main/java/com/github/gtexpert/core/api/modules/ModuleContainer.java similarity index 88% rename from src/main/java/gtexpert/api/modules/ModuleContainer.java rename to src/main/java/com/github/gtexpert/core/api/modules/ModuleContainer.java index 2375ba86..f79537dd 100644 --- a/src/main/java/gtexpert/api/modules/ModuleContainer.java +++ b/src/main/java/com/github/gtexpert/core/api/modules/ModuleContainer.java @@ -1,4 +1,4 @@ -package gtexpert.api.modules; +package com.github.gtexpert.core.api.modules; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; diff --git a/src/main/java/gtexpert/api/modules/ModuleStage.java b/src/main/java/com/github/gtexpert/core/api/modules/ModuleStage.java similarity index 93% rename from src/main/java/gtexpert/api/modules/ModuleStage.java rename to src/main/java/com/github/gtexpert/core/api/modules/ModuleStage.java index 7ec27da5..bb87ecc4 100644 --- a/src/main/java/gtexpert/api/modules/ModuleStage.java +++ b/src/main/java/com/github/gtexpert/core/api/modules/ModuleStage.java @@ -1,4 +1,4 @@ -package gtexpert.api.modules; +package com.github.gtexpert.core.api.modules; /** * Basically {@link net.minecraftforge.fml.common.LoaderState} but only for launch stages. diff --git a/src/main/java/com/github/gtexpert/core/api/recipes/GTERecipeMaps.java b/src/main/java/com/github/gtexpert/core/api/recipes/GTERecipeMaps.java new file mode 100644 index 00000000..642d2175 --- /dev/null +++ b/src/main/java/com/github/gtexpert/core/api/recipes/GTERecipeMaps.java @@ -0,0 +1,58 @@ +package com.github.gtexpert.core.api.recipes; + +import static gregtech.api.GTValues.*; + +import net.minecraft.init.SoundEvents; + +import gregtech.api.gui.GuiTextures; +import gregtech.api.gui.widgets.ProgressWidget; +import gregtech.api.recipes.RecipeMap; +import gregtech.api.recipes.RecipeMapBuilder; +import gregtech.api.recipes.builders.SimpleRecipeBuilder; +import gregtech.core.sound.GTSoundEvents; + +import com.github.gtexpert.core.api.gui.GTEGuiTextures; + +import crafttweaker.annotations.ZenRegister; +import stanhebben.zenscript.annotations.ZenExpansion; +import stanhebben.zenscript.annotations.ZenProperty; + +@ZenExpansion("mods.gregtech.recipe.RecipeMaps") +@ZenRegister +public class GTERecipeMaps { + + @ZenProperty + public static final RecipeMap SIEVE_RECIPES = new RecipeMapBuilder<>( + "sieve", new SimpleRecipeBuilder()) + .itemInputs(2) + .itemOutputs(30) + .fluidInputs(0) + .fluidOutputs(0) + .progressBar(GuiTextures.PROGRESS_BAR_SIFT, ProgressWidget.MoveType.VERTICAL_INVERTED) + .sound(SoundEvents.BLOCK_SAND_PLACE) + .build(); + + @ZenProperty + public static final RecipeMap VOID_ORE_MINER_RECIPES = new RecipeMapBuilder<>( + "void_ore_miner", new SimpleRecipeBuilder()) + .itemInputs(1) + .itemOutputs(1) + .fluidInputs(2) + .fluidOutputs(0) + .progressBar(GTEGuiTextures.PROGRESS_BAR_VOM, ProgressWidget.MoveType.VERTICAL) + .sound(GTSoundEvents.DRILL_TOOL) + .build(); + + @ZenProperty + public static final RecipeMap LARGE_GAS_COLLECTOR_RECIPES = new RecipeMapBuilder<>( + "large_gas_collector", new SimpleRecipeBuilder()) + .itemInputs(2) + .itemOutputs(0) + .fluidInputs(1) + .fluidOutputs(2) + .itemSlotOverlay(GuiTextures.DUST_OVERLAY, false) + .fluidSlotOverlay(GuiTextures.CENTRIFUGE_OVERLAY, true) + .progressBar(GuiTextures.PROGRESS_BAR_GAS_COLLECTOR, ProgressWidget.MoveType.HORIZONTAL) + .sound(GTSoundEvents.COOLING) + .build(); +} diff --git a/src/main/java/com/github/gtexpert/core/api/unification/GTEElements.java b/src/main/java/com/github/gtexpert/core/api/unification/GTEElements.java new file mode 100644 index 00000000..9bf40c34 --- /dev/null +++ b/src/main/java/com/github/gtexpert/core/api/unification/GTEElements.java @@ -0,0 +1,16 @@ +package com.github.gtexpert.core.api.unification; + +import gregtech.api.unification.Element; +import gregtech.api.unification.Elements; + +public class GTEElements { + + private GTEElements() {} + + public static final Element Dr = Elements.add(37, 51, -1, null, "Dragon", "Dr", false); + public static final Element Dr1 = Elements.add(30, 39, -1, null, "Chaos", "Dr+", false); + public static final Element De = Elements.add(9, 11, -1, null, "Draconium", "De", false); + public static final Element De1 = Elements.add(43, 55, -1, null, "AwakenedDraconium", "De+", false); + public static final Element If = Elements.add(1, 0, -1, null, "Infinity", "If", false); + public static final Element FeMa = Elements.add(1, 0, -1, null, "Thaumium", "FeMa", false); +} diff --git a/src/main/java/gtexpert/api/unification/material/GTEFirstDegreeMaterials.java b/src/main/java/com/github/gtexpert/core/api/unification/material/GTEFirstDegreeMaterials.java similarity index 90% rename from src/main/java/gtexpert/api/unification/material/GTEFirstDegreeMaterials.java rename to src/main/java/com/github/gtexpert/core/api/unification/material/GTEFirstDegreeMaterials.java index 5ebe546d..b1365731 100644 --- a/src/main/java/gtexpert/api/unification/material/GTEFirstDegreeMaterials.java +++ b/src/main/java/com/github/gtexpert/core/api/unification/material/GTEFirstDegreeMaterials.java @@ -1,11 +1,11 @@ -package gtexpert.api.unification.material; +package com.github.gtexpert.core.api.unification.material; +import static com.github.gtexpert.core.api.unification.material.GTEMaterials.*; +import static com.github.gtexpert.core.api.util.GTEUtility.gteId; import static gregtech.api.GTValues.*; import static gregtech.api.unification.material.Materials.*; import static gregtech.api.unification.material.info.MaterialFlags.*; import static gregtech.api.unification.material.info.MaterialIconSet.*; -import static gtexpert.api.unification.material.GTEMaterials.*; -import static gtexpert.api.util.GTEUtility.gteId; import gregtech.api.fluids.FluidBuilder; import gregtech.api.unification.material.Material; diff --git a/src/main/java/gtexpert/api/unification/material/GTEMaterialFlags.java b/src/main/java/com/github/gtexpert/core/api/unification/material/GTEMaterialFlags.java similarity index 83% rename from src/main/java/gtexpert/api/unification/material/GTEMaterialFlags.java rename to src/main/java/com/github/gtexpert/core/api/unification/material/GTEMaterialFlags.java index edfab495..17903a86 100644 --- a/src/main/java/gtexpert/api/unification/material/GTEMaterialFlags.java +++ b/src/main/java/com/github/gtexpert/core/api/unification/material/GTEMaterialFlags.java @@ -1,4 +1,4 @@ -package gtexpert.api.unification.material; +package com.github.gtexpert.core.api.unification.material; import static gregtech.api.unification.material.info.MaterialFlags.*; @@ -8,8 +8,6 @@ import gregtech.api.unification.material.properties.*; import gregtech.api.unification.ore.OrePrefix; -import gtexpert.api.util.Mods; - public class GTEMaterialFlags { public static void init() { @@ -65,22 +63,5 @@ public static void init() { // Iridium Materials.Iridium.setProperty(PropertyKey.ORE, new OreProperty()); Materials.Iridium.getProperty(PropertyKey.ORE).setOreByProducts(Materials.Platinum, Materials.Osmium); - - if (Mods.Forestry.isModLoaded()) { - // Copper - Materials.Copper.addFlags(GENERATE_GEAR); - - // Tin - Materials.Tin.addFlags(GENERATE_GEAR); - - // Iron - Materials.Iron.addFlags(GENERATE_FINE_WIRE, GENERATE_FOIL); - - // Bronze - Materials.Bronze.addFlags(GENERATE_FINE_WIRE); - - // Rose Gold - Materials.RoseGold.addFlags(GENERATE_FOIL); - } } } diff --git a/src/main/java/gtexpert/api/unification/material/GTEMaterials.java b/src/main/java/com/github/gtexpert/core/api/unification/material/GTEMaterials.java similarity index 94% rename from src/main/java/gtexpert/api/unification/material/GTEMaterials.java rename to src/main/java/com/github/gtexpert/core/api/unification/material/GTEMaterials.java index e963f363..ab4c950e 100644 --- a/src/main/java/gtexpert/api/unification/material/GTEMaterials.java +++ b/src/main/java/com/github/gtexpert/core/api/unification/material/GTEMaterials.java @@ -1,10 +1,10 @@ -package gtexpert.api.unification.material; +package com.github.gtexpert.core.api.unification.material; import gregtech.api.unification.material.Material; -import gtexpert.api.GTEValues; -import gtexpert.api.unification.material.ingredients.*; -import gtexpert.api.util.Mods; +import com.github.gtexpert.core.api.GTEValues; +import com.github.gtexpert.core.api.unification.material.ingredients.*; +import com.github.gtexpert.core.api.util.Mods; /** * Material Registration. diff --git a/src/main/java/gtexpert/api/unification/material/info/GTEMaterialIconSet.java b/src/main/java/com/github/gtexpert/core/api/unification/material/info/GTEMaterialIconSet.java similarity index 82% rename from src/main/java/gtexpert/api/unification/material/info/GTEMaterialIconSet.java rename to src/main/java/com/github/gtexpert/core/api/unification/material/info/GTEMaterialIconSet.java index c9e4c793..9211591a 100644 --- a/src/main/java/gtexpert/api/unification/material/info/GTEMaterialIconSet.java +++ b/src/main/java/com/github/gtexpert/core/api/unification/material/info/GTEMaterialIconSet.java @@ -1,4 +1,4 @@ -package gtexpert.api.unification.material.info; +package com.github.gtexpert.core.api.unification.material.info; import gregtech.api.unification.material.info.MaterialIconSet; diff --git a/src/main/java/gtexpert/api/unification/material/ingredients/AEFirstDegreeMaterials.java b/src/main/java/com/github/gtexpert/core/api/unification/material/ingredients/AEFirstDegreeMaterials.java similarity index 90% rename from src/main/java/gtexpert/api/unification/material/ingredients/AEFirstDegreeMaterials.java rename to src/main/java/com/github/gtexpert/core/api/unification/material/ingredients/AEFirstDegreeMaterials.java index 94e747bb..7ac4427c 100644 --- a/src/main/java/gtexpert/api/unification/material/ingredients/AEFirstDegreeMaterials.java +++ b/src/main/java/com/github/gtexpert/core/api/unification/material/ingredients/AEFirstDegreeMaterials.java @@ -1,11 +1,11 @@ -package gtexpert.api.unification.material.ingredients; +package com.github.gtexpert.core.api.unification.material.ingredients; +import static com.github.gtexpert.core.api.unification.material.GTEMaterials.*; +import static com.github.gtexpert.core.api.util.GTEUtility.gteId; import static gregicality.multiblocks.api.unification.GCYMMaterialFlags.NO_ALLOY_BLAST_RECIPES; import static gregtech.api.GTValues.*; import static gregtech.api.unification.material.Materials.*; import static gregtech.api.unification.material.info.MaterialFlags.*; -import static gtexpert.api.unification.material.GTEMaterials.*; -import static gtexpert.api.util.GTEUtility.gteId; import gregtech.api.fluids.FluidBuilder; import gregtech.api.unification.material.Material; @@ -14,7 +14,7 @@ import gregtech.api.unification.material.properties.BlastProperty.GasTier; import gregtech.api.unification.ore.OrePrefix; -import gtexpert.api.GTEValues; +import com.github.gtexpert.core.api.GTEValues; public class AEFirstDegreeMaterials { diff --git a/src/main/java/gtexpert/api/unification/material/ingredients/AvaritiaFirstDegreeMaterials.java b/src/main/java/com/github/gtexpert/core/api/unification/material/ingredients/AvaritiaFirstDegreeMaterials.java similarity index 82% rename from src/main/java/gtexpert/api/unification/material/ingredients/AvaritiaFirstDegreeMaterials.java rename to src/main/java/com/github/gtexpert/core/api/unification/material/ingredients/AvaritiaFirstDegreeMaterials.java index d256ac30..94faf3d7 100644 --- a/src/main/java/gtexpert/api/unification/material/ingredients/AvaritiaFirstDegreeMaterials.java +++ b/src/main/java/com/github/gtexpert/core/api/unification/material/ingredients/AvaritiaFirstDegreeMaterials.java @@ -1,17 +1,17 @@ -package gtexpert.api.unification.material.ingredients; +package com.github.gtexpert.core.api.unification.material.ingredients; +import static com.github.gtexpert.core.api.unification.GTEElements.*; +import static com.github.gtexpert.core.api.unification.material.GTEMaterials.*; +import static com.github.gtexpert.core.api.util.GTEUtility.gteId; import static gregtech.api.GTValues.*; import static gregtech.api.unification.material.Materials.*; import static gregtech.api.unification.material.info.MaterialFlags.*; -import static gtexpert.api.unification.GTEElements.*; -import static gtexpert.api.unification.material.GTEMaterials.*; -import static gtexpert.api.util.GTEUtility.gteId; import gregtech.api.fluids.FluidBuilder; import gregtech.api.unification.material.Material; import gregtech.api.unification.material.properties.ToolProperty; -import gtexpert.api.unification.material.info.GTEMaterialIconSet; +import com.github.gtexpert.core.api.unification.material.info.GTEMaterialIconSet; public class AvaritiaFirstDegreeMaterials { diff --git a/src/main/java/gtexpert/api/unification/material/ingredients/DEFirstDegreeMaterials.java b/src/main/java/com/github/gtexpert/core/api/unification/material/ingredients/DEFirstDegreeMaterials.java similarity index 92% rename from src/main/java/gtexpert/api/unification/material/ingredients/DEFirstDegreeMaterials.java rename to src/main/java/com/github/gtexpert/core/api/unification/material/ingredients/DEFirstDegreeMaterials.java index 22341ace..d6e4533b 100644 --- a/src/main/java/gtexpert/api/unification/material/ingredients/DEFirstDegreeMaterials.java +++ b/src/main/java/com/github/gtexpert/core/api/unification/material/ingredients/DEFirstDegreeMaterials.java @@ -1,11 +1,11 @@ -package gtexpert.api.unification.material.ingredients; +package com.github.gtexpert.core.api.unification.material.ingredients; +import static com.github.gtexpert.core.api.unification.GTEElements.*; +import static com.github.gtexpert.core.api.unification.material.GTEMaterials.*; +import static com.github.gtexpert.core.api.util.GTEUtility.gteId; import static gregtech.api.GTValues.*; import static gregtech.api.unification.material.Materials.*; import static gregtech.api.unification.material.info.MaterialFlags.*; -import static gtexpert.api.unification.GTEElements.*; -import static gtexpert.api.unification.material.GTEMaterials.*; -import static gtexpert.api.util.GTEUtility.gteId; import gregtech.api.fluids.FluidBuilder; import gregtech.api.unification.material.Material; @@ -15,8 +15,8 @@ import gregicality.multiblocks.api.fluids.GCYMFluidStorageKeys; -import gtexpert.api.GTEValues; -import gtexpert.api.util.Mods; +import com.github.gtexpert.core.api.GTEValues; +import com.github.gtexpert.core.api.util.Mods; public class DEFirstDegreeMaterials { diff --git a/src/main/java/gtexpert/api/unification/material/ingredients/EIOFirstDegreeMaterials.java b/src/main/java/com/github/gtexpert/core/api/unification/material/ingredients/EIOFirstDegreeMaterials.java similarity index 97% rename from src/main/java/gtexpert/api/unification/material/ingredients/EIOFirstDegreeMaterials.java rename to src/main/java/com/github/gtexpert/core/api/unification/material/ingredients/EIOFirstDegreeMaterials.java index fc25cd76..68cefbc3 100644 --- a/src/main/java/gtexpert/api/unification/material/ingredients/EIOFirstDegreeMaterials.java +++ b/src/main/java/com/github/gtexpert/core/api/unification/material/ingredients/EIOFirstDegreeMaterials.java @@ -1,17 +1,17 @@ -package gtexpert.api.unification.material.ingredients; +package com.github.gtexpert.core.api.unification.material.ingredients; +import static com.github.gtexpert.core.api.unification.material.GTEMaterials.*; +import static com.github.gtexpert.core.api.util.GTEUtility.gteId; import static gregtech.api.GTValues.*; import static gregtech.api.unification.material.Materials.*; import static gregtech.api.unification.material.info.MaterialFlags.*; -import static gtexpert.api.unification.material.GTEMaterials.*; -import static gtexpert.api.util.GTEUtility.gteId; import gregtech.api.fluids.FluidBuilder; import gregtech.api.unification.material.Material; import gregtech.api.unification.material.info.MaterialIconSet; import gregtech.api.unification.material.properties.BlastProperty.GasTier; -import gtexpert.api.GTEValues; +import com.github.gtexpert.core.api.GTEValues; public class EIOFirstDegreeMaterials { diff --git a/src/main/java/gtexpert/api/unification/material/ingredients/TCFirstDegreeMaterials.java b/src/main/java/com/github/gtexpert/core/api/unification/material/ingredients/TCFirstDegreeMaterials.java similarity index 86% rename from src/main/java/gtexpert/api/unification/material/ingredients/TCFirstDegreeMaterials.java rename to src/main/java/com/github/gtexpert/core/api/unification/material/ingredients/TCFirstDegreeMaterials.java index f616b5fd..a7a62ce8 100644 --- a/src/main/java/gtexpert/api/unification/material/ingredients/TCFirstDegreeMaterials.java +++ b/src/main/java/com/github/gtexpert/core/api/unification/material/ingredients/TCFirstDegreeMaterials.java @@ -1,10 +1,10 @@ -package gtexpert.api.unification.material.ingredients; +package com.github.gtexpert.core.api.unification.material.ingredients; +import static com.github.gtexpert.core.api.unification.GTEElements.*; +import static com.github.gtexpert.core.api.unification.material.GTEMaterials.*; +import static com.github.gtexpert.core.api.util.GTEUtility.gteId; import static gregtech.api.unification.material.Materials.*; import static gregtech.api.unification.material.info.MaterialFlags.*; -import static gtexpert.api.unification.GTEElements.*; -import static gtexpert.api.unification.material.GTEMaterials.*; -import static gtexpert.api.util.GTEUtility.gteId; import gregtech.api.fluids.FluidBuilder; import gregtech.api.unification.material.Material; diff --git a/src/main/java/gtexpert/api/util/GTELog.java b/src/main/java/com/github/gtexpert/core/api/util/GTELog.java similarity index 70% rename from src/main/java/gtexpert/api/util/GTELog.java rename to src/main/java/com/github/gtexpert/core/api/util/GTELog.java index 337deaf9..4b4b6453 100644 --- a/src/main/java/gtexpert/api/util/GTELog.java +++ b/src/main/java/com/github/gtexpert/core/api/util/GTELog.java @@ -1,9 +1,9 @@ -package gtexpert.api.util; +package com.github.gtexpert.core.api.util; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; -import gtexpert.api.GTEValues; +import com.github.gtexpert.core.api.GTEValues; public class GTELog { diff --git a/src/main/java/gtexpert/api/util/GTEUtility.java b/src/main/java/com/github/gtexpert/core/api/util/GTEUtility.java similarity index 98% rename from src/main/java/gtexpert/api/util/GTEUtility.java rename to src/main/java/com/github/gtexpert/core/api/util/GTEUtility.java index 2708b808..323bc9f7 100644 --- a/src/main/java/gtexpert/api/util/GTEUtility.java +++ b/src/main/java/com/github/gtexpert/core/api/util/GTEUtility.java @@ -1,4 +1,4 @@ -package gtexpert.api.util; +package com.github.gtexpert.core.api.util; import java.util.Objects; import java.util.Random; @@ -21,8 +21,8 @@ import gregtech.api.unification.stack.MaterialStack; import gregtech.common.items.MetaItems; -import gtexpert.api.GTEValues; -import gtexpert.common.items.GTEMetaItems; +import com.github.gtexpert.core.api.GTEValues; +import com.github.gtexpert.core.common.items.GTEMetaItems; public class GTEUtility { diff --git a/src/main/java/gtexpert/api/util/ModIncompatibilityException.java b/src/main/java/com/github/gtexpert/core/api/util/ModIncompatibilityException.java similarity index 96% rename from src/main/java/gtexpert/api/util/ModIncompatibilityException.java rename to src/main/java/com/github/gtexpert/core/api/util/ModIncompatibilityException.java index 6e4396bd..d4f1a7de 100644 --- a/src/main/java/gtexpert/api/util/ModIncompatibilityException.java +++ b/src/main/java/com/github/gtexpert/core/api/util/ModIncompatibilityException.java @@ -1,4 +1,4 @@ -package gtexpert.api.util; +package com.github.gtexpert.core.api.util; import java.util.List; diff --git a/src/main/java/gtexpert/api/util/Mods.java b/src/main/java/com/github/gtexpert/core/api/util/Mods.java similarity index 73% rename from src/main/java/gtexpert/api/util/Mods.java rename to src/main/java/com/github/gtexpert/core/api/util/Mods.java index 7a734a77..e622d31b 100644 --- a/src/main/java/gtexpert/api/util/Mods.java +++ b/src/main/java/com/github/gtexpert/core/api/util/Mods.java @@ -1,4 +1,4 @@ -package gtexpert.api.util; +package com.github.gtexpert.core.api.util; import java.lang.reflect.Field; import java.util.ArrayList; @@ -21,7 +21,7 @@ import gregtech.api.GTValues; -import gtexpert.api.GTEValues; +import com.github.gtexpert.core.api.GTEValues; public enum Mods { @@ -31,7 +31,6 @@ public enum Mods { Avaritia(Names.AVARITIA), Avaritiaaddons(Names.AVARITIAADDONS), Baubles(Names.BAUBLES), - Botany(Names.BOTANY), Chisel(Names.CHISEL), CTM(Names.CONNECTED_TEXTURES_MOD), CraftTweaker(Names.CRAFT_TWEAKER), @@ -43,44 +42,19 @@ public enum Mods { EnderIOMachines(Names.ENDER_MACHINES), EnderIOConduits(Names.ENDER_CONDUITS), EnderIOAE2Conduits(Names.ENDER_AE2_CONDUITS), - ExtraBees(Names.EXTRA_BEES), ExtraCPUs(Names.EXTRA_CPUS), - ExtraTrees(Names.EXTRA_TREES), - Forestry(Names.FORESTRY), - ForestryApiculture(Names.FORESTRY, forestryModule(Names.FORESTRY_APICULTURE)), - ForestryArboriculture(Names.FORESTRY, forestryModule(Names.FORESTRY_ARBORICULTURE)), - ForestryCharcoal(Names.FORESTRY, forestryModule(Names.FORESTRY_CHARCOAL)), - ForestryCore(Names.FORESTRY, forestryModule(Names.FORESTRY_CORE)), - ForestryEnergy(Names.FORESTRY, forestryModule(Names.FORESTRY_ENERGY)), - ForestryFactory(Names.FORESTRY, forestryModule(Names.FORESTRY_FACTORY)), - ForestryWorktable(Names.FORESTRY, forestryModule(Names.FORESTRY_WORKTABLE)), - ForestryFarming(Names.FORESTRY, forestryModule(Names.FORESTRY_FARMING)), - ForestryClimatology(Names.FORESTRY, forestryModule(Names.FORESTRY_CLIMATOLOGY)), - ForestryGreenhouse(Names.FORESTRY, forestryModule(Names.FORESTRY_GREENHOUSE)), - ForestryFluids(Names.FORESTRY, forestryModule(Names.FORESTRY_FLUIDS)), - ForestryFood(Names.FORESTRY, forestryModule(Names.FORESTRY_FOOD)), - ForestryLepidopterology(Names.FORESTRY, forestryModule(Names.FORESTRY_LEPIDOPTEROLOGY)), - ForestryMail(Names.FORESTRY, forestryModule(Names.FORESTRY_MAIL)), - ForestryCrate(Names.FORESTRY, forestryModule(Names.FORESTRY_CRATE)), - ForestryBackpacks(Names.FORESTRY, forestryModule(Names.FORESTRY_BACKPACKS)), - ForestryDatabase(Names.FORESTRY, forestryModule(Names.FORESTRY_DATABASE)), - ForestrySorting(Names.FORESTRY, forestryModule(Names.FORESTRY_SORTING)), - ForestryBook(Names.FORESTRY, forestryModule(Names.FORESTRY_BOOK)), - ForestryCultivation(Names.FORESTRY, forestryModule(Names.FORESTRY_CULTIVATION)), - ForestryResearch(Names.FORESTRY, forestryModule(Names.FORESTRY_RESEARCH)), GalacticraftCore(Names.GALACTICRAFT_CORE), - Genetics(Names.GENETICS), - Gendustry(Names.GENDUSTRY), GregicalityMultiblocks(Names.GREGICALITY_MULTIBLOCKS), GregTech(Names.GREGTECH), GregTechFoodOption(Names.GREGTECH_FOOD_OPTION), GregTechExpertCore(GTEValues.MODID), + GregTechWoodProcessing(Names.GREGTECH_WOOD_PROCESSING), GroovyScript(Names.GROOVY_SCRIPT), HWYLA(Names.HWYLA), + ImplosionNoBomb(Names.IMPLOSION_NO_BOMB), InventoryTweaks(Names.INVENTORY_TWEAKS), JourneyMap(Names.JOURNEY_MAP), JustEnoughItems(Names.JUST_ENOUGH_ITEMS), - MagicBees(Names.MAGIC_BEES), ModularUI(Names.MODULRAUI), MixinBooter(Names.MIXINBOOTER), NeevesAE2(Names.NEEVES_AE2), @@ -141,40 +115,19 @@ public static class Names { public static final String EXTRA_BEES = "extrabees"; public static final String EXTRA_CPUS = "extracpus"; public static final String EXTRA_TREES = "extratrees"; - public static final String FORESTRY = "forestry"; - public static final String FORESTRY_APICULTURE = "apiculture"; - public static final String FORESTRY_ARBORICULTURE = "arboriculture"; - public static final String FORESTRY_CHARCOAL = "charcoal"; - public static final String FORESTRY_CORE = "core"; - public static final String FORESTRY_ENERGY = "energy"; - public static final String FORESTRY_FACTORY = "factory"; - public static final String FORESTRY_WORKTABLE = "worktable"; - public static final String FORESTRY_FARMING = "farming"; - public static final String FORESTRY_CLIMATOLOGY = "climatology"; - public static final String FORESTRY_GREENHOUSE = "greenhouse"; - public static final String FORESTRY_FLUIDS = "fluids"; - public static final String FORESTRY_FOOD = "food"; - public static final String FORESTRY_LEPIDOPTEROLOGY = "lepidopterology"; - public static final String FORESTRY_MAIL = "mail"; - public static final String FORESTRY_CRATE = "crates"; - public static final String FORESTRY_BACKPACKS = "backpacks"; - public static final String FORESTRY_DATABASE = "database"; - public static final String FORESTRY_SORTING = "sorting"; - public static final String FORESTRY_BOOK = "book"; - public static final String FORESTRY_CULTIVATION = "cultivation"; - public static final String FORESTRY_RESEARCH = "research"; public static final String GALACTICRAFT_CORE = "galacticraftcore"; public static final String GENETICS = "genetics"; public static final String GENDUSTRY = "gendustry"; public static final String GREGICALITY_MULTIBLOCKS = "gcym"; public static final String GREGTECH = GTValues.MODID; public static final String GREGTECH_FOOD_OPTION = "gregtechfoodoption"; + public static final String GREGTECH_WOOD_PROCESSING = "gtwp"; public static final String GROOVY_SCRIPT = "groovyscript"; public static final String HWYLA = "hwyla"; + public static final String IMPLOSION_NO_BOMB = "inb"; public static final String INVENTORY_TWEAKS = "inventorytweaks"; public static final String JOURNEY_MAP = "journeymap"; public static final String JUST_ENOUGH_ITEMS = "jei"; - public static final String MAGIC_BEES = "magicbees"; public static final String MODULRAUI = "modularui"; public static final String MIXINBOOTER = "mixinbooter"; public static final String NEEVES_AE2 = "nae2"; @@ -299,13 +252,4 @@ private static Function versionExcludes(String versionPart) { return !container.getVersion().contains(versionPart); }; } - - /** Test if a specific Forestry module is enabled. */ - private static Function forestryModule(String moduleID) { - if (Forestry.isModLoaded()) { - return mod -> forestry.modules.ModuleHelper.isEnabled(moduleID); - } else { - return $ -> false; - } - } } diff --git a/src/main/java/gtexpert/client/ClientProxy.java b/src/main/java/com/github/gtexpert/core/client/ClientProxy.java similarity index 80% rename from src/main/java/gtexpert/client/ClientProxy.java rename to src/main/java/com/github/gtexpert/core/client/ClientProxy.java index ccd10eb3..fa3d73a8 100644 --- a/src/main/java/gtexpert/client/ClientProxy.java +++ b/src/main/java/com/github/gtexpert/core/client/ClientProxy.java @@ -1,4 +1,4 @@ -package gtexpert.client; +package com.github.gtexpert.core.client; import net.minecraftforge.client.event.ModelRegistryEvent; import net.minecraftforge.fml.common.Mod; @@ -6,8 +6,8 @@ import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; import net.minecraftforge.fml.relauncher.Side; -import gtexpert.common.CommonProxy; -import gtexpert.common.blocks.GTEMetaBlocks; +import com.github.gtexpert.core.common.CommonProxy; +import com.github.gtexpert.core.common.blocks.GTEMetaBlocks; @Mod.EventBusSubscriber(Side.CLIENT) public class ClientProxy extends CommonProxy { diff --git a/src/main/java/gtexpert/client/GTETextures.java b/src/main/java/com/github/gtexpert/core/client/GTETextures.java similarity index 84% rename from src/main/java/gtexpert/client/GTETextures.java rename to src/main/java/com/github/gtexpert/core/client/GTETextures.java index 49fe04d8..6bee8c4b 100644 --- a/src/main/java/gtexpert/client/GTETextures.java +++ b/src/main/java/com/github/gtexpert/core/client/GTETextures.java @@ -1,18 +1,16 @@ -package gtexpert.client; +package com.github.gtexpert.core.client; import net.minecraftforge.fml.common.Mod; import net.minecraftforge.fml.relauncher.Side; import gregtech.client.renderer.texture.cube.*; -import gtexpert.api.GTEValues; +import com.github.gtexpert.core.api.GTEValues; @Mod.EventBusSubscriber(modid = GTEValues.MODID, value = Side.CLIENT) public class GTETextures { // Core - public static SimpleOverlayRenderer SAWMILL_CASING; - public static OrientedOverlayRenderer SAWMILL_OVERLAY = new OrientedOverlayRenderer("machines/sawmill"); public static SimpleOverlayRenderer VOID_ORE_MINER_CASING; // Ender IO @@ -34,7 +32,6 @@ public class GTETextures { public static void preInit() { // Core - SAWMILL_CASING = new SimpleOverlayRenderer("casings/sawmill_casing"); VOID_ORE_MINER_CASING = new SimpleOverlayRenderer("casings/void_ore_miner_casing"); // Draconic Evolution diff --git a/src/main/java/gtexpert/common/CommonProxy.java b/src/main/java/com/github/gtexpert/core/common/CommonProxy.java similarity index 74% rename from src/main/java/gtexpert/common/CommonProxy.java rename to src/main/java/com/github/gtexpert/core/common/CommonProxy.java index b08b956e..5b94493e 100644 --- a/src/main/java/gtexpert/common/CommonProxy.java +++ b/src/main/java/com/github/gtexpert/core/common/CommonProxy.java @@ -1,9 +1,9 @@ -package gtexpert.common; +package com.github.gtexpert.core.common; import net.minecraftforge.fml.common.Mod; import net.minecraftforge.fml.common.event.FMLPreInitializationEvent; -import gtexpert.api.GTEValues; +import com.github.gtexpert.core.api.GTEValues; @Mod.EventBusSubscriber(modid = GTEValues.MODID) public class CommonProxy { diff --git a/src/main/java/gtexpert/common/GTEConfigHolder.java b/src/main/java/com/github/gtexpert/core/common/GTEConfigHolder.java similarity index 53% rename from src/main/java/gtexpert/common/GTEConfigHolder.java rename to src/main/java/com/github/gtexpert/core/common/GTEConfigHolder.java index c9aeec64..baf96cf5 100644 --- a/src/main/java/gtexpert/common/GTEConfigHolder.java +++ b/src/main/java/com/github/gtexpert/core/common/GTEConfigHolder.java @@ -1,8 +1,8 @@ -package gtexpert.common; +package com.github.gtexpert.core.common; import net.minecraftforge.common.config.Config; -import gtexpert.api.GTEValues; +import com.github.gtexpert.core.api.GTEValues; @Config(modid = GTEValues.MODID, name = GTEValues.MODID + "/" + GTEValues.MODID, @@ -11,59 +11,64 @@ public class GTEConfigHolder { @Config.Name("GTExpert-Core Options") @Config.RequiresMcRestart - public static final ModpackFlag gteFlag = new ModpackFlag(); + public static final GTEFlag gteFlag = new GTEFlag(); + + @Config.Name("GTExpert-Core Feature Options") + @Config.RequiresMcRestart + public static final GTEFeatureFlag gteFeatureFlag = new GTEFeatureFlag(); @Config.Name("Gregtech Override") @Config.RequiresMcRestart public static final GregtechOverride ceuOverride = new GregtechOverride(); - public static class ModpackFlag { - - @Config.Comment({ "Activate changes in the replacement schedule.", - "1. When enabled, the following structure and mte name changes: ", - "Large Cracking Unit", - "2. When enabled, the recipe of the following items will be changed: ", - "Logic Processor, Calc Processor, Engineer Processor", - "Default: false" }) - public boolean featureFlag = false; + public static class GTEFlag { @Config.Comment({ "Item name to be CEu standard instead of Primitive", - "Options: true (ULV), false (Primitive)", - "Default: false" }) - public boolean componentsName = false; + "If you want to use Filostorm's ULV Covers, set it to none.", + "Options: ulv, primitive, none", + "Default: primitive" }) + public String componentsName = "primitive"; @Config.Comment({ "Recipe Type. Options: none (no generated recipes), easy (2x2 crafting), normal (3x3 crafting).", "Default: easy" }) public String componentsRecipeType = "easy"; - @Config.Comment({ - "Enable the new steam machines.", - "Steam Mixer, Steam Assembler, Steam Circuit Assembler", - "Default: false" }) - public boolean steamNewMachine = false; - - @Config.Comment({ - "Recipe Type. Options: none (no generated recipes), easy (2x2 crafting(WIP)), normal (3x3 crafting).", - "The steamNewMachine must also be enabled.", "Default: normal" }) - public String steamRecipeType = "normal"; - @Config.Comment({ "1. When enabled, the following recipes will be changed to Peaceful difficulty: ", "Nether Star Dust, Skeleton Skull, Wither Skeleton Skull, Zombie Head, Creeper Head, Enderman Head", "Default: false" }) public boolean peacefulFlag = false; + + @Config.Comment({ "Add to a creative machine recipe.", + "When enabled, Recipes will be added to the following machines: ", + "1. GTCEu: Data Hatch, Energy Unit, Quantum Tank, Quantum Chest", + "2. AE2UEL: Energy Cell", + "3. EIO: Capacitor Bank", + "Default: true" }) + public boolean addCreativeRecipe = true; } - public static class GregtechOverride { + public static class GTEFeatureFlag { - @Config.Comment({ "Making Planks even more difficult.", - "CEu's hardWoodRecipes & nerfWoodCrafting to true to reflect.", "Default: false" }) - public boolean moreNerfPlankCrafting = false; + @Config.Comment({ "Activate changes in the replacement schedule.", + "1. When enabled, the following structure and mte name changes: ", + "Large Cracking Unit", + "1. When enabled, the following mte name changes: ", + "Advanced Gas Collector -> Large Gas Collector", + "Default: false" }) + public boolean migrationMachine = false; - @Config.Comment({ "Making Sticks even more difficult.", - "CEu's harderRods to true to reflect.", "Default: false" }) - public boolean moreNerfStickCrafting = false; + @Config.Comment({ "Activate machines under development.", + "Default: false" }) + public boolean previewMachines = false; + + @Config.Comment({ "Activate items under development.", + "Default: false" }) + public boolean previewItems = false; + } + + public static class GregtechOverride { @Config.Comment({ "Change to a recipe using Assembly Line.", "CEu's enableHighTierSolars to true to reflect.", "Default: false" }) @@ -71,5 +76,8 @@ public static class GregtechOverride { @Config.Comment({ "Raising Terracotta Grinding from ULV to MV.", "Default: false" }) public boolean nerfTerracottaCrafting = false; + + @Config.Comment({ "Disable auto eat function of QuarkTech helmet", "Default: true" }) + public boolean disableHelmetAutoEat = true; } } diff --git a/src/main/java/gtexpert/common/GTEEventHandlers.java b/src/main/java/com/github/gtexpert/core/common/GTEEventHandlers.java similarity index 89% rename from src/main/java/gtexpert/common/GTEEventHandlers.java rename to src/main/java/com/github/gtexpert/core/common/GTEEventHandlers.java index 6e0a25a7..7efaf77b 100644 --- a/src/main/java/gtexpert/common/GTEEventHandlers.java +++ b/src/main/java/com/github/gtexpert/core/common/GTEEventHandlers.java @@ -1,4 +1,4 @@ -package gtexpert.common; +package com.github.gtexpert.core.common; import net.minecraft.block.SoundType; import net.minecraft.block.material.Material; @@ -20,18 +20,25 @@ import org.jetbrains.annotations.NotNull; +import gregtech.api.GregTechAPI; import gregtech.api.items.armor.ArmorMetaItem; +import gregtech.api.metatileentity.registry.MTEManager; import gregtech.api.unification.material.event.MaterialEvent; -import gtexpert.api.GTEValues; -import gtexpert.api.unification.material.GTEMaterials; -import gtexpert.common.items.GTEMetaItems; +import com.github.gtexpert.core.api.GTEValues; +import com.github.gtexpert.core.api.unification.material.GTEMaterials; +import com.github.gtexpert.core.common.items.GTEMetaItems; @Mod.EventBusSubscriber(modid = GTEValues.MODID) public class GTEEventHandlers { public GTEEventHandlers() {} + @SubscribeEvent + public static void registerMTERegistry(MTEManager.MTERegistryEvent event) { + GregTechAPI.mteManager.createRegistry(GTEValues.MODID); + } + @SubscribeEvent(priority = EventPriority.HIGH) public static void registerMaterialsHigh(MaterialEvent event) { GTEMaterials.registerMaterialsHigh(); diff --git a/src/main/java/gtexpert/common/blocks/GTEBlockMetalCasing.java b/src/main/java/com/github/gtexpert/core/common/blocks/GTEBlockMetalCasing.java similarity index 92% rename from src/main/java/gtexpert/common/blocks/GTEBlockMetalCasing.java rename to src/main/java/com/github/gtexpert/core/common/blocks/GTEBlockMetalCasing.java index 5cbfa70d..7fb48b94 100644 --- a/src/main/java/gtexpert/common/blocks/GTEBlockMetalCasing.java +++ b/src/main/java/com/github/gtexpert/core/common/blocks/GTEBlockMetalCasing.java @@ -1,4 +1,4 @@ -package gtexpert.common.blocks; +package com.github.gtexpert.core.common.blocks; import net.minecraft.block.SoundType; import net.minecraft.block.state.IBlockState; @@ -21,7 +21,7 @@ public GTEBlockMetalCasing() { setResistance(10.0f); setSoundType(SoundType.METAL); setHarvestLevel(ToolClasses.WRENCH, 2); - setDefaultState(getState(MetalCasingType.SAWMill)); + setDefaultState(getState(MetalCasingType.VOID_ORE_MINER)); } @Override @@ -32,7 +32,6 @@ public boolean canCreatureSpawn(@NotNull IBlockState state, @NotNull IBlockAcces public enum MetalCasingType implements IStringSerializable { - SAWMill("sawmill_casing"), VOID_ORE_MINER("void_ore_miner_casing"), DRACONIUM_CASING("draconium_casing"), AWAKENED_DRACONIUM_CASING("awakened_draconium_casing"); diff --git a/src/main/java/gtexpert/common/blocks/GTEBlockWireCoil.java b/src/main/java/com/github/gtexpert/core/common/blocks/GTEBlockWireCoil.java similarity index 97% rename from src/main/java/gtexpert/common/blocks/GTEBlockWireCoil.java rename to src/main/java/com/github/gtexpert/core/common/blocks/GTEBlockWireCoil.java index 033344f1..0d10e0e9 100644 --- a/src/main/java/gtexpert/common/blocks/GTEBlockWireCoil.java +++ b/src/main/java/com/github/gtexpert/core/common/blocks/GTEBlockWireCoil.java @@ -1,4 +1,4 @@ -package gtexpert.common.blocks; +package com.github.gtexpert.core.common.blocks; import java.util.List; @@ -28,7 +28,7 @@ import gregtech.common.ConfigHolder; import gregtech.common.metatileentities.multi.electric.MetaTileEntityMultiSmelter; -import gtexpert.api.unification.material.GTEMaterials; +import com.github.gtexpert.core.api.unification.material.GTEMaterials; public class GTEBlockWireCoil extends VariantActiveBlock { diff --git a/src/main/java/gtexpert/common/blocks/GTEMetaBlocks.java b/src/main/java/com/github/gtexpert/core/common/blocks/GTEMetaBlocks.java similarity index 84% rename from src/main/java/gtexpert/common/blocks/GTEMetaBlocks.java rename to src/main/java/com/github/gtexpert/core/common/blocks/GTEMetaBlocks.java index 33100356..1843a153 100644 --- a/src/main/java/gtexpert/common/blocks/GTEMetaBlocks.java +++ b/src/main/java/com/github/gtexpert/core/common/blocks/GTEMetaBlocks.java @@ -1,4 +1,4 @@ -package gtexpert.common.blocks; +package com.github.gtexpert.core.common.blocks; import static gregtech.common.blocks.MetaBlocks.statePropertiesToString; @@ -14,13 +14,10 @@ public class GTEMetaBlocks { public static GTEBlockWireCoil GTE_WIRE_COIL; public static GTEBlockMetalCasing GTE_METAL_CASING; - public static BlockSawmillConveyor BLOCK_SAWMILL_CONVEYOR; public static void init() { GTE_METAL_CASING = new GTEBlockMetalCasing(); GTE_METAL_CASING.setRegistryName("gte_metal_casing"); - BLOCK_SAWMILL_CONVEYOR = new BlockSawmillConveyor(); - BLOCK_SAWMILL_CONVEYOR.setRegistryName("sawmill_conveyor"); GTE_WIRE_COIL = new GTEBlockWireCoil(); GTE_WIRE_COIL.setRegistryName("gte_wire_coil"); } @@ -28,7 +25,6 @@ public static void init() { @SideOnly(Side.CLIENT) public static void registerItemModels() { registerItemModel(GTE_METAL_CASING); - registerItemModel(BLOCK_SAWMILL_CONVEYOR); GTE_WIRE_COIL.onModelRegister(); } diff --git a/src/main/java/gtexpert/common/items/GTEMetaItem1.java b/src/main/java/com/github/gtexpert/core/common/items/GTEMetaItem1.java similarity index 53% rename from src/main/java/gtexpert/common/items/GTEMetaItem1.java rename to src/main/java/com/github/gtexpert/core/common/items/GTEMetaItem1.java index c724d532..d6c8f554 100644 --- a/src/main/java/gtexpert/common/items/GTEMetaItem1.java +++ b/src/main/java/com/github/gtexpert/core/common/items/GTEMetaItem1.java @@ -1,6 +1,6 @@ -package gtexpert.common.items; +package com.github.gtexpert.core.common.items; -import static gtexpert.common.items.GTEMetaItems.*; +import static com.github.gtexpert.core.common.items.GTEMetaItems.*; import net.minecraft.client.resources.I18n; @@ -11,8 +11,9 @@ import gregtech.api.unification.stack.MaterialStack; import gregtech.common.items.behaviors.TooltipBehavior; -import gtexpert.common.GTEConfigHolder; -import gtexpert.integration.ae.AEConfigHolder; +import com.github.gtexpert.core.api.util.GTELog; +import com.github.gtexpert.core.common.GTEConfigHolder; +import com.github.gtexpert.core.integration.ae.AEConfigHolder; public class GTEMetaItem1 extends StandardMetaItem { @@ -28,35 +29,41 @@ public void registerSubItems() { // Artificial bone ARTIFICIAL_BONE = addItem(2, "artificial_bone"); - // Free range: ID 3-10 + // Free range: ID 4-10 + GTE_LOGO = addItem(3, "logo"); // Primitive parts: ID 11-20 - String componentsName = GTEConfigHolder.gteFlag.componentsName ? "ulv" : "primitive"; - GTE_ELECTRIC_MOTOR = addItem(11, "electric.motor." + componentsName); - GTE_ELECTRIC_PUMP = addItem(12, "electric.pump." + componentsName) - .addComponents(new TooltipBehavior(lines -> { - lines.add(I18n.format("metaitem.electric.pump.tooltip")); - lines.add(I18n.format("gregtech.universal.tooltip.fluid_transfer_rate", (1280 / 4) / 20)); - })); - GTE_CONVEYOR_MODULE = addItem(13, "conveyor.module." + componentsName) - .addComponents(new TooltipBehavior(lines -> { - lines.add(I18n.format("metaitem.conveyor.module.tooltip")); - lines.add(I18n.format("gregtech.universal.tooltip.item_transfer_rate", 2)); - })); - GTE_ELECTRIC_PISTON = addItem(14, "electric.piston." + componentsName); - GTE_ROBOT_ARM = addItem(15, "robot.arm." + componentsName) - .addComponents(new TooltipBehavior(lines -> { - lines.add(I18n.format("metaitem.robot.arm.tooltip")); - lines.add(I18n.format("gregtech.universal.tooltip.item_transfer_rate", 2)); - })); - GTE_FLUID_REGULATOR = addItem(16, "fluid.regulator." + componentsName) - .addComponents(new TooltipBehavior(lines -> { - lines.add(I18n.format("metaitem.fluid.regulator.tooltip")); - lines.add(I18n.format("gregtech.universal.tooltip.fluid_transfer_rate", (1280 / 4) / 20)); - })); - GTE_FIELD_GENERATOR = addItem(17, "field.generator." + componentsName); - GTE_EMITTER = addItem(18, "emitter." + componentsName); - GTE_SENSOR = addItem(19, "sensor." + componentsName); + String componentsName = GTEConfigHolder.gteFlag.componentsName; + if (componentsName.equals("ulv") || componentsName.equals("primitive")) { + GTE_ELECTRIC_MOTOR = addItem(11, "electric.motor." + componentsName); + GTE_ELECTRIC_PUMP = addItem(12, "electric.pump." + componentsName) + .addComponents(new TooltipBehavior(lines -> { + lines.add(I18n.format("metaitem.electric.pump.tooltip")); + lines.add(I18n.format("gregtech.universal.tooltip.fluid_transfer_rate", (1280 / 4) / 20)); + })); + GTE_CONVEYOR_MODULE = addItem(13, "conveyor.module." + componentsName) + .addComponents(new TooltipBehavior(lines -> { + lines.add(I18n.format("metaitem.conveyor.module.tooltip")); + lines.add(I18n.format("gregtech.universal.tooltip.item_transfer_rate", 2)); + })); + GTE_ELECTRIC_PISTON = addItem(14, "electric.piston." + componentsName); + GTE_ROBOT_ARM = addItem(15, "robot.arm." + componentsName) + .addComponents(new TooltipBehavior(lines -> { + lines.add(I18n.format("metaitem.robot.arm.tooltip")); + lines.add(I18n.format("gregtech.universal.tooltip.item_transfer_rate", 2)); + })); + GTE_FLUID_REGULATOR = addItem(16, "fluid.regulator." + componentsName) + .addComponents(new TooltipBehavior(lines -> { + lines.add(I18n.format("metaitem.fluid.regulator.tooltip")); + lines.add(I18n.format("gregtech.universal.tooltip.fluid_transfer_rate", (1280 / 4) / 20)); + })); + GTE_FIELD_GENERATOR = addItem(17, "field.generator." + componentsName); + GTE_EMITTER = addItem(18, "emitter." + componentsName); + GTE_SENSOR = addItem(19, "sensor." + componentsName); + } else { + GTELog.logger.error("Invalid componentsName setting: {}", + componentsName, new Throwable()); + } // Shapes: ID 101-110 if (AEConfigHolder.moveSteelShape) { diff --git a/src/main/java/gtexpert/common/items/GTEMetaItems.java b/src/main/java/com/github/gtexpert/core/common/items/GTEMetaItems.java similarity index 92% rename from src/main/java/gtexpert/common/items/GTEMetaItems.java rename to src/main/java/com/github/gtexpert/core/common/items/GTEMetaItems.java index f797aa92..1e6bcf40 100644 --- a/src/main/java/gtexpert/common/items/GTEMetaItems.java +++ b/src/main/java/com/github/gtexpert/core/common/items/GTEMetaItems.java @@ -1,14 +1,15 @@ -package gtexpert.common.items; +package com.github.gtexpert.core.common.items; import gregtech.api.items.armor.ArmorMetaItem; import gregtech.api.items.metaitem.MetaItem; -import gtexpert.common.items.armor.GTEMetaArmor; +import com.github.gtexpert.core.common.items.armor.GTEMetaArmor; public final class GTEMetaItems { private GTEMetaItems() {} + public static MetaItem.MetaValueItem GTE_LOGO; public static MetaItem.MetaValueItem GTE_ME_FAKE_COMPONENT; public static MetaItem.MetaValueItem MATRIX_CORE; public static MetaItem.MetaValueItem ARTIFICIAL_BONE; diff --git a/src/main/java/gtexpert/common/items/armor/GTEMetaArmor.java b/src/main/java/com/github/gtexpert/core/common/items/armor/GTEMetaArmor.java similarity index 81% rename from src/main/java/gtexpert/common/items/armor/GTEMetaArmor.java rename to src/main/java/com/github/gtexpert/core/common/items/armor/GTEMetaArmor.java index 213e2564..7dacf79f 100644 --- a/src/main/java/gtexpert/common/items/armor/GTEMetaArmor.java +++ b/src/main/java/com/github/gtexpert/core/common/items/armor/GTEMetaArmor.java @@ -1,11 +1,11 @@ -package gtexpert.common.items.armor; +package com.github.gtexpert.core.common.items.armor; import net.minecraft.inventory.EntityEquipmentSlot; import net.minecraft.item.EnumRarity; import gregtech.api.items.armor.ArmorMetaItem; -import gtexpert.common.items.GTEMetaItems; +import com.github.gtexpert.core.common.items.GTEMetaItems; public class GTEMetaArmor extends ArmorMetaItem.ArmorMetaValueItem> { diff --git a/src/main/java/gtexpert/common/items/armor/PistonBoots.java b/src/main/java/com/github/gtexpert/core/common/items/armor/PistonBoots.java similarity index 99% rename from src/main/java/gtexpert/common/items/armor/PistonBoots.java rename to src/main/java/com/github/gtexpert/core/common/items/armor/PistonBoots.java index 6c70713d..53df27a6 100644 --- a/src/main/java/gtexpert/common/items/armor/PistonBoots.java +++ b/src/main/java/com/github/gtexpert/core/common/items/armor/PistonBoots.java @@ -1,4 +1,4 @@ -package gtexpert.common.items.armor; +package com.github.gtexpert.core.common.items.armor; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLivingBase; diff --git a/src/main/java/gtexpert/common/items/behaviors/GTECoverBehaviors.java b/src/main/java/com/github/gtexpert/core/common/items/behaviors/GTECoverBehaviors.java similarity index 82% rename from src/main/java/gtexpert/common/items/behaviors/GTECoverBehaviors.java rename to src/main/java/com/github/gtexpert/core/common/items/behaviors/GTECoverBehaviors.java index 3dcccf8e..6a675505 100644 --- a/src/main/java/gtexpert/common/items/behaviors/GTECoverBehaviors.java +++ b/src/main/java/com/github/gtexpert/core/common/items/behaviors/GTECoverBehaviors.java @@ -1,7 +1,7 @@ -package gtexpert.common.items.behaviors; +package com.github.gtexpert.core.common.items.behaviors; +import static com.github.gtexpert.core.api.util.GTEUtility.gteId; import static gregtech.common.covers.CoverBehaviors.registerBehavior; -import static gtexpert.api.util.GTEUtility.gteId; import gregtech.api.GTValues; import gregtech.common.covers.CoverConveyor; @@ -9,13 +9,13 @@ import gregtech.common.covers.CoverPump; import gregtech.common.covers.CoverRoboticArm; -import gtexpert.common.GTEConfigHolder; -import gtexpert.common.items.GTEMetaItems; +import com.github.gtexpert.core.common.GTEConfigHolder; +import com.github.gtexpert.core.common.items.GTEMetaItems; public class GTECoverBehaviors { public static void init() { - String componentsName = GTEConfigHolder.gteFlag.componentsName ? "ulv" : "primitive"; + String componentsName = GTEConfigHolder.gteFlag.componentsName; registerBehavior(gteId("conveyor." + componentsName), GTEMetaItems.GTE_CONVEYOR_MODULE, (def, tile, side) -> new CoverConveyor(def, tile, side, GTValues.ULV, 2)); registerBehavior(gteId("pump." + componentsName), GTEMetaItems.GTE_ELECTRIC_PUMP, diff --git a/src/main/java/com/github/gtexpert/core/common/metatileentities/GTEMetaTileEntities.java b/src/main/java/com/github/gtexpert/core/common/metatileentities/GTEMetaTileEntities.java new file mode 100644 index 00000000..41aad5da --- /dev/null +++ b/src/main/java/com/github/gtexpert/core/common/metatileentities/GTEMetaTileEntities.java @@ -0,0 +1,41 @@ +package com.github.gtexpert.core.common.metatileentities; + +import static com.github.gtexpert.core.api.util.GTEUtility.gteId; +import static gregtech.common.metatileentities.MetaTileEntities.*; + +import com.github.gtexpert.core.common.GTEConfigHolder; +import com.github.gtexpert.core.common.metatileentities.multi.*; + +public class GTEMetaTileEntities { + + // Single Machine + + // Multi Machine + public static MetaTileEntityLargeCrackingUnit LARGE_CRACKER; + public static MetaTileEntityVoidOreMiner VOIDOREMINER; + public static MetaTileEntityAdvancedChemicalPlant ADVANCED_CHEMICAL_PLANT; + public static MetaTileEntityLargeGasCollector LARGE_GAS_COLLECTOR; + + public static void init() { + // Single Machine + // Free: 11004~11999 + + // Multi Machine + // Free: 12000~12001 + LARGE_CRACKER = registerMetaTileEntity(12002, + new MetaTileEntityLargeCrackingUnit(gteId("large_cracking_unit"))); + + // Void Ore Miner + VOIDOREMINER = registerMetaTileEntity(12003, + new MetaTileEntityVoidOreMiner(gteId("void_ore_miner"))); + + // Advanced Chemical Plant + ADVANCED_CHEMICAL_PLANT = registerMetaTileEntity(12006, + new MetaTileEntityAdvancedChemicalPlant(gteId("advanced_chemical_plant"))); + + // Large Gas Collector + LARGE_GAS_COLLECTOR = registerMetaTileEntity(12007, + new MetaTileEntityLargeGasCollector(gteId(GTEConfigHolder.gteFeatureFlag.migrationMachine ? + "large_gas_collector" : "advanced_gas_collector"))); + } +} diff --git a/src/main/java/gtexpert/common/metatileentities/multi/MetaTileEntityAdvancedChemicalPlant.java b/src/main/java/com/github/gtexpert/core/common/metatileentities/multi/MetaTileEntityAdvancedChemicalPlant.java similarity index 72% rename from src/main/java/gtexpert/common/metatileentities/multi/MetaTileEntityAdvancedChemicalPlant.java rename to src/main/java/com/github/gtexpert/core/common/metatileentities/multi/MetaTileEntityAdvancedChemicalPlant.java index e6c815e4..508e96b2 100644 --- a/src/main/java/gtexpert/common/metatileentities/multi/MetaTileEntityAdvancedChemicalPlant.java +++ b/src/main/java/com/github/gtexpert/core/common/metatileentities/multi/MetaTileEntityAdvancedChemicalPlant.java @@ -1,4 +1,6 @@ -package gtexpert.common.metatileentities.multi; +package com.github.gtexpert.core.common.metatileentities.multi; + +import static gregtech.api.recipes.logic.OverclockingLogic.*; import java.util.List; @@ -18,25 +20,30 @@ import gregtech.api.metatileentity.MetaTileEntity; import gregtech.api.metatileentity.interfaces.IGregTechTileEntity; import gregtech.api.metatileentity.multiblock.IMultiblockPart; +import gregtech.api.metatileentity.multiblock.RecipeMapMultiblockController; import gregtech.api.pattern.BlockPattern; import gregtech.api.pattern.FactoryBlockPattern; import gregtech.api.pattern.TraceabilityPredicate; import gregtech.api.recipes.RecipeMaps; +import gregtech.api.recipes.recipeproperties.IRecipePropertyStorage; import gregtech.client.renderer.ICubeRenderer; import gregtech.client.renderer.texture.Textures; +import gregtech.client.utils.TooltipHelper; import gregtech.common.blocks.BlockBoilerCasing; import gregtech.common.blocks.BlockMetalCasing; import gregtech.common.blocks.MetaBlocks; import gregtech.core.sound.GTSoundEvents; +import gregicality.multiblocks.api.capability.impl.GCYMMultiblockRecipeLogic; import gregicality.multiblocks.api.metatileentity.GCYMRecipeMapMultiblockController; -import gtexpert.api.gui.GTEGuiTextures; +import com.github.gtexpert.core.api.gui.GTEGuiTextures; public class MetaTileEntityAdvancedChemicalPlant extends GCYMRecipeMapMultiblockController { public MetaTileEntityAdvancedChemicalPlant(ResourceLocation metaTileEntityId) { super(metaTileEntityId, RecipeMaps.LARGE_CHEMICAL_RECIPES); + this.recipeMapWorkable = new AdvancedChemicalPlantWorkableHandler(this); } @Override @@ -64,16 +71,6 @@ protected BlockPattern createStructurePattern() { .build(); } - @Override - public boolean allowsExtendedFacing() { - return false; - } - - @Override - public boolean allowsFlip() { - return false; - } - @Override public boolean isTiered() { return true; @@ -112,6 +109,7 @@ public SoundEvent getBreakdownSound() { public void addInformation(ItemStack stack, @Nullable World player, List tooltip, boolean advanced) { super.addInformation(stack, player, tooltip, advanced); tooltip.add(I18n.format("gtexpert.machine.advanced_chemical_plant.tooltip.1")); + tooltip.add(TooltipHelper.RAINBOW_SLOW + I18n.format("gregtech.machine.perfect_oc")); } @Override @@ -135,4 +133,31 @@ public void addInformation(ItemStack stack, @Nullable World player, List protected ICubeRenderer getFrontOverlay() { return Textures.CHEMICAL_REACTOR_OVERLAY; } + + @SuppressWarnings("InnerClassMayBeStatic") + private class AdvancedChemicalPlantWorkableHandler extends GCYMMultiblockRecipeLogic { + + public AdvancedChemicalPlantWorkableHandler(RecipeMapMultiblockController tileEntity) { + super(tileEntity); + } + + protected int[] runOverclockingLogic(@NotNull IRecipePropertyStorage propertyStorage, int recipeEUt, + long maxVoltage, int duration, int amountOC) { + return standardOverclockingLogic( + Math.abs(recipeEUt), + maxVoltage, + duration, + amountOC, + getOverclockingDurationDivisor(), + getOverclockingVoltageMultiplier()); + } + + protected double getOverclockingDurationDivisor() { + return PERFECT_OVERCLOCK_DURATION_DIVISOR; + } + + protected double getOverclockingVoltageMultiplier() { + return STANDARD_OVERCLOCK_VOLTAGE_MULTIPLIER; + } + } } diff --git a/src/main/java/gtexpert/common/metatileentities/multi/MetaTileEntityLargeCrackingUnit.java b/src/main/java/com/github/gtexpert/core/common/metatileentities/multi/MetaTileEntityLargeCrackingUnit.java similarity index 94% rename from src/main/java/gtexpert/common/metatileentities/multi/MetaTileEntityLargeCrackingUnit.java rename to src/main/java/com/github/gtexpert/core/common/metatileentities/multi/MetaTileEntityLargeCrackingUnit.java index 7d100313..33c06dbf 100644 --- a/src/main/java/gtexpert/common/metatileentities/multi/MetaTileEntityLargeCrackingUnit.java +++ b/src/main/java/com/github/gtexpert/core/common/metatileentities/multi/MetaTileEntityLargeCrackingUnit.java @@ -1,4 +1,4 @@ -package gtexpert.common.metatileentities.multi; +package com.github.gtexpert.core.common.metatileentities.multi; import java.util.List; @@ -40,8 +40,8 @@ import gregicality.multiblocks.api.capability.impl.GCYMMultiblockRecipeLogic; import gregicality.multiblocks.api.metatileentity.GCYMRecipeMapMultiblockController; -import gtexpert.api.gui.GTEGuiTextures; -import gtexpert.common.GTEConfigHolder; +import com.github.gtexpert.core.api.gui.GTEGuiTextures; +import com.github.gtexpert.core.common.GTEConfigHolder; public class MetaTileEntityLargeCrackingUnit extends GCYMRecipeMapMultiblockController { @@ -62,9 +62,9 @@ public MetaTileEntity createMetaTileEntity(IGregTechTileEntity tileEntity) { protected BlockPattern createStructurePattern() { TraceabilityPredicate casing = states(getCasingState()).setMinGlobalLimited(10); TraceabilityPredicate abilities = autoAbilities(true, true, true, true, true, true, - GTEConfigHolder.gteFlag.featureFlag); + GTEConfigHolder.gteFeatureFlag.migrationMachine); - if (GTEConfigHolder.gteFlag.featureFlag) { + if (GTEConfigHolder.gteFeatureFlag.migrationMachine) { return FactoryBlockPattern.start() .aisle(" XXX ", " XXX ", " X ", " X ", " X ", " XXX ", " ") .aisle("XXXXX", "XXXXX", " CCC ", " CCC ", " CCC ", "XXXXX", " XXX ") @@ -93,16 +93,6 @@ protected BlockPattern createStructurePattern() { } } - @Override - public boolean allowsExtendedFacing() { - return false; - } - - @Override - public boolean allowsFlip() { - return false; - } - @Override public boolean isTiered() { return true; @@ -115,7 +105,7 @@ public boolean isParallel() { @Override public boolean hasMufflerMechanics() { - return GTEConfigHolder.gteFlag.featureFlag; + return GTEConfigHolder.gteFeatureFlag.migrationMachine; } @SideOnly(Side.CLIENT) diff --git a/src/main/java/gtexpert/common/metatileentities/multi/MetaTileEntityLargeGasCollector.java b/src/main/java/com/github/gtexpert/core/common/metatileentities/multi/MetaTileEntityLargeGasCollector.java similarity index 84% rename from src/main/java/gtexpert/common/metatileentities/multi/MetaTileEntityLargeGasCollector.java rename to src/main/java/com/github/gtexpert/core/common/metatileentities/multi/MetaTileEntityLargeGasCollector.java index d5d7729c..4dbbcef3 100644 --- a/src/main/java/gtexpert/common/metatileentities/multi/MetaTileEntityLargeGasCollector.java +++ b/src/main/java/com/github/gtexpert/core/common/metatileentities/multi/MetaTileEntityLargeGasCollector.java @@ -1,4 +1,4 @@ -package gtexpert.common.metatileentities.multi; +package com.github.gtexpert.core.common.metatileentities.multi; import java.util.List; @@ -14,6 +14,10 @@ import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; +import com.cleanroommc.modularui.factory.PosGuiData; +import com.cleanroommc.modularui.screen.ModularPanel; +import com.cleanroommc.modularui.value.sync.PanelSyncManager; + import gregtech.api.gui.resources.TextureArea; import gregtech.api.metatileentity.MetaTileEntity; import gregtech.api.metatileentity.interfaces.IGregTechTileEntity; @@ -30,12 +34,12 @@ import gregicality.multiblocks.api.metatileentity.GCYMRecipeMapMultiblockController; -import gtexpert.api.gui.GTEGuiTextures; -import gtexpert.api.recipes.GTERecipeMaps; -import gtexpert.client.GTETextures; -import gtexpert.common.GTEConfigHolder; -import gtexpert.common.blocks.GTEBlockMetalCasing; -import gtexpert.common.blocks.GTEMetaBlocks; +import com.github.gtexpert.core.api.gui.GTEGuiTextures; +import com.github.gtexpert.core.api.recipes.GTERecipeMaps; +import com.github.gtexpert.core.client.GTETextures; +import com.github.gtexpert.core.common.GTEConfigHolder; +import com.github.gtexpert.core.common.blocks.GTEBlockMetalCasing; +import com.github.gtexpert.core.common.blocks.GTEMetaBlocks; public class MetaTileEntityLargeGasCollector extends GCYMRecipeMapMultiblockController { @@ -68,6 +72,11 @@ protected BlockPattern createStructurePattern() { .build(); } + @Override + public ModularPanel buildUI(PosGuiData data, PanelSyncManager syncManager) { + return null; + } + @Override public boolean allowsExtendedFacing() { return false; @@ -111,7 +120,7 @@ public SoundEvent getBreakdownSound() { @Override public void addInformation(ItemStack stack, @Nullable World player, List tooltip, boolean advanced) { super.addInformation(stack, player, tooltip, advanced); - tooltip.add(I18n.format(GTEConfigHolder.gteFlag.featureFlag ? + tooltip.add(I18n.format(GTEConfigHolder.gteFeatureFlag.migrationMachine ? "gtexpert.machine.large_gas_collector.tooltip.1" : "gtexpert.machine.advanced_gas_collector.tooltip.1")); } diff --git a/src/main/java/gtexpert/common/metatileentities/multi/MetaTileEntityVoidOreMiner.java b/src/main/java/com/github/gtexpert/core/common/metatileentities/multi/MetaTileEntityVoidOreMiner.java similarity index 86% rename from src/main/java/gtexpert/common/metatileentities/multi/MetaTileEntityVoidOreMiner.java rename to src/main/java/com/github/gtexpert/core/common/metatileentities/multi/MetaTileEntityVoidOreMiner.java index 899c155f..ff3520fa 100644 --- a/src/main/java/gtexpert/common/metatileentities/multi/MetaTileEntityVoidOreMiner.java +++ b/src/main/java/com/github/gtexpert/core/common/metatileentities/multi/MetaTileEntityVoidOreMiner.java @@ -1,4 +1,4 @@ -package gtexpert.common.metatileentities.multi; +package com.github.gtexpert.core.common.metatileentities.multi; import java.util.List; @@ -14,6 +14,10 @@ import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; +import com.cleanroommc.modularui.factory.PosGuiData; +import com.cleanroommc.modularui.screen.ModularPanel; +import com.cleanroommc.modularui.value.sync.PanelSyncManager; + import gregtech.api.gui.resources.TextureArea; import gregtech.api.metatileentity.MetaTileEntity; import gregtech.api.metatileentity.interfaces.IGregTechTileEntity; @@ -27,12 +31,12 @@ import gregtech.common.blocks.MetaBlocks; import gregtech.core.sound.GTSoundEvents; -import gtexpert.api.gui.GTEGuiTextures; -import gtexpert.api.recipes.GTERecipeMaps; -import gtexpert.api.unification.material.GTEMaterials; -import gtexpert.client.GTETextures; -import gtexpert.common.blocks.GTEBlockMetalCasing; -import gtexpert.common.blocks.GTEMetaBlocks; +import com.github.gtexpert.core.api.gui.GTEGuiTextures; +import com.github.gtexpert.core.api.recipes.GTERecipeMaps; +import com.github.gtexpert.core.api.unification.material.GTEMaterials; +import com.github.gtexpert.core.client.GTETextures; +import com.github.gtexpert.core.common.blocks.GTEBlockMetalCasing; +import com.github.gtexpert.core.common.blocks.GTEMetaBlocks; public class MetaTileEntityVoidOreMiner extends RecipeMapMultiblockController { @@ -64,6 +68,11 @@ public MetaTileEntityVoidOreMiner(ResourceLocation metaTileEntityId) { .build(); } + @Override + public ModularPanel buildUI(PosGuiData data, PanelSyncManager syncManager) { + return null; + } + @Override protected boolean shouldShowVoidingModeButton() { return false; diff --git a/src/main/java/gtexpert/core/GTECoreMod.java b/src/main/java/com/github/gtexpert/core/core/GTECoreMod.java similarity index 89% rename from src/main/java/gtexpert/core/GTECoreMod.java rename to src/main/java/com/github/gtexpert/core/core/GTECoreMod.java index 47bf99eb..3118c09c 100644 --- a/src/main/java/gtexpert/core/GTECoreMod.java +++ b/src/main/java/com/github/gtexpert/core/core/GTECoreMod.java @@ -1,4 +1,4 @@ -package gtexpert.core; +package com.github.gtexpert.core.core; import java.io.*; import java.util.Map; @@ -8,8 +8,8 @@ import org.jetbrains.annotations.Nullable; -import gtexpert.api.GTEValues; -import gtexpert.api.util.GTELog; +import com.github.gtexpert.core.api.GTEValues; +import com.github.gtexpert.core.api.util.GTELog; public class GTECoreMod implements IFMLLoadingPlugin { @@ -29,7 +29,7 @@ public String getModContainerClass() { @Nullable @Override public String getSetupClass() { - return "gtexpert.core.deploader.DepLoader"; + return "com.github.gtexpert.core.core.deploader.DepLoader"; } @Override diff --git a/src/main/java/gtexpert/core/GTECoreModule.java b/src/main/java/com/github/gtexpert/core/core/GTECoreModule.java similarity index 66% rename from src/main/java/gtexpert/core/GTECoreModule.java rename to src/main/java/com/github/gtexpert/core/core/GTECoreModule.java index f55851f1..d4542980 100644 --- a/src/main/java/gtexpert/core/GTECoreModule.java +++ b/src/main/java/com/github/gtexpert/core/core/GTECoreModule.java @@ -1,12 +1,11 @@ -package gtexpert.core; +package com.github.gtexpert.core.core; +import static com.github.gtexpert.core.GTExpertMod.createItemBlock; +import static com.github.gtexpert.core.common.blocks.GTEMetaBlocks.*; import static gregtech.api.GregTechAPI.HEATING_COILS; -import static gtexpert.GTExpertMod.createItemBlock; -import static gtexpert.common.blocks.GTEMetaBlocks.*; import net.minecraft.block.Block; import net.minecraft.item.Item; -import net.minecraft.item.ItemBlock; import net.minecraft.item.crafting.IRecipe; import net.minecraftforge.event.RegistryEvent; import net.minecraftforge.fml.common.SidedProxy; @@ -21,26 +20,21 @@ import org.jetbrains.annotations.NotNull; import gregtech.api.block.VariantItemBlock; -import gregtech.api.recipes.RecipeMaps; import gregtech.loaders.recipe.RecyclingRecipes; -import gtexpert.api.GTEValues; -import gtexpert.api.modules.GTEModule; -import gtexpert.api.modules.IGTEModule; -import gtexpert.common.CommonProxy; -import gtexpert.common.blocks.GTEBlockWireCoil; -import gtexpert.common.blocks.GTEMetaBlocks; -import gtexpert.common.items.GTEMetaItems; -import gtexpert.common.items.GTEToolItems; -import gtexpert.common.metatileentities.GTEMetaTileEntities; -import gtexpert.loaders.GTEMaterialInfoLoader; -import gtexpert.loaders.GTEOreDictionaryLoader; -import gtexpert.loaders.recipe.CEUOverrideRecipe; -import gtexpert.loaders.recipe.GTERecipe; -import gtexpert.loaders.recipe.GTEVanillaOverrideRecipes; -import gtexpert.loaders.recipe.GTEWoodRecipe; -import gtexpert.loaders.recipe.handlers.GTEToolRecipeHandler; -import gtexpert.modules.GTEModules; +import com.github.gtexpert.core.api.GTEValues; +import com.github.gtexpert.core.api.modules.GTEModule; +import com.github.gtexpert.core.api.modules.IGTEModule; +import com.github.gtexpert.core.common.CommonProxy; +import com.github.gtexpert.core.common.blocks.GTEBlockWireCoil; +import com.github.gtexpert.core.common.blocks.GTEMetaBlocks; +import com.github.gtexpert.core.common.items.GTEMetaItems; +import com.github.gtexpert.core.common.metatileentities.GTEMetaTileEntities; +import com.github.gtexpert.core.loaders.GTEOreDictionaryLoader; +import com.github.gtexpert.core.loaders.recipe.CEUOverrideRecipe; +import com.github.gtexpert.core.loaders.recipe.GTERecipe; +import com.github.gtexpert.core.loaders.recipe.GTEVanillaOverrideRecipes; +import com.github.gtexpert.core.modules.GTEModules; @GTEModule( moduleID = GTEModules.MODULE_CORE, @@ -53,8 +47,8 @@ public class GTECoreModule implements IGTEModule { public static final Logger logger = LogManager.getLogger("GTExpert Core"); @SidedProxy(modId = GTEValues.MODID, - clientSide = "gtexpert.client.ClientProxy", - serverSide = "gtexpert.common.CommonProxy") + clientSide = "com.github.gtexpert.core.client.ClientProxy", + serverSide = "com.github.gtexpert.core.common.CommonProxy") public static CommonProxy proxy; @Override @@ -71,7 +65,6 @@ public void preInit(FMLPreInitializationEvent event) { GTEMetaBlocks.init(); GTEMetaItems.init(); - GTEToolItems.init(); /* Start API Block Registration */ for (GTEBlockWireCoil.GTECoilType type : GTEBlockWireCoil.GTECoilType.values()) { @@ -94,25 +87,18 @@ public void registerBlocks(RegistryEvent.Register event) { registry.register(GTE_WIRE_COIL); registry.register(GTE_METAL_CASING); - registry.register(BLOCK_SAWMILL_CONVEYOR); } @Override public void registerItems(RegistryEvent.Register event) { IForgeRegistry registry = event.getRegistry(); - // TODO Add preLoad to RecipeManager - RecipeMaps.VACUUM_RECIPES.setMaxFluidOutputs(2); - registry.register(createItemBlock(GTE_WIRE_COIL, VariantItemBlock::new)); registry.register(createItemBlock(GTE_METAL_CASING, VariantItemBlock::new)); - registry.register(createItemBlock(BLOCK_SAWMILL_CONVEYOR, ItemBlock::new)); } @Override public void registerRecipesNormal(RegistryEvent.Register event) { - GTEToolRecipeHandler.register(); - GTEMaterialInfoLoader.init(); GTEOreDictionaryLoader.init(); GTEMetaTileEntities.init(); } @@ -120,7 +106,6 @@ public void registerRecipesNormal(RegistryEvent.Register event) { @Override public void registerRecipesLowest(RegistryEvent.Register event) { GTERecipe.init(); - GTEWoodRecipe.init(); CEUOverrideRecipe.init(); GTEVanillaOverrideRecipes.init(); } diff --git a/src/main/java/gtexpert/core/deploader/DepLoader.java b/src/main/java/com/github/gtexpert/core/core/deploader/DepLoader.java similarity index 98% rename from src/main/java/gtexpert/core/deploader/DepLoader.java rename to src/main/java/com/github/gtexpert/core/core/deploader/DepLoader.java index 40c17dbe..cca68007 100644 --- a/src/main/java/gtexpert/core/deploader/DepLoader.java +++ b/src/main/java/com/github/gtexpert/core/core/deploader/DepLoader.java @@ -1,4 +1,4 @@ -package gtexpert.core.deploader; +package com.github.gtexpert.core.core.deploader; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; @@ -27,7 +27,7 @@ import com.google.gson.GsonBuilder; import com.google.gson.reflect.TypeToken; -import gtexpert.core.GTECoreMod; +import com.github.gtexpert.core.core.GTECoreMod; public class DepLoader implements IFMLCallHook { diff --git a/src/main/java/gtexpert/core/deploader/DownloadProgressDialog.java b/src/main/java/com/github/gtexpert/core/core/deploader/DownloadProgressDialog.java similarity index 96% rename from src/main/java/gtexpert/core/deploader/DownloadProgressDialog.java rename to src/main/java/com/github/gtexpert/core/core/deploader/DownloadProgressDialog.java index fd3ca2d2..66f5040c 100644 --- a/src/main/java/gtexpert/core/deploader/DownloadProgressDialog.java +++ b/src/main/java/com/github/gtexpert/core/core/deploader/DownloadProgressDialog.java @@ -1,4 +1,4 @@ -package gtexpert.core.deploader; +package com.github.gtexpert.core.core.deploader; import java.awt.*; import java.awt.event.WindowEvent; @@ -6,7 +6,7 @@ import javax.swing.*; import javax.swing.border.EmptyBorder; -import gtexpert.Tags; +import com.github.gtexpert.core.Tags; class DownloadProgressDialog extends JDialog { diff --git a/src/main/java/gtexpert/core/deploader/LetsEncryptAdder.java b/src/main/java/com/github/gtexpert/core/core/deploader/LetsEncryptAdder.java similarity index 99% rename from src/main/java/gtexpert/core/deploader/LetsEncryptAdder.java rename to src/main/java/com/github/gtexpert/core/core/deploader/LetsEncryptAdder.java index 4da32bd0..bac2792d 100644 --- a/src/main/java/gtexpert/core/deploader/LetsEncryptAdder.java +++ b/src/main/java/com/github/gtexpert/core/core/deploader/LetsEncryptAdder.java @@ -1,4 +1,4 @@ -package gtexpert.core.deploader; +package com.github.gtexpert.core.core.deploader; import java.io.BufferedInputStream; import java.io.InputStream; diff --git a/src/main/java/gtexpert/integration/GTEIntegrationModule.java b/src/main/java/com/github/gtexpert/core/integration/GTEIntegrationModule.java similarity index 79% rename from src/main/java/gtexpert/integration/GTEIntegrationModule.java rename to src/main/java/com/github/gtexpert/core/integration/GTEIntegrationModule.java index 82fc271a..0e1f357b 100644 --- a/src/main/java/gtexpert/integration/GTEIntegrationModule.java +++ b/src/main/java/com/github/gtexpert/core/integration/GTEIntegrationModule.java @@ -1,4 +1,4 @@ -package gtexpert.integration; +package com.github.gtexpert.core.integration; import java.util.Collections; import java.util.List; @@ -9,10 +9,10 @@ import org.apache.logging.log4j.Logger; import org.jetbrains.annotations.NotNull; -import gtexpert.api.GTEValues; -import gtexpert.api.modules.GTEModule; -import gtexpert.modules.BaseGTEModule; -import gtexpert.modules.GTEModules; +import com.github.gtexpert.core.api.GTEValues; +import com.github.gtexpert.core.api.modules.GTEModule; +import com.github.gtexpert.core.modules.BaseGTEModule; +import com.github.gtexpert.core.modules.GTEModules; @GTEModule( moduleID = GTEModules.MODULE_INTEGRATION, diff --git a/src/main/java/gtexpert/integration/GTEIntegrationSubmodule.java b/src/main/java/com/github/gtexpert/core/integration/GTEIntegrationSubmodule.java similarity index 79% rename from src/main/java/gtexpert/integration/GTEIntegrationSubmodule.java rename to src/main/java/com/github/gtexpert/core/integration/GTEIntegrationSubmodule.java index bf1de70c..517a9c13 100644 --- a/src/main/java/gtexpert/integration/GTEIntegrationSubmodule.java +++ b/src/main/java/com/github/gtexpert/core/integration/GTEIntegrationSubmodule.java @@ -1,4 +1,4 @@ -package gtexpert.integration; +package com.github.gtexpert.core.integration; import java.util.Collections; import java.util.Set; @@ -8,9 +8,9 @@ import org.apache.logging.log4j.Logger; import org.jetbrains.annotations.NotNull; -import gtexpert.api.util.GTEUtility; -import gtexpert.modules.BaseGTEModule; -import gtexpert.modules.GTEModules; +import com.github.gtexpert.core.api.util.GTEUtility; +import com.github.gtexpert.core.modules.BaseGTEModule; +import com.github.gtexpert.core.modules.GTEModules; /** * Abstract class meant to be used by mod-specific compatibility modules. diff --git a/src/main/java/gtexpert/integration/ae/AEConfigHolder.java b/src/main/java/com/github/gtexpert/core/integration/ae/AEConfigHolder.java similarity index 79% rename from src/main/java/gtexpert/integration/ae/AEConfigHolder.java rename to src/main/java/com/github/gtexpert/core/integration/ae/AEConfigHolder.java index e0476b4b..be859dd1 100644 --- a/src/main/java/gtexpert/integration/ae/AEConfigHolder.java +++ b/src/main/java/com/github/gtexpert/core/integration/ae/AEConfigHolder.java @@ -1,10 +1,10 @@ -package gtexpert.integration.ae; +package com.github.gtexpert.core.integration.ae; import net.minecraftforge.common.config.Config; import net.minecraftforge.common.config.Config.LangKey; -import gtexpert.api.GTEValues; -import gtexpert.modules.GTEModules; +import com.github.gtexpert.core.api.GTEValues; +import com.github.gtexpert.core.modules.GTEModules; @LangKey(GTEValues.MODID + ".config.integration.ae") @Config(modid = GTEValues.MODID, @@ -25,6 +25,9 @@ public class AEConfigHolder { "CEu's hardToolArmorRecipes to true to reflect.", "Default: false" }) public static boolean hardToolRecipes = false; + @Config.Comment({ "Change from assembly machine to circuit assembly machine.", "Default: false" }) + public static boolean hardProcessorRecipes = false; + @Config.Comment({ "Integrate Printed Silicon and various Circuit creation molds.", "Default: false" }) public static boolean moveSteelShape = false; } diff --git a/src/main/java/gtexpert/integration/ae/AEModule.java b/src/main/java/com/github/gtexpert/core/integration/ae/AEModule.java similarity index 53% rename from src/main/java/gtexpert/integration/ae/AEModule.java rename to src/main/java/com/github/gtexpert/core/integration/ae/AEModule.java index 8569fb59..2121398c 100644 --- a/src/main/java/gtexpert/integration/ae/AEModule.java +++ b/src/main/java/com/github/gtexpert/core/integration/ae/AEModule.java @@ -1,19 +1,19 @@ -package gtexpert.integration.ae; +package com.github.gtexpert.core.integration.ae; import net.minecraft.item.crafting.IRecipe; import net.minecraftforge.event.RegistryEvent; -import gtexpert.api.GTEValues; -import gtexpert.api.modules.GTEModule; -import gtexpert.api.util.Mods; -import gtexpert.integration.GTEIntegrationSubmodule; -import gtexpert.integration.ae.loaders.AEMaterialInfoLoader; -import gtexpert.integration.ae.loaders.AEOreDictionaryLoader; -import gtexpert.integration.ae.recipes.AEBlocksRecipe; -import gtexpert.integration.ae.recipes.AEItemsRecipe; -import gtexpert.integration.ae.recipes.AEMaterialsRecipe; -import gtexpert.integration.ae.recipes.AEToolsRecipe; -import gtexpert.modules.GTEModules; +import com.github.gtexpert.core.api.GTEValues; +import com.github.gtexpert.core.api.modules.GTEModule; +import com.github.gtexpert.core.api.util.Mods; +import com.github.gtexpert.core.integration.GTEIntegrationSubmodule; +import com.github.gtexpert.core.integration.ae.loaders.AEMaterialInfoLoader; +import com.github.gtexpert.core.integration.ae.loaders.AEOreDictionaryLoader; +import com.github.gtexpert.core.integration.ae.recipes.AEBlocksRecipe; +import com.github.gtexpert.core.integration.ae.recipes.AEItemsRecipe; +import com.github.gtexpert.core.integration.ae.recipes.AEMaterialsRecipe; +import com.github.gtexpert.core.integration.ae.recipes.AEToolsRecipe; +import com.github.gtexpert.core.modules.GTEModules; @GTEModule( moduleID = GTEModules.MODULE_AE, diff --git a/src/main/java/gtexpert/integration/ae/AEUtil.java b/src/main/java/com/github/gtexpert/core/integration/ae/AEUtil.java similarity index 91% rename from src/main/java/gtexpert/integration/ae/AEUtil.java rename to src/main/java/com/github/gtexpert/core/integration/ae/AEUtil.java index 60d41c92..0603ceed 100644 --- a/src/main/java/gtexpert/integration/ae/AEUtil.java +++ b/src/main/java/com/github/gtexpert/core/integration/ae/AEUtil.java @@ -1,4 +1,4 @@ -package gtexpert.integration.ae; +package com.github.gtexpert.core.integration.ae; import gregtech.api.unification.material.Material; import gregtech.api.unification.material.Materials; diff --git a/src/main/java/gtexpert/integration/ae/loaders/AEMaterialInfoLoader.java b/src/main/java/com/github/gtexpert/core/integration/ae/loaders/AEMaterialInfoLoader.java similarity index 93% rename from src/main/java/gtexpert/integration/ae/loaders/AEMaterialInfoLoader.java rename to src/main/java/com/github/gtexpert/core/integration/ae/loaders/AEMaterialInfoLoader.java index ac3eee5d..071f6570 100644 --- a/src/main/java/gtexpert/integration/ae/loaders/AEMaterialInfoLoader.java +++ b/src/main/java/com/github/gtexpert/core/integration/ae/loaders/AEMaterialInfoLoader.java @@ -1,4 +1,4 @@ -package gtexpert.integration.ae.loaders; +package com.github.gtexpert.core.integration.ae.loaders; import gregtech.api.GTValues; import gregtech.api.unification.OreDictUnifier; @@ -6,8 +6,8 @@ import gregtech.api.unification.stack.ItemMaterialInfo; import gregtech.api.unification.stack.MaterialStack; -import gtexpert.api.unification.material.GTEMaterials; -import gtexpert.api.util.Mods; +import com.github.gtexpert.core.api.unification.material.GTEMaterials; +import com.github.gtexpert.core.api.util.Mods; public class AEMaterialInfoLoader { diff --git a/src/main/java/gtexpert/integration/ae/loaders/AEOreDictionaryLoader.java b/src/main/java/com/github/gtexpert/core/integration/ae/loaders/AEOreDictionaryLoader.java similarity index 95% rename from src/main/java/gtexpert/integration/ae/loaders/AEOreDictionaryLoader.java rename to src/main/java/com/github/gtexpert/core/integration/ae/loaders/AEOreDictionaryLoader.java index 02d91227..8ae92ef5 100644 --- a/src/main/java/gtexpert/integration/ae/loaders/AEOreDictionaryLoader.java +++ b/src/main/java/com/github/gtexpert/core/integration/ae/loaders/AEOreDictionaryLoader.java @@ -1,4 +1,4 @@ -package gtexpert.integration.ae.loaders; +package com.github.gtexpert.core.integration.ae.loaders; import net.minecraft.item.ItemStack; import net.minecraftforge.oredict.OreDictionary; @@ -8,8 +8,8 @@ import gregtech.api.unification.material.Materials; import gregtech.api.unification.ore.OrePrefix; -import gtexpert.api.util.GTEUtility; -import gtexpert.api.util.Mods; +import com.github.gtexpert.core.api.util.GTEUtility; +import com.github.gtexpert.core.api.util.Mods; public class AEOreDictionaryLoader { diff --git a/src/main/java/gtexpert/integration/ae/recipes/AEBlocksRecipe.java b/src/main/java/com/github/gtexpert/core/integration/ae/recipes/AEBlocksRecipe.java similarity index 96% rename from src/main/java/gtexpert/integration/ae/recipes/AEBlocksRecipe.java rename to src/main/java/com/github/gtexpert/core/integration/ae/recipes/AEBlocksRecipe.java index d2112366..eedab8e3 100644 --- a/src/main/java/gtexpert/integration/ae/recipes/AEBlocksRecipe.java +++ b/src/main/java/com/github/gtexpert/core/integration/ae/recipes/AEBlocksRecipe.java @@ -1,8 +1,8 @@ -package gtexpert.integration.ae.recipes; +package com.github.gtexpert.core.integration.ae.recipes; +import static com.github.gtexpert.core.integration.ae.AEUtil.tierMaterials; import static gregtech.api.GTValues.*; import static gregtech.api.unification.ore.OrePrefix.*; -import static gtexpert.integration.ae.AEUtil.tierMaterials; import java.util.Map; import java.util.stream.IntStream; @@ -18,10 +18,11 @@ import gregtech.common.items.MetaItems; import gregtech.common.metatileentities.MetaTileEntities; -import gtexpert.api.GTEValues; -import gtexpert.api.unification.material.GTEMaterials; -import gtexpert.api.util.Mods; -import gtexpert.integration.ae.AEConfigHolder; +import com.github.gtexpert.core.api.GTEValues; +import com.github.gtexpert.core.api.unification.material.GTEMaterials; +import com.github.gtexpert.core.api.util.Mods; +import com.github.gtexpert.core.common.GTEConfigHolder; +import com.github.gtexpert.core.integration.ae.AEConfigHolder; import it.unimi.dsi.fastutil.objects.Object2ObjectOpenHashMap; @@ -29,19 +30,21 @@ public class AEBlocksRecipe { public static void init() { // Creative Energy Cell - RecipeMaps.ASSEMBLY_LINE_RECIPES.recipeBuilder() - .input(MetaItems.ENERGY_CLUSTER, 4) - .inputs(MetaBlocks.FUSION_CASING.getItemVariant(BlockFusionCasing.CasingType.FUSION_CASING_MK3, 8)) - .input(MetaTileEntities.HULL[UV]) - .input(MetaItems.CRYSTAL_MAINFRAME_UV, 4) - .inputs(Mods.AppliedEnergistics2.getItem("dense_energy_cell", 8)) - .input(MetaItems.COVER_SOLAR_PANEL_UV, 1) - .fluidInputs(GTEMaterials.Fluix.getFluid(18432)) - .fluidInputs(Materials.SolderingAlloy.getFluid(18432)) - .fluidInputs(Materials.Neutronium.getFluid(9216)) - .outputs(Mods.AppliedEnergistics2.getItem("creative_energy_cell")) - .duration(1200).EUt(VA[UV]) - .buildAndRegister(); + if (GTEConfigHolder.gteFlag.addCreativeRecipe) { + RecipeMaps.ASSEMBLY_LINE_RECIPES.recipeBuilder() + .input(MetaItems.ENERGY_CLUSTER, 4) + .inputs(MetaBlocks.FUSION_CASING.getItemVariant(BlockFusionCasing.CasingType.FUSION_CASING_MK3, 8)) + .input(MetaTileEntities.HULL[UV]) + .input(MetaItems.CRYSTAL_MAINFRAME_UV, 4) + .inputs(Mods.AppliedEnergistics2.getItem("dense_energy_cell", 8)) + .input(MetaItems.COVER_SOLAR_PANEL_UV, 1) + .fluidInputs(GTEMaterials.Fluix.getFluid(18432)) + .fluidInputs(Materials.SolderingAlloy.getFluid(18432)) + .fluidInputs(Materials.Neutronium.getFluid(9216)) + .outputs(Mods.AppliedEnergistics2.getItem("creative_energy_cell")) + .duration(1200).EUt(VA[UV]) + .buildAndRegister(); + } // ME Interface ModHandler.removeRecipeByName( diff --git a/src/main/java/gtexpert/integration/ae/recipes/AEItemsRecipe.java b/src/main/java/com/github/gtexpert/core/integration/ae/recipes/AEItemsRecipe.java similarity index 95% rename from src/main/java/gtexpert/integration/ae/recipes/AEItemsRecipe.java rename to src/main/java/com/github/gtexpert/core/integration/ae/recipes/AEItemsRecipe.java index dd94b3e3..b944338c 100644 --- a/src/main/java/gtexpert/integration/ae/recipes/AEItemsRecipe.java +++ b/src/main/java/com/github/gtexpert/core/integration/ae/recipes/AEItemsRecipe.java @@ -1,8 +1,8 @@ -package gtexpert.integration.ae.recipes; +package com.github.gtexpert.core.integration.ae.recipes; +import static com.github.gtexpert.core.integration.ae.AEUtil.tierMaterials; import static gregtech.api.GTValues.*; import static gregtech.api.unification.ore.OrePrefix.*; -import static gtexpert.integration.ae.AEUtil.tierMaterials; import java.util.Arrays; import java.util.Objects; @@ -16,35 +16,37 @@ import gregtech.api.unification.material.Materials; import gregtech.common.items.MetaItems; -import gtexpert.api.GTEValues; -import gtexpert.api.unification.material.GTEMaterials; -import gtexpert.api.util.Mods; -import gtexpert.common.GTEConfigHolder; -import gtexpert.common.items.GTEMetaItems; -import gtexpert.integration.ae.AEConfigHolder; +import com.github.gtexpert.core.api.GTEValues; +import com.github.gtexpert.core.api.unification.material.GTEMaterials; +import com.github.gtexpert.core.api.util.Mods; +import com.github.gtexpert.core.common.GTEConfigHolder; +import com.github.gtexpert.core.common.items.GTEMetaItems; +import com.github.gtexpert.core.integration.ae.AEConfigHolder; public class AEItemsRecipe { public static void init() { // GTE ME Storage Fake Component - AssemblyLineRecipeBuilder builderGTECore = RecipeMaps.ASSEMBLY_LINE_RECIPES.recipeBuilder() - .input(screw, Materials.Neutronium, 8) - .input(MetaItems.CRYSTAL_MAINFRAME_UV, 4) - .fluidInputs(Materials.SolderingAlloy.getFluid(18432)) - .fluidInputs(Materials.Neutronium.getFluid(9216)) - .output(GTEMetaItems.GTE_ME_FAKE_COMPONENT, 1) - .duration(1200).EUt(VA[UV]); - if (AEConfigHolder.enableAE2UELExtended) { - builderGTECore.inputs(Mods.AppliedEnergistics2.getItem("material", 16, 65)); - builderGTECore.inputs(Mods.AppliedEnergistics2.getItem("material", 16, 70)); - } else if (Mods.AEAdditions.isModLoaded()) { - builderGTECore.inputs(Mods.AEAdditions.getItem("storage.component", 16, 3)); - builderGTECore.inputs(Mods.AEAdditions.getItem("storage.component", 16, 6)); - } else { - builderGTECore.inputs(Mods.AppliedEnergistics2.getItem("material", 16, 38)); - builderGTECore.inputs(Mods.AppliedEnergistics2.getItem("material", 16, 57)); + if (GTEConfigHolder.gteFlag.addCreativeRecipe) { + AssemblyLineRecipeBuilder builderGTECore = RecipeMaps.ASSEMBLY_LINE_RECIPES.recipeBuilder() + .input(screw, Materials.Neutronium, 8) + .input(MetaItems.CRYSTAL_MAINFRAME_UV, 4) + .fluidInputs(Materials.SolderingAlloy.getFluid(18432)) + .fluidInputs(Materials.Neutronium.getFluid(9216)) + .output(GTEMetaItems.GTE_ME_FAKE_COMPONENT, 1) + .duration(1200).EUt(VA[UV]); + if (AEConfigHolder.enableAE2UELExtended) { + builderGTECore.inputs(Mods.AppliedEnergistics2.getItem("material", 16, 65)); + builderGTECore.inputs(Mods.AppliedEnergistics2.getItem("material", 16, 70)); + } else if (Mods.AEAdditions.isModLoaded()) { + builderGTECore.inputs(Mods.AEAdditions.getItem("storage.component", 16, 3)); + builderGTECore.inputs(Mods.AEAdditions.getItem("storage.component", 16, 6)); + } else { + builderGTECore.inputs(Mods.AppliedEnergistics2.getItem("material", 16, 38)); + builderGTECore.inputs(Mods.AppliedEnergistics2.getItem("material", 16, 57)); + } + builderGTECore.buildAndRegister(); } - builderGTECore.buildAndRegister(); // 1k Storage Cell ModHandler.removeRecipeByName( @@ -540,10 +542,10 @@ public static void init() { // Formation Core ModHandler.removeRecipeByName(Mods.AppliedEnergistics2.getResource("materials/formationcore")); ModHandler.addShapedRecipe(true, "formation_core", - Mods.AppliedEnergistics2.getItem("material", 2, 43), + Mods.AppliedEnergistics2.getItem("material", 1, 43), "SES", "LQL", "SES", 'S', OreDictUnifier.get(stick, tierMaterials[GTEValues.ae2VoltageTier - 1]), - 'Q', "gemMaterials.NetherQuartz", + 'Q', "gemNetherQuartz", 'E', Mods.AppliedEnergistics2.getItem("material", 1, 24), 'L', Mods.AppliedEnergistics2.getItem("material", 1, 22)); ModHandler.addShapedRecipe("formation_core_pure", @@ -566,7 +568,7 @@ public static void init() { // Annihilation Core ModHandler.removeRecipeByName(Mods.AppliedEnergistics2.getResource("materials/annihilationcore")); ModHandler.addShapedRecipe(true, "annihilation_core", - Mods.AppliedEnergistics2.getItem("material", 2, 44), + Mods.AppliedEnergistics2.getItem("material", 1, 44), "SES", "CQC", "SES", 'S', OreDictUnifier.get(stick, tierMaterials[GTEValues.ae2VoltageTier - 1]), 'Q', "gemCertusQuartz", @@ -664,7 +666,7 @@ public static void init() { .duration(20).EUt(VA[GTEValues.ae2VoltageTier]) .buildAndRegister(); - if (GTEConfigHolder.gteFlag.featureFlag) { + if (AEConfigHolder.hardProcessorRecipes) { // Logic Processor RecipeMaps.CIRCUIT_ASSEMBLER_RECIPES.recipeBuilder() .inputs(Mods.AppliedEnergistics2.getItem("material", 1, 20)) diff --git a/src/main/java/gtexpert/integration/ae/recipes/AEMaterialsRecipe.java b/src/main/java/com/github/gtexpert/core/integration/ae/recipes/AEMaterialsRecipe.java similarity index 89% rename from src/main/java/gtexpert/integration/ae/recipes/AEMaterialsRecipe.java rename to src/main/java/com/github/gtexpert/core/integration/ae/recipes/AEMaterialsRecipe.java index ecb6eccd..9588f21a 100644 --- a/src/main/java/gtexpert/integration/ae/recipes/AEMaterialsRecipe.java +++ b/src/main/java/com/github/gtexpert/core/integration/ae/recipes/AEMaterialsRecipe.java @@ -1,10 +1,12 @@ -package gtexpert.integration.ae.recipes; +package com.github.gtexpert.core.integration.ae.recipes; +import static com.github.gtexpert.core.integration.deda.recipes.DraconicMaterialsRecipe.ABFDurationMultiplier; import static gregtech.api.GTValues.*; import static gregtech.api.unification.ore.OrePrefix.*; -import static gtexpert.integration.deda.recipes.DraconicMaterialsRecipe.ABFDurationMultiplier; -import static gtexpert.loaders.recipe.handlers.GTEMaterialRecipeHandler.addImplosionRecipes; +import net.minecraftforge.fluids.FluidStack; + +import gregtech.api.fluids.store.FluidStorageKeys; import gregtech.api.recipes.ModHandler; import gregtech.api.recipes.RecipeMaps; import gregtech.api.recipes.category.RecipeCategories; @@ -16,13 +18,15 @@ import gregtech.api.unification.material.properties.PropertyKey; import gregtech.api.unification.stack.UnificationEntry; import gregtech.common.ConfigHolder; +import gregtech.common.items.MetaItems; import gregicality.multiblocks.api.fluids.GCYMFluidStorageKeys; import gregicality.multiblocks.api.recipes.GCYMRecipeMaps; -import gtexpert.api.GTEValues; -import gtexpert.api.unification.material.GTEMaterials; -import gtexpert.api.util.Mods; +import com.github.gtexpert.core.api.GTEValues; +import com.github.gtexpert.core.api.unification.material.GTEMaterials; +import com.github.gtexpert.core.api.util.Mods; +import com.github.gtexpert.core.loaders.recipe.handlers.GTEImplosionRecipeHandler; public class AEMaterialsRecipe { @@ -245,7 +249,8 @@ public static void init() { .chancedOutput(Mods.AppliedEnergistics2.getItem("material", 1, 1), 7000, 1000) .duration(1200).EUt(24) .buildAndRegister(); - addImplosionRecipes(GTEMaterials.ChargedCertusQuartz, Mods.AppliedEnergistics2.getItem("material", 3, 1)); + GTEImplosionRecipeHandler.add(GTEMaterials.ChargedCertusQuartz, + Mods.AppliedEnergistics2.getItem("material", 3, 1)); // Lens RecipeMaps.LATHE_RECIPES.recipeBuilder() @@ -295,7 +300,7 @@ public static void init() { .chancedOutput(Mods.AppliedEnergistics2.getItem("material", 1, 7), 7000, 1000) .duration(1200).EUt(24) .buildAndRegister(); - addImplosionRecipes(GTEMaterials.Fluix, Mods.AppliedEnergistics2.getItem("material", 3, 7)); + GTEImplosionRecipeHandler.add(GTEMaterials.Fluix, Mods.AppliedEnergistics2.getItem("material", 3, 7)); // Block RecipeMaps.COMPRESSOR_RECIPES.recipeBuilder() @@ -324,6 +329,11 @@ public static void init() { int durationFluixAlloy = propertyFluixAlloy.getDurationOverride(); if (durationFluixAlloy < 0) durationFluixAlloy = Math.max(1, (int) (GTEMaterials.FluixAlloy.getMass() * propertyFluixAlloy.getBlastTemperature() / 100L)); + int vacuumEUt = propertyFluixAlloy.getVacuumEUtOverride() != -1 ? propertyFluixAlloy.getVacuumEUtOverride() : + VA[MV]; + int vacuumDuration = propertyFluixAlloy.getVacuumDurationOverride() != -1 ? + propertyFluixAlloy.getVacuumDurationOverride() : + (int) GTEMaterials.FluixAlloy.getMass() * 3; // Fluid if (Mods.DraconicEvolution.isModLoaded()) { @@ -376,6 +386,28 @@ public static void init() { .output(dust, GTEMaterials.FluixAlloy, 8) .duration(200).EUt(VA[GTEValues.ae2VoltageTier]) .buildAndRegister(); + + // Ingot + RecipeMaps.VACUUM_RECIPES.recipeBuilder() + .notConsumable(MetaItems.SHAPE_MOLD_INGOT) + .fluidInputs(new FluidStack(GTEMaterials.FluixAlloy.getFluid(GCYMFluidStorageKeys.MOLTEN), 144)) + .fluidInputs(Materials.Helium.getFluid(FluidStorageKeys.LIQUID, 500)) + .fluidOutputs(Materials.Helium.getFluid(250)) + .output(ingot, GTEMaterials.FluixAlloy, 1) + .duration(vacuumDuration) + .EUt(vacuumEUt) + .buildAndRegister(); + if (Mods.DraconicEvolution.isModLoaded()) { + RecipeMaps.VACUUM_RECIPES.recipeBuilder() + .notConsumable(MetaItems.SHAPE_MOLD_INGOT) + .fluidInputs(new FluidStack(GTEMaterials.FluixAlloy.getFluid(GCYMFluidStorageKeys.MOLTEN), 144)) + .fluidInputs(GTEMaterials.Cryotheum.getFluid(250)) + .fluidOutputs(GTEMaterials.Pyrotheum.getFluid(GCYMFluidStorageKeys.MOLTEN, 50)) + .output(ingot, GTEMaterials.FluixAlloy, 1) + .duration(vacuumDuration / 2) + .EUt(vacuumEUt) + .buildAndRegister(); + } } public static void remove() { diff --git a/src/main/java/gtexpert/integration/ae/recipes/AEToolsRecipe.java b/src/main/java/com/github/gtexpert/core/integration/ae/recipes/AEToolsRecipe.java similarity index 97% rename from src/main/java/gtexpert/integration/ae/recipes/AEToolsRecipe.java rename to src/main/java/com/github/gtexpert/core/integration/ae/recipes/AEToolsRecipe.java index 2f9cce47..bf91d2c3 100644 --- a/src/main/java/gtexpert/integration/ae/recipes/AEToolsRecipe.java +++ b/src/main/java/com/github/gtexpert/core/integration/ae/recipes/AEToolsRecipe.java @@ -1,4 +1,4 @@ -package gtexpert.integration.ae.recipes; +package com.github.gtexpert.core.integration.ae.recipes; import static gregtech.api.unification.ore.OrePrefix.*; @@ -7,8 +7,8 @@ import gregtech.api.unification.material.Materials; import gregtech.common.ConfigHolder; -import gtexpert.api.util.Mods; -import gtexpert.integration.ae.AEConfigHolder; +import com.github.gtexpert.core.api.util.Mods; +import com.github.gtexpert.core.integration.ae.AEConfigHolder; public class AEToolsRecipe { diff --git a/src/main/java/gtexpert/integration/aeaditions/AEAConfigHolder.java b/src/main/java/com/github/gtexpert/core/integration/aeaditions/AEAConfigHolder.java similarity index 68% rename from src/main/java/gtexpert/integration/aeaditions/AEAConfigHolder.java rename to src/main/java/com/github/gtexpert/core/integration/aeaditions/AEAConfigHolder.java index 31a4e7b8..1c89546d 100644 --- a/src/main/java/gtexpert/integration/aeaditions/AEAConfigHolder.java +++ b/src/main/java/com/github/gtexpert/core/integration/aeaditions/AEAConfigHolder.java @@ -1,10 +1,10 @@ -package gtexpert.integration.aeaditions; +package com.github.gtexpert.core.integration.aeaditions; import net.minecraftforge.common.config.Config; import net.minecraftforge.common.config.Config.LangKey; -import gtexpert.api.GTEValues; -import gtexpert.modules.GTEModules; +import com.github.gtexpert.core.api.GTEValues; +import com.github.gtexpert.core.modules.GTEModules; @LangKey(GTEValues.MODID + ".config.integration.aeadditions") @Config(modid = GTEValues.MODID, diff --git a/src/main/java/gtexpert/integration/aeaditions/AEAModule.java b/src/main/java/com/github/gtexpert/core/integration/aeaditions/AEAModule.java similarity index 59% rename from src/main/java/gtexpert/integration/aeaditions/AEAModule.java rename to src/main/java/com/github/gtexpert/core/integration/aeaditions/AEAModule.java index 1557efdd..170fa604 100644 --- a/src/main/java/gtexpert/integration/aeaditions/AEAModule.java +++ b/src/main/java/com/github/gtexpert/core/integration/aeaditions/AEAModule.java @@ -1,14 +1,14 @@ -package gtexpert.integration.aeaditions; +package com.github.gtexpert.core.integration.aeaditions; import net.minecraft.item.crafting.IRecipe; import net.minecraftforge.event.RegistryEvent; -import gtexpert.api.GTEValues; -import gtexpert.api.modules.GTEModule; -import gtexpert.api.util.Mods; -import gtexpert.integration.GTEIntegrationSubmodule; -import gtexpert.integration.aeaditions.recipes.AEAItemsRecipe; -import gtexpert.modules.GTEModules; +import com.github.gtexpert.core.api.GTEValues; +import com.github.gtexpert.core.api.modules.GTEModule; +import com.github.gtexpert.core.api.util.Mods; +import com.github.gtexpert.core.integration.GTEIntegrationSubmodule; +import com.github.gtexpert.core.integration.aeaditions.recipes.AEAItemsRecipe; +import com.github.gtexpert.core.modules.GTEModules; @GTEModule( moduleID = GTEModules.MODULE_AEA, diff --git a/src/main/java/gtexpert/integration/aeaditions/recipes/AEAItemsRecipe.java b/src/main/java/com/github/gtexpert/core/integration/aeaditions/recipes/AEAItemsRecipe.java similarity index 97% rename from src/main/java/gtexpert/integration/aeaditions/recipes/AEAItemsRecipe.java rename to src/main/java/com/github/gtexpert/core/integration/aeaditions/recipes/AEAItemsRecipe.java index 288701bf..358c0923 100644 --- a/src/main/java/gtexpert/integration/aeaditions/recipes/AEAItemsRecipe.java +++ b/src/main/java/com/github/gtexpert/core/integration/aeaditions/recipes/AEAItemsRecipe.java @@ -1,15 +1,15 @@ -package gtexpert.integration.aeaditions.recipes; +package com.github.gtexpert.core.integration.aeaditions.recipes; +import static com.github.gtexpert.core.integration.ae.AEUtil.tierMaterials; import static gregtech.api.GTValues.*; import static gregtech.api.unification.ore.OrePrefix.*; -import static gtexpert.integration.ae.AEUtil.tierMaterials; import gregtech.api.recipes.ModHandler; import gregtech.api.recipes.RecipeMaps; import gregtech.api.unification.OreDictUnifier; -import gtexpert.api.GTEValues; -import gtexpert.api.util.Mods; +import com.github.gtexpert.core.api.GTEValues; +import com.github.gtexpert.core.api.util.Mods; public class AEAItemsRecipe { diff --git a/src/main/java/gtexpert/integration/avaritia/AvaritiaModule.java b/src/main/java/com/github/gtexpert/core/integration/avaritia/AvaritiaModule.java similarity index 59% rename from src/main/java/gtexpert/integration/avaritia/AvaritiaModule.java rename to src/main/java/com/github/gtexpert/core/integration/avaritia/AvaritiaModule.java index 86d27d9a..1a21ecef 100644 --- a/src/main/java/gtexpert/integration/avaritia/AvaritiaModule.java +++ b/src/main/java/com/github/gtexpert/core/integration/avaritia/AvaritiaModule.java @@ -1,14 +1,14 @@ -package gtexpert.integration.avaritia; +package com.github.gtexpert.core.integration.avaritia; import net.minecraft.item.crafting.IRecipe; import net.minecraftforge.event.RegistryEvent; -import gtexpert.api.GTEValues; -import gtexpert.api.modules.GTEModule; -import gtexpert.api.util.Mods; -import gtexpert.integration.GTEIntegrationSubmodule; -import gtexpert.integration.avaritia.recipes.AvaritiaMaterialsRecipe; -import gtexpert.modules.GTEModules; +import com.github.gtexpert.core.api.GTEValues; +import com.github.gtexpert.core.api.modules.GTEModule; +import com.github.gtexpert.core.api.util.Mods; +import com.github.gtexpert.core.integration.GTEIntegrationSubmodule; +import com.github.gtexpert.core.integration.avaritia.recipes.AvaritiaMaterialsRecipe; +import com.github.gtexpert.core.modules.GTEModules; @GTEModule( moduleID = GTEModules.MODULE_AVARITIA, diff --git a/src/main/java/gtexpert/integration/avaritia/recipes/AvaritiaMaterialsRecipe.java b/src/main/java/com/github/gtexpert/core/integration/avaritia/recipes/AvaritiaMaterialsRecipe.java similarity index 97% rename from src/main/java/gtexpert/integration/avaritia/recipes/AvaritiaMaterialsRecipe.java rename to src/main/java/com/github/gtexpert/core/integration/avaritia/recipes/AvaritiaMaterialsRecipe.java index cd4a74eb..a5aaa9e8 100644 --- a/src/main/java/gtexpert/integration/avaritia/recipes/AvaritiaMaterialsRecipe.java +++ b/src/main/java/com/github/gtexpert/core/integration/avaritia/recipes/AvaritiaMaterialsRecipe.java @@ -1,4 +1,4 @@ -package gtexpert.integration.avaritia.recipes; +package com.github.gtexpert.core.integration.avaritia.recipes; import static gregtech.api.unification.ore.OrePrefix.*; @@ -9,8 +9,8 @@ import gregtech.common.ConfigHolder; import gregtech.common.items.MetaItems; -import gtexpert.api.unification.material.GTEMaterials; -import gtexpert.api.util.Mods; +import com.github.gtexpert.core.api.unification.material.GTEMaterials; +import com.github.gtexpert.core.api.util.Mods; public class AvaritiaMaterialsRecipe { diff --git a/src/main/java/gtexpert/integration/chisel/ChiselConfigHolder.java b/src/main/java/com/github/gtexpert/core/integration/chisel/ChiselConfigHolder.java similarity index 81% rename from src/main/java/gtexpert/integration/chisel/ChiselConfigHolder.java rename to src/main/java/com/github/gtexpert/core/integration/chisel/ChiselConfigHolder.java index 6f40d8f4..87271fc0 100644 --- a/src/main/java/gtexpert/integration/chisel/ChiselConfigHolder.java +++ b/src/main/java/com/github/gtexpert/core/integration/chisel/ChiselConfigHolder.java @@ -1,9 +1,9 @@ -package gtexpert.integration.chisel; +package com.github.gtexpert.core.integration.chisel; import net.minecraftforge.common.config.Config; -import gtexpert.api.GTEValues; -import gtexpert.modules.GTEModules; +import com.github.gtexpert.core.api.GTEValues; +import com.github.gtexpert.core.modules.GTEModules; @Config.LangKey(GTEValues.MODID + ".config.integration.chisel") @Config(modid = GTEValues.MODID, diff --git a/src/main/java/gtexpert/integration/chisel/ChiselModule.java b/src/main/java/com/github/gtexpert/core/integration/chisel/ChiselModule.java similarity index 57% rename from src/main/java/gtexpert/integration/chisel/ChiselModule.java rename to src/main/java/com/github/gtexpert/core/integration/chisel/ChiselModule.java index 98038696..a7f0696f 100644 --- a/src/main/java/gtexpert/integration/chisel/ChiselModule.java +++ b/src/main/java/com/github/gtexpert/core/integration/chisel/ChiselModule.java @@ -1,18 +1,18 @@ -package gtexpert.integration.chisel; +package com.github.gtexpert.core.integration.chisel; import net.minecraft.block.Block; import net.minecraft.item.crafting.IRecipe; import net.minecraftforge.event.RegistryEvent; -import gtexpert.api.GTEValues; -import gtexpert.api.modules.GTEModule; -import gtexpert.api.util.Mods; -import gtexpert.integration.GTEIntegrationSubmodule; -import gtexpert.integration.chisel.loaders.ChiselOreDictionaryLoader; -import gtexpert.integration.chisel.metatileentities.ChiselMetaTileEntities; -import gtexpert.integration.chisel.recipes.ChiselBlocksRecipe; -import gtexpert.integration.chisel.recipes.ChiselToolsRecipe; -import gtexpert.modules.GTEModules; +import com.github.gtexpert.core.api.GTEValues; +import com.github.gtexpert.core.api.modules.GTEModule; +import com.github.gtexpert.core.api.util.Mods; +import com.github.gtexpert.core.integration.GTEIntegrationSubmodule; +import com.github.gtexpert.core.integration.chisel.loaders.ChiselOreDictionaryLoader; +import com.github.gtexpert.core.integration.chisel.metatileentities.ChiselMetaTileEntities; +import com.github.gtexpert.core.integration.chisel.recipes.ChiselBlocksRecipe; +import com.github.gtexpert.core.integration.chisel.recipes.ChiselToolsRecipe; +import com.github.gtexpert.core.modules.GTEModules; @GTEModule( moduleID = GTEModules.MODULE_CHISEL, diff --git a/src/main/java/com/github/gtexpert/core/integration/chisel/ChiselRecipeMaps.java b/src/main/java/com/github/gtexpert/core/integration/chisel/ChiselRecipeMaps.java new file mode 100644 index 00000000..d2d92f47 --- /dev/null +++ b/src/main/java/com/github/gtexpert/core/integration/chisel/ChiselRecipeMaps.java @@ -0,0 +1,31 @@ +package com.github.gtexpert.core.integration.chisel; + +import gregtech.api.gui.GuiTextures; +import gregtech.api.gui.widgets.ProgressWidget; +import gregtech.api.recipes.RecipeMap; +import gregtech.api.recipes.RecipeMapBuilder; +import gregtech.api.recipes.builders.SimpleRecipeBuilder; +import gregtech.core.sound.GTSoundEvents; + +import com.github.gtexpert.core.api.gui.GTEGuiTextures; + +import crafttweaker.annotations.ZenRegister; +import stanhebben.zenscript.annotations.ZenExpansion; +import stanhebben.zenscript.annotations.ZenProperty; + +@ZenExpansion("mods.gregtech.recipe.RecipeMaps") +@ZenRegister +public class ChiselRecipeMaps { + + @ZenProperty + public static final RecipeMap AUTO_CHISEL_RECIPES = new RecipeMapBuilder<>( + "auto_chisel", new SimpleRecipeBuilder()) + .itemInputs(2) + .itemOutputs(9) + .fluidInputs(0) + .fluidOutputs(0) + .itemSlotOverlay(GuiTextures.BOXED_BACKGROUND, false) + .progressBar(GTEGuiTextures.PROGRESS_BAR_CHISEL, ProgressWidget.MoveType.HORIZONTAL) + .sound(GTSoundEvents.FILE_TOOL) + .build(); +} diff --git a/src/main/java/gtexpert/integration/chisel/ChiselUtil.java b/src/main/java/com/github/gtexpert/core/integration/chisel/ChiselUtil.java similarity index 93% rename from src/main/java/gtexpert/integration/chisel/ChiselUtil.java rename to src/main/java/com/github/gtexpert/core/integration/chisel/ChiselUtil.java index bb53545f..24582254 100644 --- a/src/main/java/gtexpert/integration/chisel/ChiselUtil.java +++ b/src/main/java/com/github/gtexpert/core/integration/chisel/ChiselUtil.java @@ -1,4 +1,4 @@ -package gtexpert.integration.chisel; +package com.github.gtexpert.core.integration.chisel; import net.minecraft.item.ItemStack; import net.minecraftforge.oredict.OreDictionary; diff --git a/src/main/java/gtexpert/integration/chisel/loaders/ChiselOreDictionaryLoader.java b/src/main/java/com/github/gtexpert/core/integration/chisel/loaders/ChiselOreDictionaryLoader.java similarity index 67% rename from src/main/java/gtexpert/integration/chisel/loaders/ChiselOreDictionaryLoader.java rename to src/main/java/com/github/gtexpert/core/integration/chisel/loaders/ChiselOreDictionaryLoader.java index a341bc55..d7544907 100644 --- a/src/main/java/gtexpert/integration/chisel/loaders/ChiselOreDictionaryLoader.java +++ b/src/main/java/com/github/gtexpert/core/integration/chisel/loaders/ChiselOreDictionaryLoader.java @@ -1,7 +1,7 @@ -package gtexpert.integration.chisel.loaders; +package com.github.gtexpert.core.integration.chisel.loaders; -import gtexpert.api.util.GTEUtility; -import gtexpert.api.util.Mods; +import com.github.gtexpert.core.api.util.GTEUtility; +import com.github.gtexpert.core.api.util.Mods; public class ChiselOreDictionaryLoader { diff --git a/src/main/java/gtexpert/integration/chisel/metatileentities/ChiselMetaTileEntities.java b/src/main/java/com/github/gtexpert/core/integration/chisel/metatileentities/ChiselMetaTileEntities.java similarity index 82% rename from src/main/java/gtexpert/integration/chisel/metatileentities/ChiselMetaTileEntities.java rename to src/main/java/com/github/gtexpert/core/integration/chisel/metatileentities/ChiselMetaTileEntities.java index 23c37ff1..24feb158 100644 --- a/src/main/java/gtexpert/integration/chisel/metatileentities/ChiselMetaTileEntities.java +++ b/src/main/java/com/github/gtexpert/core/integration/chisel/metatileentities/ChiselMetaTileEntities.java @@ -1,13 +1,13 @@ -package gtexpert.integration.chisel.metatileentities; +package com.github.gtexpert.core.integration.chisel.metatileentities; +import static com.github.gtexpert.core.api.util.GTEUtility.gteId; import static gregtech.api.GTValues.*; import static gregtech.common.metatileentities.MetaTileEntities.registerMetaTileEntity; -import static gtexpert.api.util.GTEUtility.gteId; import gregtech.api.util.GTUtility; -import gtexpert.client.GTETextures; -import gtexpert.integration.chisel.ChiselRecipeMaps; +import com.github.gtexpert.core.client.GTETextures; +import com.github.gtexpert.core.integration.chisel.ChiselRecipeMaps; public class ChiselMetaTileEntities { diff --git a/src/main/java/gtexpert/integration/chisel/metatileentities/MetaTileEntityAutoChisel.java b/src/main/java/com/github/gtexpert/core/integration/chisel/metatileentities/MetaTileEntityAutoChisel.java similarity index 61% rename from src/main/java/gtexpert/integration/chisel/metatileentities/MetaTileEntityAutoChisel.java rename to src/main/java/com/github/gtexpert/core/integration/chisel/metatileentities/MetaTileEntityAutoChisel.java index c521b26a..23c2335a 100644 --- a/src/main/java/gtexpert/integration/chisel/metatileentities/MetaTileEntityAutoChisel.java +++ b/src/main/java/com/github/gtexpert/core/integration/chisel/metatileentities/MetaTileEntityAutoChisel.java @@ -1,18 +1,22 @@ -package gtexpert.integration.chisel.metatileentities; +package com.github.gtexpert.core.integration.chisel.metatileentities; import java.util.function.Function; import net.minecraft.util.ResourceLocation; +import org.jetbrains.annotations.NotNull; + +import gregtech.api.gui.resources.TextureArea; import gregtech.api.metatileentity.MetaTileEntity; +import gregtech.api.metatileentity.SimpleMachineMetaTileEntity; import gregtech.api.metatileentity.interfaces.IGregTechTileEntity; import gregtech.api.recipes.RecipeMap; import gregtech.client.renderer.ICubeRenderer; -import gtexpert.api.capability.SingleblockRecipeLogicNoCache; -import gtexpert.common.metatileentities.GTESimpleMachineMetaTileEntity; +import com.github.gtexpert.core.api.capability.SingleblockRecipeLogicNoCache; +import com.github.gtexpert.core.api.gui.GTEGuiTextures; -public class MetaTileEntityAutoChisel extends GTESimpleMachineMetaTileEntity { +public class MetaTileEntityAutoChisel extends SimpleMachineMetaTileEntity { public MetaTileEntityAutoChisel(ResourceLocation metaTileEntityId, RecipeMap recipeMap, ICubeRenderer renderer, int tier, boolean hasFrontFacing, Function tankScalingFunction) { @@ -25,4 +29,12 @@ public MetaTileEntity createMetaTileEntity(IGregTechTileEntity tileEntity) { return new MetaTileEntityAutoChisel(metaTileEntityId, workable.getRecipeMap(), renderer, getTier(), hasFrontFacing(), getTankScalingFunction()); } + + protected @NotNull TextureArea getLogo() { + return GTEGuiTextures.GTE_LOGO; + } + + protected @NotNull TextureArea getXmasLogo() { + return GTEGuiTextures.GTE_LOGO_XMAS; + } } diff --git a/src/main/java/gtexpert/integration/chisel/recipes/ChiselBlocksRecipe.java b/src/main/java/com/github/gtexpert/core/integration/chisel/recipes/ChiselBlocksRecipe.java similarity index 98% rename from src/main/java/gtexpert/integration/chisel/recipes/ChiselBlocksRecipe.java rename to src/main/java/com/github/gtexpert/core/integration/chisel/recipes/ChiselBlocksRecipe.java index fa88a59e..d1b8e63a 100644 --- a/src/main/java/gtexpert/integration/chisel/recipes/ChiselBlocksRecipe.java +++ b/src/main/java/com/github/gtexpert/core/integration/chisel/recipes/ChiselBlocksRecipe.java @@ -1,9 +1,9 @@ -package gtexpert.integration.chisel.recipes; +package com.github.gtexpert.core.integration.chisel.recipes; +import static com.github.gtexpert.core.integration.chisel.metatileentities.ChiselMetaTileEntities.AUTO_CHISEL; import static gregtech.api.GTValues.*; import static gregtech.api.unification.ore.OrePrefix.*; import static gregtech.loaders.recipe.CraftingComponent.*; -import static gtexpert.integration.chisel.metatileentities.ChiselMetaTileEntities.AUTO_CHISEL; import java.util.Arrays; import java.util.List; @@ -26,11 +26,11 @@ import gregtech.common.blocks.*; import gregtech.loaders.recipe.MetaTileEntityLoader; -import gtexpert.api.util.GTEUtility; -import gtexpert.api.util.Mods; -import gtexpert.integration.chisel.ChiselConfigHolder; -import gtexpert.integration.chisel.ChiselRecipeMaps; -import gtexpert.integration.chisel.ChiselUtil; +import com.github.gtexpert.core.api.util.GTEUtility; +import com.github.gtexpert.core.api.util.Mods; +import com.github.gtexpert.core.integration.chisel.ChiselConfigHolder; +import com.github.gtexpert.core.integration.chisel.ChiselRecipeMaps; +import com.github.gtexpert.core.integration.chisel.ChiselUtil; public class ChiselBlocksRecipe { diff --git a/src/main/java/gtexpert/integration/chisel/recipes/ChiselToolsRecipe.java b/src/main/java/com/github/gtexpert/core/integration/chisel/recipes/ChiselToolsRecipe.java similarity index 89% rename from src/main/java/gtexpert/integration/chisel/recipes/ChiselToolsRecipe.java rename to src/main/java/com/github/gtexpert/core/integration/chisel/recipes/ChiselToolsRecipe.java index 4a2b59b3..fb968370 100644 --- a/src/main/java/gtexpert/integration/chisel/recipes/ChiselToolsRecipe.java +++ b/src/main/java/com/github/gtexpert/core/integration/chisel/recipes/ChiselToolsRecipe.java @@ -1,4 +1,4 @@ -package gtexpert.integration.chisel.recipes; +package com.github.gtexpert.core.integration.chisel.recipes; import static gregtech.api.unification.ore.OrePrefix.*; @@ -7,9 +7,9 @@ import gregtech.api.unification.stack.UnificationEntry; import gregtech.common.ConfigHolder; -import gtexpert.api.util.GTEUtility; -import gtexpert.api.util.Mods; -import gtexpert.integration.chisel.ChiselConfigHolder; +import com.github.gtexpert.core.api.util.GTEUtility; +import com.github.gtexpert.core.api.util.Mods; +import com.github.gtexpert.core.integration.chisel.ChiselConfigHolder; public class ChiselToolsRecipe { diff --git a/src/main/java/gtexpert/integration/crafttweaker/CraftTweakerModule.java b/src/main/java/com/github/gtexpert/core/integration/crafttweaker/CraftTweakerModule.java similarity index 50% rename from src/main/java/gtexpert/integration/crafttweaker/CraftTweakerModule.java rename to src/main/java/com/github/gtexpert/core/integration/crafttweaker/CraftTweakerModule.java index 9ed245ef..edc32015 100644 --- a/src/main/java/gtexpert/integration/crafttweaker/CraftTweakerModule.java +++ b/src/main/java/com/github/gtexpert/core/integration/crafttweaker/CraftTweakerModule.java @@ -1,10 +1,10 @@ -package gtexpert.integration.crafttweaker; +package com.github.gtexpert.core.integration.crafttweaker; -import gtexpert.api.GTEValues; -import gtexpert.api.modules.GTEModule; -import gtexpert.api.util.Mods; -import gtexpert.integration.GTEIntegrationSubmodule; -import gtexpert.modules.GTEModules; +import com.github.gtexpert.core.api.GTEValues; +import com.github.gtexpert.core.api.modules.GTEModule; +import com.github.gtexpert.core.api.util.Mods; +import com.github.gtexpert.core.integration.GTEIntegrationSubmodule; +import com.github.gtexpert.core.modules.GTEModules; @GTEModule( moduleID = GTEModules.MODULE_CT, diff --git a/src/main/java/gtexpert/integration/crafttweaker/provider/CrTI18nProvider.java b/src/main/java/com/github/gtexpert/core/integration/crafttweaker/provider/CrTI18nProvider.java similarity index 90% rename from src/main/java/gtexpert/integration/crafttweaker/provider/CrTI18nProvider.java rename to src/main/java/com/github/gtexpert/core/integration/crafttweaker/provider/CrTI18nProvider.java index 3f46b006..abfd7fe5 100644 --- a/src/main/java/gtexpert/integration/crafttweaker/provider/CrTI18nProvider.java +++ b/src/main/java/com/github/gtexpert/core/integration/crafttweaker/provider/CrTI18nProvider.java @@ -1,4 +1,4 @@ -package gtexpert.integration.crafttweaker.provider; +package com.github.gtexpert.core.integration.crafttweaker.provider; import net.minecraft.util.text.translation.I18n; diff --git a/src/main/java/gtexpert/integration/ctm/IFacadeWrapper.java b/src/main/java/com/github/gtexpert/core/integration/ctm/IFacadeWrapper.java similarity index 93% rename from src/main/java/gtexpert/integration/ctm/IFacadeWrapper.java rename to src/main/java/com/github/gtexpert/core/integration/ctm/IFacadeWrapper.java index 2397ba73..ed7f5b41 100644 --- a/src/main/java/gtexpert/integration/ctm/IFacadeWrapper.java +++ b/src/main/java/com/github/gtexpert/core/integration/ctm/IFacadeWrapper.java @@ -1,4 +1,4 @@ -package gtexpert.integration.ctm; +package com.github.gtexpert.core.integration.ctm; import javax.annotation.Nonnull; diff --git a/src/main/java/gtexpert/integration/deda/DEDAConfigHolder.java b/src/main/java/com/github/gtexpert/core/integration/deda/DEDAConfigHolder.java similarity index 78% rename from src/main/java/gtexpert/integration/deda/DEDAConfigHolder.java rename to src/main/java/com/github/gtexpert/core/integration/deda/DEDAConfigHolder.java index 44218ddd..d056415a 100644 --- a/src/main/java/gtexpert/integration/deda/DEDAConfigHolder.java +++ b/src/main/java/com/github/gtexpert/core/integration/deda/DEDAConfigHolder.java @@ -1,9 +1,9 @@ -package gtexpert.integration.deda; +package com.github.gtexpert.core.integration.deda; import net.minecraftforge.common.config.Config; -import gtexpert.api.GTEValues; -import gtexpert.modules.GTEModules; +import com.github.gtexpert.core.api.GTEValues; +import com.github.gtexpert.core.modules.GTEModules; @Config.LangKey(GTEValues.MODID + ".config.integration.deda") @Config(modid = GTEValues.MODID, diff --git a/src/main/java/gtexpert/integration/deda/DEDAModule.java b/src/main/java/com/github/gtexpert/core/integration/deda/DEDAModule.java similarity index 66% rename from src/main/java/gtexpert/integration/deda/DEDAModule.java rename to src/main/java/com/github/gtexpert/core/integration/deda/DEDAModule.java index c7afc3e8..9fee098c 100644 --- a/src/main/java/gtexpert/integration/deda/DEDAModule.java +++ b/src/main/java/com/github/gtexpert/core/integration/deda/DEDAModule.java @@ -1,19 +1,19 @@ -package gtexpert.integration.deda; +package com.github.gtexpert.core.integration.deda; import net.minecraft.block.Block; import net.minecraft.item.crafting.IRecipe; import net.minecraftforge.event.RegistryEvent; import net.minecraftforge.fml.common.event.FMLPostInitializationEvent; -import gtexpert.api.GTEValues; -import gtexpert.api.modules.GTEModule; -import gtexpert.api.util.Mods; -import gtexpert.integration.GTEIntegrationSubmodule; -import gtexpert.integration.deda.loaders.DEDAMaterialInfoLoader; -import gtexpert.integration.deda.loaders.DEDAOreDictionaryLoader; -import gtexpert.integration.deda.metatileentities.DEDAMetaTileEntities; -import gtexpert.integration.deda.recipes.*; -import gtexpert.modules.GTEModules; +import com.github.gtexpert.core.api.GTEValues; +import com.github.gtexpert.core.api.modules.GTEModule; +import com.github.gtexpert.core.api.util.Mods; +import com.github.gtexpert.core.integration.GTEIntegrationSubmodule; +import com.github.gtexpert.core.integration.deda.loaders.DEDAMaterialInfoLoader; +import com.github.gtexpert.core.integration.deda.loaders.DEDAOreDictionaryLoader; +import com.github.gtexpert.core.integration.deda.metatileentities.DEDAMetaTileEntities; +import com.github.gtexpert.core.integration.deda.recipes.*; +import com.github.gtexpert.core.modules.GTEModules; @GTEModule( moduleID = GTEModules.MODULE_DEDA, @@ -51,5 +51,8 @@ public void registerRecipesLowest(RegistryEvent.Register event) { // Draconic upgrade recipes DraconicTierupRecipe.init(); DraconicUpgradeRecipe.init(); + + if (!Mods.ImplosionNoBomb.isModLoaded()) return; + DraconicImplosionMaterialsRecipe.init(); } } diff --git a/src/main/java/gtexpert/integration/deda/loaders/DEDAMaterialInfoLoader.java b/src/main/java/com/github/gtexpert/core/integration/deda/loaders/DEDAMaterialInfoLoader.java similarity index 81% rename from src/main/java/gtexpert/integration/deda/loaders/DEDAMaterialInfoLoader.java rename to src/main/java/com/github/gtexpert/core/integration/deda/loaders/DEDAMaterialInfoLoader.java index a51b987e..737df53c 100644 --- a/src/main/java/gtexpert/integration/deda/loaders/DEDAMaterialInfoLoader.java +++ b/src/main/java/com/github/gtexpert/core/integration/deda/loaders/DEDAMaterialInfoLoader.java @@ -1,4 +1,4 @@ -package gtexpert.integration.deda.loaders; +package com.github.gtexpert.core.integration.deda.loaders; import net.minecraft.init.Blocks; import net.minecraft.item.ItemStack; @@ -9,11 +9,11 @@ import gregtech.api.unification.stack.MaterialStack; import gregtech.common.ConfigHolder; -import gtexpert.api.unification.material.GTEMaterials; -import gtexpert.api.util.GTEUtility; -import gtexpert.api.util.Mods; -import gtexpert.common.blocks.GTEBlockMetalCasing; -import gtexpert.common.blocks.GTEMetaBlocks; +import com.github.gtexpert.core.api.unification.material.GTEMaterials; +import com.github.gtexpert.core.api.util.GTEUtility; +import com.github.gtexpert.core.api.util.Mods; +import com.github.gtexpert.core.common.blocks.GTEBlockMetalCasing; +import com.github.gtexpert.core.common.blocks.GTEMetaBlocks; public class DEDAMaterialInfoLoader { diff --git a/src/main/java/gtexpert/integration/deda/loaders/DEDAOreDictionaryLoader.java b/src/main/java/com/github/gtexpert/core/integration/deda/loaders/DEDAOreDictionaryLoader.java similarity index 87% rename from src/main/java/gtexpert/integration/deda/loaders/DEDAOreDictionaryLoader.java rename to src/main/java/com/github/gtexpert/core/integration/deda/loaders/DEDAOreDictionaryLoader.java index d63701a0..f0af4d9d 100644 --- a/src/main/java/gtexpert/integration/deda/loaders/DEDAOreDictionaryLoader.java +++ b/src/main/java/com/github/gtexpert/core/integration/deda/loaders/DEDAOreDictionaryLoader.java @@ -1,8 +1,8 @@ -package gtexpert.integration.deda.loaders; +package com.github.gtexpert.core.integration.deda.loaders; import net.minecraftforge.oredict.OreDictionary; -import gtexpert.api.util.Mods; +import com.github.gtexpert.core.api.util.Mods; public class DEDAOreDictionaryLoader { diff --git a/src/main/java/gtexpert/integration/deda/metatileentities/DEDAMetaTileEntities.java b/src/main/java/com/github/gtexpert/core/integration/deda/metatileentities/DEDAMetaTileEntities.java similarity index 82% rename from src/main/java/gtexpert/integration/deda/metatileentities/DEDAMetaTileEntities.java rename to src/main/java/com/github/gtexpert/core/integration/deda/metatileentities/DEDAMetaTileEntities.java index 399f1a7a..b9f74a13 100644 --- a/src/main/java/gtexpert/integration/deda/metatileentities/DEDAMetaTileEntities.java +++ b/src/main/java/com/github/gtexpert/core/integration/deda/metatileentities/DEDAMetaTileEntities.java @@ -1,7 +1,7 @@ -package gtexpert.integration.deda.metatileentities; +package com.github.gtexpert.core.integration.deda.metatileentities; +import static com.github.gtexpert.core.api.util.GTEUtility.gteId; import static gregtech.common.metatileentities.MetaTileEntities.registerMetaTileEntity; -import static gtexpert.api.util.GTEUtility.gteId; public class DEDAMetaTileEntities { diff --git a/src/main/java/gtexpert/integration/deda/metatileentities/MetaTileEntityDraconiumFusion.java b/src/main/java/com/github/gtexpert/core/integration/deda/metatileentities/MetaTileEntityDraconiumFusion.java similarity index 86% rename from src/main/java/gtexpert/integration/deda/metatileentities/MetaTileEntityDraconiumFusion.java rename to src/main/java/com/github/gtexpert/core/integration/deda/metatileentities/MetaTileEntityDraconiumFusion.java index 8a65149e..522c8a91 100644 --- a/src/main/java/gtexpert/integration/deda/metatileentities/MetaTileEntityDraconiumFusion.java +++ b/src/main/java/com/github/gtexpert/core/integration/deda/metatileentities/MetaTileEntityDraconiumFusion.java @@ -1,4 +1,4 @@ -package gtexpert.integration.deda.metatileentities; +package com.github.gtexpert.core.integration.deda.metatileentities; import java.util.List; @@ -14,6 +14,10 @@ import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; +import com.cleanroommc.modularui.factory.PosGuiData; +import com.cleanroommc.modularui.screen.ModularPanel; +import com.cleanroommc.modularui.value.sync.PanelSyncManager; + import gregtech.api.gui.resources.TextureArea; import gregtech.api.metatileentity.MetaTileEntity; import gregtech.api.metatileentity.interfaces.IGregTechTileEntity; @@ -26,12 +30,12 @@ import gregtech.client.renderer.ICubeRenderer; import gregtech.core.sound.GTSoundEvents; -import gtexpert.api.capability.MultiblockRecipeLogicNoCache; -import gtexpert.api.gui.GTEGuiTextures; -import gtexpert.client.GTETextures; -import gtexpert.common.blocks.GTEBlockMetalCasing; -import gtexpert.common.blocks.GTEMetaBlocks; -import gtexpert.integration.deda.recipemaps.GTEDraconicRecipeMaps; +import com.github.gtexpert.core.api.capability.MultiblockRecipeLogicNoCache; +import com.github.gtexpert.core.api.gui.GTEGuiTextures; +import com.github.gtexpert.core.client.GTETextures; +import com.github.gtexpert.core.common.blocks.GTEBlockMetalCasing; +import com.github.gtexpert.core.common.blocks.GTEMetaBlocks; +import com.github.gtexpert.core.integration.deda.recipemaps.GTEDraconicRecipeMaps; public abstract class MetaTileEntityDraconiumFusion extends RecipeMapMultiblockController { @@ -54,6 +58,11 @@ public MetaTileEntityDraconiumFusion(ResourceLocation metaTileEntityId, RecipeMa .build(); } + @Override + public ModularPanel buildUI(PosGuiData data, PanelSyncManager syncManager) { + return null; + } + protected abstract GTEBlockMetalCasing.MetalCasingType getCasingType(); @Override diff --git a/src/main/java/gtexpert/integration/deda/provider/DEDAJEIProvider.java b/src/main/java/com/github/gtexpert/core/integration/deda/provider/DEDAJEIProvider.java similarity index 82% rename from src/main/java/gtexpert/integration/deda/provider/DEDAJEIProvider.java rename to src/main/java/com/github/gtexpert/core/integration/deda/provider/DEDAJEIProvider.java index 8c3cdfa8..81735de4 100644 --- a/src/main/java/gtexpert/integration/deda/provider/DEDAJEIProvider.java +++ b/src/main/java/com/github/gtexpert/core/integration/deda/provider/DEDAJEIProvider.java @@ -1,12 +1,12 @@ -package gtexpert.integration.deda.provider; +package com.github.gtexpert.core.integration.deda.provider; import org.jetbrains.annotations.NotNull; import gregtech.api.GTValues; -import gtexpert.api.GTEValues; -import gtexpert.integration.deda.metatileentities.DEDAMetaTileEntities; -import gtexpert.integration.deda.recipemaps.GTEDraconicRecipeMaps; +import com.github.gtexpert.core.api.GTEValues; +import com.github.gtexpert.core.integration.deda.metatileentities.DEDAMetaTileEntities; +import com.github.gtexpert.core.integration.deda.recipemaps.GTEDraconicRecipeMaps; import mezz.jei.api.IModPlugin; import mezz.jei.api.IModRegistry; diff --git a/src/main/java/gtexpert/integration/deda/recipemaps/GTEDraconicRecipeMaps.java b/src/main/java/com/github/gtexpert/core/integration/deda/recipemaps/GTEDraconicRecipeMaps.java similarity index 54% rename from src/main/java/gtexpert/integration/deda/recipemaps/GTEDraconicRecipeMaps.java rename to src/main/java/com/github/gtexpert/core/integration/deda/recipemaps/GTEDraconicRecipeMaps.java index 25edb4dd..207f01bd 100644 --- a/src/main/java/gtexpert/integration/deda/recipemaps/GTEDraconicRecipeMaps.java +++ b/src/main/java/com/github/gtexpert/core/integration/deda/recipemaps/GTEDraconicRecipeMaps.java @@ -1,14 +1,17 @@ -package gtexpert.integration.deda.recipemaps; +package com.github.gtexpert.core.integration.deda.recipemaps; + +import static com.github.gtexpert.core.api.util.GTEUtility.gteId; import gregtech.api.gui.GuiTextures; import gregtech.api.gui.widgets.ProgressWidget; import gregtech.api.recipes.RecipeMap; +import gregtech.api.recipes.RecipeMapBuilder; import gregtech.api.recipes.builders.SimpleRecipeBuilder; import gregtech.api.recipes.ingredients.GTRecipeInput; import gregtech.core.sound.GTSoundEvents; -import gtexpert.integration.deda.recipemaps.tierup.TierUpRecipeBuilder; -import gtexpert.integration.deda.recipemaps.upgrade.UpgradeRecipeBuilder; +import com.github.gtexpert.core.integration.deda.recipemaps.tierup.TierUpRecipeBuilder; +import com.github.gtexpert.core.integration.deda.recipemaps.upgrade.UpgradeRecipeBuilder; import crafttweaker.annotations.ZenRegister; import stanhebben.zenscript.annotations.ZenExpansion; @@ -22,10 +25,14 @@ public class GTEDraconicRecipeMaps { * Fake recipe map to show tier-up recipes for draconic fusion on JEI. * In order to preserve upgrade info NBT, actual recipe is handled by {@link RecipeMapDraconicFusion}. */ - public static final RecipeMap DRACONIC_FUSION_TIER_UP_FAKE_RECIPES = new RecipeMapDraconicUpgrade<>( - "draconic_fusion_tier_up", 6, 3, 3, 1, new TierUpRecipeBuilder(), false) - .setProgressBar(GuiTextures.PROGRESS_BAR_FUSION, ProgressWidget.MoveType.HORIZONTAL) - .onRecipeBuild( + public static final RecipeMap DRACONIC_FUSION_TIER_UP_FAKE_RECIPES = new RecipeMapBuilder<>( + "draconic_fusion_tier_up", new TierUpRecipeBuilder()) + .itemInputs(6) + .itemOutputs(3) + .fluidInputs(3) + .fluidOutputs(1) + .progressBar(GuiTextures.PROGRESS_BAR_FUSION, ProgressWidget.MoveType.HORIZONTAL) + .onBuild(gteId("draconic_fusion_tier_up_1"), recipeBuilder -> GTEDraconicRecipeMaps.AWAKENED_DRACONIC_FUSION_TIER_UP_FAKE_RECIPES .recipeBuilder() .inputs(recipeBuilder.getInputs().toArray(new GTRecipeInput[0])) @@ -36,25 +43,34 @@ public class GTEDraconicRecipeMaps { .EUt(recipeBuilder.getEUt()) .catalyst(recipeBuilder.getCatalyst()) .result(recipeBuilder.getResult()) - .buildAndRegister()); + .buildAndRegister()) + .build(); /** * Fake recipe map to show tier-up recipes for draconic fusion on JEI. * In order to preserve upgrade info NBT, actual recipe is handled by {@link RecipeMapDraconicFusion}. */ - public static final RecipeMap AWAKENED_DRACONIC_FUSION_TIER_UP_FAKE_RECIPES = new RecipeMapDraconicUpgrade<>( - "awakened_draconic_fusion_tier_up", 6, 3, 3, 1, new TierUpRecipeBuilder(), false) - .setProgressBar(GuiTextures.PROGRESS_BAR_FUSION, ProgressWidget.MoveType.HORIZONTAL) - .setSmallRecipeMap(DRACONIC_FUSION_TIER_UP_FAKE_RECIPES); + public static final RecipeMap AWAKENED_DRACONIC_FUSION_TIER_UP_FAKE_RECIPES = new RecipeMapBuilder<>( + "awakened_draconic_fusion_tier_up", new TierUpRecipeBuilder()) + .itemInputs(6) + .itemOutputs(3) + .fluidInputs(3) + .fluidOutputs(1) + .progressBar(GuiTextures.PROGRESS_BAR_FUSION, ProgressWidget.MoveType.HORIZONTAL) + .build().setSmallRecipeMap(DRACONIC_FUSION_TIER_UP_FAKE_RECIPES); /** * Fake recipe map to show upgrade recipes for draconic fusion on JEI. * In order to preserve upgrade info NBT, actual recipe is handled by {@link RecipeMapDraconicFusion}. */ - public static final RecipeMap DRACONIC_FUSION_UPGRADE_FAKE_RECIPES = new RecipeMapDraconicUpgrade<>( - "draconic_fusion_upgrade", 6, 3, 3, 1, new UpgradeRecipeBuilder(), false) - .setProgressBar(GuiTextures.PROGRESS_BAR_FUSION, ProgressWidget.MoveType.HORIZONTAL) - .onRecipeBuild( + public static final RecipeMap DRACONIC_FUSION_UPGRADE_FAKE_RECIPES = new RecipeMapBuilder<>( + "draconic_fusion_upgrade", new UpgradeRecipeBuilder()) + .itemInputs(6) + .itemOutputs(3) + .fluidInputs(3) + .fluidOutputs(1) + .progressBar(GuiTextures.PROGRESS_BAR_FUSION, ProgressWidget.MoveType.HORIZONTAL) + .onBuild(gteId("draconic_fusion_upgrade_1"), recipeBuilder -> GTEDraconicRecipeMaps.AWAKENED_DRACONIC_FUSION_UPGRADE_FAKE_RECIPES .recipeBuilder() .inputs(recipeBuilder.getInputs().toArray(new GTRecipeInput[0])) @@ -66,24 +82,32 @@ public class GTEDraconicRecipeMaps { .catalyst(recipeBuilder.getCatalyst()) .upgradeName(recipeBuilder.getUpgradeName()) .level(recipeBuilder.getCurrentLevel()) - .buildAndRegister()); + .buildAndRegister()) + .build(); /** * Fake recipe map to show upgrade recipes for draconic fusion on JEI. * In order to preserve upgrade info NBT, actual recipe is handled by {@link RecipeMapDraconicFusion}. */ - public static final RecipeMap AWAKENED_DRACONIC_FUSION_UPGRADE_FAKE_RECIPES = new RecipeMapDraconicUpgrade<>( - "awakened_draconic_fusion_upgrade", 6, 3, 3, 1, new UpgradeRecipeBuilder(), false) - .setProgressBar(GuiTextures.PROGRESS_BAR_FUSION, ProgressWidget.MoveType.HORIZONTAL) - .setSmallRecipeMap(DRACONIC_FUSION_UPGRADE_FAKE_RECIPES); + public static final RecipeMap AWAKENED_DRACONIC_FUSION_UPGRADE_FAKE_RECIPES = new RecipeMapBuilder<>( + "awakened_draconic_fusion_upgrade", new UpgradeRecipeBuilder()) + .itemInputs(6) + .itemOutputs(3) + .fluidInputs(3) + .fluidOutputs(1) + .progressBar(GuiTextures.PROGRESS_BAR_FUSION, ProgressWidget.MoveType.HORIZONTAL) + .build().setSmallRecipeMap(DRACONIC_FUSION_UPGRADE_FAKE_RECIPES); @ZenProperty - public static final RecipeMap DRACONIUM_FUSION_RECIPES = new RecipeMapDraconicFusion( - "draconium_fusion", 6, 3, 3, 1, new SimpleRecipeBuilder(), false, DRACONIC_FUSION_TIER_UP_FAKE_RECIPES, - DRACONIC_FUSION_UPGRADE_FAKE_RECIPES) - .setProgressBar(GuiTextures.PROGRESS_BAR_FUSION, ProgressWidget.MoveType.HORIZONTAL) - .setSound(GTSoundEvents.ELECTROLYZER) - .onRecipeBuild( + public static final RecipeMap DRACONIUM_FUSION_RECIPES = new RecipeMapBuilder<>( + "draconium_fusion", new SimpleRecipeBuilder()) + .itemInputs(6) + .itemOutputs(3) + .fluidInputs(3) + .fluidOutputs(1) + .progressBar(GuiTextures.PROGRESS_BAR_FUSION, ProgressWidget.MoveType.HORIZONTAL) + .sound(GTSoundEvents.ELECTROLYZER) + .onBuild(gteId("draconic_fusion_1"), recipeBuilder -> GTEDraconicRecipeMaps.AWAKENED_DRACONIUM_FUSION_RECIPES .recipeBuilder() .inputs(recipeBuilder.getInputs().toArray(new GTRecipeInput[0])) @@ -92,13 +116,17 @@ public class GTEDraconicRecipeMaps { .fluidOutputs(recipeBuilder.getFluidOutputs()) .duration(recipeBuilder.getDuration()) .EUt(recipeBuilder.getEUt()) - .buildAndRegister()); + .buildAndRegister()) + .build(); @ZenProperty - public static final RecipeMap AWAKENED_DRACONIUM_FUSION_RECIPES = new RecipeMapDraconicFusion( - "awakened_draconium_fusion", 6, 3, 3, 1, new SimpleRecipeBuilder(), false, - AWAKENED_DRACONIC_FUSION_TIER_UP_FAKE_RECIPES, AWAKENED_DRACONIC_FUSION_UPGRADE_FAKE_RECIPES) - .setProgressBar(GuiTextures.PROGRESS_BAR_FUSION, ProgressWidget.MoveType.HORIZONTAL) - .setSound(GTSoundEvents.ELECTROLYZER) - .setSmallRecipeMap(DRACONIUM_FUSION_RECIPES); + public static final RecipeMap AWAKENED_DRACONIUM_FUSION_RECIPES = new RecipeMapBuilder<>( + "awakened_draconium_fusion", new SimpleRecipeBuilder()) + .itemInputs(6) + .itemOutputs(3) + .fluidInputs(3) + .fluidOutputs(1) + .progressBar(GuiTextures.PROGRESS_BAR_FUSION, ProgressWidget.MoveType.HORIZONTAL) + .sound(GTSoundEvents.ELECTROLYZER) + .build().setSmallRecipeMap(DRACONIUM_FUSION_RECIPES); } diff --git a/src/main/java/gtexpert/integration/deda/recipemaps/RecipeMapDraconicFusion.java b/src/main/java/com/github/gtexpert/core/integration/deda/recipemaps/RecipeMapDraconicFusion.java similarity index 94% rename from src/main/java/gtexpert/integration/deda/recipemaps/RecipeMapDraconicFusion.java rename to src/main/java/com/github/gtexpert/core/integration/deda/recipemaps/RecipeMapDraconicFusion.java index 439eb8bd..455f0075 100644 --- a/src/main/java/gtexpert/integration/deda/recipemaps/RecipeMapDraconicFusion.java +++ b/src/main/java/com/github/gtexpert/core/integration/deda/recipemaps/RecipeMapDraconicFusion.java @@ -1,4 +1,4 @@ -package gtexpert.integration.deda.recipemaps; +package com.github.gtexpert.core.integration.deda.recipemaps; import java.util.List; @@ -25,11 +25,11 @@ import gregtech.api.recipes.RecipeMap; import gregtech.api.recipes.builders.SimpleRecipeBuilder; -import gtexpert.api.util.GTELog; -import gtexpert.integration.deda.recipemaps.tierup.TierUpRecipeBuilder; -import gtexpert.integration.deda.recipemaps.tierup.TierUpRecipeProperty; -import gtexpert.integration.deda.recipemaps.upgrade.UpgradeRecipeBuilder; -import gtexpert.integration.deda.recipemaps.upgrade.UpgradeRecipeProperty; +import com.github.gtexpert.core.api.util.GTELog; +import com.github.gtexpert.core.integration.deda.recipemaps.tierup.TierUpRecipeBuilder; +import com.github.gtexpert.core.integration.deda.recipemaps.tierup.TierUpRecipeProperty; +import com.github.gtexpert.core.integration.deda.recipemaps.upgrade.UpgradeRecipeBuilder; +import com.github.gtexpert.core.integration.deda.recipemaps.upgrade.UpgradeRecipeProperty; import cofh.redstoneflux.api.IEnergyContainerItem; diff --git a/src/main/java/gtexpert/integration/deda/recipemaps/RecipeMapDraconicUpgrade.java b/src/main/java/com/github/gtexpert/core/integration/deda/recipemaps/RecipeMapDraconicUpgrade.java similarity index 93% rename from src/main/java/gtexpert/integration/deda/recipemaps/RecipeMapDraconicUpgrade.java rename to src/main/java/com/github/gtexpert/core/integration/deda/recipemaps/RecipeMapDraconicUpgrade.java index c4b3eb96..f437f39a 100644 --- a/src/main/java/gtexpert/integration/deda/recipemaps/RecipeMapDraconicUpgrade.java +++ b/src/main/java/com/github/gtexpert/core/integration/deda/recipemaps/RecipeMapDraconicUpgrade.java @@ -1,4 +1,4 @@ -package gtexpert.integration.deda.recipemaps; +package com.github.gtexpert.core.integration.deda.recipemaps; import org.jetbrains.annotations.NotNull; diff --git a/src/main/java/gtexpert/integration/deda/recipemaps/tierup/TierUpRecipeBuilder.java b/src/main/java/com/github/gtexpert/core/integration/deda/recipemaps/tierup/TierUpRecipeBuilder.java similarity index 90% rename from src/main/java/gtexpert/integration/deda/recipemaps/tierup/TierUpRecipeBuilder.java rename to src/main/java/com/github/gtexpert/core/integration/deda/recipemaps/tierup/TierUpRecipeBuilder.java index a47a7dd3..5f3970aa 100644 --- a/src/main/java/gtexpert/integration/deda/recipemaps/tierup/TierUpRecipeBuilder.java +++ b/src/main/java/com/github/gtexpert/core/integration/deda/recipemaps/tierup/TierUpRecipeBuilder.java @@ -1,4 +1,4 @@ -package gtexpert.integration.deda.recipemaps.tierup; +package com.github.gtexpert.core.integration.deda.recipemaps.tierup; import net.minecraft.init.Blocks; import net.minecraft.item.ItemStack; @@ -19,7 +19,7 @@ import gregtech.api.util.EnumValidationResult; import gregtech.api.util.ValidationResult; -import gtexpert.api.util.GTELog; +import com.github.gtexpert.core.api.util.GTELog; public class TierUpRecipeBuilder extends RecipeBuilder { @@ -72,11 +72,8 @@ protected EnumValidationResult validate() { @Override public ValidationResult build() { - EnumValidationResult validationResult = finalizeAndValidate(); - if (validationResult != EnumValidationResult.INVALID) { - setFusionProperties(); - } - + EnumValidationResult validationResult = recipePropertyStorageErrored ? EnumValidationResult.INVALID : + validate(); return ValidationResult.newResult(validationResult, new Recipe(inputs, outputs, new ChancedOutputList<>(this.chancedOutputLogic, chancedOutputs), fluidInputs, fluidOutputs, @@ -127,8 +124,7 @@ public ItemStack getResult() { } public ToolUpgradeRecipe getFusionRecipe() { - return this.recipePropertyStorage == null ? null : - this.recipePropertyStorage.getRecipePropertyValue(TierUpRecipeProperty.getInstance(), null); + return this.recipePropertyStorage.get(TierUpRecipeProperty.getInstance(), null); } @Override diff --git a/src/main/java/gtexpert/integration/deda/recipemaps/tierup/TierUpRecipeProperty.java b/src/main/java/com/github/gtexpert/core/integration/deda/recipemaps/tierup/TierUpRecipeProperty.java similarity index 70% rename from src/main/java/gtexpert/integration/deda/recipemaps/tierup/TierUpRecipeProperty.java rename to src/main/java/com/github/gtexpert/core/integration/deda/recipemaps/tierup/TierUpRecipeProperty.java index c944db8d..b9bb31c5 100644 --- a/src/main/java/gtexpert/integration/deda/recipemaps/tierup/TierUpRecipeProperty.java +++ b/src/main/java/com/github/gtexpert/core/integration/deda/recipemaps/tierup/TierUpRecipeProperty.java @@ -1,11 +1,14 @@ -package gtexpert.integration.deda.recipemaps.tierup; +package com.github.gtexpert.core.integration.deda.recipemaps.tierup; import net.minecraft.client.Minecraft; import net.minecraft.client.resources.I18n; +import net.minecraft.nbt.NBTBase; + +import org.jetbrains.annotations.NotNull; import com.brandon3055.draconicevolution.lib.ToolUpgradeRecipe; -import gregtech.api.recipes.recipeproperties.RecipeProperty; +import gregtech.api.recipes.properties.RecipeProperty; public class TierUpRecipeProperty extends RecipeProperty { @@ -23,6 +26,16 @@ public static TierUpRecipeProperty getInstance() { return INSTANCE; } + @Override + public @NotNull NBTBase serialize(@NotNull Object value) { + return null; + } + + @Override + public @NotNull Object deserialize(@NotNull NBTBase nbt) { + return null; + } + @Override public void drawInfo(Minecraft minecraft, int x, int y, int color, Object value) { minecraft.fontRenderer.drawString(I18n.format("recipemap.draconic_fusion_tier_up.property.1"), x, y, color); diff --git a/src/main/java/gtexpert/integration/deda/recipemaps/upgrade/UpgradeRecipeBuilder.java b/src/main/java/com/github/gtexpert/core/integration/deda/recipemaps/upgrade/UpgradeRecipeBuilder.java similarity index 93% rename from src/main/java/gtexpert/integration/deda/recipemaps/upgrade/UpgradeRecipeBuilder.java rename to src/main/java/com/github/gtexpert/core/integration/deda/recipemaps/upgrade/UpgradeRecipeBuilder.java index 69870746..65441a2e 100644 --- a/src/main/java/gtexpert/integration/deda/recipemaps/upgrade/UpgradeRecipeBuilder.java +++ b/src/main/java/com/github/gtexpert/core/integration/deda/recipemaps/upgrade/UpgradeRecipeBuilder.java @@ -1,4 +1,4 @@ -package gtexpert.integration.deda.recipemaps.upgrade; +package com.github.gtexpert.core.integration.deda.recipemaps.upgrade; import net.minecraft.item.ItemStack; @@ -22,7 +22,7 @@ import gregtech.api.util.EnumValidationResult; import gregtech.api.util.ValidationResult; -import gtexpert.api.util.GTELog; +import com.github.gtexpert.core.api.util.GTELog; public class UpgradeRecipeBuilder extends RecipeBuilder { @@ -97,11 +97,8 @@ protected EnumValidationResult validate() { @Override public ValidationResult build() { - EnumValidationResult validationResult = finalizeAndValidate(); - if (validationResult != EnumValidationResult.INVALID) { - setFusionProperties(); - } - + EnumValidationResult validationResult = recipePropertyStorageErrored ? EnumValidationResult.INVALID : + validate(); return ValidationResult.newResult(validationResult, new Recipe(inputs, outputs, new ChancedOutputList<>(this.chancedOutputLogic, chancedOutputs), fluidInputs, fluidOutputs, @@ -165,8 +162,7 @@ public int getCurrentLevel() { } public FusionUpgradeRecipe getFusionRecipe() { - return this.recipePropertyStorage == null ? null : - this.recipePropertyStorage.getRecipePropertyValue(UpgradeRecipeProperty.getInstance(), null); + return this.recipePropertyStorage.get(UpgradeRecipeProperty.getInstance(), null); } @Override diff --git a/src/main/java/gtexpert/integration/deda/recipemaps/upgrade/UpgradeRecipeProperty.java b/src/main/java/com/github/gtexpert/core/integration/deda/recipemaps/upgrade/UpgradeRecipeProperty.java similarity index 68% rename from src/main/java/gtexpert/integration/deda/recipemaps/upgrade/UpgradeRecipeProperty.java rename to src/main/java/com/github/gtexpert/core/integration/deda/recipemaps/upgrade/UpgradeRecipeProperty.java index 701f2d14..bf874fc6 100644 --- a/src/main/java/gtexpert/integration/deda/recipemaps/upgrade/UpgradeRecipeProperty.java +++ b/src/main/java/com/github/gtexpert/core/integration/deda/recipemaps/upgrade/UpgradeRecipeProperty.java @@ -1,11 +1,14 @@ -package gtexpert.integration.deda.recipemaps.upgrade; +package com.github.gtexpert.core.integration.deda.recipemaps.upgrade; import net.minecraft.client.Minecraft; import net.minecraft.client.resources.I18n; +import net.minecraft.nbt.NBTBase; + +import org.jetbrains.annotations.NotNull; import com.brandon3055.draconicevolution.api.itemupgrade.FusionUpgradeRecipe; -import gregtech.api.recipes.recipeproperties.RecipeProperty; +import gregtech.api.recipes.properties.RecipeProperty; public class UpgradeRecipeProperty extends RecipeProperty { @@ -23,6 +26,18 @@ public static UpgradeRecipeProperty getInstance() { return INSTANCE; } + @Override + public @NotNull NBTBase serialize(@NotNull Object value) { + // TODO: FIX + return null; + } + + @Override + public @NotNull Object deserialize(@NotNull NBTBase nbt) { + // TODO: FIX + return null; + } + @Override public void drawInfo(Minecraft minecraft, int x, int y, int color, Object value) { minecraft.fontRenderer.drawString(I18n.format("recipemap.draconic_fusion_upgrade.property.1"), x, y, color); diff --git a/src/main/java/gtexpert/integration/deda/recipes/DraconicBlocksRecipe.java b/src/main/java/com/github/gtexpert/core/integration/deda/recipes/DraconicBlocksRecipe.java similarity index 95% rename from src/main/java/gtexpert/integration/deda/recipes/DraconicBlocksRecipe.java rename to src/main/java/com/github/gtexpert/core/integration/deda/recipes/DraconicBlocksRecipe.java index c4911fe3..3eebb4b6 100644 --- a/src/main/java/gtexpert/integration/deda/recipes/DraconicBlocksRecipe.java +++ b/src/main/java/com/github/gtexpert/core/integration/deda/recipes/DraconicBlocksRecipe.java @@ -1,4 +1,4 @@ -package gtexpert.integration.deda.recipes; +package com.github.gtexpert.core.integration.deda.recipes; import static gregtech.api.GTValues.*; import static gregtech.api.unification.ore.OrePrefix.*; @@ -24,15 +24,15 @@ import gregicality.multiblocks.api.fluids.GCYMFluidStorageKeys; -import gtexpert.api.GTEValues; -import gtexpert.api.unification.material.GTEMaterials; -import gtexpert.api.util.GTEUtility; -import gtexpert.api.util.Mods; -import gtexpert.common.blocks.GTEBlockMetalCasing; -import gtexpert.common.blocks.GTEBlockWireCoil; -import gtexpert.common.blocks.GTEMetaBlocks; -import gtexpert.integration.deda.metatileentities.DEDAMetaTileEntities; -import gtexpert.integration.deda.recipemaps.GTEDraconicRecipeMaps; +import com.github.gtexpert.core.api.GTEValues; +import com.github.gtexpert.core.api.unification.material.GTEMaterials; +import com.github.gtexpert.core.api.util.GTEUtility; +import com.github.gtexpert.core.api.util.Mods; +import com.github.gtexpert.core.common.blocks.GTEBlockMetalCasing; +import com.github.gtexpert.core.common.blocks.GTEBlockWireCoil; +import com.github.gtexpert.core.common.blocks.GTEMetaBlocks; +import com.github.gtexpert.core.integration.deda.metatileentities.DEDAMetaTileEntities; +import com.github.gtexpert.core.integration.deda.recipemaps.GTEDraconicRecipeMaps; public class DraconicBlocksRecipe { diff --git a/src/main/java/gtexpert/integration/deda/recipes/DraconicFluidRecipe.java b/src/main/java/com/github/gtexpert/core/integration/deda/recipes/DraconicFluidRecipe.java similarity index 92% rename from src/main/java/gtexpert/integration/deda/recipes/DraconicFluidRecipe.java rename to src/main/java/com/github/gtexpert/core/integration/deda/recipes/DraconicFluidRecipe.java index 41fbbdaf..08606459 100644 --- a/src/main/java/gtexpert/integration/deda/recipes/DraconicFluidRecipe.java +++ b/src/main/java/com/github/gtexpert/core/integration/deda/recipes/DraconicFluidRecipe.java @@ -1,4 +1,4 @@ -package gtexpert.integration.deda.recipes; +package com.github.gtexpert.core.integration.deda.recipes; import static gregtech.api.GTValues.VA; import static gregtech.api.unification.ore.OrePrefix.dust; @@ -9,8 +9,8 @@ import gregicality.multiblocks.api.fluids.GCYMFluidStorageKeys; import gregicality.multiblocks.api.recipes.GCYMRecipeMaps; -import gtexpert.api.GTEValues; -import gtexpert.api.unification.material.GTEMaterials; +import com.github.gtexpert.core.api.GTEValues; +import com.github.gtexpert.core.api.unification.material.GTEMaterials; public class DraconicFluidRecipe { diff --git a/src/main/java/com/github/gtexpert/core/integration/deda/recipes/DraconicImplosionMaterialsRecipe.java b/src/main/java/com/github/gtexpert/core/integration/deda/recipes/DraconicImplosionMaterialsRecipe.java new file mode 100644 index 00000000..4f1d0e1a --- /dev/null +++ b/src/main/java/com/github/gtexpert/core/integration/deda/recipes/DraconicImplosionMaterialsRecipe.java @@ -0,0 +1,19 @@ +package com.github.gtexpert.core.integration.deda.recipes; + +import static gregtech.api.unification.ore.OrePrefix.block; + +import com.brandon3055.draconicevolution.DEFeatures; + +import com.github.gtexpert.core.api.unification.material.GTEMaterials; +import com.github.gtexpert.inb.api.recipes.INBRecipeMaps; + +public class DraconicImplosionMaterialsRecipe { + + public static void init() { + INBRecipeMaps.ELECTRIC_IMPLOSION_COMPRESSOR_RECIPES.recipeBuilder() + .input(DEFeatures.dragonHeart, 1) + .input(block, GTEMaterials.Draconium, 4) + .output(block, GTEMaterials.AwakenedDraconium, 3) + .buildAndRegister(); + } +} diff --git a/src/main/java/gtexpert/integration/deda/recipes/DraconicItemsRecipe.java b/src/main/java/com/github/gtexpert/core/integration/deda/recipes/DraconicItemsRecipe.java similarity index 98% rename from src/main/java/gtexpert/integration/deda/recipes/DraconicItemsRecipe.java rename to src/main/java/com/github/gtexpert/core/integration/deda/recipes/DraconicItemsRecipe.java index a4828a29..69420d5a 100644 --- a/src/main/java/gtexpert/integration/deda/recipes/DraconicItemsRecipe.java +++ b/src/main/java/com/github/gtexpert/core/integration/deda/recipes/DraconicItemsRecipe.java @@ -1,4 +1,4 @@ -package gtexpert.integration.deda.recipes; +package com.github.gtexpert.core.integration.deda.recipes; import static gregtech.api.GTValues.*; import static gregtech.api.unification.ore.OrePrefix.*; @@ -22,11 +22,11 @@ import gregicality.multiblocks.api.fluids.GCYMFluidStorageKeys; -import gtexpert.api.GTEValues; -import gtexpert.api.unification.material.GTEMaterials; -import gtexpert.api.util.GTEUtility; -import gtexpert.api.util.Mods; -import gtexpert.integration.deda.recipemaps.GTEDraconicRecipeMaps; +import com.github.gtexpert.core.api.GTEValues; +import com.github.gtexpert.core.api.unification.material.GTEMaterials; +import com.github.gtexpert.core.api.util.GTEUtility; +import com.github.gtexpert.core.api.util.Mods; +import com.github.gtexpert.core.integration.deda.recipemaps.GTEDraconicRecipeMaps; public class DraconicItemsRecipe { diff --git a/src/main/java/gtexpert/integration/deda/recipes/DraconicMaterialsRecipe.java b/src/main/java/com/github/gtexpert/core/integration/deda/recipes/DraconicMaterialsRecipe.java similarity index 96% rename from src/main/java/gtexpert/integration/deda/recipes/DraconicMaterialsRecipe.java rename to src/main/java/com/github/gtexpert/core/integration/deda/recipes/DraconicMaterialsRecipe.java index e2cdd694..cb29919d 100644 --- a/src/main/java/gtexpert/integration/deda/recipes/DraconicMaterialsRecipe.java +++ b/src/main/java/com/github/gtexpert/core/integration/deda/recipes/DraconicMaterialsRecipe.java @@ -1,4 +1,4 @@ -package gtexpert.integration.deda.recipes; +package com.github.gtexpert.core.integration.deda.recipes; import static gregtech.api.GTValues.*; import static gregtech.api.unification.material.info.MaterialFlags.*; @@ -40,10 +40,9 @@ import gregicality.multiblocks.api.unification.GCYMMaterialFlags; import gregicality.multiblocks.api.unification.properties.GCYMPropertyKey; -import gtexpert.api.GTEValues; -import gtexpert.api.recipes.GTERecipeMaps; -import gtexpert.api.unification.material.GTEMaterials; -import gtexpert.api.util.Mods; +import com.github.gtexpert.core.api.GTEValues; +import com.github.gtexpert.core.api.unification.material.GTEMaterials; +import com.github.gtexpert.core.api.util.Mods; public class DraconicMaterialsRecipe { @@ -131,30 +130,25 @@ public static void init() { .input(DEFeatures.dragonHeart, 1) .input(block, GTEMaterials.Draconium, 4) .output(block, GTEMaterials.AwakenedDraconium, 3) - .explosivesType(new ItemStack(MetaBlocks.POWDERBARREL, 8)) + .explosives(new ItemStack(MetaBlocks.POWDERBARREL, 8)) .buildAndRegister(); RecipeMaps.IMPLOSION_RECIPES.recipeBuilder() .input(DEFeatures.dragonHeart, 1) .input(block, GTEMaterials.Draconium, 4) .output(block, GTEMaterials.AwakenedDraconium, 3) - .explosivesAmount(4) + .explosives(4) .buildAndRegister(); RecipeMaps.IMPLOSION_RECIPES.recipeBuilder() .input(DEFeatures.dragonHeart, 1) .input(block, GTEMaterials.Draconium, 4) .output(block, GTEMaterials.AwakenedDraconium, 3) - .explosivesType(MetaItems.DYNAMITE.getStackForm(2)) + .explosives(MetaItems.DYNAMITE.getStackForm(2)) .buildAndRegister(); RecipeMaps.IMPLOSION_RECIPES.recipeBuilder() .input(DEFeatures.dragonHeart, 1) .input(block, GTEMaterials.Draconium, 4) .output(block, GTEMaterials.AwakenedDraconium, 3) - .explosivesType(new ItemStack(MetaBlocks.ITNT)) - .buildAndRegister(); - GTERecipeMaps.ELECTRIC_IMPLOSION_COMPRESSOR_RECIPES.recipeBuilder() - .input(DEFeatures.dragonHeart, 1) - .input(block, GTEMaterials.Draconium, 4) - .output(block, GTEMaterials.AwakenedDraconium, 3) + .explosives(new ItemStack(MetaBlocks.ITNT)) .buildAndRegister(); // Extended recipes @@ -183,7 +177,7 @@ private static void vacuumFreezerExtended(@NotNull Material material) { (int) (material.getMass() * 0.5); // Check if the material has a blast temperature above 5000K - if (property.getBlastTemperature() > 5000) { + if (property.getBlastTemperature() >= 5000) { if (material.hasFlag(GENERATE_PLATE)) { RecipeMaps.VACUUM_RECIPES.recipeBuilder() .notConsumable(MetaItems.SHAPE_MOLD_PLATE) @@ -322,11 +316,14 @@ private static int addInputs(@NotNull Material material, @NotNull RecipeBuilder< // calculate the output amount and add inputs int outputAmount = 0; int fluidAmount = 0; + int dustAmount = 0; for (MaterialStack materialStack : material.getMaterialComponents()) { final Material msMat = materialStack.material; final int msAmount = (int) materialStack.amount; if (msMat.hasProperty(PropertyKey.DUST)) { + if (dustAmount >= 9) return -1; // more than 9 dusts won't fit in the machine + dustAmount++; builder.input(OrePrefix.dust, msMat, msAmount); } else if (msMat.hasProperty(PropertyKey.FLUID)) { if (fluidAmount >= 2) return -1; // more than 2 fluids won't fit in the machine diff --git a/src/main/java/gtexpert/integration/deda/recipes/DraconicTierupRecipe.java b/src/main/java/com/github/gtexpert/core/integration/deda/recipes/DraconicTierupRecipe.java similarity index 94% rename from src/main/java/gtexpert/integration/deda/recipes/DraconicTierupRecipe.java rename to src/main/java/com/github/gtexpert/core/integration/deda/recipes/DraconicTierupRecipe.java index 10d6b606..cc804f86 100644 --- a/src/main/java/gtexpert/integration/deda/recipes/DraconicTierupRecipe.java +++ b/src/main/java/com/github/gtexpert/core/integration/deda/recipes/DraconicTierupRecipe.java @@ -1,4 +1,4 @@ -package gtexpert.integration.deda.recipes; +package com.github.gtexpert.core.integration.deda.recipes; import static gregtech.api.GTValues.VA; import static gregtech.api.unification.ore.OrePrefix.plate; @@ -8,7 +8,6 @@ import com.brandon3055.draconicevolution.DEFeatures; -import gregtech.api.GTValues; import gregtech.api.items.toolitem.ToolHelper; import gregtech.api.recipes.ModHandler; import gregtech.api.recipes.RecipeMap; @@ -22,12 +21,12 @@ import gregicality.multiblocks.api.fluids.GCYMFluidStorageKeys; -import gtexpert.api.GTEValues; -import gtexpert.api.unification.material.GTEMaterials; -import gtexpert.api.util.GTEUtility; -import gtexpert.api.util.Mods; -import gtexpert.integration.deda.recipemaps.GTEDraconicRecipeMaps; -import gtexpert.integration.deda.recipemaps.tierup.TierUpRecipeBuilder; +import com.github.gtexpert.core.api.GTEValues; +import com.github.gtexpert.core.api.unification.material.GTEMaterials; +import com.github.gtexpert.core.api.util.GTEUtility; +import com.github.gtexpert.core.api.util.Mods; +import com.github.gtexpert.core.integration.deda.recipemaps.GTEDraconicRecipeMaps; +import com.github.gtexpert.core.integration.deda.recipemaps.tierup.TierUpRecipeBuilder; public class DraconicTierupRecipe { @@ -38,7 +37,7 @@ public static void init() { new GTRecipeItemInput(ToolItems.AXE.get(GTEMaterials.Draconium)).setNBTMatchingCondition( NBTMatcher.RECURSIVE_EQUAL_TO, NBTCondition.create( NBTTagType.COMPOUND, ToolHelper.TOOL_TAG_KEY, NBTCondition.create( - NBTTagType.STRING, "Material", GTValues.MODID + ":draconium"))), + NBTTagType.STRING, "Material", GTEValues.MODID + ":draconium"))), new ItemStack(DEFeatures.wyvernAxe), Tier.WYVERN, 2); @@ -48,7 +47,7 @@ public static void init() { new GTRecipeItemInput(ToolItems.PICKAXE.get(GTEMaterials.Draconium)).setNBTMatchingCondition( NBTMatcher.RECURSIVE_EQUAL_TO, NBTCondition.create( NBTTagType.COMPOUND, ToolHelper.TOOL_TAG_KEY, NBTCondition.create( - NBTTagType.STRING, "Material", GTValues.MODID + ":draconium"))), + NBTTagType.STRING, "Material", GTEValues.MODID + ":draconium"))), new ItemStack(DEFeatures.wyvernPick), Tier.WYVERN, 2); @@ -58,7 +57,7 @@ public static void init() { new GTRecipeItemInput(ToolItems.SHOVEL.get(GTEMaterials.Draconium)).setNBTMatchingCondition( NBTMatcher.RECURSIVE_EQUAL_TO, NBTCondition.create( NBTTagType.COMPOUND, ToolHelper.TOOL_TAG_KEY, NBTCondition.create( - NBTTagType.STRING, "Material", GTValues.MODID + ":draconium"))), + NBTTagType.STRING, "Material", GTEValues.MODID + ":draconium"))), new ItemStack(DEFeatures.wyvernShovel), Tier.WYVERN, 2); @@ -141,8 +140,7 @@ public static void init() { // Draconic Staff of Power GTEDraconicRecipeMaps.DRACONIC_FUSION_TIER_UP_FAKE_RECIPES.recipeBuilder() - .catalyst(new GTRecipeItemInput(new ItemStack(DEFeatures.draconicPick)) - .setNBTMatchingCondition(NBTMatcher.ANY, NBTCondition.ANY)) + .catalyst(new ItemStack(DEFeatures.draconicPick), NBTMatcher.ANY, NBTCondition.ANY) .result(new ItemStack(DEFeatures.draconicStaffOfPower)) .input(plate, GTEMaterials.Draconium, 6) .inputNBT(DEFeatures.draconicAxe, NBTMatcher.ANY, NBTCondition.ANY) diff --git a/src/main/java/gtexpert/integration/deda/recipes/DraconicToolsRecipe.java b/src/main/java/com/github/gtexpert/core/integration/deda/recipes/DraconicToolsRecipe.java similarity index 96% rename from src/main/java/gtexpert/integration/deda/recipes/DraconicToolsRecipe.java rename to src/main/java/com/github/gtexpert/core/integration/deda/recipes/DraconicToolsRecipe.java index a332bb95..668cdf12 100644 --- a/src/main/java/gtexpert/integration/deda/recipes/DraconicToolsRecipe.java +++ b/src/main/java/com/github/gtexpert/core/integration/deda/recipes/DraconicToolsRecipe.java @@ -1,4 +1,4 @@ -package gtexpert.integration.deda.recipes; +package com.github.gtexpert.core.integration.deda.recipes; import static gregtech.api.GTValues.*; import static gregtech.api.unification.ore.OrePrefix.*; @@ -18,10 +18,10 @@ import gregicality.multiblocks.api.fluids.GCYMFluidStorageKeys; -import gtexpert.api.GTEValues; -import gtexpert.api.unification.material.GTEMaterials; -import gtexpert.api.util.Mods; -import gtexpert.integration.deda.recipemaps.GTEDraconicRecipeMaps; +import com.github.gtexpert.core.api.GTEValues; +import com.github.gtexpert.core.api.unification.material.GTEMaterials; +import com.github.gtexpert.core.api.util.Mods; +import com.github.gtexpert.core.integration.deda.recipemaps.GTEDraconicRecipeMaps; public class DraconicToolsRecipe { diff --git a/src/main/java/gtexpert/integration/deda/recipes/DraconicUpgradeRecipe.java b/src/main/java/com/github/gtexpert/core/integration/deda/recipes/DraconicUpgradeRecipe.java similarity index 94% rename from src/main/java/gtexpert/integration/deda/recipes/DraconicUpgradeRecipe.java rename to src/main/java/com/github/gtexpert/core/integration/deda/recipes/DraconicUpgradeRecipe.java index d8839090..d2c0c9e2 100644 --- a/src/main/java/gtexpert/integration/deda/recipes/DraconicUpgradeRecipe.java +++ b/src/main/java/com/github/gtexpert/core/integration/deda/recipes/DraconicUpgradeRecipe.java @@ -1,4 +1,4 @@ -package gtexpert.integration.deda.recipes; +package com.github.gtexpert.core.integration.deda.recipes; import static gregtech.api.GTValues.VA; @@ -17,11 +17,11 @@ import gregicality.multiblocks.api.fluids.GCYMFluidStorageKeys; -import gtexpert.api.GTEValues; -import gtexpert.api.unification.material.GTEMaterials; -import gtexpert.api.util.GTELog; -import gtexpert.integration.deda.recipemaps.GTEDraconicRecipeMaps; -import gtexpert.integration.deda.recipemaps.upgrade.UpgradeRecipeBuilder; +import com.github.gtexpert.core.api.GTEValues; +import com.github.gtexpert.core.api.unification.material.GTEMaterials; +import com.github.gtexpert.core.api.util.GTELog; +import com.github.gtexpert.core.integration.deda.recipemaps.GTEDraconicRecipeMaps; +import com.github.gtexpert.core.integration.deda.recipemaps.upgrade.UpgradeRecipeBuilder; public class DraconicUpgradeRecipe { diff --git a/src/main/java/gtexpert/integration/eio/EnderIOConfigHolder.java b/src/main/java/com/github/gtexpert/core/integration/eio/EnderIOConfigHolder.java similarity index 87% rename from src/main/java/gtexpert/integration/eio/EnderIOConfigHolder.java rename to src/main/java/com/github/gtexpert/core/integration/eio/EnderIOConfigHolder.java index b60b9a09..c85fb05e 100644 --- a/src/main/java/gtexpert/integration/eio/EnderIOConfigHolder.java +++ b/src/main/java/com/github/gtexpert/core/integration/eio/EnderIOConfigHolder.java @@ -1,9 +1,9 @@ -package gtexpert.integration.eio; +package com.github.gtexpert.core.integration.eio; import net.minecraftforge.common.config.Config; -import gtexpert.api.GTEValues; -import gtexpert.modules.GTEModules; +import com.github.gtexpert.core.api.GTEValues; +import com.github.gtexpert.core.modules.GTEModules; @Config.LangKey(GTEValues.MODID + ".config.integration.eio") @Config(modid = GTEValues.MODID, diff --git a/src/main/java/gtexpert/integration/eio/EnderIOModule.java b/src/main/java/com/github/gtexpert/core/integration/eio/EnderIOModule.java similarity index 82% rename from src/main/java/gtexpert/integration/eio/EnderIOModule.java rename to src/main/java/com/github/gtexpert/core/integration/eio/EnderIOModule.java index ca2b8b54..211b30a8 100644 --- a/src/main/java/gtexpert/integration/eio/EnderIOModule.java +++ b/src/main/java/com/github/gtexpert/core/integration/eio/EnderIOModule.java @@ -1,4 +1,4 @@ -package gtexpert.integration.eio; +package com.github.gtexpert.core.integration.eio; import static gregtech.api.GTValues.*; @@ -17,21 +17,20 @@ import gregtech.api.recipes.RecipeBuilder; import gregtech.api.recipes.builders.SimpleRecipeBuilder; -import gregtech.api.recipes.ingredients.GTRecipeItemInput; import gregtech.api.recipes.ingredients.nbtmatch.NBTCondition; import gregtech.api.recipes.ingredients.nbtmatch.NBTMatcher; import gregtech.api.recipes.ingredients.nbtmatch.NBTTagType; -import gtexpert.api.GTEValues; -import gtexpert.api.modules.GTEModule; -import gtexpert.api.util.GTEUtility; -import gtexpert.api.util.Mods; -import gtexpert.integration.GTEIntegrationSubmodule; -import gtexpert.integration.eio.loaders.EIOMaterialInfoLoader; -import gtexpert.integration.eio.loaders.EIOOreDictionaryLoader; -import gtexpert.integration.eio.metatileentities.EIOMetaTileEntities; -import gtexpert.integration.eio.recipes.*; -import gtexpert.modules.GTEModules; +import com.github.gtexpert.core.api.GTEValues; +import com.github.gtexpert.core.api.modules.GTEModule; +import com.github.gtexpert.core.api.util.GTEUtility; +import com.github.gtexpert.core.api.util.Mods; +import com.github.gtexpert.core.integration.GTEIntegrationSubmodule; +import com.github.gtexpert.core.integration.eio.loaders.EIOMaterialInfoLoader; +import com.github.gtexpert.core.integration.eio.loaders.EIOOreDictionaryLoader; +import com.github.gtexpert.core.integration.eio.metatileentities.EIOMetaTileEntities; +import com.github.gtexpert.core.integration.eio.recipes.*; +import com.github.gtexpert.core.modules.GTEModules; import crazypants.enderio.base.init.ModObject; @@ -90,9 +89,8 @@ public static void registerVialExtractorRecipe(String entityName, int xpAmount, RecipeBuilder recipeBuilder = EnderIORecipeMaps.VIAL_EXTRACTOR_RECIPES.recipeBuilder(); - recipeBuilder - .input(new GTRecipeItemInput(stack).setNBTMatchingCondition(NBTMatcher.RECURSIVE_EQUAL_TO, - NBTCondition.create(NBTTagType.STRING, "entityId", entityName))) + recipeBuilder.inputNBT(new ItemStack(stack.getItem()), NBTMatcher.RECURSIVE_EQUAL_TO, + NBTCondition.create(NBTTagType.STRING, "entityId", entityName)) .output(ModObject.itemSoulVial.getItemNN()) .fluidOutputs(GTEUtility.getModFluid("xpjuice", xpAmount)); diff --git a/src/main/java/com/github/gtexpert/core/integration/eio/EnderIORecipeMaps.java b/src/main/java/com/github/gtexpert/core/integration/eio/EnderIORecipeMaps.java new file mode 100644 index 00000000..db1836cf --- /dev/null +++ b/src/main/java/com/github/gtexpert/core/integration/eio/EnderIORecipeMaps.java @@ -0,0 +1,58 @@ +package com.github.gtexpert.core.integration.eio; + +import net.minecraft.util.SoundEvent; + +import gregtech.api.gui.GuiTextures; +import gregtech.api.gui.widgets.ProgressWidget; +import gregtech.api.recipes.RecipeMap; +import gregtech.api.recipes.RecipeMapBuilder; +import gregtech.api.recipes.builders.SimpleRecipeBuilder; +import gregtech.core.sound.GTSoundEvents; + +import com.github.gtexpert.core.api.gui.GTEGuiTextures; +import com.github.gtexpert.core.api.util.Mods; + +import crafttweaker.annotations.ZenRegister; +import stanhebben.zenscript.annotations.ZenExpansion; +import stanhebben.zenscript.annotations.ZenProperty; + +@ZenExpansion("mods.gregtech.recipe.RecipeMaps") +@ZenRegister +public class EnderIORecipeMaps { + + @ZenProperty + public static final RecipeMap VIAL_EXTRACTOR_RECIPES = new RecipeMapBuilder<>( + "vial_extractor", new SimpleRecipeBuilder()) + .itemInputs(1) + .itemOutputs(4) + .fluidInputs(0) + .fluidOutputs(1) + .itemSlotOverlay(GTEGuiTextures.SOULVIAL_FULL_OVERLAY, false) + .progressBar(GuiTextures.PROGRESS_BAR_EXTRACT, ProgressWidget.MoveType.HORIZONTAL) + .sound(GTSoundEvents.COMPRESSOR) + .build(); + + @ZenProperty + public static final RecipeMap SLICE_N_SPLICE_RECIPES = new RecipeMapBuilder<>( + "slice_n_splice", new SimpleRecipeBuilder()) + .itemInputs(6) + .itemOutputs(1) + .fluidInputs(0) + .fluidOutputs(0) + .progressBar(GuiTextures.PROGRESS_BAR_SLICE, ProgressWidget.MoveType.HORIZONTAL) + .sound(new SoundEvent(Mods.EnderIO.getResource("machine.slicensplice"))) + .build(); + + @ZenProperty + public static final RecipeMap SOUL_BINDER_RECIPES = new RecipeMapBuilder<>( + "soul_binder", new SimpleRecipeBuilder()) + .itemInputs(2) + .itemOutputs(2) + .fluidInputs(1) + .fluidOutputs(0) + .itemSlotOverlay(GTEGuiTextures.SOULVIAL_FULL_OVERLAY, false) + .itemSlotOverlay(GTEGuiTextures.SOULVIAL_EMPTY_OVRELAY, true) + .progressBar(GuiTextures.PROGRESS_BAR_CANNER, ProgressWidget.MoveType.HORIZONTAL) + .sound(new SoundEvent(Mods.EnderIO.getResource("machine.soulbinder"))) + .build(); +} diff --git a/src/main/java/gtexpert/integration/eio/loaders/EIOMaterialInfoLoader.java b/src/main/java/com/github/gtexpert/core/integration/eio/loaders/EIOMaterialInfoLoader.java similarity index 93% rename from src/main/java/gtexpert/integration/eio/loaders/EIOMaterialInfoLoader.java rename to src/main/java/com/github/gtexpert/core/integration/eio/loaders/EIOMaterialInfoLoader.java index af60fcdb..edb009f9 100644 --- a/src/main/java/gtexpert/integration/eio/loaders/EIOMaterialInfoLoader.java +++ b/src/main/java/com/github/gtexpert/core/integration/eio/loaders/EIOMaterialInfoLoader.java @@ -1,4 +1,4 @@ -package gtexpert.integration.eio.loaders; +package com.github.gtexpert.core.integration.eio.loaders; import net.minecraft.init.Blocks; import net.minecraft.item.ItemStack; @@ -10,9 +10,9 @@ import gregtech.api.unification.stack.MaterialStack; import gregtech.common.ConfigHolder; -import gtexpert.api.unification.material.GTEMaterials; -import gtexpert.api.util.GTEUtility; -import gtexpert.api.util.Mods; +import com.github.gtexpert.core.api.unification.material.GTEMaterials; +import com.github.gtexpert.core.api.util.GTEUtility; +import com.github.gtexpert.core.api.util.Mods; public class EIOMaterialInfoLoader { diff --git a/src/main/java/gtexpert/integration/eio/loaders/EIOOreDictionaryLoader.java b/src/main/java/com/github/gtexpert/core/integration/eio/loaders/EIOOreDictionaryLoader.java similarity index 93% rename from src/main/java/gtexpert/integration/eio/loaders/EIOOreDictionaryLoader.java rename to src/main/java/com/github/gtexpert/core/integration/eio/loaders/EIOOreDictionaryLoader.java index 32d16269..03e13811 100644 --- a/src/main/java/gtexpert/integration/eio/loaders/EIOOreDictionaryLoader.java +++ b/src/main/java/com/github/gtexpert/core/integration/eio/loaders/EIOOreDictionaryLoader.java @@ -1,10 +1,10 @@ -package gtexpert.integration.eio.loaders; +package com.github.gtexpert.core.integration.eio.loaders; import net.minecraft.init.Items; import net.minecraft.item.ItemStack; import net.minecraftforge.oredict.OreDictionary; -import gtexpert.api.util.GTEUtility; +import com.github.gtexpert.core.api.util.GTEUtility; import crazypants.enderio.base.init.ModObject; import crazypants.enderio.base.material.material.Material; diff --git a/src/main/java/com/github/gtexpert/core/integration/eio/metatileentities/EIOMetaTileEntities.java b/src/main/java/com/github/gtexpert/core/integration/eio/metatileentities/EIOMetaTileEntities.java new file mode 100644 index 00000000..76257fd8 --- /dev/null +++ b/src/main/java/com/github/gtexpert/core/integration/eio/metatileentities/EIOMetaTileEntities.java @@ -0,0 +1,48 @@ +package com.github.gtexpert.core.integration.eio.metatileentities; + +import static com.github.gtexpert.core.api.util.GTEUtility.gteId; +import static gregtech.api.GTValues.*; +import static gregtech.common.metatileentities.MetaTileEntities.registerMetaTileEntities; +import static gregtech.common.metatileentities.MetaTileEntities.registerSimpleMetaTileEntity; + +import gregtech.api.metatileentity.SimpleMachineMetaTileEntity; +import gregtech.api.util.GTUtility; + +import com.github.gtexpert.core.api.util.GTEUtility; +import com.github.gtexpert.core.client.GTETextures; +import com.github.gtexpert.core.integration.eio.EnderIORecipeMaps; + +public class EIOMetaTileEntities { + + public static SimpleMachineMetaTileEntity[] VIAL_EXTRACTOR = new SimpleMachineMetaTileEntity[V.length - 1]; + public static SimpleMachineMetaTileEntity[] SLICE_N_SPLICE = new SimpleMachineMetaTileEntity[V.length - 1]; + public static SimpleMachineMetaTileEntity[] SOUL_BINDER = new SimpleMachineMetaTileEntity[V.length - 1]; + public static MetaTileEntityElectricSpawner[] ELECTRIC_SPAWNER = new MetaTileEntityElectricSpawner[V.length - 1]; + + public static void init() { + // VIAL_EXTRACTOR 11010~11022 + registerSimpleMetaTileEntity(VIAL_EXTRACTOR, 11010, "vial_extractor", + EnderIORecipeMaps.VIAL_EXTRACTOR_RECIPES, + GTETextures.VIAL_EXTRACTOR_OVERLAY, + true, GTEUtility::gteId, GTUtility.defaultTankSizeFunction); + + // SLICE_N_SPLICE 11023~11035 + registerSimpleMetaTileEntity(SLICE_N_SPLICE, 11023, "slice_n_splice", + EnderIORecipeMaps.SLICE_N_SPLICE_RECIPES, + GTETextures.SLICE_N_SPLICE_OVERLAY, + true, GTEUtility::gteId, GTUtility.defaultTankSizeFunction); + + // SOUL_BINDER 11036~11048 + registerSimpleMetaTileEntity(SOUL_BINDER, 11036, "soul_binder", + EnderIORecipeMaps.SOUL_BINDER_RECIPES, + GTETextures.SOUL_BINDER_OVERLAY, + true, GTEUtility::gteId, GTUtility.defaultTankSizeFunction); + + // ELECTRIC_SPAWNER 11049~11061 + registerMetaTileEntities(ELECTRIC_SPAWNER, 11049, "electric_spawner", + (tier, voltageName) -> new MetaTileEntityElectricSpawner( + gteId(String.format("%s.%s", "electric_spawner", voltageName)), + GTETextures.SPAWNER_OVERLAY, + tier)); + } +} diff --git a/src/main/java/gtexpert/integration/eio/metatileentities/ElectricSpawnerLogic.java b/src/main/java/com/github/gtexpert/core/integration/eio/metatileentities/ElectricSpawnerLogic.java similarity index 90% rename from src/main/java/gtexpert/integration/eio/metatileentities/ElectricSpawnerLogic.java rename to src/main/java/com/github/gtexpert/core/integration/eio/metatileentities/ElectricSpawnerLogic.java index 1ab5312d..d3934dbf 100644 --- a/src/main/java/gtexpert/integration/eio/metatileentities/ElectricSpawnerLogic.java +++ b/src/main/java/com/github/gtexpert/core/integration/eio/metatileentities/ElectricSpawnerLogic.java @@ -1,4 +1,4 @@ -package gtexpert.integration.eio.metatileentities; +package com.github.gtexpert.core.integration.eio.metatileentities; import java.util.Collections; import java.util.function.Supplier; @@ -25,11 +25,10 @@ import gregtech.api.capability.IEnergyContainer; import gregtech.api.capability.impl.RecipeLogicEnergy; import gregtech.api.metatileentity.MetaTileEntity; -import gregtech.api.recipes.logic.OverclockingLogic; import gregtech.api.util.GTTransferUtils; import gregtech.api.util.GTUtility; -import gtexpert.api.capability.GTEDataCodes; +import com.github.gtexpert.core.api.capability.GTEDataCodes; import crazypants.enderio.base.init.ModObject; import crazypants.enderio.base.item.soulvial.ItemSoulVial; @@ -166,15 +165,43 @@ private boolean setupAndConsumeInputs(@NotNull ItemStack outputItem) { return consumeEmptyVial(); } + public static int @NotNull [] standardOverclockingLogic(int recipeEUt, long maxVoltage, int recipeDuration, + int numberOfOCs, double durationDivisor, + double voltageMultiplier) { + double resultDuration = recipeDuration; + + double resultVoltage; + for (resultVoltage = recipeEUt; numberOfOCs > 0 && resultDuration != 1.0; --numberOfOCs) { + double potentialVoltage = resultVoltage * voltageMultiplier; + if (potentialVoltage > (double) maxVoltage) { + break; + } + + double potentialDuration = resultDuration / durationDivisor; + if (potentialDuration < 1.0) { + potentialDuration = 1.0; + } + + resultDuration = potentialDuration; + resultVoltage = potentialVoltage; + } + + return new int[] { (int) resultVoltage, (int) resultDuration }; + } + + private int processTime, processEut; + private boolean checkOverclock() { // TODO: adjust energy consumption int eut = 30; int duration = 10 * 20; - this.overclockResults = OverclockingLogic.standardOverclockingLogic(eut, getMaximumOverclockVoltage(), duration, - getNumberOfOCs(eut), getOverclockingDurationDivisor(), - getOverclockingVoltageMultiplier()); + var l = standardOverclockingLogic(eut, getMaximumOverclockVoltage(), duration, + getNumberOfOCs(eut), this.hasPerfectOC ? 4.0 : 2.0, + 4.0); - return hasEnoughPower(overclockResults); + processEut = l[0]; + processTime = l[1]; + return hasEnoughPower(l[0], l[1]); } private boolean consumeEmptyVial() { @@ -194,8 +221,8 @@ private boolean consumeEmptyVial() { */ private void setup(@NotNull CapturedMob mobToSpawn, @NotNull ItemStack outputItem) { this.progressTime = 1; - setMaxProgress(overclockResults[1]); - this.recipeEUt = overclockResults[0]; + setMaxProgress(processTime); + this.recipeEUt = processEut; if (!spawnMode) { this.itemOutputs = GTUtility.copyStackList(Collections.singletonList(outputItem)); } else { diff --git a/src/main/java/gtexpert/integration/eio/metatileentities/MetaTileEntityElectricSpawner.java b/src/main/java/com/github/gtexpert/core/integration/eio/metatileentities/MetaTileEntityElectricSpawner.java similarity index 95% rename from src/main/java/gtexpert/integration/eio/metatileentities/MetaTileEntityElectricSpawner.java rename to src/main/java/com/github/gtexpert/core/integration/eio/metatileentities/MetaTileEntityElectricSpawner.java index 67cc94bb..b618481a 100644 --- a/src/main/java/gtexpert/integration/eio/metatileentities/MetaTileEntityElectricSpawner.java +++ b/src/main/java/com/github/gtexpert/core/integration/eio/metatileentities/MetaTileEntityElectricSpawner.java @@ -1,4 +1,4 @@ -package gtexpert.integration.eio.metatileentities; +package com.github.gtexpert.core.integration.eio.metatileentities; import java.util.Arrays; import java.util.List; @@ -15,6 +15,7 @@ import net.minecraft.world.World; import net.minecraftforge.items.IItemHandlerModifiable; +import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import gregtech.api.GTValues; @@ -29,6 +30,7 @@ import gregtech.api.gui.resources.TextureArea; import gregtech.api.gui.widgets.*; import gregtech.api.metatileentity.MetaTileEntity; +import gregtech.api.metatileentity.SimpleMachineMetaTileEntity; import gregtech.api.metatileentity.interfaces.IGregTechTileEntity; import gregtech.api.recipes.RecipeMap; import gregtech.api.util.LocalizationUtils; @@ -36,12 +38,11 @@ import gregtech.api.util.Size; import gregtech.client.renderer.ICubeRenderer; -import gtexpert.api.gui.GTEGuiTextures; -import gtexpert.api.util.GTEUtility; -import gtexpert.api.util.Mods; -import gtexpert.common.metatileentities.GTESimpleMachineMetaTileEntity; +import com.github.gtexpert.core.api.gui.GTEGuiTextures; +import com.github.gtexpert.core.api.util.GTEUtility; +import com.github.gtexpert.core.api.util.Mods; -public class MetaTileEntityElectricSpawner extends GTESimpleMachineMetaTileEntity { +public class MetaTileEntityElectricSpawner extends SimpleMachineMetaTileEntity { private static IGuiTexture spawnEggTexture; private static IGuiTexture soulVialTexture; @@ -91,6 +92,14 @@ public SoundEvent getSound() { return null; } + protected @NotNull TextureArea getLogo() { + return GTEGuiTextures.GTE_LOGO; + } + + protected @NotNull TextureArea getXmasLogo() { + return GTEGuiTextures.GTE_LOGO_XMAS; + } + @Override public void addInformation(ItemStack stack, @Nullable World player, List tooltip, boolean advanced) { // prevent NPE with `WorkableTieredMetaTileEntity#addInformation` diff --git a/src/main/java/gtexpert/integration/eio/recipes/EIOBlocksRecipe.java b/src/main/java/com/github/gtexpert/core/integration/eio/recipes/EIOBlocksRecipe.java similarity index 93% rename from src/main/java/gtexpert/integration/eio/recipes/EIOBlocksRecipe.java rename to src/main/java/com/github/gtexpert/core/integration/eio/recipes/EIOBlocksRecipe.java index b15f20b1..da215a81 100644 --- a/src/main/java/gtexpert/integration/eio/recipes/EIOBlocksRecipe.java +++ b/src/main/java/com/github/gtexpert/core/integration/eio/recipes/EIOBlocksRecipe.java @@ -1,4 +1,4 @@ -package gtexpert.integration.eio.recipes; +package com.github.gtexpert.core.integration.eio.recipes; import static gregtech.api.GTValues.*; import static gregtech.api.unification.ore.OrePrefix.*; @@ -18,12 +18,13 @@ import gregtech.common.metatileentities.MetaTileEntities; import gregtech.loaders.recipe.MetaTileEntityLoader; -import gtexpert.api.GTEValues; -import gtexpert.api.unification.material.GTEMaterials; -import gtexpert.api.util.GTEUtility; -import gtexpert.api.util.Mods; -import gtexpert.integration.eio.EnderIOConfigHolder; -import gtexpert.integration.eio.metatileentities.EIOMetaTileEntities; +import com.github.gtexpert.core.api.GTEValues; +import com.github.gtexpert.core.api.unification.material.GTEMaterials; +import com.github.gtexpert.core.api.util.GTEUtility; +import com.github.gtexpert.core.api.util.Mods; +import com.github.gtexpert.core.common.GTEConfigHolder; +import com.github.gtexpert.core.integration.eio.EnderIOConfigHolder; +import com.github.gtexpert.core.integration.eio.metatileentities.EIOMetaTileEntities; import crazypants.enderio.conduits.init.ConduitObject; import crazypants.enderio.endergy.init.EndergyObject; @@ -34,23 +35,25 @@ public class EIOBlocksRecipe { public static void init() { // Creative Capacitor Bank - RecipeMaps.ASSEMBLY_LINE_RECIPES.recipeBuilder() - .input(MetaItems.ENERGY_CLUSTER, 4) - .inputs(MetaBlocks.FUSION_CASING.getItemVariant(BlockFusionCasing.CasingType.FUSION_CASING_MK3, 8)) - .input(MetaTileEntities.HULL[UV]) - .input(MetaItems.CRYSTAL_MAINFRAME_UV, 4) - .inputs(new ItemStack(PowerToolObject.block_cap_bank.getBlockNN(), 8, 3)) - .input(MetaItems.COVER_SOLAR_PANEL_UV, 1) - .fluidInputs(GTEMaterials.VibrantAlloy.getFluid(18432)) - .fluidInputs(Materials.SolderingAlloy.getFluid(18432)) - .fluidInputs(Materials.Neutronium.getFluid(9216)) - .outputs(new ItemStack(PowerToolObject.block_cap_bank.getBlockNN())) - .duration(1200).EUt(VA[UV]) - .buildAndRegister(); + if (GTEConfigHolder.gteFlag.addCreativeRecipe) { + RecipeMaps.ASSEMBLY_LINE_RECIPES.recipeBuilder() + .input(MetaItems.ENERGY_CLUSTER, 4) + .inputs(MetaBlocks.FUSION_CASING.getItemVariant(BlockFusionCasing.CasingType.FUSION_CASING_MK3, 8)) + .input(MetaTileEntities.HULL[UV]) + .input(MetaItems.CRYSTAL_MAINFRAME_UV, 4) + .inputs(new ItemStack(PowerToolObject.block_cap_bank.getBlockNN(), 8, 3)) + .input(MetaItems.COVER_SOLAR_PANEL_UV, 1) + .fluidInputs(GTEMaterials.VibrantAlloy.getFluid(18432)) + .fluidInputs(Materials.SolderingAlloy.getFluid(18432)) + .fluidInputs(Materials.Neutronium.getFluid(9216)) + .outputs(new ItemStack(PowerToolObject.block_cap_bank.getBlockNN())) + .duration(1200).EUt(VA[UV]) + .buildAndRegister(); - ModHandler.addShapelessNBTClearingRecipe("creative_capacitor_bank_nbt", - new ItemStack(PowerToolObject.block_cap_bank.getBlockNN()), - new ItemStack(PowerToolObject.block_cap_bank.getBlockNN())); + ModHandler.addShapelessNBTClearingRecipe("creative_capacitor_bank_nbt", + new ItemStack(PowerToolObject.block_cap_bank.getBlockNN()), + new ItemStack(PowerToolObject.block_cap_bank.getBlockNN())); + } // Vial Extractor MetaTileEntityLoader.registerMachineRecipe(true, diff --git a/src/main/java/gtexpert/integration/eio/recipes/EIOFluidRecipe.java b/src/main/java/com/github/gtexpert/core/integration/eio/recipes/EIOFluidRecipe.java similarity index 96% rename from src/main/java/gtexpert/integration/eio/recipes/EIOFluidRecipe.java rename to src/main/java/com/github/gtexpert/core/integration/eio/recipes/EIOFluidRecipe.java index 0aa30675..9772cdb8 100644 --- a/src/main/java/gtexpert/integration/eio/recipes/EIOFluidRecipe.java +++ b/src/main/java/com/github/gtexpert/core/integration/eio/recipes/EIOFluidRecipe.java @@ -1,4 +1,4 @@ -package gtexpert.integration.eio.recipes; +package com.github.gtexpert.core.integration.eio.recipes; import static gregtech.api.GTValues.*; import static gregtech.api.unification.ore.OrePrefix.dust; @@ -9,10 +9,10 @@ import gregtech.api.recipes.RecipeMaps; import gregtech.api.unification.material.Materials; -import gtexpert.api.GTEValues; -import gtexpert.api.unification.material.GTEMaterials; -import gtexpert.api.util.GTEUtility; -import gtexpert.api.util.Mods; +import com.github.gtexpert.core.api.GTEValues; +import com.github.gtexpert.core.api.unification.material.GTEMaterials; +import com.github.gtexpert.core.api.util.GTEUtility; +import com.github.gtexpert.core.api.util.Mods; import crazypants.enderio.base.init.ModObject; diff --git a/src/main/java/gtexpert/integration/eio/recipes/EIOItemsRecipe.java b/src/main/java/com/github/gtexpert/core/integration/eio/recipes/EIOItemsRecipe.java similarity index 84% rename from src/main/java/gtexpert/integration/eio/recipes/EIOItemsRecipe.java rename to src/main/java/com/github/gtexpert/core/integration/eio/recipes/EIOItemsRecipe.java index 1db0e74a..256eb0d8 100644 --- a/src/main/java/gtexpert/integration/eio/recipes/EIOItemsRecipe.java +++ b/src/main/java/com/github/gtexpert/core/integration/eio/recipes/EIOItemsRecipe.java @@ -1,4 +1,4 @@ -package gtexpert.integration.eio.recipes; +package com.github.gtexpert.core.integration.eio.recipes; import static gregtech.api.GTValues.*; import static gregtech.api.unification.ore.OrePrefix.dust; @@ -11,12 +11,12 @@ import gregtech.api.unification.material.Materials; import gregtech.api.unification.stack.UnificationEntry; -import gtexpert.api.GTEValues; -import gtexpert.api.unification.material.GTEMaterials; -import gtexpert.api.util.GTEUtility; -import gtexpert.api.util.Mods; -import gtexpert.common.GTEConfigHolder; -import gtexpert.common.items.GTEMetaItems; +import com.github.gtexpert.core.api.GTEValues; +import com.github.gtexpert.core.api.unification.material.GTEMaterials; +import com.github.gtexpert.core.api.util.GTEUtility; +import com.github.gtexpert.core.api.util.Mods; +import com.github.gtexpert.core.common.GTEConfigHolder; +import com.github.gtexpert.core.common.items.GTEMetaItems; import crazypants.enderio.base.init.ModObject; import crazypants.enderio.endergy.init.EndergyObject; @@ -24,6 +24,21 @@ public class EIOItemsRecipe { public static void init() { + // Black Paper + ModHandler.removeRecipeByOutput(Mods.EnderIO.getItem("item_material", 1, 77)); + RecipeMaps.ASSEMBLER_RECIPES.recipeBuilder() + .input(Items.PAPER) + .input("dyeBlack") + .circuitMeta(4) + .outputs(Mods.EnderIO.getItem("item_material", 1, 77)) + .duration(100).EUt(4).buildAndRegister(); + RecipeMaps.ASSEMBLER_RECIPES.recipeBuilder() + .input(Items.PAPER) + .fluidInputs(Materials.DyeBlack.getFluid(72)) + .circuitMeta(4) + .outputs(Mods.EnderIO.getItem("item_material", 1, 77)) + .duration(100).EUt(4).buildAndRegister(); + // Enderman Head RecipeMaps.LARGE_CHEMICAL_RECIPES.recipeBuilder() .circuitMeta(5) diff --git a/src/main/java/gtexpert/integration/eio/recipes/EIOMaterialsRecipe.java b/src/main/java/com/github/gtexpert/core/integration/eio/recipes/EIOMaterialsRecipe.java similarity index 93% rename from src/main/java/gtexpert/integration/eio/recipes/EIOMaterialsRecipe.java rename to src/main/java/com/github/gtexpert/core/integration/eio/recipes/EIOMaterialsRecipe.java index 53043b03..a35f338c 100644 --- a/src/main/java/gtexpert/integration/eio/recipes/EIOMaterialsRecipe.java +++ b/src/main/java/com/github/gtexpert/core/integration/eio/recipes/EIOMaterialsRecipe.java @@ -1,8 +1,7 @@ -package gtexpert.integration.eio.recipes; +package com.github.gtexpert.core.integration.eio.recipes; import static gregtech.api.GTValues.VA; import static gregtech.api.unification.ore.OrePrefix.*; -import static gtexpert.loaders.recipe.handlers.GTEMaterialRecipeHandler.addImplosionRecipes; import net.minecraft.init.Blocks; import net.minecraft.init.Items; @@ -15,8 +14,9 @@ import gregtech.api.unification.material.Materials; import gregtech.common.ConfigHolder; -import gtexpert.api.GTEValues; -import gtexpert.api.unification.material.GTEMaterials; +import com.github.gtexpert.core.api.GTEValues; +import com.github.gtexpert.core.api.unification.material.GTEMaterials; +import com.github.gtexpert.core.loaders.recipe.handlers.GTEImplosionRecipeHandler; import crazypants.enderio.base.init.ModObject; @@ -191,7 +191,7 @@ public static void init() { .chancedOutput(new ItemStack(ModObject.itemMaterial.getItemNN(), 1, 14), 7000, 1000) .duration(1200).EUt(24) .buildAndRegister(); - addImplosionRecipes("itemPulsatingPowder", new ItemStack(ModObject.itemMaterial.getItemNN(), 3, 14)); + GTEImplosionRecipeHandler.add("itemPulsatingPowder", new ItemStack(ModObject.itemMaterial.getItemNN(), 3, 14)); // Vibrant Crystal RecipeMaps.AUTOCLAVE_RECIPES.recipeBuilder() @@ -206,7 +206,7 @@ public static void init() { .chancedOutput(new ItemStack(ModObject.itemMaterial.getItemNN(), 1, 15), 7000, 1000) .duration(1200).EUt(24) .buildAndRegister(); - addImplosionRecipes("itemVibrantPowder", new ItemStack(ModObject.itemMaterial.getItemNN(), 3, 15)); + GTEImplosionRecipeHandler.add("itemVibrantPowder", new ItemStack(ModObject.itemMaterial.getItemNN(), 3, 15)); // Ender Crystal RecipeMaps.AUTOCLAVE_RECIPES.recipeBuilder() @@ -221,7 +221,8 @@ public static void init() { .chancedOutput(new ItemStack(ModObject.itemMaterial.getItemNN(), 1, 16), 7000, 1000) .duration(1200).EUt(24) .buildAndRegister(); - addImplosionRecipes("itemEnderCrystalPowder", new ItemStack(ModObject.itemMaterial.getItemNN(), 3, 16)); + GTEImplosionRecipeHandler.add("itemEnderCrystalPowder", + new ItemStack(ModObject.itemMaterial.getItemNN(), 3, 16)); // Weather Crystal ModHandler.addShapedRecipe(true, "weather_crystal", @@ -244,7 +245,7 @@ public static void init() { .chancedOutput(new ItemStack(ModObject.itemMaterial.getItemNN(), 1, 19), 7000, 1000) .duration(1200).EUt(24) .buildAndRegister(); - addImplosionRecipes("itemPrecientPowder", new ItemStack(ModObject.itemMaterial.getItemNN(), 3, 19)); + GTEImplosionRecipeHandler.add("itemPrecientPowder", new ItemStack(ModObject.itemMaterial.getItemNN(), 3, 19)); } public static void remove() { diff --git a/src/main/java/gtexpert/integration/eio/recipes/EIOSliceNSpliceRecipe.java b/src/main/java/com/github/gtexpert/core/integration/eio/recipes/EIOSliceNSpliceRecipe.java similarity index 95% rename from src/main/java/gtexpert/integration/eio/recipes/EIOSliceNSpliceRecipe.java rename to src/main/java/com/github/gtexpert/core/integration/eio/recipes/EIOSliceNSpliceRecipe.java index 6fd7ff59..6151c257 100644 --- a/src/main/java/gtexpert/integration/eio/recipes/EIOSliceNSpliceRecipe.java +++ b/src/main/java/com/github/gtexpert/core/integration/eio/recipes/EIOSliceNSpliceRecipe.java @@ -1,4 +1,4 @@ -package gtexpert.integration.eio.recipes; +package com.github.gtexpert.core.integration.eio.recipes; import static gregtech.api.GTValues.*; import static gregtech.api.unification.ore.OrePrefix.*; @@ -8,8 +8,8 @@ import gregtech.api.unification.material.Materials; import gregtech.common.items.MetaItems; -import gtexpert.api.unification.material.GTEMaterials; -import gtexpert.integration.eio.EnderIORecipeMaps; +import com.github.gtexpert.core.api.unification.material.GTEMaterials; +import com.github.gtexpert.core.integration.eio.EnderIORecipeMaps; import crazypants.enderio.base.init.ModObject; import crazypants.enderio.endergy.init.EndergyObject; diff --git a/src/main/java/gtexpert/integration/eio/recipes/EIOSoulBinderRecipe.java b/src/main/java/com/github/gtexpert/core/integration/eio/recipes/EIOSoulBinderRecipe.java similarity index 76% rename from src/main/java/gtexpert/integration/eio/recipes/EIOSoulBinderRecipe.java rename to src/main/java/com/github/gtexpert/core/integration/eio/recipes/EIOSoulBinderRecipe.java index 6f255f18..fd49246c 100644 --- a/src/main/java/gtexpert/integration/eio/recipes/EIOSoulBinderRecipe.java +++ b/src/main/java/com/github/gtexpert/core/integration/eio/recipes/EIOSoulBinderRecipe.java @@ -1,4 +1,4 @@ -package gtexpert.integration.eio.recipes; +package com.github.gtexpert.core.integration.eio.recipes; import static gregtech.api.GTValues.*; import static gregtech.api.unification.ore.OrePrefix.gem; @@ -10,15 +10,14 @@ import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.ResourceLocation; -import gregtech.api.recipes.ingredients.GTRecipeItemInput; import gregtech.api.recipes.ingredients.nbtmatch.NBTCondition; import gregtech.api.recipes.ingredients.nbtmatch.NBTMatcher; import gregtech.api.recipes.ingredients.nbtmatch.NBTTagType; import gregtech.api.unification.material.Materials; -import gtexpert.api.util.GTEUtility; -import gtexpert.integration.eio.EnderIOModule; -import gtexpert.integration.eio.EnderIORecipeMaps; +import com.github.gtexpert.core.api.util.GTEUtility; +import com.github.gtexpert.core.integration.eio.EnderIOModule; +import com.github.gtexpert.core.integration.eio.EnderIORecipeMaps; import crazypants.enderio.base.init.ModObject; @@ -42,8 +41,8 @@ private static void soulBinderRecipes() { // SoulBinder - Soul Filter EnderIORecipeMaps.SOUL_BINDER_RECIPES.recipeBuilder() - .input(new GTRecipeItemInput(stack).setNBTMatchingCondition(NBTMatcher.RECURSIVE_EQUAL_TO, - NBTCondition.create(NBTTagType.STRING, "entityId", name.toString()))) + .inputNBT(new ItemStack(stack.getItem()), NBTMatcher.RECURSIVE_EQUAL_TO, + NBTCondition.create(NBTTagType.STRING, "entityId", name.toString())) .input(ModObject.itemBasicItemFilter.getItem()) .fluidInputs(GTEUtility.getModFluid("xpjuice", 4320)) .output(ModObject.itemSoulVial.getItemNN()) @@ -52,13 +51,25 @@ private static void soulBinderRecipes() { // SoulBinder - Big Soul Filter EnderIORecipeMaps.SOUL_BINDER_RECIPES.recipeBuilder() - .input(new GTRecipeItemInput(stack).setNBTMatchingCondition(NBTMatcher.RECURSIVE_EQUAL_TO, - NBTCondition.create(NBTTagType.STRING, "entityId", name.toString()))) + .inputNBT(new ItemStack(stack.getItem()), NBTMatcher.RECURSIVE_EQUAL_TO, + NBTCondition.create(NBTTagType.STRING, "entityId", name.toString())) .input(ModObject.itemBigItemFilter.getItem()) .fluidInputs(GTEUtility.getModFluid("xpjuice", 4320)) .output(ModObject.itemSoulVial.getItemNN()) .output(ModObject.itemSoulFilterBig.getItemNN()) .duration(1000).EUt(VA[LV]).buildAndRegister(); + + // SoulBinder - Broken Spawner + ItemStack spawnerStack = new ItemStack(ModObject.itemBrokenSpawner.getItemNN(), 1, 0); + spawnerStack.setTagCompound(tag); + EnderIORecipeMaps.SOUL_BINDER_RECIPES.recipeBuilder() + .input(new GTRecipeItemInput(stack).setNBTMatchingCondition(NBTMatcher.RECURSIVE_EQUAL_TO, + NBTCondition.create(NBTTagType.STRING, "entityId", name.toString()))) + .inputNBT(ModObject.itemBrokenSpawner.getItem(), NBTMatcher.ANY, NBTCondition.ANY) + .fluidInputs(GTEUtility.getModFluid("xpjuice", 2240)) + .output(ModObject.itemSoulVial.getItemNN()) + .outputs(spawnerStack) + .duration(1200).EUt(VA[MV]).buildAndRegister(); } } @@ -70,8 +81,8 @@ private static void recipeVillager() { // Soul Binder - Enticing Crystal EnderIORecipeMaps.SOUL_BINDER_RECIPES.recipeBuilder() - .input(new GTRecipeItemInput(stack).setNBTMatchingCondition(NBTMatcher.RECURSIVE_EQUAL_TO, - NBTCondition.create(NBTTagType.STRING, "entityId", "minecraft:villager"))) + .inputNBT(new ItemStack(stack.getItem()), NBTMatcher.RECURSIVE_EQUAL_TO, + NBTCondition.create(NBTTagType.STRING, "entityId", "minecraft:villager")) .input(gem, Materials.Emerald) .fluidInputs(GTEUtility.getModFluid("xpjuice", 576)) .output(ModObject.itemSoulVial.getItemNN()) @@ -89,8 +100,8 @@ private static void recipeWitch() { // Soul Binder - Sentient Ender EnderIORecipeMaps.SOUL_BINDER_RECIPES.recipeBuilder() - .input(new GTRecipeItemInput(stack).setNBTMatchingCondition(NBTMatcher.RECURSIVE_EQUAL_TO, - NBTCondition.create(NBTTagType.STRING, "entityId", witch))) + .inputNBT(new ItemStack(stack.getItem()), NBTMatcher.RECURSIVE_EQUAL_TO, + NBTCondition.create(NBTTagType.STRING, "entityId", witch)) .input(ModObject.itemMaterial.getItemNN(), 1, 43) .fluidInputs(GTEUtility.getModFluid("xpjuice", 8640)) .output(ModObject.itemSoulVial.getItemNN()) @@ -108,8 +119,8 @@ private static void recipeZombie() { // Soul Binder - Frank'N'Zombie EnderIORecipeMaps.SOUL_BINDER_RECIPES.recipeBuilder() - .input(new GTRecipeItemInput(stack).setNBTMatchingCondition(NBTMatcher.RECURSIVE_EQUAL_TO, - NBTCondition.create(NBTTagType.STRING, "entityId", zombie))) + .inputNBT(new ItemStack(stack.getItem()), NBTMatcher.RECURSIVE_EQUAL_TO, + NBTCondition.create(NBTTagType.STRING, "entityId", zombie)) .input(ModObject.itemMaterial.getItemNN(), 1, 41) .fluidInputs(GTEUtility.getModFluid("xpjuice", 8640)) .output(ModObject.itemSoulVial.getItemNN()) diff --git a/src/main/java/gtexpert/integration/eio/recipes/EIOToolsRecipe.java b/src/main/java/com/github/gtexpert/core/integration/eio/recipes/EIOToolsRecipe.java similarity index 98% rename from src/main/java/gtexpert/integration/eio/recipes/EIOToolsRecipe.java rename to src/main/java/com/github/gtexpert/core/integration/eio/recipes/EIOToolsRecipe.java index b09226d0..760502bf 100644 --- a/src/main/java/gtexpert/integration/eio/recipes/EIOToolsRecipe.java +++ b/src/main/java/com/github/gtexpert/core/integration/eio/recipes/EIOToolsRecipe.java @@ -1,4 +1,4 @@ -package gtexpert.integration.eio.recipes; +package com.github.gtexpert.core.integration.eio.recipes; import static gregtech.api.unification.ore.OrePrefix.*; @@ -9,8 +9,8 @@ import gregtech.api.unification.OreDictUnifier; import gregtech.common.ConfigHolder; -import gtexpert.api.unification.material.GTEMaterials; -import gtexpert.integration.eio.EnderIOConfigHolder; +import com.github.gtexpert.core.api.unification.material.GTEMaterials; +import com.github.gtexpert.core.integration.eio.EnderIOConfigHolder; import crazypants.enderio.base.init.ModObject; import crazypants.enderio.endergy.init.EndergyObject; diff --git a/src/main/java/gtexpert/integration/eio/recipes/EIOVialExtractorRecipe.java b/src/main/java/com/github/gtexpert/core/integration/eio/recipes/EIOVialExtractorRecipe.java similarity index 95% rename from src/main/java/gtexpert/integration/eio/recipes/EIOVialExtractorRecipe.java rename to src/main/java/com/github/gtexpert/core/integration/eio/recipes/EIOVialExtractorRecipe.java index 3283211d..2cac9802 100644 --- a/src/main/java/gtexpert/integration/eio/recipes/EIOVialExtractorRecipe.java +++ b/src/main/java/com/github/gtexpert/core/integration/eio/recipes/EIOVialExtractorRecipe.java @@ -1,4 +1,4 @@ -package gtexpert.integration.eio.recipes; +package com.github.gtexpert.core.integration.eio.recipes; import static gregtech.api.unification.ore.OrePrefix.ingot; @@ -10,8 +10,8 @@ import gregtech.api.unification.material.Materials; -import gtexpert.api.util.Mods; -import gtexpert.integration.eio.EnderIOModule; +import com.github.gtexpert.core.api.util.Mods; +import com.github.gtexpert.core.integration.eio.EnderIOModule; import crazypants.enderio.base.init.ModObject; diff --git a/src/main/java/gtexpert/integration/extracpus/EXCPUSConfigHolder.java b/src/main/java/com/github/gtexpert/core/integration/extracpus/EXCPUSConfigHolder.java similarity index 78% rename from src/main/java/gtexpert/integration/extracpus/EXCPUSConfigHolder.java rename to src/main/java/com/github/gtexpert/core/integration/extracpus/EXCPUSConfigHolder.java index 8112365a..19530140 100644 --- a/src/main/java/gtexpert/integration/extracpus/EXCPUSConfigHolder.java +++ b/src/main/java/com/github/gtexpert/core/integration/extracpus/EXCPUSConfigHolder.java @@ -1,10 +1,10 @@ -package gtexpert.integration.extracpus; +package com.github.gtexpert.core.integration.extracpus; import net.minecraftforge.common.config.Config; import net.minecraftforge.common.config.Config.LangKey; -import gtexpert.api.GTEValues; -import gtexpert.modules.GTEModules; +import com.github.gtexpert.core.api.GTEValues; +import com.github.gtexpert.core.modules.GTEModules; @LangKey(GTEValues.MODID + ".config.integration.extracpus") @Config(modid = GTEValues.MODID, diff --git a/src/main/java/gtexpert/integration/extracpus/EXCPUSModule.java b/src/main/java/com/github/gtexpert/core/integration/extracpus/EXCPUSModule.java similarity index 57% rename from src/main/java/gtexpert/integration/extracpus/EXCPUSModule.java rename to src/main/java/com/github/gtexpert/core/integration/extracpus/EXCPUSModule.java index d14be857..11fafbbc 100644 --- a/src/main/java/gtexpert/integration/extracpus/EXCPUSModule.java +++ b/src/main/java/com/github/gtexpert/core/integration/extracpus/EXCPUSModule.java @@ -1,15 +1,15 @@ -package gtexpert.integration.extracpus; +package com.github.gtexpert.core.integration.extracpus; import net.minecraft.item.crafting.IRecipe; import net.minecraftforge.event.RegistryEvent; -import gtexpert.api.GTEValues; -import gtexpert.api.modules.GTEModule; -import gtexpert.api.util.Mods; -import gtexpert.integration.GTEIntegrationSubmodule; -import gtexpert.integration.extracpus.recipes.EXCPUSBlocksRecipe; -import gtexpert.integration.extracpus.recipes.EXCPUSItemsRecipe; -import gtexpert.modules.GTEModules; +import com.github.gtexpert.core.api.GTEValues; +import com.github.gtexpert.core.api.modules.GTEModule; +import com.github.gtexpert.core.api.util.Mods; +import com.github.gtexpert.core.integration.GTEIntegrationSubmodule; +import com.github.gtexpert.core.integration.extracpus.recipes.EXCPUSBlocksRecipe; +import com.github.gtexpert.core.integration.extracpus.recipes.EXCPUSItemsRecipe; +import com.github.gtexpert.core.modules.GTEModules; @GTEModule( moduleID = GTEModules.MODULE_EXCPUS, diff --git a/src/main/java/gtexpert/integration/extracpus/recipes/EXCPUSBlocksRecipe.java b/src/main/java/com/github/gtexpert/core/integration/extracpus/recipes/EXCPUSBlocksRecipe.java similarity index 95% rename from src/main/java/gtexpert/integration/extracpus/recipes/EXCPUSBlocksRecipe.java rename to src/main/java/com/github/gtexpert/core/integration/extracpus/recipes/EXCPUSBlocksRecipe.java index 506ec80e..e7d591e2 100644 --- a/src/main/java/gtexpert/integration/extracpus/recipes/EXCPUSBlocksRecipe.java +++ b/src/main/java/com/github/gtexpert/core/integration/extracpus/recipes/EXCPUSBlocksRecipe.java @@ -1,4 +1,4 @@ -package gtexpert.integration.extracpus.recipes; +package com.github.gtexpert.core.integration.extracpus.recipes; import static gregtech.api.GTValues.ULV; import static gregtech.api.GTValues.VA; @@ -6,8 +6,8 @@ import gregtech.api.recipes.ModHandler; import gregtech.api.recipes.RecipeMaps; -import gtexpert.api.util.Mods; -import gtexpert.integration.extracpus.EXCPUSConfigHolder; +import com.github.gtexpert.core.api.util.Mods; +import com.github.gtexpert.core.integration.extracpus.EXCPUSConfigHolder; public class EXCPUSBlocksRecipe { diff --git a/src/main/java/gtexpert/integration/extracpus/recipes/EXCPUSItemsRecipe.java b/src/main/java/com/github/gtexpert/core/integration/extracpus/recipes/EXCPUSItemsRecipe.java similarity index 94% rename from src/main/java/gtexpert/integration/extracpus/recipes/EXCPUSItemsRecipe.java rename to src/main/java/com/github/gtexpert/core/integration/extracpus/recipes/EXCPUSItemsRecipe.java index 25363dc4..7c82f83f 100644 --- a/src/main/java/gtexpert/integration/extracpus/recipes/EXCPUSItemsRecipe.java +++ b/src/main/java/com/github/gtexpert/core/integration/extracpus/recipes/EXCPUSItemsRecipe.java @@ -1,11 +1,11 @@ -package gtexpert.integration.extracpus.recipes; +package com.github.gtexpert.core.integration.extracpus.recipes; import static gregtech.api.GTValues.ULV; import static gregtech.api.GTValues.VA; import gregtech.api.recipes.RecipeMaps; -import gtexpert.api.util.Mods; +import com.github.gtexpert.core.api.util.Mods; public class EXCPUSItemsRecipe { diff --git a/src/main/java/gtexpert/integration/gtfo/GTFOModule.java b/src/main/java/com/github/gtexpert/core/integration/gtfo/GTFOModule.java similarity index 58% rename from src/main/java/gtexpert/integration/gtfo/GTFOModule.java rename to src/main/java/com/github/gtexpert/core/integration/gtfo/GTFOModule.java index 6776b313..6808a8f4 100644 --- a/src/main/java/gtexpert/integration/gtfo/GTFOModule.java +++ b/src/main/java/com/github/gtexpert/core/integration/gtfo/GTFOModule.java @@ -1,15 +1,14 @@ -package gtexpert.integration.gtfo; +package com.github.gtexpert.core.integration.gtfo; import net.minecraft.item.crafting.IRecipe; import net.minecraftforge.event.RegistryEvent; -import gtexpert.api.GTEValues; -import gtexpert.api.modules.GTEModule; -import gtexpert.api.util.Mods; -import gtexpert.integration.GTEIntegrationSubmodule; -import gtexpert.integration.gtfo.recipes.GTFOChemicalRecipe; -import gtexpert.integration.gtfo.recipes.GTFOWoodRecipe; -import gtexpert.modules.GTEModules; +import com.github.gtexpert.core.api.GTEValues; +import com.github.gtexpert.core.api.modules.GTEModule; +import com.github.gtexpert.core.api.util.Mods; +import com.github.gtexpert.core.integration.GTEIntegrationSubmodule; +import com.github.gtexpert.core.integration.gtfo.recipes.*; +import com.github.gtexpert.core.modules.GTEModules; @GTEModule( moduleID = GTEModules.MODULE_GTFO, @@ -21,7 +20,7 @@ public class GTFOModule extends GTEIntegrationSubmodule { @Override public void registerRecipesLowest(RegistryEvent.Register event) { - GTFOWoodRecipe.init(); + GTFOItemsRecipe.init(); GTFOChemicalRecipe.init(); } } diff --git a/src/main/java/gtexpert/integration/gtfo/recipes/GTFOChemicalRecipe.java b/src/main/java/com/github/gtexpert/core/integration/gtfo/recipes/GTFOChemicalRecipe.java similarity index 95% rename from src/main/java/gtexpert/integration/gtfo/recipes/GTFOChemicalRecipe.java rename to src/main/java/com/github/gtexpert/core/integration/gtfo/recipes/GTFOChemicalRecipe.java index 87f65d30..f20dd74e 100644 --- a/src/main/java/gtexpert/integration/gtfo/recipes/GTFOChemicalRecipe.java +++ b/src/main/java/com/github/gtexpert/core/integration/gtfo/recipes/GTFOChemicalRecipe.java @@ -1,4 +1,4 @@ -package gtexpert.integration.gtfo.recipes; +package com.github.gtexpert.core.integration.gtfo.recipes; import static gregtech.api.GTValues.*; import static gregtech.api.unification.ore.OrePrefix.dust; diff --git a/src/main/java/com/github/gtexpert/core/integration/gtfo/recipes/GTFOItemsRecipe.java b/src/main/java/com/github/gtexpert/core/integration/gtfo/recipes/GTFOItemsRecipe.java new file mode 100644 index 00000000..0a62eda7 --- /dev/null +++ b/src/main/java/com/github/gtexpert/core/integration/gtfo/recipes/GTFOItemsRecipe.java @@ -0,0 +1,29 @@ +package com.github.gtexpert.core.integration.gtfo.recipes; + +import net.minecraft.init.Items; + +import gregtech.api.recipes.ModHandler; +import gregtech.api.recipes.RecipeMaps; +import gregtech.api.unification.material.Materials; + +import com.github.gtexpert.core.api.util.Mods; + +public class GTFOItemsRecipe { + + public static void init() { + // Kitchen Recipe + ModHandler.removeRecipeByOutput(Mods.GregTechFoodOption.getItem("gtfo_meta_item", 1, 343)); + RecipeMaps.ASSEMBLER_RECIPES.recipeBuilder() + .input(Items.PAPER) + .input("dyeBlack") + .circuitMeta(3) + .outputs(Mods.GregTechFoodOption.getItem("gtfo_meta_item", 1, 343)) + .duration(100).EUt(4).buildAndRegister(); + RecipeMaps.ASSEMBLER_RECIPES.recipeBuilder() + .input(Items.PAPER) + .fluidInputs(Materials.DyeBlack.getFluid(72)) + .circuitMeta(3) + .outputs(Mods.GregTechFoodOption.getItem("gtfo_meta_item", 1, 343)) + .duration(100).EUt(4).buildAndRegister(); + } +} diff --git a/src/main/java/gtexpert/integration/nae2/NAE2ConfigHolder.java b/src/main/java/com/github/gtexpert/core/integration/nae2/NAE2ConfigHolder.java similarity index 79% rename from src/main/java/gtexpert/integration/nae2/NAE2ConfigHolder.java rename to src/main/java/com/github/gtexpert/core/integration/nae2/NAE2ConfigHolder.java index ca147f64..8ae9bf6f 100644 --- a/src/main/java/gtexpert/integration/nae2/NAE2ConfigHolder.java +++ b/src/main/java/com/github/gtexpert/core/integration/nae2/NAE2ConfigHolder.java @@ -1,10 +1,10 @@ -package gtexpert.integration.nae2; +package com.github.gtexpert.core.integration.nae2; import net.minecraftforge.common.config.Config; import net.minecraftforge.common.config.Config.LangKey; -import gtexpert.api.GTEValues; -import gtexpert.modules.GTEModules; +import com.github.gtexpert.core.api.GTEValues; +import com.github.gtexpert.core.modules.GTEModules; @LangKey(GTEValues.MODID + ".config.integration.nae2") @Config(modid = GTEValues.MODID, diff --git a/src/main/java/gtexpert/integration/nae2/NAE2Module.java b/src/main/java/com/github/gtexpert/core/integration/nae2/NAE2Module.java similarity index 56% rename from src/main/java/gtexpert/integration/nae2/NAE2Module.java rename to src/main/java/com/github/gtexpert/core/integration/nae2/NAE2Module.java index 7bf308de..09dbcb9a 100644 --- a/src/main/java/gtexpert/integration/nae2/NAE2Module.java +++ b/src/main/java/com/github/gtexpert/core/integration/nae2/NAE2Module.java @@ -1,15 +1,15 @@ -package gtexpert.integration.nae2; +package com.github.gtexpert.core.integration.nae2; import net.minecraft.item.crafting.IRecipe; import net.minecraftforge.event.RegistryEvent; -import gtexpert.api.GTEValues; -import gtexpert.api.modules.GTEModule; -import gtexpert.api.util.Mods; -import gtexpert.integration.GTEIntegrationSubmodule; -import gtexpert.integration.nae2.recipes.NAE2BlocksRecipe; -import gtexpert.integration.nae2.recipes.NAE2ItemsRecipe; -import gtexpert.modules.GTEModules; +import com.github.gtexpert.core.api.GTEValues; +import com.github.gtexpert.core.api.modules.GTEModule; +import com.github.gtexpert.core.api.util.Mods; +import com.github.gtexpert.core.integration.GTEIntegrationSubmodule; +import com.github.gtexpert.core.integration.nae2.recipes.NAE2BlocksRecipe; +import com.github.gtexpert.core.integration.nae2.recipes.NAE2ItemsRecipe; +import com.github.gtexpert.core.modules.GTEModules; @GTEModule( moduleID = GTEModules.MODULE_NAE2, diff --git a/src/main/java/gtexpert/integration/nae2/recipes/NAE2BlocksRecipe.java b/src/main/java/com/github/gtexpert/core/integration/nae2/recipes/NAE2BlocksRecipe.java similarity index 96% rename from src/main/java/gtexpert/integration/nae2/recipes/NAE2BlocksRecipe.java rename to src/main/java/com/github/gtexpert/core/integration/nae2/recipes/NAE2BlocksRecipe.java index 1014ffd3..12be6052 100644 --- a/src/main/java/gtexpert/integration/nae2/recipes/NAE2BlocksRecipe.java +++ b/src/main/java/com/github/gtexpert/core/integration/nae2/recipes/NAE2BlocksRecipe.java @@ -1,4 +1,4 @@ -package gtexpert.integration.nae2.recipes; +package com.github.gtexpert.core.integration.nae2.recipes; import static gregtech.api.GTValues.ULV; import static gregtech.api.GTValues.VA; @@ -6,8 +6,8 @@ import gregtech.api.recipes.ModHandler; import gregtech.api.recipes.RecipeMaps; -import gtexpert.api.util.Mods; -import gtexpert.integration.nae2.NAE2ConfigHolder; +import com.github.gtexpert.core.api.util.Mods; +import com.github.gtexpert.core.integration.nae2.NAE2ConfigHolder; public class NAE2BlocksRecipe { diff --git a/src/main/java/gtexpert/integration/nae2/recipes/NAE2ItemsRecipe.java b/src/main/java/com/github/gtexpert/core/integration/nae2/recipes/NAE2ItemsRecipe.java similarity index 95% rename from src/main/java/gtexpert/integration/nae2/recipes/NAE2ItemsRecipe.java rename to src/main/java/com/github/gtexpert/core/integration/nae2/recipes/NAE2ItemsRecipe.java index f57c275e..aef5d907 100644 --- a/src/main/java/gtexpert/integration/nae2/recipes/NAE2ItemsRecipe.java +++ b/src/main/java/com/github/gtexpert/core/integration/nae2/recipes/NAE2ItemsRecipe.java @@ -1,12 +1,12 @@ -package gtexpert.integration.nae2.recipes; +package com.github.gtexpert.core.integration.nae2.recipes; import static gregtech.api.GTValues.ULV; import static gregtech.api.GTValues.VA; import gregtech.api.recipes.RecipeMaps; -import gtexpert.api.util.Mods; -import gtexpert.integration.nae2.NAE2ConfigHolder; +import com.github.gtexpert.core.api.util.Mods; +import com.github.gtexpert.core.integration.nae2.NAE2ConfigHolder; public class NAE2ItemsRecipe { diff --git a/src/main/java/gtexpert/integration/tc/TCConfigHolder.java b/src/main/java/com/github/gtexpert/core/integration/tc/TCConfigHolder.java similarity index 76% rename from src/main/java/gtexpert/integration/tc/TCConfigHolder.java rename to src/main/java/com/github/gtexpert/core/integration/tc/TCConfigHolder.java index f6bb40eb..3a8ddbd5 100644 --- a/src/main/java/gtexpert/integration/tc/TCConfigHolder.java +++ b/src/main/java/com/github/gtexpert/core/integration/tc/TCConfigHolder.java @@ -1,9 +1,9 @@ -package gtexpert.integration.tc; +package com.github.gtexpert.core.integration.tc; import net.minecraftforge.common.config.Config; -import gtexpert.api.GTEValues; -import gtexpert.modules.GTEModules; +import com.github.gtexpert.core.api.GTEValues; +import com.github.gtexpert.core.modules.GTEModules; @Config.LangKey(GTEValues.MODID + ".config.integration.tc") @Config(modid = GTEValues.MODID, diff --git a/src/main/java/gtexpert/integration/tc/TCModule.java b/src/main/java/com/github/gtexpert/core/integration/tc/TCModule.java similarity index 54% rename from src/main/java/gtexpert/integration/tc/TCModule.java rename to src/main/java/com/github/gtexpert/core/integration/tc/TCModule.java index 29bf1aa7..a8bd8c26 100644 --- a/src/main/java/gtexpert/integration/tc/TCModule.java +++ b/src/main/java/com/github/gtexpert/core/integration/tc/TCModule.java @@ -1,18 +1,18 @@ -package gtexpert.integration.tc; +package com.github.gtexpert.core.integration.tc; import net.minecraft.item.crafting.IRecipe; import net.minecraftforge.event.RegistryEvent; -import gtexpert.api.GTEValues; -import gtexpert.api.modules.GTEModule; -import gtexpert.api.util.Mods; -import gtexpert.integration.GTEIntegrationSubmodule; -import gtexpert.integration.tc.loaders.TCOreDictionaryLoader; -import gtexpert.integration.tc.recipes.TCBlocksRecipe; -import gtexpert.integration.tc.recipes.TCItemsRecipe; -import gtexpert.integration.tc.recipes.TCMaterialsRecipe; -import gtexpert.integration.tc.recipes.TCToolsRecipe; -import gtexpert.modules.GTEModules; +import com.github.gtexpert.core.api.GTEValues; +import com.github.gtexpert.core.api.modules.GTEModule; +import com.github.gtexpert.core.api.util.Mods; +import com.github.gtexpert.core.integration.GTEIntegrationSubmodule; +import com.github.gtexpert.core.integration.tc.loaders.TCOreDictionaryLoader; +import com.github.gtexpert.core.integration.tc.recipes.TCBlocksRecipe; +import com.github.gtexpert.core.integration.tc.recipes.TCItemsRecipe; +import com.github.gtexpert.core.integration.tc.recipes.TCMaterialsRecipe; +import com.github.gtexpert.core.integration.tc.recipes.TCToolsRecipe; +import com.github.gtexpert.core.modules.GTEModules; @GTEModule( moduleID = GTEModules.MODULE_TC, diff --git a/src/main/java/gtexpert/integration/tc/loaders/TCOreDictionaryLoader.java b/src/main/java/com/github/gtexpert/core/integration/tc/loaders/TCOreDictionaryLoader.java similarity index 56% rename from src/main/java/gtexpert/integration/tc/loaders/TCOreDictionaryLoader.java rename to src/main/java/com/github/gtexpert/core/integration/tc/loaders/TCOreDictionaryLoader.java index 5c5453f9..921eb137 100644 --- a/src/main/java/gtexpert/integration/tc/loaders/TCOreDictionaryLoader.java +++ b/src/main/java/com/github/gtexpert/core/integration/tc/loaders/TCOreDictionaryLoader.java @@ -1,4 +1,4 @@ -package gtexpert.integration.tc.loaders; +package com.github.gtexpert.core.integration.tc.loaders; public class TCOreDictionaryLoader { diff --git a/src/main/java/gtexpert/integration/tc/recipes/TCBlocksRecipe.java b/src/main/java/com/github/gtexpert/core/integration/tc/recipes/TCBlocksRecipe.java similarity index 54% rename from src/main/java/gtexpert/integration/tc/recipes/TCBlocksRecipe.java rename to src/main/java/com/github/gtexpert/core/integration/tc/recipes/TCBlocksRecipe.java index 2cd5f4ad..ddcb4955 100644 --- a/src/main/java/gtexpert/integration/tc/recipes/TCBlocksRecipe.java +++ b/src/main/java/com/github/gtexpert/core/integration/tc/recipes/TCBlocksRecipe.java @@ -1,4 +1,4 @@ -package gtexpert.integration.tc.recipes; +package com.github.gtexpert.core.integration.tc.recipes; public class TCBlocksRecipe { diff --git a/src/main/java/gtexpert/integration/tc/recipes/TCItemsRecipe.java b/src/main/java/com/github/gtexpert/core/integration/tc/recipes/TCItemsRecipe.java similarity index 53% rename from src/main/java/gtexpert/integration/tc/recipes/TCItemsRecipe.java rename to src/main/java/com/github/gtexpert/core/integration/tc/recipes/TCItemsRecipe.java index 458d51b2..4190da0e 100644 --- a/src/main/java/gtexpert/integration/tc/recipes/TCItemsRecipe.java +++ b/src/main/java/com/github/gtexpert/core/integration/tc/recipes/TCItemsRecipe.java @@ -1,4 +1,4 @@ -package gtexpert.integration.tc.recipes; +package com.github.gtexpert.core.integration.tc.recipes; public class TCItemsRecipe { diff --git a/src/main/java/gtexpert/integration/tc/recipes/TCMaterialsRecipe.java b/src/main/java/com/github/gtexpert/core/integration/tc/recipes/TCMaterialsRecipe.java similarity index 95% rename from src/main/java/gtexpert/integration/tc/recipes/TCMaterialsRecipe.java rename to src/main/java/com/github/gtexpert/core/integration/tc/recipes/TCMaterialsRecipe.java index b9f834f2..1f2b229c 100644 --- a/src/main/java/gtexpert/integration/tc/recipes/TCMaterialsRecipe.java +++ b/src/main/java/com/github/gtexpert/core/integration/tc/recipes/TCMaterialsRecipe.java @@ -1,9 +1,9 @@ -package gtexpert.integration.tc.recipes; +package com.github.gtexpert.core.integration.tc.recipes; import gregtech.api.recipes.ModHandler; import gregtech.common.ConfigHolder; -import gtexpert.api.util.Mods; +import com.github.gtexpert.core.api.util.Mods; public class TCMaterialsRecipe { diff --git a/src/main/java/gtexpert/integration/tc/recipes/TCToolsRecipe.java b/src/main/java/com/github/gtexpert/core/integration/tc/recipes/TCToolsRecipe.java similarity index 97% rename from src/main/java/gtexpert/integration/tc/recipes/TCToolsRecipe.java rename to src/main/java/com/github/gtexpert/core/integration/tc/recipes/TCToolsRecipe.java index a88f64d4..e04a9d56 100644 --- a/src/main/java/gtexpert/integration/tc/recipes/TCToolsRecipe.java +++ b/src/main/java/com/github/gtexpert/core/integration/tc/recipes/TCToolsRecipe.java @@ -1,4 +1,4 @@ -package gtexpert.integration.tc.recipes; +package com.github.gtexpert.core.integration.tc.recipes; import static gregtech.api.unification.ore.OrePrefix.*; @@ -7,9 +7,9 @@ import gregtech.api.unification.material.Materials; import gregtech.common.ConfigHolder; -import gtexpert.api.unification.material.GTEMaterials; -import gtexpert.api.util.Mods; -import gtexpert.integration.tc.TCConfigHolder; +import com.github.gtexpert.core.api.unification.material.GTEMaterials; +import com.github.gtexpert.core.api.util.Mods; +import com.github.gtexpert.core.integration.tc.TCConfigHolder; public class TCToolsRecipe { diff --git a/src/main/java/gtexpert/integration/te/TEConfigHolder.java b/src/main/java/com/github/gtexpert/core/integration/te/TEConfigHolder.java similarity index 66% rename from src/main/java/gtexpert/integration/te/TEConfigHolder.java rename to src/main/java/com/github/gtexpert/core/integration/te/TEConfigHolder.java index 13879d60..133fcaf7 100644 --- a/src/main/java/gtexpert/integration/te/TEConfigHolder.java +++ b/src/main/java/com/github/gtexpert/core/integration/te/TEConfigHolder.java @@ -1,9 +1,9 @@ -package gtexpert.integration.te; +package com.github.gtexpert.core.integration.te; import net.minecraftforge.common.config.Config; -import gtexpert.api.GTEValues; -import gtexpert.modules.GTEModules; +import com.github.gtexpert.core.api.GTEValues; +import com.github.gtexpert.core.modules.GTEModules; @Config.LangKey(GTEValues.MODID + ".config.integration.te") @Config(modid = GTEValues.MODID, diff --git a/src/main/java/gtexpert/integration/te/TEModule.java b/src/main/java/com/github/gtexpert/core/integration/te/TEModule.java similarity index 62% rename from src/main/java/gtexpert/integration/te/TEModule.java rename to src/main/java/com/github/gtexpert/core/integration/te/TEModule.java index 583a0e29..86131483 100644 --- a/src/main/java/gtexpert/integration/te/TEModule.java +++ b/src/main/java/com/github/gtexpert/core/integration/te/TEModule.java @@ -1,13 +1,13 @@ -package gtexpert.integration.te; +package com.github.gtexpert.core.integration.te; import net.minecraft.item.crafting.IRecipe; import net.minecraftforge.event.RegistryEvent; -import gtexpert.api.GTEValues; -import gtexpert.api.modules.GTEModule; -import gtexpert.api.util.Mods; -import gtexpert.integration.GTEIntegrationSubmodule; -import gtexpert.modules.GTEModules; +import com.github.gtexpert.core.api.GTEValues; +import com.github.gtexpert.core.api.modules.GTEModule; +import com.github.gtexpert.core.api.util.Mods; +import com.github.gtexpert.core.integration.GTEIntegrationSubmodule; +import com.github.gtexpert.core.modules.GTEModules; @GTEModule( moduleID = GTEModules.MODULE_TE, diff --git a/src/main/java/gtexpert/integration/theoneprobe/TheOneProbeModule.java b/src/main/java/com/github/gtexpert/core/integration/theoneprobe/TheOneProbeModule.java similarity index 70% rename from src/main/java/gtexpert/integration/theoneprobe/TheOneProbeModule.java rename to src/main/java/com/github/gtexpert/core/integration/theoneprobe/TheOneProbeModule.java index 4eb96343..c328d89a 100644 --- a/src/main/java/gtexpert/integration/theoneprobe/TheOneProbeModule.java +++ b/src/main/java/com/github/gtexpert/core/integration/theoneprobe/TheOneProbeModule.java @@ -1,4 +1,4 @@ -package gtexpert.integration.theoneprobe; +package com.github.gtexpert.core.integration.theoneprobe; import java.util.List; @@ -8,12 +8,12 @@ import com.google.common.collect.ImmutableList; -import gtexpert.api.GTEValues; -import gtexpert.api.modules.GTEModule; -import gtexpert.api.util.Mods; -import gtexpert.integration.GTEIntegrationSubmodule; -import gtexpert.integration.theoneprobe.provider.ElectricSpawnerInfoProvider; -import gtexpert.modules.GTEModules; +import com.github.gtexpert.core.api.GTEValues; +import com.github.gtexpert.core.api.modules.GTEModule; +import com.github.gtexpert.core.api.util.Mods; +import com.github.gtexpert.core.integration.GTEIntegrationSubmodule; +import com.github.gtexpert.core.integration.theoneprobe.provider.ElectricSpawnerInfoProvider; +import com.github.gtexpert.core.modules.GTEModules; import mcjty.theoneprobe.TheOneProbe; import mcjty.theoneprobe.api.ITheOneProbe; diff --git a/src/main/java/gtexpert/integration/theoneprobe/provider/ElectricSpawnerInfoProvider.java b/src/main/java/com/github/gtexpert/core/integration/theoneprobe/provider/ElectricSpawnerInfoProvider.java similarity index 86% rename from src/main/java/gtexpert/integration/theoneprobe/provider/ElectricSpawnerInfoProvider.java rename to src/main/java/com/github/gtexpert/core/integration/theoneprobe/provider/ElectricSpawnerInfoProvider.java index 76f02f57..8ab94f1c 100644 --- a/src/main/java/gtexpert/integration/theoneprobe/provider/ElectricSpawnerInfoProvider.java +++ b/src/main/java/com/github/gtexpert/core/integration/theoneprobe/provider/ElectricSpawnerInfoProvider.java @@ -1,4 +1,4 @@ -package gtexpert.integration.theoneprobe.provider; +package com.github.gtexpert.core.integration.theoneprobe.provider; import net.minecraft.block.state.IBlockState; import net.minecraft.entity.player.EntityPlayer; @@ -10,8 +10,8 @@ import gregtech.api.metatileentity.MetaTileEntity; import gregtech.api.metatileentity.MetaTileEntityHolder; -import gtexpert.api.GTEValues; -import gtexpert.integration.eio.metatileentities.MetaTileEntityElectricSpawner; +import com.github.gtexpert.core.api.GTEValues; +import com.github.gtexpert.core.integration.eio.metatileentities.MetaTileEntityElectricSpawner; import mcjty.theoneprobe.api.*; diff --git a/src/main/java/gtexpert/loaders/GTEOreDictionaryLoader.java b/src/main/java/com/github/gtexpert/core/loaders/GTEOreDictionaryLoader.java similarity index 79% rename from src/main/java/gtexpert/loaders/GTEOreDictionaryLoader.java rename to src/main/java/com/github/gtexpert/core/loaders/GTEOreDictionaryLoader.java index 24b9ea6d..d195b3ec 100644 --- a/src/main/java/gtexpert/loaders/GTEOreDictionaryLoader.java +++ b/src/main/java/com/github/gtexpert/core/loaders/GTEOreDictionaryLoader.java @@ -1,10 +1,10 @@ -package gtexpert.loaders; +package com.github.gtexpert.core.loaders; import net.minecraft.init.Blocks; import net.minecraft.item.ItemStack; import net.minecraftforge.oredict.OreDictionary; -import gtexpert.common.items.GTEMetaItems; +import com.github.gtexpert.core.common.items.GTEMetaItems; public class GTEOreDictionaryLoader { diff --git a/src/main/java/gtexpert/loaders/recipe/CEUOverrideRecipe.java b/src/main/java/com/github/gtexpert/core/loaders/recipe/CEUOverrideRecipe.java similarity index 96% rename from src/main/java/gtexpert/loaders/recipe/CEUOverrideRecipe.java rename to src/main/java/com/github/gtexpert/core/loaders/recipe/CEUOverrideRecipe.java index e0cdbdac..c6f087f8 100644 --- a/src/main/java/gtexpert/loaders/recipe/CEUOverrideRecipe.java +++ b/src/main/java/com/github/gtexpert/core/loaders/recipe/CEUOverrideRecipe.java @@ -1,4 +1,4 @@ -package gtexpert.loaders.recipe; +package com.github.gtexpert.core.loaders.recipe; import static gregtech.api.GTValues.*; import static gregtech.api.unification.material.info.MaterialFlags.*; @@ -38,8 +38,7 @@ import gregicality.multiblocks.api.fluids.GCYMFluidStorageKeys; import gregicality.multiblocks.api.unification.properties.GCYMPropertyKey; -import gtexpert.api.recipes.GTERecipeMaps; -import gtexpert.common.items.GTEMetaItems; +import com.github.gtexpert.core.common.items.GTEMetaItems; public class CEUOverrideRecipe { @@ -55,10 +54,7 @@ private static void materials() { List materials = new ArrayList<>(GregTechAPI.materialManager.getRegisteredMaterials()); materials.forEach(CEUOverrideRecipe::vacuumFreezerExtended); - // Electric Implosion Compressor - materials.forEach(CEUOverrideRecipe::electricImplosionRecipe); - - // Remove Gem (temp fix) + // Remove Gem materials.forEach(CEUOverrideRecipe::removeGem); // Iron Nugget @@ -379,7 +375,7 @@ private static void vacuumFreezerExtended(@NotNull Material material) { (int) material.getMass() * 3; // Check if the material has a blast temperature above 5000K - if (property.getBlastTemperature() > 5000) { + if (property.getBlastTemperature() >= 5000) { if (material.hasFlag(GENERATE_PLATE)) { RecipeMaps.VACUUM_RECIPES.recipeBuilder() .notConsumable(MetaItems.SHAPE_MOLD_PLATE) @@ -480,22 +476,6 @@ private static void vacuumFreezerExtended(@NotNull Material material) { } } - /** - * Electric Implosion Compressor recipes without explosives - * - * @param material The material to add recipes for - */ - private static void electricImplosionRecipe(@NotNull Material material) { - if (!material.hasProperty(PropertyKey.GEM)) return; - if (material == Materials.Lapotron) return; - if (!material.hasFlag(EXPLOSIVE) && !material.hasFlag(FLAMMABLE)) { - GTERecipeMaps.ELECTRIC_IMPLOSION_COMPRESSOR_RECIPES.recipeBuilder() - .input(dust, material, 4) - .output(gem, material, 3) - .buildAndRegister(); - } - } - /** * Remove gem recipes * diff --git a/src/main/java/gtexpert/loaders/recipe/GTERecipe.java b/src/main/java/com/github/gtexpert/core/loaders/recipe/GTERecipe.java similarity index 67% rename from src/main/java/gtexpert/loaders/recipe/GTERecipe.java rename to src/main/java/com/github/gtexpert/core/loaders/recipe/GTERecipe.java index e317f85c..8c20a7fd 100644 --- a/src/main/java/gtexpert/loaders/recipe/GTERecipe.java +++ b/src/main/java/com/github/gtexpert/core/loaders/recipe/GTERecipe.java @@ -1,4 +1,4 @@ -package gtexpert.loaders.recipe; +package com.github.gtexpert.core.loaders.recipe; import static gregtech.api.GTValues.*; import static gregtech.api.unification.ore.OrePrefix.*; @@ -27,29 +27,27 @@ import gregtech.api.unification.material.Materials; import gregtech.api.unification.material.info.MaterialFlags; import gregtech.api.unification.material.properties.PropertyKey; -import gregtech.api.unification.ore.OrePrefix; import gregtech.api.unification.stack.UnificationEntry; import gregtech.common.ConfigHolder; import gregtech.common.blocks.BlockGlassCasing; import gregtech.common.blocks.BlockMachineCasing; -import gregtech.common.blocks.BlockSteamCasing; import gregtech.common.blocks.MetaBlocks; import gregtech.common.items.MetaItems; import gregtech.common.metatileentities.MetaTileEntities; import gregicality.multiblocks.api.fluids.GCYMFluidStorageKeys; -import gtexpert.api.GTEValues; -import gtexpert.api.recipes.GTERecipeMaps; -import gtexpert.api.unification.material.GTEMaterials; -import gtexpert.api.util.GTELog; -import gtexpert.api.util.GTEUtility; -import gtexpert.api.util.Mods; -import gtexpert.common.GTEConfigHolder; -import gtexpert.common.blocks.GTEBlockMetalCasing; -import gtexpert.common.blocks.GTEMetaBlocks; -import gtexpert.common.items.GTEMetaItems; -import gtexpert.common.metatileentities.GTEMetaTileEntities; +import com.github.gtexpert.core.api.GTEValues; +import com.github.gtexpert.core.api.recipes.GTERecipeMaps; +import com.github.gtexpert.core.api.unification.material.GTEMaterials; +import com.github.gtexpert.core.api.util.GTELog; +import com.github.gtexpert.core.api.util.GTEUtility; +import com.github.gtexpert.core.api.util.Mods; +import com.github.gtexpert.core.common.GTEConfigHolder; +import com.github.gtexpert.core.common.blocks.GTEBlockMetalCasing; +import com.github.gtexpert.core.common.blocks.GTEMetaBlocks; +import com.github.gtexpert.core.common.items.GTEMetaItems; +import com.github.gtexpert.core.common.metatileentities.GTEMetaTileEntities; public class GTERecipe { @@ -58,7 +56,7 @@ public static void init() { items(); blocks(); tools(); - end_contents(); + if (GTEConfigHolder.gteFlag.addCreativeRecipe) end_contents(); } private static void materials() { @@ -260,208 +258,210 @@ private static void items() { .buildAndRegister(); // Primitive Parts - String componentsName = GTEConfigHolder.gteFlag.componentsName ? "ulv" : "primitive"; - switch (GTEConfigHolder.gteFlag.componentsRecipeType) { - case "none" -> { - return; - } - case "easy" -> { - ModHandler.addShapedRecipe(true, "electric_motor_" + componentsName, - GTEMetaItems.GTE_ELECTRIC_MOTOR.getStackForm(), "WR", "MW", - 'R', new UnificationEntry(stick, Materials.Bronze), - 'M', new UnificationEntry(stick, Materials.IronMagnetic), - 'W', new UnificationEntry(wireGtSingle, Materials.Tin)); - - ModHandler.addShapedRecipe(true, "electric_piston_" + componentsName, - GTEMetaItems.GTE_ELECTRIC_PISTON.getStackForm(), "PR", "MG", - 'R', new UnificationEntry(stick, Materials.Bronze), - 'G', new UnificationEntry(gearSmall, Materials.Bronze), - 'P', new UnificationEntry(plate, Materials.Bronze), - 'M', GTEMetaItems.GTE_ELECTRIC_MOTOR.getStackForm()); - - ModHandler.addShapedRecipe(true, "electric_pump_" + componentsName, - GTEMetaItems.GTE_ELECTRIC_PUMP.getStackForm(), "PR", "MO", - 'R', new UnificationEntry(rotor, Materials.Bronze), - 'O', new UnificationEntry(ring, Materials.Rubber), - 'P', new UnificationEntry(pipeNormalFluid, Materials.Copper), - 'M', GTEMetaItems.GTE_ELECTRIC_MOTOR.getStackForm()); - - ModHandler.addShapedRecipe(true, "conveyor_module_" + componentsName, - GTEMetaItems.GTE_CONVEYOR_MODULE.getStackForm(), "PC", "MP", - 'P', new UnificationEntry(plate, Materials.Rubber), - 'C', new UnificationEntry(cableGtSingle, Materials.Lead), - 'M', GTEMetaItems.GTE_ELECTRIC_MOTOR.getStackForm()); - - ModHandler.addShapedRecipe(true, "robot_arm_" + componentsName, - GTEMetaItems.GTE_ROBOT_ARM.getStackForm(), "PR", "MC", - 'R', new UnificationEntry(stick, Materials.Bronze), - 'C', new UnificationEntry(circuit, MarkerMaterials.Tier.ULV), - 'P', GTEMetaItems.GTE_ELECTRIC_PISTON.getStackForm(), - 'M', GTEMetaItems.GTE_ELECTRIC_MOTOR.getStackForm()); - - ModHandler.addShapedRecipe(true, "fluid_regulator_" + componentsName, - GTEMetaItems.GTE_FLUID_REGULATOR.getStackForm(), "PC", "Cd", - 'C', new UnificationEntry(circuit, MarkerMaterials.Tier.ULV), - 'P', GTEMetaItems.GTE_ELECTRIC_PUMP.getStackForm()); - - ModHandler.addShapedRecipe(true, "field_generator_" + componentsName, - GTEMetaItems.GTE_FIELD_GENERATOR.getStackForm(), "CP", "UG", - 'C', new UnificationEntry(wireGtDouble, Materials.RedAlloy), - 'P', new UnificationEntry(plate, Materials.Bronze), - 'U', new UnificationEntry(circuit, MarkerMaterials.Tier.ULV), - 'G', new UnificationEntry(gem, Materials.Lapis)); - - ModHandler.addShapedRecipe(true, "emitter_" + componentsName, - GTEMetaItems.GTE_EMITTER.getStackForm(), "CS", "UG", - 'C', new UnificationEntry(cableGtSingle, Materials.RedAlloy), - 'S', new UnificationEntry(stick, Materials.Bronze), - 'U', new UnificationEntry(circuit, MarkerMaterials.Tier.ULV), - 'G', new UnificationEntry(gem, Materials.Lapis)); - - ModHandler.addShapedRecipe(true, "sensor_" + componentsName, - GTEMetaItems.GTE_SENSOR.getStackForm(), "PG", "US", - 'P', new UnificationEntry(plate, Materials.Bronze), - 'S', new UnificationEntry(stick, Materials.Bronze), - 'U', new UnificationEntry(circuit, MarkerMaterials.Tier.ULV), - 'G', new UnificationEntry(gem, Materials.Lapis)); - } - case "normal" -> { - ModHandler.addShapedRecipe(true, "electric_motor_" + componentsName, - GTEMetaItems.GTE_ELECTRIC_MOTOR.getStackForm(), "CWR", "WMW", "RWC", - 'R', new UnificationEntry(stick, Materials.Bronze), - 'M', new UnificationEntry(stick, Materials.IronMagnetic), - 'W', new UnificationEntry(wireGtSingle, Materials.Tin), - 'C', new UnificationEntry(cableGtSingle, Materials.Lead)); - RecipeMaps.ASSEMBLER_RECIPES.recipeBuilder() - .input(cableGtSingle, Materials.Lead, 2) - .input(stick, Materials.Bronze, 2) - .input(stick, Materials.IronMagnetic) - .input(wireGtSingle, Materials.Tin, 4) - .output(GTEMetaItems.GTE_ELECTRIC_MOTOR) - .duration(100).EUt(VA[ULV]).buildAndRegister(); - - ModHandler.addShapedRecipe(true, "electric_piston_" + componentsName, - GTEMetaItems.GTE_ELECTRIC_PISTON.getStackForm(), "PPP", "CRR", "CMG", - 'R', new UnificationEntry(stick, Materials.Bronze), - 'G', new UnificationEntry(gearSmall, Materials.Bronze), - 'P', new UnificationEntry(plate, Materials.Bronze), - 'C', new UnificationEntry(cableGtSingle, Materials.Lead), - 'M', GTEMetaItems.GTE_ELECTRIC_MOTOR.getStackForm()); - RecipeMaps.ASSEMBLER_RECIPES.recipeBuilder() - .input(stick, Materials.Bronze, 2) - .input(cableGtSingle, Materials.Lead, 2) - .input(plate, Materials.Bronze, 3) - .input(gearSmall, Materials.Bronze) - .input(GTEMetaItems.GTE_ELECTRIC_MOTOR) - .output(GTEMetaItems.GTE_ELECTRIC_PISTON) - .duration(100).EUt(VA[ULV]).buildAndRegister(); - - ModHandler.addShapedRecipe(true, "electric_pump_" + componentsName, - GTEMetaItems.GTE_ELECTRIC_PUMP.getStackForm(), "SRO", "dPw", "OMC", - 'R', new UnificationEntry(rotor, Materials.Bronze), - 'S', new UnificationEntry(screw, Materials.Bronze), - 'O', new UnificationEntry(ring, Materials.Rubber), - 'P', new UnificationEntry(pipeNormalFluid, Materials.Copper), - 'C', new UnificationEntry(cableGtSingle, Materials.Lead), - 'M', GTEMetaItems.GTE_ELECTRIC_MOTOR.getStackForm()); - RecipeMaps.ASSEMBLER_RECIPES.recipeBuilder() - .input(cableGtSingle, Materials.Lead) - .input(pipeNormalFluid, Materials.Copper) - .input(screw, Materials.Bronze) - .input(rotor, Materials.Bronze) - .input(ring, Materials.Rubber, 2) - .input(GTEMetaItems.GTE_ELECTRIC_MOTOR) - .output(GTEMetaItems.GTE_ELECTRIC_PUMP) - .duration(100).EUt(VA[ULV]).buildAndRegister(); - - ModHandler.addShapedRecipe(true, "conveyor_module_" + componentsName, - GTEMetaItems.GTE_CONVEYOR_MODULE.getStackForm(), "PPP", "MCM", "PPP", - 'P', new UnificationEntry(plate, Materials.Rubber), - 'C', new UnificationEntry(cableGtSingle, Materials.Lead), - 'M', GTEMetaItems.GTE_ELECTRIC_MOTOR.getStackForm()); - RecipeMaps.ASSEMBLER_RECIPES.recipeBuilder() - .input(cableGtSingle, Materials.Lead) - .inputs(GTEMetaItems.GTE_ELECTRIC_MOTOR.getStackForm(2)) - .fluidInputs(Materials.Rubber.getFluid(L * 6)) - .circuitMeta(1) - .output(GTEMetaItems.GTE_CONVEYOR_MODULE) - .duration(100).EUt(VA[ULV]).buildAndRegister(); - - ModHandler.addShapedRecipe(true, "robot_arm_" + componentsName, - GTEMetaItems.GTE_ROBOT_ARM.getStackForm(), "CCC", "MRM", "PUR", - 'R', new UnificationEntry(stick, Materials.Bronze), - 'C', new UnificationEntry(cableGtSingle, Materials.Lead), - 'U', new UnificationEntry(circuit, MarkerMaterials.Tier.ULV), - 'P', GTEMetaItems.GTE_ELECTRIC_PISTON.getStackForm(), - 'M', GTEMetaItems.GTE_ELECTRIC_MOTOR.getStackForm()); - RecipeMaps.ASSEMBLER_RECIPES.recipeBuilder() - .input(cableGtSingle, Materials.Lead, 3) - .input(stick, Materials.Bronze, 2) - .input(GTEMetaItems.GTE_ELECTRIC_MOTOR, 2) - .input(GTEMetaItems.GTE_ELECTRIC_PISTON) - .input(circuit, MarkerMaterials.Tier.ULV) - .output(GTEMetaItems.GTE_ROBOT_ARM) - .duration(100).EUt(VA[ULV]).buildAndRegister(); - - ModHandler.addShapedRecipe(true, "fluid_regulator_" + componentsName, - GTEMetaItems.GTE_FLUID_REGULATOR.getStackForm(), " U ", "dPw", " U ", - 'U', new UnificationEntry(circuit, MarkerMaterials.Tier.ULV), - 'P', GTEMetaItems.GTE_ELECTRIC_PUMP.getStackForm()); - RecipeMaps.ASSEMBLER_RECIPES.recipeBuilder() - .input(GTEMetaItems.GTE_ELECTRIC_PUMP) - .input(circuit, MarkerMaterials.Tier.ULV, 2) - .circuitMeta(1) - .output(GTEMetaItems.GTE_FLUID_REGULATOR) - .EUt(VA[ULV]) - .duration(400) - .withRecycling() - .buildAndRegister(); - - ModHandler.addShapedRecipe(true, "field_generator_" + componentsName, - GTEMetaItems.GTE_FIELD_GENERATOR.getStackForm(), "CPC", "UGU", "CPC", - 'C', new UnificationEntry(wireGtDouble, Materials.RedAlloy), - 'P', new UnificationEntry(plate, Materials.Bronze), - 'U', new UnificationEntry(circuit, MarkerMaterials.Tier.ULV), - 'G', new UnificationEntry(gem, Materials.Lapis)); - RecipeMaps.ASSEMBLER_RECIPES.recipeBuilder() - .input(gem, Materials.Lapis) - .input(plate, Materials.Bronze, 2) - .input(circuit, MarkerMaterials.Tier.ULV, 2) - .input(wireGtDouble, Materials.RedAlloy, 4) - .output(GTEMetaItems.GTE_FIELD_GENERATOR) - .duration(100).EUt(VA[ULV]).buildAndRegister(); - - ModHandler.addShapedRecipe(true, "emitter_" + componentsName, - GTEMetaItems.GTE_EMITTER.getStackForm(), "CSU", "SGS", "USC", - 'C', new UnificationEntry(cableGtSingle, Materials.RedAlloy), - 'S', new UnificationEntry(stick, Materials.Bronze), - 'U', new UnificationEntry(circuit, MarkerMaterials.Tier.ULV), - 'G', new UnificationEntry(gem, Materials.Lapis)); - RecipeMaps.ASSEMBLER_RECIPES.recipeBuilder() - .circuitMeta(1) - .input(stick, Materials.Bronze, 4) - .input(cableGtSingle, Materials.RedAlloy, 2) - .input(circuit, MarkerMaterials.Tier.ULV, 2) - .input(gem, Materials.Lapis) - .output(GTEMetaItems.GTE_EMITTER) - .duration(100).EUt(VA[ULV]).buildAndRegister(); - - ModHandler.addShapedRecipe(true, "sensor_" + componentsName, - GTEMetaItems.GTE_SENSOR.getStackForm(), "P G", "PS ", "UPP", - 'P', new UnificationEntry(plate, Materials.Bronze), - 'S', new UnificationEntry(stick, Materials.Bronze), - 'U', new UnificationEntry(circuit, MarkerMaterials.Tier.ULV), - 'G', new UnificationEntry(gem, Materials.Lapis)); - RecipeMaps.ASSEMBLER_RECIPES.recipeBuilder() - .input(stick, Materials.Bronze) - .input(plate, Materials.Bronze, 4) - .input(circuit, MarkerMaterials.Tier.ULV) - .input(gem, Materials.Lapis) - .output(GTEMetaItems.GTE_SENSOR) - .duration(100).EUt(VA[ULV]).buildAndRegister(); + String componentsName = GTEConfigHolder.gteFlag.componentsName; + if (componentsName.equals("ulv") || componentsName.equals("primitive")) { + switch (GTEConfigHolder.gteFlag.componentsRecipeType) { + case "none" -> { + return; + } + case "easy" -> { + ModHandler.addShapedRecipe(true, "electric_motor_" + componentsName, + GTEMetaItems.GTE_ELECTRIC_MOTOR.getStackForm(), "WR", "MW", + 'R', new UnificationEntry(stick, Materials.Bronze), + 'M', new UnificationEntry(stick, Materials.IronMagnetic), + 'W', new UnificationEntry(wireGtSingle, Materials.Tin)); + + ModHandler.addShapedRecipe(true, "electric_piston_" + componentsName, + GTEMetaItems.GTE_ELECTRIC_PISTON.getStackForm(), "PR", "MG", + 'R', new UnificationEntry(stick, Materials.Bronze), + 'G', new UnificationEntry(gearSmall, Materials.Bronze), + 'P', new UnificationEntry(plate, Materials.Bronze), + 'M', GTEMetaItems.GTE_ELECTRIC_MOTOR.getStackForm()); + + ModHandler.addShapedRecipe(true, "electric_pump_" + componentsName, + GTEMetaItems.GTE_ELECTRIC_PUMP.getStackForm(), "PR", "MO", + 'R', new UnificationEntry(rotor, Materials.Bronze), + 'O', new UnificationEntry(ring, Materials.Rubber), + 'P', new UnificationEntry(pipeNormalFluid, Materials.Copper), + 'M', GTEMetaItems.GTE_ELECTRIC_MOTOR.getStackForm()); + + ModHandler.addShapedRecipe(true, "conveyor_module_" + componentsName, + GTEMetaItems.GTE_CONVEYOR_MODULE.getStackForm(), "PC", "MP", + 'P', new UnificationEntry(plate, Materials.Rubber), + 'C', new UnificationEntry(cableGtSingle, Materials.Lead), + 'M', GTEMetaItems.GTE_ELECTRIC_MOTOR.getStackForm()); + + ModHandler.addShapedRecipe(true, "robot_arm_" + componentsName, + GTEMetaItems.GTE_ROBOT_ARM.getStackForm(), "PR", "MC", + 'R', new UnificationEntry(stick, Materials.Bronze), + 'C', new UnificationEntry(circuit, MarkerMaterials.Tier.ULV), + 'P', GTEMetaItems.GTE_ELECTRIC_PISTON.getStackForm(), + 'M', GTEMetaItems.GTE_ELECTRIC_MOTOR.getStackForm()); + + ModHandler.addShapedRecipe(true, "fluid_regulator_" + componentsName, + GTEMetaItems.GTE_FLUID_REGULATOR.getStackForm(), "PC", "Cd", + 'C', new UnificationEntry(circuit, MarkerMaterials.Tier.ULV), + 'P', GTEMetaItems.GTE_ELECTRIC_PUMP.getStackForm()); + + ModHandler.addShapedRecipe(true, "field_generator_" + componentsName, + GTEMetaItems.GTE_FIELD_GENERATOR.getStackForm(), "CP", "UG", + 'C', new UnificationEntry(wireGtDouble, Materials.RedAlloy), + 'P', new UnificationEntry(plate, Materials.Bronze), + 'U', new UnificationEntry(circuit, MarkerMaterials.Tier.ULV), + 'G', new UnificationEntry(gem, Materials.Lapis)); + + ModHandler.addShapedRecipe(true, "emitter_" + componentsName, + GTEMetaItems.GTE_EMITTER.getStackForm(), "CS", "UG", + 'C', new UnificationEntry(cableGtSingle, Materials.RedAlloy), + 'S', new UnificationEntry(stick, Materials.Bronze), + 'U', new UnificationEntry(circuit, MarkerMaterials.Tier.ULV), + 'G', new UnificationEntry(gem, Materials.Lapis)); + + ModHandler.addShapedRecipe(true, "sensor_" + componentsName, + GTEMetaItems.GTE_SENSOR.getStackForm(), "PG", "US", + 'P', new UnificationEntry(plate, Materials.Bronze), + 'S', new UnificationEntry(stick, Materials.Bronze), + 'U', new UnificationEntry(circuit, MarkerMaterials.Tier.ULV), + 'G', new UnificationEntry(gem, Materials.Lapis)); + } + case "normal" -> { + ModHandler.addShapedRecipe(true, "electric_motor_" + componentsName, + GTEMetaItems.GTE_ELECTRIC_MOTOR.getStackForm(), "CWR", "WMW", "RWC", + 'R', new UnificationEntry(stick, Materials.Bronze), + 'M', new UnificationEntry(stick, Materials.IronMagnetic), + 'W', new UnificationEntry(wireGtSingle, Materials.Tin), + 'C', new UnificationEntry(cableGtSingle, Materials.Lead)); + RecipeMaps.ASSEMBLER_RECIPES.recipeBuilder() + .input(cableGtSingle, Materials.Lead, 2) + .input(stick, Materials.Bronze, 2) + .input(stick, Materials.IronMagnetic) + .input(wireGtSingle, Materials.Tin, 4) + .output(GTEMetaItems.GTE_ELECTRIC_MOTOR) + .duration(100).EUt(VA[ULV]).buildAndRegister(); + + ModHandler.addShapedRecipe(true, "electric_piston_" + componentsName, + GTEMetaItems.GTE_ELECTRIC_PISTON.getStackForm(), "PPP", "CRR", "CMG", + 'R', new UnificationEntry(stick, Materials.Bronze), + 'G', new UnificationEntry(gearSmall, Materials.Bronze), + 'P', new UnificationEntry(plate, Materials.Bronze), + 'C', new UnificationEntry(cableGtSingle, Materials.Lead), + 'M', GTEMetaItems.GTE_ELECTRIC_MOTOR.getStackForm()); + RecipeMaps.ASSEMBLER_RECIPES.recipeBuilder() + .input(stick, Materials.Bronze, 2) + .input(cableGtSingle, Materials.Lead, 2) + .input(plate, Materials.Bronze, 3) + .input(gearSmall, Materials.Bronze) + .input(GTEMetaItems.GTE_ELECTRIC_MOTOR) + .output(GTEMetaItems.GTE_ELECTRIC_PISTON) + .duration(100).EUt(VA[ULV]).buildAndRegister(); + + ModHandler.addShapedRecipe(true, "electric_pump_" + componentsName, + GTEMetaItems.GTE_ELECTRIC_PUMP.getStackForm(), "SRO", "dPw", "OMC", + 'R', new UnificationEntry(rotor, Materials.Bronze), + 'S', new UnificationEntry(screw, Materials.Bronze), + 'O', new UnificationEntry(ring, Materials.Rubber), + 'P', new UnificationEntry(pipeNormalFluid, Materials.Copper), + 'C', new UnificationEntry(cableGtSingle, Materials.Lead), + 'M', GTEMetaItems.GTE_ELECTRIC_MOTOR.getStackForm()); + RecipeMaps.ASSEMBLER_RECIPES.recipeBuilder() + .input(cableGtSingle, Materials.Lead) + .input(pipeNormalFluid, Materials.Copper) + .input(screw, Materials.Bronze) + .input(rotor, Materials.Bronze) + .input(ring, Materials.Rubber, 2) + .input(GTEMetaItems.GTE_ELECTRIC_MOTOR) + .output(GTEMetaItems.GTE_ELECTRIC_PUMP) + .duration(100).EUt(VA[ULV]).buildAndRegister(); + + ModHandler.addShapedRecipe(true, "conveyor_module_" + componentsName, + GTEMetaItems.GTE_CONVEYOR_MODULE.getStackForm(), "PPP", "MCM", "PPP", + 'P', new UnificationEntry(plate, Materials.Rubber), + 'C', new UnificationEntry(cableGtSingle, Materials.Lead), + 'M', GTEMetaItems.GTE_ELECTRIC_MOTOR.getStackForm()); + RecipeMaps.ASSEMBLER_RECIPES.recipeBuilder() + .input(cableGtSingle, Materials.Lead) + .inputs(GTEMetaItems.GTE_ELECTRIC_MOTOR.getStackForm(2)) + .fluidInputs(Materials.Rubber.getFluid(L * 6)) + .circuitMeta(1) + .output(GTEMetaItems.GTE_CONVEYOR_MODULE) + .duration(100).EUt(VA[ULV]).buildAndRegister(); + + ModHandler.addShapedRecipe(true, "robot_arm_" + componentsName, + GTEMetaItems.GTE_ROBOT_ARM.getStackForm(), "CCC", "MRM", "PUR", + 'R', new UnificationEntry(stick, Materials.Bronze), + 'C', new UnificationEntry(cableGtSingle, Materials.Lead), + 'U', new UnificationEntry(circuit, MarkerMaterials.Tier.ULV), + 'P', GTEMetaItems.GTE_ELECTRIC_PISTON.getStackForm(), + 'M', GTEMetaItems.GTE_ELECTRIC_MOTOR.getStackForm()); + RecipeMaps.ASSEMBLER_RECIPES.recipeBuilder() + .input(cableGtSingle, Materials.Lead, 3) + .input(stick, Materials.Bronze, 2) + .input(GTEMetaItems.GTE_ELECTRIC_MOTOR, 2) + .input(GTEMetaItems.GTE_ELECTRIC_PISTON) + .input(circuit, MarkerMaterials.Tier.ULV) + .output(GTEMetaItems.GTE_ROBOT_ARM) + .duration(100).EUt(VA[ULV]).buildAndRegister(); + + ModHandler.addShapedRecipe(true, "fluid_regulator_" + componentsName, + GTEMetaItems.GTE_FLUID_REGULATOR.getStackForm(), " U ", "dPw", " U ", + 'U', new UnificationEntry(circuit, MarkerMaterials.Tier.ULV), + 'P', GTEMetaItems.GTE_ELECTRIC_PUMP.getStackForm()); + RecipeMaps.ASSEMBLER_RECIPES.recipeBuilder() + .input(GTEMetaItems.GTE_ELECTRIC_PUMP) + .input(circuit, MarkerMaterials.Tier.ULV, 2) + .circuitMeta(1) + .output(GTEMetaItems.GTE_FLUID_REGULATOR) + .EUt(VA[ULV]) + .duration(400) + .withRecycling() + .buildAndRegister(); + + ModHandler.addShapedRecipe(true, "field_generator_" + componentsName, + GTEMetaItems.GTE_FIELD_GENERATOR.getStackForm(), "CPC", "UGU", "CPC", + 'C', new UnificationEntry(wireGtDouble, Materials.RedAlloy), + 'P', new UnificationEntry(plate, Materials.Bronze), + 'U', new UnificationEntry(circuit, MarkerMaterials.Tier.ULV), + 'G', new UnificationEntry(gem, Materials.Lapis)); + RecipeMaps.ASSEMBLER_RECIPES.recipeBuilder() + .input(gem, Materials.Lapis) + .input(plate, Materials.Bronze, 2) + .input(circuit, MarkerMaterials.Tier.ULV, 2) + .input(wireGtDouble, Materials.RedAlloy, 4) + .output(GTEMetaItems.GTE_FIELD_GENERATOR) + .duration(100).EUt(VA[ULV]).buildAndRegister(); + + ModHandler.addShapedRecipe(true, "emitter_" + componentsName, + GTEMetaItems.GTE_EMITTER.getStackForm(), "CSU", "SGS", "USC", + 'C', new UnificationEntry(cableGtSingle, Materials.RedAlloy), + 'S', new UnificationEntry(stick, Materials.Bronze), + 'U', new UnificationEntry(circuit, MarkerMaterials.Tier.ULV), + 'G', new UnificationEntry(gem, Materials.Lapis)); + RecipeMaps.ASSEMBLER_RECIPES.recipeBuilder() + .circuitMeta(1) + .input(stick, Materials.Bronze, 4) + .input(cableGtSingle, Materials.RedAlloy, 2) + .input(circuit, MarkerMaterials.Tier.ULV, 2) + .input(gem, Materials.Lapis) + .output(GTEMetaItems.GTE_EMITTER) + .duration(100).EUt(VA[ULV]).buildAndRegister(); + + ModHandler.addShapedRecipe(true, "sensor_" + componentsName, + GTEMetaItems.GTE_SENSOR.getStackForm(), "P G", "PS ", "UPP", + 'P', new UnificationEntry(plate, Materials.Bronze), + 'S', new UnificationEntry(stick, Materials.Bronze), + 'U', new UnificationEntry(circuit, MarkerMaterials.Tier.ULV), + 'G', new UnificationEntry(gem, Materials.Lapis)); + RecipeMaps.ASSEMBLER_RECIPES.recipeBuilder() + .input(stick, Materials.Bronze) + .input(plate, Materials.Bronze, 4) + .input(circuit, MarkerMaterials.Tier.ULV) + .input(gem, Materials.Lapis) + .output(GTEMetaItems.GTE_SENSOR) + .duration(100).EUt(VA[ULV]).buildAndRegister(); + } + default -> GTELog.logger.error("Invalid componentsRecipeType setting: {}", + GTEConfigHolder.gteFlag.componentsRecipeType); } - default -> GTELog.logger - .error("Invalid componentsRecipeType setting: " + GTEConfigHolder.gteFlag.componentsRecipeType); } // Solar Panels @@ -762,78 +762,6 @@ private static void items() { } private static void blocks() { - if (GTEConfigHolder.gteFlag.steamNewMachine) { - switch (GTEConfigHolder.gteFlag.steamRecipeType) { - case "none": - return; - case "easy": - case "normal": - // Steam Mixer - ModHandler.addShapedRecipe(true, "steam_mixer_bronze", - GTEMetaTileEntities.STEAM_MIXER_BRONZE.getStackForm(), "GRG", "GEG", "CMC", - 'M', MetaBlocks.STEAM_CASING.getItemVariant(BlockSteamCasing.SteamCasingType.BRONZE_HULL), - 'E', GTEMetaItems.GTE_ELECTRIC_MOTOR, - 'R', new UnificationEntry(rotor, Materials.Bronze), - 'C', new UnificationEntry(circuit, MarkerMaterials.Tier.ULV), - 'G', Blocks.GLASS); - - // Steam Assembler - ModHandler.addShapedRecipe(true, "steam_assembler_bronze", - GTEMetaTileEntities.STEAM_ASSEMBLER_BRONZE.getStackForm(), "ACA", "VMV", "WCW", - 'M', MetaBlocks.STEAM_CASING.getItemVariant(BlockSteamCasing.SteamCasingType.BRONZE_HULL), - 'V', GTEMetaItems.GTE_CONVEYOR_MODULE, - 'A', GTEMetaItems.GTE_ROBOT_ARM, - 'C', new UnificationEntry(circuit, MarkerMaterials.Tier.ULV), - 'W', new UnificationEntry(cableGtSingle, Materials.Lead)); - - // Steam Circuit Assembler - ModHandler.addShapedRecipe(true, "steam_circuit_assembler_bronze", - GTEMetaTileEntities.STEAM_CIRCUIT_ASSEMBLER_BRONZE.getStackForm(), "RIE", "CHC", "WIW", - 'R', GTEMetaItems.GTE_ROBOT_ARM, - 'I', GTEUtility.oreDictionaryCircuit(GTValues.LV), - 'E', GTEMetaItems.GTE_EMITTER, - 'C', GTEMetaItems.GTE_CONVEYOR_MODULE, - 'H', MetaBlocks.STEAM_CASING.getItemVariant(BlockSteamCasing.SteamCasingType.BRONZE_HULL), - 'W', new UnificationEntry(cableGtSingle, Materials.Lead)); - - // High Pressure Steam Mixer - ModHandler.addShapedRecipe(true, "steam_compressor_steel", - GTEMetaTileEntities.STEAM_MIXER_STEEL.getStackForm(), "PSP", "WMW", "PPP", - 'M', GTEMetaTileEntities.STEAM_MIXER_BRONZE.getStackForm(), - 'S', new UnificationEntry(OrePrefix.plate, Materials.Steel), - 'W', new UnificationEntry(OrePrefix.plate, Materials.WroughtIron), - 'P', new UnificationEntry(OrePrefix.pipeSmallFluid, Materials.TinAlloy)); - - // High Pressure Steam Assembler - ModHandler.addShapedRecipe(true, "steam_assembler_steel", - GTEMetaTileEntities.STEAM_ASSEMBLER_STEEL.getStackForm(), "PSP", "WMW", "PPP", - 'M', GTEMetaTileEntities.STEAM_ASSEMBLER_BRONZE.getStackForm(), - 'S', new UnificationEntry(OrePrefix.plate, Materials.Steel), - 'W', new UnificationEntry(OrePrefix.plate, Materials.WroughtIron), - 'P', new UnificationEntry(OrePrefix.pipeSmallFluid, Materials.TinAlloy)); - - // High Pressure Steam Circuit Assembler - ModHandler.addShapedRecipe(true, "steam_circuit_assembler_steel", - GTEMetaTileEntities.STEAM_CIRCUIT_ASSEMBLER_STEEL.getStackForm(), "PSP", "WMW", "PPP", - 'M', GTEMetaTileEntities.STEAM_CIRCUIT_ASSEMBLER_BRONZE.getStackForm(), - 'S', new UnificationEntry(OrePrefix.plate, Materials.Steel), - 'W', new UnificationEntry(OrePrefix.plate, Materials.WroughtIron), - 'P', new UnificationEntry(OrePrefix.pipeSmallFluid, Materials.TinAlloy)); - default: - GTELog.logger.error("Invalid steamRecipeType setting: " + GTEConfigHolder.gteFlag.steamRecipeType); - } - } - - // Sawmill - ModHandler.addShapedRecipe(true, "gtexpert.machine.sawmill", - GTEMetaTileEntities.SAWMILL.getStackForm(), "SBs", "MHM", "COC", - 'S', new UnificationEntry(screw, Materials.Steel), - 'B', new UnificationEntry(toolHeadBuzzSaw, Materials.Steel), - 'M', MetaItems.ELECTRIC_MOTOR_MV.getStackForm(), - 'H', MetaTileEntities.HULL[MV].getStackForm(), - 'C', new UnificationEntry(circuit, MarkerMaterials.Tier.MV), - 'O', MetaItems.CONVEYOR_MODULE_MV.getStackForm()); - // Large Oil Cracking Unit ModHandler.addShapedRecipe(true, "gtexpert.machine.large_oil_cracking_unit", GTEMetaTileEntities.LARGE_CRACKER.getStackForm(), "PCP", "FSF", "PCP", @@ -909,22 +837,6 @@ private static void blocks() { List materials = new ArrayList<>(GregTechAPI.materialManager.getRegisteredMaterials()); materials.forEach(GTERecipe::voidOreMiner); - // Treated Wood Machine Casing - ModHandler.addShapedRecipe(true, "casing_treated_wood", - GTEMetaBlocks.GTE_METAL_CASING.getItemVariant(GTEBlockMetalCasing.MetalCasingType.SAWMill, - ConfigHolder.recipes.casingsPerCraft), - "PhP", "PFP", "PwP", - 'P', new UnificationEntry(plate, Materials.TreatedWood), - 'F', new UnificationEntry(frameGt, Materials.TreatedWood)); - RecipeMaps.ASSEMBLER_RECIPES.recipeBuilder() - .circuitMeta(6) - .input(plate, Materials.TreatedWood, 6) - .input(frameGt, Materials.TreatedWood, 1) - .outputs(GTEMetaBlocks.GTE_METAL_CASING - .getItemVariant(GTEBlockMetalCasing.MetalCasingType.SAWMill, 2)) - .duration(50).EUt(VH[LV]) - .buildAndRegister(); - // Void Ore Miner Casing RecipeMaps.ASSEMBLER_RECIPES.recipeBuilder() .inputs(MetaBlocks.MACHINE_CASING.getItemVariant(BlockMachineCasing.MachineCasingType.ZPM)) @@ -938,16 +850,6 @@ private static void blocks() { ConfigHolder.recipes.casingsPerCraft)) .duration(100).EUt(VA[ZPM]) .buildAndRegister(); - - // Sawmill Conveyor - RecipeMaps.ASSEMBLER_RECIPES.recipeBuilder() - .input(MetaItems.CONVEYOR_MODULE_MV, 1) - .input(frameGt, Materials.TreatedWood, 1) - .input(Items.LEATHER, 3) - .fluidInputs(Materials.Glue.getFluid(100)) - .output(GTEMetaBlocks.BLOCK_SAWMILL_CONVEYOR, 1) - .duration(100).EUt(VA[MV]) - .buildAndRegister(); } private static void tools() { diff --git a/src/main/java/gtexpert/loaders/recipe/GTEVanillaOverrideRecipes.java b/src/main/java/com/github/gtexpert/core/loaders/recipe/GTEVanillaOverrideRecipes.java similarity index 94% rename from src/main/java/gtexpert/loaders/recipe/GTEVanillaOverrideRecipes.java rename to src/main/java/com/github/gtexpert/core/loaders/recipe/GTEVanillaOverrideRecipes.java index ab6e77cf..b4213488 100644 --- a/src/main/java/gtexpert/loaders/recipe/GTEVanillaOverrideRecipes.java +++ b/src/main/java/com/github/gtexpert/core/loaders/recipe/GTEVanillaOverrideRecipes.java @@ -1,9 +1,9 @@ -package gtexpert.loaders.recipe; +package com.github.gtexpert.core.loaders.recipe; +import static com.github.gtexpert.core.common.GTEConfigHolder.ceuOverride; import static gregtech.api.GTValues.MV; import static gregtech.api.GTValues.VA; import static gregtech.api.unification.ore.OrePrefix.*; -import static gtexpert.common.GTEConfigHolder.ceuOverride; import net.minecraft.init.Blocks; import net.minecraft.init.Items; @@ -15,7 +15,7 @@ import gregtech.api.recipes.category.RecipeCategories; import gregtech.api.unification.material.Materials; -import gtexpert.api.util.Mods; +import com.github.gtexpert.core.api.util.Mods; public class GTEVanillaOverrideRecipes { diff --git a/src/main/java/com/github/gtexpert/core/loaders/recipe/handlers/GTEImplosionNoBombRecipeHandler.java b/src/main/java/com/github/gtexpert/core/loaders/recipe/handlers/GTEImplosionNoBombRecipeHandler.java new file mode 100644 index 00000000..3c9ea81d --- /dev/null +++ b/src/main/java/com/github/gtexpert/core/loaders/recipe/handlers/GTEImplosionNoBombRecipeHandler.java @@ -0,0 +1,34 @@ +package com.github.gtexpert.core.loaders.recipe.handlers; + +import static gregtech.api.unification.ore.OrePrefix.block; + +import net.minecraft.item.ItemStack; + +import gregtech.api.unification.material.Material; +import gregtech.api.util.GTUtility; + +import com.github.gtexpert.inb.api.recipes.INBRecipeMaps; + +public class GTEImplosionNoBombRecipeHandler { + + public static void add(Material inputMaterial, Material outputMaterial) { + INBRecipeMaps.ELECTRIC_IMPLOSION_COMPRESSOR_RECIPES.recipeBuilder() + .input(block, inputMaterial, 4) + .output(block, outputMaterial, 3) + .buildAndRegister(); + } + + public static void add(Material inputMaterial, ItemStack outputStack) { + INBRecipeMaps.ELECTRIC_IMPLOSION_COMPRESSOR_RECIPES.recipeBuilder() + .input(block, inputMaterial, 4) + .outputs(GTUtility.copy(3, outputStack)) + .buildAndRegister(); + } + + public static void add(String inputOreDict, ItemStack outputStack) { + INBRecipeMaps.ELECTRIC_IMPLOSION_COMPRESSOR_RECIPES.recipeBuilder() + .input(inputOreDict, 4) + .outputs(GTUtility.copy(3, outputStack)) + .buildAndRegister(); + } +} diff --git a/src/main/java/gtexpert/loaders/recipe/handlers/GTEMaterialRecipeHandler.java b/src/main/java/com/github/gtexpert/core/loaders/recipe/handlers/GTEImplosionRecipeHandler.java similarity index 53% rename from src/main/java/gtexpert/loaders/recipe/handlers/GTEMaterialRecipeHandler.java rename to src/main/java/com/github/gtexpert/core/loaders/recipe/handlers/GTEImplosionRecipeHandler.java index 2bc29cc8..447c423e 100644 --- a/src/main/java/gtexpert/loaders/recipe/handlers/GTEMaterialRecipeHandler.java +++ b/src/main/java/com/github/gtexpert/core/loaders/recipe/handlers/GTEImplosionRecipeHandler.java @@ -1,4 +1,4 @@ -package gtexpert.loaders.recipe.handlers; +package com.github.gtexpert.core.loaders.recipe.handlers; import static gregtech.api.unification.ore.OrePrefix.*; @@ -6,93 +6,102 @@ import gregtech.api.recipes.RecipeMaps; import gregtech.api.unification.material.Material; +import gregtech.api.unification.material.Materials; import gregtech.api.util.GTUtility; import gregtech.common.blocks.MetaBlocks; import gregtech.common.items.MetaItems; -import gtexpert.api.recipes.GTERecipeMaps; +import com.github.gtexpert.core.api.util.Mods; -public class GTEMaterialRecipeHandler { - // TODO: リファクタリング +public class GTEImplosionRecipeHandler { - public static void addImplosionRecipes(Material inputMaterial, Material outputMaterial) { + public static void add(Material inputMaterial, Material outputMaterial) { RecipeMaps.IMPLOSION_RECIPES.recipeBuilder() .input(dust, inputMaterial, 4) .output(gem, outputMaterial, 3) - .explosivesType(new ItemStack(MetaBlocks.POWDERBARREL, 8)) + .explosives(new ItemStack(MetaBlocks.POWDERBARREL, 8)) + .chancedOutput(dust, Materials.DarkAsh, 2500, 0) .buildAndRegister(); RecipeMaps.IMPLOSION_RECIPES.recipeBuilder() .input(dust, inputMaterial, 4) .output(gem, outputMaterial, 3) - .explosivesAmount(4) + .explosives(4) + .chancedOutput(dust, Materials.DarkAsh, 2500, 0) .buildAndRegister(); RecipeMaps.IMPLOSION_RECIPES.recipeBuilder() .input(dust, inputMaterial, 4) .output(gem, outputMaterial, 3) - .explosivesType(MetaItems.DYNAMITE.getStackForm(2)) + .explosives(MetaItems.DYNAMITE.getStackForm(2)) + .chancedOutput(dust, Materials.DarkAsh, 2500, 0) .buildAndRegister(); RecipeMaps.IMPLOSION_RECIPES.recipeBuilder() .input(dust, inputMaterial, 4) .output(gem, outputMaterial, 3) - .explosivesType(new ItemStack(MetaBlocks.ITNT)) - .buildAndRegister(); - GTERecipeMaps.ELECTRIC_IMPLOSION_COMPRESSOR_RECIPES.recipeBuilder() - .input(dust, inputMaterial, 4) - .output(gem, outputMaterial, 3) + .explosives(new ItemStack(MetaBlocks.ITNT)) + .chancedOutput(dust, Materials.DarkAsh, 2500, 0) .buildAndRegister(); + + if (!Mods.ImplosionNoBomb.isModLoaded()) return; + GTEImplosionNoBombRecipeHandler.add(inputMaterial, outputMaterial); } - public static void addImplosionRecipes(Material inputMaterial, ItemStack outputStack) { + public static void add(Material inputMaterial, ItemStack outputStack) { RecipeMaps.IMPLOSION_RECIPES.recipeBuilder() .input(dust, inputMaterial, 4) .outputs(GTUtility.copy(3, outputStack)) - .explosivesType(new ItemStack(MetaBlocks.POWDERBARREL, 8)) + .explosives(new ItemStack(MetaBlocks.POWDERBARREL, 8)) + .chancedOutput(dust, Materials.DarkAsh, 2500, 0) .buildAndRegister(); RecipeMaps.IMPLOSION_RECIPES.recipeBuilder() .input(dust, inputMaterial, 4) .outputs(GTUtility.copy(3, outputStack)) - .explosivesAmount(4) + .explosives(4) + .chancedOutput(dust, Materials.DarkAsh, 2500, 0) .buildAndRegister(); RecipeMaps.IMPLOSION_RECIPES.recipeBuilder() .input(dust, inputMaterial, 4) .outputs(outputStack) - .explosivesType(MetaItems.DYNAMITE.getStackForm(2)) + .explosives(MetaItems.DYNAMITE.getStackForm(2)) + .chancedOutput(dust, Materials.DarkAsh, 2500, 0) .buildAndRegister(); RecipeMaps.IMPLOSION_RECIPES.recipeBuilder() .input(dust, inputMaterial, 4) .outputs(GTUtility.copy(3, outputStack)) - .explosivesType(new ItemStack(MetaBlocks.ITNT)) - .buildAndRegister(); - GTERecipeMaps.ELECTRIC_IMPLOSION_COMPRESSOR_RECIPES.recipeBuilder() - .input(dust, inputMaterial, 4) - .outputs(GTUtility.copy(3, outputStack)) + .explosives(new ItemStack(MetaBlocks.ITNT)) + .chancedOutput(dust, Materials.DarkAsh, 2500, 0) .buildAndRegister(); + + if (!Mods.ImplosionNoBomb.isModLoaded()) return; + GTEImplosionNoBombRecipeHandler.add(inputMaterial, outputStack); } - public static void addImplosionRecipes(String inputOreDict, ItemStack outputStack) { + public static void add(String inputOreDict, ItemStack outputStack) { RecipeMaps.IMPLOSION_RECIPES.recipeBuilder() .input(inputOreDict, 4) .outputs(GTUtility.copy(3, outputStack)) - .explosivesType(new ItemStack(MetaBlocks.POWDERBARREL, 8)) + .explosives(new ItemStack(MetaBlocks.POWDERBARREL, 8)) + .chancedOutput(dust, Materials.DarkAsh, 2500, 0) .buildAndRegister(); RecipeMaps.IMPLOSION_RECIPES.recipeBuilder() .input(inputOreDict, 4) .outputs(GTUtility.copy(3, outputStack)) - .explosivesAmount(4) + .explosives(4) + .chancedOutput(dust, Materials.DarkAsh, 2500, 0) .buildAndRegister(); RecipeMaps.IMPLOSION_RECIPES.recipeBuilder() .input(inputOreDict, 4) .outputs(GTUtility.copy(3, outputStack)) - .explosivesType(MetaItems.DYNAMITE.getStackForm(2)) + .explosives(MetaItems.DYNAMITE.getStackForm(2)) + .chancedOutput(dust, Materials.DarkAsh, 2500, 0) .buildAndRegister(); RecipeMaps.IMPLOSION_RECIPES.recipeBuilder() .input(inputOreDict, 4) .outputs(GTUtility.copy(3, outputStack)) - .explosivesType(new ItemStack(MetaBlocks.ITNT)) - .buildAndRegister(); - GTERecipeMaps.ELECTRIC_IMPLOSION_COMPRESSOR_RECIPES.recipeBuilder() - .input(inputOreDict, 4) - .outputs(GTUtility.copy(3, outputStack)) + .explosives(new ItemStack(MetaBlocks.ITNT)) + .chancedOutput(dust, Materials.DarkAsh, 2500, 0) .buildAndRegister(); + + if (!Mods.ImplosionNoBomb.isModLoaded()) return; + GTEImplosionNoBombRecipeHandler.add(inputOreDict, outputStack); } } diff --git a/src/main/java/gtexpert/mixins/GTEMixinLoader.java b/src/main/java/com/github/gtexpert/core/mixins/GTEMixinLoader.java similarity index 90% rename from src/main/java/gtexpert/mixins/GTEMixinLoader.java rename to src/main/java/com/github/gtexpert/core/mixins/GTEMixinLoader.java index 512b5605..36df49d3 100644 --- a/src/main/java/gtexpert/mixins/GTEMixinLoader.java +++ b/src/main/java/com/github/gtexpert/core/mixins/GTEMixinLoader.java @@ -1,4 +1,4 @@ -package gtexpert.mixins; +package com.github.gtexpert.core.mixins; import java.util.AbstractMap; import java.util.List; @@ -9,9 +9,9 @@ import net.minecraftforge.fml.common.Loader; -import gtexpert.api.GTEValues; -import gtexpert.api.util.GTELog; -import gtexpert.api.util.Mods; +import com.github.gtexpert.core.api.GTEValues; +import com.github.gtexpert.core.api.util.GTELog; +import com.github.gtexpert.core.api.util.Mods; import zone.rong.mixinbooter.ILateMixinLoader; @@ -20,8 +20,8 @@ public class GTEMixinLoader implements ILateMixinLoader { public static final Map modMixinsConfig = Stream.of( new AbstractMap.SimpleImmutableEntry<>(Mods.Names.DRACONIC_ADDITIONS, Mods.DraconicAdditions.isModLoaded()), - new AbstractMap.SimpleImmutableEntry<>(Mods.Names.GREGICALITY_MULTIBLOCKS, - Mods.GregicalityMultiblocks.isModLoaded())) + new AbstractMap.SimpleImmutableEntry<>(Mods.Names.GREGTECH, + Mods.GregTech.isModLoaded())) .collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue)); @Override diff --git a/src/main/java/gtexpert/mixins/draconicadditions/items/baubles/ShieldNecklaceMixin.java b/src/main/java/com/github/gtexpert/core/mixins/draconicadditions/items/baubles/ShieldNecklaceMixin.java similarity index 97% rename from src/main/java/gtexpert/mixins/draconicadditions/items/baubles/ShieldNecklaceMixin.java rename to src/main/java/com/github/gtexpert/core/mixins/draconicadditions/items/baubles/ShieldNecklaceMixin.java index 16183cff..e7345c9f 100644 --- a/src/main/java/gtexpert/mixins/draconicadditions/items/baubles/ShieldNecklaceMixin.java +++ b/src/main/java/com/github/gtexpert/core/mixins/draconicadditions/items/baubles/ShieldNecklaceMixin.java @@ -1,4 +1,4 @@ -package gtexpert.mixins.draconicadditions.items.baubles; +package com.github.gtexpert.core.mixins.draconicadditions.items.baubles; import net.foxmcloud.draconicadditions.items.baubles.BaubleStats; import net.foxmcloud.draconicadditions.items.baubles.ShieldNecklace; diff --git a/src/main/java/gtexpert/mixins/draconicadditions/items/tools/PortableWiredChargerMixin.java b/src/main/java/com/github/gtexpert/core/mixins/draconicadditions/items/tools/PortableWiredChargerMixin.java similarity index 91% rename from src/main/java/gtexpert/mixins/draconicadditions/items/tools/PortableWiredChargerMixin.java rename to src/main/java/com/github/gtexpert/core/mixins/draconicadditions/items/tools/PortableWiredChargerMixin.java index c8d2b673..c99b1685 100644 --- a/src/main/java/gtexpert/mixins/draconicadditions/items/tools/PortableWiredChargerMixin.java +++ b/src/main/java/com/github/gtexpert/core/mixins/draconicadditions/items/tools/PortableWiredChargerMixin.java @@ -1,4 +1,4 @@ -package gtexpert.mixins.draconicadditions.items.tools; +package com.github.gtexpert.core.mixins.draconicadditions.items.tools; import net.foxmcloud.draconicadditions.items.tools.PortableWiredCharger; import net.minecraft.item.ItemStack; diff --git a/src/main/java/gtexpert/mixins/draconicadditions/lib/DARecipesMixin.java b/src/main/java/com/github/gtexpert/core/mixins/draconicadditions/lib/DARecipesMixin.java similarity index 87% rename from src/main/java/gtexpert/mixins/draconicadditions/lib/DARecipesMixin.java rename to src/main/java/com/github/gtexpert/core/mixins/draconicadditions/lib/DARecipesMixin.java index 3c1328f0..cc682b03 100644 --- a/src/main/java/gtexpert/mixins/draconicadditions/lib/DARecipesMixin.java +++ b/src/main/java/com/github/gtexpert/core/mixins/draconicadditions/lib/DARecipesMixin.java @@ -1,4 +1,4 @@ -package gtexpert.mixins.draconicadditions.lib; +package com.github.gtexpert.core.mixins.draconicadditions.lib; import net.foxmcloud.draconicadditions.lib.DARecipes; diff --git a/src/main/java/com/github/gtexpert/core/mixins/gregtech/QuarkTechSuiteMixin.java b/src/main/java/com/github/gtexpert/core/mixins/gregtech/QuarkTechSuiteMixin.java new file mode 100644 index 00000000..ddf54d85 --- /dev/null +++ b/src/main/java/com/github/gtexpert/core/mixins/gregtech/QuarkTechSuiteMixin.java @@ -0,0 +1,24 @@ +package com.github.gtexpert.core.mixins.gregtech; + +import net.minecraft.util.FoodStats; + +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Redirect; + +import gregtech.common.items.armor.QuarkTechSuite; + +import com.github.gtexpert.core.common.GTEConfigHolder; + +@Mixin(value = QuarkTechSuite.class, remap = false) +public class QuarkTechSuiteMixin { + + @Redirect(method = "onArmorTick", at = @At(value = "INVOKE", target = "Lnet/minecraft/util/FoodStats;needFood()Z")) + private boolean gteCore$onArmorTick(FoodStats foodStats) { + if (GTEConfigHolder.ceuOverride.disableHelmetAutoEat) { + return false; + } else { + return foodStats.needFood(); + } + } +} diff --git a/src/main/java/gtexpert/modules/BaseGTEModule.java b/src/main/java/com/github/gtexpert/core/modules/BaseGTEModule.java similarity index 71% rename from src/main/java/gtexpert/modules/BaseGTEModule.java rename to src/main/java/com/github/gtexpert/core/modules/BaseGTEModule.java index 6956ee43..c22d6bfb 100644 --- a/src/main/java/gtexpert/modules/BaseGTEModule.java +++ b/src/main/java/com/github/gtexpert/core/modules/BaseGTEModule.java @@ -1,4 +1,4 @@ -package gtexpert.modules; +package com.github.gtexpert.core.modules; import java.util.Collections; import java.util.Set; @@ -7,8 +7,8 @@ import org.jetbrains.annotations.NotNull; -import gtexpert.api.modules.IGTEModule; -import gtexpert.api.util.GTEUtility; +import com.github.gtexpert.core.api.modules.IGTEModule; +import com.github.gtexpert.core.api.util.GTEUtility; public abstract class BaseGTEModule implements IGTEModule { diff --git a/src/main/java/gtexpert/modules/GTEModuleManager.java b/src/main/java/com/github/gtexpert/core/modules/GTEModuleManager.java similarity index 99% rename from src/main/java/gtexpert/modules/GTEModuleManager.java rename to src/main/java/com/github/gtexpert/core/modules/GTEModuleManager.java index 035a4eba..d5814881 100644 --- a/src/main/java/gtexpert/modules/GTEModuleManager.java +++ b/src/main/java/com/github/gtexpert/core/modules/GTEModuleManager.java @@ -1,4 +1,4 @@ -package gtexpert.modules; +package com.github.gtexpert.core.modules; import java.io.File; import java.util.*; @@ -22,8 +22,8 @@ import com.google.common.base.Preconditions; import com.google.common.collect.ImmutableList; -import gtexpert.api.GTEValues; -import gtexpert.api.modules.*; +import com.github.gtexpert.core.api.GTEValues; +import com.github.gtexpert.core.api.modules.*; public class GTEModuleManager implements IModuleManager { diff --git a/src/main/java/gtexpert/modules/GTEModules.java b/src/main/java/com/github/gtexpert/core/modules/GTEModules.java similarity index 92% rename from src/main/java/gtexpert/modules/GTEModules.java rename to src/main/java/com/github/gtexpert/core/modules/GTEModules.java index 99422742..2671bf16 100644 --- a/src/main/java/gtexpert/modules/GTEModules.java +++ b/src/main/java/com/github/gtexpert/core/modules/GTEModules.java @@ -1,7 +1,7 @@ -package gtexpert.modules; +package com.github.gtexpert.core.modules; -import gtexpert.api.GTEValues; -import gtexpert.api.modules.IModuleContainer; +import com.github.gtexpert.core.api.GTEValues; +import com.github.gtexpert.core.api.modules.IModuleContainer; public class GTEModules implements IModuleContainer { diff --git a/src/main/java/gtexpert/api/recipes/GTERecipeMaps.java b/src/main/java/gtexpert/api/recipes/GTERecipeMaps.java deleted file mode 100644 index ddc14475..00000000 --- a/src/main/java/gtexpert/api/recipes/GTERecipeMaps.java +++ /dev/null @@ -1,90 +0,0 @@ -package gtexpert.api.recipes; - -import static gregtech.api.GTValues.*; -import static gregtech.api.unification.ore.OrePrefix.dust; - -import net.minecraft.init.SoundEvents; - -import gregtech.api.gui.GuiTextures; -import gregtech.api.gui.widgets.ProgressWidget; -import gregtech.api.recipes.RecipeMap; -import gregtech.api.recipes.RecipeMaps; -import gregtech.api.recipes.builders.SimpleRecipeBuilder; -import gregtech.api.unification.material.Materials; -import gregtech.core.sound.GTSoundEvents; - -import gtexpert.api.gui.GTEGuiTextures; - -import crafttweaker.annotations.ZenRegister; -import stanhebben.zenscript.annotations.ZenExpansion; -import stanhebben.zenscript.annotations.ZenProperty; - -@ZenExpansion("mods.gregtech.recipe.RecipeMaps") -@ZenRegister -public class GTERecipeMaps { - - @ZenProperty - public static final RecipeMap SIEVE_RECIPES = new RecipeMap<>( - "sieve", 2, 30, 0, 0, new SimpleRecipeBuilder(), false) - .setProgressBar(GuiTextures.PROGRESS_BAR_SIFT, ProgressWidget.MoveType.VERTICAL_INVERTED) - .setSound(SoundEvents.BLOCK_SAND_PLACE); - - @ZenProperty - public static final RecipeMap SAWMILL_RECIPES = new RecipeMap<>( - "sawmill", 2, 2, 1, 0, new SimpleRecipeBuilder(), false) - .setSlotOverlay(false, false, GuiTextures.SAWBLADE_OVERLAY) - .setSlotOverlay(true, false, false, GuiTextures.CUTTER_OVERLAY) - .setSlotOverlay(true, false, true, GuiTextures.DUST_OVERLAY) - .setProgressBar(GuiTextures.PROGRESS_BAR_SLICE, ProgressWidget.MoveType.HORIZONTAL) - .setSound(GTSoundEvents.CHAINSAW_TOOL); - - @ZenProperty - public static final RecipeMap VOID_ORE_MINER_RECIPES = new RecipeMap<>( - "void_ore_miner", 1, 1, 2, 0, new SimpleRecipeBuilder(), false) - .setProgressBar(GTEGuiTextures.PROGRESS_BAR_VOM, ProgressWidget.MoveType.VERTICAL) - .setSound(GTSoundEvents.DRILL_TOOL); - - @ZenProperty - public static final RecipeMap LARGE_GAS_COLLECTOR_RECIPES = new RecipeMap<>( - "large_gas_collector", 2, 0, 1, 2, new SimpleRecipeBuilder(), false) - .setSlotOverlay(false, false, GuiTextures.DUST_OVERLAY) - .setSlotOverlay(true, true, GuiTextures.CENTRIFUGE_OVERLAY) - .setProgressBar(GuiTextures.PROGRESS_BAR_GAS_COLLECTOR, ProgressWidget.MoveType.HORIZONTAL) - .setSound(GTSoundEvents.COOLING); - - @ZenProperty - public static final RecipeMap ELECTRIC_IMPLOSION_COMPRESSOR_RECIPES = new RecipeMap<>( - "electric_implosion_compressor", 6, 2, 0, 0, - new SimpleRecipeBuilder().duration(1).EUt(VA[UV]).chancedOutput(dust, Materials.DarkAsh, 2500, 0), false) - .setSlotOverlay(false, false, false, GuiTextures.IMPLOSION_OVERLAY_2) - .setSlotOverlay(false, false, false, GuiTextures.IMPLOSION_OVERLAY_2) - .setSlotOverlay(false, false, false, GuiTextures.IMPLOSION_OVERLAY_2) - .setSlotOverlay(false, false, false, GuiTextures.IMPLOSION_OVERLAY_2) - .setSlotOverlay(false, false, false, GuiTextures.IMPLOSION_OVERLAY_2) - .setSlotOverlay(false, false, true, GuiTextures.IMPLOSION_OVERLAY_2) - .setSlotOverlay(true, false, true, GuiTextures.DUST_OVERLAY) - .setSound(SoundEvents.ENTITY_GENERIC_EXPLODE) - .setSmallRecipeMap(RecipeMaps.IMPLOSION_RECIPES); - - @ZenProperty - public static final RecipeMap STEAM_MIXER_RECIPES = new RecipeMap<>( - "steam_mixer", 6, 2, 0, 0, new SimpleRecipeBuilder(), false) - .setSlotOverlay(false, false, GuiTextures.DUST_OVERLAY) - .setSlotOverlay(true, false, GuiTextures.DUST_OVERLAY) - .setProgressBar(GuiTextures.PROGRESS_BAR_MIXER, ProgressWidget.MoveType.CIRCULAR) - .setSound(GTSoundEvents.MIXER); - - @ZenProperty - public static final RecipeMap STEAM_ASSEMBLER_RECIPES = new RecipeMap<>( - "steam_assembler", 9, 2, 0, 0, new SimpleRecipeBuilder(), false) - .setSlotOverlay(false, false, GuiTextures.CIRCUIT_OVERLAY) - .setProgressBar(GuiTextures.PROGRESS_BAR_CIRCUIT, ProgressWidget.MoveType.HORIZONTAL) - .setSound(GTSoundEvents.ASSEMBLER); - - @ZenProperty - public static final RecipeMap STEAM_CIRCUIT_ASSEMBLER_RECIPES = new RecipeMap<>( - "steam_circuit_assembler", 6, 2, 0, 0, new SimpleRecipeBuilder(), false) - .setSlotOverlay(false, false, GuiTextures.CIRCUIT_OVERLAY) - .setProgressBar(GuiTextures.PROGRESS_BAR_CIRCUIT_ASSEMBLER, ProgressWidget.MoveType.HORIZONTAL) - .setSound(GTSoundEvents.ASSEMBLER); -} diff --git a/src/main/java/gtexpert/api/unification/GTEElements.java b/src/main/java/gtexpert/api/unification/GTEElements.java deleted file mode 100644 index 841004dd..00000000 --- a/src/main/java/gtexpert/api/unification/GTEElements.java +++ /dev/null @@ -1,25 +0,0 @@ -package gtexpert.api.unification; - -import java.util.*; - -import gregtech.api.unification.Element; - -public class GTEElements { - - private GTEElements() {} - - private static final Map elements = new HashMap<>(); - public static final Element Dr = add(37, 51, -1, null, "Dragon", "Dr", false); - public static final Element Dr1 = add(30, 39, -1, null, "Chaos", "Dr+", false); - public static final Element De = add(9, 11, -1, null, "Draconium", "De", false); - public static final Element De1 = add(43, 55, -1, null, "AwakenedDraconium", "De+", false); - public static final Element If = add(1, 0, -1, null, "Infinity", "If", false); - public static final Element FeMa = add(1, 0, -1, null, "Thaumium", "FeMa", false); - - public static Element add(long protons, long neutrons, long halfLifeSeconds, String decayTo, String name, - String symbol, boolean isIsotope) { - Element element = new Element(protons, neutrons, halfLifeSeconds, decayTo, name, symbol, isIsotope); - elements.put(name, element); - return element; - } -} diff --git a/src/main/java/gtexpert/common/blocks/BlockSawmillConveyor.java b/src/main/java/gtexpert/common/blocks/BlockSawmillConveyor.java deleted file mode 100644 index 547fcc33..00000000 --- a/src/main/java/gtexpert/common/blocks/BlockSawmillConveyor.java +++ /dev/null @@ -1,92 +0,0 @@ -package gtexpert.common.blocks; - -import net.minecraft.block.Block; -import net.minecraft.block.BlockHorizontal; -import net.minecraft.block.SoundType; -import net.minecraft.block.properties.PropertyDirection; -import net.minecraft.block.state.BlockStateContainer; -import net.minecraft.block.state.IBlockState; -import net.minecraft.entity.EntityLiving; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.util.BlockRenderLayer; -import net.minecraft.util.EnumFacing; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.IBlockAccess; -import net.minecraft.world.World; - -import org.jetbrains.annotations.NotNull; - -import gregtech.api.items.toolitem.ToolClasses; - -public class BlockSawmillConveyor extends Block { - - public static final PropertyDirection FACING = BlockHorizontal.FACING; - - public BlockSawmillConveyor() { - super(net.minecraft.block.material.Material.IRON); - setTranslationKey("sawmill_conveyor"); - setHardness(2.5f); - setResistance(10.0f); - setSoundType(SoundType.WOOD); - setHarvestLevel(ToolClasses.WRENCH, 1); - setDefaultState(this.blockState.getBaseState().withProperty(FACING, EnumFacing.NORTH)); - } - - @Override - public boolean canCreatureSpawn(@NotNull IBlockState state, @NotNull IBlockAccess world, @NotNull BlockPos pos, - @NotNull EntityLiving.SpawnPlacementType type) { - return false; - } - - @Override - protected @NotNull BlockStateContainer createBlockState() { - return new BlockStateContainer(this, FACING); - } - - @Override - public int getMetaFromState(@NotNull IBlockState state) { - return state.getValue(BlockHorizontal.FACING).getHorizontalIndex(); - } - - @NotNull - public IBlockState getStateFromMeta(int meta) { - return this.getDefaultState().withProperty(FACING, EnumFacing.byHorizontalIndex(meta)); - } - - @Override - public @NotNull IBlockState getStateForPlacement(World worldIn, BlockPos pos, EnumFacing facing, float hitX, - float hitY, float hitZ, int meta, - @NotNull EntityLivingBase placer) { - return getDefaultState().withProperty(FACING, placer.getHorizontalFacing().getOpposite()); - } - - @Override - public BlockRenderLayer getRenderLayer() { - return BlockRenderLayer.CUTOUT; - } - - @Override - public boolean doesSideBlockRendering(IBlockState state, IBlockAccess world, BlockPos pos, EnumFacing face) { - if (face == EnumFacing.UP) return false; - return super.doesSideBlockRendering(state, world, pos, face); - } - - @Override - public boolean isOpaqueCube(IBlockState state) { - return false; - } - - @Override - public boolean isTopSolid(IBlockState state) { - return true; - } - - @Override - public boolean isSideSolid(IBlockState base_state, IBlockAccess world, BlockPos pos, EnumFacing side) { - if (side == EnumFacing.UP) { - return true; - } else { - return false; - } - } -} diff --git a/src/main/java/gtexpert/common/items/GTEToolItems.java b/src/main/java/gtexpert/common/items/GTEToolItems.java deleted file mode 100644 index a9e47da6..00000000 --- a/src/main/java/gtexpert/common/items/GTEToolItems.java +++ /dev/null @@ -1,42 +0,0 @@ -package gtexpert.common.items; - -import gregtech.api.GTValues; -import gregtech.api.items.toolitem.*; -import gregtech.common.items.ToolItems; -import gregtech.common.items.tool.*; -import gregtech.core.sound.GTSoundEvents; - -public final class GTEToolItems { - - private GTEToolItems() {/**/} - - public static IGTTool CHAINSAW_HV; - public static IGTTool CHAINSAW_IV; - - public static void init() { - CHAINSAW_HV = ToolItems.register(ItemGTTool.Builder.of(GTValues.MODID, "chainsaw_hv") - .toolStats(b -> b.blockBreaking() - .efficiencyMultiplier(3.0F) - .attackDamage(5.0F).attackSpeed(-3.2F) - .brokenStack(ToolHelper.SUPPLY_POWER_UNIT_HV) - .behaviors(HarvestIceBehavior.INSTANCE, DisableShieldBehavior.INSTANCE, - TreeFellingBehavior.INSTANCE)) - .oreDict(ToolOreDict.toolAxe) - .secondaryOreDicts(ToolOreDict.toolChainsaw) - .sound(GTSoundEvents.CHAINSAW_TOOL, true) - .toolClasses(ToolClasses.AXE) - .electric(GTValues.HV)); - CHAINSAW_IV = ToolItems.register(ItemGTTool.Builder.of(GTValues.MODID, "chainsaw_iv") - .toolStats(b -> b.blockBreaking() - .efficiencyMultiplier(4.0F) - .attackDamage(5.0F).attackSpeed(-3.2F) - .brokenStack(ToolHelper.SUPPLY_POWER_UNIT_IV) - .behaviors(HarvestIceBehavior.INSTANCE, DisableShieldBehavior.INSTANCE, - TreeFellingBehavior.INSTANCE)) - .oreDict(ToolOreDict.toolAxe) - .secondaryOreDicts(ToolOreDict.toolChainsaw) - .sound(GTSoundEvents.CHAINSAW_TOOL, true) - .toolClasses(ToolClasses.AXE) - .electric(GTValues.IV)); - } -} diff --git a/src/main/java/gtexpert/common/metatileentities/GTEMetaTileEntities.java b/src/main/java/gtexpert/common/metatileentities/GTEMetaTileEntities.java deleted file mode 100644 index 7bbd71de..00000000 --- a/src/main/java/gtexpert/common/metatileentities/GTEMetaTileEntities.java +++ /dev/null @@ -1,88 +0,0 @@ -package gtexpert.common.metatileentities; - -import static gregtech.common.metatileentities.MetaTileEntities.*; -import static gtexpert.api.util.GTEUtility.gteId; - -import java.util.function.Function; - -import net.minecraft.util.ResourceLocation; - -import gregtech.api.GTValues; -import gregtech.api.recipes.RecipeMap; -import gregtech.client.renderer.ICubeRenderer; - -import gtexpert.common.GTEConfigHolder; -import gtexpert.common.metatileentities.multi.*; -import gtexpert.common.metatileentities.single.SteamAssembler; -import gtexpert.common.metatileentities.single.SteamCircuitAssembler; -import gtexpert.common.metatileentities.single.SteamMixer; - -public class GTEMetaTileEntities { - - // Single Machine - public static SteamMixer STEAM_MIXER_BRONZE; - public static SteamMixer STEAM_MIXER_STEEL; - public static SteamAssembler STEAM_ASSEMBLER_BRONZE; - public static SteamAssembler STEAM_ASSEMBLER_STEEL; - public static SteamCircuitAssembler STEAM_CIRCUIT_ASSEMBLER_BRONZE; - public static SteamCircuitAssembler STEAM_CIRCUIT_ASSEMBLER_STEEL; - - // Multi Machine - public static MetaTileEntitySawmill SAWMILL; - public static MetaTileEntityLargeCrackingUnit LARGE_CRACKER; - public static MetaTileEntityVoidOreMiner VOIDOREMINER; - public static MetaTileEntityAdvancedChemicalPlant ADVANCED_CHEMICAL_PLANT; - public static MetaTileEntityLargeGasCollector LARGE_GAS_COLLECTOR; - - public static void init() { - // Single Machine - // Steam machine 11004~11009 - if (GTEConfigHolder.gteFlag.steamNewMachine) { - STEAM_MIXER_BRONZE = registerMetaTileEntity(11004, - new SteamMixer(gteId("steam_mixer_bronze"), false)); - STEAM_MIXER_STEEL = registerMetaTileEntity(11005, - new SteamMixer(gteId("steam_mixer_steel"), true)); - STEAM_ASSEMBLER_BRONZE = registerMetaTileEntity(11006, - new SteamAssembler(gteId("steam_assembler_bronze"), false)); - STEAM_ASSEMBLER_STEEL = registerMetaTileEntity(11007, - new SteamAssembler(gteId("steam_assembler_steel"), true)); - STEAM_CIRCUIT_ASSEMBLER_BRONZE = registerMetaTileEntity(11008, - new SteamCircuitAssembler(gteId("steam_circuit_assembler_bronze"), false)); - STEAM_CIRCUIT_ASSEMBLER_STEEL = registerMetaTileEntity(11009, - new SteamCircuitAssembler(gteId("steam_circuit_assembler_steel"), true)); - } - - // Multi Machine - SAWMILL = registerMetaTileEntity(12001, - new MetaTileEntitySawmill(gteId("sawmill"))); - LARGE_CRACKER = registerMetaTileEntity(12002, - new MetaTileEntityLargeCrackingUnit(gteId("large_cracking_unit"))); - VOIDOREMINER = registerMetaTileEntity(12003, - new MetaTileEntityVoidOreMiner(gteId("void_ore_miner"))); - // 12004~12005 is reserved for Draconic Evolution - ADVANCED_CHEMICAL_PLANT = registerMetaTileEntity(12006, - new MetaTileEntityAdvancedChemicalPlant(gteId("advanced_chemical_plant"))); - LARGE_GAS_COLLECTOR = registerMetaTileEntity(12007, - new MetaTileEntityLargeGasCollector(gteId(GTEConfigHolder.gteFlag.featureFlag ? - "large_gas_collector" : "advanced_gas_collector"))); - } - - public static void registerGTESimpleMetaTileEntity(GTESimpleMachineMetaTileEntity[] machines, int startId, - String name, RecipeMap map, ICubeRenderer texture, - boolean hasFrontFacing, - Function resourceId, - Function tankScalingFunction) { - for (int i = 0; i < machines.length - 1; ++i) { - if (i <= 4 || getMidTier(name)) { - if (i > 7 && !getHighTier(name)) { - break; - } - - String voltageName = GTValues.VN[i + 1].toLowerCase(); - machines[i + 1] = registerMetaTileEntity(startId + i, - new GTESimpleMachineMetaTileEntity(resourceId.apply(String.format("%s.%s", name, voltageName)), - map, texture, i + 1, hasFrontFacing, tankScalingFunction)); - } - } - } -} diff --git a/src/main/java/gtexpert/common/metatileentities/GTESimpleMachineMetaTileEntity.java b/src/main/java/gtexpert/common/metatileentities/GTESimpleMachineMetaTileEntity.java deleted file mode 100644 index bb6e265c..00000000 --- a/src/main/java/gtexpert/common/metatileentities/GTESimpleMachineMetaTileEntity.java +++ /dev/null @@ -1,95 +0,0 @@ -package gtexpert.common.metatileentities; - -import java.util.function.Function; - -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.util.ResourceLocation; - -import gregtech.api.GTValues; -import gregtech.api.gui.GuiTextures; -import gregtech.api.gui.ModularUI; -import gregtech.api.gui.widgets.*; -import gregtech.api.metatileentity.MetaTileEntity; -import gregtech.api.metatileentity.SimpleMachineMetaTileEntity; -import gregtech.api.metatileentity.interfaces.IGregTechTileEntity; -import gregtech.api.recipes.RecipeMap; -import gregtech.client.renderer.ICubeRenderer; - -import gtexpert.api.gui.GTEGuiTextures; - -public class GTESimpleMachineMetaTileEntity extends SimpleMachineMetaTileEntity { - - private static final int FONT_HEIGHT = 9; // Minecraft's FontRenderer FONT_HEIGHT value - - public GTESimpleMachineMetaTileEntity(ResourceLocation metaTileEntityId, RecipeMap recipeMap, - ICubeRenderer renderer, int tier, boolean hasFrontFacing) { - super(metaTileEntityId, recipeMap, renderer, tier, hasFrontFacing); - } - - public GTESimpleMachineMetaTileEntity(ResourceLocation metaTileEntityId, RecipeMap recipeMap, - ICubeRenderer renderer, int tier, boolean hasFrontFacing, - Function tankScalingFunction) { - super(metaTileEntityId, recipeMap, renderer, tier, hasFrontFacing, tankScalingFunction); - } - - @Override - public MetaTileEntity createMetaTileEntity(IGregTechTileEntity tileEntity) { - return new GTESimpleMachineMetaTileEntity(this.metaTileEntityId, workable.getRecipeMap(), this.renderer, - this.getTier(), this.hasFrontFacing(), this.getTankScalingFunction()); - } - - protected ModularUI.Builder createGuiTemplate(EntityPlayer player) { - RecipeMap workableRecipeMap = workable.getRecipeMap(); - int yOffset = 0; - if (workableRecipeMap.getMaxInputs() >= 6 || workableRecipeMap.getMaxFluidInputs() >= 6 || - workableRecipeMap.getMaxOutputs() >= 6 || workableRecipeMap.getMaxFluidOutputs() >= 6) { - yOffset = FONT_HEIGHT; - } - - ModularUI.Builder builder = workableRecipeMap - .createUITemplate(workable::getProgressPercent, importItems, exportItems, importFluids, exportFluids, - yOffset) - .widget(new LabelWidget(5, 5, getMetaFullName())) - .widget(new SlotWidget(chargerInventory, 0, 79, 62 + yOffset, true, true, false) - .setBackgroundTexture(GuiTextures.SLOT, GuiTextures.CHARGER_OVERLAY) - .setTooltipText("gregtech.gui.charger_slot.tooltip", GTValues.VNF[getTier()], - GTValues.VNF[getTier()])) - .widget(new ImageWidget(79, 42 + yOffset, 18, 18, GuiTextures.INDICATOR_NO_ENERGY).setIgnoreColor(true) - .setPredicate(workable::isHasNotEnoughEnergy)) - .bindPlayerInventory(player.inventory, GuiTextures.SLOT, yOffset); - - int leftButtonStartX = 7; - - if (exportItems.getSlots() > 0) { - builder.widget(new ToggleButtonWidget(leftButtonStartX, 62 + yOffset, 18, 18, - GuiTextures.BUTTON_ITEM_OUTPUT, this::isAutoOutputItems, this::setAutoOutputItems) - .setTooltipText("gregtech.gui.item_auto_output.tooltip") - .shouldUseBaseBackground()); - leftButtonStartX += 18; - } - if (exportFluids.getTanks() > 0) { - builder.widget(new ToggleButtonWidget(leftButtonStartX, 62 + yOffset, 18, 18, - GuiTextures.BUTTON_FLUID_OUTPUT, this::isAutoOutputFluids, this::setAutoOutputFluids) - .setTooltipText("gregtech.gui.fluid_auto_output.tooltip") - .shouldUseBaseBackground()); - leftButtonStartX += 18; - } - - builder.widget(new CycleButtonWidget(leftButtonStartX, 62 + yOffset, 18, 18, - workable.getAvailableOverclockingTiers(), workable::getOverclockTier, workable::setOverclockTier) - .setTooltipHoverString("gregtech.gui.overclock.description") - .setButtonTexture(GuiTextures.BUTTON_OVERCLOCK)); - - if (exportItems.getSlots() + exportFluids.getTanks() <= 9) { - ImageWidget logo = new ImageWidget(152, 63 + yOffset, 17, 17, - GTValues.XMAS.get() ? GTEGuiTextures.GTE_LOGO_XMAS : GTEGuiTextures.GTE_LOGO).setIgnoreColor(true); - - if (this.circuitInventory != null) { - SlotWidget circuitSlot = new GhostCircuitSlotWidget(this.circuitInventory, 0, 124, 62 + yOffset) - .setBackgroundTexture(GuiTextures.SLOT, this.getCircuitSlotOverlay()); - builder.widget(circuitSlot.setConsumer(this::getCircuitSlotTooltip)).widget(logo); - } - } - return builder; - } -} diff --git a/src/main/java/gtexpert/common/metatileentities/multi/MetaTileEntitySawmill.java b/src/main/java/gtexpert/common/metatileentities/multi/MetaTileEntitySawmill.java deleted file mode 100644 index f44f77a1..00000000 --- a/src/main/java/gtexpert/common/metatileentities/multi/MetaTileEntitySawmill.java +++ /dev/null @@ -1,126 +0,0 @@ -package gtexpert.common.metatileentities.multi; - -import java.util.List; - -import net.minecraft.block.state.IBlockState; -import net.minecraft.client.resources.I18n; -import net.minecraft.item.ItemStack; -import net.minecraft.util.ResourceLocation; -import net.minecraft.util.SoundEvent; -import net.minecraft.world.World; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; - -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; - -import gregtech.api.gui.resources.TextureArea; -import gregtech.api.metatileentity.MetaTileEntity; -import gregtech.api.metatileentity.interfaces.IGregTechTileEntity; -import gregtech.api.metatileentity.multiblock.IMultiblockPart; -import gregtech.api.metatileentity.multiblock.RecipeMapMultiblockController; -import gregtech.api.pattern.BlockPattern; -import gregtech.api.pattern.FactoryBlockPattern; -import gregtech.api.pattern.TraceabilityPredicate; -import gregtech.client.renderer.ICubeRenderer; -import gregtech.core.sound.GTSoundEvents; - -import gtexpert.api.gui.GTEGuiTextures; -import gtexpert.api.recipes.GTERecipeMaps; -import gtexpert.client.GTETextures; -import gtexpert.common.blocks.GTEBlockMetalCasing; -import gtexpert.common.blocks.GTEMetaBlocks; - -public class MetaTileEntitySawmill extends RecipeMapMultiblockController { - - public MetaTileEntitySawmill(ResourceLocation metaTileEntityId) { - super(metaTileEntityId, GTERecipeMaps.SAWMILL_RECIPES); - } - - @Override - public @NotNull MetaTileEntity createMetaTileEntity(IGregTechTileEntity tileEntity) { - return new MetaTileEntitySawmill(metaTileEntityId); - } - - @Override - protected @NotNull BlockPattern createStructurePattern() { - TraceabilityPredicate casing = states(getCasingState()).setMinGlobalLimited(14); - TraceabilityPredicate abilities = autoAbilities(true, false, true, true, true, false, false); - return FactoryBlockPattern.start() - .aisle("XCX", "X#X", "X X") - .aisle(" C ", " # ", "XXX") - .aisle(" C ", " # ", "X X") - .aisle(" C ", " # ", "XXX") - .aisle("XCX", "S#X", "X X") - .where('S', selfPredicate()) - .where('X', casing.or(abilities)) - .where('C', blocks(GTEMetaBlocks.BLOCK_SAWMILL_CONVEYOR)) - .where('#', air()) - .where(' ', any()) - .build(); - } - - @Override - public boolean allowsExtendedFacing() { - return false; - } - - @Override - public boolean allowsFlip() { - return false; - } - - @Override - public boolean hasMaintenanceMechanics() { - return false; - } - - @Override - public boolean canBeDistinct() { - return true; - } - - @SideOnly(Side.CLIENT) - @Override - public ICubeRenderer getBaseTexture(IMultiblockPart iMultiblockPart) { - return GTETextures.SAWMILL_CASING; - } - - protected IBlockState getCasingState() { - return GTEMetaBlocks.GTE_METAL_CASING.getState(GTEBlockMetalCasing.MetalCasingType.SAWMill); - } - - @Override - public SoundEvent getBreakdownSound() { - return GTSoundEvents.BREAKDOWN_ELECTRICAL; - } - - @Override - public void addInformation(ItemStack stack, @Nullable World player, @NotNull List tooltip, - boolean advanced) { - super.addInformation(stack, player, tooltip, advanced); - tooltip.add(I18n.format("gtexpert.machine.sawmill.tooltip.1")); - } - - @Override - protected @NotNull TextureArea getLogo() { - return GTEGuiTextures.GTE_LOGO_DARK; - } - - @Override - protected @NotNull TextureArea getWarningLogo() { - return GTEGuiTextures.GTE_LOGO_BLINKING_YELLOW; - } - - @Override - protected @NotNull TextureArea getErrorLogo() { - return GTEGuiTextures.GTE_LOGO_BLINKING_RED; - } - - @SideOnly(Side.CLIENT) - @NotNull - @Override - protected ICubeRenderer getFrontOverlay() { - return GTETextures.SAWMILL_OVERLAY; - } -} diff --git a/src/main/java/gtexpert/common/metatileentities/single/SteamAssembler.java b/src/main/java/gtexpert/common/metatileentities/single/SteamAssembler.java deleted file mode 100644 index 200d5852..00000000 --- a/src/main/java/gtexpert/common/metatileentities/single/SteamAssembler.java +++ /dev/null @@ -1,82 +0,0 @@ -package gtexpert.common.metatileentities.single; - -import java.util.List; - -import net.minecraft.client.resources.I18n; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraft.util.ResourceLocation; -import net.minecraft.world.World; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; -import net.minecraftforge.items.IItemHandlerModifiable; - -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; - -import gregtech.api.capability.impl.NotifiableItemStackHandler; -import gregtech.api.gui.GuiTextures; -import gregtech.api.gui.ModularUI; -import gregtech.api.gui.widgets.ProgressWidget; -import gregtech.api.metatileentity.MetaTileEntity; -import gregtech.api.metatileentity.SteamMetaTileEntity; -import gregtech.api.metatileentity.interfaces.IGregTechTileEntity; -import gregtech.client.renderer.texture.Textures; - -import gtexpert.api.gui.GTEGuiTextures; -import gtexpert.api.recipes.GTERecipeMaps; - -public class SteamAssembler extends SteamMetaTileEntity { - - public SteamAssembler(ResourceLocation metaTileEntityId, boolean isHighPressure) { - super(metaTileEntityId, GTERecipeMaps.STEAM_ASSEMBLER_RECIPES, Textures.ASSEMBLER_OVERLAY, isHighPressure); - } - - @Override - public MetaTileEntity createMetaTileEntity(IGregTechTileEntity tileEntity) { - return new SteamAssembler(metaTileEntityId, isHighPressure); - } - - @Override - protected IItemHandlerModifiable createImportItemHandler() { - return new NotifiableItemStackHandler(this, 9, this, false); - } - - @Override - protected IItemHandlerModifiable createExportItemHandler() { - return new NotifiableItemStackHandler(this, 2, this, true); - } - - @Override - public ModularUI createUI(EntityPlayer player) { - return createUITemplate(player) - .slot(this.importItems, 0, 16, 17, GuiTextures.SLOT_STEAM.get(isHighPressure)) - .slot(this.importItems, 1, 34, 17, GuiTextures.SLOT_STEAM.get(isHighPressure)) - .slot(this.importItems, 2, 52, 17, GuiTextures.SLOT_STEAM.get(isHighPressure)) - .slot(this.importItems, 3, 16, 35, GuiTextures.SLOT_STEAM.get(isHighPressure)) - .slot(this.importItems, 4, 34, 35, GuiTextures.SLOT_STEAM.get(isHighPressure)) - .slot(this.importItems, 5, 52, 35, GuiTextures.SLOT_STEAM.get(isHighPressure)) - .slot(this.importItems, 6, 16, 53, GuiTextures.SLOT_STEAM.get(isHighPressure)) - .slot(this.importItems, 7, 34, 53, GuiTextures.SLOT_STEAM.get(isHighPressure)) - .slot(this.importItems, 8, 52, 53, GuiTextures.SLOT_STEAM.get(isHighPressure)) - .progressBar(workableHandler::getProgressPercent, 79, 34, 20, 20, - GTEGuiTextures.PROGRESS_BAR_STEAM_ASSEMBLER_STEAM.get(isHighPressure), - ProgressWidget.MoveType.HORIZONTAL, - workableHandler.getRecipeMap()) - .slot(this.exportItems, 0, 106, 35, true, false, GuiTextures.SLOT_STEAM.get(isHighPressure)) - .slot(this.exportItems, 1, 124, 35, true, false, GuiTextures.SLOT_STEAM.get(isHighPressure)) - .build(getHolder(), player); - } - - @Override - public void addInformation(ItemStack stack, @Nullable World player, @NotNull List tooltip, - boolean advanced) { - super.addInformation(stack, player, tooltip, advanced); - tooltip.add(I18n.format("gtexpert.machine.steam_assembler.tooltip")); - tooltip.add(I18n.format("gtexpert.machine.steam_assembler.tooltip.1")); - } - - @SideOnly(Side.CLIENT) - @Override - public void randomDisplayTick() {} -} diff --git a/src/main/java/gtexpert/common/metatileentities/single/SteamCircuitAssembler.java b/src/main/java/gtexpert/common/metatileentities/single/SteamCircuitAssembler.java deleted file mode 100644 index c2f17c90..00000000 --- a/src/main/java/gtexpert/common/metatileentities/single/SteamCircuitAssembler.java +++ /dev/null @@ -1,80 +0,0 @@ -package gtexpert.common.metatileentities.single; - -import java.util.List; - -import net.minecraft.client.resources.I18n; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraft.util.ResourceLocation; -import net.minecraft.world.World; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; -import net.minecraftforge.items.IItemHandlerModifiable; - -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; - -import gregtech.api.capability.impl.NotifiableItemStackHandler; -import gregtech.api.gui.GuiTextures; -import gregtech.api.gui.ModularUI; -import gregtech.api.gui.widgets.ProgressWidget; -import gregtech.api.metatileentity.MetaTileEntity; -import gregtech.api.metatileentity.SteamMetaTileEntity; -import gregtech.api.metatileentity.interfaces.IGregTechTileEntity; -import gregtech.client.renderer.texture.Textures; - -import gtexpert.api.gui.GTEGuiTextures; -import gtexpert.api.recipes.GTERecipeMaps; - -public class SteamCircuitAssembler extends SteamMetaTileEntity { - - public SteamCircuitAssembler(ResourceLocation metaTileEntityId, boolean isHighPressure) { - super(metaTileEntityId, GTERecipeMaps.STEAM_CIRCUIT_ASSEMBLER_RECIPES, Textures.ASSEMBLER_OVERLAY, - isHighPressure); - } - - @Override - public MetaTileEntity createMetaTileEntity(IGregTechTileEntity tileEntity) { - return new SteamCircuitAssembler(metaTileEntityId, isHighPressure); - } - - @Override - protected IItemHandlerModifiable createImportItemHandler() { - return new NotifiableItemStackHandler(this, 6, this, false); - } - - @Override - protected IItemHandlerModifiable createExportItemHandler() { - return new NotifiableItemStackHandler(this, 2, this, true); - } - - @Override - public ModularUI createUI(EntityPlayer player) { - return createUITemplate(player) - .slot(this.importItems, 0, 16, 17, GuiTextures.SLOT_STEAM.get(isHighPressure)) - .slot(this.importItems, 1, 34, 17, GuiTextures.SLOT_STEAM.get(isHighPressure)) - .slot(this.importItems, 2, 52, 17, GuiTextures.SLOT_STEAM.get(isHighPressure)) - .slot(this.importItems, 3, 16, 35, GuiTextures.SLOT_STEAM.get(isHighPressure)) - .slot(this.importItems, 4, 34, 35, GuiTextures.SLOT_STEAM.get(isHighPressure)) - .slot(this.importItems, 5, 52, 35, GuiTextures.SLOT_STEAM.get(isHighPressure)) - .progressBar(workableHandler::getProgressPercent, 77, 34, 20, 20, - GTEGuiTextures.PROGRESS_BAR_STEAM_CIRCUIT_ASSEMBLER_STEAM.get(isHighPressure), - ProgressWidget.MoveType.HORIZONTAL, - workableHandler.getRecipeMap()) - .slot(this.exportItems, 0, 106, 35, true, false, GuiTextures.SLOT_STEAM.get(isHighPressure)) - .slot(this.exportItems, 1, 124, 35, true, false, GuiTextures.SLOT_STEAM.get(isHighPressure)) - .build(getHolder(), player); - } - - @Override - public void addInformation(ItemStack stack, @Nullable World player, @NotNull List tooltip, - boolean advanced) { - super.addInformation(stack, player, tooltip, advanced); - tooltip.add(I18n.format("gtexpert.machine.steam_circuit_assembler.tooltip")); - tooltip.add(I18n.format("gtexpert.machine.steam_circuit_assembler.tooltip.1")); - } - - @SideOnly(Side.CLIENT) - @Override - public void randomDisplayTick() {} -} diff --git a/src/main/java/gtexpert/common/metatileentities/single/SteamMixer.java b/src/main/java/gtexpert/common/metatileentities/single/SteamMixer.java deleted file mode 100644 index b38959bf..00000000 --- a/src/main/java/gtexpert/common/metatileentities/single/SteamMixer.java +++ /dev/null @@ -1,79 +0,0 @@ -package gtexpert.common.metatileentities.single; - -import java.util.List; - -import net.minecraft.client.resources.I18n; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraft.util.ResourceLocation; -import net.minecraft.world.World; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; -import net.minecraftforge.items.IItemHandlerModifiable; - -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; - -import gregtech.api.capability.impl.NotifiableItemStackHandler; -import gregtech.api.gui.GuiTextures; -import gregtech.api.gui.ModularUI; -import gregtech.api.gui.widgets.ProgressWidget; -import gregtech.api.metatileentity.MetaTileEntity; -import gregtech.api.metatileentity.SteamMetaTileEntity; -import gregtech.api.metatileentity.interfaces.IGregTechTileEntity; -import gregtech.client.renderer.texture.Textures; - -import gtexpert.api.gui.GTEGuiTextures; -import gtexpert.api.recipes.GTERecipeMaps; - -public class SteamMixer extends SteamMetaTileEntity { - - public SteamMixer(ResourceLocation metaTileEntityId, boolean isHighPressure) { - super(metaTileEntityId, GTERecipeMaps.STEAM_MIXER_RECIPES, Textures.MIXER_OVERLAY, isHighPressure); - } - - @Override - public MetaTileEntity createMetaTileEntity(IGregTechTileEntity tileEntity) { - return new SteamMixer(metaTileEntityId, isHighPressure); - } - - @Override - protected IItemHandlerModifiable createImportItemHandler() { - return new NotifiableItemStackHandler(this, 6, this, false); - } - - @Override - protected IItemHandlerModifiable createExportItemHandler() { - return new NotifiableItemStackHandler(this, 2, this, true); - } - - @Override - public ModularUI createUI(EntityPlayer player) { - return createUITemplate(player) - .slot(this.importItems, 0, 16, 17, GuiTextures.SLOT_STEAM.get(isHighPressure)) - .slot(this.importItems, 1, 34, 17, GuiTextures.SLOT_STEAM.get(isHighPressure)) - .slot(this.importItems, 2, 52, 17, GuiTextures.SLOT_STEAM.get(isHighPressure)) - .slot(this.importItems, 3, 16, 35, GuiTextures.SLOT_STEAM.get(isHighPressure)) - .slot(this.importItems, 4, 34, 35, GuiTextures.SLOT_STEAM.get(isHighPressure)) - .slot(this.importItems, 5, 52, 35, GuiTextures.SLOT_STEAM.get(isHighPressure)) - .progressBar(workableHandler::getProgressPercent, 77, 35, 20, 20, - GTEGuiTextures.PROGRESS_BAR_STEAM_MIXER_STEAM.get(isHighPressure), - ProgressWidget.MoveType.HORIZONTAL, - workableHandler.getRecipeMap()) - .slot(this.exportItems, 0, 106, 35, true, false, GuiTextures.SLOT_STEAM.get(isHighPressure)) - .slot(this.exportItems, 1, 124, 35, true, false, GuiTextures.SLOT_STEAM.get(isHighPressure)) - .build(getHolder(), player); - } - - @Override - public void addInformation(ItemStack stack, @Nullable World player, @NotNull List tooltip, - boolean advanced) { - super.addInformation(stack, player, tooltip, advanced); - tooltip.add(I18n.format("gtexpert.machine.steam_mixer.tooltip")); - tooltip.add(I18n.format("gtexpert.machine.steam_mixer.tooltip.1")); - } - - @SideOnly(Side.CLIENT) - @Override - public void randomDisplayTick() {} -} diff --git a/src/main/java/gtexpert/integration/binnies/BinniesModule.java b/src/main/java/gtexpert/integration/binnies/BinniesModule.java deleted file mode 100644 index d54006dc..00000000 --- a/src/main/java/gtexpert/integration/binnies/BinniesModule.java +++ /dev/null @@ -1,30 +0,0 @@ -package gtexpert.integration.binnies; - -import net.minecraft.item.crafting.IRecipe; -import net.minecraftforge.event.RegistryEvent; -import net.minecraftforge.fml.common.event.FMLPostInitializationEvent; - -import gtexpert.api.GTEValues; -import gtexpert.api.modules.GTEModule; -import gtexpert.api.util.Mods; -import gtexpert.integration.GTEIntegrationSubmodule; -import gtexpert.integration.binnies.recipes.BinniesItemsRecipe; -import gtexpert.modules.GTEModules; - -@GTEModule( - moduleID = GTEModules.MODULE_BINNIES, - containerID = GTEValues.MODID, - modDependencies = { Mods.Names.FORESTRY, Mods.Names.GENETICS, Mods.Names.BOTANY, - Mods.Names.EXTRA_BEES, Mods.Names.EXTRA_TREES }, - name = "GTExpert Binnie's Mods Integration", - description = "Binnie's Mods Integration Module") -public class BinniesModule extends GTEIntegrationSubmodule { - - @Override - public void postInit(FMLPostInitializationEvent event) { - BinniesItemsRecipe.init(); - } - - @Override - public void registerRecipesNormal(RegistryEvent.Register event) {} -} diff --git a/src/main/java/gtexpert/integration/binnies/botany/BotanyModule.java b/src/main/java/gtexpert/integration/binnies/botany/BotanyModule.java deleted file mode 100644 index a2bd8d9e..00000000 --- a/src/main/java/gtexpert/integration/binnies/botany/BotanyModule.java +++ /dev/null @@ -1,29 +0,0 @@ -package gtexpert.integration.binnies.botany; - -import net.minecraft.item.crafting.IRecipe; -import net.minecraftforge.event.RegistryEvent; -import net.minecraftforge.fml.common.event.FMLPostInitializationEvent; - -import gtexpert.api.GTEValues; -import gtexpert.api.modules.GTEModule; -import gtexpert.api.util.Mods; -import gtexpert.integration.GTEIntegrationSubmodule; -import gtexpert.integration.binnies.botany.recipes.BotanyItemsRecipe; -import gtexpert.modules.GTEModules; - -@GTEModule( - moduleID = GTEModules.MODULE_BOTANY, - containerID = GTEValues.MODID, - modDependencies = { Mods.Names.FORESTRY, Mods.Names.BOTANY }, - name = "GTExpert Botany(Binnie's Mods) Integration", - description = "Botany(Binnie's Mods) Integration Module") -public class BotanyModule extends GTEIntegrationSubmodule { - - @Override - public void postInit(FMLPostInitializationEvent event) { - BotanyItemsRecipe.init(); - } - - @Override - public void registerRecipesNormal(RegistryEvent.Register event) {} -} diff --git a/src/main/java/gtexpert/integration/binnies/botany/recipes/BotanyItemsRecipe.java b/src/main/java/gtexpert/integration/binnies/botany/recipes/BotanyItemsRecipe.java deleted file mode 100644 index d230b812..00000000 --- a/src/main/java/gtexpert/integration/binnies/botany/recipes/BotanyItemsRecipe.java +++ /dev/null @@ -1,41 +0,0 @@ -package gtexpert.integration.binnies.botany.recipes; - -import static gregtech.api.unification.ore.OrePrefix.*; - -import gregtech.api.recipes.ModHandler; -import gregtech.api.unification.material.MarkerMaterials; -import gregtech.api.unification.material.Materials; -import gregtech.api.unification.stack.UnificationEntry; - -import gtexpert.api.util.Mods; -import gtexpert.integration.ffm.FFMConfigHolder; -import gtexpert.integration.ffm.FFMUtility; -import gtexpert.integration.ffm.recipes.machines.CarpenterLoader; - -import forestry.api.recipes.RecipeManagers; - -public class BotanyItemsRecipe { - - public static void init() { - Enum recipeMode = FFMUtility.recipeMode.safeValueOf(FFMConfigHolder.gameMode); - - // Botanist Database - ModHandler.addShapelessNBTClearingRecipe("botanist_database_nbt", - Mods.Botany.getItem("database"), - Mods.Botany.getItem("database")); - - if (recipeMode == FFMUtility.recipeMode.HARD) { - // Botanist Database - CarpenterLoader.removeCarpenterRecipe(Mods.Botany.getItem("database")); - RecipeManagers.carpenterManager.addRecipe( - 20, Materials.Redstone.getFluid(1440), - Mods.Forestry.getItem("portable_alyzer"), Mods.Botany.getItem("database"), - "SPS", "DCE", "SPS", - 'S', new UnificationEntry(screw, Materials.Silver).toString(), - 'D', new UnificationEntry(plate, Materials.Diamond).toString(), - 'E', new UnificationEntry(plate, Materials.Emerald).toString(), - 'P', new UnificationEntry(plate, Materials.Gold).toString(), - 'C', new UnificationEntry(circuit, MarkerMaterials.Tier.HV).toString()); - } - } -} diff --git a/src/main/java/gtexpert/integration/binnies/extrabees/ExtraBeesModule.java b/src/main/java/gtexpert/integration/binnies/extrabees/ExtraBeesModule.java deleted file mode 100644 index 8e9057e2..00000000 --- a/src/main/java/gtexpert/integration/binnies/extrabees/ExtraBeesModule.java +++ /dev/null @@ -1,29 +0,0 @@ -package gtexpert.integration.binnies.extrabees; - -import net.minecraft.item.crafting.IRecipe; -import net.minecraftforge.event.RegistryEvent; -import net.minecraftforge.fml.common.event.FMLPostInitializationEvent; - -import gtexpert.api.GTEValues; -import gtexpert.api.modules.GTEModule; -import gtexpert.api.util.Mods; -import gtexpert.integration.GTEIntegrationSubmodule; -import gtexpert.integration.binnies.extrabees.recipes.ExtraBeesItemsRecipe; -import gtexpert.modules.GTEModules; - -@GTEModule( - moduleID = GTEModules.MODULE_EXBEES, - containerID = GTEValues.MODID, - modDependencies = { Mods.Names.FORESTRY, Mods.Names.EXTRA_BEES }, - name = "GTExpert Extra Bees(Binnie's Mods) Integration", - description = "Extra Bees(Binnie's Mods) Integration Module") -public class ExtraBeesModule extends GTEIntegrationSubmodule { - - @Override - public void postInit(FMLPostInitializationEvent event) { - ExtraBeesItemsRecipe.init(); - } - - @Override - public void registerRecipesNormal(RegistryEvent.Register event) {} -} diff --git a/src/main/java/gtexpert/integration/binnies/extrabees/recipes/ExtraBeesItemsRecipe.java b/src/main/java/gtexpert/integration/binnies/extrabees/recipes/ExtraBeesItemsRecipe.java deleted file mode 100644 index 606becd5..00000000 --- a/src/main/java/gtexpert/integration/binnies/extrabees/recipes/ExtraBeesItemsRecipe.java +++ /dev/null @@ -1,41 +0,0 @@ -package gtexpert.integration.binnies.extrabees.recipes; - -import static gregtech.api.unification.ore.OrePrefix.*; - -import gregtech.api.recipes.ModHandler; -import gregtech.api.unification.material.MarkerMaterials; -import gregtech.api.unification.material.Materials; -import gregtech.api.unification.stack.UnificationEntry; - -import gtexpert.api.util.Mods; -import gtexpert.integration.ffm.FFMConfigHolder; -import gtexpert.integration.ffm.FFMUtility; -import gtexpert.integration.ffm.recipes.machines.CarpenterLoader; - -import forestry.api.recipes.RecipeManagers; - -public class ExtraBeesItemsRecipe { - - public static void init() { - Enum recipeMode = FFMUtility.recipeMode.safeValueOf(FFMConfigHolder.gameMode); - - // Apiarist Database - ModHandler.addShapelessNBTClearingRecipe("apiarist_database_nbt", - Mods.ExtraBees.getItem("dictionary"), - Mods.ExtraBees.getItem("dictionary")); - - if (recipeMode == FFMUtility.recipeMode.HARD) { - // Apiarist Database - CarpenterLoader.removeCarpenterRecipe(Mods.ExtraBees.getItem("dictionary")); - RecipeManagers.carpenterManager.addRecipe( - 20, Materials.Redstone.getFluid(1440), - Mods.Forestry.getItem("portable_alyzer"), Mods.ExtraBees.getItem("dictionary"), - "SPS", "DCE", "SPS", - 'S', new UnificationEntry(screw, Materials.Lead).toString(), - 'D', new UnificationEntry(plate, Materials.Diamond).toString(), - 'E', new UnificationEntry(plate, Materials.Emerald).toString(), - 'P', new UnificationEntry(plate, Materials.Gold).toString(), - 'C', new UnificationEntry(circuit, MarkerMaterials.Tier.HV).toString()); - } - } -} diff --git a/src/main/java/gtexpert/integration/binnies/extratrees/ExtraTreesModule.java b/src/main/java/gtexpert/integration/binnies/extratrees/ExtraTreesModule.java deleted file mode 100644 index bce17ef6..00000000 --- a/src/main/java/gtexpert/integration/binnies/extratrees/ExtraTreesModule.java +++ /dev/null @@ -1,30 +0,0 @@ -package gtexpert.integration.binnies.extratrees; - -import net.minecraft.item.crafting.IRecipe; -import net.minecraftforge.event.RegistryEvent; -import net.minecraftforge.fml.common.event.FMLPostInitializationEvent; - -import gtexpert.api.GTEValues; -import gtexpert.api.modules.GTEModule; -import gtexpert.api.util.Mods; -import gtexpert.integration.GTEIntegrationSubmodule; -import gtexpert.integration.binnies.extratrees.recipes.*; -import gtexpert.modules.GTEModules; - -@GTEModule( - moduleID = GTEModules.MODULE_EXTREES, - containerID = GTEValues.MODID, - modDependencies = { Mods.Names.FORESTRY, Mods.Names.EXTRA_TREES }, - name = "GTExpert Extra Trees(Binnie's Mods) Integration", - description = "Extra Trees(Binnie's Mods) Integration Module") -public class ExtraTreesModule extends GTEIntegrationSubmodule { - - @Override - public void postInit(FMLPostInitializationEvent event) { - ExtraTreesItemsRecipe.init(); - ExtraTreesWoodRecipe.init(); - } - - @Override - public void registerRecipesNormal(RegistryEvent.Register event) {} -} diff --git a/src/main/java/gtexpert/integration/binnies/extratrees/recipes/ExtraTreesItemsRecipe.java b/src/main/java/gtexpert/integration/binnies/extratrees/recipes/ExtraTreesItemsRecipe.java deleted file mode 100644 index 45d7c219..00000000 --- a/src/main/java/gtexpert/integration/binnies/extratrees/recipes/ExtraTreesItemsRecipe.java +++ /dev/null @@ -1,58 +0,0 @@ -package gtexpert.integration.binnies.extratrees.recipes; - -import static gregtech.api.unification.ore.OrePrefix.*; - -import gregtech.api.recipes.ModHandler; -import gregtech.api.unification.material.MarkerMaterials; -import gregtech.api.unification.material.Materials; -import gregtech.api.unification.stack.UnificationEntry; - -import gtexpert.api.util.Mods; -import gtexpert.integration.ffm.FFMConfigHolder; -import gtexpert.integration.ffm.FFMUtility; -import gtexpert.integration.ffm.recipes.machines.CarpenterLoader; - -import forestry.api.recipes.RecipeManagers; - -public class ExtraTreesItemsRecipe { - - public static void init() { - Enum recipeMode = FFMUtility.recipeMode.safeValueOf(FFMConfigHolder.gameMode); - - // Arborist Database - ModHandler.addShapelessNBTClearingRecipe("arborist_database_nbt", - Mods.ExtraTrees.getItem("databasetree"), - Mods.ExtraTrees.getItem("databasetree")); - - // Lepidopterist Database - ModHandler.addShapelessNBTClearingRecipe("lepidopterist_database_nbt", - Mods.ExtraTrees.getItem("databaselepi"), - Mods.ExtraTrees.getItem("databaselepi")); - - if (recipeMode == FFMUtility.recipeMode.HARD) { - // Arborist Database - CarpenterLoader.removeCarpenterRecipe(Mods.ExtraTrees.getItem("databasetree")); - RecipeManagers.carpenterManager.addRecipe( - 20, Materials.Redstone.getFluid(1440), - Mods.Forestry.getItem("portable_alyzer"), Mods.ExtraTrees.getItem("databasetree"), - "SPS", "DCE", "SPS", - 'S', new UnificationEntry(screw, Materials.Copper).toString(), - 'D', new UnificationEntry(plate, Materials.Diamond).toString(), - 'E', new UnificationEntry(plate, Materials.Emerald).toString(), - 'P', new UnificationEntry(plate, Materials.Gold).toString(), - 'C', new UnificationEntry(circuit, MarkerMaterials.Tier.HV).toString()); - - // Lepidopterist Database - CarpenterLoader.removeCarpenterRecipe(Mods.ExtraTrees.getItem("databaselepi")); - RecipeManagers.carpenterManager.addRecipe( - 20, Materials.Redstone.getFluid(1440), - Mods.Forestry.getItem("portable_alyzer"), Mods.ExtraTrees.getItem("databaselepi"), - "SPS", "DCE", "SPS", - 'S', new UnificationEntry(screw, Materials.Tin).toString(), - 'D', new UnificationEntry(plate, Materials.Diamond).toString(), - 'E', new UnificationEntry(plate, Materials.Emerald).toString(), - 'P', new UnificationEntry(plate, Materials.Gold).toString(), - 'C', new UnificationEntry(circuit, MarkerMaterials.Tier.HV).toString()); - } - } -} diff --git a/src/main/java/gtexpert/integration/binnies/extratrees/recipes/ExtraTreesWoodRecipe.java b/src/main/java/gtexpert/integration/binnies/extratrees/recipes/ExtraTreesWoodRecipe.java deleted file mode 100644 index b057d896..00000000 --- a/src/main/java/gtexpert/integration/binnies/extratrees/recipes/ExtraTreesWoodRecipe.java +++ /dev/null @@ -1,110 +0,0 @@ -package gtexpert.integration.binnies.extratrees.recipes; - -import java.util.ArrayList; -import java.util.List; - -import net.minecraft.util.ResourceLocation; - -import gregtech.api.recipes.ModHandler; -import gregtech.loaders.WoodTypeEntry; - -import gtexpert.api.GTEValues; -import gtexpert.api.util.Mods; -import gtexpert.loaders.GTEWoodRecipeLoader; - -import binnie.extratrees.wood.EnumETLog; - -public class ExtraTreesWoodRecipe { - - private static final String mcModId = Mods.ExtraTrees.name(); - - private static List DEFAULT_ENTRIES; - private static List FIREPROOF_ENTRIES; - - private static List getDefaultEntries() { - if (DEFAULT_ENTRIES == null) initEntries(); - return DEFAULT_ENTRIES; - } - - private static List getFireproofEntries() { - if (FIREPROOF_ENTRIES == null) initEntries(); - return FIREPROOF_ENTRIES; - } - - private static void initEntries() { - DEFAULT_ENTRIES = new ArrayList<>(); - FIREPROOF_ENTRIES = new ArrayList<>(); - int plankId = -1, logId = -1, slabId = -1; - for (int i = 0; i < EnumETLog.values().length; i++) { - String woodName = EnumETLog.values()[i].name().toLowerCase(); - int plankMeta = i % 16; - int logMeta = i % 4; - int slabMeta = i % 8; - if (plankMeta == 0) plankId++; - if (logMeta == 0) logId++; - if (slabMeta == 0) slabId++; - DEFAULT_ENTRIES.add(getEntryByName(woodName, plankId, logId, slabId, plankMeta, logMeta, slabMeta)); - FIREPROOF_ENTRIES - .add(getFireProofEntryByName(woodName, plankId, logId, slabId, plankMeta, logMeta, slabMeta)); - } - } - - private static WoodTypeEntry getEntryByName(String woodName, int plankId, int logId, int slabId, int plankMeta, - int logMeta, int slabMeta) { - return new WoodTypeEntry.Builder(mcModId, woodName) - .planks(Mods.ExtraTrees.getItem("planks." + plankId, 1, plankMeta), null) - .log(Mods.ExtraTrees.getItem("logs." + logId, 1, logMeta)).removeCharcoalRecipe() - .door(Mods.ExtraTrees.getItem("doors." + woodName), null) - .slab(Mods.ExtraTrees.getItem("slabs." + slabId, 1, slabMeta), null) - .fence(Mods.ExtraTrees.getItem("fences." + plankId, 1, plankMeta), null) - .fenceGate(Mods.ExtraTrees.getItem("fence.gates." + woodName), null) - .stairs(Mods.ExtraTrees.getItem("stairs." + woodName), null).addStairsRecipe() - .build(); - } - - private static WoodTypeEntry getFireProofEntryByName(String woodName, int plankId, int logId, int slabId, - int plankMeta, int logMeta, int slabMeta) { - return new WoodTypeEntry.Builder(mcModId, woodName) - .planks(Mods.ExtraTrees.getItem("planks.fireproof." + plankId, 1, plankMeta), - "fireproof_planks_" + woodName) - .log(Mods.ExtraTrees.getItem("logs.fireproof." + logId, 1, logMeta)).removeCharcoalRecipe() - .slab(Mods.ExtraTrees.getItem("slabs.fireproof." + slabId, 1, slabMeta), - "fireproof_slab_" + woodName) - .fence(Mods.ExtraTrees.getItem("fences.fireproof." + plankId, 1, plankMeta), - "fireproof_fence_" + woodName) - .fenceGate(Mods.ExtraTrees.getItem("fence.gates.fireproof." + woodName), - "fireproof_fence_gate_" + woodName) - .stairs(Mods.ExtraTrees.getItem("stairs.fireproof." + woodName), - "fireproof_stair_" + woodName) - .addStairsRecipe() - .build(); - } - - public static void init() { - String[] types = { "_planks", "_slabs", "_fences", "_fence_gates", "_stairs" }; - for (WoodTypeEntry entry : getDefaultEntries()) { - for (String type : types) { - ModHandler.removeRecipeByName(Mods.ExtraTrees.getResource(entry.woodName + type)); - } - - // only for normal woods - ModHandler.removeRecipeByName(Mods.ExtraTrees.getResource(entry.woodName + "_doors")); - - GTEWoodRecipeLoader.registerWoodTypeRecipe(true, entry); - GTEWoodRecipeLoader.addCuttingRecipe(entry); - GTEWoodRecipeLoader.addSawmillRecipe(entry); - } - - for (WoodTypeEntry entry : getFireproofEntries()) { - for (String type : types) { - ModHandler.removeRecipeByName(Mods.ExtraTrees.getResource(entry.woodName + "_fireproof" + type)); - } - - GTEWoodRecipeLoader.registerWoodTypeRecipe(true, entry); - GTEWoodRecipeLoader.addCuttingRecipe(entry); - GTEWoodRecipeLoader.addSawmillRecipe(entry); - - ModHandler.removeRecipeByName(new ResourceLocation(GTEValues.MODID, entry.woodName + "_saw")); - } - } -} diff --git a/src/main/java/gtexpert/integration/binnies/genetics/GeneticsModule.java b/src/main/java/gtexpert/integration/binnies/genetics/GeneticsModule.java deleted file mode 100644 index fa9c4262..00000000 --- a/src/main/java/gtexpert/integration/binnies/genetics/GeneticsModule.java +++ /dev/null @@ -1,29 +0,0 @@ -package gtexpert.integration.binnies.genetics; - -import net.minecraft.item.crafting.IRecipe; -import net.minecraftforge.event.RegistryEvent; -import net.minecraftforge.fml.common.event.FMLPostInitializationEvent; - -import gtexpert.api.GTEValues; -import gtexpert.api.modules.GTEModule; -import gtexpert.api.util.Mods; -import gtexpert.integration.GTEIntegrationSubmodule; -import gtexpert.integration.binnies.genetics.recipes.GeneticsItemsRecipe; -import gtexpert.modules.GTEModules; - -@GTEModule( - moduleID = GTEModules.MODULE_GENETICS, - containerID = GTEValues.MODID, - modDependencies = { Mods.Names.FORESTRY, Mods.Names.GENETICS }, - name = "GTExpert Genetics(Binnie's Mods) Integration", - description = "Genetics(Binnie's Mods) Integration Module") -public class GeneticsModule extends GTEIntegrationSubmodule { - - @Override - public void postInit(FMLPostInitializationEvent event) { - GeneticsItemsRecipe.init(); - } - - @Override - public void registerRecipesNormal(RegistryEvent.Register event) {} -} diff --git a/src/main/java/gtexpert/integration/binnies/genetics/recipes/GeneticsItemsRecipe.java b/src/main/java/gtexpert/integration/binnies/genetics/recipes/GeneticsItemsRecipe.java deleted file mode 100644 index 3db1ce1b..00000000 --- a/src/main/java/gtexpert/integration/binnies/genetics/recipes/GeneticsItemsRecipe.java +++ /dev/null @@ -1,179 +0,0 @@ -package gtexpert.integration.binnies.genetics.recipes; - -import static gregtech.api.GTValues.*; -import static gregtech.api.unification.ore.OrePrefix.*; - -import net.minecraft.init.Blocks; -import net.minecraft.item.ItemStack; - -import gregtech.api.recipes.GTRecipeHandler; -import gregtech.api.recipes.ModHandler; -import gregtech.api.recipes.RecipeMaps; -import gregtech.api.unification.OreDictUnifier; -import gregtech.api.unification.material.MarkerMaterials; -import gregtech.api.unification.material.Materials; -import gregtech.api.unification.stack.UnificationEntry; - -import gtexpert.api.util.GTEUtility; -import gtexpert.api.util.Mods; -import gtexpert.integration.ffm.FFMConfigHolder; -import gtexpert.integration.ffm.FFMUtility; -import gtexpert.integration.ffm.recipes.machines.CarpenterLoader; - -import forestry.api.recipes.RecipeManagers; - -public class GeneticsItemsRecipe { - - public static void init() { - Enum recipeMode = FFMUtility.recipeMode.safeValueOf(FFMConfigHolder.gameMode); - - // Gene Database - ModHandler.addShapelessNBTClearingRecipe("gene_database_nbt", - Mods.Genetics.getItem("geneticdatabase"), - Mods.Genetics.getItem("geneticdatabase")); - - if (recipeMode == FFMUtility.recipeMode.HARD) { - // Reinforced Casing - ModHandler.removeRecipeByName(Mods.Genetics.getResource("laboratory_casing")); - RecipeMaps.ASSEMBLER_RECIPES.recipeBuilder() - .input(plate, Materials.Aluminium, 4) - .inputs(Mods.Forestry.getItem("sturdy_machine")) - .fluidInputs(Materials.Water.getFluid(1000)) - .outputs(Mods.Genetics.getItem("misc")) - .EUt(VA[MV]).duration(FFMUtility.timeCarpenter(75)).buildAndRegister(); - RecipeManagers.carpenterManager.addRecipe( - 75, Materials.Water.getFluid(5000), - ItemStack.EMPTY, Mods.Genetics.getItem("misc"), - "# #", " Y ", "# #", - '#', "plateAluminium", - 'Y', Mods.Forestry.getItem("sturdy_machine")); - - // DNA Dye - ModHandler.removeRecipeByName(Mods.Genetics.getResource("dna_dye_from_glowstone")); - ModHandler.removeRecipeByName(Mods.Genetics.getResource("dna_dye")); - GTRecipeHandler.removeRecipesByInputs(RecipeMaps.MIXER_RECIPES, - OreDictUnifier.get(dust, Materials.Glowstone), - OreDictUnifier.get("dyeBlue"), - OreDictUnifier.get("dyePurple")); - RecipeMaps.MIXER_RECIPES.recipeBuilder() - .inputs(OreDictUnifier.get(dust, Materials.Redstone)) - .inputs(OreDictUnifier.get(dust, Materials.Glowstone)) - .input("dyeBlue") - .input("dyePurple") - .fluidInputs(Materials.Blaze.getFluid(144)) - .outputs(Mods.Genetics.getItem("misc", 1, 1)) - .EUt(VA[LV]).duration(100).buildAndRegister(); - - // Fluorescent Dye - ModHandler.removeRecipeByName(Mods.Genetics.getResource("fluorescent_dye")); - GTRecipeHandler.removeRecipesByInputs(RecipeMaps.MIXER_RECIPES, - OreDictUnifier.get(dust, Materials.Glowstone), - OreDictUnifier.get("dyeOrange"), - OreDictUnifier.get("dyeYellow")); - RecipeMaps.MIXER_RECIPES.recipeBuilder() - .inputs(OreDictUnifier.get(dust, Materials.Redstone)) - .inputs(OreDictUnifier.get(dust, Materials.Glowstone)) - .input("dyeOrange") - .input("dyeYellow") - .fluidInputs(Materials.Blaze.getFluid(144)) - .outputs(Mods.Genetics.getItem("misc", 1, 2)) - .EUt(VA[LV]).duration(100).buildAndRegister(); - - // Growth Medium - ModHandler.removeRecipeByName(Mods.Genetics.getResource("growth_medium")); - GTRecipeHandler.removeRecipesByInputs(RecipeMaps.MIXER_RECIPES, - OreDictUnifier.get(dust, Materials.Sugar), - OreDictUnifier.get(dust, Materials.Bone)); - RecipeMaps.MIXER_RECIPES.recipeBuilder() - .inputs(OreDictUnifier.get(dust, Materials.Sugar)) - .inputs(OreDictUnifier.get(dust, Materials.Calcium)) - .inputs(Mods.Forestry.getItem("mulch")) - .inputs(OreDictUnifier.get(dust, Materials.Wood)) - .inputs(OreDictUnifier.get(dust, Materials.Ash)) - .fluidInputs(Materials.Water.getFluid(1000)) - .outputs(Mods.Genetics.getItem("misc", 1, 4)) - .EUt(VA[LV]).duration(400).buildAndRegister(); - - // Blank Sequence - ModHandler.removeRecipeByName(Mods.Genetics.getResource("empty_sequencer")); - RecipeMaps.ASSEMBLER_RECIPES.recipeBuilder() - .circuitMeta(6) - .inputs(new ItemStack(Blocks.GLASS_PANE, 2)) - .fluidInputs(Materials.Gold.getFluid(288)) - .outputs(Mods.Genetics.getItem("misc", 1, 5)) - .EUt(VA[LV]).duration(200).buildAndRegister(); - - // Empty Serum Vial - ModHandler.removeRecipeByName(Mods.Genetics.getResource("empty_serum")); - RecipeMaps.ASSEMBLER_RECIPES.recipeBuilder() - .circuitMeta(7) - .inputs(new ItemStack(Blocks.GLASS_PANE, 4)) - .fluidInputs(Materials.Gold.getFluid(144)) - .outputs(Mods.Genetics.getItem("misc", 1, 6)) - .EUt(VH[MV]).duration(200).buildAndRegister(); - - // Empty Serum Array - ModHandler.removeRecipeByName(Mods.Genetics.getResource("empty_genome")); - RecipeMaps.ASSEMBLER_RECIPES.recipeBuilder() - .circuitMeta(8) - .inputs(new ItemStack(Blocks.GLASS_PANE, 10)) - .fluidInputs(Materials.Gold.getFluid(576)) - .outputs(Mods.Genetics.getItem("misc", 1, 7)) - .EUt(VA[MV]).duration(200).buildAndRegister(); - - // Integrated Circuit Board - ModHandler.removeRecipeByName(Mods.Genetics.getResource("integrated_circuit")); - ModHandler.addShapedRecipe(true, "integrated_circuit", - Mods.Genetics.getItem("misc", 1, 8), - "SdS", "CBC", "SwS", - 'S', new UnificationEntry(screw, Materials.StainlessSteel), - 'B', Mods.Forestry.getItem("chipsets", 1, 1), - 'C', new UnificationEntry(circuit, MarkerMaterials.Tier.HV)); - RecipeMaps.CIRCUIT_ASSEMBLER_RECIPES.recipeBuilder() - .inputs(Mods.Forestry.getItem("chipsets", 1, 1)) - .input(circuit, MarkerMaterials.Tier.HV, 2) - .fluidInputs(Materials.StainlessSteel.getFluid(64)) - .outputs(Mods.Genetics.getItem("misc", 1, 8)) - .EUt(VA[LV]).duration(600).buildAndRegister(); - - // Integrated CPU - ModHandler.removeRecipeByName(Mods.Genetics.getResource("integrated_cpu")); - RecipeMaps.CIRCUIT_ASSEMBLER_RECIPES.recipeBuilder() - .input(GTEUtility.circuitBoard(HV)) - .inputs(Mods.Forestry.getItem("thermionic_tubes", 1, 5)) - .fluidInputs(Materials.Glowstone.getFluid(144)) - .outputs(Mods.Genetics.getItem("misc", 1, 9)) - .EUt(VA[LV]).duration(600).buildAndRegister(); - - // Integrated Casing - ModHandler.removeRecipeByName(Mods.Genetics.getResource("integrated_casing")); - RecipeMaps.CIRCUIT_ASSEMBLER_RECIPES.recipeBuilder() - .inputs(Mods.Forestry.getItem("hardened_machine")) - .inputs(Mods.Genetics.getItem("misc", 2, 9)) - .fluidInputs(Materials.Glowstone.getFluid(288)) - .outputs(Mods.Genetics.getItem("misc", 1, 10)) - .EUt(VA[HV]).duration(900).buildAndRegister(); - - // Gene Database - CarpenterLoader.removeCarpenterRecipe(Mods.Genetics.getItem("geneticdatabase")); - RecipeManagers.carpenterManager.addRecipe( - 20, Materials.Redstone.getFluid(2880), - Mods.Forestry.getItem("portable_alyzer"), Mods.Genetics.getItem("geneticdatabase"), - "SPS", "PCP", "SPS", - 'S', new UnificationEntry(screw, Materials.Emerald).toString(), - 'P', new UnificationEntry(plate, Materials.Diamond).toString(), - 'C', new UnificationEntry(circuit, MarkerMaterials.Tier.EV).toString()); - - // Analyst - ModHandler.removeRecipeByName(Mods.Genetics.getResource("analyst")); - RecipeManagers.carpenterManager.addRecipe( - 40, Materials.Redstone.getFluid(4320), - Mods.Forestry.getItem("portable_alyzer"), Mods.Genetics.getItem("analyst"), - "IAI", "PCP", "IPI", - 'I', Mods.Genetics.getItem("misc", 1, 8), - 'A', Mods.Forestry.getItem("portable_alyzer"), - 'P', new UnificationEntry(plate, Materials.Diamond).toString(), - 'C', Mods.Genetics.getItem("misc", 1, 9)); - } - } -} diff --git a/src/main/java/gtexpert/integration/binnies/recipes/BinniesItemsRecipe.java b/src/main/java/gtexpert/integration/binnies/recipes/BinniesItemsRecipe.java deleted file mode 100644 index 7ce1c7e9..00000000 --- a/src/main/java/gtexpert/integration/binnies/recipes/BinniesItemsRecipe.java +++ /dev/null @@ -1,32 +0,0 @@ -package gtexpert.integration.binnies.recipes; - -import gregtech.api.recipes.ModHandler; -import gregtech.api.unification.material.Materials; - -import gtexpert.api.util.Mods; -import gtexpert.integration.ffm.FFMConfigHolder; -import gtexpert.integration.ffm.FFMUtility; - -import forestry.api.recipes.RecipeManagers; - -public class BinniesItemsRecipe { - - public static void init() { - Enum recipeMode = FFMUtility.recipeMode.safeValueOf(FFMConfigHolder.gameMode); - - if (recipeMode == FFMUtility.recipeMode.HARD) { - // Registry - ModHandler.removeRecipeByName(Mods.Genetics.getResource("registry")); - RecipeManagers.carpenterManager.addRecipe( - 40, Materials.Redstone.getFluid(4320), - Mods.Forestry.getItem("portable_alyzer"), Mods.Genetics.getItem("registry"), - "IAI", "BCP", "ILI", - 'I', Mods.Genetics.getItem("misc", 1, 8), - 'A', Mods.ExtraTrees.getItem("databasetree"), - 'B', Mods.Botany.getItem("database"), - 'C', Mods.Genetics.getItem("misc", 1, 9), - 'P', Mods.ExtraBees.getItem("dictionary"), - 'L', Mods.ExtraTrees.getItem("databaselepi")); - } - } -} diff --git a/src/main/java/gtexpert/integration/chisel/ChiselRecipeMaps.java b/src/main/java/gtexpert/integration/chisel/ChiselRecipeMaps.java deleted file mode 100644 index 3a6a8ef6..00000000 --- a/src/main/java/gtexpert/integration/chisel/ChiselRecipeMaps.java +++ /dev/null @@ -1,25 +0,0 @@ -package gtexpert.integration.chisel; - -import gregtech.api.gui.GuiTextures; -import gregtech.api.gui.widgets.ProgressWidget; -import gregtech.api.recipes.RecipeMap; -import gregtech.api.recipes.builders.SimpleRecipeBuilder; -import gregtech.core.sound.GTSoundEvents; - -import gtexpert.api.gui.GTEGuiTextures; - -import crafttweaker.annotations.ZenRegister; -import stanhebben.zenscript.annotations.ZenExpansion; -import stanhebben.zenscript.annotations.ZenProperty; - -@ZenExpansion("mods.gregtech.recipe.RecipeMaps") -@ZenRegister -public class ChiselRecipeMaps { - - @ZenProperty - public static final RecipeMap AUTO_CHISEL_RECIPES = new RecipeMap<>( - "auto_chisel", 2, 9, 0, 0, new SimpleRecipeBuilder(), true) - .setSlotOverlay(false, false, false, GuiTextures.BOXED_BACKGROUND) - .setProgressBar(GTEGuiTextures.PROGRESS_BAR_CHISEL, ProgressWidget.MoveType.HORIZONTAL) - .setSound(GTSoundEvents.FILE_TOOL); -} diff --git a/src/main/java/gtexpert/integration/eio/EnderIORecipeMaps.java b/src/main/java/gtexpert/integration/eio/EnderIORecipeMaps.java deleted file mode 100644 index 99fd2b22..00000000 --- a/src/main/java/gtexpert/integration/eio/EnderIORecipeMaps.java +++ /dev/null @@ -1,42 +0,0 @@ -package gtexpert.integration.eio; - -import net.minecraft.util.SoundEvent; - -import gregtech.api.gui.GuiTextures; -import gregtech.api.gui.widgets.ProgressWidget; -import gregtech.api.recipes.RecipeMap; -import gregtech.api.recipes.builders.SimpleRecipeBuilder; -import gregtech.core.sound.GTSoundEvents; - -import gtexpert.api.gui.GTEGuiTextures; -import gtexpert.api.util.Mods; - -import crafttweaker.annotations.ZenRegister; -import stanhebben.zenscript.annotations.ZenExpansion; -import stanhebben.zenscript.annotations.ZenProperty; - -@ZenExpansion("mods.gregtech.recipe.RecipeMaps") -@ZenRegister -public class EnderIORecipeMaps { - - @ZenProperty - public static final RecipeMap VIAL_EXTRACTOR_RECIPES = new RecipeMap<>( - "vial_extractor", 1, 4, 0, 1, new SimpleRecipeBuilder(), false) - .setSlotOverlay(false, false, GTEGuiTextures.SOULVIAL_FULL_OVERLAY) - .setProgressBar(GuiTextures.PROGRESS_BAR_EXTRACT, ProgressWidget.MoveType.HORIZONTAL) - .setSound(GTSoundEvents.COMPRESSOR); - - @ZenProperty - public static final RecipeMap SLICE_N_SPLICE_RECIPES = new RecipeMap<>( - "slice_n_splice", 6, 1, 0, 0, new SimpleRecipeBuilder(), false) - .setProgressBar(GuiTextures.PROGRESS_BAR_SLICE, ProgressWidget.MoveType.HORIZONTAL) - .setSound(new SoundEvent(Mods.EnderIO.getResource("machine.slicensplice"))); - - @ZenProperty - public static final RecipeMap SOUL_BINDER_RECIPES = new RecipeMap<>( - "soul_binder", 2, 2, 1, 0, new SimpleRecipeBuilder(), false) - .setSlotOverlay(false, false, false, GTEGuiTextures.SOULVIAL_FULL_OVERLAY) - .setSlotOverlay(true, false, false, GTEGuiTextures.SOULVIAL_EMPTY_OVRELAY) - .setProgressBar(GuiTextures.PROGRESS_BAR_CANNER, ProgressWidget.MoveType.HORIZONTAL) - .setSound(new SoundEvent(Mods.EnderIO.getResource("machine.soulbinder"))); -} diff --git a/src/main/java/gtexpert/integration/eio/metatileentities/EIOMetaTileEntities.java b/src/main/java/gtexpert/integration/eio/metatileentities/EIOMetaTileEntities.java deleted file mode 100644 index 188c8ab4..00000000 --- a/src/main/java/gtexpert/integration/eio/metatileentities/EIOMetaTileEntities.java +++ /dev/null @@ -1,44 +0,0 @@ -package gtexpert.integration.eio.metatileentities; - -import static gregtech.api.GTValues.*; -import static gregtech.common.metatileentities.MetaTileEntities.registerMetaTileEntities; -import static gtexpert.api.util.GTEUtility.gteId; -import static gtexpert.common.metatileentities.GTEMetaTileEntities.registerGTESimpleMetaTileEntity; - -import gregtech.api.util.GTUtility; - -import gtexpert.api.util.GTEUtility; -import gtexpert.client.GTETextures; -import gtexpert.common.metatileentities.GTESimpleMachineMetaTileEntity; -import gtexpert.integration.eio.EnderIORecipeMaps; - -public class EIOMetaTileEntities { - - public static GTESimpleMachineMetaTileEntity[] VIAL_EXTRACTOR = new GTESimpleMachineMetaTileEntity[V.length - 1]; - public static GTESimpleMachineMetaTileEntity[] SLICE_N_SPLICE = new GTESimpleMachineMetaTileEntity[V.length - 1]; - public static GTESimpleMachineMetaTileEntity[] SOUL_BINDER = new GTESimpleMachineMetaTileEntity[V.length - 1]; - public static MetaTileEntityElectricSpawner[] ELECTRIC_SPAWNER = new MetaTileEntityElectricSpawner[V.length - 1]; - - public static void init() { - // VIAL_EXTRACTOR 11010~11022 - registerGTESimpleMetaTileEntity(VIAL_EXTRACTOR, 11010, "vial_extractor", - EnderIORecipeMaps.VIAL_EXTRACTOR_RECIPES, - GTETextures.VIAL_EXTRACTOR_OVERLAY, true, GTEUtility::gteId, GTUtility.hvCappedTankSizeFunction); - - // SLICE_N_SPLICE 11023~11035 - registerGTESimpleMetaTileEntity(SLICE_N_SPLICE, 11023, "slice_n_splice", - EnderIORecipeMaps.SLICE_N_SPLICE_RECIPES, - GTETextures.SLICE_N_SPLICE_OVERLAY, true, GTEUtility::gteId, GTUtility.defaultTankSizeFunction); - - // SOUL_BINDER 11036~11048 - registerGTESimpleMetaTileEntity(SOUL_BINDER, 11036, "soul_binder", EnderIORecipeMaps.SOUL_BINDER_RECIPES, - GTETextures.SOUL_BINDER_OVERLAY, true, GTEUtility::gteId, GTUtility.defaultTankSizeFunction); - - // ELECTRIC_SPAWNER 11049~11061 - registerMetaTileEntities(ELECTRIC_SPAWNER, 11049, "electric_spawner", - (tier, voltageName) -> new MetaTileEntityElectricSpawner( - gteId(String.format("%s.%s", "electric_spawner", voltageName)), - GTETextures.SPAWNER_OVERLAY, - tier)); - } -} diff --git a/src/main/java/gtexpert/integration/ffm/FFMConfigHolder.java b/src/main/java/gtexpert/integration/ffm/FFMConfigHolder.java deleted file mode 100644 index e1a5a616..00000000 --- a/src/main/java/gtexpert/integration/ffm/FFMConfigHolder.java +++ /dev/null @@ -1,18 +0,0 @@ -package gtexpert.integration.ffm; - -import net.minecraftforge.common.config.Config; - -import gtexpert.api.GTEValues; -import gtexpert.modules.GTEModules; - -@Config.LangKey(GTEValues.MODID + ".config.integration.ffm") -@Config(modid = GTEValues.MODID, - name = GTEValues.MODID + "/integration/" + GTEModules.MODULE_FFM, - category = "Forestry") -public class FFMConfigHolder { - - @Config.Comment({ "Recipes for various items in Forestry will be more difficult", - "default: NORMAL", - "valid: [NORMAL, HARD]" }) - public static String gameMode = "NORMAL"; -} diff --git a/src/main/java/gtexpert/integration/ffm/FFMModule.java b/src/main/java/gtexpert/integration/ffm/FFMModule.java deleted file mode 100644 index 37dc04d3..00000000 --- a/src/main/java/gtexpert/integration/ffm/FFMModule.java +++ /dev/null @@ -1,42 +0,0 @@ -package gtexpert.integration.ffm; - -import net.minecraft.item.crafting.IRecipe; -import net.minecraftforge.event.RegistryEvent; -import net.minecraftforge.fml.common.event.FMLPostInitializationEvent; - -import gtexpert.api.GTEValues; -import gtexpert.api.modules.GTEModule; -import gtexpert.api.util.Mods; -import gtexpert.integration.GTEIntegrationSubmodule; -import gtexpert.integration.ffm.loaders.FFMOreDictionaryLoader; -import gtexpert.integration.ffm.recipes.*; -import gtexpert.integration.ffm.recipes.machines.*; -import gtexpert.modules.GTEModules; - -@GTEModule( - moduleID = GTEModules.MODULE_FFM, - containerID = GTEValues.MODID, - modDependencies = Mods.Names.FORESTRY, - name = "GTExpert Forestry For Minecraft Integration", - description = "Forestry For Minecraft Integration Module") -public class FFMModule extends GTEIntegrationSubmodule { - - @Override - public void postInit(FMLPostInitializationEvent event) { - FFMBlockRecipe.init(); - FFMItemRecipe.init(); - FFMMaterialsRecipe.init(); - FFMToolRecipe.init(); - FFMWoodRecipe.init(); - - CarpenterLoader.initBase(); - CarpenterLoader.initMode(); - CentrifugeLoader.init(); - FabricatorLoader.init(); - } - - @Override - public void registerRecipesNormal(RegistryEvent.Register event) { - FFMOreDictionaryLoader.init(); - } -} diff --git a/src/main/java/gtexpert/integration/ffm/FFMUtility.java b/src/main/java/gtexpert/integration/ffm/FFMUtility.java deleted file mode 100644 index 63612a2f..00000000 --- a/src/main/java/gtexpert/integration/ffm/FFMUtility.java +++ /dev/null @@ -1,55 +0,0 @@ -package gtexpert.integration.ffm; - -import org.jetbrains.annotations.NotNull; - -import gregtech.common.ConfigHolder; - -import gtexpert.api.util.GTELog; - -import forestry.api.core.ForestryAPI; - -public class FFMUtility { - - public static float energyModifier = ForestryAPI.activeMode.getFloatSetting("energy.demand.modifier"); - public static int feToEu = ConfigHolder.compat.energy.euToFeRatio; - - public static int timeCarpenter(int EUt) { - return Math.round(EUt * 204 * energyModifier / (100 * feToEu)); - } - - public static int timeFabricator(int EUt) { - return Math.round(200 * energyModifier / (EUt * feToEu)); - } - - public enum recipeMode { - - EASY("EASY"), // NO SUPPORT - NORMAL("NORMAL"), - HARD("HARD"), - OP("OP"); // NO SUPPORT - - private final String mode; - - public String getString() { - return this.mode; - } - - recipeMode(final String mode) { - this.mode = mode; - } - - public static recipeMode safeValueOf(@NotNull String name) { - if (name.isEmpty()) { - GTELog.logger.error("Invalid recipe mode is empty! Set to default value.", new Throwable()); - return NORMAL; - } - - try { - return recipeMode.valueOf(name); - } catch (IllegalArgumentException e) { - GTELog.logger.error("Invalid recipe mode! Set to default value. : {}", name, e, new Throwable()); - return NORMAL; - } - } - } -} diff --git a/src/main/java/gtexpert/integration/ffm/loaders/FFMOreDictionaryLoader.java b/src/main/java/gtexpert/integration/ffm/loaders/FFMOreDictionaryLoader.java deleted file mode 100644 index b8aa1104..00000000 --- a/src/main/java/gtexpert/integration/ffm/loaders/FFMOreDictionaryLoader.java +++ /dev/null @@ -1,14 +0,0 @@ -package gtexpert.integration.ffm.loaders; - -import net.minecraftforge.oredict.OreDictionary; - -import gtexpert.api.util.Mods; - -public class FFMOreDictionaryLoader { - - public static void init() { - OreDictionary.registerOre("oreApatite", Mods.Forestry.getItem("resources")); - OreDictionary.registerOre("oreCopper", Mods.Forestry.getItem("resources", 1, 1)); - OreDictionary.registerOre("oreTin", Mods.Forestry.getItem("resources", 1, 2)); - } -} diff --git a/src/main/java/gtexpert/integration/ffm/recipes/FFMBlockRecipe.java b/src/main/java/gtexpert/integration/ffm/recipes/FFMBlockRecipe.java deleted file mode 100644 index 5cb0c8bd..00000000 --- a/src/main/java/gtexpert/integration/ffm/recipes/FFMBlockRecipe.java +++ /dev/null @@ -1,54 +0,0 @@ -package gtexpert.integration.ffm.recipes; - -import static gregtech.api.unification.ore.OrePrefix.*; - -import net.minecraft.init.Blocks; -import net.minecraft.init.Items; -import net.minecraft.item.ItemStack; - -import gregtech.api.recipes.ModHandler; -import gregtech.api.recipes.RecipeMaps; -import gregtech.api.unification.material.Materials; -import gregtech.common.ConfigHolder; - -import gtexpert.api.util.Mods; - -public class FFMBlockRecipe { - - public static void init() { - if (Mods.ForestryCore.isModLoaded()) { - blockCore(); - } - if (Mods.ForestryCharcoal.isModLoaded()) { - blockCharcoal(); - } - } - - public static void blockCore() { - // Ash Brick - if (ConfigHolder.recipes.harderBrickRecipes) { - ModHandler.removeRecipeByName(Mods.Forestry.getResource("ash_brick")); - RecipeMaps.ALLOY_SMELTER_RECIPES.recipeBuilder() - .input(dust, Materials.Ash, 4) - .inputs(new ItemStack(Items.BRICK, 4)) - .outputs(Mods.Forestry.getItem("ash_brick")) - .duration(400).EUt(2).buildAndRegister(); - RecipeMaps.ALLOY_SMELTER_RECIPES.recipeBuilder() - .input(dust, Materials.Ash, 4) - .inputs(new ItemStack(Blocks.BRICK_BLOCK)) - .outputs(Mods.Forestry.getItem("ash_brick")) - .duration(100).EUt(2).buildAndRegister(); - } - } - - public static void blockCharcoal() { - // Loam - ModHandler.removeRecipeByName(Mods.Forestry.getResource("loam")); - RecipeMaps.MIXER_RECIPES.recipeBuilder() - .inputs(new ItemStack(Items.CLAY_BALL, 4)) - .input("sand", 2) - .inputs(Mods.Forestry.getItem("fertilizer_bio", 2)) - .outputs(Mods.Forestry.getItem("loam", 4)) - .duration(200).EUt(16).buildAndRegister(); - } -} diff --git a/src/main/java/gtexpert/integration/ffm/recipes/FFMItemRecipe.java b/src/main/java/gtexpert/integration/ffm/recipes/FFMItemRecipe.java deleted file mode 100644 index 7f66983c..00000000 --- a/src/main/java/gtexpert/integration/ffm/recipes/FFMItemRecipe.java +++ /dev/null @@ -1,37 +0,0 @@ -package gtexpert.integration.ffm.recipes; - -import static gregtech.api.unification.ore.OrePrefix.*; - -import gregtech.api.recipes.ModHandler; -import gregtech.api.recipes.RecipeMaps; -import gregtech.api.unification.material.Materials; -import gregtech.api.unification.stack.UnificationEntry; - -import gtexpert.api.util.Mods; - -public class FFMItemRecipe { - - public static void init() { - if (Mods.ForestryCore.isModLoaded()) { - itemCore(); - } - } - - public static void itemCore() { - // Study Casing - ModHandler.removeRecipeByName(Mods.Forestry.getResource("sturdy_casing")); - ModHandler.addShapedRecipe(true, "sturdy_casing", Mods.Forestry.getItem("sturdy_machine"), - "PPP", "PwP", "PPP", - 'P', new UnificationEntry(plate, Materials.Bronze)); - RecipeMaps.ASSEMBLER_RECIPES.recipeBuilder() - .input(plate, Materials.Bronze, 8) - .circuitMeta(8) - .outputs(Mods.Forestry.getItem("sturdy_machine")) - .duration(50).EUt(16).buildAndRegister(); - - // Portable Analyzer - ModHandler.addShapelessNBTClearingRecipe("portable_alyzer_nbt", - Mods.Forestry.getItem("portable_alyzer"), - Mods.Forestry.getItem("portable_alyzer")); - } -} diff --git a/src/main/java/gtexpert/integration/ffm/recipes/FFMMaterialsRecipe.java b/src/main/java/gtexpert/integration/ffm/recipes/FFMMaterialsRecipe.java deleted file mode 100644 index e1467f15..00000000 --- a/src/main/java/gtexpert/integration/ffm/recipes/FFMMaterialsRecipe.java +++ /dev/null @@ -1,61 +0,0 @@ -package gtexpert.integration.ffm.recipes; - -import gregtech.api.recipes.ModHandler; - -import gtexpert.api.util.Mods; - -public class FFMMaterialsRecipe { - - public static void init() { - if (Mods.ForestryCore.isModLoaded()) { - materialsCore(); - } - if (Mods.ForestryCharcoal.isModLoaded()) { - materialCharcoal(); - } - } - - public static void materialsCore() { - // Copper Ingot - ModHandler.removeRecipeByName(Mods.Forestry.getResource("block_to_copper")); - - // Copper Block - ModHandler.removeRecipeByName(Mods.Forestry.getResource("copper_block")); - - // Copper Gear - ModHandler.removeRecipeByName(Mods.Forestry.getResource("gear_copper")); - - // Tin Ingot - ModHandler.removeRecipeByName(Mods.Forestry.getResource("block_to_tin")); - - // Tin Block - ModHandler.removeRecipeByName(Mods.Forestry.getResource("tin_block")); - - // Tin Gear - ModHandler.removeRecipeByName(Mods.Forestry.getResource("gear_tin")); - - // Bronze Ingot - ModHandler.removeRecipeByName(Mods.Forestry.getResource("bronze_ingot")); - ModHandler.removeRecipeByName(Mods.Forestry.getResource("block_to_bronze")); - - // Bronze Block - ModHandler.removeRecipeByName(Mods.Forestry.getResource("bronze_block")); - - // Bronze Gear - ModHandler.removeRecipeByName(Mods.Forestry.getResource("gear_bronze")); - - // Apatite - ModHandler.removeRecipeByName(Mods.Forestry.getResource("block_to_apatite")); - - // Apatite Block - ModHandler.removeRecipeByName(Mods.Forestry.getResource("apatite_block")); - } - - public static void materialCharcoal() { - // Charcoal - ModHandler.removeRecipeByName(Mods.Forestry.getResource("charcoal")); - - // Charcoal Block - ModHandler.removeRecipeByName(Mods.Forestry.getResource("charcoal_block")); - } -} diff --git a/src/main/java/gtexpert/integration/ffm/recipes/FFMToolRecipe.java b/src/main/java/gtexpert/integration/ffm/recipes/FFMToolRecipe.java deleted file mode 100644 index 0a6bb308..00000000 --- a/src/main/java/gtexpert/integration/ffm/recipes/FFMToolRecipe.java +++ /dev/null @@ -1,97 +0,0 @@ -package gtexpert.integration.ffm.recipes; - -import static gregtech.api.unification.ore.OrePrefix.*; - -import net.minecraft.init.Blocks; -import net.minecraft.init.Items; -import net.minecraft.item.ItemStack; - -import gregtech.api.GTValues; -import gregtech.api.recipes.ModHandler; -import gregtech.api.recipes.RecipeMaps; -import gregtech.api.unification.material.Materials; -import gregtech.api.unification.stack.UnificationEntry; -import gregtech.common.ConfigHolder; - -import gtexpert.api.util.Mods; - -public class FFMToolRecipe { - - public static void init() { - if (Mods.ForestryCore.isModLoaded()) { - toolCore(); - } - if (Mods.ForestryArboriculture.isModLoaded()) { - toolArboriculture(); - } - if (Mods.ForestryApiculture.isModLoaded()) { - toolApiculture(); - } - } - - public static void toolCore() { - if (!ConfigHolder.recipes.hardToolArmorRecipes) return; - - // Survivalist Tools - ModHandler.removeRecipeByName(Mods.Forestry.getResource("bronze_pickaxe")); - ModHandler.addShapedRecipe(true, "survivalist_pickaxe", Mods.Forestry.getItem("bronze_pickaxe"), - " S ", "hSf", "PII", - 'S', new ItemStack((Items.STICK)), - 'P', new UnificationEntry(plate, Materials.Bronze), - 'I', new UnificationEntry(ingot, Materials.Bronze)); - - ModHandler.removeRecipeByName(Mods.Forestry.getResource("bronze_shovel")); - ModHandler.addShapedRecipe(true, "survivalist_shovel", Mods.Forestry.getItem("bronze_shovel"), - " S ", " S ", "hPf", - 'S', new ItemStack(Items.STICK), - 'P', new UnificationEntry(plate, Materials.Bronze)); - - // Naturalist's Armor - ModHandler.removeRecipeByName(Mods.Forestry.getResource("spectacles")); - ModHandler.addShapedRecipe(true, "spectacles", Mods.Forestry.getItem("naturalist_helmet"), - " P ", "G G", - 'P', new UnificationEntry(plate, Materials.Bronze), - 'G', new ItemStack(Blocks.GLASS_PANE)); - } - - private static void toolArboriculture() { - if (!ConfigHolder.recipes.hardToolArmorRecipes) return; - - // Grafter - ModHandler.removeRecipeByName(Mods.Forestry.getResource("grafter")); - ModHandler.addShapedRecipe(true, "grafter", Mods.Forestry.getItem("grafter"), - "Ph ", "fS ", " S", - 'P', new UnificationEntry(plate, Materials.Bronze), - 'S', new UnificationEntry(stick, Materials.Wood)); - } - - private static void toolApiculture() { - // Habitat Locator - if (!ConfigHolder.recipes.hardToolArmorRecipes) { - RecipeMaps.ASSEMBLER_RECIPES.recipeBuilder() - .input(dust, Materials.Redstone) - .input(plate, Materials.Bronze, 4) - .circuitMeta(1) - .outputs(Mods.Forestry.getItem("habitat_locator")) - .duration(100).EUt(4).buildAndRegister(); - } else { - ModHandler.removeRecipeByName(Mods.Forestry.getResource("habitat_locator")); - ModHandler.addShapedRecipe(true, "habitat_locator", Mods.Forestry.getItem("habitat_locator"), - "SGB", "RPR", "AdS", - 'S', new UnificationEntry(screw, Materials.Bronze), - 'G', new ItemStack(Blocks.GLASS_PANE, 1, GTValues.W), - 'B', new UnificationEntry(bolt, Materials.IronMagnetic), - 'R', new UnificationEntry(ring, Materials.Zinc), - 'P', new UnificationEntry(plate, Materials.Bronze), - 'A', new UnificationEntry(bolt, Materials.RedAlloy)); - RecipeMaps.ASSEMBLER_RECIPES.recipeBuilder() - .input(plate, Materials.Bronze) - .input(ring, Materials.Zinc) - .input(bolt, Materials.RedAlloy) - .input(bolt, Materials.IronMagnetic) - .input(screw, Materials.Bronze, 2) - .outputs(Mods.Forestry.getItem("habitat_locator")) - .duration(100).EUt(16).buildAndRegister(); - } - } -} diff --git a/src/main/java/gtexpert/integration/ffm/recipes/FFMWoodRecipe.java b/src/main/java/gtexpert/integration/ffm/recipes/FFMWoodRecipe.java deleted file mode 100644 index e176e639..00000000 --- a/src/main/java/gtexpert/integration/ffm/recipes/FFMWoodRecipe.java +++ /dev/null @@ -1,120 +0,0 @@ -package gtexpert.integration.ffm.recipes; - -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; -import java.util.stream.Collectors; - -import net.minecraft.util.ResourceLocation; - -import gregtech.api.recipes.ModHandler; -import gregtech.api.recipes.RecipeMaps; -import gregtech.common.ConfigHolder; -import gregtech.loaders.WoodTypeEntry; - -import gtexpert.api.GTEValues; -import gtexpert.api.util.Mods; -import gtexpert.loaders.GTEWoodRecipeLoader; - -import forestry.api.arboriculture.EnumForestryWoodType; -import forestry.api.arboriculture.EnumVanillaWoodType; - -public class FFMWoodRecipe { - - private static final String mcModId = Mods.Forestry.name(); - private static List DEFAULT_ENTRIES; - private static List FIREPROOF_ENTRIES; - - private static void initEntries() { - DEFAULT_ENTRIES = new ArrayList<>(); - FIREPROOF_ENTRIES = new ArrayList<>(); - - int plankId = -1, logId = -1, slabId = -1; - List woodNames = Arrays.stream(EnumForestryWoodType.values()).map(Enum::name) - .collect(Collectors.toList()); - for (int i = 0; i < woodNames.size(); i++) { - String woodName = woodNames.get(i).toLowerCase(); - int plankMeta = i % 16; - int logMeta = i % 4; - int slabMeta = i % 8; - if (plankMeta == 0) plankId++; - if (logMeta == 0) logId++; - if (slabMeta == 0) slabId++; - DEFAULT_ENTRIES.add(getEntry(woodName, plankMeta, logMeta, slabMeta, plankId, logId, slabId, "")); - FIREPROOF_ENTRIES - .add(getEntry(woodName, plankMeta, logMeta, slabMeta, plankId, logId, slabId, "fireproof.")); - } - - plankId = -1; - logId = -1; - slabId = -1; - List vanillaWoodNames = Arrays.stream(EnumVanillaWoodType.values()).map(Enum::name) - .collect(Collectors.toList()); - for (int i = 0; i < vanillaWoodNames.size(); i++) { - int plankMeta = i % 16; - int logMeta = i % 4; - int slabMeta = i % 8; - if (plankMeta == 0) plankId++; - if (logMeta == 0) logId++; - if (slabMeta == 0) slabId++; - FIREPROOF_ENTRIES.add(getEntry(vanillaWoodNames.get(i).toLowerCase(), plankMeta, logMeta, slabMeta, plankId, - logId, slabId, "vanilla.fireproof.")); - } - } - - private static WoodTypeEntry getEntry(String woodName, int plankMeta, int logMeta, int slabMeta, int plankId, - int logId, int slabId, String separator) { - return new WoodTypeEntry.Builder(mcModId, woodName) - .planks(Mods.Forestry.getItem("planks." + separator + plankId, 1, plankMeta), null) - .log(Mods.Forestry.getItem("logs." + separator + logId, 1, logMeta)).removeCharcoalRecipe() - .door(Mods.Forestry.getItem("doors." + separator + woodName), null) - .slab(Mods.Forestry.getItem("slabs." + separator + slabId, 1, slabMeta), null) - .fence(Mods.Forestry.getItem("fences." + separator + plankId, 1, plankMeta), null) - .fenceGate(Mods.Forestry.getItem("fence.gates." + separator + woodName), null) - .stairs(Mods.Forestry.getItem("stairs." + separator + woodName), null).addStairsRecipe() - .build(); - } - - public static void init() { - initEntries(); - String[] types = { "planks_", "slabs_", "fences_", "fence_gates_", "stairs_" }; - for (WoodTypeEntry entry : DEFAULT_ENTRIES) { - for (String type : types) { - ModHandler.removeRecipeByName(Mods.Forestry.getResource(type + entry.woodName)); - } - - // only for normal woods - ModHandler.removeRecipeByName(Mods.Forestry.getResource("doors_" + entry.woodName)); - - GTEWoodRecipeLoader.registerWoodTypeRecipe(true, entry); - GTEWoodRecipeLoader.addCuttingRecipe(entry); - GTEWoodRecipeLoader.addSawmillRecipe(entry); - } - - for (WoodTypeEntry entry : FIREPROOF_ENTRIES) { - for (String type : types) { - ModHandler.removeRecipeByName(Mods.Forestry.getResource("fireproof_" + type + entry.woodName)); - } - - GTEWoodRecipeLoader.registerWoodTypeRecipe(true, entry); - GTEWoodRecipeLoader.addCuttingRecipe(entry); - GTEWoodRecipeLoader.addSawmillRecipe(entry); - } - - // Fireproof for vanilla wood - String[] vanillaWoodNames = { "oak", "spruce", "birch", "jungle", "acacia", "dark_oak" }; - for (String woodName : vanillaWoodNames) { - ModHandler.removeRecipeByName(new ResourceLocation(GTEValues.MODID, woodName + "_planks_saw")); - } - - if (!Mods.ForestryCharcoal.isModLoaded()) return; - if (!ConfigHolder.recipes.harderCharcoalRecipe) return; - ModHandler.removeRecipeByName(Mods.Forestry.getResource("wood_pile")); - - RecipeMaps.COMPRESSOR_RECIPES.recipeBuilder() - .input("logWood", 4) - .outputs(Mods.Forestry.getItem("wood_pile")) - .duration(300).EUt(2) - .buildAndRegister(); - } -} diff --git a/src/main/java/gtexpert/integration/ffm/recipes/machines/CarpenterLoader.java b/src/main/java/gtexpert/integration/ffm/recipes/machines/CarpenterLoader.java deleted file mode 100644 index 89128060..00000000 --- a/src/main/java/gtexpert/integration/ffm/recipes/machines/CarpenterLoader.java +++ /dev/null @@ -1,721 +0,0 @@ -package gtexpert.integration.ffm.recipes.machines; - -import static gregtech.api.unification.ore.OrePrefix.*; - -import net.minecraft.init.Blocks; -import net.minecraft.init.Items; -import net.minecraft.item.ItemStack; - -import gregtech.api.GTValues; -import gregtech.api.items.metaitem.MetaItem; -import gregtech.api.recipes.ModHandler; -import gregtech.api.recipes.RecipeMaps; -import gregtech.api.recipes.ingredients.nbtmatch.NBTCondition; -import gregtech.api.recipes.ingredients.nbtmatch.NBTMatcher; -import gregtech.api.unification.material.Material; -import gregtech.api.unification.material.Materials; -import gregtech.api.unification.stack.UnificationEntry; -import gregtech.api.util.GTUtility; -import gregtech.common.items.MetaItems; -import gregtech.common.metatileentities.MetaTileEntities; - -import gtexpert.api.util.GTELog; -import gtexpert.api.util.GTEUtility; -import gtexpert.api.util.Mods; -import gtexpert.integration.ffm.FFMConfigHolder; -import gtexpert.integration.ffm.FFMUtility; - -import forestry.api.circuits.ICircuit; -import forestry.api.recipes.RecipeManagers; -import forestry.arboriculture.ModuleArboriculture; -import forestry.core.circuits.EnumCircuitBoardType; -import forestry.core.circuits.ItemCircuitBoard; -import forestry.core.fluids.Fluids; -import forestry.factory.recipes.CarpenterRecipeManager; -import forestry.lepidopterology.ModuleLepidopterology; - -public class CarpenterLoader { - - public static void initBase() { - Core(); - Apiculture(); - Climatology(); - Factory(); - Mail(); - Storage(); - } - - public static void initMode() { - Enum recipeMode = FFMUtility.recipeMode.safeValueOf(FFMConfigHolder.gameMode); - - if (recipeMode == FFMUtility.recipeMode.NORMAL) { - CoreNormal(); - ApicultureNormal(); - - // Circuit - CarpenterLoader.registerCarpenterRecipe(recipeMode, Mods.Forestry.getItem("chipsets", 1), - 20, Materials.Iron, MetaItems.COATED_BOARD); - CarpenterLoader.registerCarpenterRecipe(recipeMode, Mods.Forestry.getItem("chipsets", 1, 1), - 40, Materials.Bronze, MetaItems.COATED_BOARD); - CarpenterLoader.registerCarpenterRecipe(recipeMode, Mods.Forestry.getItem("chipsets", 1, 2), - 80, Materials.Steel, MetaItems.PHENOLIC_BOARD); - CarpenterLoader.registerCarpenterRecipe(recipeMode, Mods.Forestry.getItem("chipsets", 1, 3), - 160, Materials.Electrum, MetaItems.PHENOLIC_BOARD); - - } else if (recipeMode == FFMUtility.recipeMode.HARD) { - CoreHard(); - ApicultureHard(); - ArboricultureHard(); - LepidopterologyHard(); - - // Circuit - CarpenterLoader.registerCarpenterRecipe(recipeMode, Mods.Forestry.getItem("chipsets", 1), - 20, Materials.Iron, MetaItems.COATED_BOARD, GTEUtility.oreDictionaryCircuit(GTValues.ULV)); - CarpenterLoader.registerCarpenterRecipe(recipeMode, Mods.Forestry.getItem("chipsets", 1, 1), - 40, Materials.Bronze, MetaItems.COATED_BOARD, GTEUtility.oreDictionaryCircuit(GTValues.LV)); - CarpenterLoader.registerCarpenterRecipe(recipeMode, Mods.Forestry.getItem("chipsets", 1, 2), - 80, Materials.Steel, MetaItems.PHENOLIC_BOARD, GTEUtility.oreDictionaryCircuit(GTValues.MV)); - CarpenterLoader.registerCarpenterRecipe(recipeMode, Mods.Forestry.getItem("chipsets", 1, 3), - 160, Materials.Electrum, MetaItems.PHENOLIC_BOARD, GTEUtility.oreDictionaryCircuit(GTValues.HV)); - } - } - - /** - * XX : Module Name - * - : Always loaded - * Normal : Only loaded when hardForestryRecipe is false - * Hard : Only loaded when hardForestryRecipe is true - */ - private static void Core() { - if (Mods.ForestryFactory.isModLoaded()) { - CarpenterLoader.removeCarpenterRecipe(Mods.Forestry.getItem("portable_alyzer")); - CarpenterLoader.removeCarpenterRecipe(Mods.Forestry.getItem("hardened_machine")); - CarpenterLoader.removeCarpenterRecipe(Mods.Forestry.getItem("kit_pickaxe")); - CarpenterLoader.removeCarpenterRecipe(Mods.Forestry.getItem("kit_shovel")); - CarpenterLoader.removeCarpenterRecipe(Mods.Forestry.getItem("wood_pulp")); - CarpenterLoader.removeCarpenterRecipe(Mods.Forestry.getItem("carton")); - CarpenterLoader.removeCarpenterRecipe(new ItemStack(Items.PAPER)); - - RecipeManagers.carpenterManager.addRecipe( - 5, Materials.Water.getFluid(1000), - ItemStack.EMPTY, Mods.Forestry.getItem("carton"), - " D ", "D D", " D ", 'D', new UnificationEntry(dust, Materials.Wood).toString()); - - RecipeManagers.carpenterManager.addRecipe( - 20, - Mods.Forestry.getItem("carton"), Mods.Forestry.getItem("kit_pickaxe"), - " S ", " S ", "PII", - 'S', new UnificationEntry(stick, Materials.Wood).toString(), - 'P', new UnificationEntry(plate, Materials.Bronze).toString(), - 'I', new UnificationEntry(ingot, Materials.Bronze).toString()); - - RecipeManagers.carpenterManager.addRecipe(20, - Mods.Forestry.getItem("carton"), Mods.Forestry.getItem("kit_shovel"), - " S ", " S ", " P ", - 'S', new UnificationEntry(stick, Materials.Wood).toString(), - 'P', new UnificationEntry(plate, Materials.Bronze).toString()); - - // Hardened Casing - RecipeManagers.carpenterManager.addRecipe( - 75, Materials.Water.getFluid(5000), - ItemStack.EMPTY, Mods.Forestry.getItem("hardened_machine"), - "# #", " Y ", "# #", - '#', "plateDiamond", - 'Y', Mods.Forestry.getItem("sturdy_machine")); - } else { - ModHandler.removeRecipeByName(Mods.Forestry.getResource("portable_alyzer")); - } - - // Impregnated Casing - RecipeMaps.ASSEMBLER_RECIPES.recipeBuilder() - .input("logWood", 8) - .fluidInputs(Materials.SeedOil.getFluid(250)) - .circuitMeta(1) - .outputs(Mods.Forestry.getItem("impregnated_casing")) - .EUt(50).duration(FFMUtility.timeCarpenter(50)).buildAndRegister(); - - // Escritoire - RecipeMaps.ASSEMBLER_RECIPES.recipeBuilder() - .input("plankWood", 6) - .fluidInputs(Materials.SeedOil.getFluid(500)) - .circuitMeta(10) - .outputs(Mods.Forestry.getItem("escritoire")) - .EUt(50).duration(FFMUtility.timeCarpenter(50)).buildAndRegister(); - - // Impregnated Stick - RecipeMaps.ASSEMBLER_RECIPES.recipeBuilder() - .input("logWood", 2) - .fluidInputs(Materials.SeedOil.getFluid(100)) - .circuitMeta(11) - .outputs(Mods.Forestry.getItem("oak_stick")) - .EUt(10).duration(FFMUtility.timeCarpenter(10)).buildAndRegister(); - - // Bog Earth - RecipeMaps.MIXER_RECIPES.recipeBuilder() - .inputs(new ItemStack(Blocks.DIRT, 4, GTValues.W)) - .input("sand", 4) - .inputs(Mods.Forestry.getItem("mulch")) - .fluidInputs(Materials.Water.getFluid(1000)) - .circuitMeta(2) - .outputs(Mods.Forestry.getItem("bog_earth", 8)) - .EUt(5).duration(FFMUtility.timeCarpenter(5)).buildAndRegister(); - - // Hardened Casing - RecipeMaps.ASSEMBLER_RECIPES.recipeBuilder() - .input(plate, Materials.Diamond, 4) - .inputs(Mods.Forestry.getItem("sturdy_machine")) - .fluidInputs(Materials.Water.getFluid(1000)) - .outputs(Mods.Forestry.getItem("hardened_machine")) - .EUt(75).duration(FFMUtility.timeCarpenter(75)).buildAndRegister(); - - // Ender Pearl - RecipeMaps.CHEMICAL_RECIPES.recipeBuilder() - .inputs(Mods.Forestry.getItem("crafting_material", 5, 1)) - .outputs(new ItemStack(Items.ENDER_PEARL)) - .EUt(100).duration(FFMUtility.timeCarpenter(100)).buildAndRegister(); - - // Woven Silk - RecipeMaps.ASSEMBLER_RECIPES.recipeBuilder() - .inputs(Mods.Forestry.getItem("crafting_material", 9, 2)) - .fluidInputs(Materials.Water.getFluid(500)) - .outputs(Mods.Forestry.getItem("crafting_material", 1, 3)) - .EUt(10).duration(FFMUtility.timeCarpenter(10)).buildAndRegister(); - - // Tool - RecipeMaps.PACKER_RECIPES.recipeBuilder() - .inputs(Mods.Forestry.getItem("bronze_pickaxe")) - .inputs(Mods.Forestry.getItem("carton")) - .outputs(Mods.Forestry.getItem("kit_pickaxe")) - .EUt(20).duration(FFMUtility.timeCarpenter(20)).buildAndRegister(); - - RecipeMaps.PACKER_RECIPES.recipeBuilder() - .inputs(Mods.Forestry.getItem("bronze_shovel")) - .inputs(Mods.Forestry.getItem("carton")) - .outputs(Mods.Forestry.getItem("kit_shovel")) - .EUt(20).duration(FFMUtility.timeCarpenter(20)).buildAndRegister(); - - RecipeMaps.ARC_FURNACE_RECIPES.recipeBuilder() - .inputs(Mods.Forestry.getItem("broken_bronze_pickaxe")) - .fluidInputs(Materials.Oxygen.getFluid(100)) - .output(ingot, Materials.Bronze, 2) - .EUt(5).duration(FFMUtility.timeCarpenter(5)).buildAndRegister(); - - RecipeMaps.ARC_FURNACE_RECIPES.recipeBuilder() - .inputs(Mods.Forestry.getItem("broken_bronze_shovel")) - .fluidInputs(Materials.Oxygen.getFluid(100)) - .output(ingot, Materials.Bronze) - .EUt(5).duration(FFMUtility.timeCarpenter(5)).buildAndRegister(); - - // Carton - RecipeMaps.ASSEMBLER_RECIPES.recipeBuilder() - .input(dust, Materials.Wood, 4) - .fluidInputs(Materials.Water.getFluid(1000)) - .outputs(Mods.Forestry.getItem("carton")) - .EUt(5).duration(FFMUtility.timeCarpenter(5)).buildAndRegister(); - } - - private static void CoreNormal() { - // Portable Analyzer - RecipeMaps.ASSEMBLER_RECIPES.recipeBuilder() - .input(plate, Materials.Tin, 2) - .input("circuitLv", 2) - .input(plate, Materials.Diamond) - .input("paneGlass", 2) - .input(plate, Materials.RedAlloy, 2) - .fluidInputs(Materials.Water.getFluid(2000)) - .outputs(Mods.Forestry.getItem("portable_alyzer")) - .EUt(50).duration(FFMUtility.timeCarpenter(50 * 4)).buildAndRegister(); - - if (Mods.ForestryFactory.isModLoaded()) { - RecipeManagers.carpenterManager.addRecipe( - 50, Materials.Water.getFluid(2000), - ItemStack.EMPTY, Mods.Forestry.getItem("portable_alyzer"), - "TGT", "CGC", "RDR", - 'T', new UnificationEntry(plate, Materials.Tin).toString(), - 'G', "paneGlass", - 'C', "circuitLv", - 'R', new UnificationEntry(plate, Materials.RedAlloy).toString(), - 'D', new UnificationEntry(plate, Materials.Diamond).toString()); - } - } - - private static void CoreHard() { - // Portable Analyzer - RecipeMaps.ASSEMBLER_RECIPES.recipeBuilder() - .input(plate, Materials.Tin, 2) - .input("circuitMv", 2) - .input(plate, Materials.Diamond) - .input("paneGlass", 2) - .input(plate, Materials.RedAlloy, 2) - .fluidInputs(Materials.Water.getFluid(2000)) - .outputs(Mods.Forestry.getItem("portable_alyzer")) - .EUt(50).duration(FFMUtility.timeCarpenter(50 * 4)).buildAndRegister(); - - if (Mods.ForestryFactory.isModLoaded()) { - RecipeManagers.carpenterManager.addRecipe( - 50, Materials.Water.getFluid(2000), - ItemStack.EMPTY, Mods.Forestry.getItem("portable_alyzer"), - "TGT", "CGC", "RDR", - 'T', new UnificationEntry(plate, Materials.Tin).toString(), - 'G', "paneGlass", - 'C', "circuitMv", - 'R', new UnificationEntry(plate, Materials.RedAlloy).toString(), - 'D', new UnificationEntry(plate, Materials.Diamond).toString()); - } - } - - private static void Apiculture() { - if (!Mods.ForestryApiculture.isModLoaded()) return; - // Scented Paneling - RecipeMaps.ASSEMBLER_RECIPES.recipeBuilder() - .inputs(Mods.Forestry.getItem("royal_jelly")) - .input("plankWood", 3) - .inputs(Mods.Forestry.getItem("beeswax", 2)) - .inputs(Mods.Forestry.getItem("pollen")) - .fluidInputs(Fluids.FOR_HONEY.getFluid(500)) - .outputs(Mods.Forestry.getItem("crafting_material", 1, 6)) - .EUt(50).duration(FFMUtility.timeCarpenter(50)).buildAndRegister(); - - // Candle - RecipeMaps.ASSEMBLER_RECIPES.recipeBuilder() - .input(Items.STRING) - .inputs(Mods.Forestry.getItem("beeswax", 6)) - .fluidInputs(Materials.Water.getFluid(600)) - .outputs(Mods.Forestry.getItem("candle", 24)) - .EUt(30).duration(FFMUtility.timeCarpenter(30)).buildAndRegister(); - RecipeMaps.ASSEMBLER_RECIPES.recipeBuilder() - .inputs(Mods.Forestry.getItem("crafting_material", 1, 2)) - .inputs(Mods.Forestry.getItem("beeswax", 6)) - .fluidInputs(Materials.Water.getFluid(200)) - .outputs(Mods.Forestry.getItem("candle", 6)) - .EUt(10).duration(FFMUtility.timeCarpenter(10)).buildAndRegister(); - - // Iodine Capsule - RecipeMaps.ASSEMBLER_RECIPES.recipeBuilder() - .inputs(Mods.Forestry.getItem("honey_drop", 2)) - .inputs(GTUtility.copy(4, ModuleArboriculture.getItems().pollenFertile.getWildcard())) - .inputs(Mods.Forestry.getItem("can")) - .input(dust, Materials.Gunpowder, 2) - .fluidInputs(Materials.Water.getFluid(1000)) - .outputs(Mods.Forestry.getItem("iodine_capsule")) - .EUt(5).duration(FFMUtility.timeCarpenter(5)).buildAndRegister(); - - // Dissipation Charge - RecipeMaps.ASSEMBLER_RECIPES.recipeBuilder() - .inputs(Mods.Forestry.getItem("honeydew", 2)) - .inputs(Mods.Forestry.getItem("royal_jelly", 4)) - .inputs(Mods.Forestry.getItem("can")) - .input(dust, Materials.Gunpowder, 2) - .fluidInputs(Materials.Water.getFluid(1000)) - .outputs(Mods.Forestry.getItem("crafting_material", 1, 4)) - .EUt(5).duration(FFMUtility.timeCarpenter(5)).buildAndRegister(); - - if (Mods.ForestryFactory.isModLoaded()) {} - } - - private static void ApicultureNormal() { - if (!Mods.ForestryApiculture.isModLoaded()) return; - if (Mods.ForestryFactory.isModLoaded()) {} - } - - private static void ApicultureHard() { - if (!Mods.ForestryApiculture.isModLoaded()) return; - // Apiarist's Chest - ModHandler.removeRecipeByName(Mods.Forestry.getResource("bee_chest")); - RecipeMaps.ASSEMBLER_RECIPES.recipeBuilder() - .input(screw, Materials.Steel, 2) - .input("blockGlass") - .input("beeComb", 5) - .input("chestWood") - .fluidInputs(Fluids.FOR_HONEY.getFluid(1000)) - .outputs(Mods.Forestry.getItem("bee_chest")) - .EUt(60).duration(FFMUtility.timeCarpenter(60)).buildAndRegister(); - - // Apiariy - ModHandler.removeRecipeByName(Mods.Forestry.getResource("apiary")); - RecipeMaps.ASSEMBLER_RECIPES.recipeBuilder() - .inputs(Mods.Forestry.getItem("bee_house", 2)) - .inputs(Mods.Forestry.getItem("frame_impregnated")) - .input(screw, Materials.Steel, 2) - .input("slabWood", 2) - .input("beeComb") - .input("fenceWood") - .fluidInputs(Materials.SeedOil.getFluid(1000)) - .outputs(Mods.Forestry.getItem("apiary")) - .EUt(60).duration(FFMUtility.timeCarpenter(60)).buildAndRegister(); - - // Alvearies - ModHandler.removeRecipeByName(Mods.Forestry.getResource("alveary_swarmer")); - ModHandler.removeRecipeByName(Mods.Forestry.getResource("alveary_fan")); - ModHandler.removeRecipeByName(Mods.Forestry.getResource("alveary_heater")); - ModHandler.removeRecipeByName(Mods.Forestry.getResource("alveary_hygro")); - ModHandler.removeRecipeByName(Mods.Forestry.getResource("alveary_stabiliser")); - ModHandler.removeRecipeByName(Mods.Forestry.getResource("alveary_sieve")); - - // Swarmer - RecipeMaps.ASSEMBLER_RECIPES.recipeBuilder() - .inputs(Mods.Forestry.getItem("alveary.plain")) - .inputs(Mods.Forestry.getItem("thermionic_tubes", 4, 5)) - .inputs(Mods.Forestry.getItem("frame_impregnated")) - .inputs(Mods.Forestry.getItem("royal_jelly")) - .input(foil, Materials.RoseGold, 2) - .fluidInputs(Fluids.FOR_HONEY.getFluid(5000)) - .outputs(Mods.Forestry.getItem("alveary.swarmer")) - .EUt(60).duration(FFMUtility.timeCarpenter(60)).buildAndRegister(); - - // Fan - RecipeMaps.ASSEMBLER_RECIPES.recipeBuilder() - .inputs(Mods.Forestry.getItem("alveary.plain")) - .inputs(Mods.Forestry.getItem("thermionic_tubes", 4, 11)) - .input(Blocks.IRON_BARS, 2) - .input(rotor, Materials.Bronze) - .input(MetaItems.ELECTRIC_MOTOR_MV, 2) - .fluidInputs(Fluids.FOR_HONEY.getFluid(5000)) - .outputs(Mods.Forestry.getItem("alveary.fan")) - .EUt(60).duration(FFMUtility.timeCarpenter(60)).buildAndRegister(); - - // Heater - RecipeMaps.ASSEMBLER_RECIPES.recipeBuilder() - .inputs(Mods.Forestry.getItem("alveary.plain")) - .inputs(Mods.Forestry.getItem("thermionic_tubes", 4, 7)) - .input(Blocks.IRON_BARS) - .input(MetaItems.ELECTRIC_MOTOR_MV) - .input(wireGtQuadruple, Materials.Cupronickel, 3) - .fluidInputs(Fluids.FOR_HONEY.getFluid(5000)) - .outputs(Mods.Forestry.getItem("alveary.heater")) - .EUt(60).duration(FFMUtility.timeCarpenter(60)).buildAndRegister(); - - // Hygroregulator - RecipeMaps.ASSEMBLER_RECIPES.recipeBuilder() - .inputs(Mods.Forestry.getItem("alveary.plain")) - .inputs(Mods.Forestry.getItem("thermionic_tubes", 4, 6)) - .input("circuitMv") - .input(MetaTileEntities.BRONZE_DRUM, 2) - .input(pipeNormalFluid, Materials.StainlessSteel) - .input(plate, Materials.RedAlloy) - .fluidInputs(Fluids.FOR_HONEY.getFluid(5000)) - .outputs(Mods.Forestry.getItem("alveary.hygro")) - .EUt(60).duration(FFMUtility.timeCarpenter(60)).buildAndRegister(); - - // Stabiliser - RecipeMaps.ASSEMBLER_RECIPES.recipeBuilder() - .inputs(Mods.Forestry.getItem("alveary.plain")) - .inputs(Mods.Forestry.getItem("thermionic_tubes", 4, 4)) - .inputs(Mods.Forestry.getItem("royal_jelly")) - .input(MetaItems.ITEM_FILTER, 2) - .input(plate, Materials.CertusQuartz, 2) - .fluidInputs(Fluids.FOR_HONEY.getFluid(5000)) - .outputs(Mods.Forestry.getItem("alveary.stabiliser")) - .EUt(60).duration(FFMUtility.timeCarpenter(60)).buildAndRegister(); - - // Sieve - RecipeMaps.ASSEMBLER_RECIPES.recipeBuilder() - .inputs(Mods.Forestry.getItem("alveary.plain")) - .inputs(Mods.Forestry.getItem("thermionic_tubes", 4, 9)) - .inputs(Mods.Forestry.getItem("crafting_material", 3, 4)) - .inputs(GTUtility.copy(2, ModuleArboriculture.getItems().pollenFertile.getWildcard())) - .fluidInputs(Fluids.FOR_HONEY.getFluid(5000)) - .outputs(Mods.Forestry.getItem("alveary.sieve")) - .EUt(60).duration(FFMUtility.timeCarpenter(60)).buildAndRegister(); - - if (Mods.ForestryFactory.isModLoaded()) { - // Apiarist's Chest - RecipeManagers.carpenterManager.addRecipe( - 60, Fluids.FOR_HONEY.getFluid(1000), - ItemStack.EMPTY, Mods.Forestry.getItem("bee_chest"), - "SGS", "BCB", "BBB", - 'S', new UnificationEntry(screw, Materials.Steel).toString(), - 'G', "blockGlass", - 'C', "chestWood", - 'B', "beeComb"); - - // Apiariy - RecipeManagers.carpenterManager.addRecipe( - 60, Materials.SeedOil.getFluid(1000), Mods.Forestry.getItem("frame_impregnated"), - Mods.Forestry.getItem("apiary"), - "sws", "aca", "fwf", - 's', "screwSteel", - 'w', "slabWood", - 'a', Mods.Forestry.getItem("bee_house"), - 'c', "beeComb", - 'f', "fenceWood"); - - // Alvearies - // Swarmer - RecipeManagers.carpenterManager.addRecipe( - 60, Fluids.FOR_HONEY.getFluid(5000), - Mods.Forestry.getItem("alveary.plain"), Mods.Forestry.getItem("alveary.swarmer"), - "TGT", "RFR", "TGT", - 'T', Mods.Forestry.getItem("thermionic_tubes", 1, 5), - 'G', new UnificationEntry(foil, Materials.RoseGold).toString(), - 'R', Mods.Forestry.getItem("royal_jelly"), - 'F', Mods.Forestry.getItem("frame_impregnated")); - - // Fan - RecipeManagers.carpenterManager.addRecipe( - 60, Fluids.FOR_HONEY.getFluid(5000), - Mods.Forestry.getItem("alveary.plain"), Mods.Forestry.getItem("alveary.fan"), - "TBT", "MRM", "TBT", - 'T', Mods.Forestry.getItem("thermionic_tubes", 1, 11), - 'B', Blocks.IRON_BARS, - 'M', MetaItems.ELECTRIC_MOTOR_MV.getStackForm(), - 'R', new UnificationEntry(rotor, Materials.Bronze).toString()); - - // Heater - RecipeManagers.carpenterManager.addRecipe( - 60, Fluids.FOR_HONEY.getFluid(5000), - Mods.Forestry.getItem("alveary.plain"), Mods.Forestry.getItem("alveary.heater"), - "TBT", "CCC", "TMT", - 'T', Mods.Forestry.getItem("thermionic_tubes", 1, 7), - 'B', Blocks.IRON_BARS, - 'C', new UnificationEntry(wireGtQuadruple, Materials.Cupronickel).toString(), - 'M', MetaItems.ELECTRIC_MOTOR_MV.getStackForm()); - - // Hygroregulator - RecipeManagers.carpenterManager.addRecipe( - 60, Fluids.FOR_HONEY.getFluid(5000), - Mods.Forestry.getItem("alveary.plain"), Mods.Forestry.getItem("alveary.hygro"), - "TCT", "DPD", "TRT", - 'T', Mods.Forestry.getItem("thermionic_tubes", 1, 6), - 'C', "circuitMv", - 'D', MetaTileEntities.BRONZE_DRUM.getStackForm(), - 'P', new UnificationEntry(pipeNormalFluid, Materials.StainlessSteel).toString(), - 'R', new UnificationEntry(plate, Materials.RedAlloy).toString()); - - // Stabiliser - RecipeManagers.carpenterManager.addRecipe( - 60, Fluids.FOR_HONEY.getFluid(5000), - Mods.Forestry.getItem("alveary.plain"), Mods.Forestry.getItem("alveary.stabiliser"), - "TQT", "FJF", "TQT", - 'T', Mods.Forestry.getItem("thermionic_tubes", 1, 4), - 'Q', new UnificationEntry(plate, Materials.CertusQuartz).toString(), - 'F', MetaItems.ITEM_FILTER.getStackForm(), - 'J', Mods.Forestry.getItem("royal_jelly")); - - // Sieve - RecipeManagers.carpenterManager.addRecipe( - 60, Fluids.FOR_HONEY.getFluid(5000), - Mods.Forestry.getItem("alveary.plain"), Mods.Forestry.getItem("alveary.sieve"), - "TPT", "CCC", "TPT", - 'T', Mods.Forestry.getItem("thermionic_tubes", 1, 9), - 'C', Mods.Forestry.getItem("crafting_material", 1, 4), - 'P', ModuleArboriculture.getItems().pollenFertile.getWildcard()); - } - } - - private static void ArboricultureHard() { - if (!Mods.ForestryArboriculture.isModLoaded()) return; - // Arborist's Chest - ModHandler.removeRecipeByName(Mods.Forestry.getResource("tree_chest")); - RecipeMaps.ASSEMBLER_RECIPES.recipeBuilder() - .input(screw, Materials.Steel, 2) - .input("blockGlass") - .input("treeSapling", 5) - .input("chestWood") - .fluidInputs(Materials.SeedOil.getFluid(1000)) - .outputs(Mods.Forestry.getItem("tree_chest")) - .EUt(60).duration(FFMUtility.timeCarpenter(60)).buildAndRegister(); - - if (Mods.ForestryFactory.isModLoaded()) { - RecipeManagers.carpenterManager.addRecipe( - 60, Materials.SeedOil.getFluid(1000), - ItemStack.EMPTY, Mods.Forestry.getItem("tree_chest"), - "SGS", "TCT", "TTT", - 'S', new UnificationEntry(screw, Materials.Steel).toString(), - 'G', "blockGlass", - 'C', "chestWood", - 'T', "treeSapling"); - } - } - - private static void Climatology() { - if (!Mods.ForestryClimatology.isModLoaded()) return; - if (Mods.ForestryFactory.isModLoaded()) { - CarpenterLoader.removeCarpenterRecipe(Mods.Forestry.getItem("habitat_screen")); - - RecipeManagers.carpenterManager.addRecipe( - 100, Materials.Water.getFluid(2000), - ItemStack.EMPTY, Mods.Forestry.getItem("habitat_screen"), - "BPB", "BPB", "GDG", - 'B', new UnificationEntry(plate, Materials.Bronze).toString(), - 'P', "paneGlass", - 'G', new UnificationEntry(gear, Materials.Bronze).toString(), - 'D', new UnificationEntry(plate, Materials.Diamond).toString()); - } else { - ModHandler.removeRecipeByName(Mods.Forestry.getResource("habitat_screen")); - } - - RecipeMaps.ASSEMBLER_RECIPES.recipeBuilder() - .input(plate, Materials.Bronze, 4) - .input("paneGlass", 2) - .input(gear, Materials.Bronze, 2) - .input(plate, Materials.Diamond) - .fluidInputs(Materials.Water.getFluid(2000)) - .outputs(Mods.Forestry.getItem("habitat_screen")) - .EUt(100).duration(FFMUtility.timeCarpenter(100)).buildAndRegister(); - } - - private static void Factory() { - if (!Mods.ForestryFactory.isModLoaded()) return; - CarpenterLoader.removeCarpenterRecipe( - ItemCircuitBoard.createCircuitboard(EnumCircuitBoardType.BASIC, null, new ICircuit[] {})); - CarpenterLoader.removeCarpenterRecipe( - ItemCircuitBoard.createCircuitboard(EnumCircuitBoardType.ENHANCED, null, new ICircuit[] {})); - CarpenterLoader.removeCarpenterRecipe( - ItemCircuitBoard.createCircuitboard(EnumCircuitBoardType.REFINED, null, new ICircuit[] {})); - CarpenterLoader.removeCarpenterRecipe( - ItemCircuitBoard.createCircuitboard(EnumCircuitBoardType.INTRICATE, null, new ICircuit[] {})); - CarpenterLoader.removeCarpenterRecipe(Mods.Forestry.getItem("soldering_iron")); - - RecipeManagers.carpenterManager.addRecipe( - 40, Materials.Water.getFluid(1000), - ItemStack.EMPTY, Mods.Forestry.getItem("soldering_iron"), - " I ", "I I", " B", - 'I', new UnificationEntry(plate, Materials.Iron).toString(), - 'B', new UnificationEntry(plate, Materials.Bronze).toString()); - - RecipeMaps.ASSEMBLER_RECIPES.recipeBuilder() - .input(plate, Materials.Iron, 3) - .input(plate, Materials.Bronze) - .fluidInputs(Materials.Water.getFluid(1000)) - .outputs(Mods.Forestry.getItem("soldering_iron")) - .EUt(40).duration(FFMUtility.timeCarpenter(40)).buildAndRegister(); - } - - private static void Mail() { - if (!Mods.ForestryMail.isModLoaded()) return; - - Material[] matStamp = { Materials.Apatite, Materials.Copper, Materials.Tin, Materials.Gold }; - - for (int i = 0; i < matStamp.length; i++) { - RecipeMaps.ASSEMBLER_RECIPES.recipeBuilder() - .input(matStamp[i] == Materials.Apatite ? gem : plate, matStamp[i], 3) - .inputs(new ItemStack(Items.PAPER, 3)) - .fluidInputs(Materials.SeedOil.getFluid(300)) - .outputs(Mods.Forestry.getItem("stamps", 1, i)) - .EUt(10).duration(FFMUtility.timeCarpenter(10)).buildAndRegister(); - } - } - - private static void LepidopterologyHard() { - if (!Mods.ForestryLepidopterology.isModLoaded()) return; - // Lepidoptetist's Chest - ModHandler.removeRecipeByName(Mods.Forestry.getResource("butterfly_chest")); - RecipeMaps.ASSEMBLER_RECIPES.recipeBuilder() - .input(screw, Materials.Steel, 2) - .input("blockGlass") - .inputs(GTUtility.copy(5, ModuleLepidopterology.getItems().butterflyGE.getWildcard())) - .input("chestWood") - .fluidInputs(Materials.SeedOil.getFluid(1000)) - .outputs(Mods.Forestry.getItem("butterfly_chest")) - .EUt(60).duration(FFMUtility.timeCarpenter(60)).buildAndRegister(); - - if (Mods.ForestryFactory.isModLoaded()) { - RecipeManagers.carpenterManager.addRecipe( - 60, Materials.SeedOil.getFluid(1000), - ItemStack.EMPTY, Mods.Forestry.getItem("butterfly_chest"), - "SGS", "BCB", "BBB", - 'S', new UnificationEntry(screw, Materials.Steel).toString(), - 'G', "blockGlass", - 'C', "chestWood", - 'B', ModuleLepidopterology.getItems().butterflyGE.getWildcard()); - } - } - - private static void Storage() { - if (Mods.ForestryBackpacks.isModLoaded()) { - ItemStack[] backStack = { Mods.Forestry.getItem("miner_bag"), - Mods.Forestry.getItem("digger_bag"), - Mods.Forestry.getItem("forester_bag"), - Mods.Forestry.getItem("hunter_bag"), - Mods.Forestry.getItem("adventurer_bag"), - Mods.Forestry.getItem("builder_bag") }; - ItemStack[] backStackT2 = { Mods.Forestry.getItem("miner_bag_t2"), - Mods.Forestry.getItem("digger_bag_t2"), - Mods.Forestry.getItem("forester_bag_t2"), - Mods.Forestry.getItem("hunter_bag_t2"), - Mods.Forestry.getItem("adventurer_bag_t2"), - Mods.Forestry.getItem("builder_bag_t2") }; - - for (int i = 0; i < backStack.length; i++) { - - RecipeMaps.ASSEMBLER_RECIPES.recipeBuilder() - .input(gem, Materials.Diamond) - .inputNBT(backStack[i].getItem(), NBTMatcher.ANY, NBTCondition.ANY) - .inputs(Mods.Forestry.getItem("crafting_material", 7, 3)) - .fluidInputs(Materials.Water.getFluid(1000)) - .outputs(backStackT2[i]) - .EUt(200).duration(FFMUtility.timeCarpenter(200)).buildAndRegister(); - } - } - if (Mods.ForestryCrate.isModLoaded()) { - RecipeMaps.ASSEMBLER_RECIPES.recipeBuilder() - .input("logWood", 4) - .fluidInputs(Materials.Water.getFluid(1000)) - .circuitMeta(10) - .outputs(Mods.Forestry.getItem("crate")) - .EUt(20).duration(FFMUtility.timeCarpenter(20)).buildAndRegister(); - } - } - - public static void registerCarpenterRecipe(Enum recipeMode, ItemStack output, int EUt, Material material, - MetaItem.MetaValueItem broad, String... circuit) { - if (recipeMode == FFMUtility.recipeMode.NORMAL) { - RecipeMaps.CIRCUIT_ASSEMBLER_RECIPES.recipeBuilder() - .input(plate, material, 6) - .input(plate, Materials.RedAlloy, 2) - .input(broad) - .outputs(output) - .EUt(EUt).duration(FFMUtility.timeCarpenter(EUt)).buildAndRegister(); - RecipeManagers.carpenterManager.addRecipe( - EUt, Materials.SolderingAlloy.getFluid(72), - ItemStack.EMPTY, output, - "STS", "SBS", "STS", - 'S', new UnificationEntry(plate, material).toString(), - 'T', new UnificationEntry(plate, Materials.RedAlloy).toString(), - 'B', broad.getStackForm()); - RecipeManagers.carpenterManager.addRecipe( - EUt, Materials.Tin.getFluid(144), - ItemStack.EMPTY, output, - "STS", "SBS", "STS", - 'S', new UnificationEntry(plate, material).toString(), - 'T', new UnificationEntry(plate, Materials.RedAlloy).toString(), - 'B', broad.getStackForm()); - - } else if (recipeMode == FFMUtility.recipeMode.HARD) { - if (circuit.length >= 2) { - GTELog.logger.error("Circuit recipe for " + output.getDisplayName() + " has more than one circuit."); - return; - } - - RecipeMaps.CIRCUIT_ASSEMBLER_RECIPES.recipeBuilder() - .input(screw, material, 4) - .input(foil, material, 2) - .input(wireFine, material) - .input(circuit[0], 2) - .input(broad) - .outputs(output) - .EUt(EUt).duration(FFMUtility.timeCarpenter(EUt)).buildAndRegister(); - RecipeManagers.carpenterManager.addRecipe( - EUt, Materials.SolderingAlloy.getFluid(72), - broad.getStackForm(), output, - "SFS", "CWC", "SFS", - 'S', new UnificationEntry(screw, material).toString(), - 'F', new UnificationEntry(foil, material).toString(), - 'C', circuit[0], - 'W', new UnificationEntry(wireFine, material).toString()); - RecipeManagers.carpenterManager.addRecipe( - EUt, Materials.Tin.getFluid(72), - broad.getStackForm(), output, - "SFS", "CWC", "SFS", - 'S', new UnificationEntry(screw, material).toString(), - 'F', new UnificationEntry(foil, material).toString(), - 'C', circuit[0], - 'W', new UnificationEntry(wireFine, material).toString()); - } - } - - public static void removeCarpenterRecipe(ItemStack output) { - CarpenterRecipeManager.getRecipes(output).forEach(r -> RecipeManagers.carpenterManager.removeRecipe(r)); - } -} diff --git a/src/main/java/gtexpert/integration/ffm/recipes/machines/CentrifugeLoader.java b/src/main/java/gtexpert/integration/ffm/recipes/machines/CentrifugeLoader.java deleted file mode 100644 index b376ba9d..00000000 --- a/src/main/java/gtexpert/integration/ffm/recipes/machines/CentrifugeLoader.java +++ /dev/null @@ -1,260 +0,0 @@ -package gtexpert.integration.ffm.recipes.machines; - -import static gregtech.api.unification.ore.OrePrefix.*; - -import net.minecraft.init.Blocks; -import net.minecraft.init.Items; -import net.minecraft.item.ItemStack; - -import gregtech.api.recipes.RecipeBuilder; -import gregtech.api.recipes.RecipeMaps; -import gregtech.api.unification.OreDictUnifier; -import gregtech.api.unification.material.Materials; - -import gtexpert.api.util.Mods; - -import forestry.factory.MachineUIDs; -import forestry.factory.ModuleFactory; - -public class CentrifugeLoader { - - public static void init() { - if (!Mods.ForestryApiculture.isModLoaded()) return; - - ItemStack wax = Mods.Forestry.getItem("beeswax"); - ItemStack drop = Mods.Forestry.getItem("honey_drop"); - // Recipe was not added by GTCEu - // GenDustry Section - if (Mods.Gendustry.isModLoaded()) { - for (int i = 10; i < 26; i++) { - registerCombRecipe(Mods.Gendustry.getItem("honey_comb", 1, i), - new ItemStack[] { Mods.Gendustry.getItem("honey_drop", 1, i), wax, drop }, - new int[] { 10000, 5000, 3000 }); - } - } - // If Forestry's Centrifuge is enabled, recipes will be added by GTCEu - if (ModuleFactory.machineEnabled(MachineUIDs.CENTRIFUGE)) return; - // Forestry Section - RecipeMaps.CENTRIFUGE_RECIPES.recipeBuilder() - .inputs(Mods.Forestry.getItem("propolis", 1, 3)) - .chancedOutput(Mods.Forestry.getItem("crafting_material", 1, 2), 6000, 0) - .chancedOutput(Mods.Forestry.getItem("propolis"), 1000, 0) - .EUt(5).duration(128).buildAndRegister(); - - registerCombRecipe(Mods.Forestry.getItem("bee_combs", 1), - new ItemStack[] { wax, drop }, - new int[] { 10000, 9000 }); - registerCombRecipe(Mods.Forestry.getItem("bee_combs", 1, 2), - new ItemStack[] { Mods.Forestry.getItem("refractory_wax"), Mods.Forestry.getItem("phosphor", 2) }, - new int[] { 10000, 7000 }); - registerCombRecipe(Mods.Forestry.getItem("bee_combs", 1, 3), - new ItemStack[] { Mods.Forestry.getItem("propolis"), drop }, - new int[] { 10000, 4000 }); - registerCombRecipe(Mods.Forestry.getItem("bee_combs", 1, 4), - new ItemStack[] { wax, drop, new ItemStack(Items.SNOWBALL), Mods.Forestry.getItem("pollen", 1, 1) }, - new int[] { 8000, 7000, 4000, 2000 }); - registerCombRecipe(Mods.Forestry.getItem("bee_combs", 1, 5), - new ItemStack[] { Mods.Forestry.getItem("honeydew"), drop }, - new int[] { 10000, 4000 }); - registerCombRecipe(Mods.Forestry.getItem("bee_combs", 1, 6), - new ItemStack[] { drop, Mods.Forestry.getItem("propolis", 1, 3) }, - new int[] { 10000, 8000 }); - registerCombRecipe(Mods.Forestry.getItem("bee_combs", 1, 7), - new ItemStack[] { wax, drop }, - new int[] { 10000, 9000 }); - registerCombRecipe(Mods.Forestry.getItem("bee_combs", 1, 15), - new ItemStack[] { wax, drop }, - new int[] { 10000, 9000 }); - registerCombRecipe(Mods.Forestry.getItem("bee_combs", 1, 16), - new ItemStack[] { Mods.Forestry.getItem("honeydew"), new ItemStack(Items.QUARTZ), drop }, - new int[] { 6000, 3000, 2000 }); - // ExtraBee Section - if (Mods.ExtraBees.isModLoaded()) { - registerCombRecipe(combExtraBee(0), - new ItemStack[] { wax, drop }, - new int[] { 10000, 5000 }); - registerCombRecipe(combExtraBee(1), - new ItemStack[] { new ItemStack(Items.ROTTEN_FLESH), wax, drop }, - new int[] { 8000, 2000, 2000 }); - registerCombRecipe(combExtraBee(2), - new ItemStack[] { new ItemStack(Items.DYE, 1, 15), wax, drop }, - new int[] { 8000, 2000, 2000 }); - registerCombRecipe(combExtraBee(3), - new ItemStack[] { drop, Mods.ExtraBees.getItem("propolis", 1, 1) }, - new int[] { 7500, 600 }); - registerCombRecipe(combExtraBee(4), - new ItemStack[] { OreDictUnifier.get(dustSmall, Materials.Coal), wax, drop }, - new int[] { 10000, 8000, 7500 }); - registerCombRecipe(combExtraBee(6), - new ItemStack[] { Mods.ExtraBees.getItem("propolis"), drop }, - new int[] { 10000, 9000 }); - registerCombRecipe(combExtraBee(7), - new ItemStack[] { Mods.ExtraBees.getItem("honey_drop", 1, 6), drop }, - new int[] { 10000, 9000 }); - registerCombRecipe(combExtraBee(8), - new ItemStack[] { Mods.ExtraBees.getItem("honey_drop", 1, 3), drop }, - new int[] { 10000, 9000 }); - registerCombRecipe(combExtraBee(9), - new ItemStack[] { Mods.ExtraBees.getItem("honey_drop", 1, 7), drop }, - new int[] { 10000, 9000 }); - registerCombRecipe(combExtraBee(10), - new ItemStack[] { Mods.ExtraBees.getItem("honey_drop", 1, 8), drop }, - new int[] { 10000, 9000 }); - registerCombRecipe(combExtraBee(11), - new ItemStack[] { wax, drop }, - new int[] { 5000, 2500 }); - registerCombRecipe(combExtraBee(12), - new ItemStack[] { OreDictUnifier.get(dust, Materials.Redstone), wax, drop }, - new int[] { 10000, 8000, 5000 }); - registerCombRecipe(combExtraBee(14), - new ItemStack[] { Mods.ExtraBees.getItem("honey_drop"), wax, - OreDictUnifier.get(dust, Materials.Redstone) }, - new int[] { 10000, 8000, 7500 }); - registerCombRecipe(combExtraBee(15), - new ItemStack[] { OreDictUnifier.get(dustSmall, Materials.Iron), wax, drop }, - new int[] { 10000, 5000, 2500 }); - registerCombRecipe(combExtraBee(16), - new ItemStack[] { OreDictUnifier.get(dustSmall, Materials.Gold), wax, drop }, - new int[] { 10000, 5000, 2500 }); - registerCombRecipe(combExtraBee(17), - new ItemStack[] { OreDictUnifier.get(dustSmall, Materials.Copper), wax, drop }, - new int[] { 10000, 5000, 2500 }); - registerCombRecipe(combExtraBee(18), - new ItemStack[] { OreDictUnifier.get(dustSmall, Materials.Tin), wax, drop }, - new int[] { 10000, 5000, 2500 }); - registerCombRecipe(combExtraBee(19), - new ItemStack[] { OreDictUnifier.get(dustSmall, Materials.Silver), wax, drop }, - new int[] { 10000, 5000, 2500 }); - registerCombRecipe(combExtraBee(21), - new ItemStack[] { wax, drop }, - new int[] { 5000, 2500 }); - registerCombRecipe(combExtraBee(22), - new ItemStack[] { drop, new ItemStack(Items.CLAY_BALL), wax }, - new int[] { 8000, 8000, 2500 }); - registerCombRecipe(combExtraBee(23), - new ItemStack[] { wax, drop }, - new int[] { 1000, 9000 }); - registerCombRecipe(combExtraBee(24), - new ItemStack[] { new ItemStack(Blocks.BROWN_MUSHROOM_BLOCK), wax, - new ItemStack(Blocks.RED_MUSHROOM_BLOCK) }, - new int[] { 10000, 9000, 7500 }); - registerCombRecipe(combExtraBee(25), - new ItemStack[] { Mods.ExtraBees.getItem("propolis", 1, 7), drop }, - new int[] { 7000, 5000 }); - registerCombRecipe(combExtraBee(27), - new ItemStack[] { wax, OreDictUnifier.get(dust, Materials.Sulfur), - Mods.ExtraBees.getItem("honey_drop", 1, 1) }, - new int[] { 8000, 7500, 5000 }); - registerCombRecipe(combExtraBee(28), - new ItemStack[] { wax, Mods.ExtraBees.getItem("honey_drop", 1, 2) }, - new int[] { 8000, 8000 }); - registerCombRecipe(combExtraBee(29), - new ItemStack[] { wax, new ItemStack(Items.SLIME_BALL), drop }, - new int[] { 10000, 7500, 7500 }); - registerCombRecipe(combExtraBee(30), - new ItemStack[] { new ItemStack(Items.BLAZE_POWDER), wax }, - new int[] { 10000, 7500 }); - registerCombRecipe(combExtraBee(32), - new ItemStack[] { Mods.ExtraBees.getItem("honey_drop", 1, 5), drop }, - new int[] { 8000, 7500 }); - registerCombRecipe(combExtraBee(36), - new ItemStack[] { OreDictUnifier.get(dust, Materials.Obsidian), drop }, - new int[] { 7500, 5000 }); - registerCombRecipe(combExtraBee(37), - new ItemStack[] { OreDictUnifier.get(dustSmall, Materials.Lead), wax, drop }, - new int[] { 10000, 5000, 2500 }); - registerCombRecipe(combExtraBee(40), - new ItemStack[] { OreDictUnifier.get(dustSmall, Materials.Zinc), wax, drop }, - new int[] { 10000, 5000, 2500 }); - registerCombRecipe(combExtraBee(41), - new ItemStack[] { OreDictUnifier.get(dustSmall, Materials.Titanium), wax, drop }, - new int[] { 10000, 5000, 2500 }); - registerCombRecipe(combExtraBee(42), - new ItemStack[] { OreDictUnifier.get(dustSmall, Materials.Tungsten), wax, drop }, - new int[] { 10000, 5000, 2500 }); - registerCombRecipe(combExtraBee(45), - new ItemStack[] { OreDictUnifier.get(dustSmall, Materials.Platinum), wax, drop }, - new int[] { 10000, 5000, 2500 }); - registerCombRecipe(combExtraBee(46), - new ItemStack[] { new ItemStack(Items.DYE, 6, 4), wax, drop }, - new int[] { 10000, 5000, 2500 }); - registerCombRecipe(combExtraBee(48), - new ItemStack[] { OreDictUnifier.get(dustSmall, Materials.Pyrite), - OreDictUnifier.get(dustSmall, Materials.Iron), wax, drop }, - new int[] { 10000, 10000, 5000, 2500 }); - registerCombRecipe(combExtraBee(50), - new ItemStack[] { OreDictUnifier.get(dustSmall, Materials.Cinnabar), wax, drop, - OreDictUnifier.get(dust, Materials.Redstone) }, - new int[] { 10000, 5000, 2500, 500 }); - registerCombRecipe(combExtraBee(51), - new ItemStack[] { OreDictUnifier.get(dustSmall, Materials.Sphalerite), - OreDictUnifier.get(dustSmall, Materials.Zinc), wax, drop }, - new int[] { 10000, 10000, 5000, 2500 }); - registerCombRecipe(combExtraBee(52), - new ItemStack[] { Mods.ExtraBees.getItem("misc", 1, 2), wax, drop }, - new int[] { 10000, 5000, 2500 }); - registerCombRecipe(combExtraBee(53), - new ItemStack[] { Mods.ExtraBees.getItem("misc", 1, 3), wax, drop }, - new int[] { 10000, 5000, 2500 }); - registerCombRecipe(combExtraBee(54), - new ItemStack[] { Mods.ExtraBees.getItem("misc", 1, 4), wax, drop }, - new int[] { 10000, 5000, 2500 }); - registerCombRecipe(combExtraBee(56), - new ItemStack[] { Mods.ExtraBees.getItem("misc", 1, 1), wax, drop }, - new int[] { 10000, 5000, 2500 }); - - int meta = 13; - for (int i = 57; i < 73; i++) { - registerCombRecipe(combExtraBee(i), - new ItemStack[] { Mods.ExtraBees.getItem("honey_drop", 1, meta), drop, wax }, - new int[] { 10000, 8000, 8000 }); - meta++; - } - registerCombRecipe(combExtraBee(73), - new ItemStack[] { OreDictUnifier.get(dustSmall, Materials.Nickel), wax, drop }, - new int[] { 10000, 5000, 2500 }); - registerCombRecipe(combExtraBee(75), - new ItemStack[] { OreDictUnifier.get(dust, Materials.Glowstone), drop }, - new int[] { 10000, 2500 }); - registerCombRecipe(combExtraBee(76), - new ItemStack[] { OreDictUnifier.get(dust, Materials.Saltpeter), drop }, - new int[] { 10000, 2500 }); - registerCombRecipe(combExtraBee(79), - new ItemStack[] { Mods.Forestry.getItem("fertilizer_bio"), drop }, - new int[] { 10000, 2500 }); - registerCombRecipe(combExtraBee(81), - new ItemStack[] { drop, new ItemStack(Items.QUARTZ), - OreDictUnifier.get(dust, Materials.CertusQuartz) }, - new int[] { 2500, 2500, 2000 }); - registerCombRecipe(combExtraBee(82), - new ItemStack[] { drop, OreDictUnifier.get(dust, Materials.EnderPearl) }, - new int[] { 2500, 2500 }); - } - } - - public static void registerCombRecipe(ItemStack comb, ItemStack[] output, int[] chance) { - RecipeBuilder builder = RecipeMaps.CENTRIFUGE_RECIPES.recipeBuilder() - .inputs(comb) - .EUt(5) - .duration(128); - - int outputs = 0; - for (int i = 0; i < output.length; i++) { - if (output[i] == null || output[i] == ItemStack.EMPTY) continue; - if (outputs < RecipeMaps.CENTRIFUGE_RECIPES.getMaxOutputs()) { - if (chance[i] >= 10000) { - builder.outputs(output[i]); - } else { - builder.chancedOutput(output[i], chance[i], 0); - } - outputs++; - } - } - - builder.buildAndRegister(); - } - - public static ItemStack combExtraBee(int meta) { - return Mods.ExtraBees.getItem("honey_comb", 1, meta); - } -} diff --git a/src/main/java/gtexpert/integration/ffm/recipes/machines/FabricatorLoader.java b/src/main/java/gtexpert/integration/ffm/recipes/machines/FabricatorLoader.java deleted file mode 100644 index 34aeb30d..00000000 --- a/src/main/java/gtexpert/integration/ffm/recipes/machines/FabricatorLoader.java +++ /dev/null @@ -1,71 +0,0 @@ -package gtexpert.integration.ffm.recipes.machines; - -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; - -import net.minecraft.item.ItemStack; - -import gregtech.api.recipes.RecipeMaps; -import gregtech.api.unification.material.Materials; -import gregtech.api.util.GTUtility; - -import gtexpert.api.util.Mods; -import gtexpert.integration.ffm.FFMUtility; - -import binnie.extratrees.wood.EnumETLog; -import forestry.api.arboriculture.*; - -public class FabricatorLoader { - - public static void init() { - // Fireproof Recipe - if (!Mods.ForestryArboriculture.isModLoaded()) return; - if (!Mods.ForestryApiculture.isModLoaded()) return; - - List allWoodType = new ArrayList<>(); - Collections.addAll(allWoodType, EnumForestryWoodType.VALUES); - Collections.addAll(allWoodType, EnumVanillaWoodType.VALUES); - - for (IWoodType woodType : allWoodType) { - ItemStack planks = TreeManager.woodAccess.getStack(woodType, WoodBlockKind.PLANKS, false); - ItemStack planksFireproof = TreeManager.woodAccess.getStack(woodType, WoodBlockKind.PLANKS, true); - - ItemStack logs = TreeManager.woodAccess.getStack(woodType, WoodBlockKind.LOG, false); - ItemStack logsFireproof = TreeManager.woodAccess.getStack(woodType, WoodBlockKind.LOG, true); - - registerFireproofPlanksRecipe(planks, planksFireproof); - registerFireproofLogsRecipe(logs, logsFireproof); - } - if (Mods.ExtraTrees.isModLoaded()) { - for (EnumETLog log : EnumETLog.VALUES) { - ItemStack logs = TreeManager.woodAccess.getStack(log, WoodBlockKind.LOG, false); - ItemStack planks = log.getPlank().getStack(false); - - ItemStack logsFireproof = TreeManager.woodAccess.getStack(log, WoodBlockKind.LOG, true); - ItemStack planksFireproof = log.getPlank().getStack(true); - - registerFireproofPlanksRecipe(planks, planksFireproof); - registerFireproofLogsRecipe(logs, logsFireproof); - } - } - } - - public static void registerFireproofPlanksRecipe(ItemStack planks, ItemStack planksFireproof) { - RecipeMaps.CHEMICAL_RECIPES.recipeBuilder() - .inputs(GTUtility.copy(5, planks)) - .inputs(Mods.Forestry.getItem("refractory_wax", 4)) - .fluidInputs(Materials.Glass.getFluid(500)) - .outputs(GTUtility.copy(5, planksFireproof)) - .EUt(10).duration(FFMUtility.timeFabricator(10)).buildAndRegister(); - } - - public static void registerFireproofLogsRecipe(ItemStack logs, ItemStack logsFireproof) { - RecipeMaps.CHEMICAL_RECIPES.recipeBuilder() - .inputs(logs) - .inputs(Mods.Forestry.getItem("refractory_wax", 4)) - .fluidInputs(Materials.Glass.getFluid(500)) - .outputs(logsFireproof) - .EUt(10).duration(FFMUtility.timeFabricator(10)).buildAndRegister(); - } -} diff --git a/src/main/java/gtexpert/integration/gendustry/GendustryConfigHolder.java b/src/main/java/gtexpert/integration/gendustry/GendustryConfigHolder.java deleted file mode 100644 index 4380df04..00000000 --- a/src/main/java/gtexpert/integration/gendustry/GendustryConfigHolder.java +++ /dev/null @@ -1,12 +0,0 @@ -package gtexpert.integration.gendustry; - -import net.minecraftforge.common.config.Config; - -import gtexpert.api.GTEValues; -import gtexpert.modules.GTEModules; - -@Config.LangKey(GTEValues.MODID + ".config.integration.gendustry") -@Config(modid = GTEValues.MODID, - name = GTEValues.MODID + "/integration/" + GTEModules.MODULE_GENDUSTRY, - category = "Gendustry") -public class GendustryConfigHolder {} diff --git a/src/main/java/gtexpert/integration/gendustry/GendustryModule.java b/src/main/java/gtexpert/integration/gendustry/GendustryModule.java deleted file mode 100644 index eb7003c3..00000000 --- a/src/main/java/gtexpert/integration/gendustry/GendustryModule.java +++ /dev/null @@ -1,34 +0,0 @@ -package gtexpert.integration.gendustry; - -import net.minecraft.block.Block; -import net.minecraftforge.event.RegistryEvent; -import net.minecraftforge.fml.common.event.FMLPostInitializationEvent; - -import gtexpert.api.GTEValues; -import gtexpert.api.modules.GTEModule; -import gtexpert.api.util.Mods; -import gtexpert.integration.GTEIntegrationSubmodule; -import gtexpert.integration.gendustry.metatileentities.GendustryMetaTileEntities; -import gtexpert.integration.gendustry.recipes.GendustryBlocksRecipe; -import gtexpert.integration.gendustry.recipes.GendustryItemsRecipe; -import gtexpert.modules.GTEModules; - -@GTEModule( - moduleID = GTEModules.MODULE_GENDUSTRY, - containerID = GTEValues.MODID, - modDependencies = { Mods.Names.FORESTRY, Mods.Names.GENDUSTRY }, - name = "GTExpert Gendustry For Minecraft Integration", - description = "Gendustry Integration Module") -public class GendustryModule extends GTEIntegrationSubmodule { - - @Override - public void registerBlocks(RegistryEvent.Register event) { - GendustryMetaTileEntities.init(); - } - - @Override - public void postInit(FMLPostInitializationEvent event) { - GendustryItemsRecipe.init(); - GendustryBlocksRecipe.init(); - } -} diff --git a/src/main/java/gtexpert/integration/gendustry/GendustryRecipeMaps.java b/src/main/java/gtexpert/integration/gendustry/GendustryRecipeMaps.java deleted file mode 100644 index d28f3861..00000000 --- a/src/main/java/gtexpert/integration/gendustry/GendustryRecipeMaps.java +++ /dev/null @@ -1,21 +0,0 @@ -package gtexpert.integration.gendustry; - -import gregtech.api.recipes.RecipeMap; -import gregtech.core.sound.GTSoundEvents; - -import gtexpert.integration.gendustry.recipes.builders.IndustrialApiaryRecipeBuilder; -import gtexpert.integration.gendustry.recipes.machines.RecipeMapIndustrialApiary; - -import crafttweaker.annotations.ZenRegister; -import stanhebben.zenscript.annotations.ZenExpansion; -import stanhebben.zenscript.annotations.ZenProperty; - -@ZenExpansion("mods.gregtech.recipe.RecipeMaps") -@ZenRegister -public class GendustryRecipeMaps { - - @ZenProperty - public static final RecipeMap INDUSTRIAL_APIARY_RECIPES = new RecipeMapIndustrialApiary<>( - "industrial_apiary", 2, 9, 0, 0, new IndustrialApiaryRecipeBuilder(), false) - .setSound(GTSoundEvents.ARC); -} diff --git a/src/main/java/gtexpert/integration/gendustry/metatileentities/GendustryMetaTileEntities.java b/src/main/java/gtexpert/integration/gendustry/metatileentities/GendustryMetaTileEntities.java deleted file mode 100644 index 91ac902e..00000000 --- a/src/main/java/gtexpert/integration/gendustry/metatileentities/GendustryMetaTileEntities.java +++ /dev/null @@ -1,28 +0,0 @@ -package gtexpert.integration.gendustry.metatileentities; - -import static gregtech.api.GTValues.V; -import static gregtech.common.metatileentities.MetaTileEntities.registerMetaTileEntities; -import static gtexpert.api.util.GTEUtility.gteId; - -import gtexpert.client.GTETextures; -import gtexpert.common.GTEConfigHolder; -import gtexpert.integration.gendustry.GendustryRecipeMaps; - -public class GendustryMetaTileEntities { - - public static MetaTileEntityIndustrialApiary[] INDUSTRIAL_APIARY = new MetaTileEntityIndustrialApiary[V.length - 1]; - - public static void init() { - // INDUSTRIAL_APIARY 20000~20012 - // TODO: IDの変更 - - if (GTEConfigHolder.gteFlag.featureFlag) { - registerMetaTileEntities(INDUSTRIAL_APIARY, 20000, "industrial_apiary", - (tier, voltageName) -> new MetaTileEntityIndustrialApiary( - gteId(String.format("%s.%s", "industrial_apiary", voltageName)), - GendustryRecipeMaps.INDUSTRIAL_APIARY_RECIPES, - GTETextures.INDUSTRIAL_APIARY_OVERLAY, - tier, false, null)); - } - } -} diff --git a/src/main/java/gtexpert/integration/gendustry/metatileentities/IndustrialApiaryLogic.java b/src/main/java/gtexpert/integration/gendustry/metatileentities/IndustrialApiaryLogic.java deleted file mode 100644 index c5cf411b..00000000 --- a/src/main/java/gtexpert/integration/gendustry/metatileentities/IndustrialApiaryLogic.java +++ /dev/null @@ -1,18 +0,0 @@ -package gtexpert.integration.gendustry.metatileentities; - -import java.util.function.Supplier; - -import org.jetbrains.annotations.NotNull; - -import gregtech.api.capability.IEnergyContainer; -import gregtech.api.capability.impl.RecipeLogicEnergy; -import gregtech.api.metatileentity.MetaTileEntity; -import gregtech.api.recipes.RecipeMap; - -public class IndustrialApiaryLogic extends RecipeLogicEnergy { - - public IndustrialApiaryLogic(@NotNull MetaTileEntity metaTileEntity, RecipeMap recipeMap, - Supplier energyContainer) { - super(metaTileEntity, recipeMap, energyContainer); - } -} diff --git a/src/main/java/gtexpert/integration/gendustry/metatileentities/MetaTileEntityIndustrialApiary.java b/src/main/java/gtexpert/integration/gendustry/metatileentities/MetaTileEntityIndustrialApiary.java deleted file mode 100644 index 0133a6c7..00000000 --- a/src/main/java/gtexpert/integration/gendustry/metatileentities/MetaTileEntityIndustrialApiary.java +++ /dev/null @@ -1,31 +0,0 @@ -package gtexpert.integration.gendustry.metatileentities; - -import java.util.function.Function; - -import net.minecraft.util.ResourceLocation; - -import gregtech.api.metatileentity.MetaTileEntity; -import gregtech.api.metatileentity.interfaces.IGregTechTileEntity; -import gregtech.api.recipes.RecipeMap; -import gregtech.client.renderer.ICubeRenderer; - -import gtexpert.common.metatileentities.GTESimpleMachineMetaTileEntity; - -public class MetaTileEntityIndustrialApiary extends GTESimpleMachineMetaTileEntity { - - public MetaTileEntityIndustrialApiary(ResourceLocation metaTileEntityId, RecipeMap recipeMap, - ICubeRenderer renderer, int tier, boolean hasFrontFacing, - Function tankScalingFunction) { - super(metaTileEntityId, recipeMap, renderer, tier, hasFrontFacing, tankScalingFunction); - } - - @Override - public MetaTileEntity createMetaTileEntity(IGregTechTileEntity tileEntity) { - return new MetaTileEntityIndustrialApiary(metaTileEntityId, workable.getRecipeMap(), renderer, getTier(), - hasFrontFacing(), getTankScalingFunction()); - } - - private IndustrialApiaryLogic getLogic() { - return (IndustrialApiaryLogic) workable; - } -} diff --git a/src/main/java/gtexpert/integration/gendustry/recipes/GendustryBlocksRecipe.java b/src/main/java/gtexpert/integration/gendustry/recipes/GendustryBlocksRecipe.java deleted file mode 100644 index 1209f666..00000000 --- a/src/main/java/gtexpert/integration/gendustry/recipes/GendustryBlocksRecipe.java +++ /dev/null @@ -1,6 +0,0 @@ -package gtexpert.integration.gendustry.recipes; - -public class GendustryBlocksRecipe { - - public static void init() {} -} diff --git a/src/main/java/gtexpert/integration/gendustry/recipes/GendustryItemsRecipe.java b/src/main/java/gtexpert/integration/gendustry/recipes/GendustryItemsRecipe.java deleted file mode 100644 index 4d9550ef..00000000 --- a/src/main/java/gtexpert/integration/gendustry/recipes/GendustryItemsRecipe.java +++ /dev/null @@ -1,6 +0,0 @@ -package gtexpert.integration.gendustry.recipes; - -public class GendustryItemsRecipe { - - public static void init() {} -} diff --git a/src/main/java/gtexpert/integration/gendustry/recipes/builders/IndustrialApiaryRecipeBuilder.java b/src/main/java/gtexpert/integration/gendustry/recipes/builders/IndustrialApiaryRecipeBuilder.java deleted file mode 100644 index 76c3b0ff..00000000 --- a/src/main/java/gtexpert/integration/gendustry/recipes/builders/IndustrialApiaryRecipeBuilder.java +++ /dev/null @@ -1,29 +0,0 @@ -package gtexpert.integration.gendustry.recipes.builders; - -import org.jetbrains.annotations.NotNull; - -import gregtech.api.recipes.Recipe; -import gregtech.api.recipes.RecipeBuilder; -import gregtech.api.recipes.RecipeMap; - -public class IndustrialApiaryRecipeBuilder extends RecipeBuilder { - - private boolean generatingRecipes = true; - - public IndustrialApiaryRecipeBuilder() {} - - @SuppressWarnings("unused") - public IndustrialApiaryRecipeBuilder(Recipe recipe, RecipeMap recipeMap) { - super(recipe, recipeMap); - } - - public IndustrialApiaryRecipeBuilder(@NotNull IndustrialApiaryRecipeBuilder builder) { - super(builder); - this.generatingRecipes = builder.generatingRecipes; - } - - @Override - public IndustrialApiaryRecipeBuilder copy() { - return new IndustrialApiaryRecipeBuilder(this); - } -} diff --git a/src/main/java/gtexpert/integration/gendustry/recipes/machines/RecipeMapIndustrialApiary.java b/src/main/java/gtexpert/integration/gendustry/recipes/machines/RecipeMapIndustrialApiary.java deleted file mode 100644 index 7d060dd6..00000000 --- a/src/main/java/gtexpert/integration/gendustry/recipes/machines/RecipeMapIndustrialApiary.java +++ /dev/null @@ -1,12 +0,0 @@ -package gtexpert.integration.gendustry.recipes.machines; - -import gregtech.api.recipes.RecipeBuilder; -import gregtech.api.recipes.RecipeMap; - -public class RecipeMapIndustrialApiary> extends RecipeMap { - - public RecipeMapIndustrialApiary(String unlocalizedName, int maxInputs, int maxOutputs, - int maxFluidInputs, int maxFluidOutputs, R defaultRecipe, boolean isHidden) { - super(unlocalizedName, maxInputs, maxOutputs, maxFluidInputs, maxFluidOutputs, defaultRecipe, isHidden); - } -} diff --git a/src/main/java/gtexpert/integration/gtfo/recipes/GTFOWoodRecipe.java b/src/main/java/gtexpert/integration/gtfo/recipes/GTFOWoodRecipe.java deleted file mode 100644 index ce56f3ce..00000000 --- a/src/main/java/gtexpert/integration/gtfo/recipes/GTFOWoodRecipe.java +++ /dev/null @@ -1,72 +0,0 @@ -package gtexpert.integration.gtfo.recipes; - -import java.util.Arrays; -import java.util.List; - -import gregtech.loaders.WoodTypeEntry; - -import gtexpert.api.util.Mods; -import gtexpert.loaders.GTEWoodRecipeLoader; - -public class GTFOWoodRecipe { - - private static List DEFAULT_ENTRIES; - - private static List getDefaultEntries() { - if (DEFAULT_ENTRIES == null) { - final String mcModId = Mods.GregTechFoodOption.name(); - return DEFAULT_ENTRIES = Arrays.asList( - new WoodTypeEntry.Builder(mcModId, "banana") - .planks(Mods.GregTechFoodOption.getItem("gtfo_planks_0", 1), null) - .log(Mods.GregTechFoodOption.getItem("gtfo_log_0", 1)) - .registerAllUnificationInfo() - .build(), - new WoodTypeEntry.Builder(mcModId, "orange") - .planks(Mods.GregTechFoodOption.getItem("gtfo_planks_0", 1, 1), null) - .log(Mods.GregTechFoodOption.getItem("gtfo_log_0", 1, 4)) - .build(), - new WoodTypeEntry.Builder(mcModId, "mango") - .planks(Mods.GregTechFoodOption.getItem("gtfo_planks_0", 1, 2), null) - .log(Mods.GregTechFoodOption.getItem("gtfo_log_0", 1, 8)) - .build(), - new WoodTypeEntry.Builder(mcModId, "apricot") - .planks(Mods.GregTechFoodOption.getItem("gtfo_planks_0", 1, 3), null) - .log(Mods.GregTechFoodOption.getItem("gtfo_log_0", 1, 12)) - .build(), - new WoodTypeEntry.Builder(mcModId, "lemon") - .planks(Mods.GregTechFoodOption.getItem("gtfo_planks_0", 1, 4), null) - .log(Mods.GregTechFoodOption.getItem("gtfo_log_1", 1)) - .build(), - new WoodTypeEntry.Builder(mcModId, "lime") - .planks(Mods.GregTechFoodOption.getItem("gtfo_planks_0", 1, 5), null) - .log(Mods.GregTechFoodOption.getItem("gtfo_log_1", 1, 4)) - .build(), - new WoodTypeEntry.Builder(mcModId, "olive") - .planks(Mods.GregTechFoodOption.getItem("gtfo_planks_0", 1, 6), null) - .log(Mods.GregTechFoodOption.getItem("gtfo_log_1", 1, 8)) - .build(), - new WoodTypeEntry.Builder(mcModId, "rainbowwood") - .planks(Mods.GregTechFoodOption.getItem("gtfo_planks_0", 1, 7), null) - .log(Mods.GregTechFoodOption.getItem("gtfo_log_1", 1, 12)) - .build(), - new WoodTypeEntry.Builder(mcModId, "nutmeg") - .planks(Mods.GregTechFoodOption.getItem("gtfo_planks_0", 1, 8), null) - .log(Mods.GregTechFoodOption.getItem("gtfo_log_2", 1)) - .build(), - new WoodTypeEntry.Builder(mcModId, "coconut") - .planks(Mods.GregTechFoodOption.getItem("gtfo_planks_0", 1, 9), null) - .log(Mods.GregTechFoodOption.getItem("gtfo_log_2", 1, 4)) - .build()); - } - return DEFAULT_ENTRIES; - } - - public static void init() { - for (WoodTypeEntry entry : getDefaultEntries()) { - GTEWoodRecipeLoader.removePlankRecipe(true, entry, Mods.GregTechFoodOption.name()); - - GTEWoodRecipeLoader.registerWoodTypeRecipe(false, entry); - GTEWoodRecipeLoader.addSawmillRecipe(entry); - } - } -} diff --git a/src/main/java/gtexpert/loaders/GTEMaterialInfoLoader.java b/src/main/java/gtexpert/loaders/GTEMaterialInfoLoader.java deleted file mode 100644 index fdbdac9e..00000000 --- a/src/main/java/gtexpert/loaders/GTEMaterialInfoLoader.java +++ /dev/null @@ -1,21 +0,0 @@ -package gtexpert.loaders; - -import gregtech.api.GTValues; -import gregtech.api.unification.OreDictUnifier; -import gregtech.api.unification.material.Materials; -import gregtech.api.unification.stack.ItemMaterialInfo; -import gregtech.api.unification.stack.MaterialStack; -import gregtech.common.ConfigHolder; - -import gtexpert.common.blocks.GTEBlockMetalCasing; -import gtexpert.common.blocks.GTEMetaBlocks; - -public class GTEMaterialInfoLoader { - - public static void init() { - OreDictUnifier.registerOre( - GTEMetaBlocks.GTE_METAL_CASING.getItemVariant(GTEBlockMetalCasing.MetalCasingType.SAWMill), - new ItemMaterialInfo(new MaterialStack(Materials.TreatedWood, - (GTValues.M * 8) / ConfigHolder.recipes.casingsPerCraft))); - } -} diff --git a/src/main/java/gtexpert/loaders/GTEWoodRecipeLoader.java b/src/main/java/gtexpert/loaders/GTEWoodRecipeLoader.java deleted file mode 100644 index 80f5c7e4..00000000 --- a/src/main/java/gtexpert/loaders/GTEWoodRecipeLoader.java +++ /dev/null @@ -1,353 +0,0 @@ -package gtexpert.loaders; - -import static gregtech.api.GTValues.*; -import static gregtech.api.unification.ore.OrePrefix.*; - -import net.minecraft.init.Blocks; -import net.minecraft.init.Items; -import net.minecraft.item.ItemStack; -import net.minecraft.item.crafting.FurnaceRecipes; -import net.minecraft.util.ResourceLocation; -import net.minecraftforge.fml.common.registry.GameRegistry; - -import org.jetbrains.annotations.NotNull; - -import gregtech.api.GTValues; -import gregtech.api.recipes.ModHandler; -import gregtech.api.recipes.RecipeMaps; -import gregtech.api.unification.material.Materials; -import gregtech.api.unification.stack.UnificationEntry; -import gregtech.api.util.GTUtility; -import gregtech.common.ConfigHolder; -import gregtech.common.blocks.MetaBlocks; -import gregtech.loaders.WoodTypeEntry; - -import gtexpert.api.recipes.GTERecipeMaps; -import gtexpert.api.util.GTEUtility; -import gtexpert.common.GTEConfigHolder; - -public class GTEWoodRecipeLoader { - - public static void registerWoodTypeRecipe(boolean randomRecipeID, @NotNull WoodTypeEntry entry) { - final String name = entry.woodName; - final String prefix = randomRecipeID ? entry.modid + "_pf" + GTEUtility.generateRandomString(6) : entry.modid; - - if (entry.planks.isEmpty()) { - throw new IllegalStateException("Could not find planks form of WoodTypeEntry '" + name + "'."); - } - - // log-associated recipes - if (!entry.log.isEmpty()) { - // nerf regular log -> plank crafting, if enabled - boolean hasPlanksRecipe = entry.planksRecipeName != null; - - int plank_normal = GTEConfigHolder.ceuOverride.moreNerfPlankCrafting ? 1 : 2; - plank_normal = ConfigHolder.recipes.nerfWoodCrafting ? plank_normal : 4; - int plank_saw = GTEConfigHolder.ceuOverride.moreNerfPlankCrafting ? 2 : 4; - plank_saw = ConfigHolder.recipes.nerfWoodCrafting ? plank_saw : 6; - - if (hasPlanksRecipe) { - ModHandler.addShapelessRecipe(prefix + "_" + entry.planksRecipeName, - GTUtility.copy(plank_normal, entry.planks), entry.log.copy()); - ModHandler.addMirroredShapedRecipe(prefix + "_" + entry.planksRecipeName + "_saw", - GTUtility.copy(plank_saw, entry.planks), "s", "L", - 'L', entry.log.copy()); - } else { - ModHandler.addShapelessRecipe(prefix + "_" + name + "_plank", - GTUtility.copy(plank_normal, entry.planks), entry.log.copy()); - ModHandler.addMirroredShapedRecipe(prefix + "_" + name + "_plank_saw", - GTUtility.copy(plank_saw, entry.planks), "s", "L", - 'L', entry.log.copy()); - } - - // log -> charcoal furnace recipe removal, if enabled - if (ConfigHolder.recipes.harderCharcoalRecipe) { - if (entry.removeCharcoalRecipe) { - final ItemStack outputStack = FurnaceRecipes.instance().getSmeltingResult(entry.log); - if (outputStack.getItem() == Items.COAL && outputStack.getItemDamage() == 1) { - ModHandler.removeFurnaceSmelting(entry.log); - } - } - } else { - if (entry.addCharcoalRecipe) { - GameRegistry.addSmelting(MetaBlocks.RUBBER_LOG, new ItemStack(Items.COAL, 1, 1), 0.15F); - } - } - } - - // door - if (!entry.door.isEmpty()) { - final boolean hasDoorRecipe = entry.doorRecipeName != null; - if (ConfigHolder.recipes.hardWoodRecipes) { - // hard plank -> door crafting - if (hasDoorRecipe) { - ModHandler.removeRecipeByName(new ResourceLocation(entry.modid, entry.doorRecipeName)); - } - ModHandler.addShapedRecipe(hasDoorRecipe ? prefix + entry.doorRecipeName : prefix + name + "_door", - entry.door.copy(), - "PTd", "PRS", "PPs", - 'P', entry.planks.copy(), - 'T', new ItemStack(Blocks.TRAPDOOR), - 'R', new UnificationEntry(ring, Materials.Iron), - 'S', new UnificationEntry(screw, Materials.Iron)); - - // plank -> door assembling - RecipeMaps.ASSEMBLER_RECIPES.recipeBuilder() - .inputs(new ItemStack(Blocks.TRAPDOOR)) - .inputs(GTUtility.copy(4, entry.planks)) - .fluidInputs(Materials.Iron.getFluid(GTValues.L / 9)) - .outputs(entry.door.copy()) - .duration(400).EUt(4).buildAndRegister(); - } else { - if (!hasDoorRecipe) { - ModHandler.addShapedRecipe(prefix + name + "_door", GTUtility.copy(3, entry.door), - "PP", "PP", "PP", - 'P', entry.planks.copy()); - } - - RecipeMaps.ASSEMBLER_RECIPES.recipeBuilder() - .inputs(GTUtility.copy(6, entry.planks)) - .outputs(GTUtility.copy(3, entry.door)) - .circuitMeta(6) - .duration(600).EUt(4) - .buildAndRegister(); - } - } - - // stairs - if (!entry.stairs.isEmpty()) { - final boolean hasStairRecipe = entry.stairsRecipeName != null; - if (entry.addStairsCraftingRecipe) { - ModHandler.addShapedRecipe(hasStairRecipe ? prefix + entry.stairsRecipeName : prefix + name + "_stairs", - GTUtility.copy(4, entry.stairs), - "P ", "PP ", "PPP", - 'P', entry.planks.copy()); - } - - // plank -> stairs assembling - RecipeMaps.ASSEMBLER_RECIPES.recipeBuilder() - .inputs(GTUtility.copy(6, entry.planks)) - .outputs(GTUtility.copy(4, entry.stairs)) - .circuitMeta(7) - .EUt(1).duration(100).buildAndRegister(); - } - - // slab - if (!entry.slab.isEmpty()) { - if (entry.addSlabCraftingRecipe && !ConfigHolder.recipes.hardWoodRecipes) { - ModHandler.addShapedRecipe(prefix + name + "_slab", GTUtility.copy(6, entry.slab), - "PPP", 'P', entry.planks.copy()); - } - - // plank -> slab crafting - ModHandler.addShapedRecipe(prefix + name + "_slab_saw", GTUtility.copy(2, entry.slab), - "sS", 'S', entry.planks.copy()); - - if (ConfigHolder.recipes.hardWoodRecipes && entry.slabRecipeName != null) { - ModHandler.removeRecipeByName(new ResourceLocation(entry.modid, entry.slabRecipeName)); - } - - // plank -> slab cutting - RecipeMaps.CUTTER_RECIPES.recipeBuilder() - .inputs(entry.planks.copy()) - .outputs(GTUtility.copy(2, entry.slab)) - .duration(200).EUt(VA[ULV]) - .buildAndRegister(); - } - - // fence - if (!entry.fence.isEmpty()) { - final boolean hasFenceRecipe = entry.fenceRecipeName != null; - if (ConfigHolder.recipes.hardWoodRecipes) { - // hard plank -> fence crafting - if (hasFenceRecipe) { - ModHandler.removeRecipeByName(new ResourceLocation(entry.modid, entry.fenceRecipeName)); - } - - ModHandler.addShapedRecipe(hasFenceRecipe ? prefix + entry.fenceRecipeName : prefix + name + "_fence", - entry.fence.copy(), - "PSP", "PSP", "PSP", - 'P', entry.planks.copy(), - 'S', entry.getStick()); - } else { - if (!hasFenceRecipe) { - ModHandler.addShapedRecipe(prefix + name + "_fence", GTUtility.copy(3, entry.fence), - "PSP", "PSP", - 'P', entry.planks.copy(), - 'S', entry.getStick()); - } - } - - // plank -> fence assembling - RecipeMaps.ASSEMBLER_RECIPES.recipeBuilder() - .inputs(entry.planks.copy()) - .outputs(entry.fence.copy()) - .circuitMeta(1) - .duration(100).EUt(4) - .buildAndRegister(); - } - - // fence gate - if (!entry.fenceGate.isEmpty()) { - final boolean hasFenceGateRecipe = entry.fenceGateRecipeName != null; - if (ConfigHolder.recipes.hardWoodRecipes) { - // hard plank -> fence gate crafting - if (hasFenceGateRecipe) { - ModHandler.removeRecipeByName(new ResourceLocation(entry.modid, entry.fenceGateRecipeName)); - } - - ModHandler.addShapedRecipe( - hasFenceGateRecipe ? prefix + entry.fenceGateRecipeName : prefix + name + "_fence_gate", - entry.fenceGate.copy(), - "F F", "SPS", "SPS", - 'P', entry.planks.copy(), - 'S', entry.getStick(), - 'F', new ItemStack(Items.FLINT)); - - ModHandler.addShapedRecipe(prefix + name + "_fence_gate_screws", GTUtility.copy(2, entry.fenceGate), - "IdI", "SPS", "SPS", - 'P', entry.planks, - 'S', entry.getStick(), - 'I', new UnificationEntry(screw, Materials.Iron)); - } else { - if (!hasFenceGateRecipe) { - ModHandler.addShapedRecipe(prefix + name + "_fence_gate", entry.fenceGate.copy(), - "SPS", "SPS", - 'P', entry.planks.copy(), - 'S', entry.getStick()); - } - } - - // plank -> fence gate assembling - RecipeMaps.ASSEMBLER_RECIPES.recipeBuilder() - .inputs(GTUtility.copy(2, entry.planks)) - .input(entry.getStick().toString(), 2) - .outputs(entry.fenceGate.copy()) - .circuitMeta(2) - .duration(100).EUt(4).buildAndRegister(); - } - - // boat - if (!entry.boat.isEmpty()) { - final boolean hasBoatRecipe = entry.boatRecipeName != null; - if (ConfigHolder.recipes.hardWoodRecipes) { - if (!entry.slab.isEmpty()) { - // hard plank -> boat crafting - if (hasBoatRecipe) { - ModHandler.removeRecipeByName(new ResourceLocation(entry.modid, entry.boatRecipeName)); - } - - ModHandler.addShapedRecipe(hasBoatRecipe ? prefix + entry.boatRecipeName : prefix + name + "_boat", - entry.boat.copy(), - "PHP", "PkP", "SSS", - 'P', entry.planks.copy(), - 'S', entry.slab.copy(), - 'H', new ItemStack(Items.WOODEN_SHOVEL)); - } - } else { - if (!hasBoatRecipe) { - ModHandler.addShapedRecipe(name + "_boat", entry.boat.copy(), - "P P", "PPP", - 'P', entry.planks.copy()); - } - } - - // plank -> boat assembling - RecipeMaps.ASSEMBLER_RECIPES.recipeBuilder() - .inputs(GTUtility.copy(5, entry.planks)) - .outputs(entry.boat.copy()) - .circuitMeta(15) - .duration(100).EUt(4).buildAndRegister(); - } - } - - public static void addCuttingRecipe(@NotNull WoodTypeEntry entry) { - if (!entry.log.isEmpty()) { - RecipeMaps.CUTTER_RECIPES.recipeBuilder() - .inputs(entry.log.copy()) - .fluidInputs(Materials.Water.getFluid(4)) - .outputs(GTUtility.copy(6, entry.planks)) - .output(dust, Materials.Wood, 2) - .duration(200).EUt(VA[ULV]) - .buildAndRegister(); - RecipeMaps.CUTTER_RECIPES.recipeBuilder() - .inputs(entry.log.copy()) - .fluidInputs(Materials.DistilledWater.getFluid(3)) - .outputs(GTUtility.copy(6, entry.planks)) - .output(dust, Materials.Wood, 2) - .duration(150).EUt(VA[ULV]) - .buildAndRegister(); - RecipeMaps.CUTTER_RECIPES.recipeBuilder() - .inputs(entry.log.copy()) - .fluidInputs(Materials.Lubricant.getFluid(1)) - .outputs(GTUtility.copy(6, entry.planks)) - .output(dust, Materials.Wood, 2) - .duration(100).EUt(VA[ULV]) - .buildAndRegister(); - } - } - - public static void addSawmillRecipe(@NotNull WoodTypeEntry entry) { - if (!entry.log.isEmpty()) { - GTERecipeMaps.SAWMILL_RECIPES.recipeBuilder() - .circuitMeta(1) - .inputs(GTUtility.copy(6, entry.log)) - .fluidInputs(Materials.Water.getFluid(1000)) - .outputs(GTUtility.copy(48, entry.planks)) - .output(dust, Materials.Wood, 12) - .duration(600).EUt(VA[LV]) - .buildAndRegister(); - GTERecipeMaps.SAWMILL_RECIPES.recipeBuilder() - .circuitMeta(2) - .inputs(GTUtility.copy(6, entry.log)) - .fluidInputs(Materials.Water.getFluid(2500)) - .outputs(GTUtility.copy(60, entry.planks)) - .duration(800).EUt(VA[LV]) - .buildAndRegister(); - GTERecipeMaps.SAWMILL_RECIPES.recipeBuilder() - .circuitMeta(3) - .inputs(GTUtility.copy(6, entry.log)) - .fluidInputs(Materials.DistilledWater.getFluid(600)) - .outputs(GTUtility.copy(48, entry.planks)) - .output(dust, Materials.Wood, 12) - .duration(450).EUt(VA[LV]) - .buildAndRegister(); - GTERecipeMaps.SAWMILL_RECIPES.recipeBuilder() - .circuitMeta(4) - .inputs(GTUtility.copy(6, entry.log)) - .fluidInputs(Materials.DistilledWater.getFluid(1500)) - .outputs(GTUtility.copy(60, entry.planks)) - .duration(650).EUt(VA[LV]) - .buildAndRegister(); - GTERecipeMaps.SAWMILL_RECIPES.recipeBuilder() - .circuitMeta(5) - .inputs(GTUtility.copy(6, entry.log)) - .fluidInputs(Materials.Lubricant.getFluid(120)) - .outputs(GTUtility.copy(48, entry.planks)) - .output(dust, Materials.Wood, 12) - .duration(300).EUt(VA[LV]) - .buildAndRegister(); - GTERecipeMaps.SAWMILL_RECIPES.recipeBuilder() - .circuitMeta(6) - .inputs(GTUtility.copy(6, entry.log)) - .fluidInputs(Materials.Lubricant.getFluid(300)) - .outputs(GTUtility.copy(60, entry.planks)) - .duration(500).EUt(VA[LV]) - .buildAndRegister(); - } - } - - public static void removePlankRecipe(boolean removeSawRecipes, @NotNull WoodTypeEntry entry, - @NotNull String otherModId) { - final String name = entry.woodName; - final String prefix = otherModId.isEmpty() ? entry.modid : otherModId; - final boolean hasPlanksRecipe = entry.planksRecipeName != null; - - ModHandler.removeRecipeByName( - new ResourceLocation(prefix, hasPlanksRecipe ? entry.planksRecipeName : name + "_planks")); - - if (!removeSawRecipes) return; - ModHandler.removeRecipeByName( - new ResourceLocation(prefix, hasPlanksRecipe ? entry.planksRecipeName + "_saw" : name + "_planks_saw")); - } -} diff --git a/src/main/java/gtexpert/loaders/recipe/GTEWoodRecipe.java b/src/main/java/gtexpert/loaders/recipe/GTEWoodRecipe.java deleted file mode 100644 index 39e794cd..00000000 --- a/src/main/java/gtexpert/loaders/recipe/GTEWoodRecipe.java +++ /dev/null @@ -1,101 +0,0 @@ -package gtexpert.loaders.recipe; - -import static gregtech.api.unification.ore.OrePrefix.*; - -import java.util.Arrays; -import java.util.List; - -import net.minecraft.init.Blocks; -import net.minecraft.init.Items; -import net.minecraft.item.ItemStack; - -import gregtech.api.GTValues; -import gregtech.api.recipes.ModHandler; -import gregtech.api.unification.OreDictUnifier; -import gregtech.api.unification.material.Materials; -import gregtech.api.unification.stack.UnificationEntry; -import gregtech.common.ConfigHolder; -import gregtech.common.blocks.MetaBlocks; -import gregtech.common.blocks.wood.BlockGregPlanks; -import gregtech.loaders.WoodTypeEntry; - -import gtexpert.api.util.Mods; -import gtexpert.common.GTEConfigHolder; -import gtexpert.loaders.GTEWoodRecipeLoader; - -public class GTEWoodRecipe { - - private static List DEFAULT_ENTRIES; - - private static List getDefaultEntries() { - if (DEFAULT_ENTRIES == null) { - final String mcModId = Mods.Vanilla.name(); - return DEFAULT_ENTRIES = Arrays.asList( - new WoodTypeEntry.Builder(mcModId, "oak") - .planks(new ItemStack(Blocks.PLANKS), null) - .log(new ItemStack(Blocks.LOG)) - .build(), - new WoodTypeEntry.Builder(mcModId, "spruce") - .planks(new ItemStack(Blocks.PLANKS, 1, 1), null) - .log(new ItemStack(Blocks.LOG, 1, 1)) - .build(), - new WoodTypeEntry.Builder(mcModId, "birch") - .planks(new ItemStack(Blocks.PLANKS, 1, 2), null) - .log(new ItemStack(Blocks.LOG, 1, 2)) - .build(), - new WoodTypeEntry.Builder(mcModId, "jungle") - .planks(new ItemStack(Blocks.PLANKS, 1, 3), null) - .log(new ItemStack(Blocks.LOG, 1, 3)) - .build(), - new WoodTypeEntry.Builder(mcModId, "acacia") - .planks(new ItemStack(Blocks.PLANKS, 1, 4), null) - .log(new ItemStack(Blocks.LOG2)) - .build(), - new WoodTypeEntry.Builder(mcModId, "dark_oak") - .planks(new ItemStack(Blocks.PLANKS, 1, 5), null) - .log(new ItemStack(Blocks.LOG2, 1, 1)) - .build(), - new WoodTypeEntry.Builder(GTValues.MODID, "rubber") - .planks(MetaBlocks.PLANKS.getItemVariant(BlockGregPlanks.BlockType.RUBBER_PLANK), null) - .log(new ItemStack(MetaBlocks.RUBBER_LOG)) - .build()); - } - return DEFAULT_ENTRIES; - } - - public static void init() { - sticks(); - planks(); - } - - private static void sticks() { - int stick_normal = GTEConfigHolder.ceuOverride.moreNerfStickCrafting ? 1 : 2; - stick_normal = ConfigHolder.recipes.harderRods ? stick_normal : 4; - int stick_saw = GTEConfigHolder.ceuOverride.moreNerfStickCrafting ? 2 : 4; - stick_saw = ConfigHolder.recipes.harderRods ? stick_saw : 6; - - ModHandler.removeRecipeByName(Mods.GregTech.getResource("stick_normal")); - ModHandler.addMirroredShapedRecipe("stick_normal", new ItemStack(Items.STICK, stick_normal), "P", "P", - 'P', new UnificationEntry(plank, Materials.Wood)); - ModHandler.removeRecipeByName(Mods.GregTech.getResource("stick_saw")); - ModHandler.addMirroredShapedRecipe("stick_saw", new ItemStack(Items.STICK, stick_saw), "s", "P", "P", - 'P', new UnificationEntry(plank, Materials.Wood)); - - ModHandler.removeRecipeByName(Mods.GregTech.getResource("treated_wood_stick")); - ModHandler.addMirroredShapedRecipe("treated_wood_stick", - OreDictUnifier.get(stick, Materials.TreatedWood, stick_normal), "P", "P", - 'P', MetaBlocks.PLANKS.getItemVariant(BlockGregPlanks.BlockType.TREATED_PLANK)); - ModHandler.removeRecipeByName(Mods.GregTech.getResource("treated_wood_stick_saw")); - ModHandler.addMirroredShapedRecipe("treated_wood_stick_saw", - OreDictUnifier.get(stick, Materials.TreatedWood, stick_saw), "s", "P", "P", - 'P', MetaBlocks.PLANKS.getItemVariant(BlockGregPlanks.BlockType.TREATED_PLANK)); - } - - private static void planks() { - for (WoodTypeEntry entry : getDefaultEntries()) { - GTEWoodRecipeLoader.removePlankRecipe(true, entry, Mods.GregTech.name()); - GTEWoodRecipeLoader.registerWoodTypeRecipe(false, entry); - GTEWoodRecipeLoader.addSawmillRecipe(entry); - } - } -} diff --git a/src/main/java/gtexpert/loaders/recipe/handlers/GTEToolRecipeHandler.java b/src/main/java/gtexpert/loaders/recipe/handlers/GTEToolRecipeHandler.java deleted file mode 100644 index 105b8880..00000000 --- a/src/main/java/gtexpert/loaders/recipe/handlers/GTEToolRecipeHandler.java +++ /dev/null @@ -1,31 +0,0 @@ -package gtexpert.loaders.recipe.handlers; - -import static gregtech.api.unification.material.info.MaterialFlags.*; -import static gregtech.loaders.recipe.handlers.ToolRecipeHandler.addElectricToolRecipe; - -import gregtech.api.items.toolitem.IGTTool; -import gregtech.api.unification.material.Material; -import gregtech.api.unification.material.properties.PropertyKey; -import gregtech.api.unification.material.properties.ToolProperty; -import gregtech.api.unification.ore.OrePrefix; - -import gtexpert.common.items.GTEToolItems; - -public class GTEToolRecipeHandler { - - public static void register() { - OrePrefix.plate.addProcessingHandler(PropertyKey.TOOL, GTEToolRecipeHandler::processElectricTool); - } - - private static void processElectricTool(OrePrefix prefix, Material material, ToolProperty property) { - OrePrefix toolPrefix; - - if (material.hasFlag(GENERATE_PLATE)) { - // Chainsaw - toolPrefix = OrePrefix.toolHeadChainsaw; - addElectricToolRecipe(toolPrefix, material, new IGTTool[] { - GTEToolItems.CHAINSAW_HV, GTEToolItems.CHAINSAW_IV - }); - } - } -} diff --git a/src/main/java/gtexpert/mixins/gcym/MetaTileEntityElectricImplosionCompressorMixin.java b/src/main/java/gtexpert/mixins/gcym/MetaTileEntityElectricImplosionCompressorMixin.java deleted file mode 100644 index b46420d3..00000000 --- a/src/main/java/gtexpert/mixins/gcym/MetaTileEntityElectricImplosionCompressorMixin.java +++ /dev/null @@ -1,25 +0,0 @@ -package gtexpert.mixins.gcym; - -import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.injection.At; -import org.spongepowered.asm.mixin.injection.ModifyArg; - -import gregtech.api.recipes.RecipeMap; -import gregtech.api.recipes.builders.SimpleRecipeBuilder; - -import gregicality.multiblocks.common.metatileentities.multiblock.standard.MetaTileEntityElectricImplosionCompressor; - -import gtexpert.api.recipes.GTERecipeMaps; - -@Mixin(value = MetaTileEntityElectricImplosionCompressor.class, remap = false) -public class MetaTileEntityElectricImplosionCompressorMixin { - - // Thanks to @sysnote8main - @ModifyArg(method = "", - at = @At(value = "INVOKE", - target = "Lgregtech/api/metatileentity/multiblock/RecipeMapMultiblockController;(Lnet/minecraft/util/ResourceLocation;Lgregtech/api/recipes/RecipeMap;)V"), - index = 1) - private static RecipeMap injectArg(RecipeMap a) { - return GTERecipeMaps.ELECTRIC_IMPLOSION_COMPRESSOR_RECIPES; - } -} diff --git a/src/main/resources/assets/gregtech/lang/en_us.lang b/src/main/resources/assets/gregtech/lang/en_us.lang deleted file mode 100644 index 4288f490..00000000 --- a/src/main/resources/assets/gregtech/lang/en_us.lang +++ /dev/null @@ -1,10 +0,0 @@ -# English by GTModpackTeam - - -# tool -death.attack.chainsaw_hv=%s was massacred by %s -death.attack.chainsaw_iv=%s was massacred by %s -item.gt.tool.chainsaw_hv.name=%s Chainsaw (HV) -item.gt.tool.chainsaw_hv.tooltip=Additions in GTExpert-Core -item.gt.tool.chainsaw_iv.name=%s Chainsaw (IV) -item.gt.tool.chainsaw_iv.tooltip=Additions in GTExpert-Core diff --git a/src/main/resources/assets/gregtech/lang/ja_jp.lang b/src/main/resources/assets/gregtech/lang/ja_jp.lang deleted file mode 100644 index 913276d6..00000000 --- a/src/main/resources/assets/gregtech/lang/ja_jp.lang +++ /dev/null @@ -1,10 +0,0 @@ - - - -# tool -death.attack.chainsaw_hv=%s は %s にチェーンソーを振り回すことは危険だと教えたかった。 -death.attack.chainsaw_iv=%s は %s にチェーンソーを振り回すことは危険だと教えたかった。 -item.gt.tool.chainsaw_hv.name=HVの%s製チェーンソー -item.gt.tool.chainsaw_hv.tooltip=GTExpert-Coreでの追加物です -item.gt.tool.chainsaw_iv.name=IVの%s製チェーンソー -item.gt.tool.chainsaw_iv.tooltip=GTExpert-Coreでの追加物です diff --git a/src/main/resources/assets/gregtech/lang/zh_cn.lang b/src/main/resources/assets/gregtech/lang/zh_cn.lang deleted file mode 100644 index df20b207..00000000 --- a/src/main/resources/assets/gregtech/lang/zh_cn.lang +++ /dev/null @@ -1,10 +0,0 @@ -# Chinese by GTModpackTeam -# 中文翻译由 Quarri6343 翻译。 - -# tool -death.attack.chainsaw_hv=%2$s的链锯切碎了%1$s -death.attack.chainsaw_iv=%2$s的链锯切碎了%1$s -item.gt.tool.chainsaw_hv.name=%s链锯(HV) -item.gt.tool.chainsaw_hv.tooltip=GTExpert-Core 中的其他项目 -item.gt.tool.chainsaw_iv.name=%s链锯(IV) -item.gt.tool.chainsaw_iv.tooltip=GTExpert-Core 中的其他项目 diff --git a/src/main/resources/assets/gregtech/models/item/tools/chainsaw_hv.json b/src/main/resources/assets/gregtech/models/item/tools/chainsaw_hv.json deleted file mode 100644 index 88fcb32b..00000000 --- a/src/main/resources/assets/gregtech/models/item/tools/chainsaw_hv.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "parent": "item/handheld", - "textures": { - "layer0": "gregtech:items/tools/power_unit_hv", - "layer1": "gregtech:items/tools/chainsaw" - } -} diff --git a/src/main/resources/assets/gregtech/models/item/tools/chainsaw_iv.json b/src/main/resources/assets/gregtech/models/item/tools/chainsaw_iv.json deleted file mode 100644 index 390d6ce9..00000000 --- a/src/main/resources/assets/gregtech/models/item/tools/chainsaw_iv.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "parent": "item/handheld", - "textures": { - "layer0": "gregtech:items/tools/power_unit_iv", - "layer1": "gregtech:items/tools/chainsaw" - } -} diff --git a/src/main/resources/assets/gregtech/textures/blocks/casings/sawmill_casing.png b/src/main/resources/assets/gregtech/textures/blocks/casings/sawmill_casing.png deleted file mode 100644 index 232820c6..00000000 Binary files a/src/main/resources/assets/gregtech/textures/blocks/casings/sawmill_casing.png and /dev/null differ diff --git a/src/main/resources/assets/gregtech/textures/blocks/casings/sawmill_conveyor/belt.png b/src/main/resources/assets/gregtech/textures/blocks/casings/sawmill_conveyor/belt.png deleted file mode 100644 index 0b01a842..00000000 Binary files a/src/main/resources/assets/gregtech/textures/blocks/casings/sawmill_conveyor/belt.png and /dev/null differ diff --git a/src/main/resources/assets/gregtech/textures/blocks/casings/sawmill_conveyor/belt.png.mcmeta b/src/main/resources/assets/gregtech/textures/blocks/casings/sawmill_conveyor/belt.png.mcmeta deleted file mode 100644 index d3ca55b4..00000000 --- a/src/main/resources/assets/gregtech/textures/blocks/casings/sawmill_conveyor/belt.png.mcmeta +++ /dev/null @@ -1 +0,0 @@ -{"animation": {"frametime": 1}} diff --git a/src/main/resources/assets/gregtech/textures/blocks/casings/sawmill_conveyor/frame.png b/src/main/resources/assets/gregtech/textures/blocks/casings/sawmill_conveyor/frame.png deleted file mode 100644 index 9888fcb6..00000000 Binary files a/src/main/resources/assets/gregtech/textures/blocks/casings/sawmill_conveyor/frame.png and /dev/null differ diff --git a/src/main/resources/assets/gregtech/textures/blocks/machines/sawmill/overlay_back.png b/src/main/resources/assets/gregtech/textures/blocks/machines/sawmill/overlay_back.png deleted file mode 100644 index 0a6699ff..00000000 Binary files a/src/main/resources/assets/gregtech/textures/blocks/machines/sawmill/overlay_back.png and /dev/null differ diff --git a/src/main/resources/assets/gregtech/textures/blocks/machines/sawmill/overlay_back_active.png b/src/main/resources/assets/gregtech/textures/blocks/machines/sawmill/overlay_back_active.png deleted file mode 100644 index af20b824..00000000 Binary files a/src/main/resources/assets/gregtech/textures/blocks/machines/sawmill/overlay_back_active.png and /dev/null differ diff --git a/src/main/resources/assets/gregtech/textures/blocks/machines/sawmill/overlay_back_active.png.mcmeta b/src/main/resources/assets/gregtech/textures/blocks/machines/sawmill/overlay_back_active.png.mcmeta deleted file mode 100644 index dfae8cae..00000000 --- a/src/main/resources/assets/gregtech/textures/blocks/machines/sawmill/overlay_back_active.png.mcmeta +++ /dev/null @@ -1,5 +0,0 @@ -{ - "animation":{ - "frametime":1 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/gregtech/textures/blocks/machines/sawmill/overlay_front.png b/src/main/resources/assets/gregtech/textures/blocks/machines/sawmill/overlay_front.png deleted file mode 100644 index 71b4efec..00000000 Binary files a/src/main/resources/assets/gregtech/textures/blocks/machines/sawmill/overlay_front.png and /dev/null differ diff --git a/src/main/resources/assets/gregtech/textures/blocks/machines/sawmill/overlay_front_active.png b/src/main/resources/assets/gregtech/textures/blocks/machines/sawmill/overlay_front_active.png deleted file mode 100644 index 9e46f30b..00000000 Binary files a/src/main/resources/assets/gregtech/textures/blocks/machines/sawmill/overlay_front_active.png and /dev/null differ diff --git a/src/main/resources/assets/gregtech/textures/blocks/machines/sawmill/overlay_front_active_emissive.png b/src/main/resources/assets/gregtech/textures/blocks/machines/sawmill/overlay_front_active_emissive.png deleted file mode 100644 index fbc8babe..00000000 Binary files a/src/main/resources/assets/gregtech/textures/blocks/machines/sawmill/overlay_front_active_emissive.png and /dev/null differ diff --git a/src/main/resources/assets/gregtech/textures/blocks/machines/sawmill/overlay_front_emissive.png b/src/main/resources/assets/gregtech/textures/blocks/machines/sawmill/overlay_front_emissive.png deleted file mode 100644 index 2673ecbc..00000000 Binary files a/src/main/resources/assets/gregtech/textures/blocks/machines/sawmill/overlay_front_emissive.png and /dev/null differ diff --git a/src/main/resources/assets/gregtech/textures/blocks/machines/sawmill/overlay_front_paused.png b/src/main/resources/assets/gregtech/textures/blocks/machines/sawmill/overlay_front_paused.png deleted file mode 100644 index 8f139ba6..00000000 Binary files a/src/main/resources/assets/gregtech/textures/blocks/machines/sawmill/overlay_front_paused.png and /dev/null differ diff --git a/src/main/resources/assets/gregtech/textures/blocks/machines/sawmill/overlay_front_paused_emissive.png b/src/main/resources/assets/gregtech/textures/blocks/machines/sawmill/overlay_front_paused_emissive.png deleted file mode 100644 index 577f0815..00000000 Binary files a/src/main/resources/assets/gregtech/textures/blocks/machines/sawmill/overlay_front_paused_emissive.png and /dev/null differ diff --git a/src/main/resources/assets/gtexpert/blockstates/gte_metal_casing.json b/src/main/resources/assets/gtexpert/blockstates/gte_metal_casing.json index f8d7e9e3..bd5a0076 100644 --- a/src/main/resources/assets/gtexpert/blockstates/gte_metal_casing.json +++ b/src/main/resources/assets/gtexpert/blockstates/gte_metal_casing.json @@ -5,11 +5,6 @@ }, "variants" : { "variant" : { - "sawmill_casing" : { - "textures" : { - "all" : "gregtech:blocks/casings/sawmill_casing" - } - }, "void_ore_miner_casing" : { "textures" : { "all" : "gregtech:blocks/casings/void_ore_miner_casing" diff --git a/src/main/resources/assets/gtexpert/blockstates/sawmill_conveyor.json b/src/main/resources/assets/gtexpert/blockstates/sawmill_conveyor.json deleted file mode 100644 index b27edc60..00000000 --- a/src/main/resources/assets/gtexpert/blockstates/sawmill_conveyor.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "forge_marker" : 1, - "defaults" : { - "model" : "gtexpert:sawmill_conveyor" - }, - "variants" : { - "facing" : { - "north" : { - "model" : "gtexpert:sawmill_conveyor", - "y" : 0 - }, - "east" : { - "model" : "gtexpert:sawmill_conveyor", - "y" : 90 - }, - "south" : { - "model" : "gtexpert:sawmill_conveyor", - "y" : 180 - }, - "west" : { - "model" : "gtexpert:sawmill_conveyor", - "y" : 270 - } - } - } -} diff --git a/src/main/resources/assets/gtexpert/lang/en_us.lang b/src/main/resources/assets/gtexpert/lang/en_us.lang index 8ff3f8cd..bc16ec57 100644 --- a/src/main/resources/assets/gtexpert/lang/en_us.lang +++ b/src/main/resources/assets/gtexpert/lang/en_us.lang @@ -2,9 +2,6 @@ # multiblock -gtexpert.machine.sawmill.name=Sawmill -gtexpert.machine.sawmill.tooltip=Nooo! Do not saw me.. -gtexpert.machine.sawmill.tooltip.1=§dAuthor:§f @Quarri6343 gtexpert.machine.void_ore_miner.name=Void Ore Miner gtexpert.machine.void_ore_miner.tooltip=Stargate Builder gtexpert.machine.void_ore_miner.tooltip.1=§6Mines out 32 Ores based on the input Ore §r @@ -26,7 +23,6 @@ gtexpert.machine.advanced_gas_collector.tooltip=Squeeze air out of dust gtexpert.machine.advanced_gas_collector.tooltip.1=§dAuthor:§f @tier940 gtexpert.machine.large_gas_collector.name=Large Gas Collector gtexpert.machine.large_gas_collector.tooltip=Squeeze air out of dust -gtexpert.machine.large_gas_collector.tooltip.1=§dAuthor:§f @tier940 # singleblock # Auto Chisel @@ -37,20 +33,6 @@ gtexpert.machine.auto_chisel.mv.tooltip=Your ideal, we will sculpt it/nMaterial gtexpert.machine.auto_chisel.hv.name=Advanced Auto Chisel II gtexpert.machine.auto_chisel.hv.tooltip=Your ideal, we will sculpt it/nMaterial in the left, chiseling to the right. See JEI's Chiseling page for details./n§dAuthor:§f @tier940 -# Steam Machines -gtexpert.machine.steam_mixer_bronze.name=Steam Mixer -gtexpert.machine.steam_mixer_steel.name=High Pressure Steam Mixer -gtexpert.machine.steam_mixer.tooltip=§dAuthor:§f @tier940 -gtexpert.machine.steam_mixer.tooltip.1=Better than mixing by hand -gtexpert.machine.steam_assembler_bronze.name=Steam Assembling Machine -gtexpert.machine.steam_assembler_steel.name=High Pressure Steam Assembling Machine -gtexpert.machine.steam_assembler.tooltip=§dAuthor:§f @tier940 -gtexpert.machine.steam_assembler.tooltip.1=Better than assembling by hand -gtexpert.machine.steam_circuit_assembler_bronze.name=Steam Circuit Assembler -gtexpert.machine.steam_circuit_assembler_steel.name=High Pressure Steam Circuit Assembler -gtexpert.machine.steam_circuit_assembler.tooltip=§dAuthor:§f @tier940 -gtexpert.machine.steam_circuit_assembler.tooltip.1=Better than making circuits by hand - # Vial Extractor gtexpert.machine.vial_extractor.lv.name=Basic Vial Extractor gtexpert.machine.vial_extractor.lv.tooltip=Soul of a Lost Undead?/n§dAuthor:§f @tier940 @@ -142,11 +124,9 @@ gtexpert.machine.industrial_apiary.uv.name=Ultimate Industrial Apiary gtexpert.machine.industrial_apiary.uv.tooltip=BEES GOES BRRRR/n§dAuthor:§f @tier940 # block -tile.gte_metal_casing.sawmill_casing.name=Treated Wood Machine Casing tile.gte_metal_casing.void_ore_miner_casing.name=Voiding Proof NM-HEA NP Machine Casing tile.gte_metal_casing.draconium_casing.name=Dragon Proof Draconium Machine Casing tile.gte_metal_casing.awakened_draconium_casing.name=Dragon Proof Awakened Draconium Machine Casing -tile.sawmill_conveyor.name=Sawmill Conveyor tile.gte_wire_coil.awakened_draconium.name=Awakened Draconium Coil Block # material @@ -226,7 +206,6 @@ metaitem.shape.extruder.engineering_processor.name=Extruder Shape (Engineering P metaitem.shape.extruder.engineering_processor.tooltip=Used to craft Engineering Processor # recipemaps -recipemap.sawmill.name=Saw Mill recipemap.vial_extractor.name=Vial Extractor recipemap.slice_n_splice.name=Slice'N'Splice recipemap.soul_binder.name=Soul Binder @@ -244,7 +223,6 @@ recipemap.draconic_fusion_upgrade.property.1=Preserves upgrade info recipemap.draconic_fusion_upgrade.property.2= and stored energy recipemap.advanced_chemical_plant.name=Advanced Chemical Plant recipemap.large_gas_collector.name=Large Gas Collector -recipemap.electric_implosion_compressor.name=Electric Implosion Compressor recipemap.steam_mixer.name=Steam Mixer recipemap.steam_assembler.name=Steam Assembler recipemap.steam_circuit_assembler.name=Steam Circuit Assembler diff --git a/src/main/resources/assets/gtexpert/lang/ja_jp.lang b/src/main/resources/assets/gtexpert/lang/ja_jp.lang index 7260e231..12732388 100644 --- a/src/main/resources/assets/gtexpert/lang/ja_jp.lang +++ b/src/main/resources/assets/gtexpert/lang/ja_jp.lang @@ -2,9 +2,6 @@ # multiblock -gtexpert.machine.sawmill.name=製材機 -gtexpert.machine.sawmill.tooltip=うるさいからって電話を伐らないで.. -gtexpert.machine.sawmill.tooltip.1=§d作者:§f @Quarri6343 gtexpert.machine.void_ore_miner.name=亜空間型鉱石採掘機 gtexpert.machine.void_ore_miner.tooltip=スターゲート建設機 gtexpert.machine.void_ore_miner.tooltip.1=§6搬入された鉱石に基づいて32個の鉱石を掘り出します§r @@ -26,7 +23,6 @@ gtexpert.machine.advanced_gas_collector.tooltip=粉から空気を搾り取る gtexpert.machine.advanced_gas_collector.tooltip.1=§d作者:§f @tier940 gtexpert.machine.large_gas_collector.name=大型ガス収集機 gtexpert.machine.large_gas_collector.tooltip=粉から空気を搾り取る -gtexpert.machine.large_gas_collector.tooltip.1=§d作者:§f @tier940 # singleblock # Auto Chisel @@ -37,20 +33,6 @@ gtexpert.machine.auto_chisel.mv.tooltip=あなたの理想、彫刻します/n gtexpert.machine.auto_chisel.hv.name=発展型自動彫刻機 II gtexpert.machine.auto_chisel.hv.tooltip=あなたの理想、彫刻します/n左が素材、右が彫刻型。詳しくはJEIのChiselingページをご覧ください。/n§d作者:§f @tier940 -# Steam Machines -gtexpert.machine.steam_mixer_bronze.name=蒸気式ミキサー -gtexpert.machine.steam_mixer_steel.name=高圧蒸気式ミキサー -gtexpert.machine.steam_mixer.tooltip=§d作者:§f @tier940 -gtexpert.machine.steam_mixer.tooltip.1=手で混ぜるよりはマシ -gtexpert.machine.steam_assembler_bronze.name=蒸気式組立機 -gtexpert.machine.steam_assembler_steel.name=高圧蒸気式組立機 -gtexpert.machine.steam_assembler.tooltip=§d作者:§f @tier940 -gtexpert.machine.steam_assembler.tooltip.1=手で組み立てるよりはマシ -gtexpert.machine.steam_circuit_assembler_bronze.name=蒸気式回路作成機 -gtexpert.machine.steam_circuit_assembler_steel.name=高圧蒸気式回路作成機 -gtexpert.machine.steam_circuit_assembler.tooltip=§d作者:§f @tier940 -gtexpert.machine.steam_circuit_assembler.tooltip.1=手で回路を作るよりはマシ - # Vial Extractor gtexpert.machine.vial_extractor.lv.name=基本型魂抽出器 gtexpert.machine.vial_extractor.lv.tooltip=故も知らぬ不死のソウル?/n§d作者:§f @tier940 @@ -142,11 +124,9 @@ gtexpert.machine.industrial_apiary.uv.name=究極型工業用養蜂箱 gtexpert.machine.industrial_apiary.uv.tooltip=ミツバチ殿様のおな~り~/n§d作者:§f @tier940 # block -tile.gte_metal_casing.sawmill_casing.name=防腐木材製マシン外装 tile.gte_metal_casing.void_ore_miner_casing.name=対虚無マシン外装 tile.gte_metal_casing.draconium_casing.name=ドラコニウムマシン外装 tile.gte_metal_casing.awakened_draconium_casing.name=覚醒ドラコニウムマシン外装 -tile.sawmill_conveyor.name=製材機用コンベア tile.gte_wire_coil.awakened_draconium.name=覚醒ドラコニウムコイルブロック # material @@ -226,7 +206,6 @@ metaitem.shape.extruder.engineering_processor.name=上級プロセッサの押 metaitem.shape.extruder.engineering_processor.tooltip=上級プロセッサを作る為の押出形成用金型 # recipemaps -recipemap.sawmill.name=製材機 recipemap.vial_extractor.name=魂抽出器 recipemap.slice_n_splice.name=頭顱調整機 recipemap.soul_binder.name=魂拘束器 @@ -244,7 +223,6 @@ recipemap.draconic_fusion_upgrade.property.1=アップグレードの状態と recipemap.draconic_fusion_upgrade.property.2= 保持されます recipemap.advanced_chemical_plant.name=発展型化学プラント recipemap.large_gas_collector.name=大型ガス収集機 -recipemap.electric_implosion_compressor.name=電動内破圧縮機 recipemap.steam_mixer.name=蒸気式ミキサー recipemap.steam_assembler.name=蒸気式組立機 recipemap.steam_circuit_assembler.name=蒸気式回路作成機 diff --git a/src/main/resources/assets/gtexpert/lang/zh_cn.lang b/src/main/resources/assets/gtexpert/lang/zh_cn.lang index a89cfba2..d3d6fb68 100644 --- a/src/main/resources/assets/gtexpert/lang/zh_cn.lang +++ b/src/main/resources/assets/gtexpert/lang/zh_cn.lang @@ -2,8 +2,6 @@ # 中文翻译由 Quarri6343 翻译。 # multiblock -gtexpert.machine.sawmill.name=锯木机 -gtexpert.machine.sawmill.tooltip=Nooooo!不要砍我... gtexpert.machine.void_ore_miner.name=虚空矿物采掘机 gtexpert.machine.void_ore_miner.tooltip=星门建造机 gtexpert.machine.void_ore_miner.tooltip.1=§6采掘32个矿石基于输入的矿石§r @@ -60,9 +58,7 @@ gtexpert.machine.electric_spawner.zpm.name=精英电动刷怪笼 III gtexpert.machine.electric_spawner.uv.name=终极电动刷怪笼 # block -tile.gte_metal_casing.sawmill_casing.name=防腐木机械外壳 tile.gte_metal_casing.void_ore_miner_casing.name=抗虚空NM-HEA NP机械外壳 -tile.sawmill_conveyor.name=锯木机传送带 # material gtexpert.material.artificial_bone=人工骨 @@ -99,7 +95,6 @@ metaitem.matrix_core.name=矩阵核心 metaitem.piston_boots.name=活塞靴子 # recipemaps -recipemap.sawmill.name=锯木机 recipemap.vial_extractor.name=灵魂提取机 recipemap.slice_n_splice.name=头颅装配机 recipemap.soul_binder.name=灵魂绑定器 diff --git a/src/main/resources/assets/gtexpert/models/block/sawmill_conveyor.json b/src/main/resources/assets/gtexpert/models/block/sawmill_conveyor.json deleted file mode 100644 index b4c055c4..00000000 --- a/src/main/resources/assets/gtexpert/models/block/sawmill_conveyor.json +++ /dev/null @@ -1,104 +0,0 @@ -{ - "parent": "block/block", - "textures" : { - "particle" : "gregtech:blocks/casings/sawmill_conveyor/belt", - "down" : "gregtech:blocks/casings/sawmill_conveyor/frame", - "up" : "gregtech:blocks/casings/sawmill_conveyor/belt", - "north" : "gregtech:blocks/casings/sawmill_conveyor/frame", - "south" : "gregtech:blocks/casings/sawmill_conveyor/frame", - "west" : "gregtech:blocks/casings/sawmill_conveyor/frame", - "east" : "gregtech:blocks/casings/sawmill_conveyor/frame" - }, - "elements": [ - { - "from": [0, 0, 0], - "to": [16, 0.1, 16], - "faces": { - "down": { - "uv": [0.0, 0.0, 16.0, 16.0], - "texture": "#down", - "cullface": "down" - }, - "up": { - "uv": [0.0, 16.0, 16.0, 0.0], - "texture": "#down" - } - } - }, - { - "from": [0, 15.9, 0], - "to": [16, 16, 16], - "faces": { - "up": { - "uv": [0.0, 0.0, 16.0, 16.0], - "texture": "#up", - "cullface": "up" - }, - "down": { - "uv": [0.0, 16.0, 16.0, 0.0], - "texture": "#up" - } - } - }, - { - "from": [0, 0, 0], - "to": [16, 16, 0.1], - "faces": { - "north": { - "uv": [0.0, 0.0, 16.0, 16.0], - "texture": "#north", - "cullface": "north" - }, - "south": { - "uv": [16.0, 0.0, 0.0, 16.0], - "texture": "#north" - } - } - }, - { - "from": [0, 0, 15.9], - "to": [16, 16, 16], - "faces": { - "south": { - "uv": [0.0, 0.0, 16.0, 16.0], - "texture": "#south", - "cullface": "south" - }, - "north": { - "uv": [16.0, 0.0, 0.0, 16.0], - "texture": "#south" - } - } - }, - { - "from": [0, 0, 0], - "to": [0.1, 16, 16], - "faces": { - "west": { - "uv": [0.0, 0.0, 16.0, 16.0], - "texture": "#west", - "cullface": "west" - }, - "east": { - "uv": [16.0, 0.0, 0.0, 16.0], - "texture": "#west" - } - } - }, - { - "from": [15.9, 0, 0], - "to": [16, 16, 16], - "faces": { - "east": { - "uv": [0.0, 0.0, 16.0, 16.0], - "texture": "#east", - "cullface": "east" - }, - "west": { - "uv": [16.0, 0.0, 0.0, 16.0], - "texture": "#east" - } - } - } - ] -} diff --git a/src/main/resources/assets/gtexpert/models/item/mte.json b/src/main/resources/assets/gtexpert/models/item/mte.json new file mode 100644 index 00000000..86cb52c5 --- /dev/null +++ b/src/main/resources/assets/gtexpert/models/item/mte.json @@ -0,0 +1,17 @@ +{ + "forge_marker": 1, + "defaults": { + "model": "minecraft:cube_all", + "textures": { + "all": "blocks/iron_block" + } + }, + "variants": { + "normal": [ + {} + ], + "inventory": [ + {} + ] + } +} diff --git a/src/main/resources/assets/gtexpert/models/item/sawmill_conveyor.json b/src/main/resources/assets/gtexpert/models/item/sawmill_conveyor.json deleted file mode 100644 index 450f54e0..00000000 --- a/src/main/resources/assets/gtexpert/models/item/sawmill_conveyor.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent" : "gtexpert:blocks/sawmill_conveyor" -} diff --git a/src/main/resources/mcmod.info b/src/main/resources/mcmod.info index c17ba2cb..1b3d745d 100644 --- a/src/main/resources/mcmod.info +++ b/src/main/resources/mcmod.info @@ -15,6 +15,7 @@ "logoFile" : "assets/gregtech/textures/gui/icon/gtexpert_core_logo_high_resolution.png", "dependencies" : [ "chickenchunks", + "modularui", "mixinbooter", "gregtech", "gcym" diff --git a/src/main/resources/mixins.gtexpert.draconicadditions.json b/src/main/resources/mixins.gtexpert.draconicadditions.json index 7914c47b..f305c9f6 100644 --- a/src/main/resources/mixins.gtexpert.draconicadditions.json +++ b/src/main/resources/mixins.gtexpert.draconicadditions.json @@ -1,5 +1,5 @@ { - "package": "gtexpert.mixins.draconicadditions", + "package": "com.github.gtexpert.core.mixins.draconicadditions", "refmap": "mixins.gtexpert.refmap.json", "target": "@env(DEFAULT)", "minVersion": "0.8", diff --git a/src/main/resources/mixins.gtexpert.gcym.json b/src/main/resources/mixins.gtexpert.gregtech.json similarity index 67% rename from src/main/resources/mixins.gtexpert.gcym.json rename to src/main/resources/mixins.gtexpert.gregtech.json index 42136c35..8b2955bc 100644 --- a/src/main/resources/mixins.gtexpert.gcym.json +++ b/src/main/resources/mixins.gtexpert.gregtech.json @@ -1,11 +1,11 @@ { - "package": "gtexpert.mixins.gcym", + "package": "com.github.gtexpert.core.mixins.gregtech", "refmap": "mixins.gtexpert.refmap.json", "target": "@env(DEFAULT)", "minVersion": "0.8", "compatibilityLevel": "JAVA_8", "mixins": [ - "MetaTileEntityElectricImplosionCompressorMixin" + "QuarkTechSuiteMixin" ], "server": [ ], diff --git a/src/test/java/gtexpert/.gitkeep b/src/test/java/com/github/gtexpert/core/.gitkeep similarity index 100% rename from src/test/java/gtexpert/.gitkeep rename to src/test/java/com/github/gtexpert/core/.gitkeep diff --git a/src/test/java/gtexpert/GTETest.java b/src/test/java/com/github/gtexpert/core/GTETest.java similarity index 78% rename from src/test/java/gtexpert/GTETest.java rename to src/test/java/com/github/gtexpert/core/GTETest.java index 56f2ea8c..3150c8b4 100644 --- a/src/test/java/gtexpert/GTETest.java +++ b/src/test/java/com/github/gtexpert/core/GTETest.java @@ -1,4 +1,4 @@ -package gtexpert; +package com.github.gtexpert.core; import org.junit.jupiter.api.BeforeAll;