diff --git a/src/generated/resources/assets/gtmutils/blockstates/ev_auto_charger_4x.json b/src/generated/resources/assets/gtmutils/blockstates/ev_auto_charger_4x.json new file mode 100644 index 0000000..91dc8a4 --- /dev/null +++ b/src/generated/resources/assets/gtmutils/blockstates/ev_auto_charger_4x.json @@ -0,0 +1,28 @@ +{ + "variants": { + "facing=down": { + "model": "gtmutils:block/machine/ev_auto_charger_4x", + "x": 90 + }, + "facing=east": { + "model": "gtmutils:block/machine/ev_auto_charger_4x", + "y": 90 + }, + "facing=north": { + "model": "gtmutils:block/machine/ev_auto_charger_4x" + }, + "facing=south": { + "model": "gtmutils:block/machine/ev_auto_charger_4x", + "y": 180 + }, + "facing=up": { + "gtceu:z": 180, + "model": "gtmutils:block/machine/ev_auto_charger_4x", + "x": 270 + }, + "facing=west": { + "model": "gtmutils:block/machine/ev_auto_charger_4x", + "y": 270 + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/gtmutils/blockstates/hv_auto_charger_4x.json b/src/generated/resources/assets/gtmutils/blockstates/hv_auto_charger_4x.json new file mode 100644 index 0000000..8d66c32 --- /dev/null +++ b/src/generated/resources/assets/gtmutils/blockstates/hv_auto_charger_4x.json @@ -0,0 +1,28 @@ +{ + "variants": { + "facing=down": { + "model": "gtmutils:block/machine/hv_auto_charger_4x", + "x": 90 + }, + "facing=east": { + "model": "gtmutils:block/machine/hv_auto_charger_4x", + "y": 90 + }, + "facing=north": { + "model": "gtmutils:block/machine/hv_auto_charger_4x" + }, + "facing=south": { + "model": "gtmutils:block/machine/hv_auto_charger_4x", + "y": 180 + }, + "facing=up": { + "gtceu:z": 180, + "model": "gtmutils:block/machine/hv_auto_charger_4x", + "x": 270 + }, + "facing=west": { + "model": "gtmutils:block/machine/hv_auto_charger_4x", + "y": 270 + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/gtmutils/blockstates/iv_auto_charger_4x.json b/src/generated/resources/assets/gtmutils/blockstates/iv_auto_charger_4x.json new file mode 100644 index 0000000..539a033 --- /dev/null +++ b/src/generated/resources/assets/gtmutils/blockstates/iv_auto_charger_4x.json @@ -0,0 +1,28 @@ +{ + "variants": { + "facing=down": { + "model": "gtmutils:block/machine/iv_auto_charger_4x", + "x": 90 + }, + "facing=east": { + "model": "gtmutils:block/machine/iv_auto_charger_4x", + "y": 90 + }, + "facing=north": { + "model": "gtmutils:block/machine/iv_auto_charger_4x" + }, + "facing=south": { + "model": "gtmutils:block/machine/iv_auto_charger_4x", + "y": 180 + }, + "facing=up": { + "gtceu:z": 180, + "model": "gtmutils:block/machine/iv_auto_charger_4x", + "x": 270 + }, + "facing=west": { + "model": "gtmutils:block/machine/iv_auto_charger_4x", + "y": 270 + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/gtmutils/blockstates/luv_auto_charger_4x.json b/src/generated/resources/assets/gtmutils/blockstates/luv_auto_charger_4x.json new file mode 100644 index 0000000..86d06a4 --- /dev/null +++ b/src/generated/resources/assets/gtmutils/blockstates/luv_auto_charger_4x.json @@ -0,0 +1,28 @@ +{ + "variants": { + "facing=down": { + "model": "gtmutils:block/machine/luv_auto_charger_4x", + "x": 90 + }, + "facing=east": { + "model": "gtmutils:block/machine/luv_auto_charger_4x", + "y": 90 + }, + "facing=north": { + "model": "gtmutils:block/machine/luv_auto_charger_4x" + }, + "facing=south": { + "model": "gtmutils:block/machine/luv_auto_charger_4x", + "y": 180 + }, + "facing=up": { + "gtceu:z": 180, + "model": "gtmutils:block/machine/luv_auto_charger_4x", + "x": 270 + }, + "facing=west": { + "model": "gtmutils:block/machine/luv_auto_charger_4x", + "y": 270 + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/gtmutils/blockstates/lv_auto_charger_4x.json b/src/generated/resources/assets/gtmutils/blockstates/lv_auto_charger_4x.json new file mode 100644 index 0000000..ab40f57 --- /dev/null +++ b/src/generated/resources/assets/gtmutils/blockstates/lv_auto_charger_4x.json @@ -0,0 +1,28 @@ +{ + "variants": { + "facing=down": { + "model": "gtmutils:block/machine/lv_auto_charger_4x", + "x": 90 + }, + "facing=east": { + "model": "gtmutils:block/machine/lv_auto_charger_4x", + "y": 90 + }, + "facing=north": { + "model": "gtmutils:block/machine/lv_auto_charger_4x" + }, + "facing=south": { + "model": "gtmutils:block/machine/lv_auto_charger_4x", + "y": 180 + }, + "facing=up": { + "gtceu:z": 180, + "model": "gtmutils:block/machine/lv_auto_charger_4x", + "x": 270 + }, + "facing=west": { + "model": "gtmutils:block/machine/lv_auto_charger_4x", + "y": 270 + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/gtmutils/blockstates/mv_auto_charger_4x.json b/src/generated/resources/assets/gtmutils/blockstates/mv_auto_charger_4x.json new file mode 100644 index 0000000..356ace1 --- /dev/null +++ b/src/generated/resources/assets/gtmutils/blockstates/mv_auto_charger_4x.json @@ -0,0 +1,28 @@ +{ + "variants": { + "facing=down": { + "model": "gtmutils:block/machine/mv_auto_charger_4x", + "x": 90 + }, + "facing=east": { + "model": "gtmutils:block/machine/mv_auto_charger_4x", + "y": 90 + }, + "facing=north": { + "model": "gtmutils:block/machine/mv_auto_charger_4x" + }, + "facing=south": { + "model": "gtmutils:block/machine/mv_auto_charger_4x", + "y": 180 + }, + "facing=up": { + "gtceu:z": 180, + "model": "gtmutils:block/machine/mv_auto_charger_4x", + "x": 270 + }, + "facing=west": { + "model": "gtmutils:block/machine/mv_auto_charger_4x", + "y": 270 + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/gtmutils/blockstates/opv_auto_charger_4x.json b/src/generated/resources/assets/gtmutils/blockstates/opv_auto_charger_4x.json new file mode 100644 index 0000000..c348f9e --- /dev/null +++ b/src/generated/resources/assets/gtmutils/blockstates/opv_auto_charger_4x.json @@ -0,0 +1,28 @@ +{ + "variants": { + "facing=down": { + "model": "gtmutils:block/machine/opv_auto_charger_4x", + "x": 90 + }, + "facing=east": { + "model": "gtmutils:block/machine/opv_auto_charger_4x", + "y": 90 + }, + "facing=north": { + "model": "gtmutils:block/machine/opv_auto_charger_4x" + }, + "facing=south": { + "model": "gtmutils:block/machine/opv_auto_charger_4x", + "y": 180 + }, + "facing=up": { + "gtceu:z": 180, + "model": "gtmutils:block/machine/opv_auto_charger_4x", + "x": 270 + }, + "facing=west": { + "model": "gtmutils:block/machine/opv_auto_charger_4x", + "y": 270 + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/gtmutils/blockstates/uev_auto_charger_4x.json b/src/generated/resources/assets/gtmutils/blockstates/uev_auto_charger_4x.json new file mode 100644 index 0000000..1fc7fb7 --- /dev/null +++ b/src/generated/resources/assets/gtmutils/blockstates/uev_auto_charger_4x.json @@ -0,0 +1,28 @@ +{ + "variants": { + "facing=down": { + "model": "gtmutils:block/machine/uev_auto_charger_4x", + "x": 90 + }, + "facing=east": { + "model": "gtmutils:block/machine/uev_auto_charger_4x", + "y": 90 + }, + "facing=north": { + "model": "gtmutils:block/machine/uev_auto_charger_4x" + }, + "facing=south": { + "model": "gtmutils:block/machine/uev_auto_charger_4x", + "y": 180 + }, + "facing=up": { + "gtceu:z": 180, + "model": "gtmutils:block/machine/uev_auto_charger_4x", + "x": 270 + }, + "facing=west": { + "model": "gtmutils:block/machine/uev_auto_charger_4x", + "y": 270 + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/gtmutils/blockstates/uhv_auto_charger_4x.json b/src/generated/resources/assets/gtmutils/blockstates/uhv_auto_charger_4x.json new file mode 100644 index 0000000..56aef24 --- /dev/null +++ b/src/generated/resources/assets/gtmutils/blockstates/uhv_auto_charger_4x.json @@ -0,0 +1,28 @@ +{ + "variants": { + "facing=down": { + "model": "gtmutils:block/machine/uhv_auto_charger_4x", + "x": 90 + }, + "facing=east": { + "model": "gtmutils:block/machine/uhv_auto_charger_4x", + "y": 90 + }, + "facing=north": { + "model": "gtmutils:block/machine/uhv_auto_charger_4x" + }, + "facing=south": { + "model": "gtmutils:block/machine/uhv_auto_charger_4x", + "y": 180 + }, + "facing=up": { + "gtceu:z": 180, + "model": "gtmutils:block/machine/uhv_auto_charger_4x", + "x": 270 + }, + "facing=west": { + "model": "gtmutils:block/machine/uhv_auto_charger_4x", + "y": 270 + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/gtmutils/blockstates/uiv_auto_charger_4x.json b/src/generated/resources/assets/gtmutils/blockstates/uiv_auto_charger_4x.json new file mode 100644 index 0000000..2ee90d1 --- /dev/null +++ b/src/generated/resources/assets/gtmutils/blockstates/uiv_auto_charger_4x.json @@ -0,0 +1,28 @@ +{ + "variants": { + "facing=down": { + "model": "gtmutils:block/machine/uiv_auto_charger_4x", + "x": 90 + }, + "facing=east": { + "model": "gtmutils:block/machine/uiv_auto_charger_4x", + "y": 90 + }, + "facing=north": { + "model": "gtmutils:block/machine/uiv_auto_charger_4x" + }, + "facing=south": { + "model": "gtmutils:block/machine/uiv_auto_charger_4x", + "y": 180 + }, + "facing=up": { + "gtceu:z": 180, + "model": "gtmutils:block/machine/uiv_auto_charger_4x", + "x": 270 + }, + "facing=west": { + "model": "gtmutils:block/machine/uiv_auto_charger_4x", + "y": 270 + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/gtmutils/blockstates/ulv_auto_charger_4x.json b/src/generated/resources/assets/gtmutils/blockstates/ulv_auto_charger_4x.json new file mode 100644 index 0000000..ac81080 --- /dev/null +++ b/src/generated/resources/assets/gtmutils/blockstates/ulv_auto_charger_4x.json @@ -0,0 +1,28 @@ +{ + "variants": { + "facing=down": { + "model": "gtmutils:block/machine/ulv_auto_charger_4x", + "x": 90 + }, + "facing=east": { + "model": "gtmutils:block/machine/ulv_auto_charger_4x", + "y": 90 + }, + "facing=north": { + "model": "gtmutils:block/machine/ulv_auto_charger_4x" + }, + "facing=south": { + "model": "gtmutils:block/machine/ulv_auto_charger_4x", + "y": 180 + }, + "facing=up": { + "gtceu:z": 180, + "model": "gtmutils:block/machine/ulv_auto_charger_4x", + "x": 270 + }, + "facing=west": { + "model": "gtmutils:block/machine/ulv_auto_charger_4x", + "y": 270 + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/gtmutils/blockstates/uv_auto_charger_4x.json b/src/generated/resources/assets/gtmutils/blockstates/uv_auto_charger_4x.json new file mode 100644 index 0000000..01a47f9 --- /dev/null +++ b/src/generated/resources/assets/gtmutils/blockstates/uv_auto_charger_4x.json @@ -0,0 +1,28 @@ +{ + "variants": { + "facing=down": { + "model": "gtmutils:block/machine/uv_auto_charger_4x", + "x": 90 + }, + "facing=east": { + "model": "gtmutils:block/machine/uv_auto_charger_4x", + "y": 90 + }, + "facing=north": { + "model": "gtmutils:block/machine/uv_auto_charger_4x" + }, + "facing=south": { + "model": "gtmutils:block/machine/uv_auto_charger_4x", + "y": 180 + }, + "facing=up": { + "gtceu:z": 180, + "model": "gtmutils:block/machine/uv_auto_charger_4x", + "x": 270 + }, + "facing=west": { + "model": "gtmutils:block/machine/uv_auto_charger_4x", + "y": 270 + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/gtmutils/blockstates/uxv_auto_charger_4x.json b/src/generated/resources/assets/gtmutils/blockstates/uxv_auto_charger_4x.json new file mode 100644 index 0000000..13c05fa --- /dev/null +++ b/src/generated/resources/assets/gtmutils/blockstates/uxv_auto_charger_4x.json @@ -0,0 +1,28 @@ +{ + "variants": { + "facing=down": { + "model": "gtmutils:block/machine/uxv_auto_charger_4x", + "x": 90 + }, + "facing=east": { + "model": "gtmutils:block/machine/uxv_auto_charger_4x", + "y": 90 + }, + "facing=north": { + "model": "gtmutils:block/machine/uxv_auto_charger_4x" + }, + "facing=south": { + "model": "gtmutils:block/machine/uxv_auto_charger_4x", + "y": 180 + }, + "facing=up": { + "gtceu:z": 180, + "model": "gtmutils:block/machine/uxv_auto_charger_4x", + "x": 270 + }, + "facing=west": { + "model": "gtmutils:block/machine/uxv_auto_charger_4x", + "y": 270 + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/gtmutils/blockstates/zpm_auto_charger_4x.json b/src/generated/resources/assets/gtmutils/blockstates/zpm_auto_charger_4x.json new file mode 100644 index 0000000..2aded77 --- /dev/null +++ b/src/generated/resources/assets/gtmutils/blockstates/zpm_auto_charger_4x.json @@ -0,0 +1,28 @@ +{ + "variants": { + "facing=down": { + "model": "gtmutils:block/machine/zpm_auto_charger_4x", + "x": 90 + }, + "facing=east": { + "model": "gtmutils:block/machine/zpm_auto_charger_4x", + "y": 90 + }, + "facing=north": { + "model": "gtmutils:block/machine/zpm_auto_charger_4x" + }, + "facing=south": { + "model": "gtmutils:block/machine/zpm_auto_charger_4x", + "y": 180 + }, + "facing=up": { + "gtceu:z": 180, + "model": "gtmutils:block/machine/zpm_auto_charger_4x", + "x": 270 + }, + "facing=west": { + "model": "gtmutils:block/machine/zpm_auto_charger_4x", + "y": 270 + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/gtmutils/lang/en_ud.json b/src/generated/resources/assets/gtmutils/lang/en_ud.json index ca2fa04..10da7e8 100644 --- a/src/generated/resources/assets/gtmutils/lang/en_ud.json +++ b/src/generated/resources/assets/gtmutils/lang/en_ud.json @@ -1,21 +1,36 @@ { "block.gtmutils.ev_64a_energy_converter": "ɹǝʇɹǝʌuoƆ ʎbɹǝuƎ ɹ§Ɐǝ§ㄣ9 ɹ§ΛƎϛ§", + "block.gtmutils.ev_auto_charger_4x": "ɹǝbɹɐɥƆ oqɹn⟘ oʇnⱯ xㄣ ɹ§ǝbɐʇןoΛ ǝɯǝɹʇxƎϛ§", "block.gtmutils.hv_64a_energy_converter": "ɹǝʇɹǝʌuoƆ ʎbɹǝuƎ ɹ§Ɐǝ§ㄣ9 ɹ§ΛH9§", + "block.gtmutils.hv_auto_charger_4x": "ɹǝbɹɐɥƆ oqɹn⟘ oʇnⱯ xㄣ ɹ§ǝbɐʇןoΛ ɥbıH9§", "block.gtmutils.iv_64a_energy_converter": "ɹǝʇɹǝʌuoƆ ʎbɹǝuƎ ɹ§Ɐǝ§ㄣ9 ɹ§ΛI6§", + "block.gtmutils.iv_auto_charger_4x": "ɹǝbɹɐɥƆ oqɹn⟘ oʇnⱯ xㄣ ɹ§ǝbɐʇןoΛ ǝuɐsuI6§", "block.gtmutils.luv_64a_energy_converter": "ɹǝʇɹǝʌuoƆ ʎbɹǝuƎ ɹ§Ɐǝ§ㄣ9 ɹ§ΛnꞀp§", + "block.gtmutils.luv_auto_charger_4x": "ɹǝbɹɐɥƆ oqɹn⟘ oʇnⱯ xㄣ ɹ§ǝbɐʇןoΛ snoɹɔıpnꞀp§", "block.gtmutils.lv_64a_energy_converter": "ɹǝʇɹǝʌuoƆ ʎbɹǝuƎ ɹ§Ɐǝ§ㄣ9 ɹ§ΛꞀㄥ§", + "block.gtmutils.lv_auto_charger_4x": "ɹǝbɹɐɥƆ oqɹn⟘ oʇnⱯ xㄣ ɹ§ǝbɐʇןoΛ ʍoꞀㄥ§", "block.gtmutils.max_64a_energy_converter": "ɹǝʇɹǝʌuoƆ ʎbɹǝuƎ ɹ§Ɐǝ§ㄣ9 ɹ§XⱯWן§ɔ§", "block.gtmutils.mv_64a_energy_converter": "ɹǝʇɹǝʌuoƆ ʎbɹǝuƎ ɹ§Ɐǝ§ㄣ9 ɹ§ΛWq§", + "block.gtmutils.mv_auto_charger_4x": "ɹǝbɹɐɥƆ oqɹn⟘ oʇnⱯ xㄣ ɹ§ǝbɐʇןoΛ ɯnıpǝWq§", "block.gtmutils.opv_64a_energy_converter": "ɹǝʇɹǝʌuoƆ ʎbɹǝuƎ ɹ§Ɐǝ§ㄣ9 ɹ§ΛdOן§6§", + "block.gtmutils.opv_auto_charger_4x": "ɹǝbɹɐɥƆ oqɹn⟘ oʇnⱯ xㄣ ɹ§ǝbɐʇןoΛ pǝɹǝʍodɹǝʌOן§6§", "block.gtmutils.pterb_machine": "ɹǝɯɹoɟsuɐɹ⟘ ǝʌıʇɔⱯ ssǝןǝɹıM", "block.gtmutils.sterile_cleaning_maintenance_hatch": "ɥɔʇɐH ǝɔuɐuǝʇuıɐW buıuɐǝןƆ ǝןıɹǝʇS", "block.gtmutils.uev_64a_energy_converter": "ɹǝʇɹǝʌuoƆ ʎbɹǝuƎ ɹ§Ɐǝ§ㄣ9 ɹ§ΛƎ∩ɐ§", + "block.gtmutils.uev_auto_charger_4x": "ɹǝbɹɐɥƆ oqɹn⟘ oʇnⱯ xㄣ ɹ§ǝbɐʇןoΛ ǝʌıssǝɔxƎ ɐɹʇן∩ɐ§", "block.gtmutils.uhv_64a_energy_converter": "ɹǝʇɹǝʌuoƆ ʎbɹǝuƎ ɹ§Ɐǝ§ㄣ9 ɹ§ΛH∩ㄣ§", + "block.gtmutils.uhv_auto_charger_4x": "ɹǝbɹɐɥƆ oqɹn⟘ oʇnⱯ xㄣ ɹ§ǝbɐʇןoΛ ɥbıH ɐɹʇן∩ㄣ§", "block.gtmutils.uiv_64a_energy_converter": "ɹǝʇɹǝʌuoƆ ʎbɹǝuƎ ɹ§Ɐǝ§ㄣ9 ɹ§ΛI∩ᄅ§", + "block.gtmutils.uiv_auto_charger_4x": "ɹǝbɹɐɥƆ oqɹn⟘ oʇnⱯ xㄣ ɹ§ǝbɐʇןoΛ ǝsuǝɯɯI ɐɹʇן∩ᄅ§", "block.gtmutils.ulv_64a_energy_converter": "ɹǝʇɹǝʌuoƆ ʎbɹǝuƎ ɹ§Ɐǝ§ㄣ9 ɹ§ΛꞀ∩8§", + "block.gtmutils.ulv_auto_charger_4x": "ɹǝbɹɐɥƆ oqɹn⟘ oʇnⱯ xㄣ ɹ§ǝbɐʇןoΛ ʍoꞀ ɐɹʇן∩8§", "block.gtmutils.uv_64a_energy_converter": "ɹǝʇɹǝʌuoƆ ʎbɹǝuƎ ɹ§Ɐǝ§ㄣ9 ɹ§Λ∩Ɛ§", + "block.gtmutils.uv_auto_charger_4x": "ɹǝbɹɐɥƆ oqɹn⟘ oʇnⱯ xㄣ ɹ§ǝbɐʇןoΛ ǝʇɐɯıʇן∩Ɛ§", "block.gtmutils.uxv_64a_energy_converter": "ɹǝʇɹǝʌuoƆ ʎbɹǝuƎ ɹ§Ɐǝ§ㄣ9 ɹ§ΛX∩ǝ§", + "block.gtmutils.uxv_auto_charger_4x": "ɹǝbɹɐɥƆ oqɹn⟘ oʇnⱯ xㄣ ɹ§ǝbɐʇןoΛ ǝɯǝɹʇxƎ ɐɹʇן∩ǝ§", "block.gtmutils.zpm_64a_energy_converter": "ɹǝʇɹǝʌuoƆ ʎbɹǝuƎ ɹ§Ɐǝ§ㄣ9 ɹ§WԀZɔ§", + "block.gtmutils.zpm_auto_charger_4x": "ɹǝbɹɐɥƆ oqɹn⟘ oʇnⱯ xㄣ ɹ§ǝbɐʇןoΛ WԀZɔ§", + "config.gtmutils.option.autoChargersEnabled": "pǝןqɐuƎsɹǝbɹɐɥƆoʇnɐ", "config.gtmutils.option.coinsEnabled": "pǝןqɐuƎsuıoɔ", "config.gtmutils.option.converters64aEnabled": "pǝןqɐuƎɐㄣ9sɹǝʇɹǝʌuoɔ", "config.gtmutils.option.customEVToolsEnabled": "pǝןqɐuƎsןoo⟘ΛƎɯoʇsnɔ", @@ -28,7 +43,6 @@ "config.gtmutils.option.omnibreakerEnabled": "pǝןqɐuƎɹǝʞɐǝɹqıuɯo", "config.gtmutils.option.omnibreakerEnergyCapacity": "ʎʇıɔɐdɐƆʎbɹǝuƎɹǝʞɐǝɹqıuɯo", "config.gtmutils.option.omnibreakerTier": "ɹǝı⟘ɹǝʞɐǝɹqıuɯo", - "config.gtmutils.option.parallelHatchAutoConfigure": "ǝɹnbıɟuoƆoʇnⱯɥɔʇɐHןǝןןɐɹɐd", "config.gtmutils.option.pterbCoolantBaseDrain": "uıɐɹᗡǝsɐᗺʇuɐןooƆqɹǝʇd", "config.gtmutils.option.pterbCoolantIOMultiplier": "ɹǝıןdıʇןnWOIʇuɐןooƆqɹǝʇd", "config.gtmutils.option.pterbEnabled": "pǝןqɐuƎqɹǝʇd", diff --git a/src/generated/resources/assets/gtmutils/lang/en_us.json b/src/generated/resources/assets/gtmutils/lang/en_us.json index 1a89611..e38bca1 100644 --- a/src/generated/resources/assets/gtmutils/lang/en_us.json +++ b/src/generated/resources/assets/gtmutils/lang/en_us.json @@ -1,21 +1,36 @@ { "block.gtmutils.ev_64a_energy_converter": "§5EV§r 64§eA§r Energy Converter", + "block.gtmutils.ev_auto_charger_4x": "§5Extreme Voltage§r 4x Auto Turbo Charger", "block.gtmutils.hv_64a_energy_converter": "§6HV§r 64§eA§r Energy Converter", + "block.gtmutils.hv_auto_charger_4x": "§6High Voltage§r 4x Auto Turbo Charger", "block.gtmutils.iv_64a_energy_converter": "§9IV§r 64§eA§r Energy Converter", + "block.gtmutils.iv_auto_charger_4x": "§9Insane Voltage§r 4x Auto Turbo Charger", "block.gtmutils.luv_64a_energy_converter": "§dLuV§r 64§eA§r Energy Converter", + "block.gtmutils.luv_auto_charger_4x": "§dLudicrous Voltage§r 4x Auto Turbo Charger", "block.gtmutils.lv_64a_energy_converter": "§7LV§r 64§eA§r Energy Converter", + "block.gtmutils.lv_auto_charger_4x": "§7Low Voltage§r 4x Auto Turbo Charger", "block.gtmutils.max_64a_energy_converter": "§c§lMAX§r 64§eA§r Energy Converter", "block.gtmutils.mv_64a_energy_converter": "§bMV§r 64§eA§r Energy Converter", + "block.gtmutils.mv_auto_charger_4x": "§bMedium Voltage§r 4x Auto Turbo Charger", "block.gtmutils.opv_64a_energy_converter": "§9§lOpV§r 64§eA§r Energy Converter", + "block.gtmutils.opv_auto_charger_4x": "§9§lOverpowered Voltage§r 4x Auto Turbo Charger", "block.gtmutils.pterb_machine": "Wireless Active Transformer", "block.gtmutils.sterile_cleaning_maintenance_hatch": "Sterile Cleaning Maintenance Hatch", "block.gtmutils.uev_64a_energy_converter": "§aUEV§r 64§eA§r Energy Converter", + "block.gtmutils.uev_auto_charger_4x": "§aUltra Excessive Voltage§r 4x Auto Turbo Charger", "block.gtmutils.uhv_64a_energy_converter": "§4UHV§r 64§eA§r Energy Converter", + "block.gtmutils.uhv_auto_charger_4x": "§4Ultra High Voltage§r 4x Auto Turbo Charger", "block.gtmutils.uiv_64a_energy_converter": "§2UIV§r 64§eA§r Energy Converter", + "block.gtmutils.uiv_auto_charger_4x": "§2Ultra Immense Voltage§r 4x Auto Turbo Charger", "block.gtmutils.ulv_64a_energy_converter": "§8ULV§r 64§eA§r Energy Converter", + "block.gtmutils.ulv_auto_charger_4x": "§8Ultra Low Voltage§r 4x Auto Turbo Charger", "block.gtmutils.uv_64a_energy_converter": "§3UV§r 64§eA§r Energy Converter", + "block.gtmutils.uv_auto_charger_4x": "§3Ultimate Voltage§r 4x Auto Turbo Charger", "block.gtmutils.uxv_64a_energy_converter": "§eUXV§r 64§eA§r Energy Converter", + "block.gtmutils.uxv_auto_charger_4x": "§eUltra Extreme Voltage§r 4x Auto Turbo Charger", "block.gtmutils.zpm_64a_energy_converter": "§cZPM§r 64§eA§r Energy Converter", + "block.gtmutils.zpm_auto_charger_4x": "§cZPM Voltage§r 4x Auto Turbo Charger", + "config.gtmutils.option.autoChargersEnabled": "autoChargersEnabled", "config.gtmutils.option.coinsEnabled": "coinsEnabled", "config.gtmutils.option.converters64aEnabled": "converters64aEnabled", "config.gtmutils.option.customEVToolsEnabled": "customEVToolsEnabled", @@ -28,7 +43,6 @@ "config.gtmutils.option.omnibreakerEnabled": "omnibreakerEnabled", "config.gtmutils.option.omnibreakerEnergyCapacity": "omnibreakerEnergyCapacity", "config.gtmutils.option.omnibreakerTier": "omnibreakerTier", - "config.gtmutils.option.parallelHatchAutoConfigure": "parallelHatchAutoConfigure", "config.gtmutils.option.pterbCoolantBaseDrain": "pterbCoolantBaseDrain", "config.gtmutils.option.pterbCoolantIOMultiplier": "pterbCoolantIOMultiplier", "config.gtmutils.option.pterbEnabled": "pterbEnabled", diff --git a/src/generated/resources/assets/gtmutils/models/block/machine/ev_auto_charger_4x.json b/src/generated/resources/assets/gtmutils/models/block/machine/ev_auto_charger_4x.json new file mode 100644 index 0000000..197b72a --- /dev/null +++ b/src/generated/resources/assets/gtmutils/models/block/machine/ev_auto_charger_4x.json @@ -0,0 +1,42 @@ +{ + "parent": "minecraft:block/block", + "loader": "gtceu:machine", + "machine": "gtmutils:ev_auto_charger_4x", + "variants": { + "charger_state=finished": { + "model": { + "parent": "gtceu:block/machine/template/sided/sided", + "textures": { + "bottom": "gtceu:block/casings/voltage/ev/bottom", + "overlay_front": "gtceu:block/machines/charger/overlay_charger_finished", + "overlay_front_emissive": "gtceu:block/machines/charger/overlay_charger_finished_emissive", + "side": "gtceu:block/casings/voltage/ev/side", + "top": "gtceu:block/casings/voltage/ev/top" + } + } + }, + "charger_state=idle": { + "model": { + "parent": "gtceu:block/machine/template/sided/sided", + "textures": { + "bottom": "gtceu:block/casings/voltage/ev/bottom", + "overlay_front": "gtceu:block/machines/charger/overlay_charger_idle", + "side": "gtceu:block/casings/voltage/ev/side", + "top": "gtceu:block/casings/voltage/ev/top" + } + } + }, + "charger_state=running": { + "model": { + "parent": "gtceu:block/machine/template/sided/sided", + "textures": { + "bottom": "gtceu:block/casings/voltage/ev/bottom", + "overlay_front": "gtceu:block/machines/charger/overlay_charger_running", + "overlay_front_emissive": "gtceu:block/machines/charger/overlay_charger_running_emissive", + "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/gtmutils/models/block/machine/hv_auto_charger_4x.json b/src/generated/resources/assets/gtmutils/models/block/machine/hv_auto_charger_4x.json new file mode 100644 index 0000000..5336cc7 --- /dev/null +++ b/src/generated/resources/assets/gtmutils/models/block/machine/hv_auto_charger_4x.json @@ -0,0 +1,42 @@ +{ + "parent": "minecraft:block/block", + "loader": "gtceu:machine", + "machine": "gtmutils:hv_auto_charger_4x", + "variants": { + "charger_state=finished": { + "model": { + "parent": "gtceu:block/machine/template/sided/sided", + "textures": { + "bottom": "gtceu:block/casings/voltage/hv/bottom", + "overlay_front": "gtceu:block/machines/charger/overlay_charger_finished", + "overlay_front_emissive": "gtceu:block/machines/charger/overlay_charger_finished_emissive", + "side": "gtceu:block/casings/voltage/hv/side", + "top": "gtceu:block/casings/voltage/hv/top" + } + } + }, + "charger_state=idle": { + "model": { + "parent": "gtceu:block/machine/template/sided/sided", + "textures": { + "bottom": "gtceu:block/casings/voltage/hv/bottom", + "overlay_front": "gtceu:block/machines/charger/overlay_charger_idle", + "side": "gtceu:block/casings/voltage/hv/side", + "top": "gtceu:block/casings/voltage/hv/top" + } + } + }, + "charger_state=running": { + "model": { + "parent": "gtceu:block/machine/template/sided/sided", + "textures": { + "bottom": "gtceu:block/casings/voltage/hv/bottom", + "overlay_front": "gtceu:block/machines/charger/overlay_charger_running", + "overlay_front_emissive": "gtceu:block/machines/charger/overlay_charger_running_emissive", + "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/gtmutils/models/block/machine/iv_auto_charger_4x.json b/src/generated/resources/assets/gtmutils/models/block/machine/iv_auto_charger_4x.json new file mode 100644 index 0000000..8cd5e4d --- /dev/null +++ b/src/generated/resources/assets/gtmutils/models/block/machine/iv_auto_charger_4x.json @@ -0,0 +1,42 @@ +{ + "parent": "minecraft:block/block", + "loader": "gtceu:machine", + "machine": "gtmutils:iv_auto_charger_4x", + "variants": { + "charger_state=finished": { + "model": { + "parent": "gtceu:block/machine/template/sided/sided", + "textures": { + "bottom": "gtceu:block/casings/voltage/iv/bottom", + "overlay_front": "gtceu:block/machines/charger/overlay_charger_finished", + "overlay_front_emissive": "gtceu:block/machines/charger/overlay_charger_finished_emissive", + "side": "gtceu:block/casings/voltage/iv/side", + "top": "gtceu:block/casings/voltage/iv/top" + } + } + }, + "charger_state=idle": { + "model": { + "parent": "gtceu:block/machine/template/sided/sided", + "textures": { + "bottom": "gtceu:block/casings/voltage/iv/bottom", + "overlay_front": "gtceu:block/machines/charger/overlay_charger_idle", + "side": "gtceu:block/casings/voltage/iv/side", + "top": "gtceu:block/casings/voltage/iv/top" + } + } + }, + "charger_state=running": { + "model": { + "parent": "gtceu:block/machine/template/sided/sided", + "textures": { + "bottom": "gtceu:block/casings/voltage/iv/bottom", + "overlay_front": "gtceu:block/machines/charger/overlay_charger_running", + "overlay_front_emissive": "gtceu:block/machines/charger/overlay_charger_running_emissive", + "side": "gtceu:block/casings/voltage/iv/side", + "top": "gtceu:block/casings/voltage/iv/top" + } + } + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/gtmutils/models/block/machine/luv_auto_charger_4x.json b/src/generated/resources/assets/gtmutils/models/block/machine/luv_auto_charger_4x.json new file mode 100644 index 0000000..609db82 --- /dev/null +++ b/src/generated/resources/assets/gtmutils/models/block/machine/luv_auto_charger_4x.json @@ -0,0 +1,42 @@ +{ + "parent": "minecraft:block/block", + "loader": "gtceu:machine", + "machine": "gtmutils:luv_auto_charger_4x", + "variants": { + "charger_state=finished": { + "model": { + "parent": "gtceu:block/machine/template/sided/sided", + "textures": { + "bottom": "gtceu:block/casings/voltage/luv/bottom", + "overlay_front": "gtceu:block/machines/charger/overlay_charger_finished", + "overlay_front_emissive": "gtceu:block/machines/charger/overlay_charger_finished_emissive", + "side": "gtceu:block/casings/voltage/luv/side", + "top": "gtceu:block/casings/voltage/luv/top" + } + } + }, + "charger_state=idle": { + "model": { + "parent": "gtceu:block/machine/template/sided/sided", + "textures": { + "bottom": "gtceu:block/casings/voltage/luv/bottom", + "overlay_front": "gtceu:block/machines/charger/overlay_charger_idle", + "side": "gtceu:block/casings/voltage/luv/side", + "top": "gtceu:block/casings/voltage/luv/top" + } + } + }, + "charger_state=running": { + "model": { + "parent": "gtceu:block/machine/template/sided/sided", + "textures": { + "bottom": "gtceu:block/casings/voltage/luv/bottom", + "overlay_front": "gtceu:block/machines/charger/overlay_charger_running", + "overlay_front_emissive": "gtceu:block/machines/charger/overlay_charger_running_emissive", + "side": "gtceu:block/casings/voltage/luv/side", + "top": "gtceu:block/casings/voltage/luv/top" + } + } + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/gtmutils/models/block/machine/lv_auto_charger_4x.json b/src/generated/resources/assets/gtmutils/models/block/machine/lv_auto_charger_4x.json new file mode 100644 index 0000000..332eb72 --- /dev/null +++ b/src/generated/resources/assets/gtmutils/models/block/machine/lv_auto_charger_4x.json @@ -0,0 +1,42 @@ +{ + "parent": "minecraft:block/block", + "loader": "gtceu:machine", + "machine": "gtmutils:lv_auto_charger_4x", + "variants": { + "charger_state=finished": { + "model": { + "parent": "gtceu:block/machine/template/sided/sided", + "textures": { + "bottom": "gtceu:block/casings/voltage/lv/bottom", + "overlay_front": "gtceu:block/machines/charger/overlay_charger_finished", + "overlay_front_emissive": "gtceu:block/machines/charger/overlay_charger_finished_emissive", + "side": "gtceu:block/casings/voltage/lv/side", + "top": "gtceu:block/casings/voltage/lv/top" + } + } + }, + "charger_state=idle": { + "model": { + "parent": "gtceu:block/machine/template/sided/sided", + "textures": { + "bottom": "gtceu:block/casings/voltage/lv/bottom", + "overlay_front": "gtceu:block/machines/charger/overlay_charger_idle", + "side": "gtceu:block/casings/voltage/lv/side", + "top": "gtceu:block/casings/voltage/lv/top" + } + } + }, + "charger_state=running": { + "model": { + "parent": "gtceu:block/machine/template/sided/sided", + "textures": { + "bottom": "gtceu:block/casings/voltage/lv/bottom", + "overlay_front": "gtceu:block/machines/charger/overlay_charger_running", + "overlay_front_emissive": "gtceu:block/machines/charger/overlay_charger_running_emissive", + "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/gtmutils/models/block/machine/mv_auto_charger_4x.json b/src/generated/resources/assets/gtmutils/models/block/machine/mv_auto_charger_4x.json new file mode 100644 index 0000000..c14f8a6 --- /dev/null +++ b/src/generated/resources/assets/gtmutils/models/block/machine/mv_auto_charger_4x.json @@ -0,0 +1,42 @@ +{ + "parent": "minecraft:block/block", + "loader": "gtceu:machine", + "machine": "gtmutils:mv_auto_charger_4x", + "variants": { + "charger_state=finished": { + "model": { + "parent": "gtceu:block/machine/template/sided/sided", + "textures": { + "bottom": "gtceu:block/casings/voltage/mv/bottom", + "overlay_front": "gtceu:block/machines/charger/overlay_charger_finished", + "overlay_front_emissive": "gtceu:block/machines/charger/overlay_charger_finished_emissive", + "side": "gtceu:block/casings/voltage/mv/side", + "top": "gtceu:block/casings/voltage/mv/top" + } + } + }, + "charger_state=idle": { + "model": { + "parent": "gtceu:block/machine/template/sided/sided", + "textures": { + "bottom": "gtceu:block/casings/voltage/mv/bottom", + "overlay_front": "gtceu:block/machines/charger/overlay_charger_idle", + "side": "gtceu:block/casings/voltage/mv/side", + "top": "gtceu:block/casings/voltage/mv/top" + } + } + }, + "charger_state=running": { + "model": { + "parent": "gtceu:block/machine/template/sided/sided", + "textures": { + "bottom": "gtceu:block/casings/voltage/mv/bottom", + "overlay_front": "gtceu:block/machines/charger/overlay_charger_running", + "overlay_front_emissive": "gtceu:block/machines/charger/overlay_charger_running_emissive", + "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/gtmutils/models/block/machine/opv_auto_charger_4x.json b/src/generated/resources/assets/gtmutils/models/block/machine/opv_auto_charger_4x.json new file mode 100644 index 0000000..d22cc11 --- /dev/null +++ b/src/generated/resources/assets/gtmutils/models/block/machine/opv_auto_charger_4x.json @@ -0,0 +1,42 @@ +{ + "parent": "minecraft:block/block", + "loader": "gtceu:machine", + "machine": "gtmutils:opv_auto_charger_4x", + "variants": { + "charger_state=finished": { + "model": { + "parent": "gtceu:block/machine/template/sided/sided", + "textures": { + "bottom": "gtceu:block/casings/voltage/opv/bottom", + "overlay_front": "gtceu:block/machines/charger/overlay_charger_finished", + "overlay_front_emissive": "gtceu:block/machines/charger/overlay_charger_finished_emissive", + "side": "gtceu:block/casings/voltage/opv/side", + "top": "gtceu:block/casings/voltage/opv/top" + } + } + }, + "charger_state=idle": { + "model": { + "parent": "gtceu:block/machine/template/sided/sided", + "textures": { + "bottom": "gtceu:block/casings/voltage/opv/bottom", + "overlay_front": "gtceu:block/machines/charger/overlay_charger_idle", + "side": "gtceu:block/casings/voltage/opv/side", + "top": "gtceu:block/casings/voltage/opv/top" + } + } + }, + "charger_state=running": { + "model": { + "parent": "gtceu:block/machine/template/sided/sided", + "textures": { + "bottom": "gtceu:block/casings/voltage/opv/bottom", + "overlay_front": "gtceu:block/machines/charger/overlay_charger_running", + "overlay_front_emissive": "gtceu:block/machines/charger/overlay_charger_running_emissive", + "side": "gtceu:block/casings/voltage/opv/side", + "top": "gtceu:block/casings/voltage/opv/top" + } + } + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/gtmutils/models/block/machine/uev_auto_charger_4x.json b/src/generated/resources/assets/gtmutils/models/block/machine/uev_auto_charger_4x.json new file mode 100644 index 0000000..0304be1 --- /dev/null +++ b/src/generated/resources/assets/gtmutils/models/block/machine/uev_auto_charger_4x.json @@ -0,0 +1,42 @@ +{ + "parent": "minecraft:block/block", + "loader": "gtceu:machine", + "machine": "gtmutils:uev_auto_charger_4x", + "variants": { + "charger_state=finished": { + "model": { + "parent": "gtceu:block/machine/template/sided/sided", + "textures": { + "bottom": "gtceu:block/casings/voltage/uev/bottom", + "overlay_front": "gtceu:block/machines/charger/overlay_charger_finished", + "overlay_front_emissive": "gtceu:block/machines/charger/overlay_charger_finished_emissive", + "side": "gtceu:block/casings/voltage/uev/side", + "top": "gtceu:block/casings/voltage/uev/top" + } + } + }, + "charger_state=idle": { + "model": { + "parent": "gtceu:block/machine/template/sided/sided", + "textures": { + "bottom": "gtceu:block/casings/voltage/uev/bottom", + "overlay_front": "gtceu:block/machines/charger/overlay_charger_idle", + "side": "gtceu:block/casings/voltage/uev/side", + "top": "gtceu:block/casings/voltage/uev/top" + } + } + }, + "charger_state=running": { + "model": { + "parent": "gtceu:block/machine/template/sided/sided", + "textures": { + "bottom": "gtceu:block/casings/voltage/uev/bottom", + "overlay_front": "gtceu:block/machines/charger/overlay_charger_running", + "overlay_front_emissive": "gtceu:block/machines/charger/overlay_charger_running_emissive", + "side": "gtceu:block/casings/voltage/uev/side", + "top": "gtceu:block/casings/voltage/uev/top" + } + } + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/gtmutils/models/block/machine/uhv_auto_charger_4x.json b/src/generated/resources/assets/gtmutils/models/block/machine/uhv_auto_charger_4x.json new file mode 100644 index 0000000..f7ea39b --- /dev/null +++ b/src/generated/resources/assets/gtmutils/models/block/machine/uhv_auto_charger_4x.json @@ -0,0 +1,42 @@ +{ + "parent": "minecraft:block/block", + "loader": "gtceu:machine", + "machine": "gtmutils:uhv_auto_charger_4x", + "variants": { + "charger_state=finished": { + "model": { + "parent": "gtceu:block/machine/template/sided/sided", + "textures": { + "bottom": "gtceu:block/casings/voltage/uhv/bottom", + "overlay_front": "gtceu:block/machines/charger/overlay_charger_finished", + "overlay_front_emissive": "gtceu:block/machines/charger/overlay_charger_finished_emissive", + "side": "gtceu:block/casings/voltage/uhv/side", + "top": "gtceu:block/casings/voltage/uhv/top" + } + } + }, + "charger_state=idle": { + "model": { + "parent": "gtceu:block/machine/template/sided/sided", + "textures": { + "bottom": "gtceu:block/casings/voltage/uhv/bottom", + "overlay_front": "gtceu:block/machines/charger/overlay_charger_idle", + "side": "gtceu:block/casings/voltage/uhv/side", + "top": "gtceu:block/casings/voltage/uhv/top" + } + } + }, + "charger_state=running": { + "model": { + "parent": "gtceu:block/machine/template/sided/sided", + "textures": { + "bottom": "gtceu:block/casings/voltage/uhv/bottom", + "overlay_front": "gtceu:block/machines/charger/overlay_charger_running", + "overlay_front_emissive": "gtceu:block/machines/charger/overlay_charger_running_emissive", + "side": "gtceu:block/casings/voltage/uhv/side", + "top": "gtceu:block/casings/voltage/uhv/top" + } + } + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/gtmutils/models/block/machine/uiv_auto_charger_4x.json b/src/generated/resources/assets/gtmutils/models/block/machine/uiv_auto_charger_4x.json new file mode 100644 index 0000000..f02cfe4 --- /dev/null +++ b/src/generated/resources/assets/gtmutils/models/block/machine/uiv_auto_charger_4x.json @@ -0,0 +1,42 @@ +{ + "parent": "minecraft:block/block", + "loader": "gtceu:machine", + "machine": "gtmutils:uiv_auto_charger_4x", + "variants": { + "charger_state=finished": { + "model": { + "parent": "gtceu:block/machine/template/sided/sided", + "textures": { + "bottom": "gtceu:block/casings/voltage/uiv/bottom", + "overlay_front": "gtceu:block/machines/charger/overlay_charger_finished", + "overlay_front_emissive": "gtceu:block/machines/charger/overlay_charger_finished_emissive", + "side": "gtceu:block/casings/voltage/uiv/side", + "top": "gtceu:block/casings/voltage/uiv/top" + } + } + }, + "charger_state=idle": { + "model": { + "parent": "gtceu:block/machine/template/sided/sided", + "textures": { + "bottom": "gtceu:block/casings/voltage/uiv/bottom", + "overlay_front": "gtceu:block/machines/charger/overlay_charger_idle", + "side": "gtceu:block/casings/voltage/uiv/side", + "top": "gtceu:block/casings/voltage/uiv/top" + } + } + }, + "charger_state=running": { + "model": { + "parent": "gtceu:block/machine/template/sided/sided", + "textures": { + "bottom": "gtceu:block/casings/voltage/uiv/bottom", + "overlay_front": "gtceu:block/machines/charger/overlay_charger_running", + "overlay_front_emissive": "gtceu:block/machines/charger/overlay_charger_running_emissive", + "side": "gtceu:block/casings/voltage/uiv/side", + "top": "gtceu:block/casings/voltage/uiv/top" + } + } + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/gtmutils/models/block/machine/ulv_auto_charger_4x.json b/src/generated/resources/assets/gtmutils/models/block/machine/ulv_auto_charger_4x.json new file mode 100644 index 0000000..b3540d2 --- /dev/null +++ b/src/generated/resources/assets/gtmutils/models/block/machine/ulv_auto_charger_4x.json @@ -0,0 +1,42 @@ +{ + "parent": "minecraft:block/block", + "loader": "gtceu:machine", + "machine": "gtmutils:ulv_auto_charger_4x", + "variants": { + "charger_state=finished": { + "model": { + "parent": "gtceu:block/machine/template/sided/sided", + "textures": { + "bottom": "gtceu:block/casings/voltage/ulv/bottom", + "overlay_front": "gtceu:block/machines/charger/overlay_charger_finished", + "overlay_front_emissive": "gtceu:block/machines/charger/overlay_charger_finished_emissive", + "side": "gtceu:block/casings/voltage/ulv/side", + "top": "gtceu:block/casings/voltage/ulv/top" + } + } + }, + "charger_state=idle": { + "model": { + "parent": "gtceu:block/machine/template/sided/sided", + "textures": { + "bottom": "gtceu:block/casings/voltage/ulv/bottom", + "overlay_front": "gtceu:block/machines/charger/overlay_charger_idle", + "side": "gtceu:block/casings/voltage/ulv/side", + "top": "gtceu:block/casings/voltage/ulv/top" + } + } + }, + "charger_state=running": { + "model": { + "parent": "gtceu:block/machine/template/sided/sided", + "textures": { + "bottom": "gtceu:block/casings/voltage/ulv/bottom", + "overlay_front": "gtceu:block/machines/charger/overlay_charger_running", + "overlay_front_emissive": "gtceu:block/machines/charger/overlay_charger_running_emissive", + "side": "gtceu:block/casings/voltage/ulv/side", + "top": "gtceu:block/casings/voltage/ulv/top" + } + } + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/gtmutils/models/block/machine/uv_auto_charger_4x.json b/src/generated/resources/assets/gtmutils/models/block/machine/uv_auto_charger_4x.json new file mode 100644 index 0000000..c0e7702 --- /dev/null +++ b/src/generated/resources/assets/gtmutils/models/block/machine/uv_auto_charger_4x.json @@ -0,0 +1,42 @@ +{ + "parent": "minecraft:block/block", + "loader": "gtceu:machine", + "machine": "gtmutils:uv_auto_charger_4x", + "variants": { + "charger_state=finished": { + "model": { + "parent": "gtceu:block/machine/template/sided/sided", + "textures": { + "bottom": "gtceu:block/casings/voltage/uv/bottom", + "overlay_front": "gtceu:block/machines/charger/overlay_charger_finished", + "overlay_front_emissive": "gtceu:block/machines/charger/overlay_charger_finished_emissive", + "side": "gtceu:block/casings/voltage/uv/side", + "top": "gtceu:block/casings/voltage/uv/top" + } + } + }, + "charger_state=idle": { + "model": { + "parent": "gtceu:block/machine/template/sided/sided", + "textures": { + "bottom": "gtceu:block/casings/voltage/uv/bottom", + "overlay_front": "gtceu:block/machines/charger/overlay_charger_idle", + "side": "gtceu:block/casings/voltage/uv/side", + "top": "gtceu:block/casings/voltage/uv/top" + } + } + }, + "charger_state=running": { + "model": { + "parent": "gtceu:block/machine/template/sided/sided", + "textures": { + "bottom": "gtceu:block/casings/voltage/uv/bottom", + "overlay_front": "gtceu:block/machines/charger/overlay_charger_running", + "overlay_front_emissive": "gtceu:block/machines/charger/overlay_charger_running_emissive", + "side": "gtceu:block/casings/voltage/uv/side", + "top": "gtceu:block/casings/voltage/uv/top" + } + } + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/gtmutils/models/block/machine/uxv_auto_charger_4x.json b/src/generated/resources/assets/gtmutils/models/block/machine/uxv_auto_charger_4x.json new file mode 100644 index 0000000..c3f50fe --- /dev/null +++ b/src/generated/resources/assets/gtmutils/models/block/machine/uxv_auto_charger_4x.json @@ -0,0 +1,42 @@ +{ + "parent": "minecraft:block/block", + "loader": "gtceu:machine", + "machine": "gtmutils:uxv_auto_charger_4x", + "variants": { + "charger_state=finished": { + "model": { + "parent": "gtceu:block/machine/template/sided/sided", + "textures": { + "bottom": "gtceu:block/casings/voltage/uxv/bottom", + "overlay_front": "gtceu:block/machines/charger/overlay_charger_finished", + "overlay_front_emissive": "gtceu:block/machines/charger/overlay_charger_finished_emissive", + "side": "gtceu:block/casings/voltage/uxv/side", + "top": "gtceu:block/casings/voltage/uxv/top" + } + } + }, + "charger_state=idle": { + "model": { + "parent": "gtceu:block/machine/template/sided/sided", + "textures": { + "bottom": "gtceu:block/casings/voltage/uxv/bottom", + "overlay_front": "gtceu:block/machines/charger/overlay_charger_idle", + "side": "gtceu:block/casings/voltage/uxv/side", + "top": "gtceu:block/casings/voltage/uxv/top" + } + } + }, + "charger_state=running": { + "model": { + "parent": "gtceu:block/machine/template/sided/sided", + "textures": { + "bottom": "gtceu:block/casings/voltage/uxv/bottom", + "overlay_front": "gtceu:block/machines/charger/overlay_charger_running", + "overlay_front_emissive": "gtceu:block/machines/charger/overlay_charger_running_emissive", + "side": "gtceu:block/casings/voltage/uxv/side", + "top": "gtceu:block/casings/voltage/uxv/top" + } + } + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/gtmutils/models/block/machine/zpm_auto_charger_4x.json b/src/generated/resources/assets/gtmutils/models/block/machine/zpm_auto_charger_4x.json new file mode 100644 index 0000000..bd085c2 --- /dev/null +++ b/src/generated/resources/assets/gtmutils/models/block/machine/zpm_auto_charger_4x.json @@ -0,0 +1,42 @@ +{ + "parent": "minecraft:block/block", + "loader": "gtceu:machine", + "machine": "gtmutils:zpm_auto_charger_4x", + "variants": { + "charger_state=finished": { + "model": { + "parent": "gtceu:block/machine/template/sided/sided", + "textures": { + "bottom": "gtceu:block/casings/voltage/zpm/bottom", + "overlay_front": "gtceu:block/machines/charger/overlay_charger_finished", + "overlay_front_emissive": "gtceu:block/machines/charger/overlay_charger_finished_emissive", + "side": "gtceu:block/casings/voltage/zpm/side", + "top": "gtceu:block/casings/voltage/zpm/top" + } + } + }, + "charger_state=idle": { + "model": { + "parent": "gtceu:block/machine/template/sided/sided", + "textures": { + "bottom": "gtceu:block/casings/voltage/zpm/bottom", + "overlay_front": "gtceu:block/machines/charger/overlay_charger_idle", + "side": "gtceu:block/casings/voltage/zpm/side", + "top": "gtceu:block/casings/voltage/zpm/top" + } + } + }, + "charger_state=running": { + "model": { + "parent": "gtceu:block/machine/template/sided/sided", + "textures": { + "bottom": "gtceu:block/casings/voltage/zpm/bottom", + "overlay_front": "gtceu:block/machines/charger/overlay_charger_running", + "overlay_front_emissive": "gtceu:block/machines/charger/overlay_charger_running_emissive", + "side": "gtceu:block/casings/voltage/zpm/side", + "top": "gtceu:block/casings/voltage/zpm/top" + } + } + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/gtmutils/models/item/ev_auto_charger_4x.json b/src/generated/resources/assets/gtmutils/models/item/ev_auto_charger_4x.json new file mode 100644 index 0000000..49c3fec --- /dev/null +++ b/src/generated/resources/assets/gtmutils/models/item/ev_auto_charger_4x.json @@ -0,0 +1,3 @@ +{ + "parent": "gtmutils:block/machine/ev_auto_charger_4x" +} \ No newline at end of file diff --git a/src/generated/resources/assets/gtmutils/models/item/hv_auto_charger_4x.json b/src/generated/resources/assets/gtmutils/models/item/hv_auto_charger_4x.json new file mode 100644 index 0000000..c9a6e71 --- /dev/null +++ b/src/generated/resources/assets/gtmutils/models/item/hv_auto_charger_4x.json @@ -0,0 +1,3 @@ +{ + "parent": "gtmutils:block/machine/hv_auto_charger_4x" +} \ No newline at end of file diff --git a/src/generated/resources/assets/gtmutils/models/item/iv_auto_charger_4x.json b/src/generated/resources/assets/gtmutils/models/item/iv_auto_charger_4x.json new file mode 100644 index 0000000..b5080bb --- /dev/null +++ b/src/generated/resources/assets/gtmutils/models/item/iv_auto_charger_4x.json @@ -0,0 +1,3 @@ +{ + "parent": "gtmutils:block/machine/iv_auto_charger_4x" +} \ No newline at end of file diff --git a/src/generated/resources/assets/gtmutils/models/item/luv_auto_charger_4x.json b/src/generated/resources/assets/gtmutils/models/item/luv_auto_charger_4x.json new file mode 100644 index 0000000..1d5f045 --- /dev/null +++ b/src/generated/resources/assets/gtmutils/models/item/luv_auto_charger_4x.json @@ -0,0 +1,3 @@ +{ + "parent": "gtmutils:block/machine/luv_auto_charger_4x" +} \ No newline at end of file diff --git a/src/generated/resources/assets/gtmutils/models/item/lv_auto_charger_4x.json b/src/generated/resources/assets/gtmutils/models/item/lv_auto_charger_4x.json new file mode 100644 index 0000000..0046bdb --- /dev/null +++ b/src/generated/resources/assets/gtmutils/models/item/lv_auto_charger_4x.json @@ -0,0 +1,3 @@ +{ + "parent": "gtmutils:block/machine/lv_auto_charger_4x" +} \ No newline at end of file diff --git a/src/generated/resources/assets/gtmutils/models/item/mv_auto_charger_4x.json b/src/generated/resources/assets/gtmutils/models/item/mv_auto_charger_4x.json new file mode 100644 index 0000000..ae27387 --- /dev/null +++ b/src/generated/resources/assets/gtmutils/models/item/mv_auto_charger_4x.json @@ -0,0 +1,3 @@ +{ + "parent": "gtmutils:block/machine/mv_auto_charger_4x" +} \ No newline at end of file diff --git a/src/generated/resources/assets/gtmutils/models/item/opv_auto_charger_4x.json b/src/generated/resources/assets/gtmutils/models/item/opv_auto_charger_4x.json new file mode 100644 index 0000000..93eafd2 --- /dev/null +++ b/src/generated/resources/assets/gtmutils/models/item/opv_auto_charger_4x.json @@ -0,0 +1,3 @@ +{ + "parent": "gtmutils:block/machine/opv_auto_charger_4x" +} \ No newline at end of file diff --git a/src/generated/resources/assets/gtmutils/models/item/uev_auto_charger_4x.json b/src/generated/resources/assets/gtmutils/models/item/uev_auto_charger_4x.json new file mode 100644 index 0000000..ce45127 --- /dev/null +++ b/src/generated/resources/assets/gtmutils/models/item/uev_auto_charger_4x.json @@ -0,0 +1,3 @@ +{ + "parent": "gtmutils:block/machine/uev_auto_charger_4x" +} \ No newline at end of file diff --git a/src/generated/resources/assets/gtmutils/models/item/uhv_auto_charger_4x.json b/src/generated/resources/assets/gtmutils/models/item/uhv_auto_charger_4x.json new file mode 100644 index 0000000..42ef54c --- /dev/null +++ b/src/generated/resources/assets/gtmutils/models/item/uhv_auto_charger_4x.json @@ -0,0 +1,3 @@ +{ + "parent": "gtmutils:block/machine/uhv_auto_charger_4x" +} \ No newline at end of file diff --git a/src/generated/resources/assets/gtmutils/models/item/uiv_auto_charger_4x.json b/src/generated/resources/assets/gtmutils/models/item/uiv_auto_charger_4x.json new file mode 100644 index 0000000..b71d13d --- /dev/null +++ b/src/generated/resources/assets/gtmutils/models/item/uiv_auto_charger_4x.json @@ -0,0 +1,3 @@ +{ + "parent": "gtmutils:block/machine/uiv_auto_charger_4x" +} \ No newline at end of file diff --git a/src/generated/resources/assets/gtmutils/models/item/ulv_auto_charger_4x.json b/src/generated/resources/assets/gtmutils/models/item/ulv_auto_charger_4x.json new file mode 100644 index 0000000..21f44fa --- /dev/null +++ b/src/generated/resources/assets/gtmutils/models/item/ulv_auto_charger_4x.json @@ -0,0 +1,3 @@ +{ + "parent": "gtmutils:block/machine/ulv_auto_charger_4x" +} \ No newline at end of file diff --git a/src/generated/resources/assets/gtmutils/models/item/uv_auto_charger_4x.json b/src/generated/resources/assets/gtmutils/models/item/uv_auto_charger_4x.json new file mode 100644 index 0000000..d08ff66 --- /dev/null +++ b/src/generated/resources/assets/gtmutils/models/item/uv_auto_charger_4x.json @@ -0,0 +1,3 @@ +{ + "parent": "gtmutils:block/machine/uv_auto_charger_4x" +} \ No newline at end of file diff --git a/src/generated/resources/assets/gtmutils/models/item/uxv_auto_charger_4x.json b/src/generated/resources/assets/gtmutils/models/item/uxv_auto_charger_4x.json new file mode 100644 index 0000000..b5eb6e6 --- /dev/null +++ b/src/generated/resources/assets/gtmutils/models/item/uxv_auto_charger_4x.json @@ -0,0 +1,3 @@ +{ + "parent": "gtmutils:block/machine/uxv_auto_charger_4x" +} \ No newline at end of file diff --git a/src/generated/resources/assets/gtmutils/models/item/zpm_auto_charger_4x.json b/src/generated/resources/assets/gtmutils/models/item/zpm_auto_charger_4x.json new file mode 100644 index 0000000..80f15f6 --- /dev/null +++ b/src/generated/resources/assets/gtmutils/models/item/zpm_auto_charger_4x.json @@ -0,0 +1,3 @@ +{ + "parent": "gtmutils:block/machine/zpm_auto_charger_4x" +} \ No newline at end of file diff --git a/src/main/java/net/neganote/gtutilities/common/machine/UtilMachines.java b/src/main/java/net/neganote/gtutilities/common/machine/UtilMachines.java index a2fb1d9..731b57c 100644 --- a/src/main/java/net/neganote/gtutilities/common/machine/UtilMachines.java +++ b/src/main/java/net/neganote/gtutilities/common/machine/UtilMachines.java @@ -1,6 +1,7 @@ package net.neganote.gtutilities.common.machine; import com.gregtechceu.gtceu.GTCEu; +import com.gregtechceu.gtceu.api.GTCEuAPI; import com.gregtechceu.gtceu.api.GTValues; import com.gregtechceu.gtceu.api.capability.compat.FeCompat; import com.gregtechceu.gtceu.api.data.RotationState; @@ -17,14 +18,17 @@ import com.gregtechceu.gtceu.common.data.GTRecipeTypes; import com.gregtechceu.gtceu.common.data.machines.GTMachineUtils; import com.gregtechceu.gtceu.common.data.models.GTMachineModels; +import com.gregtechceu.gtceu.common.machine.electric.ChargerMachine; import com.gregtechceu.gtceu.common.machine.electric.ConverterMachine; import com.gregtechceu.gtceu.common.machine.multiblock.part.CleaningMaintenanceHatchPartMachine; import com.gregtechceu.gtceu.config.ConfigHolder; +import com.gregtechceu.gtceu.utils.FormattingUtil; import net.minecraft.ChatFormatting; import net.minecraft.network.chat.Component; import net.neganote.gtutilities.GregTechModernUtilities; import net.neganote.gtutilities.common.machine.multiblock.PTERBMachine; +import net.neganote.gtutilities.common.machine.singleblock.AutoChargerMachine; import net.neganote.gtutilities.common.materials.UtilMaterials; import net.neganote.gtutilities.config.UtilConfig; @@ -70,6 +74,41 @@ public class UtilMachines { } } + public static MachineDefinition[] AUTO_CHARGER_4 = null; + + static { + if (UtilConfig.INSTANCE.features.autoChargersEnabled || GTCEu.isDataGen()) { + AUTO_CHARGER_4 = registerCharger(4); + } + } + + public static MachineDefinition[] registerCharger(int itemSlotSize) { + int maxTier; + if (GTCEuAPI.isHighTier()) { + maxTier = OpV; + } else { + maxTier = UHV; + } + + return registerTieredMachines("auto_charger_" + itemSlotSize + "x", + (holder, tier) -> new AutoChargerMachine(holder, tier, itemSlotSize), + (tier, builder) -> builder + .rotationState(RotationState.ALL) + .modelProperty(GTMachineModelProperties.CHARGER_STATE, ChargerMachine.State.IDLE) + .model(GTMachineModels.createChargerModel()) + .langValue("%s %sx Auto Turbo Charger".formatted( + VCF[tier] + VOLTAGE_NAMES[tier] + ChatFormatting.RESET, + itemSlotSize)) + .tooltips(Component.translatable("gtceu.universal.tooltip.item_storage_capacity", itemSlotSize), + Component.translatable("gtceu.universal.tooltip.voltage_in_out", + FormattingUtil.formatNumbers(GTValues.V[tier]), + GTValues.VNF[tier]), + Component.translatable("gtceu.universal.tooltip.amperage_in_till", + itemSlotSize * ChargerMachine.AMPS_PER_ITEM)) + .register(), + GTValues.tiersBetween(ULV, maxTier)); + } + // Copied from GTMachineUtils public static MachineDefinition[] registerConverter(int amperage) { return registerTieredMachines(amperage + "a_energy_converter", diff --git a/src/main/java/net/neganote/gtutilities/common/machine/singleblock/AutoChargerMachine.java b/src/main/java/net/neganote/gtutilities/common/machine/singleblock/AutoChargerMachine.java new file mode 100644 index 0000000..a44036b --- /dev/null +++ b/src/main/java/net/neganote/gtutilities/common/machine/singleblock/AutoChargerMachine.java @@ -0,0 +1,413 @@ +package net.neganote.gtutilities.common.machine.singleblock; + +import com.gregtechceu.gtceu.api.GTValues; +import com.gregtechceu.gtceu.api.capability.*; +import com.gregtechceu.gtceu.api.capability.compat.FeCompat; +import com.gregtechceu.gtceu.api.capability.recipe.IO; +import com.gregtechceu.gtceu.api.gui.GuiTextures; +import com.gregtechceu.gtceu.api.gui.fancy.ConfiguratorPanel; +import com.gregtechceu.gtceu.api.gui.fancy.IFancyConfiguratorButton; +import com.gregtechceu.gtceu.api.gui.widget.SlotWidget; +import com.gregtechceu.gtceu.api.machine.IMachineBlockEntity; +import com.gregtechceu.gtceu.api.machine.TickableSubscription; +import com.gregtechceu.gtceu.api.machine.TieredEnergyMachine; +import com.gregtechceu.gtceu.api.machine.feature.IAutoOutputItem; +import com.gregtechceu.gtceu.api.machine.feature.IFancyUIMachine; +import com.gregtechceu.gtceu.api.machine.feature.IMachineLife; +import com.gregtechceu.gtceu.api.machine.property.GTMachineModelProperties; +import com.gregtechceu.gtceu.api.machine.trait.NotifiableEnergyContainer; +import com.gregtechceu.gtceu.api.machine.trait.NotifiableItemStackHandler; +import com.gregtechceu.gtceu.common.machine.electric.ChargerMachine; +import com.gregtechceu.gtceu.config.ConfigHolder; +import com.gregtechceu.gtceu.utils.GTTransferUtils; +import com.gregtechceu.gtceu.utils.GTUtil; + +import com.lowdragmc.lowdraglib.gui.texture.GuiTextureGroup; +import com.lowdragmc.lowdraglib.gui.widget.Widget; +import com.lowdragmc.lowdraglib.gui.widget.WidgetGroup; +import com.lowdragmc.lowdraglib.syncdata.annotation.DescSynced; +import com.lowdragmc.lowdraglib.syncdata.annotation.Persisted; +import com.lowdragmc.lowdraglib.syncdata.annotation.RequireRerender; +import com.lowdragmc.lowdraglib.syncdata.field.ManagedFieldHolder; +import com.lowdragmc.lowdraglib.utils.Position; + +import net.minecraft.MethodsReturnNonnullByDefault; +import net.minecraft.core.Direction; +import net.minecraft.world.item.ItemStack; +import net.minecraftforge.energy.IEnergyStorage; +import net.minecraftforge.items.ItemHandlerHelper; + +import org.jetbrains.annotations.Nullable; + +import java.util.ArrayList; +import java.util.List; + +import javax.annotation.ParametersAreNonnullByDefault; + +@ParametersAreNonnullByDefault +@MethodsReturnNonnullByDefault +public class AutoChargerMachine extends TieredEnergyMachine + implements IFancyUIMachine, IMachineLife, IAutoOutputItem { + + protected static final ManagedFieldHolder MANAGED_FIELD_HOLDER = new ManagedFieldHolder(AutoChargerMachine.class, + TieredEnergyMachine.MANAGED_FIELD_HOLDER); + + public static final long AMPS_PER_ITEM = 4L; + private final int inventorySize; + + @Persisted + private boolean isWorkingEnabled = true; + + @Persisted + protected final NotifiableItemStackHandler chargerInventory; + + @DescSynced + @RequireRerender + private ChargerMachine.State state = ChargerMachine.State.IDLE; + + @Persisted + @DescSynced + @RequireRerender + protected Direction outputFacingItems; + + @Persisted + @DescSynced + @RequireRerender + protected boolean autoOutputItems; + + @Persisted + protected boolean allowInputFromOutputSideItems; + + @Nullable + protected TickableSubscription autoOutputSubs; + + public AutoChargerMachine(IMachineBlockEntity holder, int tier, int inventorySize) { + super(holder, tier, inventorySize); + + this.chargerInventory = new NotifiableItemStackHandler(this, inventorySize, IO.BOTH); + this.chargerInventory.setFilter(stack -> GTCapabilityHelper.getElectricItem(stack) != null || + (ConfigHolder.INSTANCE.compat.energy.nativeEUToFE && + GTCapabilityHelper.getForgeEnergyItem(stack) != null)); + this.inventorySize = inventorySize; + + this.outputFacingItems = getFrontFacing().getOpposite(); + } + + @Override + public ManagedFieldHolder getFieldHolder() { + return MANAGED_FIELD_HOLDER; + } + + @Override + protected NotifiableEnergyContainer createEnergyContainer(Object... args) { + return new EnergyBatteryTrait((int) args[0]); + } + + private void changeState(ChargerMachine.State newState) { + if (this.state != newState) { + this.state = newState; + setRenderState(getRenderState().setValue(GTMachineModelProperties.CHARGER_STATE, newState)); + } + } + + @Override + public void onLoad() { + super.onLoad(); + if (!isRemote()) { + updateAutoOutputSubscription(); + this.chargerInventory.addChangedListener(this::updateAutoOutputSubscription); + } + } + + protected void updateAutoOutputSubscription() { + if (isAutoOutputItems() && !chargerInventory.isEmpty()) { + autoOutputSubs = subscribeServerTick(autoOutputSubs, this::autoOutput); + } else if (autoOutputSubs != null) { + autoOutputSubs.unsubscribe(); + autoOutputSubs = null; + } + } + + protected void autoOutput() { + if (getOffsetTimer() % 5 == 0 && isAutoOutputItems()) { + boolean exported = false; + for (int i = 0; i < chargerInventory.getSlots(); i++) { + ItemStack stack = chargerInventory.getStackInSlot(i); + if (stack.isEmpty()) continue; + + if (isFullyCharged(stack)) { + final int slotIndex = i; + var handlerCap = GTTransferUtils.getItemHandler(getLevel(), getPos().relative(outputFacingItems), + outputFacingItems.getOpposite()); + + handlerCap.ifPresent(handler -> { + ItemStack remainder = ItemHandlerHelper.insertItemStacked(handler, stack, false); + chargerInventory.setStackInSlot(slotIndex, remainder); + }); + + if (chargerInventory.getStackInSlot(slotIndex).getCount() != stack.getCount()) { + exported = true; + } + } + } + if (exported) markDirty(); + } + } + + @Override + public void attachConfigurators(ConfiguratorPanel panel) { + IFancyUIMachine.super.attachConfigurators(panel); + + panel.attachConfigurators(new IFancyConfiguratorButton.Toggle( + new GuiTextureGroup( + GuiTextures.TOGGLE_BUTTON_BACK.getSubTexture(0, 0, 1, 0.5f), + GuiTextures.IO_CONFIG_ITEM_MODES_BUTTON.getSubTexture(0, 1f / 3f, 1, 1f / 3f)), + new GuiTextureGroup( + GuiTextures.TOGGLE_BUTTON_BACK.getSubTexture(0, 0.5f, 1, 0.5f), + GuiTextures.IO_CONFIG_ITEM_MODES_BUTTON.getSubTexture(0, 2f / 3f, 1, 1f / 3f)), + this::isAutoOutputItems, + (cd, next) -> setAutoOutputItems(next))); + } + + private boolean isFullyCharged(ItemStack stack) { + var elec = GTCapabilityHelper.getElectricItem(stack); + if (elec != null) { + if (elec.getCharge() >= elec.getMaxCharge()) { + return true; + } + } + var fe = GTCapabilityHelper.getForgeEnergyItem(stack); + if (fe != null) { + if (fe.getEnergyStored() >= fe.getMaxEnergyStored()) { + return true; + } + } + return false; + } + + @Override + public boolean isAutoOutputItems() { + return this.autoOutputItems; + } + + @Override + public void setAutoOutputItems(boolean allow) { + this.autoOutputItems = allow; + updateAutoOutputSubscription(); + } + + @Override + public boolean isAllowInputFromOutputSideItems() { + return this.allowInputFromOutputSideItems; + } + + @Override + public void setAllowInputFromOutputSideItems(boolean b) { + this.allowInputFromOutputSideItems = b; + } + + @Override + public Direction getOutputFacingItems() { + return outputFacingItems; + } + + @Override + public void setOutputFacingItems(@Nullable Direction direction) { + this.outputFacingItems = direction == null ? getFrontFacing().getOpposite() : direction; + updateAutoOutputSubscription(); + } + + @Override + public Widget createUIWidget() { + int rowSize = (int) Math.sqrt(inventorySize); + int colSize = rowSize; + if (inventorySize == 8) { + rowSize = 4; + colSize = 2; + } + var template = new WidgetGroup(0, 0, 18 * rowSize + 8, 18 * colSize + 8); + template.setBackground(GuiTextures.BACKGROUND_INVERSE); + int index = 0; + for (int y = 0; y < colSize; y++) { + for (int x = 0; x < rowSize; x++) { + template.addWidget(new SlotWidget(chargerInventory, index++, 4 + x * 18, 4 + y * 18, true, true) + .setBackgroundTexture(new GuiTextureGroup(GuiTextures.SLOT, GuiTextures.CHARGER_OVERLAY))); + } + } + + var editableUI = createEnergyBar(); + var energyBar = editableUI.createDefault(); + + var group = new WidgetGroup(0, 0, + Math.max(energyBar.getSize().width + template.getSize().width + 4 + 8, 172), + Math.max(template.getSize().height + 8, energyBar.getSize().height + 8)); + var size = group.getSize(); + energyBar.setSelfPosition(new Position(3, (size.height - energyBar.getSize().height) / 2)); + template.setSelfPosition(new Position( + (size.width - energyBar.getSize().width - 4 - template.getSize().width) / 2 + 2 + + energyBar.getSize().width + 2, + (size.height - template.getSize().height) / 2)); + group.addWidget(energyBar); + group.addWidget(template); + editableUI.setupUI(group, this); + return group; + } + + protected class EnergyBatteryTrait extends NotifiableEnergyContainer { + + protected EnergyBatteryTrait(int invSize) { + super( + AutoChargerMachine.this, + GTValues.V[tier] * invSize * 32L, + GTValues.V[tier], + invSize * AMPS_PER_ITEM, + 0L, + 0L); + setSideInputCondition(side -> isWorkingEnabled); + setSideOutputCondition(side -> false); + } + + private List getNonFullElectricItem() { + List electricItems = new ArrayList<>(); + for (int i = 0; i < chargerInventory.getSlots(); i++) { + var electricItemStack = chargerInventory.getStackInSlot(i); + var electricItem = GTCapabilityHelper.getElectricItem(electricItemStack); + if (electricItem != null) { + if (electricItem.getCharge() < electricItem.getMaxCharge()) { + electricItems.add(electricItem); + } + } else if (ConfigHolder.INSTANCE.compat.energy.nativeEUToFE) { + var energyStorage = GTCapabilityHelper.getForgeEnergyItem(electricItemStack); + if (energyStorage != null) { + if (energyStorage.getEnergyStored() < energyStorage.getMaxEnergyStored()) { + electricItems.add(energyStorage); + } + } + } + } + return electricItems; + } + + private void changeState(ChargerMachine.State newState) { + if (state != newState) { + state = newState; + setRenderState(getRenderState().setValue(GTMachineModelProperties.CHARGER_STATE, newState)); + } + } + + @Override + public long acceptEnergyFromNetwork(@Nullable Direction side, long voltage, long amperage) { + var latestTimeStamp = getMachine().getOffsetTimer(); + if (lastTimeStamp < latestTimeStamp) { + amps = 0; + lastTimeStamp = latestTimeStamp; + } + if (amperage <= 0 || voltage <= 0) { + changeState(ChargerMachine.State.IDLE); + return 0; + } + + var electricItems = getNonFullElectricItem(); + var maxAmps = electricItems.size() * AMPS_PER_ITEM - amps; + var usedAmps = Math.min(maxAmps, amperage); + if (maxAmps <= 0) { + return 0; + } + + if (side == null || inputsEnergy(side)) { + if (voltage > getInputVoltage()) { + doExplosion(GTUtil.getExplosionPower(voltage)); + return usedAmps; + } + + long internalAmps = Math.min(maxAmps, Math.max(0, getInternalStorage() / voltage)); + + usedAmps = Math.min(usedAmps, maxAmps - internalAmps); + amps += usedAmps; + + long energy = (usedAmps + internalAmps) * voltage; + long distributed = energy / electricItems.size(); + + boolean changed = false; + for (var electricItem : electricItems) { + long charged = 0; + if (electricItem instanceof IElectricItem item) { + charged = item.charge(Math.min(distributed, GTValues.V[item.getTier()] * AMPS_PER_ITEM), + getTier(), true, false); + } else if (electricItem instanceof IEnergyStorage energyStorage) { + charged = FeCompat.insertEu(energyStorage, + Math.min(distributed, GTValues.V[getTier()] * AMPS_PER_ITEM), false); + } + if (charged > 0) { + changed = true; + } + energy -= charged; + energyInputPerSec += charged; + } + + if (changed) { + AutoChargerMachine.this.markDirty(); + changeState(ChargerMachine.State.RUNNING); + } + + setEnergyStored(getInternalStorage() - internalAmps * voltage + energy); + return usedAmps; + } + return 0; + } + + @Override + public long getEnergyCapacity() { + long energyCapacity = 0L; + for (int i = 0; i < chargerInventory.getSlots(); i++) { + var electricItemStack = chargerInventory.getStackInSlot(i); + var electricItem = GTCapabilityHelper.getElectricItem(electricItemStack); + if (electricItem != null) { + energyCapacity += electricItem.getMaxCharge(); + } else if (ConfigHolder.INSTANCE.compat.energy.nativeEUToFE) { + var energyStorage = GTCapabilityHelper.getForgeEnergyItem(electricItemStack); + if (energyStorage != null) { + energyCapacity += FeCompat.toEu(energyStorage.getMaxEnergyStored(), + FeCompat.ratio(false)); + } + } + } + + if (energyCapacity == 0) { + changeState(ChargerMachine.State.IDLE); + } + + return energyCapacity; + } + + @Override + public long getEnergyStored() { + long energyStored = 0L; + for (int i = 0; i < chargerInventory.getSlots(); i++) { + var electricItemStack = chargerInventory.getStackInSlot(i); + var electricItem = GTCapabilityHelper.getElectricItem(electricItemStack); + if (electricItem != null) { + energyStored += electricItem.getCharge(); + } else if (ConfigHolder.INSTANCE.compat.energy.nativeEUToFE) { + var energyStorage = GTCapabilityHelper.getForgeEnergyItem(electricItemStack); + if (energyStorage != null) { + energyStored += FeCompat.toEu(energyStorage.getEnergyStored(), + FeCompat.ratio(false)); + } + } + } + + var capacity = getEnergyCapacity(); + + if (capacity != 0 && capacity == energyStored) { + changeState(ChargerMachine.State.FINISHED); + } + + return energyStored; + } + + private long getInternalStorage() { + return energyStored; + } + } +} diff --git a/src/main/java/net/neganote/gtutilities/config/UtilConfig.java b/src/main/java/net/neganote/gtutilities/config/UtilConfig.java index fe5ea86..658e3e9 100644 --- a/src/main/java/net/neganote/gtutilities/config/UtilConfig.java +++ b/src/main/java/net/neganote/gtutilities/config/UtilConfig.java @@ -86,6 +86,10 @@ public static class FeatureConfigs { @Configurable @Configurable.Comment({ "Whether the custom ZPM tools are enabled." }) public boolean customZPMToolsEnabled = false; + + @Configurable + @Configurable.Comment({ "Whether the Auto Turbo Chargers are enabled." }) + public boolean autoChargersEnabled = false; } public static boolean coolantEnabled() { diff --git a/src/main/java/net/neganote/gtutilities/recipe/UtilRecipes.java b/src/main/java/net/neganote/gtutilities/recipe/UtilRecipes.java index c2ef9a1..5f7b320 100644 --- a/src/main/java/net/neganote/gtutilities/recipe/UtilRecipes.java +++ b/src/main/java/net/neganote/gtutilities/recipe/UtilRecipes.java @@ -3,11 +3,14 @@ import com.gregtechceu.gtceu.api.GTCEuAPI; import com.gregtechceu.gtceu.api.GTValues; import com.gregtechceu.gtceu.api.data.tag.TagPrefix; +import com.gregtechceu.gtceu.api.machine.MachineDefinition; import com.gregtechceu.gtceu.common.data.GTItems; +import com.gregtechceu.gtceu.common.data.GTMachines; import com.gregtechceu.gtceu.common.data.GTMaterials; import com.gregtechceu.gtceu.common.data.machines.GTMultiMachines; import com.gregtechceu.gtceu.config.ConfigHolder; import com.gregtechceu.gtceu.data.recipe.CustomTags; +import com.gregtechceu.gtceu.data.recipe.VanillaRecipeHelper; import net.minecraft.data.recipes.FinishedRecipe; import net.minecraft.world.item.ItemStack; @@ -21,6 +24,7 @@ import static com.gregtechceu.gtceu.common.data.GTRecipeTypes.ASSEMBLY_LINE_RECIPES; import static com.gregtechceu.gtceu.data.recipe.GTCraftingComponents.*; import static net.neganote.gtutilities.common.item.UtilItems.OMNIBREAKER; +import static net.neganote.gtutilities.common.machine.UtilMachines.AUTO_CHARGER_4; import static net.neganote.gtutilities.common.machine.UtilMachines.ENERGY_CONVERTER_64A; public class UtilRecipes { @@ -55,6 +59,20 @@ public static void init(Consumer provider) { .researchStack(GTMultiMachines.ACTIVE_TRANSFORMER.asStack()).CWUt(16)) .save(provider); } + + if (UtilConfig.INSTANCE.features.autoChargersEnabled) { + for (MachineDefinition autoChargerDef : AUTO_CHARGER_4) { + if (autoChargerDef == null) { + continue; + } + var tier = autoChargerDef.getTier(); + VanillaRecipeHelper.addShapedRecipe(provider, true, autoChargerDef.getId(), autoChargerDef.asStack(), + "WRW", "WCW", "WRW", + 'W', WIRE_QUAD.get(tier), + 'R', ROBOT_ARM.get(tier), + 'C', GTMachines.CHARGER_4[tier].asStack()); + } + } } public static void register64AConverterRecipes(Consumer provider) {