diff --git a/.github/workflows/auto-build.yml b/.github/workflows/auto-build.yml index a75c032729..779ef74e60 100644 --- a/.github/workflows/auto-build.yml +++ b/.github/workflows/auto-build.yml @@ -13,7 +13,7 @@ jobs: build: runs-on: ubuntu-latest env: - MAVEN_PASS: ${{ secrets.MAVEN_PASS }} + MAVEN_PASSWORD: ${{ secrets.MAVEN_PASSWORD }} MAVEN_USER: ${{ secrets.MAVEN_USER }} SNAPSHOT: true permissions: @@ -35,11 +35,10 @@ jobs: - name: Get Version id: var run: | - MESSAGE=$(ls build/libs/* | grep sources.jar -v | grep slim.jar -v | awk -F 'gtceu-|-SNAPSHOT.jar' '{print $2}') - mv "build/libs/gtceu-$MESSAGE-SNAPSHOT.jar" "build/libs/gtceu-$MESSAGE-build_${{ github.run_number }}-SNAPSHOT.jar" - mv "build/libs/gtceu-$MESSAGE-SNAPSHOT-slim.jar" "build/libs/gtceu-$MESSAGE-build_${{ github.run_number }}-SNAPSHOT-slim.jar" - mv "build/libs/gtceu-$MESSAGE-SNAPSHOT-dev-shadow.jar" "build/libs/gtceu-$MESSAGE-build_${{ github.run_number }}-SNAPSHOT-dev-shadow.jar" - echo "version=$MESSAGE-build_${{ github.run_number }}" >> $GITHUB_OUTPUT + VER=$(./gradlew -q printVersion) + BUILD_VER=$VER-build_${{ github.run_number }} + for jar in ./build/libs/*; do mv "$jar" "${jar/${VER}-SNAPSHOT/${BUILD_VER}-SNAPSHOT}";done 2>/dev/null + echo "version=$BUILD_VER" >> $GITHUB_OUTPUT - name: Release id: release diff --git a/.github/workflows/auto-publish.yml b/.github/workflows/auto-publish.yml index 574556d730..c0832ca76a 100644 --- a/.github/workflows/auto-publish.yml +++ b/.github/workflows/auto-publish.yml @@ -27,7 +27,7 @@ jobs: build: runs-on: ubuntu-latest env: - MAVEN_PASS: ${{ secrets.MAVEN_PASS }} + MAVEN_PASSWORD: ${{ secrets.MAVEN_PASSWORD }} MAVEN_USER: ${{ secrets.MAVEN_USER }} permissions: contents: write @@ -49,9 +49,7 @@ jobs: - if: ${{ inputs.publishCurseForgeAndModrinth }} name: Get Version 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 + run: echo "version=$(./gradlew -q printVersion)" >> $GITHUB_OUTPUT - if: ${{ inputs.publishCurseForgeAndModrinth }} name: mc-publish-forge @@ -77,7 +75,7 @@ jobs: name: GregTechCEu ${{ steps.var.outputs.version }} version: mc${{ steps.var.outputs.version }} version-type: ${{ inputs.releaseType }} - changelog-file: CHANGELOG.* + changelog-file: RELEASE.* loaders: | neoforge diff --git a/.github/workflows/changelog.yml b/.github/workflows/changelog.yml index fe09d26cf6..674911db19 100644 --- a/.github/workflows/changelog.yml +++ b/.github/workflows/changelog.yml @@ -12,7 +12,7 @@ jobs: build: runs-on: ubuntu-latest env: - MAVEN_PASS: ${{ secrets.MAVEN_PASS }} + MAVEN_PASSWORD: ${{ secrets.MAVEN_PASSWORD }} MAVEN_USER: ${{ secrets.MAVEN_USER }} permissions: contents: write diff --git a/RELEASE.md b/RELEASE.md new file mode 100644 index 0000000000..bace457ff0 --- /dev/null +++ b/RELEASE.md @@ -0,0 +1,36 @@ +## What's Changed + +### Added +- Compressor recipe for snowballs to snow blocks ([#1969](https://github.com/GregTechCEu/GregTech-Modern/pull/1969)) +- Rubber Wood and Treated Wood boats ([#1980](https://github.com/GregTechCEu/GregTech-Modern/pull/1980)) + +### Fixed +- Coke Oven Hatches are now able to be automated again ([#1948](https://github.com/GregTechCEu/GregTech-Modern/pull/1948)) +- All sounds are now mono-audio (you will no longer be haunted by the global Research Station sound) ([#1966](https://github.com/GregTechCEu/GregTech-Modern/pull/1966)) +- Fixed Large Turbine logic which stopped them from running properly ([#1983](https://github.com/GregTechCEu/GregTech-Modern/pull/1983) and [#2010](https://github.com/GregTechCEu/GregTech-Modern/pull/2010)) +- Machine auto-export will now respect attached filter covers ([#1982](https://github.com/GregTechCEu/GregTech-Modern/pull/1982)) +- Quantum Tanks will no longer void fluids that don't match the stored fluid ([#1976](https://github.com/GregTechCEu/GregTech-Modern/pull/1976)) +- Quantum Chests will now properly drop items if your inventory is full rather than just voiding them ([#1976](https://github.com/GregTechCEu/GregTech-Modern/pull/1976)) +- The Multi Smelter now applies overclocks properly ([#2004](https://github.com/GregTechCEu/GregTech-Modern/pull/2004) and [#2008](https://github.com/GregTechCEu/GregTech-Modern/pull/2008)) +- ME Pattern Buffer Proxies now show a hand animation when opened ([#2005](https://github.com/GregTechCEu/GregTech-Modern/pull/2005)) +- Fixed ME parts not showing tooltips ([#1993](https://github.com/GregTechCEu/GregTech-Modern/pull/1993)) +- Rubber log variants now have the burnable tag ([#1914](https://github.com/GregTechCEu/GregTech-Modern/pull/1914)) +- Fixed solid boilers not being able to burn some vanilla furnace fuels ([#1998](https://github.com/GregTechCEu/GregTech-Modern/pull/1998)) +- Various texture fixes ([#1974](https://github.com/GregTechCEu/GregTech-Modern/pull/1974)) +- Multiblock machines now calculate their tier correctly ([#2019](https://github.com/GregTechCEu/GregTech-Modern/pull/2019)) +- Recipe fixes 🔥 ([#2022](https://github.com/GregTechCEu/GregTech-Modern/pull/2022) and [#2023](https://github.com/GregTechCEu/GregTech-Modern/pull/2023)) +- Other miscellaneous fixes + +### Changed +- **ADDON DEVS:** Recipe Conditions and the GTRegistry class have changed slightly - please take note ([#1955](https://github.com/GregTechCEu/GregTech-Modern/pull/1955)) +- **ADDON DEVS:** We now publish to the official GTCEu Maven - check the updated README for further information +- Chanced outputs for parallel recipes are now deterministic and guaranteed a minimum amount ([#1948](https://github.com/GregTechCEu/GregTech-Modern/pull/1948)) +- The highlight grid for tools and covers will now only appear if a possible interaction exists ([#1949](https://github.com/GregTechCEu/GregTech-Modern/pull/1949)) +- Optical Pipes can now hold covers ([#1953](https://github.com/GregTechCEu/GregTech-Modern/pull/1953)) + + +### Removed +- Covers that have no plan to be implemented have been removed ([#1961](https://github.com/GregTechCEu/GregTech-Modern/pull/1961)) + +\ +**Full Changelog found [here](https://github.com/GregTechCEu/GregTech-Modern/compare/1.20.1-1.4.2...1.20.1-1.4.4)** \ No newline at end of file diff --git a/gradle.properties b/gradle.properties index f314935e80..dc31dc8809 100644 --- a/gradle.properties +++ b/gradle.properties @@ -7,7 +7,7 @@ loader_version = 2 # Mod Info mod_id = gtceu mod_name = GregTech -mod_version = 1.4.2 +mod_version = 1.4.4 mod_description = GregTech CE Unofficial, ported from 1.12.2 mod_license = LGPL-3.0 license mod_url = https://github.com/GregTechCEu/GregTech-Modern/ diff --git a/gradle/scripts/publishing.gradle b/gradle/scripts/publishing.gradle index 0fa001638a..096c5f2ab9 100644 --- a/gradle/scripts/publishing.gradle +++ b/gradle/scripts/publishing.gradle @@ -9,9 +9,11 @@ publishing { mavenJava(MavenPublication) { groupId = project.maven_group artifactId = project.archivesBaseName - version = project.mod_version + version = project.version from components.java + + artifact sourcesJar } } @@ -22,7 +24,7 @@ publishing { url "https://maven.firstdarkdev.xyz/snapshots" credentials { username System.getenv("MAVEN_USER") - password System.getenv("MAVEN_PASS") + password System.getenv("MAVEN_PASSWORD") } } } diff --git a/gradle/scripts/resources.gradle b/gradle/scripts/resources.gradle index 2d7d2dc69a..f175787488 100644 --- a/gradle/scripts/resources.gradle +++ b/gradle/scripts/resources.gradle @@ -11,6 +11,12 @@ def mod_url = getConfig("mod_url") def mod_issue_tracker = getConfig("mod_issue_tracker") def loader_version = getConfig("loader_version") +task printVersion { + doLast { + println libs.versions.minecraft.get() + "-" + mod_version + } +} + // This block of code expands all declared replace properties in the specified resource targets. // A missing property will result in an error. Properties are expanded using ${} Groovy notation. var generateModMetadata = tasks.register("generateModMetadata", ProcessResources) { diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 0d1842103b..e1adfb4938 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.8-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.10-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/src/generated/resources/assets/gtceu/lang/en_ud.json b/src/generated/resources/assets/gtceu/lang/en_ud.json index 0909554f12..e7179eace3 100644 --- a/src/generated/resources/assets/gtceu/lang/en_ud.json +++ b/src/generated/resources/assets/gtceu/lang/en_ud.json @@ -1813,7 +1813,6 @@ "compass.node.gtceu.covers/computer_monitor_cover": "ɹǝʌoƆ ɹoʇıuoW ɹǝʇndɯoƆ", "compass.node.gtceu.covers/conveyor": "ɹoʎǝʌuoƆ", "compass.node.gtceu.covers/cover": "¿ɹǝʌoƆ sı ʇɐɥM", - "compass.node.gtceu.covers/crafting_table_cover": "ɹǝʌoƆ ǝןqɐ⟘ buıʇɟɐɹƆ", "compass.node.gtceu.covers/ender_fluid_link_cover": "ɹǝʌoƆ ʞuıꞀ pınןℲ ɹǝpuƎ", "compass.node.gtceu.covers/energy_detector_cover": "ɹǝʌoƆ ɹoʇɔǝʇǝᗡ ʎbɹǝuƎ", "compass.node.gtceu.covers/facade_cover": "ɹǝʌoƆ ǝpɐɔɐℲ", @@ -2585,6 +2584,8 @@ "enchantment.gtceu.disjunction.desc": "˙sqoɯ pǝʇɐןǝɹ-ɹǝpuƎ oʇ ssǝuʍoןS puɐ ssǝuʞɐǝM sǝıןddⱯ", "enchantment.gtceu.hard_hammer.desc": "˙ɹǝɯɯɐH ɥɔǝ⟘bǝɹ⅁ ɐ ɥʇıʍ pǝuıɯ ǝɹǝʍ ʎǝɥʇ ɟı sɐ sʞɔoןq sʞɐǝɹᗺ", "enchantment.hard_hammer": "buıɹǝɯɯɐH", + "entity.gtceu.boat": "ʇɐoᗺ", + "entity.gtceu.chest_boat": "ʇɐoᗺ ʇsǝɥƆ", "entity.gtceu.dynamite": "ǝʇıɯɐuʎᗡ", "entity.gtceu.industrial_tnt": "⟘N⟘ ןɐıɹʇsnpuI", "entity.gtceu.powderbarrel": "ןǝɹɹɐqɹǝpʍoԀ", @@ -4108,7 +4109,6 @@ "item.gtceu.cpu_chip.tooltip": "ʇıu∩ buıssǝɔoɹԀ ןɐɹʇuǝƆㄥ§", "item.gtceu.cpu_wafer": "ɹǝɟɐM ∩ԀƆ", "item.gtceu.cpu_wafer.tooltip": "ʇıu∩ buıssǝɔoɹԀ ʍɐᴚㄥ§", - "item.gtceu.crafting_table_cover": "ɹǝʌoƆ ǝןqɐ⟘ buıʇɟɐɹƆ", "item.gtceu.crafting_table_cover.tooltip": "˙ㄥ§ɹǝʌoƆɟ§ sɐ ǝuıɥɔɐW ɐ uo ㄥ§ɥɔuǝqʞɹoM pǝɔuɐʌpⱯɟ§", "item.gtceu.credit_casting_mold": ")ǝbɐuıoƆ( pןoW buıʇsɐƆ", "item.gtceu.credit_casting_mold.tooltip": ")¡ʇı ǝsoן ʇ,uoᗡ( suıoƆ buıʞɐɯ ɹoɟ pןoW ǝɹnɔǝSㄥ§", @@ -4145,7 +4145,6 @@ "item.gtceu.data_stick": "ʞɔıʇS ɐʇɐᗡ", "item.gtceu.data_stick.tooltip": "ǝbɐɹoʇS ɐʇɐᗡ ʎʇıɔɐdɐƆ ʍoꞀ Ɐㄥ§", "item.gtceu.diamond_grinding_head": "pɐǝH buıpuıɹ⅁ puoɯɐıᗡ", - "item.gtceu.digital_interface_cover": "ǝɔɐɟɹǝʇuI ןɐʇıbıᗡ", "item.gtceu.diode": "ǝpoıᗡ", "item.gtceu.diode.tooltip": "ʇuǝuodɯoƆ ɔıuoɹʇɔǝןƎ ɔısɐᗺㄥ§", "item.gtceu.doge_coin": "uıoƆ ǝboᗡ", @@ -4654,6 +4653,8 @@ "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_boat": "ʇɐoᗺ ɹǝqqnᴚ", + "item.gtceu.rubber_chest_boat": "ʇsǝɥƆ ɥʇıʍ ʇɐoᗺ ɹǝqqnᴚ", "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Ǝㄥ§", @@ -4866,7 +4867,9 @@ "item.gtceu.tool.wrench.tooltip": "sǝuıɥɔɐW ǝןʇuɐɯsıp oʇ ʞɔıןɔ ʇɟǝן pןoH8§", "item.gtceu.transistor": "ɹoʇsısuɐɹ⟘", "item.gtceu.transistor.tooltip": "ʇuǝuodɯoƆ ɔıuoɹʇɔǝןƎ ɔısɐᗺㄥ§", + "item.gtceu.treated_wood_boat": "ʇɐoᗺ pooM pǝʇɐǝɹ⟘", "item.gtceu.treated_wood_bolt": "ʞɔıʇS pooM pǝʇɐǝɹ⟘ ʇɹoɥS", + "item.gtceu.treated_wood_chest_boat": "ʇsǝɥƆ ɥʇıʍ ʇɐoᗺ pooM pǝʇɐǝɹ⟘", "item.gtceu.treated_wood_dust": "dןnԀ pooM pǝʇɐǝɹ⟘", "item.gtceu.treated_wood_plate": "ʞuɐןԀ pooM pǝʇɐǝɹ⟘", "item.gtceu.treated_wood_rod": "ʞɔıʇS pooM pǝʇɐǝɹ⟘", @@ -4966,7 +4969,6 @@ "item.gtceu.white_dye_spray_can": ")ǝʇıɥM( uɐƆ ʎɐɹdS", "item.gtceu.wire_extruder_mold": ")ǝɹıM( pןoW ɹǝpnɹʇxƎ", "item.gtceu.wire_extruder_mold.tooltip": "sǝɹıM buıʞɐɯ ɹoɟ ǝdɐɥS ɹǝpnɹʇxƎㄥ§", - "item.gtceu.wireless_digital_interface_cover": "ǝɔɐɟɹǝʇuI ןɐʇıbıᗡ ssǝןǝɹıM", "item.gtceu.wood_bolt": "ʞɔıʇS pooM ʇɹoɥS", "item.gtceu.wood_dust": "dןnԀ pooM", "item.gtceu.wood_plate": "ʞuɐןԀ pooM", @@ -5173,7 +5175,7 @@ "material.gtceu.dubnium": "ɯnıuqnᗡ", "material.gtceu.duranium": "ɯnıuɐɹnᗡ", "material.gtceu.dysprosium": "ɯnısoɹdsʎᗡ", - "material.gtceu.echo": "oɥɔƎ", + "material.gtceu.echo_shard": "pɹɐɥS oɥɔƎ", "material.gtceu.einsteinium": "ɯnıuıǝʇsuıƎ", "material.gtceu.electrotine": "ǝuıʇoɹʇɔǝןƎ", "material.gtceu.electrum": "ɯnɹʇɔǝןƎ", diff --git a/src/generated/resources/assets/gtceu/lang/en_us.json b/src/generated/resources/assets/gtceu/lang/en_us.json index 220c626917..8b414c52d7 100644 --- a/src/generated/resources/assets/gtceu/lang/en_us.json +++ b/src/generated/resources/assets/gtceu/lang/en_us.json @@ -1813,7 +1813,6 @@ "compass.node.gtceu.covers/computer_monitor_cover": "Computer Monitor Cover", "compass.node.gtceu.covers/conveyor": "Conveyor", "compass.node.gtceu.covers/cover": "What is Cover?", - "compass.node.gtceu.covers/crafting_table_cover": "Crafting Table Cover", "compass.node.gtceu.covers/ender_fluid_link_cover": "Ender Fluid Link Cover", "compass.node.gtceu.covers/energy_detector_cover": "Energy Detector Cover", "compass.node.gtceu.covers/facade_cover": "Facade Cover", @@ -2585,6 +2584,8 @@ "enchantment.gtceu.disjunction.desc": "Applies Weakness and Slowness to Ender-related mobs.", "enchantment.gtceu.hard_hammer.desc": "Breaks blocks as if they were mined with a GregTech Hammer.", "enchantment.hard_hammer": "Hammering", + "entity.gtceu.boat": "Boat", + "entity.gtceu.chest_boat": "Chest Boat", "entity.gtceu.dynamite": "Dynamite", "entity.gtceu.industrial_tnt": "Industrial TNT", "entity.gtceu.powderbarrel": "Powderbarrel", @@ -4108,7 +4109,6 @@ "item.gtceu.cpu_chip.tooltip": "§7Central Processing Unit", "item.gtceu.cpu_wafer": "CPU Wafer", "item.gtceu.cpu_wafer.tooltip": "§7Raw Processing Unit", - "item.gtceu.crafting_table_cover": "Crafting Table Cover", "item.gtceu.crafting_table_cover.tooltip": "§fAdvanced Workbench§7 on a Machine as §fCover§7.", "item.gtceu.credit_casting_mold": "Casting Mold (Coinage)", "item.gtceu.credit_casting_mold.tooltip": "§7Secure Mold for making Coins (Don't lose it!)", @@ -4145,7 +4145,6 @@ "item.gtceu.data_stick": "Data Stick", "item.gtceu.data_stick.tooltip": "§7A Low Capacity Data Storage", "item.gtceu.diamond_grinding_head": "Diamond Grinding Head", - "item.gtceu.digital_interface_cover": "Digital Interface", "item.gtceu.diode": "Diode", "item.gtceu.diode.tooltip": "§7Basic Electronic Component", "item.gtceu.doge_coin": "Doge Coin", @@ -4654,6 +4653,8 @@ "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_boat": "Rubber Boat", + "item.gtceu.rubber_chest_boat": "Rubber Boat with Chest", "item.gtceu.rubber_gloves": "Rubber Gloves", "item.gtceu.salt_dust": "Salt", "item.gtceu.saw_extruder_mold.tooltip": "§7Extruder Shape for making Saws", @@ -4866,7 +4867,9 @@ "item.gtceu.tool.wrench.tooltip": "§8Hold left click to dismantle Machines", "item.gtceu.transistor": "Transistor", "item.gtceu.transistor.tooltip": "§7Basic Electronic Component", + "item.gtceu.treated_wood_boat": "Treated Wood Boat", "item.gtceu.treated_wood_bolt": "Short Treated Wood Stick", + "item.gtceu.treated_wood_chest_boat": "Treated Wood Boat with Chest", "item.gtceu.treated_wood_dust": "Treated Wood Pulp", "item.gtceu.treated_wood_plate": "Treated Wood Plank", "item.gtceu.treated_wood_rod": "Treated Wood Stick", @@ -4966,7 +4969,6 @@ "item.gtceu.white_dye_spray_can": "Spray Can (White)", "item.gtceu.wire_extruder_mold": "Extruder Mold (Wire)", "item.gtceu.wire_extruder_mold.tooltip": "§7Extruder Shape for making Wires", - "item.gtceu.wireless_digital_interface_cover": "Wireless Digital Interface", "item.gtceu.wood_bolt": "Short Wood Stick", "item.gtceu.wood_dust": "Wood Pulp", "item.gtceu.wood_plate": "Wood Plank", @@ -5173,7 +5175,7 @@ "material.gtceu.dubnium": "Dubnium", "material.gtceu.duranium": "Duranium", "material.gtceu.dysprosium": "Dysprosium", - "material.gtceu.echo": "Echo", + "material.gtceu.echo_shard": "Echo Shard", "material.gtceu.einsteinium": "Einsteinium", "material.gtceu.electrotine": "Electrotine", "material.gtceu.electrum": "Electrum", diff --git a/src/generated/resources/assets/gtceu/models/block/empty_tier_i_battery.json b/src/generated/resources/assets/gtceu/models/block/empty_tier_i_battery.json index 8d725b683a..97b55dd87d 100644 --- a/src/generated/resources/assets/gtceu/models/block/empty_tier_i_battery.json +++ b/src/generated/resources/assets/gtceu/models/block/empty_tier_i_battery.json @@ -2,7 +2,7 @@ "parent": "minecraft:block/cube_bottom_top", "textures": { "bottom": "gtceu:block/casings/battery/empty_tier_i/top", - "side": "gtceu:block/casings/battery/empty_tier_i/top", - "top": "gtceu:block/casings/battery/empty_tier_i/side" + "side": "gtceu:block/casings/battery/empty_tier_i/side", + "top": "gtceu:block/casings/battery/empty_tier_i/top" } } \ No newline at end of file diff --git a/src/generated/resources/assets/gtceu/models/block/empty_tier_ii_battery.json b/src/generated/resources/assets/gtceu/models/block/empty_tier_ii_battery.json index cb5bae8d09..496b354670 100644 --- a/src/generated/resources/assets/gtceu/models/block/empty_tier_ii_battery.json +++ b/src/generated/resources/assets/gtceu/models/block/empty_tier_ii_battery.json @@ -2,7 +2,7 @@ "parent": "minecraft:block/cube_bottom_top", "textures": { "bottom": "gtceu:block/casings/battery/empty_tier_ii/top", - "side": "gtceu:block/casings/battery/empty_tier_ii/top", - "top": "gtceu:block/casings/battery/empty_tier_ii/side" + "side": "gtceu:block/casings/battery/empty_tier_ii/side", + "top": "gtceu:block/casings/battery/empty_tier_ii/top" } } \ No newline at end of file diff --git a/src/generated/resources/assets/gtceu/models/block/empty_tier_iii_battery.json b/src/generated/resources/assets/gtceu/models/block/empty_tier_iii_battery.json index b300ceaac7..21d890afc3 100644 --- a/src/generated/resources/assets/gtceu/models/block/empty_tier_iii_battery.json +++ b/src/generated/resources/assets/gtceu/models/block/empty_tier_iii_battery.json @@ -2,7 +2,7 @@ "parent": "minecraft:block/cube_bottom_top", "textures": { "bottom": "gtceu:block/casings/battery/empty_tier_iii/top", - "side": "gtceu:block/casings/battery/empty_tier_iii/top", - "top": "gtceu:block/casings/battery/empty_tier_iii/side" + "side": "gtceu:block/casings/battery/empty_tier_iii/side", + "top": "gtceu:block/casings/battery/empty_tier_iii/top" } } \ No newline at end of file diff --git a/src/generated/resources/assets/gtceu/models/block/ev_lapotronic_battery.json b/src/generated/resources/assets/gtceu/models/block/ev_lapotronic_battery.json index 4849880502..af181216b9 100644 --- a/src/generated/resources/assets/gtceu/models/block/ev_lapotronic_battery.json +++ b/src/generated/resources/assets/gtceu/models/block/ev_lapotronic_battery.json @@ -2,7 +2,7 @@ "parent": "minecraft:block/cube_bottom_top", "textures": { "bottom": "gtceu:block/casings/battery/ev_lapotronic/top", - "side": "gtceu:block/casings/battery/ev_lapotronic/top", - "top": "gtceu:block/casings/battery/ev_lapotronic/side" + "side": "gtceu:block/casings/battery/ev_lapotronic/side", + "top": "gtceu:block/casings/battery/ev_lapotronic/top" } } \ No newline at end of file diff --git a/src/generated/resources/assets/gtceu/models/block/industrial_tnt.json b/src/generated/resources/assets/gtceu/models/block/industrial_tnt.json index 21734bfa6a..3711dcc37e 100644 --- a/src/generated/resources/assets/gtceu/models/block/industrial_tnt.json +++ b/src/generated/resources/assets/gtceu/models/block/industrial_tnt.json @@ -2,7 +2,7 @@ "parent": "minecraft:block/cube_bottom_top", "textures": { "bottom": "minecraft:block/tnt_bottom", - "side": "gtceu:block/industrial_tnt_side", + "side": "gtceu:block/misc/industrial_tnt_side", "top": "minecraft:block/tnt_top" } } \ No newline at end of file diff --git a/src/generated/resources/assets/gtceu/models/block/iv_lapotronic_battery.json b/src/generated/resources/assets/gtceu/models/block/iv_lapotronic_battery.json index 37e72e0f79..eeccabf47d 100644 --- a/src/generated/resources/assets/gtceu/models/block/iv_lapotronic_battery.json +++ b/src/generated/resources/assets/gtceu/models/block/iv_lapotronic_battery.json @@ -2,7 +2,7 @@ "parent": "minecraft:block/cube_bottom_top", "textures": { "bottom": "gtceu:block/casings/battery/iv_lapotronic/top", - "side": "gtceu:block/casings/battery/iv_lapotronic/top", - "top": "gtceu:block/casings/battery/iv_lapotronic/side" + "side": "gtceu:block/casings/battery/iv_lapotronic/side", + "top": "gtceu:block/casings/battery/iv_lapotronic/top" } } \ No newline at end of file diff --git a/src/generated/resources/assets/gtceu/models/block/luv_lapotronic_battery.json b/src/generated/resources/assets/gtceu/models/block/luv_lapotronic_battery.json index 41e5dbcee4..5d01dec145 100644 --- a/src/generated/resources/assets/gtceu/models/block/luv_lapotronic_battery.json +++ b/src/generated/resources/assets/gtceu/models/block/luv_lapotronic_battery.json @@ -2,7 +2,7 @@ "parent": "minecraft:block/cube_bottom_top", "textures": { "bottom": "gtceu:block/casings/battery/luv_lapotronic/top", - "side": "gtceu:block/casings/battery/luv_lapotronic/top", - "top": "gtceu:block/casings/battery/luv_lapotronic/side" + "side": "gtceu:block/casings/battery/luv_lapotronic/side", + "top": "gtceu:block/casings/battery/luv_lapotronic/top" } } \ No newline at end of file diff --git a/src/generated/resources/assets/gtceu/models/block/uhv_ultimate_battery.json b/src/generated/resources/assets/gtceu/models/block/uhv_ultimate_battery.json index c92f74c787..0abbfc3ec7 100644 --- a/src/generated/resources/assets/gtceu/models/block/uhv_ultimate_battery.json +++ b/src/generated/resources/assets/gtceu/models/block/uhv_ultimate_battery.json @@ -2,7 +2,7 @@ "parent": "minecraft:block/cube_bottom_top", "textures": { "bottom": "gtceu:block/casings/battery/uhv_ultimate/top", - "side": "gtceu:block/casings/battery/uhv_ultimate/top", - "top": "gtceu:block/casings/battery/uhv_ultimate/side" + "side": "gtceu:block/casings/battery/uhv_ultimate/side", + "top": "gtceu:block/casings/battery/uhv_ultimate/top" } } \ No newline at end of file diff --git a/src/generated/resources/assets/gtceu/models/block/uv_lapotronic_battery.json b/src/generated/resources/assets/gtceu/models/block/uv_lapotronic_battery.json index 5bf09d6c21..399f927a2c 100644 --- a/src/generated/resources/assets/gtceu/models/block/uv_lapotronic_battery.json +++ b/src/generated/resources/assets/gtceu/models/block/uv_lapotronic_battery.json @@ -2,7 +2,7 @@ "parent": "minecraft:block/cube_bottom_top", "textures": { "bottom": "gtceu:block/casings/battery/uv_lapotronic/top", - "side": "gtceu:block/casings/battery/uv_lapotronic/top", - "top": "gtceu:block/casings/battery/uv_lapotronic/side" + "side": "gtceu:block/casings/battery/uv_lapotronic/side", + "top": "gtceu:block/casings/battery/uv_lapotronic/top" } } \ No newline at end of file diff --git a/src/generated/resources/assets/gtceu/models/block/zpm_lapotronic_battery.json b/src/generated/resources/assets/gtceu/models/block/zpm_lapotronic_battery.json index f7203c0069..46c8402bcc 100644 --- a/src/generated/resources/assets/gtceu/models/block/zpm_lapotronic_battery.json +++ b/src/generated/resources/assets/gtceu/models/block/zpm_lapotronic_battery.json @@ -2,7 +2,7 @@ "parent": "minecraft:block/cube_bottom_top", "textures": { "bottom": "gtceu:block/casings/battery/zpm_lapotronic/top", - "side": "gtceu:block/casings/battery/zpm_lapotronic/top", - "top": "gtceu:block/casings/battery/zpm_lapotronic/side" + "side": "gtceu:block/casings/battery/zpm_lapotronic/side", + "top": "gtceu:block/casings/battery/zpm_lapotronic/top" } } \ No newline at end of file diff --git a/src/generated/resources/assets/gtceu/models/item/crafting_table_cover.json b/src/generated/resources/assets/gtceu/models/item/rubber_boat.json similarity index 56% rename from src/generated/resources/assets/gtceu/models/item/crafting_table_cover.json rename to src/generated/resources/assets/gtceu/models/item/rubber_boat.json index 5b36968e69..1298fccf6d 100644 --- a/src/generated/resources/assets/gtceu/models/item/crafting_table_cover.json +++ b/src/generated/resources/assets/gtceu/models/item/rubber_boat.json @@ -1,6 +1,6 @@ { "parent": "minecraft:item/generated", "textures": { - "layer0": "gtceu:item/crafting_table_cover" + "layer0": "gtceu:item/rubber_boat" } } \ No newline at end of file diff --git a/src/generated/resources/assets/gtceu/models/item/digital_interface_cover.json b/src/generated/resources/assets/gtceu/models/item/rubber_chest_boat.json similarity index 55% rename from src/generated/resources/assets/gtceu/models/item/digital_interface_cover.json rename to src/generated/resources/assets/gtceu/models/item/rubber_chest_boat.json index d27ed8fa80..69a0964968 100644 --- a/src/generated/resources/assets/gtceu/models/item/digital_interface_cover.json +++ b/src/generated/resources/assets/gtceu/models/item/rubber_chest_boat.json @@ -1,6 +1,6 @@ { "parent": "minecraft:item/generated", "textures": { - "layer0": "gtceu:item/digital_interface_cover" + "layer0": "gtceu:item/rubber_chest_boat" } } \ No newline at end of file diff --git a/src/generated/resources/assets/gtceu/models/item/wireless_digital_interface_cover.json b/src/generated/resources/assets/gtceu/models/item/treated_wood_boat.json similarity index 51% rename from src/generated/resources/assets/gtceu/models/item/wireless_digital_interface_cover.json rename to src/generated/resources/assets/gtceu/models/item/treated_wood_boat.json index 92a8329526..2ad82d61dc 100644 --- a/src/generated/resources/assets/gtceu/models/item/wireless_digital_interface_cover.json +++ b/src/generated/resources/assets/gtceu/models/item/treated_wood_boat.json @@ -1,6 +1,6 @@ { "parent": "minecraft:item/generated", "textures": { - "layer0": "gtceu:item/wireless_digital_interface_cover" + "layer0": "gtceu:item/treated_wood_boat" } } \ No newline at end of file diff --git a/src/generated/resources/assets/gtceu/models/item/treated_wood_chest_boat.json b/src/generated/resources/assets/gtceu/models/item/treated_wood_chest_boat.json new file mode 100644 index 0000000000..c24d335945 --- /dev/null +++ b/src/generated/resources/assets/gtceu/models/item/treated_wood_chest_boat.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "gtceu:item/treated_wood_chest_boat" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/tags/block/logs_that_burn.json b/src/generated/resources/data/minecraft/tags/block/logs_that_burn.json index 0e9a2d0809..39f4a40dc7 100644 --- a/src/generated/resources/data/minecraft/tags/block/logs_that_burn.json +++ b/src/generated/resources/data/minecraft/tags/block/logs_that_burn.json @@ -1,5 +1,8 @@ { "values": [ - "gtceu:rubber_log" + "gtceu:rubber_log", + "gtceu:stripped_rubber_log", + "gtceu:rubber_wood", + "gtceu:stripped_rubber_wood" ] -} \ No newline at end of file +} diff --git a/src/main/java/com/gregtechceu/gtceu/api/GTValues.java b/src/main/java/com/gregtechceu/gtceu/api/GTValues.java index 50651ab309..44251e7112 100644 --- a/src/main/java/com/gregtechceu/gtceu/api/GTValues.java +++ b/src/main/java/com/gregtechceu/gtceu/api/GTValues.java @@ -49,7 +49,7 @@ 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 }; + 33554432, 134217728, 536870912, 2147483648L }; /** * The Voltage Tiers divided by 2. @@ -69,6 +69,15 @@ public class GTValues { public static final int[] VHA = { 7, 16, 60, 240, 960, 3840, 15360, 61440, 245760, 983040, 3932160, 15728640, 62914560, 251658240, 1006632960 }; + /** + * The Voltage Tiers. Use this Array instead of the old named Voltage Variables + */ + public static final long[] VEX = new long[] { 8, 32, 128, 512, 2048, 8192, 32768, 131072, 524288, 2097152, 8388608, + 33554432, 134217728, 536870912, 2147483648L, 8589934592L, 34359738368L, 137438953472L, 549755813888L, + 2199023255552L, 8796093022208L, 35184372088832L, 140737488355328L, 562949953421312L, 2251799813685248L, + 9007199254740992L, 36028797018963968L, 144115188075855872L, 576460752303423488L, 2305843009213693952L, + Long.MAX_VALUE }; + public static final int ULV = 0; public static final int LV = 1; public static final int MV = 2; @@ -84,6 +93,7 @@ public class GTValues { public static final int UXV = 12; public static final int OpV = 13; public static final int MAX = 14; + public static final int MAX_TRUE = 30; public static final int[] ALL_TIERS = new int[] { ULV, LV, MV, HV, EV, IV, LuV, ZPM, UV, UHV, UEV, UIV, UXV, OpV, MAX }; 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 6766900b3a..a2ad24987c 100644 --- a/src/main/java/com/gregtechceu/gtceu/api/blockentity/PipeBlockEntity.java +++ b/src/main/java/com/gregtechceu/gtceu/api/blockentity/PipeBlockEntity.java @@ -334,7 +334,7 @@ public void setChanged() { @Override public boolean shouldRenderGrid(Player player, BlockPos pos, BlockState state, ItemStack held, Set toolTypes) { - if (toolTypes.contains(getPipeTuneTool()) || toolTypes.contains(GTToolType.SCREWDRIVER)) return true; + if (toolTypes.contains(getPipeTuneTool())) return true; for (CoverBehavior cover : coverContainer.getCovers()) { if (cover.shouldRenderGrid(player, pos, state, held, toolTypes)) return true; } diff --git a/src/main/java/com/gregtechceu/gtceu/api/gui/GuiTextures.java b/src/main/java/com/gregtechceu/gtceu/api/gui/GuiTextures.java index 6f6402b627..6e8e97cec2 100644 --- a/src/main/java/com/gregtechceu/gtceu/api/gui/GuiTextures.java +++ b/src/main/java/com/gregtechceu/gtceu/api/gui/GuiTextures.java @@ -49,11 +49,11 @@ public class GuiTextures { public static final ResourceTexture TOOL_DISABLE_AUTO_OUTPUT = new ResourceTexture( "gtceu:textures/gui/overlay/tool_disable_auto_output.png"); public static final ResourceTexture TOOL_SWITCH_CONVERTER_NATIVE = new ResourceTexture( - "gtceu:textures/gui/overlay/tool_wire_block.png"); // switch to tool_switch_converter_native once that gets - // made + "gtceu:textures/gui/overlay/tool_wire_block.png"); // todo switch to tool_switch_converter_native once that + // gets made public static final ResourceTexture TOOL_SWITCH_CONVERTER_EU = new ResourceTexture( - "gtceu:textures/gui/overlay/tool_wire_connect.png"); // switch to tool_switch_converter_eu once that gets - // made + "gtceu:textures/gui/overlay/tool_wire_connect.png"); // todo switch to tool_switch_converter_eu once that + // gets made // BASE TEXTURES public static final ResourceBorderTexture BACKGROUND = new ResourceBorderTexture( diff --git a/src/main/java/com/gregtechceu/gtceu/api/gui/misc/IGhostFluidTarget.java b/src/main/java/com/gregtechceu/gtceu/api/gui/misc/IGhostFluidTarget.java index 42b034c4c8..59e01120a4 100644 --- a/src/main/java/com/gregtechceu/gtceu/api/gui/misc/IGhostFluidTarget.java +++ b/src/main/java/com/gregtechceu/gtceu/api/gui/misc/IGhostFluidTarget.java @@ -72,6 +72,11 @@ default Object convertIngredient(Object ingredient) { new FluidStack(fluid.builtInRegistryHolder(), (int) fluidEmiStack.getAmount(), fluidEmiStack.getComponentChanges()); } + + if (LDLib.isJeiLoaded() && ingredient instanceof FluidStack fluidStack) { + ingredient = new FluidStack(fluidStack.getFluidHolder(), fluidStack.getAmount(), + fluidStack.getComponentsPatch()); + } return ingredient; } } diff --git a/src/main/java/com/gregtechceu/gtceu/api/gui/misc/IGhostItemTarget.java b/src/main/java/com/gregtechceu/gtceu/api/gui/misc/IGhostItemTarget.java index c47d553eec..efce8d30c4 100644 --- a/src/main/java/com/gregtechceu/gtceu/api/gui/misc/IGhostItemTarget.java +++ b/src/main/java/com/gregtechceu/gtceu/api/gui/misc/IGhostItemTarget.java @@ -13,6 +13,7 @@ import com.google.common.collect.Lists; import dev.emi.emi.api.stack.EmiStack; +import mezz.jei.api.ingredients.ITypedIngredient; import org.jetbrains.annotations.NotNull; import java.util.Collections; @@ -54,12 +55,17 @@ public void accept(@NotNull Object ingredient) { default Object convertIngredient(Object ingredient) { if (LDLib.isEmiLoaded() && ingredient instanceof EmiStack itemEmiStack) { Item item = itemEmiStack.getKeyOfType(Item.class); - ingredient = item == null ? null : new ItemStack(item, (int) itemEmiStack.getAmount()); - if (ingredient instanceof ItemStack itemStack) { + ItemStack itemStack = item == null ? ItemStack.EMPTY : new ItemStack(item, (int) itemEmiStack.getAmount()); + if (!itemStack.isEmpty()) { for (var entry : itemEmiStack.getComponentChanges().entrySet()) { itemStack.set((DataComponentType) entry.getKey(), entry.getValue().orElse(null)); } } + ingredient = itemStack; + } + + if (LDLib.isJeiLoaded() && ingredient instanceof ITypedIngredient itemJeiStack) { + return itemJeiStack.getItemStack().orElse(ItemStack.EMPTY); } return ingredient; } diff --git a/src/main/java/com/gregtechceu/gtceu/api/gui/widget/PatternPreviewWidget.java b/src/main/java/com/gregtechceu/gtceu/api/gui/widget/PatternPreviewWidget.java index 77b525f2e8..05251c0607 100644 --- a/src/main/java/com/gregtechceu/gtceu/api/gui/widget/PatternPreviewWidget.java +++ b/src/main/java/com/gregtechceu/gtceu/api/gui/widget/PatternPreviewWidget.java @@ -89,6 +89,8 @@ protected PatternPreviewWidget(MultiblockMachineDefinition controllerDefinition) .setXBarStyle(GuiTextures.SLIDER_BACKGROUND, GuiTextures.BUTTON) .setScrollable(true) .setDraggable(true); + // TODO update LDLib + // scrollableWidgetGroup.setScrollWheelDirection(DraggableScrollableWidgetGroup.ScrollWheelDirection.HORIZONTAL); scrollableWidgetGroup.setScrollYOffset(0); addWidget(scrollableWidgetGroup); diff --git a/src/main/java/com/gregtechceu/gtceu/api/item/tool/GTToolType.java b/src/main/java/com/gregtechceu/gtceu/api/item/tool/GTToolType.java index bf1c8c0158..3d7e436529 100644 --- a/src/main/java/com/gregtechceu/gtceu/api/item/tool/GTToolType.java +++ b/src/main/java/com/gregtechceu/gtceu/api/item/tool/GTToolType.java @@ -157,7 +157,7 @@ public class GTToolType { .attackDamage(1.0F) .behaviors(BlockRotatingBehavior.INSTANCE, new EntityDamageBehavior(3.0F, CustomTags.IRON_GOLEMS), ToolModeSwitchBehavior.INSTANCE)) - .sound(GTSoundEntries.WRENCH_TOOL) + .sound(GTSoundEntries.WRENCH_TOOL, true) .symbol('w') .build(); public static final GTToolType FILE = GTToolType.builder("file") @@ -177,7 +177,7 @@ public class GTToolType { .blockBreaking().crafting() .attackDamage(2.0F) .sneakBypassUse().behaviors(RotateRailBehavior.INSTANCE)) - .sound(new ExistingSoundEntry(SoundEvents.ITEM_BREAK, SoundSource.BLOCKS)) + .sound(new ExistingSoundEntry(SoundEvents.ITEM_BREAK, SoundSource.BLOCKS), true) .symbol('c') .build(); public static final GTToolType SCREWDRIVER = GTToolType.builder("screwdriver") @@ -204,7 +204,7 @@ public class GTToolType { 1.0F, 1)) .blockBreaking().crafting().sneakBypassUse() .damagePerCraftingAction(4).attackDamage(-1.0F)) - .sound(GTSoundEntries.WIRECUTTER_TOOL) + .sound(GTSoundEntries.WIRECUTTER_TOOL, true) .symbol('x') .build(); public static final GTToolType KNIFE = GTToolType.builder("knife") diff --git a/src/main/java/com/gregtechceu/gtceu/api/machine/MetaMachine.java b/src/main/java/com/gregtechceu/gtceu/api/machine/MetaMachine.java index 72bd4bb8fe..46728a3cac 100644 --- a/src/main/java/com/gregtechceu/gtceu/api/machine/MetaMachine.java +++ b/src/main/java/com/gregtechceu/gtceu/api/machine/MetaMachine.java @@ -508,8 +508,11 @@ public void clearInventory(IItemHandlerModifiable inventory) { @Override public boolean shouldRenderGrid(Player player, BlockPos pos, BlockState state, ItemStack held, Set toolTypes) { - if (toolTypes.contains(GTToolType.WRENCH) || toolTypes.contains(GTToolType.SCREWDRIVER)) return true; + if (toolTypes.contains(GTToolType.WRENCH)) return true; if (toolTypes.contains(GTToolType.HARD_HAMMER) && this instanceof IMufflableMachine) return true; + if (toolTypes.contains(GTToolType.SCREWDRIVER) && + (this instanceof IAutoOutputItem || this instanceof IAutoOutputFluid)) + return true; for (CoverBehavior cover : coverContainer.getCovers()) { if (cover.shouldRenderGrid(player, pos, state, held, toolTypes)) return true; } @@ -645,7 +648,7 @@ public boolean canConnectRedstone(@Nullable Direction side) { // ****** Capability ********// ////////////////////////////////////// - protected Predicate getItemCapFilter(@Nullable Direction side) { + public Predicate getItemCapFilter(@Nullable Direction side) { if (side != null) { var cover = getCoverContainer().getCoverAtSide(side); if (cover instanceof ItemFilterCover filterCover) { @@ -655,7 +658,7 @@ protected Predicate getItemCapFilter(@Nullable Direction side) { return item -> true; } - protected Predicate getFluidCapFilter(@Nullable Direction side) { + public Predicate getFluidCapFilter(@Nullable Direction side) { if (side != null) { var cover = getCoverContainer().getCoverAtSide(side); if (cover instanceof FluidFilterCover filterCover) { diff --git a/src/main/java/com/gregtechceu/gtceu/api/machine/multiblock/WorkableElectricMultiblockMachine.java b/src/main/java/com/gregtechceu/gtceu/api/machine/multiblock/WorkableElectricMultiblockMachine.java index 3a61348870..61d5207e03 100644 --- a/src/main/java/com/gregtechceu/gtceu/api/machine/multiblock/WorkableElectricMultiblockMachine.java +++ b/src/main/java/com/gregtechceu/gtceu/api/machine/multiblock/WorkableElectricMultiblockMachine.java @@ -26,6 +26,8 @@ import net.minecraft.network.chat.Component; import net.minecraft.world.entity.player.Player; +import lombok.Getter; + import java.util.ArrayList; import java.util.List; import java.util.Objects; @@ -45,6 +47,8 @@ public class WorkableElectricMultiblockMachine extends WorkableMultiblockMachine // runtime protected EnergyContainerList energyContainer; + @Getter + protected int tier; public WorkableElectricMultiblockMachine(IMachineBlockEntity holder, Object... args) { super(holder, args); @@ -57,18 +61,21 @@ public WorkableElectricMultiblockMachine(IMachineBlockEntity holder, Object... a public void onStructureInvalid() { super.onStructureInvalid(); this.energyContainer = null; + this.tier = 0; } @Override public void onStructureFormed() { super.onStructureFormed(); this.energyContainer = getEnergyContainer(); + this.tier = GTUtil.getFloorTierByVoltage(getMaxVoltage()); } @Override public void onPartUnload() { super.onPartUnload(); this.energyContainer = null; + this.tier = 0; } ////////////////////////////////////// @@ -87,7 +94,7 @@ public void addDisplayText(List textList) { MultiblockDisplayText.builder(textList, isFormed()) .setWorkingStatus(recipeLogic.isWorkingEnabled(), recipeLogic.isActive()) .addEnergyUsageLine(energyContainer) - .addEnergyTierLine(GTUtil.getTierByVoltage(getMaxVoltage())) + .addEnergyTierLine(tier) .addMachineModeLine(getRecipeType(), getRecipeTypes()) .addParallelsLine(numParallels) .addWorkingStatusLine() @@ -165,8 +172,7 @@ public long getOverclockVoltage() { if (amperage == 1) { // amperage is 1 when the energy is not exactly on a tier // the voltage for recipe search is always on tier, so take the closest lower tier - if (voltage > Integer.MAX_VALUE) return GTUtil.getVoltageFromFakeTier(GTUtil.getFakeVoltageTier(voltage)); - return GTValues.V[GTUtil.getFloorTierByVoltage(voltage)]; + return GTValues.VEX[GTUtil.getFloorTierByVoltage(voltage)]; } else { // amperage != 1 means the voltage is exactly on a tier // ignore amperage, since only the voltage is relevant for recipe search @@ -179,14 +185,6 @@ public long getOverclockVoltage() { // ****** RECIPE LOGIC *******// ////////////////////////////////////// - /** - * Get energy tier. - */ - @Override - public int getTier() { - return GTUtil.getFloorTierByVoltage(getMaxVoltage()); - } - public EnergyContainerList getEnergyContainer() { List containers = new ArrayList<>(); var capabilities = capabilitiesProxy.get(IO.IN, EURecipeCapability.CAP); diff --git a/src/main/java/com/gregtechceu/gtceu/api/machine/trait/NotifiableFluidTank.java b/src/main/java/com/gregtechceu/gtceu/api/machine/trait/NotifiableFluidTank.java index 89a23010ff..7f20f1e3e7 100644 --- a/src/main/java/com/gregtechceu/gtceu/api/machine/trait/NotifiableFluidTank.java +++ b/src/main/java/com/gregtechceu/gtceu/api/machine/trait/NotifiableFluidTank.java @@ -271,7 +271,8 @@ public void exportToNearby(@NotNull Direction... facings) { var level = getMachine().getLevel(); var pos = getMachine().getPos(); for (Direction facing : facings) { - FluidTransferHelper.exportToTarget(this, Integer.MAX_VALUE, f -> true, level, pos.relative(facing), + FluidTransferHelper.exportToTarget(this, Integer.MAX_VALUE, getMachine().getFluidCapFilter(facing), level, + pos.relative(facing), facing.getOpposite()); } } @@ -280,7 +281,8 @@ public void importFromNearby(@NotNull Direction... facings) { var level = getMachine().getLevel(); var pos = getMachine().getPos(); for (Direction facing : facings) { - FluidTransferHelper.importToTarget(this, Integer.MAX_VALUE, f -> true, level, pos.relative(facing), + FluidTransferHelper.importToTarget(this, Integer.MAX_VALUE, getMachine().getFluidCapFilter(facing), level, + pos.relative(facing), facing.getOpposite()); } } diff --git a/src/main/java/com/gregtechceu/gtceu/api/machine/trait/NotifiableItemStackHandler.java b/src/main/java/com/gregtechceu/gtceu/api/machine/trait/NotifiableItemStackHandler.java index 5330234baf..efd8053489 100644 --- a/src/main/java/com/gregtechceu/gtceu/api/machine/trait/NotifiableItemStackHandler.java +++ b/src/main/java/com/gregtechceu/gtceu/api/machine/trait/NotifiableItemStackHandler.java @@ -234,7 +234,8 @@ public void exportToNearby(@NotNull Direction... facings) { var level = getMachine().getLevel(); var pos = getMachine().getPos(); for (Direction facing : facings) { - ItemTransferHelper.exportToTarget(this, Integer.MAX_VALUE, f -> true, level, pos.relative(facing), + ItemTransferHelper.exportToTarget(this, Integer.MAX_VALUE, getMachine().getItemCapFilter(facing), level, + pos.relative(facing), facing.getOpposite()); } } @@ -243,7 +244,8 @@ public void importFromNearby(@NotNull Direction... facings) { var level = getMachine().getLevel(); var pos = getMachine().getPos(); for (Direction facing : facings) { - ItemTransferHelper.importToTarget(this, Integer.MAX_VALUE, f -> true, level, pos.relative(facing), + ItemTransferHelper.importToTarget(this, Integer.MAX_VALUE, getMachine().getItemCapFilter(facing), level, + pos.relative(facing), facing.getOpposite()); } } diff --git a/src/main/java/com/gregtechceu/gtceu/api/recipe/RecipeHelper.java b/src/main/java/com/gregtechceu/gtceu/api/recipe/RecipeHelper.java index cf4ed85019..c4d63778a5 100644 --- a/src/main/java/com/gregtechceu/gtceu/api/recipe/RecipeHelper.java +++ b/src/main/java/com/gregtechceu/gtceu/api/recipe/RecipeHelper.java @@ -59,7 +59,11 @@ public static int getRecipeEUtTier(GTRecipe recipe) { } public static int getPreOCRecipeEuTier(GTRecipe recipe) { - return getRecipeEUtTier(recipe) - recipe.ocTier; + long EUt = getInputEUt(recipe); + if (EUt == 0) EUt = getOutputEUt(recipe); + if (recipe.parallels > 1) EUt /= recipe.parallels; + EUt >>= (recipe.ocTier * 2); + return GTUtil.getTierByVoltage(EUt); } /** @@ -76,7 +80,7 @@ public static GTRecipe applyOverclock(OverclockingLogic logic, @NotNull GTRecipe } EUt = getOutputEUt(recipe); if (EUt > 0) { - performOverclocking(logic, recipe, EUt, maxOverclockVoltage, params, result); + performOverclocking(logic, recipe, -EUt, maxOverclockVoltage, params, result); } return recipe; } @@ -86,14 +90,12 @@ public static GTRecipe applyOverclock(OverclockingLogic logic, @NotNull GTRecipe * Then performs overclocking on the Recipe. * * @param recipe the recipe to overclock - * @return an int array of {OverclockedEUt, OverclockedDuration} */ public static void performOverclocking(OverclockingLogic logic, @NotNull GTRecipe recipe, long EUt, long maxOverclockVoltage, @NotNull OCParams params, @NotNull OCResult result) { - int recipeTier = GTUtil.getTierByVoltage(EUt); - int maximumTier = maxOverclockVoltage < Integer.MAX_VALUE ? logic.getOverclockForTier(maxOverclockVoltage) : - GTUtil.getFakeVoltageTier(maxOverclockVoltage); + int recipeTier = GTUtil.getTierByVoltage(Math.abs(EUt)); + int maximumTier = logic.getOverclockForTier(maxOverclockVoltage); // The maximum number of overclocks is determined by the difference between the tier the recipe is running at, // and the maximum tier that the machine can overclock to. int numberOfOCs = maximumTier - recipeTier; diff --git a/src/main/java/com/gregtechceu/gtceu/api/recipe/RecipeRunner.java b/src/main/java/com/gregtechceu/gtceu/api/recipe/RecipeRunner.java index ff3c0daa89..fb4c072e80 100644 --- a/src/main/java/com/gregtechceu/gtceu/api/recipe/RecipeRunner.java +++ b/src/main/java/com/gregtechceu/gtceu/api/recipe/RecipeRunner.java @@ -110,20 +110,21 @@ private void fillContent(IRecipeCapabilityHolder holder, Map.Entry rolls = new ArrayList<>(); - int recipeTier = RecipeHelper.getPreOCRecipeEuTier(recipe); - for (int parallels = recipe.parallels; parallels > 0; parallels--) { - List roll = logic.roll(chancedContents, function, - recipeTier, holder.getChanceTier(), this.chanceCaches.get(cap)); - if (roll != null) rolls.addAll(roll); - } - - for (Content cont : rolls) { - if (cont.slotName == null) { - this.content.content.add(cont.content); - } else { - this.content.slots.computeIfAbsent(cont.slotName, s -> new ArrayList<>()).add(cont.content); + // Only roll if there's anything to roll for + if (!chancedContents.isEmpty()) { + int recipeTier = RecipeHelper.getPreOCRecipeEuTier(recipe); + int holderTier = holder.getChanceTier(); + var cache = this.chanceCaches.get(cap); + chancedContents = logic.roll(chancedContents, function, recipeTier, holderTier, cache, recipe.parallels, + cap); + + if (chancedContents == null) return; + for (Content cont : chancedContents) { + if (cont.slotName == null) { + this.content.content.add(cont.content); + } else { + this.content.slots.computeIfAbsent(cont.slotName, s -> new ArrayList<>()).add(cont.content); + } } } } diff --git a/src/main/java/com/gregtechceu/gtceu/api/recipe/chance/logic/ChanceLogic.java b/src/main/java/com/gregtechceu/gtceu/api/recipe/chance/logic/ChanceLogic.java index 5a30dc4320..de84535035 100644 --- a/src/main/java/com/gregtechceu/gtceu/api/recipe/chance/logic/ChanceLogic.java +++ b/src/main/java/com/gregtechceu/gtceu/api/recipe/chance/logic/ChanceLogic.java @@ -2,8 +2,10 @@ import com.gregtechceu.gtceu.api.GTCEuAPI; import com.gregtechceu.gtceu.api.GTValues; +import com.gregtechceu.gtceu.api.capability.recipe.RecipeCapability; import com.gregtechceu.gtceu.api.recipe.chance.boost.ChanceBoostFunction; import com.gregtechceu.gtceu.api.recipe.content.Content; +import com.gregtechceu.gtceu.api.recipe.content.ContentModifier; import com.gregtechceu.gtceu.api.registry.GTRegistries; import net.minecraft.network.chat.Component; @@ -37,14 +39,21 @@ public abstract class ChanceLogic { public @Nullable @Unmodifiable List<@NotNull Content> roll(@NotNull @Unmodifiable List<@NotNull Content> chancedEntries, @NotNull ChanceBoostFunction boostFunction, int baseTier, int machineTier, - @Nullable Object2IntMap cache) { + @Nullable Object2IntMap cache, int times, + RecipeCapability cap) { ImmutableList.Builder builder = ImmutableList.builder(); for (Content entry : chancedEntries) { - int cached = getCachedChance(entry, cache); - int newChance = getChance(entry, boostFunction, baseTier, machineTier); - int chance = newChance + cached; int maxChance = entry.maxChance; + + // Chanced outputs are deterministic, if a large batch is being done we can calculate how many we expect + // to get. + // Add the whole part of that to the list, then roll for the decimal part. + double expected = (double) times * newChance / maxChance; + if (expected > 1) builder.add(entry.copy(cap, ContentModifier.multiplier((int) expected))); + + int cached = getCachedChance(entry, cache); + int chance = newChance + cached; if (passesChance(chance, maxChance)) { do { builder.add(entry); @@ -79,7 +88,8 @@ public String toString() { public @Nullable @Unmodifiable List<@NotNull Content> roll(@NotNull @Unmodifiable List<@NotNull Content> chancedEntries, @NotNull ChanceBoostFunction boostFunction, int baseTier, int machineTier, - @Nullable Object2IntMap cache) { + @Nullable Object2IntMap cache, int times, + RecipeCapability cap) { boolean failed = false; for (Content entry : chancedEntries) { int cached = getCachedChance(entry, cache); @@ -114,7 +124,8 @@ public String toString() { public @Nullable @Unmodifiable List<@NotNull Content> roll(@NotNull @Unmodifiable List<@NotNull Content> chancedEntries, @NotNull ChanceBoostFunction boostFunction, int baseTier, int machineTier, - @Nullable Object2IntMap cache) { + @Nullable Object2IntMap cache, int times, + RecipeCapability cap) { Content selected = null; for (Content entry : chancedEntries) { int cached = getCachedChance(entry, cache); @@ -149,7 +160,8 @@ public String toString() { public @Nullable @Unmodifiable List<@NotNull Content> roll(@NotNull @Unmodifiable List<@NotNull Content> chancedEntries, @NotNull ChanceBoostFunction boostFunction, int baseTier, int machineTier, - @Nullable Object2IntMap cache) { + @Nullable Object2IntMap cache, int times, + RecipeCapability cap) { return null; } @@ -227,13 +239,15 @@ static void updateCachedChance(Object ingredient, @Nullable Object2IntMap cac * @param baseTier the base tier of the recipe * @param machineTier the tier the recipe is run at * @param cache the cache of previously rolled chances, can be null + * @param cap * @return a list of the produced outputs, or null if failed */ public abstract @Nullable @Unmodifiable List<@NotNull Content> roll( @NotNull @Unmodifiable List<@NotNull Content> chancedEntries, @NotNull ChanceBoostFunction boostFunction, int baseTier, int machineTier, - @Nullable Object2IntMap cache); + @Nullable Object2IntMap cache, int times, + RecipeCapability cap); /** * Roll the chance and attempt to produce the output @@ -249,8 +263,8 @@ static void updateCachedChance(Object ingredient, @Nullable Object2IntMap cac public List<@NotNull Content> roll( @NotNull @Unmodifiable List<@NotNull Content> chancedEntries, @NotNull ChanceBoostFunction boostFunction, - int baseTier, int machineTier) { - return roll(chancedEntries, boostFunction, baseTier, machineTier, null); + int baseTier, int machineTier, int times, RecipeCapability cap) { + return roll(chancedEntries, boostFunction, baseTier, machineTier, null, times, cap); } @NotNull diff --git a/src/main/java/com/gregtechceu/gtceu/api/recipe/condition/RecipeCondition.java b/src/main/java/com/gregtechceu/gtceu/api/recipe/condition/RecipeCondition.java index d1645ffeb2..64722d1f73 100644 --- a/src/main/java/com/gregtechceu/gtceu/api/recipe/condition/RecipeCondition.java +++ b/src/main/java/com/gregtechceu/gtceu/api/recipe/condition/RecipeCondition.java @@ -42,7 +42,7 @@ public static RecipeCondition create(Class clazz) { public static < RC extends RecipeCondition> Products.P1, Boolean> isReverse(RecordCodecBuilder.Instance instance) { - return instance.group(Codec.BOOL.fieldOf("reverse").forGetter(val -> val.isReverse)); + return instance.group(Codec.BOOL.optionalFieldOf("reverse", false).forGetter(val -> val.isReverse)); } protected boolean isReverse; diff --git a/src/main/java/com/gregtechceu/gtceu/api/recipe/modifier/ParallelLogic.java b/src/main/java/com/gregtechceu/gtceu/api/recipe/modifier/ParallelLogic.java index 5fdaa780f0..c0f95f4a64 100644 --- a/src/main/java/com/gregtechceu/gtceu/api/recipe/modifier/ParallelLogic.java +++ b/src/main/java/com/gregtechceu/gtceu/api/recipe/modifier/ParallelLogic.java @@ -126,14 +126,14 @@ public static int limitByOutputMerging(@NotNull GTRecipe recipe, @NotNull IRecip // If we are voiding items, reset the item limit to the maximum number of parallels if (voiding) { if (modifiedParallelAmounts.containsKey(cap)) { - modifiedParallelAmounts.put(cap, modifiedParallelAmounts.getInt(cap) + parallelAmount); + modifiedParallelAmounts.put(cap, Math.min(modifiedParallelAmounts.getInt(cap), parallelAmount)); } else { modifiedParallelAmounts.put(cap, parallelAmount); } } else { if (modifiedParallelAmounts.containsKey(cap)) { - modifiedParallelAmounts.put(cap, modifiedParallelAmounts.getInt(cap) + - cap.limitParallel(recipe, holder, parallelAmount)); + modifiedParallelAmounts.put(cap, Math.min(modifiedParallelAmounts.getInt(cap), + cap.limitParallel(recipe, holder, parallelAmount))); } else { modifiedParallelAmounts.put(cap, cap.limitParallel(recipe, holder, parallelAmount)); } diff --git a/src/main/java/com/gregtechceu/gtceu/client/renderer/BlockHighLightRenderer.java b/src/main/java/com/gregtechceu/gtceu/client/renderer/BlockHighLightRenderer.java index c384e22472..b35f8dabb1 100644 --- a/src/main/java/com/gregtechceu/gtceu/client/renderer/BlockHighLightRenderer.java +++ b/src/main/java/com/gregtechceu/gtceu/client/renderer/BlockHighLightRenderer.java @@ -11,7 +11,6 @@ import com.gregtechceu.gtceu.api.pipenet.IPipeType; import com.gregtechceu.gtceu.common.item.behavior.CoverPlaceBehavior; import com.gregtechceu.gtceu.common.item.tool.rotation.CustomBlockRotations; -import com.gregtechceu.gtceu.common.item.tool.rotation.ICustomRotationBehavior; import com.gregtechceu.gtceu.core.mixins.GuiGraphicsAccessor; import com.lowdragmc.lowdraglib.client.utils.RenderUtils; @@ -24,8 +23,10 @@ import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.util.Mth; +import net.minecraft.world.entity.player.Player; import net.minecraft.world.item.ItemStack; import net.minecraft.world.level.block.entity.BlockEntity; +import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.BlockHitResult; import net.minecraft.world.phys.Vec3; @@ -70,6 +71,19 @@ public static void renderBlockHighLight(PoseStack poseStack, Camera camera, Bloc gridHighLight = highLight; } else if (level.getBlockState(blockPos).getBlock() instanceof IToolGridHighLight highLight) { gridHighLight = highLight; + } else if (toolType.contains(GTToolType.WRENCH)) { + var behavior = CustomBlockRotations.getCustomRotation(level.getBlockState(blockPos).getBlock()); + if (behavior != null && behavior.showGrid()) { + gridHighLight = new IToolGridHighLight() { + + @Override + public ResourceTexture sideTips(Player player, BlockPos pos, BlockState state, + Set toolTypes, Direction side) { + return behavior.showSideTip(state, side) ? GuiTextures.TOOL_FRONT_FACING_ROTATION : + null; + } + }; + } } if (gridHighLight == null) { return; @@ -114,22 +128,6 @@ public static void renderBlockHighLight(PoseStack poseStack, Camera camera, Bloc return; } - if (toolType != null && toolType.contains(GTToolType.WRENCH)) { - ICustomRotationBehavior behavior = CustomBlockRotations - .getCustomRotation(level.getBlockState(blockPos).getBlock()); - if (behavior != null && behavior.showGrid()) { - Vec3 pos = camera.getPosition(); - poseStack.pushPose(); - poseStack.translate(-pos.x, -pos.y, -pos.z); - var buffer = multiBufferSource.getBuffer(RenderType.lines()); - RenderSystem.lineWidth(3); - - drawGridOverlays(poseStack, buffer, target, side -> GuiTextures.TOOL_FRONT_FACING_ROTATION); - - poseStack.popPose(); - } - } - // draw cover grid highlight ICoverable coverable = GTCapabilityHelper.getCoverable(level, blockPos, target.getDirection()); if (coverable != null && CoverPlaceBehavior.isCoverBehaviorItem(held, coverable::hasAnyCover, diff --git a/src/main/java/com/gregtechceu/gtceu/common/item/tool/rotation/CustomBlockRotations.java b/src/main/java/com/gregtechceu/gtceu/common/item/tool/rotation/CustomBlockRotations.java index 7b8a784bde..349c100d7a 100644 --- a/src/main/java/com/gregtechceu/gtceu/common/item/tool/rotation/CustomBlockRotations.java +++ b/src/main/java/com/gregtechceu/gtceu/common/item/tool/rotation/CustomBlockRotations.java @@ -49,8 +49,8 @@ public boolean customRotate(BlockState state, Level world, BlockPos pos, BlockHi } @Override - public boolean showXOnSide(BlockState state, Direction facing) { - return state.getValue(HorizontalDirectionalBlock.FACING) == facing; + public boolean showSideTip(BlockState state, Direction side) { + return side.getAxis() != Direction.Axis.Y && state.getValue(HorizontalDirectionalBlock.FACING) != side; } }; @@ -70,8 +70,8 @@ public boolean customRotate(BlockState state, Level world, BlockPos pos, BlockHi } @Override - public boolean showXOnSide(BlockState state, Direction facing) { - return state.getValue(DirectionalBlock.FACING) == facing; + public boolean showSideTip(BlockState state, Direction side) { + return state.getValue(DirectionalBlock.FACING) != side; } }; @@ -111,8 +111,8 @@ public boolean customRotate(BlockState state, Level world, BlockPos pos, BlockHi } @Override - public boolean showXOnSide(BlockState state, Direction facing) { - return state.getValue(HopperBlock.FACING) == facing; + public boolean showSideTip(BlockState state, Direction side) { + return side != Direction.UP && state.getValue(HopperBlock.FACING) != side; } }), diff --git a/src/main/java/com/gregtechceu/gtceu/common/item/tool/rotation/ICustomRotationBehavior.java b/src/main/java/com/gregtechceu/gtceu/common/item/tool/rotation/ICustomRotationBehavior.java index c9ad8e703c..2ec52ef6d6 100644 --- a/src/main/java/com/gregtechceu/gtceu/common/item/tool/rotation/ICustomRotationBehavior.java +++ b/src/main/java/com/gregtechceu/gtceu/common/item/tool/rotation/ICustomRotationBehavior.java @@ -21,7 +21,7 @@ default boolean showGrid() { } /** Whether to draw an X on a provided side in the 9-sectioned highlight grid. */ - default boolean showXOnSide(BlockState state, Direction facing) { + default boolean showSideTip(BlockState state, Direction side) { return false; } } diff --git a/src/main/java/com/gregtechceu/gtceu/common/machine/electric/BlockBreakerMachine.java b/src/main/java/com/gregtechceu/gtceu/common/machine/electric/BlockBreakerMachine.java index 36ab6f257f..d243c5d95a 100644 --- a/src/main/java/com/gregtechceu/gtceu/common/machine/electric/BlockBreakerMachine.java +++ b/src/main/java/com/gregtechceu/gtceu/common/machine/electric/BlockBreakerMachine.java @@ -436,6 +436,10 @@ public ResourceTexture sideTips(Player player, BlockPos pos, BlockState state, S return GuiTextures.TOOL_IO_FACING_ROTATION; } } + } else if (toolTypes.contains(GTToolType.SCREWDRIVER)) { + if (side == getOutputFacingItems()) { + return GuiTextures.TOOL_ALLOW_INPUT; + } } return super.sideTips(player, pos, state, toolTypes, side); } diff --git a/src/main/java/com/gregtechceu/gtceu/common/machine/multiblock/generator/LargeTurbineMachine.java b/src/main/java/com/gregtechceu/gtceu/common/machine/multiblock/generator/LargeTurbineMachine.java index d1b522c4ad..740dbbe917 100644 --- a/src/main/java/com/gregtechceu/gtceu/common/machine/multiblock/generator/LargeTurbineMachine.java +++ b/src/main/java/com/gregtechceu/gtceu/common/machine/multiblock/generator/LargeTurbineMachine.java @@ -11,6 +11,7 @@ import com.gregtechceu.gtceu.api.machine.multiblock.WorkableElectricMultiblockMachine; import com.gregtechceu.gtceu.api.recipe.GTRecipe; import com.gregtechceu.gtceu.api.recipe.RecipeHelper; +import com.gregtechceu.gtceu.api.recipe.content.ContentModifier; import com.gregtechceu.gtceu.api.recipe.logic.OCParams; import com.gregtechceu.gtceu.api.recipe.logic.OCResult; import com.gregtechceu.gtceu.data.recipe.GTRecipeModifiers; @@ -114,7 +115,15 @@ public static GTRecipe recipeModifier(MetaMachine machine, @NotNull GTRecipe rec long eut = turbineMachine.boostProduction((long) (EUt * holderEfficiency * parallelResult.getSecond())); - result.init(-eut, recipe.duration, parallelResult.getSecond(), params.getOcAmount()); + recipe = new GTRecipe(recipe.recipeType, recipe.id, + recipe.copyContents(recipe.inputs, ContentModifier.multiplier(parallelResult.getSecond())), + recipe.copyContents(recipe.outputs, ContentModifier.multiplier(parallelResult.getSecond())), + recipe.tickInputs, recipe.tickOutputs, recipe.inputChanceLogics, recipe.outputChanceLogics, + recipe.tickInputChanceLogics, recipe.tickOutputChanceLogics, recipe.conditions, + recipe.ingredientActions, + recipe.data, recipe.duration, recipe.isFuel); + + result.init(-eut, recipe.duration, 1, params.getOcAmount()); return recipe; } diff --git a/src/main/java/com/gregtechceu/gtceu/common/machine/multiblock/primitive/PrimitiveBlastFurnaceMachine.java b/src/main/java/com/gregtechceu/gtceu/common/machine/multiblock/primitive/PrimitiveBlastFurnaceMachine.java index 44432ef9d8..70f9e8b785 100644 --- a/src/main/java/com/gregtechceu/gtceu/common/machine/multiblock/primitive/PrimitiveBlastFurnaceMachine.java +++ b/src/main/java/com/gregtechceu/gtceu/common/machine/multiblock/primitive/PrimitiveBlastFurnaceMachine.java @@ -1,10 +1,13 @@ package com.gregtechceu.gtceu.common.machine.multiblock.primitive; import com.gregtechceu.gtceu.api.GTValues; +import com.gregtechceu.gtceu.api.capability.recipe.IO; +import com.gregtechceu.gtceu.api.capability.recipe.ItemRecipeCapability; import com.gregtechceu.gtceu.api.gui.GuiTextures; import com.gregtechceu.gtceu.api.gui.UITemplate; import com.gregtechceu.gtceu.api.machine.IMachineBlockEntity; import com.gregtechceu.gtceu.api.machine.feature.IUIMachine; +import com.gregtechceu.gtceu.api.machine.trait.NotifiableItemStackHandler; import com.gregtechceu.gtceu.config.ConfigHolder; import com.lowdragmc.lowdraglib.gui.modular.ModularUI; @@ -39,6 +42,18 @@ public PrimitiveBlastFurnaceMachine(IMachineBlockEntity holder, Object... args) super(holder, args); } + @Override + protected NotifiableItemStackHandler createImportItemHandler(Object... args) { + return new NotifiableItemStackHandler(this, getRecipeType().getMaxInputs(ItemRecipeCapability.CAP), IO.IN, + IO.NONE); + } + + @Override + protected NotifiableItemStackHandler createExportItemHandler(Object... args) { + return new NotifiableItemStackHandler(this, getRecipeType().getMaxOutputs(ItemRecipeCapability.CAP), IO.OUT, + IO.NONE); + } + @Override @OnlyIn(Dist.CLIENT) public void clientTick() { diff --git a/src/main/java/com/gregtechceu/gtceu/common/machine/multiblock/primitive/PrimitiveWorkableMachine.java b/src/main/java/com/gregtechceu/gtceu/common/machine/multiblock/primitive/PrimitiveWorkableMachine.java index 83bb310353..a100499d95 100644 --- a/src/main/java/com/gregtechceu/gtceu/common/machine/multiblock/primitive/PrimitiveWorkableMachine.java +++ b/src/main/java/com/gregtechceu/gtceu/common/machine/multiblock/primitive/PrimitiveWorkableMachine.java @@ -57,23 +57,21 @@ public ManagedFieldHolder getFieldHolder() { } protected NotifiableItemStackHandler createImportItemHandler(Object... args) { - return new NotifiableItemStackHandler(this, getRecipeType().getMaxInputs(ItemRecipeCapability.CAP), IO.IN, - IO.NONE); + return new NotifiableItemStackHandler(this, getRecipeType().getMaxInputs(ItemRecipeCapability.CAP), IO.IN); } protected NotifiableItemStackHandler createExportItemHandler(Object... args) { - return new NotifiableItemStackHandler(this, getRecipeType().getMaxOutputs(ItemRecipeCapability.CAP), IO.OUT, - IO.NONE); + return new NotifiableItemStackHandler(this, getRecipeType().getMaxOutputs(ItemRecipeCapability.CAP), IO.OUT); } protected NotifiableFluidTank createImportFluidHandler(Object... args) { return new NotifiableFluidTank(this, getRecipeType().getMaxInputs(FluidRecipeCapability.CAP), - 32 * FluidHelper.getBucket(), IO.IN, IO.NONE); + 32 * FluidHelper.getBucket(), IO.IN); } protected NotifiableFluidTank createExportFluidHandler(Object... args) { return new NotifiableFluidTank(this, getRecipeType().getMaxOutputs(FluidRecipeCapability.CAP), - 32 * FluidHelper.getBucket(), IO.OUT, IO.NONE); + 32 * FluidHelper.getBucket(), IO.OUT); } @Override diff --git a/src/main/java/com/gregtechceu/gtceu/common/machine/storage/CrateMachine.java b/src/main/java/com/gregtechceu/gtceu/common/machine/storage/CrateMachine.java index 936d1e22c0..049f994fc3 100644 --- a/src/main/java/com/gregtechceu/gtceu/common/machine/storage/CrateMachine.java +++ b/src/main/java/com/gregtechceu/gtceu/common/machine/storage/CrateMachine.java @@ -130,12 +130,13 @@ public void onMachinePlaced(@Nullable LivingEntity player, ItemStack stack) { tag.remove("taped"); this.isTaped = false; } + stack.set(DataComponents.BLOCK_ENTITY_DATA, null); } @Override public void saveToItem(CompoundTag tag) { - IDropSaveMachine.super.saveToItem(tag); if (isTaped) { + IDropSaveMachine.super.saveToItem(tag); tag.putBoolean("taped", isTaped); tag.put("inventory", inventory.storage.serializeNBT(Platform.getFrozenRegistry())); } diff --git a/src/main/java/com/gregtechceu/gtceu/common/machine/storage/QuantumChestMachine.java b/src/main/java/com/gregtechceu/gtceu/common/machine/storage/QuantumChestMachine.java index 47c6ba84c0..2828367074 100644 --- a/src/main/java/com/gregtechceu/gtceu/common/machine/storage/QuantumChestMachine.java +++ b/src/main/java/com/gregtechceu/gtceu/common/machine/storage/QuantumChestMachine.java @@ -301,7 +301,7 @@ public boolean onLeftClick(Player player, Level world, InteractionHand hand, Blo if (!stored.isEmpty()) { // pull var drained = cache.extractItem(0, player.isShiftKeyDown() ? stored.getMaxStackSize() : 1, false); if (!drained.isEmpty()) { - if (player.addItem(drained)) { + if (!player.addItem(drained)) { Block.popResource(world, getPos().relative(getFrontFacing()), drained); } } diff --git a/src/main/java/com/gregtechceu/gtceu/common/machine/storage/QuantumTankMachine.java b/src/main/java/com/gregtechceu/gtceu/common/machine/storage/QuantumTankMachine.java index 8bd65e1672..f2367a0b3a 100644 --- a/src/main/java/com/gregtechceu/gtceu/common/machine/storage/QuantumTankMachine.java +++ b/src/main/java/com/gregtechceu/gtceu/common/machine/storage/QuantumTankMachine.java @@ -128,7 +128,9 @@ public int fill(FluidStack resource, FluidAction action) { private int handleVoiding(int filled, FluidStack resource) { if (filled < resource.getAmount() && isVoiding && isFluidValid(0, resource)) { - return resource.getAmount(); + if (stored.isEmpty() || FluidStack.isSameFluidSameComponents(stored, resource)) { + return resource.getAmount(); + } } return filled; diff --git a/src/main/java/com/gregtechceu/gtceu/data/GTModels.java b/src/main/java/com/gregtechceu/gtceu/data/GTModels.java index a738bab6df..45b4e1fe33 100644 --- a/src/main/java/com/gregtechceu/gtceu/data/GTModels.java +++ b/src/main/java/com/gregtechceu/gtceu/data/GTModels.java @@ -255,9 +255,9 @@ public static NonNullBiConsumer, RegistrateB IBatteryData batteryData) { return (ctx, prov) -> { prov.simpleBlock(ctx.getEntry(), prov.models().cubeBottomTop(name, + GTCEu.id("block/casings/battery/" + batteryData.getBatteryName() + "/side"), GTCEu.id("block/casings/battery/" + batteryData.getBatteryName() + "/top"), - GTCEu.id("block/casings/battery/" + batteryData.getBatteryName() + "/top"), - GTCEu.id("block/casings/battery/" + batteryData.getBatteryName() + "/side"))); + GTCEu.id("block/casings/battery/" + batteryData.getBatteryName() + "/top"))); }; } diff --git a/src/main/java/com/gregtechceu/gtceu/data/GTSyncedFieldAccessors.java b/src/main/java/com/gregtechceu/gtceu/data/GTSyncedFieldAccessors.java index e57bb0d04e..342142b3ef 100644 --- a/src/main/java/com/gregtechceu/gtceu/data/GTSyncedFieldAccessors.java +++ b/src/main/java/com/gregtechceu/gtceu/data/GTSyncedFieldAccessors.java @@ -1,7 +1,8 @@ package com.gregtechceu.gtceu.data; import com.gregtechceu.gtceu.api.material.material.Material; -import com.gregtechceu.gtceu.syncdata.GTRecipeAccessor; +import com.gregtechceu.gtceu.api.recipe.GTRecipe; +import com.gregtechceu.gtceu.syncdata.GTRecipePayload; import com.gregtechceu.gtceu.syncdata.GTRecipeTypeAccessor; import com.gregtechceu.gtceu.syncdata.MaterialPayload; @@ -17,13 +18,12 @@ */ public class GTSyncedFieldAccessors { - public static final IAccessor GT_RECIPE_ACCESSOR = new GTRecipeAccessor(); public static final IAccessor GT_RECIPE_TYPE_ACCESSOR = new GTRecipeTypeAccessor(); public static void init() { - register(FriendlyBufPayload.class, FriendlyBufPayload::new, GT_RECIPE_ACCESSOR, 1000); register(FriendlyBufPayload.class, FriendlyBufPayload::new, GT_RECIPE_TYPE_ACCESSOR, 1000); registerSimple(MaterialPayload.class, MaterialPayload::new, Material.class, 1); + registerSimple(GTRecipePayload.class, GTRecipePayload::new, GTRecipe.class, 100); } } diff --git a/src/main/java/com/gregtechceu/gtceu/data/block/GTBlocks.java b/src/main/java/com/gregtechceu/gtceu/data/block/GTBlocks.java index e517de1622..2edd422287 100644 --- a/src/main/java/com/gregtechceu/gtceu/data/block/GTBlocks.java +++ b/src/main/java/com/gregtechceu/gtceu/data/block/GTBlocks.java @@ -1080,8 +1080,10 @@ public static ItemColor leavesItemColor() { .initialProperties(() -> Blocks.STRIPPED_SPRUCE_LOG) .lang("Stripped Rubber Log") .blockstate((ctx, provider) -> provider.logBlock(ctx.get())) - .tag(BlockTags.MINEABLE_WITH_AXE) - .simpleItem() + .tag(BlockTags.LOGS_THAT_BURN, BlockTags.MINEABLE_WITH_AXE) + .item() + .tag(ItemTags.LOGS_THAT_BURN) + .build() .register(); public static final BlockEntry RUBBER_WOOD = REGISTRATE .block("rubber_wood", RotatedPillarBlock::new) @@ -1089,8 +1091,10 @@ public static ItemColor leavesItemColor() { .lang("Rubber Wood") .blockstate((ctx, provider) -> provider.axisBlock(ctx.get(), provider.blockTexture(GTBlocks.RUBBER_LOG.get()), provider.blockTexture(GTBlocks.RUBBER_LOG.get()))) - .tag(BlockTags.MINEABLE_WITH_AXE) - .simpleItem() + .tag(BlockTags.LOGS_THAT_BURN, BlockTags.MINEABLE_WITH_AXE) + .item() + .tag(ItemTags.LOGS_THAT_BURN) + .build() .register(); public static final BlockEntry STRIPPED_RUBBER_WOOD = REGISTRATE .block("stripped_rubber_wood", RotatedPillarBlock::new) @@ -1098,8 +1102,10 @@ public static ItemColor leavesItemColor() { .lang("Stripped Rubber Wood") .blockstate((ctx, provider) -> provider.axisBlock(ctx.get(), provider.blockTexture(ctx.get()), provider.blockTexture(ctx.get()))) - .tag(BlockTags.MINEABLE_WITH_AXE) - .simpleItem() + .tag(BlockTags.LOGS_THAT_BURN, BlockTags.MINEABLE_WITH_AXE) + .item() + .tag(ItemTags.LOGS_THAT_BURN) + .build() .register(); public static final BlockEntry RUBBER_PLANK = REGISTRATE @@ -1304,6 +1310,7 @@ public static ItemColor leavesItemColor() { .tag(ItemTags.WOODEN_FENCES) .build() .register(); + public static final BlockEntry TREATED_WOOD_SIGN = REGISTRATE .block("treated_wood_sign", (p) -> new GTStandingSignBlock(TREATED_WOOD_TYPE, p)) .initialProperties(() -> Blocks.SPRUCE_SIGN) diff --git a/src/main/java/com/gregtechceu/gtceu/data/entity/GTEntityTypes.java b/src/main/java/com/gregtechceu/gtceu/data/entity/GTEntityTypes.java index 21a757e442..7c7e426118 100644 --- a/src/main/java/com/gregtechceu/gtceu/data/entity/GTEntityTypes.java +++ b/src/main/java/com/gregtechceu/gtceu/data/entity/GTEntityTypes.java @@ -1,8 +1,6 @@ package com.gregtechceu.gtceu.data.entity; -import com.gregtechceu.gtceu.common.entity.DynamiteEntity; -import com.gregtechceu.gtceu.common.entity.IndustrialTNTEntity; -import com.gregtechceu.gtceu.common.entity.PowderbarrelEntity; +import com.gregtechceu.gtceu.common.entity.*; import net.minecraft.tags.EntityTypeTags; import net.minecraft.world.entity.MobCategory; diff --git a/src/main/java/com/gregtechceu/gtceu/data/enumproxy/GTEnumProxies.java b/src/main/java/com/gregtechceu/gtceu/data/enumproxy/GTEnumProxies.java new file mode 100644 index 0000000000..6ac4e52744 --- /dev/null +++ b/src/main/java/com/gregtechceu/gtceu/data/enumproxy/GTEnumProxies.java @@ -0,0 +1,30 @@ +package com.gregtechceu.gtceu.data.enumproxy; + +import com.gregtechceu.gtceu.data.block.GTBlocks; +import com.gregtechceu.gtceu.data.item.GTItems; + +import net.minecraft.world.entity.vehicle.Boat; +import net.minecraft.world.item.Item; +import net.minecraft.world.item.Items; +import net.minecraft.world.level.block.Block; +import net.neoforged.fml.common.asm.enumextension.EnumProxy; + +import java.util.function.Supplier; + +@SuppressWarnings({ "Convert2MethodRef", "FunctionalExpressionCanBeFolded" }) +public class GTEnumProxies { + + public static final EnumProxy RUBBER_BOAT_PROXY = new EnumProxy<>(Boat.Type.class, + (Supplier) () -> GTBlocks.RUBBER_PLANK.get(), "gtceu:rubber", + (Supplier) () -> GTItems.RUBBER_BOAT.get(), + (Supplier) () -> GTItems.RUBBER_CHEST_BOAT.get(), + (Supplier) () -> Items.STICK, + false); + + public static final EnumProxy TREATED_WOOD_BOAT_PROXY = new EnumProxy<>(Boat.Type.class, + (Supplier) () -> GTBlocks.TREATED_WOOD_PLANK.get(), "gtceu:treated_wood", + (Supplier) () -> GTItems.TREATED_WOOD_BOAT.get(), + (Supplier) () -> GTItems.TREATED_WOOD_CHEST_BOAT.get(), + (Supplier) () -> Items.STICK, + false); +} diff --git a/src/main/java/com/gregtechceu/gtceu/data/item/GTItems.java b/src/main/java/com/gregtechceu/gtceu/data/item/GTItems.java index dbaa87f071..eee584f84c 100644 --- a/src/main/java/com/gregtechceu/gtceu/data/item/GTItems.java +++ b/src/main/java/com/gregtechceu/gtceu/data/item/GTItems.java @@ -40,6 +40,7 @@ import com.gregtechceu.gtceu.data.compass.GTCompassNodes; import com.gregtechceu.gtceu.data.compass.GTCompassSections; import com.gregtechceu.gtceu.data.cover.GTCovers; +import com.gregtechceu.gtceu.data.enumproxy.GTEnumProxies; import com.gregtechceu.gtceu.data.lang.LangHandler; import com.gregtechceu.gtceu.data.material.GTFoods; import com.gregtechceu.gtceu.data.material.GTMaterials; @@ -2135,11 +2136,8 @@ public Component getItemName(ItemStack stack) { .onRegister(attach(new CoverPlaceBehavior(GTCovers.COMPUTER_MONITOR))) .onRegister(compassNode(GTCompassSections.COVERS, GTCompassNodes.COVER)) .register(); - public static ItemEntry COVER_CRAFTING = REGISTRATE.item("crafting_table_cover", ComponentItem::new) - .lang("Crafting Table Cover") - .onRegister(compassNode(GTCompassSections.COVERS, GTCompassNodes.COVER)) - .register(); - public static ItemEntry COVER_SHUTTER = REGISTRATE.item("shutter_module_cover", ComponentItem::new) + public static ItemEntry COVER_SHUTTER = REGISTRATE + .item("shutter_module_cover", ComponentItem::create) .lang("Shutter Module") .onRegister(compassNode(GTCompassSections.COVERS, GTCompassNodes.COVER)) .onRegister(attach(new CoverPlaceBehavior(GTCovers.SHUTTER))) @@ -2158,14 +2156,6 @@ public Component getItemName(ItemStack stack) { .lang("Ender Fluid Link") .onRegister(compassNode(GTCompassSections.COVERS, GTCompassNodes.COVER)) .register(); - public static ItemEntry COVER_DIGITAL_INTERFACE = REGISTRATE - .item("digital_interface_cover", ComponentItem::new) - .lang("Digital Interface") - .register(); - public static ItemEntry COVER_DIGITAL_INTERFACE_WIRELESS = REGISTRATE - .item("wireless_digital_interface_cover", ComponentItem::new) - .lang("Wireless Digital Interface") - .register(); public static ItemEntry COVER_FLUID_VOIDING = REGISTRATE .item("fluid_voiding_cover", ComponentItem::new) .lang("Fluid Voiding Cover") @@ -2767,6 +2757,27 @@ public Component getItemName(ItemStack stack) { public static ItemEntry BLACKLIGHT = REGISTRATE.item("blacklight", Item::new) .onRegister(compassNode(GTCompassSections.MISC)).register(); + public static ItemEntry RUBBER_BOAT = REGISTRATE + .item("rubber_boat", p -> new BoatItem(false, GTEnumProxies.RUBBER_BOAT_PROXY.getValue(), p)) + .lang("Rubber Boat") + .register(); + + public static ItemEntry TREATED_WOOD_BOAT = REGISTRATE + .item("treated_wood_boat", p -> new BoatItem(false, GTEnumProxies.TREATED_WOOD_BOAT_PROXY.getValue(), p)) + .lang("Treated Wood Boat") + .register(); + + public static ItemEntry RUBBER_CHEST_BOAT = REGISTRATE + .item("rubber_chest_boat", p -> new BoatItem(true, GTEnumProxies.RUBBER_BOAT_PROXY.getValue(), p)) + .lang("Rubber Boat with Chest") + .register(); + + public static ItemEntry TREATED_WOOD_CHEST_BOAT = REGISTRATE + .item("treated_wood_chest_boat", + p -> new BoatItem(true, GTEnumProxies.TREATED_WOOD_BOAT_PROXY.getValue(), p)) + .lang("Treated Wood Boat with Chest") + .register(); + public static void init() { generateMaterialItems(); generateTools(); diff --git a/src/main/java/com/gregtechceu/gtceu/data/material/GTMaterials.java b/src/main/java/com/gregtechceu/gtceu/data/material/GTMaterials.java index c58b654a8e..a4bf5986e2 100644 --- a/src/main/java/com/gregtechceu/gtceu/data/material/GTMaterials.java +++ b/src/main/java/com/gregtechceu/gtceu/data/material/GTMaterials.java @@ -100,7 +100,7 @@ public static void init() { gem.setIgnored(NetherQuartz, Items.QUARTZ); gem.setIgnored(Coal, Items.COAL); gem.setIgnored(Amethyst, Items.AMETHYST_SHARD); - gem.setIgnored(Echo, Items.ECHO_SHARD); + gem.setIgnored(EchoShard, Items.ECHO_SHARD); excludeAllGems(Charcoal, Items.CHARCOAL); excludeAllGems(Flint, Items.FLINT); excludeAllGems(EnderPearl, Items.ENDER_PEARL); @@ -123,6 +123,7 @@ public static void init() { ingot.setIgnored(Iron, Items.IRON_INGOT); ingot.setIgnored(Gold, Items.GOLD_INGOT); ingot.setIgnored(Copper, Items.COPPER_INGOT); + ingot.setIgnored(Brick, Items.BRICK); ingot.setIgnored(Wax, Items.HONEYCOMB); nugget.setIgnored(Gold, Items.GOLD_NUGGET); @@ -174,7 +175,7 @@ public static void init() { rock.setIgnored(Endstone, Blocks.END_STONE); rock.setIgnored(Deepslate, Blocks.DEEPSLATE); rock.setIgnored(Basalt, Blocks.BASALT); - rock.setIgnored(Sculk, Blocks.SCULK); + block.setIgnored(Sculk, Blocks.SCULK); block.setIgnored(Concrete, SupplierMemoizer.memoizeBlockSupplier(() -> GTBlocks.LIGHT_CONCRETE.get())); block.setIgnored(Concrete, SupplierMemoizer.memoizeBlockSupplier(() -> GTBlocks.DARK_CONCRETE.get())); @@ -251,7 +252,7 @@ public static void init() { rawOreBlock.setIgnored(Copper, Blocks.RAW_COPPER_BLOCK); block.modifyMaterialAmount(Amethyst, 4); - block.modifyMaterialAmount(Echo, 4); + block.modifyMaterialAmount(EchoShard, 4); block.modifyMaterialAmount(Glowstone, 4); block.modifyMaterialAmount(NetherQuartz, 4); block.modifyMaterialAmount(CertusQuartz, 4); @@ -893,7 +894,7 @@ private static void excludeAllGemsButNormal(Material material) { public static Material Olivine; public static Material Opal; public static Material Amethyst; - public static Material Echo; + public static Material EchoShard; public static Material Lapis; public static Material Blaze; public static Material Apatite; diff --git a/src/main/java/com/gregtechceu/gtceu/data/material/SecondDegreeMaterials.java b/src/main/java/com/gregtechceu/gtceu/data/material/SecondDegreeMaterials.java index 2e0e248479..0e3f483436 100644 --- a/src/main/java/com/gregtechceu/gtceu/data/material/SecondDegreeMaterials.java +++ b/src/main/java/com/gregtechceu/gtceu/data/material/SecondDegreeMaterials.java @@ -78,7 +78,7 @@ public static void register() { .components(SiliconDioxide, 4, Iron, 1) .buildAndRegister(); - Echo = new Material.Builder(GTCEu.id("echo")) + EchoShard = new Material.Builder(GTCEu.id("echo_shard")) .gem(3) .color(0x002b2d).iconSet(RUBY) .appendFlags(EXT_METAL, NO_SMASHING, NO_SMELTING, GENERATE_ROD) diff --git a/src/main/java/com/gregtechceu/gtceu/data/recipe/GTRecipeModifiers.java b/src/main/java/com/gregtechceu/gtceu/data/recipe/GTRecipeModifiers.java index 6e44d37e4f..30b536f465 100644 --- a/src/main/java/com/gregtechceu/gtceu/data/recipe/GTRecipeModifiers.java +++ b/src/main/java/com/gregtechceu/gtceu/data/recipe/GTRecipeModifiers.java @@ -2,6 +2,7 @@ import com.gregtechceu.gtceu.api.GTValues; import com.gregtechceu.gtceu.api.capability.IParallelHatch; +import com.gregtechceu.gtceu.api.capability.recipe.EURecipeCapability; import com.gregtechceu.gtceu.api.capability.recipe.IRecipeCapabilityHolder; import com.gregtechceu.gtceu.api.machine.MetaMachine; import com.gregtechceu.gtceu.api.machine.feature.IOverclockMachine; @@ -12,6 +13,8 @@ import com.gregtechceu.gtceu.api.recipe.GTRecipe; import com.gregtechceu.gtceu.api.recipe.OverclockingLogic; import com.gregtechceu.gtceu.api.recipe.RecipeHelper; +import com.gregtechceu.gtceu.api.recipe.chance.logic.ChanceLogic; +import com.gregtechceu.gtceu.api.recipe.content.Content; import com.gregtechceu.gtceu.api.recipe.content.ContentModifier; import com.gregtechceu.gtceu.api.recipe.logic.OCParams; import com.gregtechceu.gtceu.api.recipe.logic.OCResult; @@ -31,6 +34,7 @@ import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; +import java.util.List; import java.util.Optional; import java.util.function.BiFunction; import java.util.function.Function; @@ -249,19 +253,22 @@ public static GTRecipe multiSmelterParallel(MetaMachine machine, @NotNull GTReci var maxParallel = 32 * coilMachine.getCoilType().getLevel(); final int FURNACE_DURATION = 128; var parallel = GTRecipeModifiers.accurateParallel(machine, recipe, maxParallel, false); - // double durationForParallel = Math.max(1.0, FURNACE_DURATION * 2 * parallel.getSecond() / Math.max(1, - // maxParallel * 1.0)); - - recipe = parallel.getFirst() == recipe ? parallel.getFirst().copy() : parallel.getFirst(); int parallelValue = parallel.getSecond(); - long eut = 4 * (parallelValue / 8) / coilMachine.getCoilType().getEnergyDiscount(); - result.init(eut, Math.max(1, 256 * parallelValue / maxParallel), parallelValue, params.getOcAmount()); - /* - * recipe.duration = Math.max(1, 256 * parallelValue / maxParallel); - * recipe.tickInputs.put(EURecipeCapability.CAP, List.of(new Content(eut, - * ChanceLogic.getMaxChancedValue(), ChanceLogic.getMaxChancedValue(), 0, null, null))); - */ + long eut = 4 * Math.max(1, (parallelValue / 8) / coilMachine.getCoilType().getEnergyDiscount()); + int duration = (int) Math.max(1, FURNACE_DURATION * 2 * parallelValue / Math.max(1, maxParallel * 1.0)); + + recipe.duration = duration; + recipe.tickInputs.put(EURecipeCapability.CAP, List.of(new Content(eut, + ChanceLogic.getMaxChancedValue(), ChanceLogic.getMaxChancedValue(), + 0, null, null))); + + var re = RecipeHelper.applyOverclock(new OverclockingLogic((p, r, maxVoltage) -> { + OverclockingLogic.NON_PERFECT_OVERCLOCK.getLogic() + .runOverclockingLogic(params, result, maxVoltage); + }), recipe, coilMachine.getOverclockVoltage(), params, result); + recipe = recipe.copy(ContentModifier.multiplier(parallelValue), false); + return recipe; } return null; diff --git a/src/main/java/com/gregtechceu/gtceu/data/recipe/WoodTypeEntry.java b/src/main/java/com/gregtechceu/gtceu/data/recipe/WoodTypeEntry.java index d1aa373fe1..746e365954 100644 --- a/src/main/java/com/gregtechceu/gtceu/data/recipe/WoodTypeEntry.java +++ b/src/main/java/com/gregtechceu/gtceu/data/recipe/WoodTypeEntry.java @@ -80,6 +80,14 @@ public final class WoodTypeEntry { public final Item chestBoat; @Nullable public final String chestBoatRecipeName; + @Nullable + public final Item sign; + @Nullable + public final String signRecipeName; + @Nullable + public final Item hangingSign; + @Nullable + public final String hangingSignRecipeName; public final Material material; public final boolean addLogOreDict; @@ -115,6 +123,8 @@ private WoodTypeEntry(@NotNull String modid, @NotNull String woodName, @NotNull @Nullable Item stairs, @Nullable String stairsRecipeName, boolean addStairsCraftingRecipe, @Nullable Item boat, @Nullable String boatRecipeName, @Nullable Item chestBoat, @Nullable String chestBoatRecipeName, + @Nullable Item sign, @Nullable String signRecipeName, + @Nullable Item hangingSign, @Nullable String hangingSignRecipeName, @Nullable Material material, boolean addLogOreDict, boolean addPlanksOreDict, boolean addDoorsOreDict, boolean addSlabsOreDict, @@ -153,6 +163,10 @@ private WoodTypeEntry(@NotNull String modid, @NotNull String woodName, @NotNull this.boatRecipeName = boatRecipeName; this.chestBoat = chestBoat; this.chestBoatRecipeName = chestBoatRecipeName; + this.sign = sign; + this.signRecipeName = signRecipeName; + this.hangingSign = hangingSign; + this.hangingSignRecipeName = hangingSignRecipeName; this.material = material != null ? material : GTMaterials.Wood; this.addLogOreDict = addLogOreDict; @@ -219,6 +233,10 @@ public static class Builder { private String boatRecipeName; private Item chestBoat = null; private String chestBoatRecipeName; + private Item sign = null; + private String signRecipeName; + private Item hangingSign = null; + private String hangingSignRecipeName; @Nullable private Material material = null; @@ -462,6 +480,32 @@ public Builder chestBoat(@NotNull Item chestBoat, @Nullable String chestBoatReci return this; } + /** + * Add an entry for a sign + * + * @param sign the sign to add + * @param signRecipeName the recipe name for crafting the sign + * @return this + */ + public Builder sign(@NotNull Item sign, @Nullable String signRecipeName) { + this.sign = sign; + this.signRecipeName = signRecipeName; + return this; + } + + /** + * Add an entry for a sign + * + * @param hangingSign the hanging sign to add + * @param hangingSignRecipeName the recipe name for crafting the hanging sign + * @return this + */ + public Builder hangingSign(@NotNull Item hangingSign, @Nullable String hangingSignRecipeName) { + this.hangingSign = hangingSign; + this.hangingSignRecipeName = hangingSignRecipeName; + return this; + } + /** * Specify material for wood entry. If not provided, {@link GTMaterials#Wood} will be used * @@ -573,6 +617,7 @@ public WoodTypeEntry build() { fence, fenceRecipeName, fenceGate, fenceGateRecipeName, stairs, stairsRecipeName, addStairsCraftingRecipe, boat, boatRecipeName, chestBoat, chestBoatRecipeName, + sign, signRecipeName, hangingSign, hangingSignRecipeName, material, addLogOreDict, addPlanksOreDict, addDoorsOreDict, addSlabsOreDict, addFencesOreDict, addFenceGatesOreDict, addStairsOreDict, addPlanksUnificationInfo, diff --git a/src/main/java/com/gregtechceu/gtceu/data/recipe/configurable/RecipeAddition.java b/src/main/java/com/gregtechceu/gtceu/data/recipe/configurable/RecipeAddition.java index a3e43e8ff5..f461e34749 100644 --- a/src/main/java/com/gregtechceu/gtceu/data/recipe/configurable/RecipeAddition.java +++ b/src/main/java/com/gregtechceu/gtceu/data/recipe/configurable/RecipeAddition.java @@ -1295,8 +1295,8 @@ private static void hardMiscRecipes(RecipeOutput provider) { ASSEMBLER_RECIPES.recipeBuilder("recovery_compass") .inputItems(new ItemStack(Items.COMPASS)) - .inputItems(plate, Echo, 8) - .inputItems(rod, Echo) + .inputItems(plate, EchoShard, 8) + .inputItems(rod, EchoShard) .outputItems(new ItemStack(Items.RECOVERY_COMPASS)) .duration(400).EUt(30).save(provider); diff --git a/src/main/java/com/gregtechceu/gtceu/data/recipe/configurable/RecipeRemoval.java b/src/main/java/com/gregtechceu/gtceu/data/recipe/configurable/RecipeRemoval.java index 57e77a4d2f..9d9d53a279 100644 --- a/src/main/java/com/gregtechceu/gtceu/data/recipe/configurable/RecipeRemoval.java +++ b/src/main/java/com/gregtechceu/gtceu/data/recipe/configurable/RecipeRemoval.java @@ -128,7 +128,6 @@ private static void hardIronRecipes(Consumer registry) { registry.accept(ResourceLocation.withDefaultNamespace("hopper")); registry.accept(ResourceLocation.withDefaultNamespace("iron_bars")); registry.accept(ResourceLocation.withDefaultNamespace("bucket")); - registry.accept(ResourceLocation.withDefaultNamespace("chain")); } private static void hardRedstoneRecipes(Consumer registry) { @@ -264,6 +263,7 @@ private static void hardMiscRecipes(Consumer registry) { registry.accept(ResourceLocation.withDefaultNamespace("brush")); registry.accept(ResourceLocation.withDefaultNamespace("recovery_compass")); registry.accept(ResourceLocation.withDefaultNamespace("spyglass")); + registry.accept(ResourceLocation.withDefaultNamespace("chain")); } private static void hardGlassRecipes(Consumer registry) { diff --git a/src/main/java/com/gregtechceu/gtceu/data/recipe/misc/MiscRecipeLoader.java b/src/main/java/com/gregtechceu/gtceu/data/recipe/misc/MiscRecipeLoader.java index 86cfd5ab45..dda5e03e29 100644 --- a/src/main/java/com/gregtechceu/gtceu/data/recipe/misc/MiscRecipeLoader.java +++ b/src/main/java/com/gregtechceu/gtceu/data/recipe/misc/MiscRecipeLoader.java @@ -294,16 +294,18 @@ public static void init(RecipeOutput provider) { * .outputItems(GTMachines.CENTRAL_MONITOR) * .save(provider); */ - - ASSEMBLER_RECIPES.recipeBuilder("cover_digital_interface").duration(100).EUt(VA[HV]) - .inputItems(COVER_SCREEN) - .inputItems(plate, Aluminium) - .inputItems(CustomTags.MV_CIRCUITS) - .inputItems(screw, StainlessSteel, 4) - .inputFluids(Polyethylene.getFluid(L)) - .outputItems(COVER_DIGITAL_INTERFACE) - .save(provider); - + /* + * ASSEMBLER_RECIPES.recipeBuilder("cover_digital_interface").duration(100).EUt(VA[HV]) + * .inputItems(COVER_SCREEN) + * .inputItems(plate, Aluminium) + * .inputItems(CustomTags.MV_CIRCUITS) + * .inputItems(screw, StainlessSteel, 4) + * .inputFluids(Polyethylene.getFluid(L)) + * .outputItems(COVER_DIGITAL_INTERFACE) + * .save(provider); + * \ + * + */ // todo digital interface cover /* * ASSEMBLER_RECIPES.recipeBuilder("cover_wireless_digital_interface").duration(100).EUt(VA[HV]) diff --git a/src/main/java/com/gregtechceu/gtceu/data/recipe/misc/VanillaStandardRecipes.java b/src/main/java/com/gregtechceu/gtceu/data/recipe/misc/VanillaStandardRecipes.java index 5eeacdefc0..170d905064 100644 --- a/src/main/java/com/gregtechceu/gtceu/data/recipe/misc/VanillaStandardRecipes.java +++ b/src/main/java/com/gregtechceu/gtceu/data/recipe/misc/VanillaStandardRecipes.java @@ -81,6 +81,11 @@ private static void compressingRecipes(RecipeOutput provider) { .outputItems(new ItemStack(Blocks.CLAY)) .save(provider); + COMPRESSOR_RECIPES.recipeBuilder("snowballs_to_snow").duration(200).EUt(2) + .inputItems(new ItemStack(Items.SNOWBALL, 4)) + .outputItems(new ItemStack(Items.SNOW_BLOCK)) + .save(provider); + COMPRESSOR_RECIPES.recipeBuilder("glowstone").duration(300).EUt(2) .inputItems(new ItemStack(Items.GLOWSTONE_DUST, 4)) .outputItems(new ItemStack(Blocks.GLOWSTONE)) diff --git a/src/main/java/com/gregtechceu/gtceu/data/recipe/misc/WoodMachineRecipes.java b/src/main/java/com/gregtechceu/gtceu/data/recipe/misc/WoodMachineRecipes.java index 3fd5db55e1..08d19a9db9 100644 --- a/src/main/java/com/gregtechceu/gtceu/data/recipe/misc/WoodMachineRecipes.java +++ b/src/main/java/com/gregtechceu/gtceu/data/recipe/misc/WoodMachineRecipes.java @@ -9,6 +9,7 @@ import com.gregtechceu.gtceu.api.tag.TagUtil; import com.gregtechceu.gtceu.config.ConfigHolder; import com.gregtechceu.gtceu.data.block.GTBlocks; +import com.gregtechceu.gtceu.data.item.GTItems; import com.gregtechceu.gtceu.data.material.GTMaterials; import com.gregtechceu.gtceu.data.recipe.VanillaRecipeHelper; import com.gregtechceu.gtceu.data.recipe.WoodTypeEntry; @@ -63,6 +64,8 @@ private static List getDefaultEntries() { .stairs(Items.OAK_STAIRS, "oak_stairs") .boat(Items.OAK_BOAT, "oak_boat") .chestBoat(Items.OAK_CHEST_BOAT, "oak_chest_boat") + .sign(Items.OAK_SIGN, "oak_sign") + .hangingSign(Items.OAK_HANGING_SIGN, "oak_hanging_sign") .registerAllUnificationInfo() .build(), new WoodTypeEntry.Builder(mcModId, "spruce") @@ -79,6 +82,8 @@ private static List getDefaultEntries() { .stairs(Items.SPRUCE_STAIRS, "spruce_stairs") .boat(Items.SPRUCE_BOAT, "spruce_boat") .chestBoat(Items.SPRUCE_CHEST_BOAT, "spruce_chest_boat") + .sign(Items.SPRUCE_SIGN, "spruce_sign") + .hangingSign(Items.SPRUCE_HANGING_SIGN, "spruce_hanging_sign") .registerAllUnificationInfo() .build(), new WoodTypeEntry.Builder(mcModId, "birch") @@ -95,6 +100,8 @@ private static List getDefaultEntries() { .stairs(Items.BIRCH_STAIRS, "birch_stairs") .boat(Items.BIRCH_BOAT, "birch_boat") .chestBoat(Items.BIRCH_CHEST_BOAT, "birch_chest_boat") + .sign(Items.BIRCH_SIGN, "birch_sign") + .hangingSign(Items.BIRCH_HANGING_SIGN, "birch_hanging_sign") .registerAllUnificationInfo() .build(), new WoodTypeEntry.Builder(mcModId, "jungle") @@ -111,6 +118,8 @@ private static List getDefaultEntries() { .stairs(Items.JUNGLE_STAIRS, "jungle_stairs") .boat(Items.JUNGLE_BOAT, "jungle_boat") .chestBoat(Items.JUNGLE_CHEST_BOAT, "jungle_chest_boat") + .sign(Items.JUNGLE_SIGN, "jungle_sign") + .hangingSign(Items.JUNGLE_HANGING_SIGN, "jungle_hanging_sign") .registerAllUnificationInfo() .build(), new WoodTypeEntry.Builder(mcModId, "acacia") @@ -127,6 +136,8 @@ private static List getDefaultEntries() { .stairs(Items.ACACIA_STAIRS, "acacia_stairs") .boat(Items.ACACIA_BOAT, "acacia_boat") .chestBoat(Items.ACACIA_CHEST_BOAT, "acacia_chest_boat") + .sign(Items.ACACIA_SIGN, "acacia_sign") + .hangingSign(Items.ACACIA_HANGING_SIGN, "acacia_hanging_sign") .registerAllUnificationInfo() .build(), new WoodTypeEntry.Builder(mcModId, "dark_oak") @@ -143,6 +154,8 @@ private static List getDefaultEntries() { .stairs(Items.DARK_OAK_STAIRS, "dark_oak_stairs") .boat(Items.DARK_OAK_BOAT, "dark_oak_boat") .chestBoat(Items.DARK_OAK_CHEST_BOAT, "dark_oak_chest_boat") + .sign(Items.DARK_OAK_SIGN, "dark_oak_sign") + .hangingSign(Items.DARK_OAK_HANGING_SIGN, "dark_oak_hanging_sign") .registerAllUnificationInfo() .build(), new WoodTypeEntry.Builder(mcModId, "bamboo") @@ -158,6 +171,8 @@ private static List getDefaultEntries() { .stairs(Items.BAMBOO_STAIRS, "bamboo_stairs") .boat(Items.BAMBOO_RAFT, "bamboo_raft") .chestBoat(Items.BAMBOO_CHEST_RAFT, "bamboo_chest_raft") + .sign(Items.BAMBOO_SIGN, "bamboo_sign") + .hangingSign(Items.BAMBOO_HANGING_SIGN, "bamboo_hanging_sign") .registerAllUnificationInfo() .build(), new WoodTypeEntry.Builder(mcModId, "cherry") @@ -174,6 +189,8 @@ private static List getDefaultEntries() { .stairs(Items.CHERRY_STAIRS, "cherry_stairs") .boat(Items.CHERRY_BOAT, "cherry_boat") .chestBoat(Items.CHERRY_CHEST_BOAT, "cherry_chest_boat") + .sign(Items.CHERRY_SIGN, "cherry_sign") + .hangingSign(Items.CHERRY_HANGING_SIGN, "cherry_hanging_sign") .registerAllUnificationInfo() .build(), new WoodTypeEntry.Builder(mcModId, "mangrove") @@ -190,6 +207,8 @@ private static List getDefaultEntries() { .stairs(Items.MANGROVE_STAIRS, "mangrove_stairs") .boat(Items.MANGROVE_BOAT, "mangrove_boat") .chestBoat(Items.MANGROVE_CHEST_BOAT, "mangrove_chest_boat") + .sign(Items.MANGROVE_SIGN, "mangrove_sign") + .hangingSign(Items.MANGROVE_HANGING_SIGN, "mangrove_hanging_sign") .registerAllUnificationInfo() .build(), new WoodTypeEntry.Builder(mcModId, "crimson") @@ -205,6 +224,8 @@ private static List getDefaultEntries() { .fence(Items.CRIMSON_FENCE, "crimson_fence") .fenceGate(Items.CRIMSON_FENCE_GATE, "crimson_fence_gate") .stairs(Items.CRIMSON_STAIRS, "crimson_stairs") + .sign(Items.CRIMSON_SIGN, "crimson_sign") + .hangingSign(Items.CRIMSON_HANGING_SIGN, "crimson_hanging_sign") .registerAllUnificationInfo() .build(), new WoodTypeEntry.Builder(mcModId, "warped") @@ -220,6 +241,8 @@ private static List getDefaultEntries() { .fence(Items.WARPED_FENCE, "warped_fence") .fenceGate(Items.WARPED_FENCE_GATE, "warped_fence_gate") .stairs(Items.WARPED_STAIRS, "warped_stairs") + .sign(Items.WARPED_SIGN, "warped_sign") + .hangingSign(Items.WARPED_HANGING_SIGN, "warped_hanging_sign") .registerAllUnificationInfo() .build(), new WoodTypeEntry.Builder(GTCEu.MOD_ID, "rubber") @@ -229,12 +252,15 @@ private static List getDefaultEntries() { .wood(GTBlocks.RUBBER_WOOD.asItem()) .strippedWood(GTBlocks.STRIPPED_RUBBER_WOOD.asItem()) .door(GTBlocks.RUBBER_DOOR.asItem(), null) - .trapdoor(GTBlocks.RUBBER_TRAPDOOR.asItem(), null) + .trapdoor(GTBlocks.RUBBER_TRAPDOOR.asItem(), "rubber_trapdoor") .slab(GTBlocks.RUBBER_SLAB.asItem(), null).addSlabRecipe() .fence(GTBlocks.RUBBER_FENCE.asItem(), null) .fenceGate(GTBlocks.RUBBER_FENCE_GATE.asItem(), null) .stairs(GTBlocks.RUBBER_STAIRS.asItem(), null).addStairsRecipe() - // .boat(GTItems.RUBBER_BOAT.asItem(), null) // TODO someone forgot boat textures. + .boat(GTItems.RUBBER_BOAT.asItem(), null) + .chestBoat(GTItems.RUBBER_CHEST_BOAT.asItem(), null) + .sign(GTBlocks.RUBBER_SIGN.asItem(), null) + .hangingSign(GTBlocks.RUBBER_HANGING_SIGN.asItem(), null) .generateLogToPlankRecipe(false) // rubber log does not have a tag .registerAllTags() .registerAllUnificationInfo() @@ -247,10 +273,12 @@ private static List getDefaultEntries() { .fence(GTBlocks.TREATED_WOOD_FENCE.asItem(), null) .fenceGate(GTBlocks.TREATED_WOOD_FENCE_GATE.asItem(), null) .stairs(GTBlocks.TREATED_WOOD_STAIRS.asItem(), null).addStairsRecipe() - // .boat(GTItems.TREATED_WOOD_BOAT.asItem(), null) // TODO someone forgot boat textures. + .boat(GTItems.TREATED_WOOD_BOAT.asItem(), null) + .chestBoat(GTItems.TREATED_WOOD_CHEST_BOAT.asItem(), null) + .sign(GTBlocks.TREATED_WOOD_SIGN.asItem(), null) + .hangingSign(GTBlocks.TREATED_WOOD_HANGING_SIGN.asItem(), null) .material(TreatedWood) - .generateLogToPlankRecipe(false) - .registerAllUnificationInfo() + .registerUnificationInfo(false, true, true, true, true, true, true, true) .build()); } return DEFAULT_ENTRIES; @@ -454,6 +482,102 @@ public static void registerWoodTypeRecipe(RecipeOutput provider, @NotNull WoodTy } } + // sign + if (entry.sign != null && entry.slab != null) { + final boolean hasSignRecipe = entry.signRecipeName != null; + String recipeName = hasSignRecipe ? entry.signRecipeName : name + "_sign"; + if (ConfigHolder.INSTANCE.recipes.hardWoodRecipes) { + VanillaRecipeHelper.addShapedRecipe(provider, recipeName + "_iron", new ItemStack(entry.sign), + "LLL", "rPr", "sSd", + 'P', entry.planks, + 'r', new UnificationEntry(screw, Iron), + 'L', entry.slab, + 'S', entry.getStick()); + + // plank -> sign assembling + ASSEMBLER_RECIPES.recipeBuilder(recipeName + "_iron") + .circuitMeta(4) + .inputItems(new ItemStack(entry.slab, 1)) + .inputItems(entry.getStick(), 1) + .inputFluids(Iron.getFluid(GTValues.L / 9)) + .outputItems(entry.sign, 3) + .duration(200).EUt(4).save(provider); + + VanillaRecipeHelper.addShapedRecipe(provider, recipeName + "_steel", new ItemStack(entry.sign, 2), + "LLL", "rPr", "sSd", + 'P', entry.planks, + 'r', new UnificationEntry(screw, Steel), + 'L', entry.slab, + 'S', entry.getStick()); + + // plank -> sign assembling + ASSEMBLER_RECIPES.recipeBuilder(recipeName + "_steel") + .circuitMeta(4) + .inputItems(new ItemStack(entry.slab, 1)) + .inputItems(entry.getStick(), 1) + .inputFluids(Steel.getFluid(GTValues.L / 9)) + .outputItems(entry.sign, 5) + .duration(200).EUt(4).save(provider); + } else { + VanillaRecipeHelper.addShapedRecipe(provider, recipeName, new ItemStack(entry.sign, 3), + "PPP", "PPP", " s ", + 'P', entry.planks, + 's', entry.getStick()); + } + + if (entry.hangingSign != null) { + final boolean hasHangingSignRecipe = entry.hangingSignRecipeName != null; + String recipeNameHanging = hasHangingSignRecipe ? entry.hangingSignRecipeName : name + "_hanging_sign"; + ASSEMBLER_RECIPES.recipeBuilder(recipeNameHanging) + .inputItems(entry.sign) + .inputItems(ring, Iron, 2) + .inputItems(Items.CHAIN, 2) + .circuitMeta(5) + .duration(150) + .EUt(4) + .save(provider); + } + } + + // trapdoor + if (entry.trapdoor != null) { + final boolean hasTrapdoorRecipe = entry.trapdoorRecipeName != null; + String recipeName = hasTrapdoorRecipe ? entry.trapdoorRecipeName : name + "_trapdoor"; + if (ConfigHolder.INSTANCE.recipes.hardWoodRecipes) { + VanillaRecipeHelper.addShapedRecipe(provider, recipeName + "_iron", new ItemStack(entry.trapdoor), + "bPS", "PdP", "SPb", + 'P', entry.planks, + 'b', new UnificationEntry(bolt, Iron), + 'S', entry.getStick()); + + // plank -> trapdoor assembling + ASSEMBLER_RECIPES.recipeBuilder(recipeName + "_iron") + .circuitMeta(3) + .inputItems(new ItemStack(entry.planks, 2)) + .inputFluids(Iron.getFluid(GTValues.L / 9)) + .outputItems(entry.trapdoor) + .duration(200).EUt(4).save(provider); + + VanillaRecipeHelper.addShapedRecipe(provider, recipeName + "_steel", new ItemStack(entry.trapdoor, 2), + "bPS", "PdP", "SPb", + 'P', entry.planks, + 'b', new UnificationEntry(bolt, Steel), + 'S', entry.getStick()); + + // plank -> trapdoor assembling + ASSEMBLER_RECIPES.recipeBuilder(recipeName + "_steel") + .circuitMeta(3) + .inputItems(new ItemStack(entry.planks, 2)) + .inputFluids(Steel.getFluid(GTValues.L / 9)) + .outputItems(entry.trapdoor, 2) + .duration(200).EUt(4).save(provider); + } else { + VanillaRecipeHelper.addShapedRecipe(provider, recipeName, new ItemStack(entry.trapdoor, 2), + "PPP", "PPP", + 'P', entry.planks); + } + } + // stairs if (entry.stairs != null) { final boolean hasStairRecipe = entry.stairsRecipeName != null; @@ -588,29 +712,24 @@ public static void registerWoodTypeRecipe(RecipeOutput provider, @NotNull WoodTy // chest boat if (entry.chestBoat != null) { final boolean hasChestBoatRecipe = entry.chestBoatRecipeName != null; + String recipeName = hasChestBoatRecipe ? entry.chestBoatRecipeName : name + "_chest_boat"; if (ConfigHolder.INSTANCE.recipes.hardWoodRecipes) { - if (entry.boat != null) { - - VanillaRecipeHelper.addShapedRecipe(provider, - hasChestBoatRecipe ? entry.chestBoatRecipeName : name + "_chest_boat", - new ItemStack(entry.chestBoat), - " B ", "SCS", " w ", - 'B', entry.boat, - 'S', new UnificationEntry(bolt, Wood), - 'C', Tags.Items.CHESTS_WOODEN); - } + VanillaRecipeHelper.addShapedRecipe(provider, recipeName, + new ItemStack(entry.chestBoat), + " B ", "SCS", " w ", + 'B', entry.boat, + 'S', new UnificationEntry(bolt, Wood), + 'C', Tags.Items.CHESTS_WOODEN); } else { - if (!hasChestBoatRecipe) { - VanillaRecipeHelper.addShapelessRecipe(provider, name + "_chest_boat", - new ItemStack(entry.chestBoat), - entry.boat, Tags.Items.CHESTS); - } + VanillaRecipeHelper.addShapelessRecipe(provider, recipeName, + new ItemStack(entry.chestBoat), + entry.boat, Tags.Items.CHESTS_WOODEN); } - // plank -> boat assembling + // boat -> chest boat assembling ASSEMBLER_RECIPES.recipeBuilder(name + "_chest_boat") .inputItems(new ItemStack(entry.boat)) - .inputItems(Tags.Items.CHESTS) + .inputItems(Tags.Items.CHESTS_WOODEN) .outputItems(entry.chestBoat) .circuitMeta(16) .duration(100).EUt(4).save(provider); diff --git a/src/main/java/com/gregtechceu/gtceu/integration/ae2/gui/widget/slot/AEConfigSlotWidget.java b/src/main/java/com/gregtechceu/gtceu/integration/ae2/gui/widget/slot/AEConfigSlotWidget.java index 3aca665b47..c7083b3185 100644 --- a/src/main/java/com/gregtechceu/gtceu/integration/ae2/gui/widget/slot/AEConfigSlotWidget.java +++ b/src/main/java/com/gregtechceu/gtceu/integration/ae2/gui/widget/slot/AEConfigSlotWidget.java @@ -49,21 +49,34 @@ public AEConfigSlotWidget(Position pos, Size size, ConfigWidget widget, int inde public void drawInForeground(@NotNull GuiGraphics graphics, int mouseX, int mouseY, float partialTicks) { super.drawInForeground(graphics, mouseX, mouseY, partialTicks); IConfigurableSlot slot = this.parentWidget.getDisplay(this.index); - if (slot.getConfig() == null && mouseOverConfig(mouseX, mouseY)) { - List hoverStringList = new ArrayList<>(); - hoverStringList.add(Component.translatable("gtceu.gui.config_slot")); - if (parentWidget.isAutoPull()) { - hoverStringList.add(Component.translatable("gtceu.gui.config_slot.auto_pull_managed")); - } else { - if (!parentWidget.isStocking()) { - hoverStringList.add(Component.translatable("gtceu.gui.config_slot.set")); - hoverStringList.add(Component.translatable("gtceu.gui.config_slot.scroll")); + if (slot.getConfig() == null) { + if (mouseOverConfig(mouseX, mouseY)) { + List hoverStringList = new ArrayList<>(); + hoverStringList.add(Component.translatable("gtceu.gui.config_slot")); + if (parentWidget.isAutoPull()) { + hoverStringList.add(Component.translatable("gtceu.gui.config_slot.auto_pull_managed")); } else { - hoverStringList.add(Component.translatable("gtceu.gui.config_slot.set_only")); + if (!parentWidget.isStocking()) { + hoverStringList.add(Component.translatable("gtceu.gui.config_slot.set")); + hoverStringList.add(Component.translatable("gtceu.gui.config_slot.scroll")); + } else { + hoverStringList.add(Component.translatable("gtceu.gui.config_slot.set_only")); + } + hoverStringList.add(Component.translatable("gtceu.gui.config_slot.remove")); } - hoverStringList.add(Component.translatable("gtceu.gui.config_slot.remove")); + graphics.renderTooltip(Minecraft.getInstance().font, hoverStringList, Optional.empty(), mouseX, mouseY); + } + } else { + GenericStack item = null; + if (mouseOverConfig(mouseX, mouseY)) { + item = slot.getConfig(); + } else if (mouseOverStock(mouseX, mouseY)) { + item = slot.getStock(); + } + if (item != null) { + graphics.renderTooltip(Minecraft.getInstance().font, GenericStack.wrapInItemStack(item), mouseX, + mouseY); } - graphics.renderTooltip(Minecraft.getInstance().font, hoverStringList, Optional.empty(), mouseX, mouseY); } } diff --git a/src/main/java/com/gregtechceu/gtceu/integration/ae2/gui/widget/slot/AEItemConfigSlotWidget.java b/src/main/java/com/gregtechceu/gtceu/integration/ae2/gui/widget/slot/AEItemConfigSlotWidget.java index c20e43a5a7..2de663540b 100644 --- a/src/main/java/com/gregtechceu/gtceu/integration/ae2/gui/widget/slot/AEItemConfigSlotWidget.java +++ b/src/main/java/com/gregtechceu/gtceu/integration/ae2/gui/widget/slot/AEItemConfigSlotWidget.java @@ -10,7 +10,6 @@ import com.lowdragmc.lowdraglib.utils.Position; import com.lowdragmc.lowdraglib.utils.Size; -import net.minecraft.client.Minecraft; import net.minecraft.client.gui.GuiGraphics; import net.minecraft.client.renderer.Rect2i; import net.minecraft.network.RegistryFriendlyByteBuf; @@ -88,22 +87,6 @@ private void drawSlots(GuiGraphics graphics, int mouseX, int mouseY, int x, int GuiTextures.SLOT_DARK.draw(graphics, mouseX, mouseY, x, y + 18, 18, 18); } - @OnlyIn(Dist.CLIENT) - @Override - public void drawInForeground(@NotNull GuiGraphics graphics, int mouseX, int mouseY, float partialTicks) { - super.drawInForeground(graphics, mouseX, mouseY, partialTicks); - GenericStack item = null; - IConfigurableSlot slot = this.parentWidget.getDisplay(this.index); - if (mouseOverConfig(mouseX, mouseY)) { - item = slot.getConfig(); - } else if (mouseOverStock(mouseX, mouseY)) { - item = slot.getStock(); - } - if (item != null) { - graphics.renderTooltip(Minecraft.getInstance().font, GenericStack.wrapInItemStack(item), mouseX, mouseY); - } - } - @OnlyIn(Dist.CLIENT) @Override public boolean mouseClicked(double mouseX, double mouseY, int button) { diff --git a/src/main/java/com/gregtechceu/gtceu/integration/ae2/machine/MEPatternBufferProxyPartMachine.java b/src/main/java/com/gregtechceu/gtceu/integration/ae2/machine/MEPatternBufferProxyPartMachine.java index 3128dc6bd5..eb14893505 100644 --- a/src/main/java/com/gregtechceu/gtceu/integration/ae2/machine/MEPatternBufferProxyPartMachine.java +++ b/src/main/java/com/gregtechceu/gtceu/integration/ae2/machine/MEPatternBufferProxyPartMachine.java @@ -13,6 +13,7 @@ import com.gregtechceu.gtceu.integration.ae2.machine.trait.MEPatternBufferProxyRecipeHandler; import com.lowdragmc.lowdraglib.gui.modular.ModularUI; +import com.lowdragmc.lowdraglib.syncdata.annotation.DescSynced; import com.lowdragmc.lowdraglib.syncdata.annotation.Persisted; import com.lowdragmc.lowdraglib.syncdata.field.ManagedFieldHolder; @@ -49,6 +50,7 @@ public class MEPatternBufferProxyPartMachine extends TieredIOPartMachine impleme @Persisted @Getter + @DescSynced private BlockPos bufferPos; public MEPatternBufferProxyPartMachine(IMachineBlockEntity holder) { @@ -114,7 +116,7 @@ public MetaMachine self() { @Override public boolean shouldOpenUI(Player player, InteractionHand hand, BlockHitResult hit) { var buffer = getBuffer(); - return buffer != null && super.shouldOpenUI(player, hand, hit); + return buffer != null; } @Override diff --git a/src/main/java/com/gregtechceu/gtceu/syncdata/GTRecipeAccessor.java b/src/main/java/com/gregtechceu/gtceu/syncdata/GTRecipeAccessor.java deleted file mode 100644 index cedc33240b..0000000000 --- a/src/main/java/com/gregtechceu/gtceu/syncdata/GTRecipeAccessor.java +++ /dev/null @@ -1,45 +0,0 @@ -package com.gregtechceu.gtceu.syncdata; - -import com.gregtechceu.gtceu.api.recipe.GTRecipe; -import com.gregtechceu.gtceu.api.recipe.GTRecipeSerializer; - -import com.lowdragmc.lowdraglib.syncdata.AccessorOp; -import com.lowdragmc.lowdraglib.syncdata.accessor.CustomObjectAccessor; -import com.lowdragmc.lowdraglib.syncdata.payload.FriendlyBufPayload; -import com.lowdragmc.lowdraglib.syncdata.payload.ITypedPayload; - -import net.minecraft.core.HolderLookup; -import net.minecraft.core.RegistryAccess; -import net.minecraft.network.FriendlyByteBuf; -import net.minecraft.network.RegistryFriendlyByteBuf; - -import io.netty.buffer.Unpooled; - -/** - * @author KilaBash - * @date 2023/2/18 - * @implNote GTRecipeAccessor - */ -public class GTRecipeAccessor extends CustomObjectAccessor { - - public GTRecipeAccessor() { - super(GTRecipe.class, true); - } - - @Override - public ITypedPayload serialize(AccessorOp accessorOp, GTRecipe gtRecipe, HolderLookup.Provider provider) { - FriendlyByteBuf serializedHolder = new FriendlyByteBuf(Unpooled.buffer()); - GTRecipeSerializer.toNetwork(new RegistryFriendlyByteBuf(serializedHolder, (RegistryAccess) provider), - gtRecipe); - return FriendlyBufPayload.of(serializedHolder); - } - - @Override - public GTRecipe deserialize(AccessorOp accessorOp, ITypedPayload payload, HolderLookup.Provider provider) { - if (payload instanceof FriendlyBufPayload buffer) { - return GTRecipeSerializer - .fromNetwork(new RegistryFriendlyByteBuf(buffer.getPayload(), (RegistryAccess) provider)); - } - return null; - } -} diff --git a/src/main/java/com/gregtechceu/gtceu/syncdata/GTRecipePayload.java b/src/main/java/com/gregtechceu/gtceu/syncdata/GTRecipePayload.java new file mode 100644 index 0000000000..56d4f28061 --- /dev/null +++ b/src/main/java/com/gregtechceu/gtceu/syncdata/GTRecipePayload.java @@ -0,0 +1,67 @@ +package com.gregtechceu.gtceu.syncdata; + +import com.gregtechceu.gtceu.api.recipe.GTRecipe; + +import com.lowdragmc.lowdraglib.Platform; +import com.lowdragmc.lowdraglib.syncdata.payload.ObjectTypedPayload; + +import net.minecraft.client.Minecraft; +import net.minecraft.core.HolderLookup; +import net.minecraft.nbt.ByteArrayTag; +import net.minecraft.nbt.StringTag; +import net.minecraft.nbt.Tag; +import net.minecraft.network.FriendlyByteBuf; +import net.minecraft.network.RegistryFriendlyByteBuf; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.world.item.crafting.RecipeHolder; +import net.minecraft.world.item.crafting.RecipeManager; + +import io.netty.buffer.ByteBuf; +import io.netty.buffer.Unpooled; +import org.jetbrains.annotations.Nullable; + +/** + * @author KilaBash + * @date 2023/2/18 + * @implNote GTRecipePayload + */ +public class GTRecipePayload extends ObjectTypedPayload { + + @Nullable + @Override + public Tag serializeNBT(HolderLookup.Provider provider) { + return StringTag.valueOf(payload.id.toString()); + } + + @Override + public void deserializeNBT(Tag tag, HolderLookup.Provider provider) { + RecipeManager recipeManager = Platform.getMinecraftServer().getRecipeManager(); + if (tag instanceof StringTag stringTag) { + RecipeHolder holder = recipeManager.byKey(ResourceLocation.parse(stringTag.getAsString())).orElse(null); + this.payload = holder == null ? null : (GTRecipe) holder.value(); + } else if (tag instanceof ByteArrayTag byteArray) { + ByteBuf copiedDataBuffer = Unpooled.copiedBuffer(byteArray.getAsByteArray()); + FriendlyByteBuf buf = new FriendlyByteBuf(copiedDataBuffer); + RecipeHolder holder = recipeManager.byKey(buf.readResourceLocation()).orElse(null); + this.payload = holder == null ? null : (GTRecipe) holder.value(); + buf.release(); + } + } + + @Override + public void writePayload(RegistryFriendlyByteBuf buf) { + buf.writeResourceLocation(this.payload.id); + } + + @Override + public void readPayload(RegistryFriendlyByteBuf buf) { + RecipeManager recipeManager; + if (!Platform.isClient()) { + recipeManager = Platform.getMinecraftServer().getRecipeManager(); + } else { + recipeManager = Minecraft.getInstance().getConnection().getRecipeManager(); + } + RecipeHolder holder = recipeManager.byKey(buf.readResourceLocation()).orElse(null); + this.payload = holder == null ? null : (GTRecipe) holder.value(); + } +} diff --git a/src/main/java/com/gregtechceu/gtceu/utils/GTUtil.java b/src/main/java/com/gregtechceu/gtceu/utils/GTUtil.java index 0dea5ee4a5..02e25afac5 100644 --- a/src/main/java/com/gregtechceu/gtceu/utils/GTUtil.java +++ b/src/main/java/com/gregtechceu/gtceu/utils/GTUtil.java @@ -37,7 +37,6 @@ import net.neoforged.neoforge.fluids.FluidStack; import net.neoforged.neoforge.fluids.capability.IFluidHandler; -import com.google.common.math.LongMath; import com.mojang.blaze3d.platform.InputConstants; import com.mojang.serialization.Codec; import com.mojang.serialization.codecs.RecordCodecBuilder; @@ -202,22 +201,17 @@ public static int nearestLesser(@NotNull long[] array, long value) { * tier that can handle it, {@code MAX} is returned. */ public static byte getTierByVoltage(long voltage) { - // Yes, yes we do need UHV+. - return (byte) Math.min(GTValues.MAX, nearestLesser(GTValues.V, voltage) + 1); - } - - public static int getFakeVoltageTier(long voltage) { - long a = voltage; - int b = 0; - while (a / 4L >= 8L) { - b++; - a /= 4L; + if (voltage > Integer.MAX_VALUE) { + return GTValues.MAX; } - return b; + return getOCTierByVoltage(voltage); } - public static long getVoltageFromFakeTier(int tier) { - return LongMath.pow(4L, tier + 1) * 2; + public static byte getOCTierByVoltage(long voltage) { + if (voltage <= GTValues.V[GTValues.ULV]) { + return GTValues.ULV; + } + return (byte) ((62 - Long.numberOfLeadingZeros(voltage - 1)) >> 1); } /** @@ -227,7 +221,14 @@ public static long getVoltageFromFakeTier(int tier) { * {@code ULV} if there's no tier below */ public static byte getFloorTierByVoltage(long voltage) { - return (byte) Math.max(GTValues.ULV, nearestLesserOrEqual(GTValues.V, voltage)); + if (voltage < GTValues.V[GTValues.ULV]) { + return GTValues.ULV; + } + if (voltage == GTValues.VEX[GTValues.MAX_TRUE]) { + return GTValues.MAX_TRUE; + } + + return (byte) ((60 - Long.numberOfLeadingZeros(voltage)) >> 1); } public static ItemStack copy(ItemStack... stacks) { diff --git a/src/main/resources/META-INF/accesstransformer.cfg b/src/main/resources/META-INF/accesstransformer.cfg index 3ecb9e9368..8aacc1f5a2 100644 --- a/src/main/resources/META-INF/accesstransformer.cfg +++ b/src/main/resources/META-INF/accesstransformer.cfg @@ -21,6 +21,8 @@ public net.minecraft.world.entity.item.ItemEntity pickupDelay public net.minecraft.server.network.ServerGamePacketListenerImpl aboveGroundTickCount public net.minecraft.world.entity.Entity setSharedFlag(IZ)V +public net.minecraft.world.entity.vehicle.Boat DATA_ID_TYPE + # for AE2 to be able to load (idk why but it needs these?) public net.minecraft.world.level.block.Blocks always(Lnet/minecraft/world/level/block/state/BlockState;Lnet/minecraft/world/level/BlockGetter;Lnet/minecraft/core/BlockPos;)Z public net.minecraft.world.level.block.Blocks never(Lnet/minecraft/world/level/block/state/BlockState;Lnet/minecraft/world/level/BlockGetter;Lnet/minecraft/core/BlockPos;)Z diff --git a/src/main/resources/META-INF/enum_extensions.json b/src/main/resources/META-INF/enum_extensions.json new file mode 100644 index 0000000000..42383ec292 --- /dev/null +++ b/src/main/resources/META-INF/enum_extensions.json @@ -0,0 +1,22 @@ +{ + "entries": [ + { + "enum": "net/minecraft/world/entity/vehicle/Boat$Type", + "name": "GTCEU_RUBBER", + "constructor": "(Ljava/util/function/Supplier;Ljava/lang/String;Ljava/util/function/Supplier;Ljava/util/function/Supplier;Ljava/util/function/Supplier;Z)V", + "parameters": { + "class": "com/gregtechceu/gtceu/data/enumproxy/GTEnumProxies", + "field": "RUBBER_BOAT_PROXY" + } + }, + { + "enum": "net/minecraft/world/entity/vehicle/Boat$Type", + "name": "GTCEU_TREATED_WOOD", + "constructor": "(Ljava/util/function/Supplier;Ljava/lang/String;Ljava/util/function/Supplier;Ljava/util/function/Supplier;Ljava/util/function/Supplier;Z)V", + "parameters": { + "class": "com/gregtechceu/gtceu/data/enumproxy/GTEnumProxies", + "field": "TREATED_WOOD_BOAT_PROXY" + } + } + ] +} diff --git a/src/main/resources/assets/gtceu/models/block/machine/electric_gear_box_16a.json b/src/main/resources/assets/gtceu/models/block/machine/electric_gear_box_16a.json index 61f3a15388..376c5d7004 100644 --- a/src/main/resources/assets/gtceu/models/block/machine/electric_gear_box_16a.json +++ b/src/main/resources/assets/gtceu/models/block/machine/electric_gear_box_16a.json @@ -2,7 +2,7 @@ "credit": "Made with Blockbench", "parent": "block/block", "textures": { - "gearbox": "gtceu:block/gearbox", + "gearbox": "gtceu:block/machines/gearbox", "bottom": "gtceu:block/casings/voltage/lv/bottom", "top": "gtceu:block/casings/voltage/lv/top", "particle": "gtceu:block/casings/voltage/lv/side", @@ -141,4 +141,4 @@ "children": [10, 11, 12, 13] } ] -} \ No newline at end of file +} diff --git a/src/main/resources/assets/gtceu/models/block/machine/electric_gear_box_2a.json b/src/main/resources/assets/gtceu/models/block/machine/electric_gear_box_2a.json index 61f3a15388..376c5d7004 100644 --- a/src/main/resources/assets/gtceu/models/block/machine/electric_gear_box_2a.json +++ b/src/main/resources/assets/gtceu/models/block/machine/electric_gear_box_2a.json @@ -2,7 +2,7 @@ "credit": "Made with Blockbench", "parent": "block/block", "textures": { - "gearbox": "gtceu:block/gearbox", + "gearbox": "gtceu:block/machines/gearbox", "bottom": "gtceu:block/casings/voltage/lv/bottom", "top": "gtceu:block/casings/voltage/lv/top", "particle": "gtceu:block/casings/voltage/lv/side", @@ -141,4 +141,4 @@ "children": [10, 11, 12, 13] } ] -} \ No newline at end of file +} diff --git a/src/main/resources/assets/gtceu/models/block/machine/electric_gear_box_32a.json b/src/main/resources/assets/gtceu/models/block/machine/electric_gear_box_32a.json index 61f3a15388..376c5d7004 100644 --- a/src/main/resources/assets/gtceu/models/block/machine/electric_gear_box_32a.json +++ b/src/main/resources/assets/gtceu/models/block/machine/electric_gear_box_32a.json @@ -2,7 +2,7 @@ "credit": "Made with Blockbench", "parent": "block/block", "textures": { - "gearbox": "gtceu:block/gearbox", + "gearbox": "gtceu:block/machines/gearbox", "bottom": "gtceu:block/casings/voltage/lv/bottom", "top": "gtceu:block/casings/voltage/lv/top", "particle": "gtceu:block/casings/voltage/lv/side", @@ -141,4 +141,4 @@ "children": [10, 11, 12, 13] } ] -} \ No newline at end of file +} diff --git a/src/main/resources/assets/gtceu/models/block/machine/electric_gear_box_8a.json b/src/main/resources/assets/gtceu/models/block/machine/electric_gear_box_8a.json index 61f3a15388..376c5d7004 100644 --- a/src/main/resources/assets/gtceu/models/block/machine/electric_gear_box_8a.json +++ b/src/main/resources/assets/gtceu/models/block/machine/electric_gear_box_8a.json @@ -2,7 +2,7 @@ "credit": "Made with Blockbench", "parent": "block/block", "textures": { - "gearbox": "gtceu:block/gearbox", + "gearbox": "gtceu:block/machines/gearbox", "bottom": "gtceu:block/casings/voltage/lv/bottom", "top": "gtceu:block/casings/voltage/lv/top", "particle": "gtceu:block/casings/voltage/lv/side", @@ -141,4 +141,4 @@ "children": [10, 11, 12, 13] } ] -} \ No newline at end of file +} diff --git a/src/main/resources/assets/gtceu/models/block/machine/kinetic_electric_machine.json b/src/main/resources/assets/gtceu/models/block/machine/kinetic_electric_machine.json index 3cc33c85d4..6c10dcaa71 100644 --- a/src/main/resources/assets/gtceu/models/block/machine/kinetic_electric_machine.json +++ b/src/main/resources/assets/gtceu/models/block/machine/kinetic_electric_machine.json @@ -2,7 +2,7 @@ "credit": "Made with Blockbench", "parent": "block/block", "textures": { - "gearbox": "gtceu:block/gearbox", + "gearbox": "gtceu:block/machines/gearbox", "bottom": "gtceu:block/casings/voltage/lv/bottom", "top": "gtceu:block/casings/voltage/lv/top", "particle": "gtceu:block/casings/voltage/lv/side", @@ -135,4 +135,4 @@ "children": [10, 11, 12, 13] } ] -} \ No newline at end of file +} diff --git a/src/main/resources/assets/gtceu/models/block/machine/part/kinetic_input_box.json b/src/main/resources/assets/gtceu/models/block/machine/part/kinetic_input_box.json index 5f5e596559..0fb707de57 100644 --- a/src/main/resources/assets/gtceu/models/block/machine/part/kinetic_input_box.json +++ b/src/main/resources/assets/gtceu/models/block/machine/part/kinetic_input_box.json @@ -3,7 +3,7 @@ "parent": "block/block", "textures": { "overlay": "gtceu:block/overlay/machine/overlay_pipe_in", - "gearbox": "gtceu:block/gearbox", + "gearbox": "gtceu:block/machines/gearbox", "bottom": "gtceu:block/casings/voltage/lv/bottom", "top": "gtceu:block/casings/voltage/lv/top", "particle": "gtceu:block/casings/voltage/lv/side", @@ -152,4 +152,4 @@ "children": [11, 12, 13, 14] } ] -} \ No newline at end of file +} diff --git a/src/main/resources/assets/gtceu/models/block/machine/part/kinetic_output_box.json b/src/main/resources/assets/gtceu/models/block/machine/part/kinetic_output_box.json index 1a2d2843bb..ca0aafa82f 100644 --- a/src/main/resources/assets/gtceu/models/block/machine/part/kinetic_output_box.json +++ b/src/main/resources/assets/gtceu/models/block/machine/part/kinetic_output_box.json @@ -3,7 +3,7 @@ "parent": "block/block", "textures": { "overlay": "gtceu:block/overlay/machine/overlay_pipe_out", - "gearbox": "gtceu:block/gearbox", + "gearbox": "gtceu:block/machines/gearbox", "bottom": "gtceu:block/casings/voltage/lv/bottom", "top": "gtceu:block/casings/voltage/lv/top", "particle": "gtceu:block/casings/voltage/lv/side", @@ -152,4 +152,4 @@ "children": [11, 12, 13, 14] } ] -} \ No newline at end of file +} diff --git a/src/main/resources/assets/gtceu/sounds/computation.ogg b/src/main/resources/assets/gtceu/sounds/computation.ogg index b80c204601..f4a2ca0f02 100644 Binary files a/src/main/resources/assets/gtceu/sounds/computation.ogg and b/src/main/resources/assets/gtceu/sounds/computation.ogg differ diff --git a/src/main/resources/assets/gtceu/sounds/jet_engine.ogg.sfk b/src/main/resources/assets/gtceu/sounds/jet_engine.ogg.sfk deleted file mode 100644 index b5c63523ac..0000000000 Binary files a/src/main/resources/assets/gtceu/sounds/jet_engine.ogg.sfk and /dev/null differ diff --git a/src/main/resources/assets/gtceu/sounds/metal_pipe.ogg b/src/main/resources/assets/gtceu/sounds/metal_pipe.ogg index e218c149fa..58d4ce3597 100644 Binary files a/src/main/resources/assets/gtceu/sounds/metal_pipe.ogg and b/src/main/resources/assets/gtceu/sounds/metal_pipe.ogg differ diff --git a/src/main/resources/assets/gtceu/sounds/portal_closing.ogg b/src/main/resources/assets/gtceu/sounds/portal_closing.ogg index 71207f080d..6bee11d748 100644 Binary files a/src/main/resources/assets/gtceu/sounds/portal_closing.ogg and b/src/main/resources/assets/gtceu/sounds/portal_closing.ogg differ diff --git a/src/main/resources/assets/gtceu/sounds/portal_opening.ogg b/src/main/resources/assets/gtceu/sounds/portal_opening.ogg index 1df6eb2e07..77858b5fab 100644 Binary files a/src/main/resources/assets/gtceu/sounds/portal_opening.ogg and b/src/main/resources/assets/gtceu/sounds/portal_opening.ogg differ diff --git a/src/main/resources/assets/gtceu/textures/block/black_lamp.png b/src/main/resources/assets/gtceu/textures/block/black_lamp.png deleted file mode 100644 index 77f2d80c66..0000000000 Binary files a/src/main/resources/assets/gtceu/textures/block/black_lamp.png and /dev/null differ diff --git a/src/main/resources/assets/gtceu/textures/block/blue_lamp.png b/src/main/resources/assets/gtceu/textures/block/blue_lamp.png deleted file mode 100644 index be00897572..0000000000 Binary files a/src/main/resources/assets/gtceu/textures/block/blue_lamp.png and /dev/null differ diff --git a/src/main/resources/assets/gtceu/textures/block/brown_lamp.png b/src/main/resources/assets/gtceu/textures/block/brown_lamp.png deleted file mode 100644 index 35aae98fd5..0000000000 Binary files a/src/main/resources/assets/gtceu/textures/block/brown_lamp.png and /dev/null differ diff --git a/src/main/resources/assets/gtceu/textures/block/casings/transparent/laminated_glass_ctm.png b/src/main/resources/assets/gtceu/textures/block/casings/transparent/laminated_glass_ctm.png index 53e745d498..b3096f552e 100644 Binary files a/src/main/resources/assets/gtceu/textures/block/casings/transparent/laminated_glass_ctm.png and b/src/main/resources/assets/gtceu/textures/block/casings/transparent/laminated_glass_ctm.png differ diff --git a/src/main/resources/assets/gtceu/textures/block/cover/OVERLAY_SCREEN.png b/src/main/resources/assets/gtceu/textures/block/cover/overlay_screen.png similarity index 100% rename from src/main/resources/assets/gtceu/textures/block/cover/OVERLAY_SCREEN.png rename to src/main/resources/assets/gtceu/textures/block/cover/overlay_screen.png diff --git a/src/main/resources/assets/gtceu/textures/block/cyan_lamp.png b/src/main/resources/assets/gtceu/textures/block/cyan_lamp.png deleted file mode 100644 index 2f48f3b277..0000000000 Binary files a/src/main/resources/assets/gtceu/textures/block/cyan_lamp.png and /dev/null differ diff --git a/src/main/resources/assets/gtceu/textures/block/gray_lamp.png b/src/main/resources/assets/gtceu/textures/block/gray_lamp.png deleted file mode 100644 index 0efadbcbc8..0000000000 Binary files a/src/main/resources/assets/gtceu/textures/block/gray_lamp.png and /dev/null differ diff --git a/src/main/resources/assets/gtceu/textures/block/green_lamp.png b/src/main/resources/assets/gtceu/textures/block/green_lamp.png deleted file mode 100644 index 5c5ab75869..0000000000 Binary files a/src/main/resources/assets/gtceu/textures/block/green_lamp.png and /dev/null differ diff --git a/src/main/resources/assets/gtceu/textures/block/lamps/light_gray.png.mcmeta b/src/main/resources/assets/gtceu/textures/block/lamps/light_gray.png.mcmeta index 876352e371..d9f02a1f1e 100644 --- a/src/main/resources/assets/gtceu/textures/block/lamps/light_gray.png.mcmeta +++ b/src/main/resources/assets/gtceu/textures/block/lamps/light_gray.png.mcmeta @@ -1,5 +1,5 @@ { "ldlib": { - "connection": "gtceu:block/lamps/silver_ctm" + "connection": "gtceu:block/lamps/light_gray_ctm" } } diff --git a/src/main/resources/assets/gtceu/textures/block/lamps/light_gray_emissive.png.mcmeta b/src/main/resources/assets/gtceu/textures/block/lamps/light_gray_emissive.png.mcmeta index cbf07ef6d1..f198565e7c 100644 --- a/src/main/resources/assets/gtceu/textures/block/lamps/light_gray_emissive.png.mcmeta +++ b/src/main/resources/assets/gtceu/textures/block/lamps/light_gray_emissive.png.mcmeta @@ -1,6 +1,6 @@ { "ldlib": { - "connection": "gtceu:block/lamps/silver_ctm_emissive" + "connection": "gtceu:block/lamps/light_gray_ctm_emissive" }, "shimmer": { "bloom": true diff --git a/src/main/resources/assets/gtceu/textures/block/lamps/light_gray_off.png.mcmeta b/src/main/resources/assets/gtceu/textures/block/lamps/light_gray_off.png.mcmeta index c884f74ba1..74f9b7d0d2 100644 --- a/src/main/resources/assets/gtceu/textures/block/lamps/light_gray_off.png.mcmeta +++ b/src/main/resources/assets/gtceu/textures/block/lamps/light_gray_off.png.mcmeta @@ -1,5 +1,5 @@ { "ldlib": { - "connection": "gtceu:block/lamps/silver_off_ctm" + "connection": "gtceu:block/lamps/light_gray_off_ctm" } } diff --git a/src/main/resources/assets/gtceu/textures/block/light_blue_lamp.png b/src/main/resources/assets/gtceu/textures/block/light_blue_lamp.png deleted file mode 100644 index 5a225bed70..0000000000 Binary files a/src/main/resources/assets/gtceu/textures/block/light_blue_lamp.png and /dev/null differ diff --git a/src/main/resources/assets/gtceu/textures/block/light_gray_lamp.png b/src/main/resources/assets/gtceu/textures/block/light_gray_lamp.png deleted file mode 100644 index 7928825289..0000000000 Binary files a/src/main/resources/assets/gtceu/textures/block/light_gray_lamp.png and /dev/null differ diff --git a/src/main/resources/assets/gtceu/textures/block/lime_lamp.png b/src/main/resources/assets/gtceu/textures/block/lime_lamp.png deleted file mode 100644 index c3b986bb08..0000000000 Binary files a/src/main/resources/assets/gtceu/textures/block/lime_lamp.png and /dev/null differ diff --git a/src/main/resources/assets/gtceu/textures/block/machines/fermenter/overlay_front_active.png.mcmeta b/src/main/resources/assets/gtceu/textures/block/machines/fermenter/overlay_front_active.png.mcmeta deleted file mode 100644 index cfcef74876..0000000000 --- a/src/main/resources/assets/gtceu/textures/block/machines/fermenter/overlay_front_active.png.mcmeta +++ /dev/null @@ -1,10 +0,0 @@ -{ - "animation": { - "frametime": 16, - "frames": [ - 0, - 1, - 2 - ] - } -} \ No newline at end of file diff --git a/src/main/resources/assets/gtceu/textures/block/machines/fermenter/overlay_front_active_emissive.png.mcmeta b/src/main/resources/assets/gtceu/textures/block/machines/fermenter/overlay_front_active_emissive.png.mcmeta deleted file mode 100644 index cfcef74876..0000000000 --- a/src/main/resources/assets/gtceu/textures/block/machines/fermenter/overlay_front_active_emissive.png.mcmeta +++ /dev/null @@ -1,10 +0,0 @@ -{ - "animation": { - "frametime": 16, - "frames": [ - 0, - 1, - 2 - ] - } -} \ No newline at end of file diff --git a/src/main/resources/assets/gtceu/textures/block/gearbox.png b/src/main/resources/assets/gtceu/textures/block/machines/gearbox.png similarity index 100% rename from src/main/resources/assets/gtceu/textures/block/gearbox.png rename to src/main/resources/assets/gtceu/textures/block/machines/gearbox.png diff --git a/src/main/resources/assets/gtceu/textures/block/magenta_lamp.png b/src/main/resources/assets/gtceu/textures/block/magenta_lamp.png deleted file mode 100644 index da6872b464..0000000000 Binary files a/src/main/resources/assets/gtceu/textures/block/magenta_lamp.png and /dev/null differ diff --git a/src/main/resources/assets/gtceu/textures/block/industrial_tnt_side.png b/src/main/resources/assets/gtceu/textures/block/misc/industrial_tnt_side.png similarity index 100% rename from src/main/resources/assets/gtceu/textures/block/industrial_tnt_side.png rename to src/main/resources/assets/gtceu/textures/block/misc/industrial_tnt_side.png diff --git a/src/main/resources/assets/gtceu/textures/block/molybdenum_disilicide_coil_block.png b/src/main/resources/assets/gtceu/textures/block/molybdenum_disilicide_coil_block.png deleted file mode 100644 index db354b252f..0000000000 Binary files a/src/main/resources/assets/gtceu/textures/block/molybdenum_disilicide_coil_block.png and /dev/null differ diff --git a/src/main/resources/assets/gtceu/textures/block/molybdenum_disilicide_coil_block.png.mcmeta b/src/main/resources/assets/gtceu/textures/block/molybdenum_disilicide_coil_block.png.mcmeta deleted file mode 100644 index 652de39854..0000000000 --- a/src/main/resources/assets/gtceu/textures/block/molybdenum_disilicide_coil_block.png.mcmeta +++ /dev/null @@ -1,5 +0,0 @@ -{ - "ldlib": { - "connection": "gtceu:block/molybdenum_disilicide_coil_block_ctm" - } -} diff --git a/src/main/resources/assets/gtceu/textures/block/molybdenum_disilicide_coil_block_ctm.png b/src/main/resources/assets/gtceu/textures/block/molybdenum_disilicide_coil_block_ctm.png deleted file mode 100644 index fecdb133d7..0000000000 Binary files a/src/main/resources/assets/gtceu/textures/block/molybdenum_disilicide_coil_block_ctm.png and /dev/null differ diff --git a/src/main/resources/assets/gtceu/textures/block/multiblock/fluid_drilling_rig/overlay_front_active.png.mcmeta b/src/main/resources/assets/gtceu/textures/block/multiblock/fluid_drilling_rig/overlay_front_active.png.mcmeta deleted file mode 100644 index cfcef74876..0000000000 --- a/src/main/resources/assets/gtceu/textures/block/multiblock/fluid_drilling_rig/overlay_front_active.png.mcmeta +++ /dev/null @@ -1,10 +0,0 @@ -{ - "animation": { - "frametime": 16, - "frames": [ - 0, - 1, - 2 - ] - } -} \ No newline at end of file diff --git a/src/main/resources/assets/gtceu/textures/block/multiblock/fluid_drilling_rig/overlay_front_active_emissive.png.mcmeta b/src/main/resources/assets/gtceu/textures/block/multiblock/fluid_drilling_rig/overlay_front_active_emissive.png.mcmeta deleted file mode 100644 index cfcef74876..0000000000 --- a/src/main/resources/assets/gtceu/textures/block/multiblock/fluid_drilling_rig/overlay_front_active_emissive.png.mcmeta +++ /dev/null @@ -1,10 +0,0 @@ -{ - "animation": { - "frametime": 16, - "frames": [ - 0, - 1, - 2 - ] - } -} \ No newline at end of file diff --git a/src/main/resources/assets/gtceu/textures/block/multiblock/generator/large_steel_boiler/overlay_front_active.png.mcmeta b/src/main/resources/assets/gtceu/textures/block/multiblock/generator/large_steel_boiler/overlay_front_active.png.mcmeta deleted file mode 100644 index cfcef74876..0000000000 --- a/src/main/resources/assets/gtceu/textures/block/multiblock/generator/large_steel_boiler/overlay_front_active.png.mcmeta +++ /dev/null @@ -1,10 +0,0 @@ -{ - "animation": { - "frametime": 16, - "frames": [ - 0, - 1, - 2 - ] - } -} \ No newline at end of file diff --git a/src/main/resources/assets/gtceu/textures/block/multiblock/generator/large_steel_boiler/overlay_front_active_emissive.png.mcmeta b/src/main/resources/assets/gtceu/textures/block/multiblock/generator/large_steel_boiler/overlay_front_active_emissive.png.mcmeta deleted file mode 100644 index cfcef74876..0000000000 --- a/src/main/resources/assets/gtceu/textures/block/multiblock/generator/large_steel_boiler/overlay_front_active_emissive.png.mcmeta +++ /dev/null @@ -1,10 +0,0 @@ -{ - "animation": { - "frametime": 16, - "frames": [ - 0, - 1, - 2 - ] - } -} \ No newline at end of file diff --git a/src/main/resources/assets/gtceu/textures/block/multiblock/generator/large_titanium_boiler/overlay_front_active.png.mcmeta b/src/main/resources/assets/gtceu/textures/block/multiblock/generator/large_titanium_boiler/overlay_front_active.png.mcmeta deleted file mode 100644 index cfcef74876..0000000000 --- a/src/main/resources/assets/gtceu/textures/block/multiblock/generator/large_titanium_boiler/overlay_front_active.png.mcmeta +++ /dev/null @@ -1,10 +0,0 @@ -{ - "animation": { - "frametime": 16, - "frames": [ - 0, - 1, - 2 - ] - } -} \ No newline at end of file diff --git a/src/main/resources/assets/gtceu/textures/block/multiblock/generator/large_titanium_boiler/overlay_front_active_emissive.png.mcmeta b/src/main/resources/assets/gtceu/textures/block/multiblock/generator/large_titanium_boiler/overlay_front_active_emissive.png.mcmeta deleted file mode 100644 index cfcef74876..0000000000 --- a/src/main/resources/assets/gtceu/textures/block/multiblock/generator/large_titanium_boiler/overlay_front_active_emissive.png.mcmeta +++ /dev/null @@ -1,10 +0,0 @@ -{ - "animation": { - "frametime": 16, - "frames": [ - 0, - 1, - 2 - ] - } -} \ No newline at end of file diff --git a/src/main/resources/assets/gtceu/textures/block/multiblock/implosion_compressor/overlay_front_active.png.mcmeta b/src/main/resources/assets/gtceu/textures/block/multiblock/implosion_compressor/overlay_front_active.png.mcmeta deleted file mode 100644 index cfcef74876..0000000000 --- a/src/main/resources/assets/gtceu/textures/block/multiblock/implosion_compressor/overlay_front_active.png.mcmeta +++ /dev/null @@ -1,10 +0,0 @@ -{ - "animation": { - "frametime": 16, - "frames": [ - 0, - 1, - 2 - ] - } -} \ No newline at end of file diff --git a/src/main/resources/assets/gtceu/textures/block/multiblock/implosion_compressor/overlay_front_active_emissive.png.mcmeta b/src/main/resources/assets/gtceu/textures/block/multiblock/implosion_compressor/overlay_front_active_emissive.png.mcmeta deleted file mode 100644 index cfcef74876..0000000000 --- a/src/main/resources/assets/gtceu/textures/block/multiblock/implosion_compressor/overlay_front_active_emissive.png.mcmeta +++ /dev/null @@ -1,10 +0,0 @@ -{ - "animation": { - "frametime": 16, - "frames": [ - 0, - 1, - 2 - ] - } -} \ No newline at end of file diff --git a/src/main/resources/assets/gtceu/textures/block/multiblock/multi_furnace/overlay_front_active.png.mcmeta b/src/main/resources/assets/gtceu/textures/block/multiblock/multi_furnace/overlay_front_active.png.mcmeta deleted file mode 100644 index cfcef74876..0000000000 --- a/src/main/resources/assets/gtceu/textures/block/multiblock/multi_furnace/overlay_front_active.png.mcmeta +++ /dev/null @@ -1,10 +0,0 @@ -{ - "animation": { - "frametime": 16, - "frames": [ - 0, - 1, - 2 - ] - } -} \ No newline at end of file diff --git a/src/main/resources/assets/gtceu/textures/block/multiblock/multi_furnace/overlay_front_active_emissive.png.mcmeta b/src/main/resources/assets/gtceu/textures/block/multiblock/multi_furnace/overlay_front_active_emissive.png.mcmeta deleted file mode 100644 index cfcef74876..0000000000 --- a/src/main/resources/assets/gtceu/textures/block/multiblock/multi_furnace/overlay_front_active_emissive.png.mcmeta +++ /dev/null @@ -1,10 +0,0 @@ -{ - "animation": { - "frametime": 16, - "frames": [ - 0, - 1, - 2 - ] - } -} \ No newline at end of file diff --git a/src/main/resources/assets/gtceu/textures/block/multiblock/pyrolyse_oven/overlay_front_active.png.mcmeta b/src/main/resources/assets/gtceu/textures/block/multiblock/pyrolyse_oven/overlay_front_active.png.mcmeta deleted file mode 100644 index cfcef74876..0000000000 --- a/src/main/resources/assets/gtceu/textures/block/multiblock/pyrolyse_oven/overlay_front_active.png.mcmeta +++ /dev/null @@ -1,10 +0,0 @@ -{ - "animation": { - "frametime": 16, - "frames": [ - 0, - 1, - 2 - ] - } -} \ No newline at end of file diff --git a/src/main/resources/assets/gtceu/textures/block/multiblock/pyrolyse_oven/overlay_front_active_emissive.png.mcmeta b/src/main/resources/assets/gtceu/textures/block/multiblock/pyrolyse_oven/overlay_front_active_emissive.png.mcmeta deleted file mode 100644 index cfcef74876..0000000000 --- a/src/main/resources/assets/gtceu/textures/block/multiblock/pyrolyse_oven/overlay_front_active_emissive.png.mcmeta +++ /dev/null @@ -1,10 +0,0 @@ -{ - "animation": { - "frametime": 16, - "frames": [ - 0, - 1, - 2 - ] - } -} \ No newline at end of file diff --git a/src/main/resources/assets/gtceu/textures/block/orange_lamp.png b/src/main/resources/assets/gtceu/textures/block/orange_lamp.png deleted file mode 100644 index 9ccca32548..0000000000 Binary files a/src/main/resources/assets/gtceu/textures/block/orange_lamp.png and /dev/null differ diff --git a/src/main/resources/assets/gtceu/textures/block/pink_lamp.png b/src/main/resources/assets/gtceu/textures/block/pink_lamp.png deleted file mode 100644 index a898516106..0000000000 Binary files a/src/main/resources/assets/gtceu/textures/block/pink_lamp.png and /dev/null differ diff --git a/src/main/resources/assets/gtceu/textures/block/purple_lamp.png b/src/main/resources/assets/gtceu/textures/block/purple_lamp.png deleted file mode 100644 index 9ffa35898f..0000000000 Binary files a/src/main/resources/assets/gtceu/textures/block/purple_lamp.png and /dev/null differ diff --git a/src/main/resources/assets/gtceu/textures/block/red_lamp.png b/src/main/resources/assets/gtceu/textures/block/red_lamp.png deleted file mode 100644 index 823082ff5b..0000000000 Binary files a/src/main/resources/assets/gtceu/textures/block/red_lamp.png and /dev/null differ diff --git a/src/main/resources/assets/gtceu/textures/block/rubber_hanging_sign.png b/src/main/resources/assets/gtceu/textures/block/rubber_hanging_sign.png deleted file mode 100644 index 02e77aabd0..0000000000 Binary files a/src/main/resources/assets/gtceu/textures/block/rubber_hanging_sign.png and /dev/null differ diff --git a/src/main/resources/assets/gtceu/textures/block/rubber_sign.png b/src/main/resources/assets/gtceu/textures/block/rubber_sign.png deleted file mode 100644 index 189063160b..0000000000 Binary files a/src/main/resources/assets/gtceu/textures/block/rubber_sign.png and /dev/null differ diff --git a/src/main/resources/assets/gtceu/textures/block/rubber_wall_hanging_sign.png b/src/main/resources/assets/gtceu/textures/block/rubber_wall_hanging_sign.png deleted file mode 100644 index 02e77aabd0..0000000000 Binary files a/src/main/resources/assets/gtceu/textures/block/rubber_wall_hanging_sign.png and /dev/null differ diff --git a/src/main/resources/assets/gtceu/textures/block/rubber_wall_sign.png b/src/main/resources/assets/gtceu/textures/block/rubber_wall_sign.png deleted file mode 100644 index 189063160b..0000000000 Binary files a/src/main/resources/assets/gtceu/textures/block/rubber_wall_sign.png and /dev/null differ diff --git a/src/main/resources/assets/gtceu/textures/block/storage/tank/metal_0.png b/src/main/resources/assets/gtceu/textures/block/storage/tank/metal_0.png deleted file mode 100644 index f4c8b519fc..0000000000 Binary files a/src/main/resources/assets/gtceu/textures/block/storage/tank/metal_0.png and /dev/null differ diff --git a/src/main/resources/assets/gtceu/textures/block/storage/tank/metal_1.png b/src/main/resources/assets/gtceu/textures/block/storage/tank/metal_1.png deleted file mode 100644 index f5150dccb7..0000000000 Binary files a/src/main/resources/assets/gtceu/textures/block/storage/tank/metal_1.png and /dev/null differ diff --git a/src/main/resources/assets/gtceu/textures/block/storage/tank/metal_10.png b/src/main/resources/assets/gtceu/textures/block/storage/tank/metal_10.png deleted file mode 100644 index 5e63bfb09d..0000000000 Binary files a/src/main/resources/assets/gtceu/textures/block/storage/tank/metal_10.png and /dev/null differ diff --git a/src/main/resources/assets/gtceu/textures/block/storage/tank/metal_11.png b/src/main/resources/assets/gtceu/textures/block/storage/tank/metal_11.png deleted file mode 100644 index 139df6448d..0000000000 Binary files a/src/main/resources/assets/gtceu/textures/block/storage/tank/metal_11.png and /dev/null differ diff --git a/src/main/resources/assets/gtceu/textures/block/storage/tank/metal_12.png b/src/main/resources/assets/gtceu/textures/block/storage/tank/metal_12.png deleted file mode 100644 index 64951eb2db..0000000000 Binary files a/src/main/resources/assets/gtceu/textures/block/storage/tank/metal_12.png and /dev/null differ diff --git a/src/main/resources/assets/gtceu/textures/block/storage/tank/metal_13.png b/src/main/resources/assets/gtceu/textures/block/storage/tank/metal_13.png deleted file mode 100644 index c73b52eac2..0000000000 Binary files a/src/main/resources/assets/gtceu/textures/block/storage/tank/metal_13.png and /dev/null differ diff --git a/src/main/resources/assets/gtceu/textures/block/storage/tank/metal_14.png b/src/main/resources/assets/gtceu/textures/block/storage/tank/metal_14.png deleted file mode 100644 index 514b96f753..0000000000 Binary files a/src/main/resources/assets/gtceu/textures/block/storage/tank/metal_14.png and /dev/null differ diff --git a/src/main/resources/assets/gtceu/textures/block/storage/tank/metal_15.png b/src/main/resources/assets/gtceu/textures/block/storage/tank/metal_15.png deleted file mode 100644 index c5bc02e9ed..0000000000 Binary files a/src/main/resources/assets/gtceu/textures/block/storage/tank/metal_15.png and /dev/null differ diff --git a/src/main/resources/assets/gtceu/textures/block/storage/tank/metal_2.png b/src/main/resources/assets/gtceu/textures/block/storage/tank/metal_2.png deleted file mode 100644 index 9f36c7668c..0000000000 Binary files a/src/main/resources/assets/gtceu/textures/block/storage/tank/metal_2.png and /dev/null differ diff --git a/src/main/resources/assets/gtceu/textures/block/storage/tank/metal_3.png b/src/main/resources/assets/gtceu/textures/block/storage/tank/metal_3.png deleted file mode 100644 index c3340157af..0000000000 Binary files a/src/main/resources/assets/gtceu/textures/block/storage/tank/metal_3.png and /dev/null differ diff --git a/src/main/resources/assets/gtceu/textures/block/storage/tank/metal_4.png b/src/main/resources/assets/gtceu/textures/block/storage/tank/metal_4.png deleted file mode 100644 index 29dfc67657..0000000000 Binary files a/src/main/resources/assets/gtceu/textures/block/storage/tank/metal_4.png and /dev/null differ diff --git a/src/main/resources/assets/gtceu/textures/block/storage/tank/metal_5.png b/src/main/resources/assets/gtceu/textures/block/storage/tank/metal_5.png deleted file mode 100644 index 4b1fbcf333..0000000000 Binary files a/src/main/resources/assets/gtceu/textures/block/storage/tank/metal_5.png and /dev/null differ diff --git a/src/main/resources/assets/gtceu/textures/block/storage/tank/metal_6.png b/src/main/resources/assets/gtceu/textures/block/storage/tank/metal_6.png deleted file mode 100644 index 2938d67347..0000000000 Binary files a/src/main/resources/assets/gtceu/textures/block/storage/tank/metal_6.png and /dev/null differ diff --git a/src/main/resources/assets/gtceu/textures/block/storage/tank/metal_7.png b/src/main/resources/assets/gtceu/textures/block/storage/tank/metal_7.png deleted file mode 100644 index 5451f4883a..0000000000 Binary files a/src/main/resources/assets/gtceu/textures/block/storage/tank/metal_7.png and /dev/null differ diff --git a/src/main/resources/assets/gtceu/textures/block/storage/tank/metal_8.png b/src/main/resources/assets/gtceu/textures/block/storage/tank/metal_8.png deleted file mode 100644 index 01d77b072c..0000000000 Binary files a/src/main/resources/assets/gtceu/textures/block/storage/tank/metal_8.png and /dev/null differ diff --git a/src/main/resources/assets/gtceu/textures/block/storage/tank/metal_9.png b/src/main/resources/assets/gtceu/textures/block/storage/tank/metal_9.png deleted file mode 100644 index 1202099cb3..0000000000 Binary files a/src/main/resources/assets/gtceu/textures/block/storage/tank/metal_9.png and /dev/null differ diff --git a/src/main/resources/assets/gtceu/textures/block/storage/tank/metal_background.png b/src/main/resources/assets/gtceu/textures/block/storage/tank/metal_background.png deleted file mode 100644 index b3781b1041..0000000000 Binary files a/src/main/resources/assets/gtceu/textures/block/storage/tank/metal_background.png and /dev/null differ diff --git a/src/main/resources/assets/gtceu/textures/block/storage/tank/metal_border.png b/src/main/resources/assets/gtceu/textures/block/storage/tank/metal_border.png deleted file mode 100644 index 23d6c10087..0000000000 Binary files a/src/main/resources/assets/gtceu/textures/block/storage/tank/metal_border.png and /dev/null differ diff --git a/src/main/resources/assets/gtceu/textures/block/storage/tank/wooden_0.png b/src/main/resources/assets/gtceu/textures/block/storage/tank/wooden_0.png deleted file mode 100644 index f4c8b519fc..0000000000 Binary files a/src/main/resources/assets/gtceu/textures/block/storage/tank/wooden_0.png and /dev/null differ diff --git a/src/main/resources/assets/gtceu/textures/block/storage/tank/wooden_1.png b/src/main/resources/assets/gtceu/textures/block/storage/tank/wooden_1.png deleted file mode 100644 index 24a957f0b5..0000000000 Binary files a/src/main/resources/assets/gtceu/textures/block/storage/tank/wooden_1.png and /dev/null differ diff --git a/src/main/resources/assets/gtceu/textures/block/storage/tank/wooden_10.png b/src/main/resources/assets/gtceu/textures/block/storage/tank/wooden_10.png deleted file mode 100644 index d849cb2941..0000000000 Binary files a/src/main/resources/assets/gtceu/textures/block/storage/tank/wooden_10.png and /dev/null differ diff --git a/src/main/resources/assets/gtceu/textures/block/storage/tank/wooden_11.png b/src/main/resources/assets/gtceu/textures/block/storage/tank/wooden_11.png deleted file mode 100644 index db74d322da..0000000000 Binary files a/src/main/resources/assets/gtceu/textures/block/storage/tank/wooden_11.png and /dev/null differ diff --git a/src/main/resources/assets/gtceu/textures/block/storage/tank/wooden_12.png b/src/main/resources/assets/gtceu/textures/block/storage/tank/wooden_12.png deleted file mode 100644 index 0ad5616dd2..0000000000 Binary files a/src/main/resources/assets/gtceu/textures/block/storage/tank/wooden_12.png and /dev/null differ diff --git a/src/main/resources/assets/gtceu/textures/block/storage/tank/wooden_13.png b/src/main/resources/assets/gtceu/textures/block/storage/tank/wooden_13.png deleted file mode 100644 index 79d2cc1634..0000000000 Binary files a/src/main/resources/assets/gtceu/textures/block/storage/tank/wooden_13.png and /dev/null differ diff --git a/src/main/resources/assets/gtceu/textures/block/storage/tank/wooden_14.png b/src/main/resources/assets/gtceu/textures/block/storage/tank/wooden_14.png deleted file mode 100644 index c12d1e9e8d..0000000000 Binary files a/src/main/resources/assets/gtceu/textures/block/storage/tank/wooden_14.png and /dev/null differ diff --git a/src/main/resources/assets/gtceu/textures/block/storage/tank/wooden_15.png b/src/main/resources/assets/gtceu/textures/block/storage/tank/wooden_15.png deleted file mode 100644 index f642a694f1..0000000000 Binary files a/src/main/resources/assets/gtceu/textures/block/storage/tank/wooden_15.png and /dev/null differ diff --git a/src/main/resources/assets/gtceu/textures/block/storage/tank/wooden_2.png b/src/main/resources/assets/gtceu/textures/block/storage/tank/wooden_2.png deleted file mode 100644 index 2c95591fa1..0000000000 Binary files a/src/main/resources/assets/gtceu/textures/block/storage/tank/wooden_2.png and /dev/null differ diff --git a/src/main/resources/assets/gtceu/textures/block/storage/tank/wooden_3.png b/src/main/resources/assets/gtceu/textures/block/storage/tank/wooden_3.png deleted file mode 100644 index ad4f3ed29f..0000000000 Binary files a/src/main/resources/assets/gtceu/textures/block/storage/tank/wooden_3.png and /dev/null differ diff --git a/src/main/resources/assets/gtceu/textures/block/storage/tank/wooden_4.png b/src/main/resources/assets/gtceu/textures/block/storage/tank/wooden_4.png deleted file mode 100644 index 97a61a94a4..0000000000 Binary files a/src/main/resources/assets/gtceu/textures/block/storage/tank/wooden_4.png and /dev/null differ diff --git a/src/main/resources/assets/gtceu/textures/block/storage/tank/wooden_5.png b/src/main/resources/assets/gtceu/textures/block/storage/tank/wooden_5.png deleted file mode 100644 index 8aabbb4ed0..0000000000 Binary files a/src/main/resources/assets/gtceu/textures/block/storage/tank/wooden_5.png and /dev/null differ diff --git a/src/main/resources/assets/gtceu/textures/block/storage/tank/wooden_6.png b/src/main/resources/assets/gtceu/textures/block/storage/tank/wooden_6.png deleted file mode 100644 index 9435521e54..0000000000 Binary files a/src/main/resources/assets/gtceu/textures/block/storage/tank/wooden_6.png and /dev/null differ diff --git a/src/main/resources/assets/gtceu/textures/block/storage/tank/wooden_7.png b/src/main/resources/assets/gtceu/textures/block/storage/tank/wooden_7.png deleted file mode 100644 index 9946a5dbbb..0000000000 Binary files a/src/main/resources/assets/gtceu/textures/block/storage/tank/wooden_7.png and /dev/null differ diff --git a/src/main/resources/assets/gtceu/textures/block/storage/tank/wooden_8.png b/src/main/resources/assets/gtceu/textures/block/storage/tank/wooden_8.png deleted file mode 100644 index 3a1909badc..0000000000 Binary files a/src/main/resources/assets/gtceu/textures/block/storage/tank/wooden_8.png and /dev/null differ diff --git a/src/main/resources/assets/gtceu/textures/block/storage/tank/wooden_9.png b/src/main/resources/assets/gtceu/textures/block/storage/tank/wooden_9.png deleted file mode 100644 index 92d03e654f..0000000000 Binary files a/src/main/resources/assets/gtceu/textures/block/storage/tank/wooden_9.png and /dev/null differ diff --git a/src/main/resources/assets/gtceu/textures/block/storage/tank/wooden_background.png b/src/main/resources/assets/gtceu/textures/block/storage/tank/wooden_background.png deleted file mode 100644 index b3781b1041..0000000000 Binary files a/src/main/resources/assets/gtceu/textures/block/storage/tank/wooden_background.png and /dev/null differ diff --git a/src/main/resources/assets/gtceu/textures/block/storage/tank/wooden_border.png b/src/main/resources/assets/gtceu/textures/block/storage/tank/wooden_border.png deleted file mode 100644 index e8a8cae131..0000000000 Binary files a/src/main/resources/assets/gtceu/textures/block/storage/tank/wooden_border.png and /dev/null differ diff --git a/src/main/resources/assets/gtceu/textures/block/stripped_rubber_wood.png b/src/main/resources/assets/gtceu/textures/block/stripped_rubber_wood.png index a4c0d2afb7..814313935a 100644 Binary files a/src/main/resources/assets/gtceu/textures/block/stripped_rubber_wood.png and b/src/main/resources/assets/gtceu/textures/block/stripped_rubber_wood.png differ diff --git a/src/main/resources/assets/gtceu/textures/block/treated_wood_hanging_sign.png b/src/main/resources/assets/gtceu/textures/block/treated_wood_hanging_sign.png deleted file mode 100644 index f8085eba53..0000000000 Binary files a/src/main/resources/assets/gtceu/textures/block/treated_wood_hanging_sign.png and /dev/null differ diff --git a/src/main/resources/assets/gtceu/textures/entity/boat/rubber.png b/src/main/resources/assets/gtceu/textures/entity/boat/rubber.png new file mode 100644 index 0000000000..97e9a65ef9 Binary files /dev/null and b/src/main/resources/assets/gtceu/textures/entity/boat/rubber.png differ diff --git a/src/main/resources/assets/gtceu/textures/entity/boat/treated_wood.png b/src/main/resources/assets/gtceu/textures/entity/boat/treated_wood.png new file mode 100644 index 0000000000..b599ef2a56 Binary files /dev/null and b/src/main/resources/assets/gtceu/textures/entity/boat/treated_wood.png differ diff --git a/src/main/resources/assets/gtceu/textures/entity/chest_boat/rubber.png b/src/main/resources/assets/gtceu/textures/entity/chest_boat/rubber.png new file mode 100644 index 0000000000..443a3f0f94 Binary files /dev/null and b/src/main/resources/assets/gtceu/textures/entity/chest_boat/rubber.png differ diff --git a/src/main/resources/assets/gtceu/textures/entity/chest_boat/treated_wood.png b/src/main/resources/assets/gtceu/textures/entity/chest_boat/treated_wood.png new file mode 100644 index 0000000000..f3a00cba8f Binary files /dev/null and b/src/main/resources/assets/gtceu/textures/entity/chest_boat/treated_wood.png differ diff --git a/src/main/resources/assets/gtceu/textures/entity/signs/hanging/treated_wood.png b/src/main/resources/assets/gtceu/textures/entity/signs/hanging/treated_wood.png index d1b019d3a5..3549aa963a 100644 Binary files a/src/main/resources/assets/gtceu/textures/entity/signs/hanging/treated_wood.png and b/src/main/resources/assets/gtceu/textures/entity/signs/hanging/treated_wood.png differ diff --git a/src/main/resources/assets/gtceu/textures/entity/signs/treated_wood.png b/src/main/resources/assets/gtceu/textures/entity/signs/treated_wood.png index e178b70d4c..0d2ae60204 100644 Binary files a/src/main/resources/assets/gtceu/textures/entity/signs/treated_wood.png and b/src/main/resources/assets/gtceu/textures/entity/signs/treated_wood.png differ diff --git a/src/main/resources/assets/gtceu/textures/gui/hanging_signs/rubber.png b/src/main/resources/assets/gtceu/textures/gui/hanging_signs/rubber.png new file mode 100644 index 0000000000..ef4b9f33b0 Binary files /dev/null and b/src/main/resources/assets/gtceu/textures/gui/hanging_signs/rubber.png differ diff --git a/src/main/resources/assets/gtceu/textures/gui/hanging_signs/treated_wood.png b/src/main/resources/assets/gtceu/textures/gui/hanging_signs/treated_wood.png new file mode 100644 index 0000000000..0f24893123 Binary files /dev/null and b/src/main/resources/assets/gtceu/textures/gui/hanging_signs/treated_wood.png differ diff --git a/src/main/resources/assets/gtceu/textures/gui/rubber.png b/src/main/resources/assets/gtceu/textures/gui/rubber.png deleted file mode 100644 index 7cc979de2a..0000000000 Binary files a/src/main/resources/assets/gtceu/textures/gui/rubber.png and /dev/null differ diff --git a/src/main/resources/assets/gtceu/textures/hanging_signs/rubber.png b/src/main/resources/assets/gtceu/textures/hanging_signs/rubber.png deleted file mode 100644 index 7cc979de2a..0000000000 Binary files a/src/main/resources/assets/gtceu/textures/hanging_signs/rubber.png and /dev/null differ diff --git a/src/main/resources/assets/gtceu/textures/item/bioware.mainframe.png.mcmeta b/src/main/resources/assets/gtceu/textures/item/bioware.mainframe.png.mcmeta deleted file mode 100644 index 8a6e059cfa..0000000000 --- a/src/main/resources/assets/gtceu/textures/item/bioware.mainframe.png.mcmeta +++ /dev/null @@ -1,9 +0,0 @@ -{ - "animation": { - "interpolate": false, - "frametime": 2, - "frames": [ - 0, 1, 2, 3, 4, 3, 2, 1 - ] - } -} \ No newline at end of file diff --git a/src/main/resources/assets/gtceu/textures/item/data_stick.png.mcmeta b/src/main/resources/assets/gtceu/textures/item/data_stick.png.mcmeta index 5f132698f8..592ac6b260 100644 --- a/src/main/resources/assets/gtceu/textures/item/data_stick.png.mcmeta +++ b/src/main/resources/assets/gtceu/textures/item/data_stick.png.mcmeta @@ -10,7 +10,8 @@ { "index": 5, "time": 2 }, { "index": 6, "time": 2 }, { "index": 7, "time": 2 }, - { "index": 8, "time": 2 } + { "index": 8, "time": 2 }, + { "index": 9, "time": 2 } ] } -} \ No newline at end of file +} diff --git a/src/main/resources/assets/gtceu/textures/item/rubber_boat.png b/src/main/resources/assets/gtceu/textures/item/rubber_boat.png new file mode 100644 index 0000000000..d2998da345 Binary files /dev/null and b/src/main/resources/assets/gtceu/textures/item/rubber_boat.png differ diff --git a/src/main/resources/assets/gtceu/textures/item/rubber_chest_boat.png b/src/main/resources/assets/gtceu/textures/item/rubber_chest_boat.png new file mode 100644 index 0000000000..bfceb351ba Binary files /dev/null and b/src/main/resources/assets/gtceu/textures/item/rubber_chest_boat.png differ diff --git a/src/main/resources/assets/gtceu/textures/item/treated_wood_boat.png b/src/main/resources/assets/gtceu/textures/item/treated_wood_boat.png new file mode 100644 index 0000000000..94bc2aeef7 Binary files /dev/null and b/src/main/resources/assets/gtceu/textures/item/treated_wood_boat.png differ diff --git a/src/main/resources/assets/gtceu/textures/item/treated_wood_chest_boat.png b/src/main/resources/assets/gtceu/textures/item/treated_wood_chest_boat.png new file mode 100644 index 0000000000..8ca8ead5ee Binary files /dev/null and b/src/main/resources/assets/gtceu/textures/item/treated_wood_chest_boat.png differ diff --git a/src/main/resources/assets/gtceu/textures/item/wetware_processor_mainframe.png b/src/main/resources/assets/gtceu/textures/item/wetware_processor_mainframe.png index fc00c09388..463ad2c6b8 100644 Binary files a/src/main/resources/assets/gtceu/textures/item/wetware_processor_mainframe.png and b/src/main/resources/assets/gtceu/textures/item/wetware_processor_mainframe.png differ diff --git a/src/main/resources/assets/gtceu/textures/item/wetware_processor_mainframe.png.mcmeta b/src/main/resources/assets/gtceu/textures/item/wetware_processor_mainframe.png.mcmeta index e945b0c407..fb20356f73 100644 --- a/src/main/resources/assets/gtceu/textures/item/wetware_processor_mainframe.png.mcmeta +++ b/src/main/resources/assets/gtceu/textures/item/wetware_processor_mainframe.png.mcmeta @@ -5,33 +5,33 @@ "frames": [ { "index": 1, "time": 40 }, 0, - 3, - { "index": 5, "time": 60 }, - 7, - 8, + 2, + { "index": 4, "time": 60 }, + 6, 7, - 3, - { "index": 4, "time": 50 }, + 6, + 2, + { "index": 3, "time": 50 }, 0, - { "index": 6, "time": 30 }, - 7, - 8, + { "index": 5, "time": 30 }, + 6, 7, + 6, { "index": 1, "time": 40 }, 0, - 3, - { "index": 5, "time": 60 }, - 7, - 8, + 2, + { "index": 4, "time": 60 }, + 6, 7, - 3, - { "index": 4, "time": 50 }, + 6, + 2, + { "index": 3, "time": 50 }, 0, - { "index": 6, "time": 30 }, + { "index": 5, "time": 30 }, { "index": 0, "time": 120 }, - 7, - 8, - 7 + 6, + 7, + 6 ] } -} \ No newline at end of file +} diff --git a/src/main/templates/META-INF/neoforge.mods.toml b/src/main/templates/META-INF/neoforge.mods.toml index 29ea121f0a..358953559c 100644 --- a/src/main/templates/META-INF/neoforge.mods.toml +++ b/src/main/templates/META-INF/neoforge.mods.toml @@ -12,6 +12,7 @@ description = "${mod_description}" logoFile = "icon.png" displayURL = "${mod_url}" credits = "GregoriusT, Mr_Touchyou, Zerrens for making GregTech and textures, the GT5u authors and maintainers for providing the original code, and the community." +enumExtensions="META-INF/enum_extensions.json" [[mixins]] config="${mod_id}.mixins.json"