diff --git a/.editorconfig b/.editorconfig
deleted file mode 100644
index 6a01661edb..0000000000
--- a/.editorconfig
+++ /dev/null
@@ -1,5 +0,0 @@
-root = true
-
-[*.java]
-indent_style = space
-indent_size = 4
diff --git a/.github/actions/build_setup/action.yml b/.github/actions/build_setup/action.yml
new file mode 100644
index 0000000000..754d3379e1
--- /dev/null
+++ b/.github/actions/build_setup/action.yml
@@ -0,0 +1,40 @@
+name: Build Setup
+description: Setup for standard Java builds
+
+inputs:
+ update-cache:
+ description: If cache should be updated
+ required: false
+ default: true
+
+runs:
+ using: 'composite'
+
+ steps:
+ - uses: actions/checkout@v4
+ with:
+ submodules: true
+
+ - name: Set up JDK 17
+ uses: actions/setup-java@v4
+ with:
+ distribution: adopt
+ java-version: 17
+
+ - name: Validate Gradle wrapper
+ uses: gradle/actions/wrapper-validation@v3
+
+ - name: Grant execute permission for gradlew
+ shell: bash
+ run: chmod +x gradlew
+
+ - name: Setup Gradle
+ uses: gradle/actions/setup-gradle@v3
+ with:
+ cache-write-only: ${{ inputs.update-cache }}
+ generate-job-summary: false
+ gradle-home-cache-includes: |
+ caches
+ notifications
+ jdks
+ wrapper
diff --git a/.github/workflows/auto-build.yml b/.github/workflows/auto-build.yml
index 59becdc60f..71595de1bf 100644
--- a/.github/workflows/auto-build.yml
+++ b/.github/workflows/auto-build.yml
@@ -11,24 +11,18 @@ jobs:
env:
GITHUB_ACTION_NUMBER: ${{ vars.GITHUB_RUN_NUMBER }}
GITHUB_RUN_NUMBER: ${{ vars.GITHUB_RUN_NUMBER }}
+ permissions:
+ contents: write
steps:
- - uses: actions/checkout@v3
+ - uses: actions/checkout@v4
with:
submodules: true
- - uses: actions/setup-java@v3
- with:
- java-version: '17'
- distribution: 'adopt'
-
- - name: Validate Gradle wrapper
- uses: gradle/wrapper-validation-action@v1
-
- - name: Grant execute permission for gradlew
- run: chmod +x gradlew
+ - name: Setup Build
+ uses: ./.github/actions/build_setup
- name: Build
- uses: gradle/gradle-build-action@v2.4.2
+ uses: gradle/gradle-build-action@v2
with:
arguments: build
@@ -36,12 +30,19 @@ jobs:
id: var
run: |
MESSAGE=$(ls build/libs/* | grep sources.jar -v | grep shadow.jar -v | grep slim.jar -v | awk -F 'gtceu-|.jar' '{print $2}')
- echo version=$MESSAGE >> $GITHUB_OUTPUT
+ echo "version=$MESSAGE" >> $GITHUB_OUTPUT
- - name: release
+ - name: Release
+ id: release
uses: Kir-Antipov/mc-publish@v3.3.0
with:
github-tag: ${{ steps.var.outputs.version }}
github-token: ${{ secrets.GITHUB_TOKEN }}
files: |
- build/libs/!(*-@(dev|sources|javadoc|dev-shadow)).jar
+ build/libs/!(*-@(dev|sources|javadoc)).jar
+
+ - name: Print Output
+ run: |
+ echo "Release tag: ${{ steps.release.outputs.github-tag }}"
+ echo "Release URL: ${{ steps.release.outputs.github-url }}"
+ echo "Released files: ${{ steps.release.outputs.github-files }}"
diff --git a/.github/workflows/auto-publish.yml b/.github/workflows/auto-publish.yml
index 05c19d8cc0..29f55510d7 100644
--- a/.github/workflows/auto-publish.yml
+++ b/.github/workflows/auto-publish.yml
@@ -18,7 +18,7 @@ on:
type: boolean
default: true
publishCurseForgeAndModrinth:
- description: 'whether publish to the curseforge and modrinth'
+ description: 'whether to publish to curseforge and modrinth'
required: true
type: boolean
default: true
@@ -30,29 +30,26 @@ jobs:
MAVEN_PASS: ${{ secrets.MAVEN_PASS }}
MAVEN_USER: ${{ secrets.MAVEN_USER }}
steps:
- - uses: actions/checkout@v3
+ - uses: actions/checkout@v4
with:
submodules: true
- - uses: actions/setup-java@v3
+ - uses: actions/setup-java@v4
with:
java-version: '17'
distribution: 'adopt'
- - name: Validate Gradle wrapper
- uses: gradle/wrapper-validation-action@v1
-
- - name: Grant execute permission for gradlew
- run: chmod +x gradlew
+ - name: Setup Build
+ uses: ./.github/actions/build_setup
- name: Build
- uses: gradle/gradle-build-action@v2.4.2
+ uses: gradle/gradle-build-action@v2
with:
arguments: build
- if: ${{ inputs.publishMaven }}
name: Publish to Maven
- uses: gradle/gradle-build-action@v2.4.2
+ uses: gradle/gradle-build-action@v2
with:
arguments: publish
diff --git a/.github/workflows/build-on-push.yml b/.github/workflows/build-on-push.yml
index 1f0f86dd92..3941f2f555 100644
--- a/.github/workflows/build-on-push.yml
+++ b/.github/workflows/build-on-push.yml
@@ -11,23 +11,15 @@ jobs:
GITHUB_ACTION_NUMBER: ${{ vars.GITHUB_RUN_NUMBER }}
GITHUB_RUN_NUMBER: ${{ vars.GITHUB_RUN_NUMBER }}
steps:
- - uses: actions/checkout@v3
+ - uses: actions/checkout@v4
with:
submodules: true
- - uses: actions/setup-java@v3
- with:
- java-version: '17'
- distribution: 'adopt'
-
- - name: Validate Gradle wrapper
- uses: gradle/wrapper-validation-action@v1
-
- - name: Grant execute permission for gradlew
- run: chmod +x gradlew
+ - name: Setup Build
+ uses: ./.github/actions/build_setup
- name: Build
- uses: gradle/gradle-build-action@v2.4.2
+ uses: gradle/gradle-build-action@v2
with:
arguments: build
diff --git a/.github/workflows/format-java.yml b/.github/workflows/format-java.yml
new file mode 100644
index 0000000000..e8d233df43
--- /dev/null
+++ b/.github/workflows/format-java.yml
@@ -0,0 +1,29 @@
+# Runs formatting requirements
+name: Java Formatting
+
+on:
+ push:
+ branches:
+ - master
+ paths: ['src/main/java/**', 'src/test/**']
+ pull_request:
+ paths: ['src/main/java/**', 'src/test/**']
+
+concurrency:
+ group: formatting-${{ github.head_ref || github.ref }}
+ cancel-in-progress: true
+
+jobs:
+ formatting:
+ name: Formatting
+ runs-on: ubuntu-latest
+
+ steps:
+ - name: Checkout Repository
+ uses: actions/checkout@v4
+
+ - name: Setup Build
+ uses: ./.github/actions/build_setup
+
+ - name: Run Spotless Formatting Check with Gradle
+ run: ./gradlew spotlessCheck --warning-mode all --build-cache
diff --git a/build.gradle b/build.gradle
index 77d4a1eef6..2caed50e94 100644
--- a/build.gradle
+++ b/build.gradle
@@ -6,6 +6,7 @@ plugins {
alias libs.plugins.vineFlower // VineFlower, a better decompiler
alias libs.plugins.machete // automatic jar compressing on build
alias libs.plugins.shadow
+ alias libs.plugins.spotless
}
apply plugin: "dev.architectury.loom"
@@ -37,6 +38,7 @@ apply from: "$rootDir/dependencies.gradle"
apply from: "$rootDir/gradle/scripts/resources.gradle"
apply from: "$rootDir/gradle/scripts/jars.gradle"
apply from: "$rootDir/gradle/scripts/publishing.gradle"
+apply from: "$rootDir/gradle/scripts/spotless.gradle"
tasks.withType(JavaCompile) {
options.encoding = "UTF-8"
diff --git a/dependencies.gradle b/dependencies.gradle
index 38ef5d2953..5a74ccf8d5 100644
--- a/dependencies.gradle
+++ b/dependencies.gradle
@@ -56,6 +56,7 @@ dependencies {
// AE2
modImplementation(forge.ae2) { transitive = false }
+ modCompileOnly("curse.maven:ae2wtlib-459929:5217955")
//AlmostUnified
modCompileOnly(forge.almostUnified.forge)
diff --git a/gradle/scripts/spotless.gradle b/gradle/scripts/spotless.gradle
new file mode 100644
index 0000000000..46cd4be631
--- /dev/null
+++ b/gradle/scripts/spotless.gradle
@@ -0,0 +1,26 @@
+// Spotless auto-formatter
+// See https://github.com/diffplug/spotless/tree/main/plugin-gradle
+// Can be locally toggled via spotless:off/spotless:on comments
+spotless {
+ encoding 'UTF-8'
+
+ format 'misc', {
+ target '.gitignore'
+
+ trimTrailingWhitespace()
+ indentWithSpaces(4)
+ endWithNewline()
+ }
+ java {
+ target 'src/main/java/**/*.java', 'src/test/java/**/*.java'
+
+ def orderFile = file("$rootDir/spotless/spotless.importorder")
+ def formatFile = file("$rootDir/spotless/spotless.eclipseformat.xml")
+
+ toggleOffOn()
+ importOrderFile(orderFile)
+ removeUnusedImports('cleanthat-javaparser-unnecessaryimport')
+ endWithNewline()
+ eclipse('4.31').configFile(formatFile)
+ }
+}
diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties
index 84a0b92f9a..48c0a02ca4 100644
--- a/gradle/wrapper/gradle-wrapper.properties
+++ b/gradle/wrapper/gradle-wrapper.properties
@@ -1,5 +1,5 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-8.2.1-bin.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-8.7-bin.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
diff --git a/settings.gradle b/settings.gradle
index 010da243b9..59708265d9 100644
--- a/settings.gradle
+++ b/settings.gradle
@@ -19,7 +19,7 @@ dependencyResolutionManagement {
// Mod Dependencies Versions
// Common
def jeiVersion = "15.2.0.27"
- def reiVersion = "12.0.684"
+ def reiVersion = "12.1.725"
def emiVersion = "1.0.30"
def ae2Version = "15.0.18"
def kjsVersion = "2001.6.4-build.120"
@@ -38,6 +38,7 @@ dependencyResolutionManagement {
def quiltMappingsVersion = "5" // https://lambdaurora.dev/tools/import_quilt.html
def parchmentVersion = "2023.09.03" // https://parchmentmc.org/docs/getting-started
def shadowVersion = "7.1.2"
+ def spotlessVersion = "6.25.0"
def architecturyPluginVersion = "3.4-SNAPSHOT"
def architecturyLoomVersion = "1.3-SNAPSHOT"
def vineFlowerVersion = "1.+"
@@ -115,6 +116,9 @@ dependencyResolutionManagement {
def shadow = version("shadow", shadowVersion)
plugin("shadow", "com.github.johnrengelman.shadow").versionRef(shadow)
+ def spotless = version("spotless", spotlessVersion)
+ plugin("spotless", "com.diffplug.spotless").versionRef(spotless)
+
def architecturyPlugin = version("architectury", architecturyPluginVersion)
plugin("architectury", "architectury-plugin").versionRef(architecturyPlugin)
diff --git a/spotless/spotless.eclipseformat.xml b/spotless/spotless.eclipseformat.xml
new file mode 100644
index 0000000000..8db01de429
--- /dev/null
+++ b/spotless/spotless.eclipseformat.xml
@@ -0,0 +1,400 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/spotless/spotless.importorder b/spotless/spotless.importorder
new file mode 100644
index 0000000000..b697a17962
--- /dev/null
+++ b/spotless/spotless.importorder
@@ -0,0 +1,9 @@
+#Organize Import Order
+#Sat May 27 02:13:47 CDT 2023
+0=com.gregtechceu
+1=com.lowdragmc
+1=net
+2=
+3=java
+4=javax
+5=\#
\ No newline at end of file
diff --git a/src/generated/resources/assets/gtceu/compass/nodes/generation/blackstone.json b/src/generated/resources/assets/gtceu/compass/nodes/generation/blackstone.json
new file mode 100644
index 0000000000..e7aaf5e64b
--- /dev/null
+++ b/src/generated/resources/assets/gtceu/compass/nodes/generation/blackstone.json
@@ -0,0 +1,127 @@
+{
+ "button_texture": {
+ "type": "item",
+ "res": "gtceu:blackstone_aluminium_ore"
+ },
+ "items": [
+ "gtceu:blackstone_aluminium_ore",
+ "gtceu:blackstone_beryllium_ore",
+ "gtceu:blackstone_cobalt_ore",
+ "gtceu:blackstone_copper_ore",
+ "gtceu:blackstone_gold_ore",
+ "gtceu:blackstone_iron_ore",
+ "gtceu:blackstone_lead_ore",
+ "gtceu:blackstone_lithium_ore",
+ "gtceu:blackstone_molybdenum_ore",
+ "gtceu:blackstone_neodymium_ore",
+ "gtceu:blackstone_nickel_ore",
+ "gtceu:blackstone_palladium_ore",
+ "gtceu:blackstone_platinum_ore",
+ "gtceu:blackstone_plutonium_ore",
+ "gtceu:blackstone_silver_ore",
+ "gtceu:blackstone_sulfur_ore",
+ "gtceu:blackstone_thorium_ore",
+ "gtceu:blackstone_tin_ore",
+ "gtceu:blackstone_naquadah_ore",
+ "gtceu:blackstone_almandine_ore",
+ "gtceu:blackstone_asbestos_ore",
+ "gtceu:blackstone_hematite_ore",
+ "gtceu:blackstone_blue_topaz_ore",
+ "gtceu:blackstone_goethite_ore",
+ "gtceu:blackstone_calcite_ore",
+ "gtceu:blackstone_cassiterite_ore",
+ "gtceu:blackstone_cassiterite_sand_ore",
+ "gtceu:blackstone_chalcopyrite_ore",
+ "gtceu:blackstone_chromite_ore",
+ "gtceu:blackstone_cinnabar_ore",
+ "gtceu:blackstone_coal_ore",
+ "gtceu:blackstone_cobaltite_ore",
+ "gtceu:blackstone_cooperite_ore",
+ "gtceu:blackstone_diamond_ore",
+ "gtceu:blackstone_emerald_ore",
+ "gtceu:blackstone_galena_ore",
+ "gtceu:blackstone_garnierite_ore",
+ "gtceu:blackstone_green_sapphire_ore",
+ "gtceu:blackstone_grossular_ore",
+ "gtceu:blackstone_ilmenite_ore",
+ "gtceu:blackstone_bauxite_ore",
+ "gtceu:blackstone_lazurite_ore",
+ "gtceu:blackstone_magnesite_ore",
+ "gtceu:blackstone_magnetite_ore",
+ "gtceu:blackstone_molybdenite_ore",
+ "gtceu:blackstone_powellite_ore",
+ "gtceu:blackstone_pyrite_ore",
+ "gtceu:blackstone_pyrolusite_ore",
+ "gtceu:blackstone_pyrope_ore",
+ "gtceu:blackstone_rock_salt_ore",
+ "gtceu:blackstone_ruby_ore",
+ "gtceu:blackstone_salt_ore",
+ "gtceu:blackstone_saltpeter_ore",
+ "gtceu:blackstone_sapphire_ore",
+ "gtceu:blackstone_scheelite_ore",
+ "gtceu:blackstone_sodalite_ore",
+ "gtceu:blackstone_tantalite_ore",
+ "gtceu:blackstone_spessartine_ore",
+ "gtceu:blackstone_sphalerite_ore",
+ "gtceu:blackstone_stibnite_ore",
+ "gtceu:blackstone_tetrahedrite_ore",
+ "gtceu:blackstone_topaz_ore",
+ "gtceu:blackstone_tungstate_ore",
+ "gtceu:blackstone_uraninite_ore",
+ "gtceu:blackstone_wulfenite_ore",
+ "gtceu:blackstone_yellow_limonite_ore",
+ "gtceu:blackstone_nether_quartz_ore",
+ "gtceu:blackstone_certus_quartz_ore",
+ "gtceu:blackstone_quartzite_ore",
+ "gtceu:blackstone_graphite_ore",
+ "gtceu:blackstone_bornite_ore",
+ "gtceu:blackstone_chalcocite_ore",
+ "gtceu:blackstone_realgar_ore",
+ "gtceu:blackstone_bastnasite_ore",
+ "gtceu:blackstone_pentlandite_ore",
+ "gtceu:blackstone_spodumene_ore",
+ "gtceu:blackstone_lepidolite_ore",
+ "gtceu:blackstone_glauconite_sand_ore",
+ "gtceu:blackstone_malachite_ore",
+ "gtceu:blackstone_mica_ore",
+ "gtceu:blackstone_barite_ore",
+ "gtceu:blackstone_alunite_ore",
+ "gtceu:blackstone_talc_ore",
+ "gtceu:blackstone_soapstone_ore",
+ "gtceu:blackstone_kyanite_ore",
+ "gtceu:blackstone_pyrochlore_ore",
+ "gtceu:blackstone_oilsands_ore",
+ "gtceu:blackstone_olivine_ore",
+ "gtceu:blackstone_opal_ore",
+ "gtceu:blackstone_amethyst_ore",
+ "gtceu:blackstone_lapis_ore",
+ "gtceu:blackstone_apatite_ore",
+ "gtceu:blackstone_tricalcium_phosphate_ore",
+ "gtceu:blackstone_red_garnet_ore",
+ "gtceu:blackstone_yellow_garnet_ore",
+ "gtceu:blackstone_vanadium_magnetite_ore",
+ "gtceu:blackstone_pollucite_ore",
+ "gtceu:blackstone_bentonite_ore",
+ "gtceu:blackstone_fullers_earth_ore",
+ "gtceu:blackstone_pitchblende_ore",
+ "gtceu:blackstone_monazite_ore",
+ "gtceu:blackstone_trona_ore",
+ "gtceu:blackstone_gypsum_ore",
+ "gtceu:blackstone_zeolite_ore",
+ "gtceu:blackstone_redstone_ore",
+ "gtceu:blackstone_electrotine_ore",
+ "gtceu:blackstone_diatomite_ore",
+ "gtceu:blackstone_granitic_mineral_sand_ore",
+ "gtceu:blackstone_garnet_sand_ore",
+ "gtceu:blackstone_basaltic_mineral_sand_ore"
+ ],
+ "page": "gtceu:generation/blackstone",
+ "position": [
+ -50,
+ 150
+ ],
+ "pre_nodes": [
+ "gtceu:generation/ore"
+ ],
+ "section": "gtceu:generation"
+}
\ No newline at end of file
diff --git a/src/generated/resources/assets/gtceu/compass/nodes/generation/endstone.json b/src/generated/resources/assets/gtceu/compass/nodes/generation/endstone.json
index ae8d8fec67..f3b450c854 100644
--- a/src/generated/resources/assets/gtceu/compass/nodes/generation/endstone.json
+++ b/src/generated/resources/assets/gtceu/compass/nodes/generation/endstone.json
@@ -117,8 +117,8 @@
],
"page": "gtceu:generation/endstone",
"position": [
- -50,
- 100
+ -250,
+ 200
],
"pre_nodes": [
"gtceu:generation/ore"
diff --git a/src/generated/resources/assets/gtceu/compass/nodes/misc/mold.json b/src/generated/resources/assets/gtceu/compass/nodes/misc/mold.json
index 8bcc191d5c..95deb56cd4 100644
--- a/src/generated/resources/assets/gtceu/compass/nodes/misc/mold.json
+++ b/src/generated/resources/assets/gtceu/compass/nodes/misc/mold.json
@@ -16,7 +16,8 @@
"gtceu:anvil_casting_mold",
"gtceu:name_casting_mold",
"gtceu:small_gear_casting_mold",
- "gtceu:rotor_casting_mold"
+ "gtceu:rotor_casting_mold",
+ "gtceu:pill_casting_mold"
],
"page": "gtceu:misc/mold",
"position": [
diff --git a/src/generated/resources/assets/gtceu/lang/en_ud.json b/src/generated/resources/assets/gtceu/lang/en_ud.json
index 027b85f1b6..95a1367291 100644
--- a/src/generated/resources/assets/gtceu/lang/en_ud.json
+++ b/src/generated/resources/assets/gtceu/lang/en_ud.json
@@ -239,6 +239,7 @@
"block.gtceu.ev_transformer_4a": "ɹǝɯɹoɟsuɐɹ⟘ )xㄣ( dɯⱯ-ıH ǝbɐʇןoΛ ǝɯǝɹʇxƎ",
"block.gtceu.ev_wiremill": "ɹ§III ןןıɯǝɹıM pǝɔuɐʌpⱯϛ§",
"block.gtceu.ev_world_accelerator": "ɹ§III ɹoʇɐɹǝןǝɔɔⱯ pןɹoM pǝɔuɐʌpⱯϛ§",
+ "block.gtceu.evaporation_plant": "ɹǝʍo⟘ uoıʇɐɹodɐʌƎ",
"block.gtceu.explosion_hazard_sign_block": "ʞɔoןᗺ ubıS pɹɐzɐH uoısoןdxƎ",
"block.gtceu.explosive.breaking_tooltip": "dn ʞɔɐq ʞɔıd oʇ ǝuıɯ ʞɐǝus 'pǝuıɯ uǝɥʍ uoısoןdxǝ sǝɯıɹԀ",
"block.gtceu.explosive.lighting_tooltip": "ǝuoʇspǝᴚ ɥʇıʍ ʇıן ǝq ʇouuɐƆ",
@@ -952,6 +953,7 @@
"block.gtceu.square_marble_bricks": "sʞɔıɹᗺ ǝןqɹɐW ǝɹɐnbS",
"block.gtceu.square_red_granite_bricks": "sʞɔıɹᗺ ǝʇıuɐɹ⅁ pǝᴚ ǝɹɐnbS",
"block.gtceu.stable_machine_casing": "buısɐƆ ǝuıɥɔɐW ɯnıuɐʇı⟘ ǝןqɐʇS",
+ "block.gtceu.stainless_evaporation_casing": "buısɐƆ uoıʇɐɹodɐʌƎ ssǝןuıɐʇS",
"block.gtceu.stainless_steel_crate": "ǝʇɐɹƆ ןǝǝʇS ssǝןuıɐʇS",
"block.gtceu.stainless_steel_drum": "ɯnɹᗡ ןǝǝʇS ssǝןuıɐʇS",
"block.gtceu.stainless_steel_gearbox": "buısɐƆ xoqɹɐǝ⅁ ןǝǝʇS ssǝןuıɐʇS",
@@ -1645,6 +1647,7 @@
"compass.node.gtceu.ev/large_miner": "ɹǝuıW ǝbɹɐꞀ",
"compass.node.gtceu.generation/andesite": "ǝʇısǝpuⱯ",
"compass.node.gtceu.generation/basalt": "ʇןɐsɐᗺ",
+ "compass.node.gtceu.generation/blackstone": "ǝuoʇsʞɔɐןᗺ",
"compass.node.gtceu.generation/deepslate": "ǝʇɐןsdǝǝᗡ",
"compass.node.gtceu.generation/diorite": "ǝʇıɹoıᗡ",
"compass.node.gtceu.generation/endstone": "ǝuoʇspuƎ",
@@ -2008,6 +2011,7 @@
"compass.section.gtceu.uv": "ǝbɐʇןoΛ Λ∩Ɛ§",
"compass.section.gtceu.zpm": "ǝbɐʇןoΛ WԀZɔ§",
"config.gtceu.option.addLoot": "ʇooꞀppɐ",
+ "config.gtceu.option.ae2": "ᄅǝɐ",
"config.gtceu.option.allUniqueStoneTypes": "sǝdʎ⟘ǝuoʇSǝnbıu∩ןןɐ",
"config.gtceu.option.animationTime": "ǝɯı⟘uoıʇɐɯıuɐ",
"config.gtceu.option.armorHud": "pnHɹoɯɹɐ",
@@ -2036,6 +2040,7 @@
"config.gtceu.option.enableTieredCasings": "sbuısɐƆpǝɹǝı⟘ǝןqɐuǝ",
"config.gtceu.option.enableWorldAccelerators": "sɹoʇɐɹǝןǝɔɔⱯpןɹoMǝןqɐuǝ",
"config.gtceu.option.energy": "ʎbɹǝuǝ",
+ "config.gtceu.option.energyConsumption": "uoıʇdɯnsuoƆʎbɹǝuǝ",
"config.gtceu.option.energyUsageMultiplier": "ɹǝıןdıʇןnWǝbɐs∩ʎbɹǝuǝ",
"config.gtceu.option.euToPlatformRatio": "oıʇɐᴚɯɹoɟʇɐןԀo⟘nǝ",
"config.gtceu.option.flintAndSteelRequireSteel": "ןǝǝʇSǝɹınbǝᴚןǝǝʇSpuⱯʇuıןɟ",
@@ -2059,6 +2064,7 @@
"config.gtceu.option.hazardsEnabled": "pǝןqɐuƎspɹɐzɐɥ",
"config.gtceu.option.hideFacadesInJEI": "IƎſuIsǝpɐɔɐℲǝpıɥ",
"config.gtceu.option.hideFilledCellsInJEI": "IƎſuIsןןǝƆpǝןןıℲǝpıɥ",
+ "config.gtceu.option.hideOreProcessingDiagrams": "sɯɐɹbɐıᗡbuıssǝɔoɹԀǝɹOǝpıɥ",
"config.gtceu.option.highTierContent": "ʇuǝʇuoƆɹǝı⟘ɥbıɥ",
"config.gtceu.option.hudLocation": "uoıʇɐɔoꞀpnɥ",
"config.gtceu.option.hudOffsetX": "XʇǝsɟɟOpnɥ",
@@ -2071,6 +2077,9 @@
"config.gtceu.option.machineSounds": "spunoSǝuıɥɔɐɯ",
"config.gtceu.option.machines": "sǝuıɥɔɐɯ",
"config.gtceu.option.machinesEmissiveTextures": "sǝɹnʇxǝ⟘ǝʌıssıɯƎsǝuıɥɔɐɯ",
+ "config.gtceu.option.nanoSaber": "ɹǝqɐSouɐu",
+ "config.gtceu.option.nanoSaberBaseDamage": "ǝbɐɯɐᗡǝsɐᗺɹǝqɐSouɐu",
+ "config.gtceu.option.nanoSaberDamageBoost": "ʇsooᗺǝbɐɯɐᗡɹǝqɐSouɐu",
"config.gtceu.option.nativeEUToPlatformNative": "ǝʌıʇɐNɯɹoɟʇɐןԀo⟘∩Ǝǝʌıʇɐu",
"config.gtceu.option.nerfPaperCrafting": "buıʇɟɐɹƆɹǝdɐԀɟɹǝu",
"config.gtceu.option.nerfWoodCrafting": "buıʇɟɐɹƆpooMɟɹǝu",
@@ -2099,9 +2108,18 @@
"config.gtceu.option.toolCraftingSounds": "spunoSbuıʇɟɐɹƆןooʇ",
"config.gtceu.option.toolUseSounds": "spunoSǝs∩ןooʇ",
"config.gtceu.option.tools": "sןooʇ",
+ "config.gtceu.option.universalHazards": "spɹɐzɐHןɐsɹǝʌıun",
"config.gtceu.option.useVBO": "OᗺΛǝsn",
+ "config.gtceu.option.voltageTierAdvImpeller": "ɹǝןןǝdɯIʌpⱯɹǝı⟘ǝbɐʇןoʌ",
+ "config.gtceu.option.voltageTierAdvNanoSuit": "ʇınSouɐNʌpⱯɹǝı⟘ǝbɐʇןoʌ",
+ "config.gtceu.option.voltageTierAdvQuarkTech": "ɥɔǝ⟘ʞɹɐnὉʌpⱯɹǝı⟘ǝbɐʇןoʌ",
+ "config.gtceu.option.voltageTierImpeller": "ɹǝןןǝdɯIɹǝı⟘ǝbɐʇןoʌ",
+ "config.gtceu.option.voltageTierNanoSuit": "ʇınSouɐNɹǝı⟘ǝbɐʇןoʌ",
+ "config.gtceu.option.voltageTierNightVision": "uoısıΛʇɥbıNɹǝı⟘ǝbɐʇןoʌ",
+ "config.gtceu.option.voltageTierQuarkTech": "ɥɔǝ⟘ʞɹɐnὉɹǝı⟘ǝbɐʇןoʌ",
"config.gtceu.option.worldAcceleratorBlacklist": "ʇsıןʞɔɐןᗺɹoʇɐɹǝןǝɔɔⱯpןɹoʍ",
"config.gtceu.option.worldgen": "uǝbpןɹoʍ",
+ "config.gtceu.option.zombieSpawnWithSabers": "sɹǝqɐSɥʇıMuʍɐdSǝıqɯoz",
"config.jade.plugin_gtceu.controllable_provider": "ǝןqɐןןoɹʇuoƆ ]nƎƆ⟘⅁[",
"config.jade.plugin_gtceu.electric_container_provider": "ɹǝuıɐʇuoƆ ɔıɹʇɔǝןƎ ]nƎƆ⟘⅁[",
"config.jade.plugin_gtceu.recipe_logic_provider": "ɔıboꞀ ǝdıɔǝᴚ ]nƎƆ⟘⅁[",
@@ -2307,6 +2325,7 @@
"death.attack.gtceu.wrench_hv": "%s ʎq pǝuǝsooן ǝɹǝʍ sǝdıd s,%s",
"death.attack.gtceu.wrench_iv": "%s ʎq suɐןd ɹıǝɥʇ oʇuı uʍoɹɥʇ ɥɔuǝɹM ʎǝʞuoW ɐ pɐɥ %s",
"death.attack.gtceu.wrench_lv": "%s ʎq pǝuǝsooן ǝɹǝʍ sǝdıd s,%s",
+ "effect.gtceu.weak_poison": "uosıoԀ ʞɐǝM",
"enchantment.damage.disjunction": "uoıʇɔunظsıᗡ",
"enchantment.disjunction": "uoıʇɔunظsıᗡ",
"enchantment.gtceu.disjunction.desc": "˙sqoɯ pǝʇɐןǝɹ-ɹǝpuƎ oʇ ssǝuʍoןS puɐ ssǝuʞɐǝM sǝıןddⱯ",
@@ -2406,6 +2425,7 @@
"gtceu.electric_furnace": "ǝɔɐuɹnℲ ɔıɹʇɔǝןƎ",
"gtceu.electrolyzer": "ɹǝzʎןoɹʇɔǝןƎ",
"gtceu.electromagnetic_separator": "ɹoʇɐɹɐdǝS ɔıʇǝubɐɯoɹʇɔǝןƎ",
+ "gtceu.evaporation": "uoıʇɐɹodɐʌƎ",
"gtceu.extractor": "ɹoʇɔɐɹʇxƎ",
"gtceu.extruder": "ɹǝpnɹʇxƎ",
"gtceu.fermenter": "ɹǝʇuǝɯɹǝℲ",
@@ -2526,11 +2546,16 @@
"gtceu.gui.title_bar.page_switcher": "sǝbɐԀ",
"gtceu.gui.toggle_view.disabled": ")spınןℲ( ʍǝıΛ ǝןbbo⟘",
"gtceu.gui.toggle_view.enabled": ")sɯǝʇI( ʍǝıΛ ǝןbbo⟘",
+ "gtceu.hazard.antidote.description": "sןıɐʇǝp ʍoɥs oʇ ʇɟıɥS pןoHㄥ§ ǝʇopıʇuⱯɐ§",
+ "gtceu.hazard.antidote.description.effect_removed": "sʇɔǝɟɟǝ ,sʇuǝɯןıɐ ʇuǝɹɹnɔ ɟo %s%% sǝʌoɯǝᴚ",
+ "gtceu.hazard.antidote.description.effect_removed.all": "sʇɔǝɟɟǝ ,sʇuǝɯןıɐ ʇuǝɹɹnɔ ɟo ןןɐ sǝʌoɯǝᴚ",
+ "gtceu.hazard.antidote.description_shift": ":sǝdʎʇ sǝɹnƆɐ§",
"gtceu.hazard.contact_poison": "uosıoԀ ʇɔɐʇuoƆϛ§",
"gtceu.hazard.corrosive": "ǝʌısoɹɹoƆ9§",
"gtceu.hazard.description": "sןıɐʇǝp ʍoɥs oʇ ʇɟıɥS pןoHㄥ§ S∩OᗡᴚⱯZⱯHɔ§ן§",
"gtceu.hazard.description_shift": ":S∩OᗡᴚⱯZⱯHɔ§ן§",
"gtceu.hazard.inhalation_poison": "pǝןɐɥuı uǝɥʍ snouosıoԀᄅ§",
+ "gtceu.hazard.none": "snoɹǝbuɐᗡ ʇoNᄅ§",
"gtceu.hazard.radioactive": "ǝʌıʇɔɐoıpɐᴚǝ§",
"gtceu.implosion_compressor": "ɹossǝɹdɯoƆ uoısoןdɯI",
"gtceu.io.both": "ɥʇoᗺ",
@@ -3499,6 +3524,7 @@
"gtceu.recipe.scan_for_research": "ǝuıꞀ ʎןqɯǝssⱯ ɹoɟ uɐɔS",
"gtceu.recipe.temperature": "ʞ%s :dɯǝ⟘",
"gtceu.recipe.total": "∩Ǝ %s :ןɐʇo⟘",
+ "gtceu.recipe.total_computation": "∩MƆ %s :uoıʇɐʇndɯoƆ",
"gtceu.recipe_logic.condition_fails": "sןıɐℲ uoıʇıpuoƆ",
"gtceu.recipe_logic.insufficient_fuel": "ןǝnℲ ʇuǝıɔıɟɟnsuI",
"gtceu.recipe_logic.insufficient_in": "sʇnduI ʇuǝıɔıɟɟnsuI",
@@ -3857,6 +3883,7 @@
"item.gtceu.exquisite_glass_gem": "ןɐʇsʎɹƆ ssɐן⅁ ǝʇısınbxƎ",
"item.gtceu.facade_cover": "ǝpɐɔɐℲ ɹǝʌoƆ %s",
"item.gtceu.facade_cover.tooltip": "˙ㄥ§ɹǝʌoƆɟ§ ʇıɟʇnO ǝʌıʇɐɹoɔǝᗡㄥ§",
+ "item.gtceu.face_mask": "ʞsɐW ǝɔɐℲ",
"item.gtceu.fertilizer": "ɹǝzıןıʇɹǝℲ",
"item.gtceu.fiber_reinforced_circuit_board": "pɹɐoᗺ ʇınɔɹıƆ pǝɔɹoɟuıǝᴚ-ɹǝqıℲ",
"item.gtceu.fiber_reinforced_circuit_board.tooltip": "pɹɐoᗺ ǝɯǝɹʇxƎ uⱯㄥ§",
@@ -4192,6 +4219,7 @@
"item.gtceu.osmium_credit.tooltip": "sʇıpǝɹƆ 960ㄣㄥ§",
"item.gtceu.palladium_raw_dust": "ɹǝpʍoԀ ɯnıpɐןןɐԀ ʍɐᴚ",
"item.gtceu.paper_dust": "pɐɥƆ",
+ "item.gtceu.paracetamol_pill": "ןןıԀ ןoɯɐʇǝɔɐɹɐԀ",
"item.gtceu.petri_dish": "ɥsıᗡ ıɹʇǝԀ",
"item.gtceu.petri_dish.tooltip": "sןןǝƆ buıʇɐʌıʇןnɔ ɹoℲㄥ§",
"item.gtceu.phenolic_circuit_board": "pɹɐoᗺ ʇınɔɹıƆ ɔıןouǝɥԀ",
@@ -4203,6 +4231,7 @@
"item.gtceu.phosphorus_wafer": "ɹǝɟɐM pǝdop-snɹoɥdsoɥԀ",
"item.gtceu.phosphorus_wafer.tooltip": "ʇınɔɹıƆ ʍɐᴚㄥ§",
"item.gtceu.pickaxe_extruder_mold.tooltip": "sǝxɐʞɔıԀ buıʞɐɯ ɹoɟ ǝdɐɥS ɹǝpnɹʇxƎㄥ§",
+ "item.gtceu.pill_casting_mold": ")ןןıԀ( pןoW buıʇsɐƆ",
"item.gtceu.pink_dye_spray_can": ")ʞuıԀ( uɐƆ ʎɐɹdS",
"item.gtceu.pink_glass_lens": ")ʞuıԀ( suǝꞀ ssɐן⅁",
"item.gtceu.pipe.huge_extruder_mold.tooltip": "sǝdıԀ ʞɔoןᗺ ןןnɟ buıʞɐɯ ɹoɟ ǝdɐɥS ɹǝpnɹʇxƎㄥ§",
@@ -4271,6 +4300,7 @@
"item.gtceu.quarktech_helmet": "ʇǝɯןǝH ǝʇınS ™ɥɔǝ⟘ʞɹɐnὉ",
"item.gtceu.quarktech_leggings": "sbuıbbǝꞀ ǝʇınS ™ɥɔǝ⟘ʞɹɐnὉ",
"item.gtceu.quartz_sand_dust": "puɐS zʇɹɐnὉ",
+ "item.gtceu.rad_away_pill": "ןןıԀ ™ʎɐʍⱯpɐᴚ",
"item.gtceu.ram_chip": "dıɥƆ WⱯᴚ",
"item.gtceu.ram_chip.tooltip": "ʎɹoɯǝW ssǝɔɔⱯ ɯopuɐᴚㄥ§",
"item.gtceu.ram_wafer": "ɹǝɟɐM WⱯᴚ",
@@ -4304,6 +4334,7 @@
"item.gtceu.rotor_casting_mold.tooltip": "sɹoʇoᴚ buıʞɐɯ ɹoɟ pןoWㄥ§",
"item.gtceu.rotor_extruder_mold": ")ɹoʇoᴚ( pןoW ɹǝpnɹʇxƎ",
"item.gtceu.rotor_extruder_mold.tooltip": "sɹoʇoᴚ buıʞɐɯ ɹoɟ ǝdɐɥS ɹǝpnɹʇxƎㄥ§",
+ "item.gtceu.rubber_gloves": "sǝʌoן⅁ ɹǝqqnᴚ",
"item.gtceu.salt_dust": "ʇןɐS",
"item.gtceu.saw_extruder_mold.tooltip": "sʍɐS buıʞɐɯ ɹoɟ ǝdɐɥS ɹǝpnɹʇxƎㄥ§",
"item.gtceu.shovel_extruder_mold.tooltip": "sןǝʌoɥS buıʞɐɯ ɹoɟ ǝdɐɥS ɹǝpnɹʇxƎㄥ§",
@@ -4650,7 +4681,10 @@
"ldlib.gui.editor.register.editor.gtceu.template_tab": "sǝʇɐןdɯǝʇ",
"mataarmor.hud.supply_mode": "%s :ǝpoW ʎןddnS",
"material.gtceu.acetic_acid": "pıɔⱯ ɔıʇǝɔⱯ",
+ "material.gtceu.acetic_anhydride": "ǝpıɹpʎɥuⱯ ɔıʇǝɔⱯ",
"material.gtceu.acetone": "ǝuoʇǝɔⱯ",
+ "material.gtceu.acidic_bromine_exhaust": "ʇsnɐɥxƎ ǝuıɯoɹᗺ ɔıpıɔⱯ",
+ "material.gtceu.acidic_bromine_solution": "uoıʇnןoS ǝuıɯoɹᗺ ɔıpıɔⱯ",
"material.gtceu.acidic_enriched_naquadah_solution": "uoıʇnןoS ɥɐpɐnbɐN pǝɥɔıɹuƎ ɔıpıɔⱯ",
"material.gtceu.acidic_naquadria_solution": "uoıʇnןoS ɐıɹpɐnbɐN ɔıpıɔⱯ",
"material.gtceu.acidic_osmium_solution": "uoıʇnןoS ɯnıɯsO ɔıpıɔⱯ",
@@ -4665,8 +4699,10 @@
"material.gtceu.alunite": "ǝʇıunןⱯ",
"material.gtceu.americium": "ɯnıɔıɹǝɯⱯ",
"material.gtceu.amethyst": "ʇsʎɥʇǝɯⱯ",
+ "material.gtceu.aminophenol": "ןouǝɥdouıɯⱯ",
"material.gtceu.ammonia": "ɐıuoɯɯⱯ",
"material.gtceu.ammonium_chloride": "ǝpıɹoןɥƆ ɯnıuoɯɯⱯ",
+ "material.gtceu.ammonium_formate": "ǝʇɐɯɹoℲ ɯnıuoɯɯⱯ",
"material.gtceu.andesite": "ǝʇısǝpuⱯ",
"material.gtceu.andradite": "ǝʇıpɐɹpuⱯ",
"material.gtceu.annealed_copper": "ɹǝddoƆ pǝןɐǝuuⱯ",
@@ -4718,6 +4754,7 @@
"material.gtceu.borosilicate_glass": "ssɐן⅁ ǝʇɐɔıןısoɹoᗺ",
"material.gtceu.brass": "ssɐɹᗺ",
"material.gtceu.brick": "ʞɔıɹᗺ",
+ "material.gtceu.brominated_chlorine_vapor": "ɹodɐΛ ǝuıɹoןɥƆ pǝʇɐuıɯoɹᗺ",
"material.gtceu.bromine": "ǝuıɯoɹᗺ",
"material.gtceu.bronze": "ǝzuoɹᗺ",
"material.gtceu.brown_dye": "ǝʎᗡ uʍoɹᗺ",
@@ -4729,7 +4766,10 @@
"material.gtceu.caesium": "ɯnısǝɐƆ",
"material.gtceu.calcite": "ǝʇıɔןɐƆ",
"material.gtceu.calcium": "ɯnıɔןɐƆ",
+ "material.gtceu.calcium_carbonate": "ǝʇɐuoqɹɐƆ ɯnıɔןɐƆ",
"material.gtceu.calcium_chloride": "ǝpıɹoןɥƆ ɯnıɔןɐƆ",
+ "material.gtceu.calcium_ferrocyanide": "ǝpıuɐʎɔoɹɹǝℲ ɯnıɔןɐƆ",
+ "material.gtceu.calcium_hydroxide": "ǝpıxoɹpʎH ɯnıɔןɐƆ",
"material.gtceu.calcium_phosphide": "ǝpıɥdsoɥԀ ɯnıɔןɐƆ",
"material.gtceu.californium": "ɯnıuɹoɟıןɐƆ",
"material.gtceu.caprolactam": "ɯɐʇɔɐןoɹdɐƆ",
@@ -4764,6 +4804,7 @@
"material.gtceu.cocoa": "ɐoɔoƆ",
"material.gtceu.coke": "ǝʞoƆ",
"material.gtceu.collagen": "uǝbɐןןoƆ",
+ "material.gtceu.concentrated_bromine_solution": "uoıʇnןoS ǝuıɯoɹᗺ pǝʇɐɹʇuǝɔuoƆ",
"material.gtceu.concrete": "ǝʇǝɹɔuoƆ",
"material.gtceu.construction_foam": "ɯɐoℲ uoıʇɔnɹʇsuoƆ",
"material.gtceu.cooperite": "ǝʇıuopןǝɥS",
@@ -4780,6 +4821,7 @@
"material.gtceu.damascus_steel": "ןǝǝʇS snɔsɐɯɐᗡ",
"material.gtceu.dark_ash": "ɥsⱯ ʞɹɐᗡ",
"material.gtceu.darmstadtium": "ɯnıʇpɐʇsɯɹɐᗡ",
+ "material.gtceu.debrominated_brine": "ǝuıɹᗺ pǝʇɐuıɯoɹqǝᗡ",
"material.gtceu.deepslate": "ǝʇɐןsdǝǝᗡ",
"material.gtceu.depleted_uranium_hexafluoride": "ǝpıɹonןɟɐxǝH ɯnıuɐɹ∩ pǝʇǝןdǝᗡ",
"material.gtceu.deuterium": "ɯnıɹǝʇnǝᗡ",
@@ -4788,7 +4830,12 @@
"material.gtceu.diatomite": "ǝʇıɯoʇɐıᗡ",
"material.gtceu.dichlorobenzene": "ǝuǝzuǝqoɹoןɥɔıᗡ",
"material.gtceu.dichlorobenzidine": "ǝuıpızuǝqoɹoןɥɔıᗡ",
+ "material.gtceu.dichloroethane": "ǝuɐɥʇǝoɹoןɥɔıᗡ",
"material.gtceu.diesel": "ןǝsǝıᗡ",
+ "material.gtceu.diethylenetriamine": "ǝuıɯɐıɹʇǝuǝןʎɥʇǝıᗡ",
+ "material.gtceu.diethylenetriamine_pentaacetonitrile": "ǝןıɹʇıuoʇǝɔɐɐʇuǝԀ ǝuıɯɐıɹʇǝuǝןʎɥʇǝıᗡ",
+ "material.gtceu.diethylenetriaminepentaacetic_acid": "pıɔⱯ ɔıʇǝɔɐɐʇuǝdǝuıɯɐıɹʇǝuǝןʎɥʇǝıᗡ",
+ "material.gtceu.dilute_iodine_solution": "uoıʇnןoS ǝuıpoI ǝʇnןıᗡ",
"material.gtceu.diluted_hydrochloric_acid": "pıɔⱯ ɔıɹoןɥɔoɹpʎH pǝʇnןıᗡ",
"material.gtceu.diluted_sulfuric_acid": "pıɔⱯ ɔıɹnɟןnS pǝʇnןıᗡ",
"material.gtceu.dimethylamine": "ǝuıɯɐןʎɥʇǝɯıᗡ",
@@ -4839,6 +4886,9 @@
"material.gtceu.flint": "ʇuıןℲ",
"material.gtceu.fluorine": "ǝuıɹonןℲ",
"material.gtceu.fluoroantimonic_acid": "pıɔⱯ ɔıuoɯıʇuɐoɹonןℲ",
+ "material.gtceu.formaldehyde": "ǝpʎɥǝpןɐɯɹoℲ",
+ "material.gtceu.formamide": "ǝpıɯɐɯɹoℲ",
+ "material.gtceu.formic_acid": "pıɔⱯ ɔıɯɹoℲ",
"material.gtceu.francium": "ɯnıɔuɐɹℲ",
"material.gtceu.fullers_earth": "ɥʇɹɐƎ s,ɹǝןןnℲ",
"material.gtceu.gadolinium": "ɯnıuıןopɐ⅁",
@@ -4858,6 +4908,7 @@
"material.gtceu.glue": "ǝnן⅁",
"material.gtceu.glycerol": "ןoɹǝɔʎן⅁",
"material.gtceu.glyceryl_trinitrate": "ǝʇɐɹʇıuıɹ⟘ ןʎɹǝɔʎן⅁",
+ "material.gtceu.glycolonitrile": "ǝןıɹʇıuoןoɔʎן⅁",
"material.gtceu.goethite": "ǝʇıɥʇǝo⅁",
"material.gtceu.gold": "pןo⅁",
"material.gtceu.granite": "ǝʇıuɐɹ⅁",
@@ -4882,6 +4933,10 @@
"material.gtceu.hematite": "ǝʇıʇɐɯǝH",
"material.gtceu.high_octane_gasoline": "ǝuıןosɐ⅁ ǝuɐʇɔO ɥbıH",
"material.gtceu.holmium": "ɯnıɯןoH",
+ "material.gtceu.hot_alkaline_debrominated_brine": "ǝuıɹᗺ pǝʇɐuıɯoɹqǝᗡ ǝuıןɐʞןⱯ ʇoH",
+ "material.gtceu.hot_brine": "ǝuıɹᗺ ʇoH",
+ "material.gtceu.hot_chlorinated_brominated_brine": "ǝuıɹᗺ pǝʇɐuıɯoɹᗺ pǝʇɐuıɹoןɥƆ ʇoH",
+ "material.gtceu.hot_debrominated_brine": "ǝuıɹᗺ pǝʇɐuıɯoɹqǝᗡ ʇoH",
"material.gtceu.hsla_steel": "ןǝǝʇS ɐןsH",
"material.gtceu.hsse": "Ǝ-SSH",
"material.gtceu.hssg": "⅁-SSH",
@@ -4896,6 +4951,7 @@
"material.gtceu.hydrochloric_acid": "pıɔⱯ ɔıɹoןɥɔoɹpʎH",
"material.gtceu.hydrofluoric_acid": "pıɔⱯ ɔıɹonןɟoɹpʎH",
"material.gtceu.hydrogen": "uǝboɹpʎH",
+ "material.gtceu.hydrogen_cyanide": "ǝpıuɐʎƆ uǝboɹpʎH",
"material.gtceu.hydrogen_sulfide": "ǝpıɟןnS uǝboɹpʎH",
"material.gtceu.hypochlorous_acid": "pıɔⱯ snoɹoןɥɔodʎH",
"material.gtceu.ice": "ǝɔI",
@@ -4910,11 +4966,14 @@
"material.gtceu.indium_tin_barium_titanium_cuprate": "ǝʇɐɹdnƆ ɯnıuɐʇı⟘ ɯnıɹɐᗺ uı⟘ ɯnıpuI",
"material.gtceu.inert_metal_mixture": "ǝɹnʇxıW ןɐʇǝW ʇɹǝuI",
"material.gtceu.invar": "ɹɐʌuI",
+ "material.gtceu.iodide": "ǝpıpoI",
"material.gtceu.iodine": "ǝuıpoI",
+ "material.gtceu.iodine_solution": "uoıʇnןoS ǝuıpoI",
"material.gtceu.iridium": "ɯnıpıɹI",
"material.gtceu.iridium_chloride": "ǝpıɹoןɥƆ ɯnıpıɹI",
"material.gtceu.iridium_metal_residue": "ǝnpısǝᴚ ןɐʇǝW ɯnıpıɹI",
"material.gtceu.iron": "uoɹI",
+ "material.gtceu.iron_ii_chloride": "ǝpıɹoןɥƆ II uoɹI",
"material.gtceu.iron_iii_chloride": "ǝpıɹoןɥƆ III uoɹI",
"material.gtceu.isoprene": "ǝuǝɹdosI",
"material.gtceu.kanthal": "ןɐɥʇuɐʞ",
@@ -5040,6 +5099,7 @@
"material.gtceu.palladium": "ɯnıpɐןןɐԀ",
"material.gtceu.palladium_raw": "ʍɐᴚ ɯnıpɐןןɐԀ",
"material.gtceu.paper": "ɹǝdɐԀ",
+ "material.gtceu.paracetamol": "ןoɯɐʇǝɔɐɹɐԀ",
"material.gtceu.pcb_coolant": "ʇuɐןooƆ ᗺƆԀ",
"material.gtceu.pentlandite": "ǝʇıpuɐןʇuǝԀ",
"material.gtceu.perlite": "ǝʇıןɹǝԀ",
@@ -5071,8 +5131,14 @@
"material.gtceu.polyvinyl_chloride": "ǝpıɹoןɥƆ ןʎuıʌʎןoԀ",
"material.gtceu.potash": "ɥsɐʇoԀ",
"material.gtceu.potassium": "ɯnıssɐʇoԀ",
+ "material.gtceu.potassium_carbonate": "ǝʇɐuoqɹɐƆ ɯnıssɐʇoԀ",
+ "material.gtceu.potassium_cyanide": "ǝpıuɐʎƆ ɯnıssɐʇoԀ",
"material.gtceu.potassium_dichromate": "ǝʇɐɯoɹɥɔıᗡ ɯnıssɐʇoԀ",
"material.gtceu.potassium_feldspar": "ɹɐdspןǝℲ ɯnıssɐʇoԀ",
+ "material.gtceu.potassium_ferrocyanide": "ǝpıuɐʎɔoɹɹǝℲ ɯnıssɐʇoԀ",
+ "material.gtceu.potassium_hydroxide": "ǝpıxoɹpʎH ɯnıssɐʇoԀ",
+ "material.gtceu.potassium_iodide": "ǝpıpoI ɯnıssɐʇoԀ",
+ "material.gtceu.potassium_sulfate": "ǝʇɐɟןnS ɯnıssɐʇoԀ",
"material.gtceu.potin": "uıʇoԀ",
"material.gtceu.powellite": "ǝʇıןןǝʍoԀ",
"material.gtceu.praseodymium": "ɯnıɯʎpoǝsɐɹԀ",
@@ -5080,6 +5146,7 @@
"material.gtceu.propane": "ǝuɐdoɹԀ",
"material.gtceu.propene": "ǝuǝdoɹԀ",
"material.gtceu.protactinium": "ɯnıuıʇɔɐʇoɹԀ",
+ "material.gtceu.prussian_blue": "ǝnןᗺ uɐıssnɹԀ",
"material.gtceu.purple_dye": "ǝʎᗡ ǝןdɹnԀ",
"material.gtceu.pyrite": "ǝʇıɹʎԀ",
"material.gtceu.pyrochlore": "ǝɹoןɥɔoɹʎԀ",
@@ -5088,10 +5155,12 @@
"material.gtceu.quartz_sand": "puɐS zʇɹɐnὉ",
"material.gtceu.quartzite": "ǝʇızʇɹɐnὉ",
"material.gtceu.quicklime": "ǝɯıןʞɔınὉ",
+ "material.gtceu.rad_away": "ʎɐʍⱯ pɐᴚ",
"material.gtceu.radium": "ɯnıpɐᴚ",
"material.gtceu.radon": "uopɐᴚ",
"material.gtceu.rare_earth": "ɥʇɹɐƎ ǝɹɐᴚ",
"material.gtceu.rarest_metal_mixture": "ǝɹnʇxıW ןɐʇǝW ʇsǝɹɐᴚ",
+ "material.gtceu.raw_brine": "ǝuıɹᗺ ʍɐᴚ",
"material.gtceu.raw_gasoline": "ǝuıןosɐ⅁ ʍɐᴚ",
"material.gtceu.raw_growth_medium": "ɯnıpǝW ɥʇʍoɹ⅁ ʍɐᴚ",
"material.gtceu.raw_rubber": "ɹǝqqnᴚ ʍɐᴚ",
@@ -5155,6 +5224,7 @@
"material.gtceu.sodium_bicarbonate": "ǝʇɐuoqɹɐɔıᗺ ɯnıpoS",
"material.gtceu.sodium_bisulfate": "ǝʇɐɟןnsıᗺ ɯnıpoS",
"material.gtceu.sodium_hydroxide": "ǝpıxoɹpʎH ɯnıpoS",
+ "material.gtceu.sodium_nitrite": "ǝʇıɹʇıN ɯnıpoS",
"material.gtceu.sodium_persulfate": "ǝʇɐɟןnsɹǝԀ ɯnıpoS",
"material.gtceu.sodium_potassium": "ɯnıssɐʇoԀ ɯnıpoS",
"material.gtceu.sodium_sulfide": "ǝpıɟןnS ɯnıpoS",
@@ -5370,6 +5440,7 @@
"recipe.condition.thunder.tooltip": "%d :ןǝʌǝꞀ ɹǝpunɥ⟘",
"tagprefix.andesite": "ǝɹO %s ǝʇısǝpuⱯ",
"tagprefix.basalt": "ǝɹO %s ʇןɐsɐᗺ",
+ "tagprefix.blackstone": "ǝɹO %s ǝuoʇsʞɔɐןᗺ",
"tagprefix.block": "%s ɟo ʞɔoןᗺ",
"tagprefix.bolt": "ʇןoᗺ %s",
"tagprefix.buzz_saw_blade": "ǝpɐןᗺ ʍɐszznᗺ %s",
diff --git a/src/generated/resources/assets/gtceu/lang/en_us.json b/src/generated/resources/assets/gtceu/lang/en_us.json
index 4913feaaee..3be48efe2d 100644
--- a/src/generated/resources/assets/gtceu/lang/en_us.json
+++ b/src/generated/resources/assets/gtceu/lang/en_us.json
@@ -239,6 +239,7 @@
"block.gtceu.ev_transformer_4a": "Extreme Voltage Hi-Amp (4x) Transformer",
"block.gtceu.ev_wiremill": "§5Advanced Wiremill III§r",
"block.gtceu.ev_world_accelerator": "§5Advanced World Accelerator III§r",
+ "block.gtceu.evaporation_plant": "Evaporation Tower",
"block.gtceu.explosion_hazard_sign_block": "Explosion Hazard Sign Block",
"block.gtceu.explosive.breaking_tooltip": "Primes explosion when mined, sneak mine to pick back up",
"block.gtceu.explosive.lighting_tooltip": "Cannot be lit with Redstone",
@@ -952,6 +953,7 @@
"block.gtceu.square_marble_bricks": "Square Marble Bricks",
"block.gtceu.square_red_granite_bricks": "Square Red Granite Bricks",
"block.gtceu.stable_machine_casing": "Stable Titanium Machine Casing",
+ "block.gtceu.stainless_evaporation_casing": "Stainless Evaporation Casing",
"block.gtceu.stainless_steel_crate": "Stainless Steel Crate",
"block.gtceu.stainless_steel_drum": "Stainless Steel Drum",
"block.gtceu.stainless_steel_gearbox": "Stainless Steel Gearbox Casing",
@@ -1645,6 +1647,7 @@
"compass.node.gtceu.ev/large_miner": "Large Miner",
"compass.node.gtceu.generation/andesite": "Andesite",
"compass.node.gtceu.generation/basalt": "Basalt",
+ "compass.node.gtceu.generation/blackstone": "Blackstone",
"compass.node.gtceu.generation/deepslate": "Deepslate",
"compass.node.gtceu.generation/diorite": "Diorite",
"compass.node.gtceu.generation/endstone": "Endstone",
@@ -2008,6 +2011,7 @@
"compass.section.gtceu.uv": "§3UV Voltage",
"compass.section.gtceu.zpm": "§cZPM Voltage",
"config.gtceu.option.addLoot": "addLoot",
+ "config.gtceu.option.ae2": "ae2",
"config.gtceu.option.allUniqueStoneTypes": "allUniqueStoneTypes",
"config.gtceu.option.animationTime": "animationTime",
"config.gtceu.option.armorHud": "armorHud",
@@ -2036,6 +2040,7 @@
"config.gtceu.option.enableTieredCasings": "enableTieredCasings",
"config.gtceu.option.enableWorldAccelerators": "enableWorldAccelerators",
"config.gtceu.option.energy": "energy",
+ "config.gtceu.option.energyConsumption": "energyConsumption",
"config.gtceu.option.energyUsageMultiplier": "energyUsageMultiplier",
"config.gtceu.option.euToPlatformRatio": "euToPlatformRatio",
"config.gtceu.option.flintAndSteelRequireSteel": "flintAndSteelRequireSteel",
@@ -2059,6 +2064,7 @@
"config.gtceu.option.hazardsEnabled": "hazardsEnabled",
"config.gtceu.option.hideFacadesInJEI": "hideFacadesInJEI",
"config.gtceu.option.hideFilledCellsInJEI": "hideFilledCellsInJEI",
+ "config.gtceu.option.hideOreProcessingDiagrams": "hideOreProcessingDiagrams",
"config.gtceu.option.highTierContent": "highTierContent",
"config.gtceu.option.hudLocation": "hudLocation",
"config.gtceu.option.hudOffsetX": "hudOffsetX",
@@ -2071,6 +2077,9 @@
"config.gtceu.option.machineSounds": "machineSounds",
"config.gtceu.option.machines": "machines",
"config.gtceu.option.machinesEmissiveTextures": "machinesEmissiveTextures",
+ "config.gtceu.option.nanoSaber": "nanoSaber",
+ "config.gtceu.option.nanoSaberBaseDamage": "nanoSaberBaseDamage",
+ "config.gtceu.option.nanoSaberDamageBoost": "nanoSaberDamageBoost",
"config.gtceu.option.nativeEUToPlatformNative": "nativeEUToPlatformNative",
"config.gtceu.option.nerfPaperCrafting": "nerfPaperCrafting",
"config.gtceu.option.nerfWoodCrafting": "nerfWoodCrafting",
@@ -2099,9 +2108,18 @@
"config.gtceu.option.toolCraftingSounds": "toolCraftingSounds",
"config.gtceu.option.toolUseSounds": "toolUseSounds",
"config.gtceu.option.tools": "tools",
+ "config.gtceu.option.universalHazards": "universalHazards",
"config.gtceu.option.useVBO": "useVBO",
+ "config.gtceu.option.voltageTierAdvImpeller": "voltageTierAdvImpeller",
+ "config.gtceu.option.voltageTierAdvNanoSuit": "voltageTierAdvNanoSuit",
+ "config.gtceu.option.voltageTierAdvQuarkTech": "voltageTierAdvQuarkTech",
+ "config.gtceu.option.voltageTierImpeller": "voltageTierImpeller",
+ "config.gtceu.option.voltageTierNanoSuit": "voltageTierNanoSuit",
+ "config.gtceu.option.voltageTierNightVision": "voltageTierNightVision",
+ "config.gtceu.option.voltageTierQuarkTech": "voltageTierQuarkTech",
"config.gtceu.option.worldAcceleratorBlacklist": "worldAcceleratorBlacklist",
"config.gtceu.option.worldgen": "worldgen",
+ "config.gtceu.option.zombieSpawnWithSabers": "zombieSpawnWithSabers",
"config.jade.plugin_gtceu.controllable_provider": "[GTCEu] Controllable",
"config.jade.plugin_gtceu.electric_container_provider": "[GTCEu] Electric Container",
"config.jade.plugin_gtceu.recipe_logic_provider": "[GTCEu] Recipe Logic",
@@ -2307,6 +2325,7 @@
"death.attack.gtceu.wrench_hv": "%s's pipes were loosened by %s",
"death.attack.gtceu.wrench_iv": "%s had a Monkey Wrench thrown into their plans by %s",
"death.attack.gtceu.wrench_lv": "%s's pipes were loosened by %s",
+ "effect.gtceu.weak_poison": "Weak Poison",
"enchantment.damage.disjunction": "Disjunction",
"enchantment.disjunction": "Disjunction",
"enchantment.gtceu.disjunction.desc": "Applies Weakness and Slowness to Ender-related mobs.",
@@ -2406,6 +2425,7 @@
"gtceu.electric_furnace": "Electric Furnace",
"gtceu.electrolyzer": "Electrolyzer",
"gtceu.electromagnetic_separator": "Electromagnetic Separator",
+ "gtceu.evaporation": "Evaporation",
"gtceu.extractor": "Extractor",
"gtceu.extruder": "Extruder",
"gtceu.fermenter": "Fermenter",
@@ -2526,11 +2546,16 @@
"gtceu.gui.title_bar.page_switcher": "Pages",
"gtceu.gui.toggle_view.disabled": "Toggle View (Fluids)",
"gtceu.gui.toggle_view.enabled": "Toggle View (Items)",
+ "gtceu.hazard.antidote.description": "§aAntidote §7Hold Shift to show details",
+ "gtceu.hazard.antidote.description.effect_removed": "Removes %s%% of current ailments' effects",
+ "gtceu.hazard.antidote.description.effect_removed.all": "Removes all of current ailments' effects",
+ "gtceu.hazard.antidote.description_shift": "§aCures types:",
"gtceu.hazard.contact_poison": "§5Contact Poison",
"gtceu.hazard.corrosive": "§6Corrosive",
"gtceu.hazard.description": "§l§cHAZARDOUS §7Hold Shift to show details",
"gtceu.hazard.description_shift": "§l§cHAZARDOUS:",
"gtceu.hazard.inhalation_poison": "§2Poisonous when inhaled",
+ "gtceu.hazard.none": "§2Not Dangerous",
"gtceu.hazard.radioactive": "§eRadioactive",
"gtceu.implosion_compressor": "Implosion Compressor",
"gtceu.io.both": "Both",
@@ -3499,6 +3524,7 @@
"gtceu.recipe.scan_for_research": "Scan for Assembly Line",
"gtceu.recipe.temperature": "Temp: %sK",
"gtceu.recipe.total": "Total: %s EU",
+ "gtceu.recipe.total_computation": "Computation: %s CWU",
"gtceu.recipe_logic.condition_fails": "Condition Fails",
"gtceu.recipe_logic.insufficient_fuel": "Insufficient Fuel",
"gtceu.recipe_logic.insufficient_in": "Insufficient Inputs",
@@ -3857,6 +3883,7 @@
"item.gtceu.exquisite_glass_gem": "Exquisite Glass Crystal",
"item.gtceu.facade_cover": "%s Cover Facade",
"item.gtceu.facade_cover.tooltip": "§7Decorative Outfit §fCover§7.",
+ "item.gtceu.face_mask": "Face Mask",
"item.gtceu.fertilizer": "Fertilizer",
"item.gtceu.fiber_reinforced_circuit_board": "Fiber-Reinforced Circuit Board",
"item.gtceu.fiber_reinforced_circuit_board.tooltip": "§7An Extreme Board",
@@ -4192,6 +4219,7 @@
"item.gtceu.osmium_credit.tooltip": "§74096 Credits",
"item.gtceu.palladium_raw_dust": "Raw Palladium Powder",
"item.gtceu.paper_dust": "Chad",
+ "item.gtceu.paracetamol_pill": "Paracetamol Pill",
"item.gtceu.petri_dish": "Petri Dish",
"item.gtceu.petri_dish.tooltip": "§7For cultivating Cells",
"item.gtceu.phenolic_circuit_board": "Phenolic Circuit Board",
@@ -4203,6 +4231,7 @@
"item.gtceu.phosphorus_wafer": "Phosphorus-doped Wafer",
"item.gtceu.phosphorus_wafer.tooltip": "§7Raw Circuit",
"item.gtceu.pickaxe_extruder_mold.tooltip": "§7Extruder Shape for making Pickaxes",
+ "item.gtceu.pill_casting_mold": "Casting Mold (Pill)",
"item.gtceu.pink_dye_spray_can": "Spray Can (Pink)",
"item.gtceu.pink_glass_lens": "Glass Lens (Pink)",
"item.gtceu.pipe.huge_extruder_mold.tooltip": "§7Extruder Shape for making full Block Pipes",
@@ -4271,6 +4300,7 @@
"item.gtceu.quarktech_helmet": "QuarkTech™ Suite Helmet",
"item.gtceu.quarktech_leggings": "QuarkTech™ Suite Leggings",
"item.gtceu.quartz_sand_dust": "Quartz Sand",
+ "item.gtceu.rad_away_pill": "RadAway™ Pill",
"item.gtceu.ram_chip": "RAM Chip",
"item.gtceu.ram_chip.tooltip": "§7Random Access Memory",
"item.gtceu.ram_wafer": "RAM Wafer",
@@ -4304,6 +4334,7 @@
"item.gtceu.rotor_casting_mold.tooltip": "§7Mold for making Rotors",
"item.gtceu.rotor_extruder_mold": "Extruder Mold (Rotor)",
"item.gtceu.rotor_extruder_mold.tooltip": "§7Extruder Shape for making Rotors",
+ "item.gtceu.rubber_gloves": "Rubber Gloves",
"item.gtceu.salt_dust": "Salt",
"item.gtceu.saw_extruder_mold.tooltip": "§7Extruder Shape for making Saws",
"item.gtceu.shovel_extruder_mold.tooltip": "§7Extruder Shape for making Shovels",
@@ -4650,7 +4681,10 @@
"ldlib.gui.editor.register.editor.gtceu.template_tab": "templates",
"mataarmor.hud.supply_mode": "Supply Mode: %s",
"material.gtceu.acetic_acid": "Acetic Acid",
+ "material.gtceu.acetic_anhydride": "Acetic Anhydride",
"material.gtceu.acetone": "Acetone",
+ "material.gtceu.acidic_bromine_exhaust": "Acidic Bromine Exhaust",
+ "material.gtceu.acidic_bromine_solution": "Acidic Bromine Solution",
"material.gtceu.acidic_enriched_naquadah_solution": "Acidic Enriched Naquadah Solution",
"material.gtceu.acidic_naquadria_solution": "Acidic Naquadria Solution",
"material.gtceu.acidic_osmium_solution": "Acidic Osmium Solution",
@@ -4665,8 +4699,10 @@
"material.gtceu.alunite": "Alunite",
"material.gtceu.americium": "Americium",
"material.gtceu.amethyst": "Amethyst",
+ "material.gtceu.aminophenol": "Aminophenol",
"material.gtceu.ammonia": "Ammonia",
"material.gtceu.ammonium_chloride": "Ammonium Chloride",
+ "material.gtceu.ammonium_formate": "Ammonium Formate",
"material.gtceu.andesite": "Andesite",
"material.gtceu.andradite": "Andradite",
"material.gtceu.annealed_copper": "Annealed Copper",
@@ -4718,6 +4754,7 @@
"material.gtceu.borosilicate_glass": "Borosilicate Glass",
"material.gtceu.brass": "Brass",
"material.gtceu.brick": "Brick",
+ "material.gtceu.brominated_chlorine_vapor": "Brominated Chlorine Vapor",
"material.gtceu.bromine": "Bromine",
"material.gtceu.bronze": "Bronze",
"material.gtceu.brown_dye": "Brown Dye",
@@ -4729,7 +4766,10 @@
"material.gtceu.caesium": "Caesium",
"material.gtceu.calcite": "Calcite",
"material.gtceu.calcium": "Calcium",
+ "material.gtceu.calcium_carbonate": "Calcium Carbonate",
"material.gtceu.calcium_chloride": "Calcium Chloride",
+ "material.gtceu.calcium_ferrocyanide": "Calcium Ferrocyanide",
+ "material.gtceu.calcium_hydroxide": "Calcium Hydroxide",
"material.gtceu.calcium_phosphide": "Calcium Phosphide",
"material.gtceu.californium": "Californium",
"material.gtceu.caprolactam": "Caprolactam",
@@ -4764,6 +4804,7 @@
"material.gtceu.cocoa": "Cocoa",
"material.gtceu.coke": "Coke",
"material.gtceu.collagen": "Collagen",
+ "material.gtceu.concentrated_bromine_solution": "Concentrated Bromine Solution",
"material.gtceu.concrete": "Concrete",
"material.gtceu.construction_foam": "Construction Foam",
"material.gtceu.cooperite": "Sheldonite",
@@ -4780,6 +4821,7 @@
"material.gtceu.damascus_steel": "Damascus Steel",
"material.gtceu.dark_ash": "Dark Ash",
"material.gtceu.darmstadtium": "Darmstadtium",
+ "material.gtceu.debrominated_brine": "Debrominated Brine",
"material.gtceu.deepslate": "Deepslate",
"material.gtceu.depleted_uranium_hexafluoride": "Depleted Uranium Hexafluoride",
"material.gtceu.deuterium": "Deuterium",
@@ -4788,7 +4830,12 @@
"material.gtceu.diatomite": "Diatomite",
"material.gtceu.dichlorobenzene": "Dichlorobenzene",
"material.gtceu.dichlorobenzidine": "Dichlorobenzidine",
+ "material.gtceu.dichloroethane": "Dichloroethane",
"material.gtceu.diesel": "Diesel",
+ "material.gtceu.diethylenetriamine": "Diethylenetriamine",
+ "material.gtceu.diethylenetriamine_pentaacetonitrile": "Diethylenetriamine Pentaacetonitrile",
+ "material.gtceu.diethylenetriaminepentaacetic_acid": "Diethylenetriaminepentaacetic Acid",
+ "material.gtceu.dilute_iodine_solution": "Dilute Iodine Solution",
"material.gtceu.diluted_hydrochloric_acid": "Diluted Hydrochloric Acid",
"material.gtceu.diluted_sulfuric_acid": "Diluted Sulfuric Acid",
"material.gtceu.dimethylamine": "Dimethylamine",
@@ -4839,6 +4886,9 @@
"material.gtceu.flint": "Flint",
"material.gtceu.fluorine": "Fluorine",
"material.gtceu.fluoroantimonic_acid": "Fluoroantimonic Acid",
+ "material.gtceu.formaldehyde": "Formaldehyde",
+ "material.gtceu.formamide": "Formamide",
+ "material.gtceu.formic_acid": "Formic Acid",
"material.gtceu.francium": "Francium",
"material.gtceu.fullers_earth": "Fuller's Earth",
"material.gtceu.gadolinium": "Gadolinium",
@@ -4858,6 +4908,7 @@
"material.gtceu.glue": "Glue",
"material.gtceu.glycerol": "Glycerol",
"material.gtceu.glyceryl_trinitrate": "Glyceryl Trinitrate",
+ "material.gtceu.glycolonitrile": "Glycolonitrile",
"material.gtceu.goethite": "Goethite",
"material.gtceu.gold": "Gold",
"material.gtceu.granite": "Granite",
@@ -4882,6 +4933,10 @@
"material.gtceu.hematite": "Hematite",
"material.gtceu.high_octane_gasoline": "High Octane Gasoline",
"material.gtceu.holmium": "Holmium",
+ "material.gtceu.hot_alkaline_debrominated_brine": "Hot Alkaline Debrominated Brine",
+ "material.gtceu.hot_brine": "Hot Brine",
+ "material.gtceu.hot_chlorinated_brominated_brine": "Hot Chlorinated Brominated Brine",
+ "material.gtceu.hot_debrominated_brine": "Hot Debrominated Brine",
"material.gtceu.hsla_steel": "Hsla Steel",
"material.gtceu.hsse": "HSS-E",
"material.gtceu.hssg": "HSS-G",
@@ -4896,6 +4951,7 @@
"material.gtceu.hydrochloric_acid": "Hydrochloric Acid",
"material.gtceu.hydrofluoric_acid": "Hydrofluoric Acid",
"material.gtceu.hydrogen": "Hydrogen",
+ "material.gtceu.hydrogen_cyanide": "Hydrogen Cyanide",
"material.gtceu.hydrogen_sulfide": "Hydrogen Sulfide",
"material.gtceu.hypochlorous_acid": "Hypochlorous Acid",
"material.gtceu.ice": "Ice",
@@ -4910,11 +4966,14 @@
"material.gtceu.indium_tin_barium_titanium_cuprate": "Indium Tin Barium Titanium Cuprate",
"material.gtceu.inert_metal_mixture": "Inert Metal Mixture",
"material.gtceu.invar": "Invar",
+ "material.gtceu.iodide": "Iodide",
"material.gtceu.iodine": "Iodine",
+ "material.gtceu.iodine_solution": "Iodine Solution",
"material.gtceu.iridium": "Iridium",
"material.gtceu.iridium_chloride": "Iridium Chloride",
"material.gtceu.iridium_metal_residue": "Iridium Metal Residue",
"material.gtceu.iron": "Iron",
+ "material.gtceu.iron_ii_chloride": "Iron II Chloride",
"material.gtceu.iron_iii_chloride": "Iron III Chloride",
"material.gtceu.isoprene": "Isoprene",
"material.gtceu.kanthal": "Kanthal",
@@ -5040,6 +5099,7 @@
"material.gtceu.palladium": "Palladium",
"material.gtceu.palladium_raw": "Palladium Raw",
"material.gtceu.paper": "Paper",
+ "material.gtceu.paracetamol": "Paracetamol",
"material.gtceu.pcb_coolant": "PCB Coolant",
"material.gtceu.pentlandite": "Pentlandite",
"material.gtceu.perlite": "Perlite",
@@ -5071,8 +5131,14 @@
"material.gtceu.polyvinyl_chloride": "Polyvinyl Chloride",
"material.gtceu.potash": "Potash",
"material.gtceu.potassium": "Potassium",
+ "material.gtceu.potassium_carbonate": "Potassium Carbonate",
+ "material.gtceu.potassium_cyanide": "Potassium Cyanide",
"material.gtceu.potassium_dichromate": "Potassium Dichromate",
"material.gtceu.potassium_feldspar": "Potassium Feldspar",
+ "material.gtceu.potassium_ferrocyanide": "Potassium Ferrocyanide",
+ "material.gtceu.potassium_hydroxide": "Potassium Hydroxide",
+ "material.gtceu.potassium_iodide": "Potassium Iodide",
+ "material.gtceu.potassium_sulfate": "Potassium Sulfate",
"material.gtceu.potin": "Potin",
"material.gtceu.powellite": "Powellite",
"material.gtceu.praseodymium": "Praseodymium",
@@ -5080,6 +5146,7 @@
"material.gtceu.propane": "Propane",
"material.gtceu.propene": "Propene",
"material.gtceu.protactinium": "Protactinium",
+ "material.gtceu.prussian_blue": "Prussian Blue",
"material.gtceu.purple_dye": "Purple Dye",
"material.gtceu.pyrite": "Pyrite",
"material.gtceu.pyrochlore": "Pyrochlore",
@@ -5088,10 +5155,12 @@
"material.gtceu.quartz_sand": "Quartz Sand",
"material.gtceu.quartzite": "Quartzite",
"material.gtceu.quicklime": "Quicklime",
+ "material.gtceu.rad_away": "Rad Away",
"material.gtceu.radium": "Radium",
"material.gtceu.radon": "Radon",
"material.gtceu.rare_earth": "Rare Earth",
"material.gtceu.rarest_metal_mixture": "Rarest Metal Mixture",
+ "material.gtceu.raw_brine": "Raw Brine",
"material.gtceu.raw_gasoline": "Raw Gasoline",
"material.gtceu.raw_growth_medium": "Raw Growth Medium",
"material.gtceu.raw_rubber": "Raw Rubber",
@@ -5155,6 +5224,7 @@
"material.gtceu.sodium_bicarbonate": "Sodium Bicarbonate",
"material.gtceu.sodium_bisulfate": "Sodium Bisulfate",
"material.gtceu.sodium_hydroxide": "Sodium Hydroxide",
+ "material.gtceu.sodium_nitrite": "Sodium Nitrite",
"material.gtceu.sodium_persulfate": "Sodium Persulfate",
"material.gtceu.sodium_potassium": "Sodium Potassium",
"material.gtceu.sodium_sulfide": "Sodium Sulfide",
@@ -5370,6 +5440,7 @@
"recipe.condition.thunder.tooltip": "Thunder Level: %d",
"tagprefix.andesite": "Andesite %s Ore",
"tagprefix.basalt": "Basalt %s Ore",
+ "tagprefix.blackstone": "Blackstone %s Ore",
"tagprefix.block": "Block of %s",
"tagprefix.bolt": "%s Bolt",
"tagprefix.buzz_saw_blade": "%s Buzzsaw Blade",
diff --git a/src/generated/resources/assets/gtceu/models/item/face_mask.json b/src/generated/resources/assets/gtceu/models/item/face_mask.json
new file mode 100644
index 0000000000..f3ce0ba31c
--- /dev/null
+++ b/src/generated/resources/assets/gtceu/models/item/face_mask.json
@@ -0,0 +1,6 @@
+{
+ "parent": "minecraft:item/generated",
+ "textures": {
+ "layer0": "gtceu:item/face_mask"
+ }
+}
\ No newline at end of file
diff --git a/src/generated/resources/assets/gtceu/models/item/paracetamol_pill.json b/src/generated/resources/assets/gtceu/models/item/paracetamol_pill.json
new file mode 100644
index 0000000000..845b7dea0e
--- /dev/null
+++ b/src/generated/resources/assets/gtceu/models/item/paracetamol_pill.json
@@ -0,0 +1,6 @@
+{
+ "parent": "minecraft:item/generated",
+ "textures": {
+ "layer0": "gtceu:item/paracetamol_pill"
+ }
+}
\ No newline at end of file
diff --git a/src/generated/resources/assets/gtceu/models/item/pill_casting_mold.json b/src/generated/resources/assets/gtceu/models/item/pill_casting_mold.json
new file mode 100644
index 0000000000..540c29d271
--- /dev/null
+++ b/src/generated/resources/assets/gtceu/models/item/pill_casting_mold.json
@@ -0,0 +1,6 @@
+{
+ "parent": "minecraft:item/generated",
+ "textures": {
+ "layer0": "gtceu:item/pill_casting_mold"
+ }
+}
\ No newline at end of file
diff --git a/src/generated/resources/assets/gtceu/models/item/rad_away_pill.json b/src/generated/resources/assets/gtceu/models/item/rad_away_pill.json
new file mode 100644
index 0000000000..aaec1fa825
--- /dev/null
+++ b/src/generated/resources/assets/gtceu/models/item/rad_away_pill.json
@@ -0,0 +1,6 @@
+{
+ "parent": "minecraft:item/generated",
+ "textures": {
+ "layer0": "gtceu:item/rad_away_pill"
+ }
+}
\ No newline at end of file
diff --git a/src/generated/resources/assets/gtceu/models/item/rubber_gloves.json b/src/generated/resources/assets/gtceu/models/item/rubber_gloves.json
new file mode 100644
index 0000000000..a34980063b
--- /dev/null
+++ b/src/generated/resources/assets/gtceu/models/item/rubber_gloves.json
@@ -0,0 +1,6 @@
+{
+ "parent": "minecraft:item/generated",
+ "textures": {
+ "layer0": "gtceu:item/rubber_gloves"
+ }
+}
\ No newline at end of file
diff --git a/src/generated/resources/data/forge/tags/blocks/mineable/wrench.json b/src/generated/resources/data/forge/tags/blocks/mineable/wrench.json
index bfbd1cd616..c397898a5b 100644
--- a/src/generated/resources/data/forge/tags/blocks/mineable/wrench.json
+++ b/src/generated/resources/data/forge/tags/blocks/mineable/wrench.json
@@ -16,6 +16,7 @@
"gtceu:sturdy_machine_casing",
"gtceu:palladium_substation",
"gtceu:tempered_glass",
+ "gtceu:stainless_evaporation_casing",
"gtceu:nonconducting_casing",
"gtceu:vibration_safe_casing",
"gtceu:watertight_casing",
diff --git a/src/generated/resources/data/gtceu/loot_tables/blocks/stainless_evaporation_casing.json b/src/generated/resources/data/gtceu/loot_tables/blocks/stainless_evaporation_casing.json
new file mode 100644
index 0000000000..e627c10875
--- /dev/null
+++ b/src/generated/resources/data/gtceu/loot_tables/blocks/stainless_evaporation_casing.json
@@ -0,0 +1,21 @@
+{
+ "type": "minecraft:block",
+ "pools": [
+ {
+ "bonus_rolls": 0.0,
+ "conditions": [
+ {
+ "condition": "minecraft:survives_explosion"
+ }
+ ],
+ "entries": [
+ {
+ "type": "minecraft:item",
+ "name": "gtceu:stainless_evaporation_casing"
+ }
+ ],
+ "rolls": 1.0
+ }
+ ],
+ "random_sequence": "gtceu:blocks/stainless_evaporation_casing"
+}
\ No newline at end of file
diff --git a/src/generated/resources/data/gtceu/tags/items/ppe_armor.json b/src/generated/resources/data/gtceu/tags/items/ppe_armor.json
new file mode 100644
index 0000000000..ec5f73fa99
--- /dev/null
+++ b/src/generated/resources/data/gtceu/tags/items/ppe_armor.json
@@ -0,0 +1,16 @@
+{
+ "values": [
+ "gtceu:face_mask",
+ "gtceu:rubber_gloves",
+ "gtceu:hazmat_chestpiece",
+ "gtceu:hazmat_leggings",
+ "gtceu:hazmat_boots",
+ "gtceu:hazmat_headpiece",
+ "gtceu:quarktech_chestplate",
+ "gtceu:quarktech_leggings",
+ "gtceu:quarktech_boots",
+ "gtceu:quarktech_helmet",
+ "gtceu:avanced_nanomuscle_chestplate",
+ "gtceu:advanced_quarktech_chestplate"
+ ]
+}
\ No newline at end of file
diff --git a/src/generated/resources/data/minecraft/tags/blocks/mineable/pickaxe.json b/src/generated/resources/data/minecraft/tags/blocks/mineable/pickaxe.json
index 04a9b24af7..639bb25724 100644
--- a/src/generated/resources/data/minecraft/tags/blocks/mineable/pickaxe.json
+++ b/src/generated/resources/data/minecraft/tags/blocks/mineable/pickaxe.json
@@ -16,6 +16,7 @@
"gtceu:sturdy_machine_casing",
"gtceu:palladium_substation",
"gtceu:tempered_glass",
+ "gtceu:stainless_evaporation_casing",
"gtceu:nonconducting_casing",
"gtceu:vibration_safe_casing",
"gtceu:watertight_casing",
diff --git a/src/main/java/com/gregtechceu/gtceu/GTCEu.java b/src/main/java/com/gregtechceu/gtceu/GTCEu.java
index a42f7263d5..265548aeff 100644
--- a/src/main/java/com/gregtechceu/gtceu/GTCEu.java
+++ b/src/main/java/com/gregtechceu/gtceu/GTCEu.java
@@ -5,16 +5,20 @@
import com.gregtechceu.gtceu.client.ClientProxy;
import com.gregtechceu.gtceu.common.CommonProxy;
import com.gregtechceu.gtceu.utils.FormattingUtil;
+
import com.lowdragmc.lowdraglib.LDLib;
import com.lowdragmc.lowdraglib.Platform;
+
import net.minecraft.resources.ResourceLocation;
import net.minecraftforge.fml.DistExecutor;
import net.minecraftforge.fml.common.Mod;
+
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@Mod(GTCEu.MOD_ID)
public class GTCEu {
+
public static final String MOD_ID = "gtceu";
public static final String NAME = "GregTechCEu";
public static final Logger LOGGER = LoggerFactory.getLogger(NAME);
@@ -38,7 +42,7 @@ public static String appendIdString(String id) {
}
public static ResourceLocation appendId(String id) {
- String[] strings = new String[]{"gtceu", id};
+ String[] strings = new String[] { "gtceu", id };
int i = id.indexOf(':');
if (i >= 0) {
strings[1] = id.substring(i + 1);
@@ -62,7 +66,8 @@ public static boolean isIrisOculusLoaded() {
}
public static boolean isSodiumRubidiumEmbeddiumLoaded() {
- return LDLib.isModLoaded(GTValues.MODID_SODIUM) || LDLib.isModLoaded(GTValues.MODID_RUBIDIUM) ||LDLib.isModLoaded(GTValues.MODID_EMBEDDIUM);
+ return LDLib.isModLoaded(GTValues.MODID_SODIUM) || LDLib.isModLoaded(GTValues.MODID_RUBIDIUM) ||
+ LDLib.isModLoaded(GTValues.MODID_EMBEDDIUM);
}
public static boolean isRebornEnergyLoaded() {
diff --git a/src/main/java/com/gregtechceu/gtceu/api/GTCEuAPI.java b/src/main/java/com/gregtechceu/gtceu/api/GTCEuAPI.java
index 504b0396c2..1214cdbf1e 100644
--- a/src/main/java/com/gregtechceu/gtceu/api/GTCEuAPI.java
+++ b/src/main/java/com/gregtechceu/gtceu/api/GTCEuAPI.java
@@ -11,12 +11,15 @@
import com.gregtechceu.gtceu.common.block.BatteryBlock;
import com.gregtechceu.gtceu.common.block.CoilBlock;
import com.gregtechceu.gtceu.config.ConfigHolder;
+
import com.lowdragmc.lowdraglib.Platform;
-import lombok.Getter;
+
import net.minecraft.resources.ResourceLocation;
import net.minecraft.world.level.block.Block;
import net.minecraftforge.eventbus.api.GenericEvent;
import net.minecraftforge.fml.event.IModBusEvent;
+
+import lombok.Getter;
import org.jetbrains.annotations.ApiStatus;
import java.util.HashMap;
@@ -45,7 +48,8 @@ public class GTCEuAPI {
@ApiStatus.Internal
public static void initializeHighTier() {
if (highTierInitialized) throw new IllegalStateException("High-Tier is already initialized.");
- highTier = ConfigHolder.INSTANCE.machines.highTierContent || AddonFinder.getAddons().stream().anyMatch(IGTAddon::requiresHighTier) || Platform.isDevEnv();
+ highTier = ConfigHolder.INSTANCE.machines.highTierContent ||
+ AddonFinder.getAddons().stream().anyMatch(IGTAddon::requiresHighTier) || Platform.isDevEnv();
highTierInitialized = true;
if (isHighTier()) GTCEu.LOGGER.info("High-Tier is Enabled.");
diff --git a/src/main/java/com/gregtechceu/gtceu/api/GTValues.java b/src/main/java/com/gregtechceu/gtceu/api/GTValues.java
index e8008a8352..1907362a1e 100644
--- a/src/main/java/com/gregtechceu/gtceu/api/GTValues.java
+++ b/src/main/java/com/gregtechceu/gtceu/api/GTValues.java
@@ -1,7 +1,7 @@
package com.gregtechceu.gtceu.api;
-
import com.gregtechceu.gtceu.data.recipe.CraftingComponent;
+
import net.minecraft.util.RandomSource;
import java.time.LocalDate;
@@ -14,6 +14,7 @@
* Made for static imports, this Class is just a Helper.
*/
public class GTValues {
+
/**
* Default fallback value used for Map keys.
* Currently only used in {@link CraftingComponent}.
@@ -45,7 +46,7 @@ public class GTValues {
* The Item WildCard Tag. Even shorter than the "-1" of the past
*/
-// public static final short W = OreDictionary.WILDCARD_VALUE;
+ // public static final short W = OreDictionary.WILDCARD_VALUE;
/** Current time on the Client. Will always be zero on the server. */
public static long CLIENT_TIME = 0;
@@ -53,23 +54,26 @@ public class GTValues {
/**
* The Voltage Tiers. Use this Array instead of the old named Voltage Variables
*/
- public static final long[] V = new long[]{8, 32, 128, 512, 2048, 8192, 32768, 131072, 524288, 2097152, 8388608, 33554432, 134217728, 536870912, Integer.MAX_VALUE};
+ public static final long[] V = new long[] { 8, 32, 128, 512, 2048, 8192, 32768, 131072, 524288, 2097152, 8388608,
+ 33554432, 134217728, 536870912, Integer.MAX_VALUE };
/**
* The Voltage Tiers divided by 2.
*/
- public static final int[] VH = {4, 16, 64, 256, 1024, 4096, 16384, 65536, 262144, 1048576, 4194304, 16777216, 67108864, 268435456, 1073741824};
-
+ public static final int[] VH = { 4, 16, 64, 256, 1024, 4096, 16384, 65536, 262144, 1048576, 4194304, 16777216,
+ 67108864, 268435456, 1073741824 };
/**
* The Voltage Tiers adjusted for cable loss. Use this for recipe EU/t to avoid full-amp recipes
*/
- public static final int[] VA = new int[]{7, 30, 120, 480, 1920, 7680, 30720, 122880, 491520, 1966080, 7864320, 31457280, 125829120, 503316480, 2013265920};
+ public static final int[] VA = new int[] { 7, 30, 120, 480, 1920, 7680, 30720, 122880, 491520, 1966080, 7864320,
+ 31457280, 125829120, 503316480, 2013265920 };
/**
* The Voltage Tiers adjusted for cable loss, divided by 2.
*/
- public static final int[] VHA = {7, 16, 60, 240, 960, 3840, 15360, 61440, 245760, 983040, 3932160, 15728640, 62914560, 251658240, 1006632960};
+ public static final int[] VHA = { 7, 16, 60, 240, 960, 3840, 15360, 61440, 245760, 983040, 3932160, 15728640,
+ 62914560, 251658240, 1006632960 };
public static final int ULV = 0;
public static final int LV = 1;
@@ -87,15 +91,16 @@ public class GTValues {
public static final int OpV = 13;
public static final int MAX = 14;
- public static final int[] ALL_TIERS = new int[]{ULV, LV, MV, HV, EV, IV, LuV, ZPM, UV, UHV, UEV, UIV, UXV, OpV, MAX};
+ public static final int[] ALL_TIERS = new int[] { ULV, LV, MV, HV, EV, IV, LuV, ZPM, UV, UHV, UEV, UIV, UXV, OpV,
+ MAX };
public static final int TIER_COUNT = ALL_TIERS.length;
public static int[] tiersBetween(int minInclusive, int maxInclusive) {
- return Arrays.stream(ALL_TIERS).dropWhile(tier -> tier < minInclusive).takeWhile(tier -> tier <= maxInclusive).toArray();
+ return Arrays.stream(ALL_TIERS).dropWhile(tier -> tier < minInclusive).takeWhile(tier -> tier <= maxInclusive)
+ .toArray();
}
- public static final String
- MODID_TOP = "theoneprobe",
+ public static final String MODID_TOP = "theoneprobe",
MODID_JEI = "jei",
MODID_APPENG = "ae2",
MODID_KUBEJS = "kubejs",
@@ -107,23 +112,24 @@ public static int[] tiersBetween(int minInclusive, int maxInclusive) {
MODID_CREATE = "create",
MODID_REBORN_ENERGY = "team_reborn_energy",
MODID_ALMOSTUNIFIED = "almostunified",
- MODID_CURIOS = "curios";
+ MODID_CURIOS = "curios",
+ MODID_AE2WTLIB = "ae2wtlib";
/**
* Spray painting compat modids
*/
- public static final String
- MODID_TINTED = "tinted";
+ public static final String MODID_TINTED = "tinted";
/**
* The short names for the voltages, used for registration primarily
*/
- public static final String[] VN = new String[]{"ULV", "LV", "MV", "HV", "EV", "IV", "LuV", "ZPM", "UV", "UHV", "UEV", "UIV", "UXV", "OpV", "MAX"};
+ public static final String[] VN = new String[] { "ULV", "LV", "MV", "HV", "EV", "IV", "LuV", "ZPM", "UV", "UHV",
+ "UEV", "UIV", "UXV", "OpV", "MAX" };
/**
* The short names for the voltages, formatted for text
*/
- public static final String[] VNF = new String[]{
+ public static final String[] VNF = new String[] {
DARK_GRAY + "ULV",
GRAY + "LV",
AQUA + "MV",
@@ -137,11 +143,10 @@ public static int[] tiersBetween(int minInclusive, int maxInclusive) {
GREEN + "UEV",
DARK_GREEN + "UIV",
YELLOW + "UXV",
- BLUE.toString() + BOLD + "OpV",
- RED.toString() + BOLD + "MAX"};
+ BLUE.toString() + BOLD + "OpV",
+ RED.toString() + BOLD + "MAX" };
-
- public static final String[] VLVH = new String[]{
+ public static final String[] VLVH = new String[] {
"Primitive", // not doing the gray color for these first two because it looks weird
"Basic",
AQUA + "Advanced",
@@ -155,10 +160,10 @@ public static int[] tiersBetween(int minInclusive, int maxInclusive) {
GREEN + "Epic",
DARK_GREEN + "Epic",
YELLOW + "Epic",
- BLUE.toString() + BOLD + "Legendary",
- RED.toString() + BOLD + "MAX"};
+ BLUE.toString() + BOLD + "Legendary",
+ RED.toString() + BOLD + "MAX" };
- public static final String[] VLVT = new String[]{
+ public static final String[] VLVT = new String[] {
"" + RESET,
"" + RESET,
"" + RESET,
@@ -173,9 +178,9 @@ public static int[] tiersBetween(int minInclusive, int maxInclusive) {
"III" + RESET,
"IV" + RESET,
"" + RESET,
- "" + RESET};
+ "" + RESET };
- public static final String[] LVT = new String[]{
+ public static final String[] LVT = new String[] {
"",
"I",
"II",
@@ -196,13 +201,16 @@ public static int[] tiersBetween(int minInclusive, int maxInclusive) {
/**
* Color values for the voltages
*/
- public static final int[] VC = new int[]{0xC80000, 0xDCDCDC, 0xFF6400, 0xFFFF1E, 0x808080, 0xF0F0F5, 0xE99797, 0x7EC3C4, 0x7EB07E, 0xBF74C0, 0x0B5CFE, 0x914E91, 0x488748, 0x8C0000, 0x2828F5};
+ public static final int[] VC = new int[] { 0xC80000, 0xDCDCDC, 0xFF6400, 0xFFFF1E, 0x808080, 0xF0F0F5, 0xE99797,
+ 0x7EC3C4, 0x7EB07E, 0xBF74C0, 0x0B5CFE, 0x914E91, 0x488748, 0x8C0000, 0x2828F5 };
/**
* The long names for the voltages
*/
- public static final String[] VOLTAGE_NAMES = new String[]{"Ultra Low Voltage", "Low Voltage", "Medium Voltage", "High Voltage", "Extreme Voltage", "Insane Voltage", "Ludicrous Voltage", "ZPM Voltage", "Ultimate Voltage",
- "Ultra High Voltage", "Ultra Excessive Voltage", "Ultra Immense Voltage", "Ultra Extreme Voltage", "Overpowered Voltage", "Maximum Voltage"};
+ public static final String[] VOLTAGE_NAMES = new String[] { "Ultra Low Voltage", "Low Voltage", "Medium Voltage",
+ "High Voltage", "Extreme Voltage", "Insane Voltage", "Ludicrous Voltage", "ZPM Voltage", "Ultimate Voltage",
+ "Ultra High Voltage", "Ultra Excessive Voltage", "Ultra Immense Voltage", "Ultra Extreme Voltage",
+ "Overpowered Voltage", "Maximum Voltage" };
/**
* Used to tell if any high-tier machine (UHV+) was registered.
@@ -219,7 +227,5 @@ public static int[] tiersBetween(int minInclusive, int maxInclusive) {
return yearMonthDay[1].equals("12") && (yearMonthDay[2].equals("24") || yearMonthDay[2].equals("25"));
};
-
public static final String CUSTOM_TAG_SOURCE = "GTCEu Custom Tags";
-
}
diff --git a/src/main/java/com/gregtechceu/gtceu/api/addon/AddonFinder.java b/src/main/java/com/gregtechceu/gtceu/api/addon/AddonFinder.java
index ae4d28e21b..89a80f028e 100644
--- a/src/main/java/com/gregtechceu/gtceu/api/addon/AddonFinder.java
+++ b/src/main/java/com/gregtechceu/gtceu/api/addon/AddonFinder.java
@@ -2,6 +2,7 @@
import net.minecraftforge.fml.ModList;
import net.minecraftforge.forgespi.language.ModFileScanData;
+
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.jetbrains.annotations.Nullable;
@@ -11,6 +12,7 @@
import java.util.*;
public class AddonFinder {
+
private static final Logger LOGGER = LogManager.getLogger();
protected static List cache = null;
protected static Map modIdMap = new HashMap<>();
diff --git a/src/main/java/com/gregtechceu/gtceu/api/addon/GTAddon.java b/src/main/java/com/gregtechceu/gtceu/api/addon/GTAddon.java
index 991f733918..bec2a5b503 100644
--- a/src/main/java/com/gregtechceu/gtceu/api/addon/GTAddon.java
+++ b/src/main/java/com/gregtechceu/gtceu/api/addon/GTAddon.java
@@ -1,4 +1,3 @@
package com.gregtechceu.gtceu.api.addon;
-public @interface GTAddon {
-}
+public @interface GTAddon {}
diff --git a/src/main/java/com/gregtechceu/gtceu/api/addon/IGTAddon.java b/src/main/java/com/gregtechceu/gtceu/api/addon/IGTAddon.java
index a05b4be13e..fa95834d05 100644
--- a/src/main/java/com/gregtechceu/gtceu/api/addon/IGTAddon.java
+++ b/src/main/java/com/gregtechceu/gtceu/api/addon/IGTAddon.java
@@ -5,6 +5,7 @@
import com.gregtechceu.gtceu.api.data.worldgen.bedrockfluid.BedrockFluidDefinition;
import com.gregtechceu.gtceu.api.registry.registrate.GTRegistrate;
import com.gregtechceu.gtceu.common.data.GTOres;
+
import net.minecraft.data.recipes.FinishedRecipe;
import net.minecraft.resources.ResourceLocation;
@@ -15,7 +16,7 @@ public interface IGTAddon {
/**
* @return this addon's GTRegistrate instance.
- * remember to call{@link GTRegistrate#registerRegistrate} in your mod class!
+ * remember to call{@link GTRegistrate#registerRegistrate} in your mod class!
*/
GTRegistrate getRegistrate();
@@ -26,6 +27,7 @@ public interface IGTAddon {
/**
* this addon's Mod id.
+ *
* @return the Mod ID this addon uses for content.
*/
String addonModId();
@@ -33,117 +35,87 @@ public interface IGTAddon {
/**
* Call init on your custom TagPrefix class(es) here
*/
- default void registerTagPrefixes() {
-
- }
+ default void registerTagPrefixes() {}
/**
* Call init on your custom Element class(es) here
*/
- default void registerElements() {
-
- }
+ default void registerElements() {}
/**
* Call init on your custom Material class(es) here
- * @deprecated use {@link com.gregtechceu.gtceu.api.data.chemical.material.event.MaterialRegistryEvent} and {@link com.gregtechceu.gtceu.api.data.chemical.material.event.MaterialEvent} instead.
+ *
+ * @deprecated use {@link com.gregtechceu.gtceu.api.data.chemical.material.event.MaterialRegistryEvent} and
+ * {@link com.gregtechceu.gtceu.api.data.chemical.material.event.MaterialEvent} instead.
*/
@Deprecated(forRemoval = true, since = "1.0.21")
- default void registerMaterials() {
-
- }
+ default void registerMaterials() {}
/**
* Call init on your custom Sound class(es) here
*/
- default void registerSounds() {
-
- }
+ default void registerSounds() {}
/**
* Call init on your custom Cover class(es) here
*/
- default void registerCovers() {
-
- }
+ default void registerCovers() {}
/**
* Call init on your custom Recipe Capabilities here
*/
- default void registerRecipeCapabilities() {
-
- }
+ default void registerRecipeCapabilities() {}
/**
* Call init on your custom Recipe Conditions here
*/
- default void registerRecipeConditions() {
-
- }
+ default void registerRecipeConditions() {}
/**
* Call init on your custom IWorldGenLayer class(es) here
*/
- default void registerWorldgenLayers() {
-
- }
+ default void registerWorldgenLayers() {}
/**
* Call init on your custom VeinGenerator class(es) here
*/
- default void registerVeinGenerators() {
-
- }
+ default void registerVeinGenerators() {}
/**
* Call init on your custom IndicatorGenerator class(es) here
*/
- default void registerIndicatorGenerators() {
-
- }
+ default void registerIndicatorGenerators() {}
- default void addRecipes(Consumer provider) {
-
- }
+ default void addRecipes(Consumer provider) {}
- default void removeRecipes(Consumer consumer) {
-
- }
+ default void removeRecipes(Consumer consumer) {}
/**
* Use {@link GTOres#create(ResourceLocation, Consumer)} to register the veins.
*/
- default void registerOreVeins() {
-
- }
+ default void registerOreVeins() {}
/**
* Use {@link BedrockFluidDefinition#builder(ResourceLocation)} to register the veins.
*/
- default void registerFluidVeins() {
-
- }
+ default void registerFluidVeins() {}
/**
- * Use {@link com.gregtechceu.gtceu.api.data.worldgen.bedrockore.BedrockOreDefinition#builder(ResourceLocation)} to register the veins.
+ * Use {@link com.gregtechceu.gtceu.api.data.worldgen.bedrockore.BedrockOreDefinition#builder(ResourceLocation)} to
+ * register the veins.
*/
- default void registerBedrockOreVeins() {
-
- }
+ default void registerBedrockOreVeins() {}
/**
* Register Material -> Casing block mappings here
*/
- default void collectMaterialCasings(MaterialCasingCollectionEvent event) {
+ default void collectMaterialCasings(MaterialCasingCollectionEvent event) {}
- }
-
- default void registerRecipeKeys(KJSRecipeKeyEvent event) {
-
- }
+ default void registerRecipeKeys(KJSRecipeKeyEvent event) {}
/**
* Does this addon require high-tier content to be enabled?
+ *
* @return if this addon requires highTier.
*/
default boolean requiresHighTier() {
diff --git a/src/main/java/com/gregtechceu/gtceu/api/addon/events/KJSRecipeKeyEvent.java b/src/main/java/com/gregtechceu/gtceu/api/addon/events/KJSRecipeKeyEvent.java
index 8acc25a6b7..8612db525a 100644
--- a/src/main/java/com/gregtechceu/gtceu/api/addon/events/KJSRecipeKeyEvent.java
+++ b/src/main/java/com/gregtechceu/gtceu/api/addon/events/KJSRecipeKeyEvent.java
@@ -3,6 +3,7 @@
import com.gregtechceu.gtceu.api.capability.recipe.RecipeCapability;
import com.gregtechceu.gtceu.integration.kjs.recipe.components.ContentJS;
import com.gregtechceu.gtceu.integration.kjs.recipe.components.GTRecipeComponents;
+
import com.mojang.datafixers.util.Pair;
import lombok.Getter;
@@ -16,13 +17,16 @@
*/
@SuppressWarnings("unused")
public class KJSRecipeKeyEvent {
+
@Getter
private final Map, Pair, ContentJS>>> registeredKeys = new HashMap<>();
/**
* Use this to register new components for KJS to use!
+ *
* @param cap the recipe capability you're adding a KJS binding for.
- * @param key the components, like {@link GTRecipeComponents#ITEM_IN} and {@link GTRecipeComponents#ITEM_OUT}, as a {@link Pair}
+ * @param key the components, like {@link GTRecipeComponents#ITEM_IN} and {@link GTRecipeComponents#ITEM_OUT}, as a
+ * {@link Pair}
*/
public void registerKey(RecipeCapability> cap, Pair, ContentJS>> key) {
if (registeredKeys.put(cap, key) != null) {
diff --git a/src/main/java/com/gregtechceu/gtceu/api/addon/events/MaterialCasingCollectionEvent.java b/src/main/java/com/gregtechceu/gtceu/api/addon/events/MaterialCasingCollectionEvent.java
index 60b04c83f4..d9c2cacd7f 100644
--- a/src/main/java/com/gregtechceu/gtceu/api/addon/events/MaterialCasingCollectionEvent.java
+++ b/src/main/java/com/gregtechceu/gtceu/api/addon/events/MaterialCasingCollectionEvent.java
@@ -1,11 +1,14 @@
package com.gregtechceu.gtceu.api.addon.events;
-import com.google.common.collect.ImmutableMap;
import com.gregtechceu.gtceu.api.data.chemical.material.Material;
-import com.tterrag.registrate.util.entry.BlockEntry;
+
import net.minecraft.world.level.block.Block;
+import com.google.common.collect.ImmutableMap;
+import com.tterrag.registrate.util.entry.BlockEntry;
+
public class MaterialCasingCollectionEvent {
+
private final ImmutableMap.Builder> builder;
public MaterialCasingCollectionEvent(ImmutableMap.Builder> builder) {
diff --git a/src/main/java/com/gregtechceu/gtceu/api/block/ActiveBlock.java b/src/main/java/com/gregtechceu/gtceu/api/block/ActiveBlock.java
index 48fc638cad..b5e6f04a8c 100644
--- a/src/main/java/com/gregtechceu/gtceu/api/block/ActiveBlock.java
+++ b/src/main/java/com/gregtechceu/gtceu/api/block/ActiveBlock.java
@@ -2,6 +2,7 @@
import com.lowdragmc.lowdraglib.client.renderer.IBlockRendererProvider;
import com.lowdragmc.lowdraglib.client.renderer.IRenderer;
+
import net.minecraft.MethodsReturnNonnullByDefault;
import net.minecraft.core.BlockPos;
import net.minecraft.core.Direction;
@@ -12,6 +13,7 @@
import net.minecraft.world.level.block.state.properties.BooleanProperty;
import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.api.distmarker.OnlyIn;
+
import org.jetbrains.annotations.Nullable;
import javax.annotation.ParametersAreNonnullByDefault;
@@ -19,6 +21,7 @@
@ParametersAreNonnullByDefault
@MethodsReturnNonnullByDefault
public class ActiveBlock extends AppearanceBlock implements IBlockRendererProvider {
+
public static final BooleanProperty ACTIVE = BooleanProperty.create("active");
private final IRenderer renderer;
@@ -56,7 +59,8 @@ public IRenderer getRenderer(BlockState state) {
}
@Override
- public BlockState getBlockAppearance(BlockState state, BlockAndTintGetter level, BlockPos pos, Direction side, BlockState sourceState, BlockPos sourcePos) {
+ public BlockState getBlockAppearance(BlockState state, BlockAndTintGetter level, BlockPos pos, Direction side,
+ BlockState sourceState, BlockPos sourcePos) {
return defaultBlockState();
}
}
diff --git a/src/main/java/com/gregtechceu/gtceu/api/block/AppearanceBlock.java b/src/main/java/com/gregtechceu/gtceu/api/block/AppearanceBlock.java
index 09711e8cd4..82475dd893 100644
--- a/src/main/java/com/gregtechceu/gtceu/api/block/AppearanceBlock.java
+++ b/src/main/java/com/gregtechceu/gtceu/api/block/AppearanceBlock.java
@@ -5,6 +5,7 @@
import net.minecraft.world.level.BlockAndTintGetter;
import net.minecraft.world.level.block.Block;
import net.minecraft.world.level.block.state.BlockState;
+
import org.jetbrains.annotations.Nullable;
/**
@@ -13,13 +14,16 @@
* @implNote AppearanceBlock
*/
public class AppearanceBlock extends Block implements IAppearance {
+
public AppearanceBlock(Properties properties) {
super(properties);
}
@Override
- public BlockState getAppearance(BlockState state, BlockAndTintGetter level, BlockPos pos, Direction side, @Nullable BlockState queryState, @Nullable BlockPos queryPos) {
- var appearance = AppearanceBlock.class.cast(this).getBlockAppearance(state, level, pos, side, queryState, queryPos);
+ public BlockState getAppearance(BlockState state, BlockAndTintGetter level, BlockPos pos, Direction side,
+ @Nullable BlockState queryState, @Nullable BlockPos queryPos) {
+ var appearance = AppearanceBlock.class.cast(this).getBlockAppearance(state, level, pos, side, queryState,
+ queryPos);
return appearance == null ? state : appearance;
}
}
diff --git a/src/main/java/com/gregtechceu/gtceu/api/block/BlockProperties.java b/src/main/java/com/gregtechceu/gtceu/api/block/BlockProperties.java
index 5a69b04a7d..a42ed84c3c 100644
--- a/src/main/java/com/gregtechceu/gtceu/api/block/BlockProperties.java
+++ b/src/main/java/com/gregtechceu/gtceu/api/block/BlockProperties.java
@@ -8,5 +8,6 @@
* @implNote BlockProperties
*/
public final class BlockProperties {
+
public static final BooleanProperty SERVER_TICK = BooleanProperty.create("server_tick");
}
diff --git a/src/main/java/com/gregtechceu/gtceu/api/block/IAppearance.java b/src/main/java/com/gregtechceu/gtceu/api/block/IAppearance.java
index 1ab9673203..5224d78f02 100644
--- a/src/main/java/com/gregtechceu/gtceu/api/block/IAppearance.java
+++ b/src/main/java/com/gregtechceu/gtceu/api/block/IAppearance.java
@@ -18,8 +18,8 @@ public interface IAppearance {
* get Appearance. same as IForgeBlock.getAppearance() / IFabricBlock.getAppearance()
*/
@Nullable
- default BlockState getBlockAppearance(BlockState state, BlockAndTintGetter level, BlockPos pos, Direction side, BlockState sourceState, BlockPos sourcePos) {
+ default BlockState getBlockAppearance(BlockState state, BlockAndTintGetter level, BlockPos pos, Direction side,
+ BlockState sourceState, BlockPos sourcePos) {
return state;
}
-
}
diff --git a/src/main/java/com/gregtechceu/gtceu/api/block/ICoilType.java b/src/main/java/com/gregtechceu/gtceu/api/block/ICoilType.java
index 7e9ac3e7ac..f4ed44974a 100644
--- a/src/main/java/com/gregtechceu/gtceu/api/block/ICoilType.java
+++ b/src/main/java/com/gregtechceu/gtceu/api/block/ICoilType.java
@@ -2,9 +2,10 @@
import com.gregtechceu.gtceu.api.GTCEuAPI;
import com.gregtechceu.gtceu.api.data.chemical.material.Material;
-import net.minecraft.resources.ResourceLocation;
+import net.minecraft.resources.ResourceLocation;
import net.minecraftforge.common.util.Lazy;
+
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
@@ -57,13 +58,13 @@ public interface ICoilType {
ResourceLocation getTexture();
Lazy ALL_COILS_TEMPERATURE_SORTED = Lazy.of(() -> GTCEuAPI.HEATING_COILS.keySet().stream()
- .sorted(Comparator.comparing(ICoilType::getCoilTemperature))
- .toArray(ICoilType[]::new));
+ .sorted(Comparator.comparing(ICoilType::getCoilTemperature))
+ .toArray(ICoilType[]::new));
@Nullable
static ICoilType getMinRequiredType(int requiredTemperature) {
return Arrays.stream(ALL_COILS_TEMPERATURE_SORTED.get())
- .filter(coil -> coil.getCoilTemperature() >= requiredTemperature)
- .findFirst().orElse(null);
+ .filter(coil -> coil.getCoilTemperature() >= requiredTemperature)
+ .findFirst().orElse(null);
}
}
diff --git a/src/main/java/com/gregtechceu/gtceu/api/block/IFilterType.java b/src/main/java/com/gregtechceu/gtceu/api/block/IFilterType.java
index 81e5ed089e..46ca8e04b6 100644
--- a/src/main/java/com/gregtechceu/gtceu/api/block/IFilterType.java
+++ b/src/main/java/com/gregtechceu/gtceu/api/block/IFilterType.java
@@ -1,6 +1,7 @@
package com.gregtechceu.gtceu.api.block;
import com.gregtechceu.gtceu.api.machine.multiblock.CleanroomType;
+
import net.minecraft.util.StringRepresentable;
import org.jetbrains.annotations.NotNull;
@@ -12,5 +13,4 @@ public interface IFilterType extends StringRepresentable {
*/
@NotNull
CleanroomType getCleanroomType();
-
}
diff --git a/src/main/java/com/gregtechceu/gtceu/api/block/IMachineBlock.java b/src/main/java/com/gregtechceu/gtceu/api/block/IMachineBlock.java
index 2e441d4f06..a270852411 100644
--- a/src/main/java/com/gregtechceu/gtceu/api/block/IMachineBlock.java
+++ b/src/main/java/com/gregtechceu/gtceu/api/block/IMachineBlock.java
@@ -4,7 +4,9 @@
import com.gregtechceu.gtceu.api.machine.IMachineBlockEntity;
import com.gregtechceu.gtceu.api.machine.MachineDefinition;
import com.gregtechceu.gtceu.api.machine.MetaMachine;
+
import com.lowdragmc.lowdraglib.client.renderer.IBlockRendererProvider;
+
import net.minecraft.core.BlockPos;
import net.minecraft.world.level.BlockAndTintGetter;
import net.minecraft.world.level.Level;
@@ -14,6 +16,7 @@
import net.minecraft.world.level.block.entity.BlockEntityTicker;
import net.minecraft.world.level.block.entity.BlockEntityType;
import net.minecraft.world.level.block.state.BlockState;
+
import org.jetbrains.annotations.Nullable;
/**
@@ -22,6 +25,7 @@
* @implNote IMachineBlock
*/
public interface IMachineBlock extends IBlockRendererProvider, EntityBlock {
+
default Block self() {
return (Block) this;
}
@@ -30,7 +34,8 @@ default Block self() {
RotationState getRotationState();
- static int colorTinted(BlockState blockState, @Nullable BlockAndTintGetter level, @Nullable BlockPos pos, int index) {
+ static int colorTinted(BlockState blockState, @Nullable BlockAndTintGetter level, @Nullable BlockPos pos,
+ int index) {
if (level != null && pos != null) {
var machine = MetaMachine.getMachine(level, pos);
if (machine != null) {
@@ -48,7 +53,8 @@ default BlockEntity newBlockEntity(BlockPos pos, BlockState state) {
@Nullable
@Override
- default BlockEntityTicker getTicker(Level level, BlockState state, BlockEntityType blockEntityType) {
+ default BlockEntityTicker getTicker(Level level, BlockState state,
+ BlockEntityType blockEntityType) {
if (blockEntityType == getDefinition().getBlockEntityType()) {
if (state.getValue(BlockProperties.SERVER_TICK) && !level.isClientSide) {
return (pLevel, pPos, pState, pTile) -> {
@@ -67,5 +73,4 @@ default BlockEntityTicker getTicker(Level level, Bloc
}
return null;
}
-
}
diff --git a/src/main/java/com/gregtechceu/gtceu/api/block/MaterialBlock.java b/src/main/java/com/gregtechceu/gtceu/api/block/MaterialBlock.java
index cc16d34f16..2892cd8893 100644
--- a/src/main/java/com/gregtechceu/gtceu/api/block/MaterialBlock.java
+++ b/src/main/java/com/gregtechceu/gtceu/api/block/MaterialBlock.java
@@ -4,7 +4,9 @@
import com.gregtechceu.gtceu.api.data.tag.TagPrefix;
import com.gregtechceu.gtceu.client.renderer.block.MaterialBlockRenderer;
import com.gregtechceu.gtceu.config.ConfigHolder;
+
import com.lowdragmc.lowdraglib.Platform;
+
import net.minecraft.MethodsReturnNonnullByDefault;
import net.minecraft.client.color.block.BlockColor;
import net.minecraft.core.BlockPos;
@@ -59,20 +61,22 @@ public static BlockColor tintedColor() {
};
}
-
/** Start falling ore stuff */
@SuppressWarnings("deprecation")
@Override
public void onPlace(BlockState state, Level level, BlockPos pos, BlockState oldState, boolean isMoving) {
- if (TagPrefix.ORES.containsKey(this.tagPrefix) && TagPrefix.ORES.get(tagPrefix).isSand() && ConfigHolder.INSTANCE.worldgen.sandOresFall) {
+ if (TagPrefix.ORES.containsKey(this.tagPrefix) && TagPrefix.ORES.get(tagPrefix).isSand() &&
+ ConfigHolder.INSTANCE.worldgen.sandOresFall) {
level.scheduleTick(pos, this, this.getDelayAfterPlace());
}
}
@SuppressWarnings("deprecation")
@Override
- public BlockState updateShape(BlockState state, Direction direction, BlockState neighborState, LevelAccessor level, BlockPos currentPos, BlockPos neighborPos) {
- if (TagPrefix.ORES.containsKey(this.tagPrefix) && TagPrefix.ORES.get(tagPrefix).isSand() && ConfigHolder.INSTANCE.worldgen.sandOresFall) {
+ public BlockState updateShape(BlockState state, Direction direction, BlockState neighborState, LevelAccessor level,
+ BlockPos currentPos, BlockPos neighborPos) {
+ if (TagPrefix.ORES.containsKey(this.tagPrefix) && TagPrefix.ORES.get(tagPrefix).isSand() &&
+ ConfigHolder.INSTANCE.worldgen.sandOresFall) {
level.scheduleTick(currentPos, this, this.getDelayAfterPlace());
}
return super.updateShape(state, direction, neighborState, level, currentPos, neighborPos);
@@ -89,11 +93,13 @@ public void tick(BlockState state, ServerLevel level, BlockPos pos, RandomSource
@Override
public void animateTick(BlockState state, Level level, BlockPos pos, RandomSource random) {
- if (!TagPrefix.ORES.containsKey(this.tagPrefix) || !TagPrefix.ORES.get(tagPrefix).isSand() || !ConfigHolder.INSTANCE.worldgen.sandOresFall) return;
+ if (!TagPrefix.ORES.containsKey(this.tagPrefix) || !TagPrefix.ORES.get(tagPrefix).isSand() ||
+ !ConfigHolder.INSTANCE.worldgen.sandOresFall)
+ return;
if (random.nextInt(16) == 0 && FallingBlock.isFree(level.getBlockState(pos.below()))) {
- double d = (double)pos.getX() + random.nextDouble();
- double e = (double)pos.getY() - 0.05;
- double f = (double)pos.getZ() + random.nextDouble();
+ double d = (double) pos.getX() + random.nextDouble();
+ double e = (double) pos.getY() - 0.05;
+ double f = (double) pos.getZ() + random.nextDouble();
level.addParticle(new BlockParticleOption(ParticleTypes.FALLING_DUST, state), d, e, f, 0.0, 0.0, 0.0);
}
}
@@ -104,8 +110,8 @@ public void animateTick(BlockState state, Level level, BlockPos pos, RandomSourc
protected int getDelayAfterPlace() {
return 2;
}
- /** End falling ore stuff */
+ /** End falling ore stuff */
@Override
public String getDescriptionId() {
@@ -116,5 +122,4 @@ public String getDescriptionId() {
public MutableComponent getName() {
return tagPrefix.getLocalizedName(material);
}
-
}
diff --git a/src/main/java/com/gregtechceu/gtceu/api/block/MaterialPipeBlock.java b/src/main/java/com/gregtechceu/gtceu/api/block/MaterialPipeBlock.java
index 7ce4e07150..812fbb14d1 100644
--- a/src/main/java/com/gregtechceu/gtceu/api/block/MaterialPipeBlock.java
+++ b/src/main/java/com/gregtechceu/gtceu/api/block/MaterialPipeBlock.java
@@ -1,10 +1,11 @@
package com.gregtechceu.gtceu.api.block;
import com.gregtechceu.gtceu.api.blockentity.PipeBlockEntity;
+import com.gregtechceu.gtceu.api.data.chemical.material.Material;
import com.gregtechceu.gtceu.api.pipenet.*;
import com.gregtechceu.gtceu.client.model.PipeModel;
import com.gregtechceu.gtceu.client.renderer.block.PipeBlockRenderer;
-import com.gregtechceu.gtceu.api.data.chemical.material.Material;
+
import net.minecraft.MethodsReturnNonnullByDefault;
import net.minecraft.client.color.block.BlockColor;
import net.minecraft.core.BlockPos;
@@ -14,6 +15,7 @@
import net.minecraft.world.level.block.state.BlockState;
import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.api.distmarker.OnlyIn;
+
import org.jetbrains.annotations.Nullable;
import javax.annotation.ParametersAreNonnullByDefault;
@@ -25,7 +27,10 @@
*/
@ParametersAreNonnullByDefault
@MethodsReturnNonnullByDefault
-public abstract class MaterialPipeBlock & IPipeType & IMaterialPipeType, NodeDataType, WorldPipeNetType extends LevelPipeNet>> extends PipeBlock {
+public abstract class MaterialPipeBlock<
+ PipeType extends Enum & IPipeType & IMaterialPipeType, NodeDataType,
+ WorldPipeNetType extends LevelPipeNet>>
+ extends PipeBlock {
public final Material material;
public final PipeBlockRenderer renderer;
@@ -41,8 +46,9 @@ public MaterialPipeBlock(Properties properties, PipeType pipeType, Material mate
@OnlyIn(Dist.CLIENT)
public static BlockColor tintedColor() {
return (blockState, level, blockPos, index) -> {
- if (blockState.getBlock() instanceof MaterialPipeBlock,?,?> block) {
- if (blockPos != null && level != null && level.getBlockEntity(blockPos) instanceof PipeBlockEntity,?> pipe && pipe.isPainted()) {
+ if (blockState.getBlock() instanceof MaterialPipeBlock, ?, ?> block) {
+ if (blockPos != null && level != null &&
+ level.getBlockEntity(blockPos) instanceof PipeBlockEntity, ?> pipe && pipe.isPainted()) {
return pipe.getRealColor();
}
return block.tinted(blockState, level, blockPos, index);
@@ -51,7 +57,8 @@ public static BlockColor tintedColor() {
};
}
- public int tinted(BlockState blockState, @Nullable BlockAndTintGetter blockAndTintGetter, @Nullable BlockPos blockPos, int index) {
+ public int tinted(BlockState blockState, @Nullable BlockAndTintGetter blockAndTintGetter,
+ @Nullable BlockPos blockPos, int index) {
return index == 0 || index == 1 ? material.getMaterialRGB() : -1;
}
@@ -68,7 +75,8 @@ public final NodeDataType createRawData(BlockState pState, @Nullable ItemStack p
@Override
public NodeDataType createProperties(IPipeNode pipeTile) {
PipeType pipeType = pipeTile.getPipeType();
- Material material = ((MaterialPipeBlock) pipeTile.getPipeBlock()).material;
+ Material material = ((MaterialPipeBlock) pipeTile
+ .getPipeBlock()).material;
if (pipeType == null || material == null) {
return getFallbackType();
}
diff --git a/src/main/java/com/gregtechceu/gtceu/api/block/MetaMachineBlock.java b/src/main/java/com/gregtechceu/gtceu/api/block/MetaMachineBlock.java
index 41f9a56459..f2c64a0d78 100644
--- a/src/main/java/com/gregtechceu/gtceu/api/block/MetaMachineBlock.java
+++ b/src/main/java/com/gregtechceu/gtceu/api/block/MetaMachineBlock.java
@@ -1,24 +1,20 @@
package com.gregtechceu.gtceu.api.block;
import com.gregtechceu.gtceu.api.data.RotationState;
-import com.gregtechceu.gtceu.api.item.ComponentItem;
import com.gregtechceu.gtceu.api.item.IGTTool;
import com.gregtechceu.gtceu.api.item.MetaMachineItem;
-import com.gregtechceu.gtceu.api.item.component.IInteractionItem;
-import com.gregtechceu.gtceu.api.item.component.IItemComponent;
-import com.gregtechceu.gtceu.api.item.tool.GTToolItem;
import com.gregtechceu.gtceu.api.item.tool.GTToolType;
import com.gregtechceu.gtceu.api.item.tool.ToolHelper;
-import com.gregtechceu.gtceu.api.item.tool.behavior.IToolBehavior;
import com.gregtechceu.gtceu.api.machine.IMachineBlockEntity;
import com.gregtechceu.gtceu.api.machine.MachineDefinition;
import com.gregtechceu.gtceu.api.machine.MetaMachine;
import com.gregtechceu.gtceu.api.machine.feature.*;
import com.gregtechceu.gtceu.common.data.GTItems;
import com.gregtechceu.gtceu.utils.GTUtil;
+
import com.lowdragmc.lowdraglib.client.renderer.IRenderer;
import com.lowdragmc.lowdraglib.utils.LocalizationUtils;
-import lombok.Getter;
+
import net.minecraft.MethodsReturnNonnullByDefault;
import net.minecraft.core.BlockPos;
import net.minecraft.core.Direction;
@@ -50,12 +46,15 @@
import net.minecraft.world.phys.Vec3;
import net.minecraft.world.phys.shapes.CollisionContext;
import net.minecraft.world.phys.shapes.VoxelShape;
+
+import lombok.Getter;
import org.jetbrains.annotations.Nullable;
-import javax.annotation.ParametersAreNonnullByDefault;
import java.util.List;
import java.util.Set;
+import javax.annotation.ParametersAreNonnullByDefault;
+
/**
* @author KilaBash
* @date 2023/2/17
@@ -101,7 +100,8 @@ public IRenderer getRenderer(BlockState state) {
@Override
public VoxelShape getShape(BlockState pState, BlockGetter pLevel, BlockPos pPos, CollisionContext pContext) {
- return getRotationState() == RotationState.NONE ? definition.getShape(Direction.NORTH) : definition.getShape(pState.getValue(getRotationState().property));
+ return getRotationState() == RotationState.NONE ? definition.getShape(Direction.NORTH) :
+ definition.getShape(pState.getValue(getRotationState().property));
}
@Override
@@ -119,7 +119,8 @@ public boolean isCollisionShapeFullBlock(BlockState state, BlockGetter level, Bl
}
@Override
- public void setPlacedBy(Level pLevel, BlockPos pPos, BlockState pState, @Nullable LivingEntity player, ItemStack pStack) {
+ public void setPlacedBy(Level pLevel, BlockPos pPos, BlockState pState, @Nullable LivingEntity player,
+ ItemStack pStack) {
if (!pLevel.isClientSide) {
var machine = getMachine(pLevel, pPos);
if (machine instanceof IDropSaveMachine dropSaveMachine) {
@@ -137,7 +138,7 @@ public void setPlacedBy(Level pLevel, BlockPos pPos, BlockState pState, @Nullabl
@Override
public void onPlace(BlockState state, Level level, BlockPos pos, BlockState oldState, boolean movedByPiston) {
super.onPlace(state, level, pos, oldState, movedByPiston);
- //needed to trigger block updates so machines connect to open cables properly.
+ // needed to trigger block updates so machines connect to open cables properly.
level.updateNeighbourForOutputSignal(pos, this);
}
@@ -150,7 +151,8 @@ public BlockState getStateForPlacement(BlockPlaceContext context) {
var state = defaultBlockState();
if (player != null && rotationState != RotationState.NONE) {
Vec3 pos = player.position();
- if (Math.abs(pos.x - (double) ((float) blockPos.getX() + 0.5F)) < 2.0D && Math.abs(pos.z - (double) ((float) blockPos.getZ() + 0.5F)) < 2.0D) {
+ if (Math.abs(pos.x - (double) ((float) blockPos.getX() + 0.5F)) < 2.0D &&
+ Math.abs(pos.z - (double) ((float) blockPos.getZ() + 0.5F)) < 2.0D) {
double d0 = pos.y + (double) player.getEyeHeight();
if (d0 - (double) blockPos.getY() > 2.0D && rotationState.test(Direction.UP)) {
return state.setValue(rotationState.property, Direction.UP);
@@ -182,9 +184,11 @@ public ItemStack getCloneItemStack(BlockGetter level, BlockPos pos, BlockState s
}
@Override
- public void appendHoverText(ItemStack stack, @Nullable BlockGetter level, List tooltip, TooltipFlag flag) {
+ public void appendHoverText(ItemStack stack, @Nullable BlockGetter level, List tooltip,
+ TooltipFlag flag) {
definition.getTooltipBuilder().accept(stack, tooltip);
- String mainKey = String.format("%s.machine.%s.tooltip", definition.getId().getNamespace(), definition.getId().getPath());
+ String mainKey = String.format("%s.machine.%s.tooltip", definition.getId().getNamespace(),
+ definition.getId().getPath());
if (LocalizationUtils.exist(mainKey)) {
tooltip.add(1, Component.translatable(mainKey));
}
@@ -201,7 +205,8 @@ public boolean triggerEvent(BlockState pState, Level pLevel, BlockPos pPos, int
@Override
public BlockState rotate(BlockState pState, Rotation pRotation) {
- return pState.setValue(this.rotationState.property, pRotation.rotate(pState.getValue(this.rotationState.property)));
+ return pState.setValue(this.rotationState.property,
+ pRotation.rotate(pState.getValue(this.rotationState.property)));
}
@Override
@@ -235,18 +240,18 @@ public List getDrops(BlockState state, LootParams.Builder builder) {
public void onRemove(BlockState pState, Level pLevel, BlockPos pPos, BlockState pNewState, boolean pIsMoving) {
if (pState.hasBlockEntity()) {
if (!pState.is(pNewState.getBlock())) { // new block
- if(getMachine(pLevel, pPos) instanceof IMachineLife machineLife) {
+ if (getMachine(pLevel, pPos) instanceof IMachineLife machineLife) {
machineLife.onMachineRemoved();
}
pLevel.updateNeighbourForOutputSignal(pPos, this);
pLevel.removeBlockEntity(pPos);
- } else if (rotationState != RotationState.NONE){ // old block different facing
+ } else if (rotationState != RotationState.NONE) { // old block different facing
var oldFacing = pState.getValue(rotationState.property);
var newFacing = pNewState.getValue(rotationState.property);
if (newFacing != oldFacing) {
var machine = getMachine(pLevel, pPos);
- if(machine != null) {
+ if (machine != null) {
machine.onRotated(oldFacing, newFacing);
}
}
@@ -255,7 +260,8 @@ public void onRemove(BlockState pState, Level pLevel, BlockPos pPos, BlockState
}
@Override
- public InteractionResult use(BlockState state, Level world, BlockPos pos, Player player, InteractionHand hand, BlockHitResult hit) {
+ public InteractionResult use(BlockState state, Level world, BlockPos pos, Player player, InteractionHand hand,
+ BlockHitResult hit) {
var machine = getMachine(world, pos);
ItemStack itemStack = player.getItemInHand(hand);
boolean shouldOpenUi = true;
@@ -291,7 +297,6 @@ public InteractionResult use(BlockState state, Level world, BlockPos pos, Player
return shouldOpenUi ? InteractionResult.PASS : InteractionResult.CONSUME;
}
-
public boolean canConnectRedstone(BlockGetter level, BlockPos pos, Direction side) {
return getMachine(level, pos).canConnectRedstone(side);
}
@@ -315,7 +320,8 @@ public int getAnalogOutputSignal(BlockState state, Level level, BlockPos pos) {
}
@Override
- public void neighborChanged(BlockState state, Level level, BlockPos pos, Block block, BlockPos fromPos, boolean isMoving) {
+ public void neighborChanged(BlockState state, Level level, BlockPos pos, Block block, BlockPos fromPos,
+ boolean isMoving) {
var machine = getMachine(level, pos);
if (machine != null) {
machine.onNeighborChanged(block, fromPos, isMoving);
@@ -323,10 +329,9 @@ public void neighborChanged(BlockState state, Level level, BlockPos pos, Block b
super.neighborChanged(state, level, pos, block, fromPos, isMoving);
}
-
-
@Override
- public BlockState getBlockAppearance(BlockState state, BlockAndTintGetter level, BlockPos pos, Direction side, BlockState sourceState, BlockPos sourcePos) {
+ public BlockState getBlockAppearance(BlockState state, BlockAndTintGetter level, BlockPos pos, Direction side,
+ BlockState sourceState, BlockPos sourcePos) {
var machine = getMachine(level, pos);
if (machine != null) {
return machine.getBlockAppearance(state, level, pos, side, sourceState, sourcePos);
diff --git a/src/main/java/com/gregtechceu/gtceu/api/block/OreBlock.java b/src/main/java/com/gregtechceu/gtceu/api/block/OreBlock.java
index 582fbf36be..d4f8d5de0b 100644
--- a/src/main/java/com/gregtechceu/gtceu/api/block/OreBlock.java
+++ b/src/main/java/com/gregtechceu/gtceu/api/block/OreBlock.java
@@ -1,12 +1,13 @@
package com.gregtechceu.gtceu.api.block;
import com.gregtechceu.gtceu.api.data.chemical.material.Material;
-import com.gregtechceu.gtceu.api.data.chemical.material.properties.PropertyKey;
import com.gregtechceu.gtceu.api.data.tag.TagPrefix;
import com.gregtechceu.gtceu.client.renderer.block.OreBlockRenderer;
+
import com.lowdragmc.lowdraglib.Platform;
public class OreBlock extends MaterialBlock {
+
public OreBlock(Properties properties, TagPrefix tagPrefix, Material material, boolean registerModel) {
super(properties, tagPrefix, material, false);
if (registerModel && Platform.isClient()) {
diff --git a/src/main/java/com/gregtechceu/gtceu/api/block/PipeBlock.java b/src/main/java/com/gregtechceu/gtceu/api/block/PipeBlock.java
index cd8283bbc6..278bef0a7d 100644
--- a/src/main/java/com/gregtechceu/gtceu/api/block/PipeBlock.java
+++ b/src/main/java/com/gregtechceu/gtceu/api/block/PipeBlock.java
@@ -17,7 +17,9 @@
import com.gregtechceu.gtceu.common.item.CoverPlaceBehavior;
import com.gregtechceu.gtceu.config.ConfigHolder;
import com.gregtechceu.gtceu.utils.GTUtil;
+
import com.lowdragmc.lowdraglib.client.renderer.IBlockRendererProvider;
+
import net.minecraft.MethodsReturnNonnullByDefault;
import net.minecraft.core.BlockPos;
import net.minecraft.core.Direction;
@@ -50,13 +52,15 @@
import net.minecraft.world.phys.shapes.EntityCollisionContext;
import net.minecraft.world.phys.shapes.Shapes;
import net.minecraft.world.phys.shapes.VoxelShape;
+
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
-import javax.annotation.ParametersAreNonnullByDefault;
import java.util.List;
import java.util.Set;
+import javax.annotation.ParametersAreNonnullByDefault;
+
/**
* @author KilaBash
* @date 2023/2/28
@@ -65,7 +69,10 @@
@SuppressWarnings("deprecation")
@ParametersAreNonnullByDefault
@MethodsReturnNonnullByDefault
-public abstract class PipeBlock & IPipeType, NodeDataType, WorldPipeNetType extends LevelPipeNet>> extends AppearanceBlock implements EntityBlock, IBlockRendererProvider {
+public abstract class PipeBlock & IPipeType, NodeDataType,
+ WorldPipeNetType extends LevelPipeNet>> extends AppearanceBlock
+ implements EntityBlock, IBlockRendererProvider {
+
public final PipeType pipeType;
public PipeBlock(Properties properties, PipeType pipeType) {
@@ -110,7 +117,8 @@ public NodeDataType createProperties(BlockState state, @Nullable ItemStack stack
protected abstract PipeModel getPipeModel();
- public void updateActiveNodeStatus(@NotNull Level worldIn, BlockPos pos, IPipeNode pipeTile) {
+ public void updateActiveNodeStatus(@NotNull Level worldIn, BlockPos pos,
+ IPipeNode pipeTile) {
if (worldIn.isClientSide) return;
PipeNet pipeNet = getWorldPipeNet((ServerLevel) worldIn).getNetFromPos(pos);
@@ -135,7 +143,7 @@ public void onNeighborChange(BlockState state, LevelReader level, BlockPos pos,
if (!ConfigHolder.INSTANCE.machines.gt6StylePipesCables) {
boolean open = pipeTile.isConnected(facing);
boolean canConnect = pipeTile.getCoverContainer().getCoverAtSide(facing) != null ||
- canConnect(pipeTile, facing);
+ canConnect(pipeTile, facing);
if (!open && canConnect)
pipeTile.setConnection(facing, true, false);
if (open && !canConnect)
@@ -155,7 +163,8 @@ public void onNeighborChange(BlockState state, LevelReader level, BlockPos pos,
@Nullable
@SuppressWarnings("unchecked")
public IPipeNode getPipeTile(BlockGetter level, BlockPos pos) {
- if (level.getBlockEntity(pos) instanceof IPipeNode,?> pipeTile && pipeTile.getPipeType().type().equals(pipeType.type())) {
+ if (level.getBlockEntity(pos) instanceof IPipeNode, ?> pipeTile &&
+ pipeTile.getPipeType().type().equals(pipeType.type())) {
return (IPipeNode) pipeTile;
}
return null;
@@ -175,7 +184,7 @@ public boolean canConnect(IPipeNode selfTile, Direction
return false;
}
BlockEntity other = selfTile.getNeighbor(facing);
- if (other instanceof IPipeNode,?> node) {
+ if (other instanceof IPipeNode, ?> node) {
cover = node.getCoverContainer().getCoverAtSide(facing.getOpposite());
if (cover != null && !cover.canPipePassThrough())
return false;
@@ -191,7 +200,8 @@ public abstract boolean canPipeConnectToBlock(IPipeNode
@Nullable BlockEntity tile);
@Override
- public void setPlacedBy(Level level, BlockPos pos, BlockState state, @Nullable LivingEntity placer, ItemStack stack) {
+ public void setPlacedBy(Level level, BlockPos pos, BlockState state, @Nullable LivingEntity placer,
+ ItemStack stack) {
super.setPlacedBy(level, pos, state, placer, stack);
IPipeNode pipeTile = getPipeTile(level, pos);
if (pipeTile != null) {
@@ -200,7 +210,9 @@ public void setPlacedBy(Level level, BlockPos pos, BlockState state, @Nullable L
ItemStack offhand = placer.getOffhandItem();
for (int i = 0; i < DyeColor.values().length; i++) {
if (offhand.is(GTItems.SPRAY_CAN_DYES[i].get())) {
- ((IInteractionItem)GTItems.SPRAY_CAN_DYES[i].get().getComponents().get(0)).useOn(new UseOnContext(player, InteractionHand.OFF_HAND, new BlockHitResult(Vec3.ZERO, player.getDirection(), pos, false)));
+ ((IInteractionItem) GTItems.SPRAY_CAN_DYES[i].get().getComponents().get(0))
+ .useOn(new UseOnContext(player, InteractionHand.OFF_HAND,
+ new BlockHitResult(Vec3.ZERO, player.getDirection(), pos, false)));
break;
}
}
@@ -214,7 +226,8 @@ public void onPlace(BlockState state, Level level, BlockPos pos, BlockState oldS
}
@Override
- public void neighborChanged(BlockState state, Level level, BlockPos pos, Block block, BlockPos fromPos, boolean isMoving) {
+ public void neighborChanged(BlockState state, Level level, BlockPos pos, Block block, BlockPos fromPos,
+ boolean isMoving) {
if (level.isClientSide) return;
IPipeNode pipeTile = getPipeTile(level, pos);
if (pipeTile != null) {
@@ -223,7 +236,7 @@ public void neighborChanged(BlockState state, Level level, BlockPos pos, Block b
if (!ConfigHolder.INSTANCE.machines.gt6StylePipesCables) {
boolean open = pipeTile.isConnected(facing);
boolean canConnect = pipeTile.getCoverContainer().getCoverAtSide(facing) != null ||
- this.canConnect(pipeTile, facing);
+ this.canConnect(pipeTile, facing);
if (!open && canConnect && state.getBlock() != block)
pipeTile.setConnection(facing, true, false);
if (open && !canConnect)
@@ -267,7 +280,8 @@ public void tick(BlockState state, ServerLevel level, BlockPos pos, RandomSource
}
@Override
- public InteractionResult use(BlockState state, Level level, BlockPos pos, Player player, InteractionHand hand, BlockHitResult hit) {
+ public InteractionResult use(BlockState state, Level level, BlockPos pos, Player player, InteractionHand hand,
+ BlockHitResult hit) {
ItemStack itemStack = player.getItemInHand(hand);
BlockEntity entity = level.getBlockEntity(pos);
@@ -305,13 +319,16 @@ public VoxelShape getShape(BlockState pState, BlockGetter pLevel, BlockPos pPos,
var held = player.getMainHandItem();
Set types = Set.of(GTToolType.WIRE_CUTTER, GTToolType.WRENCH);
BlockEntity tile = pLevel.getBlockEntity(pPos);
- if (tile instanceof PipeBlockEntity,?> pipeTile) {
+ if (tile instanceof PipeBlockEntity, ?> pipeTile) {
types = Set.of(pipeTile.getPipeTuneTool());
}
if (types.stream().anyMatch(type -> type.itemTags.stream().anyMatch(held::is)) ||
- CoverPlaceBehavior.isCoverBehaviorItem(held, coverable::hasAnyCover, coverDef -> ICoverable.canPlaceCover(coverDef, coverable)) ||
- (held.getItem() instanceof BlockItem blockItem && blockItem.getBlock() instanceof PipeBlock,?,?> pipeBlock && pipeBlock.pipeType.type().equals(pipeType.type()))) {
+ CoverPlaceBehavior.isCoverBehaviorItem(held, coverable::hasAnyCover,
+ coverDef -> ICoverable.canPlaceCover(coverDef, coverable)) ||
+ (held.getItem() instanceof BlockItem blockItem &&
+ blockItem.getBlock() instanceof PipeBlock, ?, ?> pipeBlock &&
+ pipeBlock.pipeType.type().equals(pipeType.type()))) {
return Shapes.block();
}
}
@@ -322,7 +339,8 @@ public VoxelShape getShape(BlockState pState, BlockGetter pLevel, BlockPos pPos,
@Nullable
@Override
- public BlockEntityTicker getTicker(Level level, BlockState state, BlockEntityType blockEntityType) {
+ public BlockEntityTicker getTicker(Level level, BlockState state,
+ BlockEntityType blockEntityType) {
if (blockEntityType == getBlockEntityType()) {
if (!level.isClientSide && state.getValue(BlockProperties.SERVER_TICK)) {
return (pLevel, pPos, pState, pTile) -> {
@@ -335,12 +353,13 @@ public BlockEntityTicker getTicker(Level level, Block
return null;
}
-
@Override
- public BlockState getBlockAppearance(BlockState state, BlockAndTintGetter level, BlockPos pos, Direction side, BlockState sourceState, BlockPos sourcePos) {
+ public BlockState getBlockAppearance(BlockState state, BlockAndTintGetter level, BlockPos pos, Direction side,
+ BlockState sourceState, BlockPos sourcePos) {
var pipe = getPipeTile(level, pos);
if (pipe != null) {
- var appearance = pipe.getCoverContainer().getBlockAppearance(state, level, pos, side, sourceState, sourcePos);
+ var appearance = pipe.getCoverContainer().getBlockAppearance(state, level, pos, side, sourceState,
+ sourcePos);
if (appearance != null) return appearance;
}
return super.getBlockAppearance(state, level, pos, side, sourceState, sourcePos);
@@ -350,7 +369,7 @@ public BlockState getBlockAppearance(BlockState state, BlockAndTintGetter level,
public List getDrops(BlockState state, LootParams.Builder builder) {
var context = builder.withParameter(LootContextParams.BLOCK_STATE, state).create(LootContextParamSets.BLOCK);
BlockEntity tileEntity = context.getParamOrNull(LootContextParams.BLOCK_ENTITY);
- if (tileEntity instanceof IPipeNode,?> pipeTile) {
+ if (tileEntity instanceof IPipeNode, ?> pipeTile) {
for (Direction direction : GTUtil.DIRECTIONS) {
pipeTile.getCoverContainer().removeCover(direction, null);
}
diff --git a/src/main/java/com/gregtechceu/gtceu/api/block/RendererBlock.java b/src/main/java/com/gregtechceu/gtceu/api/block/RendererBlock.java
index 0e22cd535a..d2f67ef700 100644
--- a/src/main/java/com/gregtechceu/gtceu/api/block/RendererBlock.java
+++ b/src/main/java/com/gregtechceu/gtceu/api/block/RendererBlock.java
@@ -2,9 +2,11 @@
import com.lowdragmc.lowdraglib.client.renderer.IBlockRendererProvider;
import com.lowdragmc.lowdraglib.client.renderer.IRenderer;
+
import net.minecraft.world.level.block.state.BlockState;
import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.api.distmarker.OnlyIn;
+
import org.jetbrains.annotations.Nullable;
/**
@@ -13,6 +15,7 @@
* @implNote BlockStateModelBlock
*/
public class RendererBlock extends AppearanceBlock implements IBlockRendererProvider {
+
public final IRenderer renderer;
public RendererBlock(Properties properties, IRenderer renderer) {
@@ -26,5 +29,4 @@ public RendererBlock(Properties properties, IRenderer renderer) {
public IRenderer getRenderer(BlockState state) {
return renderer;
}
-
}
diff --git a/src/main/java/com/gregtechceu/gtceu/api/block/RendererGlassBlock.java b/src/main/java/com/gregtechceu/gtceu/api/block/RendererGlassBlock.java
index 62077bd9d9..f60a498518 100644
--- a/src/main/java/com/gregtechceu/gtceu/api/block/RendererGlassBlock.java
+++ b/src/main/java/com/gregtechceu/gtceu/api/block/RendererGlassBlock.java
@@ -1,6 +1,7 @@
package com.gregtechceu.gtceu.api.block;
import com.lowdragmc.lowdraglib.client.renderer.IRenderer;
+
import net.minecraft.core.BlockPos;
import net.minecraft.core.Direction;
import net.minecraft.world.level.BlockGetter;
@@ -15,6 +16,7 @@
* @implNote RendererGlassBlock
*/
public class RendererGlassBlock extends RendererBlock {
+
public RendererGlassBlock(Properties properties, IRenderer renderer) {
super(properties, renderer);
}
diff --git a/src/main/java/com/gregtechceu/gtceu/api/block/RendererMaterialBlock.java b/src/main/java/com/gregtechceu/gtceu/api/block/RendererMaterialBlock.java
index f9491be979..ddd25dd4e5 100644
--- a/src/main/java/com/gregtechceu/gtceu/api/block/RendererMaterialBlock.java
+++ b/src/main/java/com/gregtechceu/gtceu/api/block/RendererMaterialBlock.java
@@ -2,17 +2,22 @@
import com.gregtechceu.gtceu.api.data.chemical.material.Material;
import com.gregtechceu.gtceu.api.data.tag.TagPrefix;
+
import com.lowdragmc.lowdraglib.client.renderer.IBlockRendererProvider;
import com.lowdragmc.lowdraglib.client.renderer.IRenderer;
+
import net.minecraft.world.level.block.state.BlockState;
import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.api.distmarker.OnlyIn;
+
import org.jetbrains.annotations.Nullable;
public class RendererMaterialBlock extends MaterialBlock implements IBlockRendererProvider {
+
public final IRenderer renderer;
- public RendererMaterialBlock(Properties properties, TagPrefix tagPrefix, Material material, @Nullable IRenderer renderer) {
+ public RendererMaterialBlock(Properties properties, TagPrefix tagPrefix, Material material,
+ @Nullable IRenderer renderer) {
super(properties, tagPrefix, material, false);
this.renderer = renderer;
}
diff --git a/src/main/java/com/gregtechceu/gtceu/api/block/SimpleCoilType.java b/src/main/java/com/gregtechceu/gtceu/api/block/SimpleCoilType.java
index 8495f8023c..4d8e733708 100644
--- a/src/main/java/com/gregtechceu/gtceu/api/block/SimpleCoilType.java
+++ b/src/main/java/com/gregtechceu/gtceu/api/block/SimpleCoilType.java
@@ -2,22 +2,24 @@
import com.gregtechceu.gtceu.api.data.chemical.material.Material;
import com.gregtechceu.gtceu.utils.SupplierMemoizer;
-import lombok.Getter;
+
import net.minecraft.resources.ResourceLocation;
import net.minecraft.util.StringRepresentable;
+import lombok.Getter;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import java.util.function.Supplier;
public class SimpleCoilType implements ICoilType, StringRepresentable {
+
@Getter
private final String name;
- //electric blast furnace properties
+ // electric blast furnace properties
@Getter
private final int coilTemperature;
- //multi smelter properties
+ // multi smelter properties
@Getter
private final int level;
@Getter
@@ -29,7 +31,8 @@ public class SimpleCoilType implements ICoilType, StringRepresentable {
@Getter
private final ResourceLocation texture;
- public SimpleCoilType(String name, int coilTemperature, int level, int energyDiscount, int tier, @NotNull Supplier<@Nullable Material> material, ResourceLocation texture) {
+ public SimpleCoilType(String name, int coilTemperature, int level, int energyDiscount, int tier,
+ @NotNull Supplier<@Nullable Material> material, ResourceLocation texture) {
this.name = name;
this.coilTemperature = coilTemperature;
this.level = level;
diff --git a/src/main/java/com/gregtechceu/gtceu/api/blockentity/IPaintable.java b/src/main/java/com/gregtechceu/gtceu/api/blockentity/IPaintable.java
index 6b006b9ee2..4513aed152 100644
--- a/src/main/java/com/gregtechceu/gtceu/api/blockentity/IPaintable.java
+++ b/src/main/java/com/gregtechceu/gtceu/api/blockentity/IPaintable.java
@@ -10,6 +10,7 @@ public interface IPaintable {
/**
* Get painting color.
* It's not the real color of this block.
+ *
* @return -1 - non painted.
*/
int getPaintingColor();
diff --git a/src/main/java/com/gregtechceu/gtceu/api/blockentity/ITickSubscription.java b/src/main/java/com/gregtechceu/gtceu/api/blockentity/ITickSubscription.java
index 2f3addc221..2b0c15991a 100644
--- a/src/main/java/com/gregtechceu/gtceu/api/blockentity/ITickSubscription.java
+++ b/src/main/java/com/gregtechceu/gtceu/api/blockentity/ITickSubscription.java
@@ -1,6 +1,7 @@
package com.gregtechceu.gtceu.api.blockentity;
import com.gregtechceu.gtceu.api.machine.TickableSubscription;
+
import net.minecraft.world.level.block.entity.BlockEntity;
import org.jetbrains.annotations.Nullable;
@@ -13,7 +14,8 @@
public interface ITickSubscription {
/**
- * For initialization. To get level and property fields after auto sync, you can subscribe it in {@link BlockEntity#clearRemoved()} event.
+ * For initialization. To get level and property fields after auto sync, you can subscribe it in
+ * {@link BlockEntity#clearRemoved()} event.
*/
@Nullable
TickableSubscription subscribeServerTick(Runnable runnable);
@@ -27,5 +29,4 @@ default TickableSubscription subscribeServerTick(@Nullable TickableSubscription
}
return last;
}
-
}
diff --git a/src/main/java/com/gregtechceu/gtceu/api/blockentity/MetaMachineBlockEntity.java b/src/main/java/com/gregtechceu/gtceu/api/blockentity/MetaMachineBlockEntity.java
index 7a223fc681..49e5ef21ac 100644
--- a/src/main/java/com/gregtechceu/gtceu/api/blockentity/MetaMachineBlockEntity.java
+++ b/src/main/java/com/gregtechceu/gtceu/api/blockentity/MetaMachineBlockEntity.java
@@ -1,7 +1,5 @@
package com.gregtechceu.gtceu.api.blockentity;
-import appeng.api.networking.IInWorldGridNodeHost;
-import appeng.capabilities.Capabilities;
import com.gregtechceu.gtceu.GTCEu;
import com.gregtechceu.gtceu.api.GTValues;
import com.gregtechceu.gtceu.api.capability.*;
@@ -20,6 +18,7 @@
import com.gregtechceu.gtceu.client.renderer.GTRendererProvider;
import com.gregtechceu.gtceu.common.pipelike.fluidpipe.longdistance.LDFluidEndpointMachine;
import com.gregtechceu.gtceu.common.pipelike.item.longdistance.LDItemEndpointMachine;
+
import com.lowdragmc.lowdraglib.client.renderer.IRenderer;
import com.lowdragmc.lowdraglib.gui.texture.ResourceTexture;
import com.lowdragmc.lowdraglib.side.fluid.FluidTransferHelper;
@@ -28,7 +27,7 @@
import com.lowdragmc.lowdraglib.side.item.IItemTransfer;
import com.lowdragmc.lowdraglib.side.item.forge.ItemTransferHelperImpl;
import com.lowdragmc.lowdraglib.syncdata.managed.MultiManagedStorage;
-import lombok.Getter;
+
import net.minecraft.core.BlockPos;
import net.minecraft.core.Direction;
import net.minecraft.world.entity.player.Player;
@@ -42,6 +41,10 @@
import net.minecraftforge.common.capabilities.Capability;
import net.minecraftforge.common.capabilities.ForgeCapabilities;
import net.minecraftforge.common.util.LazyOptional;
+
+import appeng.api.networking.IInWorldGridNodeHost;
+import appeng.capabilities.Capabilities;
+import lombok.Getter;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
@@ -56,6 +59,7 @@
* @implNote MetaMachineBlockEntity
*/
public class MetaMachineBlockEntity extends BlockEntity implements IMachineBlockEntity {
+
public final MultiManagedStorage managedStorage = new MultiManagedStorage();
@Getter
public final MetaMachine metaMachine;
@@ -66,12 +70,12 @@ protected MetaMachineBlockEntity(BlockEntityType> type, BlockPos pos, BlockSta
this.metaMachine = getDefinition().createMetaMachine(this);
}
- public static MetaMachineBlockEntity createBlockEntity(BlockEntityType> type, BlockPos pos, BlockState blockState) {
+ public static MetaMachineBlockEntity createBlockEntity(BlockEntityType> type, BlockPos pos,
+ BlockState blockState) {
return new MetaMachineBlockEntity(type, pos, blockState);
}
- public static void onBlockEntityRegister(BlockEntityType metaMachineBlockEntityBlockEntityType) {
- }
+ public static void onBlockEntityRegister(BlockEntityType metaMachineBlockEntityBlockEntityType) {}
@Override
public MultiManagedStorage getRootStorage() {
@@ -89,7 +93,6 @@ public boolean triggerEvent(int id, int para) {
return false;
}
-
@Override
public long getOffset() {
return offset;
@@ -131,7 +134,8 @@ public void setChanged() {
}
@Nullable
- public static LazyOptional getCapability(MetaMachine machine, @NotNull Capability cap, @Nullable Direction side) {
+ public static LazyOptional getCapability(MetaMachine machine, @NotNull Capability cap,
+ @Nullable Direction side) {
if (cap == GTCapability.CAPABILITY_COVERABLE) {
return GTCapability.CAPABILITY_COVERABLE.orEmpty(cap, LazyOptional.of(machine::getCoverContainer));
} else if (cap == GTCapability.CAPABILITY_TOOLABLE) {
@@ -166,23 +170,28 @@ public static LazyOptional getCapability(MetaMachine machine, @NotNull Ca
}
var list = getCapabilitiesFromTraits(machine.getTraits(), side, IEnergyContainer.class);
if (!list.isEmpty()) {
- return GTCapability.CAPABILITY_ENERGY_CONTAINER.orEmpty(cap, LazyOptional.of(() -> list.size() == 1 ? list.get(0) : new EnergyContainerList(list)));
+ return GTCapability.CAPABILITY_ENERGY_CONTAINER.orEmpty(cap,
+ LazyOptional.of(() -> list.size() == 1 ? list.get(0) : new EnergyContainerList(list)));
}
} else if (cap == GTCapability.CAPABILITY_ENERGY_INFO_PROVIDER) {
if (machine instanceof IEnergyInfoProvider energyInfoProvider) {
- return GTCapability.CAPABILITY_ENERGY_INFO_PROVIDER.orEmpty(cap, LazyOptional.of(() -> energyInfoProvider));
+ return GTCapability.CAPABILITY_ENERGY_INFO_PROVIDER.orEmpty(cap,
+ LazyOptional.of(() -> energyInfoProvider));
}
var list = getCapabilitiesFromTraits(machine.getTraits(), side, IEnergyInfoProvider.class);
if (!list.isEmpty()) {
- return GTCapability.CAPABILITY_ENERGY_INFO_PROVIDER.orEmpty(cap, LazyOptional.of(() -> list.size() == 1 ? list.get(0) : new EnergyInfoProviderList(list)));
+ return GTCapability.CAPABILITY_ENERGY_INFO_PROVIDER.orEmpty(cap,
+ LazyOptional.of(() -> list.size() == 1 ? list.get(0) : new EnergyInfoProviderList(list)));
}
} else if (cap == GTCapability.CAPABILITY_CLEANROOM_RECEIVER) {
if (machine instanceof ICleanroomReceiver cleanroomReceiver) {
- return GTCapability.CAPABILITY_CLEANROOM_RECEIVER.orEmpty(cap, LazyOptional.of(() -> cleanroomReceiver));
+ return GTCapability.CAPABILITY_CLEANROOM_RECEIVER.orEmpty(cap,
+ LazyOptional.of(() -> cleanroomReceiver));
}
} else if (cap == GTCapability.CAPABILITY_MAINTENANCE_MACHINE) {
if (machine instanceof IMaintenanceMachine maintenanceMachine) {
- return GTCapability.CAPABILITY_MAINTENANCE_MACHINE.orEmpty(cap, LazyOptional.of(() -> maintenanceMachine));
+ return GTCapability.CAPABILITY_MAINTENANCE_MACHINE.orEmpty(cap,
+ LazyOptional.of(() -> maintenanceMachine));
}
} else if (cap == ForgeCapabilities.ITEM_HANDLER) {
if (machine instanceof LDItemEndpointMachine fluidEndpointMachine) {
@@ -190,16 +199,17 @@ public static LazyOptional getCapability(MetaMachine machine, @NotNull Ca
ILDEndpoint endpoint = fluidEndpointMachine.getLink();
if (endpoint == null) return null;
Direction outputFacing = fluidEndpointMachine.getOutputFacing();
- IItemTransfer transfer = ItemTransferHelperImpl.getItemTransfer(machine.getLevel(), endpoint.getPos().relative(outputFacing), outputFacing.getOpposite());
+ IItemTransfer transfer = ItemTransferHelperImpl.getItemTransfer(machine.getLevel(),
+ endpoint.getPos().relative(outputFacing), outputFacing.getOpposite());
if (transfer != null) {
- return ForgeCapabilities.ITEM_HANDLER.orEmpty(cap, LazyOptional.of(() ->
- ItemTransferHelperImpl.toItemHandler(new LDItemEndpointMachine.ItemHandlerWrapper(transfer))
- ));
+ return ForgeCapabilities.ITEM_HANDLER.orEmpty(cap, LazyOptional.of(() -> ItemTransferHelperImpl
+ .toItemHandler(new LDItemEndpointMachine.ItemHandlerWrapper(transfer))));
}
}
var transfer = machine.getItemTransferCap(side, true);
if (transfer != null) {
- return ForgeCapabilities.ITEM_HANDLER.orEmpty(cap, LazyOptional.of(() -> ItemTransferHelperImpl.toItemHandler(transfer)));
+ return ForgeCapabilities.ITEM_HANDLER.orEmpty(cap,
+ LazyOptional.of(() -> ItemTransferHelperImpl.toItemHandler(transfer)));
}
} else if (cap == ForgeCapabilities.FLUID_HANDLER) {
if (machine instanceof LDFluidEndpointMachine fluidEndpointMachine) {
@@ -207,25 +217,28 @@ public static LazyOptional getCapability(MetaMachine machine, @NotNull Ca
ILDEndpoint endpoint = fluidEndpointMachine.getLink();
if (endpoint == null) return null;
Direction outputFacing = fluidEndpointMachine.getOutputFacing();
- IFluidTransfer transfer = FluidTransferHelper.getFluidTransfer(machine.getLevel(), endpoint.getPos().relative(outputFacing), outputFacing.getOpposite());
+ IFluidTransfer transfer = FluidTransferHelper.getFluidTransfer(machine.getLevel(),
+ endpoint.getPos().relative(outputFacing), outputFacing.getOpposite());
if (transfer != null) {
- return ForgeCapabilities.FLUID_HANDLER.orEmpty(cap, LazyOptional.of(() ->
- FluidTransferHelperImpl.toFluidHandler(new LDFluidEndpointMachine.FluidHandlerWrapper(transfer))
- ));
+ return ForgeCapabilities.FLUID_HANDLER.orEmpty(cap, LazyOptional.of(() -> FluidTransferHelperImpl
+ .toFluidHandler(new LDFluidEndpointMachine.FluidHandlerWrapper(transfer))));
}
}
var transfer = machine.getFluidTransferCap(side, true);
if (transfer != null) {
- return ForgeCapabilities.FLUID_HANDLER.orEmpty(cap, LazyOptional.of(() -> FluidTransferHelperImpl.toFluidHandler(transfer)));
+ return ForgeCapabilities.FLUID_HANDLER.orEmpty(cap,
+ LazyOptional.of(() -> FluidTransferHelperImpl.toFluidHandler(transfer)));
}
} else if (cap == ForgeCapabilities.ENERGY) {
if (machine instanceof IPlatformEnergyStorage platformEnergyStorage) {
- return ForgeCapabilities.ENERGY.orEmpty(cap, LazyOptional.of(() -> GTEnergyHelperImpl.toEnergyStorage(platformEnergyStorage)));
+ return ForgeCapabilities.ENERGY.orEmpty(cap,
+ LazyOptional.of(() -> GTEnergyHelperImpl.toEnergyStorage(platformEnergyStorage)));
}
var list = getCapabilitiesFromTraits(machine.getTraits(), side, IPlatformEnergyStorage.class);
if (!list.isEmpty()) {
// TODO wrap list in the future
- return ForgeCapabilities.ENERGY.orEmpty(cap, LazyOptional.of(() -> GTEnergyHelperImpl.toEnergyStorage(list.get(0))));
+ return ForgeCapabilities.ENERGY.orEmpty(cap,
+ LazyOptional.of(() -> GTEnergyHelperImpl.toEnergyStorage(list.get(0))));
}
} else if (cap == GTCapability.CAPABILITY_LASER) {
if (machine instanceof ILaserContainer energyContainer) {
@@ -233,11 +246,13 @@ public static LazyOptional getCapability(MetaMachine machine, @NotNull Ca
}
var list = getCapabilitiesFromTraits(machine.getTraits(), side, ILaserContainer.class);
if (!list.isEmpty()) {
- return GTCapability.CAPABILITY_LASER.orEmpty(cap, LazyOptional.of(() -> list.size() == 1 ? list.get(0) : new LaserContainerList(list)));
+ return GTCapability.CAPABILITY_LASER.orEmpty(cap,
+ LazyOptional.of(() -> list.size() == 1 ? list.get(0) : new LaserContainerList(list)));
}
} else if (cap == GTCapability.CAPABILITY_COMPUTATION_PROVIDER) {
if (machine instanceof IOpticalComputationProvider computationProvider) {
- return GTCapability.CAPABILITY_COMPUTATION_PROVIDER.orEmpty(cap, LazyOptional.of(() -> computationProvider));
+ return GTCapability.CAPABILITY_COMPUTATION_PROVIDER.orEmpty(cap,
+ LazyOptional.of(() -> computationProvider));
}
var list = getCapabilitiesFromTraits(machine.getTraits(), side, IOpticalComputationProvider.class);
if (!list.isEmpty()) {
@@ -267,7 +282,8 @@ public static LazyOptional getCapability(MetaMachine machine, @NotNull Ca
return null;
}
- public static List getCapabilitiesFromTraits(List traits, Direction accessSide, Class capability) {
+ public static List getCapabilitiesFromTraits(List traits, Direction accessSide,
+ Class capability) {
if (traits.isEmpty()) return Collections.emptyList();
List list = new ArrayList<>();
for (MachineTrait trait : traits) {
@@ -289,7 +305,7 @@ public AABB getRenderBoundingBox() {
if (instance != null) {
IRenderer renderer = instance.getRenderer(this);
if (renderer != null) {
- if (renderer.getViewDistance() == 64 /*the default*/) {
+ if (renderer.getViewDistance() == 64 /* the default */) {
return new AABB(worldPosition.offset(-1, 0, -1), worldPosition.offset(2, 2, 2));
}
diff --git a/src/main/java/com/gregtechceu/gtceu/api/blockentity/PipeBlockEntity.java b/src/main/java/com/gregtechceu/gtceu/api/blockentity/PipeBlockEntity.java
index 1313ec1b53..e0bd3ac205 100644
--- a/src/main/java/com/gregtechceu/gtceu/api/blockentity/PipeBlockEntity.java
+++ b/src/main/java/com/gregtechceu/gtceu/api/blockentity/PipeBlockEntity.java
@@ -13,20 +13,19 @@
import com.gregtechceu.gtceu.api.item.tool.IToolGridHighLight;
import com.gregtechceu.gtceu.api.machine.TickableSubscription;
import com.gregtechceu.gtceu.api.pipenet.*;
-import com.lowdragmc.lowdraglib.syncdata.IEnhancedManaged;
-import com.lowdragmc.lowdraglib.syncdata.annotation.RequireRerender;
import com.gregtechceu.gtceu.utils.GTUtil;
+
import com.lowdragmc.lowdraglib.gui.texture.ResourceTexture;
+import com.lowdragmc.lowdraglib.syncdata.IEnhancedManaged;
import com.lowdragmc.lowdraglib.syncdata.IManagedStorage;
import com.lowdragmc.lowdraglib.syncdata.annotation.DescSynced;
import com.lowdragmc.lowdraglib.syncdata.annotation.Persisted;
+import com.lowdragmc.lowdraglib.syncdata.annotation.RequireRerender;
import com.lowdragmc.lowdraglib.syncdata.blockentity.IAsyncAutoSyncBlockEntity;
import com.lowdragmc.lowdraglib.syncdata.blockentity.IAutoPersistBlockEntity;
import com.lowdragmc.lowdraglib.syncdata.field.FieldManagedStorage;
import com.lowdragmc.lowdraglib.syncdata.field.ManagedFieldHolder;
-import com.mojang.datafixers.util.Pair;
-import lombok.Getter;
-import lombok.Setter;
+
import net.minecraft.MethodsReturnNonnullByDefault;
import net.minecraft.core.BlockPos;
import net.minecraft.core.Direction;
@@ -43,12 +42,17 @@
import net.minecraft.world.level.block.state.BlockState;
import net.minecraft.world.phys.BlockHitResult;
+import com.mojang.datafixers.util.Pair;
+import lombok.Getter;
+import lombok.Setter;
import org.jetbrains.annotations.Nullable;
-import javax.annotation.ParametersAreNonnullByDefault;
+
import java.util.ArrayList;
import java.util.List;
import java.util.Set;
+import javax.annotation.ParametersAreNonnullByDefault;
+
/**
* @author KilaBash
* @date 2023/2/28
@@ -56,7 +60,9 @@
*/
@ParametersAreNonnullByDefault
@MethodsReturnNonnullByDefault
-public abstract class PipeBlockEntity & IPipeType, NodeDataType> extends BlockEntity implements IPipeNode, IEnhancedManaged, IAsyncAutoSyncBlockEntity, IAutoPersistBlockEntity, IToolGridHighLight, IToolable {
+public abstract class PipeBlockEntity & IPipeType, NodeDataType>
+ extends BlockEntity implements IPipeNode, IEnhancedManaged,
+ IAsyncAutoSyncBlockEntity, IAutoPersistBlockEntity, IToolGridHighLight, IToolable {
public static final ManagedFieldHolder MANAGED_FIELD_HOLDER = new ManagedFieldHolder(PipeBlockEntity.class);
@Getter
@@ -68,7 +74,8 @@ public abstract class PipeBlockEntity & IPipeTyp
@Persisted(key = "cover")
protected final PipeCoverContainer coverContainer;
- @Getter @Setter
+ @Getter
+ @Setter
@DescSynced
@Persisted
@RequireRerender
@@ -80,24 +87,29 @@ public abstract class PipeBlockEntity & IPipeTyp
private int blockedConnections = Node.ALL_CLOSED;
private NodeDataType cachedNodeData;
- @Persisted @DescSynced @RequireRerender
- @Getter @Setter
+ @Persisted
+ @DescSynced
+ @RequireRerender
+ @Getter
+ @Setter
private int paintingColor = -1;
- @Persisted @DescSynced @RequireRerender
+ @Persisted
+ @DescSynced
+ @RequireRerender
private String frameMaterial;
private final List serverTicks;
private final List waitingToAdd;
public PipeBlockEntity(BlockEntityType> type, BlockPos pos, BlockState blockState) {
super(type, pos, blockState);
- this.coverContainer = new PipeCoverContainer(this);
+ this.coverContainer = new PipeCoverContainer(this);
this.serverTicks = new ArrayList<>();
this.waitingToAdd = new ArrayList<>();
}
//////////////////////////////////////
- //***** Initialization ******//
+ // ***** Initialization ******//
//////////////////////////////////////
public void scheduleRenderUpdate() {
IPipeNode.super.scheduleRenderUpdate();
@@ -172,7 +184,8 @@ public TickableSubscription subscribeServerTick(Runnable runnable) {
if (getLevel() instanceof ServerLevel serverLevel) {
blockState = blockState.setValue(BlockProperties.SERVER_TICK, true);
setBlockState(blockState);
- serverLevel.getServer().tell(new TickTask(0, () -> serverLevel.setBlockAndUpdate(getBlockPos(), getBlockState().setValue(BlockProperties.SERVER_TICK, true))));
+ serverLevel.getServer().tell(new TickTask(0, () -> serverLevel.setBlockAndUpdate(getBlockPos(),
+ getBlockState().setValue(BlockProperties.SERVER_TICK, true))));
}
}
return subscription;
@@ -207,7 +220,7 @@ public final void serverTick() {
}
//////////////////////////////////////
- //******* Pipe Status *******//
+ // ******* Pipe Status *******//
//////////////////////////////////////
@Override
@@ -237,7 +250,8 @@ public int getVisualConnections() {
@Override
public void setConnection(Direction side, boolean connected, boolean fromNeighbor) {
- // fix desync between two connections. Can happen if a pipe side is blocked, and a new pipe is placed next to it.
+ // fix desync between two connections. Can happen if a pipe side is blocked, and a new pipe is placed next to
+ // it.
if (!getLevel().isClientSide) {
if (isConnected(side) == connected) {
return;
@@ -245,8 +259,8 @@ public void setConnection(Direction side, boolean connected, boolean fromNeighbo
BlockEntity tile = getNeighbor(side);
// block connections if Pipe Types do not match
if (connected &&
- tile instanceof IPipeNode, ?> pipeTile &&
- pipeTile.getPipeType().getClass() != this.getPipeType().getClass()) {
+ tile instanceof IPipeNode, ?> pipeTile &&
+ pipeTile.getPipeType().getClass() != this.getPipeType().getClass()) {
return;
}
connections = withSideConnection(connections, side, connected);
@@ -310,7 +324,7 @@ public void setChanged() {
}
//////////////////////////////////////
- //******* Interaction *******//
+ // ******* Interaction *******//
//////////////////////////////////////
@Override
public boolean shouldRenderGrid(Player player, ItemStack held, Set toolTypes) {
@@ -342,13 +356,15 @@ public ResourceTexture sideTips(Player player, Set toolTypes, Direct
}
@Override
- public Pair onToolClick(Set toolTypes, ItemStack itemStack, UseOnContext context) {
+ public Pair onToolClick(Set toolTypes, ItemStack itemStack,
+ UseOnContext context) {
// the side hit from the machine grid
var playerIn = context.getPlayer();
if (playerIn == null) return Pair.of(null, InteractionResult.PASS);
var hand = context.getHand();
- var hitResult = new BlockHitResult(context.getClickLocation(), context.getClickedFace(), context.getClickedPos(), false);
+ var hitResult = new BlockHitResult(context.getClickLocation(), context.getClickedFace(),
+ context.getClickedPos(), false);
Direction gridSide = ICoverable.determineGridSideHit(hitResult);
CoverBehavior coverBehavior = gridSide == null ? null : coverContainer.getCoverAtSide(gridSide);
if (gridSide == null) gridSide = hitResult.getDirection();
@@ -389,7 +405,8 @@ public GTToolType getPipeTuneTool() {
@Override
public int getDefaultPaintingColor() {
- return this.getPipeBlock() instanceof MaterialPipeBlock,?,?> materialPipeBlock ? materialPipeBlock.material.getMaterialRGB() : IPipeNode.super.getDefaultPaintingColor();
+ return this.getPipeBlock() instanceof MaterialPipeBlock, ?, ?> materialPipeBlock ?
+ materialPipeBlock.material.getMaterialRGB() : IPipeNode.super.getDefaultPaintingColor();
}
@Nullable
@@ -402,11 +419,11 @@ public void doExplosion(float explosionPower) {
getLevel().removeBlock(getPipePos(), false);
if (!getLevel().isClientSide) {
((ServerLevel) getLevel()).sendParticles(ParticleTypes.LARGE_SMOKE, getPipePos().getX() + 0.5,
- getPipePos().getY() + 0.5, getPipePos().getZ() + 0.5,
- 10, 0.2, 0.2, 0.2, 0.0);
+ getPipePos().getY() + 0.5, getPipePos().getZ() + 0.5,
+ 10, 0.2, 0.2, 0.2, 0.0);
}
getLevel().explode(null, getPipePos().getX() + 0.5, getPipePos().getY() + 0.5, getPipePos().getZ() + 0.5,
- explosionPower, Level.ExplosionInteraction.NONE);
+ explosionPower, Level.ExplosionInteraction.NONE);
}
public static boolean isFaceBlocked(int blockedConnections, Direction side) {
@@ -416,5 +433,4 @@ public static boolean isFaceBlocked(int blockedConnections, Direction side) {
public static boolean isConnected(int connections, Direction side) {
return (connections & (1 << side.ordinal())) > 0;
}
-
}
diff --git a/src/main/java/com/gregtechceu/gtceu/api/capability/GTCapabilityHelper.java b/src/main/java/com/gregtechceu/gtceu/api/capability/GTCapabilityHelper.java
index f2ecd1164b..d8cb3b798a 100644
--- a/src/main/java/com/gregtechceu/gtceu/api/capability/GTCapabilityHelper.java
+++ b/src/main/java/com/gregtechceu/gtceu/api/capability/GTCapabilityHelper.java
@@ -4,14 +4,17 @@
import com.gregtechceu.gtceu.api.capability.forge.GTEnergyHelperImpl;
import com.gregtechceu.gtceu.api.machine.feature.multiblock.IMaintenanceMachine;
import com.gregtechceu.gtceu.api.machine.trait.RecipeLogic;
+
import net.minecraft.core.BlockPos;
import net.minecraft.core.Direction;
+import net.minecraft.world.entity.Entity;
import net.minecraft.world.item.ItemStack;
import net.minecraft.world.level.Level;
import net.minecraftforge.common.capabilities.Capability;
import net.minecraftforge.common.capabilities.ForgeCapabilities;
import net.minecraftforge.energy.IEnergyStorage;
+import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
/**
@@ -20,6 +23,7 @@
* @implNote EnergyContainerHelper
*/
public class GTCapabilityHelper {
+
@Nullable
public static IElectricItem getElectricItem(ItemStack itemStack) {
return itemStack.getCapability(GTCapability.CAPABILITY_ELECTRIC_ITEM).resolve().orElse(null);
@@ -94,7 +98,8 @@ public static ILaserContainer getLaser(Level level, BlockPos pos, @Nullable Dire
}
@Nullable
- public static IOpticalComputationProvider getOpticalComputationProvider(Level level, BlockPos pos, @Nullable Direction side) {
+ public static IOpticalComputationProvider getOpticalComputationProvider(Level level, BlockPos pos,
+ @Nullable Direction side) {
return getBlockEntityCapability(GTCapability.CAPABILITY_COMPUTATION_PROVIDER, level, pos, side);
}
@@ -104,7 +109,8 @@ public static IDataAccessHatch getDataAccess(Level level, BlockPos pos, @Nullabl
}
@Nullable
- private static T getBlockEntityCapability(Capability capability, Level level, BlockPos pos, @Nullable Direction side) {
+ private static T getBlockEntityCapability(Capability capability, Level level, BlockPos pos,
+ @Nullable Direction side) {
if (level.getBlockState(pos).hasBlockEntity()) {
var blockEntity = level.getBlockEntity(pos);
if (blockEntity != null) {
@@ -113,4 +119,9 @@ private static T getBlockEntityCapability(Capability capability, Level le
}
return null;
}
+
+ @Nullable
+ public static IHazardEffectTracker getHazardEffectTracker(@NotNull Entity entity) {
+ return entity.getCapability(GTCapability.CAPABILITY_HAZARD_EFFECT_TRACKER, null).resolve().orElse(null);
+ }
}
diff --git a/src/main/java/com/gregtechceu/gtceu/api/capability/IControllable.java b/src/main/java/com/gregtechceu/gtceu/api/capability/IControllable.java
index 9d5f89106b..ec83009b79 100644
--- a/src/main/java/com/gregtechceu/gtceu/api/capability/IControllable.java
+++ b/src/main/java/com/gregtechceu/gtceu/api/capability/IControllable.java
@@ -13,5 +13,4 @@ public interface IControllable {
* @param isWorkingAllowed true if the workable can work, otherwise false
*/
void setWorkingEnabled(boolean isWorkingAllowed);
-
}
diff --git a/src/main/java/com/gregtechceu/gtceu/api/capability/ICoverable.java b/src/main/java/com/gregtechceu/gtceu/api/capability/ICoverable.java
index cd0d29063b..1b703bb84d 100644
--- a/src/main/java/com/gregtechceu/gtceu/api/capability/ICoverable.java
+++ b/src/main/java/com/gregtechceu/gtceu/api/capability/ICoverable.java
@@ -5,9 +5,11 @@
import com.gregtechceu.gtceu.api.cover.CoverBehavior;
import com.gregtechceu.gtceu.api.cover.CoverDefinition;
import com.gregtechceu.gtceu.utils.GTUtil;
+
import com.lowdragmc.lowdraglib.LDLib;
import com.lowdragmc.lowdraglib.side.fluid.IFluidTransfer;
import com.lowdragmc.lowdraglib.side.item.IItemTransfer;
+
import net.minecraft.core.BlockPos;
import net.minecraft.core.Direction;
import net.minecraft.server.level.ServerPlayer;
@@ -22,6 +24,7 @@
import net.minecraft.world.phys.HitResult;
import net.minecraft.world.phys.shapes.Shapes;
import net.minecraft.world.phys.shapes.VoxelShape;
+
import org.jetbrains.annotations.Nullable;
import java.util.ArrayList;
@@ -30,7 +33,6 @@
import java.util.Objects;
import java.util.stream.Collectors;
-
public interface ICoverable extends ITickSubscription, IAppearance {
Level getLevel();
@@ -59,12 +61,15 @@ public interface ICoverable extends ITickSubscription, IAppearance {
// TODO replace getItemTransferCap and getFluidTransferCap with a cross-platform capability implementation
IItemTransfer getItemTransferCap(@Nullable Direction side, boolean useCoverCapability);
+
IFluidTransfer getFluidTransferCap(@Nullable Direction side, boolean useCoverCapability);
/**
* Its an internal method, you should never call it yourself.
*
- * Use {@link ICoverable#removeCover(boolean, Direction, Player)} and {@link ICoverable#placeCoverOnSide(Direction, ItemStack, CoverDefinition, ServerPlayer)} instead
+ * Use {@link ICoverable#removeCover(boolean, Direction, Player)} and
+ * {@link ICoverable#placeCoverOnSide(Direction, ItemStack, CoverDefinition, ServerPlayer)} instead
+ *
* @param coverBehavior
* @param side
*/
@@ -73,7 +78,8 @@ public interface ICoverable extends ITickSubscription, IAppearance {
@Nullable
CoverBehavior getCoverAtSide(Direction side);
- default boolean placeCoverOnSide(Direction side, ItemStack itemStack, CoverDefinition coverDefinition, ServerPlayer player) {
+ default boolean placeCoverOnSide(Direction side, ItemStack itemStack, CoverDefinition coverDefinition,
+ ServerPlayer player) {
CoverBehavior coverBehavior = coverDefinition.createCoverBehavior(this, side);
if (!canPlaceCoverOnSide(coverDefinition, side) || !coverBehavior.canAttach()) {
return false;
@@ -88,7 +94,7 @@ default boolean placeCoverOnSide(Direction side, ItemStack itemStack, CoverDefin
markDirty();
scheduleNeighborShapeUpdate();
// TODO achievement
-// AdvancementTriggers.FIRST_COVER_PLACE.trigger((PlayerMP) player);
+ // AdvancementTriggers.FIRST_COVER_PLACE.trigger((PlayerMP) player);
return true;
}
@@ -130,7 +136,8 @@ default boolean removeCover(Direction side, @Nullable Player player) {
}
default List getCovers() {
- return Arrays.stream(GTUtil.DIRECTIONS).map(this::getCoverAtSide).filter(Objects::nonNull).collect(Collectors.toList());
+ return Arrays.stream(GTUtil.DIRECTIONS).map(this::getCoverAtSide).filter(Objects::nonNull)
+ .collect(Collectors.toList());
}
default void onLoad() {
@@ -145,7 +152,7 @@ default void onUnload() {
}
}
- default void onNeighborChanged(Block block, BlockPos fromPos, boolean isMoving){
+ default void onNeighborChanged(Block block, BlockPos fromPos, boolean isMoving) {
for (CoverBehavior cover : getCovers()) {
cover.onNeighborChanged(block, fromPos, isMoving);
}
@@ -184,7 +191,7 @@ static boolean doesCoverCollide(Direction side, List collisionBox, d
if (side == null) {
return false;
}
-
+
if (plateThickness > 0.0) {
var coverPlateBox = getCoverPlateBox(side, plateThickness);
var aabbs = coverPlateBox.toAabbs();
@@ -207,8 +214,8 @@ static Direction rayTraceCoverableSide(ICoverable coverable, Player player) {
return traceCoverSide(rayTrace);
}
-
class PrimaryBoxData {
+
public final boolean usePlacementGrid;
public PrimaryBoxData(boolean usePlacementGrid) {
@@ -254,7 +261,8 @@ static boolean canPlaceCover(CoverDefinition coverDef, ICoverable coverable) {
@Nullable
@Override
- default BlockState getBlockAppearance(BlockState state, BlockAndTintGetter level, BlockPos pos, Direction side, BlockState sourceState, BlockPos sourcePos) {
+ default BlockState getBlockAppearance(BlockState state, BlockAndTintGetter level, BlockPos pos, Direction side,
+ BlockState sourceState, BlockPos sourcePos) {
if (hasCover(side)) {
return getCoverAtSide(side).getAppearance(sourceState, sourcePos);
}
diff --git a/src/main/java/com/gregtechceu/gtceu/api/capability/IDataAccessHatch.java b/src/main/java/com/gregtechceu/gtceu/api/capability/IDataAccessHatch.java
index 0eae1d2086..094a9471c5 100644
--- a/src/main/java/com/gregtechceu/gtceu/api/capability/IDataAccessHatch.java
+++ b/src/main/java/com/gregtechceu/gtceu/api/capability/IDataAccessHatch.java
@@ -1,6 +1,7 @@
package com.gregtechceu.gtceu.api.capability;
import com.gregtechceu.gtceu.api.recipe.GTRecipe;
+
import org.jetbrains.annotations.NotNull;
import java.util.ArrayList;
@@ -42,4 +43,4 @@ default GTRecipe modifyRecipe(GTRecipe recipe) {
* @return true if this Data Access Hatch is creative or not
*/
boolean isCreative();
-}
\ No newline at end of file
+}
diff --git a/src/main/java/com/gregtechceu/gtceu/api/capability/IElectricItem.java b/src/main/java/com/gregtechceu/gtceu/api/capability/IElectricItem.java
index 80e5f66637..202ddebc75 100644
--- a/src/main/java/com/gregtechceu/gtceu/api/capability/IElectricItem.java
+++ b/src/main/java/com/gregtechceu/gtceu/api/capability/IElectricItem.java
@@ -1,6 +1,5 @@
package com.gregtechceu.gtceu.api.capability;
-
public interface IElectricItem {
/**
@@ -80,5 +79,4 @@ default boolean canUse(long amount) {
* @return The tier of the item.
*/
int getTier();
-
}
diff --git a/src/main/java/com/gregtechceu/gtceu/api/capability/IEnergyContainer.java b/src/main/java/com/gregtechceu/gtceu/api/capability/IEnergyContainer.java
index 333a5f5097..7440cf1c5f 100644
--- a/src/main/java/com/gregtechceu/gtceu/api/capability/IEnergyContainer.java
+++ b/src/main/java/com/gregtechceu/gtceu/api/capability/IEnergyContainer.java
@@ -1,6 +1,5 @@
package com.gregtechceu.gtceu.api.capability;
-
import net.minecraft.core.Direction;
import java.math.BigInteger;
@@ -76,7 +75,6 @@ default long getEnergyCanBeInserted() {
*/
long getEnergyCapacity();
-
@Override
default EnergyInfo getEnergyInfo() {
return new EnergyInfo(BigInteger.valueOf(getEnergyCapacity()), BigInteger.valueOf(getEnergyStored()));
@@ -108,7 +106,7 @@ default long getOutputVoltage() {
/**
* @return output energy packet size
- * Overflowing this value will explode machine.
+ * Overflowing this value will explode machine.
*/
long getInputVoltage();
@@ -128,13 +126,14 @@ default long getOutputPerSec() {
/**
* @return true if information like energy capacity should be hidden from TOP.
- * Useful for cables
+ * Useful for cables
*/
default boolean isOneProbeHidden() {
return false;
}
IEnergyContainer DEFAULT = new IEnergyContainer() {
+
@Override
public long acceptEnergyFromNetwork(Direction Direction, long l, long l1) {
return 0;
diff --git a/src/main/java/com/gregtechceu/gtceu/api/capability/IEnergyInfoProvider.java b/src/main/java/com/gregtechceu/gtceu/api/capability/IEnergyInfoProvider.java
index 11e9f9b9c3..acca06f960 100644
--- a/src/main/java/com/gregtechceu/gtceu/api/capability/IEnergyInfoProvider.java
+++ b/src/main/java/com/gregtechceu/gtceu/api/capability/IEnergyInfoProvider.java
@@ -3,8 +3,8 @@
import java.math.BigInteger;
public interface IEnergyInfoProvider {
- record EnergyInfo(BigInteger capacity, BigInteger stored) {
- }
+
+ record EnergyInfo(BigInteger capacity, BigInteger stored) {}
EnergyInfo getEnergyInfo();
diff --git a/src/main/java/com/gregtechceu/gtceu/api/capability/IHPCAComponentHatch.java b/src/main/java/com/gregtechceu/gtceu/api/capability/IHPCAComponentHatch.java
index 4988daff35..51ea1429ee 100644
--- a/src/main/java/com/gregtechceu/gtceu/api/capability/IHPCAComponentHatch.java
+++ b/src/main/java/com/gregtechceu/gtceu/api/capability/IHPCAComponentHatch.java
@@ -47,4 +47,4 @@ default void setDamaged(boolean damaged) {}
* The icon for this component in the HPCA's UI. Should be a 13x13 px sprite.
*/
ResourceTexture getComponentIcon();
-}
\ No newline at end of file
+}
diff --git a/src/main/java/com/gregtechceu/gtceu/api/capability/IHPCAComputationProvider.java b/src/main/java/com/gregtechceu/gtceu/api/capability/IHPCAComputationProvider.java
index 0eaac14b9e..615dde99b6 100644
--- a/src/main/java/com/gregtechceu/gtceu/api/capability/IHPCAComputationProvider.java
+++ b/src/main/java/com/gregtechceu/gtceu/api/capability/IHPCAComputationProvider.java
@@ -11,4 +11,4 @@ public interface IHPCAComputationProvider extends IHPCAComponentHatch {
* How much coolant/t this component needs when running at max CWU/t.
*/
int getCoolingPerTick();
-}
\ No newline at end of file
+}
diff --git a/src/main/java/com/gregtechceu/gtceu/api/capability/IHPCACoolantProvider.java b/src/main/java/com/gregtechceu/gtceu/api/capability/IHPCACoolantProvider.java
index 68dc649230..838851b1c3 100644
--- a/src/main/java/com/gregtechceu/gtceu/api/capability/IHPCACoolantProvider.java
+++ b/src/main/java/com/gregtechceu/gtceu/api/capability/IHPCACoolantProvider.java
@@ -22,4 +22,4 @@ public interface IHPCACoolantProvider extends IHPCAComponentHatch {
default int getMaxCoolantPerTick() {
return 0;
}
-}
\ No newline at end of file
+}
diff --git a/src/main/java/com/gregtechceu/gtceu/api/capability/IHazardEffectTracker.java b/src/main/java/com/gregtechceu/gtceu/api/capability/IHazardEffectTracker.java
new file mode 100644
index 0000000000..b753ce9e5f
--- /dev/null
+++ b/src/main/java/com/gregtechceu/gtceu/api/capability/IHazardEffectTracker.java
@@ -0,0 +1,32 @@
+package com.gregtechceu.gtceu.api.capability;
+
+import com.gregtechceu.gtceu.api.data.chemical.material.Material;
+
+import it.unimi.dsi.fastutil.objects.Object2IntMap;
+
+import java.util.Set;
+
+public interface IHazardEffectTracker {
+
+ /**
+ * @return a set of hazard effect to how long it's been applied for.
+ */
+ Set getExtraHazards();
+
+ /**
+ * @return a map of material to how long its effects been applied for.
+ */
+ Object2IntMap getCurrentHazards();
+
+ /**
+ * @return the maximum air supply for the entity this is attached to. -1 for default (300).
+ */
+ // default maxAirSupply for players is 300.
+ int getMaxAirSupply();
+
+ void startTick();
+
+ void tick(Material material);
+
+ void endTick();
+}
diff --git a/src/main/java/com/gregtechceu/gtceu/api/capability/ILaserContainer.java b/src/main/java/com/gregtechceu/gtceu/api/capability/ILaserContainer.java
index b795b26302..fbfcb5ed16 100644
--- a/src/main/java/com/gregtechceu/gtceu/api/capability/ILaserContainer.java
+++ b/src/main/java/com/gregtechceu/gtceu/api/capability/ILaserContainer.java
@@ -3,5 +3,4 @@
/**
* It is its own separate interface to make piping work easier
*/
-public interface ILaserContainer extends IEnergyContainer {
-}
\ No newline at end of file
+public interface ILaserContainer extends IEnergyContainer {}
diff --git a/src/main/java/com/gregtechceu/gtceu/api/capability/IMiner.java b/src/main/java/com/gregtechceu/gtceu/api/capability/IMiner.java
index 2566612b0b..0b08daa6aa 100644
--- a/src/main/java/com/gregtechceu/gtceu/api/capability/IMiner.java
+++ b/src/main/java/com/gregtechceu/gtceu/api/capability/IMiner.java
@@ -5,6 +5,7 @@
import com.gregtechceu.gtceu.common.machine.trait.miner.MinerLogic;
public interface IMiner extends IRecipeLogicMachine, IMachineLife {
+
@Override
MinerLogic getRecipeLogic();
diff --git a/src/main/java/com/gregtechceu/gtceu/api/capability/IObjectHolder.java b/src/main/java/com/gregtechceu/gtceu/api/capability/IObjectHolder.java
index e217cbf5ff..04c7637718 100644
--- a/src/main/java/com/gregtechceu/gtceu/api/capability/IObjectHolder.java
+++ b/src/main/java/com/gregtechceu/gtceu/api/capability/IObjectHolder.java
@@ -1,17 +1,21 @@
package com.gregtechceu.gtceu.api.capability;
import com.gregtechceu.gtceu.api.machine.trait.NotifiableItemStackHandler;
+
import net.minecraft.core.Direction;
import net.minecraft.world.item.ItemStack;
+
import org.jetbrains.annotations.NotNull;
public interface IObjectHolder {
/**
* Get the item held in the object holder.
+ *
* @param remove Whether to also remove the item from its slot.
*/
- @NotNull ItemStack getHeldItem(boolean remove);
+ @NotNull
+ ItemStack getHeldItem(boolean remove);
/**
* Set the item held in the object holder. Overwrites the currently held item.
@@ -20,6 +24,7 @@ public interface IObjectHolder {
/**
* Get the data item held in the object holder.
+ *
* @param remove Whether to also remove the item from its slot.
*/
@NotNull
@@ -40,5 +45,6 @@ public interface IObjectHolder {
/**
* @return the object holder's contents represented as an IItemHandler
*/
- @NotNull NotifiableItemStackHandler getAsHandler();
+ @NotNull
+ NotifiableItemStackHandler getAsHandler();
}
diff --git a/src/main/java/com/gregtechceu/gtceu/api/capability/IOpticalComputationHatch.java b/src/main/java/com/gregtechceu/gtceu/api/capability/IOpticalComputationHatch.java
index d734354469..1b1235ce8a 100644
--- a/src/main/java/com/gregtechceu/gtceu/api/capability/IOpticalComputationHatch.java
+++ b/src/main/java/com/gregtechceu/gtceu/api/capability/IOpticalComputationHatch.java
@@ -4,4 +4,4 @@ public interface IOpticalComputationHatch extends IOpticalComputationProvider {
/** If this hatch transmits or receives CWU/t. */
boolean isTransmitter();
-}
\ No newline at end of file
+}
diff --git a/src/main/java/com/gregtechceu/gtceu/api/capability/IOpticalComputationProvider.java b/src/main/java/com/gregtechceu/gtceu/api/capability/IOpticalComputationProvider.java
index 26fe94cb50..999197c823 100644
--- a/src/main/java/com/gregtechceu/gtceu/api/capability/IOpticalComputationProvider.java
+++ b/src/main/java/com/gregtechceu/gtceu/api/capability/IOpticalComputationProvider.java
@@ -1,6 +1,7 @@
package com.gregtechceu.gtceu.api.capability;
import org.jetbrains.annotations.NotNull;
+
import java.util.ArrayList;
import java.util.Collection;
@@ -66,4 +67,4 @@ default boolean canBridge() {
* @param seen The Optical Computation Providers already checked
*/
boolean canBridge(@NotNull Collection seen);
-}
\ No newline at end of file
+}
diff --git a/src/main/java/com/gregtechceu/gtceu/api/capability/IOpticalComputationReceiver.java b/src/main/java/com/gregtechceu/gtceu/api/capability/IOpticalComputationReceiver.java
index f5c22b4cc3..204a6c311a 100644
--- a/src/main/java/com/gregtechceu/gtceu/api/capability/IOpticalComputationReceiver.java
+++ b/src/main/java/com/gregtechceu/gtceu/api/capability/IOpticalComputationReceiver.java
@@ -1,6 +1,5 @@
package com.gregtechceu.gtceu.api.capability;
-
import com.gregtechceu.gtceu.api.machine.trait.NotifiableComputationContainer;
/**
@@ -9,4 +8,4 @@
public interface IOpticalComputationReceiver {
IOpticalComputationProvider getComputationProvider();
-}
\ No newline at end of file
+}
diff --git a/src/main/java/com/gregtechceu/gtceu/api/capability/IOpticalDataAccessHatch.java b/src/main/java/com/gregtechceu/gtceu/api/capability/IOpticalDataAccessHatch.java
index 4138530331..2b40949941 100644
--- a/src/main/java/com/gregtechceu/gtceu/api/capability/IOpticalDataAccessHatch.java
+++ b/src/main/java/com/gregtechceu/gtceu/api/capability/IOpticalDataAccessHatch.java
@@ -6,4 +6,4 @@ public interface IOpticalDataAccessHatch extends IDataAccessHatch {
* @return if this hatch transmits data through cables
*/
boolean isTransmitter();
-}
\ No newline at end of file
+}
diff --git a/src/main/java/com/gregtechceu/gtceu/api/capability/IPlatformEnergyStorage.java b/src/main/java/com/gregtechceu/gtceu/api/capability/IPlatformEnergyStorage.java
index 4e37eaf696..5b4181f965 100644
--- a/src/main/java/com/gregtechceu/gtceu/api/capability/IPlatformEnergyStorage.java
+++ b/src/main/java/com/gregtechceu/gtceu/api/capability/IPlatformEnergyStorage.java
@@ -5,7 +5,8 @@ public interface IPlatformEnergyStorage {
/**
* Return false if calling {@link #insert} will absolutely always return 0, or true otherwise or in doubt.
*
- *
Note: This function is meant to be used by cables or other devices that can transfer energy to know if
+ *
+ * Note: This function is meant to be used by cables or other devices that can transfer energy to know if
* they should interact with this storage at all.
*/
boolean supportsInsertion();
@@ -14,7 +15,7 @@ public interface IPlatformEnergyStorage {
* Try to insert up to some amount of energy into this storage.
*
* @param maxAmount The maximum amount of energy to insert. May not be negative.
- * @param simulate Is this a test?
+ * @param simulate Is this a test?
* @return A nonnegative integer not greater than maxAmount: the amount that was inserted.
*/
long insert(long maxAmount, boolean simulate);
@@ -22,7 +23,8 @@ public interface IPlatformEnergyStorage {
/**
* Return false if calling {@link #extract} will absolutely always return 0, or true otherwise or in doubt.
*
- *
Note: This function is meant to be used by cables or other devices that can transfer energy to know if
+ *
+ * Note: This function is meant to be used by cables or other devices that can transfer energy to know if
* they should interact with this storage at all.
*/
boolean supportsExtraction();
@@ -31,7 +33,7 @@ public interface IPlatformEnergyStorage {
* Try to extract up to some amount of energy from this storage.
*
* @param maxAmount The maximum amount of energy to extract. May not be negative.
- * @param simulate Is this a test?
+ * @param simulate Is this a test?
* @return A nonnegative integer not greater than maxAmount: the amount that was extracted.
*/
long extract(long maxAmount, boolean simulate);
diff --git a/src/main/java/com/gregtechceu/gtceu/api/capability/IPropertyFluidFilter.java b/src/main/java/com/gregtechceu/gtceu/api/capability/IPropertyFluidFilter.java
index 2a2dc94701..244756638f 100644
--- a/src/main/java/com/gregtechceu/gtceu/api/capability/IPropertyFluidFilter.java
+++ b/src/main/java/com/gregtechceu/gtceu/api/capability/IPropertyFluidFilter.java
@@ -4,14 +4,16 @@
import com.gregtechceu.gtceu.api.fluids.attribute.FluidAttribute;
import com.gregtechceu.gtceu.api.fluids.attribute.IAttributedFluid;
import com.gregtechceu.gtceu.utils.GTUtil;
+
import com.lowdragmc.lowdraglib.side.fluid.FluidHelper;
import com.lowdragmc.lowdraglib.side.fluid.FluidStack;
+
import net.minecraft.network.chat.Component;
import net.minecraft.world.level.material.Fluid;
+
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.UnmodifiableView;
-import org.jetbrains.annotations.NotNull;
import java.util.Collection;
import java.util.List;
import java.util.function.Predicate;
@@ -64,12 +66,14 @@ default boolean test(@NotNull FluidStack stack) {
/**
* Set the container as able to contain an attribute
*
- * @param attribute the attribute to change containment status for
+ * @param attribute the attribute to change containment status for
* @param canContain whether the attribute can be contained
*/
void setCanContain(@NotNull FluidAttribute attribute, boolean canContain);
- @NotNull @UnmodifiableView Collection<@NotNull FluidAttribute> getContainedAttributes();
+ @NotNull
+ @UnmodifiableView
+ Collection<@NotNull FluidAttribute> getContainedAttributes();
/**
* Append tooltips about containment info
@@ -80,7 +84,8 @@ default boolean test(@NotNull FluidStack stack) {
*/
default void appendTooltips(@NotNull List tooltip, boolean showToolsInfo, boolean showTemperatureInfo) {
if (GTUtil.isShiftDown()) {
- if (showTemperatureInfo) tooltip.add(Component.translatable("gtceu.fluid_pipe.max_temperature", getMaxFluidTemperature()));
+ if (showTemperatureInfo)
+ tooltip.add(Component.translatable("gtceu.fluid_pipe.max_temperature", getMaxFluidTemperature()));
if (isGasProof()) tooltip.add(Component.translatable("gtceu.fluid_pipe.gas_proof"));
else tooltip.add(Component.translatable("gtceu.fluid_pipe.not_gas_proof"));
if (isPlasmaProof()) tooltip.add(Component.translatable("gtceu.fluid_pipe.plasma_proof"));
diff --git a/src/main/java/com/gregtechceu/gtceu/api/capability/IThermalFluidHandlerItemStack.java b/src/main/java/com/gregtechceu/gtceu/api/capability/IThermalFluidHandlerItemStack.java
index f7825ac9d1..d1d397519f 100644
--- a/src/main/java/com/gregtechceu/gtceu/api/capability/IThermalFluidHandlerItemStack.java
+++ b/src/main/java/com/gregtechceu/gtceu/api/capability/IThermalFluidHandlerItemStack.java
@@ -3,12 +3,15 @@
import com.gregtechceu.gtceu.api.fluids.attribute.FluidAttribute;
import com.gregtechceu.gtceu.api.fluids.attribute.FluidAttributes;
import com.gregtechceu.gtceu.api.fluids.attribute.IAttributedFluid;
+
import com.lowdragmc.lowdraglib.side.fluid.FluidHelper;
import com.lowdragmc.lowdraglib.side.fluid.FluidStack;
+
import net.minecraft.world.level.material.Fluid;
/**
* Interface for FluidHandlerItemStacks which handle GT's unique fluid mechanics
+ *
* @see FluidAttribute
* @see FluidAttributes
* @see IAttributedFluid
@@ -31,13 +34,13 @@ default boolean canFillFluidType(FluidStack stack) {
if (FluidHelper.isLighterThanAir(stack) && !isGasProof()) return false;
// TODO custom fluid
-// for (RegistryEntry entry : GTRegistries.REGISTRATE.getAll(Registry.FLUID_REGISTRY)) {
-// if (entry.get() == fluid) {
-// FluidType fluidType = ((MaterialFluid) fluid).getFluidType();
-// if (fluidType == FluidTypes.ACID && !isAcidProof()) return false;
-// if (fluidType == FluidTypes.PLASMA && !isPlasmaProof()) return false;
-// }
-// }
+ // for (RegistryEntry entry : GTRegistries.REGISTRATE.getAll(Registry.FLUID_REGISTRY)) {
+ // if (entry.get() == fluid) {
+ // FluidType fluidType = ((MaterialFluid) fluid).getFluidType();
+ // if (fluidType == FluidTypes.ACID && !isAcidProof()) return false;
+ // if (fluidType == FluidTypes.PLASMA && !isPlasmaProof()) return false;
+ // }
+ // }
return true;
}
diff --git a/src/main/java/com/gregtechceu/gtceu/api/capability/IToolable.java b/src/main/java/com/gregtechceu/gtceu/api/capability/IToolable.java
index 7d4b1308af..0abb344c13 100644
--- a/src/main/java/com/gregtechceu/gtceu/api/capability/IToolable.java
+++ b/src/main/java/com/gregtechceu/gtceu/api/capability/IToolable.java
@@ -1,13 +1,15 @@
package com.gregtechceu.gtceu.api.capability;
import com.gregtechceu.gtceu.api.item.tool.GTToolType;
-import com.mojang.datafixers.util.Pair;
+
import net.minecraft.world.InteractionResult;
import net.minecraft.world.item.ItemStack;
import net.minecraft.world.item.context.UseOnContext;
-import org.jetbrains.annotations.Nullable;
+import com.mojang.datafixers.util.Pair;
import org.jetbrains.annotations.NotNull;
+import org.jetbrains.annotations.Nullable;
+
import java.util.Set;
/**
@@ -20,8 +22,9 @@ public interface IToolable {
/**
* Called when a player clicks this meta tile entity with a tool
*
- * @return SUCCESS / CONSUME (will damage tool) / FAIL if something happened, so tools will get damaged and animations will be played
+ * @return SUCCESS / CONSUME (will damage tool) / FAIL if something happened, so tools will get damaged and
+ * animations will be played
*/
- Pair<@Nullable GTToolType, InteractionResult> onToolClick(@NotNull Set toolTypes, ItemStack itemStack, UseOnContext context);
-
+ Pair<@Nullable GTToolType, InteractionResult> onToolClick(@NotNull Set toolTypes, ItemStack itemStack,
+ UseOnContext context);
}
diff --git a/src/main/java/com/gregtechceu/gtceu/api/capability/IWorkable.java b/src/main/java/com/gregtechceu/gtceu/api/capability/IWorkable.java
index f3f36300cc..72a2f63147 100644
--- a/src/main/java/com/gregtechceu/gtceu/api/capability/IWorkable.java
+++ b/src/main/java/com/gregtechceu/gtceu/api/capability/IWorkable.java
@@ -19,5 +19,4 @@ public interface IWorkable extends IControllable {
* @return true is machine is active
*/
boolean isActive();
-
-}
\ No newline at end of file
+}
diff --git a/src/main/java/com/gregtechceu/gtceu/api/capability/PlatformEnergyCompat.java b/src/main/java/com/gregtechceu/gtceu/api/capability/PlatformEnergyCompat.java
index 29763dde0e..41bc743975 100644
--- a/src/main/java/com/gregtechceu/gtceu/api/capability/PlatformEnergyCompat.java
+++ b/src/main/java/com/gregtechceu/gtceu/api/capability/PlatformEnergyCompat.java
@@ -8,11 +8,13 @@ public class PlatformEnergyCompat {
* Conversion ratio used by energy converters
*/
public static int ratio(boolean nativeToEu) {
- return nativeToEu ? ConfigHolder.INSTANCE.compat.energy.platformToEuRatio : ConfigHolder.INSTANCE.compat.energy.euToPlatformRatio;
+ return nativeToEu ? ConfigHolder.INSTANCE.compat.energy.platformToEuRatio :
+ ConfigHolder.INSTANCE.compat.energy.euToPlatformRatio;
}
/**
* Converts eu to native energy, using specified ratio
+ *
* @return amount of native energy
*/
public static int toNative(long eu, int ratio) {
@@ -22,6 +24,7 @@ public static int toNative(long eu, int ratio) {
/**
* Converts eu to native energy, using specified ratio, and returns as a long.
* Can be used for overflow protection.
+ *
* @return amount of native energy
*/
public static long toNativeLong(long eu, int ratio) {
@@ -31,6 +34,7 @@ public static long toNativeLong(long eu, int ratio) {
/**
* Converts eu to native energy, using a specified ratio, and with a specified upper bound.
* This can be useful for dealing with int-overflows when converting from a long to an int.
+ *
* @return amount of native energy
*/
public static long toNativeBounded(long eu, int ratio, int max) {
@@ -39,17 +43,19 @@ public static long toNativeBounded(long eu, int ratio, int max) {
/**
* Converts native energy to eu, using specified ratio
+ *
* @return amount of eu
*/
- public static long toEu(long nat, int ratio){
+ public static long toEu(long nat, int ratio) {
return nat / ratio;
}
/**
* Inserts energy to the storage. EU -> FE conversion is performed.
+ *
* @return amount of EU inserted
*/
- public static long insertEu(IPlatformEnergyStorage storage, long amountEU){
+ public static long insertEu(IPlatformEnergyStorage storage, long amountEU) {
int euToNativeRatio = ratio(false);
long nativeSent = storage.insert(toNativeLong(amountEU, euToNativeRatio), true);
return toEu(storage.insert(nativeSent - (nativeSent % euToNativeRatio), false), euToNativeRatio);
@@ -57,9 +63,10 @@ public static long insertEu(IPlatformEnergyStorage storage, long amountEU){
/**
* Extracts energy from the storage. EU -> FE conversion is performed.
+ *
* @return amount of EU extracted
*/
- public static long extractEu(IPlatformEnergyStorage storage, long amountEU){
+ public static long extractEu(IPlatformEnergyStorage storage, long amountEU) {
int euToNativeRatio = ratio(false);
long extract = storage.extract(toNativeLong(amountEU, euToNativeRatio), true);
return toEu(storage.extract(extract - (extract % euToNativeRatio), false), euToNativeRatio);
diff --git a/src/main/java/com/gregtechceu/gtceu/api/capability/forge/CombinedCapabilityProvider.java b/src/main/java/com/gregtechceu/gtceu/api/capability/forge/CombinedCapabilityProvider.java
index f6db91fdf9..2b7cf2a541 100644
--- a/src/main/java/com/gregtechceu/gtceu/api/capability/forge/CombinedCapabilityProvider.java
+++ b/src/main/java/com/gregtechceu/gtceu/api/capability/forge/CombinedCapabilityProvider.java
@@ -4,6 +4,7 @@
import net.minecraftforge.common.capabilities.Capability;
import net.minecraftforge.common.capabilities.ICapabilityProvider;
import net.minecraftforge.common.util.LazyOptional;
+
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
@@ -31,4 +32,4 @@ public CombinedCapabilityProvider(List providers) {
}
return LazyOptional.empty();
}
-}
\ No newline at end of file
+}
diff --git a/src/main/java/com/gregtechceu/gtceu/api/capability/forge/GTCapability.java b/src/main/java/com/gregtechceu/gtceu/api/capability/forge/GTCapability.java
index 26a9e9bd71..3330870b89 100644
--- a/src/main/java/com/gregtechceu/gtceu/api/capability/forge/GTCapability.java
+++ b/src/main/java/com/gregtechceu/gtceu/api/capability/forge/GTCapability.java
@@ -3,6 +3,7 @@
import com.gregtechceu.gtceu.api.capability.*;
import com.gregtechceu.gtceu.api.machine.feature.multiblock.IMaintenanceMachine;
import com.gregtechceu.gtceu.api.machine.trait.RecipeLogic;
+
import net.minecraftforge.common.capabilities.Capability;
import net.minecraftforge.common.capabilities.CapabilityManager;
import net.minecraftforge.common.capabilities.CapabilityToken;
@@ -14,19 +15,33 @@
* @implNote GTCapabilities
*/
public class GTCapability {
- public static final Capability CAPABILITY_ENERGY_CONTAINER = CapabilityManager.get(new CapabilityToken<>() {});
- public static final Capability CAPABILITY_ENERGY_INFO_PROVIDER = CapabilityManager.get(new CapabilityToken<>() {});
+
+ public static final Capability CAPABILITY_ENERGY_CONTAINER = CapabilityManager
+ .get(new CapabilityToken<>() {});
+ public static final Capability CAPABILITY_ENERGY_INFO_PROVIDER = CapabilityManager
+ .get(new CapabilityToken<>() {});
public static final Capability CAPABILITY_COVERABLE = CapabilityManager.get(new CapabilityToken<>() {});
public static final Capability CAPABILITY_TOOLABLE = CapabilityManager.get(new CapabilityToken<>() {});
public static final Capability CAPABILITY_WORKABLE = CapabilityManager.get(new CapabilityToken<>() {});
- public static final Capability CAPABILITY_CONTROLLABLE = CapabilityManager.get(new CapabilityToken<>() {});
- public static final Capability CAPABILITY_RECIPE_LOGIC = CapabilityManager.get(new CapabilityToken<>() {});
- public static final Capability CAPABILITY_ELECTRIC_ITEM = CapabilityManager.get(new CapabilityToken<>() {});
- public static final Capability CAPABILITY_CLEANROOM_RECEIVER = CapabilityManager.get(new CapabilityToken<>() {});
- public static final Capability CAPABILITY_MAINTENANCE_MACHINE = CapabilityManager.get(new CapabilityToken<>() {});
- public static final Capability CAPABILITY_LASER = CapabilityManager.get(new CapabilityToken<>() {});
- public static final Capability CAPABILITY_COMPUTATION_PROVIDER = CapabilityManager.get(new CapabilityToken<>() {});
- public static final Capability CAPABILITY_DATA_ACCESS = CapabilityManager.get(new CapabilityToken<>() {});
+ public static final Capability CAPABILITY_CONTROLLABLE = CapabilityManager
+ .get(new CapabilityToken<>() {});
+ public static final Capability CAPABILITY_RECIPE_LOGIC = CapabilityManager
+ .get(new CapabilityToken<>() {});
+ public static final Capability CAPABILITY_ELECTRIC_ITEM = CapabilityManager
+ .get(new CapabilityToken<>() {});
+ public static final Capability CAPABILITY_CLEANROOM_RECEIVER = CapabilityManager
+ .get(new CapabilityToken<>() {});
+ public static final Capability CAPABILITY_MAINTENANCE_MACHINE = CapabilityManager
+ .get(new CapabilityToken<>() {});
+ public static final Capability CAPABILITY_LASER = CapabilityManager
+ .get(new CapabilityToken<>() {});
+ public static final Capability CAPABILITY_COMPUTATION_PROVIDER = CapabilityManager
+ .get(new CapabilityToken<>() {});
+ public static final Capability CAPABILITY_DATA_ACCESS = CapabilityManager
+ .get(new CapabilityToken<>() {});
+
+ public static final Capability CAPABILITY_HAZARD_EFFECT_TRACKER = CapabilityManager
+ .get(new CapabilityToken<>() {});
public static void register(RegisterCapabilitiesEvent event) {
event.register(IEnergyContainer.class);
@@ -42,6 +57,7 @@ public static void register(RegisterCapabilitiesEvent event) {
event.register(ILaserContainer.class);
event.register(IOpticalComputationProvider.class);
event.register(IDataAccessHatch.class);
- }
+ event.register(IHazardEffectTracker.class);
+ }
}
diff --git a/src/main/java/com/gregtechceu/gtceu/api/capability/forge/GTEnergyHelperImpl.java b/src/main/java/com/gregtechceu/gtceu/api/capability/forge/GTEnergyHelperImpl.java
index 515a117160..b8a30e94b9 100644
--- a/src/main/java/com/gregtechceu/gtceu/api/capability/forge/GTEnergyHelperImpl.java
+++ b/src/main/java/com/gregtechceu/gtceu/api/capability/forge/GTEnergyHelperImpl.java
@@ -1,12 +1,14 @@
package com.gregtechceu.gtceu.api.capability.forge;
import com.gregtechceu.gtceu.api.capability.IPlatformEnergyStorage;
+
import net.minecraftforge.energy.IEnergyStorage;
public class GTEnergyHelperImpl {
public static IPlatformEnergyStorage toPlatformEnergyStorage(IEnergyStorage handler) {
return new IPlatformEnergyStorage() {
+
@Override
public long insert(long maxAmount, boolean simulate) {
return handler.receiveEnergy((int) maxAmount, simulate);
diff --git a/src/main/java/com/gregtechceu/gtceu/api/capability/forge/compat/EUToFEProvider.java b/src/main/java/com/gregtechceu/gtceu/api/capability/forge/compat/EUToFEProvider.java
index eeff2f901c..8a9a7bb041 100644
--- a/src/main/java/com/gregtechceu/gtceu/api/capability/forge/compat/EUToFEProvider.java
+++ b/src/main/java/com/gregtechceu/gtceu/api/capability/forge/compat/EUToFEProvider.java
@@ -8,6 +8,7 @@
import com.gregtechceu.gtceu.api.capability.forge.GTEnergyHelperImpl;
import com.gregtechceu.gtceu.config.ConfigHolder;
import com.gregtechceu.gtceu.utils.GTUtil;
+
import net.minecraft.core.Direction;
import net.minecraft.world.level.block.entity.BlockEntity;
import net.minecraftforge.common.capabilities.Capability;
@@ -32,11 +33,15 @@ public EUToFEProvider(BlockEntity tileEntity) {
@Override
public LazyOptional getCapability(@NotNull Capability capability, Direction facing) {
- if (!ConfigHolder.INSTANCE.compat.energy.nativeEUToPlatformNative || capability != GTCapability.CAPABILITY_ENERGY_CONTAINER)
+ if (!ConfigHolder.INSTANCE.compat.energy.nativeEUToPlatformNative ||
+ capability != GTCapability.CAPABILITY_ENERGY_CONTAINER)
return LazyOptional.empty();
LazyOptional energyStorage = getUpvalueCapability(ForgeCapabilities.ENERGY, facing);
- return energyStorage.isPresent() ? GTCapability.CAPABILITY_ENERGY_CONTAINER.orEmpty(capability, LazyOptional.of(() -> new GTEnergyWrapper(energyStorage.resolve().get()))) : LazyOptional.empty();
+ return energyStorage.isPresent() ?
+ GTCapability.CAPABILITY_ENERGY_CONTAINER.orEmpty(capability,
+ LazyOptional.of(() -> new GTEnergyWrapper(energyStorage.resolve().get()))) :
+ LazyOptional.empty();
}
public class GTEnergyWrapper implements IEnergyContainer {
@@ -49,7 +54,6 @@ public GTEnergyWrapper(IEnergyStorage energyStorage) {
@Override
public long acceptEnergyFromNetwork(Direction facing, long voltage, long amperage) {
-
long receive = 0;
// Try to use the internal buffer before consuming a new packet
@@ -156,9 +160,12 @@ public long getEnergyStored() {
}
/**
- * Most RF/FE cables blindly try to insert energy without checking if there is space, since the receiving IEnergyStorage should handle it.
- * This simulates that behavior in most places by allowing our "is there space" checks to pass and letting the cable attempt to insert energy.
- * If the wrapped TE actually cannot accept any more energy, the energy transfer will return 0 before any changes to our internal rf buffer.
+ * Most RF/FE cables blindly try to insert energy without checking if there is space, since the receiving
+ * IEnergyStorage should handle it.
+ * This simulates that behavior in most places by allowing our "is there space" checks to pass and letting the
+ * cable attempt to insert energy.
+ * If the wrapped TE actually cannot accept any more energy, the energy transfer will return 0 before any
+ * changes to our internal rf buffer.
*/
@Override
public long getEnergyCanBeInserted() {
@@ -175,7 +182,8 @@ public long getInputVoltage() {
long maxInput = energyStorage.insert(Integer.MAX_VALUE, true);
if (maxInput == 0) return 0;
- return GTValues.V[GTUtil.getTierByVoltage(PlatformEnergyCompat.toEu(maxInput, PlatformEnergyCompat.ratio(false)))];
+ return GTValues.V[GTUtil
+ .getTierByVoltage(PlatformEnergyCompat.toEu(maxInput, PlatformEnergyCompat.ratio(false)))];
}
@Override
@@ -211,4 +219,4 @@ public boolean isOneProbeHidden() {
public static int safeCastLongToInt(long v) {
return v > Integer.MAX_VALUE ? Integer.MAX_VALUE : (int) v;
}
-}
\ No newline at end of file
+}
diff --git a/src/main/java/com/gregtechceu/gtceu/api/capability/recipe/BlockStateRecipeCapability.java b/src/main/java/com/gregtechceu/gtceu/api/capability/recipe/BlockStateRecipeCapability.java
index bdc35faa2b..5ff165fbdd 100644
--- a/src/main/java/com/gregtechceu/gtceu/api/capability/recipe/BlockStateRecipeCapability.java
+++ b/src/main/java/com/gregtechceu/gtceu/api/capability/recipe/BlockStateRecipeCapability.java
@@ -1,6 +1,7 @@
package com.gregtechceu.gtceu.api.capability.recipe;
import com.gregtechceu.gtceu.api.recipe.content.SerializerBlockState;
+
import net.minecraft.world.level.block.state.BlockState;
public class BlockStateRecipeCapability extends RecipeCapability {
@@ -15,4 +16,4 @@ protected BlockStateRecipeCapability() {
public BlockState copyInner(BlockState content) {
return content;
}
-}
\ No newline at end of file
+}
diff --git a/src/main/java/com/gregtechceu/gtceu/api/capability/recipe/CWURecipeCapability.java b/src/main/java/com/gregtechceu/gtceu/api/capability/recipe/CWURecipeCapability.java
index 7bb9df0f0d..c9bddb0b23 100644
--- a/src/main/java/com/gregtechceu/gtceu/api/capability/recipe/CWURecipeCapability.java
+++ b/src/main/java/com/gregtechceu/gtceu/api/capability/recipe/CWURecipeCapability.java
@@ -1,12 +1,14 @@
package com.gregtechceu.gtceu.api.capability.recipe;
+import com.gregtechceu.gtceu.api.recipe.GTRecipe;
import com.gregtechceu.gtceu.api.recipe.content.Content;
import com.gregtechceu.gtceu.api.recipe.content.ContentModifier;
import com.gregtechceu.gtceu.api.recipe.content.SerializerInteger;
-import com.gregtechceu.gtceu.api.recipe.content.SerializerLong;
+
import com.lowdragmc.lowdraglib.gui.widget.LabelWidget;
import com.lowdragmc.lowdraglib.gui.widget.WidgetGroup;
import com.lowdragmc.lowdraglib.utils.LocalizationUtils;
+
import org.apache.commons.lang3.mutable.MutableInt;
import java.util.List;
@@ -35,10 +37,16 @@ public Integer copyWithModifier(Integer content, ContentModifier modifier) {
}
@Override
- public void addXEIInfo(WidgetGroup group, int xOffset, List contents, boolean perTick, boolean isInput, MutableInt yOffset) {
- if (perTick && isInput) {
+ public void addXEIInfo(WidgetGroup group, int xOffset, GTRecipe recipe, List contents, boolean perTick,
+ boolean isInput, MutableInt yOffset) {
+ if (perTick) {
int cwu = contents.stream().map(Content::getContent).mapToInt(CWURecipeCapability.CAP::of).sum();
- group.addWidget(new LabelWidget(3 - xOffset, yOffset.addAndGet(10), LocalizationUtils.format("gtceu.recipe.computation_per_tick", cwu)));
+ group.addWidget(new LabelWidget(3 - xOffset, yOffset.addAndGet(10),
+ LocalizationUtils.format("gtceu.recipe.computation_per_tick", cwu)));
+ }
+ if (recipe.data.getBoolean("duration_is_total_cwu")) {
+ group.addWidget(new LabelWidget(3 - xOffset, yOffset.addAndGet(10),
+ LocalizationUtils.format("gtceu.recipe.total_computation", recipe.duration)));
}
}
}
diff --git a/src/main/java/com/gregtechceu/gtceu/api/capability/recipe/EURecipeCapability.java b/src/main/java/com/gregtechceu/gtceu/api/capability/recipe/EURecipeCapability.java
index 30de885dcb..25822e366c 100644
--- a/src/main/java/com/gregtechceu/gtceu/api/capability/recipe/EURecipeCapability.java
+++ b/src/main/java/com/gregtechceu/gtceu/api/capability/recipe/EURecipeCapability.java
@@ -1,7 +1,6 @@
package com.gregtechceu.gtceu.api.capability.recipe;
import com.gregtechceu.gtceu.api.GTValues;
-import com.gregtechceu.gtceu.api.capability.IEnergyContainer;
import com.gregtechceu.gtceu.api.machine.feature.IOverclockMachine;
import com.gregtechceu.gtceu.api.machine.feature.ITieredMachine;
import com.gregtechceu.gtceu.api.recipe.GTRecipe;
@@ -10,9 +9,7 @@
import com.gregtechceu.gtceu.api.recipe.content.SerializerLong;
import java.util.Collection;
-import java.util.Collections;
import java.util.List;
-import java.util.Objects;
/**
* @author KilaBash
diff --git a/src/main/java/com/gregtechceu/gtceu/api/capability/recipe/FluidRecipeCapability.java b/src/main/java/com/gregtechceu/gtceu/api/capability/recipe/FluidRecipeCapability.java
index d121ed5293..9bc80c2320 100644
--- a/src/main/java/com/gregtechceu/gtceu/api/capability/recipe/FluidRecipeCapability.java
+++ b/src/main/java/com/gregtechceu/gtceu/api/capability/recipe/FluidRecipeCapability.java
@@ -16,6 +16,7 @@
import com.gregtechceu.gtceu.utils.GTHashMaps;
import com.gregtechceu.gtceu.utils.OverlayedFluidHandler;
import com.gregtechceu.gtceu.utils.OverlayingFluidStorage;
+
import com.lowdragmc.lowdraglib.gui.texture.ProgressTexture;
import com.lowdragmc.lowdraglib.gui.widget.TankWidget;
import com.lowdragmc.lowdraglib.gui.widget.Widget;
@@ -24,14 +25,16 @@
import com.lowdragmc.lowdraglib.side.fluid.FluidStack;
import com.lowdragmc.lowdraglib.side.fluid.IFluidTransfer;
import com.lowdragmc.lowdraglib.utils.TagOrCycleFluidTransfer;
-import com.mojang.datafixers.util.Either;
-import com.mojang.datafixers.util.Pair;
-import it.unimi.dsi.fastutil.objects.Object2LongLinkedOpenHashMap;
-import it.unimi.dsi.fastutil.objects.ObjectArrayList;
+
import net.minecraft.nbt.CompoundTag;
import net.minecraft.network.chat.Component;
import net.minecraft.tags.TagKey;
import net.minecraft.world.level.material.Fluid;
+
+import com.mojang.datafixers.util.Either;
+import com.mojang.datafixers.util.Pair;
+import it.unimi.dsi.fastutil.objects.Object2LongLinkedOpenHashMap;
+import it.unimi.dsi.fastutil.objects.ObjectArrayList;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.jetbrains.annotations.UnknownNullability;
@@ -75,14 +78,16 @@ public List convertToMapIngredient(Object obj) {
} else {
Collection fluids = value.getFluids();
for (Fluid fluid : fluids) {
- ingredients.add(new MapFluidIngredient(FluidStack.create(fluid, ingredient.getAmount(), ingredient.getNbt())));
+ ingredients.add(new MapFluidIngredient(
+ FluidStack.create(fluid, ingredient.getAmount(), ingredient.getNbt())));
}
}
}
} else if (obj instanceof FluidStack stack) {
ingredients.add(new MapFluidIngredient(stack));
- //noinspection deprecation
- stack.getFluid().builtInRegistryHolder().tags().forEach(tag -> ingredients.add(new MapFluidTagIngredient(tag)));
+ // noinspection deprecation
+ stack.getFluid().builtInRegistryHolder().tags()
+ .forEach(tag -> ingredients.add(new MapFluidTagIngredient(tag)));
}
return ingredients;
@@ -142,12 +147,12 @@ public int limitParallel(GTRecipe recipe, IRecipeCapabilityHolder holder, int mu
int maxMultiplier = multiplier;
OverlayedFluidHandler overlayedFluidHandler = new OverlayedFluidHandler(new FluidTransferList(
- Objects.requireNonNullElseGet(holder.getCapabilitiesProxy().get(IO.OUT, FluidRecipeCapability.CAP), Collections::emptyList)
- .stream()
- .filter(IFluidTransfer.class::isInstance)
- .map(IFluidTransfer.class::cast)
- .toList()
- ));
+ Objects.requireNonNullElseGet(holder.getCapabilitiesProxy().get(IO.OUT, FluidRecipeCapability.CAP),
+ Collections::emptyList)
+ .stream()
+ .filter(IFluidTransfer.class::isInstance)
+ .map(IFluidTransfer.class::cast)
+ .toList()));
while (minMultiplier != maxMultiplier) {
overlayedFluidHandler.reset();
@@ -155,11 +160,11 @@ public int limitParallel(GTRecipe recipe, IRecipeCapabilityHolder holder, int mu
long amountLeft = 0;
for (FluidStack fluidStack : recipe.getOutputContents(FluidRecipeCapability.CAP)
- .stream()
- .map(FluidRecipeCapability.CAP::of)
- .filter(ingredient -> !ingredient.isEmpty())
- .map(ingredient -> ingredient.getStacks()[0])
- .toList()) {
+ .stream()
+ .map(FluidRecipeCapability.CAP::of)
+ .filter(ingredient -> !ingredient.isEmpty())
+ .map(ingredient -> ingredient.getStacks()[0])
+ .toList()) {
if (fluidStack.getAmount() <= 0) continue;
// Since multiplier starts at Int.MAX, check here for integer overflow
if (multiplier > Integer.MAX_VALUE / fluidStack.getAmount()) {
@@ -188,11 +193,15 @@ public int limitParallel(GTRecipe recipe, IRecipeCapabilityHolder holder, int mu
@Override
public int getMaxParallelRatio(IRecipeCapabilityHolder holder, GTRecipe recipe, int parallelAmount) {
// Find all the fluids in the combined Fluid Input inventories and create oversized FluidStacks
- Map fluidStacks = Objects.requireNonNullElseGet(holder.getCapabilitiesProxy().get(IO.IN, FluidRecipeCapability.CAP), Collections::>emptyList)
- .stream()
- .map(container -> container.getContents().stream().filter(FluidStack.class::isInstance).map(FluidStack.class::cast).toList())
- .flatMap(container -> GTHashMaps.fromFluidCollection(container).entrySet().stream())
- .collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue, Long::sum, Object2LongLinkedOpenHashMap::new));
+ Map fluidStacks = Objects
+ .requireNonNullElseGet(holder.getCapabilitiesProxy().get(IO.IN, FluidRecipeCapability.CAP),
+ Collections::>emptyList)
+ .stream()
+ .map(container -> container.getContents().stream().filter(FluidStack.class::isInstance)
+ .map(FluidStack.class::cast).toList())
+ .flatMap(container -> GTHashMaps.fromFluidCollection(container).entrySet().stream())
+ .collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue, Long::sum,
+ Object2LongLinkedOpenHashMap::new));
int minMultiplier = Integer.MAX_VALUE;
// map the recipe input fluids to account for duplicated fluids,
@@ -204,11 +213,11 @@ public int getMaxParallelRatio(IRecipeCapabilityHolder holder, GTRecipe recipe,
long fluidAmount = fluidInput.getAmount();
if (content.chance == 0.0f) {
notConsumableMap.computeIfPresent(new FluidKey(fluidInput.getStacks()[0]),
- (k, v) -> v + fluidAmount);
+ (k, v) -> v + fluidAmount);
notConsumableMap.putIfAbsent(new FluidKey(fluidInput.getStacks()[0]), fluidAmount);
} else {
fluidCountMap.computeIfPresent(new FluidKey(fluidInput.getStacks()[0]),
- (k, v) -> v + fluidAmount);
+ (k, v) -> v + fluidAmount);
fluidCountMap.putIfAbsent(new FluidKey(fluidInput.getStacks()[0]), fluidAmount);
}
}
@@ -278,14 +287,14 @@ public int getMaxParallelRatio(IRecipeCapabilityHolder holder, GTRecipe recipe,
@Override
public @NotNull List