diff --git a/dependencies.gradle b/dependencies.gradle index df6646bf5..f0ce11ad8 100644 --- a/dependencies.gradle +++ b/dependencies.gradle @@ -3,11 +3,17 @@ dependencies { modRuntimeOnly("curse.maven:worldedit-225608:4586218") //Worldedit bc i'm lazy ty modRuntimeOnly("curse.maven:effortless-building-302113:4979089") //EB bc i'm lazy ty + modRuntimeOnly("curse.maven:tmrv-1194921:6856065") //EB bc i'm lazy ty //Botania // implementation(forge.botania) + //Tinkers + modImplementation(forge.tconstruct) + modImplementation(forge.mantle) + + // LDLib modImplementation(forge.ldlib) diff --git a/gradle/forge.versions.toml b/gradle/forge.versions.toml index 5355f1a32..58a3d7fc4 100644 --- a/gradle/forge.versions.toml +++ b/gradle/forge.versions.toml @@ -6,7 +6,7 @@ configuration = "3.1.0-forge" mixinExtras = "0.2.0" jei = "15.20.0.105" -emi = "1.1.13+1.20.1" +emi = "1.1.22+1.20.1" ae2 = "15.4.7-cosmolite.12" expandedAE = "1.2.0-cosmolite.6" guideme = "20.1.11" @@ -51,6 +51,8 @@ modernFix = "6025611" botania = "6366547" ae2wtlib = "5217955" clothConfig = "5729105" +tconstruct = "1.20.1-3.9.2.37" +mantle = "1.20.1-1.11.44" embers = "6953702" malum = "1.20.1-1.6.7.1" @@ -58,6 +60,8 @@ lodestone = "1.20.1-1.6.4.1.256" [libraries] +tconstruct = { module = "slimeknights.tconstruct:TConstruct", version.ref = "tconstruct" } +mantle = { module = "slimeknights.mantle:Mantle", version.ref = "mantle" } ldlib = { module = "com.lowdragmc.ldlib:ldlib-forge-1.20.1", version.ref = "ldlib" } gtceu = { module = "com.gregtechceu.gtceu:gtceu-1.20.1", version.ref = "gtceu" } diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 18d569832..851f1428a 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,11 +1,11 @@ [versions] minecraft = "1.20.1" -forge = "47.3.0" -minecraftForge = "1.20.1-47.3.22" +forge = "47.4.0" +minecraftForge = "1.20.1-47.4.0" parchment = "2023.09.03" shadow = "8.3.5" spotless = "7.0.2" -modDevGradle = "2.0.96" # TODO: Update to stable MDG when https://github.com/neoforged/ModDevGradle/issues/227 is fixed +modDevGradle = "2.0.96" lombok = "8.11" jetbrains-annotations = "26.0.1" mixin = "0.8.7" diff --git a/gradle/scripts/repositories.gradle b/gradle/scripts/repositories.gradle index 00ac2cdc6..18b515197 100644 --- a/gradle/scripts/repositories.gradle +++ b/gradle/scripts/repositories.gradle @@ -98,6 +98,10 @@ repositories { includeGroup "com.klikli_dev" } } + maven { + name 'DVS1 Maven FS' + url 'https://dvs1.progwml6.com/files/maven' + } maven { name = 'GeckoLib' url 'https://dl.cloudsmith.io/public/geckolib3/geckolib/maven/' diff --git a/src/generated/resources/assets/cosmiccore/blockstates/ember_tester.json b/src/generated/resources/assets/cosmiccore/blockstates/dawn_forge.json similarity index 58% rename from src/generated/resources/assets/cosmiccore/blockstates/ember_tester.json rename to src/generated/resources/assets/cosmiccore/blockstates/dawn_forge.json index 1cd46d933..b3bad3e78 100644 --- a/src/generated/resources/assets/cosmiccore/blockstates/ember_tester.json +++ b/src/generated/resources/assets/cosmiccore/blockstates/dawn_forge.json @@ -2,74 +2,74 @@ "variants": { "facing=east,upwards_facing=east": { "gtceu:z": 270, - "model": "cosmiccore:block/machine/ember_tester", + "model": "cosmiccore:block/machine/dawn_forge", "y": 90 }, "facing=east,upwards_facing=north": { - "model": "cosmiccore:block/machine/ember_tester", + "model": "cosmiccore:block/machine/dawn_forge", "y": 90 }, "facing=east,upwards_facing=south": { "gtceu:z": 180, - "model": "cosmiccore:block/machine/ember_tester", + "model": "cosmiccore:block/machine/dawn_forge", "y": 90 }, "facing=east,upwards_facing=west": { "gtceu:z": 90, - "model": "cosmiccore:block/machine/ember_tester", + "model": "cosmiccore:block/machine/dawn_forge", "y": 90 }, "facing=north,upwards_facing=east": { "gtceu:z": 270, - "model": "cosmiccore:block/machine/ember_tester" + "model": "cosmiccore:block/machine/dawn_forge" }, "facing=north,upwards_facing=north": { - "model": "cosmiccore:block/machine/ember_tester" + "model": "cosmiccore:block/machine/dawn_forge" }, "facing=north,upwards_facing=south": { "gtceu:z": 180, - "model": "cosmiccore:block/machine/ember_tester" + "model": "cosmiccore:block/machine/dawn_forge" }, "facing=north,upwards_facing=west": { "gtceu:z": 90, - "model": "cosmiccore:block/machine/ember_tester" + "model": "cosmiccore:block/machine/dawn_forge" }, "facing=south,upwards_facing=east": { "gtceu:z": 270, - "model": "cosmiccore:block/machine/ember_tester", + "model": "cosmiccore:block/machine/dawn_forge", "y": 180 }, "facing=south,upwards_facing=north": { - "model": "cosmiccore:block/machine/ember_tester", + "model": "cosmiccore:block/machine/dawn_forge", "y": 180 }, "facing=south,upwards_facing=south": { "gtceu:z": 180, - "model": "cosmiccore:block/machine/ember_tester", + "model": "cosmiccore:block/machine/dawn_forge", "y": 180 }, "facing=south,upwards_facing=west": { "gtceu:z": 90, - "model": "cosmiccore:block/machine/ember_tester", + "model": "cosmiccore:block/machine/dawn_forge", "y": 180 }, "facing=west,upwards_facing=east": { "gtceu:z": 270, - "model": "cosmiccore:block/machine/ember_tester", + "model": "cosmiccore:block/machine/dawn_forge", "y": 270 }, "facing=west,upwards_facing=north": { - "model": "cosmiccore:block/machine/ember_tester", + "model": "cosmiccore:block/machine/dawn_forge", "y": 270 }, "facing=west,upwards_facing=south": { "gtceu:z": 180, - "model": "cosmiccore:block/machine/ember_tester", + "model": "cosmiccore:block/machine/dawn_forge", "y": 270 }, "facing=west,upwards_facing=west": { "gtceu:z": 90, - "model": "cosmiccore:block/machine/ember_tester", + "model": "cosmiccore:block/machine/dawn_forge", "y": 270 } } diff --git a/src/generated/resources/assets/cosmiccore/blockstates/ev_ember_input_hatch.json b/src/generated/resources/assets/cosmiccore/blockstates/ev_ember_input_hatch.json new file mode 100644 index 000000000..0229d55f2 --- /dev/null +++ b/src/generated/resources/assets/cosmiccore/blockstates/ev_ember_input_hatch.json @@ -0,0 +1,28 @@ +{ + "variants": { + "facing=down": { + "model": "cosmiccore:block/machine/ev_ember_input_hatch", + "x": 90 + }, + "facing=east": { + "model": "cosmiccore:block/machine/ev_ember_input_hatch", + "y": 90 + }, + "facing=north": { + "model": "cosmiccore:block/machine/ev_ember_input_hatch" + }, + "facing=south": { + "model": "cosmiccore:block/machine/ev_ember_input_hatch", + "y": 180 + }, + "facing=up": { + "gtceu:z": 180, + "model": "cosmiccore:block/machine/ev_ember_input_hatch", + "x": 270 + }, + "facing=west": { + "model": "cosmiccore:block/machine/ev_ember_input_hatch", + "y": 270 + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/cosmiccore/blockstates/ev_ember_output_hatch.json b/src/generated/resources/assets/cosmiccore/blockstates/ev_ember_output_hatch.json new file mode 100644 index 000000000..88360b27b --- /dev/null +++ b/src/generated/resources/assets/cosmiccore/blockstates/ev_ember_output_hatch.json @@ -0,0 +1,28 @@ +{ + "variants": { + "facing=down": { + "model": "cosmiccore:block/machine/ev_ember_output_hatch", + "x": 90 + }, + "facing=east": { + "model": "cosmiccore:block/machine/ev_ember_output_hatch", + "y": 90 + }, + "facing=north": { + "model": "cosmiccore:block/machine/ev_ember_output_hatch" + }, + "facing=south": { + "model": "cosmiccore:block/machine/ev_ember_output_hatch", + "y": 180 + }, + "facing=up": { + "gtceu:z": 180, + "model": "cosmiccore:block/machine/ev_ember_output_hatch", + "x": 270 + }, + "facing=west": { + "model": "cosmiccore:block/machine/ev_ember_output_hatch", + "y": 270 + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/cosmiccore/blockstates/hv_ember_input_hatch.json b/src/generated/resources/assets/cosmiccore/blockstates/hv_ember_input_hatch.json new file mode 100644 index 000000000..c01b72ab6 --- /dev/null +++ b/src/generated/resources/assets/cosmiccore/blockstates/hv_ember_input_hatch.json @@ -0,0 +1,28 @@ +{ + "variants": { + "facing=down": { + "model": "cosmiccore:block/machine/hv_ember_input_hatch", + "x": 90 + }, + "facing=east": { + "model": "cosmiccore:block/machine/hv_ember_input_hatch", + "y": 90 + }, + "facing=north": { + "model": "cosmiccore:block/machine/hv_ember_input_hatch" + }, + "facing=south": { + "model": "cosmiccore:block/machine/hv_ember_input_hatch", + "y": 180 + }, + "facing=up": { + "gtceu:z": 180, + "model": "cosmiccore:block/machine/hv_ember_input_hatch", + "x": 270 + }, + "facing=west": { + "model": "cosmiccore:block/machine/hv_ember_input_hatch", + "y": 270 + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/cosmiccore/blockstates/hv_ember_output_hatch.json b/src/generated/resources/assets/cosmiccore/blockstates/hv_ember_output_hatch.json new file mode 100644 index 000000000..76660b22a --- /dev/null +++ b/src/generated/resources/assets/cosmiccore/blockstates/hv_ember_output_hatch.json @@ -0,0 +1,28 @@ +{ + "variants": { + "facing=down": { + "model": "cosmiccore:block/machine/hv_ember_output_hatch", + "x": 90 + }, + "facing=east": { + "model": "cosmiccore:block/machine/hv_ember_output_hatch", + "y": 90 + }, + "facing=north": { + "model": "cosmiccore:block/machine/hv_ember_output_hatch" + }, + "facing=south": { + "model": "cosmiccore:block/machine/hv_ember_output_hatch", + "y": 180 + }, + "facing=up": { + "gtceu:z": 180, + "model": "cosmiccore:block/machine/hv_ember_output_hatch", + "x": 270 + }, + "facing=west": { + "model": "cosmiccore:block/machine/hv_ember_output_hatch", + "y": 270 + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/cosmiccore/blockstates/light_dawnstone_casing.json b/src/generated/resources/assets/cosmiccore/blockstates/light_dawnstone_casing.json new file mode 100644 index 000000000..d70ef361c --- /dev/null +++ b/src/generated/resources/assets/cosmiccore/blockstates/light_dawnstone_casing.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "cosmiccore:block/light_dawnstone_casing" + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/cosmiccore/blockstates/lv_ember_input_hatch.json b/src/generated/resources/assets/cosmiccore/blockstates/lv_ember_input_hatch.json new file mode 100644 index 000000000..ed94438d1 --- /dev/null +++ b/src/generated/resources/assets/cosmiccore/blockstates/lv_ember_input_hatch.json @@ -0,0 +1,28 @@ +{ + "variants": { + "facing=down": { + "model": "cosmiccore:block/machine/lv_ember_input_hatch", + "x": 90 + }, + "facing=east": { + "model": "cosmiccore:block/machine/lv_ember_input_hatch", + "y": 90 + }, + "facing=north": { + "model": "cosmiccore:block/machine/lv_ember_input_hatch" + }, + "facing=south": { + "model": "cosmiccore:block/machine/lv_ember_input_hatch", + "y": 180 + }, + "facing=up": { + "gtceu:z": 180, + "model": "cosmiccore:block/machine/lv_ember_input_hatch", + "x": 270 + }, + "facing=west": { + "model": "cosmiccore:block/machine/lv_ember_input_hatch", + "y": 270 + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/cosmiccore/blockstates/lv_ember_output_hatch.json b/src/generated/resources/assets/cosmiccore/blockstates/lv_ember_output_hatch.json new file mode 100644 index 000000000..e8fec1901 --- /dev/null +++ b/src/generated/resources/assets/cosmiccore/blockstates/lv_ember_output_hatch.json @@ -0,0 +1,28 @@ +{ + "variants": { + "facing=down": { + "model": "cosmiccore:block/machine/lv_ember_output_hatch", + "x": 90 + }, + "facing=east": { + "model": "cosmiccore:block/machine/lv_ember_output_hatch", + "y": 90 + }, + "facing=north": { + "model": "cosmiccore:block/machine/lv_ember_output_hatch" + }, + "facing=south": { + "model": "cosmiccore:block/machine/lv_ember_output_hatch", + "y": 180 + }, + "facing=up": { + "gtceu:z": 180, + "model": "cosmiccore:block/machine/lv_ember_output_hatch", + "x": 270 + }, + "facing=west": { + "model": "cosmiccore:block/machine/lv_ember_output_hatch", + "y": 270 + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/cosmiccore/blockstates/mv_ember_input_hatch.json b/src/generated/resources/assets/cosmiccore/blockstates/mv_ember_input_hatch.json new file mode 100644 index 000000000..fadc477a7 --- /dev/null +++ b/src/generated/resources/assets/cosmiccore/blockstates/mv_ember_input_hatch.json @@ -0,0 +1,28 @@ +{ + "variants": { + "facing=down": { + "model": "cosmiccore:block/machine/mv_ember_input_hatch", + "x": 90 + }, + "facing=east": { + "model": "cosmiccore:block/machine/mv_ember_input_hatch", + "y": 90 + }, + "facing=north": { + "model": "cosmiccore:block/machine/mv_ember_input_hatch" + }, + "facing=south": { + "model": "cosmiccore:block/machine/mv_ember_input_hatch", + "y": 180 + }, + "facing=up": { + "gtceu:z": 180, + "model": "cosmiccore:block/machine/mv_ember_input_hatch", + "x": 270 + }, + "facing=west": { + "model": "cosmiccore:block/machine/mv_ember_input_hatch", + "y": 270 + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/cosmiccore/blockstates/mv_ember_output_hatch.json b/src/generated/resources/assets/cosmiccore/blockstates/mv_ember_output_hatch.json new file mode 100644 index 000000000..472fb34a0 --- /dev/null +++ b/src/generated/resources/assets/cosmiccore/blockstates/mv_ember_output_hatch.json @@ -0,0 +1,28 @@ +{ + "variants": { + "facing=down": { + "model": "cosmiccore:block/machine/mv_ember_output_hatch", + "x": 90 + }, + "facing=east": { + "model": "cosmiccore:block/machine/mv_ember_output_hatch", + "y": 90 + }, + "facing=north": { + "model": "cosmiccore:block/machine/mv_ember_output_hatch" + }, + "facing=south": { + "model": "cosmiccore:block/machine/mv_ember_output_hatch", + "y": 180 + }, + "facing=up": { + "gtceu:z": 180, + "model": "cosmiccore:block/machine/mv_ember_output_hatch", + "x": 270 + }, + "facing=west": { + "model": "cosmiccore:block/machine/mv_ember_output_hatch", + "y": 270 + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/cosmiccore/blockstates/reinforced_dawnstone_casing.json b/src/generated/resources/assets/cosmiccore/blockstates/reinforced_dawnstone_casing.json new file mode 100644 index 000000000..108ececb7 --- /dev/null +++ b/src/generated/resources/assets/cosmiccore/blockstates/reinforced_dawnstone_casing.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "cosmiccore:block/reinforced_dawnstone_casing" + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/cosmiccore/lang/en_ud.json b/src/generated/resources/assets/cosmiccore/lang/en_ud.json index 56751d5b7..11446dd34 100644 --- a/src/generated/resources/assets/cosmiccore/lang/en_ud.json +++ b/src/generated/resources/assets/cosmiccore/lang/en_ud.json @@ -20,13 +20,15 @@ "block.cosmiccore.cyclozine_chemically_repelling_casing": "buısɐƆ buıןןǝdǝᴚ ʎןןɐɔıɯǝɥƆ ǝuızoןɔʎƆ", "block.cosmiccore.cyclozine_chemically_repelling_pipe": "ǝdıԀ buıןןǝdǝᴚ ʎןןɐɔıɯǝɥƆ ǝuızoןɔʎƆ", "block.cosmiccore.cyclozine_high_rigidity_casing": "buısɐƆ ʎʇıpıbıᴚ ɥbıH ǝuızoןɔʎƆ", + "block.cosmiccore.dawn_forge": "ǝbɹoℲ uʍɐᗡ", "block.cosmiccore.dimensional_energy_capacitor": "uoıʇɐʇsqnS ɹǝʍoԀ", "block.cosmiccore.dimensional_energy_interface": "ǝɔɐɟɹǝʇuI ןɐuoısuǝɯıᗡ uoıʇɐʇsqnS ɹǝʍoԀ", "block.cosmiccore.drone_maintenance_interface": "ǝɔɐɟɹǝʇuI ǝɔuɐuǝʇuıɐW ǝuoɹᗡ", "block.cosmiccore.drone_station": "uoıʇɐʇS ǝuoɹᗡ", "block.cosmiccore.drygmy_grove": "ǝʌoɹ⅁ ʎɯbʎɹᗡ", "block.cosmiccore.dyson_solar_cell": "ןןǝƆ ɹɐןoS uosʎᗡ", - "block.cosmiccore.ember_tester": "ɹǝʇsǝ⟘ ɹǝqɯƎ", + "block.cosmiccore.ev_ember_input_hatch": "ɥɔʇɐH ʇnduI ɹǝqɯƎ ΛƎϛ§", + "block.cosmiccore.ev_ember_output_hatch": "ɥɔʇɐH ʇndʇnO ɹǝqɯƎ ΛƎϛ§", "block.cosmiccore.ev_wireless_charger": "ɹǝbɹɐɥƆ ssǝןǝɹıM ΛƎ", "block.cosmiccore.extreme_combustion_engine_cc": "ɔƆ ǝuıbuƎ uoıʇsnqɯoƆ ǝɯǝɹʇxƎ", "block.cosmiccore.fulgorinth_prime_casing": "buısɐƆ ǝɯıɹԀ ɥʇuıɹobןnℲ", @@ -48,6 +50,8 @@ "block.cosmiccore.hp_steam_wiremill": "ןןıɯǝɹıM ɯɐǝʇS ǝɹnssǝɹԀ ɥbıH", "block.cosmiccore.hpca_indicator": "ɹoʇɐɔıpuI ⱯƆԀH", "block.cosmiccore.huge_sterilization_hatch": "ɥɔʇɐH uoıʇɐzןıɹǝʇS", + "block.cosmiccore.hv_ember_input_hatch": "ɥɔʇɐH ʇnduI ɹǝqɯƎ ΛH9§", + "block.cosmiccore.hv_ember_output_hatch": "ɥɔʇɐH ʇndʇnO ɹǝqɯƎ ΛH9§", "block.cosmiccore.hv_wireless_charger": "ɹǝbɹɐɥƆ ssǝןǝɹıM ΛH", "block.cosmiccore.industrial_chemical_vat": "ʇɐΛ ןɐɔıɯǝɥƆ ןɐıɹʇsnpuI", "block.cosmiccore.industrial_primitive_blast_furnace": "ǝɔɐuɹnℲ ʇsɐןᗺ ǝʌıʇıɯıɹԀ ןɐıɹʇsnpuI", @@ -68,6 +72,7 @@ "block.cosmiccore.large_combustion_engine_cc": "ɔƆ ǝuıbuƎ uoıʇsnqɯoƆ ǝbɹɐꞀ", "block.cosmiccore.large_laminator": "ɹoʇɐuıɯɐꞀ ǝbɹɐꞀƖ§", "block.cosmiccore.large_spooling_machine": "ǝuıɥɔɐW buıןoodS ǝbɹɐꞀ", + "block.cosmiccore.light_dawnstone_casing": "buısɐƆ ǝuoʇsuʍɐᗡ ʇɥbıꞀ", "block.cosmiccore.living_igniclad_coil_block": "ʞɔoןᗺ ןıoƆ pɐןɔıubI buıʌıꞀ", "block.cosmiccore.lp_steam_bender": "⟘SIXƎ ⟘ON Oᗡ I", "block.cosmiccore.lp_steam_wiremill": "⟘SIXƎ ⟘ON Oᗡ I", @@ -88,10 +93,14 @@ "block.cosmiccore.luv_wireless_charger": "ɹǝbɹɐɥƆ ssǝןǝɹıM ΛnꞀ", "block.cosmiccore.luv_wireless_energy_dynamo": "oɯɐuʎᗡ ʎbɹǝuƎ ssǝןǝɹıM ΛnꞀp§", "block.cosmiccore.luv_wireless_energy_hatch": "ɥɔʇɐH ʎbɹǝuƎ ssǝןǝɹıM ΛnꞀp§", + "block.cosmiccore.lv_ember_input_hatch": "ɥɔʇɐH ʇnduI ɹǝqɯƎ ΛꞀㄥ§", + "block.cosmiccore.lv_ember_output_hatch": "ɥɔʇɐH ʇndʇnO ɹǝqɯƎ ΛꞀㄥ§", "block.cosmiccore.machine_casing_gearbox_naquadria": "ɐıɹpɐnbɐN xoqɹɐǝ⅁ buısɐƆ ǝuıɥɔɐW", "block.cosmiccore.machine_casing_gearbox_pthanterum": "ɯnɹǝʇuɐɥʇԀ xoqɹɐǝ⅁ buısɐƆ ǝuıɥɔɐW", "block.cosmiccore.mantle_bore": "ǝɹoᗺ ǝןʇuɐW", "block.cosmiccore.multi_purpose_interstellar_grade_casing": "buısɐƆ ǝpɐɹ⅁ ɹɐןןǝʇsɹǝʇuI ǝsodɹnԀ ıʇןnW", + "block.cosmiccore.mv_ember_input_hatch": "ɥɔʇɐH ʇnduI ɹǝqɯƎ ΛWq§", + "block.cosmiccore.mv_ember_output_hatch": "ɥɔʇɐH ʇndʇnO ɹǝqɯƎ ΛWq§", "block.cosmiccore.naquadah_pressure_resistant_casing": "buısɐƆ ʇuɐʇsısǝᴚ ǝɹnssǝɹԀ ɥɐpɐnbɐN", "block.cosmiccore.naquadric_superalloy_coil_block": "ʞɔoןᗺ ןıoƆ ʎoןןɐɹǝdnS ɔıɹpɐnbɐN", "block.cosmiccore.naquahine_pressure_reactor": "ɹoʇɔɐǝᴚ ǝɹnssǝɹԀ ǝuıɥɐnbɐN", @@ -122,6 +131,7 @@ "block.cosmiccore.pthanterum_wave_breakers": "sɹǝʞɐǝɹᗺ ǝʌɐM ɯnɹǝʇuɐɥʇԀ", "block.cosmiccore.radioactive_filter_casing": "buısɐƆ ɹǝʇןıℲ ǝʌıʇɔɐoıpɐᴚ", "block.cosmiccore.reflective_starmetal_casing": "buısɐƆ ןɐʇǝɯɹɐʇS ǝʌıʇɔǝןɟǝᴚ", + "block.cosmiccore.reinforced_dawnstone_casing": "buısɐƆ ǝuoʇsuʍɐᗡ pǝɔɹoɟuıǝᴚ", "block.cosmiccore.reinforced_naquadria_casing": "buısɐƆ ɐıɹpɐnbɐN pǝɔɹoɟuıǝᴚ", "block.cosmiccore.reinforced_trinavine_coil_block": "ʞɔoןᗺ ןıoƆ ǝuıʌɐuıɹ⟘ pǝɔɹoɟuıǝᴚ", "block.cosmiccore.resonant_virtue_meld_coil_block": "ʞɔoןᗺ ןıoƆ pןǝW ǝnʇɹıΛ ʇuɐuosǝᴚ", @@ -535,6 +545,7 @@ "item.cosmiccore.ethera": "]ɐɹǝɥʇƎ[ - ןıxǝΛ", "item.cosmiccore.etheric_spirit": "ʇıɹıdS ɔıɹǝɥʇƎ", "item.cosmiccore.ev_radio_module": "ǝןnpoW oıpɐᴚ ΛƎ", + "item.cosmiccore.ev_wildfire_core": "ǝɹoƆ ǝɹıɟpןıM ΛƎ", "item.cosmiccore.fermium_rad_charges": "ǝbɹɐɥƆ uoıʇɐıpɐᴚ ɯnıɯɹǝℲ", "item.cosmiccore.fireclay_ball": "ןןɐᗺ ʎɐןɔǝɹıℲ", "item.cosmiccore.flawed_resonant_wafer": "ɹǝɟɐM ɔıuoɯɹɐH pǝʍɐןℲ", @@ -551,15 +562,20 @@ "item.cosmiccore.harmonically_tuned_printed_circuit_board": "pɹɐoᗺ ʇınɔɹıƆ pǝʇuıɹԀ pǝun⟘ ʎןןɐɔıuoɯɹɐH", "item.cosmiccore.heme_ring": "buıᴚ ǝɯǝH", "item.cosmiccore.hv_radio_module": "ǝןnpoW oıpɐᴚ ΛH", + "item.cosmiccore.hv_wildfire_core": "ǝɹoƆ ǝɹıɟpןıM ΛH", "item.cosmiccore.industrial_drone": "ǝuoɹᗡ ןɐıɹʇsnpuI", "item.cosmiccore.inert_fungal_spores": "sǝɹodS ןɐbunℲ ʇɹǝuI", "item.cosmiccore.infinite_spray_can": "uɐƆ ʎɐɹdS ǝʇıuıɟuIן§", "item.cosmiccore.iv_radio_module": "ǝןnpoW oıpɐᴚ ΛI", + "item.cosmiccore.iv_wildfire_core": "ǝɹoƆ ǝɹıɟpןıM ΛI", "item.cosmiccore.large_shard_of_perpetuity": "ʎʇınʇǝdɹǝԀ ɟo pɹɐɥS ǝbɹɐꞀ", "item.cosmiccore.linked_terminal": "ןɐuıɯɹǝ⟘ pǝʞuıꞀ", "item.cosmiccore.luv_radio_module": "ǝןnpoW oıpɐᴚ ΛnꞀ", + "item.cosmiccore.luv_wildfire_core": "ǝɹoƆ ǝɹıɟpןıM ΛnꞀ", + "item.cosmiccore.lv_wildfire_core": "ǝɹoƆ ǝɹıɟpןıM ΛꞀ", "item.cosmiccore.malice_spirit": "ʇıɹıdS ǝɔıןɐW", "item.cosmiccore.masked_crystal_chiplet_package": "ǝbɐʞɔɐԀ ʇǝןdıɥƆ ןɐʇsʎɹƆ pǝʞsɐW", + "item.cosmiccore.mv_wildfire_core": "ǝɹoƆ ǝɹıɟpןıM ΛW", "item.cosmiccore.mystrix": "]xıɹʇsʎW[ - uouıɯnꞀ", "item.cosmiccore.nano_scythe": "ǝɥʇʎɔS ouɐN", "item.cosmiccore.neuro_processing_assembly": "pɹɐoᗺ ʎןqɯǝssⱯ buıssǝɔoɹdoɹnǝN", @@ -637,6 +653,11 @@ "item.cosmiccore.sanguine_warptech_helmet": "ʇǝɯןǝH ɥɔǝ⟘dɹɐM ǝuınbuɐS", "item.cosmiccore.sanguine_warptech_leggings": "sbuıbbǝꞀ ɥɔǝ⟘dɹɐM ǝuınbuɐS", "item.cosmiccore.saturated_sculk_hemocytoblast": "ʇsɐןqoʇʎɔoɯǝH ʞןnɔS pǝʇɐɹnʇɐS", + "item.cosmiccore.screwdriver": "ɹǝʌıɹpʍǝɹɔS", + "item.cosmiccore.screwdriver.description": "¡uɹn⟘ puɐ ʇsıʍ⟘", + "item.cosmiccore.screwdriver_head": "pɐǝH ɹǝʌıɹpʍǝɹɔS", + "item.cosmiccore.screwdriver_head_cast": "ʇsɐƆ pɐǝH ɹǝʌıɹpʍǝɹɔS", + "item.cosmiccore.screwdriver_head_sand_cast": "ʇsɐƆ puɐS pɐǝH ɹǝʌıɹpʍǝɹɔS", "item.cosmiccore.sculk_fibroblast": "ʇsɐןqoɹqıℲ ʞןnɔS", "item.cosmiccore.sculk_myofibroblast": "ʇsɐןqoɹqıɟoʎW ʞןnɔS", "item.cosmiccore.self_aware_processing_assembly": "ʎןqɯǝssⱯ ɹossǝɔoɹԀ ǝɹɐʍⱯ ɟןǝS", @@ -691,12 +712,20 @@ "item.cosmiccore.wafer_pragmiso": "]sɔısʎɥԀ[ ɹǝɟɐM osıɯbɐɹԀ", "item.cosmiccore.waxed_leather": "ɹǝɥʇɐǝꞀ pǝxɐM", "item.cosmiccore.wicked_essence": "ǝɔuǝssƎ pǝʞɔıM", + "item.cosmiccore.wire_cutter": "sɹǝʇʇnƆ ǝɹıM", + "item.cosmiccore.wire_cutter.description": "˙sɹǝʇʇnɔ ǝsǝɥʇ ɥʇıʍ ʎןuɐǝןɔ sǝɹıʍ dıuS", "item.cosmiccore.wired_petri_dish": "ɥsıᗡ ıɹʇǝԀ pǝɹıM", "item.cosmiccore.wireless_pda": "ⱯᗡԀ ɐʇɐᗡ ssǝןǝɹıM", "item.cosmiccore.wrathful_spirit": "ʇıɹıdS ןnɟɥʇɐɹM", + "item.cosmiccore.wrench": "ɥɔuǝɹM", + "item.cosmiccore.wrench.description": "¡pןɹoM ǝɥʇ ǝʇɐʇoᴚ", + "item.cosmiccore.wrench_head": "pɐǝH ɥɔuǝɹM", + "item.cosmiccore.wrench_head_cast": "ʇsɐƆ pɐǝH ɥɔuǝɹM", + "item.cosmiccore.wrench_head_sand_cast": "ʇsɐƆ puɐS pɐǝH ɥɔuǝɹM", "item.cosmiccore.zpm_radio_module": "ǝןnpoW oıpɐᴚ WԀZ", + "item.cosmiccore.zpm_wildfire_core": "ǝɹoƆ ǝɹıɟpןıM WԀZ", "item.gtceu.tool.luv_meld_tool": "ןooʇıʇןnW pןǝW %s", - "itemGroup.cosmiccore.creative_tab": "ǝɹoƆ ɔıɯsoƆ", + "itemGroup.cosmiccore.creative_tab_tinker_tools": "ʇɐdɯoƆ sɹǝʞuı⟘ ǝɹoƆ ɔıɯsoƆ", "material.cosmiccore.causal_fabric": "ɔıɹqɐℲ ןɐsnɐƆ", "material.cosmiccore.chronon": "uouoɹɥƆ", "material.cosmiccore.cosmocite": "ǝʇıɔoɯsoƆ", diff --git a/src/generated/resources/assets/cosmiccore/lang/en_us.json b/src/generated/resources/assets/cosmiccore/lang/en_us.json index 4d02975b7..4037aa373 100644 --- a/src/generated/resources/assets/cosmiccore/lang/en_us.json +++ b/src/generated/resources/assets/cosmiccore/lang/en_us.json @@ -20,13 +20,15 @@ "block.cosmiccore.cyclozine_chemically_repelling_casing": "Cyclozine Chemically Repelling Casing", "block.cosmiccore.cyclozine_chemically_repelling_pipe": "Cyclozine Chemically Repelling Pipe", "block.cosmiccore.cyclozine_high_rigidity_casing": "Cyclozine High Rigidity Casing", + "block.cosmiccore.dawn_forge": "Dawn Forge", "block.cosmiccore.dimensional_energy_capacitor": "Power Substation", "block.cosmiccore.dimensional_energy_interface": "Power Substation Dimensional Interface", "block.cosmiccore.drone_maintenance_interface": "Drone Maintenance Interface", "block.cosmiccore.drone_station": "Drone Station", "block.cosmiccore.drygmy_grove": "Drygmy Grove", "block.cosmiccore.dyson_solar_cell": "Dyson Solar Cell", - "block.cosmiccore.ember_tester": "Ember Tester", + "block.cosmiccore.ev_ember_input_hatch": "§5EV Ember Input Hatch", + "block.cosmiccore.ev_ember_output_hatch": "§5EV Ember Output Hatch", "block.cosmiccore.ev_wireless_charger": "EV Wireless Charger", "block.cosmiccore.extreme_combustion_engine_cc": "Extreme Combustion Engine Cc", "block.cosmiccore.fulgorinth_prime_casing": "Fulgorinth Prime Casing", @@ -48,6 +50,8 @@ "block.cosmiccore.hp_steam_wiremill": "High Pressure Steam Wiremill", "block.cosmiccore.hpca_indicator": "HPCA Indicator", "block.cosmiccore.huge_sterilization_hatch": "Sterilzation Hatch", + "block.cosmiccore.hv_ember_input_hatch": "§6HV Ember Input Hatch", + "block.cosmiccore.hv_ember_output_hatch": "§6HV Ember Output Hatch", "block.cosmiccore.hv_wireless_charger": "HV Wireless Charger", "block.cosmiccore.industrial_chemical_vat": "Industrial Chemical Vat", "block.cosmiccore.industrial_primitive_blast_furnace": "Industrial Primitive Blast Furnace", @@ -68,6 +72,7 @@ "block.cosmiccore.large_combustion_engine_cc": "Large Combustion Engine Cc", "block.cosmiccore.large_laminator": "§1Large Laminator", "block.cosmiccore.large_spooling_machine": "Large Spooling Machine", + "block.cosmiccore.light_dawnstone_casing": "Light Dawnstone Casing", "block.cosmiccore.living_igniclad_coil_block": "Living Igniclad Coil Block", "block.cosmiccore.lp_steam_bender": "I DO NOT EXIST", "block.cosmiccore.lp_steam_wiremill": "I DO NOT EXIST", @@ -88,10 +93,14 @@ "block.cosmiccore.luv_wireless_charger": "LuV Wireless Charger", "block.cosmiccore.luv_wireless_energy_dynamo": "§dLuV Wireless Energy Dynamo", "block.cosmiccore.luv_wireless_energy_hatch": "§dLuV Wireless Energy Hatch", + "block.cosmiccore.lv_ember_input_hatch": "§7LV Ember Input Hatch", + "block.cosmiccore.lv_ember_output_hatch": "§7LV Ember Output Hatch", "block.cosmiccore.machine_casing_gearbox_naquadria": "Machine Casing Gearbox Naquadria", "block.cosmiccore.machine_casing_gearbox_pthanterum": "Machine Casing Gearbox Pthanterum", "block.cosmiccore.mantle_bore": "Mantle Bore", "block.cosmiccore.multi_purpose_interstellar_grade_casing": "Multi Purpose Interstellar Grade Casing", + "block.cosmiccore.mv_ember_input_hatch": "§bMV Ember Input Hatch", + "block.cosmiccore.mv_ember_output_hatch": "§bMV Ember Output Hatch", "block.cosmiccore.naquadah_pressure_resistant_casing": "Naquadah Pressure Resistant Casing", "block.cosmiccore.naquadric_superalloy_coil_block": "Naquadric Superalloy Coil Block", "block.cosmiccore.naquahine_pressure_reactor": "Naquahine Pressure Reactor", @@ -122,6 +131,7 @@ "block.cosmiccore.pthanterum_wave_breakers": "Pthanterum Wave Breakers", "block.cosmiccore.radioactive_filter_casing": "Radioactive Filter Casing", "block.cosmiccore.reflective_starmetal_casing": "Reflective Starmetal Casing", + "block.cosmiccore.reinforced_dawnstone_casing": "Reinforced Dawnstone Casing", "block.cosmiccore.reinforced_naquadria_casing": "Reinforced Naquadria Casing", "block.cosmiccore.reinforced_trinavine_coil_block": "Reinforced Trinavine Coil Block", "block.cosmiccore.resonant_virtue_meld_coil_block": "Resonant Virtue Meld Coil Block", @@ -535,6 +545,7 @@ "item.cosmiccore.ethera": "Vexil - [Ethera]", "item.cosmiccore.etheric_spirit": "Etheric Spirit", "item.cosmiccore.ev_radio_module": "EV Radio Module", + "item.cosmiccore.ev_wildfire_core": "EV Wildfire Core", "item.cosmiccore.fermium_rad_charges": "Fermium Radiation Charge", "item.cosmiccore.fireclay_ball": "Fireclay Ball", "item.cosmiccore.flawed_resonant_wafer": "Flawed Harmonic Wafer", @@ -551,15 +562,20 @@ "item.cosmiccore.harmonically_tuned_printed_circuit_board": "Harmonically Tuned Printed Circuit Board", "item.cosmiccore.heme_ring": "Heme Ring", "item.cosmiccore.hv_radio_module": "HV Radio Module", + "item.cosmiccore.hv_wildfire_core": "HV Wildfire Core", "item.cosmiccore.industrial_drone": "Industrial Drone", "item.cosmiccore.inert_fungal_spores": "Inert Fungal Spores", "item.cosmiccore.infinite_spray_can": "§lInfinite Spray Can", "item.cosmiccore.iv_radio_module": "IV Radio Module", + "item.cosmiccore.iv_wildfire_core": "IV Wildfire Core", "item.cosmiccore.large_shard_of_perpetuity": "Large Shard of Perpetuity", "item.cosmiccore.linked_terminal": "Linked Terminal", "item.cosmiccore.luv_radio_module": "LuV Radio Module", + "item.cosmiccore.luv_wildfire_core": "LuV Wildfire Core", + "item.cosmiccore.lv_wildfire_core": "LV Wildfire Core", "item.cosmiccore.malice_spirit": "Malice Spirit", "item.cosmiccore.masked_crystal_chiplet_package": "Masked Crystal Chiplet Package", + "item.cosmiccore.mv_wildfire_core": "MV Wildfire Core", "item.cosmiccore.mystrix": "Luminon - [Mystrix]", "item.cosmiccore.nano_scythe": "Nano Scythe", "item.cosmiccore.neuro_processing_assembly": "Neuroprocessing Assembly Board", @@ -637,6 +653,11 @@ "item.cosmiccore.sanguine_warptech_helmet": "Sanguine WarpTech Helmet", "item.cosmiccore.sanguine_warptech_leggings": "Sanguine WarpTech Leggings", "item.cosmiccore.saturated_sculk_hemocytoblast": "Saturated Sculk Hemocytoblast", + "item.cosmiccore.screwdriver": "Screwdriver", + "item.cosmiccore.screwdriver.description": "Twist and Turn!", + "item.cosmiccore.screwdriver_head": "Screwdriver Head", + "item.cosmiccore.screwdriver_head_cast": "Screwdriver Head Cast", + "item.cosmiccore.screwdriver_head_sand_cast": "Screwdriver Head Sand Cast", "item.cosmiccore.sculk_fibroblast": "Sculk Fibroblast", "item.cosmiccore.sculk_myofibroblast": "Sculk Myofibroblast", "item.cosmiccore.self_aware_processing_assembly": "Self Aware Processor Assembly", @@ -691,12 +712,20 @@ "item.cosmiccore.wafer_pragmiso": "Pragmiso Wafer [Physics]", "item.cosmiccore.waxed_leather": "Waxed Leather", "item.cosmiccore.wicked_essence": "Wicked Essence", + "item.cosmiccore.wire_cutter": "Wire Cutters", + "item.cosmiccore.wire_cutter.description": "Snip wires cleanly with these cutters.", "item.cosmiccore.wired_petri_dish": "Wired Petri Dish", "item.cosmiccore.wireless_pda": "Wireless Data PDA", "item.cosmiccore.wrathful_spirit": "Wrathful Spirit", + "item.cosmiccore.wrench": "Wrench", + "item.cosmiccore.wrench.description": "Rotate the World!", + "item.cosmiccore.wrench_head": "Wrench Head", + "item.cosmiccore.wrench_head_cast": "Wrench Head Cast", + "item.cosmiccore.wrench_head_sand_cast": "Wrench Head Sand Cast", "item.cosmiccore.zpm_radio_module": "ZPM Radio Module", + "item.cosmiccore.zpm_wildfire_core": "ZPM Wildfire Core", "item.gtceu.tool.luv_meld_tool": "%s Meld Multitool", - "itemGroup.cosmiccore.creative_tab": "Cosmic Core", + "itemGroup.cosmiccore.creative_tab_tinker_tools": "Cosmic Core Tinkers Compat", "material.cosmiccore.causal_fabric": "Causal Fabric", "material.cosmiccore.chronon": "Chronon", "material.cosmiccore.cosmocite": "Cosmocite", diff --git a/src/generated/resources/assets/cosmiccore/models/block/light_dawnstone_casing.json b/src/generated/resources/assets/cosmiccore/models/block/light_dawnstone_casing.json new file mode 100644 index 000000000..07fcf4f97 --- /dev/null +++ b/src/generated/resources/assets/cosmiccore/models/block/light_dawnstone_casing.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "cosmiccore:block/casings/solid/light_dawnstone_casing" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/cosmiccore/models/block/machine/dawn_forge.json b/src/generated/resources/assets/cosmiccore/models/block/machine/dawn_forge.json new file mode 100644 index 000000000..ce57a93ee --- /dev/null +++ b/src/generated/resources/assets/cosmiccore/models/block/machine/dawn_forge.json @@ -0,0 +1,90 @@ +{ + "parent": "minecraft:block/block", + "loader": "gtceu:machine", + "machine": "cosmiccore:dawn_forge", + "texture_overrides": { + "all": "cosmiccore:block/casings/solid/light_dawnstone_casing" + }, + "variants": { + "is_formed=false,recipe_logic_status=idle": { + "model": { + "parent": "gtceu:block/machine/template/cube_all/sided", + "textures": { + "all": "cosmiccore:block/casings/solid/light_dawnstone_casing", + "overlay_front": "cosmiccore:block/multiblock/dawnforge/overlay_front", + "overlay_front_emissive": "cosmiccore:block/multiblock/dawnforge/overlay_front_emissive" + } + } + }, + "is_formed=false,recipe_logic_status=suspend": { + "model": { + "parent": "gtceu:block/machine/template/cube_all/sided", + "textures": { + "all": "cosmiccore:block/casings/solid/light_dawnstone_casing", + "overlay_front": "cosmiccore:block/multiblock/dawnforge/overlay_front", + "overlay_front_emissive": "cosmiccore:block/multiblock/dawnforge/overlay_front_emissive" + } + } + }, + "is_formed=false,recipe_logic_status=waiting": { + "model": { + "parent": "gtceu:block/machine/template/cube_all/sided", + "textures": { + "all": "cosmiccore:block/casings/solid/light_dawnstone_casing", + "overlay_front": "cosmiccore:block/multiblock/dawnforge/overlay_front_active", + "overlay_front_emissive": "cosmiccore:block/multiblock/dawnforge/overlay_front_active_emissive" + } + } + }, + "is_formed=false,recipe_logic_status=working": { + "model": { + "parent": "gtceu:block/machine/template/cube_all/sided", + "textures": { + "all": "cosmiccore:block/casings/solid/light_dawnstone_casing", + "overlay_front": "cosmiccore:block/multiblock/dawnforge/overlay_front_active", + "overlay_front_emissive": "cosmiccore:block/multiblock/dawnforge/overlay_front_active_emissive" + } + } + }, + "is_formed=true,recipe_logic_status=idle": { + "model": { + "parent": "gtceu:block/machine/template/cube_all/sided", + "textures": { + "all": "cosmiccore:block/casings/solid/light_dawnstone_casing", + "overlay_front": "cosmiccore:block/multiblock/dawnforge/overlay_front", + "overlay_front_emissive": "cosmiccore:block/multiblock/dawnforge/overlay_front_emissive" + } + } + }, + "is_formed=true,recipe_logic_status=suspend": { + "model": { + "parent": "gtceu:block/machine/template/cube_all/sided", + "textures": { + "all": "cosmiccore:block/casings/solid/light_dawnstone_casing", + "overlay_front": "cosmiccore:block/multiblock/dawnforge/overlay_front", + "overlay_front_emissive": "cosmiccore:block/multiblock/dawnforge/overlay_front_emissive" + } + } + }, + "is_formed=true,recipe_logic_status=waiting": { + "model": { + "parent": "gtceu:block/machine/template/cube_all/sided", + "textures": { + "all": "cosmiccore:block/casings/solid/light_dawnstone_casing", + "overlay_front": "cosmiccore:block/multiblock/dawnforge/overlay_front_active", + "overlay_front_emissive": "cosmiccore:block/multiblock/dawnforge/overlay_front_active_emissive" + } + } + }, + "is_formed=true,recipe_logic_status=working": { + "model": { + "parent": "gtceu:block/machine/template/cube_all/sided", + "textures": { + "all": "cosmiccore:block/casings/solid/light_dawnstone_casing", + "overlay_front": "cosmiccore:block/multiblock/dawnforge/overlay_front_active", + "overlay_front_emissive": "cosmiccore:block/multiblock/dawnforge/overlay_front_active_emissive" + } + } + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/cosmiccore/models/block/machine/ember_tester.json b/src/generated/resources/assets/cosmiccore/models/block/machine/ember_tester.json deleted file mode 100644 index 580dd1880..000000000 --- a/src/generated/resources/assets/cosmiccore/models/block/machine/ember_tester.json +++ /dev/null @@ -1,90 +0,0 @@ -{ - "parent": "minecraft:block/block", - "loader": "gtceu:machine", - "machine": "cosmiccore:ember_tester", - "texture_overrides": { - "all": "gtceu:block/casings/solid/machine_casing_inert_ptfe" - }, - "variants": { - "is_formed=false,recipe_logic_status=idle": { - "model": { - "parent": "gtceu:block/machine/template/cube_all/sided", - "textures": { - "all": "gtceu:block/casings/solid/machine_casing_inert_ptfe", - "overlay_front": "gtceu:block/multiblock/coke_oven/overlay_front", - "overlay_front_emissive": "gtceu:block/multiblock/coke_oven/overlay_front_emissive" - } - } - }, - "is_formed=false,recipe_logic_status=suspend": { - "model": { - "parent": "gtceu:block/machine/template/cube_all/sided", - "textures": { - "all": "gtceu:block/casings/solid/machine_casing_inert_ptfe", - "overlay_front": "gtceu:block/multiblock/coke_oven/overlay_front", - "overlay_front_emissive": "gtceu:block/multiblock/coke_oven/overlay_front_emissive" - } - } - }, - "is_formed=false,recipe_logic_status=waiting": { - "model": { - "parent": "gtceu:block/machine/template/cube_all/sided", - "textures": { - "all": "gtceu:block/casings/solid/machine_casing_inert_ptfe", - "overlay_front": "gtceu:block/multiblock/coke_oven/overlay_front_active", - "overlay_front_emissive": "gtceu:block/multiblock/coke_oven/overlay_front_active_emissive" - } - } - }, - "is_formed=false,recipe_logic_status=working": { - "model": { - "parent": "gtceu:block/machine/template/cube_all/sided", - "textures": { - "all": "gtceu:block/casings/solid/machine_casing_inert_ptfe", - "overlay_front": "gtceu:block/multiblock/coke_oven/overlay_front_active", - "overlay_front_emissive": "gtceu:block/multiblock/coke_oven/overlay_front_active_emissive" - } - } - }, - "is_formed=true,recipe_logic_status=idle": { - "model": { - "parent": "gtceu:block/machine/template/cube_all/sided", - "textures": { - "all": "gtceu:block/casings/solid/machine_casing_inert_ptfe", - "overlay_front": "gtceu:block/multiblock/coke_oven/overlay_front", - "overlay_front_emissive": "gtceu:block/multiblock/coke_oven/overlay_front_emissive" - } - } - }, - "is_formed=true,recipe_logic_status=suspend": { - "model": { - "parent": "gtceu:block/machine/template/cube_all/sided", - "textures": { - "all": "gtceu:block/casings/solid/machine_casing_inert_ptfe", - "overlay_front": "gtceu:block/multiblock/coke_oven/overlay_front", - "overlay_front_emissive": "gtceu:block/multiblock/coke_oven/overlay_front_emissive" - } - } - }, - "is_formed=true,recipe_logic_status=waiting": { - "model": { - "parent": "gtceu:block/machine/template/cube_all/sided", - "textures": { - "all": "gtceu:block/casings/solid/machine_casing_inert_ptfe", - "overlay_front": "gtceu:block/multiblock/coke_oven/overlay_front_active", - "overlay_front_emissive": "gtceu:block/multiblock/coke_oven/overlay_front_active_emissive" - } - } - }, - "is_formed=true,recipe_logic_status=working": { - "model": { - "parent": "gtceu:block/machine/template/cube_all/sided", - "textures": { - "all": "gtceu:block/casings/solid/machine_casing_inert_ptfe", - "overlay_front": "gtceu:block/multiblock/coke_oven/overlay_front_active", - "overlay_front_emissive": "gtceu:block/multiblock/coke_oven/overlay_front_active_emissive" - } - } - } - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/cosmiccore/models/block/machine/ev_ember_input_hatch.json b/src/generated/resources/assets/cosmiccore/models/block/machine/ev_ember_input_hatch.json new file mode 100644 index 000000000..4f9cbacaf --- /dev/null +++ b/src/generated/resources/assets/cosmiccore/models/block/machine/ev_ember_input_hatch.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:block/block", + "loader": "gtceu:machine", + "machine": "cosmiccore:ev_ember_input_hatch", + "replaceable_textures": [ + "bottom", + "top", + "side" + ], + "variants": { + "is_formed=false": { + "model": { + "parent": "cosmiccore:block/machine/part/ember_hatch", + "textures": { + "bottom": "gtceu:block/casings/voltage/ev/bottom", + "side": "gtceu:block/casings/voltage/ev/side", + "top": "gtceu:block/casings/voltage/ev/top" + } + } + }, + "is_formed=true": { + "model": { + "parent": "cosmiccore:block/machine/part/ember_hatch", + "textures": { + "bottom": "gtceu:block/casings/voltage/ev/bottom", + "side": "gtceu:block/casings/voltage/ev/side", + "top": "gtceu:block/casings/voltage/ev/top" + } + } + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/cosmiccore/models/block/machine/ev_ember_output_hatch.json b/src/generated/resources/assets/cosmiccore/models/block/machine/ev_ember_output_hatch.json new file mode 100644 index 000000000..ef72baad8 --- /dev/null +++ b/src/generated/resources/assets/cosmiccore/models/block/machine/ev_ember_output_hatch.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:block/block", + "loader": "gtceu:machine", + "machine": "cosmiccore:ev_ember_output_hatch", + "replaceable_textures": [ + "bottom", + "top", + "side" + ], + "variants": { + "is_formed=false": { + "model": { + "parent": "cosmiccore:block/machine/part/ember_hatch", + "textures": { + "bottom": "gtceu:block/casings/voltage/ev/bottom", + "side": "gtceu:block/casings/voltage/ev/side", + "top": "gtceu:block/casings/voltage/ev/top" + } + } + }, + "is_formed=true": { + "model": { + "parent": "cosmiccore:block/machine/part/ember_hatch", + "textures": { + "bottom": "gtceu:block/casings/voltage/ev/bottom", + "side": "gtceu:block/casings/voltage/ev/side", + "top": "gtceu:block/casings/voltage/ev/top" + } + } + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/cosmiccore/models/block/machine/hv_ember_input_hatch.json b/src/generated/resources/assets/cosmiccore/models/block/machine/hv_ember_input_hatch.json new file mode 100644 index 000000000..da6e67d96 --- /dev/null +++ b/src/generated/resources/assets/cosmiccore/models/block/machine/hv_ember_input_hatch.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:block/block", + "loader": "gtceu:machine", + "machine": "cosmiccore:hv_ember_input_hatch", + "replaceable_textures": [ + "bottom", + "top", + "side" + ], + "variants": { + "is_formed=false": { + "model": { + "parent": "cosmiccore:block/machine/part/ember_hatch", + "textures": { + "bottom": "gtceu:block/casings/voltage/hv/bottom", + "side": "gtceu:block/casings/voltage/hv/side", + "top": "gtceu:block/casings/voltage/hv/top" + } + } + }, + "is_formed=true": { + "model": { + "parent": "cosmiccore:block/machine/part/ember_hatch", + "textures": { + "bottom": "gtceu:block/casings/voltage/hv/bottom", + "side": "gtceu:block/casings/voltage/hv/side", + "top": "gtceu:block/casings/voltage/hv/top" + } + } + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/cosmiccore/models/block/machine/hv_ember_output_hatch.json b/src/generated/resources/assets/cosmiccore/models/block/machine/hv_ember_output_hatch.json new file mode 100644 index 000000000..074d3b7aa --- /dev/null +++ b/src/generated/resources/assets/cosmiccore/models/block/machine/hv_ember_output_hatch.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:block/block", + "loader": "gtceu:machine", + "machine": "cosmiccore:hv_ember_output_hatch", + "replaceable_textures": [ + "bottom", + "top", + "side" + ], + "variants": { + "is_formed=false": { + "model": { + "parent": "cosmiccore:block/machine/part/ember_hatch", + "textures": { + "bottom": "gtceu:block/casings/voltage/hv/bottom", + "side": "gtceu:block/casings/voltage/hv/side", + "top": "gtceu:block/casings/voltage/hv/top" + } + } + }, + "is_formed=true": { + "model": { + "parent": "cosmiccore:block/machine/part/ember_hatch", + "textures": { + "bottom": "gtceu:block/casings/voltage/hv/bottom", + "side": "gtceu:block/casings/voltage/hv/side", + "top": "gtceu:block/casings/voltage/hv/top" + } + } + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/cosmiccore/models/block/machine/lv_ember_input_hatch.json b/src/generated/resources/assets/cosmiccore/models/block/machine/lv_ember_input_hatch.json new file mode 100644 index 000000000..3c9f43354 --- /dev/null +++ b/src/generated/resources/assets/cosmiccore/models/block/machine/lv_ember_input_hatch.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:block/block", + "loader": "gtceu:machine", + "machine": "cosmiccore:lv_ember_input_hatch", + "replaceable_textures": [ + "bottom", + "top", + "side" + ], + "variants": { + "is_formed=false": { + "model": { + "parent": "cosmiccore:block/machine/part/ember_hatch", + "textures": { + "bottom": "gtceu:block/casings/voltage/lv/bottom", + "side": "gtceu:block/casings/voltage/lv/side", + "top": "gtceu:block/casings/voltage/lv/top" + } + } + }, + "is_formed=true": { + "model": { + "parent": "cosmiccore:block/machine/part/ember_hatch", + "textures": { + "bottom": "gtceu:block/casings/voltage/lv/bottom", + "side": "gtceu:block/casings/voltage/lv/side", + "top": "gtceu:block/casings/voltage/lv/top" + } + } + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/cosmiccore/models/block/machine/lv_ember_output_hatch.json b/src/generated/resources/assets/cosmiccore/models/block/machine/lv_ember_output_hatch.json new file mode 100644 index 000000000..2b6d0edb0 --- /dev/null +++ b/src/generated/resources/assets/cosmiccore/models/block/machine/lv_ember_output_hatch.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:block/block", + "loader": "gtceu:machine", + "machine": "cosmiccore:lv_ember_output_hatch", + "replaceable_textures": [ + "bottom", + "top", + "side" + ], + "variants": { + "is_formed=false": { + "model": { + "parent": "cosmiccore:block/machine/part/ember_hatch", + "textures": { + "bottom": "gtceu:block/casings/voltage/lv/bottom", + "side": "gtceu:block/casings/voltage/lv/side", + "top": "gtceu:block/casings/voltage/lv/top" + } + } + }, + "is_formed=true": { + "model": { + "parent": "cosmiccore:block/machine/part/ember_hatch", + "textures": { + "bottom": "gtceu:block/casings/voltage/lv/bottom", + "side": "gtceu:block/casings/voltage/lv/side", + "top": "gtceu:block/casings/voltage/lv/top" + } + } + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/cosmiccore/models/block/machine/mv_ember_input_hatch.json b/src/generated/resources/assets/cosmiccore/models/block/machine/mv_ember_input_hatch.json new file mode 100644 index 000000000..0d4ba2454 --- /dev/null +++ b/src/generated/resources/assets/cosmiccore/models/block/machine/mv_ember_input_hatch.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:block/block", + "loader": "gtceu:machine", + "machine": "cosmiccore:mv_ember_input_hatch", + "replaceable_textures": [ + "bottom", + "top", + "side" + ], + "variants": { + "is_formed=false": { + "model": { + "parent": "cosmiccore:block/machine/part/ember_hatch", + "textures": { + "bottom": "gtceu:block/casings/voltage/mv/bottom", + "side": "gtceu:block/casings/voltage/mv/side", + "top": "gtceu:block/casings/voltage/mv/top" + } + } + }, + "is_formed=true": { + "model": { + "parent": "cosmiccore:block/machine/part/ember_hatch", + "textures": { + "bottom": "gtceu:block/casings/voltage/mv/bottom", + "side": "gtceu:block/casings/voltage/mv/side", + "top": "gtceu:block/casings/voltage/mv/top" + } + } + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/cosmiccore/models/block/machine/mv_ember_output_hatch.json b/src/generated/resources/assets/cosmiccore/models/block/machine/mv_ember_output_hatch.json new file mode 100644 index 000000000..6f009e1c1 --- /dev/null +++ b/src/generated/resources/assets/cosmiccore/models/block/machine/mv_ember_output_hatch.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:block/block", + "loader": "gtceu:machine", + "machine": "cosmiccore:mv_ember_output_hatch", + "replaceable_textures": [ + "bottom", + "top", + "side" + ], + "variants": { + "is_formed=false": { + "model": { + "parent": "cosmiccore:block/machine/part/ember_hatch", + "textures": { + "bottom": "gtceu:block/casings/voltage/mv/bottom", + "side": "gtceu:block/casings/voltage/mv/side", + "top": "gtceu:block/casings/voltage/mv/top" + } + } + }, + "is_formed=true": { + "model": { + "parent": "cosmiccore:block/machine/part/ember_hatch", + "textures": { + "bottom": "gtceu:block/casings/voltage/mv/bottom", + "side": "gtceu:block/casings/voltage/mv/side", + "top": "gtceu:block/casings/voltage/mv/top" + } + } + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/cosmiccore/models/block/machine/steam_fluid_input_hatch.json b/src/generated/resources/assets/cosmiccore/models/block/machine/steam_fluid_input_hatch.json index be353f06b..f4d832cc9 100644 --- a/src/generated/resources/assets/cosmiccore/models/block/machine/steam_fluid_input_hatch.json +++ b/src/generated/resources/assets/cosmiccore/models/block/machine/steam_fluid_input_hatch.json @@ -8,7 +8,7 @@ "side" ], "variants": { - "is_painted=false": { + "is_formed=false,is_painted=false": { "model": { "parent": "gtceu:block/machine/template/part/hatch_machine_emissive", "textures": { @@ -21,7 +21,33 @@ } } }, - "is_painted=true": { + "is_formed=false,is_painted=true": { + "model": { + "parent": "gtceu:block/machine/template/part/hatch_machine_emissive_color_ring", + "textures": { + "bottom": "gtceu:block/casings/steam/bronze/bottom", + "overlay": "gtceu:block/overlay/machine/overlay_pipe", + "overlay_emissive": "gtceu:block/overlay/machine/overlay_fluid_hatch", + "overlay_pipe": "gtceu:block/overlay/machine/overlay_fluid_hatch", + "side": "gtceu:block/casings/steam/bronze/side", + "top": "gtceu:block/casings/steam/bronze/top" + } + } + }, + "is_formed=true,is_painted=false": { + "model": { + "parent": "gtceu:block/machine/template/part/hatch_machine_emissive", + "textures": { + "bottom": "gtceu:block/casings/steam/bronze/bottom", + "overlay": "gtceu:block/overlay/machine/overlay_pipe", + "overlay_emissive": "gtceu:block/overlay/machine/overlay_fluid_hatch", + "overlay_pipe": "gtceu:block/overlay/machine/overlay_fluid_hatch", + "side": "gtceu:block/casings/steam/bronze/side", + "top": "gtceu:block/casings/steam/bronze/top" + } + } + }, + "is_formed=true,is_painted=true": { "model": { "parent": "gtceu:block/machine/template/part/hatch_machine_emissive_color_ring", "textures": { diff --git a/src/generated/resources/assets/cosmiccore/models/block/machine/steam_fluid_output_hatch.json b/src/generated/resources/assets/cosmiccore/models/block/machine/steam_fluid_output_hatch.json index 50743b592..22f20c335 100644 --- a/src/generated/resources/assets/cosmiccore/models/block/machine/steam_fluid_output_hatch.json +++ b/src/generated/resources/assets/cosmiccore/models/block/machine/steam_fluid_output_hatch.json @@ -8,7 +8,7 @@ "side" ], "variants": { - "is_painted=false": { + "is_formed=false,is_painted=false": { "model": { "parent": "gtceu:block/machine/template/part/hatch_machine_emissive", "textures": { @@ -21,7 +21,33 @@ } } }, - "is_painted=true": { + "is_formed=false,is_painted=true": { + "model": { + "parent": "gtceu:block/machine/template/part/hatch_machine_emissive_color_ring", + "textures": { + "bottom": "gtceu:block/casings/steam/bronze/bottom", + "overlay": "gtceu:block/overlay/machine/overlay_pipe", + "overlay_emissive": "gtceu:block/overlay/machine/overlay_fluid_hatch", + "overlay_pipe": "gtceu:block/overlay/machine/overlay_fluid_hatch", + "side": "gtceu:block/casings/steam/bronze/side", + "top": "gtceu:block/casings/steam/bronze/top" + } + } + }, + "is_formed=true,is_painted=false": { + "model": { + "parent": "gtceu:block/machine/template/part/hatch_machine_emissive", + "textures": { + "bottom": "gtceu:block/casings/steam/bronze/bottom", + "overlay": "gtceu:block/overlay/machine/overlay_pipe", + "overlay_emissive": "gtceu:block/overlay/machine/overlay_fluid_hatch", + "overlay_pipe": "gtceu:block/overlay/machine/overlay_fluid_hatch", + "side": "gtceu:block/casings/steam/bronze/side", + "top": "gtceu:block/casings/steam/bronze/top" + } + } + }, + "is_formed=true,is_painted=true": { "model": { "parent": "gtceu:block/machine/template/part/hatch_machine_emissive_color_ring", "textures": { diff --git a/src/generated/resources/assets/cosmiccore/models/block/reinforced_dawnstone_casing.json b/src/generated/resources/assets/cosmiccore/models/block/reinforced_dawnstone_casing.json new file mode 100644 index 000000000..599362ab0 --- /dev/null +++ b/src/generated/resources/assets/cosmiccore/models/block/reinforced_dawnstone_casing.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "cosmiccore:block/casings/solid/reinforced_dawnstone_casing" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/cosmiccore/models/item/dawn_forge.json b/src/generated/resources/assets/cosmiccore/models/item/dawn_forge.json new file mode 100644 index 000000000..7f928b6d5 --- /dev/null +++ b/src/generated/resources/assets/cosmiccore/models/item/dawn_forge.json @@ -0,0 +1,3 @@ +{ + "parent": "cosmiccore:block/machine/dawn_forge" +} \ No newline at end of file diff --git a/src/generated/resources/assets/cosmiccore/models/item/ember_tester.json b/src/generated/resources/assets/cosmiccore/models/item/ember_tester.json deleted file mode 100644 index dac03ad02..000000000 --- a/src/generated/resources/assets/cosmiccore/models/item/ember_tester.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "cosmiccore:block/machine/ember_tester" -} \ No newline at end of file diff --git a/src/generated/resources/assets/cosmiccore/models/item/ev_ember_input_hatch.json b/src/generated/resources/assets/cosmiccore/models/item/ev_ember_input_hatch.json new file mode 100644 index 000000000..9ebb131a3 --- /dev/null +++ b/src/generated/resources/assets/cosmiccore/models/item/ev_ember_input_hatch.json @@ -0,0 +1,3 @@ +{ + "parent": "cosmiccore:block/machine/ev_ember_input_hatch" +} \ No newline at end of file diff --git a/src/generated/resources/assets/cosmiccore/models/item/ev_ember_output_hatch.json b/src/generated/resources/assets/cosmiccore/models/item/ev_ember_output_hatch.json new file mode 100644 index 000000000..929e72e6a --- /dev/null +++ b/src/generated/resources/assets/cosmiccore/models/item/ev_ember_output_hatch.json @@ -0,0 +1,3 @@ +{ + "parent": "cosmiccore:block/machine/ev_ember_output_hatch" +} \ No newline at end of file diff --git a/src/generated/resources/assets/cosmiccore/models/item/ev_wildfire_core.json b/src/generated/resources/assets/cosmiccore/models/item/ev_wildfire_core.json new file mode 100644 index 000000000..b09aa4835 --- /dev/null +++ b/src/generated/resources/assets/cosmiccore/models/item/ev_wildfire_core.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "cosmiccore:item/ev_wildfire_core" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/cosmiccore/models/item/hv_ember_input_hatch.json b/src/generated/resources/assets/cosmiccore/models/item/hv_ember_input_hatch.json new file mode 100644 index 000000000..1115eb1ff --- /dev/null +++ b/src/generated/resources/assets/cosmiccore/models/item/hv_ember_input_hatch.json @@ -0,0 +1,3 @@ +{ + "parent": "cosmiccore:block/machine/hv_ember_input_hatch" +} \ No newline at end of file diff --git a/src/generated/resources/assets/cosmiccore/models/item/hv_ember_output_hatch.json b/src/generated/resources/assets/cosmiccore/models/item/hv_ember_output_hatch.json new file mode 100644 index 000000000..52cd066d6 --- /dev/null +++ b/src/generated/resources/assets/cosmiccore/models/item/hv_ember_output_hatch.json @@ -0,0 +1,3 @@ +{ + "parent": "cosmiccore:block/machine/hv_ember_output_hatch" +} \ No newline at end of file diff --git a/src/generated/resources/assets/cosmiccore/models/item/hv_wildfire_core.json b/src/generated/resources/assets/cosmiccore/models/item/hv_wildfire_core.json new file mode 100644 index 000000000..b83d3f1a0 --- /dev/null +++ b/src/generated/resources/assets/cosmiccore/models/item/hv_wildfire_core.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "cosmiccore:item/hv_wildfire_core" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/cosmiccore/models/item/iv_wildfire_core.json b/src/generated/resources/assets/cosmiccore/models/item/iv_wildfire_core.json new file mode 100644 index 000000000..fb4e86351 --- /dev/null +++ b/src/generated/resources/assets/cosmiccore/models/item/iv_wildfire_core.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "cosmiccore:item/iv_wildfire_core" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/cosmiccore/models/item/light_dawnstone_casing.json b/src/generated/resources/assets/cosmiccore/models/item/light_dawnstone_casing.json new file mode 100644 index 000000000..3f1d1e057 --- /dev/null +++ b/src/generated/resources/assets/cosmiccore/models/item/light_dawnstone_casing.json @@ -0,0 +1,3 @@ +{ + "parent": "cosmiccore:block/light_dawnstone_casing" +} \ No newline at end of file diff --git a/src/generated/resources/assets/cosmiccore/models/item/luv_wildfire_core.json b/src/generated/resources/assets/cosmiccore/models/item/luv_wildfire_core.json new file mode 100644 index 000000000..d52ce655f --- /dev/null +++ b/src/generated/resources/assets/cosmiccore/models/item/luv_wildfire_core.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "cosmiccore:item/luv_wildfire_core" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/cosmiccore/models/item/lv_ember_input_hatch.json b/src/generated/resources/assets/cosmiccore/models/item/lv_ember_input_hatch.json new file mode 100644 index 000000000..d5d591e22 --- /dev/null +++ b/src/generated/resources/assets/cosmiccore/models/item/lv_ember_input_hatch.json @@ -0,0 +1,3 @@ +{ + "parent": "cosmiccore:block/machine/lv_ember_input_hatch" +} \ No newline at end of file diff --git a/src/generated/resources/assets/cosmiccore/models/item/lv_ember_output_hatch.json b/src/generated/resources/assets/cosmiccore/models/item/lv_ember_output_hatch.json new file mode 100644 index 000000000..103538bea --- /dev/null +++ b/src/generated/resources/assets/cosmiccore/models/item/lv_ember_output_hatch.json @@ -0,0 +1,3 @@ +{ + "parent": "cosmiccore:block/machine/lv_ember_output_hatch" +} \ No newline at end of file diff --git a/src/generated/resources/assets/cosmiccore/models/item/lv_wildfire_core.json b/src/generated/resources/assets/cosmiccore/models/item/lv_wildfire_core.json new file mode 100644 index 000000000..1f2768ea4 --- /dev/null +++ b/src/generated/resources/assets/cosmiccore/models/item/lv_wildfire_core.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "cosmiccore:item/lv_wildfire_core" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/cosmiccore/models/item/mv_ember_input_hatch.json b/src/generated/resources/assets/cosmiccore/models/item/mv_ember_input_hatch.json new file mode 100644 index 000000000..db02deede --- /dev/null +++ b/src/generated/resources/assets/cosmiccore/models/item/mv_ember_input_hatch.json @@ -0,0 +1,3 @@ +{ + "parent": "cosmiccore:block/machine/mv_ember_input_hatch" +} \ No newline at end of file diff --git a/src/generated/resources/assets/cosmiccore/models/item/mv_ember_output_hatch.json b/src/generated/resources/assets/cosmiccore/models/item/mv_ember_output_hatch.json new file mode 100644 index 000000000..2f1285229 --- /dev/null +++ b/src/generated/resources/assets/cosmiccore/models/item/mv_ember_output_hatch.json @@ -0,0 +1,3 @@ +{ + "parent": "cosmiccore:block/machine/mv_ember_output_hatch" +} \ No newline at end of file diff --git a/src/generated/resources/assets/cosmiccore/models/item/mv_wildfire_core.json b/src/generated/resources/assets/cosmiccore/models/item/mv_wildfire_core.json new file mode 100644 index 000000000..31126f647 --- /dev/null +++ b/src/generated/resources/assets/cosmiccore/models/item/mv_wildfire_core.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "cosmiccore:item/mv_wildfire_core" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/cosmiccore/models/item/reinforced_dawnstone_casing.json b/src/generated/resources/assets/cosmiccore/models/item/reinforced_dawnstone_casing.json new file mode 100644 index 000000000..635382b65 --- /dev/null +++ b/src/generated/resources/assets/cosmiccore/models/item/reinforced_dawnstone_casing.json @@ -0,0 +1,3 @@ +{ + "parent": "cosmiccore:block/reinforced_dawnstone_casing" +} \ No newline at end of file diff --git a/src/generated/resources/assets/cosmiccore/models/item/screwdriver_head_cast.json b/src/generated/resources/assets/cosmiccore/models/item/screwdriver_head_cast.json new file mode 100644 index 000000000..3ca72bee0 --- /dev/null +++ b/src/generated/resources/assets/cosmiccore/models/item/screwdriver_head_cast.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "cosmiccore:item/screwdriver_head_cast" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/cosmiccore/models/item/screwdriver_head_sand_cast.json b/src/generated/resources/assets/cosmiccore/models/item/screwdriver_head_sand_cast.json new file mode 100644 index 000000000..3253a1b79 --- /dev/null +++ b/src/generated/resources/assets/cosmiccore/models/item/screwdriver_head_sand_cast.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "cosmiccore:item/screwdriver_head_sand_cast" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/cosmiccore/models/item/wrench_head_cast.json b/src/generated/resources/assets/cosmiccore/models/item/wrench_head_cast.json new file mode 100644 index 000000000..d23d82633 --- /dev/null +++ b/src/generated/resources/assets/cosmiccore/models/item/wrench_head_cast.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "cosmiccore:item/wrench_head_cast" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/cosmiccore/models/item/wrench_head_sand_cast.json b/src/generated/resources/assets/cosmiccore/models/item/wrench_head_sand_cast.json new file mode 100644 index 000000000..690622691 --- /dev/null +++ b/src/generated/resources/assets/cosmiccore/models/item/wrench_head_sand_cast.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "cosmiccore:item/wrench_head_sand_cast" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/cosmiccore/models/item/zpm_wildfire_core.json b/src/generated/resources/assets/cosmiccore/models/item/zpm_wildfire_core.json new file mode 100644 index 000000000..5b919d8e6 --- /dev/null +++ b/src/generated/resources/assets/cosmiccore/models/item/zpm_wildfire_core.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "cosmiccore:item/zpm_wildfire_core" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/cosmiccore/sounds.json b/src/generated/resources/assets/cosmiccore/sounds.json index 39126ede1..db533c62a 100644 --- a/src/generated/resources/assets/cosmiccore/sounds.json +++ b/src/generated/resources/assets/cosmiccore/sounds.json @@ -17,6 +17,15 @@ ], "subtitle": "cosmiccore.subtitle.arcane_distil" }, + "dawnforge": { + "sounds": [ + { + "type": "file", + "name": "cosmiccore:dawnforge" + } + ], + "subtitle": "cosmiccore.subtitle.dawnforge" + }, "dying_star": { "sounds": [ { diff --git a/src/generated/resources/data/cosmiccore/loot_tables/blocks/light_dawnstone_casing.json b/src/generated/resources/data/cosmiccore/loot_tables/blocks/light_dawnstone_casing.json new file mode 100644 index 000000000..9f8ba03c9 --- /dev/null +++ b/src/generated/resources/data/cosmiccore/loot_tables/blocks/light_dawnstone_casing.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "cosmiccore:light_dawnstone_casing" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "cosmiccore:blocks/light_dawnstone_casing" +} \ No newline at end of file diff --git a/src/generated/resources/data/cosmiccore/loot_tables/blocks/reinforced_dawnstone_casing.json b/src/generated/resources/data/cosmiccore/loot_tables/blocks/reinforced_dawnstone_casing.json new file mode 100644 index 000000000..35fa1ed85 --- /dev/null +++ b/src/generated/resources/data/cosmiccore/loot_tables/blocks/reinforced_dawnstone_casing.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "cosmiccore:reinforced_dawnstone_casing" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "cosmiccore:blocks/reinforced_dawnstone_casing" +} \ No newline at end of file diff --git a/src/generated/resources/data/cosmiccore/tags/items/casts/multi_use/screwdriver_head_sand.json b/src/generated/resources/data/cosmiccore/tags/items/casts/multi_use/screwdriver_head_sand.json new file mode 100644 index 000000000..7c7eff2b2 --- /dev/null +++ b/src/generated/resources/data/cosmiccore/tags/items/casts/multi_use/screwdriver_head_sand.json @@ -0,0 +1,5 @@ +{ + "values": [ + "cosmiccore:screwdriver_head_cast" + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/cosmiccore/tags/items/casts/multi_use/wrench_head.json b/src/generated/resources/data/cosmiccore/tags/items/casts/multi_use/wrench_head.json new file mode 100644 index 000000000..e0b332939 --- /dev/null +++ b/src/generated/resources/data/cosmiccore/tags/items/casts/multi_use/wrench_head.json @@ -0,0 +1,5 @@ +{ + "values": [ + "cosmiccore:wrench_head_cast" + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/cosmiccore/tags/items/casts/single_use/screwdriver_head.json b/src/generated/resources/data/cosmiccore/tags/items/casts/single_use/screwdriver_head.json new file mode 100644 index 000000000..0e6ac1c16 --- /dev/null +++ b/src/generated/resources/data/cosmiccore/tags/items/casts/single_use/screwdriver_head.json @@ -0,0 +1,5 @@ +{ + "values": [ + "cosmiccore:screwdriver_head_sand_cast" + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/cosmiccore/tags/items/casts/single_use/wrench_head.json b/src/generated/resources/data/cosmiccore/tags/items/casts/single_use/wrench_head.json new file mode 100644 index 000000000..f1940bdc8 --- /dev/null +++ b/src/generated/resources/data/cosmiccore/tags/items/casts/single_use/wrench_head.json @@ -0,0 +1,5 @@ +{ + "values": [ + "cosmiccore:wrench_head_sand_cast" + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/cosmiccore/tinkering/modifiers/wrenchModeBehavior.json b/src/generated/resources/data/cosmiccore/tinkering/modifiers/wrenchModeBehavior.json new file mode 100644 index 000000000..c042c4fea --- /dev/null +++ b/src/generated/resources/data/cosmiccore/tinkering/modifiers/wrenchModeBehavior.json @@ -0,0 +1,4 @@ +{ + "level_display": "tconstruct:no_levels", + "tooltip_display": "always" +} \ No newline at end of file diff --git a/src/generated/resources/data/cosmiccore/tinkering/tool_definitions/screwdriver.json b/src/generated/resources/data/cosmiccore/tinkering/tool_definitions/screwdriver.json new file mode 100644 index 000000000..42fa06d0f --- /dev/null +++ b/src/generated/resources/data/cosmiccore/tinkering/tool_definitions/screwdriver.json @@ -0,0 +1,31 @@ +{ + "modules": [ + { + "type": "tconstruct:part_stats", + "parts": [ + "cosmiccore:screwdriver_head", + "tconstruct:tool_handle" + ], + "primary_part": 0 + }, + { + "type": "tconstruct:default_materials", + "materials": [ + { + "type": "tconstruct:random", + "tier": 1 + }, + { + "type": "tconstruct:random", + "tier": 1 + } + ] + }, + { + "type": "tconstruct:base_stats", + "stats": { + "tconstruct:attack_speed": 0.9 + } + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/cosmiccore/tinkering/tool_definitions/wire_cutter.json b/src/generated/resources/data/cosmiccore/tinkering/tool_definitions/wire_cutter.json new file mode 100644 index 000000000..aed429838 --- /dev/null +++ b/src/generated/resources/data/cosmiccore/tinkering/tool_definitions/wire_cutter.json @@ -0,0 +1,47 @@ +{ + "modules": [ + { + "type": "tconstruct:part_stats", + "parts": [ + "tconstruct:small_blade", + "tconstruct:small_blade", + "tconstruct:tool_binding", + "tconstruct:tool_handle", + "tconstruct:tool_handle" + ], + "primary_part": 0 + }, + { + "type": "tconstruct:default_materials", + "materials": [ + { + "type": "tconstruct:random", + "tier": 1 + }, + { + "type": "tconstruct:random", + "tier": 1 + }, + { + "type": "tconstruct:random", + "tier": 1 + }, + { + "type": "tconstruct:random", + "tier": 1 + } + ] + }, + { + "type": "tconstruct:base_stats", + "stats": { + "tconstruct:attack_speed": 0.9 + } + }, + { + "type": "tconstruct:is_effective", + "predicate_type": "mantle:tag", + "tag": "forge:mineable/wire_cutter" + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/cosmiccore/tinkering/tool_definitions/wrench.json b/src/generated/resources/data/cosmiccore/tinkering/tool_definitions/wrench.json new file mode 100644 index 000000000..a5ca86ab3 --- /dev/null +++ b/src/generated/resources/data/cosmiccore/tinkering/tool_definitions/wrench.json @@ -0,0 +1,50 @@ +{ + "modules": [ + { + "type": "tconstruct:part_stats", + "parts": [ + "cosmiccore:wrench_head", + "tconstruct:tough_binding", + "tconstruct:tool_handle" + ], + "primary_part": 0 + }, + { + "type": "tconstruct:default_materials", + "materials": [ + { + "type": "tconstruct:random", + "tier": 1 + }, + { + "type": "tconstruct:random", + "tier": 1 + }, + { + "type": "tconstruct:random", + "tier": 1 + } + ] + }, + { + "type": "tconstruct:base_stats", + "stats": { + "tconstruct:attack_speed": 0.9 + } + }, + { + "type": "tconstruct:is_effective", + "predicate_type": "mantle:tag", + "tag": "forge:mineable/wrench" + }, + { + "type": "tconstruct:traits", + "traits": [ + { + "level": 1, + "name": "cosmiccore:wrench_switch" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/forge/tags/items/tools/screwdrivers.json b/src/generated/resources/data/forge/tags/items/tools/screwdrivers.json new file mode 100644 index 000000000..668f50863 --- /dev/null +++ b/src/generated/resources/data/forge/tags/items/tools/screwdrivers.json @@ -0,0 +1,5 @@ +{ + "values": [ + "cosmiccore:screwdriver" + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/forge/tags/items/tools/wire_cutters.json b/src/generated/resources/data/forge/tags/items/tools/wire_cutters.json new file mode 100644 index 000000000..32acf3ab2 --- /dev/null +++ b/src/generated/resources/data/forge/tags/items/tools/wire_cutters.json @@ -0,0 +1,5 @@ +{ + "values": [ + "cosmiccore:wire_cutter" + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/forge/tags/items/tools/wrenches.json b/src/generated/resources/data/forge/tags/items/tools/wrenches.json new file mode 100644 index 000000000..303d57f8b --- /dev/null +++ b/src/generated/resources/data/forge/tags/items/tools/wrenches.json @@ -0,0 +1,5 @@ +{ + "values": [ + "cosmiccore:wrench" + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/gtceu/tags/blocks/mineable/pickaxe_or_wrench.json b/src/generated/resources/data/gtceu/tags/blocks/mineable/pickaxe_or_wrench.json index 7d3f647b4..d880998c3 100644 --- a/src/generated/resources/data/gtceu/tags/blocks/mineable/pickaxe_or_wrench.json +++ b/src/generated/resources/data/gtceu/tags/blocks/mineable/pickaxe_or_wrench.json @@ -25,6 +25,8 @@ "cosmiccore:neutronium_buoy", "cosmiccore:pthanterum_wave_breakers", "cosmiccore:cyclozine_high_rigidity_casing", + "cosmiccore:light_dawnstone_casing", + "cosmiccore:reinforced_dawnstone_casing", "cosmiccore:bichromal_nevramite_casing", "cosmiccore:fulgorinth_prime_casing", "cosmiccore:oscillating_gilded_pthanterum_casings", diff --git a/src/generated/resources/data/gtceu/tags/items/tools/crafting_screwdrivers.json b/src/generated/resources/data/gtceu/tags/items/tools/crafting_screwdrivers.json new file mode 100644 index 000000000..668f50863 --- /dev/null +++ b/src/generated/resources/data/gtceu/tags/items/tools/crafting_screwdrivers.json @@ -0,0 +1,5 @@ +{ + "values": [ + "cosmiccore:screwdriver" + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/gtceu/tags/items/tools/crafting_wire_cutters.json b/src/generated/resources/data/gtceu/tags/items/tools/crafting_wire_cutters.json new file mode 100644 index 000000000..32acf3ab2 --- /dev/null +++ b/src/generated/resources/data/gtceu/tags/items/tools/crafting_wire_cutters.json @@ -0,0 +1,5 @@ +{ + "values": [ + "cosmiccore:wire_cutter" + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/gtceu/tags/items/tools/crafting_wrenches.json b/src/generated/resources/data/gtceu/tags/items/tools/crafting_wrenches.json new file mode 100644 index 000000000..303d57f8b --- /dev/null +++ b/src/generated/resources/data/gtceu/tags/items/tools/crafting_wrenches.json @@ -0,0 +1,5 @@ +{ + "values": [ + "cosmiccore:wrench" + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/tags/items/cluster_max_harvestables.json b/src/generated/resources/data/minecraft/tags/items/cluster_max_harvestables.json new file mode 100644 index 000000000..46e488c48 --- /dev/null +++ b/src/generated/resources/data/minecraft/tags/items/cluster_max_harvestables.json @@ -0,0 +1,7 @@ +{ + "values": [ + "cosmiccore:wire_cutter", + "cosmiccore:wrench", + "cosmiccore:screwdriver" + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/tconstruct/tags/items/modifiable/aoe.json b/src/generated/resources/data/tconstruct/tags/items/modifiable/aoe.json new file mode 100644 index 000000000..46e488c48 --- /dev/null +++ b/src/generated/resources/data/tconstruct/tags/items/modifiable/aoe.json @@ -0,0 +1,7 @@ +{ + "values": [ + "cosmiccore:wire_cutter", + "cosmiccore:wrench", + "cosmiccore:screwdriver" + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/tconstruct/tags/items/modifiable/bonus_slots.json b/src/generated/resources/data/tconstruct/tags/items/modifiable/bonus_slots.json new file mode 100644 index 000000000..46e488c48 --- /dev/null +++ b/src/generated/resources/data/tconstruct/tags/items/modifiable/bonus_slots.json @@ -0,0 +1,7 @@ +{ + "values": [ + "cosmiccore:wire_cutter", + "cosmiccore:wrench", + "cosmiccore:screwdriver" + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/tconstruct/tags/items/modifiable/durability.json b/src/generated/resources/data/tconstruct/tags/items/modifiable/durability.json new file mode 100644 index 000000000..46e488c48 --- /dev/null +++ b/src/generated/resources/data/tconstruct/tags/items/modifiable/durability.json @@ -0,0 +1,7 @@ +{ + "values": [ + "cosmiccore:wire_cutter", + "cosmiccore:wrench", + "cosmiccore:screwdriver" + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/tconstruct/tags/items/modifiable/harvest/primary.json b/src/generated/resources/data/tconstruct/tags/items/modifiable/harvest/primary.json new file mode 100644 index 000000000..46e488c48 --- /dev/null +++ b/src/generated/resources/data/tconstruct/tags/items/modifiable/harvest/primary.json @@ -0,0 +1,7 @@ +{ + "values": [ + "cosmiccore:wire_cutter", + "cosmiccore:wrench", + "cosmiccore:screwdriver" + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/tconstruct/tags/items/modifiable/interactable/right.json b/src/generated/resources/data/tconstruct/tags/items/modifiable/interactable/right.json new file mode 100644 index 000000000..46e488c48 --- /dev/null +++ b/src/generated/resources/data/tconstruct/tags/items/modifiable/interactable/right.json @@ -0,0 +1,7 @@ +{ + "values": [ + "cosmiccore:wire_cutter", + "cosmiccore:wrench", + "cosmiccore:screwdriver" + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/tconstruct/tags/items/modifiable/melee/weapon.json b/src/generated/resources/data/tconstruct/tags/items/modifiable/melee/weapon.json new file mode 100644 index 000000000..46e488c48 --- /dev/null +++ b/src/generated/resources/data/tconstruct/tags/items/modifiable/melee/weapon.json @@ -0,0 +1,7 @@ +{ + "values": [ + "cosmiccore:wire_cutter", + "cosmiccore:wrench", + "cosmiccore:screwdriver" + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/tconstruct/tags/items/modifiable/multipart.json b/src/generated/resources/data/tconstruct/tags/items/modifiable/multipart.json new file mode 100644 index 000000000..46e488c48 --- /dev/null +++ b/src/generated/resources/data/tconstruct/tags/items/modifiable/multipart.json @@ -0,0 +1,7 @@ +{ + "values": [ + "cosmiccore:wire_cutter", + "cosmiccore:wrench", + "cosmiccore:screwdriver" + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/tconstruct/tags/items/modifiable/small.json b/src/generated/resources/data/tconstruct/tags/items/modifiable/small.json new file mode 100644 index 000000000..46e488c48 --- /dev/null +++ b/src/generated/resources/data/tconstruct/tags/items/modifiable/small.json @@ -0,0 +1,7 @@ +{ + "values": [ + "cosmiccore:wire_cutter", + "cosmiccore:wrench", + "cosmiccore:screwdriver" + ] +} \ No newline at end of file diff --git a/src/main/java/com/ghostipedia/cosmiccore/CosmicCore.java b/src/main/java/com/ghostipedia/cosmiccore/CosmicCore.java index b7795432f..0ebecc4d2 100644 --- a/src/main/java/com/ghostipedia/cosmiccore/CosmicCore.java +++ b/src/main/java/com/ghostipedia/cosmiccore/CosmicCore.java @@ -3,6 +3,7 @@ import com.ghostipedia.cosmiccore.api.capability.CosmicCapabilities; import com.ghostipedia.cosmiccore.api.item.LinkedTerminalBehavior; import com.ghostipedia.cosmiccore.api.pattern.CosmicPredicates; +import com.ghostipedia.cosmiccore.api.recipe.ingredient.TinkerIngredient; import com.ghostipedia.cosmiccore.api.recipe.lookup.MapEmberIngredient; import com.ghostipedia.cosmiccore.api.recipe.lookup.MapSoulIngredient; import com.ghostipedia.cosmiccore.api.registries.CosmicRegistration; @@ -11,6 +12,11 @@ import com.ghostipedia.cosmiccore.common.data.materials.CosmicMaterialSet; import com.ghostipedia.cosmiccore.common.data.materials.CosmicMaterials; import com.ghostipedia.cosmiccore.common.item.behavior.GravityCoreBehavior; +import com.ghostipedia.cosmiccore.common.item.tcon.*; +import com.ghostipedia.cosmiccore.common.item.tcon.CosmicTconBlockTagProvider; +import com.ghostipedia.cosmiccore.common.item.tcon.CosmicTconItemTagProvider; +import com.ghostipedia.cosmiccore.common.item.tcon.CosmicTinkerTools; +import com.ghostipedia.cosmiccore.common.item.tcon.CosmicToolDefinitionProvider; import com.ghostipedia.cosmiccore.common.machine.multiblock.multi.modular.MultiblockInit; import com.ghostipedia.cosmiccore.common.network.CCoreNetwork; import com.ghostipedia.cosmiccore.common.recipe.condition.CosmicConditions; @@ -31,8 +37,13 @@ import com.lowdragmc.lowdraglib.Platform; +import net.minecraft.data.DataGenerator; +import net.minecraft.data.PackOutput; import net.minecraft.resources.ResourceLocation; import net.minecraftforge.common.capabilities.RegisterCapabilitiesEvent; +import net.minecraftforge.common.crafting.CraftingHelper; +import net.minecraftforge.common.data.ExistingFileHelper; +import net.minecraftforge.data.event.GatherDataEvent; import net.minecraftforge.eventbus.api.SubscribeEvent; import net.minecraftforge.fml.common.Mod; import net.minecraftforge.fml.event.lifecycle.FMLCommonSetupEvent; @@ -75,17 +86,35 @@ public static void init() { CosmicBlocks.init(); CosmicBlockEntities.init(); CosmicItems.init(); + CosmicTinkerTools.init(); + CosmicTinkerToolPart.init(); CosmicBotanyItemRegistration.init(); CosmicRegistration.REGISTRATE.registerRegistrate(); CosmicCoreDatagen.init(); CosmicPredicates.init(); CosmicMaterialSet.init(); + CosmicCreativeModeTabs.init(); } public static ResourceLocation id(String path) { return new ResourceLocation(MOD_ID, path); } + @SubscribeEvent + public void gatherDataEvent(GatherDataEvent event) { + DataGenerator generator = event.getGenerator(); + PackOutput packOutput = generator.getPackOutput(); + ExistingFileHelper existingFileHelper = event.getExistingFileHelper(); + boolean server = event.includeServer(); + boolean client = event.includeClient(); + CosmicTconBlockTagProvider blockTags = new CosmicTconBlockTagProvider(packOutput, event.getLookupProvider(), + existingFileHelper); + generator.addProvider(server, blockTags); + generator.addProvider(server, new CosmicToolDefinitionProvider(packOutput)); + generator.addProvider(server, new CosmicTconItemTagProvider(packOutput, event.getLookupProvider(), + blockTags.contentsGetter(), existingFileHelper)); + } + @SubscribeEvent public void registerMaterialRegistry(MaterialRegistryEvent event) { MATERIAL_REGISTRY = GTCEuAPI.materialManager.createRegistry(CosmicCore.MOD_ID); @@ -107,6 +136,7 @@ public void commonSetup(FMLCommonSetupEvent event) { MapIngredientTypeManager.registerMapIngredient(Integer.class, MapSoulIngredient::convertToMapIngredient); MapIngredientTypeManager.registerMapIngredient(Double.class, MapEmberIngredient::convertToMapIngredient); GridLinkables.register(CosmicItems.LINKED_TERMINAL, LinkedTerminalBehavior.handler); + CraftingHelper.register(TinkerIngredient.TYPE, TinkerIngredient.SERIALIZER); CCoreNetwork.init(); }); } diff --git a/src/main/java/com/ghostipedia/cosmiccore/CosmicCoreGTAddon.java b/src/main/java/com/ghostipedia/cosmiccore/CosmicCoreGTAddon.java index f0ef76da7..cdf2036b1 100644 --- a/src/main/java/com/ghostipedia/cosmiccore/CosmicCoreGTAddon.java +++ b/src/main/java/com/ghostipedia/cosmiccore/CosmicCoreGTAddon.java @@ -7,6 +7,7 @@ import com.ghostipedia.cosmiccore.common.data.materials.CosmicElements; import com.ghostipedia.cosmiccore.common.data.recipe.CosmicCoreOreRecipeHandler; import com.ghostipedia.cosmiccore.common.data.recipe.CosmicMaterialRecipeHandlers; +import com.ghostipedia.cosmiccore.common.data.recipe.TinkersRecipeTest; import com.ghostipedia.cosmiccore.gtbridge.CosmicCoreRecipes; import com.ghostipedia.cosmiccore.gtbridge.CosmicRecipeTypes; @@ -65,6 +66,7 @@ public void addRecipes(Consumer provider) { CosmicCoreOreRecipeHandler.init(provider, material); CosmicMaterialRecipeHandlers.init(provider, material); } + TinkersRecipeTest.init(provider); } @Override diff --git a/src/main/java/com/ghostipedia/cosmiccore/api/CosmicGuiTextures.java b/src/main/java/com/ghostipedia/cosmiccore/api/CosmicGuiTextures.java index a81846507..59cdf3744 100644 --- a/src/main/java/com/ghostipedia/cosmiccore/api/CosmicGuiTextures.java +++ b/src/main/java/com/ghostipedia/cosmiccore/api/CosmicGuiTextures.java @@ -10,4 +10,8 @@ public class CosmicGuiTextures { "cosmiccore:textures/gui/overlay/sigil_overlay.png"); public static final ResourceTexture PROGRESS_BAR_HEAVY = new ResourceTexture( "cosmiccore:textures/gui/overlay/progress_bar_heavy_assembler.png"); + public static final ResourceTexture DAWN_FORGE = new ResourceTexture( + "cosmiccore:textures/gui/overlay/explosive_overlay.png"); + public static final ResourceTexture DAWN_FORGE_SLOT = new ResourceTexture( + "cosmiccore:textures/gui/overlay/dawnforge_slot.png"); } diff --git a/src/main/java/com/ghostipedia/cosmiccore/api/misc/IMetaMachineMixin.java b/src/main/java/com/ghostipedia/cosmiccore/api/misc/IMetaMachineMixin.java new file mode 100644 index 000000000..ac9f49175 --- /dev/null +++ b/src/main/java/com/ghostipedia/cosmiccore/api/misc/IMetaMachineMixin.java @@ -0,0 +1,15 @@ +package com.ghostipedia.cosmiccore.api.misc; + +import net.minecraft.world.InteractionResult; +import net.minecraft.world.item.context.UseOnContext; + +import com.mojang.datafixers.util.Pair; +import slimeknights.tconstruct.library.tools.definition.ToolDefinition; +import slimeknights.tconstruct.library.tools.item.ModifiableItem; + +public interface IMetaMachineMixin { + + default Pair ccore$onToolClick(ModifiableItem ticonItem, UseOnContext context) { + return Pair.of(null, InteractionResult.PASS); + } +} diff --git a/src/main/java/com/ghostipedia/cosmiccore/api/misc/IPipeBlockEntityMixin.java b/src/main/java/com/ghostipedia/cosmiccore/api/misc/IPipeBlockEntityMixin.java new file mode 100644 index 000000000..876f5bec7 --- /dev/null +++ b/src/main/java/com/ghostipedia/cosmiccore/api/misc/IPipeBlockEntityMixin.java @@ -0,0 +1,16 @@ +package com.ghostipedia.cosmiccore.api.misc; + +import net.minecraft.world.InteractionResult; +import net.minecraft.world.item.context.UseOnContext; + +import com.mojang.datafixers.util.Pair; +import slimeknights.tconstruct.library.tools.definition.ToolDefinition; +import slimeknights.tconstruct.library.tools.item.ModifiableItem; + +public interface IPipeBlockEntityMixin { + + default Pair ccore$onToolClick(ModifiableItem ticonItem, + UseOnContext context) { + return Pair.of(null, InteractionResult.PASS); + } +} diff --git a/src/main/java/com/ghostipedia/cosmiccore/api/plugins/CosmicEMIPlugin.java b/src/main/java/com/ghostipedia/cosmiccore/api/plugins/CosmicEMIPlugin.java new file mode 100644 index 000000000..4bb53bbf1 --- /dev/null +++ b/src/main/java/com/ghostipedia/cosmiccore/api/plugins/CosmicEMIPlugin.java @@ -0,0 +1,35 @@ +package com.ghostipedia.cosmiccore.api.plugins; + +import net.minecraft.core.Holder; +import net.minecraft.core.registries.BuiltInRegistries; +import net.minecraft.world.item.Item; +import net.minecraft.world.item.ItemStack; + +import dev.emi.emi.api.EmiEntrypoint; +import dev.emi.emi.api.EmiPlugin; +import dev.emi.emi.api.EmiRegistry; +import dev.emi.emi.api.stack.EmiStack; +import slimeknights.tconstruct.common.TinkerTags; +import slimeknights.tconstruct.library.tools.part.IMaterialItem; + +import java.util.ArrayList; +import java.util.List; + +@EmiEntrypoint +public class CosmicEMIPlugin implements EmiPlugin { + + @Override + public void register(EmiRegistry registry) { + // Show all material variants for every TCon tool part + for (Holder holder : BuiltInRegistries.ITEM.getTagOrEmpty(TinkerTags.Items.TOOL_PARTS)) { + Item item = holder.value(); + if (item instanceof IMaterialItem materialItem) { + List variants = new ArrayList<>(); + materialItem.addVariants(variants::add, ""); + for (ItemStack stack : variants) { + registry.addEmiStack(EmiStack.of(stack)); + } + } + } + } +} diff --git a/src/main/java/com/ghostipedia/cosmiccore/api/recipe/ingredient/TinkerIngredient.java b/src/main/java/com/ghostipedia/cosmiccore/api/recipe/ingredient/TinkerIngredient.java new file mode 100644 index 000000000..f089eedad --- /dev/null +++ b/src/main/java/com/ghostipedia/cosmiccore/api/recipe/ingredient/TinkerIngredient.java @@ -0,0 +1,110 @@ +package com.ghostipedia.cosmiccore.api.recipe.ingredient; + +import com.ghostipedia.cosmiccore.CosmicCore; + +import net.minecraft.core.registries.BuiltInRegistries; +import net.minecraft.network.FriendlyByteBuf; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.crafting.Ingredient; +import net.minecraftforge.common.crafting.IIngredientSerializer; + +import com.google.common.base.Preconditions; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import lombok.Getter; +import org.jetbrains.annotations.Nullable; +import slimeknights.tconstruct.library.tools.definition.ToolDefinition; +import slimeknights.tconstruct.library.tools.definition.ToolDefinitionLoader; +import slimeknights.tconstruct.library.tools.item.ModifiableItem; +import slimeknights.tconstruct.library.tools.nbt.ToolStack; + +import java.util.stream.Stream; + +public class TinkerIngredient extends Ingredient { + + public static final ResourceLocation TYPE = CosmicCore.id("tool_ingredient"); + + @Getter + private final ToolDefinition definition; + + private ItemStack[] cacheStacks; + + public TinkerIngredient(ToolDefinition definition) { + super(Stream.empty()); + Preconditions.checkNotNull(definition); + this.definition = definition; + } + + @Override + public JsonElement toJson() { + JsonObject json = new JsonObject(); + json.addProperty("type", TYPE.toString()); + json.addProperty("definition", definition.getId().toString()); + return json; + } + + @Override + public boolean test(@Nullable ItemStack stack) { + if (stack == null || stack.isEmpty()) return false; + if (!(stack.getItem() instanceof ModifiableItem)) return false; + ToolStack toolStack = ToolStack.from(stack); + + if (toolStack.isBroken()) return false; + + return super.test(stack); + } + + @Override + public boolean isSimple() { + return false; + } + + @Override + public ItemStack[] getItems() { + if (cacheStacks == null) { + cacheStacks = new ItemStack[] { BuiltInRegistries.ITEM.get(definition.getId()).getDefaultInstance() }; + } + return cacheStacks; + } + + @Override + public boolean isEmpty() { + return false; + } + + @Override + public IIngredientSerializer getSerializer() { + return SERIALIZER; + } + + public static final IIngredientSerializer SERIALIZER = new IIngredientSerializer() { + + @Override + public TinkerIngredient parse(FriendlyByteBuf friendlyByteBuf) { + ResourceLocation resLoc = friendlyByteBuf.readResourceLocation(); + var toolDef = ToolDefinitionLoader.getInstance(); + ToolDefinition def = toolDef.getRegisteredToolDefinitions().stream() + .filter(d -> d.getId().equals(resLoc)) + .findFirst() + .orElse(null); + return new TinkerIngredient(def); + } + + @Override + public TinkerIngredient parse(JsonObject jsonObject) { + ResourceLocation resLoc = new ResourceLocation(jsonObject.get("definition").getAsString()); + var toolDef = ToolDefinitionLoader.getInstance(); + ToolDefinition def = toolDef.getRegisteredToolDefinitions().stream() + .filter(d -> d.getId().equals(resLoc)) + .findFirst() + .orElse(null); + return new TinkerIngredient(def); + } + + @Override + public void write(FriendlyByteBuf friendlyByteBuf, TinkerIngredient tinkerIngredient) { + friendlyByteBuf.writeResourceLocation(tinkerIngredient.definition.getId()); + } + }; +} diff --git a/src/main/java/com/ghostipedia/cosmiccore/common/data/CosmicBlocks.java b/src/main/java/com/ghostipedia/cosmiccore/common/data/CosmicBlocks.java index 2761ac71c..244cf7c38 100644 --- a/src/main/java/com/ghostipedia/cosmiccore/common/data/CosmicBlocks.java +++ b/src/main/java/com/ghostipedia/cosmiccore/common/data/CosmicBlocks.java @@ -130,6 +130,15 @@ public class CosmicBlocks { public static final BlockEntry CYCLOZINE_HIGH_RIGIDITY_CASING = createCasingBlock( "cyclozine_high_rigidity_casing", CosmicCore.id("block/casings/solid/cyclozine_high_rigidity_casing")); + + public static final BlockEntry LIGHT_DAWNSTONE_CASING = createCasingBlock( + "light_dawnstone_casing", + CosmicCore.id("block/casings/solid/light_dawnstone_casing")); + + public static final BlockEntry REINFORCED_DAWNSTONE_CASING = createCasingBlock( + "reinforced_dawnstone_casing", + CosmicCore.id("block/casings/solid/reinforced_dawnstone_casing")); + // public static final BlockEntry SOMAPLASTIC_HEAVY_FRAMES = createCasingBlock("somaplastic_heavy_frames", // CosmicCore.id("block/casings/solid/cyclozine_high_rigidity_casing")); // public static final BlockEntry MOON_DIVE_CASING = createCasingBlock("moon_dive_casing", diff --git a/src/main/java/com/ghostipedia/cosmiccore/common/data/CosmicCreativeModeTabs.java b/src/main/java/com/ghostipedia/cosmiccore/common/data/CosmicCreativeModeTabs.java index 0a2b1c103..86d315a97 100644 --- a/src/main/java/com/ghostipedia/cosmiccore/common/data/CosmicCreativeModeTabs.java +++ b/src/main/java/com/ghostipedia/cosmiccore/common/data/CosmicCreativeModeTabs.java @@ -1,6 +1,7 @@ package com.ghostipedia.cosmiccore.common.data; import com.ghostipedia.cosmiccore.CosmicCore; +import com.ghostipedia.cosmiccore.common.item.tcon.CosmicCreativeTinkersTab; import com.gregtechceu.gtceu.common.data.GTCreativeModeTabs; @@ -20,5 +21,15 @@ public class CosmicCreativeModeTabs { .build()) .register(); + public static RegistryEntry COSMIC_CORE_TINKERS_TOOLS = REGISTRATE + .defaultCreativeTab(CosmicCore.MOD_ID, + builder -> builder + .displayItems(CosmicCreativeTinkersTab::addCreativeTabItems) + .title(REGISTRATE.addLang("itemGroup", CosmicCore.id("creative_tab_tinker_tools"), + "Cosmic Core Tinkers Compat")) + .icon(CosmicItems.RUNE_CONJUNCTION_VALKRUTH::asStack) + .build()) + .register(); + public static void init() {} } diff --git a/src/main/java/com/ghostipedia/cosmiccore/common/data/CosmicItems.java b/src/main/java/com/ghostipedia/cosmiccore/common/data/CosmicItems.java index 0f316f52f..054048e5a 100644 --- a/src/main/java/com/ghostipedia/cosmiccore/common/data/CosmicItems.java +++ b/src/main/java/com/ghostipedia/cosmiccore/common/data/CosmicItems.java @@ -1789,6 +1789,80 @@ public boolean isFoil(ItemStack stack) { .defaultModel() .register(); + // WildFire Cores + public static final ItemEntry LV_WILDFIRE_CORE = REGISTRATE + .item("lv_wildfire_core", ComponentItem::create) + .lang("LV Wildfire Core") + .properties(p -> p.stacksTo(64)) + .defaultModel() + .register(); + public static final ItemEntry MV_WILDFIRE_CORE = REGISTRATE + .item("mv_wildfire_core", ComponentItem::create) + .lang("MV Wildfire Core") + .properties(p -> p.stacksTo(64)) + .defaultModel() + .register(); + public static final ItemEntry HV_WILDFIRE_CORE = REGISTRATE + .item("hv_wildfire_core", ComponentItem::create) + .lang("HV Wildfire Core") + .properties(p -> p.stacksTo(64)) + .defaultModel() + .register(); + public static final ItemEntry EV_WILDFIRE_CORE = REGISTRATE + .item("ev_wildfire_core", ComponentItem::create) + .lang("EV Wildfire Core") + .properties(p -> p.stacksTo(64)) + .defaultModel() + .register(); + public static final ItemEntry IV_WILDFIRE_CORE = REGISTRATE + .item("iv_wildfire_core", ComponentItem::create) + .lang("IV Wildfire Core") + .properties(p -> p.stacksTo(64)) + .defaultModel() + .register(); + public static final ItemEntry LUV_WILDFIRE_CORE = REGISTRATE + .item("luv_wildfire_core", ComponentItem::create) + .lang("LuV Wildfire Core") + .properties(p -> p.stacksTo(64)) + .defaultModel() + .register(); + public static final ItemEntry ZPM_WILDFIRE_CORE = REGISTRATE + .item("zpm_wildfire_core", ComponentItem::create) + .lang("ZPM Wildfire Core") + .properties(p -> p.stacksTo(64)) + .defaultModel() + .register(); + + public static final ItemEntry WRENCH_CAST_GOLD = REGISTRATE + .item("wrench_head_cast", ComponentItem::create) + .lang("Wrench Head Cast") + .properties(p -> p.stacksTo(1)) + .tag(CosmicItemTags.WRENCH_HEAD_CAST_MULTI) + .defaultModel() + .register(); + public static final ItemEntry WRENCH_CAST_SAND = REGISTRATE + .item("wrench_head_sand_cast", ComponentItem::create) + .lang("Wrench Head Sand Cast") + .tag(CosmicItemTags.WRENCH_HEAD_CAST_SINGLE) + .properties(p -> p.stacksTo(1)) + .defaultModel() + .register(); + + public static final ItemEntry SCREWDRIVER_CAST_GOLD = REGISTRATE + .item("screwdriver_head_cast", ComponentItem::create) + .lang("Screwdriver Head Cast") + .properties(p -> p.stacksTo(1)) + .tag(CosmicItemTags.SCREWDRIVER_HEAD_CAST_MULTI) + .defaultModel() + .register(); + public static final ItemEntry SCREWDRIVER_CAST_SAND = REGISTRATE + .item("screwdriver_head_sand_cast", ComponentItem::create) + .lang("Screwdriver Head Sand Cast") + .tag(CosmicItemTags.SCREWDRIVER_HEAD_CAST_SINGLE) + .properties(p -> p.stacksTo(1)) + .defaultModel() + .register(); + public static ItemEntry LINKED_TERMINAL = REGISTRATE .item("linked_terminal", ComponentItem::create) .lang("Linked Terminal") diff --git a/src/main/java/com/ghostipedia/cosmiccore/common/data/CosmicMachines.java b/src/main/java/com/ghostipedia/cosmiccore/common/data/CosmicMachines.java index 341341e3f..6b7b9b6bb 100644 --- a/src/main/java/com/ghostipedia/cosmiccore/common/data/CosmicMachines.java +++ b/src/main/java/com/ghostipedia/cosmiccore/common/data/CosmicMachines.java @@ -502,6 +502,7 @@ private static MachineDefinition[] registerTieredMachines(String name, new ResourceLocation(GTCEu.MOD_ID, "block/overlay/machine/overlay_fluid_hatch"), new ResourceLocation(GTCEu.MOD_ID, "block/overlay/machine/overlay_fluid_hatch")) .tooltips(Component.translatable("gtceu.machine.steam_fluid_hatch_notice")) + .modelProperty(GTMachineModelProperties.IS_FORMED, false) .langValue("Fluid Input Hatch (Steam)") .register(); public static final MachineDefinition STEAM_EXPORT_HATCH = REGISTRATE @@ -511,6 +512,7 @@ private static MachineDefinition[] registerTieredMachines(String name, .colorOverlaySteamHullModel(new ResourceLocation(GTCEu.MOD_ID, "block/overlay/machine/overlay_pipe"), new ResourceLocation(GTCEu.MOD_ID, "block/overlay/machine/overlay_fluid_hatch"), new ResourceLocation(GTCEu.MOD_ID, "block/overlay/machine/overlay_fluid_hatch")) + .modelProperty(GTMachineModelProperties.IS_FORMED, false) .langValue("Fluid Output Hatch (Steam)") .register(); diff --git a/src/main/java/com/ghostipedia/cosmiccore/common/data/CosmicSounds.java b/src/main/java/com/ghostipedia/cosmiccore/common/data/CosmicSounds.java index 2a37eee19..6fe4940bc 100644 --- a/src/main/java/com/ghostipedia/cosmiccore/common/data/CosmicSounds.java +++ b/src/main/java/com/ghostipedia/cosmiccore/common/data/CosmicSounds.java @@ -19,6 +19,7 @@ public class CosmicSounds { public static final SoundEntry ORBITAL_FORGE = REGISTRATE.sound(CosmicCore.id("orbital_forge")).build(); public static final SoundEntry CHEMVAT = REGISTRATE.sound(CosmicCore.id("icv")).build(); public static final SoundEntry VOARX = REGISTRATE.sound(CosmicCore.id("vorax")).build(); + public static final SoundEntry DAWN_FORGE_SFX = REGISTRATE.sound(CosmicCore.id("dawnforge")).build(); public static void init() {} } diff --git a/src/main/java/com/ghostipedia/cosmiccore/common/data/datagen/CosmicDataGenerators.java b/src/main/java/com/ghostipedia/cosmiccore/common/data/datagen/CosmicDataGenerators.java index 82a0af8ec..108d462f8 100644 --- a/src/main/java/com/ghostipedia/cosmiccore/common/data/datagen/CosmicDataGenerators.java +++ b/src/main/java/com/ghostipedia/cosmiccore/common/data/datagen/CosmicDataGenerators.java @@ -1,6 +1,7 @@ package com.ghostipedia.cosmiccore.common.data.datagen; import com.ghostipedia.cosmiccore.CosmicCore; +import com.ghostipedia.cosmiccore.common.item.tcon.modifiers.CosmicModifierProvider; import com.gregtechceu.gtceu.api.registry.registrate.SoundEntryBuilder; @@ -20,6 +21,16 @@ public static void gatherData(GatherDataEvent event) { PackOutput packOutput = generator.getPackOutput(); ExistingFileHelper existingFileHelper = event.getExistingFileHelper(); var registries = event.getLookupProvider(); + + boolean server = event.includeServer(); + + generator.addProvider(server, new CosmicModifierProvider(packOutput)); + + // TODO DATAGEN FOR Materials + stats + traits (server) + // generator.addProvider(server, new CosmicTinkersMaterials(packOutput)); + // generator.addProvider(server, new CosmicMaterialStats(packOutput)); + // generator.addProvider(server, new CosmicMaterialTraits(packOutput)); + if (event.includeClient()) { generator.addProvider(true, new SoundEntryBuilder.SoundEntryProvider(packOutput, CosmicCore.MOD_ID)); } diff --git a/src/main/java/com/ghostipedia/cosmiccore/common/data/datagen/CosmicTinkersMaterials.java b/src/main/java/com/ghostipedia/cosmiccore/common/data/datagen/CosmicTinkersMaterials.java new file mode 100644 index 000000000..dc10c0254 --- /dev/null +++ b/src/main/java/com/ghostipedia/cosmiccore/common/data/datagen/CosmicTinkersMaterials.java @@ -0,0 +1,27 @@ +package com.ghostipedia.cosmiccore.common.data.datagen; + +import com.ghostipedia.cosmiccore.CosmicCore; + +import net.minecraft.data.PackOutput; +import net.minecraft.resources.ResourceLocation; + +import slimeknights.tconstruct.library.data.material.AbstractMaterialDataProvider; + +public class CosmicTinkersMaterials extends AbstractMaterialDataProvider { + + public static final ResourceLocation SCREWDRIVERIUM = CosmicCore.id("neutronite"); + + public CosmicTinkersMaterials(PackOutput out) { + super(out); + } + + @Override + protected void addMaterials() { + // todo figure this out + } + + @Override + public String getName() { + return ""; + } +} diff --git a/src/main/java/com/ghostipedia/cosmiccore/common/data/lang/CosmicLangHandler.java b/src/main/java/com/ghostipedia/cosmiccore/common/data/lang/CosmicLangHandler.java index 6d2540db1..abc081c12 100644 --- a/src/main/java/com/ghostipedia/cosmiccore/common/data/lang/CosmicLangHandler.java +++ b/src/main/java/com/ghostipedia/cosmiccore/common/data/lang/CosmicLangHandler.java @@ -372,5 +372,17 @@ public static void init(RegistrateLangProvider provider) { provider.add("cosmiccore.item.spraycan.tooltip.solvent_mode", "Spraycan in SOLVENT mode"); provider.add("cosmiccore.item.linked_terminal.boundTo", "Bound to %s"); + + // Tinkers + provider.add("item.cosmiccore.wire_cutter", "Wire Cutters"); + provider.add("item.cosmiccore.wire_cutter.description", "Snip wires cleanly with these cutters."); + + provider.add("item.cosmiccore.wrench", "Wrench"); + provider.add("item.cosmiccore.wrench_head", "Wrench Head"); + provider.add("item.cosmiccore.wrench.description", "Rotate the World!"); + + provider.add("item.cosmiccore.screwdriver", "Screwdriver"); + provider.add("item.cosmiccore.screwdriver_head", "Screwdriver Head"); + provider.add("item.cosmiccore.screwdriver.description", "Twist and Turn!"); } } diff --git a/src/main/java/com/ghostipedia/cosmiccore/common/data/recipe/TinkersRecipeTest.java b/src/main/java/com/ghostipedia/cosmiccore/common/data/recipe/TinkersRecipeTest.java new file mode 100644 index 000000000..6e75b6929 --- /dev/null +++ b/src/main/java/com/ghostipedia/cosmiccore/common/data/recipe/TinkersRecipeTest.java @@ -0,0 +1,23 @@ +package com.ghostipedia.cosmiccore.common.data.recipe; + +import com.ghostipedia.cosmiccore.api.recipe.ingredient.TinkerIngredient; + +import com.gregtechceu.gtceu.data.recipe.VanillaRecipeHelper; + +import net.minecraft.data.recipes.FinishedRecipe; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.Items; + +import slimeknights.tconstruct.tools.ToolDefinitions; + +import java.util.function.Consumer; + +public class TinkersRecipeTest { + + public static void init(Consumer provider) { + VanillaRecipeHelper.addShapedRecipe(provider, "tinkertest", + new ItemStack(Items.STRING), "BK ", " ", " ", + 'B', Items.OAK_PLANKS, + 'K', new TinkerIngredient(ToolDefinitions.SCYTHE)); + } +} diff --git a/src/main/java/com/ghostipedia/cosmiccore/common/data/tag/item/CosmicItemTags.java b/src/main/java/com/ghostipedia/cosmiccore/common/data/tag/item/CosmicItemTags.java index 4d92d583a..bb003201d 100644 --- a/src/main/java/com/ghostipedia/cosmiccore/common/data/tag/item/CosmicItemTags.java +++ b/src/main/java/com/ghostipedia/cosmiccore/common/data/tag/item/CosmicItemTags.java @@ -9,4 +9,10 @@ public class CosmicItemTags { public static final TagKey NANOMUSCLE_SPACE_SUITE = TagUtil.createModItemTag("nano_space_suite"); public static final TagKey QUARKTECH_SPACE_SUITE = TagUtil.createModItemTag("quantum_space_suite"); + public static final TagKey WRENCH_HEAD_CAST_MULTI = TagUtil.createModItemTag("casts/multi_use/wrench_head"); + public static final TagKey WRENCH_HEAD_CAST_SINGLE = TagUtil.createModItemTag("casts/single_use/wrench_head"); + public static final TagKey SCREWDRIVER_HEAD_CAST_SINGLE = TagUtil + .createModItemTag("casts/single_use/screwdriver_head"); + public static final TagKey SCREWDRIVER_HEAD_CAST_MULTI = TagUtil + .createModItemTag("casts/multi_use/screwdriver_head_sand"); } diff --git a/src/main/java/com/ghostipedia/cosmiccore/common/item/tcon/CosmicCreativeTinkersTab.java b/src/main/java/com/ghostipedia/cosmiccore/common/item/tcon/CosmicCreativeTinkersTab.java new file mode 100644 index 000000000..96b5c1df0 --- /dev/null +++ b/src/main/java/com/ghostipedia/cosmiccore/common/item/tcon/CosmicCreativeTinkersTab.java @@ -0,0 +1,38 @@ +package com.ghostipedia.cosmiccore.common.item.tcon; + +import net.minecraft.world.item.CreativeModeTab; +import net.minecraft.world.item.ItemStack; + +import slimeknights.mantle.registration.object.EnumObject; +import slimeknights.tconstruct.library.tools.helper.ToolBuildHandler; +import slimeknights.tconstruct.library.tools.item.IModifiable; +import slimeknights.tconstruct.library.tools.part.IMaterialItem; + +import java.util.function.Consumer; +import java.util.function.Supplier; + +public class CosmicCreativeTinkersTab { + + public static void addCreativeTabItems(CreativeModeTab.ItemDisplayParameters itemDisplayParameters, + CreativeModeTab.Output tab) { + Consumer output = tab::accept; + acceptTool(output, CosmicTinkerTools.wireCutter); + acceptTool(output, CosmicTinkerTools.wrench); + acceptTool(output, CosmicTinkerTools.screwdriver); + + acceptPart(output, CosmicTinkerToolPart.wrenchHead); + acceptPart(output, CosmicTinkerToolPart.screwdriverHead); + } + + private static void acceptTool(Consumer output, Supplier tool) { + ToolBuildHandler.addVariants(output, tool.get(), ""); + } + + public static void acceptPart(Consumer output, Supplier item) { + item.get().addVariants(output, ""); + } + + private static void acceptTools(Consumer output, EnumObject tools) { + tools.forEach(tool -> ToolBuildHandler.addVariants(output, tool, "")); + } +} diff --git a/src/main/java/com/ghostipedia/cosmiccore/common/item/tcon/CosmicTconBlockTagProvider.java b/src/main/java/com/ghostipedia/cosmiccore/common/item/tcon/CosmicTconBlockTagProvider.java new file mode 100644 index 000000000..3c27326ca --- /dev/null +++ b/src/main/java/com/ghostipedia/cosmiccore/common/item/tcon/CosmicTconBlockTagProvider.java @@ -0,0 +1,21 @@ +package com.ghostipedia.cosmiccore.common.item.tcon; + +import com.ghostipedia.cosmiccore.CosmicCore; + +import net.minecraft.core.HolderLookup; +import net.minecraft.data.PackOutput; +import net.minecraftforge.common.data.BlockTagsProvider; +import net.minecraftforge.common.data.ExistingFileHelper; + +import java.util.concurrent.CompletableFuture; + +public class CosmicTconBlockTagProvider extends BlockTagsProvider { + + public CosmicTconBlockTagProvider(PackOutput packOutput, CompletableFuture registries, + ExistingFileHelper existingFileHelper) { + super(packOutput, registries, CosmicCore.MOD_ID, existingFileHelper); + } + + @Override + protected void addTags(HolderLookup.Provider provider) {} +} diff --git a/src/main/java/com/ghostipedia/cosmiccore/common/item/tcon/CosmicTconItemTagProvider.java b/src/main/java/com/ghostipedia/cosmiccore/common/item/tcon/CosmicTconItemTagProvider.java new file mode 100644 index 000000000..0d5c3f98c --- /dev/null +++ b/src/main/java/com/ghostipedia/cosmiccore/common/item/tcon/CosmicTconItemTagProvider.java @@ -0,0 +1,54 @@ +package com.ghostipedia.cosmiccore.common.item.tcon; + +import com.ghostipedia.cosmiccore.CosmicCore; + +import com.gregtechceu.gtceu.data.recipe.CustomTags; + +import net.minecraft.core.HolderLookup; +import net.minecraft.data.PackOutput; +import net.minecraft.data.tags.ItemTagsProvider; +import net.minecraft.tags.TagKey; +import net.minecraft.world.item.Item; +import net.minecraft.world.level.ItemLike; +import net.minecraft.world.level.block.Block; +import net.minecraftforge.common.data.ExistingFileHelper; + +import java.util.concurrent.CompletableFuture; + +import static net.minecraft.tags.ItemTags.CLUSTER_MAX_HARVESTABLES; +import static slimeknights.tconstruct.common.TinkerTags.Items.*; + +public class CosmicTconItemTagProvider extends ItemTagsProvider { + + public CosmicTconItemTagProvider(PackOutput output, CompletableFuture lookupProvider, + CompletableFuture> blockTagProvider, + ExistingFileHelper existingFileHelper) { + super(output, lookupProvider, blockTagProvider, CosmicCore.MOD_ID, existingFileHelper); + } + + @Override + protected void addTags(HolderLookup.Provider provider) { + this.addTools(); + } + + private void addTools() { + addToolTags(CosmicTinkerTools.wireCutter, MULTIPART_TOOL, DURABILITY, HARVEST_PRIMARY, CustomTags.WIRE_CUTTERS, + CustomTags.CRAFTING_WIRE_CUTTERS, MELEE_WEAPON, INTERACTABLE_RIGHT, AOE, CLUSTER_MAX_HARVESTABLES, + SMALL_TOOLS, BONUS_SLOTS); + addToolTags(CosmicTinkerTools.wrench, MULTIPART_TOOL, DURABILITY, HARVEST_PRIMARY, CustomTags.WRENCHES, + CustomTags.CRAFTING_WRENCHES, MELEE_WEAPON, INTERACTABLE_RIGHT, AOE, CLUSTER_MAX_HARVESTABLES, + SMALL_TOOLS, BONUS_SLOTS); + + addToolTags(CosmicTinkerTools.screwdriver, MULTIPART_TOOL, DURABILITY, HARVEST_PRIMARY, CustomTags.SCREWDRIVERS, + CustomTags.CRAFTING_SCREWDRIVERS, MELEE_WEAPON, INTERACTABLE_RIGHT, AOE, CLUSTER_MAX_HARVESTABLES, + SMALL_TOOLS, BONUS_SLOTS); + } + + @SafeVarargs + private void addToolTags(ItemLike tool, TagKey... tags) { + Item item = tool.asItem(); + for (TagKey tag : tags) { + this.tag(tag).add(item); + } + } +} diff --git a/src/main/java/com/ghostipedia/cosmiccore/common/item/tcon/CosmicTinkerToolPart.java b/src/main/java/com/ghostipedia/cosmiccore/common/item/tcon/CosmicTinkerToolPart.java new file mode 100644 index 000000000..f8f56e4da --- /dev/null +++ b/src/main/java/com/ghostipedia/cosmiccore/common/item/tcon/CosmicTinkerToolPart.java @@ -0,0 +1,44 @@ +package com.ghostipedia.cosmiccore.common.item.tcon; + +import com.ghostipedia.cosmiccore.CosmicCore; +import com.ghostipedia.cosmiccore.common.data.CosmicCreativeModeTabs; + +import net.minecraft.world.item.Item; +import net.minecraft.world.item.ItemStack; +import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext; + +import slimeknights.mantle.registration.object.ItemObject; +import slimeknights.tconstruct.common.registration.ItemDeferredRegisterExtension; +import slimeknights.tconstruct.library.tools.part.IMaterialItem; +import slimeknights.tconstruct.library.tools.part.ToolPartItem; +import slimeknights.tconstruct.tools.stats.HeadMaterialStats; + +import java.util.function.Consumer; +import java.util.function.Supplier; + +import static com.ghostipedia.cosmiccore.api.registries.CosmicRegistration.REGISTRATE; + +public class CosmicTinkerToolPart { + + static { + REGISTRATE.creativeModeTab(() -> CosmicCreativeModeTabs.COSMIC_CORE_TINKERS_TOOLS); + } + // Tinkers uses Protected in their Registry class to seal it, we should do the same to avoid conflicts!! + protected static final ItemDeferredRegisterExtension COSMIC_TINKER_PARTS = new ItemDeferredRegisterExtension( + CosmicCore.MOD_ID); + protected static final Item.Properties ITEM_PROPS = new Item.Properties(); + + public static final ItemObject wrenchHead = COSMIC_TINKER_PARTS.register("wrench_head", + () -> new ToolPartItem(ITEM_PROPS, HeadMaterialStats.ID)); + + public static final ItemObject screwdriverHead = COSMIC_TINKER_PARTS.register("screwdriver_head", + () -> new ToolPartItem(ITEM_PROPS, HeadMaterialStats.ID)); + + public static void init() { + COSMIC_TINKER_PARTS.register(FMLJavaModLoadingContext.get().getModEventBus()); + } + + private static void accept(Consumer output, Supplier item) { + item.get().addVariants(output, ""); + } +} diff --git a/src/main/java/com/ghostipedia/cosmiccore/common/item/tcon/CosmicTinkerTools.java b/src/main/java/com/ghostipedia/cosmiccore/common/item/tcon/CosmicTinkerTools.java new file mode 100644 index 000000000..effd7a24b --- /dev/null +++ b/src/main/java/com/ghostipedia/cosmiccore/common/item/tcon/CosmicTinkerTools.java @@ -0,0 +1,56 @@ +package com.ghostipedia.cosmiccore.common.item.tcon; + +import com.ghostipedia.cosmiccore.CosmicCore; +import com.ghostipedia.cosmiccore.common.item.tcon.base.ChargableModifiableItem; +import com.ghostipedia.cosmiccore.common.item.tcon.modifiers.CosmicCoreModifiers; + +import net.minecraft.core.BlockPos; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.item.Item; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.level.LevelReader; +import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext; + +import slimeknights.mantle.registration.object.ItemObject; +import slimeknights.tconstruct.common.registration.ItemDeferredRegisterExtension; +import slimeknights.tconstruct.library.tools.item.ModifiableItem; + +public class CosmicTinkerTools { + + protected static final ItemDeferredRegisterExtension COSMIC_TINKER_ITEM = new ItemDeferredRegisterExtension( + CosmicCore.MOD_ID); + + private static final Item.Properties UNSTACKABLE_PROPS = new Item.Properties().stacksTo(1); + + public static final ItemObject file = COSMIC_TINKER_ITEM.register("file", + () -> new ModifiableItem(UNSTACKABLE_PROPS, CosmicToolDefinitions.FILES)); + public static final ItemObject saw = COSMIC_TINKER_ITEM.register("saw", + () -> new ModifiableItem(UNSTACKABLE_PROPS, CosmicToolDefinitions.SAWS)); + public static final ItemObject drill = COSMIC_TINKER_ITEM.register("drill", + () -> new ModifiableItem(UNSTACKABLE_PROPS, CosmicToolDefinitions.DRILLS)); + public static final ItemObject screwdriver = COSMIC_TINKER_ITEM.register("screwdriver", + () -> new ModifiableItem(UNSTACKABLE_PROPS, CosmicToolDefinitions.SCREWDRIVERS)); + public static final ItemObject softMallet = COSMIC_TINKER_ITEM.register("soft_mallet", + () -> new ModifiableItem(UNSTACKABLE_PROPS, CosmicToolDefinitions.SOFT_MALLETS)); + public static final ItemObject plunger = COSMIC_TINKER_ITEM.register("plunger", + () -> new ModifiableItem(UNSTACKABLE_PROPS, CosmicToolDefinitions.PLUNGERS)); + public static final ItemObject crowbar = COSMIC_TINKER_ITEM.register("crowbar", + () -> new ModifiableItem(UNSTACKABLE_PROPS, CosmicToolDefinitions.CROWBARS)); + + public static final ItemObject wireCutter = COSMIC_TINKER_ITEM.register("wire_cutter", + () -> new ModifiableItem(UNSTACKABLE_PROPS, CosmicToolDefinitions.WIRE_CUTTERS)); + + public static final ItemObject wrench = COSMIC_TINKER_ITEM.register("wrench", + () -> new ChargableModifiableItem(UNSTACKABLE_PROPS, CosmicToolDefinitions.WRENCHES) { + + @Override + public boolean doesSneakBypassUse(ItemStack stack, LevelReader level, BlockPos pos, Player player) { + return true; + } + }); + + public static void init() { + COSMIC_TINKER_ITEM.register(FMLJavaModLoadingContext.get().getModEventBus()); + CosmicCoreModifiers.init(); + } +} diff --git a/src/main/java/com/ghostipedia/cosmiccore/common/item/tcon/CosmicToolDefinitionProvider.java b/src/main/java/com/ghostipedia/cosmiccore/common/item/tcon/CosmicToolDefinitionProvider.java new file mode 100644 index 000000000..5e020a251 --- /dev/null +++ b/src/main/java/com/ghostipedia/cosmiccore/common/item/tcon/CosmicToolDefinitionProvider.java @@ -0,0 +1,90 @@ +package com.ghostipedia.cosmiccore.common.item.tcon; + +import com.ghostipedia.cosmiccore.CosmicCore; +import com.ghostipedia.cosmiccore.common.item.tcon.modifiers.CosmicCoreModifiers; + +import com.gregtechceu.gtceu.data.recipe.CustomTags; + +import net.minecraft.data.PackOutput; + +import slimeknights.tconstruct.library.data.tinkering.AbstractToolDefinitionDataProvider; +import slimeknights.tconstruct.library.materials.RandomMaterial; +import slimeknights.tconstruct.library.tools.definition.module.build.SetStatsModule; +import slimeknights.tconstruct.library.tools.definition.module.build.ToolTraitsModule; +import slimeknights.tconstruct.library.tools.definition.module.material.DefaultMaterialsModule; +import slimeknights.tconstruct.library.tools.definition.module.material.PartStatsModule; +import slimeknights.tconstruct.library.tools.definition.module.mining.IsEffectiveModule; +import slimeknights.tconstruct.library.tools.nbt.StatsNBT; +import slimeknights.tconstruct.library.tools.stat.ToolStats; + +import static com.ghostipedia.cosmiccore.common.item.tcon.CosmicTinkerToolPart.screwdriverHead; +import static com.ghostipedia.cosmiccore.common.item.tcon.CosmicTinkerToolPart.wrenchHead; +import static slimeknights.tconstruct.tools.TinkerToolParts.*; + +public class CosmicToolDefinitionProvider extends AbstractToolDefinitionDataProvider { + + public CosmicToolDefinitionProvider(PackOutput packOutput) { + super(packOutput, CosmicCore.MOD_ID); + } + + @Override + protected void addToolDefinitions() { + RandomMaterial tier1Material = RandomMaterial.random().tier(1).build(); + RandomMaterial randomMaterial = RandomMaterial.random().allowHidden().build(); + DefaultMaterialsModule defaultTwoParts = DefaultMaterialsModule.builder().material(tier1Material, tier1Material) + .build(); + DefaultMaterialsModule defaultThreeParts = DefaultMaterialsModule.builder() + .material(tier1Material, tier1Material, tier1Material).build(); + DefaultMaterialsModule defaultFourParts = DefaultMaterialsModule.builder() + .material(tier1Material, tier1Material, tier1Material, tier1Material).build(); + DefaultMaterialsModule defaultFiveParts = DefaultMaterialsModule.builder() + .material(tier1Material, tier1Material, tier1Material, tier1Material, tier1Material).build(); + DefaultMaterialsModule ancientTwoParts = DefaultMaterialsModule.builder() + .material(randomMaterial, randomMaterial).build(); + DefaultMaterialsModule ancientThreeParts = DefaultMaterialsModule.builder() + .material(randomMaterial, randomMaterial, randomMaterial).build(); + + // pickaxes + + define(CosmicToolDefinitions.WIRE_CUTTERS) + .module(PartStatsModule.parts() + .part(smallBlade) + .part(smallBlade) + .part(toolBinding) + .part(toolHandle) + .part(toolHandle).build()) + .module(defaultFourParts) + .module(new SetStatsModule(StatsNBT.builder() + .set(ToolStats.ATTACK_SPEED, 0.9f) + .build())) + .module(IsEffectiveModule.tag(CustomTags.MINEABLE_WITH_CONFIG_VALID_PICKAXE_WIRE_CUTTER)); + + define(CosmicToolDefinitions.SCREWDRIVERS) + .module(PartStatsModule.parts() + .part(screwdriverHead) + .part(toolHandle) + .build()) + .module(defaultTwoParts) + .module(new SetStatsModule(StatsNBT.builder() + .set(ToolStats.ATTACK_SPEED, 0.9f) + + .build())); + + define(CosmicToolDefinitions.WRENCHES) + .module(PartStatsModule.parts() + .part(wrenchHead) + .part(toughBinding) + .part(toolHandle).build()) + .module(defaultThreeParts) + .module(new SetStatsModule(StatsNBT.builder() + .set(ToolStats.ATTACK_SPEED, 0.9f) + .build())) + .module(IsEffectiveModule.tag(CustomTags.MINEABLE_WITH_CONFIG_VALID_PICKAXE_WRENCH)) + .module(ToolTraitsModule.builder().trait(CosmicCoreModifiers.wrenchModeSwitch).build()); + } + + @Override + public String getName() { + return "Cosmic Core Tinker's Construct Tool Definition Data Generator"; + } +} diff --git a/src/main/java/com/ghostipedia/cosmiccore/common/item/tcon/CosmicToolDefinitions.java b/src/main/java/com/ghostipedia/cosmiccore/common/item/tcon/CosmicToolDefinitions.java new file mode 100644 index 000000000..d2bd43b3f --- /dev/null +++ b/src/main/java/com/ghostipedia/cosmiccore/common/item/tcon/CosmicToolDefinitions.java @@ -0,0 +1,19 @@ +package com.ghostipedia.cosmiccore.common.item.tcon; + +import lombok.AccessLevel; +import lombok.NoArgsConstructor; +import slimeknights.tconstruct.library.tools.definition.ToolDefinition; + +@NoArgsConstructor(access = AccessLevel.PRIVATE) +public class CosmicToolDefinitions { + + public static final ToolDefinition WIRE_CUTTERS = ToolDefinition.create(CosmicTinkerTools.wireCutter); + public static final ToolDefinition WRENCHES = ToolDefinition.create(CosmicTinkerTools.wrench); + public static final ToolDefinition FILES = ToolDefinition.create(CosmicTinkerTools.file); + public static final ToolDefinition SAWS = ToolDefinition.create(CosmicTinkerTools.saw); + public static final ToolDefinition DRILLS = ToolDefinition.create(CosmicTinkerTools.drill); + public static final ToolDefinition SCREWDRIVERS = ToolDefinition.create(CosmicTinkerTools.screwdriver); + public static final ToolDefinition SOFT_MALLETS = ToolDefinition.create(CosmicTinkerTools.softMallet); + public static final ToolDefinition PLUNGERS = ToolDefinition.create(CosmicTinkerTools.plunger); + public static final ToolDefinition CROWBARS = ToolDefinition.create(CosmicTinkerTools.crowbar); +} diff --git a/src/main/java/com/ghostipedia/cosmiccore/common/item/tcon/TiconUtils.java b/src/main/java/com/ghostipedia/cosmiccore/common/item/tcon/TiconUtils.java new file mode 100644 index 000000000..51033c83d --- /dev/null +++ b/src/main/java/com/ghostipedia/cosmiccore/common/item/tcon/TiconUtils.java @@ -0,0 +1,43 @@ +package com.ghostipedia.cosmiccore.common.item.tcon; + +import com.gregtechceu.gtceu.api.item.tool.GTToolType; + +import net.minecraft.world.item.ItemStack; + +import slimeknights.tconstruct.library.modifiers.ModifierEntry; +import slimeknights.tconstruct.library.tools.definition.ToolDefinition; +import slimeknights.tconstruct.library.tools.nbt.ToolStack; + +import java.util.List; + +public class TiconUtils { + + public static ToolStack getTool(ItemStack stack) { + return ToolStack.from(stack); + } + + public static List getModifierList(ToolStack tool) { + return tool.getModifierList(); + } + + public static GTToolType getGTToolType(ToolDefinition def) { + if (def == CosmicToolDefinitions.WRENCHES) { + return GTToolType.WRENCH; + } else if (def == CosmicToolDefinitions.WIRE_CUTTERS) { + return GTToolType.WIRE_CUTTER; + } else if (def == CosmicToolDefinitions.SCREWDRIVERS) { + return GTToolType.SCREWDRIVER; + } else if (def == CosmicToolDefinitions.CROWBARS) { + return GTToolType.CROWBAR; + } else if (def == CosmicToolDefinitions.FILES) { + return GTToolType.FILE; + } else if (def == CosmicToolDefinitions.PLUNGERS) { + return GTToolType.PLUNGER; + } else if (def == CosmicToolDefinitions.SOFT_MALLETS) { + return GTToolType.SOFT_MALLET; + } else if (def == CosmicToolDefinitions.SAWS) { + return GTToolType.SAW; + } + return GTToolType.FILE; + } +} diff --git a/src/main/java/com/ghostipedia/cosmiccore/common/item/tcon/base/ChargableModifiableItem.java b/src/main/java/com/ghostipedia/cosmiccore/common/item/tcon/base/ChargableModifiableItem.java new file mode 100644 index 000000000..9ec7b0283 --- /dev/null +++ b/src/main/java/com/ghostipedia/cosmiccore/common/item/tcon/base/ChargableModifiableItem.java @@ -0,0 +1,201 @@ +package com.ghostipedia.cosmiccore.common.item.tcon.base; + +import com.gregtechceu.gtceu.api.GTValues; +import com.gregtechceu.gtceu.api.capability.IElectricItem; + +import net.minecraft.core.Direction; +import net.minecraft.nbt.CompoundTag; +import net.minecraft.nbt.Tag; +import net.minecraft.network.chat.Component; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.TooltipFlag; +import net.minecraft.world.level.Level; +import net.minecraftforge.common.capabilities.Capability; +import net.minecraftforge.common.capabilities.CapabilityManager; +import net.minecraftforge.common.capabilities.CapabilityToken; +import net.minecraftforge.common.capabilities.ICapabilityProvider; +import net.minecraftforge.common.util.LazyOptional; + +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; +import slimeknights.tconstruct.library.tools.definition.ToolDefinition; +import slimeknights.tconstruct.library.tools.item.ModifiableItem; + +import java.util.List; + +public class ChargableModifiableItem extends ModifiableItem { + + public static final long ENERGY_COST = 8 * GTValues.V[1]; + public static final long CAPACITY = 100_000L; + private static final Capability ELECTRIC_CAP = CapabilityManager + .get(new CapabilityToken() {}); + + public ChargableModifiableItem(Properties properties, ToolDefinition toolDefinition) { + super(properties, toolDefinition); + } + + @Override + public @Nullable ICapabilityProvider initCapabilities(ItemStack stack, @Nullable CompoundTag nbt) { + // Example defaults: 100k max charge, LV tier, chargeable + return new ElectricCapability(stack, 100_000L, GTValues.LV, true); + } + + public static class ElectricCapability implements ICapabilityProvider, IElectricItem { + + private final ItemStack itemStack; + private final long baseMaxCharge; + private final int tier; + private final boolean chargeable; + + private final LazyOptional holder = LazyOptional.of(() -> this); + + public ElectricCapability(ItemStack stack, long maxCharge, int tier, boolean chargeable) { + this.itemStack = stack; + this.baseMaxCharge = maxCharge; + this.tier = tier; + this.chargeable = chargeable; + } + + private CompoundTag getOrCreateTag() { + return itemStack.getOrCreateTag(); + } + + public void setCharge(long charge) { + getOrCreateTag().putLong("charge", Math.max(0, Math.min(charge, getMaxCharge()))); + } + + public void setMaxChargeOverride(long charge) { + getOrCreateTag().putLong("maxCharge", charge); + } + + @Override + public @NotNull LazyOptional getCapability(@NotNull Capability capability, + @Nullable Direction direction) { + if (capability == ELECTRIC_CAP) return holder.cast(); + return LazyOptional.empty(); + } + + @Override + public int getTier() { + return this.tier; + } + + @Override + public boolean canProvideChargeExternally() { + return true; + } + + @Override + public boolean chargeable() { + return chargeable; + } + + @Override + public long charge(long amount, int chargerTier, boolean ignoreTransferLimit, boolean simulate) { + if (!chargeable) return 0; + if (chargerTier < tier) return 0; + + long transferLimit = ignoreTransferLimit ? amount : Math.min(amount, getTransferLimit()); + long current = getCharge(); + long max = getMaxCharge(); + long accepted = Math.min(max - current, transferLimit); + + if (!simulate && accepted > 0) { + setCharge(current + accepted); + } + return accepted; + } + + @Override + public long discharge(long amount, int dischargerTier, boolean ignoreTransferLimit, boolean externally, + boolean simulate) { + if (dischargerTier < tier) return 0; + + long transferLimit = ignoreTransferLimit ? amount : Math.min(amount, getTransferLimit()); + long current = getCharge(); + long extracted = Math.min(current, transferLimit); + + if (!simulate && extracted > 0) { + setCharge(current - extracted); + } + return extracted; + } + + @Override + public long getTransferLimit() { + return GTValues.V[getTier()]; + } + + @Override + public long getMaxCharge() { + var nbt = getOrCreateTag(); + if (nbt.contains("maxCharge", Tag.TAG_LONG)) { + return nbt.getLong("maxCharge"); + } + return baseMaxCharge; + } + + @Override + public long getCharge() { + var nbt = getOrCreateTag(); + if (nbt.getBoolean("infinite")) { + return getMaxCharge(); + } + if (nbt.contains("charge", Tag.TAG_LONG)) { + return nbt.getLong("charge"); + } + return 0; // default empty + } + } + + @Override + public boolean isBarVisible(ItemStack stack) { + return true; + } + + public long getCharge(ItemStack stack) { + return stack.getCapability(ELECTRIC_CAP) + .map(IElectricItem::getCharge) + .orElse(0L); + } + + @Override + public void appendHoverText(ItemStack stack, @Nullable Level level, List tooltip, TooltipFlag flag) { + super.appendHoverText(stack, level, tooltip, flag); + + stack.getCapability(ELECTRIC_CAP).ifPresent(cap -> { + long current = cap.getCharge(); + long max = cap.getMaxCharge(); + + // Format numbers with commas for readability + String currentFormatted = String.format("%,d", current); + String maxFormatted = String.format("%,d", max); + + tooltip.add(Component.literal("Charge: " + currentFormatted + " / " + maxFormatted + " EU")); + }); + } + + public long discharge(ItemStack stack, long amount, boolean simulate) { + // get the capability + return stack.getCapability(ELECTRIC_CAP) + .map(cap -> cap.discharge(amount, GTValues.LV, false, true, simulate)) + .orElse(0L); // if no capability, nothing extracted + } + + public long getCharge(ItemStack stack, long amount, boolean simulate) { + // get the capability + return stack.getCapability(ELECTRIC_CAP) + .map(IElectricItem::getCharge) + .orElse(0L); // if no capability, nothing extracted + } + + @Override + public int getBarWidth(ItemStack stack) { + return (int) Math.round(13.0 * getCharge(stack) / (double) CAPACITY); + } + + @Override + public int getBarColor(ItemStack stack) { + return 0x55D8FF; + } +} diff --git a/src/main/java/com/ghostipedia/cosmiccore/common/item/tcon/modifiers/CosmicCoreModifiers.java b/src/main/java/com/ghostipedia/cosmiccore/common/item/tcon/modifiers/CosmicCoreModifiers.java new file mode 100644 index 000000000..1a551af75 --- /dev/null +++ b/src/main/java/com/ghostipedia/cosmiccore/common/item/tcon/modifiers/CosmicCoreModifiers.java @@ -0,0 +1,20 @@ +package com.ghostipedia.cosmiccore.common.item.tcon.modifiers; + +import com.ghostipedia.cosmiccore.CosmicCore; + +import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext; + +import slimeknights.tconstruct.library.modifiers.util.ModifierDeferredRegister; +import slimeknights.tconstruct.library.modifiers.util.StaticModifier; + +public class CosmicCoreModifiers { + + private static final ModifierDeferredRegister MODIFIERS = ModifierDeferredRegister.create(CosmicCore.MOD_ID); + + public static final StaticModifier wrenchModeSwitch = MODIFIERS.register("wrench_switch", + WrenchModeSwitchModifier::new); + + public static void init() { + MODIFIERS.register(FMLJavaModLoadingContext.get().getModEventBus()); + } +} diff --git a/src/main/java/com/ghostipedia/cosmiccore/common/item/tcon/modifiers/CosmicModifierIds.java b/src/main/java/com/ghostipedia/cosmiccore/common/item/tcon/modifiers/CosmicModifierIds.java new file mode 100644 index 000000000..fa9152fd2 --- /dev/null +++ b/src/main/java/com/ghostipedia/cosmiccore/common/item/tcon/modifiers/CosmicModifierIds.java @@ -0,0 +1,10 @@ +package com.ghostipedia.cosmiccore.common.item.tcon.modifiers; + +import com.ghostipedia.cosmiccore.CosmicCore; + +import slimeknights.tconstruct.library.modifiers.ModifierId; + +public class CosmicModifierIds { + + public static final ModifierId wrenchModeBehavior = new ModifierId(CosmicCore.MOD_ID, "wrenchModeBehavior"); +} diff --git a/src/main/java/com/ghostipedia/cosmiccore/common/item/tcon/modifiers/CosmicModifierProvider.java b/src/main/java/com/ghostipedia/cosmiccore/common/item/tcon/modifiers/CosmicModifierProvider.java new file mode 100644 index 000000000..c59bf9271 --- /dev/null +++ b/src/main/java/com/ghostipedia/cosmiccore/common/item/tcon/modifiers/CosmicModifierProvider.java @@ -0,0 +1,24 @@ +package com.ghostipedia.cosmiccore.common.item.tcon.modifiers; + +import net.minecraft.data.PackOutput; + +import slimeknights.tconstruct.library.data.tinkering.AbstractModifierProvider; +import slimeknights.tconstruct.library.modifiers.util.ModifierLevelDisplay; + +public class CosmicModifierProvider extends AbstractModifierProvider { + + public CosmicModifierProvider(PackOutput packOutput) { + super(packOutput); + } + + @Override + protected void addModifiers() { + buildModifier(CosmicModifierIds.wrenchModeBehavior) + .levelDisplay(ModifierLevelDisplay.NO_LEVELS); + } + + @Override + public String getName() { + return ""; + } +} diff --git a/src/main/java/com/ghostipedia/cosmiccore/common/item/tcon/modifiers/EUContainerModifier.java b/src/main/java/com/ghostipedia/cosmiccore/common/item/tcon/modifiers/EUContainerModifier.java new file mode 100644 index 000000000..c100a8413 --- /dev/null +++ b/src/main/java/com/ghostipedia/cosmiccore/common/item/tcon/modifiers/EUContainerModifier.java @@ -0,0 +1,24 @@ +package com.ghostipedia.cosmiccore.common.item.tcon.modifiers; + +import net.minecraft.world.entity.LivingEntity; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.level.Level; + +import org.jetbrains.annotations.Nullable; +import slimeknights.tconstruct.library.modifiers.ModifierEntry; +import slimeknights.tconstruct.library.modifiers.hook.behavior.ToolDamageModifierHook; +import slimeknights.tconstruct.library.modifiers.hook.interaction.InventoryTickModifierHook; +import slimeknights.tconstruct.library.modifiers.impl.NoLevelsModifier; +import slimeknights.tconstruct.library.tools.nbt.IToolStackView; + +public class EUContainerModifier extends NoLevelsModifier implements ToolDamageModifierHook, InventoryTickModifierHook { + + @Override + public int onDamageTool(IToolStackView tool, ModifierEntry modifier, int amount, @Nullable LivingEntity holder) { + return 0; + } + + @Override + public void onInventoryTick(IToolStackView tool, ModifierEntry modifier, Level world, LivingEntity holder, + int itemSlot, boolean isSelected, boolean isCorrectSlot, ItemStack stack) {} +} diff --git a/src/main/java/com/ghostipedia/cosmiccore/common/item/tcon/modifiers/WrenchModeSwitchModifier.java b/src/main/java/com/ghostipedia/cosmiccore/common/item/tcon/modifiers/WrenchModeSwitchModifier.java new file mode 100644 index 000000000..6383d2e88 --- /dev/null +++ b/src/main/java/com/ghostipedia/cosmiccore/common/item/tcon/modifiers/WrenchModeSwitchModifier.java @@ -0,0 +1,72 @@ +package com.ghostipedia.cosmiccore.common.item.tcon.modifiers; + +import com.gregtechceu.gtceu.common.item.tool.behavior.ToolModeSwitchBehavior; + +import net.minecraft.network.chat.Component; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.world.InteractionHand; +import net.minecraft.world.InteractionResult; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.item.TooltipFlag; +import net.minecraftforge.common.ToolAction; + +import lombok.RequiredArgsConstructor; +import org.jetbrains.annotations.Nullable; +import slimeknights.mantle.client.TooltipKey; +import slimeknights.tconstruct.library.modifiers.Modifier; +import slimeknights.tconstruct.library.modifiers.ModifierEntry; +import slimeknights.tconstruct.library.modifiers.ModifierHooks; +import slimeknights.tconstruct.library.modifiers.hook.behavior.ToolActionModifierHook; +import slimeknights.tconstruct.library.modifiers.hook.display.TooltipModifierHook; +import slimeknights.tconstruct.library.modifiers.hook.interaction.GeneralInteractionModifierHook; +import slimeknights.tconstruct.library.modifiers.hook.interaction.InteractionSource; +import slimeknights.tconstruct.library.module.ModuleHookMap; +import slimeknights.tconstruct.library.tools.nbt.IToolStackView; + +import java.util.List; + +@RequiredArgsConstructor +public class WrenchModeSwitchModifier extends Modifier implements GeneralInteractionModifierHook, + ToolActionModifierHook, TooltipModifierHook { + + @Override + protected void registerHooks(ModuleHookMap.Builder hookBuilder) { + super.registerHooks(hookBuilder); + hookBuilder.addHook(this, ModifierHooks.GENERAL_INTERACT, ModifierHooks.TOOL_ACTION, ModifierHooks.TOOLTIP); + } + + private static ResourceLocation MODE_SWITCH = new ResourceLocation("ccore", "mode"); + + @Override + public InteractionResult onToolUse(IToolStackView tool, ModifierEntry modifier, Player player, InteractionHand hand, + InteractionSource source) { + var nbt = tool.getPersistentData(); + boolean shift = player.isShiftKeyDown(); + if (shift && source == InteractionSource.RIGHT_CLICK && !tool.isBroken()) { + nbt.putInt(MODE_SWITCH, + (nbt.getInt(MODE_SWITCH) + 1) % ToolModeSwitchBehavior.WrenchModeType.values().length); + player.displayClientMessage(Component.translatable("metaitem.machine_configuration.mode", + ToolModeSwitchBehavior.WrenchModeType.values()[nbt.getInt(MODE_SWITCH)].getName()), true); + } + return InteractionResult.PASS; + } + + @Override + public void addTooltip(IToolStackView tool, ModifierEntry modifier, @Nullable Player player, + List tooltip, TooltipKey tooltipKey, TooltipFlag tooltipFlag) { + var nbt = tool.getPersistentData(); + tooltip.add(Component.translatable("metaitem.machine_configuration.mode", + ToolModeSwitchBehavior.WrenchModeType.values()[nbt.getInt(MODE_SWITCH)].getName())); + } + + public ToolModeSwitchBehavior.WrenchModeType getType(IToolStackView tool) { + var nbt = tool.getPersistentData(); + return ToolModeSwitchBehavior.WrenchModeType.values()[nbt.getInt(MODE_SWITCH)]; + } + + @Override + public boolean canPerformAction(IToolStackView tool, ModifierEntry modifier, ToolAction toolAction) { + // todo check if we are on wrenches + return true; + } +} diff --git a/src/main/java/com/ghostipedia/cosmiccore/common/machine/multiblock/multi/DawnForge.java b/src/main/java/com/ghostipedia/cosmiccore/common/machine/multiblock/multi/DawnForge.java new file mode 100644 index 000000000..5786acc79 --- /dev/null +++ b/src/main/java/com/ghostipedia/cosmiccore/common/machine/multiblock/multi/DawnForge.java @@ -0,0 +1,57 @@ +package com.ghostipedia.cosmiccore.common.machine.multiblock.multi; + +import com.ghostipedia.cosmiccore.CosmicCore; +import com.ghostipedia.cosmiccore.common.data.CosmicBlocks; +import com.ghostipedia.cosmiccore.common.machine.multiblock.steam.WeakSteamParallelMultiBlockMachine; +import com.ghostipedia.cosmiccore.gtbridge.CosmicRecipeTypes; + +import com.gregtechceu.gtceu.api.data.RotationState; +import com.gregtechceu.gtceu.api.machine.MultiblockMachineDefinition; +import com.gregtechceu.gtceu.api.machine.multiblock.PartAbility; +import com.gregtechceu.gtceu.api.pattern.FactoryBlockPattern; +import com.gregtechceu.gtceu.api.pattern.Predicates; +import com.gregtechceu.gtceu.api.recipe.OverclockingLogic; + +import static com.ghostipedia.cosmiccore.api.machine.part.CosmicPartAbility.IMPORT_EMBER; +import static com.ghostipedia.cosmiccore.api.registries.CosmicRegistration.REGISTRATE; +import static com.ghostipedia.cosmiccore.common.data.CosmicBlocks.LIGHT_DAWNSTONE_CASING; +import static com.gregtechceu.gtceu.api.machine.multiblock.PartAbility.EXPORT_FLUIDS; +import static com.gregtechceu.gtceu.api.pattern.Predicates.*; +import static com.gregtechceu.gtceu.api.pattern.util.RelativeDirection.*; +import static com.gregtechceu.gtceu.common.data.GTRecipeModifiers.ELECTRIC_OVERCLOCK; +import static com.rekindled.embers.RegistryManager.DAWNSTONE_ANVIL; + +public class DawnForge { + + public final static MultiblockMachineDefinition DAWN_FORGE = REGISTRATE + .multiblock("dawn_forge", WeakSteamParallelMultiBlockMachine::new) + .rotationState(RotationState.NON_Y_AXIS) + .recipeType(CosmicRecipeTypes.DAWN_FORGE) + .appearanceBlock(LIGHT_DAWNSTONE_CASING) + .partAppearance((controller, part, side) -> LIGHT_DAWNSTONE_CASING.getDefaultState()) + .recipeModifier(ELECTRIC_OVERCLOCK.apply(OverclockingLogic.NON_PERFECT_OVERCLOCK)) + .pattern(definition -> FactoryBlockPattern.start() + .aisle("ABBBA", "A A", "AA AA", " BBB ", " ") + .aisle("BAAAB", " ", "A A", "BABAB", " B ") + .aisle("BAAAB", " D ", " ", "BBABB", " BBB ") + .aisle("BAAAB", " ", "A A", "BABAB", " B ") + .aisle("ABQBA", "A A", "AA AA", " BBB ", " ") + .where(' ', any()) + .where("Q", controller(blocks(definition.getBlock()))) + .where('A', blocks(CosmicBlocks.REINFORCED_DAWNSTONE_CASING.get())) + .where('B', blocks(CosmicBlocks.LIGHT_DAWNSTONE_CASING.get()) + .or(abilities(PartAbility.IMPORT_ITEMS).setPreviewCount(1)) + .or(abilities(PartAbility.EXPORT_ITEMS).setPreviewCount(1)) + .or(abilities(PartAbility.IMPORT_FLUIDS).setPreviewCount(1)) + .or(abilities(EXPORT_FLUIDS).setPreviewCount(1)) + .or(abilities(IMPORT_EMBER).setPreviewCount(1)) + .or(Predicates.abilities(PartAbility.STEAM).setExactLimit(1))) + .where('D', blocks(DAWNSTONE_ANVIL.get())) + // + .build()) + .workableCasingModel(CosmicCore.id("block/casings/solid/light_dawnstone_casing"), + CosmicCore.id("block/multiblock/dawnforge")) + .register(); + + public static void init() {} +} diff --git a/src/main/java/com/ghostipedia/cosmiccore/common/machine/multiblock/multi/modular/MultiblockInit.java b/src/main/java/com/ghostipedia/cosmiccore/common/machine/multiblock/multi/modular/MultiblockInit.java index 16b5dffa1..e32e45c6e 100644 --- a/src/main/java/com/ghostipedia/cosmiccore/common/machine/multiblock/multi/modular/MultiblockInit.java +++ b/src/main/java/com/ghostipedia/cosmiccore/common/machine/multiblock/multi/modular/MultiblockInit.java @@ -52,5 +52,6 @@ public static void init() { SteamMixer.init(); SufferingChamber.init(); TitanFusion.init(); + DawnForge.init(); } } diff --git a/src/main/java/com/ghostipedia/cosmiccore/gtbridge/CosmicRecipeTypes.java b/src/main/java/com/ghostipedia/cosmiccore/gtbridge/CosmicRecipeTypes.java index 0be306e3f..ccb369f81 100644 --- a/src/main/java/com/ghostipedia/cosmiccore/gtbridge/CosmicRecipeTypes.java +++ b/src/main/java/com/ghostipedia/cosmiccore/gtbridge/CosmicRecipeTypes.java @@ -233,6 +233,12 @@ public class CosmicRecipeTypes { } return ""; }); + public static final GTRecipeType DAWN_FORGE = GTRecipeTypes.register("dawn_forge", GTRecipeTypes.MULTIBLOCK) + .setMaxIOSize(8, 1, 2, 0) + .setSound(DAWN_FORGE_SFX) + .setMaxTooltips(5) + .setProgressBar(CosmicGuiTextures.DAWN_FORGE, ProgressTexture.FillDirection.ALWAYS_FULL); + public static final GTRecipeType STELLAR_IRIS = GTRecipeTypes.register("stellar_iris", GTRecipeTypes.MULTIBLOCK) .setMaxIOSize(16, 16, 16, 16) // .setSound(CosmicSounds.BLACK_HOLE_CRY) diff --git a/src/main/java/com/ghostipedia/cosmiccore/mixin/BlocksMixin.java b/src/main/java/com/ghostipedia/cosmiccore/mixin/BlocksMixin.java new file mode 100644 index 000000000..6a8df1beb --- /dev/null +++ b/src/main/java/com/ghostipedia/cosmiccore/mixin/BlocksMixin.java @@ -0,0 +1,28 @@ +package com.ghostipedia.cosmiccore.mixin; + +import net.minecraft.world.level.block.Blocks; + +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Unique; +import org.spongepowered.asm.mixin.injection.*; + +/** + * @author SpicierSpace153 (kathryne) + * @reason change hardness so tinkers can aoe + */ + +@Unique +@Mixin(value = Blocks.class, remap = true) +public class BlocksMixin { + + @ModifyArg( + method = "", + at = @At( + value = "INVOKE", + target = "Lnet/minecraft/world/level/block/state/BlockBehaviour$Properties;strength(F)Lnet/minecraft/world/level/block/state/BlockBehaviour$Properties;", + ordinal = 127), + index = 0) + private static float cosmiccore$modifyNetherrackHardness(float originalHardness) { + return .8f; + } +} diff --git a/src/main/java/com/ghostipedia/cosmiccore/mixin/gtceu/MetaMachineBlockMixin.java b/src/main/java/com/ghostipedia/cosmiccore/mixin/gtceu/MetaMachineBlockMixin.java new file mode 100644 index 000000000..6dba258ef --- /dev/null +++ b/src/main/java/com/ghostipedia/cosmiccore/mixin/gtceu/MetaMachineBlockMixin.java @@ -0,0 +1,69 @@ +package com.ghostipedia.cosmiccore.mixin.gtceu; + +import com.ghostipedia.cosmiccore.api.misc.IMetaMachineMixin; +import com.ghostipedia.cosmiccore.common.item.tcon.TiconUtils; +import com.ghostipedia.cosmiccore.common.item.tcon.base.ChargableModifiableItem; + +import com.gregtechceu.gtceu.api.block.MetaMachineBlock; +import com.gregtechceu.gtceu.api.item.tool.ToolHelper; +import com.gregtechceu.gtceu.api.machine.MetaMachine; + +import net.minecraft.core.BlockPos; +import net.minecraft.server.level.ServerPlayer; +import net.minecraft.world.InteractionHand; +import net.minecraft.world.InteractionResult; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.context.UseOnContext; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.phys.BlockHitResult; + +import com.llamalad7.mixinextras.sugar.Local; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; +import slimeknights.tconstruct.library.tools.helper.ToolDamageUtil; +import slimeknights.tconstruct.library.tools.item.ModifiableItem; + +@Mixin(value = MetaMachineBlock.class, remap = true) +public class MetaMachineBlockMixin { + + @Inject(method = "use", + at = @At(value = "INVOKE", + target = "Lcom/gregtechceu/gtceu/api/item/tool/ToolHelper;getToolTypes(Lnet/minecraft/world/item/ItemStack;)Ljava/util/Set;"), + cancellable = true) + public void cosmicCore$use(BlockState state, Level world, BlockPos pos, Player player, InteractionHand hand, + BlockHitResult hit, + CallbackInfoReturnable cir, @Local MetaMachine machine, + @Local ItemStack itemStack) { + if (itemStack.getItem() instanceof ModifiableItem ticonTool) { + var result = ((IMetaMachineMixin) machine).ccore$onToolClick(ticonTool, + new UseOnContext(player, hand, hit)); + if (result.getSecond() == InteractionResult.CONSUME && player instanceof ServerPlayer serverPlayer) { + ToolHelper.playToolSound(TiconUtils.getGTToolType(result.getFirst()), serverPlayer); + + if (!serverPlayer.isCreative()) { + if (ticonTool instanceof ChargableModifiableItem electricItem) { + + long energyCost = electricItem.ENERGY_COST; + long available = electricItem.getCharge(itemStack); + if (available >= energyCost) { + electricItem.discharge(itemStack, energyCost, false); + + } else { + ToolDamageUtil.handleDamageItem(itemStack, 1, player, p -> {}); + } + } + + } + } + + if (result.getSecond() != InteractionResult.PASS) { + cir.setReturnValue(result.getSecond()); + cir.cancel(); + } + } + } +} diff --git a/src/main/java/com/ghostipedia/cosmiccore/mixin/gtceu/MetaMachineMixin.java b/src/main/java/com/ghostipedia/cosmiccore/mixin/gtceu/MetaMachineMixin.java new file mode 100644 index 000000000..47f2341a2 --- /dev/null +++ b/src/main/java/com/ghostipedia/cosmiccore/mixin/gtceu/MetaMachineMixin.java @@ -0,0 +1,102 @@ +package com.ghostipedia.cosmiccore.mixin.gtceu; + +import com.ghostipedia.cosmiccore.api.misc.IMetaMachineMixin; +import com.ghostipedia.cosmiccore.common.item.tcon.CosmicToolDefinitions; +import com.ghostipedia.cosmiccore.common.item.tcon.TiconUtils; +import com.ghostipedia.cosmiccore.common.item.tcon.base.ChargableModifiableItem; +import com.ghostipedia.cosmiccore.common.item.tcon.modifiers.WrenchModeSwitchModifier; + +import com.gregtechceu.gtceu.api.capability.ICoverable; +import com.gregtechceu.gtceu.api.machine.MetaMachine; +import com.gregtechceu.gtceu.api.machine.feature.IAutoOutputFluid; +import com.gregtechceu.gtceu.api.machine.feature.IAutoOutputItem; + +import net.minecraft.core.Direction; +import net.minecraft.world.InteractionHand; +import net.minecraft.world.InteractionResult; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.context.UseOnContext; +import net.minecraft.world.phys.BlockHitResult; + +import com.mojang.datafixers.util.Pair; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Unique; +import slimeknights.tconstruct.library.tools.definition.ToolDefinition; +import slimeknights.tconstruct.library.tools.item.ModifiableItem; +import slimeknights.tconstruct.library.tools.nbt.ToolStack; + +@Mixin(MetaMachine.class) +public class MetaMachineMixin implements IMetaMachineMixin { + + public Pair ccore$onToolClick(ModifiableItem ticonItem, UseOnContext context) { + var hitResult = new BlockHitResult(context.getClickLocation(), context.getClickedFace(), + context.getClickedPos(), false); + Direction gridSide = ICoverable.determineGridSideHit(hitResult); + if (gridSide == null) gridSide = hitResult.getDirection(); + if (context.getPlayer() == null) Pair.of(null, InteractionResult.PASS); + if (ticonItem.getToolDefinition() == CosmicToolDefinitions.WRENCHES) { + if (ticonItem instanceof ChargableModifiableItem electricItem) { + ItemStack stack = context.getItemInHand(); + long energyCost = electricItem.ENERGY_COST; + long available = electricItem.getCharge(stack); + if (available >= energyCost) { + electricItem.discharge(stack, energyCost, false); + return Pair.of(ticonItem.getToolDefinition(), + onWrenchClick(context.getPlayer(), context.getHand(), gridSide, hitResult)); + } else { + return Pair.of(ticonItem.getToolDefinition(), InteractionResult.PASS); + } + } + return Pair.of(ticonItem.getToolDefinition(), + onWrenchClick(context.getPlayer(), context.getHand(), gridSide, hitResult)); + } + return Pair.of(null, InteractionResult.PASS); + } + + @Unique + private InteractionResult onWrenchClick(Player playerIn, InteractionHand hand, Direction gridSide, + BlockHitResult hitResult) { + ItemStack stack = playerIn.getItemInHand(hand); + var tool = ToolStack.from(stack); + var modList = TiconUtils.getModifierList(tool); + + if (gridSide == ((MetaMachine) (Object) this).getFrontFacing() && + ((MetaMachine) (Object) this).allowExtendedFacing()) { + ((MetaMachine) (Object) this).setUpwardsFacing( + playerIn.isShiftKeyDown() ? ((MetaMachine) (Object) this).getUpwardsFacing().getCounterClockWise() : + ((MetaMachine) (Object) this).getUpwardsFacing().getClockWise()); + return InteractionResult.sidedSuccess(((MetaMachine) (Object) this).isRemote()); + } + if (playerIn.isShiftKeyDown()) { + if (gridSide == ((MetaMachine) (Object) this).getFrontFacing() || + !((MetaMachine) (Object) this).isFacingValid(gridSide)) { + return InteractionResult.FAIL; + } + ((MetaMachine) (Object) this).setFrontFacing(gridSide); + } else { + for (var mod : modList) { + if (mod.getModifier() instanceof WrenchModeSwitchModifier wmsm) { + var type = wmsm.getType(tool); + + if (type.isItem()) { + if (((MetaMachine) (Object) this) instanceof IAutoOutputItem autoOutputItem && + (!((MetaMachine) (Object) this).hasFrontFacing() || + gridSide != ((MetaMachine) (Object) this).getFrontFacing())) { + autoOutputItem.setOutputFacingItems(gridSide); + } + } + if (type.isFluid()) { + if (((MetaMachine) (Object) this) instanceof IAutoOutputFluid autoOutputFluid && + (!((MetaMachine) (Object) this).hasFrontFacing() || + gridSide != ((MetaMachine) (Object) this).getFrontFacing())) { + autoOutputFluid.setOutputFacingFluids(gridSide); + } + } + + } + } + } + return InteractionResult.sidedSuccess(((MetaMachine) (Object) this).isRemote()); + } +} diff --git a/src/main/java/com/ghostipedia/cosmiccore/mixin/gtceu/PipeBlockEntityMixin.java b/src/main/java/com/ghostipedia/cosmiccore/mixin/gtceu/PipeBlockEntityMixin.java new file mode 100644 index 000000000..5f5cb7ecd --- /dev/null +++ b/src/main/java/com/ghostipedia/cosmiccore/mixin/gtceu/PipeBlockEntityMixin.java @@ -0,0 +1,67 @@ +package com.ghostipedia.cosmiccore.mixin.gtceu; + +import com.ghostipedia.cosmiccore.api.misc.IPipeBlockEntityMixin; +import com.ghostipedia.cosmiccore.common.item.tcon.CosmicToolDefinitions; +import com.ghostipedia.cosmiccore.common.item.tcon.TiconUtils; + +import com.gregtechceu.gtceu.api.blockentity.PipeBlockEntity; +import com.gregtechceu.gtceu.api.capability.ICoverable; +import com.gregtechceu.gtceu.api.cover.CoverBehavior; +import com.gregtechceu.gtceu.api.pipenet.PipeCoverContainer; + +import net.minecraft.core.Direction; +import net.minecraft.world.InteractionHand; +import net.minecraft.world.InteractionResult; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.item.context.UseOnContext; +import net.minecraft.world.phys.BlockHitResult; + +import com.mojang.datafixers.util.Pair; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Shadow; +import slimeknights.tconstruct.library.tools.definition.ToolDefinition; +import slimeknights.tconstruct.library.tools.item.ModifiableItem; + +@Mixin(value = PipeBlockEntity.class, remap = false) +public class PipeBlockEntityMixin implements IPipeBlockEntityMixin { + + @Shadow + public PipeCoverContainer coverContainer; + + @Override + public Pair ccore$onToolClick(ModifiableItem ticonItem, UseOnContext context) { + if (((PipeBlockEntity) (Object) this) == null || context.getPlayer() == null) { + return Pair.of(null, InteractionResult.FAIL); + } + + var playerIn = context.getPlayer(); + var hitResult = new BlockHitResult(context.getClickLocation(), context.getClickedFace(), + context.getClickedPos(), false); + Direction gridSide = ICoverable.determineGridSideHit(hitResult); + CoverBehavior coverBehavior = gridSide == null ? null : coverContainer.getCoverAtSide(gridSide); + var gtToolType = TiconUtils.getGTToolType(ticonItem.getToolDefinition()); + if (((PipeBlockEntity) (Object) this).getPipeTuneTool() == gtToolType) { + return Pair.of(ticonItem.getToolDefinition(), onTuneClick(playerIn, context.getHand(), hitResult)); + } else if (ticonItem.getToolDefinition() == CosmicToolDefinitions.SCREWDRIVERS) { + if (coverBehavior != null) { + return Pair.of(CosmicToolDefinitions.SCREWDRIVERS, + coverBehavior.onScrewdriverClick(playerIn, context.getHand(), hitResult)); + } + } + return Pair.of(null, InteractionResult.sidedSuccess(playerIn.level().isClientSide)); + } + + public InteractionResult onTuneClick(Player player, InteractionHand hand, BlockHitResult hitResult) { + Direction gridSide = ICoverable.determineGridSideHit(hitResult); + if (gridSide == null) gridSide = hitResult.getDirection(); + if (player.isShiftKeyDown() && ((PipeBlockEntity) (Object) this).canHaveBlockedFaces()) { + boolean isBlocked = ((PipeBlockEntity) (Object) this).isBlocked(gridSide); + ((PipeBlockEntity) (Object) this).setBlocked(gridSide, !isBlocked); + } else { + boolean isOpen = ((PipeBlockEntity) (Object) this).isConnected(gridSide); + ((PipeBlockEntity) (Object) this).setConnection(gridSide, !isOpen, false); + } + + return InteractionResult.sidedSuccess(player.level().isClientSide); + } +} diff --git a/src/main/java/com/ghostipedia/cosmiccore/mixin/gtceu/PipeBlockMixin.java b/src/main/java/com/ghostipedia/cosmiccore/mixin/gtceu/PipeBlockMixin.java new file mode 100644 index 000000000..7db3e693c --- /dev/null +++ b/src/main/java/com/ghostipedia/cosmiccore/mixin/gtceu/PipeBlockMixin.java @@ -0,0 +1,67 @@ +package com.ghostipedia.cosmiccore.mixin.gtceu; + +import com.ghostipedia.cosmiccore.api.misc.IPipeBlockEntityMixin; +import com.ghostipedia.cosmiccore.common.item.tcon.TiconUtils; +import com.ghostipedia.cosmiccore.common.item.tcon.base.ChargableModifiableItem; + +import com.gregtechceu.gtceu.api.block.PipeBlock; +import com.gregtechceu.gtceu.api.blockentity.PipeBlockEntity; +import com.gregtechceu.gtceu.api.item.tool.ToolHelper; + +import net.minecraft.core.BlockPos; +import net.minecraft.server.level.ServerPlayer; +import net.minecraft.world.InteractionHand; +import net.minecraft.world.InteractionResult; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.context.UseOnContext; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.phys.BlockHitResult; + +import com.llamalad7.mixinextras.sugar.Local; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; +import slimeknights.tconstruct.library.tools.helper.ToolDamageUtil; +import slimeknights.tconstruct.library.tools.item.ModifiableItem; + +@Mixin(value = PipeBlock.class, remap = true) +public class PipeBlockMixin { + + @Inject(method = "use", + at = @At(value = "INVOKE", + target = "Lcom/gregtechceu/gtceu/api/item/tool/ToolHelper;getToolTypes(Lnet/minecraft/world/item/ItemStack;)Ljava/util/Set;"), + cancellable = true) + public void cosmicCore$use(BlockState state, Level level, BlockPos pos, Player player, InteractionHand hand, + BlockHitResult hit, CallbackInfoReturnable cir, + @Local ItemStack itemStack, @Local PipeBlockEntity pipeBlockEntity) { + if (itemStack.getItem() instanceof ModifiableItem ticonTool) { + var result = ((IPipeBlockEntityMixin) pipeBlockEntity).ccore$onToolClick(ticonTool, + new UseOnContext(player, hand, hit)); + if (result.getSecond() == InteractionResult.CONSUME && player instanceof ServerPlayer serverPlayer) { + ToolHelper.playToolSound(TiconUtils.getGTToolType(result.getFirst()), serverPlayer); + + if (!serverPlayer.isCreative()) { + if (ticonTool instanceof ChargableModifiableItem electricItem) { + long energyCost = electricItem.ENERGY_COST; + long available = electricItem.getCharge(itemStack); + if (available >= energyCost) { + electricItem.discharge(itemStack, energyCost, false); + } else { + ToolDamageUtil.handleDamageItem(itemStack, 1, player, p -> {}); + + } + } else { + ToolDamageUtil.handleDamageItem(itemStack, 1, player, p -> {}); + } + } + } + + if (result.getSecond() != InteractionResult.PASS) { + cir.setReturnValue(result.getSecond()); + } + } + } +} diff --git a/src/main/java/com/ghostipedia/cosmiccore/mixin/tinkers/ModifiableItemMixin.java b/src/main/java/com/ghostipedia/cosmiccore/mixin/tinkers/ModifiableItemMixin.java new file mode 100644 index 000000000..e6ad6daa5 --- /dev/null +++ b/src/main/java/com/ghostipedia/cosmiccore/mixin/tinkers/ModifiableItemMixin.java @@ -0,0 +1,38 @@ +package com.ghostipedia.cosmiccore.mixin.tinkers; + +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.Tier; +import net.minecraft.world.item.TieredItem; +import net.minecraftforge.common.ForgeHooks; + +import org.spongepowered.asm.mixin.Debug; +import org.spongepowered.asm.mixin.Mixin; +import slimeknights.tconstruct.library.tools.helper.ToolDamageUtil; +import slimeknights.tconstruct.library.tools.item.ModifiableItem; +import slimeknights.tconstruct.library.tools.nbt.ToolStack; + +@Debug( + export = true) +@Mixin(value = ModifiableItem.class, remap = false) +public class ModifiableItemMixin extends TieredItem { + + public ModifiableItemMixin(Tier tier, Properties properties) { + super(tier, properties); + } + + @Override + public boolean hasCraftingRemainingItem(ItemStack stack) { + return !ToolStack.from(stack).isBroken(); + } + + @Override + public ItemStack getCraftingRemainingItem(ItemStack itemStack) { + ItemStack stack = itemStack.copy(); + Player player = ForgeHooks.getCraftingPlayer(); + + ToolDamageUtil.handleDamageItem(stack, 1, player, p -> {}); + + return stack; + } +} diff --git a/src/main/java/com/ghostipedia/cosmiccore/mixin/tinkers/ToolHarvestLogicMixin.java b/src/main/java/com/ghostipedia/cosmiccore/mixin/tinkers/ToolHarvestLogicMixin.java new file mode 100644 index 000000000..d7ec1f3fc --- /dev/null +++ b/src/main/java/com/ghostipedia/cosmiccore/mixin/tinkers/ToolHarvestLogicMixin.java @@ -0,0 +1,49 @@ +package com.ghostipedia.cosmiccore.mixin.tinkers; + +import com.ghostipedia.cosmiccore.common.item.tcon.base.ChargableModifiableItem; + +import com.gregtechceu.gtceu.api.GTValues; +import com.gregtechceu.gtceu.api.capability.forge.GTCapability; + +import net.minecraft.world.entity.LivingEntity; +import net.minecraft.world.item.ItemStack; + +import com.llamalad7.mixinextras.injector.wrapoperation.Operation; +import com.llamalad7.mixinextras.injector.wrapoperation.WrapOperation; +import org.spongepowered.asm.mixin.Debug; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.injection.At; +import slimeknights.tconstruct.library.tools.helper.ToolHarvestLogic; +import slimeknights.tconstruct.library.tools.nbt.IToolStackView; +import slimeknights.tconstruct.library.tools.nbt.ToolStack; + +@Debug(export = true) +@Mixin(ToolHarvestLogic.class) +class ToolHarvestLogicMixin { + + @WrapOperation( + remap = false, + method = "breakBlock", + at = @At( + value = "INVOKE", + target = "Lslimeknights/tconstruct/library/tools/helper/ToolDamageUtil;damageAnimated(Lslimeknights/tconstruct/library/tools/nbt/IToolStackView;ILnet/minecraft/world/entity/LivingEntity;)Z")) + private static boolean cosmiccore$RedirectDurability(IToolStackView tool, int amount, LivingEntity entity, + Operation original) { + if (tool instanceof ToolStack toolStack) { + ItemStack stack = toolStack.createStack(); + if (stack.getItem() instanceof ChargableModifiableItem) { + return stack.getCapability(GTCapability.CAPABILITY_ELECTRIC_ITEM) + .map(cap -> { + long energyCost = (long) amount * GTValues.VA[GTValues.LV]; + long extracted = cap.discharge(energyCost, GTValues.LV, false, false, false); + if (extracted >= energyCost) { + return true; // skip durability + } + return original.call(tool, amount, entity); + }) + .orElseGet(() -> original.call(tool, amount, entity)); + } + } + return original.call(tool, amount, entity); + } +} diff --git a/src/main/resources/assets/cosmiccore/models/item/screwdriver.json b/src/main/resources/assets/cosmiccore/models/item/screwdriver.json new file mode 100644 index 000000000..a0b5d0034 --- /dev/null +++ b/src/main/resources/assets/cosmiccore/models/item/screwdriver.json @@ -0,0 +1,20 @@ +{ + "loader": "tconstruct:tool", + "parent": "forge:item/default-tool", + "textures": { + "broken": "cosmiccore:item/tool/screwdriver/broken", + "head": "cosmiccore:item/tool/screwdriver/head_tool", + "handle": "cosmiccore:item/tool/screwdriver/handle" + }, + "modifier_roots": [ "tconstruct:item/tool/pickaxe/modifiers/" ], + "parts": [ + { "name": "handle", "index": 1 }, + { "name": "head", "index": 0 } + ], + "overrides": [ + { + "predicate": { "tconstruct:broken": 1 }, + "model": "cosmiccore:item/tool/screwdriver/broken" + } + ] +} diff --git a/src/main/resources/assets/cosmiccore/models/item/screwdriver_broken.json b/src/main/resources/assets/cosmiccore/models/item/screwdriver_broken.json new file mode 100644 index 000000000..469bcefdd --- /dev/null +++ b/src/main/resources/assets/cosmiccore/models/item/screwdriver_broken.json @@ -0,0 +1,7 @@ +{ + "loader": "tconstruct:tool", + "textures": { + "broken": "cosmiccore:item/tool/screwdriver/broken" + }, + "parts": [ { "name": "broken" } ] +} \ No newline at end of file diff --git a/src/main/resources/assets/cosmiccore/models/item/screwdriver_head.json b/src/main/resources/assets/cosmiccore/models/item/screwdriver_head.json new file mode 100644 index 000000000..546733b7c --- /dev/null +++ b/src/main/resources/assets/cosmiccore/models/item/screwdriver_head.json @@ -0,0 +1,11 @@ +{ + "parent": "forge:item/default", + "loader": "tconstruct:material", + "offset": [ + -2, + 1 + ], + "textures": { + "texture": "cosmiccore:item/tool/screwdriver/head" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/cosmiccore/models/item/wire_cutter.json b/src/main/resources/assets/cosmiccore/models/item/wire_cutter.json new file mode 100644 index 000000000..6b0459955 --- /dev/null +++ b/src/main/resources/assets/cosmiccore/models/item/wire_cutter.json @@ -0,0 +1,22 @@ +{ + "loader": "tconstruct:tool", + "parent": "forge:item/default-tool", + "textures": { + "broken": "cosmiccore:item/tool/wire_cutter/broken", + "head": "cosmiccore:item/tool/wire_cutter/head", + "handle": "cosmiccore:item/tool/wire_cutter/handle", + "binding": "cosmiccore:item/tool/wire_cutter/binding" + }, + "modifier_roots": [ "tconstruct:item/tool/pickaxe/modifiers/" ], + "parts": [ + { "name": "head", "index": 0 }, + { "name": "handle", "index": 1 }, + { "name": "binding","index": 2 } + ], + "overrides": [ + { + "predicate": { "tconstruct:broken": 1 }, + "model": "tconstruct:item/tool/pickaxe/broken" + } + ] +} diff --git a/src/main/resources/assets/cosmiccore/models/item/wire_cutter_broken.json b/src/main/resources/assets/cosmiccore/models/item/wire_cutter_broken.json new file mode 100644 index 000000000..d6ae6bf30 --- /dev/null +++ b/src/main/resources/assets/cosmiccore/models/item/wire_cutter_broken.json @@ -0,0 +1,7 @@ +{ + "loader": "tconstruct:tool", + "textures": { + "broken": "cosmiccore:item/tool/wire_cutter/broken" + }, + "parts": [ { "name": "broken" } ] +} \ No newline at end of file diff --git a/src/main/resources/assets/cosmiccore/models/item/wrench.json b/src/main/resources/assets/cosmiccore/models/item/wrench.json new file mode 100644 index 000000000..268f886d0 --- /dev/null +++ b/src/main/resources/assets/cosmiccore/models/item/wrench.json @@ -0,0 +1,22 @@ +{ + "loader": "tconstruct:tool", + "parent": "forge:item/default-tool", + "textures": { + "broken": "cosmiccore:item/tool/wrench/broken", + "head": "cosmiccore:item/tool/wrench/head_tool", + "binding":"cosmiccore:item/tool/wrench/binding", + "handle": "cosmiccore:item/tool/wrench/handle" + }, + "modifier_roots": [ "tconstruct:item/tool/pickaxe/modifiers/" ], + "parts": [ + { "name": "handle", "index": 2 }, + { "name": "binding", "index": 1 }, + { "name": "head", "index": 0 } + ], + "overrides": [ + { + "predicate": { "tconstruct:broken": 1 }, + "model": "cosmiccore:item/tool/wrench/broken" + } + ] +} diff --git a/src/main/resources/assets/cosmiccore/models/item/wrench_broken.json b/src/main/resources/assets/cosmiccore/models/item/wrench_broken.json new file mode 100644 index 000000000..1c38d4e92 --- /dev/null +++ b/src/main/resources/assets/cosmiccore/models/item/wrench_broken.json @@ -0,0 +1,7 @@ +{ + "loader": "tconstruct:tool", + "textures": { + "broken": "cosmiccore:item/tool/wrench/broken" + }, + "parts": [ { "name": "broken" } ] +} \ No newline at end of file diff --git a/src/main/resources/assets/cosmiccore/models/item/wrench_head.json b/src/main/resources/assets/cosmiccore/models/item/wrench_head.json new file mode 100644 index 000000000..a39c6fbc5 --- /dev/null +++ b/src/main/resources/assets/cosmiccore/models/item/wrench_head.json @@ -0,0 +1,11 @@ +{ + "parent": "forge:item/default", + "loader": "tconstruct:material", + "offset": [ + -2, + 1 + ], + "textures": { + "texture": "cosmiccore:item/tool/wrench/head" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/cosmiccore/sounds/dawnforge.ogg b/src/main/resources/assets/cosmiccore/sounds/dawnforge.ogg new file mode 100644 index 000000000..e6c2f3952 Binary files /dev/null and b/src/main/resources/assets/cosmiccore/sounds/dawnforge.ogg differ diff --git a/src/main/resources/assets/cosmiccore/textures/block/casings/solid/light_dawnstone_casing.png b/src/main/resources/assets/cosmiccore/textures/block/casings/solid/light_dawnstone_casing.png new file mode 100644 index 000000000..05fa52388 Binary files /dev/null and b/src/main/resources/assets/cosmiccore/textures/block/casings/solid/light_dawnstone_casing.png differ diff --git a/src/main/resources/assets/cosmiccore/textures/block/casings/solid/light_dawnstone_casing.png.mcmeta b/src/main/resources/assets/cosmiccore/textures/block/casings/solid/light_dawnstone_casing.png.mcmeta new file mode 100644 index 000000000..d87330f56 --- /dev/null +++ b/src/main/resources/assets/cosmiccore/textures/block/casings/solid/light_dawnstone_casing.png.mcmeta @@ -0,0 +1,5 @@ +{ + "ldlib": { + "connection": "cosmiccore:block/casings/solid/light_dawnstone_casing_ctm" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/cosmiccore/textures/block/casings/solid/light_dawnstone_casing_ctm.png b/src/main/resources/assets/cosmiccore/textures/block/casings/solid/light_dawnstone_casing_ctm.png new file mode 100644 index 000000000..f54c79ff5 Binary files /dev/null and b/src/main/resources/assets/cosmiccore/textures/block/casings/solid/light_dawnstone_casing_ctm.png differ diff --git a/src/main/resources/assets/cosmiccore/textures/block/casings/solid/reinforced_dawnstone_casing.png b/src/main/resources/assets/cosmiccore/textures/block/casings/solid/reinforced_dawnstone_casing.png new file mode 100644 index 000000000..e5f682487 Binary files /dev/null and b/src/main/resources/assets/cosmiccore/textures/block/casings/solid/reinforced_dawnstone_casing.png differ diff --git a/src/main/resources/assets/cosmiccore/textures/block/casings/solid/reinforced_dawnstone_casing.png.mcmeta b/src/main/resources/assets/cosmiccore/textures/block/casings/solid/reinforced_dawnstone_casing.png.mcmeta new file mode 100644 index 000000000..6efb52b31 --- /dev/null +++ b/src/main/resources/assets/cosmiccore/textures/block/casings/solid/reinforced_dawnstone_casing.png.mcmeta @@ -0,0 +1,5 @@ +{ + "ldlib": { + "connection": "cosmiccore:block/casings/solid/reinforced_dawnstone_casing_ctm" + } +} diff --git a/src/main/resources/assets/cosmiccore/textures/block/casings/solid/reinforced_dawnstone_casing_ctm.png b/src/main/resources/assets/cosmiccore/textures/block/casings/solid/reinforced_dawnstone_casing_ctm.png new file mode 100644 index 000000000..aeba84212 Binary files /dev/null and b/src/main/resources/assets/cosmiccore/textures/block/casings/solid/reinforced_dawnstone_casing_ctm.png differ diff --git a/src/main/resources/assets/cosmiccore/textures/block/multiblock/dawnforge/overlay_front.png b/src/main/resources/assets/cosmiccore/textures/block/multiblock/dawnforge/overlay_front.png new file mode 100644 index 000000000..de1abfe72 Binary files /dev/null and b/src/main/resources/assets/cosmiccore/textures/block/multiblock/dawnforge/overlay_front.png differ diff --git a/src/main/resources/assets/cosmiccore/textures/block/multiblock/dawnforge/overlay_front_active.png b/src/main/resources/assets/cosmiccore/textures/block/multiblock/dawnforge/overlay_front_active.png new file mode 100644 index 000000000..5b9e6ea67 Binary files /dev/null and b/src/main/resources/assets/cosmiccore/textures/block/multiblock/dawnforge/overlay_front_active.png differ diff --git a/src/main/resources/assets/cosmiccore/textures/block/multiblock/dawnforge/overlay_front_active_emissive.png b/src/main/resources/assets/cosmiccore/textures/block/multiblock/dawnforge/overlay_front_active_emissive.png new file mode 100644 index 000000000..aac6af2f3 Binary files /dev/null and b/src/main/resources/assets/cosmiccore/textures/block/multiblock/dawnforge/overlay_front_active_emissive.png differ diff --git a/src/main/resources/assets/cosmiccore/textures/block/multiblock/dawnforge/overlay_front_emissive.png b/src/main/resources/assets/cosmiccore/textures/block/multiblock/dawnforge/overlay_front_emissive.png new file mode 100644 index 000000000..c60f7cd03 Binary files /dev/null and b/src/main/resources/assets/cosmiccore/textures/block/multiblock/dawnforge/overlay_front_emissive.png differ diff --git a/src/main/resources/assets/cosmiccore/textures/gui/overlay/dawnforge_slot.png b/src/main/resources/assets/cosmiccore/textures/gui/overlay/dawnforge_slot.png new file mode 100644 index 000000000..f565b1b13 Binary files /dev/null and b/src/main/resources/assets/cosmiccore/textures/gui/overlay/dawnforge_slot.png differ diff --git a/src/main/resources/assets/cosmiccore/textures/gui/overlay/explosive_overlay.png b/src/main/resources/assets/cosmiccore/textures/gui/overlay/explosive_overlay.png new file mode 100644 index 000000000..233553cca Binary files /dev/null and b/src/main/resources/assets/cosmiccore/textures/gui/overlay/explosive_overlay.png differ diff --git a/src/main/resources/assets/cosmiccore/textures/gui/tinker_pattern/screwdriver.png b/src/main/resources/assets/cosmiccore/textures/gui/tinker_pattern/screwdriver.png new file mode 100644 index 000000000..0dd24d8df Binary files /dev/null and b/src/main/resources/assets/cosmiccore/textures/gui/tinker_pattern/screwdriver.png differ diff --git a/src/main/resources/assets/cosmiccore/textures/gui/tinker_pattern/screwdriver_head.png b/src/main/resources/assets/cosmiccore/textures/gui/tinker_pattern/screwdriver_head.png new file mode 100644 index 000000000..0dd24d8df Binary files /dev/null and b/src/main/resources/assets/cosmiccore/textures/gui/tinker_pattern/screwdriver_head.png differ diff --git a/src/main/resources/assets/cosmiccore/textures/gui/tinker_pattern/wrench.png b/src/main/resources/assets/cosmiccore/textures/gui/tinker_pattern/wrench.png new file mode 100644 index 000000000..35114f268 Binary files /dev/null and b/src/main/resources/assets/cosmiccore/textures/gui/tinker_pattern/wrench.png differ diff --git a/src/main/resources/assets/cosmiccore/textures/gui/tinker_pattern/wrench_head.png b/src/main/resources/assets/cosmiccore/textures/gui/tinker_pattern/wrench_head.png new file mode 100644 index 000000000..35114f268 Binary files /dev/null and b/src/main/resources/assets/cosmiccore/textures/gui/tinker_pattern/wrench_head.png differ diff --git a/src/main/resources/assets/cosmiccore/textures/item/ev_wildfire_core.png b/src/main/resources/assets/cosmiccore/textures/item/ev_wildfire_core.png new file mode 100644 index 000000000..9c64c4a3a Binary files /dev/null and b/src/main/resources/assets/cosmiccore/textures/item/ev_wildfire_core.png differ diff --git a/src/main/resources/assets/cosmiccore/textures/item/hv_wildfire_core.png b/src/main/resources/assets/cosmiccore/textures/item/hv_wildfire_core.png new file mode 100644 index 000000000..6ba4eb0d9 Binary files /dev/null and b/src/main/resources/assets/cosmiccore/textures/item/hv_wildfire_core.png differ diff --git a/src/main/resources/assets/cosmiccore/textures/item/iv_wildfire_core.png b/src/main/resources/assets/cosmiccore/textures/item/iv_wildfire_core.png new file mode 100644 index 000000000..20d724bb4 Binary files /dev/null and b/src/main/resources/assets/cosmiccore/textures/item/iv_wildfire_core.png differ diff --git a/src/main/resources/assets/cosmiccore/textures/item/luv_wildfire_core.png b/src/main/resources/assets/cosmiccore/textures/item/luv_wildfire_core.png new file mode 100644 index 000000000..c31223ca8 Binary files /dev/null and b/src/main/resources/assets/cosmiccore/textures/item/luv_wildfire_core.png differ diff --git a/src/main/resources/assets/cosmiccore/textures/item/lv_wildfire_core.png b/src/main/resources/assets/cosmiccore/textures/item/lv_wildfire_core.png new file mode 100644 index 000000000..1ccabe4f0 Binary files /dev/null and b/src/main/resources/assets/cosmiccore/textures/item/lv_wildfire_core.png differ diff --git a/src/main/resources/assets/cosmiccore/textures/item/mv_wildfire_core.png b/src/main/resources/assets/cosmiccore/textures/item/mv_wildfire_core.png new file mode 100644 index 000000000..f19f4dbf8 Binary files /dev/null and b/src/main/resources/assets/cosmiccore/textures/item/mv_wildfire_core.png differ diff --git a/src/main/resources/assets/cosmiccore/textures/item/screwdriver_head_cast.png b/src/main/resources/assets/cosmiccore/textures/item/screwdriver_head_cast.png new file mode 100644 index 000000000..20b8ef85d Binary files /dev/null and b/src/main/resources/assets/cosmiccore/textures/item/screwdriver_head_cast.png differ diff --git a/src/main/resources/assets/cosmiccore/textures/item/screwdriver_head_sand_cast.png b/src/main/resources/assets/cosmiccore/textures/item/screwdriver_head_sand_cast.png new file mode 100644 index 000000000..afd62f5e8 Binary files /dev/null and b/src/main/resources/assets/cosmiccore/textures/item/screwdriver_head_sand_cast.png differ diff --git a/src/main/resources/assets/cosmiccore/textures/item/tool/screwdriver/binding.png b/src/main/resources/assets/cosmiccore/textures/item/tool/screwdriver/binding.png new file mode 100644 index 000000000..3bf2520c2 Binary files /dev/null and b/src/main/resources/assets/cosmiccore/textures/item/tool/screwdriver/binding.png differ diff --git a/src/main/resources/assets/cosmiccore/textures/item/tool/screwdriver/broken.png b/src/main/resources/assets/cosmiccore/textures/item/tool/screwdriver/broken.png new file mode 100644 index 000000000..02985cfd9 Binary files /dev/null and b/src/main/resources/assets/cosmiccore/textures/item/tool/screwdriver/broken.png differ diff --git a/src/main/resources/assets/cosmiccore/textures/item/tool/screwdriver/handle.png b/src/main/resources/assets/cosmiccore/textures/item/tool/screwdriver/handle.png new file mode 100644 index 000000000..cb7837e07 Binary files /dev/null and b/src/main/resources/assets/cosmiccore/textures/item/tool/screwdriver/handle.png differ diff --git a/src/main/resources/assets/cosmiccore/textures/item/tool/screwdriver/handle_tconstruct_unknown.png b/src/main/resources/assets/cosmiccore/textures/item/tool/screwdriver/handle_tconstruct_unknown.png new file mode 100644 index 000000000..7eaf07efd Binary files /dev/null and b/src/main/resources/assets/cosmiccore/textures/item/tool/screwdriver/handle_tconstruct_unknown.png differ diff --git a/src/main/resources/assets/cosmiccore/textures/item/tool/screwdriver/head.png b/src/main/resources/assets/cosmiccore/textures/item/tool/screwdriver/head.png new file mode 100644 index 000000000..266cca114 Binary files /dev/null and b/src/main/resources/assets/cosmiccore/textures/item/tool/screwdriver/head.png differ diff --git a/src/main/resources/assets/cosmiccore/textures/item/tool/screwdriver/head_tconstruct_unknown.png b/src/main/resources/assets/cosmiccore/textures/item/tool/screwdriver/head_tconstruct_unknown.png new file mode 100644 index 000000000..0dd24d8df Binary files /dev/null and b/src/main/resources/assets/cosmiccore/textures/item/tool/screwdriver/head_tconstruct_unknown.png differ diff --git a/src/main/resources/assets/cosmiccore/textures/item/tool/screwdriver/head_tool.png b/src/main/resources/assets/cosmiccore/textures/item/tool/screwdriver/head_tool.png new file mode 100644 index 000000000..73cf86da7 Binary files /dev/null and b/src/main/resources/assets/cosmiccore/textures/item/tool/screwdriver/head_tool.png differ diff --git a/src/main/resources/assets/cosmiccore/textures/item/tool/screwdriver/head_tool_tconstruct_unknown.png b/src/main/resources/assets/cosmiccore/textures/item/tool/screwdriver/head_tool_tconstruct_unknown.png new file mode 100644 index 000000000..0dd24d8df Binary files /dev/null and b/src/main/resources/assets/cosmiccore/textures/item/tool/screwdriver/head_tool_tconstruct_unknown.png differ diff --git a/src/main/resources/assets/cosmiccore/textures/item/tool/wire_cutter/binding.png b/src/main/resources/assets/cosmiccore/textures/item/tool/wire_cutter/binding.png new file mode 100644 index 000000000..be0be4a32 Binary files /dev/null and b/src/main/resources/assets/cosmiccore/textures/item/tool/wire_cutter/binding.png differ diff --git a/src/main/resources/assets/cosmiccore/textures/item/tool/wire_cutter/broken.png b/src/main/resources/assets/cosmiccore/textures/item/tool/wire_cutter/broken.png new file mode 100644 index 000000000..85f306194 Binary files /dev/null and b/src/main/resources/assets/cosmiccore/textures/item/tool/wire_cutter/broken.png differ diff --git a/src/main/resources/assets/cosmiccore/textures/item/tool/wire_cutter/handle.png b/src/main/resources/assets/cosmiccore/textures/item/tool/wire_cutter/handle.png new file mode 100644 index 000000000..51f4b5a96 Binary files /dev/null and b/src/main/resources/assets/cosmiccore/textures/item/tool/wire_cutter/handle.png differ diff --git a/src/main/resources/assets/cosmiccore/textures/item/tool/wire_cutter/head.png b/src/main/resources/assets/cosmiccore/textures/item/tool/wire_cutter/head.png new file mode 100644 index 000000000..a15cb9345 Binary files /dev/null and b/src/main/resources/assets/cosmiccore/textures/item/tool/wire_cutter/head.png differ diff --git a/src/main/resources/assets/cosmiccore/textures/item/tool/wrench/binding.png b/src/main/resources/assets/cosmiccore/textures/item/tool/wrench/binding.png new file mode 100644 index 000000000..3bf2520c2 Binary files /dev/null and b/src/main/resources/assets/cosmiccore/textures/item/tool/wrench/binding.png differ diff --git a/src/main/resources/assets/cosmiccore/textures/item/tool/wrench/broken.png b/src/main/resources/assets/cosmiccore/textures/item/tool/wrench/broken.png new file mode 100644 index 000000000..20f026a31 Binary files /dev/null and b/src/main/resources/assets/cosmiccore/textures/item/tool/wrench/broken.png differ diff --git a/src/main/resources/assets/cosmiccore/textures/item/tool/wrench/handle.png b/src/main/resources/assets/cosmiccore/textures/item/tool/wrench/handle.png new file mode 100644 index 000000000..69a42d35c Binary files /dev/null and b/src/main/resources/assets/cosmiccore/textures/item/tool/wrench/handle.png differ diff --git a/src/main/resources/assets/cosmiccore/textures/item/tool/wrench/head.png b/src/main/resources/assets/cosmiccore/textures/item/tool/wrench/head.png new file mode 100644 index 000000000..cda11fbde Binary files /dev/null and b/src/main/resources/assets/cosmiccore/textures/item/tool/wrench/head.png differ diff --git a/src/main/resources/assets/cosmiccore/textures/item/tool/wrench/head_tconstruct_unknown.png b/src/main/resources/assets/cosmiccore/textures/item/tool/wrench/head_tconstruct_unknown.png new file mode 100644 index 000000000..35114f268 Binary files /dev/null and b/src/main/resources/assets/cosmiccore/textures/item/tool/wrench/head_tconstruct_unknown.png differ diff --git a/src/main/resources/assets/cosmiccore/textures/item/tool/wrench/head_tool.png b/src/main/resources/assets/cosmiccore/textures/item/tool/wrench/head_tool.png new file mode 100644 index 000000000..b9b348049 Binary files /dev/null and b/src/main/resources/assets/cosmiccore/textures/item/tool/wrench/head_tool.png differ diff --git a/src/main/resources/assets/cosmiccore/textures/item/wrench_head_cast.png b/src/main/resources/assets/cosmiccore/textures/item/wrench_head_cast.png new file mode 100644 index 000000000..8ddf6600b Binary files /dev/null and b/src/main/resources/assets/cosmiccore/textures/item/wrench_head_cast.png differ diff --git a/src/main/resources/assets/cosmiccore/textures/item/wrench_head_sand_cast.png b/src/main/resources/assets/cosmiccore/textures/item/wrench_head_sand_cast.png new file mode 100644 index 000000000..c01962a6d Binary files /dev/null and b/src/main/resources/assets/cosmiccore/textures/item/wrench_head_sand_cast.png differ diff --git a/src/main/resources/assets/cosmiccore/textures/item/zpm_wildfire_core.png b/src/main/resources/assets/cosmiccore/textures/item/zpm_wildfire_core.png new file mode 100644 index 000000000..195017bb2 Binary files /dev/null and b/src/main/resources/assets/cosmiccore/textures/item/zpm_wildfire_core.png differ diff --git a/src/main/resources/assets/cosmiccore/ui/recipe_type/dawn_forge.rtui b/src/main/resources/assets/cosmiccore/ui/recipe_type/dawn_forge.rtui new file mode 100644 index 000000000..8f18e304e Binary files /dev/null and b/src/main/resources/assets/cosmiccore/ui/recipe_type/dawn_forge.rtui differ diff --git a/src/main/resources/cosmiccore.mixins.json b/src/main/resources/cosmiccore.mixins.json index dd63e2e8a..35bee714f 100644 --- a/src/main/resources/cosmiccore.mixins.json +++ b/src/main/resources/cosmiccore.mixins.json @@ -20,6 +20,7 @@ "ApotheosisRecipeHelperMixin", "ApothSmithingCategoryMixin", "BlockPatternMixin", + "BlocksMixin", "ComponentItemMixin", "DivingHelmetItemMixin", "GTValuesMixin", @@ -39,10 +40,15 @@ "ae2.eudisplay.EUAddSettingMixin", "client.CosmicCoreRemainingAirOverlayMixin", "emi.EmiApiMixin", + "gtceu.MetaMachineBlockEntityMixin", + "gtceu.MetaMachineBlockMixin", + "gtceu.MetaMachineMixin", + "gtceu.PipeBlockEntityMixin", + "gtceu.PipeBlockMixin", "lso.FrostbiteEffectMixin", "lso.HeatstrokeEffectMixin", "lso.TemperatureCapabilityMixin", - "gtceu.MetaMachineBlockEntityMixin" + "tinkers.ModifiableItemMixin" ], "injectors": { "defaultRequire": 1, diff --git a/src/main/resources/data/cosmiccore/recipes/tconstruct/casting/screwdriver_head_cast_from_gold.json b/src/main/resources/data/cosmiccore/recipes/tconstruct/casting/screwdriver_head_cast_from_gold.json new file mode 100644 index 000000000..26aa2dfa6 --- /dev/null +++ b/src/main/resources/data/cosmiccore/recipes/tconstruct/casting/screwdriver_head_cast_from_gold.json @@ -0,0 +1,9 @@ +{ + "type": "tconstruct:casting_table", + "cast": { "item": "cosmiccore:screwdriver_head" }, + "cast_consumed": false, + "fluid": { "tag": "forge:molten_gold", "amount": 288 }, + "result": { "item": "cosmiccore:screwdriver_head_cast" }, + "cooling_time": 80, + "switch_slots": true +} \ No newline at end of file diff --git a/src/main/resources/data/cosmiccore/recipes/tconstruct/casting/screwdriver_head_cast_from_sand.json b/src/main/resources/data/cosmiccore/recipes/tconstruct/casting/screwdriver_head_cast_from_sand.json new file mode 100644 index 000000000..d86f29ec2 --- /dev/null +++ b/src/main/resources/data/cosmiccore/recipes/tconstruct/casting/screwdriver_head_cast_from_sand.json @@ -0,0 +1,9 @@ +{ + "type": "tconstruct:casting_table", + "cast": { "item": "cosmiccore:screwdriver_head" }, + "cast_consumed": true, + "fluid": { "tag": "forge:molten_gold", "amount": 288 }, + "result": { "item": "cosmiccore:screwdriver_head_cast" }, + "cooling_time": 80, + "switch_slots": true +} \ No newline at end of file diff --git a/src/main/resources/data/cosmiccore/recipes/tconstruct/casting/wrench_head_cast_from_gold.json b/src/main/resources/data/cosmiccore/recipes/tconstruct/casting/wrench_head_cast_from_gold.json new file mode 100644 index 000000000..eaa0aae60 --- /dev/null +++ b/src/main/resources/data/cosmiccore/recipes/tconstruct/casting/wrench_head_cast_from_gold.json @@ -0,0 +1,9 @@ +{ + "type": "tconstruct:casting_table", + "cast": { "item": "cosmiccore:wrench_head" }, + "cast_consumed": false, + "fluid": { "tag": "forge:molten_gold", "amount": 288 }, + "result": { "item": "cosmiccore:wrench_head_cast" }, + "cooling_time": 80, + "switch_slots": true +} \ No newline at end of file diff --git a/src/main/resources/data/cosmiccore/recipes/tconstruct/casting/wrench_head_cast_from_sand.json b/src/main/resources/data/cosmiccore/recipes/tconstruct/casting/wrench_head_cast_from_sand.json new file mode 100644 index 000000000..6e7adadf1 --- /dev/null +++ b/src/main/resources/data/cosmiccore/recipes/tconstruct/casting/wrench_head_cast_from_sand.json @@ -0,0 +1,9 @@ +{ + "type": "tconstruct:casting_table", + "cast": { "item": "cosmiccore:wrench_head" }, + "cast_consumed": true, + "fluid": { "tag": "forge:molten_gold", "amount": 288 }, + "result": { "item": "cosmiccore:wrench_head_cast" }, + "cooling_time": 80, + "switch_slots": true +} \ No newline at end of file diff --git a/src/main/resources/data/cosmiccore/recipes/tconstruct/materials/neutronium.json b/src/main/resources/data/cosmiccore/recipes/tconstruct/materials/neutronium.json new file mode 100644 index 000000000..7af3e1ab5 --- /dev/null +++ b/src/main/resources/data/cosmiccore/recipes/tconstruct/materials/neutronium.json @@ -0,0 +1,8 @@ +{ + "hidden": false, + "tier": 4, + "sortOrder": 50, + "craftable": false, + "castable": false, + "textColor": "9AD3FF" +} diff --git a/src/main/resources/data/cosmiccore/recipes/tconstruct/parts/screwdriver_head_casting_gold.json b/src/main/resources/data/cosmiccore/recipes/tconstruct/parts/screwdriver_head_casting_gold.json new file mode 100644 index 000000000..ea979a45e --- /dev/null +++ b/src/main/resources/data/cosmiccore/recipes/tconstruct/parts/screwdriver_head_casting_gold.json @@ -0,0 +1,7 @@ +{ + "type": "tconstruct:table_casting_material", + "cast": { "tag": "cosmiccore:casts/multi_use/screwdriver_head" }, + "cast_consumed": false, + "item_cost": 2, + "result": "cosmiccore:screwdriver_head" +} \ No newline at end of file diff --git a/src/main/resources/data/cosmiccore/recipes/tconstruct/parts/screwdriver_head_casting_sand.json b/src/main/resources/data/cosmiccore/recipes/tconstruct/parts/screwdriver_head_casting_sand.json new file mode 100644 index 000000000..5f2b1dfab --- /dev/null +++ b/src/main/resources/data/cosmiccore/recipes/tconstruct/parts/screwdriver_head_casting_sand.json @@ -0,0 +1,7 @@ +{ + "type": "tconstruct:table_casting_material", + "cast": { "tag": "cosmiccore:casts/multi_use/screwdriver_head_sand" }, + "cast_consumed": true, + "item_cost": 2, + "result": "cosmiccore:screwdriver_head" +} \ No newline at end of file diff --git a/src/main/resources/data/cosmiccore/recipes/tconstruct/parts/wrench_head_casting_gold.json b/src/main/resources/data/cosmiccore/recipes/tconstruct/parts/wrench_head_casting_gold.json new file mode 100644 index 000000000..9c24ec182 --- /dev/null +++ b/src/main/resources/data/cosmiccore/recipes/tconstruct/parts/wrench_head_casting_gold.json @@ -0,0 +1,7 @@ +{ + "type": "tconstruct:table_casting_material", + "cast": { "tag": "cosmiccore:casts/multi_use/wrench_head" }, + "cast_consumed": false, + "item_cost": 2, + "result": "cosmiccore:wrench_head" +} \ No newline at end of file diff --git a/src/main/resources/data/cosmiccore/recipes/tconstruct/parts/wrench_head_casting_sand.json b/src/main/resources/data/cosmiccore/recipes/tconstruct/parts/wrench_head_casting_sand.json new file mode 100644 index 000000000..25277da3f --- /dev/null +++ b/src/main/resources/data/cosmiccore/recipes/tconstruct/parts/wrench_head_casting_sand.json @@ -0,0 +1,7 @@ +{ + "type": "tconstruct:table_casting_material", + "cast": { "tag": "cosmiccore:casts/multi_use/wrench_head_sand" }, + "cast_consumed": true, + "item_cost": 2, + "result": "cosmiccore:wrench_head" +} \ No newline at end of file diff --git a/src/main/resources/data/cosmiccore/recipes/tools/parts/screwdriver_head.json b/src/main/resources/data/cosmiccore/recipes/tools/parts/screwdriver_head.json new file mode 100644 index 000000000..dc7fe8cac --- /dev/null +++ b/src/main/resources/data/cosmiccore/recipes/tools/parts/screwdriver_head.json @@ -0,0 +1,7 @@ +{ + "type": "tconstruct:part_builder", + "pattern": "cosmiccore:screwdriver_head", + "pattern_item": { "item": "tconstruct:pattern" }, + "cost": 1, + "result": { "item": "cosmiccore:screwdriver_head" } +} diff --git a/src/main/resources/data/cosmiccore/recipes/tools/parts/wrench_head.json b/src/main/resources/data/cosmiccore/recipes/tools/parts/wrench_head.json new file mode 100644 index 000000000..f38841e74 --- /dev/null +++ b/src/main/resources/data/cosmiccore/recipes/tools/parts/wrench_head.json @@ -0,0 +1,7 @@ +{ + "type": "tconstruct:part_builder", + "pattern": "cosmiccore:wrench_head", + "pattern_item": { "item": "tconstruct:pattern" }, + "cost": 2, + "result": { "item": "cosmiccore:wrench_head" } +} diff --git a/src/main/resources/data/cosmiccore/recipes/tools/screwdriver.json b/src/main/resources/data/cosmiccore/recipes/tools/screwdriver.json new file mode 100644 index 000000000..3cb9659a0 --- /dev/null +++ b/src/main/resources/data/cosmiccore/recipes/tools/screwdriver.json @@ -0,0 +1,7 @@ +{ + "type": "tconstruct:tool_building", + "result": "cosmiccore:screwdriver", + "layout_slot": "cosmiccore:screwdriver" +} + + diff --git a/src/main/resources/data/cosmiccore/recipes/tools/wire_cutter.json b/src/main/resources/data/cosmiccore/recipes/tools/wire_cutter.json new file mode 100644 index 000000000..7b6496bca --- /dev/null +++ b/src/main/resources/data/cosmiccore/recipes/tools/wire_cutter.json @@ -0,0 +1,4 @@ +{ + "type": "tconstruct:tool_building", + "result": "cosmiccore:wire_cutter" +} \ No newline at end of file diff --git a/src/main/resources/data/cosmiccore/recipes/tools/wrench.json b/src/main/resources/data/cosmiccore/recipes/tools/wrench.json new file mode 100644 index 000000000..bb8ade177 --- /dev/null +++ b/src/main/resources/data/cosmiccore/recipes/tools/wrench.json @@ -0,0 +1,7 @@ +{ + "type": "tconstruct:tool_building", + "result": "cosmiccore:wrench", + "layout_slot": "cosmiccore:wrench" +} + + diff --git a/src/main/resources/data/cosmiccore/tags/items/tconstruct/tool_parts.json b/src/main/resources/data/cosmiccore/tags/items/tconstruct/tool_parts.json new file mode 100644 index 000000000..5cdbafba6 --- /dev/null +++ b/src/main/resources/data/cosmiccore/tags/items/tconstruct/tool_parts.json @@ -0,0 +1,6 @@ +{ + "values": [ + "cosmiccore:wrench_head", + "cosmiccore:screwdriver_head" + ] +} \ No newline at end of file diff --git a/src/main/resources/data/cosmiccore/tinkering/station_layouts/screwdriver.json b/src/main/resources/data/cosmiccore/tinkering/station_layouts/screwdriver.json new file mode 100644 index 000000000..7579671b4 --- /dev/null +++ b/src/main/resources/data/cosmiccore/tinkering/station_layouts/screwdriver.json @@ -0,0 +1,26 @@ +{ + "translation_key": "tool.cosmiccore.screwdriver", + "sortIndex": 26, + + "icon": { + "item": "cosmiccore:screwdriver", + "nbt": "{Damage:0,tic_broken:0b,tic_display:1b,tic_materials:[\"tconstruct:ui_render#head\",\"tconstruct:ui_render#handle\"]}" + }, + + "input_slots": [ + { + "filter": { "item": "cosmiccore:screwdriver_head" }, + "icon": "cosmiccore:screwdriver_head", + "translation_key": "tool.cosmiccore.screwdriver.head", + "x": 44, + "y": 29 + }, + { + "filter": { "item": "tconstruct:tool_handle" }, + "icon": "tconstruct:tool_handle", + "translation_key": "item.tconstruct.tool_handle", + "x": 21, + "y": 52 + } + ] +} diff --git a/src/main/resources/data/cosmiccore/tinkering/station_layouts/wire_cutter.json b/src/main/resources/data/cosmiccore/tinkering/station_layouts/wire_cutter.json new file mode 100644 index 000000000..451d7164a --- /dev/null +++ b/src/main/resources/data/cosmiccore/tinkering/station_layouts/wire_cutter.json @@ -0,0 +1,45 @@ +{ + "icon": { + "item": "cosmiccore:wire_cutter", + "nbt": "{Damage:0,tic_broken:0b,tic_display:1b,tic_materials:[\"tconstruct:ui_render#head\",\"tconstruct:ui_render#head\",\"tconstruct:ui_render#extra\",\"tconstruct:ui_render#handle\",\"tconstruct:ui_render#handle\"]}" + }, + "input_slots": [ + { + "filter": { "item": "tconstruct:small_blade" }, + "icon": "tconstruct:small_blade", + "translation_key": "item.tconstruct.small_blade", + "x": 44, + "y": 29 + }, + { + "filter": { "item": "tconstruct:small_blade" }, + "icon": "tconstruct:small_blade", + "translation_key": "item.tconstruct.small_blade", + "x": 25, + "y": 20 + }, + { + "filter": { "item": "tconstruct:tool_binding" }, + "icon": "tconstruct:tool_binding", + "translation_key": "item.tconstruct.tool_binding", + "x": 50, + "y": 48 + }, + { + "filter": { "item": "tconstruct:tool_handle" }, + "icon": "tconstruct:tool_handle", + "translation_key": "item.tconstruct.tool_handle", + "x": 21, + "y": 52 + }, + { + "filter": { "item": "tconstruct:tool_handle" }, + "icon": "tconstruct:tool_handle", + "translation_key": "item.tconstruct.tool_handle", + "x": 70, + "y": 36 + } + ], + "sortIndex": 25, + "translation_key": "item.cosmiccore.wire_cutter" +} diff --git a/src/main/resources/data/cosmiccore/tinkering/station_layouts/wrench.json b/src/main/resources/data/cosmiccore/tinkering/station_layouts/wrench.json new file mode 100644 index 000000000..0eaf2f040 --- /dev/null +++ b/src/main/resources/data/cosmiccore/tinkering/station_layouts/wrench.json @@ -0,0 +1,15 @@ +{ + "translation_key": "item.cosmiccore.wrench", + "sortIndex": 24, + + "icon": { + "item": "cosmiccore:wrench", + "nbt": "{Damage:0,tic_broken:0b,tic_display:1b,tic_materials:[\"tconstruct:ui_render#head\",\"tconstruct:ui_render#extra\",\"tconstruct:ui_render#handle\"]}" + }, + + "input_slots": [ + { "filter": { "item": "cosmiccore:wrench_head" }, "icon": "cosmiccore:wrench_head", "translation_key": "item.cosmiccore.wrench_head", "x": 25, "y": 20 }, + { "filter": { "item": "tconstruct:tough_binding" }, "icon": "tconstruct:tough_binding", "translation_key": "item.tconstruct.tool_binding","x": 44, "y": 29}, + { "filter": { "item": "tconstruct:tool_handle" }, "icon": "tconstruct:tool_handle", "translation_key": "item.tconstruct.tool_handle", "x": 21, "y": 52 } + ] +} diff --git a/src/main/templates/META-INF/mods.toml b/src/main/templates/META-INF/mods.toml index aa589ff7f..9f35999dd 100644 --- a/src/main/templates/META-INF/mods.toml +++ b/src/main/templates/META-INF/mods.toml @@ -44,4 +44,12 @@ description = "${mod_description}" mandatory=true versionRange="[1.20.1-1.20.1-2.0.15,)" ordering="BEFORE" - side="BOTH" \ No newline at end of file + side="BOTH" + +[[dependencies.${mod_id}]] +modId = "tconstruct" +mandatory = true +embedded = true +versionRange = "[1.20.1-3.9.2.37,)" +ordering = "AFTER" +side = "BOTH" \ No newline at end of file